Ein Versuch das C64Studio & VICE unter Linux mit wine vollständig nutzen zu können

Es gibt 22 Antworten in diesem Thema, welches 551 mal aufgerufen wurde. Der letzte Beitrag (25. November 2025 um 19:40) ist von aitsch.

  • In diesem Beitrag möchte ich mit eurer Hilfe versuchen, das C64Studio unter Linux so zum Laufen zu bringen, dass man es "vollständig" nutzen kann.
    Die IDE zum laufen zu bringen ist übrigens kein so großes Problem und sollte jeder hier hinbekommen.

    Aber die Zusammenarbeit mit VICE funktioniert leider nicht.

    Hier mal meine Eckdaten ohne weitere Erklärung:

    Benutzt habe ich die net3.5 des C64Studios 8.2.281 mit wine 9.0 unter Linux Mint 22.2

    Unter winetricks / wine sind nur diese Pakete zu installieren:

    • vcrun2015
    • wine-gecko

    und das Studio sollte laufen. Einfach die C64Studio.exe doppelklicken.

    Wine gibt nach dem Start folgende Meldung aus:

    Code
    0148:err:ole:CoGetContextToken apartment not initialised
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0

    Sagt mir nix, aber das Programm startet und fühlt sich gut an.

    Bei den Emulator Preferences habe ich bei den Defaults nur zwei Pfade angepasst:

    Executable (VICE): \usr\local\bin\x64sc
    Working Path: Z:\home\aitsch\Entwicklung\C64\C64StudioRelease (weil die Default Variable einen Fehler erzeugt hatte)


    Bitte melde dich an, um diesen Anhang zu sehen.

    Nach ein paar simplen Test konnte ich nichts Unverzichtbares finden, was im Studio nicht funktioniert.

    Sieht also gut aus.


    Jetzt zum Problem:

    Nach dem Laden eines .asm-Files und einem "Build & Run" erhalte ich im Studio die Meldung:

    Das .prg-file wird zwar korrekt generiert,

    ABER: VICE startet nicht:

    Wine meldet:

    Code
    0148:err:ole:CoGetContextToken apartment not initialised
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    0140:err:tooltips:TOOLTIPS_Timer How did this happen?
    0140:err:tooltips:TOOLTIPS_Timer How did this happen?
    0140:err:tooltips:TOOLTIPS_Timer How did this happen?
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    Argument 'C:\users\aitsch\Temp\tmp2c82.tmp' not valid for option `-moncommands'.
    Error parsing command-line options, bailing out. For help use '-help'

    Die angemahnte .tmp-Datei existiert nicht, wird nicht erzeugt, was auch immer. Auch den Pfad kann ich nirgendwo anpassen.

    Die .prg-Datei wird im richtigen Verzeichnis erstellt und kann auch im VICE geladen und gestartet werden, aber sowas wie Debugging im Studio geht dann natürlich nicht.


    Was könnte hier helfen?


    Ich habe hier mal ein paar Namen aus dem Bitte melde dich an, um diesen Link zu sehen. , die in den letzten 5 Jahren mal Beiträge dazu verfasst hatten, rausgesucht:

    huedrant  64erGrufti  BastetFurry  Alfredo  Jammet  BlondMammuth  dg5kr  tuxer  gonzoMD  Claus  Endurion

    Seid ihr weitergekommen?

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

  • aitsch 23. November 2025 um 12:03

    Hat den Titel des Themas von „Ein Versuch das C64Studio unter Linux (wine) vollständig nutzen zu können“ zu „Ein Versuch das C64Studio unter Linux mit wine vollständig nutzen zu können“ geändert.
  • Habe es ebenso eingerichtet, jedoch mit Denise als Emulator. Mir fehlt nun aber etwas zum Testen. aitsch könntest du dein .asm-Programm zur Verfügung stellen?

    Edit: Bei mir hier scheint alles glatt zu laufen, das Studio meldet "Build sucessful".

    Im Moment des Todes verliert Nationalität völlig seine Bedeutung.

    Ist Sie dann nicht jetzt schon obsolet?!

  • aitsch 23. November 2025 um 12:30

    Hat den Titel des Themas von „Ein Versuch das C64Studio unter Linux mit wine vollständig nutzen zu können“ zu „Ein Versuch das C64Studio & VICE unter Linux mit wine vollständig nutzen zu können“ geändert.
  • aitsch Versuchst Du da, Linux-VICE von Windows-Studio starten zu lassen? Wird wegen der unterschiedlichen Pfadkonventionen (C:\... vs /home/ etc) nicht einfach so gehen, mit einem Wrapper-Skript ginge das vielleicht.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • 1570 Ja, genau so versuche ich das und in die gleiche Richtung habe ich auch schon gedacht.

    Allerdings funktioniert es ja auch mit dem Erzeugen der .prg-Datei.

    Der Pfad "C:\users\...\Temp\tmp..." scheint aber fest verdrahtet zu sein, bzw. über eine Umgebungsvariable dynamisch gesetzt zu werden.
    Da müsste man irgendwie drankommen.

    Oder kann wine grundsätzlich nicht auf Linuxprogramme zugreifen?

    [EDIT]Was meinst du mit einem Wrapper-Script?[/EDIT]

    Bodhi1969 Du kannst die beigefügte Datei ausprobieren. Wenn der Denise startet, wäre schonmal klar, dass man über das Studio einen Emulator starten kann.
    Aber weiter wäre ich dann nicht, weil das Debugging nur mit VICE funktioniert.

    Dateien

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

  • aitsch Denise startet hier nicht automatisch. Das von dir zur Verfügung gestellte Programm läuft aber, nachdem ich es kompiliert und im Denise gestartet habe.

    Nutze übrigens auch Linux Mint.

    Im Moment des Todes verliert Nationalität völlig seine Bedeutung.

    Ist Sie dann nicht jetzt schon obsolet?!

  • Die Datei für -moncommands wird über die API System.IO.Path.GetTempFileName bestimmt. Da bekommt man einen bisher nicht verwendeten pseudo-zufällig generierten Dateinamen im Temp-Ordner zur Verfügung gestellt.
    Da scheint WINE eine Lücke zu haben. Was mich aber wundert, weil das ist eine eigentlich supersimple Methode.

    Ich könnte das im Code natürlich gesondert behandeln und auf Nicht-Windows-Systemen in den Handbetrieb gehen.

    Bodhi1969: C64Studio übergibt das -moncommands-Argument nur bei erkanntem VICE, bei anderen Emulatoren wird das ausgespart. Vermutlich geht es deswegen.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Ich könnte das im Code natürlich gesondert behandeln und auf Nicht-Windows-Systemen in den Handbetrieb gehen.

    Dann melde ich mich schonmal freiwillig als Tester ;)

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

  • Teste mal mit der letzten WIP-Version. Bin mir allerdings nicht sicher, wie ob die OS-Erkennung so funktioniert, je nachdem, wie WINE gaukelt, kann das genauso fehlschlagen wie vorher auch.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Leider keine Veränderung:

    Der Pfad ist weiterhin: "C:\users\aitsch\Temp\tmpd1d9.tmp"

    Code
    Element 'demo.asm' was not built successfully last time.
    Determined demo.asm as active document
    Running build on demo.asm with configuration Default
    Build successful, 0 warnings, 0 errors encountered
    Start address $0801 to $0816, size 22 bytes
    Memory Map:
      $0801 - $0816 - unnamed section
    Compiled to file Z:\home\aitsch\Entwicklung\testLinux\demo.prg, 24 bytes
    Running demo.asm
    Calling Z:\usr\local\bin\x64sc with -moncommands "C:\users\aitsch\Temp\tmpd1d9.tmp" -truedrive +virtualdev "Z:\home\aitsch\Entwicklung\testLinux\demo.prg"

    Kannst du nicht eine Checkbox "runs in wine" oder sowas einbauen und darauf aufsetzen?

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von aitsch (23. November 2025 um 17:50)

  • Na gut, nächster Versuch! In File->Preferences->General->Application gibt es eine Checkbox für "WINE" ganz unten.

    Nachtrag: Wahrscheinlich musst du mir da mal genau sagen, was da gemacht werden soll. Du scheinst da ja ein seltsames Z-Laufwerk zu haben, C: ist ja eigentlich richtig für Windows. Wo kann man denn das Temp-Verzeichnis hin-simulieren, damit WINE das frisst? Evtl. ins Projekt-Verzeichnis?

    Ich lösche die Temp-Datei in der Regel nach dem Aufruf ja auch wieder.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Neue Erkenntnis für mich. Ich hatte vorher nicht gesehen, dass es innerhalb von wine den Pfad c:\users\aitsch gibt.

    Nun habe ich nur den Pfad zum VICE in den Preferences umgestellt (Z:\usr\bin\x64sc).

    Vice zwar startet nicht, ABER ....

    jetzt wurde die tmpdf90.tmp in C:users/aitsch/Temp geschrieben.

    Der Inhalt lautet:

    Code
    add_label $080E ._go
    exit

    wine schmeißt folgenden Fehler:

    Code
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    0140:err:listview:LISTVIEW_WindowProc unknown msg 109d, wp 0, lp 0
    Argument 'C:\users\aitsch\Temp\tmpdf90.tmp' not valid for option `-moncommands'.
    Error parsing command-line options, bailing out. For help use '-help'

    Das Studio ist entspannt:


    Ich glaube, dass Problem besteht mit den Back-Slashes in der Pfandangabe.

    Falls der VICE aufgerufen wird, kann er mit dem String "C:\users\aitsch\Temp\tmpdf90.tmp" -truedrive +virtualdev "C:\users\aitsch\ASM\LinuxTest\LinuxTest\demo.prg" nix anfangen.

    Unter Linux muss der Befehlsstring mit normalen Slashes (/) so aussehen:

    x64sc -moncommands "/home/aitsch/.wine/drive_c/users/aitsch/Temp/tmpdf90.tmp" -drive8truedrive +virtualdev1 "/home/aitsch/.wine/drive_c/users/aitsch/ASM/LinuxTest/LinuxTest/demo.prg"

    Dann startet auch VICE das Programm.


    Zu dem Z: Laufwerksbuchstaben folgende Erklärung

    Unter wine scheint es so zu sein, dass alles was außerhalb wines auf dem Linux Dateisystem liegt unter dem Laufwerk Z: geführt wird.


    Bitte melde dich an, um diesen Anhang zu sehen.


    Für mich wäre das Projektverzeichnis für die Temp-Datei okay

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von aitsch (23. November 2025 um 21:19)

  • Beitrag von aitsch (23. November 2025 um 21:10)

    Dieser Beitrag wurde von syshack aus folgendem Grund gelöscht: vom Autor gelöscht (23. November 2025 um 23:42).
  • Ich denke mal, WINE würde die Pfade umbiegen. Das ist ein Linux-VICE, oder? Der kann natürlich mit WINE-Pfaden nichts anfangen.

    Knifflig, wie setzt man die Pfade richtig um? Der Aufruf mit der .prg-Datei mit Windows-Pfad wird ja so auch nicht funktionieren.

    Edit: Dafür gibt es ein winepath-Executable. Muss ich mal einbauen. Ist das im Pfad erreichbar?

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Ich bin erst heute Abend wieder zu Hause, aber ja, der VICE läuft unter Linux und damit außerhalb von wine.

    wine legt seine Laufwerke im Home-Verzeicnis des Linux Users (hier aitsch) ab.

    C:\ liegt also in /home/aitsch/.wine/drive_c

    D:\ in /home/aitsch/.wine/drive_d

    ...

    Die weitere Verzeichnisstruktur ist dann identisch. So sollten sich die Pfade doch zusammenbauen lassen.

    Edit: Dafür gibt es ein winepath-Executable. Muss ich mal einbauen. Ist das im Pfad erreichbar?

    Die Frage verstehe ich leider nicht.

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

  • Die Frage zielt drauf ab, ob ich einfach "winepath -u <lsmf>" aufrufen kann, oder ob da ein Pfad für konfiguriert werden muss.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Neuer Versuch, hab mal überall ein MakeUnixPath eingebaut, kann das aber so nicht direkt testen. Sicherstellen, dass das WINE-Flag gesetzt ist.

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Das hört sich sehr gut an. Als Standardvorgabe wird immer ~/.wine genommen.

    Man könnte eine eigene Windowsumgebungen nur für das Studio aufsetzen.
    z.Bsp.: WINEPREFIX=~/.wine_C64Studio wine C64Studio.exe

    winepath würde dann aber den Ausgabepfad auf ./home/benutzername/.wine_C64Studio/drive_c/... anpassen.
    Dafür sollte keine weitere Konfiguration notwendig sein.


    [EDIT] Jetzt warst du 3 Min. schneller. Ich teste das heute Abend.[/EDIT]

    Meine VC20 Projekte:

    🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen. 🕹 Bitte melde dich an, um diesen Link zu sehen.

  • Endurion Ich habe seit einiger Zeit wieder Probleme mit den Breakpoints.
    Wenn ich z. B. meine PABasic Solution öffne steht folgendes in den Breakpoints
    Bitte melde dich an, um diesen Anhang zu sehen.

    Sieht erst mal unverdächtig aus, aber diesen BP kann ich nicht mehr editieren oder löschen. Wenn ich den BP im Editorfenster lösche geht nur die Markierung im Editorfenster weg, nicht aber der BP im BP-Fenster. Setze ich den BP erneut, so erscheint die Markierung im Editorfenster und in der BP-Liste sieht es dann so aus:
    Bitte melde dich an, um diesen Anhang zu sehen.

    Wenn du mal Zeit findest, vielleicht könntest du dir das dann mal anschauen.

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Ja, das habe ich auch schon bemerkt. Sollte in einer der letzten WIPs behoben sein.

    Hab mich selbst ausgetrickst:
    * Breakpoint in der Projektliste entfernen
    * Remove-Event an Hauptverteiler schicken
    * Event-Handler prüft, ob zu entfernender Breakpoint in der Projektliste vorhanden ist, wenn nein, dann fertig

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.