atari-home.de - Foren

Software => Coding => Thema gestartet von: Yadgar am Fr 23.02.2018, 16:06:57

Titel: Videos auf dem Atari 1040 STFM?
Beitrag von: Yadgar am Fr 23.02.2018, 16:06:57
Hi(gh)!

Voriges Jahr hatte ich angefangen, auf dem PC (AMD FX-6200, Hexacore, unter Linux) mit Videos im "Retro-Look" zu experimentieren... dazu konvertierte ich sowohl per Digitalkamera aufgenommene Realvideos als auch POV-Ray-Animationen mittels selbst in C++ programmierten (und noch lange nicht fertiggestellten!) Programms Grafikmodi diverser 80er-Jahre-Heimcomputer zu konvertieren, allen voran zunächst einmal in den Monochrom-Modus des Atari ST (mit Floyd-Steinberg-Rasterung). Auf dem PC sieht das zum Beispiel so aus:

https://www.youtube.com/watch?v=stqY09znsN4

Jetzt würde ich solche Videos ja gerne auch auf meinem realen Atari ST 1040 STFM zum Laufen bringen... bevor ich mir überhaupt eine Festplatte für den ST zulege und mit der Programmierung der Konvertierung in ein ST-taugliches Datenformat anfange, hätte ich gerne gewusst, ob der ST überhaupt in der Lage ist, vollformatige (also 640 x 400) Monochrom-Videos in erträglicher Geschwindigkeit anzuzeigen.

Da ich mich mit Videokompressions-Algorithmen nicht auskenne, gehe ich davon aus, dass der ST die einzelnen Frames nacheinander und unkomprimiert von der Festplatte lädt. Da es sich um 1-bit-Grafik handelt, müsste der ST bei 25 Frames pro Sekunde 640 * 400 / 8 * 25 Bytes, also 800 Kilobytes/Sekunde von der Platte laden und auf dem Bildschirm als Grafik anzeigen. Schaffen das die I/O-Einheit und der Grafikprozessor? Sind die für den ST geeigneten (SCSI-)Festplatten schnell genug dazu? Reicht 1 MB RAM aus? Wäre ich eventuell mit einem (Mega-)STE besser bedient?

Bis bald im Khyberspace!

Yadgar
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: kolli am Fr 23.02.2018, 18:33:06
Ich kann deine Frage leider nicht direkt beantworten, habe aber zwei möglicherweise hilfreiche Links für dich.

Making of für das Bad Apple Demo https://youtu.be/_j66Nu7BoCE
Da geht es zwar um das Abspielen von Videos auf dem STE, aber der Unterschied in hoher Auflösung ist ja nur, dass du beim STFM nicht einfach Audio per DMA abspielen kannst. Ich bin kein Coder, aber für mich wird deutlich, dass es nicht ganz einfach ist, einen Video-Stream abzuspielen.

Außerdem noch dies hier https://www.exxoshost.co.uk/forum/viewtopic.php?f=39&t=533
Da erklärt Peter Putnik einiges zum Abspielen von Farbvideos in niedriger Auflösung auf dem STE. Dort sind ebenfalls technische Erläuterungen zu finden, ob und wie es gehen kann.

Insgesamt ist die Anforderung an die Datenrate jedenfalls so hoch, dass es mit alten Festplatten nicht geht, sondern nur mit modernen Lösungen mit SD oder CF als Massenspeicher. Und der STFM ist für diesen Anwendungszweck alles andere als ideal.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: MJaap am Fr 23.02.2018, 19:14:09
Ist zwar nicht auf dem ST, aber 2015 erschien eine Umsetzung von Dragon's Lair für den ZX81, die Videos von SD-Karte streamte. Ohne Sound und in einem kleineren Format, aber immerhin.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: gh-baden am Fr 23.02.2018, 19:47:56
https://www.youtube.com/watch?v=stqY09znsN4

Hübsch.

Da es sich um 1-bit-Grafik handelt, müsste der ST bei 25 Frames pro Sekunde 640 * 400 / 8 * 25 Bytes, also 800 Kilobytes/Sekunde von der Platte laden und auf dem Bildschirm als Grafik anzeigen. Schaffen das die I/O-Einheit und der Grafikprozessor? Sind die für den ST geeigneten (SCSI-)Festplatten schnell genug dazu? Reicht 1 MB RAM aus? Wäre ich eventuell mit einem (Mega-)STE besser bedient?

ACSI kann das durchaus, geeignet schneller Massenspeicher vorausgesetzt. Und dank DMA könntest du das evtl direkt in den Bildschirmspeicher kopieren. Aber 25fps bzw 800 KB/s sind jetzt nicht ohne.

