Extended presence flags
- Extended presence flags
- Related articles
- LE-CODE: FAQ for track creators
- LE-CODE: Distribution Tutorial
- LE-CODE: FAQ for distribution creators
- LEX: File format and definitions
- Wiimm's Test Tracks
- Related Categories
This page contains an introduction to the Extended presence flags (XPF) defined by Wiimm. It is an extension for the classic Presence flags by Nintendo. It allows to disable or enable objects by many more conditions than the old model does. Additonally it supports random scenarios, so that a track varies each race.
Issues of the current model
Mario Kart Wii uses the presence flags to conditionally enable or disable objects. Only the number of human players can be used as a condition. But there are many more parameters to differentiate between the activation of objects. A few wishes follow:
- I want to activate an object in Balloon Battle only, but not in Coin Runners.
- I want to disable some objects at time trial.
- I want to disable some objects online.
- I want to disable some objects only if many players are online.
- I want to disable some objects in item rain.
- I want to exchange an object by another one, if 7 or more players are online.
- Because of different timings of objects online and offline I have to offer 2 versions of the track to synchronize objects. Is there a way, to include both variants of objects and activate one set offline and another set online?
- LE-CODE supports modifications of ObjFlow.bin, but CTGP and standard code does not. So I have to provide 2 versions of the track. Is it possible to deliver only 1 track file for both cases?
So the LE-CODE team implemented the Extended presence flags to fulfill all of these wishes and more. Future extensions were also considered, if known. However, space was also left for extensions that had not yet been considered.
Some questions aim at things that may be implemented in the future:
- I want to load the low-poly-model for some objects away from the main routes to reduce the slow motion effect.
- Is it possible, that one object enables/triggers another object if touched during the race?
What is supported?
Objects can be enabled or disabled by conditions. Enabling means, that the object is disabled if using standard Mario Kart and can be enabled by LE-CODE. Disabling means, that the object is enabled if using standard Mario Kart and can be disabled by LE-CODE.
Properties that are queried via the conditions:
- Game Mode: Balloon Battle, Coin Runners, Versus, Item Rain, Time Trial.
- Number of local players: 1, 2, 3 or 4
- Number of total players if online : 1–6, 7–9, 10–12, 13–18, ≥19
- Engine Class: Battle, 50cc, 100cc, 150cc, 200cc and mirror modes
- Random Scenarios (8 variants are supported)
- Combinations of above (logical OR and AND)
For the technical implementation only records KMP:GOBJ are interpreted in a different way. Bits are used for this that previously had no meaning. A test with all tracks from the Wiimms archive has shown that none of the tracks use these bits.
For details see »Extended presence flags: Technical Description«
Extended presence flags: