Hallo Besucher, der Thread wurde 2,7k mal aufgerufen und enthält 20 Antworten

letzter Beitrag von Omega am

Raspi4/400: Amiga-Emulation, Ruckel-Scrolling, Monitore & Co.

  • Ich versuche nun schon seit langer Zeit eine vernünftige Amiga-Emulation auf meinem Raspberry Pi 4 hinzukriegen. Ich habe auch mit einem Raspberry Pi 400 getestet.


    Dazu habe ich diverse Softwarelösungen probiert wie z.B. FS-UAE, Amiberry, Pimiga und RetroPie.

    Eine richtig gute ruckelfreie Emulation scheint mit dieser Hard- und Softwarekombination aber nicht möglich zu sein.

    Egal wieviel ich probiere und optimiere, es läuft immer darauf hinaus, dass die meisten Spiele (ein wenig) ruckelig laufen. Manchmal auch zu langsam oder mit knisterendem Ton.


    Andererseits hört man aus diversen Quellen aus dem Internet, dass selbst mit einem Raspberry 3 eine vollkommen ruckelfreie und perfekte Emulation sowohl des A500,- als auch des A1200 möglich sein soll.

    Mit einem Raspberry Pi 4 und 400 sowieso.


    Wie kann das sein?


    Ich habe meinen Raspi zur Kontrolle an jemanden hier aus dem Forum gesendet, der sich gut auskennt und sich auch mit Amiga-Emulation beschäftigt.

    Er hat meinen Raspi4 überprüft, seine Software auf bestmögliche Weise installiert und das Ganze für gut befunden. Also ohne Ruckler und Probleme.

    Danach hat er mir das Gerät wieder zurückgesendet.


    Als ich es dann bei mir wieder in Betrieb genommen habe, hatte ich aber die selben Probleme wie vorher. Vor allem das Ruckel-Scrolling.


    Der einzige Unterschied zwischen meinem- und dem Testsetup der anderen Person ist der Monitor.


    Hat das schon mal jemand gehört, dass der verwendete Monitor Einfluß auf die Qualität der Emulation bei einem Raspberry Pi hat?

    Ich kann das eigentlich gar nicht glauben. Aber es deutet alles eindeutig darauf hin.

  • Hmm, dann beschreib mal das Ruckeln genauer.


    Ist das Ruckeln konstant da, oder gibt es ein paar Slowdowns also sporadisch bzw. unregelmäßig ein paar Mal in der Sekunde? Oder nur ab und zu alle x Sekunden?


    Das könnte durchaus mit dem Monitor zu tun haben und der verwendeten Frequenz - Viele Monitore haben ja fest 60 Hz und können 50 Hz überhaupt nicht darstellen. Das Ergebnis wäre ein leichtes konstantes Ruckeln. Über HDMI geht ja teilweise auch 50 Hz - also für Amiga (oder C64) Emulation ganz gut. Evtl. hilft es auch die Emulation auf NTSC bei deinem UAE zu stellen. Dann könnte es dann besser aussehen, weil dann der Monitor mit vermutlich 60 Hz zu der emulierten Frequenz passt.


    Andererseits empfinde ich sowieso auf allen meinen Computer Monitoren (also alle bis auf meine Röhrenmonitore [1084 / Amiga VGA / PC VGA]) beispielsweise den Mauszeiger als ruckelig, egal welches System (Windows/Linux/MacOs). Andere würden sagen die Bewegung ist nicht ganz scharf, wie auf einer Röhre. Der Mauszeiger wäre bespielsweise ruckelfrei, wenn man eine Gaming Maus hat (mit 500Hz oder 1000 Hz Abfrage-Frquenz/Polling Rate). Früher wars nerviger und über PS/2 die Mausabfragefrequenz zu der Monitor Frequenz passen. Zum Beispiel hatte ich damals unter Windows ein 100 Hz Bildschirm und ich musste die Mausabfragefrequenz/Pollingrate auf 100Hz oder 200 Hz stellen.


    Ich habe ja vor vielen Jahren mal eine experimentelle Anpassung bei Vice gemacht, bei der man unter Windows mit vielen umständlichen Einstellung endlich Vice auf einem Röhrenmonitor ruckelfrei laufen lassen konnte. Das hat bespielsweise auch mit 100 Hz Bildwierholfrequenz funktioniert, aber mit 100 Hz war das Scrolling auch ruckelig bzw. unscharf. Also war mit das Ruckeln mit 100 Hz konstant die ganze Zeit da.


    Ist das Ruckeln vielleicht so wie bei dem UFO-Test: https://www.testufo.com/ghosti…phics=bbufo.png&pursuit=1 - Dann liegt es an der Monitortechnologie ;) Der Test läuft aber evtl. nicht auf dem Raberry PI.

  • Der Monitor/Fernseher hat einen Einfluss auf das Ruckeln. Der Entwickler des TheC64 Chris Smith hat einige Monate daran gesessen, die Probleme mit dem HDMI Stream in den Griff zu bekommen bis es nur geringe Bild- und Tonprobleme gab. Ich vermute dass auch bei dir da die Ursache liegt.


    Welchen Bildschirm verwendest du?

  • Chrille: Das Ruckeln hängt vom Spiel und von der Emulationssoftware ab. Ganz weg ist es aber nie. Bei den Turricans ist das Ruckeln eher selten, so ca. alle 20 Sekunden. Bei manchen Spielen ruckelt es mehr, z.B. bei den späteren Levels von Apidya, bei manchen knackst zusätzlich der Ton oder es gibt manchmal Slowdowns.


    Der Monitor, den ich benutze, kann 50Hz darstellen. Die 50/60Hz Problematik ist mir bewusst.


    Was komisch ist, ist das das Ruckeln bei MEINEM Raspberry Pi 4 bei jemand anderem anscheinend nicht auftritt aber bei mir schon. Da wir diesen Vergleich per Post-Austausch machen mussten, kann ich nichts genaueres sagen. Sicher ist aber, dass die andere Person einen anderen Monitor hat als ich. Ansonsten müsste alles 100% identisch sein.


    Mir scheint, dass es bei Monitoren noch andere Eigenschaften als die Bildwiederholfrequenz gibt, die dabei eine Rolle spielen. Aber welche?

    Hat das vielleicht etwas mit Overscan zu tun?

  • Weitere Möglichkeit wäre ein zu schwaches Netzteil, denn wenn dem Raspi die nötige Power auf den 5V fehlt dann wird der Prozessor gedrosselt.

  • Über HDMI geht ja teilweise auch 50 Hz - also für Amiga (oder C64) Emulation ganz gut.

    Aber: Nur weil der Monitor ein 50Hz-Signal über irgendeinen Eingang akzeptiert heisst das noch lange nicht, dass der dann auch das Panel mit 50Hz aktualisiert. Manche Monitore machen einfach eine stumpfe Frameratenwandlung auf die Panel-Refreshrate, die dann üblicherweise bei 60Hz liegt.


    Weitere Möglichkeit wäre ein zu schwaches Netzteil, denn wenn dem Raspi die nötige Power auf den 5V fehlt dann wird der Prozessor gedrosselt.

    Wenn man es nicht wegkonfiguriert hat sollte dabei ein Blitzsymbol in der oberen rechten Ecke des Bildschirms angezeigt werden.

  • Chrille: Das Ruckeln hängt vom Spiel und von der Emulationssoftware ab. Ganz weg ist es aber nie. Bei den Turricans ist das Ruckeln eher selten, so ca. alle 20 Sekunden. Bei manchen Spielen ruckelt es mehr, z.B. bei den späteren Levels von Apidya, bei manchen knackst zusätzlich der Ton oder es gibt manchmal Slowdowns.

    Ist denn das Ruckeln nur ein Frame lang? Oder ist es einige Frames lang, aber nur alle 20 Sekunden? Oder kann man den Unterschied eher nicht erkennen?


    Wenn der Ton knackst spricht es eigentlich dafür, dass der Raspi etwas überlastet ist und irgendwas anders läuft. Das Ton knacksen sollte man mit einem längeren Audio Buffer weg bekommen. Damit verbunden ist dann natürlich ein höherer Lags (bzw. Verzögerung) des Sounds.


    Ich würde mir mal evtl die Auslastung der Prozesse ansehen. Z.B. von einem anderen Rechner über SSH auf dem Raspi einloggen und mal sehen was z.B. ein Programm wie "top" dazu sagt. Dann kannst ja grob sagen, ob der Raspi überlastet ist oder eher nicht.


    Sonst hätte ich spontan auch keine Idee, was man noch machen könnte.

  • Welchen Bildschirm verwendest du?

    Ich hab einen kleinen No-Name 10" Mini Monitor im meinem Arbeitszimmer und einen 42" Röhrenfernseher von Panasonic im Wohnzimmer. Bei beiden sind die Resultate identisch.

    Dann kann man den Monitor als Ursache eher ausschließen. Das wäre schon sehr großer Zufall, wenn beide Monitore das gleiche "Ruckelverhalten" produzieren würden.

  • Weitere Möglichkeit wäre ein zu schwaches Netzteil, denn wenn dem Raspi die nötige Power auf den 5V fehlt dann wird der Prozessor gedrosselt.

    Hab' das Originalnetzteil mit 3,1A.


    Aber: Nur weil der Monitor ein 50Hz-Signal über irgendeinen Eingang akzeptiert heisst das noch lange nicht, dass der dann auch das Panel mit 50Hz aktualisiert.

    Wenn ich den TheC64 Mini an den Mini Monitor anschliesse, dann ist das Scrolling absolut 100% perfekt.

    Ist denn das Ruckeln nur ein Frame lang?

    Ja. Ich würde sagen, dass da immer mal ein Frame verloren geht.

    Ich würde mir mal evtl die Auslastung der Prozesse ansehen.

    Das Komische ist ja, dass der selbe Raspberry Pi bei jemand anderem ruckelfrei und gut funktioniert. Zumindest wurde mir da so mitgeteilt. Und sobald ich ihn bei mit zuhause habe, ist das Ruckeln wieder da. (Einziger möglicher Unterschied: Der Monitor.)

  • Einziger möglicher Unterschied: Der Monitor

    Nein, der Beobachter war dabei ebenfalls unterschiedlich. Manche Leute erkennen vereinzelte ausgelassene Frames besser als andere.

  • Ja. Ich würde sagen, dass da immer mal ein Frame verloren geht.

    Hmm, also dann ist die Frage, ob sich der Emulator am echten Timing (= Systemzeit) oder an der Bildfrequenz synchronisiert?


    Ich musste damals bei Vice mich an der Bildfrequenz synchronisieren. Sonst gab es von Zeit zu Zeit auch mal einen Ruckler, wie du das beschreibst. Meine Vermutung wäre dann auch wie Unseen gesagt hat,das es möglicherweise doch am Beobachter liegt. Wäre dann auch klar, da der emulierte Amiga vermutlich nicht genau die emulierten 50 Hz hat, wie dein Host System auf 50 Hz. Der C64 hat ja auch 50,X Hz oder so ähnlich. Dann lässt er mal ein Frame aus oder überspringt mal ein Frame wegen diese Abweichung.


    Wenn die Konfiguration sonst ganz genau identisch ist, wäre das für mich am plausibelsten.

  • Chrille: Das Ruckeln hängt vom Spiel und von der Emulationssoftware ab. Ganz weg ist es aber nie. Bei den Turricans ist das Ruckeln eher selten, so ca. alle 20 Sekunden. Bei manchen Spielen ruckelt es mehr, z.B. bei den späteren Levels von Apidya, bei manchen knackst zusätzlich der Ton oder es gibt manchmal Slowdowns.

    Bei Apidiya sind die Slowdowns wenigstens in Level 4-1 und Level 4-2 ganz normal - also wenn du das als später im Spiel siehst. Das wird auch auf echten Amigas langsam. Das ist ja der Level mit dem Sprite Hintergrund.

  • Nein, der Beobachter war dabei ebenfalls unterschiedlich. Manche Leute erkennen vereinzelte ausgelassene Frames besser als andere.

    Hmmm. Gute Anmerkung. Da magst Du vielleicht recht haben.

    Bei Apidiya sind die Slowdowns wenigstens in Level 4-1 und Level 4-2 ganz normal - also wenn du das als später im Spiel siehst. Das wird auch auf echten Amigas langsam. Das ist ja der Level mit dem Sprite Hintergrund.

    Echt? Apiyda läuft bei mir in den Levels mit der Wiese und dem Teich sehr gut, im Tunnel geht so und später in diesem Biomechanischen Level mit der Techno Musik kommt dann vermehrt das Ruckeln dazu. Das ist ganz normal?


    Ich hab ein Video davon gemacht. Auffällig ist schon das Knistern am Anfang in der "Transformation Sequence". Und die Techno-Musik kommt mir auch eine Spur zu langsam vor und klingt vom Timing etwas wackelig als wenn der DJ leicht besäuselt gewesen ist. :drunk:

  • Echt? Apiyda läuft bei mir in den Levels mit der Wiese und dem Teich sehr gut, im Tunnel geht so und später in diesem Biomechanischen Level mit der Techno Musik kommt dann vermehrt das Ruckeln dazu. Das ist ganz normal?


    Ich hab ein Video davon gemacht. Auffällig ist schon das Knistern am Anfang in der "Transformation Sequence". Und die Techno-Musik kommt mir auch eine Spur zu langsam vor und klingt vom Timing etwas wackelig als wenn der DJ leicht besäuselt gewesen ist. :drunk:

    Ja, ich muss mir das vielleicht mal morgen oder demnächst auf echter Hardware ansehen ... Das mit dem Ton ist schon bisschen komisch. Ich bin mir nicht mehr sicher, ob das auf einem echen Amiga auch ist. Die Slowdowns würde ich aber als normal bezeichnen. Das Flimmern des Schutzschild sah allerdings auch ein wenig komisch aus.


    Naja, wie auch immer, auf dem Amiga gibt es auf jeden Fall auch Slowdowns in den Leveln mit dem Sprite Parallax Scrolling. Wegen dem wird fast jeder Spicherzyklus gefressen von der DMA für Copper/Sprites/Bitplane, so dass der Prozessor und der Blitter nur noch wenige Zugriffe auf den Speicher bekommen. Ist denn die Emulation auf ECS/OCS oder AGA gestellt? Auf AGA sieht es ein wenig besser aus, da wenigstens der Prozessor 32 Bit Zugriffe hat, wenigstens auf echter Hardware.

  • Mal versuchen, die digitale Tonausgabe über HDMI zeitweise zu deaktivieren:


    hdmi_ignore_edid_audio

    Setting hdmi_ignore_edid_audio to 1 pretends that all audio formats are unsupported by the display. This means ALSA will default to the analogue audio (headphone) jack.


    Oder hdmi_drive:


    hdmi_drive result

    1

    Normal DVI mode (no sound)


    Quelle: https://www.raspberrypi.com/do…computers/config_txt.html