Die RAM-Menge sehe ich da nicht als Problem.

Der MegaSTE kann zwar etwas schneller rechnen, aber nur im CPU-Cache, und die CPU solltest du so wenig wie möglich beteiligen, denn sonst wird’s zu eng. Insofern sehe ich da keinen großen Vorteil.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am Fr 23.02.2018, 21:17:05
Ich habe mal eben in gut 30 Minuten ein "proof of concept" zusammengebaut: 25 fps Video (640x400, monochrom) auf einem 1040STFm. Ist nicht wirklich optimiert, aber läuft bereits flüssig! (Ohne Sound, PCM-Sound ist auf einem STF nicht trivial realisierbar.) Die Daten kommen von einer SD-Karte; wie oben schon erwähnt, würde sich eine Festplatte aus der damaligen Zeit mit der Datenrate schwer tun.

Ihr könnt meinen Versuch unter https://youtu.be/xMhXwSpHnPQ bewundern.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: 1ST1 am Fr 23.02.2018, 22:02:37
Beeindruckend. Wieviel Rechenzeit ist den in % noch über? Samples auf dem Yamaha-Soundchip soll nicht allzuviel Ressourcen fressen, vielleicht kann man es zusammen bringen. Schließlich sieht man das oft in sehr zeitkritischen Demos mit Overscan und viel mehr Farben als der ST eigentich kann. Nur die Samples auch noch von der Platte zu lesen, das wird eher schwierig, da wird die DMA-Bandbreite nicht ausreichen. Die müssen wahrscheinlich vorab im RAM liegen.

Pera Putnik seine Erfolge beim Video-Playback auf dem STE wurden ja schon genannt, die dafür entstandene Software hat natürlich auch eine Homepage: http://atari.8bitchip.info/movpst.php
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: kolli am Fr 23.02.2018, 22:04:17
Sehr geil! In Assembler? Und was ist das für ein Dateiformat? FMV sagt mir gar nix.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am Fr 23.02.2018, 22:24:30
Für ein Proof-of-Concept hatte ich keine Lust auf Assembler, das ist Pure C und nur TOS-Funktionen, keine direkten Hardwarezugriffe. Das Dateiformat ist proprietär und wieviel Rechenzeit noch frei ist, kann ich nicht beantworten. Alle diese Details herauszufinden, überlasse ich @Yadgar -- ich wollte nur zeigen, dass es prinzipiell geht.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Yadgar am Fr 23.02.2018, 23:10:58
Hi(gh)!

Für ein Proof-of-Concept hatte ich keine Lust auf Assembler, das ist Pure C und nur TOS-Funktionen, keine direkten Hardwarezugriffe. Das Dateiformat ist proprietär und wieviel Rechenzeit noch frei ist, kann ich nicht beantworten. Alle diese Details herauszufinden, überlasse ich @Yadgar -- ich wollte nur zeigen, dass es prinzipiell geht.

Trotzdem beeindruckend... welche Festplatte verwendest du? Wenn es schon mit C so gut läuft, wie dann erst in Assembler?

Wo finde ich detaillierte Informationen über den Anschluss von (relativ) modernen Festplatten (also jedenfalls größere als es die Megafiles seinerzeit waren) an den ST? Was gibt es an freien oder nicht zu teuren C-Compilern?

Bis bald im Khyberspace!

Yadgar
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: 1ST1 am Fr 23.02.2018, 23:30:31
Als Speichermedien basierend auf Flash kannst du nehmen:
1. SatanDisk (nicht mehr erhältlich, evtl. nicht so schnell wie nachfolgende)
2. Ultrasatan (gibts bei Lotharek.pl, Nachfolger von SatanDisk)
3. CosmosEx (technologischer Nachfolger von Ultrasatan, manchmal über den Entwickler Jookie erhältlich http://joo.kie.sk/?page_id=384)
5. Gigafile von W.Förster (https://shop.inventronik.de/index.php)
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: gh-baden am Fr 23.02.2018, 23:48:17
(Ohne Sound, PCM-Sound ist auf einem STF nicht trivial realisierbar.)

Ist nicht trivial, aber bereits existierend. Siehe die Sourcen zu GEMJing (1.36 oder 1.40 – die 1.40 fixt UI-Bugs, aber nichts beim abspielen), da gibt’s das als Unterroutine zum Aufrufen.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Yadgar am Sa 24.02.2018, 00:18:08
Hi(gh)!

5. Gigafile von W.Förster (https://shop.inventronik.de/index.php)

112 Euro... da es offensichtlich keine billige Bastellösung mit ollen SCSI-Möhren für 10 Euro aus der "Elektrobucht" gibt (und ich die mit meinen dreieinhalb linken Händen eh nicht hinbekäme), werde ich wohl bis auf Weiteres auf Real-ST-Videos verzichten! Ich werde mir eventuell den Steem-Emulator installieren und versuchen, meine Videos dort laufen zu lassen...

Bis bald im Khyberspace!

Yadgar
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: ari.tao am Sa 24.02.2018, 02:37:25
Mit etwas Glück fischst Du vielleicht eine gebrauchte 1GB-SCSI-Platte plus ACSI-SCSI-HostAdapter in der eBucht.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am Sa 24.02.2018, 11:08:04
da es offensichtlich keine billige Bastellösung mit ollen SCSI-Möhren für 10 Euro aus der "Elektrobucht" gibt

Auf alle Fälle brauchst Du dann einen ACSI-SCSI-Adapter. Aber grundsätzlich ist das mit den Videos auch mit (echten) Festplatten machbar: mit meiner 20 Jahren alten IBM-SCSI-Platte am AdSCSI-Plus-Adapter messe ich am ST immer noch gut 1200 kB/s Datenübertragungsrate. Wenn man sicherstellt, dass das Video unfragmentiert ist und ggf. im Player einen Buffer für kurzfristige Einbrüche der Leserate einbaut; wirds auch mit einer SCSI-Festplatte gehen. (Meine SH204 hingegen ist definitiv zu langsam.  ;) )
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: simonsunnyboy am Sa 24.02.2018, 11:10:27
Die Ultrasatan ist eine gute Lösung, Lotharek ist sehr zuverlässig und die Geräte kommen in sehr stabilen Gehäusen.

Die klassische Satandisk wurde schon von anderen Entwicklern als zu langsam für solche Videoapplikationen bezeichnet. Es gibt Demos, die explizit sagen "läuft nur mit UltraSatan"
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: kolli am Sa 24.02.2018, 12:26:06
Ich bin zwar ein sich ordentlich auskennender Anwender, aber kein Coder. Zuletzt hab ich vor 25 Jahren auf dem Atari mit GFA-Basic programmiert. Vielleicht kann mir jemand bei folgenden Fragen weiterhelfen, ohne dass ich mich stundenlang durchs Profibuch wühlen muss:

Kann man sowas wie Framebuffer auf dem Atari (einfach) realisieren? Also vorbereitete Bildschirmseite(n) in Speicherbereich außerhalb des Screen Memory, und dann einfach dem OS sagen, dass er ab sofort sein Screen Memory unter Adresse xyz findet?

Welches vorhandene und mit Tools wie ffmpeg erzeugbare Video-Dateiformat eignet sich, um ohne viel Verarbeitungsaufwand einen solchen Framebuffer schnell zu füllen?
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am Sa 24.02.2018, 12:33:36
Kann man sowas wie Framebuffer auf dem Atari (einfach) realisieren? Also vorbereitete Bildschirmseite(n) in Speicherbereich außerhalb des Screen Memory, und dann einfach dem OS sagen, dass er ab sofort sein Screen Memory unter Adresse xyz findet?

http://toshyp.atari.org/de/Screen_functions.html#Setscreen
Viel mehr macht mein Player auf nicht: es gibt zwei Buffer, in einen wird gelesen, der andere wird dargestellt. Alle 3 VBLs wird umgeschaltet.

Zitat
Welches vorhandene und mit Tools wie ffmpeg erzeugbare Video-Dateiformat eignet sich, um ohne viel Verarbeitungsaufwand einen solchen Framebuffer schnell zu füllen?

Mein Setup für das Proof-of-concept war etwas aufwändiger, weil ich nicht noch einen Dekoder für irgendein Video-Format programmieren wollte. Extraktion der einzelnen Frames mit ffmpeg, Dithering auf monochrom und Skalierung auf 640x400 mit ImageMagick, dann alle resultierenden Dateien hintereinander gehängt.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: kolli am Sa 24.02.2018, 13:08:43
Super, vielen Dank!
Die Video-Konvertierung, die du beschreibst, dürfte sich auch recht einfach als simples Shell-Script realisieren lassen.

Wenn ich dich richtig verstehe, liest du also quasi immer 32000 Bytes aus der Datei in einen reservierten Speicherbereich und schaltest dann zum passenden Zeitpunkt die Adresse des Bildschirmspeichers um, fertig?
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am Sa 24.02.2018, 16:12:10
Im Wesentlichen ja.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Yadgar am So 25.02.2018, 14:36:10
Mit etwas Glück fischst Du vielleicht eine gebrauchte 1GB-SCSI-Platte plus ACSI-SCSI-HostAdapter in der eBucht.

Wieso nur 1 GB? Geht größer nicht? Und was kostet so ein ACSI-SCSI-Adapter?

Bis bald im Khyberspace!

Yadgar
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am So 25.02.2018, 15:02:37
Doch, mehr als 1 GB funktioniert, wenn der ACSI-SCSI-Adapter mitspielt -- ICD(-kompatibel) ist hier das Stichwort. Wenn nicht, lässt sich bei größeren Platten halt nur 1 GB nutzen.

SCSI-Platten-Kompatibilität ist trotzdem so eine Sache, je nach ACSI-SCSI-Adapter. Manche Adapter unterstützen kein Parity, da wird die Auswahl an Platten echt dünn. Manche Adapter unterstützen keine Initiator-ID, da verhalten sich manche Platten zickig. Die meisten Adapter unterstützen keine Arbitrierung, manche SCSI-Platten bestehen aber darauf.

Neu erhältlich ist wohl nur noch dieser Adapter: https://shop.inventronik.de/index.php?id_product=12&controller=product&id_lang=1 (https://shop.inventronik.de/index.php?id_product=12&controller=product&id_lang=1), gebraucht was halt gerade auf eBay auftaucht.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Lukas Frank am So 25.02.2018, 15:03:28
... was kostet so ein ACSI-SCSI-Adapter?

->   https://shop.inventronik.de/index.php?id_product=12&controller=product&id_lang=1
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Yadgar am So 25.02.2018, 16:55:59
... was kostet so ein ACSI-SCSI-Adapter?

->   https://shop.inventronik.de/index.php?id_product=12&controller=product&id_lang=1

Na, dann es ist für mich auf absehbare Zeit kein Thema! Es gibt wichtigere Dinge als Retrocomputing...

Bis bald im Khyberspace!

Yadgar
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: ari.tao am So 25.02.2018, 19:55:34
Mit dem Adapter von inventronik ist man vermutlich auf der sicheren Seite, sodaß die meisten SCSI-Platten laufen; aber plus große gebr. Platte & Kabel kommt man dann preislich in den Bereich von GigaFile und Ultrasatan - da rät jeder Mann mit Verstand eher zu letzteren. In der elektr. Bucht sollte man Platte + Adpt. nicht einzeln, sondern als lauffähige Kombi kaufen. ICD-kompatiple Adpt. sind aber eher selten, wer einen hat, der wird sich kaum davon trennen.

-------

Die imho beste der Möglichkeiten wurde erstaunlicherweise bisher noch nicht genannt: Ein IDE-Interface für STs. Das hätte wohl die größte Ü-Rate, mit billigem IDE-CF-Adpt. & CF; jedoch kann ich zur Ü-Rate nix genaueres sagen, da mein MST4 (der so etwas drin hat) derzeit "in Kur" ist und ich damals (vor ~12 Jahren) versäumt habe, rechtzeitig zu messen. Auch weiß ich weder, ob IDE-Ifs. für STs derzeit noch irgendwo angeboten werden, noch was sie kosten.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: czietz am So 25.02.2018, 20:23:29
Die imho beste der Möglichkeiten wurde erstaunlicherweise bisher noch nicht genannt: Ein IDE-Interface für STs. Das hätte wohl die größte Ü-Rate, mit billigem IDE-CF-Adpt. & CF; jedoch kann ich zur Ü-Rate nix genaueres sagen, da mein MST4 (der so etwas drin hat) derzeit "in Kur" ist und ich damals (vor ~12 Jahren) versäumt habe, rechtzeitig zu messen. Auch weiß ich weder, ob IDE-Ifs. für STs derzeit noch irgendwo angeboten werden, noch was sie kosten.

Mein Video oben war von einem ST mit IDE-Interface und preiswertem SD-Card-IDE-Adapter aufgenommen. Damit erreicht man locker Datenraten > 1000 kiB/s, wenn kein Software-Byte-Swap nötig ist. Für MegaST gibt's evtl. IDE-Interfaces zum Stecken, beim 520ST/1040ST muss dafür aber löten können.
Titel: Re: Videos auf dem Atari 1040 STFM?
Beitrag von: Atariosimus am Fr 09.03.2018, 09:42:08
http://8bitchip.info/atari/movpst.php (http://8bitchip.info/atari/movpst.php)

Hier gibts noch eine Seite von Putnik und sogar einen Tip um eine SD Cart zu defragmentieren.