Professional Documents
Culture Documents
Super Mario 64
Decomp Mega Document
2
Table of Contents
File Structure...........................................................................................................................................3
Working with Github to save Progress....................................................................................................4
Actors Folder...............................................................................................................................................5
How Objects Work.......................................................................................................................................6
3
File Structure
├── actors: object behaviors, geo layout, and display lists
├── asm: handwritten assembly code, rom header
│ └── non_matchings: asm for non-matching sections
├── assets: animation and demo data
│ ├── anims: animation data
│ └── demos: demo data
├── bin: C files for ordering display lists and textures
├── build: output directory
├── data: behavior scripts, misc. data
├── doxygen: documentation infrastructure
├── enhancements: example source modifications
├── include: header files
├── levels: level scripts, geo layout, and display lists
├── lib: SDK library code
├── rsp: audio and Fast3D RSP assembly code
├── sound: sequences, sound samples, and sound banks
├── src: C source code for game
│ ├── audio: audio code
│ ├── buffers: stacks, heaps, and task buffers
│ ├── engine: script processing engines and utils
│ ├── game: behaviors and rest of game source
│ ├── goddard: Mario intro screen
│ └── menu: title screen and file, act, and debug level selection menus
├── text: dialog, level names, act names
├── textures: skybox and generic texture data
└── tools: build tools
4
Actors Folder
This folder contains model data, animations, and object bank data.
Each actor has their own file at the top that contains model and animation data.
The CALL_NATIVE function calls functions in the game -> behaviors ->
<corresponding file>. The BEGIN_LOOP – END LOOP runs object.
8
Goomba as an Example
Goomba Behavior Script is declared in the behavior mega file. It then makes calls to the goomba’s file.
Obj_behaviors2.c
UpdateObjects()
Game_init
Src -> game
#include behavior_data.h
15
#include model_ids.h
Player Input
Thread5_game_loop in game_init.c