Boot-Hill type-in παιχνιδι για Oric-1

freaktmp

Expert
Joined
20 Απρ 2009
Μηνύματα
9.311
Αντιδράσεις
9.410
Το 'πα ο μιζερος, ο καψερος, οτι θα με βαλετε σε μπελαδες! :banghead: Μου μπηκε το μικροβιο και εκατσα και πληκτρολογησα το παιχνιδι Boot-Hill που ειχα αναφερει στο αλλο thread.

Η αναμνηση μου ειναι οτι ειχα δει σε ελληνικο περιοδικο, αλλα μια γρηγορη αναζητηση στα πρωτα pixel δεν απεδωσε καρπους. Ισως να ηταν σε καποιο μεταγενεστερο τευχος αλλα πιο πιθανο ειναι να ηταν σε καποιο αλλο περιοδικο (ισως Computer Για Ολους; ). Εδω θα βρειτε το (υποθετω) αρχικο listing στο αγγλικο περιοδικο Popular Computing Weekly Vol.2 Αρ.35 (1-7 Σεπτεμβρη 1983).

Οπως και να εχει το πραγμα βρηκα την πηγη, ετρεξα τον γνωστο Oricutron emulator για Oric και εκατσα και το πληκτρολογησα σωζοντας κοντα-κοντα. Μετα εκατσα και το περασα ενα δευτερο χερι γραμμη-γραμμη για να διορθωσω λαθη πληκτρολογησης.

Το παιχνιδι ειναι γραμμενο για Oric-1 και δεν τρεχει σε Atmos. Εκανα την δοκιμη μου στον emulator οποτε ειχα μια αρκετα καλη ιδεα τι θα συμβει, αλλα θα σας παρουσιασω το τελικο αποτελεσμα σε πραγματικο hardware γιατι οι πραγματικοι αντρες το κανουν με πραγματικο hardware (απλα το πληκτρολογουν στο PC γιατι το πληκτρολογιο του Oric-1 ειναι βασανο).

Φυσικα δεν μπορουμε να χρησιμοποιησουμε το Erebus γιατι μετατρεπει τον Oricακο μας σε Atmos και ενω το παιχνιδι φορτωνει κανονικα, δεν τρεχει. Θα μας ξελασπωσει ομως το TZXDuino, οπου το tap αρχειο που ειχαμε φτιαξει στον emulator φορτωνει αψογα.

Το σχεδον 3kb tap αρχειο κανει περιπου 20 δευτερολεπτα να φορτωσει. Κανα δυο φωτογραφιες απο τον κωδικα.




Τρεχουμε το παιχνιδι και στην αρχη δεν συμβαινει τιποτα ιδιαιτερο για 25-30 δευτερολεπτα και μετα επιτυχια! :happyjump:



Ετοιμαζομαστε να παιξουμε...




... και μετα μας πιανει λαστιχο. Δυστυχως αφου κουνιεται ο καουμποης για μερικα δευτερολεπτα βγαζει ενα μηνυμα λαθους και τελειωσε η ιστορια. :axer::behead::bananafuck::bash:



Εδω δεν εχω τιποτα αλλο να προσθεσω. Ειχα ελεγξει τον κωδικα οσο καλυτερα μπορουσα, αλλα αυτο δεν σημαινει οτι δεν μπορει να μου ξεφυγε κατι. Κατι υπαρχει παντα η περιπτωση απλα να μην δουλευει οπως το ειχαν δωσει. Σιγουρα οι επεμβασεις με μολυβι στο listing δεν εμπνεουν εμπιστοσυνη.

Οπως και να εχει το πραγμα, θα ανεβασω το tap αρχειο στο archive.org, αν θελει κανεις να του ριξει μια ματια. Και αν το κανετε τελικα να δουλεψει μην ξεχασετε να μας ενημερωσετε!
 
Τελευταία επεξεργασία:
Respect και για το thread και για το ότι έκατσες και έγραψες τον κώδικα!

@freaktmp τίποτα δεν πήγε χαμένο ακόμα και αν σου το χάλασε στο τέλος το παιχνίδι που δεν δουλεύει κανονικά διότι ξαναγύρισες πίσω στο χρόνο και ενιωσες πάλι εκείνα τα συναισθήματα και την χαρά του να γράφεις κώδικα. Εκείνη την εποχή όλοι γινόμασταν coders με αυτά τα listings!!
 
Τελευταία επεξεργασία:
Το 'πα ο μιζερος, ο καψερος, οτι θα με βαλετε σε μπελαδες! :banghead: Μου μπηκε το μικροβιο και εκατσα και πληκτρολογησα το παιχνιδι Boot-Hill που ειχα αναφερει στο αλλο thread.

