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

Florian tttool at florian.rgrplay.de
Mo Okt 28 20:03:37 CET 2024


Hallo,

> Bei dir funktioniert get_tipped_oid?

Ja, hab es gerade noch mal getestet. Sowohl auf 3L und 2N. Habe es als 
Gamebinary hinzugefügt. Wenn ich es als Main Binary einsetze, erhalte 
ich das von dir beschriebene verhalten.

Desweiterem gibt es scheinbar einen Unterschied zwieschen Main-Binaries, 
die Main320... heißen und älteren, welche OidMain. heißen. Gibt es da 
vllt ein Value im Header, welches sich bei diesen unterscheidet? Bei 
OidMain-Binaries wird der GME-Welcome-Sound abgespielt, bei Main320... 
Binaries wird nicht der GME-Welcome-Sound abgespielt, nur das, was man 
in der Binary programmiert.

Ich vermute, dass die Main-Binary irgendwie die Oids setzt, die von der 
GME genutzt werden. Das würde erklären, wieso es als Main-Binary nicht 
geht und eine Game-Binary auch keine Oids von anderen Büchern lesen 
kann. Ist aber nur eine Vermutung, habe in den Main-Binarys keine 
direkten Referenzen auf die Oids gefunden, könnte aber in einer 
Firmwarefunktion versteckt sein.


Mit freundlichen Grüßen,

Florian

On 27.10.24 20:22, Joachim Breitner via tiptoi wrote:
> Hi,
>
> Am Sonntag, dem 27.10.2024 um 18:19 +0100 schrieb Joachim Breitner via
> tiptoi:
>> Am Sonntag, dem 27.10.2024 um 16:03 +0100 schrieb Florian via tiptoi:
>>> das wundert mich. Bist du dir sicher, dass du wirklich die Main-Binary
>>> erstetzt? Soweit ich gesehen habe, tut diese den welcome-sound
>>> abspielen. Somit sollte dieser nicht mehr abgespielt werden, wenn man
>>> diese ersetzt. Oder macht das dein playSound(36)?
>> Ja, playSound(36) ist der Anschaltsound.
>>
>>> Ich würde empfehlen, ein Spiel zu ersetzen, und die Main Binary zu
>>> lassen, wenn es einem darum geht, Spiele zu schreiben. Zumindest so
>>> lange, bis diese vollständig verstanden ist.
>> Ok, probiere ich mal
>
> hmm, vielleicht war ich zu optimistisch am Donnerstag, zumindest kann
> ich es jetzt nicht mehr alles reproduzieren.
>
>
> Wenn ich das Feld
>
>   * `0x009C`: 32bit. purpose unknown, can be 0.
>
> auf 1 setze, aber keine Binaries habe, dann gehen die GME-Dateien, die
> sonst vorher taten, nicht mehr. Genauer: Anschaltsound wird abgespielt,
> der Rest nicht, Stift wohl abgestürzt, auch Lautstärke tut nicht mehr.
>
>
> Wenn ich es auf 0 lasse, aber eine Main-Binary definiere, hat die kein
> Effekt: Es kommt weiter der Anschaltsound aus der GME, und die GME
> funktioniert sonst auch.
>
> Wenn ich das Feld auf 1 setze und deine play_sound binary als Main-
> Binary definiere, dann höre ich erst den Anschaltsound laut GME, dann
> läuft dein play_sounds (und spielt alle Sounds der Reihe nach ab).
> Main-Binary per tttool zu Laden funkioniert also prinzipiell!
>
>
> Wenn ich das Feld auf 1 setze und deine play_sound binary als Spiel-
> Binary anlege, dann ists kaputt wie oben: Anschaltsound abgespielt, der
> Rest nicht. (Vermutuing bisher: 0x009C = 1 heißt: Es gibt ist ein main-
> binary zu laden – wenn es das nicht gibt dann stürzt er ab.)
>
>
> Wenn ich das Feld auf 0 setzte und deine play_sound binary als Spiel-
> Binary anlege, dann tuts: Anschaltsounds tut, normale GME-Skripte tun,
> mit G(0) kann ich das binary starten. Sehr schön!
>
>
> Wenn ich nun das Binary durch das austausche, dass ich erstellt habe,
> kommt beim Ausführen von G(0) nur ein kurzer Knacker, aber weiter
> nichts, und danach scheint weiterhin das normale GME am werkeln zu
> sein.
>
> Ah, hab meinen (ersten) Fehler: Hab mich mit der Anzahl an Sounds in
> meiner GME verzählt und
>          playSound(36)
> hab es einfach nicht. Mit
>          playSound(35)
> höre ich den Sound den ich im “Init-Code starte”. Sehr gut.
>
> Aber auf OIDs reagieren tut er immer noch nicht…
>
> Ich kann mein Binary auch als main-binary einsetzen (also mit 0x009C =
> 1). Dann höre ich zuerst den Anschaltsound von der GME, dann das ersten
> playSound aus meinem Binary. Aber auch dann nichts weiter, keine
> Reaktion auf apii->fpAkOidPara[new_oid] == 1. Aber wohl auch nicht
> abgestürzt, Lautstärkeknöpfe tun noch.
>
>
> Bei dir funktioniert get_tipped_oid?
>
>
> Cheers,
> Joachim
>
>
>
>


Mehr Informationen über die Mailingliste tiptoi