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

Florian tttool at florian.rgrplay.de
So Okt 27 16:03:50 CET 2024


Hallo,

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)?

Die Main binary ist noch nicht ganz verstanden und tut vieles im 
Hintergrund (vllt auch OID Zeug, muss das mir aber nochmal anschauen). 
Sie ist sehr mächtig und kann z.b. auch einem vom Buch abmelden (siehe 
Create Produkte, wenn man diese ohne Create Stift startet).

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.

Ich weiß nicht, in wie weit das tttool schon kann, aber es währe cool, 
wenn man mit G(spiel1) die entsprechende Binary starten könnte.

Mit freundlichen Grüßen,

Florian


On 24.10.24 21:27, Joachim Breitner via tiptoi wrote:
> Hi,
>
> Zwischenstand:
>
> Ich hab es hinbekommen mit dem tttool eine GME-Datei zusammenzustellen
> mit einer Main-Binary, die dann tatsächlich ausgeführt wird. Das sieht
> in etwa so aus:
>
>     product-id: 42
>     comment: Ein akustischer Taschenrechner (in C)
>     welcome: dies_ist_der_akustische_taschenrechner
>     scripts:
>       4716: []
>       4740: []
>     binaries:
>       main3202n: taschenrechner3202N.bin
>       main3203l: taschenrechner3203L.bin
>     extra-media: null,eins,zwei,drei,vier,fuenf,sechs,sieben,acht,neun,zehn,elf,zwoelf,dreizehn,    vierzehn,fuenfzig,sechzehn,siebzehn,achtzehn,neunzehn,zwanzig,dreissig,vierzig,fuenfzig,sechzig,siebzig,achtzig,neunzig,hundert,tausend,ein,plus,minus,mal,geteilt,gleich
>
> Das funktioniert mit Florian’s play_sounds-Datei. Aber wenn ich
> versuche eine eigene Main-Binary zu schreiben, die auf OIDs reagiert,
> so spielt diese nur den Anfangssound ab, reagiert aber nicht auf OIDs
> (nicht mal mit dem Fall-Through):
>
>
>     #include "api.h"
>     #include "sdk.c"
>     
>     #define oid_acht 4716
>     #define oid_drei 4719
>     // ...
>     
>     
>     void main(system_api *apiPara) {
>         initTT(apiPara);
>         if (api->fpAkOidPara[First_time_exec] == 0) {
>             api->fpAkOidPara[First_time_exec] = 1;
>             // put your init code here
>             playSound(36);
>         }
>         // put your loop code here
>         if (api->fpAkOidPara[new_oid] == 1) {
>             api->fpAkOidPara[new_oid] = 0;
>             short read_oid = *(short *)&api->fpAkOidPara[oid_offset];
>             if (read_oid == oid_acht) {
>                 playSound(8);
>             } else if (read_oid == oid_drei) {
>                 playSound(3);
>             } else {
>                 playSound(35);
>             }
>         }
>     }
>     
>
> Hab einen ZC3202N.
>
> Florian, hast du eine Idee woran das scheitern könnte?
>
> Cheers,
> Joachim
>


Mehr Informationen über die Mailingliste tiptoi