Browse Source

Refresh 1

master
n64 2 years ago
parent
commit
1ef98ec785
  1. 3
      .clang-format
  2. 6
      .clang-tidy
  3. 23
      .gitattributes
  4. 25
      CHANGES
  5. 14
      Makefile
  6. 70
      README.md
  7. 108
      actors/amp/geo.s
  8. 1006
      actors/amp/model.s
  9. 46
      actors/bird/geo.s
  10. 508
      actors/bird/model.s
  11. 36
      actors/blargg/geo.s
  12. 1090
      actors/blargg/model.s
  13. 54
      actors/blue_coin_switch/collision.s
  14. 16
      actors/blue_coin_switch/geo.s
  15. 158
      actors/blue_coin_switch/model.s
  16. 56
      actors/blue_fish/geo.s
  17. 274
      actors/blue_fish/model.s
  18. 190
      actors/bobomb/geo.s
  19. 786
      actors/bobomb/model.s
  20. 26
      actors/bomb/geo.s
  21. 372
      actors/bomb/model.s
  22. 30
      actors/boo/geo.s
  23. 638
      actors/boo/model.s
  24. 30
      actors/boo_castle/geo.s
  25. 638
      actors/boo_castle/model.s
  26. 12
      actors/book/geo.s
  27. 166
      actors/book/model.s
  28. 54
      actors/bookend/geo.s
  29. 910
      actors/bookend/model.s
  30. 46
      actors/bowling_ball/geo.s
  31. 10
      actors/bowling_ball/model.s
  32. 822
      actors/bowser/geo.s
  33. 18588
      actors/bowser/model.s
  34. 44
      actors/bowser_flame/geo.s
  35. 772
      actors/bowser_flame/model.s
  36. 54
      actors/bowser_key/geo.s
  37. 1042
      actors/bowser_key/model.s
  38. 62
      actors/breakable_box/collision.s
  39. 48
      actors/breakable_box/geo.s
  40. 174
      actors/breakable_box/model.s
  41. 40
      actors/bub/geo.s
  42. 834
      actors/bub/model.s
  43. 20
      actors/bubba/geo.s
  44. 1062
      actors/bubba/model.s
  45. 26
      actors/bubble/geo.s
  46. 94
      actors/bubble/model.s
  47. 18
      actors/bullet_bill/geo.s
  48. 612
      actors/bullet_bill/model.s
  49. 174
      actors/bully/geo.s
  50. 1376
      actors/bully/model.s
  51. 12
      actors/burn_smoke/geo.s
  52. 90
      actors/burn_smoke/model.s
  53. 48
      actors/butterfly/geo.s
  54. 234
      actors/butterfly/model.s
  55. 12
      actors/cannon_barrel/geo.s
  56. 288
      actors/cannon_barrel/model.s
  57. 12
      actors/cannon_base/geo.s
  58. 314
      actors/cannon_base/model.s
  59. 30
      actors/cannon_lid/collision.s
  60. 6
      actors/cannon_lid/geo.s
  61. 88
      actors/cannon_lid/model.s
  62. 26
      actors/capswitch/geo.s
  63. 436
      actors/capswitch/model.s
  64. 12
      actors/chain_ball/geo.s
  65. 66
      actors/chain_ball/model.s
  66. 40
      actors/chain_chomp/geo.s
  67. 1060
      actors/chain_chomp/model.s
  68. 54
      actors/chair/geo.s
  69. 630
      actors/chair/model.s
  70. 54
      actors/checkerboard_platform/collision.s
  71. 12
      actors/checkerboard_platform/geo.s
  72. 170
      actors/checkerboard_platform/model.s
  73. 230
      actors/chuckya/geo.s
  74. 1732
      actors/chuckya/model.s
  75. 36
      actors/clam_shell/geo.s
  76. 448
      actors/clam_shell/model.s
  77. 202
      actors/coin/geo.s
  78. 268
      actors/coin/model.s
  79. 50
      actors/common0.s
  80. 58
      actors/common1.s
  81. 32
      actors/cyan_fish/geo.s
  82. 374
      actors/cyan_fish/model.s
  83. 58
      actors/dirt/geo.s
  84. 364
      actors/dirt/model.s
  85. 596
      actors/door/geo.s
  86. 1782
      actors/door/model.s
  87. 924
      actors/dorrie/collision.s
  88. 104
      actors/dorrie/geo.s
  89. 2894
      actors/dorrie/model.s
  90. 6
      actors/empty/geo.s
  91. 2
      actors/empty/model.s
  92. 30
      actors/exclamation_box/geo.s
  93. 412
      actors/exclamation_box/model.s
  94. 54
      actors/exclamation_box_outline/collision.s
  95. 32
      actors/exclamation_box_outline/geo.s
  96. 422
      actors/exclamation_box_outline/model.s
  97. 34
      actors/explosion/geo.s
  98. 164
      actors/explosion/model.s
  99. 250
      actors/eyerok/geo.s
  100. 3918
      actors/eyerok/model.s

3
.clang-format

@ -1,4 +1,5 @@
IndentWidth: 4
Language: Cpp
AlignAfterOpenBracket: Align
SortIncludes: false
ColumnLimit: 104
@ -8,8 +9,10 @@ AllowShortIfStatementsOnASingleLine: false
BinPackArguments: true
BinPackParameters: true
SpaceAfterCStyleCast: true
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: true
BreakBeforeBinaryOperators: NonAssignment
Cpp11BracedListStyle: false
IndentCaseLabels: true
AlignTrailingComments: true
UseTab: Never

6
.clang-tidy

@ -0,0 +1,6 @@
---
Checks: '-*,readability-braces-around-statements'
WarningsAsErrors: ''
HeaderFilterRegex: '(src|include|enhancements)\/.*\.h$'
FormatStyle: 'file'
CheckOptions:

23
.gitattributes

@ -0,0 +1,23 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# List text files in case git doesn't characterize correctly
*.c text
*.h text
*.s text
*.in text
*.js text
*.md text
*.py text
*.sh text
*.ld text
*.inc text
*.txt text
*.json text
*.yaml text
# Same for binary
*.bin binary
*.m64 binary
*.png binary
*.aiff binary

25
CHANGES

@ -0,0 +1,25 @@
Refresh #1
Changes from initial release:
1.) More README cleanups and documentation
2.) Fix .gitignore in tools/
3.) More README cleanups and corrections
4.) oUnk190 -> oInteractionSubtype
5.) Normalize line endings
6.) Replace bank_sets.s by sequences.json + build magic
7.) Fix tabledesign in .gitignore
8.) Cleaned and documented arrays in audio/
9.) Change minimum Python 3 requirement in README.md to 3.6
10.) Remove whitespace in ingame_menu.c, save_file.c, and star_select.c
11.) Documentation comment style fixed
12.) sm64.map -> sm64.version.map (ex: sm64.us.map)
13.) Decompile EU versions of HUD and obj behaviors
14.) Label ukiki.inc.c and ukiki_cage.inc.c
15.) Add missing OS header includes
16.) Fix alignment issue in model_ids.h
17.) A bunch of behavior changes:
a.) Made styles consistent with function names (ex: BehBehaviorLoop -> beh_behavior_loop)
b.) Split obj_behaviors_2.c into multiple .inc.c files in behaviors/
c.) bhvHauntedRoomCheck -> bhvCoffinManager
18.) Update README.md notes on WSL and add links
19.) Added tidy.sh and also bracing around single-line ifs and loops

14
Makefile

@ -173,7 +173,8 @@ SOUND_SAMPLE_TABLES := $(foreach file,$(SOUND_SAMPLE_AIFFS),$(BUILD_DIR)/$(file:
SOUND_SAMPLE_AIFCS := $(foreach file,$(SOUND_SAMPLE_AIFFS),$(BUILD_DIR)/$(file:.aiff=.aifc))
SOUND_OBJ_FILES := $(SOUND_BIN_DIR)/sound_data.ctl.o \
$(SOUND_BIN_DIR)/sound_data.tbl.o \
$(SOUND_BIN_DIR)/sequences.bin.o
$(SOUND_BIN_DIR)/sequences.bin.o \
$(SOUND_BIN_DIR)/bank_sets.o
# Object files
@ -222,7 +223,7 @@ ASFLAGS := -march=vr4300 -mabi=32 -I include -I $(BUILD_DIR) $(VERSION_ASFLAGS)
CFLAGS = -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm -Xfullwarn $(OPT_FLAGS) -signed -I include -I $(BUILD_DIR)/include -I src -D_LANGUAGE_C $(VERSION_CFLAGS) $(MIPSISET) $(GRUCODE_CFLAGS)
OBJCOPYFLAGS := --pad-to=0x800000 --gap-fill=0xFF
SYMBOL_LINKING_FLAGS := $(addprefix -R ,$(SEG_FILES))
LDFLAGS := -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.map --no-check-sections $(SYMBOL_LINKING_FLAGS)
LDFLAGS := -T undefined_syms.txt -T $(BUILD_DIR)/$(LD_SCRIPT) -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(SYMBOL_LINKING_FLAGS)
ifeq ($(shell getconf LONG_BIT), 32)
# Work around memory allocation bug in QEMU
@ -375,14 +376,17 @@ $(BUILD_DIR)/%.table: %.aiff
$(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
$(VADPCM_ENC) -c $^ $@
$(SOUND_BIN_DIR)/sound_data.ctl: $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS)
$(SOUND_BIN_DIR)/sound_data.ctl: sound/sound_banks/ $(SOUND_BANK_FILES) $(SOUND_SAMPLE_AIFCS)
$(PYTHON) tools/assemble_sound.py $(BUILD_DIR)/sound/samples/ sound/sound_banks/ $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(VERSION_CFLAGS)
$(SOUND_BIN_DIR)/sound_data.tbl: $(SOUND_BIN_DIR)/sound_data.ctl
touch $@
$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_SEQUENCE_FILES)
$(PYTHON) tools/assemble_sound.py --sequences $@ $^
$(SOUND_BIN_DIR)/sequences.bin: $(SOUND_BANK_FILES) sound/sequences.json sound/sequences/ sound/sequences/$(VERSION)/ $(SOUND_SEQUENCE_FILES)
$(PYTHON) tools/assemble_sound.py --sequences $@ $(SOUND_BIN_DIR)/bank_sets sound/sound_banks/ sound/sequences.json $(SOUND_SEQUENCE_FILES) $(VERSION_CFLAGS)
$(SOUND_BIN_DIR)/bank_sets: $(SOUND_BIN_DIR)/sequences.bin
touch $@
$(SOUND_BIN_DIR)/%.m64: $(SOUND_BIN_DIR)/%.o
$(OBJCOPY) -j .rodata $< -O binary $@

70
README.md

@ -17,53 +17,56 @@ A prior copy of the game is required to extract the required assets.
### Linux
1. For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at
#### 1. Copy baserom(s) for asset extraction
For each version (jp/us/eu) that you want to build a ROM for, put an existing ROM at
`./baserom.<version>.z64` for asset extraction.
2. Install the following packages:
#### 2. Install build dependencies
The build system has the following package requirements:
* binutils-mips >= 2.27
* python3 >= 3.6
* libaudiofile
* qemu-irix
__Debian / Ubuntu__
* git
* binutils-mips-linux-gnu / mips64-elf (>= 2.27)
* python3 (>= 3.7)
* build-essential
* pkg-config
* zlib1g-dev
* libaudiofile-dev
```
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev
```
__Arch Linux__
* base-devel
* python
* audiofile
```
sudo pacman -Sy base-devel python audiofile
```
Install the following AUR packages:
* [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR)
* [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git) (AUR)
#### 3. Install qemu-irix
3. Install qemu-irix
3.a Options:
1. Clone https://github.com/n64decomp/qemu-irix to somewhere and follow its
install instructions in the README.
2. Optionally, grab the prebuilt qemu-irix from the Releases section.
3. (Arch) Use AUR package [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git)
3.b (For options 1 or 2), copy executable `qemu-irix` from irix-linux-user to
somewhere convenient with a relatively short path.
1. Options:
1. Clone https://github.com/n64decomp/qemu-irix to somewhere and follow its install instructions in the README.
2. Optionally, grab the prebuilt qemu-irix from the [Releases](https://github.com/n64decomp/sm64/releases) section.
3. (Arch) Use AUR package [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git)
2. (For the first two options), copy executable `qemu-irix` from irix-linux-user to
somewhere convenient with a relatively short path. e.g.:
```
mkdir -p /opt/qemu-irix/bin
cp irix-linux-user/qemu-irix /opt/qemu-irix/bin
```
3.c Define `QEMU_IRIX` environment variable in your `~/.bashrc` to point to
this qemu-irix executable.
3. Define `QEMU_IRIX` environment variable in your `~/.bashrc` to point to this qemu-irix executable.
```
export QEMU_IRIX=/opt/qemu-irix/bin/qemu-irix
```
6. Run `make` to build the ROM (defaults to us version). Make sure your path to
the repo is not too long or else this process will error, as the emulated
IDO compiler cannot handle paths longer than 255 characters.
Build examples:
#### 4. Build ROM
Run `make` to build the ROM (defaults to `VERSION=us`). Make sure your path to the repo
is not too long or else this process will error, as the emulated IDO compiler cannot
handle paths longer than 255 characters.
Examples:
```
make VERSION=jp -j4 # build (J) version instead with 4 jobs
make VERSION=eu COMPARE=0 # non-matching EU version still WIP
@ -71,7 +74,16 @@ make VERSION=eu COMPARE=0 # non-matching EU version still WIP
## Windows
For Windows, install WSL and a distro of your choice and follow the Linux guide.
For Windows, install WSL and a distro of your choice following
[Windows Subsystem for Linux Installation Guide for Windows 10](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
We recommend either Debian or Ubuntu 18.04 Linux distributions under WSL.
Then follow the directions in the [Linux](#linux) installation section above.
## macOS
macOS is currently unsupported as qemu-irix is unable to be built for macOS host.
The recommended path is installing a Linux distribution under a VM.
## Contributing

108
actors/amp/geo.s

@ -1,54 +1,54 @@
glabel amp_geo # 0x0F000028
geo_shadow SHADOW_CIRCLE_4_VERTS, 0xC8, 100
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002C88
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_close_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002D70
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_billboard
geo_open_node
geo_display_list LAYER_ALPHA, amp_seg8_dl_08002E58
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel amp_geo # 0x0F000028
geo_shadow SHADOW_CIRCLE_4_VERTS, 0xC8, 100
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002C88
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_switch_case 2, geo_switch_anim_state
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002BA0
geo_close_node
geo_close_node
geo_close_node
geo_animated_part LAYER_ALPHA, 0, 0, 0, amp_seg8_dl_08002D70
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_billboard
geo_open_node
geo_display_list LAYER_ALPHA, amp_seg8_dl_08002E58
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end

1006
actors/amp/model.s

File diff suppressed because it is too large

46
actors/bird/geo.s

@ -1,23 +1,23 @@
glabel birds_geo # 0x0C000000
geo_shadow SHADOW_CIRCLE_4_VERTS, 0x96, 100
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000670
geo_open_node
geo_animated_part LAYER_OPAQUE, 1, -12, 37
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000528
geo_close_node
geo_animated_part LAYER_OPAQUE, 1, -12, -37
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000600
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000598
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel birds_geo # 0x0C000000
geo_shadow SHADOW_CIRCLE_4_VERTS, 0x96, 100
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000670
geo_open_node
geo_animated_part LAYER_OPAQUE, 1, -12, 37
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000528
geo_close_node
geo_animated_part LAYER_OPAQUE, 1, -12, -37
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000600
geo_close_node
geo_close_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, birds_seg5_dl_05000598
geo_close_node
geo_close_node
geo_close_node
geo_end

508
actors/bird/model.s

@ -1,254 +1,254 @@
# Birds
birds_seg5_light_05000000: # 0x05000000
.byte 0x07, 0x24, 0x2C, 0x00, 0x07, 0x24, 0x2C, 0x00
birds_seg5_light_05000008: # 0x05000008
.byte 0x1D, 0x91, 0xB0, 0x00, 0x1D, 0x91, 0xB0, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_light_05000018: # 0x05000018
.byte 0x33, 0x27, 0x0D, 0x00, 0x33, 0x27, 0x0D, 0x00
birds_seg5_light_05000020: # 0x05000020
.byte 0xCE, 0x9D, 0x34, 0x00, 0xCE, 0x9D, 0x34, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_light_05000030: # 0x05000030
.byte 0x3F, 0x3F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x00
birds_seg5_light_05000038: # 0x05000038
.byte 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_vertex_05000048: # 0x05000048
vertex 178, 2, 39, 0, 0, 0x0D, 0x7E, 0x00, 0x00
vertex 122, -4, -33, 0, 0, 0x10, 0x79, 0xDE, 0x00
vertex 97, 10, 13, 0, 0, 0x0B, 0x7E, 0xFF, 0x00
vertex 47, 4, 47, 0, 0, 0xFE, 0x7C, 0x1B, 0xFF
vertex 53, 14, 7, 0, 0, 0xFE, 0x7E, 0xF8, 0xFF
vertex 0, 5, 32, 0, 0, 0xF0, 0x7D, 0x03, 0xFF
vertex 27, 9, 16, 0, 0, 0xEE, 0x7D, 0x05, 0xFF
vertex 53, -8, -58, 0, 0, 0x0A, 0x78, 0xD8, 0xFF
vertex -4, -6, -64, 0, 0, 0xF1, 0x7B, 0xE9, 0xFF
birds_seg5_vertex_050000D8: # 0x050000D8
vertex -143, -7, -29, 0, 0, 0x16, 0x94, 0xC2, 0x00
vertex -86, -11, -2, 0, 0, 0x16, 0x94, 0xC2, 0x00
vertex -154, -21, -9, 0, 0, 0x16, 0x94, 0xC2, 0x00
birds_seg5_vertex_05000108: # 0x05000108
vertex -154, -21, 9, 0, 0, 0x16, 0x94, 0x3E, 0x00
vertex -86, -11, 2, 0, 0, 0x16, 0x94, 0x3E, 0x00
vertex -143, -7, 29, 0, 0, 0x16, 0x94, 0x3E, 0x00
birds_seg5_vertex_05000138: # 0x05000138
vertex -152, -30, -17, 0, 0, 0x26, 0x87, 0x00, 0x00
vertex -80, -7, 0, 0, 0, 0x26, 0x87, 0x00, 0x00
vertex -152, -30, 17, 0, 0, 0x26, 0x87, 0x00, 0x00
birds_seg5_vertex_05000168: # 0x05000168
vertex 97, 10, -13, 0, 0, 0x0B, 0x7E, 0x01, 0x00
vertex 122, -4, 33, 0, 0, 0x10, 0x79, 0x22, 0x00
vertex 178, 2, -39, 0, 0, 0x0D, 0x7E, 0x00, 0x00
vertex 47, 4, -47, 0, 0, 0xFE, 0x7C, 0xE5, 0xFF
vertex 53, 14, -7, 0, 0, 0xFF, 0x7F, 0x02, 0xFF
vertex 27, 9, -16, 0, 0, 0xF1, 0x7D, 0x06, 0xFF
vertex 0, 5, -32, 0, 0, 0xF0, 0x7D, 0xFD, 0xFF
vertex -4, -6, 64, 0, 0, 0xF7, 0x7C, 0x14, 0xFF
vertex 53, -8, 58, 0, 0, 0xFA, 0x79, 0x25, 0xFF
birds_seg5_vertex_050001F8: # 0x050001F8
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0x00
vertex 78, -51, -21, 0, 0, 0x27, 0xAE, 0xA8, 0x00
vertex -1, 0, -56, 0, 0, 0xF4, 0xC6, 0x90, 0x00
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0xFF
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex -103, -10, -11, 0, 0, 0xA7, 0x30, 0xB4, 0xFF
vertex -103, -10, 11, 0, 0, 0xA7, 0x30, 0x4C, 0xFF
vertex 83, -57, 0, 0, 0, 0xDD, 0x87, 0x00, 0xFF
vertex -9, -30, 0, 0, 0, 0xE0, 0x86, 0x00, 0xFF
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0xFF
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0xFF
vertex -103, -10, 11, 0, 0, 0xEA, 0x88, 0x1F, 0xFF
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0xFF
birds_seg5_vertex_050002F8: # 0x050002F8
vertex 83, -57, 0, 0, 0, 0x60, 0xAD, 0x00, 0xFF
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0x00
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0x00
vertex 78, -51, -21, 0, 0, 0x27, 0xAE, 0xA8, 0xFF
vertex -103, -10, -11, 0, 0, 0xA7, 0x30, 0xB4, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex 10, 48, -56, 0, 0, 0xEF, 0x41, 0x95, 0xFF
vertex -1, 0, -56, 0, 0, 0xF4, 0xC6, 0x90, 0xFF
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex -103, -10, 11, 0, 0, 0xA7, 0x30, 0x4C, 0xFF
vertex -103, -10, -11, 0, 0, 0xEA, 0x88, 0xE1, 0xFF
vertex -9, -30, 0, 0, 0, 0xE0, 0x86, 0x00, 0xFF
vertex -103, -10, 11, 0, 0, 0xEA, 0x88, 0x1F, 0xFF
vertex 83, -57, 0, 0, 0, 0xDD, 0x87, 0x00, 0xFF
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0xFF
birds_seg5_vertex_050003F8: # 0x050003F8
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0x00
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0x00
birds_seg5_vertex_05000428: # 0x05000428
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0x00
vertex 10, 48, -56, 0, 0, 0xEF, 0x41, 0x95, 0x00
vertex 18, 78, 0, 0, 0, 0x54, 0x5E, 0x00, 0x00
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex 18, 78, 0, 0, 0, 0xC4, 0x6F, 0x00, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0xFF
vertex 69, 33, 0, 0, 0, 0x4B, 0x65, 0x00, 0xFF
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0xFF
birds_seg5_vertex_050004C8: # 0x050004C8
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0x00
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0x00
vertex 143, -2, 0, 0, 0, 0x24, 0xCB, 0x93, 0x00
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 143, -2, 0, 0, 0, 0x24, 0xCB, 0x6D, 0xFF
vertex 143, -2, 0, 0, 0, 0x07, 0x7E, 0x00, 0xFF
glabel birds_seg5_dl_05000528 # 0x05000528 - 0x05000598
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000048, 9, 0
gsSP2Triangles 0, 1, 2, 0x0, 2, 3, 0, 0x0
gsSP2Triangles 4, 3, 2, 0x0, 5, 3, 6, 0x0
gsSP2Triangles 4, 7, 8, 0x0, 4, 8, 6, 0x0
gsSP2Triangles 6, 8, 5, 0x0, 6, 3, 4, 0x0
gsSP2Triangles 2, 1, 7, 0x0, 2, 7, 4, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000598 # 0x05000598 - 0x05000600
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_050000D8, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000108, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000138, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000600 # 0x05000600 - 0x05000670
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000168, 9, 0
gsSP2Triangles 0, 1, 2, 0x0, 2, 3, 0, 0x0
gsSP2Triangles 0, 3, 4, 0x0, 5, 3, 6, 0x0
gsSP2Triangles 5, 7, 8, 0x0, 5, 8, 4, 0x0
gsSP2Triangles 6, 7, 5, 0x0, 4, 3, 5, 0x0
gsSP2Triangles 4, 8, 1, 0x0, 4, 1, 0, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000670 # 0x05000670 - 0x050007E0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_050001F8, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 4, 5, 0x0
gsSP2Triangles 6, 7, 8, 0x0, 1, 9, 10, 0x0
gsSP2Triangles 1, 0, 11, 0x0, 12, 3, 13, 0x0
gsSP2Triangles 8, 5, 4, 0x0, 5, 14, 10, 0x0
gsSP2Triangles 13, 15, 12, 0x0, 11, 15, 1, 0x0
gsSPVertex birds_seg5_vertex_050002F8, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 1, 0, 0x0
gsSP2Triangles 4, 5, 6, 0x0, 6, 7, 4, 0x0
gsSP2Triangles 8, 5, 9, 0x0, 10, 7, 11, 0x0
gsSP2Triangles 11, 12, 10, 0x0, 11, 13, 2, 0x0
gsSP2Triangles 2, 14, 11, 0x0, 11, 7, 3, 0x0
gsSP1Triangle 7, 6, 15, 0x0
gsSPVertex birds_seg5_vertex_050003F8, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000038, 1
gsSPLight birds_seg5_light_05000030, 2
gsSPVertex birds_seg5_vertex_05000428, 10, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 4, 5, 0x0
gsSP2Triangles 6, 0, 7, 0x0, 7, 8, 6, 0x0
gsSP2Triangles 9, 7, 2, 0x0, 2, 7, 0, 0x0
gsSP2Triangles 2, 3, 9, 0x0, 7, 9, 8, 0x0
gsSP1Triangle 5, 4, 1, 0x0
gsSPLight birds_seg5_light_05000020, 1
gsSPLight birds_seg5_light_05000018, 2
gsSPVertex birds_seg5_vertex_050004C8, 6, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 0, 4, 0x0
gsSP1Triangle 1, 3, 5, 0x0
gsSPEndDisplayList
birds_seg5_animvalue_050007E0: # 0x050007E0
.hword 0x0000, 0x0013, 0x0017, 0x001A, 0x001E, 0x0022, 0x0020, 0x001A
.hword 0xFFFF, 0x3FFF, 0x0888, 0x0695, 0x024C, 0xFE04, 0xFC12, 0xFF4D
.hword 0x054D, 0x0000, 0xFF6C, 0xFE24, 0xFCDD, 0xFC48, 0xFD3F, 0xFF0A
.hword 0x31C6, 0x228D, 0x010E, 0xDF90, 0xD056, 0xE999, 0x1883, 0x8001
.hword 0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8, 0xF778, 0xF8AE
.hword 0xFB59, 0xFE04, 0xFF3A, 0xFD37, 0xF97B, 0x0000, 0x0098, 0x01E8
.hword 0x0339, 0x03D1, 0x02D4, 0x00FD, 0x31C6, 0x22A8, 0x0165, 0xE023
.hword 0xD104, 0xEA1A, 0x18B0, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF, 0xC001
.hword 0x3FFF, 0x8001, 0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8
birds_seg5_animindex_5000870: # 0x05000870
.hword 0x0001, 0x0000, 0x0007, 0x0001, 0x0001, 0x0008, 0x0001, 0x0000
.hword 0x0001, 0x0009, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000
.hword 0x0007, 0x0041, 0x0001, 0x003E, 0x0001, 0x003F, 0x0001, 0x0040
.hword 0x0007, 0x000A, 0x0007, 0x0011, 0x0007, 0x0018, 0x0001, 0x003B
.hword 0x0001, 0x003C, 0x0001, 0x003D, 0x0007, 0x0026, 0x0007, 0x002D
.hword 0x0007, 0x0034, 0x0001, 0x0000, 0x0001, 0x0000, 0x0007, 0x001F
birds_seg5_anim_050008D0: # 0x050008D0
.hword 0
.hword 0
.hword 0
.hword 0
.hword 0x07
.hword 0x07
.word birds_seg5_animvalue_050007E0
.word birds_seg5_animindex_5000870
.word 0
birds_seg5_animvalue_050008E8: # 0x050008E8
.hword 0x0000, 0x001A, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B
.hword 0x001A, 0xFFFF, 0x3FFF, 0x024C, 0x0246, 0x023A, 0x0234, 0x0238
.hword 0x0240, 0x0249, 0x024C, 0xFE24, 0xFE1D, 0xFE0F, 0xFE07, 0xFE0C
.hword 0xFE16, 0xFE20, 0xFE24, 0x010E, 0x0195, 0x0290, 0x0317, 0x02C6
.hword 0x0212, 0x015F, 0x010E, 0x7EC6, 0xFB59, 0xFB5E, 0xFB68, 0xFB6D
.hword 0xFB6A, 0xFB63, 0xFB5C, 0xFB59, 0x01E8, 0x01F5, 0x020B, 0x0218
.hword 0x0210, 0x0200, 0x01F0, 0x01E8, 0x0165, 0x01D1, 0x0299, 0x0304
.hword 0x02C3, 0x0235, 0x01A6, 0x0165, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF
.hword 0xC001, 0x3FFF, 0x7EC6, 0x0000
birds_seg5_animindex_5000970: # 0x05000970
.hword 0x0001, 0x0000, 0x0008, 0x0001, 0x0001, 0x0009, 0x0001, 0x0000
.hword 0x0001, 0x000A, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000
.hword 0x0001, 0x0042, 0x0001, 0x003F, 0x0001, 0x0040, 0x0001, 0x0041
.hword 0x0008, 0x000B, 0x0008, 0x0013, 0x0008, 0x001B, 0x0001, 0x003C
.hword 0x0001, 0x003D, 0x0001, 0x003E, 0x0008, 0x0024, 0x0008, 0x002C
.hword 0x0008, 0x0034, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023
birds_seg5_anim_050009D0: # 0x050009D0
.hword 0
.hword 0
.hword 0
.hword 0
.hword 0x08
.hword 0x07
.word birds_seg5_animvalue_050008E8
.word birds_seg5_animindex_5000970
.word 0
glabel birds_seg5_anims_050009E8 # 0x050009E8
.word birds_seg5_anim_050008D0
.word birds_seg5_anim_050009D0
# Birds
birds_seg5_light_05000000: # 0x05000000
.byte 0x07, 0x24, 0x2C, 0x00, 0x07, 0x24, 0x2C, 0x00
birds_seg5_light_05000008: # 0x05000008
.byte 0x1D, 0x91, 0xB0, 0x00, 0x1D, 0x91, 0xB0, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_light_05000018: # 0x05000018
.byte 0x33, 0x27, 0x0D, 0x00, 0x33, 0x27, 0x0D, 0x00
birds_seg5_light_05000020: # 0x05000020
.byte 0xCE, 0x9D, 0x34, 0x00, 0xCE, 0x9D, 0x34, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_light_05000030: # 0x05000030
.byte 0x3F, 0x3F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x00
birds_seg5_light_05000038: # 0x05000038
.byte 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
birds_seg5_vertex_05000048: # 0x05000048
vertex 178, 2, 39, 0, 0, 0x0D, 0x7E, 0x00, 0x00
vertex 122, -4, -33, 0, 0, 0x10, 0x79, 0xDE, 0x00
vertex 97, 10, 13, 0, 0, 0x0B, 0x7E, 0xFF, 0x00
vertex 47, 4, 47, 0, 0, 0xFE, 0x7C, 0x1B, 0xFF
vertex 53, 14, 7, 0, 0, 0xFE, 0x7E, 0xF8, 0xFF
vertex 0, 5, 32, 0, 0, 0xF0, 0x7D, 0x03, 0xFF
vertex 27, 9, 16, 0, 0, 0xEE, 0x7D, 0x05, 0xFF
vertex 53, -8, -58, 0, 0, 0x0A, 0x78, 0xD8, 0xFF
vertex -4, -6, -64, 0, 0, 0xF1, 0x7B, 0xE9, 0xFF
birds_seg5_vertex_050000D8: # 0x050000D8
vertex -143, -7, -29, 0, 0, 0x16, 0x94, 0xC2, 0x00
vertex -86, -11, -2, 0, 0, 0x16, 0x94, 0xC2, 0x00
vertex -154, -21, -9, 0, 0, 0x16, 0x94, 0xC2, 0x00
birds_seg5_vertex_05000108: # 0x05000108
vertex -154, -21, 9, 0, 0, 0x16, 0x94, 0x3E, 0x00
vertex -86, -11, 2, 0, 0, 0x16, 0x94, 0x3E, 0x00
vertex -143, -7, 29, 0, 0, 0x16, 0x94, 0x3E, 0x00
birds_seg5_vertex_05000138: # 0x05000138
vertex -152, -30, -17, 0, 0, 0x26, 0x87, 0x00, 0x00
vertex -80, -7, 0, 0, 0, 0x26, 0x87, 0x00, 0x00
vertex -152, -30, 17, 0, 0, 0x26, 0x87, 0x00, 0x00
birds_seg5_vertex_05000168: # 0x05000168
vertex 97, 10, -13, 0, 0, 0x0B, 0x7E, 0x01, 0x00
vertex 122, -4, 33, 0, 0, 0x10, 0x79, 0x22, 0x00
vertex 178, 2, -39, 0, 0, 0x0D, 0x7E, 0x00, 0x00
vertex 47, 4, -47, 0, 0, 0xFE, 0x7C, 0xE5, 0xFF
vertex 53, 14, -7, 0, 0, 0xFF, 0x7F, 0x02, 0xFF
vertex 27, 9, -16, 0, 0, 0xF1, 0x7D, 0x06, 0xFF
vertex 0, 5, -32, 0, 0, 0xF0, 0x7D, 0xFD, 0xFF
vertex -4, -6, 64, 0, 0, 0xF7, 0x7C, 0x14, 0xFF
vertex 53, -8, 58, 0, 0, 0xFA, 0x79, 0x25, 0xFF
birds_seg5_vertex_050001F8: # 0x050001F8
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0x00
vertex 78, -51, -21, 0, 0, 0x27, 0xAE, 0xA8, 0x00
vertex -1, 0, -56, 0, 0, 0xF4, 0xC6, 0x90, 0x00
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0xFF
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex -103, -10, -11, 0, 0, 0xA7, 0x30, 0xB4, 0xFF
vertex -103, -10, 11, 0, 0, 0xA7, 0x30, 0x4C, 0xFF
vertex 83, -57, 0, 0, 0, 0xDD, 0x87, 0x00, 0xFF
vertex -9, -30, 0, 0, 0, 0xE0, 0x86, 0x00, 0xFF
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0xFF
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0xFF
vertex -103, -10, 11, 0, 0, 0xEA, 0x88, 0x1F, 0xFF
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0xFF
birds_seg5_vertex_050002F8: # 0x050002F8
vertex 83, -57, 0, 0, 0, 0x60, 0xAD, 0x00, 0xFF
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0x00
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0x00
vertex 78, -51, -21, 0, 0, 0x27, 0xAE, 0xA8, 0xFF
vertex -103, -10, -11, 0, 0, 0xA7, 0x30, 0xB4, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex 10, 48, -56, 0, 0, 0xEF, 0x41, 0x95, 0xFF
vertex -1, 0, -56, 0, 0, 0xF4, 0xC6, 0x90, 0xFF
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex -103, -10, 11, 0, 0, 0xA7, 0x30, 0x4C, 0xFF
vertex -103, -10, -11, 0, 0, 0xEA, 0x88, 0xE1, 0xFF
vertex -9, -30, 0, 0, 0, 0xE0, 0x86, 0x00, 0xFF
vertex -103, -10, 11, 0, 0, 0xEA, 0x88, 0x1F, 0xFF
vertex 83, -57, 0, 0, 0, 0xDD, 0x87, 0x00, 0xFF
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0xFF
birds_seg5_vertex_050003F8: # 0x050003F8
vertex -1, 0, 56, 0, 0, 0xF4, 0xC6, 0x70, 0xFF
vertex 78, -51, 21, 0, 0, 0x27, 0xAE, 0x58, 0x00
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0x00
birds_seg5_vertex_05000428: # 0x05000428
vertex 69, 4, -40, 0, 0, 0x40, 0x26, 0x9A, 0x00
vertex 10, 48, -56, 0, 0, 0xEF, 0x41, 0x95, 0x00
vertex 18, 78, 0, 0, 0, 0x54, 0x5E, 0x00, 0x00
vertex 10, 48, 56, 0, 0, 0xEF, 0x41, 0x6B, 0xFF
vertex 18, 78, 0, 0, 0, 0xC4, 0x6F, 0x00, 0xFF
vertex -88, 21, 0, 0, 0, 0xAA, 0x5D, 0x00, 0xFF
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0xFF
vertex 69, 33, 0, 0, 0, 0x4B, 0x65, 0x00, 0xFF
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 69, 4, 40, 0, 0, 0x40, 0x26, 0x66, 0xFF
birds_seg5_vertex_050004C8: # 0x050004C8
vertex 113, -23, 0, 0, 0, 0x62, 0xB0, 0x00, 0x00
vertex 113, 0, -10, 0, 0, 0x4E, 0x32, 0xAB, 0x00
vertex 143, -2, 0, 0, 0, 0x24, 0xCB, 0x93, 0x00
vertex 113, 0, 10, 0, 0, 0x4E, 0x32, 0x55, 0xFF
vertex 143, -2, 0, 0, 0, 0x24, 0xCB, 0x6D, 0xFF
vertex 143, -2, 0, 0, 0, 0x07, 0x7E, 0x00, 0xFF
glabel birds_seg5_dl_05000528 # 0x05000528 - 0x05000598
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000048, 9, 0
gsSP2Triangles 0, 1, 2, 0x0, 2, 3, 0, 0x0
gsSP2Triangles 4, 3, 2, 0x0, 5, 3, 6, 0x0
gsSP2Triangles 4, 7, 8, 0x0, 4, 8, 6, 0x0
gsSP2Triangles 6, 8, 5, 0x0, 6, 3, 4, 0x0
gsSP2Triangles 2, 1, 7, 0x0, 2, 7, 4, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000598 # 0x05000598 - 0x05000600
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_050000D8, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000108, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000138, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000600 # 0x05000600 - 0x05000670
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_05000168, 9, 0
gsSP2Triangles 0, 1, 2, 0x0, 2, 3, 0, 0x0
gsSP2Triangles 0, 3, 4, 0x0, 5, 3, 6, 0x0
gsSP2Triangles 5, 7, 8, 0x0, 5, 8, 4, 0x0
gsSP2Triangles 6, 7, 5, 0x0, 4, 3, 5, 0x0
gsSP2Triangles 4, 8, 1, 0x0, 4, 1, 0, 0x0
gsSPEndDisplayList
glabel birds_seg5_dl_05000670 # 0x05000670 - 0x050007E0
gsSPLight birds_seg5_light_05000008, 1
gsSPLight birds_seg5_light_05000000, 2
gsSPVertex birds_seg5_vertex_050001F8, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 4, 5, 0x0
gsSP2Triangles 6, 7, 8, 0x0, 1, 9, 10, 0x0
gsSP2Triangles 1, 0, 11, 0x0, 12, 3, 13, 0x0
gsSP2Triangles 8, 5, 4, 0x0, 5, 14, 10, 0x0
gsSP2Triangles 13, 15, 12, 0x0, 11, 15, 1, 0x0
gsSPVertex birds_seg5_vertex_050002F8, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 1, 0, 0x0
gsSP2Triangles 4, 5, 6, 0x0, 6, 7, 4, 0x0
gsSP2Triangles 8, 5, 9, 0x0, 10, 7, 11, 0x0
gsSP2Triangles 11, 12, 10, 0x0, 11, 13, 2, 0x0
gsSP2Triangles 2, 14, 11, 0x0, 11, 7, 3, 0x0
gsSP1Triangle 7, 6, 15, 0x0
gsSPVertex birds_seg5_vertex_050003F8, 3, 0
gsSP1Triangle 0, 1, 2, 0x0
gsSPLight birds_seg5_light_05000038, 1
gsSPLight birds_seg5_light_05000030, 2
gsSPVertex birds_seg5_vertex_05000428, 10, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 4, 5, 0x0
gsSP2Triangles 6, 0, 7, 0x0, 7, 8, 6, 0x0
gsSP2Triangles 9, 7, 2, 0x0, 2, 7, 0, 0x0
gsSP2Triangles 2, 3, 9, 0x0, 7, 9, 8, 0x0
gsSP1Triangle 5, 4, 1, 0x0
gsSPLight birds_seg5_light_05000020, 1
gsSPLight birds_seg5_light_05000018, 2
gsSPVertex birds_seg5_vertex_050004C8, 6, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 0, 4, 0x0
gsSP1Triangle 1, 3, 5, 0x0
gsSPEndDisplayList
birds_seg5_animvalue_050007E0: # 0x050007E0
.hword 0x0000, 0x0013, 0x0017, 0x001A, 0x001E, 0x0022, 0x0020, 0x001A
.hword 0xFFFF, 0x3FFF, 0x0888, 0x0695, 0x024C, 0xFE04, 0xFC12, 0xFF4D
.hword 0x054D, 0x0000, 0xFF6C, 0xFE24, 0xFCDD, 0xFC48, 0xFD3F, 0xFF0A
.hword 0x31C6, 0x228D, 0x010E, 0xDF90, 0xD056, 0xE999, 0x1883, 0x8001
.hword 0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8, 0xF778, 0xF8AE
.hword 0xFB59, 0xFE04, 0xFF3A, 0xFD37, 0xF97B, 0x0000, 0x0098, 0x01E8
.hword 0x0339, 0x03D1, 0x02D4, 0x00FD, 0x31C6, 0x22A8, 0x0165, 0xE023
.hword 0xD104, 0xEA1A, 0x18B0, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF, 0xC001
.hword 0x3FFF, 0x8001, 0x7F50, 0x7EC6, 0x7F88, 0x80B3, 0x816F, 0x80C8
birds_seg5_animindex_5000870: # 0x05000870
.hword 0x0001, 0x0000, 0x0007, 0x0001, 0x0001, 0x0008, 0x0001, 0x0000
.hword 0x0001, 0x0009, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000
.hword 0x0007, 0x0041, 0x0001, 0x003E, 0x0001, 0x003F, 0x0001, 0x0040
.hword 0x0007, 0x000A, 0x0007, 0x0011, 0x0007, 0x0018, 0x0001, 0x003B
.hword 0x0001, 0x003C, 0x0001, 0x003D, 0x0007, 0x0026, 0x0007, 0x002D
.hword 0x0007, 0x0034, 0x0001, 0x0000, 0x0001, 0x0000, 0x0007, 0x001F
birds_seg5_anim_050008D0: # 0x050008D0
.hword 0
.hword 0
.hword 0
.hword 0
.hword 0x07
.hword 0x07
.word birds_seg5_animvalue_050007E0
.word birds_seg5_animindex_5000870
.word 0
birds_seg5_animvalue_050008E8: # 0x050008E8
.hword 0x0000, 0x001A, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B, 0x001B
.hword 0x001A, 0xFFFF, 0x3FFF, 0x024C, 0x0246, 0x023A, 0x0234, 0x0238
.hword 0x0240, 0x0249, 0x024C, 0xFE24, 0xFE1D, 0xFE0F, 0xFE07, 0xFE0C
.hword 0xFE16, 0xFE20, 0xFE24, 0x010E, 0x0195, 0x0290, 0x0317, 0x02C6
.hword 0x0212, 0x015F, 0x010E, 0x7EC6, 0xFB59, 0xFB5E, 0xFB68, 0xFB6D
.hword 0xFB6A, 0xFB63, 0xFB5C, 0xFB59, 0x01E8, 0x01F5, 0x020B, 0x0218
.hword 0x0210, 0x0200, 0x01F0, 0x01E8, 0x0165, 0x01D1, 0x0299, 0x0304
.hword 0x02C3, 0x0235, 0x01A6, 0x0165, 0x3FFF, 0x3FFF, 0xC001, 0x3FFF
.hword 0xC001, 0x3FFF, 0x7EC6, 0x0000
birds_seg5_animindex_5000970: # 0x05000970
.hword 0x0001, 0x0000, 0x0008, 0x0001, 0x0001, 0x0009, 0x0001, 0x0000
.hword 0x0001, 0x000A, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000
.hword 0x0001, 0x0042, 0x0001, 0x003F, 0x0001, 0x0040, 0x0001, 0x0041
.hword 0x0008, 0x000B, 0x0008, 0x0013, 0x0008, 0x001B, 0x0001, 0x003C
.hword 0x0001, 0x003D, 0x0001, 0x003E, 0x0008, 0x0024, 0x0008, 0x002C
.hword 0x0008, 0x0034, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0023
birds_seg5_anim_050009D0: # 0x050009D0
.hword 0
.hword 0
.hword 0
.hword 0
.hword 0x08
.hword 0x07
.word birds_seg5_animvalue_050008E8
.word birds_seg5_animindex_5000970
.word 0
glabel birds_seg5_anims_050009E8 # 0x050009E8
.word birds_seg5_anim_050008D0
.word birds_seg5_anim_050009D0

36
actors/blargg/geo.s

@ -1,18 +1,18 @@
glabel blargg_geo # 0x0C000240
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blargg_seg5_dl_05005D00
geo_open_node
geo_animated_part LAYER_OPAQUE, 306, 0, 0, blargg_seg5_dl_05005A60
geo_open_node
geo_animated_part LAYER_OPAQUE, 6, 3, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blargg_seg5_dl_050058D0
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel blargg_geo # 0x0C000240
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blargg_seg5_dl_05005D00
geo_open_node
geo_animated_part LAYER_OPAQUE, 306, 0, 0, blargg_seg5_dl_05005A60
geo_open_node
geo_animated_part LAYER_OPAQUE, 6, 3, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blargg_seg5_dl_050058D0
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end

1090
actors/blargg/model.s

File diff suppressed because it is too large

54
actors/blue_coin_switch/collision.s

@ -1,27 +1,27 @@
# Blue Coin Switch
glabel blue_coin_switch_seg8_collision_08000E98 # 0x08000E98 - 0x08000F10
colInit
colVertexInit 0x8
colVertex 26, 0, 26
colVertex 26, 26, 26
colVertex -25, 26, 26
colVertex -25, 0, 26
colVertex 26, 0, -25
colVertex 26, 26, -25
colVertex -25, 26, -25
colVertex -25, 0, -25
colTriInit SURFACE_DEFAULT, 10
colTri 0, 1, 2
colTri 0, 2, 3
colTri 4, 5, 1
colTri 5, 6, 2
colTri 5, 2, 1
colTri 7, 6, 5
colTri 7, 5, 4
colTri 3, 6, 7
colTri 3, 2, 6
colTri 4, 1, 0
colTriStop
colEnd
# Blue Coin Switch
glabel blue_coin_switch_seg8_collision_08000E98 # 0x08000E98 - 0x08000F10
colInit
colVertexInit 0x8
colVertex 26, 0, 26
colVertex 26, 26, 26
colVertex -25, 26, 26
colVertex -25, 0, 26
colVertex 26, 0, -25
colVertex 26, 26, -25
colVertex -25, 26, -25
colVertex -25, 0, -25
colTriInit SURFACE_DEFAULT, 10
colTri 0, 1, 2
colTri 0, 2, 3
colTri 4, 5, 1
colTri 5, 6, 2
colTri 5, 2, 1
colTri 7, 6, 5
colTri 7, 5, 4
colTri 3, 6, 7
colTri 3, 2, 6
colTri 4, 1, 0
colTriStop
colEnd

16
actors/blue_coin_switch/geo.s

@ -1,8 +1,8 @@
glabel blue_coin_switch_geo # 0x0F000000
geo_culling_radius 300
geo_open_node
geo_open_node
geo_display_list LAYER_OPAQUE, blue_coin_switch_seg8_dl_08000E08
geo_close_node
geo_close_node
geo_end
glabel blue_coin_switch_geo # 0x0F000000
geo_culling_radius 300
geo_open_node
geo_open_node
geo_display_list LAYER_OPAQUE, blue_coin_switch_seg8_dl_08000E08
geo_close_node
geo_close_node
geo_end

158
actors/blue_coin_switch/model.s

@ -1,79 +1,79 @@
# Blue Coin Switch
blue_coin_switch_seg8_light_08000000: # 0x08000000
.byte 0x7F, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x7F, 0x00
blue_coin_switch_seg8_light_08000008: # 0x08000008
.byte 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
blue_coin_switch_seg8_texture_08000018: # 0x08000018
.incbin "actors/blue_coin_switch/blue_coin_switch_side.rgba16"
blue_coin_switch_seg8_texture_08000418: # 0x08000418
.incbin "actors/blue_coin_switch/blue_coin_switch_top.rgba16"
blue_coin_switch_seg8_vertex_08000C18: # 0x08000C18
vertex 26, 0, 26, 990, 479, 0x00, 0x00, 0x7F, 0xFF
vertex 26, 26, 26, 990, 0, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 26, 26, 0, 0, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 0, 26, 0, 479, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 0, -25, 990, 479, 0x00, 0x00, 0x81, 0xFF
vertex 26, 26, -25, 0, 0, 0x00, 0x00, 0x81, 0xFF
vertex 26, 0, -25, 0, 479, 0x00, 0x00, 0x81, 0xFF
vertex -25, 26, -25, 990, 0, 0x00, 0x00, 0x81, 0xFF
vertex -25, 0, 26, 990, 479, 0x81, 0x00, 0x00, 0xFF
vertex -25, 26, -25, 0, 0, 0x81, 0x00, 0x00, 0xFF
vertex -25, 0, -25, 0, 479, 0x81, 0x00, 0x00, 0xFF
vertex -25, 26, 26, 990, 0, 0x81, 0x00, 0x00, 0xFF
vertex 26, 0, -25, 990, 479, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 26, -25, 990, 0, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 26, 26, 0, 0, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 0, 26, 0, 479, 0x7F, 0x00, 0x00, 0xFF
blue_coin_switch_seg8_vertex_08000D18: # 0x08000D18
vertex 26, 26, -25, 990, 0, 0x00, 0x7F, 0x00, 0xFF
vertex -25, 26, 26, 0, 990, 0x00, 0x7F, 0x00, 0xFF
vertex 26, 26, 26, 990, 990, 0x00, 0x7F, 0x00, 0xFF
vertex -25, 26, -25, 0, 0, 0x00, 0x7F, 0x00, 0xFF
glabel blue_coin_switch_seg8_dl_08000D58 # 0x08000D58 - 0x08000DD0
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000018
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x1FF, 0x100
gsSPLight blue_coin_switch_seg8_light_08000008, 1
gsSPLight blue_coin_switch_seg8_light_08000000, 2
gsSPVertex blue_coin_switch_seg8_vertex_08000C18, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 0, 2, 3, 0x0
gsSP2Triangles 4, 5, 6, 0x0, 4, 7, 5, 0x0
gsSP2Triangles 8, 9, 10, 0x0, 8, 11, 9, 0x0
gsSP2Triangles 12, 13, 14, 0x0, 12, 14, 15, 0x0
gsSPEndDisplayList
glabel blue_coin_switch_seg8_dl_08000DD0 # 0x08000DD0 - 0x08000E08
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000418
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x3FF, 0x100
gsSPVertex blue_coin_switch_seg8_vertex_08000D18, 4, 0
gsSP2Triangles 0, 1, 2, 0x0, 0, 3, 1, 0x0
gsSPEndDisplayList
glabel blue_coin_switch_seg8_dl_08000E08 # 0x08000E08 - 0x08000E98
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_TEXEL0, G_CCMUX_0, G_CCMUX_SHADE, G_CCMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPClearGeometryMode G_SHADING_SMOOTH
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD
gsSPTexture -1, -1, 0, 0, 1
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 60
gsSPDisplayList blue_coin_switch_seg8_dl_08000D58
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 124
gsSPDisplayList blue_coin_switch_seg8_dl_08000DD0
gsSPTexture -1, -1, 0, 0, 0
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_SHADE, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPSetGeometryMode G_SHADING_SMOOTH
gsSPEndDisplayList
# Blue Coin Switch
blue_coin_switch_seg8_light_08000000: # 0x08000000
.byte 0x7F, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x7F, 0x00
blue_coin_switch_seg8_light_08000008: # 0x08000008
.byte 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
blue_coin_switch_seg8_texture_08000018: # 0x08000018
.incbin "actors/blue_coin_switch/blue_coin_switch_side.rgba16"
blue_coin_switch_seg8_texture_08000418: # 0x08000418
.incbin "actors/blue_coin_switch/blue_coin_switch_top.rgba16"
blue_coin_switch_seg8_vertex_08000C18: # 0x08000C18
vertex 26, 0, 26, 990, 479, 0x00, 0x00, 0x7F, 0xFF
vertex 26, 26, 26, 990, 0, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 26, 26, 0, 0, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 0, 26, 0, 479, 0x00, 0x00, 0x7F, 0xFF
vertex -25, 0, -25, 990, 479, 0x00, 0x00, 0x81, 0xFF
vertex 26, 26, -25, 0, 0, 0x00, 0x00, 0x81, 0xFF
vertex 26, 0, -25, 0, 479, 0x00, 0x00, 0x81, 0xFF
vertex -25, 26, -25, 990, 0, 0x00, 0x00, 0x81, 0xFF
vertex -25, 0, 26, 990, 479, 0x81, 0x00, 0x00, 0xFF
vertex -25, 26, -25, 0, 0, 0x81, 0x00, 0x00, 0xFF
vertex -25, 0, -25, 0, 479, 0x81, 0x00, 0x00, 0xFF
vertex -25, 26, 26, 990, 0, 0x81, 0x00, 0x00, 0xFF
vertex 26, 0, -25, 990, 479, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 26, -25, 990, 0, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 26, 26, 0, 0, 0x7F, 0x00, 0x00, 0xFF
vertex 26, 0, 26, 0, 479, 0x7F, 0x00, 0x00, 0xFF
blue_coin_switch_seg8_vertex_08000D18: # 0x08000D18
vertex 26, 26, -25, 990, 0, 0x00, 0x7F, 0x00, 0xFF
vertex -25, 26, 26, 0, 990, 0x00, 0x7F, 0x00, 0xFF
vertex 26, 26, 26, 990, 990, 0x00, 0x7F, 0x00, 0xFF
vertex -25, 26, -25, 0, 0, 0x00, 0x7F, 0x00, 0xFF
glabel blue_coin_switch_seg8_dl_08000D58 # 0x08000D58 - 0x08000DD0
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000018
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x1FF, 0x100
gsSPLight blue_coin_switch_seg8_light_08000008, 1
gsSPLight blue_coin_switch_seg8_light_08000000, 2
gsSPVertex blue_coin_switch_seg8_vertex_08000C18, 16, 0
gsSP2Triangles 0, 1, 2, 0x0, 0, 2, 3, 0x0
gsSP2Triangles 4, 5, 6, 0x0, 4, 7, 5, 0x0
gsSP2Triangles 8, 9, 10, 0x0, 8, 11, 9, 0x0
gsSP2Triangles 12, 13, 14, 0x0, 12, 14, 15, 0x0
gsSPEndDisplayList
glabel blue_coin_switch_seg8_dl_08000DD0 # 0x08000DD0 - 0x08000E08
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_coin_switch_seg8_texture_08000418
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x3FF, 0x100
gsSPVertex blue_coin_switch_seg8_vertex_08000D18, 4, 0
gsSP2Triangles 0, 1, 2, 0x0, 0, 3, 1, 0x0
gsSPEndDisplayList
glabel blue_coin_switch_seg8_dl_08000E08 # 0x08000E08 - 0x08000E98
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_TEXEL0, G_CCMUX_0, G_CCMUX_SHADE, G_CCMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPClearGeometryMode G_SHADING_SMOOTH
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD
gsSPTexture -1, -1, 0, 0, 1
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 60
gsSPDisplayList blue_coin_switch_seg8_dl_08000D58
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 124
gsSPDisplayList blue_coin_switch_seg8_dl_08000DD0
gsSPTexture -1, -1, 0, 0, 0
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_SHADE, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPSetGeometryMode G_SHADING_SMOOTH
gsSPEndDisplayList

56
actors/blue_fish/geo.s

@ -1,28 +1,28 @@
glabel fish_shadow_geo # 0x16000BEC
geo_shadow SHADOW_CIRCLE_4_VERTS, 0x9B, 50
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, -16, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8
geo_open_node
geo_animated_part LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel fish_geo # 0x16000C44
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, -16, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8
geo_open_node
geo_animated_part LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel fish_shadow_geo # 0x16000BEC
geo_shadow SHADOW_CIRCLE_4_VERTS, 0x9B, 50
geo_open_node
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, -16, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8
geo_open_node
geo_animated_part LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150
geo_close_node
geo_close_node
geo_close_node
geo_close_node
geo_end
glabel fish_geo # 0x16000C44
geo_scale 0x00, 16384
geo_open_node
geo_animated_part LAYER_OPAQUE, -16, 0, 0
geo_open_node
geo_animated_part LAYER_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8
geo_open_node
geo_animated_part LAYER_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150
geo_close_node
geo_close_node
geo_close_node
geo_end

274
actors/blue_fish/model.s

@ -1,137 +1,137 @@
# Blue Fish
blue_fish_seg3_light_0301B5C8: # 0x0301B5C8
.byte 0x3F, 0x3F, 0x3F, 0x00, 0x3F, 0x3F, 0x3F, 0x00
blue_fish_seg3_light_0301B5D0: # 0x0301B5D0
.byte 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
blue_fish_seg3_texture_0301B5E0: # 0x0301B5E0
.incbin "actors/blue_fish/blue_fish.rgba16"
blue_fish_seg3_vertex_0301BDE0: # 0x0301BDE0
vertex -108, 1, 0, 14, 566, 0x89, 0x00, 0xD7, 0xFF
vertex -44, -13, -31, 286, 688, 0xEB, 0x89, 0xDC, 0xFF
vertex -62, -19, 12, 210, 502, 0xE8, 0x84, 0x0A, 0xFF
vertex -44, 16, -31, 286, 688, 0xEA, 0x77, 0xDC, 0xFF
vertex -62, 21, 12, 210, 502, 0xE8, 0x7C, 0x0B, 0xFF
vertex -47, 1, -64, 274, 830, 0xBD, 0xFF, 0x95, 0xFF
vertex -97, 1, 23, 62, 462, 0xA2, 0x00, 0x54, 0xFF
vertex 55, 1, 127, 712, -8, 0x1A, 0x00, 0x7C, 0xFF
vertex 41, 16, 56, 656, 298, 0x43, 0x67, 0x1B, 0xFF
vertex 50, 16, -43, 692, 722, 0x35, 0x6F, 0xE6, 0xFF
vertex 41, -14, 56, 656, 298, 0x43, 0x99, 0x1B, 0xFF
vertex 50, -13, -43, 692, 722, 0x35, 0x91, 0xE6, 0xFF
vertex 62, 1, -92, 742, 930, 0x42, 0xFF, 0x94, 0xFF
vertex 101, 1, 1, 910, 520, 0x7E, 0x00, 0x01, 0xFF
glabel blue_fish_seg3_dl_0301BEC0 # 0x0301BEC0 - 0x0301BFB8
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x3FF, 0x100
gsSPLight blue_fish_seg3_light_0301B5D0, 1
gsSPLight blue_fish_seg3_light_0301B5C8, 2
gsSPVertex blue_fish_seg3_vertex_0301BDE0, 14, 0
gsSP2Triangles 0, 1, 2, 0x0, 3, 0, 4, 0x0
gsSP2Triangles 5, 0, 3, 0x0, 2, 6, 0, 0x0
gsSP2Triangles 0, 6, 4, 0x0, 5, 1, 0, 0x0
gsSP2Triangles 4, 6, 7, 0x0, 6, 2, 7, 0x0
gsSP2Triangles 7, 8, 4, 0x0, 9, 4, 8, 0x0
gsSP2Triangles 9, 3, 4, 0x0, 2, 10, 7, 0x0
gsSP2Triangles 1, 11, 2, 0x0, 11, 10, 2, 0x0
gsSP2Triangles 1, 5, 12, 0x0, 12, 5, 3, 0x0
gsSP2Triangles 9, 11, 12, 0x0, 3, 9, 12, 0x0
gsSP2Triangles 12, 11, 1, 0x0, 8, 7, 10, 0x0
gsSP2Triangles 13, 9, 8, 0x0, 9, 13, 11, 0x0
gsSP2Triangles 11, 13, 10, 0x0, 10, 13, 8, 0x0
gsSPEndDisplayList
glabel blue_fish_seg3_dl_0301BFB8 # 0x0301BFB8 - 0x0301C018
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_TEXEL0, G_CCMUX_0, G_CCMUX_SHADE, G_CCMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD
gsSPTexture -1, -1, 0, 0, 1
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 124
gsSPDisplayList blue_fish_seg3_dl_0301BEC0
gsSPTexture -1, -1, 0, 0, 0
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_SHADE, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPEndDisplayList
blue_fish_seg3_vertex_0301C018: # 0x0301C018
vertex 67, 0, -58, 736, 728, 0x7A, 0x00, 0xDE, 0xFF
vertex 67, -3, -28, 704, 574, 0x53, 0xA3, 0x14, 0xFF
vertex 0, 1, -3, 1022, 356, 0xA1, 0xF9, 0xAD, 0xFF
vertex 67, 4, 27, 644, 290, 0x3F, 0x6D, 0xF3, 0xFF
vertex 53, 0, 0, 744, 414, 0x7E, 0x00, 0xFE, 0xFF
vertex 67, -3, 27, 644, 290, 0x40, 0x95, 0xEB, 0xFF
vertex 0, 0, 5, 1016, 312, 0x9E, 0xFD, 0x50, 0xFF
vertex 67, 4, -28, 704, 574, 0x54, 0x5C, 0x15, 0xFF
vertex 67, 0, 57, 612, 138, 0x7A, 0x00, 0x22, 0xFF
glabel blue_fish_seg3_dl_0301C0A8 # 0x0301C0A8 - 0x0301C150
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0
gsDPLoadSync
gsDPLoadBlock 7, 0, 0, 0x3FF, 0x100
gsSPLight blue_fish_seg3_light_0301B5D0, 1
gsSPLight blue_fish_seg3_light_0301B5C8, 2
gsSPVertex blue_fish_seg3_vertex_0301C018, 9, 0
gsSP2Triangles 0, 1, 2, 0x0, 2, 3, 4, 0x0
gsSP2Triangles 4, 5, 2, 0x0, 2, 5, 6, 0x0
gsSP2Triangles 2, 1, 4, 0x0, 2, 6, 3, 0x0
gsSP2Triangles 4, 7, 2, 0x0, 2, 7, 0, 0x0
gsSP2Triangles 6, 8, 3, 0x0, 3, 8, 5, 0x0
gsSP2Triangles 3, 5, 4, 0x0, 4, 1, 7, 0x0
gsSP2Triangles 6, 5, 8, 0x0, 1, 0, 7, 0x0
gsSPEndDisplayList
glabel blue_fish_seg3_dl_0301C150 # 0x0301C150 - 0x0301C1B0
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_TEXEL0, G_CCMUX_0, G_CCMUX_SHADE, G_CCMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD
gsSPTexture -1, -1, 0, 0, 1
gsDPTileSync
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
gsDPSetTileSize 0, 0, 0, 124, 124
gsSPDisplayList blue_fish_seg3_dl_0301C0A8
gsSPTexture -1, -1, 0, 0, 0
gsDPPipeSync
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_SHADE, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_SHADE
gsSPEndDisplayList
blue_fish_seg3_animvalue_0301C1B0: # 0x0301C1B0
.hword 0x0000, 0xFFF1, 0xFFF1, 0xFFF2, 0xFFF4, 0xFFF7, 0xFFFA, 0xFFFD
.hword 0x0000, 0x0002, 0x0005, 0x0008, 0x000A, 0x000C, 0x000E, 0x000E
.hword 0x000E, 0x000D, 0x000C, 0x000A, 0x0009, 0x0006, 0x0004, 0x0002
.hword 0x0000, 0xFFFD, 0xFFFB, 0xFFF8, 0xFFF6, 0xFFF3, 0xFFF1, 0xC001
.hword 0xF3F6, 0xF61A, 0xFAF7, 0x003A, 0x0390, 0x052A, 0x06BA, 0x0832
.hword 0x0984, 0x0AA1, 0x0B7C, 0x0C06, 0x0C31, 0x0BEE, 0x0B2F, 0x078D
.hword 0x00B3, 0xF9AA, 0xF579, 0xF3FF, 0xF306, 0xF27B, 0xF247, 0xF258
.hword 0xF298, 0xF2F4, 0xF356, 0xF3AB, 0xF3DE, 0xF3DA, 0x461C, 0x4623
.hword 0x462E, 0x4629, 0x4603, 0x45AA, 0x450A, 0x4410, 0x42C9, 0x4151
.hword 0x3FC6, 0x3E45, 0x3CEA, 0x3BD2, 0x3B1B, 0x3ACE, 0x3AD5, 0x3B20
.hword 0x3BA0, 0x3C43, 0x3CFA, 0x3DB5, 0x3E7E, 0x3F66, 0x4066, 0x4177
.hword 0x4292, 0x43AF, 0x44C7, 0x45D4
blue_fish_seg3_animindex_0301C268: # 0x0301C268
.hword 0x001E, 0x0001, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x001F