[Tiptoi] Unknown commands

Tobias Bäumer to_b at gmx.de
Mi Jan 14 23:16:55 CET 2015


Guten Abend zusammen,

der folgende Text wird etwas länger, daher lieber auf Deutsch:

Ich bekomme hoffentlich morgen von einem Kollegen das Puzzle "Ponyhof" und das Spiel "Reise durch die Jahreszeiten" geliehen und habe mir schon mal deren YAML-Dateien angeschaut.

In "Reise durch die Jahreszeiten" kommt "00 FB" vor.
Bisher sieht es für mich so aus, als könnte man damit mehrere Sounds wiedergeben.
Die Scripts für OID 2230 bis 2233 sind alle so aufgebaut:
Bedingung $0==0
Nur eine Aktion und die sieht raw so aus: 
00 00 (Register 0 - dürfte ignoriert werden)
00 FB (besagtes Kommando)
01 (es folgt eine Zahl)
02 00 (Zahlenwert 2 - bin mir nicht sicher, ob der nötig ist)
03 00 (Anzahl der Sounds: 3)
23 00 (erster Sound: Nummer 35 "Dies ist die Spielertafel")
24 00 (zweiter Sound: Nummer 36 "für den roten Spieler")
25 00 (dritter Sound: Nummer 37 "Im Spiel puzzelt ihr die Puzzleteile der vier Jahreszeiten an dieses zentrale Teil")

Bei den nächsten ist jeweils nur der zweite Sound anders:
26 00 (Nummer 38: "für den roten Spieler")
27 00  (Nummer 39: "für den gelben Spieler")
28 00 (Nummer 40: "für den blauen Spieler")

Bei OID 2202 findet "00 FB" auch Verwendung und hier sieht es ähnlich aus:
00 00 (Register 0 - dürfte ignoriert werden)
00 FB (Kommando)
01 (es folgt eine Zahl)
01 00 (Zahlenwert 1)
02 00 (Anzahl der Sounds: 2)
00 00 (erster Sound: Nummer 0)
01 00 (zweiter Sound: Nummer 1)

Da "00 FB" sonst nirgendwo vorkommt, ist es schwierig, den Zahlenwert abzuleiten.
Ich würde vorschlagen: Anzahl Soundfiles - 1



Bei "E0 FF" (aus dem Puzzle Ponyhof) bin ich noch in der Detailanalyse, tippe aber auf Zufallswiedergabe aus einer Liste von Soundfiles.
Der Aufbau ist ähnlich wie bei "00 FB":

Am Beispiel zu OID 6161:
00 00 (Register 0 - dürfte ignoriert werden)
E0 FF (Kommando)
01 (es folgt eine Zahl)
01 00 (Zahlenwert 1)
02 00 (Anzahl der Sounds: 2)
43 00 (erster Sound: Nummer 67 "Jens und Florian")
44 00 (zweiter Sound: Nummer 68 "Nanu...")

Zweites Beispiel OID 6165:
00 00 (Register 0 - dürfte ignoriert werden)
E0 FF (Kommando)
01 (es folgt eine Zahl)
02 00 (Zahlenwert 2)
02 00 (Anzahl der Sounds: 2)
47 00 (erster Sound: Nummer 71 "Frau Ziegler")
48 00 (zweiter Sound: Nummer 72 "Sandras Mama")

Der Zahlenwert ist vielleicht als Unterstützung für den Zufallsgenerator?

An "E1 FF" (Ponyhof) habe ich bisher noch kein Bein bekommen:

Am Beispiel zu OID 6217:
00 00 (Register 0 - dürfte ignoriert werden)
E1 FF (Kommando)
01 (es folgt eine Zahl)
FF FF (Zahlenwert 65535 - m.E. immer)
01 00 (Anzahl der Sounds: 1)
89 00 (erster Sound: Nummer 137 "Das ist ein Sack Hafer...")

Sieht also aus, als würde da einfach eine Sounddatei abgespielt.
Der Unterschied zum "normalen" Play(E8 FF) ist wohl nur, dass der Parameter nicht 0, sondern 65535 ist...

Momentan hänge ich bei OID 6106 und 6140 (ziemlich ähnlicher Code, unterscheidet sich aber raw):
Da werden abhängig vom Register 6 unterschiedliche Klänge mit "E1 FF" aufgerufen.
"00 FE" taucht auch noch auf, aber der Wert von Register 6 wird m.E. nirgends erhöht...
Da versuche ich mich morgen mal an einer Fein-Analyse.
Vielleicht verstehe ich das, wenn ich die Spiele dazu habe.

Ich habe das alles bisher nicht verifizieren können, weil ich den ganzen Abend ein schlafendes Kind auf dem Arm hatte und nur einhändig arbeiten konnte.
Jetzt habe ich zwar wieder beide Hände frei, aber für heute keine Lust mehr, weiter zu machen.

Ich wünsche allen noch einen schönen Abend, eine geruhsame Nacht und weiterhin viel Spaß beim Grübeln

LG
Tobias

> Am 14.01.2015 um 22:19 schrieb Ulrich Sibiller <ulrich.sibiller at gmail.com>:
> 
> Hello,
> 
> now that we are having a run at identifying unknown commands I have
> looked where I can find some of them. And I found this in "Puzzle
> Kinderarzt":
> 
>  12919:
>  - $0==0? ?($0,2) (E0 FF)
>  - $0==1?
>  12818:
>  - $0==0? ?($0,3) (E0 FF)
>  - $0==1?
>  12944:
>  - $0==0? ?($0,1) (E0 FF)
>  - $0==1?
>  12867:
>  - $0==0? ?($0,0) (E0 FF)
>  - $0==1?
>  12845:
>  - $0==0? $6==0? ?($6,1) (00 FF) $6+=1 J(12845)
>  - $0==0? $6==1? ?($6,1) (00 FF) $6+=1 ?($0,2) (E0 FF)
>  - $0==0? $6==2? ?($6,1) (00 FF) $6+=1 P(99)
>  - $0==1?
>  12922:
>  - $0==0? $10==0? ?($10,1) (00 FF) $10+=1 J(12922)
>  - $0==0? $10==1? ?($10,1) (00 FF) $10+=1 ?($0,2) (E0 FF)
>  - $0==0? $10==2? ?($10,1) (00 FF) $10+=1 ?($0,65535) (E1 FF)
> 
> So we have 4 different unknown commands in one place!
> 
> As the whole yaml file is very short I suppose the whole logic is
> buried in a binary section of the file and these commands simply call
> functions in that binary. What do you think?
> 
> Uli
> 
> -- 
> tiptoi mailing list
> tiptoi at lists.nomeata.de
> https://lists.nomeata.de/mailman/listinfo/tiptoi




Mehr Informationen über die Mailingliste tiptoi