[Tiptoi] TT-Homebrew - Eigene Binaries für GME-Dateien programieren

Florian tttool at florian.rgrplay.de
So Okt 13 18:47:01 CEST 2024


Hallo Uli,

mit dem Argument -b kann man wählen, ob man ein Spiel oder die Main 
Binary überschreiben möchte. "-b 4" überschreibt das dritte Spiel 
(erstes Spiel hat den Index 0). "-b m" überschreibt die Main Binary.

Hat eine GME-Datei eine Main Binary, wird diese anstatt des in der 
Firmware eingebauten Script-Parsers aufgerufen, wodurch Scripte nicht 
mehr funktionieren. Aber so könnte man auch weitere Script Funktionen 
hinzufügen.

Ich bin noch nie über ein Spiel gestolpert, dass mit der Spielelogik 
implementiert war, war bis jetzt immer eine Binary.

Habe eine Tabelle mit allen Funktionen, die eine GME Binary aufrufen 
kann, da ist keine mit nem Timer drin. Das Spiel Millionencoup, welches 
Echtzeit nutzt, nutzt auch einfach die Anzahl der Aufrufe. Diese liegt 
bei 10 mal pro Sekunde, gehe davon aus, dass so gedacht ist.


Mit freundlichen Grüßen,

Florian


On 13.10.24 14:47, Ulrich Sibiller wrote:
> Hallo Florian,
>
> Wow! Das sieht vielversprechend aus. Danke! Ich habe gehofft, dass
> sich irgendwann mal jemand damit auseinandersetzt, aber inzwischen
> nicht mehr dran geglaubt...
>
> Aber ganz durchschaue ich es noch nicht. Wir haben jetzt das API, um
> eigene Games zu programmieren. Dein dump-Ram-Beispiel ersetzt die
> Main-Funktion des Wimmelbuchs, richtig? Wenn ich aber nur ein Spiel
> ersetzen möchte, wie gehe ich dann vor?
>
> Und sehe ich das richtig, dass es keine direkte Timer-Funktion gibt,
> sondern nur busy-waits? (Das ist etwas, was seit Jahren unklar ist
> bzw. war).
>
> Was uns generell fehlt, ist eine Beschreibung der in der Firmware
> enthaltenen Games. Hast du diese schon verstanden? Falls ja, könnte
> man tttool zumindest für diese so erweitern, dass die Spiele beim
> Disassemblieren+Reassemblieren erhalten bleiben. Oder lohnt sich das
> garnicht, weil die meisten inzwischen eh mit eigenen Binaries kommen?
>
> Uli
>
> On Sun, Oct 13, 2024 at 12:58 PM Florian via tiptoi
> <tiptoi at lists.nomeata.de> wrote:
>> Hallo zusammen,
>>
>> ich habe die TipToi Firmware soweit reverse-engineered und verstanden, wie Binaries in GME-Dateien funktionieren. Das Ergibniss ist das folgende Repo, mit dem man einfach C-Code schreiben und diesen mit nur einem einzigen Befehl, in GME-Datein packen kann. Es gibt bereits Beispiele für folgende Dinge:
>>
>> - Dump des gesamten Ram
>>
>> - Töne abspielen
>>
>> - Erkennen, welche Oid getippt wurde
>>
>> - Dateien auf dem Stift lesen und schreiben
>>
>> - Zeitmessung / nicht-blockierende Verzögerungen
>>
>> In nächster Zeit folgt:
>>
>> - Mikrofonunterstützung für die Aufnahme von Tönen (Create)
>>
>> - Uart
>>
>> - W-Lan (habe keinen Stift mit eingebautem W-Lan, aber die Firmware ist schon größtenteils reversed)
>>
>> - GME-Dateien erstellen, momentan kann man nur Binaries überschreiben
>>
>>
>> Ich werde das Wiki in den nächsten Tagen vervollständigen.
>>
>> Rückfragen gerne per Mail, Discord oder GitHub, kann auch in einen Anruf kommen.
>>
>>
>> Hier der Link zum Repo: https://github.com/GauiPower/tt-homebrew
>>
>> Discord zum Repo: https://discord.gg/upgH9EwPCW
>>
>>
>> Vielen Dank an alle! Ohne eure Vorarbeit wäre das nicht möglich gewesen.
>>
>>
>> Mit freundlichen Grüßen,
>>
>> Florian
>>
>> --
>> tiptoi mailing list
>> tiptoi at lists.nomeata.de
>> https://lists.nomeata.de/mailman/listinfo/tiptoi


Mehr Informationen über die Mailingliste tiptoi