Extended presence flags/Software Overview

From Custom Mario Kart
< Extended presence flags
Revision as of 15:06, 4 February 2020 by Wiimm (talk | contribs) (Created page with "{{XPF Content}} This page is related to the software support for the Extended presence flags (XPF). __TOC__ == LE-CODE == Already implemented: * Support of LEX se...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page is related to the software support for the Extended presence flags (XPF).



LE-CODE

Already implemented:

  • Support of LEX section TEST.
  • Simulation part of different scenarios controlled by LEX section TEST.
  • Detection if game is online or offline.
  • Detection of online game mode (Balloon Battle, Coin Runners or Versus).
  • Total number of players if online.
  • Conditions for engines modes (not yet documented here).
  • Conditions for random scenarios (not yet fully documented here).
  • Predefined conditions: Support of OR and AND operators (not yet documented here).
  • Patching of OBJECT_ID, REFERENCE_ID and PRESENCE_FLAGS after analysis of all settings.

Not implemented yet and harder to find out:

  • Offline: Number of players at local Wii.
  • Offline: Distinction between Balloon Battle and Coin Runners.

Wiimms SZS Tools

Wiimm planned software support for his SZS Tools:

  • New warnings will be added to »wkmpt check«.

Already implemented (compare change log):

  • The KMP text processor detects DEFINITION_OBJECTS and displays them in an alternative view including some hints and statistics.
  • The KMP parser+compiler accepts alternative syntax for entering DEFINITION_OBJECTS: Commands $DEFOBJ-BATTLE and $DEFOBJ-RACE will define DEFINITION_OBJECTS. Command $REFERENCE adds an REFERENCE_ID to the current object.
  • The KMP parser+compiler can fix wrong REFERENCES and DEFINITION_OBJECTS, and can sort them in various ways.
  • wkmpt check: New hints for usage of MODES>0 added.
  • New command: wkmpt GAMEMODES: Analyze the presence flags combinations with and without extension support and print a list.
  • New command: wszst DUPLICATE: It reads a single track file and duplicates it several times. Therefor it analyzes the presence flags combinations with and without extension support and creates one file for each relevant scenario. A LEX section TEST will be inserted to force the execution mode for offline tests.
  • LEX: A new section named »TEST« was added. It contains variables to force conditions like "10 players online" even if playing offline and alone. So you can test any of the CONDITIONS privately. The new options --lt-clear, --lt-online, --lt-n-players and --lt-game-mode allow easy patching of a track with the new settings.

ct.wiimm.de

Wiimm planned software support for his website ct.wiimm.de:

  • A new web page will help to define and calculate CONDITIONS and DEFINITION_OBJECTS.
  • Track statistics about the usage of this extension.
  • In the distant future a special web page is planned: The user uploads some tracks and defines some parameters. Then the website creates a LE-CODE distribution, where the track is included in many variants, where the settings of LEX:TEST varies to cover all CONDITIONS.

KMP Tools

All KMP tools must be checked to see if they don't clear but COPY the additional data and if they allow to EDIT the extensions. Maybe some authors will add a special support (=MANAGE).

Tools that either directly work on the file itself (like the SZS Modifier), which is not recommended, or tools like Wiimms SZS Tools (in any version) that load the entire GOBJ section into a structure, including padding, will properly keep the additional data in the KMP when editing. Other tools that try to be smart and verify the OBJECT_ID (KMP Cloud, KMP Modifier) and/or ignore the seemingly unused padding (KMP Cloud, KMP Modifier, Lorenzi's KMP Editor, Wexos's Toolbox and probably more) will break KMP files that use these features — these tools should be updated.

KMP tools and their support of extended presence flags
Tool Author Extended
Object ID
Values
for padding
Extended bits
of Presence flags
Special
support
of
conditions
Copy Edit Manage Copy Edit Manage Copy Edit Manage
KMP Cloud Vulcanus2 [1] [2]
KMP Modifier kHacker35000vr [3] [2]
KMP3D zatchi ? ? ? ? ? ?
Lorenzi's KMP Editor Hlorenzi [2]
SZS Modifier Chadderz [4]
Wexos's Toolbox Wexos [2]
Wiimms SZS Tools Wiimm v2.11a v2.11a v2.11a v2.11a
Column Notes
  • Copy: Tool reads values and stores them at least when object was not edited.
  • Edit: Tool allows simple (hex) edit of the values.
  • Manage: Tool supports and interprets the extension.
Status Notes
  • [1]: KMP Cloud clears the high unused bits of the object id.
  • [2]: KMP Cloud, KMP Modifier, Lorenzi's KMP Editor and Wexos's Toolbox ignore the padding completely and set all paddings to value 0 if writing the KMP.
  • [3]: KMP Modifier doesn't accept unknown objects, prints a warning for each such object and set OBJECT_ID to 0.
  • [4]: SZS Modifier prints padding as decimal value, but scans it as hexadecimal value. So editing this member is complicated.
  • A Version number indicates when this corresponding functionality has been (green) or will be (yellow) available.

Implementation Hints

For implementation hints read Extended presence flags/Implementation Hints.