Δευτέρα, 3 Ιουλίου 2017

Μετά την Amiga το χάος, δηλαδή;

Κάποιες φορές τυχαίνει να διαβάσουμε κάποια πράγματα που μας βάζουν σε σκέψεις. Καλό είναι αυτό, γόνιμο. Ειδικά το να μπαίνει κανείς στη διαδικασία να επανεξετάζει πράγματα τα οποία μέχρι τώρα θεωρούσε ως δεδομένα, είναι σημάδι νοητικής υγείας. Αυτό τουλάχιστον πιστεύω εγώ, δεν απαιτώ να το ασπαστεί κάποιος...

Ας επιστρέψουμε στο θέμα μας, όμως. Πριν από μερικές μέρες, παρακολουθώντας ένα thread σε ελληνικό forum με αντικείμενο την Amiga και το οποίο άνοιξε ένας χρήστης για να πληροφορήσει τους υπολοίπους ότι πλέον είναι ευτυχής κάτοχος ενός Atari STE (δεν φάνηκαν να μοιράζονται τον ενθουσιασμό του, ομολογουμένως) είδα την παρακάτω απάντηση από έναν χρήστη, ας τον πούμε "χρήστη Α":

"Όταν είχα τον σπέκτρουμ back in the day έλεγα να πάρω και έναν cpc που ήταν πιο ...σοβαρός με χρώματα και καλούδια. Τον πήρα για να δω την διαφορά και τέλος πάντων κάτι είδα και τον ευχαριστήθηκα για χρόνια. Μου λέγανε για c64 και τον φοβερό του ήχο με το γαμάτο scrolling τον πήρα πριν χρόνια και πράγματι το διαπίστωσα!
Πήρα κάποια στιγμή την ξελογιάστρα την αμίγκα και απόλαυσα τα γραφικά και τον ήχο της τόσο που να δηλώνω φανατικός amiga'ς δεκαετίες αργότερα!
Τα atari st,stfm.ste γιατί να τα πάρει κανείς -πέραν του συλλεκτικού ενδιαφέροντος που το δέχομαι- όταν ο ήχος του είναι χειρότερος του c64 και τα παιχνίδια του μονίμως χειρότερα από της amiga; Τι θα δούμε σε δαύτο που θα μας εντυπωσιάσει σε σχέση με την amiga; Προσωπικά δεν πήρα ποτέ ακριβώς για αυτό το λόγο! Δεν μπορώ να νοσταλγήσω κάτι που ποτέ δεν είχα και ποτέ δεν ήθελα να αποκτήσω!"


Διαβάζοντας την ανάρτηση αυτή λοιπόν, ομολογώ ότι μπήκα σε σκέψεις. Όντως, ο Atari ST έχει χειρότερο ήχο από την Amiga - και ποιος δεν έχει, άλλωστε; - αλλά αυτό που με προβλημάτισε ήταν η ατάκα "και τα παιχνίδια του μονίμως χειρότερα από της amiga". Ο Atari ST δεν έχει μικρή βιβλιοθήκη παιχνιδιών, αλλά σχεδόν όλα εξ' αυτών είχαν γίνει port κάποια στιγμή στην Amiga. Κάποιοι "αποκλειστικοί" τίτλοι είτε μεταφέρθηκαν την τελευταία δεκαετία (αλήθεια!) είτε απλά δεν άξιζαν ιδιαίτερα ώστε να ασχοληθεί κάποιος με τη μεταφορά τους. Και, σε ό,τι αφορά τα παιχνίδια που είναι κοινά στις δύο πλατφόρμες, είτε αυτά αποτελούν ST ports με πανομοιότυπα γραφικά και gameplay και βελτιωμένο ήχο (Out Run, Xenon 2, Stunt Car Racer κλπ) είτε Amiga ports με μάλλον όχι ιδιαίτερα κολακευτικά για τον ST αποτελέσματα (Shadow Of The Beast). Πραγματικά, το μόνο παιχνίδι που εντόπισα και του οποίου η έκδοση για ST μπορεί ίσως να θεωρηθεί από κάποιους καλύτερη είναι το Kick Off. Ναι, πριν αρχίσετε να ωρύεστε και να διαρρηγνύετε τα ιμάτιά σας μουρμουρίζοντας ακατάληπτες βρισιές, σκεφτείτε ότι ναι μεν η έκδοση του ST ήταν "γυμνή" από γραφικές λεπτομέρειες (κερκίδες, διαφημιστικές πινακίδες, δίχτυα τερμάτων - όλα έλαμπαν δια της πλήρους απουσίας τους) αλλά αυτό είχε ως αποτέλεσμα το παιχνίδι να είναι κολασμένα γρήγορο αποτελώντας τελικά μια ηδονική εμπειρία φρενήρους και καταιγιστικού... "pinball soccer"! Είτε συμφωνείτε είτε διαφωνείτε με αυτή τη θεώρηση δεν έχει ιδιαίτερη σημασία, καθώς το Kick Off μάλλον αποτελεί την εξαίρεση που επιβεβαιώνει τον κανόνα: τα παιχνίδια της Amiga είναι καλύτερα. Τελεία. Άρα η συλλογιστική του χρήστη Α είναι σωστή; Η απόκτηση ενός Atari ST από κάποιον που δεν είναι συλλέκτης στερείται οποιουδήποτε νοήματος;


Την απάντηση την πήρα από εκεί που (θα είμαι ψεύτης να πω το αντίθετο) δεν το περίμενα: ένας άλλος χρήστης, ο χρήστης Β (ναι, ξέρω, έχω μεγάλη φαντασία στα ονόματα), απαντώντας στον χρήστη Α έγραψε τα εξής:

"Εαν ειχε διαβασει παλιοτερα ποστ μου, αυτο ακριβως ειναι το "μεγαλο θεμα".
Εαν παρεις αταρι και εχεις στο μυαλο σου την αμιγκα και τι γινεται εκει, παει δεν θα καταλαβεις τιποτα στην καλυτερη, στην χειροτερη θα βριζεις "με το χρεπι που πηρα".
Το αταρι πρεπει να το χρησιμοποιησεις οπως ακριβως το 6128 ή το spectrum, ξεχνωντας για λιγο την αμιγκα. Ειναι ενα πολυ καλο μηχανημα, αλλα το προβλημα του δεν ειναι αυτο καθευτο το μηχανημα, ειναι η σκια της amiga. Mακρυα απο αυτην, μπορεις να δεις την λαμψη του."

Δώστε βάση στις 2 τελευταίες προτάσεις: εξαιρετική προσέγγιση του θέματος. Όντως, αν αφαιρέσει κανείς την Amiga από την εξίσωση, ο ST "δείχνει τα δόντια του" απέναντι σε 8μπιτους και PCs της εποχής. Με την "μεγάλη κυρία" εκτός κάδρου, ο ST δείχνει εντυπωσιακός. "Ωραία", μπορεί να πει κάποιος, ασπαζόμενος την άποψη του χρήστη Α: "την έχω δει και την έχω ζήσει την Amiga. Δεν μπορώ να την ξε-δω ώστε να με εντυπωσιάσει ο Atari". Έτσι είναι. Αν έχεις δοκιμάσει φιλετάκια με σως ροκφόρ δεν πρόκειται να σε συγκινήσει η μπριζόλα, όσο μάστορας κι αν είναι ο ψήστης. Όμως, υπάρχει και μια μικρή παράμετρος, η οποία κι εμένα μου διέφυγε με την πρώτη ανάγνωση. Σε κάποιο σημείο του post του ο χρήστης Α αναφέρει: "Πήρα κάποια στιγμή την ξελογιάστρα την αμίγκα και απόλαυσα τα γραφικά και τον ήχο της τόσο που να δηλώνω φανατικός amiga'ς δεκαετίες αργότερα". Ωπ! Εδώ έχουμε θέμα: "φανατικός Αμιγκάς"; Αν ψάξουμε για τον ορισμό του λήμματος "φανατισμός" διαβάζουμε το εξής: "η προσήλωση σε κάτι (ιδέα, θρησκεία, ομάδα, πολιτική, πρόσωπο) με υπέρμετρο ζήλο και μίσος προς ό,τι αντίθετο". Κατά συνέπεια, όταν κάποιος δηλώνει "φανατικός Αμιγκάς" αυτομάτως εννοείται ότι μισεί και τον Atari που αποτελούσε ανέκαθεν το αντίπαλο δέος, έτσι δεν είναι; Δεν έχει να κάνει με μουσικές δυνατότητες, χρωματικές παλέτες, μέτρια παιχνίδια, λιγότερα custom chips και λοιπά λογικά επιχειρήματα η όλη ιστορία, αν έχει επιτρέψει κάποιος στον φανατισμό να δηλητηριάσει την ψυχή του και να υποδουλώσει την σκέψη του και την κριτική του ικανότητα: δεν πρόκειται ποτέ να δει κάτι καλό στον Atari ST, απλά γιατί δεν θέλει να δει κάτι καλό.

Έχω την αίσθηση και την ελπίδα ότι πολλοί από τους συνανθρώπους μας που δηλώνουν "φανατικοί" με κάτι, οτιδήποτε κι αν είναι αυτό, το κάνουν χωρίς να δίνουν ιδιαίτερη σημασία στη λέξη που επέλεξαν να τους χαρακτηρίσει, πιστεύοντας ότι αυτή απλά εκφράζει την υπέρμετρη αγάπη τους για κάτι και τίποτα παραπάνω. Επειδή όμως δεν είναι έτσι, θα είναι μάλλον πιο δόκιμο να επιλέξει κανείς το "Amiga lover" ας πούμε. Γιατί αλλιώς, δεν έχει νόημα να μπει στον κόπο να εξηγήσει κάποιος "γιατί αξίζει να δοκιμάσεις και τον Atari", έτσι δεν είναι;


Ολοκληρώνοντας, θα ήθελα να μοιραστώ μαζί σας και τη δική μου θέση στο όλο θέμα. Επειδή ο Atari ST όπως και η Amiga ήταν προσωπικοί υπολογιστές, θεωρώ ότι ως τέτοιους οφείλουμε να τους αντιμετωπίζουμε. Κατά συνέπεια, πέραν των (πολλών) ομοιοτήτων στα παιχνίδια, σε όλους τους υπόλοιπους τομείς ο ST με την Amiga είχαν πολύ μεγάλες διαφορές: θέλετε από την προσέγγιση και την υλοποίηση των GUIs τους, θέλετε από την πλήρη ενσωμάτωση του λειτουργικού στην ROM (ST), θέλετε από όλο το υπόλοιπο software (πλην των παιχνιδιών) και τα περιφερειακά τους, τα 2 αυτά υπέροχα μηχανήματα έχουν ολόκληρους κόσμους να αποκαλύψουν σε όποιους ενδιαφέρονται, κόσμους οι οποίοι έχουν τις ομοιότητες αλλά και τις (πολλές) διαφορές τους. Μου φαίνεται παράλογο κάποιος που έζησε το computer boom των 80s και περίμενε κάθε μήνα το Pixel ως μάννα εξ ουρανού να μην ενδιαφέρεται να γνωρίσει και να εξερευνήσει αυτούς τους κόσμους. Ακόμα κι αν ο ένας έχει χειρότερο ήχο από τον άλλο...

Θα ήθελα να ευχαριστήσω τους χρήστες Α και Β για τα posts τους γιατί, όπως έγραψα και παραπάνω, μου έδωσαν τροφή για σκέψη. Δεν αναφέρω τα nicknames τους διότι δεν γνωρίζω εάν θα επιθυμούσαν κάτι τέτοιο.

