LE-CODE und Presence-Flags

      Als Beispiel habe ich "GCN Sherbet Land v4" von @Tock genommen. Diese Strecke gibt es in 2 Versionen, 1x Standard-Code und 1x LE-CODE.

      Der Unterschied liegt in der KMP/GOBJ. STANDARD:

      Quellcode

      1. #------------------------------------------------------------------------------------
      2. # o$penguin_m, S123----8, route needed, solid, found in tracks
      3. o29 0xd8 14117.870 1529.450 -19039.021 16 0 0 0 r0
      4. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      5. > 1.300 1.300 1.300
      6. #------------------------------------------------------------------------------------
      7. # o$penguin_m, S123----8, route needed, solid, found in tracks
      8. o30 0xd8 16208.204 1529.719 -18619.641 16 0 0 0 r31
      9. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      10. > 1.300 1.300 1.300
      11. #------------------------------------------------------------------------------------
      Alles anzeigen
      LE-CODE:

      Quellcode

      1. #------------------------------------------------------------------------------------
      2. # o$penguin_l, S1-------, route needed, found in tracks
      3. o29 0xd9 14117.870 1529.450 -19039.021 16 0 0 0 r0
      4. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      5. > 1.300 1.300 1.300
      6. #------------------------------------------------------------------------------------
      7. # o$penguin_l, S1-------, route needed, found in tracks
      8. o30 0xd9 16208.204 1529.719 -18619.641 16 0 0 0 r31
      9. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      10. > 1.300 1.300 1.300
      11. #------------------------------------------------------------------------------------
      Alles anzeigen

      Daraus habe ich dann eine Kombi-Datei erstellt. Die "# ^^^^"-Zeilen zeigen auf die insgesamt 4 Änderungen.

      Quellcode

      1. #------------------------------------------------------------------------------------
      2. # o$penguin_m, S123----8, route needed, solid, found in tracks
      3. o29 0xd8 14117.870 1529.450 -19039.021 16 0 0 0 r0
      4. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      5. > 1.300 1.300 1.300
      6. $X-DISABLE
      7. # ^^^^^^^^^^
      8. #------------------------------------------------------------------------------------
      9. # o$penguin_m, S123----8, route needed, solid, found in tracks
      10. o30 0xd8 16208.204 1529.719 -18619.641 16 0 0 0 r31
      11. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      12. > 1.300 1.300 1.300
      13. $X-DISABLE
      14. # ^^^^^^^^^^
      15. #------------------------------------------------------------------------------------
      16. #------------------------------------------------------------------------------------
      17. # o$penguin_l, S1-------, route needed, found in tracks
      18. o29 0xd9 14117.870 1529.450 -19039.021 16 0 0 0 r0
      19. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      20. > 1.300 1.300 1.300
      21. $X-ENABLE
      22. # ^^^^^^^^^
      23. #------------------------------------------------------------------------------------
      24. # o$penguin_l, S1-------, route needed, found in tracks
      25. o30 0xd9 16208.204 1529.719 -18619.641 16 0 0 0 r31
      26. > 0 0.000 0.000 0.000 0 0 0 0 0x3f
      27. > 1.300 1.300 1.300
      28. $X-ENABLE
      29. # ^^^^^^^^^
      30. #------------------------------------------------------------------------------------
      Alles anzeigen

      Meine Simulation mit "wkmpt gamemodes -l ..." zeigt folgendes an (Ausgabe verkürzt auf relevante Objekte):

      Quellcode

      1. File KMPTXT:s4combi.d/course.kmp.txt
      2. 1. 1 std1 ... ++-- ...
      3. 2. 2 std2 ... ++-- ...
      4. 3. 3 V1 ... --++ ...
      5. 4. 4 V2 ... --++ ...
      6. ^^^^
      7. 85 objects analyzed in 112us: 4 different scenarios total (2 standard code + 2 extended code).
      Im Standard-Code sind die ersten beiden und im LE-CODE die letzten beiden Objekte aktiviert.

      Jetzt kommt der LE-CODE dran!!!

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.
      Ich habe nun feste Werte definiert:
      * 0x2000 = disabled und 0x2001 = enabled

      Ich überlege, ob ich weitere fest verdrahtete für häufige Fälle einbauen soll, z.B:
      * 0x2002 = offline, 0x2003 = online.

      Evtl sollte man den ganzen Bereich von 0x2000 bis 0x20ff reservieren. Dann hat man immer noch 3840 Möglichkeiten eine Bedingung zu definieren.

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.

      Wiimm schrieb:

      Ich habe nun feste Werte definiert:
      * 0x2000 = disabled und 0x2001 = enabled

      Ich überlege, ob ich weitere fest verdrahtete für häufige Fälle einbauen soll, z.B:
      * 0x2002 = offline, 0x2003 = online.

      Evtl sollte man den ganzen Bereich von 0x2000 bis 0x20ff reservieren. Dann hat man immer noch 3840 Möglichkeiten eine Bedingung zu definieren.
      Habe die fest verdrahteten Bedingungen erweitert und dafür den Wertebereich geändert (0x1000-0x1fff anstatt 0x2000-0x20ff):

      * wiki.tockdom.com/wiki/Presence…ion#Hard_coded_CONDITIONS

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.
      Ich habe gerade mein modifiziertes sherbet4 in 2 Versionen in eine Distrib gepackt und dabei durch eine LEX-Datei die Simulations-Params unterschiedlich vorgegeben: 1x LE-CODE und 1x Standardcode. Es wurden tatsächlich 1x rote und 1x blaue ShyGuýs angezeigt.


      Verständnisfrage:
      Um nicht mit einzelnen Bits hantieren zu müssen, habe ich 2 Kommandos für meine Tools definiert. Sie werden unter der Objektdefinition eingetragen und modifizieren das Objekt entsprechend. Die beiden Kommandos sind:
      * $DISABLE condition
      * $ENABLE condition

      CONDITION ist hierbei etwas wie:
      * if$lecode
      * if$balloon
      * if$single
      * if$not_coin
      * if$offline
      * if$online
      * viele mehr

      $DISABLE bedeutet: Objekt ist im standardmäßig aktiviert, wird aber durch LE-CODE deaktiviert, falls die Bedingung zutrifft.
      $ENABLE bedeutet: Objekt ist im standardmäßig deaktiviert, wird aber durch LE-CODE aktiviert, falls die Bedingung zutrifft.

      Dadurch ergibt sich ein feiner Unterschied zwischen $DISABLE if$offline und $ENABLE if$online: LE-CODE aktiviert das Objekt bei beiden Varianten genau dann, wenn man Online spielt. Der Unterschied liegt nur beim Standard-Code, bei dem das Objekt aktiviert bzw. deaktiviert ist.

      Könnt ihr diese Logik nachvollziehen?

      Diese Logik hat sich übrigens ergeben, als ich die Rückrechnung von Objekt-Eigenschaften in Kommando-Namen zur KMP-Text-Generierung vorgenommen habe. Ohne diese doppelte Belegung wäre die Rückrechnung nicht vollständig möglich.

      @Tock @Sniki @Leseratte @andere_interessierte

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.
      Leseratte und ich haben heute einiges Offline und Online getestet. Unter anderen auch die neuen Presence-Flags, von denen ich hier berichte. Für den Test habe von 3 Stecken jeweils die aktuelle Version angepasst:

      GCN Sherbet Land (Tock)
      Das sind die blauen (Standard) und die roten (LECODE) Schlittschuhläufer drin. Die automatische Auswahl funktioniert.

      GCN Bowser Castle (Tock)
      Hier sind die Offline- und die Online-Versionen von VolcanoBall1 enthalten. Beide unterscheiden sich im Timing. Mit LE-CODE ist das Timing Offline und Online korrekt, im Standard-Code allerdings nur Online. Da der Standard-Code die beiden Szenarien nicht unterscheiden kann, muss für Offline noch eine andere Version ausgeliefert werden.

      DS Airship Fortess (Sniki)
      Hier sind die bewegte Woodboxen (Standard by SpyKid) sowie die mit niedrigerer Fallhöhe (LE-CODE) drin. Auch dieses funktioniert wie geplant.



      Nächste Schritte
      Wir müssen dem LE-CODE jetzt noch beibringen, ein paar Dinge zu erkennen:
      * Die tatsächliche Anzahl der Spieler an der Wii
      * Versus oder Balloon oder Coin oder Timetrial
      Die Simulationen der Szenarien funktionieren dagegen schon alle.

      WIT: Wiimms ISO Tools
      Verwaltet Plain ISO, WDF, WIA, CISO, WBFS, FST: kann Extrahieren, Erstellen, Patchen, Mischen und Überprüfen

      SZS: Wiimms SZS Tools
      Verwaltet SZS-, BRRES-, U8-, BMG-, BREFT-Dateien uvm.



      PN ohne persönlichen Charakter werden ignoriert. Support-Anfragen gehören ins Forum.