Projekt VC4000 MultiROM Modul

  • Hallo zusammen,


    wir haben im letzten Jahr ein MultiROM-Modul für die Interton VC 4000 entwickelt und erfolgreich auf dem VCFB präsentiert. Es gibt auch schon mehrere Interessenten für die finale Platine und ein Artikel für etwas mehr Medienaufmerksamkeit und evtl. noch weitere Interessenten ist in Arbeit.


    Typ: Hardware Projekt
    Lizenz: MIT


    Entwickler: Johannes Maibaum / Mario Keller / Stefan Höltgen


    Wir sind gerade dabei die finale Version der Platine (letzte Prototypen) zu erstellen und wollen dann eine kleine Serie (je nach Vorbestellungen) fertigen lassen. Zur Zeit stehe ich mit einem Leiterplattenhersteller aus Deutschland für ein Sponsoring in Verhandlung, der Ausgang ist aber offen. Unabhängig davon brauchen wir Bauteile und ggf. eine Anschubfinanzierung für die Leiterplattenserie und die letzten ein oder zwei Versionen der Prototypen.


    Homepage folgt noch, aktuell liegt alles public auf github:


    https://github.com/mkeller0815/VC4000MultiROM


    Hier das PDF unseres VCFB Flyers.


    https://github.com/mkeller0815…ter/doc/MultiRomFlyer.pdf


    Mario.

    Always cut the red wire!

  • https://github.com/mkeller0815…tiROM/blob/master/LICENSE


    The MIT License (MIT)


    Copyright (c) 2016 Mario Keller


    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:


    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.


    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.

    Always cut the red wire!

  • Stefan Höltgen


    Na ja, so richtig viel habe ich da ja nicht mit entwickelt (außer Neugier). :D


    Ich fänd es allerdings sinnvoll, wenn ihr euch einen griffiger Namen für das Modul ausdenken würdet. Als "Mitentwickler" würde ich vorschlagen:


    SD2VC4k
    InterSD
    Flash4Thousand


    ... oder sowas. :)

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • SD2VC4000 is super ... geht in dem gewöhnlichen Tonus :)


    Wird sich das Platinendesign noch ändern? Wenn ich mir das aktuell angucke, ist mein erster Gedankengang, dass dort relativ 1:1 ein Lochrasteraufbau auf 'ner Europakarte umgestrickt wurde. Das krieg man sicherlich auch halb so groß hin (halber Platinenpreis, Gehäuse evtl. denkbar [85mm in die Höhe ist wohl standard bei VC4000 Modulen])

  • Hallo zusammen,


    ok den Namen können wir gern noch anpassen, da würde ich aber auf jeden Flal Johannes mit beteiligen. Die Größe der Platine kann sich mit den nächsten Iterationen der Prototypen durchaus nochmal ändern. Der Plan ist aber, das die Platine von jedem Nutzer selbst bestückt und verlötet werden kann. Daher auch der konsequente Einsatz von THT Bauteilen. Je kompakter die Platine wird, desto schwieriger wird das Bestücken. Und wenn meine Verhandlungen mit der Leiterplattenfirma erfolgreich sind und wir einen guten Projektpreis bekommen, ist der Unterschied zwischen einer vollen Europlatine und einer etwas kleineren Platine marginal. Außerdem haben wir im oberen Teil durch den Arduino, die 7-Segment Anzeigen und die Buttons + SD-Slot einen so hohen Aufbau, das wir die Größe brauchen, damit der untere Teil in den Modul-Schacht passt.


    Viele Grüße,
    Mario.

    Always cut the red wire!

  • So, ich grab das mal wieder aus. Ich habe mittlerweile von der Basista Leiterplatten GmbH eine Platine als Prototyp gefertigt bekommen.
    Diese wird in der nächsten Tagen bestückt, sobald meine Reicheltbestellung mit den Teilen eingetroffen ist.


    Sobald ich das Modul testen konnte, gibts nochmal ein Update.


    Viele Grüße,
    Mario.

    Always cut the red wire!

  • So, ich bin heute dazu gekommen das Modul zu verlöten und die ersten Funktionstests zu machen.
    Das Display funktionier: https://vimeo.com/180072581
    Und auch die Tasten werden korrekt erkannt. Zum weiteren Testen komme ich heute aber nicht mehr. Spätestens am Freitag werden wir es aber beim Stammtisch testen.


    Mario.

  • So und jetzt gibt es sogar Homebrew für das Ding!


    Ich hab es in meinem 2 Wochen Urlaub geschafft (wenn auch grad so), Flappy Bird zu portieren. Die Hardware hat ganz schön gekämpft, die Röhrenzeichnungsroutine ist eine einzige Race Condition, es hat Grafikglitches, aber es ist spielbar.


    ROM und ASM gibts auf meiner Homepage tempect.de/senil/games.html (bisschen runterscrollen, unter der Retrogaming Präsentation für NES). Video (wenn auch schlechte Qualität) findet sich auf Youtube.


    mkl0815: Ich glaube, du bist derjenige, der ein unfertiges Flappy Bird auf Github gestellt hat. Ich war so frei, mir deine Flap-Routine zu klauen, ich hoffe, du bist einverstanden.


    Mit Canabalt bin ich noch nicht weit gekommen, aber als Abfallprodukt hab ich einen Spruchbandgenerator raus, der bis zur CC fertig sein sollte.


    Btw: Spritedaten und Labyrinthgenerator sind R/W, d.h. die Kiste hat nicht 37 Byte RAM sondern eher so um die 100.

  • Gratuliere! Es hat sogar den "Rückwärts-Test" bestanden, wie ich auf deiner Seite lese: Funktioniert auf der Konsole aber nicht im Emulator. Wie hast du das programmiert? Ohne Emulator?


    mkl0815 Ich glaube, du bist derjenige, der ein unfertiges Flappy Bird auf Github gestellt hat. Ich war so frei, mir deine Flap-Routine zu klauen, ich hoffe, du bist einverstanden.


    Die Flap-Routine kam im Wesentlichen von mir. :) Du hast den Flügelschlag aber nicht übernommen. Falls du den auch haben willst, kann ich dir die Routine schicken. Ebenso haben wir eine fertig komponierte Hintergrundmusik. (Wer den Grafi-Sound-Chip einmal programmiert hat, will ja sowieso nie wieder etwas anderes machen. :D )


    Wir hatten versucht die Röhren über das Gitter-Grafik-System zu programmieren. Da hätten dann auch mehr als 2 auf den Bildschirm sein können. Das als große Sprites zu machen, ist natürlich auch eine Möglichkeit.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

    Einmal editiert, zuletzt von Microprofessor ()

  • "Flappy Birds" können wir auf jeden Fall schon mal auf dem CC testen. Am Stand von Mario wird die VC-4000 und das Multi-ROM-Modul ja ausgestellt sein.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Hey Super. Der Code steht ja unter einer freien Lizenz (MIT License soweit ich mich erinnere), daher ist das kein Problem.
    Können wir mit deinem Code das github Projekt auf einen aktuellen Stand bringen? Falls ja, würde ich das mit entsprechenden Hinweisen machen.


    Toll, das wir für die CC etwas neues zum Zeigen haben, ich versuche das heute gleich mal auf die SD-Karte zu packen und mit dem MultiROM Modul zu testen.


    Mario.

    Always cut the red wire!

  • "Funktioniert auf der Konsole aber nicht im Emulator. Wie hast du das programmiert? Ohne Emulator?"


    Tja Leute, ich hatte schon Jahre vor euch ne Multicart :)


    Und dann hab ich vorletztes Jahr oder so einen EPROM-Simulator aufm Schrott gefunden. (ein paar Monate vorher auf demselben Schrott einen 386er mit EPROM Brenner Modul und Löschlampe)


    Batch Datei blub.bat:
    asm flappy2.asm -a -k
    copy flappy2.bin lpt1: /b


    Danach ging Entwickeln so: Speichern, blub, auf der Konsole Reset drücken, genießen (oder mich drüber aufregen, dass es nicht funktioniert, was viel viel häufiger der Fall war)


    Das Gittergrafiksystem hat 2 Nachteile: 1. zu krude, 2. breiter Rahmen um Bildschirm. Nein, ich liebe den Commodore 64.


    Übrigens FYI: Die meisten Register vom PVI sind nur lesbar oder nur schreibbar. DAs Gittergrafiksystem und die Sprites sind aber R/W, d.h. wenn man die Gittergrafik nicht braucht, hat man etwa 80 Byte RAM statt 37...


    Ich bin mal auf Freitag gespannt, im Arcademuseum Seligenstadt haben die auch einen VC4000, mal gucken, obs auf dem läuft... wie gesagt, die Röhrenzeichnungsroutine ist eine einzige Race Condition.


    Und übrigens: Ich biete den Code auf meiner Webseite nicht nur zum Spaß zum Download an! Greift zu! Wenn ihr irgendeine Routine für nützlich erachtet, könnt ihr sie gerne benutzen.


    Man sieht sich auf der Classic Computing!


  • Tja Leute, ich hatte schon Jahre vor euch ne Multicart :)


    Und dann hab ich vorletztes Jahr oder so einen EPROM-Simulator aufm Schrott gefunden. (ein paar Monate vorher auf demselben Schrott einen 386er mit EPROM Brenner Modul und Löschlampe)
    (...)
    Man sieht sich auf der Classic Computing!


    Ich lese da jetzt raus, dass du das cross-kompiliert und auf EPROMs gebrannt hast, die du in ein "leeres" ROM-Modul mit IC-Sockel gesteckt hast, richtig? Dann haben wir das anfangs genauso gemacht, hatten aber eine viel geringere Frust-Toleranz als du. :D


    Falls nicht würde mich dein Entwicklungssystem brennende interessieren. Vielleicht bringst du es ja mit zur CC? Würde mich freuen!

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Das mit den EPROMs ist wenns final ist. Wie gesagt EPROM-Simulator (ELV EPS1000). Das ist ein kleiner Kasten mit 64 Kilobyte RAM, aus der ein Flachbandkabel kommt, das man in einen Chipsockel steckt. Das hat mit Brennen nicht viel zu tun, obwohl ichs glaube, dass dich das brennend interessiert :)
    Ein Entwicklungszyklus dauert somit etwa eine Sekunde. Von Frust keine Spur.


    Ich werd meine gesamte Entwicklungsumgebung auf die CC mitnehmen inklusive dem IBM Thinkpad 600, wo man das Mainboard biegen muss, damit er angeht (hat jemand nen Reflow Ofen dabei?)


    Meine Multicart ist eine Europlatine mit VIEL Kabelgewirr und DIP Switches. Funktioniert aber schon viele Jahre zuverlässig. Übrigens, der Schalter für Adressleitung A12 ist ein On-Off-On Schalter, mit dem ich zwischen Low, High und Konsole A12 (für 4k Spiele) umschalten kann. Ziemlich clever.

  • So, ich habe mir gestern für kleines Geld auch 'ne VC4000 zugelegt. Falls also zufälligerweise noch so'n Multimodul übrig sein sollte oder in Zukunft nochmal produziert wird, melde ich mal mein Interesse an. :tüdeldü:

  • Lustig. Ich habe gerade auch erst mein Projekt vom letzten Jahr ausgegraben, das einen Epromsimulator auf Arduinobasis (bei mir allerdings arm auf teensybasis) beinhaltet - für eine Multicart von den Palladium VCG Spielen (also gleicher Prozessor, eher bekannt unter dem Emerson Arcadia 2001 Namen, aber nicht direkt kompatibel). Anstatt allerdings die Daten von SD in ein extra RAM zu packen hole ich es direkt aus dem ARM-Chip wenn auf der Adressleitung etwas anliegt. Bin allerdings noch ganz am Anfang im Testaufbau. Hab mir auch gerade erst ein VC4000 System beschafft, weil ich mir grad ne Kiste mit 30 VC4000-Spielen zugelegt habe und bin daher auf eure Seite gestoßen ;)


    Will sagen: ich interessiere mich auch für ne VC4000 Multicart! Wie ist denn da der Stand?


    btw: wer den "neueren" VACS-Compiler für den 2650 Prozessor mal eingesetzt hat, dürfte meinen Namen auch finden, ich hab das Ding vor einiger Zeit mal etwas gefixt und auf 1.24h gehoben ;)

  • Wie ist denn da der Stand?


    Das kann uns wahrscheinlich mkl0815 verraten.

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Nein, bisher nicht. Vielleicht schreibt mkl0815 uns hier ja mal ein paar Zeilen dazu?

    »It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.« (Edsger W. Dijkstra)


    Homespage| Computerarchäologie | Blog | Forschung

  • Hoffe auch, dass sich da noch was tut. Bin auf jeden Fall sowohl bei einem eventuellen Crowdfunding als auch beim Kauf eines Moduls umgehend mit von der Partie!

  • Hi.
    Da ich nicht auf die CC2017 komme, hier ein paar Updates:


    Die Entwicklung von Canabalt für VC4000 schreitet deutlich langsamer voran als erwartet. Mit etwas Pech werde ich bis Anfang Oktober nicht einmal einen spielbaren Prototypen haben. (und es braucht SEHR viel Glück, wenn das Spiel was hermachen soll)


    Dafür hab ich immer mal wieder an Flappy Bird gefeilt. Auf meiner Homepage (tempect.de/senil/progra/FLAPPY2.BIN) findet ihr die neueste ROM Version. Mehr Hintergründe. Etwas einfacher. Nach Schwierigkeit 8 kommt der Raketenvogel-Modus, wo die Joystick-Y-Position direkt die Position des Vogels bestimmt, aber dafür das Spiel immer schneller wird. Mein Rekord ist etwa 240.


    Wäre sehr verbunden, wenn das jemand ausstellt. Wenn net, macht auch nix, ich kriegs wahrscheinlich eh nicht mit.
    Wenn man das BIN in dem Link durch ASM ersetzt, gibts wie immer den Code. Da sollte man fast ganz unten nachgucken, die Fly_Table ist jetzt so konfigurierbar, dass man den Schwierigkeitsgrad nach Belieben weiter anpassen kann.

  • Also den spielbaren Prototypen hab ich geschafft. Es handelt sich um das absolute Minimum Viable Product.
    Pluspunkt: Man braucht keinen Controller, man springt mit der Pfeil-Nach-Rechts Taste an der Konsole.


    Es fehlt noch so ziemlich alles, aber es gibt unterschiedlich hohe, unterschiedlich lange Gebäude mit unterschiedlich langen Lücken (die länger werden wenn das Spiel schneller wird), es wird schneller, wenn man stirbt, kann man noch springen und die Laufanimation geht weiter.
    Was fehlt: Der ganze Rest.


    Binary gibt es auf meiner Seite tempect.de/senil/progra/CANABALT.BIN


    und auch hier gibts wieder das ASM mit gleichem Namen.


    Bis 2018 sollte es aber soweit fertig sein, dass es richtig vorzeigbar ist (nicht, dass ihr es auf der CC2017 nicht vorzeigen dürft)


    Gruß
    Simon

  • Finde ich Klasse! Ich hatte noch gar nichts davon mitbekommen, das an einer Canabalt Umsetzung gearbeitet wird! Ist denn geplant, das dann als Modul rauszubringen? Oder wird deine Umsetzung im MultiRom Modul enthalten sein?
    Ich drücke jedenfalls für beide Projekte fest die Daumen! Wäre schon super, wenn für das VC4000 etwas neues auf den Markt kommt. :thumbup: