<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hallo Joachim,</p>
<p>danke für die Einschätzung. Das hat mir Lust gemacht, es zu
versuchen. Und tatsächlich, beim ersten Versuch hat es geklappt!</p>
<p>Mein Workflow (ohne Recherchieren und Einlesen):</p>
<p>1. GME-Datei in HxD öffnen (kostenloser Hex-Editor)<br>
2. Adresse <code>0x0094 </code>(32bit offset to <a
class="internal present"
href="https://github.com/entropia/tip-toi-reveng/wiki/GME-Special-symbols">special
symbols</a>) ausfindig machen.<br>
2a. Nach Generierung durch tttool steht dort einfach der
32bit-Wert '0' drin.<br>
3. Einen Offset eingetragen, der genau dem Dateiende+1 entspricht
(würde also aus der Datei "herauszeigen")<br>
3a. Ich habe hierzu den Eintrag in <code>0x0071</code> (32bit
offset to the <a class="internal present"
href="https://github.com/entropia/tip-toi-reveng/wiki/GME-Playlistlist">playlistlist</a>)
eingesehen - die playlistlist ist praktischerweise ziemlich am
Dateiende. Da habe ich die übrigen Bytes abgezählt und
kopfrechnend zum Offset in <code>0x0071</code> hinzugerechnet.
Geht mit Sicherheit auch eleganter durch Subtraktion der
beteiligten Adressen statt Abzählen. :D<br>
4. 40 Bytes (Wert: '0') am Dateiende hinzugefügt.<br>
4a. Die nötige Länge habe ich der Seite "GME Special symbols"
entnommen
(<a class="moz-txt-link-freetext" href="https://github.com/entropia/tip-toi-reveng/wiki/GME-Special-symbols">https://github.com/entropia/tip-toi-reveng/wiki/GME-Special-symbols</a>).<br>
5. In der GME-Datei von "Mein Wörter-Bilderbuch Tiere" die
16bit-kodierten OIDs für Wiederholen (5402) und Stop (5401)
ausgelesen.<br>
5a. Ich habe hierzu in dieser Datei den Offset in Adresse <code>0x0094</code>
herausgesucht und bin dann an den Ort gesprungen. Die ersten 32bit
enthalten die beiden o.g. 16bit-Werte.<br>
6. Eintragung dieser 2x16bit in meiner GME-Datei in Adresse <code>0x0094+Offset</code>.
(das sind also die ersten 4 Byte der hinzugefügten 40 Bytes).<br>
7. Speichern.<br>
8. Geänderte GME-Datei auf den Tiptoi geladen, gestartet, mein
Projekt aktiviert. Eine beliebige OID ausgewählt. Sound angehört.
Wiederholungszeichen aus "Mein Wörter-Bilderbuch Tiere" angetippt.
Vorigen Sound erneut gehört!</p>
<p>Noch zwei Anmerkungen:</p>
<p>A. Für o.g. Workflow wäre es vielleicht hilfreich, wenn tttool an
Adresse <code>0x0094 </code>nicht einfach den Wert 0 schreibt,
sondern tatsächlich 40 Bytes am Dateiende ergänzt und dort dann
darauf verweist. Wenn das einmal implementiert ist, ist der
Schritt, in YAML eine Syntaxerweiterung vorzunehmen, um OID-Codes
für Restart und Stop zu ergänzen, vielleicht auch nicht mehr so
groß.</p>
<p>Man kann sicher aber auch ein Tool basteln, das einfach blind 40
Bytes an die Datei anhängt und dann in <code>0x0094</code> den
entsprechenden Offset schreibt.<br>
</p>
<p>B. Keine Ahnung, ob das eigentlich selbstverständlich für die
Offset-Adressierung ist, aber ich hatte beim Lesen der Seite "GME
Playlistlist"
(<a class="moz-txt-link-freetext" href="https://github.com/entropia/tip-toi-reveng/wiki/GME-Playlistlist">https://github.com/entropia/tip-toi-reveng/wiki/GME-Playlistlist</a>)
zunächst Zweifel. Dort steht: "A 16bit value followed by that many
32bit offsets to playlists."</p>
<p>Mir war zuerst nicht klar, von wo aus diese Offsets gerechnet
werden sollen. Vom Beginn der Playlistlist jedenfalls nicht, dafür
waren die Werte viel zu groß. Nach etwas Nachdenken bin ich dann
dahinter gekommen. Der Offset für die Playlistlist ist in Adresse
<code>0x0071 </code>gespeichert. Die gelisteten Offsets innerhalb
dieser Playlistlist werden auch genau von Adresse <code>0x0071</code>
aus adressiert! Vielleicht könnte man hinter den o.g. Satz aus der
Dokumentation ergänzen: "These offsets have to be applied to the
address where the playlistlist offset is stored (0x0071)."</p>
<p>Ob das nötig oder sinnvoll ist, kann ich nicht bewerten. Und ich
weiß auch nicht ob es sinnvoll ist, die Adresse konkret
hineinzuschreiben. Ich habe es mal getan, damit deutlicher wird,
was ich überhaupt meine. :)</p>
<p>Viele Grüße<br>
Thomas<br>
</p>
<div class="moz-cite-prefix">Am 16.10.2020 um 10:46 schrieb Joachim
Breitner via tiptoi:<br>
</div>
<blockquote type="cite"
cite="mid:2f075178a4d3210e14f0a2b6d476e473e373dd56.camel@joachim-breitner.de">
<pre class="moz-quote-pre" wrap="">Hallo,
Am Donnerstag, den 15.10.2020, 17:28 +0000 schrieb Thomas Schäfer via
tiptoi:
</pre>
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">Habe ich das aber richtig verstanden? Wenn ich die passende Adresse im HEX-Editor ausfindig mache und die OID korrekt eintrage, dann sollte/könnte das theoretisch funktionieren, ja?
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
ich denke schon. Erfolgsberichte sind willkommen, vielleicht lernst du
ja noch was neues (oder kannst wenigstens bestätigen was auf
<a class="moz-txt-link-freetext" href="https://github.com/entropia/tip-toi-reveng/wiki/GME-Special-symbols">https://github.com/entropia/tip-toi-reveng/wiki/GME-Special-symbols</a>
steht)
Cheers,
Joachim
</pre>
</blockquote>
</body>
</html>