Schlagwort-Archive: selfmaderom

Spielemodul für die Vectrex selbstgemacht

Loading

edit Nov. 2024: Es erreichen mich immer wieder Anfragen, die Gerberdateien für die Platinen zum Nachbau zur Verfügung zu stellen. Mit dem Link ist der Download nun möglich:

vectrex_rom27c1001

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: