Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Möglichst wenig Platz auf der Festplatte (mit Linux)
#1
Hallo zusammen.

Nachdem ich die komplette NLT ans Laufen gebracht habe, möchte ich jetzt möglichst den Platzbedarf minimieren. Besonders Riva ist etwas sperrig.

Gibt es bei der CD-Version von Schicksalsklinge vielleicht auch Midi-Sound, der sich irgendwie aktivieren lässt?
Ich habe irgendwo gelesen, dass dosbox auch flac (den Free Lossless Audio Codec) unterstützt, der wiederum irgendwie mit CUE-Dateien bzw. cuesheet zusammenarbeiten soll. (Ich kenne mich damit so ziemlich gar nicht aus.) Kann man also die Audiospuren von Riva komprimieren und das ganze trotzdem mit dosbox mounten?:think:

Ich wäre für alle platzsparenden Hinweise dankbar.


Im Moment habe ich die folgende Konfiguration:

Schicksalsklinge: 7MB installiert, 30MB ISO-Datei
Der Ton von CD läuft (natürlich) nicht. MIDI auch nicht.
Sternenschweif: 4MB installiert, 90MB ISO-Datei
Sprachausgabe und MIDI-Sound.
Schatten über Riva: 71MB installiert, 644 BIN/CUE-Dateien
Ton von CD-Image.

Für Schicksalsklinge und Sternenschweif wurden einfach die erforderlichen Daten in neu erstellte ISO-Dateien gepackt. Für Riva wurde ein CUE-Image mit den Anweisungen
> cdrdao read-cd --datafile dsa3.bin --driver generic-mmc:0x20000 --device /dev/cdrom --read-raw dsa3.toc
> toc2cue dsa3.toc dsa3.cue

erstellt.
(Für Details dazu siehe hier.)
Zitieren
#2
Rabenaas schrieb:Gibt es bei der CD-Version von Schicksalsklinge vielleicht auch Midi-Sound, der sich irgendwie aktivieren lässt?
Nein das geht leider nicht, siehe http://www.crystals-dsa-foren.de/showthread.php?tid=895

Rabenaas schrieb:Ich habe irgendwo gelesen, dass dosbox auch flac (den Free Lossless Audio Codec) unterstützt, der wiederum irgendwie mit CUE-Dateien bzw. cuesheet zusammenarbeiten soll. (Ich kenne mich damit so ziemlich gar nicht aus.) Kann man also die Audiospuren von Riva komprimieren und das ganze trotzdem mit dosbox mounten?:think:

Ich wäre für alle platzsparenden Hinweise dankbar.
Ich glaube nicht das sowas geht DOSBox hat mWn kein Support für Audiodekompression wie z.B. FLAC. Siehe auch http://vogons.zetafleet.com/viewtopic.php?t=16400 da hat jemand ohne Erfolg versucht eine CUE/MP3 Kombination zu mounten.
Zitieren
#3
Rabenaas schrieb:Besonders Riva ist etwas sperrig.
Schatten über Riva: 71MB installiert, 644 BIN/CUE-Dateien
Ton von CD-Image.

Willkommen Rabenaas! :)
710 MB siehst du als sperrig an? Oh, ...

Es gibt zumindest ja von der Schicksalsklinge eine (Amiga)-Diskettenversion, die verbraucht bestimmt weniger Speicherplatz. ;) Aber du die noch findest, ... ich denk eher nicht. Ich hab sie :)


Angehängte Dateien Thumbnail(s)
   
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#4
Rabenaas schrieb:Ich wäre für alle platzsparenden Hinweise dankbar.
Nunja, wenn wirklich *alle* Hinweise gefragt sind: Im Prinzip kannst Du mit Qemu noch ein paar Byte rausschinden, allerdings wohl nur für die installierten Daten. Das Image-Format von Qemu unterstützt zlib-Kompression und ohnehin hat Qemu anderen Arten der Installation unter Linux einiges voraus, vgl. diesen Thread; außerdem unterstützt es seit neuestem KVM, was an sich schon einen Versuch wert sein könnte. (Man muß nur auf die Mausbedienung verzichten können, aber ohne läßt sich die NLT, die Kämpfe mal ausgenommen, sogar besser steuern.)

Obi-Wahn schrieb:710 MB siehst du als sperrig an? Oh, ...
Wenn man die spärliche Bestückung des derzeit verbreitetsten Linux-Fertigrechners, des EEE-PCs bedenkt, scheint diese Platzangst gar nicht ungerechtfertigt. Nicht jeder möchte schließlich ein sperriges Surfboard, in dem mechanischer Speicher verbaut ist, mit sich umherschleppen müssen.
Zitieren
#5
Erst einmal danke für die Tipps.:)

Borbaradwurm schrieb:da hat jemand ohne Erfolg versucht eine CUE/MP3 Kombination zu mounten.
Ich habe mittlerweile einen Thread (hier) gefunden, in dem jemand eine Anleitung für Verweise auf OGG und MP3 in CUE-Dateien mit dosbox V0.62 gibt. Mein dosbox V0.72 kann das aber definitiv nicht. Ich werde mir mal die Sourcen von V0.62 ansehen.

Obi-Wahn schrieb:Es gibt zumindest ja von der Schicksalsklinge eine (Amiga)-Diskettenversion, die verbraucht bestimmt weniger Speicherplatz. ;) Aber du die noch findest, ... ich denk eher nicht. Ich hab sie :)
Ich auch ;). (DM120,- wenn ich mich recht erinnere.) Und das beste ist: Inzwischen wurde doch noch ein Verfahren gefunden, um Amiga-Disketten auf
PCs auszulesen. (Disk2fdi bzw. adfread)

KVM kannte ich bis jetzt nicht. Wird ausprobiert.
Zitieren
#6
Rabenaas schrieb:Ich werde mir mal die Sourcen von V0.62 ansehen.
Ok, auch in V0.72 ist die Unterstützung komprimierter Audiospuren vorgesehen.
./INSTALL schrieb: Things needed for compilation.
...
SDL_Sound
For compressed audio on diskimages. (optional)
This is for cue/bin cdrom images with compressed (mp3/ogg) audio tracks.
Get it from http://icculus.org/SDL_sound
Licenced under LGPL

In ./src/dos/cdrom_image.cpp wird das MP3-Tag von cuesheet dann verarbeitet.

Ich vermute, dass das als Option bei der Kompilierung gewählt werden kann. Mal sehen...
Wenn das klappt, dann kommt die Schicksalsklinge vielleicht auf 45MB insgesamt. :bigsmile:
Zitieren
#7
Es funktioniert.

Man muss dosbox mit dem Flag C_SDL_SOUND neu kompilieren. Das Flag wird bei mir (Suse 11 Linux) dadurch gesetzt, dass das Paket SDL_sound-devel vorhanden ist. (Die Option ist demnach standardmäßig deaktiviert.)

Dann wir ein Verzeichnis angelegt, in dem das Abbild der CD gespeichert werden soll (z.B. dsa1img für die Schicksalsklinge).
Es wird mit einem beliebigen Brennprogramm ein gewöhnliches ISO-Abbild (dsa1.iso) der Daten von der Original-CD erzeugt.
Nun müssen die Tonspuren von der Cd ausgelesen und umkodiert werden.
Code:
> cdparanoia -B "2-"
> oggenc *.wav

Fehlt noch die CUE-Datei. Ich lasse sie teilweise automatisch erstellen mit
Code:
> cdrdao read-cd --datafile dsa1.bin --driver generic-mmc:0x20000 --device /dev/cdrom --read-raw dsa1.toc
> toc2cue dsa1.toc dsa1.cue
(dsa1.bin kann direkt wieder gelöscht werden. Eigentlich genügt 'read-toc' statt 'read-cd', ich habe das aber nicht getestet.)

Die Datei dsa1.cue sieht jetzt so aus:
Code:
FILE "dsa1.bin" BINARY
  TRACK 01 MODE1/2352
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    PREGAP 00:02:00
    INDEX 01 25:03:74
  TRACK 03 AUDIO
    INDEX 01 27:12:49
usw.
Mit einem Texteditor wird sie folgendermaßen geändert:
Code:
FILE "dsa1.iso" BINARY
  TRACK 01 MODE1/2048
    INDEX 01 00:00:00
FILE "track02.cdda.ogg" MP3
  TRACK 02 AUDIO
    PREGAP 00:02:00
    INDEX 01 25:03:74
FILE "track03.cdda.ogg" MP3
  TRACK 03 AUDIO
    INDEX 01 27:12:49
usw.
Das CD-Image kann jetzt wie gewohnt per
Code:
> imgmount d /tmp/dsa/dsa1img/dsa1.cue -t iso
gemountet werden und benötigt mit normaler Kompressionsrate nur noch 66MB.

Schick läuft also mit OGG ;).
Riva funktioniert auch so, nur höre ich bislang noch keinen Ton.
Zitieren
#8
Rabenaas schrieb:Schick läuft also mit OGG ;).
Riva funktioniert auch so, nur höre ich bislang noch keinen Ton.

Danke vielmals für die ausführlichen Hinweise, mit diesem Feature war ich bislang noch nicht vertraut. Das scheint, wenn man von dem Flag beim Kompilieren einmal absieht, gar keiner besonders umständlichen Handgriffe zu bedürfen. Um den Dateihaushalt zu verringern wäre es vielleicht ein sinnvoller Schritt, die einzelnen Audiodateien in einen mka-Container zu verfrachten. Bleiben noch zwei Fragen offen: 1. Lassen sich diese Images auch außerhalb von Dosbox (bzw. SDL-Sound) mounten? 2. Ogg ist eigentlich ein Container, in dem man, auch wenn es sicherlich nicht weit verbreitet ist, verschiedene Codecs unterbringen kann. Könnte man darüber auch Images im Ogg-Flac-Format erstellen und nutzen?
Zitieren
#9
wee0ouFu schrieb:2. Ogg ist eigentlich ein Container, in dem man, auch wenn es sicherlich nicht weit verbreitet ist, verschiedene Codecs unterbringen kann. Könnte man darüber auch Images im Ogg-Flac-Format erstellen und nutzen?
Wenn DOSBox das per SDL_sound dekomprimiert müsste es auch mit FLAC Dateien funktionieren siehe http://icculus.org/SDL_sound/ . Unter Debian GNU/Linux (Etch/Lenny/Sid) ist SDL_sound übrigens eine Dependency von DOSBox, also entfällt hier das händische rekompilieren. Das muss ich dann doch mal ausprobieren...
Zitieren
#10
wee0ouFu schrieb:Um den Dateihaushalt zu verringern wäre es vielleicht ein sinnvoller Schritt, die einzelnen Audiodateien in einen mka-Container zu verfrachten.
Ich kann den Sourcen (siehe ./src/dos/cdrom_image.cpp) nicht entnehmen, ob dosbox mka versteht.
Andererseits klappt das mit der Adressierung innerhalb einer Datei ja auch irgendwie, wenn man ein komplettes CD-Abild im BIN Format hat. Vermutlich hängt auch das ganz von SDL_sound ab.

wee0ouFu schrieb:Lassen sich diese Images auch außerhalb von Dosbox (bzw. SDL-Sound) mounten?
Du hast anschließend eine ISO- und viele Ogg-Dateien. (MP3 ist auch möglich.) ISOs lassen sich unter Windows z.B. mit den Daemon-Tools und unter Linux mit Bordmitteln mounten. Die OGG/MP3 können ganz normal abgespielt werden. War das die Frage, oder habe ich Dich falsch verstanden?

wee0ouFu schrieb:Könnte man darüber auch Images im Ogg-Flac-Format erstellen und nutzen?
Die Komprimierung mit OGG/Flac ist verlustlos. Mit OGG/Vorbis ist sie verlustbehaftet. Die Kompressionsrate von Vorbis ist deshalb vermutlich um ein Vielfaches besser.

Komisch. Wenn ich bei der Installation von Riva den Ton von CD teste, dann wird die Musik ganz normal abgespielt. Ich nehme das als gutes Zeichen. Während des Spiels kommt aber nur in den Zwischensequenzen etwas aus den Lautsprechern.
Zitieren
#11
Riva besteht darauf, für die Audiotracks die richtige Anzahl an Minuten von mscdex gemeldet zu bekommen. (Sekunden und Frames sind egal.)

dosbox scheint diese aber aus der Anzahl von Bytes zu berechnen und nicht aus den Angaben für die Länge in der cue-Datei (was ich für einen Bug halte).

Scheinbar trifft hier unsauberes Verhalten von dosbox auf spezielle Pingeligkeit von Riva, so dass es hier im Gegensatz zu Schick derzeit keine einfache Lösung für die Komprimierung der Audiotracks gibt. (Außer natürlich, ganz auf die Hintergrundmusik zu verzichten).

Vielleicht frage ich dazu mal in den dosbox-Foren nach.
Zitieren
#12
Ich finde es nett von dir, dass du an dem Thema dran bleibst und hier so gut Bericht erstattest. Danke! :)
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#13
Rabenaas schrieb:Vielleicht frage ich dazu mal in den dosbox-Foren nach.
Das hat Rabenaas dann auch in diesem Thread getan.
Zitieren
#14
Es gibt ein paar Neuigkeiten, wenn auch keine Erfolgsmeldung.

1) Mein Verdacht, dass Dosbox die Dateilänge verwendet um die Abspieldauer zu berechnen war falsch. Die verwendete Funktion liefert korrekte Ergebnisse.
2) Die von dosbox gemeldeten Längen sind für komprimierte Audiotracks trotzdem inkorrekt. Der Bug muss woanders liegen. Er ist aber zumindest nicht ganz offensichtlich.

Die dosbox-Entwickler haben mir mitgeteilt, dass ein entsprechender Patch in das offizielle Programm eingearbeitet werden könnte. Leider bin ich immer noch dabei, den Fehler überhaupt erst einmal einzugrenzen.
Zitieren
#15
So, geschafft. Riva läuft jetzt auch mit OGG ;).

