Schlagwort-Archive: vectrexgames

Ein Nachbauprojekt für die Vectrex

Loading

Es ist wieder einige Zeit vergangen, dass ich es schaffe, in den späteren Abendstunden Zeit und Energie zu finden, hier im Blog über eines meiner kleinen Projektchen zu schreiben. Ich habe mir in den letzten Jahren angewöhnt, bei Autofahrten und nächtens, Podcasts zu hören. Dazu gehören in erster Linie Podcasts zu technischen Themen. Darunter ist auch ein Podcast, der sich „Retrokompott“ nennt und sich mit Homecomputern und Technik aus unserer Jugendzeit beschäftigt. Deren Slogan lautet:

Retrokompott, eine Zeitreise in die Vergangenheit alter Homecomputer, Spielekonsolen und Games

[http://blog.retrokompott.de/]

In einem der Beiträge von Retrokompott diskutierte man einige Folgen lang (172-177) über die Vectrex, den Heim – Vectorspieleautomaten von MBE. Hier wurden unter anderen auch Homebrewprojekte, also Software-Eigenentwicklungen der Anwender vorgestellt.  „Vectorblade“ ist dabei ein Spieletitel, der von Malban [http://vide.malban.de/] entwickelt wurde. Das Projekt wurde dabei mit dem ebenfalls von Malban entwickelten Vectrexcompiler (vide) erstellt. Die Sourcen sind öffentlich auf der Website verfügbar. In dem „Kompott“-Beitrag hat man so begeistert über Vectorblade berichtet, dass mein Interesse dafür geweckt war. Das Spielemodul war auch eine Zeit lang über Malban zu erwerben. Ich habe aber keine Quelle gefunden, über die ich das Modul auf einfache Weise erwerben kann. So dachte ich mir, baue ich mir das halt einfach nach. Das Besondere an diesem Gamerom ist die Größe des Games. Es hat stolze 192 kB. Um diesen Speicher adressieren zu können, hat sich Malban der Bank-Switching Technologie bedient. Er verwendet in seinem Design einen Flash-Speicher von SST, den SST39SF020. Das Bankswitching wird über einen Vierfach-2-Eingang NAND Schmitt Trigger (74AC132) gesteuert. Malban hat auf git das Layout veröffentlicht. Dort verwendet er den Speicher im DIL-Package und ebenso auch den AC132. Eine detaillierte Anleitung findet man hier.

Da ich von meinem alten Selbstbau-Rom Modul Projekt noch einige Platinen über habe, konnte ich schnell einen Versuchsaufbau zusammenstoppeln.  Flashspeicher hatte ich zwar keinen zur Verfügung – sehr wohl aber eine ausreichend großes EPROM. Der Vide-Compiler und die Source-Files sind auf Malbans GIT ebenfalls veröffentlicht. Nach kurzem Studium seines Vide-Compilers ist es mir gelungen das Projekt zu kompilieren und eine ROM – Datei zu erstellen. Mit meinem „Fernostprogrammer“ konnte ich dann das EPROM „brennen“.  Mit ein paar Drahtbrücken und einem AC132 wurde aus meinem alten ROM-Platinen Projekt dann der Vectorblade Versuchsaufbau.

Versuchsaufbau Vectorblade

Mit der Ausnahme, dass keine Settings gespeichert werden können, funktioniert der Testaufbau und das Game lässt sich spielen :). Der nächste Schritt des Nachbaus war dann die Platine zu zeichnen. Hier wollte ich den Schmitt-Trigger Baustein in SMD Ausführung einbauen und den SST weiterhin in DIL. Ich habe diese Ausführung auch realisiert und erfolgreich getestet. Es gibt aber einen kleinen Haken – keiner meiner Lieferanten hat den SST39SF020 Flashspeicher in DIL Ausführung auf Lager. Ich habe jetzt zwar einige Platinen mit DIL – Layout aber eben keine Chips… Also noch einmal zum PC und das Design auf PLCC Sockel umzeichnen. Gedacht – getan und einen Satz Platinen beim Fernostproduzenten bestellt.

Ein passendes Gehäuse lässt sich mit dem 3D-Drucker selbst erstellen. Genauer gesagt wurde ich auf Thingiverse fündig und konnte  aus einer Vielzahl an geeigneten Designs wählen.

Es fehlt zwar das Overlay –  aber auch ohne das macht das Spiel Spass. Hier ist Malban ein tolles Game gelungen.

Spielemodul für die Vectrex selbstgemacht

Loading

Für die Vectrex – Spielekonsole einem Home-Arcade-Automat aus dem Jahr 1982 gibt, oder gab es eine sehr begrenzte Anzahl an Spiele Titeln. Die Vectrex selber, beziehungsweise die Restauration dieses Schätzchens werde ich in einem eigenen Beitrag vorstellen.

Die Spiele waren in Form von ROM-Modulen erhältlich und mussten seitlich in die Konsole gesteckt werden. Heute sind sie, wie auch die Konsole selber, ziemlich rar und schwer zu finden. Auch preislich sind sie meist keine Schnäppchen. Es gibt auch Nachbauten, Multiroms und einige DIY Projekte, die auf Basis der alten EPROMS das Spielprogramm oder auch mehrere Games gespeichert halten und so über ein „Modul“ spielbar waren.   Da ich auch noch alle möglichen Eproms mit unterschiedlichen Größen im Bauteilelager habe und auch von einem Kollegen (vielen Dank Jürgen) ein paar 27C512er Eproms gesponsert bekam, musste ich einfach versuchen, damit ein ROM-Modul zu basteln.

originale Vectrex ROM-Modul Platine

Also einmal schnell nachgedacht, was ich dafür alles benötige. Hier eine kleine Aufstellung:

  • alte EPROMS (ich verwende Eproms, die mit UV-Licht wieder gelöscht werden können)
  • einen Eprom Programmer (in der hintersten Ecke eines Kastens habe ich noch einen ChipLab Programmer mit paralleler Schnittstelle gefunden)
  • einen alten Rechner mit eben einer parallelen Schnittstelle und einem älteren Betriebssystem (Windows XP). Auch hier habe ich glücklicher Weise einmal mehr auf die Entsorgung verzichtet und einen alten Laptop wieder zum Leben erweckt.
  • eine Software für den Programmer (hier verwende ich „ChipLab“ die mit Hilfe von „porttalk22“ auf WindowsXP lauffähig ist)
  • die Binärdaten oder HEX-Files der originalen ROM-Module (hierzu kann man die Internetsuche bemühen)
  • ein Layout Tool (Autodesk Eagle)
  • eine Bastelbude, in der man Platinen ätzen kann, oder einen Account bei einem fernöstlichen PCB-Hersteller
  • Lötwerkzeug und Kleinteile
  • und natürlich eine Vectrex – sonst hat das alles keinen Sinn
EPROMs

Um den Speicherbedarf der Eproms zu ermitteln, muss ich zuerst einmal die Größe der Spiele kennen. Hier die Liste der Titel und deren Größe:

Spiele mit einer Größe von 4 kB (4 kilo Byte). Das entspricht einem Adressbereich von hex 0000 bis 0FFF

  • Armor Attack
  • Art Master
  • Bedlam
  • Berzerk
  • Clean-Sweep
  • Cosmic Chasm
  • Engine Analyzer
  • Hyperchase
  • Minestorm 2
  • Rip Off
  • Scramble
  • Solar Quest
  • Space Wars
  • Star Castle
  • Star Hawk
  • Star Trek

Spiele mit einer Größe von 8 kB (8 kilo Byte). Das entspricht einem Adressbereich von hex 0000 bis 1FFF

  • Animaction
  • Blitz
  • Fortess of Narzod
  • Heads Up
  • Melody Master
  • Pitchers Duel
  • Pole Position
  • Spike
  • Spinball
  • Tour de France
  • Web Wars

Spiele mit einer Größe von 12 kB (12 kilo Byte). Das entspricht einem Adressbereich von hex 0000 bis 2FFF

  • Dark Tower

Als nächstes sehe ich mir einmal die Eproms bezüglich Pinout und Größe an. Hier habe ich zwei Größen betreffend der Pin Anzahl zur Verfügung. Eproms mit 28pin und 32pin im DIL Gehäuse. Zu denen im 28poligen Gehäuse gehören folgende Typen:

  • 27c64         8k x 8 bit  also   64 kb (kilo Bit)
  • 27c128   16k x 8 bit  also 128 kb (kilo Bit)
  • 27c256   32k x 8 bit  also  256 kb (kilo Bit)
  • 27c512   64k x 8 bit  also  512 kb (kilo Bit)
Bild von (www.futurlec.com)
Bild von (www.futurlec.com)

 

Das Pinout ist, bis auf die unterschiedliche Anzahl der Addressleitungen, identisch. Die 1Mbit Variante 27C1001 (27C010) hat jedoch ein anderes Pinout.

Bild von (www.futurlec.com)

Der nächste Schritt ist, sich das Pinout des Vectrex Modulschachtes anzusehen. Die Pin – Nummern des Moduls sind im Bild unten zu gekennzeichnet.

Pin Nummerierung des Vectrex Moduls

Die den Pin-Nummern zugehörigen Signale sind dem Vectrex Schaltplan des Mainboards zu entnehmen. Im Bild unten ist ein Auszug des Schaltplans mit dem Bereich des 36 poligen Cartridge-Connectors dargestellt. (Quelle: console5.com)

Jetzt sind soweit mal alle nötigen Informationen gesammelt, um mit einem Schaltplan und Layout zu beginnen. Im Netz habe ich nach einem Eagle-Layout für den Platinen-Stecker gesucht. Es war aber nicht gleich etwas zu finden. Also musste ein originales ROM-Modul als Referenz für die Abmessungen und Abstände der Kontaktpads herhalten. Mit den so abgenommenen Massen war es dann schnell gemacht und ich hatte ein neues Eagle-Bauteil gezeichnet und in der Library gespeichert.

vectrex_connector.lbr

Ich habe zwei Varianten der Modulschaltungen gezeichnet. Eine für die EPROMs mit 28 Pins und eine für die 1Mbit ROMs mit 32 Anschlusspins. (Da hier ja auch mehr Games Platz finden) Um nun alle möglichen Größen an Spielen unterschiedlich auf dem EPROM verteilen zu können, habe ich die Adressbits 12,13 und 14 umschaltbar gemacht. Und zwar so, dass diese drei Adressleitungen wahlweise von der Vectrex angesteuert werden können, oder extern vom Bediener über DIP-Schalter (L/H) auszuwählen sind. Die Bits 15 und 16 (sind ebenfalls über DIP-Schalter auszuwählen).

Die folgende Tabelle zeigt ein paar Beispiele, wie die Startadressen der Spiele ausgewählt werden können.

bit
16
bit
15
bit
14
bit
13
bit
12
bit11-bit0
game adressen
adressen
start – ende (hex)
L L L L L bei 8k Spiel 0000 – 1FFF
L L L H L bei 8k Spiel 2000 – 3FFF
L L H L L bei 8k Spiel 4000 – 5FFF
L L H H L bei 8k Spiel 6000 – 7FFF
L H L L L bei 8k Spiel 8000 – 9FFF
L H L H L bei 8k Spiel A000 – BFFF
L H H L L bei 8k Spiel C000 – DFFF
L H H H L bei 8k Spiel E000 – FFFF
H L L L L bei 4k Spiel 10000-10FFF
und so weiter…
Ansicht im Hex Editor

Vorausgesetzt natürlich, die Spieledaten wurden auch so auf das EPROM geschrieben. Um das zu bewerkstelligen, verwende ich einen von vielen Freeware – Hex Editoren (HxD) und baue mir aus den einzelnen Game-Images ein Binärfile zusammen. Diese „Datei“ wird dann in der ChipLab-Software importiert, das korrekte EPROM aus der Datenbank ausgewählt, dann den Chip in den Programmer gesteckt und los gehts… (Vorher nochmal checken, ob der Chip auch leer ist. Ansonsten muss er „oben ohne“ in die Sonne, oder unter die UV-Lampe (für ca. 15-20min)

Eprom im Programmer

Ist der Chip mit Bits gefüllt und aus dem Schaltplan ein Layout gemacht, dann geht´s ans Ätzen eines Prototyps. Dafür konnte ich in einer kurzen Mittagspause die Ätzanlage unserer Firma heranziehen und das unnötige Kupfer der Platine ätztechnisch entfernen.

Platinen Layout auf Folie

Nach dem Belichten einer mit fotopositv Lack beschichteten doppelseitigen Platine und dem anschließenden Entwickeln derselben, kann wird das überflüssige Kuper mit EisenDreiChlorid entfernt. Übrig bleibt die gewünschte Struktur.

Mal ein Selfie zwischendurch. Die Belichtung der Platine mit UV – Licht dauert etwa 57 Sekunden. Genug Zeit um mit dem Handy dumme Fotos zu machen 😀

 

Weiter geht es dann mit dem Bohren der Löcher in das Board. Die Durchkontaktierungen (VIAs) vom Top- zum Bottom Layer werden bei dem Prototyp nicht durch galvanisches Auftragen von Kupfer in den Bohrungen realisiert, sondern per Hand durch Durchstecken eines Stückes Silberdraht durch das Loch und anschließendem beidseitigem Verlöten.

fertig geätzte Platine

Jetzt fehlt nur noch die Bestückung. Die ist aber sehr schnell erledigt. Denn bis auf den IC-Sockel, ein paar Pull-Up Widerstände und die DIP-Schalter ist auf dem Board ja nicht viel drauf. Also die paar Teile gelötet, den Chip in den Sockel gesteckt – und fertig ist das ROM-Modul.

fertig bestücktes ROM-Modul

Wie das fertige Modul an der Vectrex aussieht und vor allem funktioniert, werde ich beizeiten einmal als kurzes Video zeigen. Ich habe das Board auch ein wenig verschönert und als industriell gefertigte Platine bei einem fernöstlichen Leiterplattenhersteller in Auftrag gegeben…

(kleines Update am 20.Oktober 2020)
Die im fermem Osten gefertigten Platine sind gekommen und sehen meiner Meinung nach auch ganz passabel aus. Schnell ist ein Board bestückt … hier das Ergebnis: