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

Florian tttool at florian.rgrplay.de
So Okt 13 19:39:30 CEST 2024


Ich bastel mal schnell was zusammen, ist in einer halben Stunde auf Git

Mit freundlichen Grüßen,

Florian

On 13.10.24 19:36, Ulrich Sibiller wrote:
> Übrigens, noch etwas: Eines unserer Ziele war ja, beliebige MP3s
> abspielen zu können. Dieses Ziel müsste ja jetzt quasi als erreicht
> gelten. Oder kann man gelesene Files nicht abspielen?
>
> Uli
>
> On Sun, Oct 13, 2024 at 7:32 PM Ulrich Sibiller
> <ulrich.sibiller at gmail.com> wrote:
>> Hi,
>>
>> danke für die Infos. Die Firmware-Spiele werden IIRC im Band 1 "Wieso?
>> weshalb? Warum? Bauernhof" benutzt, das war das erste Buch, das ich
>> damals untersucht habe. Vermutlich wurde dieses Konzept später wegen
>> mangelnder Flexibilität aufgegeben.
>>
>> Uli
>>
>> On Sun, Oct 13, 2024 at 6:47 PM Florian via tiptoi
>> <tiptoi at lists.nomeata.de> wrote:
>>> 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
>>> --
>>> tiptoi mailing list
>>> tiptoi at lists.nomeata.de
>>> https://lists.nomeata.de/mailman/listinfo/tiptoi


Mehr Informationen über die Mailingliste tiptoi