Hello, Guest the thread was called7.1k times and contains 174 replays

last post from Emmababe at the

Brainstorm - näher Zusammenrücken bei sozialer Distanz: gemeinsam online C64 zocken/streamen

  • Userport würde ich nicht nehmen wollen, wg. zu wenig Strom, und extra Lötarbeit

    Das ist aber der Port, der immer nur brachliegt und fast nie genutzt wird. Den Expansionsport hätte man dann für sonstige Module frei.


    WLAN würde bei mir nichts bringen... ich habe kein WLAN

    Nicht Dein Ernst. 8o Das es so etwas noch gibt. Und wenn Du sooooo alt wärst wie Du angibst, dann doch eher Token Ring, oder? ;-)

    Na mal Spaß beiseite. Eine Wlan-Anbindung sollte heutzutage schon Standard sein. Also zumindest irgendwas kabelloses.


    Das mit dem Videosignal stimmt auch, jedoch macht es das ganze Projekt sehr viel einfacher, weil sich beim Chatten der C64 nicht mehr darum kümmern muss :-) Auch die Bildschirm-Daten plane ich direkt einzuspeisen, ohne zutun der C64 CPU (Audio ebenfalls).

    Also so eine Art On-Screen-Display, bei dem die Infos im Monitorbild mit eingeblendet werden. In der Art, wie es das Overlay-Modul mittels LM1881 (Video Sync Seperator) vom Henning macht:

    http://henning-liebenau.de/overlay64/

    Damit möchtest Du dann z.B. ein Chatfenster realisieren und nebenbei läuft dann ein Spiel, welches über Netzwerk gesteuert werden kann. Also der 2. Player aus der Ferne übernimmt dann die Steuerung,

    als wenn er neben Dir sitzen würde. Wenn das so gemeint ist, gefällt mir die Idee sehr gut. Denn damit wären alle bisherigen Spiele dazu kompatibel. Man müsste nichts umstricken.


    Verstehe ich das richtig, das Chatfenster läuft unabhängig vom C64 auf der Zusatzhardware und überlagert das C64- Bild? Interessante Idee, dann wäre es ja immer und jederzeit egal in welchen Programm schnell verfügbar? Wie schaltet man das dann um, speziell die Tastatureingaben?

    Wie oben beschrieben. Nichts neues. ;-)


    Das erinnert mich an Keyman64, wo die Tastatureingaben auch abgefangen werden und diverse Sachen ausgelöst und angesteuert werden können

    Korrekt. Ebenfalls alles schon dagewesen. Aber damit möchte ich die Arbeit vom Matthias nicht schmälern. Wenn das so klappt, wie ich mir das denke,

    dann kann es was ganz großes werden. Man muss es nur machen. ;-)


    VG

    Thomas

  • Das ist aber der Port, der immer nur brachliegt und fast nie genutzt wird. Den Expansionsport hätte man dann für sonstige Module frei.

    Nur, mit dem Userport kann man sonst nichts weiter anstellen :-)


    Aber wie erwähnt... ich plane ja ein Gaming Board / bzw. Tuning Board HAT ... dann sind alle Ports noch frei :-)


    ...dann kann es was ganz großes werden. Man muss es nur machen. ;-)

    :thumbsup:


    Finde ich auch. Deshalb plane ich das seit 2 Jahren.

  • Damit keine große zusätzliche Latenz erzeugt wird, wird der Spielscreen für die jeweils andere Seite direkt in den Speicher geschrieben... aber wie schon erwähnt, das muss man dann über Experimente herausfinden was da so alles machbar ist (evtl. über das FPGA VIC Board). Ich kann mir deshalb sehr gut vorstellen irgendwann eine Lösung zu haben die ausreicht um damit flüssig spielen zu können.

    Noch mal zum mitschreiben. :-)

    Verstehe ich das richtig, Du möchtest die FBAS-Analogsignale in Deinem Modul erst digitalisieren, übers Internet rüberschieben und diese demjenigen auf der anderen Seite dann direkt in den Speicher schieben?

    Würde aber bedeuten, das es sich hierbei "nur" um eine Master-Slave-Lösung handelt. Also der Master überträgt das Bild für beide Seiten (oder vielleicht auch für mehrere).

    Hier wäre es vielleicht sogar sinniger, direkt den Bildschirmspeicher des Masters auszulesen, um diese Bildinfos dann auf die Reise zu schicken.

    Das würde aber wiederum bedeuten, das die Latenz hier noch eine größere Rolle spielt, da das Bildsignal auf der jeweils anderen Seite erst noch verarbeitet werden muss.

    Und nebenbei sollen die Steuersignale für die Joysticks dann auch noch abgefragt und versendet werden?


    VG

    Thomas

  • Wie die Lösung am Ende genau aussieht kann ich noch nicht sagen. Wie gesagt, experimentieren :-) Wenn das eine nicht funktioniert... was anderes probieren. Das können direkte Register, ein ganze Bild, oder irgendetwas anderes sein. Man muss halt schauen das es schnell geht und gut aussieht ;-)


    Den LM1881 habe ich heute angeschlossen. Der H/V Sync funktioniert gut, die ersten Punkte habe ich gezeichnet. Muss noch etwas Feintuning gemacht werden und die Font muss ich noch erstellen :-)

  • Moin zusammen, ich finde es erstaunlich das bei @Mattias noch nicht ganz klar ist wie die fertige Lösung aussehen soll, aber schon ein Platinenlayout vorhanden ist. Ich kenne das nur so das man sich erst mal ausdenkt was ein System können sollte. Dann die notwendigen Komponenten besorgt, diese freiluft oder auf Lochraster zusammenlötet und dann falls notwendig programmiert. Wenn dann alles fäddich is und funktioniert kann ich über Platinenlayout nachdenken (zugegeben mache ich das nie sondern entweder GMP oder Captain-Future ) :-)


    Aber Matthias ich hab zwar den Thread komplett gelesen, aber so richtig Schlau daraus was du versuchst zu bauen werde ich nicht. Kannst du bitte in einem zusammenhängenden Text erklären was dene Hardware/Software können soll. Dabei geht es mir nicht um verwendete Komponenten sondern rein darum wie es ablaufen soll das zwei oder besser mehrere Personen mit dem C64 über das Internet miteinender Spielen/Chatten oder was auch immer können. Also welche Daten sollen über das internet übertragen werden. Gibt es einen Master c64 oder Server der die Kommunikation steuert? Sowas sollte vor Bau von Hardware klar sein.


    Bitte nicht als Angriff verstehen, ich finde es Toll in der Community was zusammen zu schaffen. Aber ich denke wenn allen klar ist wohin bei dir die Reise geht könnte der eine oder andere auch was beisteuern um evtl. Klippen zu umschiffen.

  • Der Grund dafür ist einfach, es gibt so viele Möglichkeiten ;-)


    Klar ist mir jedoch, dass der C64 selber nicht die Daten schicken kann, denn dazu ist er zu langsam. Also heisst es sich etwas auszudenken wie und was abgezapft und versendet wird. Alle Hardware-Teile dazu stehen zur Verfügung: Developer Board, Ethernet-Board, FPGA-Video Board usw., das ist nicht das Problem :-)


    Damit man mal voran kommt, werde ich zuerst den Chat mit Overlay fertig machen, sowie ein "Spectator" Mode, so das nicht nur Chatten möglich ist, sondern es auch möglich ist dem anderen beim spielen zuzusehen (ohne Interaktion). Dann sammelt man schon einige Erfahrung was die Netzwerksachen angeht.


    Als nächstes die Joystick Übertragung, und dann einfach mal schauen wie sich die Hardware verhält, und die Experimente beginnen :thumbsup:


    Bei mir verändert sich die Hardware stetig... da Theorie und Praxis zwei vollkommen unterschiedliche Dinge sind. Ich robbe mich also an die rundeste Lösung von Revision zu Revision heran, je nachdem wie die Signale in der Praxis dann aussehen und welche Erkenntnisse sich mir eröffnen. Deshalb kann ich nicht sagen wie die Hardwarelösung (mit FPGA-Video Board oder ohne) am Ende aussehen wird :-)

  • Klar ist mir jedoch, dass der C64 selber nicht die Daten schicken kann, denn dazu ist er zu langsam.

    Wenn Du den ganzen Screen rüberschieben möchtest, dann ja. Das kannst Du völlig vergessen. Damit machst Du Multiplayerspiele praktisch unspielbar.


    Also heisst es sich etwas auszudenken wie und was abgezapft und versendet wird. Alle Hardware-Teile dazu stehen zur Verfügung: Developer Board, Ethernet-Board, FPGA-Video Board usw., das ist nicht das Problem

    Na, wenn das kein Problem ist, dann los. Ich bin gespannt. :thumbsup:


    Damit man mal voran kommt, werde ich zuerst den Chat mit Overlay fertig machen, sowie ein "Spectator" Mode, so das nicht nur Chatten möglich ist, sondern es auch möglich ist dem anderen beim spielen zuzusehen (ohne Interaktion). Dann sammelt man schon einige Erfahrung was die Netzwerksachen angeht.

    Aber damit damit fängst Du praktisch mit der unwichtigsten Sache zuerst an. Was will man mit einem Chat? Das wäre für mich das Tüpfelchen auf dem i, wenn das Hauptkonzept (mehrere Leute gegeneinander spielen zu lassen) funktionieren würde.

    Hhhmmm, so langsam kann ich Dir auch nicht mehr folgen.


    Bei mir verändert sich die Hardware stetig... da Theorie und Praxis zwei vollkommen unterschiedliche Dinge sind. Ich robbe mich also an die rundeste Lösung von Revision zu Revision heran, je nachdem wie die Signale in der Praxis dann aussehen und welche Erkenntnisse sich mir eröffnen. Deshalb kann ich nicht sagen wie die Hardwarelösung (mit FPGA-Video Board oder ohne) am Ende aussehen wird

    Wenn sich stetig was an der Hardware verändert, wie kommt es dann zu der fertigen Platine? Bestellst Du jede Woche eine neue, wenn Dir wieder was besseres einfällt? ;-)


    VG

    Thomas

  • Umständlich, aber am Ende zielführend

    Das werden wir sehen. Bin gespannt. :thumbup:

  • - Keyboard Lauschangriff funktioniert

    - Overlay Text funktioniert (war mit dem Teensy etwas tricky ;-) )


    Als nächstes kommen ein paar Tests mit dem neuen Ethernet Board. Dazu werd ich den Java Server updaten und auf den Linux Server hochladen, verbinden, Test-Text senden...


    Wenn das funktioniert mache ich mich an das versenden des C64 Bildschirminhalts :)


    Ein FPGA-Video Board Stream wäre nicht schlecht. Ich sehe es schon kommen, ich werde mich langsam in FPGA einarbeiten müssen :-) ... bis Herbst ist ja noch etwas Zeit :D

  • bis Herbst ist ja noch etwas Zeit

    Bis zum Herbst muss alles fertig sein. Also ran. :-D

  • Das wird schon irgendwie werden :-) Ich denke da immer positiv :D


    Quote

    GMP und ich hatten uns dann mal daran gemacht den Servant64 auf einen Raspberry PI zu portieren. Dieser saß dann danstatt des Arduino direkt am Userport des C64 und ersetzte den Arduino und den Wirndows PC. Somit war ein kleines, kompaktes Modul geboren, welches alle Funktionen des Servant auch hätte übernehmen können und vor allem direkt mit dem Wlan verbunden war. Wir hatten damls das Übertragungsprotokoll sowie die Load Routine fertig mit der es uns möglich war Software direkt vom Raspberry PI zu laden. Dies hat auch einwandfrei funktioniert.


    Da aber nur wenige Interesse am Servant und dessen funktionen zeigte, ist die Entwicklung leider eingeschlafen.

    Eigentlich eine Runde Sache. Vor allem was Ihr alles gemacht habt: C64 Kernel umgeschrieben, Server mit umfangreichen File Funktionen erstellt, Hardware entwickelt und verfeinert, Schnittstelle für Entwickler. Eine Menge Arbeit, und es funktioniert! Jedenfalls bei Runden basierenden Spielen, wie Ihr selber schreibt. Habt Ihr es auch mit (eigenen) "Action Spielen" probiert? Christian hatte ja was von Pong geschrieben und das Problem der Latenz, was nicht funktionierte. War das ein Test mit Eurer Servant64 Hardware? Hattet Ihr selbst eingehende Tests gemacht?


    Bei meinem Server messe ich eine PING Latenz (hin und zurück, also 2 Wege) von 16ms, was ok ist (beim Gaming wären das: 8ms zum Server, 8ms zum anderen C64 - 1 Weg - , PAL benötigt für jeden Frame 20ms). Jetzt müsste man mal mit der Servant64 Hardware messen, was davon im Spiel noch übrig bleibt, und wo die zusätzlichen Verzögerungen herkommen, die Action Spiele damit problematisch machen.


    Wenn ein Byte vom Arduino kam, wurde das dann per Interrupt an das Kernel bzw. Spiel gebunden? Oder fragt der Kernel bzw. das Spiel ständig eine Speicherstelle ab? Findet der Datenaustausch am Userport parallel mit 8 Datenleitungen oder seriell statt? Hattet Ihr gemessen wie lange eine Bytefolge von einem C64 zu einem anderen C64 über das Internet benötigt? Habt Ihr TCP oder UDP verwendet? Wie erfolgte die Spiel-Synchronization?

  • Wir hatten damals das große Glück den Servant in einem sehr frühen Stadium auf einer von GMP und Mir gegründeten Veranstaltung "Kölner Retrotreff" ein paar interessierten zeigen zu können. Auf Gaming speziell das Konzept nicht ausgelegt. Wir hatten erstmal im Fokus die Verbindug zwischen PC und C64er mal von den X1541 Kabeln etc. abzulösen und etwas zu schaffen, was es dem C64 ermöglicht auf die Ressourcen des PC (Festplatte, Internet, Speicher...) zu zu greifen. KiWi hatte dann die Idee einen Kernal so zu modifizieren das dieser direkt mit dem PC Server kommunizieren konnte und dies auch umgesetzt. Als wir dann überlegt hatten das wir die Internetverbindung vom PC ja nicht nur für einen Chat sonder auch für Gaming nutzen konnten hat sich YPS überlegt einen Server zu entwickeln, welcher die Kommunikation von 2 oder mehreren C64 im Internet (zumindest erstmal für rundenbasierte Spiele) koordiniert. Da wir die Aufgaben verteilt haben und jeder so sein Spezialgebiet, kann ich leider nicht viel über die Architektur des Servers und dessen Funktionen sagen. Evtl. kann YPS da mal aus dem Nähkästchen plaudern. Da wir nicht wissen konnten, welchen PC die Anwender nachher für den Servant verwenden haben wir auch keine Messungen der Geschwindigkeit gemacht. Auch war uns aufgrund der Architektur des Servant direkt klar das hier wenn es um eine schnelle Kommunikation geht ein Flaschenhals entstehen würde. Wenn wir die Sache heute mit Focus auf Gaming angehen würden, würden wir uns auf reine Neztwerkverbindung setzen ohne Zwischenstationen. Als wir den Servant (Arduinosoftware und PC Software zusammengefasst) hatten auf einem Raspberry PI hatte in unseren ersten Versuchen leider von der Übertragungsgeschwindigkeit ein wenig schlechter abgeschnitten, als unser Test PC obwohl alles in C Programmiert war. Da wir einen sehr kompakten, aber leider schwachen PI Zero verwendet haben und dieser noch das volle Raspian inkl. der vorinstallierten Software im Bauch hatte, ist da in jedem Fall noch tuning möglich. Aber wie gesagt es kam trotz vieler Einsaztmöglichkeiten, offenem Quellcode und Erweiterungsmöglichkeiten sowie Dokumentation zu wenig Resonanz.


    Das Spiel von YPS war erstmal nur als Machbarkeitsstudie gedacht und hatte nicht den Anspruch mögliche Geschwindigkeiten zu messen. Der Datenaustausch findet beim Servant parallel mit 8 Datenleitungen statt. Die Daten (Spielzug des Gegners etc. ) wurden in Intervallen vom Server abgefragt. Zur kommunikation haben wir glaube ich TCP verwendet - ich müsste hier aber nochmal nachgucken... ist ja schon was länger her :-)


    Evtl. hat YPS ja Zeit und Lust uns nochmal über die Fuktionsweise des Spiels und die Steuerung über den zentralen Server zu erklären :-) - und vor allem ist das Teil noch online?? :-):-):-)

  • Danke für die Infos.


    Aber wie gesagt es kam trotz vieler Einsaztmöglichkeiten, offenem Quellcode und Erweiterungsmöglichkeiten sowie Dokumentation zu wenig Resonanz.

    Ja, davon darf man sich nicht abschrecken lassen :-) Keine Resonanz geht ja noch, noch weniger hilfreich ist da eher "geht nicht" oder "wozu?" ;-) So oder so ähnlich es wohl Sidekick64 und Carsten ergangen ist... und er es trotzdem, trotz Raspberry Pi Einsatz, geschafft hat :respect:


    Was fehlt ist eine Plattform. Infrastruktur. Gerade bei Multiplayer. Da müsste man in Vorleistung gehen, 2-3 Spiele selbst entwickeln, und liefern ... bzw. auf YouTube hochladen :-) Es macht erst Spaß, wenn man sieht das es Spaß macht :D

  • Das man in Vorleistung gehen muss ist klar, haben wir glaube ich mit dem Funktionsumfang vom Servant ausreichened bewiesen. Man sollte auch immer bedenken das die Zeit die man investiert nur Hobby ist und die meisten voll Arbeiten und Familie haben. Auch ist es schwer ne gute Truppe zusammen zu bekommen wo jeder einen Teil der Aufgabe übernimmt und vor allem sein Spezialgebiet hat. Ich würde mir nie zutrauen ein ansprechendes Spiel zu programmieren auf dem C64. Da kann man froh sein, wenn man jemanden mit ausreichend Erfahrung kennt. Ich bin froh das wir uns damals gefunden haben und viel Spaß an der Entwicklung und am Teamwork hatten!

  • Absolut :D Aber das hat mich gerade zu einer anderen Idee gebracht :thumbsup:


    (ich muss damit aufhören, sonst wird meine Todo Liste zu lang |:roll2:)