entropia / tip-toi-reveng

Trying to understand the file format of Tip Toi
http://tttool.entropia.de/
MIT License
644 stars 121 forks source link

Roundtrip for Feuerwehr - game broken #174

Closed frisi closed 6 years ago

frisi commented 6 years ago

when round-tripping http://static.tiptoi.com/db/applications/WWW%20Feuerwehr.gme i noticed that a game is not working (i know there are warnings in the docs that games might be broken) but i though reporting a bug might result in certain games being fixed in the future.

now the game is explained and the first sound is played. if you tip the correct object it should say:

"now you'll hear 2 sounds in a row" and play the first sound and a second one

but what happens is that it says "now you'll hear 2 sounds in a row" "now you'll hear 3 sounds in a row" ... "now you'll hear 6 sounds in a row" and then it plays 2 sounds. if you choose the correct objects the game is stopped and a completely different sound is played

uid 4547 im mode 3: "der schlauchturm ist für uns ein super übungsplatz..."

  4547:
  - $0==1? P(111)
  - $0==2? P(110)
  - $0==3? P(112) P(28) P(7)
nomeata commented 6 years ago

If you export to yaml, import to gmp and then again export to yaml, do you get a different yaml file?

frisi commented 6 years ago

yes they differ. looks like the differences are only names for the soundfiles.

here is what i did:

$ tttool export feuerwehr-orginal.gme
$ tttool media feuerwehr-orginal.gme
$ tttool assemble feuerwehr-orginal.yaml feuerwehr-assembled.gme
$ tttool export feuerwehr-assembled.gme
$ diff feuerwehr-assembled.yaml feuerwehr-orginal.yaml

and this are both yaml files (renamed to txt to make the github upload work)

feuerwehr-assembled.yaml.txt

feuerwehr-orginal.yaml.txt

nomeata commented 6 years ago

Thanks. Yes, that looks good so far…

The code that reads and writes games is pretty ugly, not unlikely that there is a bug. (But I then I would expect that repeated round-tripping would show differences.)

nomeata commented 6 years ago

Could you do me a favor and find which sound file corresponds to the correct string that you should hear, and which to the other sounds that you hear in the round-tripped GME?

nomeata commented 6 years ago

Man darf hier auch Deutsch reden, insbesondere wenn man die Audio-Samples beschreibt :-)

nomeata commented 6 years ago

Hab ein bisschen rumgeschaut und ein paar Audio-Samples angehört, aber keinen offensichtlichen Bug gefunden. Vielleicht will @NimVek, der die Games selbst entschlüsselt hat, sich das anschauen?

JoWi81 commented 6 years ago

Hallo zusammen, ich habe scheinbar das gleiche Problem wie frisi. Ich habe festgestellt, dass die Binärdateien für die Spiele nicht mit übernommen werden.

Mit folgenden Schritten habe ich dieses Problem festgestellt:

tttool binaries "Bilderlexikon Tiere orig.gme"
Binary Table entries: 16
Dumped binary Game1.bi from block 1 as binaries/1_Game1.bi
Dumped binary Game2.bi from block 1 as binaries/1_Game2.bi
Dumped binary Game3.bi from block 1 as binaries/1_Game3.bi
Dumped binary Game4.bi from block 1 as binaries/1_Game4.bi
Dumped binary Game5.bi from block 1 as binaries/1_Game5.bi
Dumped binary Game6.bi from block 1 as binaries/1_Game6.bi
Dumped binary Game7.bi from block 1 as binaries/1_Game7.bi
Dumped binary Game8.bi from block 1 as binaries/1_Game8.bi
Dumped binary Game1.bi from block 2 as binaries/2_Game1.bi
Dumped binary Game2.bi from block 2 as binaries/2_Game2.bi
Dumped binary Game3.bi from block 2 as binaries/2_Game3.bi
Dumped binary Game4.bi from block 2 as binaries/2_Game4.bi
Dumped binary Game5.bi from block 2 as binaries/2_Game5.bi
Dumped binary Game6.bi from block 2 as binaries/2_Game6.bi
Dumped binary Game7.bi from block 2 as binaries/2_Game7.bi
Dumped binary Game8.bi from block 2 as binaries/2_Game8.bi
tttool rewrite "Bilderlexikon Tiere orig.gme"  "Bilderlexikon Tiere rewr.gme"
tttool binaries "Bilderlexikon Tiere rewr.gme"
Binary Table entries: 0
nomeata commented 6 years ago

Ne, das ist ein anderes Problem: “Games” und “Binaries” sind zwei verschiedene paar Schuhe.

frisi commented 6 years ago

@nomeata ich helfe gern weiter. verstehe aber im moment noch nicht wie das möglich sein kann.

das spiel funktioniert so:

tiptoi spielt einen sound. user klickt auf passendes objekt tiptoi sagt: "jetzt hörst du 2 geräusche" und spielt zwei sounds user klickt auf erstes und zweites passendes objekt toptoi sagt "jetzt hörst du 3 geräusche" und spielt die ersten zwei und einen zusätzlichen.

welche sound files abgespielt werden ist also zufall.

in der round tripped version funktoniert das spiel bis zum tippen des ersten passenden sounds. dann kommt die ansage für den zweiten, gefolgt von "jetzt hörst du 3" und "jetzt hörst du 4" bis zu sechs. dann zwei geräusche und dann bist du nach dem tippen von zwei objekten aus dem spiel und ganz wo anders (andere seite im buch - objektid und sound oben beschrieben)

nomeata commented 6 years ago

Kannst du zu diesen Sounds die Nummer raussuchen und dazuschreiben? (Du musst nicht alle Sounds ausprobieren, vermutlich reicht es die Sounds auszuprobieren, die im Abschnitt games erwähnt werden.) Das würde es einfacher machen, das Spiel nachzuvollziehen.

frisi commented 6 years ago

klar. ich hoffe folgendes hilft weiter:

so sieht sie seite aus: ratespiel

würfel-taste:

  4558:
  - $0==1? $0:=4 G(1)

wir haben hier zwei spiele für dich, beim roten stern kannst du ein quiz spielen, beim grünen wartet ein geräuschespiel auf dich.

roter stern: 4559 grüner stern: 4560

sound dateien für das spiel:

683: spielerklärung "du hörst jetzt nacheinander verschiedene geräusche, tippe die dazugehörigen bilder in der reihenfolge an..." 684: hier kommt das erste geräusch 685: jetzt hörst du zwei 686: geräusche hintereinander 687: jetzt hörst du drei 688: jetzt hörst du vier 689: jetzt hörst du fünf 690: jetzt hörst du sechs 692: katze (uid 4589) 693: hör' nochmal genau hin 694: sirene (4569, 4571) 695: hund (4578) 696: feuer (4567) 697: baby (4582) 698: sirene (4569, 4571) 699: motor (4571, 4569)

frisi commented 6 years ago

hab grad noch die uids von den einzelnen objekten dazugegeben. damit sollte eigentlich das spiel mit ttool play von der orginal-datei nachgespielt werden können. funktioniert aber leider nicht - vermutlich weil tttool die befehle noch nicht korrekt auslesen/interpretieren kann

$ tttool play "WWW Feuerwehr.gme" 
Initial state (not showing zero registers): $0=1
Playing audio sample 876
Playing audio sample 877
# tipp auf würfel und den grünen stern spielt schon keine sounds ab
Next OID touched? 4558
Executing:  $0==1? $0:=4 G(1)
State now: $0=4
Next OID touched? 4560
Executing:  $0==4? G(3)
State now: $0=4
nomeata commented 6 years ago

Ok, die falsch erklingenden Sounds sind in der YAML-Datei alle in diesem Feld des entsprechenden Spiels:

  roundendplaylist: 685,686,612,687,686,612,688,686,612,689,686,612,690,686,612,612

Klar erkennbar gehören hier immer drei Audio-Dateien zusammen. Ich hab ne Idee…

nomeata commented 6 years ago

Ja, ich glaub ich habs. In der GME-Datei ist das tatsächlich eine List von Listen von Audio, und der Yaml-Export/Import hat die Information weggeschmissen. Wenn ich das versuche zu fixen, dann steht da

  roundendplaylist:
  - 685,686,612
  - 687,686,612
  - 688,686,612
  - 689,686,612
  - 690,686,612
  - '612'

Sieht gut aus, oder?

@frisi, kannst du das tttool selber bauen? Dann probier doch mal den branch retain-playlistlists und schau ob das deine Probleme löst. (Wenn du das nicht kannst und Windows benutzt, dann schick mir ne Mail und ich schick dir ein Binary).

frisi commented 6 years ago

kann ich selber bauen und werde das asap ausprobieren.

frisi commented 6 years ago

hab jetzt alle spiele im buch kurz ausprobiert - scheint gut zu funktionieren!

frisi commented 6 years ago

danke. hat auch tagelange tests durch die kleinen bestanden ;-)

JoDaEmPa commented 6 years ago

Hallo frisi ! Ich weiss nicht wie mann das tttool umschreibt und "retain-playlistlists" einfügt ! könnte ich die veränderte tttool.exe haben ? Bei Rekorde im tierreich - Memory kommt der selbe fehler beim neuschreiben !

frisi commented 6 years ago

@JoDaEmPa für eine exe datei musst du dich an @nomeata wenden. ich weiss nicht wie man die baut - sorry :-(

JoDaEmPa commented 6 years ago

Danke frisi ... hatte sich hier so gelesen als ob du das mit dem branch retain-playlistlists selber gemacht hättest.

kann ich selber bauen und werde das asap ausprobieren.

nomeata commented 6 years ago

Der code ist inzwischen auf master, gab nur noch kein offiizelles Release bisher. Extra-testing wäre super, danke @JoDaEmPa

JoDaEmPa commented 6 years ago

Würden wir gerne testen, aber was heisst "master" ? Ist klasse, dass Du immer noch bei diesem Projekt soviel Engagement zeigst ! Wir hatten mit den neu importierten Sounds bei Memory viel Spass mit der Familie ! Sound-Memory ging auch mit der kaputten .GME Datei, aber wenn man das echte Spiel anwählen will, steigt der Tip-Toi bei der langen Playlist aus !

nomeata commented 6 years ago

master ist der aktuelle Entwicklerstand. Den bekommst du wenn du z.B.

git clone https://github.com/entropia/tip-toi-reveng

eingibst.

JoDaEmPa commented 6 years ago

Wir sind Windows-User ... den Entwicklungsstand von 29 Aug 2017 | 1.7.0.4 habe ich gesehen, aber wie bekomme ich davon eine exe ?

KOTRET commented 6 years ago

@JoDaEmPa entweder selbst kompilieren oder @nomeata ganz lieb fragen ob er ein Release bereitstellt :)

nomeata commented 6 years ago

Euer Wunsch ist mein Befehl: https://github.com/entropia/tip-toi-reveng/releases/tag/1.8

JoDaEmPa commented 6 years ago

Suuupperrr ! Scheint alles zu klappen bei Memory !

JoDaEmPa commented 6 years ago

  Klasse Memory scheint jetzt alles zu funktionieren mit eigenen Sounds ! Interesse an der GME ?

Gesendet: Dienstag, 06. Februar 2018 um 15:20 Uhr Von: "Joachim Breitner" notifications@github.com An: entropia/tip-toi-reveng tip-toi-reveng@noreply.github.com Cc: JoDaEmPa vergissx@gmx.de, Mention mention@noreply.github.com Betreff: Re: [entropia/tip-toi-reveng] Roundtrip for Feuerwehr - game broken (#174)

Euer Wunsch ist mein Befehl: https://github.com/entropia/tip-toi-reveng/releases/tag/1.8

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

 

nomeata commented 6 years ago

Interesse an der GME ?

Nö, aber freut mich zu hören dass es klappt! :-)