64 σχόλια:

  1. Παναγιώτη διαβασα το αρθρο σου και το βρηκα ενδιαφερον.Θα συμφωνουσα σε όλα ως...χρηστης Α αν δεν με ειχες γνωρισει απο κοντα. Σου εχω πει οτι εχω μονο 5 μηχανηματα στη συλλογη μου. Απο αυτα τα 3 τα ειχα απο τότε και τα δυο τα πηρα πριν πολλά χρονια. Τίποτα άλλο. Ούτε κονσόλες ουτε διπλά κομμάτια ούτε εξεζητημένα μηχανηματα. Η αγαπη προς την αμιγκα ειναι περισσοτερο νοσταλγια και μετα οτιδηποτε αλλο.Θεωρώ ότι το μηχανημα αυτό ηταν απωθημένο που δυσκολευτηκα να παρω και όταν τα καταφερα.. καμαρωνα ως εφηβος για αυτο εξου και η δηλωση περι φανατισμου.Ο όποιος ...πολεμος με τα στ σε μένα εβγαινε πάντα με διαθεση αστεισμου, ως πλακα για να πειραζόμαστε οι βετερανοι των home computers. Μεχρι εκεί. Ο λογος που δεν πηρα στ ήταν ακριβως αυτό που έγραψα. Δεν το είχα και δεν το νοσταλγω. Αυτό δεν σημαίνει ότι αναιρώ την αξία του στην εξέκιξη των υπολογιστών...(Ελπίζω να με βοηθήσεις πάντως αν αλλάξω γνώμη στο μέλλον και παρω ένα. Θα δεχτώ και την σχετική καζούρα αν τελικά το συμπαθήσω...)

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Φίλε, στην ουσία αυτά ακριβώς που γράφεις είναι αυτά που ήθελα ενδόμυχα να πιστέψω: ότι, όχι ειδικά εσύ, αλλά πολύς κόσμος γενικότερα που δηλώνει φανατικός... κάτι, τελικά απλά γουστάρει, αγαπάει αυτό το κάτι με όλη του την καρδιά, αλλά δεν φτάνει στο σημείο να μισήσει όλα τα υπόλοιπα. Και, να σου πω την αλήθεια, αν ήμασταν μαζί εκεί πίσω στα late 80s, όχι μόνο θα προσπαθούσα, αλλά θα σε έπειθα κιόλας να πάρεις Atari! :D

      Τώρα όμως, εάν όπως γράφεις δεν σου προκαλεί αυτό το "κλικ" για να το αποκτήσεις, να το ψάξεις και να ασχοληθείς, δεν πρόκειται να σε... πρήξω εγώ για να το κάνεις: όπως συμφωνούμε τα παιχνίδια του είναι χειρότερα και δε νομίζω κανένας από εμάς να... φτιάχνεται (!) με word processors, desktop publishing suites και... cubase 30ετίας! :p

      Αυτό που για μένα είναι ενδιαφέρον στον ST είναι ότι, με δεδομένα 80s, σε προκαλούσε να ψαχτείς, να ασχοληθείς λιγάκι περισσότερο απ' ότι η Amiga. Αυτή σε χάζευε με τα γραφικά και τη μουσική της, και πού μυαλό για άλλα! Ήταν και το όλο στήσιμο του Workbench τέτοιο που, αν δεν είχες 2ο disk drive, πρακτικά δεν μπορούσες ούτε ένα αρχείο να αντιγράψεις καλά-καλά (άσε που έτσι κι αλλιώς αν δεν είχαν εικονίδια δεν μπορούσες καν να τα δεις!) ε, ο ST με τις "4 επιλογές του" που λέει κι ο χρήστης Β ήταν πιο computer enthusiast friendly. Τελικά όμως όλους μας έριξαν τα λούσα της Amiga, απ' ότι φαίνεται!

      Διαγραφή
  2. Αν θυμάσαι, όταν συναντηθήκαμε, είχαμε συμφωνήσει ότι με το πέρασμα από τα 8 στα 16bit χάθηκε η μαγεία της ενσωματωμένης γλώσσας προγραμματισμού που μας έκανε να ψαχνόμαστε με τα μηχανήματα μας! Δεν ήξερα κανέναν που να μην εχει πληκτρολογήσει έστω λίγες γραμμες σε basic! Δεν ήξερα ότι στο st παρέμενε αυτό διότι θεωρούσα ότι ήταν σαν την αμίγκα με το δικό του icon based λειτουργικό! Τώρα για την χρήση της λέξης "φανατικός" για μένα έκανες ένα λάθος στο συλλογισμό σου! Θεώρησες αυθαίρετα ότι εφόσον είμαι φανατικός με την αμίγκα είμαι και απαραίτητα εχθρός του st! Δεν υπάρχει η επιλογή απλά να αδιαφορούσα δηλαδή; Σε μένα θα λειτουργούσε το όλο πραγμα διαφορετικά αν ως πρώτο 16μπιτο μηχάνημα ειχα τον st και μετά πήγαινα στην αμίγκα! Τότε σίγουρα θα είχα πάρει ένα μόνο και μόνο για λόγους νοσταλγίας! Δεν έγινε έτσι και απλά...προσπέρασα όπως άλλωστε έκανα και στις κονσόλες της εποχής μέχρι σήμερα!

    ΑπάντησηΔιαγραφή
  3. Όχι, φίλε, πρόσεξε, παρεξήγηση: ο ST δεν έχει (δυστυχώς) BASIC στην ROM: και αυτός από δισκέτα την φόρτωνε, όπως η Amiga. Όλα τα υπόλοιπα όμως τα έχει στην ROM. Αυτό που - είτε το πιστεύεις είτε όχι - ΕΧΕΙ BASIC στην ROM είναι ο Αρχιμήδης, στον οποίο μάλιστα μπορεί ανά πάσα στιγμή να εκτελείς εντολές της γλώσσας μέσα από το λειτουργικό!

    Σε αυτό που γράφεις τώρα στην αρχή, για την μαγεία της ενσωματωμένης γλώσσας προγραμματισμού που έκανε τον χρήστη να το ψάχνει λίγο παραπάνω δεν θυμάμαι αν το είχα πει και σε σένα, αφού το έχω πει λίγο-πολύ σε όλους (!) καθώς, απλά, το πιστεύω!

    Για το λάθος μου που γράφεις σε ό,τι έχει να κάνει με τη χρήση της λέξεως φανατικός από την πλευρά σου και το τι εισέπραξα εγώ απ' αυτή τη λέξη, θα σου πω ότι καταρχάς τα posts στο forum ήταν απλά μια αφορμή για κάποιες σκέψεις τις οποίες και κατέγραψα στο blog μου: δεν είχαν τόσο (για μένα) να κάνουν με το ποιος έγραψε τι. Από εκεί και πέρα, σωστά γράφεις ότι εγώ μπορεί λανθασμένα να υποθέτω ότι είσαι πολέμιος του ST αλλά, από την άλλη, μήπως και η επιλογή της χαρακτηρισμού "φανατικός" με τα όλα όσα αυτός σημαίνει δεν είναι και η πλέον ενδεδειγμένη από τη δική σου πλευρά; Αν κάποιος ας πούμε δηλώσει "λάτρης της Amiga" αυτό δεν υποδηλώνει κάτι το μεμπτό, έτσι δεν είναι;

    Πες το δικό μου κόλλημα αν θες, γενικώς δεν με εκφράζει κανενός είδους φανατισμός από τότε που μεγάλωσα και κατάλαβα ότι έχει ως αποτέλεσμα το να χωρίζει τους ανθρώπους και να δημιουργεί έχθρες, μίση και διαμάχες...

    ΑπάντησηΔιαγραφή
  4. Έχεις δίκιο για την χρήση της λέξης φανατικός. Στην περίπτωση μου ταιριάζει περισσότερο η έκφραση amiga lover! Στην πορεία μου τόσα χρόνια στα ρετρο φορα δεν έδειξα ποτέ ότι είμαι φανατικός αλλά μάλλον ...μεγάλο περιαχτήρι ειδικά σε φίλους που ήταν είτε st lovers είτε st fanatics!
    Άλλοι το παρεξήγησαν άλλοι το αποδέχτηκαν και καναμε αμοιβαίο χαβαλε! Όπως και να έχει καλή καρδιά και ...συνέχισε την καλή δουλειά στο blog σου!

    ΑπάντησηΔιαγραφή
  5. Σε ευχαριστώ πολύ για τα καλά σου λόγια και κυρίως για την κουβέντα που κάναμε. Α, και πού 'σαι; Τους ST fanatics φυσικά και να τους πειράζεις! Ίδιοι με τους Amiga fanatics είναι, απλώς γουστάρουν... μονοφωνικό ήχο! :p

    ΑπάντησηΔιαγραφή
  6. Έκανες μια πολύ ωραία ανάλυση του θέματος Παναγιώτη. Καλώς η κακώς γενικώς η κοινότητα της Amiga (Παγκοσμίως) διέπεται απο έναν φανατισμό - και εγώ έτσι ήμουν. Πλέον έχω καταλήξει στο εξής : Είναι άδικη και ασύμετρη η όποια σύγκριση των 2 αυτών μηχανημάτων. Κάθε ένα έχει να προσφέρει κάτι το διαφορετικό, τόσο στα γραφικά, στον ήχο αλλά και στην λειτουργικότητα.

    Π.χ : Είναι άδικο να συγκρίνουμε την PAULA που δεν είναι κατί περισσότερο απο ενα sample playback chip με το Yamaha YM2149F που φορούσε ο ST. Sample Playback vs Sound Generation..

    Εγώ πάντως το έχω δηλώσει ρητά και αμετάκλητα, οτι φανατικός οπαδός της 16-bit era που να μήν είναι κάτοχος Amiga κ Atari δεν υφίσταται... ;)

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Σε ευχαριστώ, Χρόνη!

      Νομίζω ότι ο φανατισμός στις περισσότερες περιπτώσεις είναι κατάλοιπο της οπτικής και των απόψεων που είχαν τα ίδια άτομα πριν από 25-30 χρόνια. Απλά, υποτίθεται ότι καθώς μεγαλώνουμε πρέπει (και μπορεί) να πήζει και λίγο το μυαλουδάκι μας και να προσπαθούμε να βλέπουμε τα πράγματα πιο αντικειμενικά και περισσότερο αποστασιοποιημένα.

      Για τον ήχο καλά τα λες, απλά να συμπληρώσω κάτι: το sound chip του ST δεν ήταν καν από τα καλύτερα της κατηγορίας του! Η ηχητική διαφορά ας πούμε μεταξύ ST και Commodore 64 είναι χαώδης υπέρ του δεύτερου, και μιλάμε για απλά, "παραδοσιακά" chips ήχου χωρίς FM synthesis και... μεταξωτές κορδέλες! Μωρέ ας είχε 2 SIDs (ένα για κάθε κανάλι) ο ST και θα σου έλεγα εγώ! :D

      Διαγραφή
    2. Έτσι είναι. Είναι κατάλοιπο της παιδικής μας ηλικίας. Και εγώ την Amiga 500 την αγαπάω περισσότερο απο όλα τα μηχανήματα γιατί μου χάρισε τις καλύτερες αναμνήσεις. Κάποιος άλλος που μεγάλωσε με Atari 520ST αισθάνεται ακριβώς το ίδιο με εμένα. Λογικές όμως συγκρίσεις σε συναισθηματικά φορτισμένα μηχανήματα δεν γίνεται - δεν είναι ρεαλιστικό.

      Μεγαλώνοντας όμως τα προσπερνάς αυτά - φυσικά οι παλιές αγάπες δεν ξεχνιούνται..

      Όσο για το Yamaha τσιπάκι ; Ηταν "πασέ" πραγματικά!!Νομίζω μάλιστα κάποιος "κλώνος" άλλου τσίπ! Ο SID μπροστά του ήταν ένα κανονικάτο Synth (λέμε τώρα :P)

      Διαγραφή
    3. Right to the point!

      Για το sound chip, ήταν κλώνος/παραλλαγή του AY-3-8910 της General Instrument. Βασικά το ίδιο με αυτό των Amstrad CPC, ZX Spectrum 128/+2/+3, Oric-1 και Atmos αλλά και όλης της οικογένειας των MSX. Το λες και "πολυφορεμένο"...

      Πάντως προς υπεράσπιση του chip αυτού, το έχω ακούσει να αποδίδει ικανοποιητικότατα - πολύ κοντά στο SID μάλιστα - σε κάποια tunes σε Amstrad αλλά και Spectrum και Atari ST. Απλά, αυτός δεν ήταν ο κανόνας, αλλά η εξαίρεση. Στην Amiga τώρα από την άλλη, ο ήχος της ήταν... τι να πω, μου σηκώνεται η τρίχα! Ως κάτοχος Atari 520ST από το 1986 μέχρι το 1990 μπορώ να πω με πάσα ειλικρίνεια ότι ποτέ δεν ζήλεψα τα γραφικά της Amiga. Τον ήχο της όμως, άστα!

      Διαγραφή
  7. Καλημέρα Παναγιώτη
    Το θέμα σου είναι πολύ 'πιασάρικο' και όλα αυτά που ειπώθηκαν είναι πολύ ενδιαφέροντα. Εγώ πάλι ως "φανατικός" του C64 (και των 8bit), μπορώ να εκφέρω γνώμη; :-)

    Λοιπόν ο φανατισμός, (σε ότι θέμα κι αν αφορά) μόνο κακό μπορεί να κάνει. Ο λόγος απλός. Σου στερεί την χαρά να ανακαλύπτεις καινούργια πράγματα σε υπολογιστές και μηχανήματα που εσκεμμένα και λόγω μένους και φανατισμού αγνοούσες επιδεικτικά.
    Δεν σου κρύβω ότι κι εγώ ως υπέρμαχος του 64άρη, ήμουν φανατισμένος με αυτό. Ίσως γιατί το είχα κατάλοιπο από παιδικά μου βιώματα, που όλοι οι φίλοι μου και συμμαθητές είχαν Amstrad ή Spectrum και δεν μπορούσα να βρω κόπιες από πουθενά παρά μόνο να τις αγοράζω. Αργότερα που γεύτηκα τις δυνατότητες του SID δεν έκανα πίσω για τίποτα. Ούτε καν να ασχοληθώ με άλλο sound chip και απλά τα χλεύαζα...μέχρι που γνώρισα την Vectrex (ΑΥ-8910) και εγένετο θαύμα θαυμαστόν!
    "Ο λύκος κι αν εγέρασε κι άσπρισε το μαλλί του...και την γνώση του άλλαξε και την κεφαλή του" :-)

    Μην μιλήσουμε για κάτι demάρες που δημοσίευσες κι εσύ εδώ για Spectrum ή παιχνιδάρες στον Amstrad ή για τα καινούργια ports στους 8bit Atari(s) και άλλα πολλά! Το μόνο μου παράπονο τώρα είναι ότι έχω μια πελώρια δίψα να βλέπω και να δοκιμάζω ολοένα και περισσότερα για όλους αυτούς που επιδεικτικά αγνοούσα κάποια χρόνια πριν.

    Πρέπει να καλύψω το χαμένο έδαφος! ΠΡΕΠΕΙ! ;-)

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Αυτό ακριβώς, Γιώργο - και ειλικρινά σε ευχαριστώ για την πολύ εύστοχη παρέμβασή σου!

      Είναι πραγματικά τόσα πολλά που μπορεί κανείς να δει σε όλα τα retro computers, είτε σε παλιές παραγωγές είτε σε νέες, που η αποκλειστική προσκόλληση σε μία και μόνη πλατφόρμα αυτομάτως σου κλείνει την πόρτα σε υπέροχες εμπειρίες!

      Γι' αυτό, ΚΑΙ Spectrum KAI Commodore KAI Amstrad KAI Amiga KAI Atari KAI, KAI, KAI...

      Εδώ με τον TI99/4A "κουφαθήκαμε" φέτος, τι να λέμε;

      Διαγραφή
  8. Το Kick Off στον ST δεν είναι γρηγορότερο... ΔΕΙΧΝΕΙ γρηγορότερο λόγω του τρόπου με τον οποίο σχεδιάστηκε ο χλοοτάπητας. Στην Amiga ο χλοοτάπητας είναι ένα ομοιόμορφο texture από 2 πολύ κοντινές παραλλαγές του πράσινου, με αποτέλεσμα να μην προκαλεί ιδιαίτερα το μάτι κατά την κίνηση. Στον Atari ST αντιθέτως υπάρχουν τεράστιες οριζόντιες ισοπλατείς ζώνες με εναλλασσόμενα πράσινα υψηλού contrast που "αναγκάζουν" το μάτι να αντιληφθεί την κίνηση πολύ πιο έντονα.
    Ενδεικτικά, η μέση περιοδικότητα του texture στην Amiga κατά τον Y άξονα είναι περίπου 10 μπάλες, ενώ στον ST είναι ακριβώς 15 ή 16, αυτό από μόνο του αρκεί για να δώσει την αίσθηση ότι πάει 50% πιο γρήγορα στον ST.
    Φυσικά επειδή στην τελική αίσθηση ταχύτητας συμμετέχουν και άλλες σταθερές όπως π.χ. η κίνηση των γραμμών που φυσικά είναι ακριβώς ίδια, η σχετικές ταχύτητες των παιχτών μεταξύ τους αλλά και με το τερέν που επίσης είναι ακριβώς ίδιες, τα βολέ της μπάλας που, guess what, είναι ακριβώς ίδια :-) κλπ, δε μιλάμε για 50% γρηγορότερη αίσθηση αλλά για αρκετά μικρότερη - ευδιάκριτη πάντως, ειδικά όταν γίνονται μετωπικές επιθέσεις όπου και κυριαρχεί το εφέ της κίνησης των οριζόντιων ζωνών.

    Στην ίδια παγίδα είχε πέσει και ο reviewer στο Pixel που έγραφε στο ένθετο σχόλιο "...και η ταχύτητα του παιχνιδιού είναι Ε-Κ-Π-Λ-Η-Κ-Τ-Ι-Κ-Η !" :-)

    Αν υπάρχει ενδιαφέρον θα παραθέσω και μερικά technical data για τις 2 εκδόσεις για να καταστεί σαφέστερο γιατί ακριβώς έγιναν οι "συμβιβασμοί" που έγιναν στον ST.

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Τι λες τώρα, αλήθεια; Θα μπορούσα να ποντάρω όλα μου τα υπάρχοντα (μικρό το ρίσκο, λοιπόν) στην υπεροχή του ST Kick Off σε ταχύτητα! Αφού θυμάμαι το 1989 που δούλευα σε computer shop στην Στουρνάρα ότι ήταν κοινή γνώση σε όλους ότι το Kick Off στον ST είναι ταχύτερο, με αποτέλεσμα οι Αμιγκάδες να φοβόνται να μας αντιμετωπίσουν (!) και, όταν τελικά τους πείθαμε συνήθως τους κερδίζαμε γιατί πίστευαν ότι έχουν απέναντί τους κάποιον υπερ-παίχτη κι έτρεμαν τα χέρια τους! True story, φίλε!

      Να ρε, εδώ και το Pixel το έγραφε! :p

      Πάντως ναι, μου φαίνεται πολύ ενδιαφέρουσα η όλη ιστορία, δώσε technical data στο λαό!

      Διαγραφή
    2. Είναι περισσότερο θέμα "έδρας": Η "έδρα" του ST είναι πιο δύσκολη από την "έδρα" της Amiga.
      Αν το παιχνίδι παιχτεί σε ST, ο Amigάς νιώθει ψιλοχαμένος στο λιτό, "σεληνιακό" τερέν συχνά χωρίς να ξέρει που βρίσκεται και που πάει [υπάρχει ένας μικρός δείκτης που δείχνει προς τα που είναι η εστία στην έκδοση για ST, ο οποίος απουσιάζει από την έκδοση για Amiga. Τυχαίο; ;-) ]. Αντιθέτως ο Atarάς έχει συνηθίσει και ζωγραφίζει.
      Αν πάλι το παιχνίδι παιχτεί σε Amiga, δεν υπάρχει κάτι που θα δυσχεράνει τον Atarά, τα πληρέστερα γραφικά λειτουργούν υπέρ του, όπως και η υποκειμενική αίσθηση της ταχύτητας :-)

      Κατά τα άλλα οι ρουτίνες κίνησης κλπ είναι ίδια χρονισμένες στα δυο μηχανήματα (50 Hz / 15.625 KHz PAL timings χρησιμοποιούν και τα δύο μηχανήματα, οπότε το time unit είναι ακριβώς το ίδιο εκατέρωθεν).

      Το πρόβλημα είναι ότι για να έχεις ομαλή "50 Hz" κίνηση (που είναι απαραίτητη σε ένα τέτοιο παιχνίδι, αφού η ταχύτητα χωρίς ομαλότητα, με χαμένα καρέ κλπ, σκοτώνει το gameplay) πρέπει για κάθε καρέ η ανανέωση των γραφικών να έχει ολοκληρωθεί πλήρως σε 1/50 του δευτερολέπτου.

      Μια πλήρης οθόνη 320x200x4 bitplanes (16 χρώματα) στον ST είναι 32 KB.
      Ο 68000 στον ST μπορεί να μετακινήσει σε "dumb mode" (χωρίς bit-shifts δηλαδή για pixel-perfect scrolling) 2 MB/sec ή περίπου 40 ΚΒ/καρέ, οπότε φαινομενικά "τό 'χει".
      Σε αυτήν την περίπτωση όμως το οριζόντιο scrolling γίνεται σε άλματα των 16 pixels (μη αποδεκτό για παιχνίδι όπως το Kick Off). Αν βάλεις και bit shifts η ταχύτητα πέφτει περίπου στο 1/3 οπότε για κάθε σχεδιασμένο καρέ χάνεις άλλα 2... δηλαδή ή πας σε slow-motion (δες π.χ. το Beast 2 στον ST - ομαλό αλλά slow motion) ή ξαναέχεις jerky κίνηση.

      Στην Amiga αξιοποιήθηκαν οι σχεδιαστικές προβλέψεις για να ξεπεραστεί (συγκαλυφθεί σωστότερα) το πρόβλημα του περιορισμένου bandwidth κατά το overlay και την κίνηση σύνθετων γραφικών, στον ST έπρεπε να γίνουν πιο δημιουργικοί.

      Διαγραφή
    3. Kick Off (Amiga):

      Στην Amiga το παιχνίδι τρέχει σε dual playfield mode (3+3 bitplanes = 8 + 8 χρώματα).

      Στο πίσω playfield που αποτελεί το τερέν/κερκίδες έχουμε 8* χρώματα: άσπρο, γκρίζο 1, γκρίζο 2, μαύρο, γαλάζιο, πράσινο 1, πράσινο 2, πράσινο 3.
      (*)Μια και είναι το πίσω playfield δε χρειάζεται διαφανές χρώμα.

      Στο μπροστά playfield σχεδιάζονται οι παίκτες, η μπάλα, τα corner kick πλαίσια κλπ. Έχουμε 7 χρώματα (το 8ο είναι το διαφανές για να περνάει η εικόνα από το πίσω playfield): κόκκινο, μπλε, ροζ, άσπρο, μαύρο, πράσινο 4 (σκιάς) και πράσινο 5 (μπλούζας goalkeeper).

      Το πίσω playfield είναι μια μονοκόματη τεράστια εικόνα στη RAM, τμήμα της οποίας είναι η ορατή περιοχή. Scroll-άρει με μηδενικό κόστος σε CPU time χάρη στο hardware οριζόντιο και κατακόρυφο scrolling που διαθέτει η Amiga (αλλάζοντας μόνο τις τιμές 4 hardware registers).

      Μια και το overlay του μπροστά playfield (παίκτες κλπ) γίνεται μέσω hardware, δε χρειάζεται να "σώζεται" το background (τερέν) και να αποκαθίσταται όταν ο παίκτης αλλάξει θέση. Μηδενικό κόστος κι εδώ.

      Οι παίκτες είναι software-sprites και σχεδιάζονται με μικρά blits (πιθανότατα με τη CPU, ούτε καν με τον blitter) στο μπροστά playfield (το οποίο έχει ίδιες διαστάσεις με το πίσω και ακολουθεί το ίδιο σκρολλάρισμα). Χρησιμοποιείται pre-shifting μια και είναι ελάχιστα σε πλήθος. Λόγω του πολύ μικρού μεγέθους τους (π.χ. 20x20x3 = 150 bytes/παίκτη), ο χρόνος που απαιτείται για καθαρισμό και επανασχεδίασή τους είναι αμελητέος (~ 4 KB συνολικό data movement, μόλις το 1/10 της ικανότητας του 68000).

      Ο "χάρτης" του τερέν πάνω αριστερά είναι φτιαγμένος από hardware sprites, οπότε πάλι το overlay γίνεται μέσω hardware με μηδενικό κόστος.

      Διαγραφή
    4. Kick Off (Atari ST) #1:

      Στον ST δεν υπάρχουν τα παραπάνω καλούδια, άρα έπρεπε να γίνουν συμβιβασμοί καθώς και ένα μικρό τρικ που έχει αξιοποιηθεί και στην Amiga (Beast 2, Agony κλπ). Το τρικ λέγεται pseudo-dual-playfield.

      Ας υποθέσουμε ότι έχουμε 4 bitplanes χωρίς υποστήριξη dual playfield από το hardware (περίπτωση ST).
      Τα 4 bitplanes επιτρέπουν 2^4 = 16 χρώματα.

      0000 -> color00
      0001 -> color01
      0010 -> color02
      0011 -> color03
      0100 -> color04
      0101 -> color05
      0110 -> color06
      0111 -> color07
      1000 -> color08
      1001 -> color09
      1010 -> color10
      1011 -> color11
      1100 -> color12
      1101 -> color13
      1110 -> color14
      1111 -> color15

      δηλαδή τα 4 bits (ένα από κάθε bitplane) δημιουργούν έναν δυαδικό αριθμό μεταξύ 0 (0000) και 15 (1111) ο οποίος λειτουργεί ως επιλογέας χρώματος για το δεδομένο pixel. Έτσι έχουμε 16 χρώματα.

      Αν τώρα θελήσω να χρησιμοποιήσω ένα bitplane (το δεξιότερο από τα 4) ως "background" και τα άλλα τρία ως "foreground", τότε προφανώς το background θα έχει 2^1 = 2 χρώματα (ας τα πούμε bg00 και bg01) και το foreground 2^3 = 8 χρώματα, ας τα πούμε fg00 ως fg07).
      Με άλλα λόγια θέλω για το μοναδικό bitplane του background:

      0 -> bg00
      1 -> bg01

      και για τα τρία bitplanes του foreground:

      000 -> fg00 (αυτό θα λειτουργεί ως "διαφανές" χρώμα, δηλαδή θα περνάει το χρώμα του background)
      001 -> fg01
      010 -> fg02
      011 -> fg03
      100 -> fg04
      101 -> fg05
      110 -> fg06
      111 -> fg07

      Αν τα βάλουμε όλα μαζί λοιπόν:

      000 0 -> color00 = bg00 (αφού λόγω 000 περνάει διαφανώς το background colour)
      000 1 -> color01 = bg01 (αφού λόγω 000 περνάει διαφανώς το background colour)
      001 0 -> color02 = fg01 (αφού δεν έχω το διαφανές 000, άσχετα τι υπάρχει στο background...)
      001 1 -> color03 = fg01 (...θα πρέπει σε κάθε περίπτωση να εμφανιστεί το fg01 χρώμα)
      010 0 -> color04 = fg02 (αφού δεν έχω το διαφανές 000, άσχετα τι υπάρχει στο background...)
      010 1 -> color05 = fg02 (...θα πρέπει σε κάθε περίπτωση να εμφανιστεί το fg02 χρώμα)
      011 0 -> color06
      011 1 -> color07
      100 0 -> color08
      100 1 -> color09
      101 0 -> color10 ....................................... (ομοίως)
      101 1 -> color11
      110 0 -> color12
      110 1 -> color13
      111 0 -> color14 = fg07 (αφού δεν έχω το διαφανές 000, άσχετα τι υπάρχει στο background...)
      111 1 -> color15 = fg07 (...θα πρέπει σε κάθε περίπτωση να εμφανιστεί το fg07 χρώμα)


      και με αυτό το τρικ έχουμε pseudo-dual-playfield ακόμη και αν δεν υπάρχει η σχετική υποστήριξη από το hardware, και μπορούν τα background και foreground να αντιμετωπίζονται ως ανεξάρτητα playfields το overlay των οποίων γίνεται μέσω hardware (ουσιαστικά χάρη στην προσεκτικά επιλεγμένη/διπλασιασμένη παλέτα).

      Διαγραφή
    5. Kick Off (Atari ST) #2:

      Είδαμε λοιπόν πώς μπορεί να υλοποιηθεί κάποιου είδους dual playfield και στον ST.

      Είναι ήδη προφανές ότι το foreground pseudo-playfield με τα 7 χρώματα θα λειτουργήσει ακριβώς όπως και το αντίστοιχο στην έκδοση για Amiga, για το σχεδιασμό των παικτών κλπ. ο οποίος γίνεται με ακριβώς τον ίδιο τρόπο (o blitter όπως είπαμε δεν παρέχει κάποιο ιδιαίτερο πλεονέκτημα λόγω μικρού μεγέθους sprites).

      Μένει λοιπόν στο background pseudo-playfield των 2 χρωμάτων να απεικονιστεί το τερέν. Και μην ξεχνάμε ότι δεν υπάρχει hardware scrolling δυνατότητα, ούτε και ο ST επιτρέπει εικόνες στη RAM μεγαλύτερες από το ορατό πλαίσιο (η video RAM είναι fixed στα 32000 bytes, όσο ακριβώς αντιστοιχεί σε μια εικόνα 320x200 με 4 bitplanes).
      Οπότε γίνεται το εξής:
      Το χρώμα bg00 (το απόλυτο background δηλαδή) εναλλάσσεται μεταξύ δύο αποχρώσεων του πράσινου καθώς σχεδιάζεται η εικόνα (με απόλυτα συγχρονισμένα raster interrupts), δημιουργώντας οριζόντιες ζώνες (ίδιο εφέ με αυτά που κάνει ο copper στην Amiga).
      Έτσι όταν υπάρχει κίνηση πάνω-κάτω απλώς μεταβάλλονται τα σημεία εναλλαγής του πράσινου, δίνοντας την αίσθηση του κατακόρυφου scrolling (χωρίς να συμβαίνει καμιά απολύτως μετακίνηση δεδομένων στη RAM).
      Το χρώμα bg01 είναι λευκό και χρησιμοποιείται για τη σχεδίαση των γραμμών. Μια και υπάρχουν ΑΠΟΚΛΕΙΣΤΙΚΑ ευθείες γραμμές (ούτε κύκλος σέντρας, ούτε τεταρτοκύκλια και σημαιάκια του κόρνερ, ούτε τα τόξα στο ύψος της μεγάλης περιοχής, ούτε πλέγματα στα δίχτυα) δε χρειάζεται κατά την κίνηση να αντιγραφούν ολόκληρες περιοχές της RAM - αρκεί το σβήσιμο και η επανασχεδίαση μερικών ευθειών, αυτό τρώει περίπου το 1-2% του διαθέσιμου χρόνου σε κάθε καρέ :-)

      Με τις παραπάνω σχεδιαστικές επιλογές, η κίνηση του γηπέδου και το animation των παικτών τρώνε λιγότερο από το 20% του διαθέσιμου χρόνου σε κάθε καρέ.
      Αυτό που πραγματικά καταναλώνει υπολογίσιμο χρόνο είναι το overlay του χάρτη του γηπέδου. Τα dual playfields (έστω και pseudo) μας τελειώσανε και hardware sprites δεν υπάρχουν ως εναλλακτική. Αλλά ευτυχώς υπάρχει μπόλικος διαθέσιμος χρόνος ώστε το overlay να γίνει "the traditional way" με προσωρινές αποθηκεύσεις κλπ.

      Και έτσι το παιχνίδι παίζει στα 50 fps και στον ST.

      Διαγραφή
    6. Νίκο, δεν έχω ιδέα πώς τα γνωρίζεις όλα αυτά, αλλά πραγματικά σου βγάζω το καπέλο που όχι μόνο τα ξέρεις, αλλά μπήκες και στον κόπο να τα μεταφέρεις και να τα εξηγήσεις και σε μένα αλλά και σε όλους όσους διαβάζουν το blog. Εύχε, συγχαρητήρια, chapeau, respect - τα λόγια δεν είναι αρκετά!

      Επί της ουσίας πάντως διαπιστώνει κανείς από τα γραφόμενά σου ότι η απουσία hardware scrolling και blitter στον ST ανάγκαζαν τους προγραμματιστές σε "πατέντες" και τον 68000 να δουλεύει υπερωρίες!

      Φυσικά, αναλόγως του παιχνιδιού πάντα: ένα παιχνίδι χωρίς scrolling και με λογικό πλήθος sprites/BOBs μάλλον θα "πήγαινε" άνετα, χωρίς να ενοχλείται από τους hardware περιορισμούς...

      Διαγραφή
    7. Και εγώ έχω την εντύπωση ότι το Kick off στον ST είναι ταχύτερο. Αν και δε μπορώ να ελέγξω αυτά που διαβάζω, ομολογώ ότι πραγματικά το ευχαριστήθηκα, έγινε μπόλικη δουλεια από τον BLTCON0 . Το Kick off στον ST είναι για εμένα ένα έργο τέχνης! Γίνεται του συγχρονισμού το κάγκελο! Από το πουθενά, ο ST απέκτησε ένα κορυφαίας κλάσης game, με πολλά sprites, full screen, digi sound, 50fps!

      Διαγραφή
    8. Έχω την αίσθηση ότι τώρα που απέκτησε και ο Νίκος (BLTCON0) Atari STE θα μας χαρίσει κι άλλες χορταστικές αναλύσεις γεμάτες με ενδιαφέρουσες πληροφορίες.

      Πάντως, πραγματικά, αν και πιστεύω στο έπακρο την εγκυρότητα των όσων γράφει ο Νίκος, θέλω να τρέξω ξανά το Kick Off σε 500άρα και ST να το δω και με τα μάτια μου. Γιατί η εντύπωση όπως και να το κάνουμε που μου έχει μείνει από το '89-'90 ήταν σε φάση λαγός vs χελώνα! Αλλά, όπως έγραψε και ο Νίκος ίσως πρόκειται απλά για εντύπωση και τίποτα παραπάνω...

      Διαγραφή
    9. @dony
      Έχω μελετήσει εκτενώς το hardware της Amiga :P
      Είναι τόσο γοητευτικά καλοσχεδιασμένο που μόλις καταλάβεις τι παρέχει και πώς το παρέχει, ποιοι είναι οι περιορισμοί, γιατί υπάρχουν και τι είδους τρικ/αντίμετρα είναι διαθέσιμα, μετά εύκολα "μυρίζεσαι" τις σχεδιαστικές επιλογές που έχουν γίνει στα περισσότερα games για να επιτευχθεί το εκάστοτε αποτέλεσμα.
      Κάποτε θα σας αναλύσω το Beast (που είναι η λατρεία μου :P)

      Και ναι, χωρίς scrolling τα πράγματα είναι πολύ απλούστερα. Παραμένει βέβαια το πρόβλημα της μετακίνησης στη video RAM σε πολλαπλάσια των 16 pixel. Οπότε αν θες το BOB σου στην Χ συντεταγμένη 16 ή 32 κλπ όλα καλά, αλλά αν το θες στην 17 ή στην 21 τι κάνεις (ο blitter κάνει real time shifting και λύνεται το πρόβλημα, αλλά με τον 68000 μόνο στον οποίο το shifting κοστίζει τρελό CPU time, τι;)

      Λύση 1: Δεν κάνεις τίποτα, το BOB "πηδάει" ανά 32 pixel και το αποτέλεσμα είναι άθλιο
      Λύση 2: Με λίγο παραπάνω κόστος σε CPU time, μετακινείς ανά byte (8 pixels)
      Λύση 3: (preshifting) Δημιουργείς 16 αντίγραφα του BOB στη RAM. Ένα το original και τα υπόλοιπα μετατοπισμένα κατά 1, 2, ... 15 pixels.
      Έτσι αν το θές στη θέση Χ=50 για παράδειγμα, έχεις
      50 DIV 16 = 3 (η αντιγραφή θα γίνει 3 words "μέσα" στη γραμμή...)
      50 MOD 16 = 2 (...και θα χρησιμοποιηθεί το κατά 2 pixel μετατοπισμένο αντίγραφο)

      οπότε με κόστος σε παραπάνω RAM, λύνεται και το πρόβλημα του pixel-perfect animation χωρίς blitter :-)


      Για το Kick Off... αν είστε ΤΟΣΟ σίγουροι ότι έτρεχε ΑΝΤΙΚΕΙΜΕΝΙΚΑ γρηγορότερα στον ST... κάντε το εξής:
      Φορτώστε το και παρατηρήστε αν το ημίχρονο των 5 λεπτών είναι όντως 5 πραγματικά λεπτά. Αν είναι 5 πραγματικά λεπτά, είναι ψευδαίσθηση. Αν είναι 4 και κάτι όμως, το παιχνίδι τρέχει (προφανώς) αντικειμενικά γρηγορότερα και μάλλον είναι καμιά έκδοση πειραγμένη να τρέχει σε 60 Hz internally, εξ ου και το 20% speedup.
      Αντίστοιχα, γυρίστε την Amiga στα 60 Hz (αν έχετε το σωστό Agnus) και δοκιμάστε το Kick Off έτσι. Μήπως ξαφνικά η ταχύτητα είναι αυτή που θυμόσαστε στον ST;

      Διαγραφή
    10. Χμμμ... είναι όντως έξυπνο workaround η 3η λύση που προτείνεις, όμως, αν κατάλαβα καλά, με τον τρόπο αυτό χρειάζεσαι 16 διαφορετικά sprites για το κάθε καρέ του original sprite! Δηλαδή, εάν για παράδειγμα έχουμε ένα διαστημοπλοιάκι που "πλαγιάζει" λίγο όταν κινείται αριστερά η δεξιά σε ένα vertical shooter, αν υποθέσουμε ότι αυτό το πλάγιασμα για να δείχνει animated θέλει 3 καρέ σε κάθε πλευρά συν ένα το "κεντρικό", τότε θέλουμε 7 καρέ * 16 θέσεις το καθένα = 112 sprites μόνο για το διαστημοπλοιάκι του ήρωα. Σκέψου τώρα όλοι οι αντίπαλοι πόσοι θα είναι και με πόσα frames θα κάνουν animation (συν σφαίρες, εκρήξεις κλπ) - θα χρειάζεται πραγματικά αρκετή RAM. Βέβαια, αν το κάθε sprite είναι 16x16 pixels, τότε, "τρώει"¨μόνο 4 bytes RAM (μονόχρωμο) και ό,τι χρειαστεί για τα χρώματά του, οπότε λογικά δεν θα ξεπερνάει τα 6 bytes. Αν τα πολλαπλασιάσουμε αυτά με το 112, έχουμε τελικά το κάθε sprite με όλα τα πιθανά καρέ του να χρειάζεται 672 bytes, αριθμός ο οποίος σε 8μπιτο μπορεί να ήταν απαγορευτικός, αλλά στα 16μπιτα με την "απέραντη" μνήμη των 512-1024ΚΒ τελικά μάλλον δεν θα είναι πρόβλημα...

      Θα το δοκιμάσω το Kick Off στον ST με τον τρόπο που προτείνεις. Αλλά ΚΑΙ στην Amiga: ποιος έχει μετρήσει εάν τα 5λεπτα ημίχρονα κρατάνε όντως 5 λεπτά; ;p

      Διαγραφή
    11. Στην Amiga (50 Ηz) 5 λεπτά κρατάει :-)
      Kώδικας που προϋποθέτει 50 Hz σύστημα (και βασίζει τις ρουτίνες κίνησης, ήχου κλπ στο αντίστοιχο "time unit" του 1/50 sec), σε 60 Hz σύστημα (εφόσον εκτελείται σωστά (*)) θα έχει ως "φαινότυπο" τα πάντα να συμβαίνουν 20% γρηγορότερα (*).

      Πες π.χ. ότι σχεδιάζεις ένα shoot em up με ανάλυση 320x200 και κατακόρυφο scrolling.
      Θέλεις μια πλήρης οθόνη να έχει "κατέβει" σε 4 δευτερόλεπτα.
      Η επανασχεδίαση της οθόνης γίνεται ανά frame, οπότε:

      1 screen/4 sec = 200 pixels/(4*50) frames = 1 pixel/frame

      Σε NTSC (60 Hz) όμως:
      1 screen/4 sec = 200 pixels/(4*60) frames = 5/6 pixels/frame

      Όμως δεν υπάρχει "κλασματικό pixel".
      Ή 0 ή 1 θα είναι η μετακίνηση. Αν είναι 0, τότε δεν έχεις scrolling :P

      Αν είναι 1, τότε "πας μπροστά" σε ταχύτητα κίνησης. Η λύση είναι:

      1. Μετακίνηση 1 pixel/frame, αλλά έτσι "πας μπροστά" 1/6 του pixel σε κάθε frame
      2. Κάθε 6 καρέ είσαι ακριβώς 1 pixel "μπροστά"
      3. Στο 7ο καρέ λοιπόν δε scrollαρεις και μετά φτου κι απ' την αρχή τα παραπάνω.

      Αυτό δημιουργεί ένα στιγμιαίο πάγωμα στην κίνηση κάθε 1/10 του δευτερολέπτου, αλλά αν είσαι απόλυτος στους επιθυμητούς χρόνους (200 pixels / 4 sec) δεν υπάρχει άλλος τρόπος.

      Αν φυσικά βάλεις απλά τον ίδιο κώδικα (για τα 50 Ηz) να εκτελεστεί σε σύστημα 60 Hz, τότε έχεις απλά κίνηση 1 pixel/frame χωρίς το stop-gap κάθε 6 frames, και έτσι το παιχνίδι τρέχει 20% γρηγορότερα (*)

      (*) Το "τρέχει 20% γρηγορότερα" δε σημαίνει ότι ο κώδικας εκτελείται 20% γρηγορότερα! H διάρκεια κάθε RAM/CPU cycle είναι πρακτικά η ίδια είτε σε 50 Hz (PAL) είτε σε 60 Hz (NTSC) συστήματα.
      Αναφερόμαστε μόνο στο τελικό "απεικονιστικό" αποτέλεσμα. Ο κώδικας είναι προγραμματισμένος να κάνει κάποια πράγματα σε κάθε frame - αν τρέχουμε στα 50 Hz θα τα κάνει 50 φορές το δευτερόλεπτο, αν τρέχουμε στα 60 Hz θα τα κάνει 60 φορές το δευτερόλεπτο. Σε αυτή την "αύξηση ταχύτητας" αναφέρεται το 20%.
      Μάλιστα όταν κώδικας "optimal" για 50 Hz εκτελείται στα 60 Hz υπάρχει πρόβλημα:
      Κάθε frame στα 50 Hz διαρκεί 20 ms, ενώ κάθε frame στα 60 Hz διαρκεί 16.67 ms.
      Αν λοιπόν ο "50 Hz" κώδικας κάνει ό,τι έχει να κάνει (νοημοσύνη παιχνιδιού, υπολογισμούς, μετακινήσεις/επανασχεδιάσεις γραφικών, μουσική/εφέ κλπ) μέσα σε 16.67 ms (από τα 20 ms που έχει διαθέσιμα) τότε έχει καλώς, θα εκτελεστεί χωρίς προβλήματα και στα 60 Hz με μόνη ορατή συνέπεια την "αύξηση ταχύτητας" του παιχνιδιού κατά 20%
      Αν όμως αξιοποιεί και τα 20 ms (δικαίωμά του, αφού φτιάχτηκε για 50 Hz PAL systems), τότε στα 60 Hz δε θα λειτουργεί προφανώς σωστά αφού διαθέσιμα έχει μόνο 16.67 ms (ό,τι εργασίες είχε να κάνει στα τελευταία 3.33 ms δε θα εκτελεστούν - συνήθως είναι graphics updates, οπότε παρατηρούνται graphical glitches/artifacts)

      Άρα:
      Ένα game γραμμένο για PAL (50 Hz δηλαδή) που καταφέρνει να τρέξει μέσα σε 16.67 ms τον per-frame update κώδικά του, τρέχει χωρίς μετατροπές και σε NTSC (60 Hz δηλαδή) με 20% αύξηση ταχύτητας. Αν βάλεις επιπλέον και πάγωμα 1 καρέ για κάθε 6 ενεργά καρέ, το κάνεις να τρέχει και στην ίδια ταχύτητα (με ελαφρώς jerky κίνηση και ήχο, αν και ο ήχος διορθώνεται εύκολα. Η κίνηση όχι.).
      Ένα game γραμμένο για PAL που αξιοποιεί και τα 20 ms, για να γίνει port σε NTSC πρέπει με τον Α ή Β τρόπο να περιοριστεί ο χρόνος εκτέλεσης του per-frame update κώδικα στα 16.67 ms. Π.χ. ελαττώνοντας το πλήθος των BOBs στις "ζόρικες" σκηνές ή τα χρώματά τους (λιγότερα bitplanes). Κατά τα άλλα όπως και πριν.


      Για τα sprites/BOBs έτσι είναι, το preshifting έχει νόημα όταν έχουμε αντικείμενα μικρού μεγέθους (μπορούν να γίνουν και άλλοι συμβιβασμοί, π.χ. shifts ανα 2 pixels οπότε έχουμε 8 αντίγραφα αντί 16 με σχεδόν ίδια ομαλότητα) και φυσικά όταν έχουμε και άπλετη RAM όπως εγκαινιάστηκε με τα 16-μπιτα.
      Άντε να ξεκινήσουμε και κανά assembly course, τό 'χεις :-)

      Διαγραφή
    12. Ευχαριστούμε για μια ακόμα εξαιρετική ανάλυση: ώρες-ώρες απλά δεν έχω λόγια για να εκφράσω τον θαυμασμό μου για την αρτιότητα και την ακρίβεια των όσων γράφεις!

      Λοιπόν, το χρονομέτρησα το Kick Off στον ST και το 5λεπτο ημίχρονο κρατάει - κρατηθείτε - 5λεπτά! Αλλά, ρε φίλε, δε μου το βγάζεις από το μυαλό, οι παίχτες που τρέχουν γρήγορα στον SP πάνε σφαίρα! Και δεν εννοώ στο πάνω-κάτω, τα κατάλαβα αυτά που μας έγραψες για την ψευδαίσθηση της ταχύτερης κατακόρυφης κίνησης. Εννοώ ότι το animation του sprite, αυτό φαίνεται πιο γρήγορο. Και πάλι βέβαια μπορεί να μην ισχύει πραγματικά τίποτα τέτοιο, αλλά αυτή είναι η αίσθησή μου. Πάντως, σαν playability - και επειδή είχα να παίξω χρόνια - "σπέρνει": καμία σχέση με το Sensible (ορίστε, το 'πα!).

      Μακάρι φίλε να ξεκινούσαμε assembly course, ειδικά σε Commodore 64. Μιλάμε, ανέκαθεν θαύμαζα τους προγραμματιστές που έπαιζαν την assembly στα δάχτυλα περισσότερο από rock stars! Δυστυχώς, καθώς περνάνε τα χρόνια η ικανότητές μου για εκμάθηση νέων πραγμάτων δείχνουν να έχουν πάρει την κατιούσα...

      Με έναν καλό δάσκαλο όμως, ποτέ δεν ξέρεις! ;-)

      Διαγραφή
    13. Τι να πω, εμένα ίδιο μου φαίνεται και το animation (πόσο γρήγορα κουνάνε χέρια/πόδια δηλαδή). Θα τα ξανασυγκρίνω με την 1η ευκαιρία τώρα που υπάρχει και real hardware διαθέσιμο (χε χε!) αλλά δε νομίζω να δω τίποτα διαφορετικό.
      Πέρα από το τι βλέπει ο καθένας μας υποκειμενικά:
      Είσαι ο Dino Dini και έχεις να φτιάξεις το Kick Off σε ST και Amiga. Με δεδομένο ότι

      1. θα το γράψεις σε assembly γιατί θες να είναι real time
      2. τα μηχανήματα έχουν ακριβώς τον ίδιο επεξεργαστή, άρα υπάρχει η δυνατότητα κοινού κώδικα
      3. ο κοινός κώδικας σε assembly θα εκτελεστεί με ακριβώς τον ίδιο τρόπο
      4. το video timing και των δυο συστημάτων είναι ίδιο (50 Hz PAL), άρα όλα ανάγονται σε πολλαπλάσια του 1/50 sec

      έχεις κανένα λόγο να διαφοροποιήσεις το game engine μεταξύ των 2 συστημάτων; Και όταν λέω game engine εννοώ τον κώδικα διαχείρισης των data structures όπως "παίκτης", "μπάλα", "τερματοφύλακας" κλπ - όλα αυτά τα αφηρημένα δεδομένα στη RAM που καθορίζουν την κατάσταση του κάθε αντικειμένου (π.χ. για "παίκτης": τρέχουσα θέση στο γήπεδο, τρέχων προσανατολισμός, αύξων αριθμός animation καρέ για το δεδομένο προσανατολισμό, διάνυσμα σχετικής θέσης ως προς τη μπάλα, αν είναι ο ενεργός παίκτης, επίπεδο κούρασης/μέγιστη ταχύτητα κλπ, αντίστοιχα για "μπάλα": τρέχουσα θέση στο γήπεδο, κωδικός κοντινότερου παίκτη, ύψος, κωδικός τρέχουσας τροχιάς κλπ)

      Από τη στιγμή που όλα αυτά είναι αριθμητικά δεδομένα η αποθήκευση και real-time επεξεργασία/ανανέωσή τους σε κάθε time unit του 1/50 sec μπορεί να γίνει με 100% τον ίδιο κώδικα τόσο σε Amiga όσο και σε ST (*). Δε χρειάζεται καν απεικόνιση στην οθόνη για να παιχτεί ένα ματς (φυσικά αυτό πρακτικό νόημα έχει μόνο σε attract mode, με τον Η/Υ να ελέγχει και τις δύο ομάδες).

      Το display engine "κάθεται" πάνω από το game engine και απλά με δεδομένα θέση/ύψος/καρέ μπάλας και παιχτών από το game engine, κάθε 1/50 sec αναλαμβάνει να δείξει τη σωστή περιοχή του γηπέδου και τους παίκτες στις σωστές θέσεις και πόζες. Εκεί προφανώς υπάρχει διαφοροποίηση μεταξύ Amiga και ST (αναλυτικά βλ. προηγούμενα posts) αλλά νομίζω είναι ήδη προφανές ότι
      ΑΝ
      1. το game engine χρησιμοποιεί ακριβώς τον ίδιο κώδικα
      ΚΑΙ
      2. το display engine προλαβαίνει να "μεταφράσει" τα θεσιακά δεδομένα από το game engine σε οπτικά δεδομένα μέσα στο "time unit" του 1/50 sec
      ΤΟΤΕ
      νομοτελειακά δεν υπάρχει καμιά διαφορά ταχύτητας και τυχόν τέτοια αίσθηση οφείλεται σε ψυχο-οπτικούς παράγοντες.

      (*) Ο κώδικας στον ST θα εκτελεστεί όντως κάπως γρηγορότερα. Αφενός γιατί στην Amiga υπάρχουν 3+3=6 bitplanes άρα το display DMA τρώει το 50% από τα ελεύθερα CPU time slots σε σχέση με το αν είχαμε μόνο 4 bitplanes, αφετέρου λόγω της default ελαφράς υπεροχής του ST σε CPU ταχύτητα (8 MHz αντί για 7.09 MHz). Όμως αυτό δεν έχει καμιά σημασία από τη στιγμή που ολοκληρώνονται επαρκώς γρήγορα οι υπολογισμοί για κάθε frame. Στο υπόλοιπο χρονικό διάστημα μέχρι το τέλος κάθε frame, η CPU τόσο σε ST όσο και σε Amiga απλά "κάθεται", απλά αυτό το "υπόλοιπο" είναι μικρότερο στην Amiga. Ουσιαστικά σημασία έχει να ικανοποιείται η ανίσωση:
      Game engine time + Display engine time < 1/50 sec
      για να τρέχει το παιχνίδι ισοταχώς και στα 50 fps και στα δύο συστήματα.

      Διαγραφή
    14. Νίκο, είναι τόσο λογικά, αναλυτικά και καλοδιατυπωμένα τα όσα γράφεις που θα σου πολύ ότι, απλά, ΜΕ ΕΠΕΙΣΕΣ! (αρκεί φυσικά να ισχύει και στην περίπτωση της Amiga ότι Game engine time + Display engine time < 1/50 sec)

      Α, να μην το ξεχάσω, τσέκαρε αυτό, μπορεί να σε ενδιαφέρει: https://www.youtube.com/watch?v=F4WJYyoF1Lk&spfreload=10

      Είναι από τον δημιουργό του {Closure}, του demo που παρουσίασα στην τελευταία μου ανάρτηση. Είναι πολύ τεχνικό για μένα, αλλά νομίζω ότι εσύ θα μπορέσεις να το παρακολουθήσεις...

      Διαγραφή
    15. Και για ποιον λόγο να χρησιμοποιήσεις την VBL για να μετράς χρόνο και όχι τον Timer B για παράδειγμα; Δεν έχεις raster effects στο ΚΟ2 για να τον χρειάζεσαι εκεί..

      Διαγραφή
    16. @Christos
      Κυρίως επειδή βολεύει εν προκειμένω, δεν αποκλείεται βέβαια κι αυτό που λες.

      Αν με raster effects εννοείς στον ST το αντίστοιχο εφέ του copper στην Amiga (για ομαλά χρωματικά διαβαθμισμένους ουρανούς π.χ.), υπάρχουν στο Kick Off.
      Το γρασίδι στο τερέν είναι ένα χρώμα και εναλλάσσεται μεταξύ ανοικτού και σκούρου πράσινου με raster effects. Αν ήταν bitmap 2 χρωμάτων που σκρόλλαρε, δε θα είχαν κανένα απολύτως λόγο να κάνουν αποκλειστικά οριζόντιες ζώνες το pattern, θα το έκαναν textured όπως στην Amiga.

      (μπορείς εύκολα να δεις ότι δεν είναι bitmap το τερέν όταν η εικόνα πάει από γρήγορη κίνηση να σταθεροποιηθεί, π.χ. κατά την εκτέλεση ενός out από τον τερματοφύλακα. Τότε συχνά οι ζώνες του γρασιδιού μετατοπίζονται κατά ένα pixel σε σχέση με τις λευκές οριζόντιες γραμμές πριν σταθεροποιηθούν οριστικά. Αυτό είναι αδύνατο να συμβεί αν το τερέν είναι ενιαίο bitmap)

      Δεν ξέρω σε εξαντλητικό βάθος το hardware του ST - στην Amiga υπάρχουν αναγνώσιμοι registers που καταγράφουν σε πραγματικό χρόνο τη θέση της ακτίνας ηλεκτρονίων στην οθόνη, ώστε να καθίσταται εφικτός πραγματικά raster-syncrhonised κώδικας.
      Αν στον ST δεν υπάρχει κάτι ανάλογο, τότε προφανώς θα πρέπει να χρησιμοποιηθεί κάποιος μετρητής, φαντάζομαι τα peripheral chips έχουν τέτοιους όπως έχουν και τα αντίστοιχα CIA chips στην Amiga.
      Οπότε ξαναγυρνάμε στο ότι η χρονομέτρηση βολεύει να γίνει με βάση την ανανέωση οθόνης.

      @dony
      Εξαιρετικό video (αν και τα αγγλικά τους ήταν too much για τα ξύλινα αυτιά μου).
      Δεν είμαι τόσο γνώστης του ST ακόμη αλλά τη βασική ιδέα την έπιασα - εκμεταλλεύονται παραθυράκια στον τρόπο που ο GLUE οδηγεί το SHIFTER. Το ρεζουμέ είναι το statemachine του GLUE που παρουσιάζει στο 13:40 και δείχνει τα σημεία (μετρημένα σε cycles) στα οποία ο GLUE κάνει διάφορους ελέγχους και παίρνει τις σχετικές αποφάσεις.
      Π.χ. αν έχεις συνδέσει μονόχρωμο μόνιτορ, τότε ο έλεγχος στο cycle 4 είναι αληθής, και ο GLUE ενεργοποιεί την απεικόνιση οριζόντιας γραμμής (Η = TRUE)
      160 cycles αργότερα (στο cycle 164), που αντιστοιχούν ακριβώς στην ανάγνωση των 640 οριζόντιων pixel από το SHIFTER, η οριζόντια γραμμή "κλείνει" (H = FALSE), αλλά ΑΦΟΥ ξαναελέγξει ότι βρίσκεται σε HI res mode. Κανονικά δεν υπάρχει λόγος για έναν τέτοιο έλεγχο, ούτε για τους ενδιάμεσους (αφού ξεκίνησε σε Hi res mode) αλλά μάλλον για λόγους απλότητας στη σχεδίαση του chip έβαλαν όλους τους ελέγχους στο ίδιο καζάνι, αντί να αλληλο-αποκλείουν ο ένας τον άλλον. Άρα μπορείς με κατάλληλα χρονισμένες αλλαγές mode να κάνεις συγκεκριμένους H=FALSE ελέγχους να αποτύχουν και να συνεχιστεί η απεικόνιση (extended right border) κλπ κλπ. Λεπτομέρειες όταν σκαμπάζω περισσότερα από ST hardware :-P

      Πάντως το state machine του δείχνει ακριβές - π.χ. αν πάρεις ως περίοδο γραμμής T1 σε Hi Res τα 180 cycles (184-4) και σε PAL Lo res αντίστοιχα T2 = 394 cycles (450 - 56), τότε για τις αντίστοιχες συχνότητες (χοντρικά) θα ισχύει: f1/f2 = T2/T1 -> f1 = f2 * (T2/T1)
      όπου f2 = 15.75 KHz (η συχνότητα οριζόντιας σάρωσης σε Lo res).
      Τα παραπάνω δίνουν χοντρικά f1 = 15.75 KHz * 394/180 = 34.48 KHz για την συχνότητα οριζόντιας σάρωσης του ST Hi Res mode, που είναι αρκετά κοντά στο 35.7 KHz που (από ό,τι έχω βρει online) είναι η ορθή τιμή.

      Διαγραφή
    17. Με έστειλες πάλι ρε φίλε. Μένω με ανοιχτό το στόμα με τις γνώσεις σου - πάλι καλά που δεν ξέρεις από Atari, δηλαδή! :p

      Πάντως προφανώς σε αυτό που γράφεις παραπάνω έχεις δίκιο, οι πράσινες γραμμές στο Kick Off δεν υπάρχει περίπτωση να είναι κάτι άλλο από raster effects ή όπως λέγονται, τέλος πάντων: αν δεν ήταν, θα είχαν όντως χρησιμοποιήσει κάποιο tiled texture για το γρασίδι. Εφ' όσον δεν έχουν σχεδιάσει ούτε ένα pixel, προφανώς δεν είναι textures...

      Διαγραφή
    18. Ακριβώς, άσε που το προδίδει με το καλημέρα και η έκταση των πράσινων ζωνών στην περιοχή του border

      (το border color είναι το color00. Γενικά το color00 καλό είναι να μην χρησιμοποιείται σε μια εικόνα, γιατί ό,τι τιμή του δώσουμε το ίδιο χρώμα θα πάρει και το border, που συνήθως το θέλουμε μαύρο. Η συνήθης χρήση του είναι για να αποδίδει το "διαφανές" χρώμα σε περίπτωση overlayed εικόνων, π.χ. genlock.

      Αλλά αν έχεις μόνο 1 bitplane για το τερέν, δηλαδή color00 και color01, δεν έχεις και πολλές επιλογές! Αναγκαστικά χρησιμοποιείς το color00 για τη "μεγάλη" επιφάνεια [δηλ. το γρασίδι - και μάλιστα με raster effects για να του αλλάζεις δυναμικά χρώμα που είναι ό,τι πλησιέστερο στην έννοια του "texture" μπορείς να πετύχεις με ένα χρώμα] και βλέπεις το border να παίρνει τα ίδια χρώματα)

      Διαγραφή
    19. Εντυπωσιακές πληροφορίες πράγματι! Το Kick OFF πάντως είναι κατά γενική ομολογία πιο γρήγορο στον ST. Ίσως γιατί έγινε πρώτα στον ST, και στηρίχθηκε στις δικές του ιδιαιτερότητες για να πετύχει τα μέγιστα. Φυσικά, αυτό δε σημαίνει τίποτα, αφού από όσο γνωρίζω υπάρχουν και hacked εκδόσεις στην Amiga (μπορεί και σε Atari) που είναι πειραγμένες σε πολλές παραμέτρους (και αυτόν της ταχύτητας)και πάνε σφαίρα.

      Διαγραφή
    20. Μα, αυτό ακριβώς εξηγεί ο BLTCON0, ότι δεν είναι πραγματικά πιο γρήγορο το παιχνίδι, αλλά είναι εντύπωσή μας λόγω των raster effects που χρησιμοποιούνται!

      Και, να σου πω και κάτι; Είχα να παίξω Kick Off στον ST από το 1991. Όλα τα χρόνια που μεσολάβησαν μέχρι τώρα, το έπαιζα στην Amiga. Ε, τις τελευταίες 10 μέρες που το έγραψα σε δισκέτα και το ξαναέπαιξα μπας και ξεσκουριάσω στον Atari, δεν μου φάνηκε να είναι ιδιαίτερα γρήγορο ή κάτι τέτοιο. Βέβαια, έπαιζα στο 3ο επίπεδο για να προλαβαίνω και καμιά μπάλα κι όχι σε international είναι η αλήθεια, αλλά μου έδωσε την αίσθηση - τώρα που έχω διαβάσει ό,τι έχω διαβάσει - ότι είναι πολύ καλές οι πιθανότητες να μην έχει διαφορές στην ταχύτητα!

      Να σημειώσω ότι όλα αυτά ισχύουν για το Kick Off: δεν ξέρω τι γίνεται με τα Kick Off Extra Time, Kick Off 2, Final Whistle κλπ γιατί εμένα το πρώτο μου άρεσε και αυτό έπαιζα πάντα! :p

      Διαγραφή
    21. Χμμμμ δεν έχω πειστεί βρε φίλε ότι απλώς δείχνει, αλλά επιμένω στο ότι είναι! Δε ξέρω...πες η ταχύτητα των σουτ, πες το τρέξιμο των sprites, πες η κίνηση των γραμμών, νομίζω ότι το παιχνίδι αντιδρά πιο γρήγορα. Θα ήθελα να έχω ένα εργαστήριο στα πρότυπα PC-lab να μετρούσα με τα κατάλληλα όργανα, ώστε να μπορούσα να σας μιλήσω τεκμηριωμένα αν έχω λάθος αίσθηση ή όχι, αλλά δε μπορώ. Προσπαθώ να δω απο you tube διαφορές στις δύο εκδόσεις και βλέπω επίσης ότι η version της amiga δείχνει να έχει ελαφρώς πιο μικρά γραφικά (σαν να είναι λίγο στο βάθος;). Δε μπορώ να κρίνω όμως απο τους emulators.
      Άσχετο, αλλά κάποτε ένας φίλος μου, με τη βοήθεια editor έβαζε στις εκδόσεις του ST πινελιές (όπως οι μαύρες κηλίδες στη μπάλα)καθώς θεωρούσε ότι την έκδοση του ST δε την είχαν προσέξει καθόλου. Σε κάθε περίπτωση πάντως, έχουμε (ST) ένα παιχνίδι 50fps, που πιάνει και το border, και αυτό δείχνει ένα ταλέντο στον κώδικα (που δε το έχουμε συνηθίσει συχνά) .

      Διαγραφή
    22. @Turrican
      Θα στήσω πλάι-πλάι ST και Amiga και θα σας πω αν δω κάτι, στο Hatari δεν είδα πάντως.

      Διάβασα σε Kick Off forum όμως ότι κυκλοφορούσε τότε κόπια για ST "πειραγμένη" στα 60 Hz. Όπως ανέλυσα παραπάνω, αυτό θα επέφερε 20% αύξηση της gameplay ταχύτητας. Ίσως αυτήν παίζατε και έχετε (αληθινές) εντυπώσεις αυξημένης ταχύτητας.

      Να τονίσω εδώ ότι η δυνατότητα ρύθμισης του ST στα 50/60 Hz υπάρχει από τον 1ο ST του 1985. Οπότε το τρικ ήταν γνωστό από καιρό όταν κυκλοφόρησε το Kick Off.

      Αντιθέτως τότε *μόλις* που είχε ντεμπουτάρει η νέα rev6A μητρική στις A500 με KS 1.3 και με τον νέο Agnus 8372Α που έδινε δυνατότητα εναλλαγής 50/60 Hz και στην Amiga.

      [Ιστορικό σχόλιο: Οι πρώτες μάλιστα παρτίδες με rev6A δεν είχαν καν το νέο Agnus αλλά τον παλιότερο 50-hz-only 8371, γιατί η Commodore δεν είχε σπρώξει ακόμη όλο το παλιό στοκ. Αυτός όμως δημιουργούσε πρόβλημα στο DRAM refresh των νέων x4 chips στις rev6A, και αναγκάστηκαν να βάλουν ένα περίεργο fix κοντά στο trapdoor, βλ. http://amiga.resource.cx/photos/a500,4
      Όποιος θέλει λεπτομέρειες ας ρωτήσει]

      Τελικώς, η δυνατότητα 50/60 Hz
      α) δεν υπάρχει σε πολλές Amiga
      β) ήταν ούτως ή άλλως παντελώς άγνωστη την εποχή κυκλοφορίας του Kick Off. Έτσι ποτέ δεν κυκλοφόρησαν κόπιες για Amiga με δυνατότητα 60 Hz, που θα έδινε την ίδια ακριβώς αυξημένη αίσθηση ταχύτητας.

      Σχετικά με το border:
      Το Kick Off στον ST *δεν* πιάνει τον border. Δεν υπάρχει καμιά απολύτως gaming δράση που συμβαίνει στο χώρο του border. Δες π.χ. ακόμη και οι λευκές γραμμές οριοθέτησης του γηπέδου διακόπτονται μόλις πιάσουν την περιοχή του border, ακόμη και αν υπάρχει κι άλλος γηπεδικός χώρος στο πλάι.

      Απλά, όπως εξήγησα σε προηγούμενα posts, όταν αναγκάζεσαι να παίξεις με 1 bitplane για το τερέν, σημαίνει ότι έχεις 2 χρώματα στη διάθεσή σου: Color00 (που είναι hardware-tied στο border χρώμα) και Color01, ας το πούμε "pen" color εδώ.
      Και χρειάζεσαι οπωσδήποτε οι λευκές γραμμές να μπορούν να εμφανίζονται οπουδήποτε, σε pixel-perfect ανάλυση, και σε διττό (οριζόντιο-κατακόρυφο) προσανατολισμό.
      Άρα θες ένα χρώμα για τις γραμμές (λευκό), και ένα χρώμα για το τερέν (προφανώς πράσινο).

      Αν δώσεις το Color00 για τις λευκές γραμμές, τότε αυτόματα και το border θα είναι κατάλευκο που είναι άκρως απωθητικό για το μάτι.
      Άρα δίνεις το πιο σκούρο χρώμα (πράσινο) στο Color00, και ΑΥΤΟΜΑΤΑ, είτε σου αρέσει είτε όχι, και το border παίρνει αυτό το χρώμα. Δεν έχουμε καμιά προγραμματιστική εξυπνάδα εδώ.
      Αντίστοιχα δίνεις το μόνο άλλο διαθέσιμο χρώμα που έχεις (color01) στο λευκό και με αυτό (pen) σχεδιάζεις τις γραμμές πάνω στο πράσινο background.

      Το μόνο πρόβλημα που απομένει είναι ότι, με ένα και μοναδικό πράσινο χρώμα, το τερέν δε μπορεί να έχει texture ώστε να αντιλαμβάνεσαι την κίνησή του καθώς τρέχει ο παίκτης.
      H μοναδική ρεαλιστικά εφαρμόσιμη λύση είναι π.χ. κάθε 40 οριζόντιες γραμμές να εναλλάσσεις mid-screen την απόχρωση του πράσινου (...-σκούρο-ανοιχτό-σκούρο-...) γράφοντας και ξαναγράφοντας (με κατάλληλα συγχρονισμένο κώδικα ή HBL interrupts) τον color00 register, και δημιουργώντας έτσι εναλλάσουσες χρωματικά ζώνες αξιοποιώντας έναν color register (00).
      Αλλάζοντας τις γραμμές που συμβαίνουν αυτές οι αλλαγές, δίνεις την αίσθηση της κίνησης των ζωνών (μόνο πάνω-κάτω, φυσικά. Η αίσθηση κίνησης δεξιά-αριστερά παραμένει ημιτελής και βασίζεται αποκλειστικά στις λευκές γραμμές και στην εμπειρία).

      Κανονικά θα έπρεπε το border να είναι μαύρο, ως έχει περισσότερο χαώνει παρά βοηθά (αφού δεν αποτελεί ενεργό μέρος του παιχνιδιού). Αλλά αυτό θα χρειαζόταν ή hardware που δε διαθέτει ο ST (copper στην Amiga) ή για κάθε μια από τις 200 περίπου γραμμές που αποτελούν την ενεργό οθόνη ο 68000 να μην κάνει τίποτα άλλο πέρα από το να μετράει cycles περιμένοντας την κατάλληλη στιγμή να περάσει από μαύρο σε πράσινο και ξανά σε μαύρο ή να βγάλουν τον καρκίνο οι προγραμματιστές προσπαθώντας να παρεμβάλουν ανάμεσα σε δύο horizontal DE χρήσιμο κώδικα που συμπτωματικά ξοδεύει τον απαραίτητο αριθμό hardware cycles για να μη χαθεί ο συγχρονισμός. Αυτά μόνο στα demo τα κάνουν (και άν).


      Διαγραφή
    23. Λοιπόν, παίζει να ισχύει αυτό που έγραψε ο Νίκος (BLTCON0), ότι δηλαδή στον ST η κόπια που κυκλοφόρησε ευρέως ήταν στα 60HZ, δίνοντας αυτόματα ένα 20% boost σε σχέση με την έκδοση της Amiga.

      Εγώ δοκίμασα το εξής: έτρεξα το Kick Off από μια δισκέτα που έγραψα πρόσφατα (Automation Menu 76) όπου, στην αρχική οθόνη του menu έχεις τη δυνατότητα πατώντας το "0" να ρυθμίσεις τα Hz. Επέλεξα λοιπόν 60Hz και έπαιξα σε επίπεδο International: η αίσθηση που είχα ήταν ακριβώς η ίδια με εκείνη των νεανικών μου χρόνων! Το παιχνίδι "πάει φέτες", καμία σχέση με την έκδοση της Amiga. Προφανώς, αν θεωρήσουμε ότι κανονικά οι δύο εκδόσεις έχουν ακριβώς την ίδια ταχύτητα, από τη μία το ύψος των raster bars και από την άλλη αυτό το 20% speed boost των 60Hz σου δίνουν την αίσθηση ότι πρόκειται για... άλλο παιχνίδι!

      Δεν ξέρω, η παντελής έλλειψη γραφικών σε σχέση με την Amiga version και αυτή η "κολασμένη" ταχύτητα μεταμορφώνουν το παιχνίδι με θετικό (κατ' εμέ) τρόπο. Βλέποντας μετά απ' αυτό την έκδοση της Α500 με όλα τα γραφικά και την ταχύτητα των 50Hz έχεις την αίσθηση ότι το παιχνίδι πλησιάζει επικίνδυνα το... Sensible Soccer, πράγμα σίγουρα κακό, όχι επειδή το Sensible είναι κακό παιχνίδι, αλλά επειδή το Sensible είναι ένα άλλο παιχνίδι - μια φορά Kick Off δεν είναι.

      Anyway, αυτά είναι προσωπικά γούστα του καθενός και η κάθε άποψη σχετικά με το θέμα μας είναι σεβαστή. Τώρα απομένει να δοκιμάσω το Sensible στον ST και, κυρίως, εάν μπορώ μέσω WHDLoad να τρέξω το Kick Off στα 60Hz στην Amiga! Ε, ρε γλέντια!

      Α, και κάτι τελευταίο: παρατήρησα στον ST ότι όταν η κάμερα είναι σταματημένη στις γραμμές του άουτ (δηλαδή στο πάνω ή στο κάτω τέρμα) η εστία δείχνει να ξανασχεδιάζεται κάθε 1/2 του δευτερολέπτου περίπου. Συμβαίνει αυτό και, αν ναι γιατί; Το γνωρίζει κάποιος;

      Διαγραφή
    24. @dony
      Και σε άλλα fora λένε ότι αρκετά cracked games είχαν σχετικό 50/60 Hz option (με F5/F6 στο cracktro).

      Το "κόλαση" είναι ακριβέστατο με 20% speedup - άσε που λόγω gameplay τα αντανακλαστικά συνήθως αφορούν τμήμα της οθόνης και όχι όλη (όπως π.χ. στα platform), άρα πρέπει να είναι ακόμη γρηγορότερα από 20%.

      Για 50-60 Hz σε Amiga θες ECS Agnus ή μεταγενέστερο. Με 3.1 ROM πατάς space στο boot menu αλλά λογικά θα υπάρχει και σχετική WHDload επιλογή. Πιο σκληροπυρηνικά:
      bset #5,$dff1dc (60 Hz)
      bclr #5,$dff1dc (50 Hz)


      Για την επανασχεδίαση της εστίας:

      1. Οι λευκές γραμμές (και της εστίας) ούτως ή άλλως σβήνονται και επανασχεδιάζονται σε κάθε frame, στο VBLANK χρόνο, είτε έχουμε κίνηση του τερέν είτε όχι. Τότε δε βλέπεις τρεμόσβημα.

      2. Το θέμα είναι αν κάτι υψηλότερης προτεραιότητας διακόψει μέρος της σχεδίασής τους

      3. Το πρόβλημα είναι ο... ήχος (!)

      Ο ST δε διαθέτει ως γνωστόν δυνατότητα PCM ήχου. Κοινώς, ο ST δεν μπορεί να παίξει sampled audio.

      Αλλά το Kick Off χρειάζεται sampled ήχο, τελεία και παύλα (το white noise generator που διαθέτει το YM τσιπ ήχου του ST μπορεί να κάνει κουτσά-στραβά τη δουλειά του για απομίμηση ήχου εκρήξεων ή μπουνιών αλλά σε καμιά περίπτωση δεν μπορεί να αποδώσει ιαχές, γδούπο της μπάλας, δοκάρια, συρσίματα, σφυρίγματα κλπ).

      Τι κάνουμε λοιπόν;
      Η λύση είναι να πάρεις ένα flat tone και να αυξομειώνεις σε πραγματικό χρόνο την έντασή του, και μάλιστα με τέτοιο τρόπο ώστε αν ενώσεις τις ακραίες τιμές που δημιουργούν οι αυξομειώσεις η προκύπτουσα πολυγωνική γραμμή να θυμίζει κάποια συγκεκριμένη κυματομορφή ( = το sample που επιχειρείς να αποδώσεις). Αυτή η τεχνική μπορεί χοντρικά να αποδώσει περίπου 4-bit βάθος ήχου, σε κάποια επιλεγόμενη συχνότητα δειγματοληψίας/απόδοσης, η οποία θα καθορίσει και το ποσοστή χρήσης της CPU.

      Για αυτό απαιτείται συνήθως κλειστό loop στον 68000.

      Αν κάνεις την απόδοση π.χ. στα 40 KHz θες 25 microsecond ανά sample ή 800 samples/frame, δηλαδή 2.5 αλλαγές έντασης ανά scanline. Δηλαδή η CPU δεν προλαβαίνει πρακτικά να κάνει ΤΙΠΟΤΑ άλλο.

      Αν θυσιάσεις γενναία την ποιότητα και πάμε στα 4 Khz (το μισό δηλ. από ό,τι στις παραδοσιακές τηλεφωνικές συνδιαλέξεις - πόσο χειρότερα να το κάνουμε;) θες 2.5 αλλαγές ανά 10 scanlines ή ισοδύναμα 1 αλλαγή κάθε 4 scanlines.

      Αυτό είναι αρκετά πιο υποφερτό και μπορεί κουτσά-στραβά να ενσωματωθεί στον υπόλοιπο game κώδικα.
      Δεν παύει όμως να δεσμεύει σε μεγάλο ποσοστό τη CPU και έτσι, ΟΤΑΝ πρέπει να παιχτεί κάποιος "sampled" ήχος, 1 στις 4 scanlines θα δοθεί για την αλλαγή της έντασης.
      Αν συμπτωματικά λοιπόν τύχει να υπάρχει κάποια σχεδιαζόμενη λευκή γραμμή στην ίδια scanline, επειδή προηγείται η ρουτίνα του ήχου (αλλιώς θα ακούς χρρτς, pops κλπ) η σχεδίαση της γραμμής θα αποτύχει.
      Αν η γραμμή είναι οριζόντια, το εφέ είναι πιο έντονο καθώς θα χαθεί είτε όλη είτε το μεγαλύτερο/ένα σημαντικό μέρος της.
      Αν είναι κατακόρυφη, θα χαθούν μερικά pixel.
      Το 1/2 sec που παρατηρείς έχει να κάνει με το ότι την ώρα του άουτ η μπάλα δεν είναι πραγματικά σταματημένη - όταν το game engine μετά από ένα out τοποθετεί τη μπάλα στη γωνία της μικρής περιοχής, πρώτα κάνει 2-3 αναπηδήσεις (με τα απαραίτητα 'ντουπ', και αν προσέξεις την ώρα του ντουπ είναι που τρεμοσβήνει η εστία). Το μεσοδιάστημα ανάμεσα στα ντουπ δίνει την αίσθηση του 1/2 sec (τώρα αν είναι λίγο μικρότερο ή μεγαλύτερο δεν ξέρω).

      Το εφέ είναι πολύ πιο έντονο όταν μπαίνουν οι ομάδες στο τερέν ή μετά από ένα γκολ, οπότε οι παραταταμένες ιαχές διαρκείας αυξάνουν την πιθανότητα σύμπτωσης με κάποια οριζόντια γραμμή, και τότε θα παρατηρήσεις την κεντρική οριζόντια (ή άλλη οριζόντια) γραμμή να τρεμοσβήνει μερικές φορές μέχρι να ησυχάσει η κερκίδα. Επίσης την ίδια ώρα στις κατακόρυφες γραμμές χάνεται κάθε φορά και διαφορετικό κομμάτι (ανάλογα σε τι φάση θα πετύχει η ρουτίνα του ήχου τον κώδικα σχεδίασης γραμμών).

      Στον STE που έχει DMA PCM audio αυτό το πρόβλημα δε θα υπήρχε, αλλά δε νομίζω να κυκλοφόρησε ποτέ STE-supporting έκδοση του παιχνιδιού.

      Διαγραφή
    25. @BLTCON0:
      ....σε ευχαριστώ για τις γνώσεις που μοιράστηκες, αλλά και τον κόπο σου να γράψεις αυτά τα τέλεια κείμενα! Αποκόμισα πολλά, και μπήκα περισσότερο στον τρόπο σκέψης, πραγματικά ευχαριστώ!
      Από όλα όσα διάβασα πάντως, ενισχύθηκε η πεποίθηση μου, ότι το Kick Off είναι πράγματι ένα έργο τέχνης! Όπως εύστοχα είπες, ο ST δεν είχε την πολυτέλεια να βγάζει rasters, cooper εφέ, και digi sound, χωρίς κόστος (για να μη πούμε για τα 50fps). Το να κάτσει ένας coder και να τα φτιάξει σε ένα τέτοιο game (που κάνει μάλιστα τέτοια χρήση της "φυσικής", φάλτσα, κτλ), είναι κάτι που δεν έχει προηγούμενο. Είναι απίστευτο! Προφανώς (για το θέμα του φόντου) δεν έχουμε αληθινή κατάργηση του border (Είναι αλώστε εμφανές όπως είπες), αλλά από την άλλη, αυτά τα rasters ήταν μεγαλοφυής ιδέα, και κρίνοντας από τη σπανιότητα της, μάλλον όχι και τόσο εύκολη στην υλοποίηση της). Σίγουρα κοστίζει σε CPU time (σε σχέση με μη υλοποίηση της), θα απαιτεί ακριβή συγχρονισμό, ενώ κρίνοντας από το παρελθόν (αλλά και το μέλλον) αντίστοιχων παιχνιδιών, δεν αποτέλεσε ποτέ προτεραιότητα για κανένα. Πραγματικά όλα φαίνονται να είναι στα όρια (είναι ορατό ακόμα και το flickering των γραμμών, και εδώ αρχίζω και σκέφτομαι μήπως η διαφορετική υλοποίηση του κώδικα ανάμεσα στα δυο formats, να δικαιολογούν την αίσθηση που συζητάμε. Δεν έχω την Amiga μου μπροστά, αλλά συνέδεσα τον STE μου σε μια TFT μικρή TV (με scart)για να τσεκάρω (πάντα στο International) μερικά πράγματα. Κάποιο πρόβλημα, είτε με το χρονισμό της οθόνης (ίσως και κάποια ρύθμιση, ή αστοχία με το καλώδιο, μου εμφάνισε το παιχνίδι σε ένα απρόσμενα πράσινο γήπεδο χωρίς τα ράστερς!!! Επίσης δε γνωρίζω αν η επιλογή 50/60 Hz έχει εφαρμογή μόνο σε crt οθόνες, αφού δε φαίνεται στην tft να αλλάζει τίποτα. Συνεπώς δεν μπόρεσα να το τσεκάρω άμεσα. Αναπολώντας πάντως παλιές εποχές που δοκίμαζα αυτή την δυνατότητα, δε θυμάμαι κάτι αξιοσημείωτο στην ταχύτητα των γραφικών (παρά μόνο η ενοχλητική αύξηση της ταχύτητας του ήχου, και γιαυτό δε το χρησιμοποίησα ποτέ). Πάντως και με τελείως πράσινο το γήπεδο, η αίσθηση της κίνησης στο χώρο παραμένει πολύ καλή, σε σημείο μάλιστα που το παιχνίδι θα μπορούσε να κυκλοφορήσει και έτσι. Μια δεύτερη παρατήρηση - πείραμα έκανα αυτή τη φορά με το steem, σε overclocking 96Mz(!!!) δεν έδωσε και κάτι ιδιαίτερο στη ταχύτητα του παιχνιδιού (πλην στα φορτώματα και την εμφάνιση των στατικών οθονών. Απογοητεύτηκα αφού περίμενα μεγαλύτερο κέρδος (στον accelerator μέσω εξομοίωσης), αφού, εν αντίθεση με τους hardware επιταχυντές, ο Steem λογικά επιταχύνει τα πάντα (ακόμα και τις μνήμες). Μια άλλη παρατήρηση που έκανα παλιά, αμέσως μετά τη μετάβαση μου από τον 1040 STM στον STE, ήταν και η αίσθηση ότι το game ωφελήθηκε από την ύπαρξη του blitter, τουλάχιστον στην εμφάνιση των πινάκων κατάταξης -ενδεκάδες κτλ. Σαν game play δε θυμάμαι να παρατήρησα καμία διαφορά, τουλάχιστον όχι κάτι που να θυμάμαι. Αν και γενικά νομίζω ότι όταν έχουμε πολλά μικρά sprites, οι coders προτιμούν τον 68000, παρόλα αυτά, επιφυλάσσομαι μήπως έχει ανατεθεί στον blitter και κάποια μικρή "διευκόλυνση".

      Διαγραφή
    26. Περί Kick Off:
      Συμφωνώ απόλυτα, είναι masterpiece προγραμματισμού και πραγματικά ξεζουμίζει το hardware. Κυλιόμενα raster zones έχουν και άλλα games (π.χ. Turrican II - εξίσου θαυματουργός κώδικας) αλλά το Kick Off πραγματικά στηρίζεται σε αυτά ;-)
      Γενικά το παιχνίδι έχει στηθεί φοβερά συγχρονισμένα και (ορθώς) αν κάπου δε βγαίνουν τα νούμερα (όπως στην περίπτωση της εξομοίωσης sampled ήχου) έχει προβλεφθεί η θυσία ελάχιστου μέρους των γραφικών παρά στα καλά των καθουμένων να παρατηρούνται slowdowns ή jerky κίνηση που θα σκότωνε το gameplay.
      Για τον blitter δε διαφωνώ, είναι πιθανό να αξιοποιείται (άλλωστε υπήρχε ήδη στους Mega ST, και ήδη από το 1988 οι μητρικές των απλών ST είχαν τη σχετική upgrade δυνατότητα). Σε raw copy είναι περίπου 2 φορές ταχύτερος από τον 68000, απότε η διαφορά απόδοσης θα είναι ιδιαίτερα αισθητή κατά την αντιγραφή μεγάλων bitmaps.
      Τα 96 MHz δε θα δώσουν καμιά απολύτως διαφορά εφόσον το παιχνίδι είναι VSYNC και raster συχρονισμένο. Απλά εκεί που σε κάθε frame ξεζουμιζόταν ο 68000 των 8 MHz, τώρα που τρέχει 12 φορές ταχύτερα θα είναι μόνο 8% busy αντί 100% busy :P
      Για τα παλιά παιχνίδια δεν παρατήρησες αύξηση στην ταχύτητα γιατί σχεδόν κανένα fast-action ST game δεν είναι 50 fps! Όλα θέλουν 2-3 fields για να σχεδιάσουν το επόμενο καρέ... το φαινόμενο του 20% speedup ισχύει για games που ντετερμινιστικά καταφέρνουν να ολοκληρώσουν όλες τις απαραίτητες λειτουργίες τους (game AI + display update) σε χρονικό διάστημα ενός field. Το Kick Off το κάνει αυτό (εν ανάγκη θυσιάζοντας ελάχιστα γραφικά).

      Κάποια LCD monitors όταν δέχονται σήμα 50 Hz το κάνουν upconvert στα 60 Hz με το έτσι θέλω. Αυτό όμως δεν επηρεάζει το χρονισμό της "πηγής" (του Atari δηλ).
      Το παιχνίδι εξακολουθεί να τρέχει στα 50 Hz ομαλότατα "μέσα στο μηχάνημα" και απλά η upconverted εικόνα θα είναι χάλια, με τινάγματα, σπασίματα, κτενιάσματα κλπ.
      Η ταχύτητα όμως θα είναι η ίδια (απλά με χάλια απόδοση της κίνησης) και θα αυξηθεί μόνο αν παίξεις το game στα 60 Hz (οπότε και θα αποκατασταθεί η ομαλότητα της κίνησης).
      ΟΜΩΣ αυτό το upconvert γενικά ισχύει για 50 Hz σήμα στο VGA port. Μια LCD TV μπορεί λοιπόν να το κάνει στο VGA port της, αλλά στο SCART/RF port γενικά θα δεχτεί κανονικά 50 Hz / 15.625 KHz σήμα.
      Με άλλα λόγια, δεν είναι κάτι που αφορά τις δοκιμές που έχεις κάνει.

      Για την εξαφάνιση των raster δεν έχω κάτι συγκεκριμένο να σου πω. Οι demo coders αναφέρουν προβλήματα απεικόνισης που ποικίλουν μεταξύ διαφόρων μοντέλων μόνιτορ/τηλεοράσεων, αλλά αυτά συμβαίνουν όταν χρησιμοποιούνται πολύ περίεργα hardware tricks που νομίζω δεν παίζουν στο Kick Off. Και είναι και άλλης φύσης μάλλον.

      Πολλές μικρές/φτηνές LCD TV πάντως δεν υποστηρίζουν πλήρες 24-bit χρώμα αλλά 18-bit, και έτσι να χάνουν τις μικρές χρωματικές διαφορές. Αν τώρα λάβουμε υπόψη ότι κατά πάσα πιθανότητα δε στέλνεις RGB σήμα στην TV αλλά composite video΄(που ρίχνει πολύ την ποιότητα), ίσως εκεί να εντοπίζεται το πρόβλημα. Δηλαδή λόγω composite να μικραίνει πολύ η χρωματική απόσταση των δύο πράσινων, να πέφτει κάτω από το όριο των 4 τόνων που είναι το όριο της TV, και έτσι να μη ξεχωρίζουν στην TV.

      Δες αν συμβαίνει το ίδιο συνδέοντας την TV με απλό RF καλώδιο στο modulator (το ίδιο composite σήμα στέλνει και κει ο STE).
      Γενικά, ένα σωστό SCART RGB καλώδιο που να παίζει σε όλους τους ST, πρέπει να αγνοεί το pin2 (που είναι composite video και όχι καθαρό Composite SYNC στους ST με modulator) και να παράγει καθαρό CSYNC από τα HSYNC και VSYNC σήματα του video port.
      http://info-coach.fr/atari/hardware/video.php#create-composite
      Γιατί αν μια SCART TV δει full video σήμα στο composite input, θα πάρει από κει την εικόνα και όχι από τα RGB inputs. Ενώ αν δει μόνο το σήμα συγχρονισμού, την εικόνα θα την αναζητήσει από τα RGB.

      Διαγραφή
    27. Θα δοκιμάσω λοιπόν το Kick Off με διαφορετική σύνδεση με την πρώτη ευκαιρία! Πάντως και με εντελώς πράσινο τερέν, δεν αντιμετώπισα κανένα πρόβλημα αίσθησης ή αποπροσανατολισμού! Είναι τόσο γρήγορο ως παιχνίδι, που βλέπεις ακαριαία τις "πολύτιμες" γραμμές του γηπέδου και αντιλαμβάνεσαι αμέσως το που βρίσκεσαι. Επίσης βοηθά και ο ήχος, αφού ύστερα από μεγάλη τριβή με το game, καταλαβαίνεις τη θέση σου πια, μόνο με το αφτί (πόσες φορές άκουσες το ντουπ- ντουπ, που κάνει η επαφή του παίχτη με τη μπάλα κατά το κατέβασμα). :P

      Για τον Atari blitter (και μερικά ιστορικά στοιχεία):
      Κάποιες φορές όταν υπάρχουν πολλά μικρά sprites, ο 68000 μπορεί να είναι γρηγορότερος απο το blitter. Υπάρχουν κάποιοι περιορισμοί, αλλά και πολλά προτερήματα, μα δυστυχώς η ελλιπής ενημέρωση απο την Atari έκανε τους coders να ψάχνονται. Σήμερα οι προγραμματιστές έχουν βρει νέους και αποδοτικότερους τρόπους λειτουργίας του! Ο BLitter άρχισε να σχεδιάζεται σχεδόν αμέσως μετά τη δημιουργία του πρώτου ST. Το 1986 έχουμε πληροφορίες ότι ήταν υπό ανάπτυξη, ενώ το 1987 είχαμε στα ST και επίσημα την blitter υποστήριξη με το νέο TOS 1.02 (Blitter -Rainbow TOS). To πρώτο documentation που είδα εγώ είναι του 1987. Κάποιοι λένε ότι και πριν το λανσάρισμα των MEGA ST, κυκλοφόρησαν και κάποια ST με blitter (μικρές ποσότητες). Ο Blitter αυτής της περιόδου, ήταν μια ημιτελής πρώιμη μορφή του τσιπ (γιαυτό και η Atari δε το είχε συμπεριλάβει τόσο καιρό σαν στάνταρ σε όλα τα ST και άφηνε κενή βάση). Αλλοιωμένα γραφικά, μπόμπες και άλλα δεινά, την ανάγκασαν να τον αποσύρει και να τον επανασχεδιάσει (Αυτός είναι και ο λόγος που στο Wings of Death υπάρχει στο menu η επιλογή "disable blitter". Όχι επειδή επιθυμεί κανείς μείωση απόδοσης, αλλά αφορά εκείνα τα τσιπς της πρώτης περιόδου (προφανώς στη Γερμανία θα κυκλοφόρησαν πρώτα).

      Πραγματικά πανέμορφα (και σταθερά) τα Rasters του Turrican (μου αρέσει το 2) και λάτρεψα (μια εξαιρετική δουλειά, που μάλιστα αναπτύχθηκε πρώτα στην Amiga και κατόπιν έγινε μεταφορά στον ST), to Onslaught! Αν και είναι στρυφνό σαν gameplay, θαυμάζω τη δουλειά του στον Atari! Βέβαια τα Rasters του Kicκ Off πιάνουν και το border, και αυτό δε το έχω δει ξανά.

      Διαγραφή
    28. @Turrican
      Έτσι είναι - από ένα σημείο εμπειρίας και μετά η "ηχο-χρονική" αίσθηση του παιχνιδιού βάζει την όραση σε 2η μοίρα :P
      Εγκεφαλική αποθέωση!

      Για τον blitter δεν ξέρω πολλά ιστορικά... ίσως να κυκλοφόρησαν σε software houses developer systems με "προβληματικούς" blitter, απλά για να μάθουν οι προγραμματιστές το blitter στην πράξη, και μετά αυτά τα μηχανήματα να μεταπωλήθηκαν παράνομα και να κυκλοφόρησαν έτσι και παραέξω.

      Από αυτά που έχω διαβάσει ως τώρα (blitter FAQ - Paradox) σε σύγκριση με το blitter της Amiga αλλού πλεονεκτεί αλλού μειονεκτεί. Στη διαχείριση BOBs π.χ. μειονεκτεί ελαφρώς γιατί χρειάζεται περισσότερο CPU overhead για την επίτευξη σύνθετων logical operations όπως masking, που είναι απαραίτητα στα games.

      Για το Wings of Death εγώ θα έλεγα ότι έβαλαν την επιλογή για να δείξουν ότι και χωρίς blitter το παιχνίδι πετάει :-)


      Για τα border raster του Kick Off τα είπα ήδη.
      Πίστεψέ με, αν ήταν στο χέρι τους δε θα το έκαναν.

      Απλά στο Kick Off δεν ενοχλεί και τόσο ίσως (ενοχλεί πάντως) γιατί μοιάζει φυσιολογική επέκταση του τερέν. Αλλά δεν παύει το border να είναι νεκρή περιοχή που λόγω ομοιότητας με το ωφέλιμο τερέν μπορεί και να μπερδέψει.


      Η τεχνική εξήγηση για το border είναι πολύ απλή:

      Σε κάθε οριζόντια γραμμή, ένα χρονικό κλάσμα της (π.χ. 10%) πρέπει να δοθεί για την επιστροφή της ακτίνας ηλεκτρονίων πίσω αριστερά. Εμείς μπορεί να σκεφτόμαστε ότι η επιστροφή γίνεται ακαριαία, αλλά στην πραγματικότητα δαπανάται κάποιος χρόνος για την επιστροφή και σταθεροποίηση της ακτίνας. Όσο διαρκεί το φαινόμενο αυτό, η ακτίνα πρέπει να είναι τελείως σβηστή (δεν παράγονται ηλεκτρόνια), για να μην προκαλέσει παρεμβολές στα ήδη σχεδιασμένα καθώς επιστρέφει. Αυτό το διάστημα λέγεται Horizontal Blanking και όσο διαρκεί δεν υπάρχει η έννοια του "χρώματος" αφού η ακτίνα είναι νεκρή.
      Το υπόλοιπο 90% τώρα δεν είναι πλήρως αξιοποιήσιμο, αφενός γιατί λόγω γεωμετρικών αλλοιώσεων στα άκρα των CRT θα ήταν άχρηστη περιοχή για απόδοση κειμένου, αφετέρου γιατί το display τρώει κύκλους DMA οπότε κάπου πρέπει να στριμώξεις και το DMA για τα άλλα υποσυστήματα (floppy, sound, δίσκος κλπ).
      Άρα θυσιάζεται π.χ. ένα 10% αριστερά και ένα άλλο 10% δεξιά (overscan περιοχή ή border), στα οποία διαστήματα ο Shifter δεν κάνει DMA display data. Αυτό το κάνει μεταξύ 20% και 90% της γραμμής (περιοχή DE = Display Enable).
      Επειδή όμως η ακτίνα ενεργοποιείται μετά το Horiz. Blank και άρα ο Shifter ΠΡΕΠΕΙ να δείξει κάτι, αποφασίζεται και διατάσσεται (*) να φαίνεται το χρώμα του καταχωρητή color00, όποιο κι αν είναι αυτό, ως χρώμα του αριστερού border.

      Το ίδιο γίνεται και κατά την κατακόρυφη διεύθυνση.
      Εδώ σε κάθε frame αναλογούν 313 γραμμές (σε PAL), 25 από τις οποίες είναι χρόνος που ξοδεύεται στο αντίστοιχο Vertical Blanking (δηλαδή στο διάστημα επιστροφής και σταθεροποίησης της ακτίνας από κάτω δεξιά προς πάνω αριστερά, για να ξεκινήσει το επόμενο frame). Οι πραγματικά σχεδιαζόμενες γραμμές δηλαδή είναι 313 - 25 = 288 (εξ ου και σε progressive PAL DVD video η ανάλυση των 720 x 576 - το 576 δεν είναι παρά 288 επί 2).
      Έτσι 288 - 200 = 88 δια 2 = 44, έχουμε δηλαδή πάνω Border 44 γραμμών και άλλες τόσες ως κάτω border, για τα οποία ισχύουν ακριβώς τα ίδια με πριν (απεικόνιση του color00, οποιο κι αν είναι αυτό ανά πάσα στιγμή).


      Αν ήταν στο χέρι τους, θα έβαζαν color00 = μαύρο και δε θα το χρησιμοποιούσαν πουθενά αλλού.
      Όταν όμως, όπως εξήγησα κάποια posts πιο πάνω, λόγω έλλειψης χρωματικής παλέτας για το τερέν σου έχουν απομείνει μόνο τα color00 και color01, τότε δεν έχεις την πολυτέλεια της επιλογής.
      Αναγκαστικά χρησιμοποιείς και το color00 και αποδέχεσαι τις αντιαισθητικές συνέπειες, που είναι ό,τι χρώμα δώσεις στο color00 να περνάει και στο border.


      (*) Θα μπορούσαν να είχαν αποφασίσει αντί για το color00 να δείχνεται πάντα μαύρο (οι R G B δέσμες στη χαμηλότερη δυνατή ένταση). Αυτό όμως θα απέκλειε δια παντός τη δυνατότητα overscan ή genlock, μια και μπορεί η περιοχή του border να μην είναι ιδιαίτερα αξιοποιήσιμη για τις περισσότερες εφαρμογές αλλά στην τηλεόραση το overscan είναι ο κανόνας.

      Διαγραφή
    29. Σε ευχαριστώ και πάλι για τα όσα μας μαθαίνεις Νίκο - έχω την αίσθηση ότι διαβάζοντας τα όσα μοιράζεσαι μαζί μας δεν μπορούμε παρά να βγούμε (έστω και λίγο) σοφότεροι!

      Θα ήθελα να καταθέσω πάντως και εγώ την άποψή μου για το θέμα του border στο Kick Off του ST που βέβαια, είναι εντελώς υποκειμενική. Θεωρώ ότι το παιχνίδι θα έχανε πολύ αν ο Dino Dini είχε τη δυνατότητα να χρησιμοποιήσει ένα ακόμα χρώμα και επέλεγε να κάνει το border μαύρο. Ίσως μέρος της αίσθησης της ταχύτητας και της συνολικής εμπειρίας του Kick Off στον ST να είναι και το κινούμενο rasterο-border το οποίο, αν και επί της ουσίας δεν χρησιμοποιείται ως περιοχή παιχνιδιού δίνει στον παίκτη την αίσθηση της "άπλας" - σα να μπορεί να χρησιμοποιείσει ολόκληρη την οθόνη (πράγμα που φυσικά δεν συμβαίνει). Αυτό εισπράττω εγώ τουλάχιστον από την όλη ιστορία...

      Θα ήθελα, μιας και αναφέρθηκε παραπάνω το Wings Of Death, να ρωτήσω κάτι που με βασανίζει χρόνια τώρα: αφού τα joystick ports του ST είναι "κανονικά", δηλαδή δεν λείπει κάποια γραμμή όπως στον Amstrad, ας πούμε, γιατί τα παιχνίδια γενικώς δεν υποστηρίζουν λειτουργία autofire; Για παράδειγμα, ένα Tomahawk στον ST με το autofire ενεργοποιημένο δεν κάνει τίποτα ενώ στο ίδιο παιχνίδι στην Amiga με το autofire "βαράει" σαν παλαβό! Το ίδιο ακριβώς αν θυμάμαι καλά ισχύει και στο Lethal Xcess και στο Wings Of Death και σε πολλά άλλα shooters με αποτέλεσμα, όταν τα παίζεις στον ST, να είσαι αναγκασμένος να ακροβατείς στο μεταίχμιο μεταξύ πιασμένου δακτύλου και πλήρους αγκυλώσεως!

      Συνεπώς, 2 είναι τα ερωτήματα: το πρώτο είναι γιατί συμβαίνει αυτό και το δεύτερο πώς λύνεται; Χρειάζεται κάποιο εξωτερικό κύκλωμα;

      Διαγραφή
    30. Α, και κάτι άλλο: τι προσφέρει η εγκατάσταση blitter σε έναν ST; Εννοώ, υπάρχει software που τον εκμεταλλεύεται ή απλά, όπως έγραψε παραπάνω ο Turrican μπορεί να δημιουργήσει προβλήματα; Έτσι κι αλλιώς το software του STE δεν μπορείς να το τρέξεις, οπότε ποιο είναι το κέρδος;

      Διαγραφή
    31. @dony
      Δεν έχεις άδικο, συχνά "bugs" γίνονται "features" και αυτό το ψευδο-overscan ίσως και να εξυπηρετεί καλύτερα από ένα σκέτο μαύρο border :-)
      Η αίσθηση άπλας είναι δεδομένη (βοηθάει και η πλήρης ομοιομορφία προς κάθε κατεύθυνση. Σε ένα platform δε θα ήταν εξίσου αποδεκτό το αποτέλεσμα).

      Γενικά το πραγματικό overscan δίνει το κάτι παραπάνω στα games, είναι σα να βλέπεις TV (που by default σε overscan δείχνει) πολλά arcade games έτσι έτρεχαν, αλλά στα home micros υπάρχουν άλλοι περιορισμοί. Ακόμη και στην Amiga, η αξιοποίηση του border ως gaming area είναι προβληματική (απενεργοποιεί τα hardware sprites).

      Πάντως ο Dini δεν το έκανε έτσι στον ST λόγω ομορφιάς και άπλας :-) αλλιώς θα το είχε κάνει έτσι και στην Amiga (και θα είχε γλιτώσει και την κατά 50% αχρήστευση των CPU/blitter λόγω dual playfield με 6 bitplanes).


      Όσον αφορά το blitter... γενικά όχι, δεν προσφέρει κάτι στο 99% των εφαρμογών η ύπαρξη του.
      Ο βασικός λόγος είναι ότι την περισσότερη ώρα ο χρήστης κάθεται και ξύνεται. Αν τώρα κάποια στιγμή εκτελέσει μια λειτουργία η οποία παίρνει 0.5 sec με τον blitter και 1 sec με τον 68000, σιγά τα ωά, αφού για το επόμενο μισό λεπτό πάλι την οθόνη θα κοιτάει.

      Μπορεί να προσφέρει επιτάχυνση στο GUI, αλλά αυτό είναι περισσότερο διακοσμητικό/αισθητικό παρά πρακτικό/λειτουργικό.

      Ρεαλιστικά, πάρε τα υπόψη μεγέθη: ένας ST πάει μέχρι τα 4 MB.
      Μια ενέργεια με τον blitter πάνω σε ΟΛΑ τα 4 MB θα πάρει 1-3 seconds, ενώ με τον 68000 2-9 seconds.
      (και μιλάμε πάντα για τις λιγοστές εκείνες ενέργειες που ταιριάζουν στο hardware του blitter - δεν είναι CPU γενικής χρήσης όπως ο 68000). Δε σου κόβει την παραγωγικότητα ο 68000 λοιπόν ;-)

      Για να κερδίσεις κάτι ουσιαστικό από τον blitter σε user-applications, πρέπει να έχεις μπόλικα δεδομένα σε έναν μεγάλο δίσκο και με batch processing, αυτοματοποιημένα δηλ, να τα διαβάζεις/επεξεργάζεσαι (σε δόσεις των 4 MB)/ξαναγράφεις. Που και πάλι θα μειωθεί αναλογικά το κέρδος λόγω του read/write overhead του δίσκου. Και πάντα εφόσον μπορεί να αξιοποιηθεί ο blitter, π.χ. σε κανά graphics filter.

      (Π.χ. ο blitter μπορεί να διπλασιάσει ή να τετραπλασιάσει αλλά όχι να τριπλασιάσει ή πενταπλασιάσει την ένταση ενός audio sample. Οπότε ποιος ο λόγος να γράψεις ξεχωριστό κώδικα; Και δε μπορείς να πεις για να πετύχω 5x κάνω ένα πέρασμα με blitter για 4x και μετά άλλο ένα "μικρότερο" με CPU για το υπόλοιπο - δε λειτουργεί έτσι)


      Για αυτό η πραγματική αξία του blitter εντός των ορίων του μηχανήματος είναι στα games:
      Και οι λειτουργίες που υποστηρίζει (shifting, masking, AND-ing, OR-ing κλπ) ταιριάζουν στα games, και πρέπει να γίνονται συνεχώς (25-50 φορές/sec) και γίνονται πάνω στο ίδιο data set ώστε να μη χρειάζεται συνεχής εξωτερική τροφοδότηση δεδομένων.

      Στα υπόλοιπα, η αξιοποίησή του είναι συνήθως πολυτέλεια και όχι ανάγκη.


      Προβλήματα πάντως δε μπορεί να δημιουργήσει. Ο Turrican απλά ανέφερε το ενδεχόμενο να κυκλοφόρησαν παρτίδες προβληματικών blitter, αλλά αν έγινε κάτι τέτοιο λογικά έγινε ανεπίσημα και όχι από την Atari (η οποία επισήμως δεν πούλησε κανέναν ST με blitter).

      (Η *εκ των υστέρων* αντικατάσταση κώδικα 68000 με κώδικα που αξιοποιεί τον blitter μπορεί να προκαλέσει προβλήματα, λόγω αλλαγής του χρονισμού της ρουτίνας, αλλά αυτό είναι τελείως άλλο θέμα).

      Δεν κατάλαβα τι ακριβώς εννοείς με το "Έτσι κι αλλιώς το software του STE δεν μπορείς να το τρέξεις, οπότε ποιο είναι το κέρδος;". Σαφώς και δεν ισχύει η ισότητα ST + blitter = STE, αλλά όσον αφορά το blitter τουλάχιστον, πρόκειται για τον ίδιο ακριβώς blitter και λειτουργεί με τον ίδιο ακριβώς τρόπο και στα δύο μηχανήματα.

      Οπότε αν από τα εξτραδάκια του STE κάποιο πρόγραμμα περιορίζεται στον blitter, μια χαρά θα τρέξει και στον απλό ST+blitter. Επίσης αν αξιοποιείται η έξτρα παλέτα των 4096 χρωμάτων, πάλι θα τρέξει στον ST, απλά θα χαθούν κάποιες μικρές χρωματικές διαφορές.

      Διαγραφή
    32. Σε ευχαριστώ και πάλι για τις πολύ χρήσιμες πληροφορίες, Νίκο!

      Σε αυτό που μου γράφεις ότι δεν κατάλαβες τι ακριβώς εννοώ, νομίζω ότι μια χαρά το κατάλαβες: αυτό ακριβώς έγραφα, ότι αν με την προσθήκη ενός blitter ο ST έτρεχε software του STE, τότε θα άξιζε τον κόπο να μπει κάποιος σε αυτή τη διαδικασία. Αν όμως αυτό δεν ισχύει - γιατί πολύ σωστά αναφέρεις ότι ST+blitter <> STE - τότε δεν έχει κάποιο ιδιαίτερο νόημα μια τέτοια κίνηση. Βέβαια, έχω πετύχει ΕΝΑ νέο παιχνίδι που στα requirements ανέφερε "Atari STE, Mega ST, Mega STE or ST with blitter" οπότε ναι, εκεί θα έπιανε τα λεφτά του!

      Θεωρώ γενικώς απίθανο κάποιο πρόγραμμα που έχει φτιαχτεί για τον STE να μην χρησιμοποιεί τα "νεώτερα" features όπως είναι η πιο καινούρια ROM και ο PCM ήχος, οπότε να τρέχει και σε ST με blitter. Με αυτή τη λογική θα μπορούσε να μη χρησιμοποιεί ούτε και τον blitter! :D

      Σε άλλα νέα, όπως είχα πει έσπευσα να δοκιμάσω το Kick Off στα 60Hz στην Amiga μου: η "επιτάχυνση" ήταν σαφής στα menus (αλλά εκεί μπορεί να επηρεάζει και ο accelerator) αλλά, με το που πήγα να ξεκινήσω να παίζω η οθόνη έγινε μαύρη και μετά τίποτα. Βέβαια το WHDLoad έκανε quit, οπότε δεν είχαν κολλήσει τα πάντα ή κάτι τέτοιο.

      Οπότε έχουμε 2 ενδεχόμενα: ή ότι το Kick Off δεν παίζει στα 60Hz, ή ότι είναι θέμα του chipset της Α500 μου. Με ένα check με το WhichAmiga διαπίστωσα τα παρακάτω:

      Graphics System: Amiga OCS
      Custom graphics chip: OCS Denise 8362
      Custom animation chip: ECS PAL Fatter Agnus 8372A 1MB
      Other custom chip(s): Paula 8364 (rev 0), Gayle (rev 13)

      Τι λέτε γιατρέ μου; Είναι hardware ή software το θέμα; Θα πρέπει μήπως να ξαναδοκιμάσω σε Α1200;

      Διαγραφή
    33. @dony
      Για το autofire, δεν πρέπει να μπερδεύουμε την υποστήριξη autofire από το software με αυτήν από το hardware.

      Η hardware υποστήριξη χρησιμοποιεί απαραίτητα έξτρα κύκλωμα (ουσιαστικά έναν timer που ανοιγοκλείνει με κάποιο προκαθορισμένο ή ρυθμιζόμενο ρυθμό έναν ηλεκτρονικό διακόπτη, σε παράλληλη σύνδεση με το microswitch του firebutton).
      Έτσι απαιτεί και τροφοδοσία, οπότε αν θέλεις να γίνεται από το joystick port θα πρέπει αυτό να παρέχει και την +5V γραμμή και να επιπλέον να δίνει και αρκετά mA ώστε να μην κινδυνεύει από υπερφόρτωση).
      Αλλιώς μπορείς πάντα να χρησιμοποιήσεις ένα εξωτερικό τροφοδοτικό.
      Ένα τέτοιο κύκλωμα μπορεί είτε να υπάρχει ήδη στο εσωτερικό του joystick είτε να προστεθεί ως add-on σε ένα στοιχειώδες joystick, λειτουργικά δεν υπάρχει καμιά απολύτως διαφορά.

      Επειδή λοιπόν ένα τέτοιο hardware autofire παράγει ακολουθιακά ΠΛΗΡΗ 'firebutton events' (δηλαδή και press και release του firebutton), είναι εφαρμόσιμο σε ΟΠΟΙΟΔΗΠΟΤΕ παιχνίδι (*)

      (*) Πάντα σε συνδυασμό με τη ρουτίνα ανάγνωσης του joystick που χρησιμοποιεί το παιχνίδι. Μπορεί π.χ. στην Amiga, που είναι εύκολος ο προγραμματισμός raster-generated interrupts, η ρουτίνα να καλείται 4 φορές σε κάθε frame με αποτέλεσμα να είναι δυνατή η ανίχνευση ως και 2 fire events / frame, και το παιχνίδι dutifully να σχεδιάσει 2 σφαίρες να φεύγουν στο επόμενο καρέ, στο ίδιο παιχνίδι στον ST αυτό μπορεί να μη συμβαίνει.

      Γενικά η συνήθης πρακτική είναι μια ανάγνωση της κατάστασης του joystick ανά frame, δηλαδή μέχρι και 25 events/sec, οπότε "τρελλοί" ρυθμοί hardware-assisted autofire συνήθως πάνε χαμένοι.

      Επίσης ο ρυθμός του hardware autofire πρέπει να είναι ελαφρώς μη-συγχρονισμένος με τον κώδικα ανάγνωσης του joystick (αλλιώς υπάρχει ο κίνδυνος κάθε φορά που διαβάζεται η κατάσταση του joystick το fire να βρίσκεται στη θέση "pressed" και έτσι να μην αναγνωρίζεται κανένα firebutton event), άρα καλό είναι να ρυθμίζεται χειροκίνητα.


      Στη software υποστήριξη τώρα τα πράγματα είναι πιο απλά: Το ίδιο το παιχνίδι αποφασίζει να ενεργοποιήσει αυξημένο ρυθμό fire, είτε ως bonus (επειδή πήρες το κατάλληλο addon ξερω γω) είτε ως διευκολυντικό στοιχείο του gameplay. Το software θα καθορίσει και τις παραμέτρους (ρυθμό και τρόπο ενεργοποίησης).
      Π.χ. αν διαπιστώσει συνεχές πάτημα του fire για ένα δευτερόλεπτο, τότε ενεργοποιεί το autofire μέχρι να ανιχνεύσει "release".
      Ή μπορεί να το ενεργοποιεί πατώντας κάποιο πλήκτρο στο keyboard.

      Εδώ προφανώς δε χρειάζεσαι τίποτα παραπάνω από το κλασσικό Atari joystick.


      Οπότε αν το ίδιο game στον ST συμπεριφέρεται χωρίς autofire ενώ στην Amiga με autofire, είναι αποκλειστικά θέμα του κώδικα (μπορεί π.χ. να διαπίστωσαν ότι στην Amiga περισσεύει χρόνος για να σχεδιαστούν οι έξτρα σφαίρες στην οθόνη που θα συνεπαγόταν το autofire ενώ στον ST όχι, και για να αποφύγουν τα slowdowns αφαίρεσαν αυτή τη δυνατότητα. Μάλιστα σε αυτήν την περίπτωση, αν αυτός είναι ο σκοπός, θα πρέπει ένας καλοσχεδιασμένος κώδικας να θέτει ούτως ή άλλως το πλαφόν, οπότε και με hardware-assisted autofire διαφορά δε θα υπήρχε.

      Διαγραφή
    34. @dony
      Amiga 500 με Gayle εεε; κάνει μπαμ από μακριά ότι έχεις accelerator (ή έστω ένα σκέτο IDE add-on) :P

      Λοιπόν ο Agnus είναι ο σωστός, οπότε έχεις υποστήριξη 50-60 Hz. Το ότι είναι OCS η Denise δεν ενοχλεί καθόλου.

      Δε βλέπω λόγο το WHDLOAD να έχει προβλήματα με τον accelerator... οπότε μάλλον το Kick Off είναι που δε γουστάρει τα 60 Hz. Δυστυχώς ποτέ δεν το δοκίμασα στα 60 Hz για να έχω κάτι από μνήμης να πω (και το χώρο στο γραφείο τώρα τον πιάνει ο ST :P)

      Βλέποντας πάντως αυτό το video
      https://www.youtube.com/watch?v=JnBrb7dgJvU
      φαίνεται το Kick Off (οκ, το 2, αλλά το design είναι πρακτικά ίδιο νομίζω) να χρησιμοποιεί full-screen

      PAL full-screen game σε NTSC είναι δύσκολη υπόθεση.
      Σε NTSC (60 Ηz) όλο κι όλο το display έχει 262/263 γραμμές (σε αντίθεση με τις 312/313 του PAL).
      Το VBLANK είναι 20 γραμμές σε NTSC αν θυμάμαι καλά, άρα απομένουν 242/243 "χρήσιμες" γραμμές.
      Ενώ ένα PAL full-screen game έχει 256 γραμμές, άρα δε βγαίνουν τα νούμερα, οπότε τυπικά το παιχνίδι πρέπει να χαρακτηριστεί "50 hz only".

      Στον ST που η ανάλυση είναι fixed στα 320x200 είτε σε PAL είτε σε NTSC, δεν προκύπτει τέτοιο πρόβλημα προφανώς, μόνο ο ελαφρώς μειωμένος χρόνος ανά καρέ. Ενώ στην Amiga μπορεί να καταρρεύσει όλο το game αν δεν έχει ληφθεί ειδική μέριμνα.

      Δες πως συμπεριφέρονται και άλλα 320x256 Amiga games στα 60 Hz (ίσως το Battle Squadron είναι ένα από αυτά.. full-screen δεν ήταν;), αν δεις παρόμοια προβλήματα μάλλον αυτή είναι η αιτία και ξεχνάμε το Kick Off στα 60 Hz στην Amiga.

      Διαγραφή
    35. @dony
      Για τον blitter στον ST καλά τα λες φυσικά, γιατί τελικώς αυτή ήταν η ρεαλιστική εκδοχή των πραγμάτων.

      Ότι έχει αξία από μόνος του ο blitter στον ST, έχει. Αλλά εδώ η πολιτική της Atari είναι που έδωσε την τελική μορφή στα πράγματα.

      Τον blitter τον είχαν έτοιμο από το 1987. "Στανταράκι" στα home μηχανάκια έγινε το 1990 με τον STE (παραβλέπω εδώ ότι μετά την εισαγωγή του STE συνέχισαν να παράγονται και να πουλιούνται STFM για κάποιο διάστημα).

      3 χρόνια χωρίς blitter είναι πολλά (οι Mega ST δε μετράνε, γιατί η αξία του blitter είναι στα games, και ποιος έπαιρνε Mega ST για να παίζει games; σαν DTP μηχανάκι τον προωθούσε η ίδια η Atari)

      ΑΝ τον είχαν συμπεριλάβει ως στάνταρ στους STF(M) από το 1987, φυσικά και θα τύγχανε καθολικής αξιοποίησης στα games. Και με ένα trade-in πρόγραμμα μικρού κόστους αλλαγής της παλιάς μητρικής με νέα με blitter, πρακτικά όλοι οι ST gamers "blitter-enabled" θα ήταν :-)

      Αλλά η συμπερίληψη του blitter σε μια εποχή που ο ST ήταν 100 λίρες φτηνότερος από την Amiga θα μείωνε τη διαφορά και θα τον έκανε λιγότερο ελκυστικό. Άρα το κόστος του blitter θα έπρεπε να το επωμιστεί η Atari. Αφού λοιπόν πουλούσε ακόμη καλά ως είχε, το άφησαν για αργότερα και γλίτωσαν τα έξοδα (*). Απλώς σιωπηλά άρχισαν να πωλούν ST με blitter-capable μητρικές (που δε στοιχίζει τίποτα). Μέχρι και το socket τσιγκουνεύτηκαν!

      Η ιστορία δείχνει φυσικά ότι καλύτερα να πουλούσαν τους Mega με άδεια τη θέση για blitter και να εφοδίαζαν τους ST με blitter, παράλληλα το trade-in.
      Κανένας δε θα νοιαζόταν για την έλλειψη blitter στους Mega, το expansion bus πιο χρήσιμη προσθήκη ήταν. Αλλά φαίνεται η Atari ήθελε κάθε πιθανό κράχτη για τους Mega.

      (*) Φυσικά ο ST πουλούσε καλά λόγω της πανάκριβης Amiga 1000, με αποτέλεσμα οι bedroom coders και power users της εποχής ST να έχουν και όχι Amiga. Με την έλευση της A500 άρχισε και η Amiga να αποτελεί target platform για τα software houses που κατά βάση γραμμένη την είχαν ως τότε, αλλά σιγά μην επένδυαν σε νέα τεχνογνωσία όταν μπορούσαν να χρησιμοποιήσουν ουσιαστικά αυτούσια την ST version που με τα στάνταρ της εποχής μια χαρά έκανε τη δουλειά της.
      Οπότε μέχρι να εμφανιστούν οι νέοι bedroom coders με Amiga που την σκάλισαν και ανέδειξαν τις δυνατότητες του chipset στα arcade-style games (γιατί φυσικά το ξεζούμισμα το κάνουν οι άνευ ωραρίου bedroom coders και όχι οι μισθωτοί 9:00-17:00 "regular programmers" :-) ), είχαμε την εποχή των "ST ports" που έκλεισε γύρω στο 1989-90, οπότε σε συνδυασμό και με τη μείωση τιμής στην A500 (πούλησε 1 εκατομμύριο κομμάτια μόνο το 1989) χάθηκε και το τελευταίο πλεονέκτημα του ST ως arcade gaming platform και αναγκάστηκε να κυκλοφορήσει τον STE η Atari - με 3 χρόνια καθυστέρηση και τη δικαιολογημένα χλιαρή υποδοχή που όλοι γνωρίζουμε.

      Κρίμα, γιατί ο blitter θα μπορούσε να κάνει θαύματα στα κατάλληλα παιχνίδια έστω και χωρίς τα υπόλοιπα χαρακτηριστικά του STE (που παραπέμπουν ούτως ή άλλως στο hardware της Amiga), π.χ. δες εδώ:

      https://www.youtube.com/watch?v=NRMOan38qRU

      Καθόλου άσχημο, και με blitter θα μπορούσαν όλα αυτά να επιταχυνθούν σε σημείο που να μπορείς να έχεις ένα 25 fps ομαλότατο game engine και με μουσική, και όχι το Beast που τελικά είδε ο ST (το οποίο τηρουμένων των αναλογιών είναι αρκετά καλό, απλά προσπαθήσανε να μιμηθούν την Amiga περισσότερο από όσο έπρεπε και εκει την πατήσανε)

      Διαγραφή
    36. Χμμμ....διαβάζω ξανά τα reviews του Kick Off, και βλέπω ότι η η έκδοση του ST υπερτερούσε και στα controls, αλλά και στα ηχητικά εφέ (είχε speech και στα φάουλ και στα πεναλτυς ). Σέβομαι αυτά που διάβασα, καταλαβαίνω τη λογική τους, αλλά δυσκολεύομαι λίγο με το θέμα των borders (να προέκυψαν δηλαδή μη συνειδητά, από αναγκαία συνθήκη, άσχετα αν βολεύουν όμως κατά σύμπτωση το game play και είναι επίσης απίστευτα σαν θέαμα ). Βλέποντας μάλιστα και πολλές άλλες προσπάθειες (sensible, Gaza, microprose , άλλα ακόμα και STE enchanted προσπάθειες, όπως το "Team")να έχουν μαύρο border, με κάνει να αισθάνομαι απορία και δέος.

      O Blitter σαν chip είχε παρουσιαστεί από το 1986 σε εκθέσεις, ήταν πραγματικά έτοιμος ένα χρόνο μετά τη γέννηση του ST, και πιθανόν να σχεδιαζόταν παράλληλα με αυτόν. To γιατί άργησε, αποτελεί μυστήριο. Άλλοι λένε ότι είχαν σχέση οι δίκες με τη commodore, άλλοι ότι έβγαλαν πρόβλημα και αναγκάστηκαν να επανασχεδιαστούν (εδώ ολόκληρος QL κυκλοφόρησε ελαττωματικός και αποσύρθηκε). και φυσικά όπως είπε και ο BLTCON0, παίζει και να περίμενε η Atari την πτώση της τιμής τους, γεγονός που επιτεύχθηκε στα δεύτερης γενιάς STE που αντί του πρώτου ξεχωριστού blitter, ενσωμάτωσαν το chip στον Glue.

      Τώρα αναφορικά με τον αριθμό των πρώιμων ελαττωματικών blitters που κυκλοφόρησαν δεν έχω κάποιο στοιχείο. Απλά υποψιάζομαι ότι δε πρόκειται μόνο για 100 μηχανήματα που έδωσαν στους developers, αλλά για πολύ περισσότερα. Και αν έγινε πράγματι κάτι τέτοιο, δύσκολα θα ήταν κάτι παράτυπο χωρίς την έγκριση της Atari corporation (όπως και η κυκλοφορία του αγνώστου σε εμάς 2080 ST που κυκλοφόρησε τελικά στην ανατολική Ευρώπη).

      Η ύπαρξη του blitter στα mega ST, για εμένα ήταν μια πολύ καλή κίνηση!
      1)Τα Mega ήταν πιο ακριβά επαγγελματικά μηχανήματα, και συνεπώς δε θα ενοχλούσε κανέναν να πληρώσει 100$ παραπάνω για να κερδίσει επιδώσεις (τη στιγμή μάλιστα που κόστιζε πολύ λιγότερα από ένα μήλο).
      2) Ο Atari blitter αντίθετα με της Amiga, δουλεύει σε όλες τις αναλύσεις και συνεπώς είναι λειτουργικός στο μονόχρωμο high resolution που είχαν σαν στάνταρ τα Mega ST.
      3) Το τεράστιο address range Του Atari Blitter, εκμεταλλευόταν την τεράστια μνήμη του MEga ST4 (ενώ θα μπορούσε να δει μέχρι το μέγιστο θεωρητικό 16ΜΒ (για να μη πούμε να δει μέχρι τις ROMS και το carriage port!!!)).

      @Dony:
      Για εμένα ο Blitter έχει πολλά θετικά σε ένα ST.
      Αρχικά ανεβάζει την ταχύτητα ενημέρωσης σχετικά με παράθυρα και εμφάνιση κειμένων! Ακόμα και Software επιταχύνσεις όπως το ndvi, "Βλέπουν" τον blitter και ανεβάζουν ακόμα πιο πολύ τις επιδώσεις σε σχέση με ένα non blitter μηχάνημα. Γλώσσες όπως η omicron τον υποστηρίζουν με εντολές τους, ενώ ακόμα και το STOS δέχεται extra module με υποστήριξη. Πέρα όμως από όλα αυτά, έχεις και το πλεονέκτημα των χρωμάτων. Η αρχική ιδέα του Spectrum 512 (το HAM mode του ST) επωφελείται από την ταχύτητα μεταφοράς δεδομένων του blitter παρουσιάζοντας στη σημερινή του εξέλιξη πολλές χιλιάδες χρώματα παραπάνω, με λιγότερο εμφανές το φαινόμενο του flickering (στον STE είναι περισσότερα).

      Στα παιχνίδια τώρα, παραδόξως δεν είναι πολλοί τίτλοι που κάνουν χρήση του Hardware scrolling του STE, αλλά κάνουν scrolling με τη βοήθεια του blitter. Συνεπώς αυτή η κατηγορία games συνήθως τρέχει (Αν δε κάνει χρήση του STE DMA ή της έξτρα παλέτας) και σε ένα STFM με blitter.

      Δες αυτό:
      https://www.youtube.com/watch?v=QoEkIOIkP_4

      Διαγραφή
    37. @Turrican
      Μπερδεύεις το border με το overscan, για αυτό σου κάνει (αδικαιολόγητα) τόση εντύπωση.

      Σκέψου το ως εξής:
      ΔΕΝ είναι πραγματικά γραφικά αυτά που βλέπεις στο border του Kick Off!
      (Αν ήταν πραγματικά γραφικά, τότε π.χ. όσο ήσουν μακριά από τη γραμμή του πλαγίου άουτ, οι οριζόντιες γραμμές θα έπρεπε να επεκτείνονται και στο border)

      Δεν αντιστοιχούν δηλαδή σε δεδομένα που τα τραβάει ο Shifter από τη RAM και τα δείχνει (αν συνέβαινε αυτό, θα είχαμε overscan βασικά :-) το οποίο επισήμως στον ST δεν προβλέπεται, και τα τρικ που το πετυχαίνουν σε διάφορα demos ξοδεύουν αρκετό CPU time ώστε να τύχουν αξιοποίησης σε πραγματικά games).

      Το border στο Kick Off (όπως και σε οποιοδήποτε άλλο game, και σε οποιοδήποτε βασικά μηχάνημα) είναι αποκλειστικά ένα και μόνο ένα χρώμα, το color00, το οποίο "τυφλά" δείχνει ο Shifter (ή η Denise στην Amiga) όταν δεν τραβάει δεδομένα από τη RAM.

      Για αυτό λέω και ξαναλέω ότι ΔΕΝ υπάρχει απολύτως τίποτα το ιδιαίτερο στο border του Kick Off. Απλά επειδή το color00 χρησιμοποιείται και για το πράσινο του τερέν, ό,ποιες raster-synced χρωματικές αλλαγές συμβαίνουν στο color00 (για να αποδώσουν τη διχρωμία στο τερέν) περνούν αυτόματα και αναγκαστικά και στο border. Ευτυχής σύμπτωση ότι το οπτικό αποτέλεσμα είναι γενικά αποδεκτό.

      Για τα άλλα games που λες δηλαδή... τι ακριβώς θα ήθελες; Γραφικά στο border; Δε γίνεται. Ούτε και στο Kick OFf συμβαίνει ούτως ή άλλως.
      Αν πάλι εφάρμοζαν με το έτσι θέλω στα άλλα games αυτό που συμβαίνει στο Kick Off, απλά πάλι μερικές οριζόντιες ζώνες στην περιοχή του border θα έβλεπες. Ε και; Την ίδια αξία που έχουν στο Kick Off (σχεδόν καμία δηλαδή). Στο Sensible φαίνεται να μπορούσαν να ταιριάξουν, γιατί κι αυτό από ό,τι είδα οριζόντιες ζώνες έχει στο τερέν. Στο Microprose με τίποτα, γιατί χρησιμοποιεί πραγματικό texturing, οπότε είναι ΑΔΥΝΑΤΟ να κάνεις το ίδιο και στο border (θα ήταν overscan).
      Αν τώρα εσένα σου αρέσει να βλέπεις οριζόντιες λωρίδες στο border λες και γίνεται decrunch κανά πρόγραμμα, οκ, πάω πάσο :-)
      Αλλά το ορθολογικό design είναι border = μονόχρωμο (τυπικά μαύρο για να μην προκαλεί το μάτι, αφού τίποτα δε συμβαίνει εκεί), και όπου τους παίρνει έτσι το σχεδιάζουν. Στο Kick Off απλά συνέπεσε η αντικειμενική αδυναμία επιλογής να δίνει και ένα αισθητικά όχι άσχημο αποτέλεσμα. Τίποτα παραπάνω.


      Για τα καλύτερα controls πάλι δεν ξέρω. Όπως έγραψα και πρωτύτερα, εμένα απολύτως ίδιο μου φάνηκε το παιχνίδι.
      ΑΛΛΑ διάβασα σε forums μια ενδιαφέρουσα ιστορία για το Kick Off 2 στην Amiga.
      Η πρώτη έκδοση λέει είχε ένα "bug" - όταν ο παίκτης έκανε επίθεση στην περιοχή της εστίας του αντιπάλου, σταδιακά προσπερνούσε τη μπάλα λες και ήταν άϋλη, και επειδή η σπασμένη έκδοση βασίστηκε σε αυτήν σχεδόν όλοι στην Amiga (του γράφοντος συμπεριλαμβανομένου - γκουχ) έμαθαν να παίζουν Kick Off 2 έτσι (!)
      Αυτό ονομάστηκε "PBD" (penalty box dribbling)
      Κατά πώς φαίνεται, διορθώθηκε στην επόμενη έκδοση για Amiga και στον ST δεν κυκλοφόρηε ποτέ έκδοση με το bug. Η διορθωμένη συμπεριφορά ονομάστηκε NO-PBD.

      Οπότε πιστεύω ότι σε αυτό αναφέρονται τα καλύτερα controls - ένας Atari user που είχε εξαρχής την "σωστή" NO-PBD έκδοση παίζοντας την καθιερωμένη PBD έκδοση στην Amiga δικαιολογημένα θα έλεγε "τι σόι control είναι αυτό;" :-)

      Για τους blitters δε βρήκα απολύτως τίποτα, η μόνη εύλογη θεωρία που έχω για αυτό που λες είναι dealers που έκαναν και Atari service να εγκαθιστούσαν με δική τους πρωτοβουλία blitters, μια και ως service centers είχαν πρόσβαση σε στοκ. Who knows.
      Βρήκα όμως αυτό: ;-) που το απόλαυσα

      http://www.dadhacker.com/blog/?p=995 και
      http://www.dadhacker.com/blog/?p=1000

      Διαγραφή
    38. Όχι, προς θεού, να μη παρεξηγηθώ, ξεχωρίζω τις έννοιες overscan, fullscreen, rasters.
      Απλά, η μέχρι τώρα πεποίθηση μου ήταν, ότι τα rasters ήταν κάτι δύσκολο (στον ST που δε διαθέτει το hardware) και απαιτούσε έξτρα CPU time (για να μην αναφέρουμε ότι φέρνουν επιπλέον μπελά στον προγραμματιστή). Βλέποντας λοιπόν (μετά από διαβολική σύμπτωση) και το Kick off τελείως πράσινο, σκέφτηκα, τι πιο απλό λοιπόν, από το να βάλουν ένα καταπράσινο γήπεδο, αφού μόνο οι γραμμές κινούνται; Πάλι φαίνεται υπέροχο, και θα άφηνε περισσότερους κύκλους ελεύθερους για ότι μπορούσαν να φανταστούν και να χωρέσουν οι coders στο σκιλ τους.

      Για να πω όμως και του στραβού το δίκιο, αφού ακόμα και ένας spectrum τα βγάζει κατά τη διάρκεια του φορτώματος (είχα αναρωτηθεί στο παρελθόν, γιατί σχεδόν όλα τα 8bit κατά στη διάρκεια του loading προβάλουν ράστερς), τότε ίσως τελικά και να απαιτούν λιγότερη cpu time και από ένα ρημαδομετρητή, μουσική, ή εικόνα! Τι να πω...Πάντως αισθητικά (όκ γούστα είναι αυτά), εμένα αυτό το τρυκ με συγκλόνισε, το προτιμώ σίγουρα από τη μαυρίλα του border, και θα ήθελα να το έχουν όλα (τα αθλητικά τουλάχιστον) games του ST.


      Πραγματικά αυτά τα links είναι η βίβλος των Ataroιστορικών (και σε μερικά σημεία ένα μικρό σοκ)!

      Διαγραφή
    39. * Kick off τελείως πράσινο = Πράσινο (μονόχρωμο)τερέν και μόνιμα πράσινο border.

      Διαγραφή
    40. Σε τι να πρωτοαπαντήσω; Βλέπετε, με πετύχατε με όλα αυτά τα ενδιαφέροντα (ξανά!) σε φάση που ετοίμαζα αποσκευές για να αποχωρήσω για μερικές μέρες από την Αθήνα προς αιγαιοπελαγίτικο προορισμό, οπότε, αναγκαστικά, θέλοντας και μη, έμειναν κάποια πράγματα (χρονικά) πίσω...

      Καταρχάς ευχαριστώ τον Νίκο για τις (για μια ακόμα φορά) χρησιμότατες και αναλυτικότατες πληροφορίες του και, φυσικά, για τα 2 υπέροχα links που μας έστειλε τα οποία και απόλαυσα και με το παραπάνω όσο βρισκόμουν στο καράβι! Φυσικά, οι δοκιμές με το Battle Squadron θα γίνουν όταν θα επιστρέψω στο κλεινόν άστυ, καθώς, συγχωράτε με, αλλά Amiga δεν πήρα μαζί μου (πήρα όμως 2 laptops, ποτέ δεν ξέρεις τι θα σου χρειαστεί)...

      Για το θέμα του autofire θα καταφύγω ξανά στο παράδειγμα του Xenon 2 καθώς, αυτά που συμβαίνουν σε αυτό το παιχνίδι είναι μάλλον ανεξήγητα: το παιχνίδι φτιάχτηκε πρώτα στον ST και μετά στην Amiga. Στον ST το autofire του joystick δεν δουλεύει, ενώ στην Amiga λειτουργεί μια χαρά. Αν όμως έχεις τα απαραίτητα coins μπορείς (και στον ST και στην Amiga) να αγοράσεις autofire από το "μαγαζί" μέσα στο παιχνίδι το οποίο φυσικά παίζει και στα 2 μηχανήματα! Whaaaaat???

      Διαγραφή
    41. @dony
      Καλές βουτιές!

      Για το autofire που λες στο Xenon2 καταρχήν θα υποθέσω ότι μιλάς για κάποιο joystick με hardware-assisted autofire (με πλακέτα μέσα δηλ.) που πετυχαίνει "τρελούς" ρυθμούς, τους οποίους και βλέπεις στην Amiga αλλά όχι στον ST.
      Για την ιστορία να επιβεβαιώσω και γω όντως στο Xenon2 για Amiga ένα hardware assisted autofire μπορεί να κάνει τις σφαίρες πραγματικά να φεύγουν κολλητά η μία μετά την άλλη από το σκάφος, δημιουργώντας πρακτικά μια συνεχή ριπή! (είχα ένα Delta-κάτι joystick με τέτοιο autofire τότε και είχα πάθει πλάκα).
      Και όχι για κάποιο Joystick που το το autofire διακοπτάκι του απλά "κλειδώνει" το firebutton σε μονίμως πατημένο mode
      (αυτό ούτως ή άλλως ΔΕΝ είναι πραγματικό hardware autofire, γιατί δεν δημιουργεί firebutton events (press-release). Το πώς θα συμπεριφερθεί το συνεχές πάτημα εξαρτάται αποκλειστικά από το software).

      Από κει και πέρα έχει να κάνει με αυτό που ανέφερα πιο πριν: πόσες φορές ανά frame διαβάζει ο κώδικας την κατάσταση του joystick. Στην Amiga που ο copper παρακολουθεί συνεχώς τη θέση της ακτίνας και μπορεί να προκαλέσει ΠΛΗΡΩΣ συγχρονισμένα CPU interrupts, είναι πολύ εύκολο κάθε 20 γραμμές π.χ. να εκτελείται ένα interrupt για να διαβάσει την κατάσταση του joystick.
      Έτσι αν καταγραφούν σε ένα frame 5 firebutton events (press-release), η display update ρουτίνα ξέρει ότι πρέπει να σχεδιάσει 5 σφαίρες και όχι μία (αυτό φυσικά υπονοεί ότι και ο χρονισμός κίνησης του παιχνιδιού δεν είναι per frame, αλλά πιο λεπτομερής, δηλαδή το παιχνίδι καταγράφει ας πούμε 5 ενδιάμεσες θέσεις για το σκάφος κάθε frame (άσχετα αν τελικά προφανώς θα σχεδιαστεί μόνο η τελευταία), και έτσι ξέρει που να σχεδιάσει την κάθε σφαίρα.

      Λεπτομέρειες για το πώς γίνεται η ανάγνωση του joystick στον ST δεν ξέρω. Ξέρω ότι συνδέεται με κάποιο τρόπο με το πληκτρολόγιο οπότε υπάρχουν ίσως έξτρα περιορισμοί που καθιστούν αδύνατη τη συχνότερη hardware ανάγνωση του joystick. Αν ξέρεις παιχνίδια στον ST που ένα hardware-assisted autofire δίνει αποτελέσματα παρόμοια με του Xenon2 στην Amiga, προφανώς αυτό δε θα ισχύει και μάλλον ο λόγος που δεν σκανάρεται συχνότερα το joystick είναι η δυσκολία να γίνει συγχρονισμένα αποκλειστικά με τη CPU.

      Διαγραφή
    42. @Turrican
      Όπως τα λες είναι και όντως απαιτείται CPU time (ιδίως λόγω interrupts), αλλά στην πράξη μάλλον δε συμμερίστηκαν την άποψη σου για το τελείως μονόχρωμο γήπεδο :-) και προτίμησαν να συγχρονίσουν το σύμπαν :-)

      Ο λόγος που έβγαζαν τα rasters τα 8 bit όσο φόρτωναν είναι μάλλον επειδή είναι ο απλούστερος τρόπος όσο φορτώνει η κασέτα να σου υπενθυμίζουν ότι το σύστημα δεν έχει κολλήσει :-) αλλά "κάτι κάνει".

      Φαντάζομαι ότι ο ρυθμός φορτώματος είναι τόσο χαμηλός που μέχρι να είναι διαθέσιμο το επόμενο byte για φόρτωμα στη RAM, η CPU είχε μπόλικο χρόνο να εκτελέσει αρκετές ακόμη εντολές (και επίσης είχαν περάσει αρκετά scanlines, ώστε το τελικό οπτικό αποτέλεσμα να είναι ζώνες πολυχρωμίας).
      Οπότε ένα σενάριο είναι π.χ. το byte (ή κάποιο τμήμα του) που μόλις διάβασε να το γράφει επιτόπου και στον καταχωρητή για το border χρώμα, ώστε να υπάρχει μια τυχαιότητα στις εναλλαγές χρωμάτων.

      Διαγραφή
    43. Νίκο, δεν γνωρίζω αν το autofire στα joysticks που χρησιμοποιώ είναι hardware assisted: χρησιμοποιώ στον Atari ST Tomahawk ή Starfighter 2000 του Ανερούση, που είναι πρακτικά τα ίδια, αλλά δεν θυμάμαι αν έχουν κύκλωμα για το autofire. Βασικά, το Starfighter 2000 ΠΡΕΠΕΙ να έχει, γιατί ανάβει και ένα κόκκινο led όταν ενεργοποιείς το autofire.

      Πάντως - και ας με διαψεύσει κάποιος αν κάνω λάθος - δεν έχω δει ΠΟΤΕ και σε ΚΑΝΕΝΑ παιχνίδι του ST να "πιάνει" το autofire, ήτοι να ρίχνει μόνο του σαν παλαβό. Έχω δει μόνο autofire που λειτουργεί απλά σα να έχεις πατημένο συνεχώς το fire button... :(

      Πάω για τις βουτιές τώρα, τα λέμε μετά! ;-)

      Διαγραφή
  9. Μερικοί από αυτούς που καταδικάζουν κάτι, δεν ξέρουν στην πραγματικότητα για τι ομιλούν, και παίζει να μη το έχουν δει καν από κοντά. Για να μην επαναλαμβάνω σελίδες που έχω γράψει δεκάδες φορές στο παρελθόν, θα πω ότι το πρόβλημα δε το έχουν τα μηχανήματα, αλλά οι άνθρωποι που τα κατέχουν! Αυτοί είναι που ψάχνοντας ένα τρόπο να εκφράσουν επιθετικοτητα, θα την εξάγουν στο computer, στην ομάδα, στο αυτοκίνητο, στις γκόμενες, στις θρησκείες και πάει λέγοντας. Αν καταργηθούν τα πάντα, θα βρούνε ένα νέο λόγο να τσακώνονται.

    Για τους ανεπίδεκτους μαθήσεως (υπάρχει και αυτή η κατηγορία) δεν αξίζει κανείς να μπαίνει στον πειρασμό να τους βοηθήσει! Όσες σελίδες και να φας, προσπαθώντας να τους αποδείξεις με επιχειρήματα κάτι, το πιθανότερο είναι να τους δεις την άλλη μέρα, να λένε ξανά τα ίδια πράγματα (σε άλλο forum), λες και δε μιλήσατε ποτέ, ξανά δηλαδή απο το σημείο που αρχίσατε... είναι εξοντωτικά σπαστικό!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δημήτρη, κάτι μου λέει ότι είσαι παθών, έτσι; Από το κείμενό σου καταλαβαίνω ότι προσπάθησες, ξαναπροσπάθησες και μετά προσπάθησες και πάλι, μέχρι που έφτασες τελικά στην πλήρη απόγνωση και στο σημείο που θα έβαζες και στοίχημα ότι αν όλα αυτά τα είχες πει σε τοίχο, περισσότερο τόπο θα είχαν πιάσει!

      Σε καταλαβαίνω απόλυτα, έχω φτάσει δυστυχώς αρκετές φορές τα τελευταία χρόνια να βρίσκομαι σε φάση που... που απλά δεν θα ήθελα να βρίσκομαι. Και να αναρωτιέμαι πώς συναναστρεφόμουν με ανθρώπους τόσο στενόμυαλους για τόσο πολύ καιρό. Δεν πειράζει όμως, γηράσκω αεί διδασκόμενος. Ή, τουλάχιστον, έτσι θέλω να πιστεύω! :D

      Διαγραφή
    2. Δεν είμαι κατά της έριδος! Ξέρεις πόσα όμορφα πράγματα έχω μάθει από καυγάδες; Απαιτώ όμως όταν συμβαίνει αυτό, να οδηγεί και κάπου! Είναι πολύ κουραστικό να αναγκάζεσαι να ψάχνεις χαρτιά, κιτάπια, βιβλία, web, για κάποιον που στην τελική σε δουλεύει και προσπαθεί απλώς να σε φθείρει! Προσπάθησα πολλές φορές στο παρελθόν να καταρρίψω κάποια στερεότυπα γύρω απο τον ST και μέχρι ενός σημείου, νόμιζα ότι τα κατάφερα (για να δω μετά να συγκρίνουν τον ST με τον Commodore 64, spectrum, amdtrad και να τον χλευάζουν ως πουσαρισμένο οκτάμπιτο)....

      Διαγραφή
    3. Φίλε, ΑΚΡΙΒΩΣ τα ίδια με αυτά που γράφεις μου έχουν συμβεί και εμένα! Σεντόνια σε fora, ατελείωτες συζητήσεις και τελικά το μόνο που εισέπραττα ήταν ΜΗΔΕΝ επιχειρήματα, και οι κλασικές - και αειθαλώς εκνευριστικές - ατάκες για "το καλύτερο οχτάμπιτο" και τον "Πατάρι ST". Μια ζωή τα ίδια. Πλέον όμως καταλαβαίνω από το πρώτο 5άλεπτο για το πού θα πάει η δουλειά και απαντάω συγκαταβατικά "ναι, έτσι είναι", "μόνο Amiga κι ας μην γ******* ποτέ", "Amiga uber alles", "Amiga και σας έφαγα", "Amiga και τα μυαλά στα blender" κι άλλα τέτοια ωραία. Αν διαπιστώσω ότι ο άλλος έχει πραγματικά όρεξη για γόνιμη συζήτηση τότε είμαι μέσα 100% αλλά, ειδικά στο φλέγον θέμα Amiga vs Atari (αν είναι δυνατόν μετά από 30 χρόνια) οι πιθανότητες για κάτι τέτοιο είναι, δυστυχώς, λιγοστές... :(

      Διαγραφή
  10. Πολλά respect για τις γνώσεις που μεταφέρθηκαν εδώ από το Νίκο και άλλα τόσα για τις απόψεις των υπολοίπων. Πλέον, δεν έχει κανένα νόημα οποιαδήποτε συζήτηση με κανέναν κολλημένο. Όποιος παρουσιάζει τόσο φανατισμό για ένα μηχάνημα 30ετιας και μάλιστα όταν το κάνει χωρίς να έχει το κατάλληλο γνωστικό υπόβαθρο (άλλο το γνωρίζω ΤΟΥΣ υπολογιστές και άλλο γνωρίζω ΑΠΟ υπολογιστές) είναι απλά για κλάματα και προσωπικά δεν χαραμιζω πλέον ούτε δευτερόλεπτο για να τον πείσω για το οτιδήποτε...

    Πλέον, για ρετρό ανοίγω συζητήσεις με πολύ συγκεκριμένα άτομα, για να διαφυλαξω την ψυχική μου υγεία...

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Δημήτρη, νομίζω ότι το σοφό πράγμα που οφείλει να κάνει ο καθένας μας είναι, σε κάποια φάση της ζωής του να συνειδητοποιήσει ότι υπάρχουν άνθρωποι συμβατό με τον ίδιο και άνθρωποι ασύμβατοι. Προσοχή, με το "συμβατοί" δεν εννοώ να έχουν ακριβώς τις ίδιες θέσεις στα πάντα, αλλά περισσότερο να έχουν συμβατό τρόπο σκέψης και αντίληψης των πραγμάτων. Κατ' εμέ αυτό αποτελεί σημαντικότατη προϋπόθεση για να μπεις στη διαδικασία οποιασδήποτε συζήτησης...

      Συνεπώς ναι, στο ίδιο καταλήγουμε, κάνεις όποιες συζητήσεις κάνεις με συγκεκριμένα άτομα. Δεν θα πω ότι "εμείς" έχουμε δίκιο και "αυτοί" άδικο, απλά αντιμετωπίζουμε τα πάντα με τόσο διαφορετικό τρόπο, που δεν θα μπορέσουμε ποτέ να συνεννοηθούμε με αποτέλεσμα το σοφότερο που μπορούμε να κάνουμε είναι να μην έχουμε πολλά-πολλά. Απλά, το συνειδητοποιούμε, το παίρνουμε απόφαση και ησυχάζουμε. We 're too old for this shit!

      Διαγραφή
  11. Απόλαυση, απλά απόλαυση!
    Από την πρώτη λέξη του άρθρου μέχρι την τελευταία λέξη των σχολίων.
    Πολλά βέβαια από αυτά που έγραψε ο BLTCON0 δεν τα κατάλαβα λόγω έλλειψης γνώσεων, αλλά με ενθουσίασαν.

    Συμφωνώ με την οπτική που πρέπει να υιοθετήσει κάποιος για να μελετήσει ένα μηχάνημα.
    Η θεωρία της σχετικότητας ισχύει και εδώ.

    Η λέξη "φανατικός" είναι πολύ βαριά.
    Γενικά αποφεύγω συναναστροφές με φανατικούς στην ζωή μου από όποιο τομέα και αν έρχονται.
    Ο χώρος του retro-computing δεν αποτελεί εξαίρεση.
    Πιστεύω όμως ότι είναι χρέος κάθε ειλικρινούς φίλου των υπολογιστών να προσπαθεί να αφήνει κατά μέρος τις προκαταλήψεις και να εξετάζει την ιστορία και τους πρωταγωνιστές της με ανοικτό μυαλό.
    Δεν είναι εύκολο να γίνει και δεν συμβαίνει πάντα, ακριβώς επειδή είμαστε άνθρωποι και ως τέτοιοι είμαστε ατελή όντα.
    Πρέπει όμως να το παλεύουμε συνεχώς, μέσα στα πλαίσια μιας προσωπικής προσπάθειας για βελτίωση.

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Σε ευχαριστώ πολύ για τα καλά σου λόγια, Alex! Νομίζω ότι είναι εύκολο να διατηρηθεί το όλο πακέτο (ανάρτηση-σχόλια) σε καλό επίπεδο καθώς πρωτίστως υπάρχει καλή διάθεση από όλους και δευτερευόντως όλα τα παιδιά που μπήκαν στον κόπο να σχολιάσουν (και τους ευχαριστώ γι' αυτό) έχουν όρεξη, μεράκι, αγάπη για τους υπολογιστές και κάποιοι, όπως ο BLTCON0 έχουν και τέτοια τεχνογνωσία που... σκιάζεσαι! :D

      Κατά τα άλλα, όπως θα κατάλαβες ήδη από τα όσα έγραψα παραπάνω, συμφωνώ απολύτως μαζί σου!

      Διαγραφή