Sie sind nicht angemeldet.

annokekz

Frisch Angeheuert

Beiträge: 4

Registrierungsdatum: 15. Februar 2016

  • Nachricht senden

21

Mittwoch, 22. März 2017, 23:06

Ja dieses Topic ist alt (nicht uralt. Anno1602 ist deutlich älter :D ). Aus aktuellem Anlass hat mich der Ehrgeiz gepackt zumindest ein Stück weiterzukommen und ich habe ein wenig recherchiert. Vielleicht lassen sich die alten Dateien ja doch noch knacken.
Auch wenn ich keine Lösung gefunden habe, euin paar grundlegende Fragen konnte ich klären (meine Notizen auf Englisch, weil ich nicht wusste ob ich es vielleicht in ein internationales Forum posten werde):

Greensleaves.wav
Header
File size: A2 CB E4 00h = 14 994 338 (file size means every byte after the first 8, RIFF<fsize>)
Data size (counted) = 3 748 567
Total byte count = 3 748 619
Header total: 52 Byte, means Data should be 14 994 294
3 748 567 * 4 = 14 994 268, Difference 26 bytes

fmt
Length:
Type: 01 00h = 1d = PCM
Channels: 02 00h = 2
Sample rate: 22 56 00 00h = 22050
AvgByte/s: 88 58 01 00h = 88200 = 4*22050
Block align: 04 00h = 4
Bits/sample: 04 00h = 4

fact
04 00 00 00 4D 2E 4B 2E
11853 11851 ?

Some compressed format IDs:
http://www-mmsp.ece.mcgill.ca/Documents/…/WAVE/WAVE.html

A.5 Compaq Computer's VSELP
WAVE form Registration Number (hex): 0x0004
Codec ID in the IANA Namespace: audio/vnd.wave;codec=4
WAVE form wFormatTag ID: WAVE_FORMAT_VSELP
Additional information: VSELP codec for Windows CE 2.0 devices
VSELP: https://en.wikipedia.org/wiki/Vector_sum…near_prediction

==>
  1. Die kodierte Dateigröße entspricht der Vierfachen der tatsächlichen Data-Payload (+26 Bytes Differenz)
  2. im fact Abschnitt ist das Format 4 angegeben, anscheinend eine Komprimierung mit einem VSELP Algorithmus aus der Sprachkodierung
  3. Der Algorithmus benötigt ganz allgemein anscheinend Codebücher, ich vermute die 4 Bytes nach dem Format 4D 2E 4B 2E stellen den Schlüssel zur Kompromierung dar

Vielleicht kennt sich hier jemand mit Sprachkodierung in der Telekommunikation aus (oder kennt einen Kollegen), der mit einer VSELP Kodierung weiterhelfen könnte? Google ist nicht sehr ergiebig was Details angeht.

Beiträge: 1

Registrierungsdatum: 12. Juni 2020

  • Nachricht senden

22

Freitag, 12. Juni 2020, 15:49

Nach all den Jahren

Auch wenn dieser Thread schon einige Jahre alt ist wollte ich noch mal meine Erkenntnisse preisgeben.

Mit dem Programm 'ffmpeg' (kostenlos | Windows download) lassen sich die wav Dateien ganz einfach konvertieren.
Der Befehl

Quellcode

1
ffmpeg -n -guess_layout_max 0 -c:a adpcm_ima_ssi -i [datei.wav] -ac 2 -c:a mp3 -b:a 192k [out.mp3]
hilft dabei Dateien in das mp3 Format zu konvertieren. (Einfach [datei.wav] und [out.mp3] durch die gewünschten Dateinamen ersetzen.) Ein vollständiger Befehl könnte dann so aussehen:

Quellcode

1
ffmpeg -n -guess_layout_max 0 -c:a adpcm_ima_ssi -i "Ocean Trip.wav" -ac 2 -c:a mp3 -b:a 192k "Ocean Trip.mp3"



Wenn man die Windows Powershell nutzen möchte um direkt alle Dateien im Ordner umzuwandeln kann man das mit folgenden code machen. Um den Code auszuführen einfach in das MUSIC8 Verzeichnis von Anno wechseln. Shift + Rechtsklick auf eine leere Stelle und dann "PowerShell öffnen" auswählen.

Quellcode

1
Get-ChildItem "." -Filter *.wav | Foreach-Object {	$s = -join($_.FullName, '.mp3')	ffmpeg -n -guess_layout_max 0 -c:a adpcm_ima_ssi -i $_.FullName -ac 2 -c:a mp3 -b:a 192k $s}



Wer das flac Format bevorzugt kann diesen Befehl benutzen:

Quellcode

1
Get-ChildItem "." -Filter *.wav | Foreach-Object {	$s = -join($_.FullName, '.flac')	ffmpeg -n -guess_layout_max 0 -c:a adpcm_ima_ssi -i $_.FullName -ac 2 -c:a flac $s}



Weitere Infos
Man muss ffmpeg das Eingabe Datei-Format aufzwingen sonst schlägt die Konvertierung fehl und hört sich genau so an als würde man die wav Dateien direkt mit dem VLC o.ä. abspielen.
Auf das aufgezwungene Format das in meinem Befehl verwendet wird (adpcm_ima_ssi) bin ich gekommen nachdem ich in "Anno 2018" rumgestöbert habe und die folgende Zeile Code gesehen habe:

Quellcode

1
private decodeADPCM_IMA(c: ADPCMChannelStatus, nibble: number) {
(
Vollständiger Code)
Das adpcm_ima war genug Anlass das ich alle ffmpeg adpcm_ima decodierer durchprobiert habe bis etwas brauchbares rausgepurzelt ist.

'adpcm_ima_apc' und 'adpcm_ima_ssi' liefern dabei identische Ergebnisse.

millimarg

Freibeuter

Beiträge: 308

Registrierungsdatum: 10. Juli 2013

  • Nachricht senden

23

Dienstag, 16. Juni 2020, 22:48

Cool, hat das jemand nach so langem rausgefunden! :up:

Wolfgang59

Deckschrubber

Beiträge: 25

Registrierungsdatum: 11. Dezember 2007

  • Nachricht senden

24

Donnerstag, 18. Juni 2020, 22:05

Moin SuperDuperAnno,

danke für die Info. Habe gleich alle Musikstücke aus 1602 in MP3 gewandelt.
  Gruß Wolfgang