Η αναμνηση μου ειναι οτι ειχα δει σε ελληνικο περιοδικο, αλλα μια γρηγορη αναζητηση στα πρωτα pixel δεν απεδωσε καρπους. Ισως να ηταν σε καποιο μεταγενεστερο τευχος αλλα πιο πιθανο ειναι να ηταν σε καποιο αλλο περιοδικο (ισως Computer Για Ολους; ). Εδω θα βρειτε το (υποθετω) αρχικο listing στο αγγλικο περιοδικο Popular Computing Weekly Vol.2 Αρ.35 (1-7 Σεπτεμβρη 1983).

Οπως και να εχει το πραγμα βρηκα την πηγη, ετρεξα τον γνωστο Oricutron emulator για Oric και εκατσα και το πληκτρολογησα σωζοντας κοντα-κοντα. Μετα εκατσα και το περασα ενα δευτερο χερι γραμμη-γραμμη για να διορθωσω λαθη πληκτρολογησης.

Το παιχνιδι ειναι γραμμενο για Oric-1 και δεν τρεχει σε Atmos. Εκανα την δοκιμη μου στον emulator οποτε ειχα μια αρκετα καλη ιδεα τι θα συμβει, αλλα θα σας παρουσιασω το τελικο αποτελεσμα σε πραγματικο hardware γιατι οι πραγματικοι αντρες το κανουν με πραγματικο hardware (απλα το πληκτρολογουν στο PC γιατι το πληκτρολογιο του Oric-1 ειναι βασανο).

Φυσικα δεν μπορουμε να χρησιμοποιησουμε το Erebus γιατι μετατρεπει τον Oricακο μας σε Atmos και ενω το παιχνιδι φορτωνει κανονικα, δεν τρεχει. Θα μας ξελασπωσει ομως το TZXDuino, οπου το tap αρχειο που ειχαμε φτιαξει στον emulator φορτωνει αψογα.

Το σχεδον 3kb tap αρχειο κανει περιπου 20 δευτερολεπτα να φορτωσει. Κανα δυο φωτογραφιες απο τον κωδικα.




Τρεχουμε το παιχνιδι και στην αρχη δεν συμβαινει τιποτα ιδιαιτερο για 25-30 δευτερολεπτα και μετα επιτυχια! :happyjump:



Ετοιμαζομαστε να παιξουμε...




... και μετα μας πιανει λαστιχο. Δυστυχως αφου κουνιεται ο καουμποης για μερικα δευτερολεπτα βγαζει ενα μηνυμα λαθους και τελειωσε η ιστορια. :axer::behead::bananafuck::bash:



Εδω δεν εχω τιποτα αλλο να προσθεσω. Ειχα ελεγξει τον κωδικα οσο καλυτερα μπορουσα, αλλα αυτο δεν σημαινει οτι δεν μπορει να μου ξεφυγε κατι. Κατι υπαρχει παντα η περιπτωση απλα να μην δουλευει οπως το ειχαν δωσει. Σιγουρα οι επεμβασεις με μολυβι στο listing δεν εμπνεουν εμπιστοσυνη.

Οπως και να εχει το πραγμα, θα ανεβασω το tap αρχειο στο archive.org, αν θελει κανεις να του ριξει μια ματια. Και αν το κανετε τελικα να δουλεψει μην ξεχασετε να μας ενημερωσετε!
στην γραμμη 270 που μαλλον ειναι το πρόβλημα ο καθε κωδικός ειναι μια εντολή στην assembly πρεπει να βρείς το manual του μηχανήματος και σε καθε εντολη που δίνει μετα το data να δεις τι θέλει να κάνει και που ειναι το λάθος. πχ λεει data A6,00, κτλ πας στο manual και βλεπεις τι ειναι το A6 , το 00 κ.ο.κ (δηλ. πιασε το αυγο και κούρευτο ) τουλάχιστον ετσι εκανα εγω στον spectrum . το πιθανότερο ειναι να εχει μπερδευτει ενα π.χ 0(αριθμος) με Ο(γραμμα)
 
Οντως ειναι πολυ δυσκολο να ξεχωρισεις τα 0 και Ο γιατι στον Oric το 0 εχει γραμμη, αλλα αυτη η εκτυπωση εχει γινει ενας θεος ξερει πως και δεν εχει γραμμη στα μηδεν.

Με εβαλες σε υποψιες και εψαξα το listing με μικροσκοπιο. Εντοπισα κανα δυο 0 που ισως να ειναι O και τα αλλαξα, αλλα πλεον σκαει πριν καν δειξει την οθονη του παιχνιδιου...

Αν ειναι assembly δεν θα επρεπε να ειναι hex τα data, δηλ. να μην υπαρχει O πουθενα;

Συγχωρεστε με αν λεω βλακειες, οι γνωσεις στα προγραμματιστικα μολις και μετα βιας ξεπερνουν την Basic... :fafoutis:

EDIT. Το βρηκα το λαθος και το παιχνιδι πλεον λειτουργει σωστα! Αυριο καποια στιγμη θα αναφερω περισσοτερες λεπτομέρειες! :happyjump: :headbang::gun:
 
Τελευταία επεξεργασία:
Μου αναψε φωτιες νυχτιατικα ο φιλος @spectrum198296gr και αφου απέτυχε το πειραμα με τα 0 και Ο, ειπα να κανω ενα ακομα πέρασμα ολο το προγραμμα απο την αρχη μηπως και πετυχω τιποτα αλλο που να μου ξεφυγε και ναι, βρηκα το τελευταίο λαθος στην γραμμή 220, οπου αντι για GOSUB 320 ειχα γράψει GOSUB 230! :oops:

Αφου διαπιστωσα οτι πλεον τρεχει κανονικα το αφησα να τρεχει καμποσο στον emulator σε απεριοριστη ταχυτητα για να ελεγξω για memory leaks κλπ, αλλα δεν παρουσιασε κανενα αλλο προβλημα. Εκανα και αρκετο playtesting επιτυχως. Ειναι μια βρωμικη δουλεια, αλλα καποιος πρεπει να την κανει... :p

Το παιχνιδι ειναι απλουστατο. Δυο καουμπόηδες στα δεξια και αριστερα της οθονης, ο παικτης ελεγχει τον ενα, ο υπολογιστης τον αλλο. Αναμεσα τους υπαρχουν κακτοι που εξαφανίζονται σιγα σιγα οταν τους πυροβολούμε. Με το κατω βελακι παει κατω, με το αριστερα παει πανω και με το space πυροβολάει. Το παιχνιδι κραταει σκορ, αλλα δεν εχει καποιο ιδιαιτερο νοημα αφου δεν τελειώνει ποτε.

Οι κακτοι σταδιακα εξαφανίζονται οταν τους πυροβολούμε.



Οταν πεθανει καποιος μετατρέπεται σε φέρετρο και ανεβαινει προς το πανω μερος της οθονης. Αλλαζει το σκορ και το παιχνιδι ξαναρχίζει.



Ο ηχος ειναι ο κλασσικος πυροβολισμος που ειναι ενσωματωμένος στην Oric Extended Basic και μια συντομη μελωδια οταν καποιος πεθαινει.

Εχω ανεβασει την σωστη εκδοση στο archive.org.

Οχι ακριβως το παιχνιδι του αιωνα και δεν μπορω να πω οτι αξιζε ολη η ωρα που αφιερωσα στο θεμα, αλλα πρεπει οτιδηποτε κανουμε σε αυτον τον κοσμο να ειναι σοβαρο και σημαντικο; Τουλαχιστον μου εφυγε το αχτι. Και μακαριζω ολους αυτους που καθονται και πληκτρολογουν listings... ιώβειος υπομονή δεν λες τίποτα! :bow:
 
Τελευταία επεξεργασία:
respect !!!!!!!!!! ο κωδικας θέλει πολυ προσοχή (και δεν ειναι παντοτε λάθος του τυπογραφείου :fafoutis:) αυτα τα gosub :diablotin:
 
Οντως ειναι πολυ δυσκολο να ξεχωρισεις τα 0 και Ο γιατι στον Oric το 0 εχει γραμμη, αλλα αυτη η εκτυπωση εχει γινει ενας θεος ξερει πως και δεν εχει γραμμη στα μηδεν.

Με εβαλες σε υποψιες και εψαξα το listing με μικροσκοπιο. Εντοπισα κανα δυο 0 που ισως να ειναι O και τα αλλαξα, αλλα πλεον σκαει πριν καν δειξει την οθονη του παιχνιδιου...

Αν ειναι assembly δεν θα επρεπε να ειναι hex τα data, δηλ. να μην υπαρχει O πουθενα;

Συγχωρεστε με αν λεω βλακειες, οι γνωσεις στα προγραμματιστικα μολις και μετα βιας ξεπερνουν την Basic... :fafoutis:

EDIT. Το βρηκα το λαθος και το παιχνιδι πλεον λειτουργει σωστα! Αυριο καποια στιγμη θα αναφερω περισσοτερες λεπτομέρειες! :happyjump: :headbang::gun:
ναι στην assembly πας μεχρι το FF η παρατήρηση ειναι σωστή. προφανός με το λαθος νουμερο του gosub πήγε αλλου και εμεινε απο data:biglaugh: .
 
Πίσω
Μπλουζα