Hello, Guest the thread was called7.4k times and contains 161 replays

last post from Lutz G at the

Virtual C64 nun im Web und mit CSDB-Browser

  • mit Aufruf von https://dirkwhoffmann.github.io/virtualc64web/ startet ihr den vc64web und werdet wenn ihr es zum ersten Mal aufruft von den ROM-Chip-Einstellungen begrüßt und aufgefordert ein ROM Eurer Wahl in die "virtuellen" Sockel reinzuklicken. vc64web speichert das ROM dann dauerhaft für Euch in den WebbrowserCache und lädt dieses bei späteren Aufrufen ohne nochmal zu fragen.


    Das MEGA65 Project stellt dem vc64web freundlicherweise die Open-ROMSs zur Verfügung. D.h. vc64web lädt die gerade aktuellen ROMS immer direkt einfach per Knopfdruck von der MEGA65-ROM-Teilprojektseite https://github.com/MEGA65/open-roms in die ROM-Sockel.


    Selbstverständlich lassen sich für max. Kompatibilität auch die Commodore-ROMS in die Sockel von vc64web hineinladen (darin gleicht er sich aufs Haar dem originalen virtual C64 Mac) ...


    Ein weiteres Highlight stellt die Online-Schnittstelle zu http://csdb.dk dar. Diese Seite hostet so ziemlich alle coolen Demos. Die Betreiber von der CSDb haben ihre web-services für vc64web extra so eingerichtet, dass dieser einen hübschen Content-Browser darstellen kann, so ziemlich netflix like ...


    Weiterhin wird eine Aufrufschnittstelle angeboten mit der man die coolen Demos aus der csdb.dk Szene-Browser-Detailansicht über "kopieren in die Zwischenablage" einfach per Link teilen kann.


    z.B. diese von fieserWolF


    https://dirkwhoffmann.github.i…/elite-code-mechanics.prg


    absolut brilliante Demo ....


    Ihr könnt auch Eure USB-Joysticks anschließen und dann in vc64web auswählen... Für touch Geräte wie iPhone und Co bietet vc64web auch einen virtuellen Touch-Joystick an.


    Für Bugsreports und weitere technische Details dient die folgende Projektseite https://github.com/dirkwhoffmann/virtualc64web


    Viel Spaß mit vc64web und beim Stöbern in der Demo-Szene wünschen Euch

    captain_buck_rogers (aka mithrendal) und dirkwhoffmann


    PS: Psst .... es gibt sogar noch einige Geheimnisse zu entdecken ... einige Leute behaupten, dass irgendwo im vc64web eine Art Schützenhilfe für das Spiel Archon versteckt ist ... findet ihr heraus wie man sie aktiviert ?

  • wir haben soeben der im vc64web eingebauten Onlineschnittstelle zur CSDb eine Like-Funktion verpasst ...


    jetzt kann jeder über die Suchfunktion aus den 187796 CSDb Titeln seine Favouriten heraussuchen und Herzchen geben...


    Über die Ansicht "zeige nur Favouriten" zeigt vc64web dann ausschließlich die gelikten Favouriten an und man kann die Titel dann einfach durch Klicken starten ... (vc64web lädt den geklickten Titel dann selbstständig von der CSDb ohne den Umweg über die Festplatte)


    Die Likes werden im LocalStorage des Browsers also nur lokal auf Eurem Gerät abgelegt .... Das heißt wenn ihr den Browser oder den Computer/iPad/iPhone wechselt... sind die Likes natürlich weg ... vielleicht sollten wir da noch eine Exportfunktion einbauen oder ?

  • was war eigentlich eines der coolsten Spiele mit Langzeitmotivation seinerzeit … für mich gehörte jedenfalls Archon dazu … zusammen mit Freunden vor dem 64er war es eigentlich das Spiel zu dem man immer wieder am liebsten zum gemeinsamen Spielen zurückgriff …


    Als Mensch gegen den 64er war und ist das Spiel jedoch fast unspielbar, aufgrund der präzisen AI die der Spieleentwickler „Freefall“ seinerzeit eingebaut hat. Naja jedenfalls für mich … der 64er räumt meine Figuren stets alle mühelos ab. Ich habe keine Chance.


    Die Amigaversion hatte mindestens einen sogenannten Cyborg-Modus, der einem das Kämpfen komplett abgenommen hat. Und die Spielfigur wurde hier quasi mit derselben Effektivität gegen die Computer AI gesteuert … eigentlich war es Computer gegen Computer und man schaute nur noch zu …


    Frage: was macht den Computer denn so effektiv gegen den Menschen ?


    eine unerwartete Erkenntnis: das präsize schräge Schießen … ist für einen Mensch ziemlich herausfordernd … aber zudem kommt noch die Tatsache das der schräge Winkel bei Archon nicht 45 Grad ist .. das ist irre oder ? ich habe nachgemessen …


    …die ganze Forschungsarbeit ist ausführlich hier dokumentiert …

    https://github.com/dirkwhoffmann/virtualc64web/issues/57

    https://github.com/dirkwhoffmann/virtualc64web/issues/60


    Man könnte eigentlich erwarten das ein diagonales Schießen genau 45 Grad erfolgt oder ? Aber in Archon wird 27 Grad diagonal geschossen.


    Hmmm … was nun ?


    Idee: wir bauen unsere eigene AI in 2020 um uns dabei zu unterstützen Archons KI aus 1982 zu schlagen… hmm was ist die moderne Antwort in Zeiten von Battlefield 123 … Aim-bot oder auto aim ?


    Hmm welche Skript-Sprache eignet sich für den Aim-Bot für den vc64web der in HTML5/Javascript/WASM implementiert ist ? Javascript… ;-)


    Also ein kleines Javascript und außerdem brauchen wir noch die Sprite-Positionen … die sich ja ständig verändern können … und Zielen und Schießen müssen wir auch können … dafür muss das Skript den Joystick kontrollieren können, zumindest kurzzeitig … weil steuern wollen wir als Mensch ja weiterhin, weil das Spaß bringt …


    Wer das mal ausprobieren möchte der kann in vc64web über das „+“ Icon in der Navigationsleiste ein Action-Button anlegen und als Aktion das bereits exemplarisch eingebaute Aim-Bot Beispiel für Archon auswählen (es ist auf die gelben Figuren(Light-Side) eingestellt). Am besten man hinterlegt dann auch gleich ein Shortcut zur Aktivierung des Aimbots… Wenn aktiviert ist der Button rot und wacht fortan über die Position der gegnerischen Figur … und schießt automatisch wenn optimale Stellung erreicht … nocheinmal gedrückt wird das Aimbotskript wieder deaktiviert (Button wird wieder grau …)


    natürlich kann man die Archon Aim-Bot-Beispiel-Vorlage nicht nur zum Spielen sondern auch als Startpunkt für andere selbstgestaltete Bot-Controller in anderen Spielen verwenden…. Viel Spaß beim Javascript-Coden gegen über 30 Jahre alte Spiele-KI oder beim Siegen in Archon … (obwohl man jetzt absolut präzise zielt und schießt ist es ist immer noch herausfordernd zu gewinnen)

  • Ebster

    Changed the title of the thread from “virtual c64 nun im web und mit csdb-browser” to “Virtual C64 nun im Web und mit CSDB-Browser”.
  • Ich habe den Online-Emulator gerade mal ausprobiert. Gefällt mir gut und finde ich gut gemacht! :thumbup:

    Die Likes werden im LocalStorage des Browsers also nur lokal auf Eurem Gerät abgelegt .... Das heißt wenn ihr den Browser oder den Computer/iPad/iPhone wechselt... sind die Likes natürlich weg ... vielleicht sollten wir da noch eine Exportfunktion einbauen oder ?

    Da habe ich den Sinn dahinter nicht ganz verstanden. "Likes", die nur lokal bei mir sichtbar sind? Ob mir ein Spiel oder Demo gefällt oder nicht, kann ich mir gerade noch so merken. In 30 Jahren dann vielleicht nicht mehr so gut ... :alt:


    "Likes" zu vergeben ergibt für mein Verständnis nur einen Sinn, wenn diese "Likes" irgendwo zentral für alle Benutzer sichtbar sind. Dann sieht man auch, wie vielen Leuten das Spiel bzw. Demo gefallen hat und kann evtl. entsprechende Ranglisten ausgeben. Nur für den reinen "Heimgebrauch" halte ich "Likes" für so gut wie nutzlos.

  • >bin schwer beeindruckt. Sehr, sehr nice! :emojiSmiley-41:

    ...

    >Ich habe den Online-Emulator gerade mal ausprobiert. Gefällt mir gut und finde ich gut gemacht!


    vielen Dank ... 😍


    >Da habe ich den Sinn dahinter nicht ganz verstanden. "Likes", die nur lokal bei mir sichtbar sind?


    Oh das stimmt ... vielen Dank für den Hinweis ... ich denke da habe ich mit "like" den falschen Begriff verwendet 🤔...


    Moment mal ist das auch im vc64web falsch ? Muss ich gleich mal nachprüfen ...👀 wie habe ich es denn da genannt ... Ah da habe ich es "Favoriten" 😅 genannt ... naja ist halt doch eher sowas wie "Lesezeichen" auf Demos oder coole Titel ...


    vc64web hat selbst keinen Server dahinter nur github-pages ... der Nachteil es kann keine Daten sammeln wie "likes" 😩... der Vorteil es sammelt keine Daten 😉


    an die CSDb geben wir bislang auch nichts weiter ... wir laden nur von deren Webservice Schnittstelle die Top-10-Feeds der einzelnen Kategorien, die einzelnen Releases, sowie die teilweise animierten Vorschau Bilder dazu ...

  • Schöne Sache! Nur ein Problem: ich konnte kein Charset-ROM hochladen. Mit Basic und Kernal ging es. Meine ROM-Dateien sind ohne Startadresse, also genau 4096 Bytes (Charset) bzw. 8192 Bytes groß. Spielt der Dateiname eine Rolle? Habe es mit charset und charset.rom und 901225.01 probiert, jeweils ohne Erfolg (drag & drop, sowie direkt über Öffnen).

  • Hi Kosmas 🤓


    der Dateiname spielt keine Rolle ... ist egal ... die relevante Codestelle ist hier


    man kann sehen das die Datei 4096 Bytes lang sein muss (das ist die 0x1000 im unten stehenden Code)


    dann erkennt Virtual C64 die Roms anhand der MagicBytes, das sind bei dem Charset die ersten vier Bytes, was für eine Romsdatei es ist ...


    kannst du mal schauen was bei deiner Charset-Datei in den ersten vier Bytes drin steht ? Öffne dazu mal die Javascript Konsole deines Browsers und schaue nach den folgenden Zeilen


    das hier logged er bei mir ...

    load file=chargen_openroms.rom len=4096, header bytes= 3c, 66, 6e virtualc64web:1:415

    ROMFile: readFromBuffer: checksum = 4d31ecbf4f967dc3 virtualc64web:1:668
    Loaded ROM image chargen_openroms.rom.



    Aber mit den ROMS vom MEGA64 Projekt geht es oder ?

  • mit Aufruf von https://dirkwhoffmann.github.io/virtualc64web/ startet ihr den vc64web

    Vielen Dank für die Umsetzung des Mac-only C64-Emulators "Virtual C64" als Web-App. Ich hatte vor Jahren u.a. wegen Virtual C64 darauf geachtet, dass mein Mac eine Metal-kompatible Grafikkarte besitzt (war Voraussetzung). Und jetzt kann man den Emu sogar im Webbrowser starten – Wahnsinn.


    vc64web lädt die gerade aktuellen ROMS immer direkt einfach per Knopfdruck von der MEGA65-ROM-Teilprojektseite https://github.com/MEGA65/open-roms in die ROM-Sockel.

    Sicher, dass es die aktuellsten sind? Im Github-BIN-Verzeichnis liegen laut Beschreibung Charset-Binaries mit meinem PXL-Font (Version 2.3). Lädt man aber das ROM-Set in VirtualC64Web, sieht man einen ganz anderen, nicht gerade gut lesbaren oder hübschen, Font.

  • Sicher, dass es die aktuellsten sind? Im Github-BIN-Verzeichnis liegen laut Beschreibung Charset-Binaries mit meinem PXL-Font (Version 2.3). Lädt man aber das ROM-Set in VirtualC64Web, sieht man einen ganz anderen, nicht gerade gut lesbaren oder hübschen, Font.

    In dem bin-Verzeichnis liegen zwei ROM-Dateien. Die "normale" mega65.rom und die mega65_pxlfont.rom, die deinen Font benutzt. Ich vermute mal, dass erstere geladen wird.

  • Sicher, dass es die aktuellsten sind? Im Github-BIN-Verzeichnis liegen laut Beschreibung Charset-Binaries mit meinem PXL-Font (Version 2.3). Lädt man aber das ROM-Set in VirtualC64Web, sieht man einen ganz anderen, nicht gerade gut lesbaren oder hübschen, Font


    hmm 👀 ich schau mal nach ... was ich da lade wenn man auf den blauen Button "install open-roms" drückt ...


    Code
    1. fetch("https://mega65.github.io/open-roms/bin/basic_generic.rom").then( installer );
    2. fetch("https://mega65.github.io/open-roms/bin/kernal_generic.rom").then( installer );
    3. fetch("https://mega65.github.io/open-roms/bin/chargen_openroms.rom").then( installer );


    ist chargen_openroms.rom denn evtl. die falsche Datei ?


    Übrigens wenn du die Einstellung "pixel art" anschaltest, dann wird alles ganz scharf gezeichnet ... (Achtung Safari auf dem Mac kann diese Einstellung derzeit nur wenn du die Einstellung "on next start use accelerated WebGL" abschaltest ... (Safari unterstützt noch kein Scharfzeichnen auf hardwarebeschleunigten WebGL Graphickontexten 🙄)

  • Sehr cool, jetzt kann ich mit wenigen Klicks auf jedem Rechner Shadow Switcher spielen :thumbsup:


    Allerdings funktioniert der CSDb Browser bei mir nur unter Chromium, nicht unter Firefox...


    Was mir nicht so gefaellt sind diese seltsamen "Check-Boxen", also die, die irgendwann Apple eingefuehrt hat. Ich kann hier anhand der Gestaltung nicht erkennen ob die an oder aus sind. In beiden Faellen sind sie farblos. Ich frage mich echt, was mit der guten alten Check-Box passiert ist, als man ganz intuitiv noch sagen konnte, aha, da ist ein Haken drin oder nicht...

    Aber gut, das ist ein generelles Hass-Thema bei mir; nur hier faellt mir eben auf, dass die extrem farblos sind und daher wirklich ueberhaupt nicht intuitiv zu unterscheiden sind.


    PS: Gerade mal versucht Shadow Switcher aus der CSDb laden zu lassen, er bleibt stehen bei "SEARCHING FOR *"...

  • In dem bin-Verzeichnis liegen zwei ROM-Dateien. Die "normale" mega65.rom und die mega65_pxlfont.rom, die deinen Font benutzt.

    Ich gehe nicht davon aus, dass das Mega65-ROM genutzt wird, sondern die einzelnen C64-ROMs.


    ist chargen_openroms.rom denn evtl. die falsche Datei ?

    Nicht unbedingt. Da steht in der Erklärung dahinter "included PXL font v2.3, updated binaries". Stimmt der Text vielleicht nicht? Im gleichen Verzeichnis gibt es aber auch "chargen_pxlfont_2.3.rom". Könnte man notfalls alternativ zum Laden anbieten.


    Übrigens wenn du die Einstellung "pixel art" anschaltest, dann wird alles ganz scharf gezeichnet ...

    Ich finde die Bezeichnung etwas irreführend. Die Pixelkünstler der damaligen Zeit haben ja gerade die Unschärfe des Bildschirms genutzt, um bestimmte Effekte (z.B. weiche Farbverläufe durch Rasterung) zu erzielen. Gerade Pixel-Art sollte man sich also eher mit "natürlicher Unschärfe" ansehen, nicht mit scharfen Pixeln. ;)


    Ich kann hier anhand der Gestaltung nicht erkennen ob die an oder aus sind. In beiden Faellen sind sie farblos.

    Bei Apple sind sie im eingeschalteten Zustand farbig. Zudem kann man bei Apple einstellen, dass sie eine Beschriftung tragen: on/off bzw. I/O.


    Ich frage mich echt, was mit der guten alten Check-Box passiert ist

    Die gibt es noch – In Fällen, wo die GUI-Elemente keine direkte Aktion ausführen, sondern erst noch (beim Schließen eines Dialogs) bestätigt/abgeschickt werden müssen. Checkboxen sind Formularfelder (die tun erstmal nix), Schalter hingegen sind eben Schalter – die tun sofort etwas.


  • Uh soviele Anmerkungen auf einmal ... 😅


    Firefox funktioniert eigentlich sehr gut (hab es auf Firefox primär entwicklet und getestet muss halt halbwegs modern sein 3 Jahre alt?)... hast du vielleicht "privates browsen" an ? Da kann er dann nicht auf die browser-interne Datenbank zugreifen (das ist die indexedDB) ...



    Ja Checkboxen ... schlecht lesbar ... Message ist angekommen 😌... ich schau mal was ich ändern kann


    hängt bei "Searching for *" hast du auch die Commodore ROM Datei der VC1541 in den leeren virtuellen Sockel im ROM-Dialog gesteckt ? Bei Open-Roms gibt es dafür noch kein Ersatz-ROM ... (wenn du eine Floppy auswählst aber kein VC1541 ROM im Sockel hast kommt die folgende Meldung in rot:

    Warning: no rom-chip in floppy drive installed. D64 and G64 files are floppy images ... loading of files with these extensions will require a floppy rom. Head over to roms setting and provide the rom first. Or try to load a file with a different extension. Hast du bestimmt übersehen oder weggeklickt 😄)

  • Was mir nicht so gefaellt sind diese seltsamen "Check-Boxen", also die, die irgendwann Apple eingefuehrt hat. Ich kann hier anhand der Gestaltung nicht erkennen ob die an oder aus sind. In beiden Faellen sind sie farblos.

    Das Grundprinzip habe ich oben schon erklärt – jetzt nur noch ein Nachtrag speziell zu VirtualC64Web: Hier tun die Schalter sofort etwas und warten nicht auf das Schließen des Dialogs, daher sind Schalter das korrekte GUI-Element. Was die Farbigkeit angeht: Sie ist im hellen Modus vorhanden (grün, wenn eingeschaltet) aber im "Nachtmodus" gehen alle GUI-Farben verloren. An der Stelle (Darkmode) müsste man also nachbessern.

  • Warum prüfst Du denn die Bytes ab? Theoretisch könnte man doch beliebige gepatchte ROMS hochladen?

    Anhand der Header findet der Emulator selbst heraus, um welche Art von Rom es sich handelt. Intern gibt es eine Funktion (loadRom), die einfach einen Dateinamen entgegennimmt und dann selbstständig ermittelt, wo das Rom zu installieren ist.


    Hat Deinen gepachtes Rom einen offiziellen Namen? In diesem Fall würde ich es einfach zur Liste der "Known Roms" hinzufügen. Der Emulator zeigt dann im Rom panel auch diesen Namen an.