Vectrex Emulator...

Du hast eine Idee für ein Projekt?
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mich würde es ja reizten den die Vectrex Spielkonsole zu Emulieren. Siehe auch: https://de.wikipedia.org/wiki/Vectrex

Ein Video von dem Ding: http://www.youtube.com/watch?v=QEQV-N3PHvM

Die Kiste kenne ich persönlich zwar nicht, interessant ist es dennoch, weil der Aufbau sehr einfach ist:

Code: Alles auswählen

    CPU: Motorola 6809A - 1,5 MHz
    RAM: 1 kB
    ROM: 8 kB
    Cartridge-ROM: bis 32 kB
    Anzeige: 22 cm Schwarz-Weiß-Monitor, hochkant mit 256 × 256 Positionen
    Sound: AY-3-8912 über eingebauten Lautsprecher
CPU hab ich ja. Den Sound Chip würde ich erstmal "weglassen"...

Anscheinend wird der Monitor Kathodenstrahl direkt per CPU gesteuert. Da ist kein "Grafikchip" dazwischen. Offensichtlich wird direkt per machinen code gesagt, sowas wie:
* Strahl aus
* gehe zu x,y
* Strahl einschalten, mit Intensität x
* gehe nach x,y

Gute Informationen gibt es dazu bei http://www.playvectrex.com/designit_f.htm (Ein Frame von http://www.playvectrex.com/ )

Das 4 KB Vectrex ROM disassembliert gibt es hier: http://www.playvectrex.com/designit/chrissalo/bios.htm
Zwichensatz im ROM: http://www.playvectrex.com/designit/chr ... endixe.htm

Ein "Introduction to Vectrex Programming" was quasi bei 0 Anfängt: http://www.playvectrex.com/designit/chr ... torial.htm



Mit Tkinter oder PyGame sollte sich doch eine Grafische Ausgabe in relativ überschaubarer Zeit realisieren lassen. Man muß ja im Prinzip nur Punkte und Linien zeichnen...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Wie hast Du das eigentlich mit dem Timing gelöst (ich habe mir Deine Quelltexte jetzt nicht angesehen)?

Zumindest musste/konnte man beim C64 (6502) mit dem richtigen Timing nette Effekte (Demos) zaubern. Sowohl der 6502 (mit phi1 und phi2) als auch der 6809 (mit E und Q) verwenden eine two-phase-clock. Das sind immerhin 4 Zustandsänderungen, welche man berücksichtigen könnte.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Timing ist noch gar nicht angegangen. Ich glaube aber auch, das es in Python nicht wirklich möglich ist. Dazu reicht die performance nicht. Evtl. Mit PyPy aber auch damit schwankt die performance stark...

Richtiges timing ist doch aber nur für den sound interessant. Wobei es da auch Effekte beim Bildschirminhalt gibt...

Aber ein 100% emulation strebe ich eh nicht an. Zu viel Arbeit und IMHO Python das falsche Werkzeug.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Nochmal ein paar Links zum Thema Vectrex gesammelt...

Die ROMs wurden wohl in den 90zigern zu public domain erklärt. Eine Quelle dafür fehlt mir aber noch. Allerdings gibt es in einer Ausführliche FAQ: http://vectrexmuseum.com/mirror/vgdb/pages/vecfaq.txt folgendes Statement:
Q. Isn't copying the games by burning EPROMs stealing or violating a
copyright?

If the system is "dead" then no money is lost by making copies of
something which otherwise would never be available. Even so, it is a
fuzzy matter and technically the answer should probably be, "YES."
Fortunately, Smith Engineering [Jay Smith] has given permission to make
copies of all Vectrex related materials (manuals, games, overlays, etc.)
as long as it is not for profit.
Download der ROM: http://www.vectrexworld.com/#!emu-roms- ... rlays/c84h

Oder beim mirror des Ursprünglichen FTP Servers: http://www.vectrex.com/Mirrors/FTP_Mirror/
Dort gibt es auch die "vectrex.tar.Z" Datei, die wohl mal offiziell auf einem FTP Server ins Netz gestellt wurde. Darin ist alles was man so braucht. Dateien aus den 80ziger Jahren :shock:

Es gibt natürlich ein JavaScript Emulator, sofort mit einem Spiel geladen: http://www.twitchasylum.com/jsvecx/

Weiterführende Link Listen:
http://vectrexmuseum.com/vectrexlinks.php

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ah, in http://www.playvectrex.com/designit/fre ... man_v1.pdf steht, das es noch ein 6522 drin steckt:
The 6522 interface adapter provides all the interface necessary between the microprocessor and
the analog electronics (joysticks, D / A converter, sample / holds and programmable sound
generator). The interface adapter provides two 8-bit parallel ports, two 16-bit counters (timers)
and an 8-bit shift register.
The 6522’s shift register is used by the dashing and raster drawing routines.
Dort sind noch einige zusätzliche Technische Informationen zu finden...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten