Autor Thema: AtariX => MagicOnLinux  (Gelesen 9030 mal)

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 91
Re: AtariX => MagicOnLinux
« Antwort #240 am: Gestern um 20:25:15 »
WTF! Nach dem erfolgreichen Hinwürgen von GFA-Basic startet jetzt auch Omikron-Basic. Beim ersteren hatte das die angenehme Nebenwirkung, daß ich noch drei (!) Fehler bei selten genutzten Funktionen im XFS gefunden habe. Die Lösung war ein Mock-Joystick. Für Omikron braucht es einen Fake-Shifter-Read-Pointer. Das Sch...programm liest die Register, die vom Shifter ständig geändert werden, und wo kein Shifter, da keine Änderung, und wo keine Änderung, da Endlosschleife. Was sollte der Quatsch damals?

Offline AndreasKromke

  • Benutzer
  • Beiträge: 91
Re: AtariX => MagicOnLinux
« Antwort #241 am: Gestern um 20:32:50 »
Leider gibt es wohl keine Alternative zu gxmessage, die mindestens so gut ist und auf allen Linux-Versionen sofort greifbar. Ich habe damals lange recherchiert und nachgelesen, was es in Richtung xmessage Brauchbares gibt. Andererseits habe ich mich auch schon daran gewöhnt, ein PPA zu installieren, also eine alternative Paketquelle. Dann gibt es auch automatisch Aktualisierungen. Selberbauen ist natürlich etwas mühsam. Auf dem Mac war das alles einfacher, aber ich mußte damals das SDL ändern und selber bauen, weil sonst die Dialoge keine Tastatureingaben gekriegt haben.

Offline don_apple

  • Benutzer
  • Beiträge: 26
Re: AtariX => MagicOnLinux
« Antwort #242 am: Gestern um 21:09:29 »
1. Die Vergrößerung des Atari-Fensters um den Faktor 2 ist für moderne Monitore gedacht. Bei 2,5k- oder 4k-Monitoren sieht man ansonsten den Atari-Bildschirm nur unter einer Lupe. Aber läßt sich ja leicht ändern.
2. Den Hinweis zum sdl2-mixer habe ich ergänzt. Das Paket kam erst später dazu.
3. Bitte versuche, den cp-Parameter "--update=none" zu ersetzen durch "--no-clobber". Wenn das auch nicht geht, dann bitte durch "-n". Dieser Parameter gilt als veraltet. Mein cp hat Version 9.4.
4. Bitte die soeben hochgeladene Version testen, ob der Überlauf in MAGXDESK auch damit behoben ist. Ich denke, eine Änderung der RSC-Datei sollte ausreichend sein. Ich habe es rudimentär getestet.

Und vielen Dank fürs Testen! Obwohl ich noch einen Vorkriegs-Mac stehen habe, bin ich doch leider weit weg von macOS, dafür habe ich derzeit keine Energie.
Vielen Dank für die Rückmeldung.

Zu "3.": bei macOS kennt cp anscheinend grundsätzlich keine langen Optionen (wie z.B. "--update=none"). Ich habe deshalb jetzt das LOCALISE.SH wie folgt geändert:
# Localise MagiC root fs
# Note that this script can be run from anywhere
# TODO: should run recursively

VERBOSE="-v"
#VERBOSE=""

if [ "$#" -eq 1 ]; then
    # go to directory where the script resides
    cd "$(dirname "$0")"
    # convert language code to uppercase
    CODE=`echo $1 | tr a-z A-Z`
    # check if kernel file already matches
    cmp --quiet $CODE/MAGICLIN.OS ../MAGICLIN.OS
    STATUS=$?
    if [ $STATUS -eq 2 ]; then
        echo "LOCALISE.SH: Valid country codes are: "; ls -d ??
        exit 1
    fi
    if [ $STATUS -eq 1 ]; then
        # overwrite all programs and kernel
        cp $VERBOSE -pf $CODE/MAGICLIN.OS ../
        cp $VERBOSE -pf $CODE/GEMSYS/GEMDESK/*.RSC ../GEMSYS/GEMDESK/
        cp $VERBOSE -pf $CODE/GEMSYS/GEMDESK/*.PRG ../GEMSYS/GEMDESK/
        cp $VERBOSE -pf $CODE/GEMSYS/GEMDESK/*.TXT ../GEMSYS/GEMDESK/
        # do not overwrite application database, if exists
        cp $VERBOSE -pn $CODE/GEMSYS/GEMDESK/APPLICAT.DAT ../GEMSYS/GEMDESK/ 2>/dev/null
        cp $VERBOSE -pn $CODE/GEMSYS/GEMDESK/APPLICAT.INF ../GEMSYS/GEMDESK/
    fi
else
    echo "usage: LOCALISE.SH DE|EN|FR"
    #echo $#
    exit 1
fi
Also "--verbose" durch "-v" ersetzt und "--update=none" durch "n". Damit funktioniert das Script jetzt bei mir auf macOS.

Zu "4.": mit der aktuellen Version von MagicOnLinux von Linux tritt der Crash nicht mehr auf. Danke für's fixen!

Btw. bei mir sieht die Ausgabe von cmake etwas anders aus als die die in der MACOS.txt zur Verifizierung angegeben ist:
-- The C compiler identification is AppleClang 17.0.0.17000603
-- The CXX compiler identification is AppleClang 17.0.0.17000603
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /opt/homebrew/bin/pkg-config (found version "2.5.1")
-- Checking for module 'sdl2'
--   Found sdl2, version 2.32.10
-- Checking for module 'sdl2_mixer'
--   Found sdl2_mixer, version 2.8.1
-- Configuring done (5.0s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/<user>/Source/magiclinux/build
Wie du siehst wird da auch sdl2_mixer erwähnt.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 91
Re: AtariX => MagicOnLinux
« Antwort #243 am: Gestern um 23:19:14 »
Prima. Der cp-Befehl könnte entweder veraltet sein, oder er stammt aus einer anderen Quelle, weil macOS ja auch ein BSD-Unix ist und kein Linux.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.466
Re: AtariX => MagicOnLinux
« Antwort #244 am: Heute um 06:00:31 »
Leider gibt es wohl keine Alternative zu gxmessage, die mindestens so gut ist und auf allen Linux-Versionen sofort greifbar.

Es gibt schon diverse Alternativen (zenity, dialog, yad, whiptail etc.). Ob deren Verfügbarkeit besser ist, weiss ich aber nicht (auf openSUSE gibt es die alle). Evtl. könnte man das auch konfigurierbar machen, da es nur eine zentrale Stelle gibt wo es aufgerufen wird, sollte das machbar sein.

Ich hatte mich auch schon daran versucht, dafür SDL zu verwenden. Müsste prinzipiell möglich sein, da man in SDL2 mehrere Fenster verwalten kann. Allerdings wären dafür einige "Krücken" notwendig (Events von solchen Fenster sollten ja nicht an die Emulation weitergereicht werden). Und das Handling habe ich noch nicht sauber hinbekommen, da Emulation und Graphic in verschiedenen Threads laufen, kann man an der Stelle nicht einfach SDL-Funktionen aufrufen.

Offline ragnar76

  • Moderator
  • *****
  • Beiträge: 664
Re: AtariX => MagicOnLinux
« Antwort #245 am: Heute um 10:14:00 »
Leider gibt es wohl keine Alternative zu gxmessage, die mindestens so gut ist und auf allen Linux-Versionen sofort greifbar.
Es gibt schon diverse Alternativen (zenity, dialog, yad, whiptail etc.). Ob deren Verfügbarkeit besser ist, weiss ich aber nicht (auf openSUSE gibt es die alle). Evtl. könnte man das auch konfigurierbar machen, da es nur eine zentrale Stelle gibt wo es aufgerufen wird, sollte das machbar sein.
Was ist denn mit AppleScript bzw. osascript? Das ist auf jedem Mac vorinstalliert.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 91
Re: AtariX => MagicOnLinux
« Antwort #246 am: Heute um 11:47:59 »
Ich habe alles mögliche, wenn auch nicht alles Mögliche, zu gmessage-Alternativen gelesen, und bisher hat mich nichts wirklich überzeugt. Es ist schon bescheuert, daß es nicht so etwas Banales wie eine "Alert Box" gibt. Vermutlich ist Apple Script die eleganteste und hübscheste Option, aber gibt es leider nicht für Linux. Alle Aufrufe sind übrigens in gui.cpp, also wenn jemand experimentieren möchte...

OT: Die Versionsnummern sind noch etwas chaotisch. Die des Emulators ändere ich nur nach Lust und Laune. Der Kernel hat zwei Versionsnummern: Die Version 6.21 vom Dezember ist quasi die AES-Version, die werde ich nicht jedesmal (ein heute verbotenes Wort ...) ändern. Die andere kriegt Ihr über die Kontrollfelder, die sollte immer stimmen.

PS: Die erstere Version gibt's auch im Kontrollfeld "MagiC-Konfig".
« Letzte Änderung: Heute um 11:51:35 von AndreasKromke »

Offline ragnar76

  • Moderator
  • *****
  • Beiträge: 664
Re: AtariX => MagicOnLinux
« Antwort #247 am: Heute um 12:20:15 »
Ich habe alles mögliche, wenn auch nicht alles Mögliche, zu gmessage-Alternativen gelesen, und bisher hat mich nichts wirklich überzeugt. Es ist schon bescheuert, daß es nicht so etwas Banales wie eine "Alert Box" gibt. Vermutlich ist Apple Script die eleganteste und hübscheste Option, aber gibt es leider nicht für Linux. Alle Aufrufe sind übrigens in gui.cpp, also wenn jemand experimentieren möchte...
Bin jetzt nicht so der Programmierer aber was von meiner Ausbildung als FiSi hängen geblieben ist sind Macros.  Was wäre denn mit __APPLE_ und __linux__? Also sowas wie:

if __APPLE
  osascript("Dolle Nachricht");
elif __linux__
  gxmessage("Dolla Nachricht");
else
  printf("Wat? Windows?");
endif

Offline czietz

  • Benutzer
  • Beiträge: 3.958
Re: AtariX => MagicOnLinux
« Antwort #248 am: Heute um 13:56:45 »
4. Bitte die soeben hochgeladene Version testen, ob der Überlauf in MAGXDESK auch damit behoben ist. Ich denke, eine Änderung der RSC-Datei sollte ausreichend sein. Ich habe es rudimentär getestet.

... damit die Werte des HostXFS-Dfree allerdings richtig sind, solltest Du m.E. auch die richtige Blockgröße ("f_frsize") nutzen.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.466
Re: AtariX => MagicOnLinux
« Antwort #249 am: Heute um 14:16:03 »
f __APPLE
  osascript("Dolle Nachricht");
elif __linux__
  gxmessage("Dolla Nachricht");
else
  printf("Wat? Windows?");
endif


Sowas ähnlich wird schon gemacht. Problem ist halt daß __linux__ nicht unbedingt heisst daß gxmessage verfügbar ist.


Offline ragnar76

  • Moderator
  • *****
  • Beiträge: 664
Re: AtariX => MagicOnLinux
« Antwort #250 am: Heute um 16:12:00 »
f __APPLE
  osascript("Dolle Nachricht");
elif __linux__
  gxmessage("Dolla Nachricht");
else
  printf("Wat? Windows?");
endif
Sowas ähnlich wird schon gemacht. Problem ist halt daß __linux__ nicht unbedingt heisst daß gxmessage verfügbar ist.
Wie gesagt, ich bin kein Programmierer aber kann man nicht prüfen ob ein Tool vorhanden ist? Ich Stelle mir das ungefähr so vor:

ret = exec("gxmessage");

Wenn ret alles andere als 0 ist, dann ist es nicht vorhanden. So mach ich das in meinen bash scripts auf der Arbeit. Das gibt es mit Sicherheit auch in C.

Vielleicht wäre GTK ne Lösung, ist für eine Dialogbox erstmal ziemlicher Overkill aber für eine spätere GUI könnte das hilfreich sein.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.466
Re: AtariX => MagicOnLinux
« Antwort #251 am: Heute um 16:24:17 »
Wenn ret alles andere als 0 ist, dann ist es nicht vorhanden.

Naja, nicht ganz. Wenn es vorhanden ist, liefert das Werte ab 101, je nachdem mit welchem Button der Dialog beendet wurde. Aber man könnte das prüfen, ja. Fragt sich nur welche Alternative man dann nimmt.
Hab mir mal ein paar Sachen angeschaut, aber entweder bin ich zu blöd die Man-Page zu lesen, oder die Programme sind einfach zu doof. Bei Zenity hab ich es jedenfalls nicht hinbekommen, die Button-Texte so zu ändern wie MagicOnLinux das haben will. Yad ist auch nicht viel besser. Ausserdem muss ich Andreas zustimmen, die Dialoge sehen grauenvoll aus (Buttons sind die meiste Zeit doppelt so gross wie der Text).

Zitat
Vielleicht wäre GTK ne Lösung

gxmessage ist ja mit GTK gebaut.

Offline fichten

  • Benutzer
  • Beiträge: 53
  • Special cases aren't special enough to break rules
Re: AtariX => MagicOnLinux
« Antwort #252 am: Heute um 18:54:50 »
Griaß eich,
wenn ich in der bash prüfen will, ob ein Programm/Script überhaupt ausführbar ist, verwende ich meist
if [[ -x "$file" ]]und wenn ich das Programm überhaupt suche, weil ich nicht weiß, wo es liegt, verwende ich z.B.
whereis gxmessagelg, fichti
260ST, 520STM, 1040STE
Mega ST2, Mega ST4, Mega STE
Falcon Rev.A, Falcon Rev.B, Falcon Rev.C
TT030, Hades060, Firebee, MiST, Suska-III-C, Suska-IV-B

Offline fichten

  • Benutzer
  • Beiträge: 53
  • Special cases aren't special enough to break rules
Re: AtariX => MagicOnLinux
« Antwort #253 am: Heute um 19:12:54 »
ich habe heute auch noch wegen gxmessage herumgesucht und probiert, aber auch nix brauchbareres gefunden...

was mir aber bei gxmessage aufgefallen ist:
  • wenn ich jetzt per shutdown beenden will, bleibt das Fenster "stecken"...schaut aus wie Absturz, ist es aber nicht!
  • erst wenn man das Fenster zur Seite schiebt, sieht man ein Mini-Fenster von gxmessage,
    das ich erst auch mal vergrößern muss, um den ganzen Text lesen zu können...
  • und wenn man dann dort auf OK klickt, beendet sich dann MagicOnLinux
das ist also auch nicht das Gelbe vom Ei... ohne gxmessage brauche ich nicht erst das Fenster "suchen" und OK klicken...
den Text kann man zuerst auch nicht zur Gänze lesen, da muss man erst dieses gxmessage-Fenster vergrößern...
260ST, 520STM, 1040STE
Mega ST2, Mega ST4, Mega STE
Falcon Rev.A, Falcon Rev.B, Falcon Rev.C
TT030, Hades060, Firebee, MiST, Suska-III-C, Suska-IV-B

Offline fichten

  • Benutzer
  • Beiträge: 53
  • Special cases aren't special enough to break rules
Re: AtariX => MagicOnLinux
« Antwort #254 am: Heute um 19:24:05 »
@AndreasKromke: vom M-Laufwerk bin ich total begeistert!!!
Ich brauche nix herumkopieren, sondern kann z.B. auf meiner NAS direkt auf ein Backup von meinem Hades060 (der leider nicht mehr startet) zurückgreifen und ein paar Programme testen.
  • Calamus SL99 läuft, kann aber größere Dokumente wegen fehlendem Speicherplatz nicht öffnen...
    ein Klacks, sofort über die config von 8MB auf 32MB eingestellt... alles paletti!
  • Scooter-PCB will auch nur maximal 256 Farben, und auch das geht über die Config und alles läuft wieder rund!
260ST, 520STM, 1040STE
Mega ST2, Mega ST4, Mega STE
Falcon Rev.A, Falcon Rev.B, Falcon Rev.C
TT030, Hades060, Firebee, MiST, Suska-III-C, Suska-IV-B