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

  • Oh ja, auch auf dem iPhone funktioniert das schon ziemlich gut! :thumbup:

    am besten wenn man es auf den Homescreen speichert ... dann verwandelt es sich in eine PWA (progressive web app) ... störende Browsergesten sind weg, Adressleiste etc.. und vc64web ist dann sogar offline startbar also ohne Netz ... probier mal ... mach Flugmode an und starte sie vom Homescreen ... wie eine echte native App oder ?



    Ein kleines "Problem" ist mir aber aufgefallen: Wenn ich das Handy hochkant halte, passt das Keyboard nur noch etwa zur Hälfte auf den Screen und man muss es horizontal scrollen. Wenn man nur ein paar Buchstaben (bei Trainern) eingeben muss, ist das vollkommen OK aber trotzdem wäre es super, wenn man optional ein schmales Keyboard bekommen könnte (dass dann in der Breite zu 100% passt), bei dem evtl. einige Tasten anders angeordnet sind, damit die einzelnen Tasten nicht zu schmal werden – so ähnlich wie bei den systemeigenen Keyboards.


    das zugrundeliegende Problem ist, dass der C64 mehr Tasten hat als auf dem iPhone in Hochkant raufpassen ... außer man macht die Tasten sehr sehr sehr klein 🔎 ... aber dann kann man es nicht mehr gescheit tippen ...


    Man kann das zugrundeliegende Problem von unterschiedlichen Richtungen angehen ...


    1. nicht alle C64-Tasten anzeigen, bzw. unwichtige weglassen

    2. alle Tasten rein und horizontal scrollbar machen und Tasten schön groß zum Tippen


    ohne zu konfigurieren unterstützt vc64web schon mal 2. Bei 1. stellt sich nun die Frage was eine wichtige und was eine unwichtige Taste ist ... dies ist meistens auch abhängig vom Spiel...


    tatsächlich ist in vc64web auch Lösung 1. implementiert (die Action Buttons in vc64web sind mein Lieblingsthema 😍😍)


    Die Antwort darauf sind die in vc64web frei konfigurierbaren "Action Buttons". Man kann sie sogar spiele-individuell konfigurieren oder aber global ... Füge sie einfach durch das "+" Icon in der Navigationsbar hinzu ... hinterlege dort die Taste die du haben willst ... bestimme ob es eine globale Taste oder nur für den momentan geladenen Spieletitel sein soll ... du kannst die Tasten/ActionButtons dann einfach durch anfassen und verschieben auf deinem iPhone positionieren ... wenn du sehr lange "long press / haptic touch" auf ein Action Button drückst dann kommst du wieder in den Konfigurationsdialog zur jeweiligen Taste/ActionButton ...


    die so gebauten ActionButtons speichert vc64web dann in deinem Browser ab... sodass sie bei späteren Aufrufen der Spiele/Programme automatisch wieder erscheinen ... die globalen bleiben natürlich ständig sichtbar


    Ich bin auf ein Foto von deiner selbst gebauten Tastatur gespannt ... poste mal ...



    anbei meine drei Actionbuttons (rechts oben) in Spelunker (Bild vom iPhone)

  • mir gerade passiert ...


    man sucht im vc64web CSDb-Browser nach "time of silence", und wechselt dann auf die Favoriten-Ansicht .... dann will man wieder zurück zur Suchergebnisansicht


    Ahhh :grab1: wie komme ich wieder zurück ?


    ein Klick auf die Lupe bringt uns nicht wieder zurück auf das Suchergebnis "time of silence" (warum eigentlich nicht 🤔) ... man muss echt in das Suchfeld reinklicken und Enter drücken 8| und Enter nimmt er nicht immer weil er auf das Javascript onChange Event wartet 8|8| und da sich am Suchtext nichts geändert hat (war halt kein Change) passiert nichts ... musste erst ein Leerzeichen hinzufügen ;(;( dann zeigte er wieder die Suchergebnis ...



    Muss repariert werden...


    User-Story: wenn man auf das Lupen-Icon klickt, dann soll er wieder zurück auf die Suchergebnis-Ansicht ...


    :dafuer:


    ok ... wartet mal kurz 🤓 ich bastel das rein ...


    published und neue Version is online 8) ...

  • das zugrundeliegende Problem ist, dass der C64 mehr Tasten hat als auf dem iPhone in Hochkant raufpassen ... außer man macht die Tasten sehr sehr sehr klein 🔎 ... aber dann kann man es nicht mehr gescheit tippen [...]

    Ich bin auf ein Foto von deiner selbst gebauten Tastatur gespannt ... poste mal ...

    Ja, es stimmt, das C64-Keyboard ist in der Breite gut bestückt und man muss ganz schön basteln und schieben, um alle (Sonder-) Tasten mit guter Platz-Ausnutzung auf eine Fläche zu bekommen, die groß genug ist, um die einzelnen Tasten noch zu treffen. Ich habe jetzt mal eine Belegung ausprobiert, die wahrscheinlich (zumindest auf größeren Smarties) funktionieren könnte:



    Zur bessern Unterscheidbarkeit habe ich die Glyphen- und die "Sonder"-Tasten farblich etwas von einander getrennt. Es ist eine Mischung aus dem C64-Keyboard von dir und einem typischen Smartphone-Keyboard. Natürlich sind nicht mehr alle Tasten an ihrer Ursprungs-Position aber sie liegen zumindest in der Nähe. Auch habe ich darauf geachtet, dass bestimmte, wichtige, Tasten auf exponierten Positionen (z.B. den Ecken) liegen: <- (da gerne für ESC genutzt), Delete, C= und Return sind gut zu finden und zu treffen. Die Cursortasten habe ich (wie du schon zuvor die F-Tasten) in Einzeltasten "aufgelöst", weil sich das besser bedienen lässt. Shift-Lock habe ich weggelassen, weil man die Funktion bei Smarties mit der normalen Schift-Taste erreichen kann.


    Übrigens bekomme ich es nicht hin, auf der jetzigen Tastatur irgendwas mit "Shift" einzugeben (z.B. die umgekehrten Cursor-Richtungen). Nacheinander Drücken geht nicht und Multi-Touch auch nicht. Wie macht man das?

  • Zur bessern Unterscheidbarkeit habe ich die Glyphen- und die "Sonder"-Tasten farblich etwas von einander getrennt. Es ist eine Mischung aus dem C64-Keyboard von dir und einem typischen Smartphone-Keyboard.

    Übrigens bekomme ich es nicht hin, auf der jetzigen Tastatur irgendwas mit "Shift" einzugeben (z.B. die umgekehrten Cursor-Richtungen). Nacheinander Drücken geht nicht und Multi-Touch auch nicht. Wie macht man das?



    Oh je du meinst es tatsächlich ... ernst :thumbup:... hatte nicht damit gerechnet, das sich jemand aus Action-Buttons eine vollständige Tastatur nachbaut .... echt cool 8)... aber macht mir auch irgendwie Angst ... was wenn im vc64web noch ein Fehler ist, dann ist deine ganze Arbeit weg ... ich muss unbedingt eine Export/Importfunktion dafür bauen ... dann können auch andere die von dir gebaute Tastatur verwenden (ich auch haben wollen ...:thumbsup:)


    Eigentlich dachte ich nur an die typischen 3 bis 5 Tasten/Buttons die man typischerweise so in einem Spiel braucht ...


    Zu deiner Frage ... ja stimmt die Shift Keycodes sind nicht so offensichtlich ... das kann ich noch verbessern ... bis dahin hier erstmal die Antwort für Links = (Shift + Rechts)


    oder meintest du mit "jetziger Tastatur" die Standardtastatur ? Oh stimmt da geht momentan nur die Linke Shifttaste ... die wird dann für ein paar Sekunden grün d.h. aktiv ... muss ich auch noch für rechts machen ...oder ?

  • Oh je du meinst es tatsächlich ... ernst :thumbup: ... hatte nicht damit gerechnet, das sich jemand aus Action-Buttons eine vollständige Tastatur nachbaut .... echt cool 8) ... aber macht mir auch irgendwie Angst ... was wenn im vc64web noch ein Fehler ist, dann ist deine ganze Arbeit weg

    Keine Angst (und ich muss dich leider enttäuschen) – das habe ich "nur" in Photoshop gebaut, um zu testen, ob das überhaupt von den Größen her praktikabel wäre. Eine mögliche Umsetzung überlasse ich lieber anderen (dir?). ;)


    Und meine Frage bzgl. Shift-Taste bezog sich auch auf die ganz normale Bedienung der Software-Tastatur: Wie drückt man dort [Cursor-hoch]?

  • Oh stimmt da geht momentan nur die Linke Shifttaste ... die wird dann für ein paar Sekunden grün d.h. aktiv ... muss ich auch noch für rechts machen ...oder ?


    Übrigens ich hab das so gebaut, dass man auch ans iPhone eine normale Bluetoothtastatur anschließen kann ... die Pfeiltasten der BT-Tastatur hab ich auf die C64-Cursortasten gemappt ...


    >>Keine Angst – das habe ich "nur" in Photoshop gebaut, um zu testen, ob das überhaupt von den Größen her praktikabel wäre. Ein mögliche Umsetzung überlasse ich lieber anderen. ;)


    :emojiSmiley-12:ich dachte schon du hättest die Tastatur aus 20 individuell platzierten ActionButtons auf dem kleinen iPhone zusammengeklickt ... was theoretisch ja auch geht ... aber bei der Menge an Tasten wäre man damit bestimmt 2 Stunden beschäftigt ...

  • Übrigens ich hab das so gebaut, dass man auch ans iPhone eine normale Bluetoothtastatur anschließen kann ... die Pfeiltasten der BT-Tastatur hab ich auf die C64-Cursortasten gemappt ...

    Das ist cool. Ob MFI-Gamecontroller auch funktionieren würden – wenn man die überhaupt als Web-App ansprechen kann?

  • MFI sollte gehen ich habe die HTML5 GameController API in vc64web vollständig implementiert ...


    ich habe aber selber kein MFI Controller zum Ausprobieren ... aber hier am Desktop habe ich den CompetitionPro gerade mal angeschlossen ... geht


    am iPhone habe ich aber schon mit BT-Keyboard gezockt ... geht prima ... dazu musst du rechts oben im port-selektor von vc64web "cursor keys, space to fire" am iPhone auswählen ...

  • die wird dann für ein paar Sekunden grün d.h. aktiv ... muss ich auch noch für rechts machen ...oder ?

    Denke, schon – und für die C= Taste doch auch, oder? Man muss doch damit die PETSCII-Symbole erzeugen können.


    MFI sollte gehen ich habe die HTML5 GameController API in vc64web vollständig implementiert ...

    Klingt gut. Werde ich demnächst mal testen.

  • MFI sollte gehen

    Tut es auch – gerade getestet. :thumbsup: Mich stört allerdings, dass die Joystick-Richtungen auf den Analog-Stick gemappt sind und alle anderen Tasten (inkl. dem Digi-Pad) den C64-Feuerknopf auslösen. Kann man daran etwas ändern und das Steuerkreuz für die Richtungen verwenden?

  • Tut es auch – gerade getestet. :thumbsup: Mich stört allerdings, dass die Joystick-Richtungen auf den Analog-Stick gemappt sind und alle anderen Tasten (inkl. dem Digi-Pad) den C64-Feuerknopf auslösen. Kann man daran etwas ändern und das Steuerkreuz für die Richtungen verwenden?


    Das sind Klasse Nachrichten :emojiSmiley-41: !! Tausend Dank :emojiSmiley-07: dass du das getestet hast ... ich habe mal in den vc64web Code reingeschaut ... die HTML5-GamePadAPI gibt mir alle Infos zum Controller das sind echt viele ... alle Knöpfe und so ... und ich picke mir nur ein paar Infos dazu heraus ... die analogen Richtungen mappe ich z.B. auf die c64-Joystick Richtungen ... alles digitale auf den C64-Feuerknopf ... Ich glaube ich habe das nur auf meinen CompetitionPro optimiert 🙄 Bin gerade in den Keller da habe ich noch so ein Noname-Billig-Controller-Teil gefunden, mit dem kann ich ausprobieren der zeigt auch nicht das gewünschte Verhalten... liefert denn jeder Controller was anderes ? Am besten ich baue eine Art Debug ein wenn man unter vc64web->Settings das "show live debug" aktiviert ... dass er dann alle Controllerinfos ausgibt wenn man den bedient, dann kannst du mir sagen was für Werte da stehen wenn du rechts links oben und unten am digipad drückst .... und ich mappe die dann einfach auf den c64-Joystick


    das würde ja bedeuten


    12.9 iPad Pro + MFI Controller + vc64web mit CSDb_SceneBrowser = Commodore 64 GamePad Pro inkl. c64-AppStore :thumbsup: hehe


    vielleicht muss ich mir dann doch nochmal ein iPad zulegen ...

  • Retrofan

    die wird dann für ein paar Sekunden grün d.h. aktiv ... muss ich auch noch für rechts machen ...oder ?

    Denke, schon – und für die C= Taste doch auch, oder? Man muss doch damit die PETSCII-Symbole erzeugen können.

    rechte Shift Taste wird jetzt auch für 3 Sekunden aktiv gehalten, mit grüne Farbe ...

    wo ich gerade mal dabei war ...

    commodore Taste wird jetzt auch für 3 Sekunden aktiv gehalten, mit blauer Farbe


    dann habe ich noch eingebaut, dass wenn man unter Einstellung "show live debug output" anschaltet,

    dass dann immer, wenn man das GamePad betätigt eine Inforrmation wie folgt angezeigt wird,


    warte ... mal kurz ... ich drück den Competition jetzt nach unten ...


    controller 40b-6533-SPEED-LINK Competition Pro , mapping=

    2 axes= 0.00, 1.00,

    4 btns= 0, 0, 0, 0,


    wenn ich Feuer drücke dann geht einer der 4 Buttons auf 1


    das mapping sagt laut HTML5 Spezifikation, ob es ein Standard GamePad ist ... mein Competition ist kein Standard deswegen steht da nichts 🙈 ... wenn du ein GamePad mit Standard-Mapping hast dann steht da "standard"


    der 9€ Billigjoystick den ich noch hab ist auch kein Standardmapping "bigben" heißt der 🙄...



    jetzt bist du dran ... um deinen Joystick richtig zu verstehen und das digipad korrekt zu mappen brauche ich die Info-Strings für oben unten rechts und links ...


    wenn du mit den Messungen fertig bist am besten den Emulator auf Pause drücken ... dann kannst du den ganzen Text in die Zwischenablage auf dem iPhone kopieren und hierein einfügen ....



    nur für uns als Referenz wie die Buttons beim Standardmapping belegt sind (wahrscheinlich XBoxController oder PlaystationController, aber nicht die zwei Billigheimer die ich hier habe... )

    https://w3c.github.io/gamepad/#remapping


    wär cool wenn du so einen guten standard mapping controller hast, dann kann ich das Anhand der Referenz gleich einbauen, und von dir austesten lassen ...


    in der CSDB gibt es übrigens ein gutes Joystick Testprogramm, such einfach nach Joyride oder ruf es direkt auf https://dirkwhoffmann.github.i…le.php/205217/joyride.prg

  • Retrofan hab noch was viel einfacheres gefunden ... https://gamepad-tester.com/


    anbei wie ich mit dem Competition Pro nach unten lenke ...


    vergiss es oben mit der Ausgabe, das hier ist viel einfacher zu schauen welche Buttons oder Achsen sich verändern und ob der Joystick Standardmapping unterstützt oder nicht ... coole Seite


    sag mal was bei dir da steht ... und was sich ändert wenn du am Digipad deiner Wahl drückst ...

  • Retrofan

    hab mir noch schnell einen XBoxController besorgt und auch das StandardMapping in vc64web eingebaut ... mit dem Digipad auf dem XBoxController geht PacMan nun viel einfacher :thumbsup: Super Tipp mit dem Digipad Danke !


    hoffentlich geht jetzt auch dein Controller

  • nur für uns als Referenz wie die Buttons beim Standardmapping belegt sind (wahrscheinlich XBoxController oder PlaystationController, aber nicht die zwei Billigheimer die ich hier habe... )

    https://w3c.github.io/gamepad/#remapping

    wär cool wenn du so einen guten standard mapping controller hast

    Ich habe einen PXN Speedy, der von Apple im Rahmen des original MFI-Programms zertifiziert wurde.



    Die Halterung kann man abschrauben und dann kann man ihn ganz normal mit iPad, Apple-TV oder Mac verwenden (was ich aber nie getestet habe).


    in der CSDB gibt es übrigens ein gutes Joystick Testprogramm, such einfach nach Joyride

    Button B:

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2PRESS_FIRE

    lost sync target=11, total_executed=1

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE


    Tellerkreuz down:

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE


    Analog-Stick down:

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE

    wasm_joystick event=2RELEASE_XY

    wasm_joystick event=2RELEASE_FIRE

    lost sync target=206, total_executed=196


    Das war immer so das letzte, was in der Debug-Liste angezeigt wurde. Für mich sieht das immer gleich aus, aber im C64-Joystick-Testprogramm wurde alles angezeigt, wie erwartet: Alle GamePad-Buttons werden zu Feuer-1 und der Analog-Stick erzeigt links/rechts/oben/unten.


    hab noch was viel einfacheres gefunden ... https://gamepad-tester.com/

    Mir ist jetzt aufgefallen, dass normal im Browser weder diese Seite mit meinem GamePad funktioniert, noch VirtualC64Web. Aber wenn ich den Emu übers Springboard starte und nicht über den Browser, dann funktioniert das C64-Testprogramm mit meinem GamePad.


    Was mir im Emu-Interface noch auffiel: Ich war etwas irritiert, dass Play und Pause nicht toggeln, sondern nebeneinander liegen. Das ist für mich etwas ungewohnt (und verschwendet unnötig Platz).

  • hab mir noch schnell einen XBoxController besorgt und auch das StandardMapping in vc64web eingebaut ... mit dem Digipad auf dem XBoxController geht PacMan nun viel einfacher :thumbsup: Super Tipp mit dem Digipad Danke !

    hoffentlich geht jetzt auch dein Controller

    Ich habe den Emu aktualisiert und jetzt funktioniert bei mir auch das Steuerkreuz als Stick. Sehr gut, viel direkter! :thumbsup:


    Man könnte evtl. noch versuchen, den 2. und 3. Feuerknopf (wie im Testprogramm Joyride angezeigt) einiger C64 Joysticks zu simulieren. Dann könnte man die bisher noch raren Multibutton-Games, wie z.B. Super-Mario-C64, mal ausprobieren.

  • Hallo,


    ich habe heute Nachmittag etwas mit Virtual C64 Web auf einem Android Smartphone herumgespielt. Ist es möglich beim Drücken der Shift-Taste bzw. der C= Taste auf den anderen Tasten die entsprechenden Zeichen anzuzeigen z.B. " bei der 2 usw.?

    Wenn man mit CTRL oder C= die Cursorfarbe ändern möchte geht das nicht. Sie müssen sie auch ähnlich wie Shift festgehalten werden bei längerem Druck darauf. Mit der Kombination Run-Stop - Restore ist das genauso.


    Auf meinem Smartphone werden manchmal Zeichen verschluckt. Hat das sonst noch jemand bemerkt?


    Grüße, Yugo

  • Retrofan

    das mit dem Play und Pause toggeln ist ne gute Idee versuch ich mal einzubauen ...


    Yugo

    das mit Control und Run-Stop ist ganz einfach ... bau ich mal gleich ein


    das mit dem Umschalten der Anzeige wenn man SHIFT oder CTRL drückt ist auch einfach aber man muss etwas fleißig sein und alle Tasten da reinschreiben ...


    die Keymap ist in https://github.com/dirkwhoffma…aster/js/vc64_keyboard.js definiert


    Code
    1. keymap= [
    2. [{k:'hide keyboard', c:'hide_keyboard'},{style:'width:120px'},{k:'F1',c:'F1'}, {k:'F2',c:'F2'},{k:'F3',c:'F3'},{k:'F4',c:'F4'},{k:'F5',c:'F5'},{k:'F6',c:'F6'},{k:'F7',c:'F7'},{k:'F8',c:'F8'}],
    3. [{k:'<-',c:'Delete'}, {k:'1',c:'Digit1'},{k:'2',c:'Digit2'},{k:'3',c:'Digit3'},{k:'4',c:'Digit4'},{k:'5',c:'Digit5'},{k:'6',c:'Digit6'},{k:'7',c:'Digit7'},{k:'8',c:'Digit8'},{k:'9',c:'Digit9'},{k:'0',c:'Digit0'},{k:'+', c:'Minus'},{k:'-', c:'Equal'},{k:'€', c:'pound'},{k:'CLR/Home', c:'home'},{k:'Inst/DEL',c:'Backspace'} ],
    4. [{k:'CTRL',c:'ControlLeft'}, {k:'Q'},{k:'W'},{k:'E'},{k:'R'},{k:'T'},{k:'Y'},{k:'U'},{k:'I'},{k:'O'},{k:'P'},{k:'@',c:'BracketLeft'},{k:'*', c:'BracketRight'},{k:'up',c:'upArrow'},{k:'RESTORE', c:'restore'}],
    5. [{k:'RunStop',c:'runStop'},{k:'ShftLock', c:'shiftlock'},{k:'A'},{k:'S'},{k:'D'},{k:'F'},{k:'G'},{k:'H'},{k:'J'},{k:'K'},{k:'L'},{k:':', c:'Semicolon'},{k:';', c:'Quote'},{k:'=', c:'Backslash'},{k:'RETURN',c:'Enter'}],
    6. [{k:'C=', c:'commodore'},{k:'SHIFT',c:'ShiftLeft'},{k:'Z'},{k:'X'},{k:'C'},{k:'V'},{k:'B'},{k:'N'},{k:'M'},{k:',',c:'Comma'},{k:'.',c:'Period'},{k:'/', c:'Slash'},{k:'SHIFT',c:'rightShift'},{k:'DOWN', c:'ArrowDown'},{k:'RIGHT', c:'ArrowRight'} ],
    7. [{k:'SPACE', c:'Space', style:'width:450px'}]
    8. ];

    nehmen wir mal Taste "4" ... die Definition sieht so aus

    Code
    1. {k:'4',c:'Digit4'}


    da müssste man ein einfach ein weiteres Attribut reindefinieren z.B. shift: '$'


    Code
    1. {k:'4',c:'Digit4', shift:'$'}



    aber wie macht man es mit der PETSCII-Zeichensatz Grafik .. da müsste man ja icons malen oder ?



    das mit dem Verschlucken der Tasten kommt evtl. daher, dass dein Handy nicht die erforderliche Rechenleistung hat ... mach mal unter Einstellung das "show live debug output" an ... dann zeigt er an mit welchen FPS es läuft ...


    time[ms]=1008.000000, audio_samples=45056, frames [executed=50, rendered=60]

    time[ms]=1003.000000, audio_samples=45056, frames [executed=51, rendered=60]

    time[ms]=1006.000000, audio_samples=45056, frames [executed=50, rendered=60]

    time[ms]=1002.000000, audio_samples=43008, frames [executed=50, rendered=60]


    rendered gibt die dargestelten FPS an ...

    executed gibt an mit wieviel FPS der c64 emuliert wird ...


    sinkt executed unter 50 dann wirds brenzlig weil der emulierte c64 dann die Tastenklicks nicht mehr mitkriegt...

  • Yugo das mit der CTRL und der RunStop auff dem Virtuellen-Keyboard habe ich gerade geändert ... so wie du vorgeschlagen hast ... schau mal ob es für dich so passt ... Danke für den Tipp:thumbsup:



    Ich hatte schon ganz vergessen wie man die Farben ändert ist schon so lange her .... 35 Jahre? also mit CTRL+2 wechselt er bei mir auf weiß ...