Dafür mussten drei kleine Fehler in dosbox korrigiert werden. Ich werde in Kürze einen Patch dazu zusammenstellen. Vorher muss ich aber noch etwas testen, da das Ergebnis nicht perfekt ist. Es liegt jetzt aber nur noch um ein paar Frames und nicht mehr um halbe Stunden daneben. Und die interessieren Riva nicht.

Ärgerlich ist nur, dass die Länge des Datentracks nicht verändert werden darf. Er muss komplett mit der Demo und dem anderen nutzlosen Kram in das ISO kopiert werden.
Das Ergebnis sind dann 332MB für Riva.

Für alle, die es interessiert, sind hier schon mal die drei Fehler in CDROM_Interface_Image::AddTrack():
Code:
    //Track &prev = *(tracks.end() - 1);
    Track prev = tracks.back();
und
Code:
    //prev.length = prev.file->getLength() / prev.sectorSize;
    if(prev.number == 1) {
        prev.length = prev.file->getLength() / prev.sectorSize;
    } else {
        prev.length = tmp;
    }
und
Code:
    //curr.start += prev.start + prev.length + currPregap;
    curr.start = prev.start + prev.length + currPregap;
:sleep:

EDIT: habe das wichtigste vergessen, in CDROM_Interface_Image::AudioFile::getLength():
Code:
        //if (time == 1) return lround((double)shift * 176.4f);
        if (time == 1) return lround((double)shift * 75/1000);

2. EDIT: Der fertige Patch liegt jetzt bei Sourceforge.
Zitieren
#16
Rabenaas schrieb:Ärgerlich ist nur, dass die Länge des Datentracks nicht verändert werden darf. Er muss komplett mit der Demo und dem anderen nutzlosen Kram in das ISO kopiert werden.
Kann man das nicht umgehen indem man richtige Länge des "geschrumpften" .iso-Tracks in die .cue-Datei einträgt?
Zitieren
#17
Borbaradwurm schrieb:Kann man das nicht umgehen indem man richtige Länge des "geschrumpften" .iso-Tracks in die .cue-Datei einträgt?
Das geht jedenfalls nicht direkt. Dosbox nimmt standardmäßig die Daten aus dem Cuesheet. Wenn es aber merkt, dass zwischen den Tracks die Datei gewechselt wurde, bestimmt es die Länge der vorletzten Datei selbst und überschreibt damit den vorgegebenen Wert. (Das ist streng genommen nur für den letzten Track vor dem Lead-Out nötig, da sonst dessen Länge nicht bestimmt werden könnte.)

Man könnte also dosbox verändern, so dass es Daten aus Cuesheets bevorzugt behandelt (einfach), oder man stellt die Abfrage in Riva.exe selbst aus (kompliziert).
Zitieren
#18
Rabenaas schrieb:oder man stellt die Abfrage in Riva.exe selbst aus (kompliziert).
Sicher das es eine Abfrage für den Datentrack in Riva.exe gibt? Ich habe hier zwei verschiedene CD-Versionen von Schatten über Riva, die nicht denselben Datentrack verfügen. Eine Version (aus Gold Games II) hat außer den Schatten über Riva Daten nur noch das Online Lösungsbuch, und keine Demos/usw. und beide CD-Roms funktionieren mit derselben Installation.
Zitieren
#19
Borbaradwurm schrieb:Sicher das es eine Abfrage für den Datentrack in Riva.exe gibt?
Als das Prgramm nicht mit OGGs starten wollte, habe ich die Spielzeiten gedumpt und die Abweichung bei den komprimierten Tracks entdeckt. Als das soweit repariert war, lief es immer noch nicht und ich habe das unvollständige gegen ein vollständiges ISO getauscht. Danach lief es dann. Deswegen gehe ich von einer Kontrolle der Träcklänge auch beim Datentrack aus.

Ich habe Riva als einzelnes Programm von Topware. (Schätze, das ist die ursprüngliche Version.) Die Abfrage könnte in späteren Versionen abgeschafft worden sein, um besser für Kompilationen wie GGII oder Heft-CDs geeignet zu sein. Welche Version hast Du auf die Festplatte installiert?
Zitieren
#20
Habe Dosbox gepatcht. Damit wird die Musik in Riva und auch in Schweif gespielt -- Schick gibt ungebrochen nur Noise von sich. Danke für diese Großtat.

rabenaas schrieb:[...] ich habe das unvollständige gegen ein vollständiges ISO getauscht.
Wie meinst Du das? Hattest Du zwei verschiedene Images im Einsatz?
Zitieren




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste