Load Model

MP3 Load Model

Event Type
  1. Before Player Turn Event
  2. Background
Input Required
Yes (Parameter)
Programming Language
MIPS (Assembly)
Source
Custom-Made
394_24_01_21_9_58_23_0.png

These events actively load a static 3D model onto the board. If the model is already loaded, another one is not loaded. There are two main events: Load Board Model can more simply load models that normally appear on MP3 boards, such as Millennium Star, Tumble, or the cacti from Spiny Desert, whereas Load Global Model can load any model from the game, including from menu screens and minigames. Each of these events has a Per Frame version that checks to load the model every frame. The final event, Revert Rainhook, is used in conjunction with the Per Frame events.

Both model-loading events include the following parameters:
  • ModelSpace: Set this to the blank space where the model will be located. Make sure this space cannot be reached by players or it may cause issues.
  • FaceScreen: Set this to "true" to make the model face the screen. This is desirable for certain models, such as 2D models or the Star.
  • FaceForward: Set this to "true" to have the model face forward (south).
  • FacingSpace: Set this to the space that the model will face towards. Remember to set this to an arbitrary space (such as the same space as ModelSpace) even when FaceForward is set to "true".


Load Board Model has the parameter ModelID which takes a value from 0-78 to decide which board model to load. This list is included at the end of the event code and in the description below. Load Global Model instead takes two parameters, ModelDirectory and ModelID. By using the PartyPlanner64 Model Viewer, these values can be obtained from the Model drop-down bar: the value on the left is the directory, and the right is the ID (e.g. 60/18 refers to model directory 60 and model ID 18, and loads Mario's flag from Chip Shot Challenge).

The recommended usage of these events is "Before Player's Turn" (before each player's turn); this allows it to reload the model as soon as possible if the model is unloaded due to circumstances such as items (Dueling Glove, Bowser Phone), minigames, or Chance Time. This is done by the event checking the Null Pointer, which will indicate if the model is already loaded or not, and only loading the model when the pointer reads null.

Alternatively, by using Load Board/Global Model Per Frame and setting the parameter LoadPerFrame to "true", the event will insert a detour into the main game loop that checks the Null Pointer every frame, allowing models that are unloaded (from items, minigames, or Chance Time) to be reloaded immediately, effectively never disappearing. However, there can only be one instance of this event per board; loading multiple models using this event requires them to be loaded within the same event. As well, you must also use the Revert Rainhook event (set to "After Turn") to remove the detour at the end of the game, in order to avoid issues when playing other boards on the same ROM. Of course, these limitations can be ignored if LoadPerFrame is set to "false".

Current limitations:
-The models are static, only using their idle animation and no other animations.
-After using a Dueling Glove/Bowser Phone, the model will not be visible for the remainder of that player's turn.
-Models cannot be loaded "naturally" (e.g. Goomba floating down with a parachute, Boo materializing from thin air).

Special thanks to PartyPlanner64 for providing the code that allows models to be actively loaded onto the board, and that allows the event to check a pointer before loading the model. Special thanks also go to Rain for creating the "per frame" detour into the main game loop, a.k.a. the Rainhook.

These events should be Everdrive-compatible. If there are any issues, do not hesitate to let me know!

List of Board Model IDs

  • 0: Mario (low-res)
  • 1: Luigi (low-res)
  • 2: Peach (low-res)
  • 3: Yoshi (low-res)
  • 4: Wario (low-res)
  • 5: DK (low-res)
  • 6: Waluigi (low-res)
  • 7: Daisy (low-res)
  • 8: Bowser
  • 9: Toad
  • 10: Boo
  • 11: Whomp
  • 12: Goomba
  • 13: Thwomp
  • 14: Mario (high-res)
  • 15: Luigi (high-res)
  • 16: Peach (high-res)
  • 17: Yoshi (high-res)
  • 18: Wario (high-res)
  • 19: DK (high-res)
  • 20: Waluigi (high-res)
  • 21: Daisy (high-res)
  • 22: Red junction arrow
  • 23: Star (lays flat)
  • 24: Toad (2D on board)
  • 25: Coin (upright)
  • 26: Star
  • 27: Toad
  • 28: Warp Block effect (rainbow effect around player)
  • 29: Baby Bowser (2D on board)
  • 30: Koopa Bank coin
  • 31: Parachute (for Goomba)
  • 32: Barter Box opening
  • 33: Plunder Chest opening
  • 34: White shining effect
  • 35: Mario in Bowser Suit
  • 36: Magic Lamp
  • 37: Genie of the Lamp
  • 38: Gate (Chilly Waters) opening (overwritten with PP64 gate)
  • 39: Gate (Deep Bloober Sea) opening
  • 40: Gate (Spiny Desert) opening (overwritten with PP64 gate)
  • 41: Gate (Woody Woods) opening
  • 42: Gate (Creepy Cavern) opening
  • 43: Gate (Waluigi's Island) opening
  • 44: Mecha Fly Guy
  • 45: Snowman head sleeping
  • 46: Snowman head awake
  • 47: Snowball rolling
  • 48: Toad's item shop opening
  • 49: Baby Bowser's item shop opening
  • 50: Koopa Bank opening
  • 51: Boo coffin opening
  • 52: Koopa Bank coin tray
  • 53: Koopa Troopa
  • 54: Ripple effect
  • 55: Stars bursting away effect
  • 56: Two white stars pulsing effect
  • 57: Baby Bowser
  • 58: Millennium Star
  • 59: Tumble
  • 60: Jeanie waving her wand
  • 61: Lucky Lamp
  • 62: Game Guy
  • 63: Poison Mushroom
  • 64: Reverse Mushroom
  • 65: Bowser poison curse
  • 66: Bowser reverse curse
  • 67: Lucky Charm
  • 68: Koopa Kard
  • 69: Stars and cloud expanding effect
  • 70: Blue shining effect
  • 71: Quicksand pit
  • 72: Purple pit
  • 73: Red eyeballs from purple pit
  • 74: Green cactus
  • 75: Green cactus (female)
  • 76: Minecart
  • 77: Rock spike
  • 78: Pink Baby Bowser ball
  • 79: (crash)
  • 80+: no model is loaded, at about 85 it crashes


Edit Log:

EDIT (v2):
-Consolidated the Facing Forward and Facing Screen events into one event by implementing the parameter FaceScreen.
-Added the ability to make models face other spaces.
-Includes a new event, Load Global Model, which can load any model from the game.
-Includes new versions of each event that allow the model to be checked per frame.

EDIT (v1.1):
-Fixed a minor coding issue.
  • 394_24_01_21_9_58_24_1.png
    394_24_01_21_9_58_24_1.png
    100 KB · Views: 114
  • 394_17_01_20_10_43_02_0.png
    394_17_01_20_10_43_02_0.png
    98.8 KB · Views: 117
  • 394_24_01_20_6_41_38_0.png
    394_24_01_20_6_41_38_0.png
    127.5 KB · Views: 119
Downloads
503
Views
1,110
Rating
5.00 star(s) 1 ratings
Creator
MarioComix
Version
2.0
First release
Last update

More from MarioComix:

Latest reviews

it saved my life

No, but really, I've been using the code for my boards. Works like a charm.
Usage
Used in personal board
Back
Top