You've already forked Microtransactions64
mirror of
https://github.com/Print-and-Panic/Microtransactions64.git
synced 2026-01-21 10:17:19 -08:00
Refresh 2
This commit is contained in:
29
CHANGES
29
CHANGES
@@ -1,3 +1,32 @@
|
||||
Refresh #2
|
||||
Changes from Refresh #1:
|
||||
1.) Label src/game/behaviors/boo.inc.c
|
||||
2.) Verify half of audio_defines.h
|
||||
3.) Label ingame_menu.c and some dialog stuff
|
||||
4.) Improve handle_dialog_text_and_pages EU non-matching
|
||||
5.) Fix texture format for water splash/sparkle
|
||||
6.) Merge ucode.bin and ucode_unk.bin
|
||||
7.) 64-bit fixes
|
||||
8.) [AUDIO] Match func_80316928
|
||||
9.) Documented bug in Tuxie's mother's code
|
||||
10.) [AUDIO] Slightly closer matching for process_level_music_dynamics
|
||||
11.) Name channel scripts in sequence 0
|
||||
12.) Nicer error message when sha1sum doesn't match
|
||||
13.) Refactor object fields
|
||||
14.) Document file_select.c
|
||||
15.) Document star_select.c
|
||||
16.) Add uncompressed string support to textconv
|
||||
17.) Document main_menu geo and leveldata
|
||||
18.) Document hud.c and rename char textures
|
||||
19.) Correct gSPTextureRectangle values
|
||||
20.) Linker script wildcard
|
||||
- Fixes "undefined reference to x in discarded section y" linker errors.
|
||||
- Also means that you no longer have to add linker script entries for source files.
|
||||
21.) Reference qemu-irix package and add project structure
|
||||
- Installing qemu-irix is as simple as installing the provided Debian package on the GitHub "Releases" tab
|
||||
(https://github.com/n64decomp/qemu-irix).
|
||||
- Old qemu-irix installs are unaffected by this change, and it is still possible to install qemu-irix with the older method.
|
||||
|
||||
Refresh #1
|
||||
Changes from initial release:
|
||||
|
||||
|
||||
29
Makefile
29
Makefile
@@ -131,7 +131,7 @@ TEXTURE_DIR := textures
|
||||
ACTOR_DIR := actors
|
||||
|
||||
# Directories containing source files
|
||||
SRC_DIRS := src src/engine src/game src/audio
|
||||
SRC_DIRS := src src/engine src/game src/audio src/menu src/buffers
|
||||
ASM_DIRS := asm actors lib data levels assets sound text
|
||||
BIN_DIRS := bin bin/$(VERSION)
|
||||
|
||||
@@ -207,6 +207,14 @@ else
|
||||
CROSS := mips64-elf-
|
||||
endif
|
||||
|
||||
# check that either QEMU_IRIX is set or qemu-irix package installed
|
||||
ifndef QEMU_IRIX
|
||||
QEMU_IRIX := $(shell which qemu-irix)
|
||||
ifeq (, $(QEMU_IRIX))
|
||||
$(error Please install qemu-irix package or set QEMU_IRIX env var to the full qemu-irix binary path)
|
||||
endif
|
||||
endif
|
||||
|
||||
AS := $(CROSS)as
|
||||
CC := $(QEMU_IRIX) -silent -L $(IRIX_ROOT) $(IRIX_ROOT)/usr/bin/cc
|
||||
CPP := cpp -P
|
||||
@@ -260,15 +268,11 @@ ifeq ($(BINUTILS_DEPEND),0)
|
||||
$(error binutils version 2.27 required, version $(BINUTILS_VER_MAJOR).$(BINUTILS_VER_MINOR) detected)
|
||||
endif
|
||||
|
||||
ifndef QEMU_IRIX
|
||||
$(error env variable QEMU_IRIX should point to the qemu-mips binary)
|
||||
endif
|
||||
|
||||
######################## Targets #############################
|
||||
|
||||
all: $(ROM)
|
||||
ifeq ($(COMPARE),1)
|
||||
@$(SHA1SUM) -c $(TARGET).sha1
|
||||
@$(SHA1SUM) -c $(TARGET).sha1 || (echo 'The build succeeded, but did not match the official ROM. This is expected if you are making changes to the game.\nTo silence this message, use "make COMPARE=0"'. && false)
|
||||
endif
|
||||
|
||||
clean:
|
||||
@@ -288,13 +292,16 @@ libultra: $(BUILD_DIR)/libultra.a
|
||||
|
||||
asm/boot.s: $(BUILD_DIR)/lib/bin/ipl3_font.bin
|
||||
|
||||
$(BUILD_DIR)/lib/bin/ipl3_font.bin: lib/ipl3_font.png | $(BUILD_DIR)
|
||||
$(BUILD_DIR)/lib/bin/ipl3_font.bin: lib/ipl3_font.png
|
||||
$(IPLFONTUTIL) e $< $@
|
||||
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in | $(BUILD_DIR)
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
|
||||
$(TEXTCONV) charmap.txt $< $@
|
||||
|
||||
$(BUILD_DIR)/text/%.s: text/$(VERSION)/%.s.in | $(BUILD_DIR)
|
||||
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
|
||||
$(TEXTCONV) charmap_menu.txt $< $@
|
||||
|
||||
$(BUILD_DIR)/text/%.s: text/$(VERSION)/%.s.in
|
||||
$(TEXTCONV) charmap.txt $< $@
|
||||
|
||||
ifeq ($(VERSION),eu)
|
||||
@@ -313,8 +320,8 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(GOD
|
||||
# Make sure build directory exists before compiling anything
|
||||
DUMMY != mkdir -p $(ALL_DIRS)
|
||||
|
||||
$(BUILD_DIR)/src/game/star_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/game/file_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h $(BUILD_DIR)/include/text_menu_strings.h
|
||||
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h $(BUILD_DIR)/include/text_menu_strings.h
|
||||
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
|
||||
|
||||
################################################################
|
||||
|
||||
60
README.md
60
README.md
@@ -35,33 +35,22 @@ __Debian / Ubuntu__
|
||||
sudo apt install build-essential pkg-config git binutils-mips-linux-gnu python3 zlib1g-dev libaudiofile-dev
|
||||
```
|
||||
|
||||
Download latest package from [qemu-irix Releases](https://github.com/n64decomp/qemu-irix/releases)
|
||||
```
|
||||
sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
|
||||
```
|
||||
|
||||
(Optional) Clone https://github.com/n64decomp/qemu-irix and follow the install instructions in the README.
|
||||
|
||||
__Arch Linux__
|
||||
```
|
||||
sudo pacman -Sy base-devel python audiofile
|
||||
sudo pacman -S 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
|
||||
|
||||
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. Define `QEMU_IRIX` environment variable in your `~/.bashrc` to point to this qemu-irix executable.
|
||||
```
|
||||
export QEMU_IRIX=/opt/qemu-irix/bin/qemu-irix
|
||||
```
|
||||
|
||||
#### 4. Build ROM
|
||||
#### 3. 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
|
||||
@@ -85,6 +74,37 @@ Then follow the directions in the [Linux](#linux) installation section above.
|
||||
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.
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
sm64
|
||||
├── actors: object behaviors, geo layout, and display lists
|
||||
├── asm: handwritten assembly code
|
||||
│ └── non_matchings: asm for non-matching sections
|
||||
├── assets: animation and demo data
|
||||
│ ├── anims: animation data
|
||||
│ └── demos: demo data
|
||||
├── bin: asm 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
|
||||
├── 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
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Pull requests are welcome. For major changes, please open an issue first to
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
# It's possible that bubba and bub used to be 2 "actors" in
|
||||
# one actor file.
|
||||
|
||||
.word 0
|
||||
.word 0 # Bin ID? What is this?
|
||||
.dword 0 # Bin ID? What is this?
|
||||
|
||||
# Bubba
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ vertex 26, -26, 0, 992, 992, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 26, 26, 0, 992, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex -26, 26, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
.word 0, 0 # align but balign wont here?
|
||||
.dword 0 # align? binid?
|
||||
|
||||
chain_ball_seg6_texture_06020AE8: # 0x06020AE8
|
||||
.incbin "actors/chain_ball/chain_ball.rgba16"
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Cyan Fish
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 0
|
||||
.dword 0
|
||||
|
||||
cyan_fish_seg6_texture_0600D468: # 0x0600D468
|
||||
.incbin "actors/cyan_fish/cyan_fish.rgba16"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Flyguy
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 0
|
||||
.dword 0
|
||||
|
||||
flyguy_seg8_texture_0800E088: # 0x0800E088
|
||||
.incbin "actors/flyguy/flyguy_cloth_wrinkle.rgba16"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Possible Removed Actor File
|
||||
|
||||
.word 0
|
||||
.word 0 # Bin ID? What is this?
|
||||
.dword 0 # Bin ID? What is this?
|
||||
|
||||
# Klepto
|
||||
|
||||
|
||||
@@ -2191,5 +2191,4 @@ glabel piranha_plant_seg6_anims_0601C31C # 0x0601C31C
|
||||
.word 0
|
||||
|
||||
# huh? this isnt following the Bin ID format?
|
||||
.word 0
|
||||
.word 1
|
||||
.dword 1
|
||||
|
||||
@@ -1,50 +1,48 @@
|
||||
# Power Meter HUD
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 0
|
||||
.word 0, 0
|
||||
|
||||
power_meter_seg3_texture_030233E0: # 0x030233E0
|
||||
texture_power_meter_left_side: # 0x030233E0
|
||||
.incbin "actors/power_meter/power_meter_left_side.rgba16"
|
||||
|
||||
power_meter_seg3_texture_030243E0: # 0x030243E0
|
||||
texture_power_meter_right_side: # 0x030243E0
|
||||
.incbin "actors/power_meter/power_meter_right_side.rgba16"
|
||||
|
||||
power_meter_seg3_texture_030253E0: # 0x030253E0
|
||||
texture_power_meter_full: # 0x030253E0
|
||||
.incbin "actors/power_meter/power_meter_full.rgba16"
|
||||
|
||||
power_meter_seg3_texture_03025BE0: # 0x03025BE0
|
||||
texture_power_meter_seven_segments: # 0x03025BE0
|
||||
.incbin "actors/power_meter/power_meter_seven_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_030263E0: # 0x030263E0
|
||||
texture_power_meter_six_segments: # 0x030263E0
|
||||
.incbin "actors/power_meter/power_meter_six_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_03026BE0: # 0x03026BE0
|
||||
texture_power_meter_five_segments: # 0x03026BE0
|
||||
.incbin "actors/power_meter/power_meter_five_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_030273E0: # 0x030273E0
|
||||
texture_power_meter_four_segments: # 0x030273E0
|
||||
.incbin "actors/power_meter/power_meter_four_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_03027BE0: # 0x03027BE0
|
||||
texture_power_meter_three_segments: # 0x03027BE0
|
||||
.incbin "actors/power_meter/power_meter_three_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_030283E0: # 0x030283E0
|
||||
texture_power_meter_two_segments: # 0x030283E0
|
||||
.incbin "actors/power_meter/power_meter_two_segments.rgba16"
|
||||
|
||||
power_meter_seg3_texture_03028BE0: # 0x03028BE0
|
||||
texture_power_meter_one_segments: # 0x03028BE0
|
||||
.incbin "actors/power_meter/power_meter_one_segment.rgba16"
|
||||
|
||||
glabel power_meter_seg3_health_icons_030293E0 # 0x030293E0
|
||||
.word power_meter_seg3_texture_03028BE0
|
||||
.word power_meter_seg3_texture_030283E0
|
||||
.word power_meter_seg3_texture_03027BE0
|
||||
.word power_meter_seg3_texture_030273E0
|
||||
.word power_meter_seg3_texture_03026BE0
|
||||
.word power_meter_seg3_texture_030263E0
|
||||
.word power_meter_seg3_texture_03025BE0
|
||||
.word power_meter_seg3_texture_030253E0
|
||||
glabel power_meter_health_segments_lut # 0x030293E0
|
||||
.word texture_power_meter_one_segments
|
||||
.word texture_power_meter_two_segments
|
||||
.word texture_power_meter_three_segments
|
||||
.word texture_power_meter_four_segments
|
||||
.word texture_power_meter_five_segments
|
||||
.word texture_power_meter_six_segments
|
||||
.word texture_power_meter_seven_segments
|
||||
.word texture_power_meter_full
|
||||
|
||||
power_meter_seg3_vertex_03029400: # 0x03029400
|
||||
vertex_power_meter_base: # 0x03029400
|
||||
vertex -32, -32, 0, 0, 2016, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 0, -32, 0, 992, 2016, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 0, 32, 0, 992, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
@@ -54,56 +52,56 @@ vertex 32, -32, 0, 1024, 2016, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 32, 32, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 0, 32, 0, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
glabel power_meter_seg3_dl_03029480 # 0x03029480 - 0x03029530
|
||||
glabel dl_power_meter_base # 0x03029480 - 0x03029530
|
||||
gsDPPipeSync
|
||||
gsSPClearGeometryMode G_LIGHTING
|
||||
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_TEXEL0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_TEXEL0
|
||||
|
||||
# There were multiple matching pairs, so I don't know if this is correct or not.
|
||||
gsDPSetRenderMode G_RM_TEX_EDGE, G_RM_TEX_EDGE2
|
||||
# It could also be one of these:
|
||||
# It could also be one of these:
|
||||
# G_RM_OPA_SURF, G_RM_TEX_EDGE2; G_RM_TEX_EDGE, G_RM_OPA_SURF2; G_RM_RA_ZB_OPA_SURF, G_RM_TEX_EDGE, G_RM_OPA_CI2;
|
||||
# G_RM_OPA_CI, G_RM_TEX_EDGE2; G_G_RM_PASS, G_RM_TEX_EDGE2;
|
||||
# G_RM_OPA_CI, G_RM_TEX_EDGE2; G_G_RM_PASS, G_RM_TEX_EDGE2;
|
||||
|
||||
gsDPSetTextureFilter G_TF_POINT
|
||||
gsSPTexture -1, -1, 0, 0, 1
|
||||
gsSPVertex power_meter_seg3_vertex_03029400, 8, 0
|
||||
gsSPVertex vertex_power_meter_base, 8, 0
|
||||
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
|
||||
gsDPTileSync
|
||||
gsDPSetTile G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, G_TX_NOLOD, G_TX_CLAMP | G_TX_NOMIRROR, 5, G_TX_NOLOD
|
||||
gsDPSetTileSize 0, 0, 0, 124, 252
|
||||
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, power_meter_seg3_texture_030233E0
|
||||
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_power_meter_left_side
|
||||
gsDPLoadSync
|
||||
gsDPLoadBlock 7, 0, 0, 0x7FF, 0x100
|
||||
gsSP2Triangles 0, 1, 2, 0x0, 0, 2, 3, 0x0
|
||||
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, power_meter_seg3_texture_030243E0
|
||||
gsDPSetTextureImage G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, texture_power_meter_right_side
|
||||
gsDPLoadSync
|
||||
gsDPLoadBlock 7, 0, 0, 0x7FF, 0x100
|
||||
gsSP2Triangles 4, 5, 6, 0x0, 4, 6, 7, 0x0
|
||||
gsSPEndDisplayList
|
||||
|
||||
power_meter_seg3_vertex_03029530: # 0x03029530
|
||||
vertex_power_meter_health_segments: # 0x03029530
|
||||
vertex -16, -16, 0, 0, 992, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 15, -16, 0, 992, 992, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex 15, 16, 0, 992, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex -16, 16, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
glabel power_meter_seg3_dl_03029570 # 0x03029570 - 0x030295A0
|
||||
glabel dl_power_meter_health_segments_begin # 0x03029570 - 0x030295A0
|
||||
gsDPPipeSync
|
||||
gsSPVertex power_meter_seg3_vertex_03029530, 4, 0
|
||||
gsSPVertex vertex_power_meter_health_segments, 4, 0
|
||||
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
|
||||
gsSPEndDisplayList
|
||||
|
||||
glabel power_meter_seg3_dl_030295A0 # 0x030295A0 - 0x030295D8
|
||||
glabel dl_power_meter_health_segments_end # 0x030295A0 - 0x030295D8
|
||||
gsDPPipeSync
|
||||
gsSPTexture -1, -1, 0, 0, 0
|
||||
gsSPSetGeometryMode G_LIGHTING
|
||||
|
||||
# There were multiple matching pairs, so I don't know if this is correct or not.
|
||||
gsDPSetRenderMode G_RM_OPA_SURF, G_RM_OPA_SURF2
|
||||
# It could also be one of these:
|
||||
# It could also be one of these:
|
||||
# G_RM_OPA_SURF, G_RM_OPA_CI2; G_RM_OPA_CI, G_RM_OPA_SURF2; G_RM_PASS, G_RM_OPA_SURF2;
|
||||
|
||||
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
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Small Key (unused)
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 0
|
||||
.dword 0
|
||||
|
||||
small_key_seg5_light_05005798: # 0x05005798
|
||||
.byte 0x3F, 0x19, 0x0C, 0x00, 0x3F, 0x19, 0x0C, 0x00
|
||||
@@ -32,7 +31,7 @@ small_key_seg5_light_050057E8: # 0x050057E8
|
||||
.byte 0xCC, 0xFF, 0x00, 0x00, 0xCC, 0xFF, 0x00, 0x00
|
||||
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.word 0, 0 # align?
|
||||
.balign 16
|
||||
small_key_seg5_vertex_05005800: # 0x05005800
|
||||
vertex -14, -109, 14, 0, 0, 0x00, 0x00, 0x7F, 0x00
|
||||
vertex 14, -109, 14, 0, 0, 0x00, 0x00, 0x7F, 0x00
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Snowman
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 1
|
||||
.dword 1
|
||||
|
||||
# Unreferenced light
|
||||
.byte 0x0D, 0x0C, 0x28, 0x00, 0x0D, 0x0C, 0x28, 0x00
|
||||
|
||||
@@ -7,22 +7,22 @@ vertex 32, 64, 0, 1984, 0, 0x00, 0x00, 0x7F, 0x00
|
||||
vertex -32, 64, 0, 0, 0, 0x00, 0x00, 0x7F, 0x00
|
||||
|
||||
sparkles_seg4_texture_04027490: # 0x04027490
|
||||
.incbin "actors/sparkle/sparkle_0.ia16"
|
||||
.incbin "actors/sparkle/sparkle_0.rgba16"
|
||||
|
||||
sparkles_seg4_texture_04027C90: # 0x04027C90
|
||||
.incbin "actors/sparkle/sparkle_1.ia16"
|
||||
.incbin "actors/sparkle/sparkle_1.rgba16"
|
||||
|
||||
sparkles_seg4_texture_04028490: # 0x04028490
|
||||
.incbin "actors/sparkle/sparkle_2.ia16"
|
||||
.incbin "actors/sparkle/sparkle_2.rgba16"
|
||||
|
||||
sparkles_seg4_texture_04028C90: # 0x04028C90
|
||||
.incbin "actors/sparkle/sparkle_3.ia16"
|
||||
.incbin "actors/sparkle/sparkle_3.rgba16"
|
||||
|
||||
sparkles_seg4_texture_04029490: # 0x04029490
|
||||
.incbin "actors/sparkle/sparkle_4.ia16"
|
||||
.incbin "actors/sparkle/sparkle_4.rgba16"
|
||||
|
||||
sparkles_seg4_texture_04029C90: # 0x04029C90
|
||||
.incbin "actors/sparkle/sparkle_5.ia16"
|
||||
.incbin "actors/sparkle/sparkle_5.rgba16"
|
||||
|
||||
glabel sparkles_seg4_dl_0402A490 # 0x0402A490 - 0x0402A4F8
|
||||
gsDPSetCombineModeLERP1Cycle G_CCMUX_0, G_CCMUX_0, G_CCMUX_0, G_CCMUX_TEXEL0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_0, G_ACMUX_TEXEL0
|
||||
|
||||
@@ -184,10 +184,9 @@ spindrift_seg5_anim_050006AC: # 0x050006AC
|
||||
.word spindrift_seg5_animindex_050005F8
|
||||
.word 0
|
||||
|
||||
.word 0
|
||||
.balign 8
|
||||
|
||||
.word 0
|
||||
.word 1 # False Bin ID?
|
||||
.dword 1 # False Bin ID?
|
||||
|
||||
spindrift_seg5_texture_050006D0: # 0x050006D0
|
||||
.incbin "actors/spindrift/spindrift_face.rgba16"
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
# Could be a duplicate binid of the previous actor, but i'm putting it here for
|
||||
# macro reasons so I don't have to clutter the macros.inc with a new macro for this
|
||||
# case.
|
||||
.word 0
|
||||
.word 1
|
||||
.dword 1
|
||||
|
||||
sushi_seg5_texture_05008ED0: # 0x05008ED0
|
||||
.incbin "actors/sushi/sushi_snout.rgba16"
|
||||
|
||||
@@ -19,8 +19,7 @@ ukiki_seg5_light_05007BA8: # 0x05007BA8
|
||||
.byte 0xE7, 0x93, 0x61, 0x00, 0xE7, 0x93, 0x61, 0x00
|
||||
.byte 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.word 0
|
||||
.word 1 # The hell?
|
||||
.dword 1 # The hell?
|
||||
|
||||
ukiki_seg5_texture_05007BC0: # 0x05007BC0
|
||||
.incbin "actors/ukiki/ukiki_face.rgba16"
|
||||
|
||||
@@ -7,28 +7,28 @@ vertex 64, 256, 0, 992, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
vertex -64, 256, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
water_splash_seg4_texture_0402A5C8: # 0x0402A5C8
|
||||
.incbin "actors/water_splash/water_splash_0.ia16"
|
||||
.incbin "actors/water_splash/water_splash_0.rgba16"
|
||||
|
||||
water_splash_seg4_texture_0402B5C8: # 0x0402B5C8
|
||||
.incbin "actors/water_splash/water_splash_1.ia16"
|
||||
.incbin "actors/water_splash/water_splash_1.rgba16"
|
||||
|
||||
water_splash_seg4_texture_0402C5C8: # 0x0402C5C8
|
||||
.incbin "actors/water_splash/water_splash_2.ia16"
|
||||
.incbin "actors/water_splash/water_splash_2.rgba16"
|
||||
|
||||
water_splash_seg4_texture_0402D5C8: # 0x0402D5C8
|
||||
.incbin "actors/water_splash/water_splash_3.ia16"
|
||||
.incbin "actors/water_splash/water_splash_3.rgba16"
|
||||
|
||||
water_splash_seg4_texture_0402E5C8: # 0x0402E5C8
|
||||
.incbin "actors/water_splash/water_splash_4.ia16"
|
||||
.incbin "actors/water_splash/water_splash_4.rgba16"
|
||||
|
||||
water_splash_seg4_texture_0402F5C8: # 0x0402F5C8
|
||||
.incbin "actors/water_splash/water_splash_5.ia16"
|
||||
.incbin "actors/water_splash/water_splash_5.rgba16"
|
||||
|
||||
water_splash_seg4_texture_040305C8: # 0x040305C8
|
||||
.incbin "actors/water_splash/water_splash_6.ia16"
|
||||
.incbin "actors/water_splash/water_splash_6.rgba16"
|
||||
|
||||
water_splash_seg4_texture_040315C8: # 0x040315C8
|
||||
.incbin "actors/water_splash/water_splash_7.ia16"
|
||||
.incbin "actors/water_splash/water_splash_7.rgba16"
|
||||
|
||||
glabel water_splash_seg4_dl_040325C8 # 0x040325C8 - 0x04032640
|
||||
gsSPClearGeometryMode G_LIGHTING
|
||||
|
||||
@@ -13,23 +13,6 @@ colVertex 150, 430, -3
|
||||
colVertex 150, 50, -3
|
||||
colVertex -200, 430, -3
|
||||
|
||||
colTriInit SURFACE_CAM_NO_COL, 12
|
||||
colTri 2, 1, 0
|
||||
colTri 3, 2, 0
|
||||
colTri 6, 5, 4
|
||||
colTri 5, 7, 4
|
||||
colTri 7, 5, 3
|
||||
colTri 5, 2, 3
|
||||
colTri 6, 4, 0
|
||||
colTri 1, 6, 0
|
||||
colTri 5, 1, 2
|
||||
colTri 6, 1, 5
|
||||
colTri 0, 7, 3
|
||||
colTri 0, 4, 7
|
||||
colTriStop
|
||||
colEnd
|
||||
.word 0
|
||||
|
||||
.else
|
||||
|
||||
colInit
|
||||
@@ -42,6 +25,7 @@ colVertex -150, 50, -3
|
||||
colVertex 150, 430, -3
|
||||
colVertex 150, 50, -3
|
||||
colVertex -150, 430, -3
|
||||
.endif
|
||||
|
||||
colTriInit SURFACE_CAM_NO_COL, 12
|
||||
colTri 2, 1, 0
|
||||
@@ -58,5 +42,5 @@ colTri 0, 7, 3
|
||||
colTri 0, 4, 7
|
||||
colTriStop
|
||||
colEnd
|
||||
|
||||
.word 0
|
||||
.endif
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# Whomp
|
||||
|
||||
# ???
|
||||
.word 0
|
||||
.word 2
|
||||
.dword 2
|
||||
|
||||
.balign 8
|
||||
|
||||
@@ -571,4 +570,3 @@ whomp_seg6_anim_060209EC: # 0x060209EC
|
||||
glabel whomp_seg6_anims_06020A04 # 0x06020A04
|
||||
.word whomp_seg6_anim_060209EC
|
||||
.word whomp_seg6_anim_060202DC
|
||||
# no terminator? TODO: What does the 0 at the end of these structs actually do?
|
||||
|
||||
@@ -1,469 +0,0 @@
|
||||
.late_rodata
|
||||
glabel jtbl_80337BE0
|
||||
.word L80316BD0
|
||||
.word L80316BDC
|
||||
.word L80316C1C
|
||||
.word L80316BEC
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316BFC
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C1C
|
||||
.word L80316C0C
|
||||
|
||||
.text
|
||||
glabel func_80316928
|
||||
/* 0D1928 80316928 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0D192C 8031692C 3C0E8033 */ lui $t6, %hi(gAudioLoadLock) # $t6, 0x8033
|
||||
/* 0D1930 80316930 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0D1934 80316934 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 0D1938 80316938 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0D193C 8031693C AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0D1940 80316940 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0D1944 80316944 AFA40038 */ sw $a0, 0x38($sp)
|
||||
/* 0D1948 80316948 25CE3EF4 */ addiu $t6, %lo(gAudioLoadLock) # addiu $t6, $t6, 0x3ef4
|
||||
/* 0D194C 8031694C 8DCF0000 */ lw $t7, ($t6)
|
||||
/* 0D1950 80316950 51E0007A */ beql $t7, $zero, .L80316B3C
|
||||
/* 0D1954 80316954 8FB80038 */ lw $t8, 0x38($sp)
|
||||
/* 0D1958 80316958 0C0C5A33 */ jal func_803168CC
|
||||
/* 0D195C 8031695C 00000000 */ nop
|
||||
/* 0D1960 80316960 3C038022 */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x8022
|
||||
/* 0D1964 80316964 8C636D70 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0D1968 80316968 00008025 */ move $s0, $zero
|
||||
/* 0D196C 8031696C 00002025 */ move $a0, $zero
|
||||
/* 0D1970 80316970 18600027 */ blez $v1, .L80316A10
|
||||
/* 0D1974 80316974 00008825 */ move $s1, $zero
|
||||
/* 0D1978 80316978 3C068022 */ lui $a2, %hi(gAudioUpdatesPerFrame) # $a2, 0x8022
|
||||
/* 0D197C 8031697C 3C058022 */ lui $a1, %hi(gNotes) # $a1, 0x8022
|
||||
/* 0D1980 80316980 24A52A10 */ addiu $a1, %lo(gNotes) # addiu $a1, $a1, 0x2a10
|
||||
/* 0D1984 80316984 24C66D7E */ addiu $a2, %lo(gAudioUpdatesPerFrame) # addiu $a2, $a2, 0x6d7e
|
||||
.L80316988:
|
||||
/* 0D1988 80316988 8CB80000 */ lw $t8, ($a1)
|
||||
/* 0D198C 8031698C 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0D1990 80316990 03041021 */ addu $v0, $t8, $a0
|
||||
/* 0D1994 80316994 8C590000 */ lw $t9, ($v0)
|
||||
/* 0D1998 80316998 001967C2 */ srl $t4, $t9, 0x1f
|
||||
/* 0D199C 8031699C 5180001A */ beql $t4, $zero, .L80316A08
|
||||
/* 0D19A0 803169A0 0203082A */ slt $at, $s0, $v1
|
||||
/* 0D19A4 803169A4 904D0055 */ lbu $t5, 0x55($v0)
|
||||
/* 0D19A8 803169A8 51A00017 */ beql $t5, $zero, .L80316A08
|
||||
/* 0D19AC 803169AC 0203082A */ slt $at, $s0, $v1
|
||||
/* 0D19B0 803169B0 80CE0000 */ lb $t6, ($a2)
|
||||
/* 0D19B4 803169B4 340F8000 */ li $t7, 32768
|
||||
/* 0D19B8 803169B8 3C038022 */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x8022
|
||||
/* 0D19BC 803169BC 01EE001A */ div $zero, $t7, $t6
|
||||
/* 0D19C0 803169C0 0000C012 */ mflo $t8
|
||||
/* 0D19C4 803169C4 A4580062 */ sh $t8, 0x62($v0)
|
||||
/* 0D19C8 803169C8 8CB90000 */ lw $t9, ($a1)
|
||||
/* 0D19CC 803169CC 15C00002 */ bnez $t6, .L803169D8
|
||||
/* 0D19D0 803169D0 00000000 */ nop
|
||||
/* 0D19D4 803169D4 0007000D */ break 7
|
||||
.L803169D8:
|
||||
/* 0D19D8 803169D8 2401FFFF */ li $at, -1
|
||||
/* 0D19DC 803169DC 15C10004 */ bne $t6, $at, .L803169F0
|
||||
/* 0D19E0 803169E0 3C018000 */ lui $at, 0x8000
|
||||
/* 0D19E4 803169E4 15E10002 */ bne $t7, $at, .L803169F0
|
||||
/* 0D19E8 803169E8 00000000 */ nop
|
||||
/* 0D19EC 803169EC 0006000D */ break 6
|
||||
.L803169F0:
|
||||
/* 0D19F0 803169F0 03241021 */ addu $v0, $t9, $a0
|
||||
/* 0D19F4 803169F4 904C0054 */ lbu $t4, 0x54($v0)
|
||||
/* 0D19F8 803169F8 358D0010 */ ori $t5, $t4, 0x10
|
||||
/* 0D19FC 803169FC A04D0054 */ sb $t5, 0x54($v0)
|
||||
/* 0D1A00 80316A00 8C636D70 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0D1A04 80316A04 0203082A */ slt $at, $s0, $v1
|
||||
.L80316A08:
|
||||
/* 0D1A08 80316A08 1420FFDF */ bnez $at, .L80316988
|
||||
/* 0D1A0C 80316A0C 248400C0 */ addiu $a0, $a0, 0xc0
|
||||
.L80316A10:
|
||||
/* 0D1A10 80316A10 0C0C5A3D */ jal wait_for_audio_frames
|
||||
/* 0D1A14 80316A14 24040001 */ li $a0, 1
|
||||
/* 0D1A18 80316A18 26310001 */ addiu $s1, $s1, 1
|
||||
/* 0D1A1C 80316A1C 2A2100F1 */ slti $at, $s1, 0xf1
|
||||
/* 0D1A20 80316A20 10200013 */ beqz $at, .L80316A70
|
||||
/* 0D1A24 80316A24 3C038022 */ lui $v1, %hi(gMaxSimultaneousNotes) # $v1, 0x8022
|
||||
/* 0D1A28 80316A28 8C636D70 */ lw $v1, %lo(gMaxSimultaneousNotes)($v1)
|
||||
/* 0D1A2C 80316A2C 00008025 */ move $s0, $zero
|
||||
/* 0D1A30 80316A30 3C028022 */ lui $v0, %hi(gNotes) # $v0, 0x8022
|
||||
/* 0D1A34 80316A34 1860000A */ blez $v1, .L80316A60
|
||||
/* 0D1A38 80316A38 00000000 */ nop
|
||||
/* 0D1A3C 80316A3C 8C422A10 */ lw $v0, %lo(gNotes)($v0)
|
||||
.L80316A40:
|
||||
/* 0D1A40 80316A40 8C4F0000 */ lw $t7, ($v0)
|
||||
/* 0D1A44 80316A44 000F77C2 */ srl $t6, $t7, 0x1f
|
||||
/* 0D1A48 80316A48 15C00005 */ bnez $t6, .L80316A60
|
||||
/* 0D1A4C 80316A4C 00000000 */ nop
|
||||
/* 0D1A50 80316A50 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0D1A54 80316A54 0203082A */ slt $at, $s0, $v1
|
||||
/* 0D1A58 80316A58 1420FFF9 */ bnez $at, .L80316A40
|
||||
/* 0D1A5C 80316A5C 244200C0 */ addiu $v0, $v0, 0xc0
|
||||
.L80316A60:
|
||||
/* 0D1A60 80316A60 12030003 */ beq $s0, $v1, .L80316A70
|
||||
/* 0D1A64 80316A64 00000000 */ nop
|
||||
/* 0D1A68 80316A68 1000FFE9 */ b .L80316A10
|
||||
/* 0D1A6C 80316A6C 00000000 */ nop
|
||||
.L80316A70:
|
||||
/* 0D1A70 80316A70 0C0C5A33 */ jal func_803168CC
|
||||
/* 0D1A74 80316A74 00000000 */ nop
|
||||
/* 0D1A78 80316A78 0C0C5A3D */ jal wait_for_audio_frames
|
||||
/* 0D1A7C 80316A7C 24040003 */ li $a0, 3
|
||||
/* 0D1A80 80316A80 3C181971 */ lui $t8, (0x19710515 >> 16) # lui $t8, 0x1971
|
||||
/* 0D1A84 80316A84 3C198033 */ lui $t9, %hi(gAudioLoadLock) # $t9, 0x8033
|
||||
/* 0D1A88 80316A88 27393EF4 */ addiu $t9, %lo(gAudioLoadLock) # addiu $t9, $t9, 0x3ef4
|
||||
/* 0D1A8C 80316A8C 37180515 */ ori $t8, (0x19710515 & 0xFFFF) # ori $t8, $t8, 0x515
|
||||
/* 0D1A90 80316A90 AF380000 */ sw $t8, ($t9)
|
||||
/* 0D1A94 80316A94 0C0C5A3D */ jal wait_for_audio_frames
|
||||
/* 0D1A98 80316A98 24040003 */ li $a0, 3
|
||||
/* 0D1A9C 80316A9C 3C138022 */ lui $s3, %hi(gCurrAudioFrameDmaCount) # $s3, 0x8022
|
||||
/* 0D1AA0 80316AA0 26736D84 */ addiu $s3, %lo(gCurrAudioFrameDmaCount) # addiu $s3, $s3, 0x6d84
|
||||
/* 0D1AA4 80316AA4 8E710000 */ lw $s1, ($s3)
|
||||
/* 0D1AA8 80316AA8 1A200014 */ blez $s1, .L80316AFC
|
||||
/* 0D1AAC 80316AAC 00000000 */ nop
|
||||
/* 0D1AB0 80316AB0 3C128022 */ lui $s2, %hi(gCurrAudioFrameDmaQueue) # $s2, 0x8022
|
||||
/* 0D1AB4 80316AB4 26525EE8 */ addiu $s2, %lo(gCurrAudioFrameDmaQueue) # addiu $s2, $s2, 0x5ee8
|
||||
/* 0D1AB8 80316AB8 8E6C0000 */ lw $t4, ($s3)
|
||||
.L80316ABC:
|
||||
/* 0D1ABC 80316ABC 00008025 */ move $s0, $zero
|
||||
/* 0D1AC0 80316AC0 1980000C */ blez $t4, .L80316AF4
|
||||
/* 0D1AC4 80316AC4 02402025 */ move $a0, $s2
|
||||
.L80316AC8:
|
||||
/* 0D1AC8 80316AC8 00002825 */ move $a1, $zero
|
||||
/* 0D1ACC 80316ACC 0C0C8634 */ jal osRecvMesg
|
||||
/* 0D1AD0 80316AD0 00003025 */ move $a2, $zero
|
||||
/* 0D1AD4 80316AD4 54400003 */ bnezl $v0, .L80316AE4
|
||||
/* 0D1AD8 80316AD8 8E6D0000 */ lw $t5, ($s3)
|
||||
/* 0D1ADC 80316ADC 2631FFFF */ addiu $s1, $s1, -1
|
||||
/* 0D1AE0 80316AE0 8E6D0000 */ lw $t5, ($s3)
|
||||
.L80316AE4:
|
||||
/* 0D1AE4 80316AE4 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0D1AE8 80316AE8 020D082A */ slt $at, $s0, $t5
|
||||
/* 0D1AEC 80316AEC 5420FFF6 */ bnezl $at, .L80316AC8
|
||||
/* 0D1AF0 80316AF0 02402025 */ move $a0, $s2
|
||||
.L80316AF4:
|
||||
/* 0D1AF4 80316AF4 5E20FFF1 */ bgtzl $s1, .L80316ABC
|
||||
/* 0D1AF8 80316AF8 8E6C0000 */ lw $t4, ($s3)
|
||||
.L80316AFC:
|
||||
/* 0D1AFC 80316AFC 3C038022 */ lui $v1, %hi(gAiBuffers) # $v1, 0x8022
|
||||
/* 0D1B00 80316B00 3C068022 */ lui $a2, %hi(gAiBuffers + 0xC) # $a2, 0x8022
|
||||
/* 0D1B04 80316B04 AE600000 */ sw $zero, ($s3)
|
||||
/* 0D1B08 80316B08 24C66E4C */ addiu $a2, %lo(gAiBuffers + 0xC) # addiu $a2, $a2, 0x6e4c
|
||||
/* 0D1B0C 80316B0C 24636E40 */ addiu $v1, %lo(gAiBuffers) # addiu $v1, $v1, 0x6e40
|
||||
/* 0D1B10 80316B10 24040A00 */ li $a0, 2560
|
||||
/* 0D1B14 80316B14 00001025 */ move $v0, $zero
|
||||
.L80316B18:
|
||||
/* 0D1B18 80316B18 8C6F0000 */ lw $t7, ($v1)
|
||||
/* 0D1B1C 80316B1C 01E27021 */ addu $t6, $t7, $v0
|
||||
/* 0D1B20 80316B20 24420002 */ addiu $v0, $v0, 2
|
||||
/* 0D1B24 80316B24 1444FFFC */ bne $v0, $a0, .L80316B18
|
||||
/* 0D1B28 80316B28 A5C00000 */ sh $zero, ($t6)
|
||||
/* 0D1B2C 80316B2C 24630004 */ addiu $v1, $v1, 4
|
||||
/* 0D1B30 80316B30 5466FFF9 */ bnel $v1, $a2, .L80316B18
|
||||
/* 0D1B34 80316B34 00001025 */ move $v0, $zero
|
||||
/* 0D1B38 80316B38 8FB80038 */ lw $t8, 0x38($sp)
|
||||
.L80316B3C:
|
||||
/* 0D1B3C 80316B3C 3C018022 */ lui $at, %hi(gSampleDmaNumListItems) # $at, 0x8022
|
||||
/* 0D1B40 80316B40 AC206B38 */ sw $zero, %lo(gSampleDmaNumListItems)($at)
|
||||
/* 0D1B44 80316B44 97190006 */ lhu $t9, 6($t8)
|
||||
/* 0D1B48 80316B48 AFB9002C */ sw $t9, 0x2c($sp)
|
||||
/* 0D1B4C 80316B4C 0C0C9290 */ jal osAiSetFrequency
|
||||
/* 0D1B50 80316B50 8F040000 */ lw $a0, ($t8)
|
||||
/* 0D1B54 80316B54 2401003C */ li $at, 60
|
||||
/* 0D1B58 80316B58 0041001A */ div $zero, $v0, $at
|
||||
/* 0D1B5C 80316B5C 8FA80038 */ lw $t0, 0x38($sp)
|
||||
/* 0D1B60 80316B60 3C038022 */ lui $v1, %hi(gAiFrequency) # $v1, 0x8022
|
||||
/* 0D1B64 80316B64 24636D64 */ addiu $v1, %lo(gAiFrequency) # addiu $v1, $v1, 0x6d64
|
||||
/* 0D1B68 80316B68 AC620000 */ sw $v0, ($v1)
|
||||
/* 0D1B6C 80316B6C 910C0004 */ lbu $t4, 4($t0)
|
||||
/* 0D1B70 80316B70 00007812 */ mflo $t7
|
||||
/* 0D1B74 80316B74 3C0A8022 */ lui $t2, %hi(D_80226D74) # $t2, 0x8022
|
||||
/* 0D1B78 80316B78 3C0B8022 */ lui $t3, %hi(gMaxSimultaneousNotes) # $t3, 0x8022
|
||||
/* 0D1B7C 80316B7C 25EE000F */ addiu $t6, $t7, 0xf
|
||||
/* 0D1B80 80316B80 2401FFF0 */ li $at, -16
|
||||
/* 0D1B84 80316B84 256B6D70 */ addiu $t3, %lo(gMaxSimultaneousNotes) # addiu $t3, $t3, 0x6d70
|
||||
/* 0D1B88 80316B88 254A6D74 */ addiu $t2, %lo(D_80226D74) # addiu $t2, $t2, 0x6d74
|
||||
/* 0D1B8C 80316B8C 01C1C824 */ and $t9, $t6, $at
|
||||
/* 0D1B90 80316B90 AD590000 */ sw $t9, ($t2)
|
||||
/* 0D1B94 80316B94 AD6C0000 */ sw $t4, ($t3)
|
||||
/* 0D1B98 80316B98 91180005 */ lbu $t8, 5($t0)
|
||||
/* 0D1B9C 80316B9C 3C098022 */ lui $t1, %hi(D_802212A2) # $t1, 0x8022
|
||||
/* 0D1BA0 80316BA0 252912A2 */ addiu $t1, %lo(D_802212A2) # addiu $t1, $t1, 0x12a2
|
||||
/* 0D1BA4 80316BA4 A1380000 */ sb $t8, ($t1)
|
||||
/* 0D1BA8 80316BA8 812C0000 */ lb $t4, ($t1)
|
||||
/* 0D1BAC 80316BAC 258DFFFF */ addiu $t5, $t4, -1
|
||||
/* 0D1BB0 80316BB0 2DA10010 */ sltiu $at, $t5, 0x10
|
||||
/* 0D1BB4 80316BB4 10200019 */ beqz $at, .L80316C1C
|
||||
/* 0D1BB8 80316BB8 000D6880 */ sll $t5, $t5, 2
|
||||
/* 0D1BBC 80316BBC 3C018033 */ lui $at, %hi(jtbl_80337BE0)
|
||||
/* 0D1BC0 80316BC0 002D0821 */ addu $at, $at, $t5
|
||||
/* 0D1BC4 80316BC4 8C2D7BE0 */ lw $t5, %lo(jtbl_80337BE0)($at)
|
||||
/* 0D1BC8 80316BC8 01A00008 */ jr $t5
|
||||
/* 0D1BCC 80316BCC 00000000 */ nop
|
||||
glabel L80316BD0
|
||||
/* 0D1BD0 80316BD0 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1BD4 80316BD4 10000013 */ b .L80316C24
|
||||
/* 0D1BD8 80316BD8 A02012A3 */ sb $zero, %lo(D_802212A3)($at)
|
||||
glabel L80316BDC
|
||||
/* 0D1BDC 80316BDC 240F0001 */ li $t7, 1
|
||||
/* 0D1BE0 80316BE0 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1BE4 80316BE4 1000000F */ b .L80316C24
|
||||
/* 0D1BE8 80316BE8 A02F12A3 */ sb $t7, %lo(D_802212A3)($at)
|
||||
glabel L80316BEC
|
||||
/* 0D1BEC 80316BEC 240E0002 */ li $t6, 2
|
||||
/* 0D1BF0 80316BF0 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1BF4 80316BF4 1000000B */ b .L80316C24
|
||||
/* 0D1BF8 80316BF8 A02E12A3 */ sb $t6, %lo(D_802212A3)($at)
|
||||
glabel L80316BFC
|
||||
/* 0D1BFC 80316BFC 24190003 */ li $t9, 3
|
||||
/* 0D1C00 80316C00 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1C04 80316C04 10000007 */ b .L80316C24
|
||||
/* 0D1C08 80316C08 A03912A3 */ sb $t9, %lo(D_802212A3)($at)
|
||||
glabel L80316C0C
|
||||
/* 0D1C0C 80316C0C 24180004 */ li $t8, 4
|
||||
/* 0D1C10 80316C10 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1C14 80316C14 10000003 */ b .L80316C24
|
||||
/* 0D1C18 80316C18 A03812A3 */ sb $t8, %lo(D_802212A3)($at)
|
||||
.L80316C1C:
|
||||
glabel L80316C1C
|
||||
/* 0D1C1C 80316C1C 3C018022 */ lui $at, %hi(D_802212A3) # $at, 0x8022
|
||||
/* 0D1C20 80316C20 A02012A3 */ sb $zero, %lo(D_802212A3)($at)
|
||||
.L80316C24:
|
||||
/* 0D1C24 80316C24 910C0005 */ lbu $t4, 5($t0)
|
||||
/* 0D1C28 80316C28 3C018022 */ lui $at, %hi(D_802212A0) # $at, 0x8022
|
||||
/* 0D1C2C 80316C2C 3C188033 */ lui $t8, %hi(gTatumsPerBeat) # $t8, 0x8033
|
||||
/* 0D1C30 80316C30 A12C0000 */ sb $t4, ($t1)
|
||||
/* 0D1C34 80316C34 950D000A */ lhu $t5, 0xa($t0)
|
||||
/* 0D1C38 80316C38 87183EE4 */ lh $t8, %lo(gTatumsPerBeat)($t8)
|
||||
/* 0D1C3C 80316C3C 3C138022 */ lui $s3, %hi(D_80226D6C) # $s3, 0x8022
|
||||
/* 0D1C40 80316C40 A42D12A0 */ sh $t5, %lo(D_802212A0)($at)
|
||||
/* 0D1C44 80316C44 8D420000 */ lw $v0, ($t2)
|
||||
/* 0D1C48 80316C48 3C018022 */ lui $at, %hi(gMinAiBufferLength) # $at, 0x8022
|
||||
/* 0D1C4C 80316C4C 26736D6C */ addiu $s3, %lo(D_80226D6C) # addiu $s3, $s3, 0x6d6c
|
||||
/* 0D1C50 80316C50 244FFFF0 */ addiu $t7, $v0, -0x10
|
||||
/* 0D1C54 80316C54 AC2F6D78 */ sw $t7, %lo(gMinAiBufferLength)($at)
|
||||
/* 0D1C58 80316C58 240100A0 */ li $at, 160
|
||||
/* 0D1C5C 80316C5C 0041001A */ div $zero, $v0, $at
|
||||
/* 0D1C60 80316C60 00001812 */ mflo $v1
|
||||
/* 0D1C64 80316C64 24630001 */ addiu $v1, $v1, 1
|
||||
/* 0D1C68 80316C68 00032E00 */ sll $a1, $v1, 0x18
|
||||
/* 0D1C6C 80316C6C 00057603 */ sra $t6, $a1, 0x18
|
||||
/* 0D1C70 80316C70 000EC8C0 */ sll $t9, $t6, 3
|
||||
/* 0D1C74 80316C74 032EC823 */ subu $t9, $t9, $t6
|
||||
/* 0D1C78 80316C78 0019C940 */ sll $t9, $t9, 5
|
||||
/* 0D1C7C 80316C7C 032EC821 */ addu $t9, $t9, $t6
|
||||
/* 0D1C80 80316C80 0019C900 */ sll $t9, $t9, 4
|
||||
/* 0D1C84 80316C84 0338001A */ div $zero, $t9, $t8
|
||||
/* 0D1C88 80316C88 3C018022 */ lui $at, %hi(gAudioUpdatesPerFrame) # $at, 0x8022
|
||||
/* 0D1C8C 80316C8C A0236D7E */ sb $v1, %lo(gAudioUpdatesPerFrame)($at)
|
||||
/* 0D1C90 80316C90 00006012 */ mflo $t4
|
||||
/* 0D1C94 80316C94 01C02825 */ move $a1, $t6
|
||||
/* 0D1C98 80316C98 3C048022 */ lui $a0, %hi(D_80221898) # $a0, 0x8022
|
||||
/* 0D1C9C 80316C9C 24841898 */ addiu $a0, %lo(D_80221898) # addiu $a0, $a0, 0x1898
|
||||
/* 0D1CA0 80316CA0 17000002 */ bnez $t8, .L80316CAC
|
||||
/* 0D1CA4 80316CA4 00000000 */ nop
|
||||
/* 0D1CA8 80316CA8 0007000D */ break 7
|
||||
.L80316CAC:
|
||||
/* 0D1CAC 80316CAC 2401FFFF */ li $at, -1
|
||||
/* 0D1CB0 80316CB0 17010004 */ bne $t8, $at, .L80316CC4
|
||||
/* 0D1CB4 80316CB4 3C018000 */ lui $at, 0x8000
|
||||
/* 0D1CB8 80316CB8 17210002 */ bne $t9, $at, .L80316CC4
|
||||
/* 0D1CBC 80316CBC 00000000 */ nop
|
||||
/* 0D1CC0 80316CC0 0006000D */ break 6
|
||||
.L80316CC4:
|
||||
/* 0D1CC4 80316CC4 3C018022 */ lui $at, %hi(gTempoInternalToExternal) # $at, 0x8022
|
||||
/* 0D1CC8 80316CC8 A42C6D7C */ sh $t4, %lo(gTempoInternalToExternal)($at)
|
||||
/* 0D1CCC 80316CCC 8D6D0000 */ lw $t5, ($t3)
|
||||
/* 0D1CD0 80316CD0 000D7880 */ sll $t7, $t5, 2
|
||||
/* 0D1CD4 80316CD4 01ED7821 */ addu $t7, $t7, $t5
|
||||
/* 0D1CD8 80316CD8 000F7880 */ sll $t7, $t7, 2
|
||||
/* 0D1CDC 80316CDC 01E50019 */ multu $t7, $a1
|
||||
/* 0D1CE0 80316CE0 00007012 */ mflo $t6
|
||||
/* 0D1CE4 80316CE4 25D90140 */ addiu $t9, $t6, 0x140
|
||||
/* 0D1CE8 80316CE8 AE790000 */ sw $t9, ($s3)
|
||||
/* 0D1CEC 80316CEC 8D0C000C */ lw $t4, 0xc($t0)
|
||||
/* 0D1CF0 80316CF0 8D180010 */ lw $t8, 0x10($t0)
|
||||
/* 0D1CF4 80316CF4 8D0F0014 */ lw $t7, 0x14($t0)
|
||||
/* 0D1CF8 80316CF8 8D0D0018 */ lw $t5, 0x18($t0)
|
||||
/* 0D1CFC 80316CFC 3C0E8022 */ lui $t6, %hi(D_802212A8 + 8) # $t6, 0x8022
|
||||
/* 0D1D00 80316D00 8DCE12B0 */ lw $t6, %lo(D_802212A8 + 8)($t6)
|
||||
/* 0D1D04 80316D04 030C8021 */ addu $s0, $t8, $t4
|
||||
/* 0D1D08 80316D08 01AF8821 */ addu $s1, $t5, $t7
|
||||
/* 0D1D0C 80316D0C 02113021 */ addu $a2, $s0, $s1
|
||||
/* 0D1D10 80316D10 01C63823 */ subu $a3, $t6, $a2
|
||||
/* 0D1D14 80316D14 24E7FF00 */ addiu $a3, $a3, -0x100
|
||||
/* 0D1D18 80316D18 AC870000 */ sw $a3, ($a0)
|
||||
/* 0D1D1C 80316D1C 0C0C5859 */ jal func_80316164
|
||||
/* 0D1D20 80316D20 AC86000C */ sw $a2, 0xc($a0)
|
||||
/* 0D1D24 80316D24 3C048022 */ lui $a0, %hi(D_802218A8) # $a0, 0x8022
|
||||
/* 0D1D28 80316D28 248418A8 */ addiu $a0, %lo(D_802218A8) # addiu $a0, $a0, 0x18a8
|
||||
/* 0D1D2C 80316D2C AC900000 */ sw $s0, ($a0)
|
||||
/* 0D1D30 80316D30 0C0C5878 */ jal func_803161E0
|
||||
/* 0D1D34 80316D34 AC910004 */ sw $s1, 4($a0)
|
||||
/* 0D1D38 80316D38 8FA20038 */ lw $v0, 0x38($sp)
|
||||
/* 0D1D3C 80316D3C 3C048022 */ lui $a0, %hi(D_802218B0) # $a0, 0x8022
|
||||
/* 0D1D40 80316D40 248418B0 */ addiu $a0, %lo(D_802218B0) # addiu $a0, $a0, 0x18b0
|
||||
/* 0D1D44 80316D44 8C59000C */ lw $t9, 0xc($v0)
|
||||
/* 0D1D48 80316D48 AC990000 */ sw $t9, ($a0)
|
||||
/* 0D1D4C 80316D4C 8C580010 */ lw $t8, 0x10($v0)
|
||||
/* 0D1D50 80316D50 AC800008 */ sw $zero, 8($a0)
|
||||
/* 0D1D54 80316D54 0C0C5897 */ jal func_8031625C
|
||||
/* 0D1D58 80316D58 AC980004 */ sw $t8, 4($a0)
|
||||
/* 0D1D5C 80316D5C 8FAC0038 */ lw $t4, 0x38($sp)
|
||||
/* 0D1D60 80316D60 8FAF0038 */ lw $t7, 0x38($sp)
|
||||
/* 0D1D64 80316D64 3C048022 */ lui $a0, %hi(D_802218C0) # $a0, 0x8022
|
||||
/* 0D1D68 80316D68 8D8D0014 */ lw $t5, 0x14($t4)
|
||||
/* 0D1D6C 80316D6C 248418C0 */ addiu $a0, %lo(D_802218C0) # addiu $a0, $a0, 0x18c0
|
||||
/* 0D1D70 80316D70 AC8D0000 */ sw $t5, ($a0)
|
||||
/* 0D1D74 80316D74 8DEE0018 */ lw $t6, 0x18($t7)
|
||||
/* 0D1D78 80316D78 AC800008 */ sw $zero, 8($a0)
|
||||
/* 0D1D7C 80316D7C 0C0C58C6 */ jal func_80316318
|
||||
/* 0D1D80 80316D80 AC8E0004 */ sw $t6, 4($a0)
|
||||
/* 0D1D84 80316D84 0C0C5798 */ jal reset_bank_and_seq_load_status
|
||||
/* 0D1D88 80316D88 00000000 */ nop
|
||||
/* 0D1D8C 80316D8C 3C108022 */ lui $s0, %hi(gAudioCmdBuffers) # $s0, 0x8022
|
||||
/* 0D1D90 80316D90 3C128022 */ lui $s2, %hi(D_802212C8) # $s2, 0x8022
|
||||
/* 0D1D94 80316D94 3C118022 */ lui $s1, %hi(gAudioCmdBuffers + 8) # $s1, 0x8022
|
||||
/* 0D1D98 80316D98 26316D98 */ addiu $s1, %lo(gAudioCmdBuffers + 8) # addiu $s1, $s1, 0x6d98
|
||||
/* 0D1D9C 80316D9C 265212C8 */ addiu $s2, %lo(D_802212C8) # addiu $s2, $s2, 0x12c8
|
||||
/* 0D1DA0 80316DA0 26106D90 */ addiu $s0, %lo(gAudioCmdBuffers) # addiu $s0, $s0, 0x6d90
|
||||
.L80316DA4:
|
||||
/* 0D1DA4 80316DA4 8E650000 */ lw $a1, ($s3)
|
||||
/* 0D1DA8 80316DA8 02402025 */ move $a0, $s2
|
||||
/* 0D1DAC 80316DAC 0005C8C0 */ sll $t9, $a1, 3
|
||||
/* 0D1DB0 80316DB0 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1DB4 80316DB4 03202825 */ move $a1, $t9
|
||||
/* 0D1DB8 80316DB8 26100004 */ addiu $s0, $s0, 4
|
||||
/* 0D1DBC 80316DBC 1611FFF9 */ bne $s0, $s1, .L80316DA4
|
||||
/* 0D1DC0 80316DC0 AE02FFFC */ sw $v0, -4($s0)
|
||||
/* 0D1DC4 80316DC4 3C058022 */ lui $a1, %hi(gMaxSimultaneousNotes) # $a1, 0x8022
|
||||
/* 0D1DC8 80316DC8 8CA56D70 */ lw $a1, %lo(gMaxSimultaneousNotes)($a1)
|
||||
/* 0D1DCC 80316DCC 02402025 */ move $a0, $s2
|
||||
/* 0D1DD0 80316DD0 0005C080 */ sll $t8, $a1, 2
|
||||
/* 0D1DD4 80316DD4 0305C023 */ subu $t8, $t8, $a1
|
||||
/* 0D1DD8 80316DD8 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1DDC 80316DDC 00182980 */ sll $a1, $t8, 6
|
||||
/* 0D1DE0 80316DE0 3C018022 */ lui $at, %hi(gNotes) # $at, 0x8022
|
||||
/* 0D1DE4 80316DE4 0C0C6750 */ jal note_init_all
|
||||
/* 0D1DE8 80316DE8 AC222A10 */ sw $v0, %lo(gNotes)($at)
|
||||
/* 0D1DEC 80316DEC 0C0C6492 */ jal init_note_free_list
|
||||
/* 0D1DF0 80316DF0 00000000 */ nop
|
||||
/* 0D1DF4 80316DF4 8FA2002C */ lw $v0, 0x2c($sp)
|
||||
/* 0D1DF8 80316DF8 3C118022 */ lui $s1, %hi(D_802211B0) # $s1, 0x8022
|
||||
/* 0D1DFC 80316DFC 263111B0 */ addiu $s1, %lo(D_802211B0) # addiu $s1, $s1, 0x11b0
|
||||
/* 0D1E00 80316E00 14400005 */ bnez $v0, .L80316E18
|
||||
/* 0D1E04 80316E04 240C0008 */ li $t4, 8
|
||||
/* 0D1E08 80316E08 3C118022 */ lui $s1, %hi(D_802211B0) # $s1, 0x8022
|
||||
/* 0D1E0C 80316E0C 263111B0 */ addiu $s1, %lo(D_802211B0) # addiu $s1, $s1, 0x11b0
|
||||
/* 0D1E10 80316E10 10000051 */ b .L80316F58
|
||||
/* 0D1E14 80316E14 A2200001 */ sb $zero, 1($s1)
|
||||
.L80316E18:
|
||||
/* 0D1E18 80316E18 00028040 */ sll $s0, $v0, 1
|
||||
/* 0D1E1C 80316E1C A22C0001 */ sb $t4, 1($s1)
|
||||
/* 0D1E20 80316E20 02002825 */ move $a1, $s0
|
||||
/* 0D1E24 80316E24 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1E28 80316E28 02402025 */ move $a0, $s2
|
||||
/* 0D1E2C 80316E2C AE220014 */ sw $v0, 0x14($s1)
|
||||
/* 0D1E30 80316E30 02402025 */ move $a0, $s2
|
||||
/* 0D1E34 80316E34 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1E38 80316E38 02002825 */ move $a1, $s0
|
||||
/* 0D1E3C 80316E3C 8FAD002C */ lw $t5, 0x2c($sp)
|
||||
/* 0D1E40 80316E40 8FAF0038 */ lw $t7, 0x38($sp)
|
||||
/* 0D1E44 80316E44 AE220018 */ sw $v0, 0x18($s1)
|
||||
/* 0D1E48 80316E48 AE200008 */ sw $zero, 8($s1)
|
||||
/* 0D1E4C 80316E4C AE20000C */ sw $zero, 0xc($s1)
|
||||
/* 0D1E50 80316E50 A2200003 */ sb $zero, 3($s1)
|
||||
/* 0D1E54 80316E54 AE2D0010 */ sw $t5, 0x10($s1)
|
||||
/* 0D1E58 80316E58 95EE0008 */ lhu $t6, 8($t7)
|
||||
/* 0D1E5C 80316E5C 24190002 */ li $t9, 2
|
||||
/* 0D1E60 80316E60 A2390002 */ sb $t9, 2($s1)
|
||||
/* 0D1E64 80316E64 3C038022 */ lui $v1, %hi(D_802212A2) # $v1, 0x8022
|
||||
/* 0D1E68 80316E68 A62E0004 */ sh $t6, 4($s1)
|
||||
/* 0D1E6C 80316E6C 806312A2 */ lb $v1, %lo(D_802212A2)($v1)
|
||||
/* 0D1E70 80316E70 24010001 */ li $at, 1
|
||||
/* 0D1E74 80316E74 24180001 */ li $t8, 1
|
||||
/* 0D1E78 80316E78 10610037 */ beq $v1, $at, .L80316F58
|
||||
/* 0D1E7C 80316E7C 340C8000 */ li $t4, 32768
|
||||
/* 0D1E80 80316E80 0183001A */ div $zero, $t4, $v1
|
||||
/* 0D1E84 80316E84 00006812 */ mflo $t5
|
||||
/* 0D1E88 80316E88 A2380000 */ sb $t8, ($s1)
|
||||
/* 0D1E8C 80316E8C 14600002 */ bnez $v1, .L80316E98
|
||||
/* 0D1E90 80316E90 00000000 */ nop
|
||||
/* 0D1E94 80316E94 0007000D */ break 7
|
||||
.L80316E98:
|
||||
/* 0D1E98 80316E98 2401FFFF */ li $at, -1
|
||||
/* 0D1E9C 80316E9C 14610004 */ bne $v1, $at, .L80316EB0
|
||||
/* 0D1EA0 80316EA0 3C018000 */ lui $at, 0x8000
|
||||
/* 0D1EA4 80316EA4 15810002 */ bne $t4, $at, .L80316EB0
|
||||
/* 0D1EA8 80316EA8 00000000 */ nop
|
||||
/* 0D1EAC 80316EAC 0006000D */ break 6
|
||||
.L80316EB0:
|
||||
/* 0D1EB0 80316EB0 A62D0006 */ sh $t5, 6($s1)
|
||||
/* 0D1EB4 80316EB4 02402025 */ move $a0, $s2
|
||||
/* 0D1EB8 80316EB8 24050020 */ li $a1, 32
|
||||
/* 0D1EBC 80316EBC 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1EC0 80316EC0 00008025 */ move $s0, $zero
|
||||
/* 0D1EC4 80316EC4 AE22001C */ sw $v0, 0x1c($s1)
|
||||
/* 0D1EC8 80316EC8 02402025 */ move $a0, $s2
|
||||
/* 0D1ECC 80316ECC 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1ED0 80316ED0 24050020 */ li $a1, 32
|
||||
/* 0D1ED4 80316ED4 AE220020 */ sw $v0, 0x20($s1)
|
||||
/* 0D1ED8 80316ED8 02402025 */ move $a0, $s2
|
||||
/* 0D1EDC 80316EDC 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1EE0 80316EE0 24050020 */ li $a1, 32
|
||||
/* 0D1EE4 80316EE4 AE220024 */ sw $v0, 0x24($s1)
|
||||
/* 0D1EE8 80316EE8 02402025 */ move $a0, $s2
|
||||
/* 0D1EEC 80316EEC 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1EF0 80316EF0 24050020 */ li $a1, 32
|
||||
/* 0D1EF4 80316EF4 AE220028 */ sw $v0, 0x28($s1)
|
||||
/* 0D1EF8 80316EF8 3C0F8022 */ lui $t7, %hi(gAudioUpdatesPerFrame) # $t7, 0x8022
|
||||
/* 0D1EFC 80316EFC 81EF6D7E */ lb $t7, %lo(gAudioUpdatesPerFrame)($t7)
|
||||
/* 0D1F00 80316F00 3C118022 */ lui $s1, %hi(D_802211B0) # $s1, 0x8022
|
||||
/* 0D1F04 80316F04 263111B0 */ addiu $s1, %lo(D_802211B0) # addiu $s1, $s1, 0x11b0
|
||||
/* 0D1F08 80316F08 19E00013 */ blez $t7, .L80316F58
|
||||
/* 0D1F0C 80316F0C 02402025 */ move $a0, $s2
|
||||
.L80316F10:
|
||||
/* 0D1F10 80316F10 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1F14 80316F14 24050280 */ li $a1, 640
|
||||
/* 0D1F18 80316F18 244E0140 */ addiu $t6, $v0, 0x140
|
||||
/* 0D1F1C 80316F1C AE220030 */ sw $v0, 0x30($s1)
|
||||
/* 0D1F20 80316F20 AE2E0034 */ sw $t6, 0x34($s1)
|
||||
/* 0D1F24 80316F24 02402025 */ move $a0, $s2
|
||||
/* 0D1F28 80316F28 0C0C5808 */ jal soundAlloc
|
||||
/* 0D1F2C 80316F2C 24050280 */ li $a1, 640
|
||||
/* 0D1F30 80316F30 24590140 */ addiu $t9, $v0, 0x140
|
||||
/* 0D1F34 80316F34 3C188022 */ lui $t8, %hi(gAudioUpdatesPerFrame) # $t8, 0x8022
|
||||
/* 0D1F38 80316F38 AE220080 */ sw $v0, 0x80($s1)
|
||||
/* 0D1F3C 80316F3C AE390084 */ sw $t9, 0x84($s1)
|
||||
/* 0D1F40 80316F40 83186D7E */ lb $t8, %lo(gAudioUpdatesPerFrame)($t8)
|
||||
/* 0D1F44 80316F44 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0D1F48 80316F48 26310014 */ addiu $s1, $s1, 0x14
|
||||
/* 0D1F4C 80316F4C 0218082A */ slt $at, $s0, $t8
|
||||
/* 0D1F50 80316F50 5420FFEF */ bnezl $at, .L80316F10
|
||||
/* 0D1F54 80316F54 02402025 */ move $a0, $s2
|
||||
.L80316F58:
|
||||
/* 0D1F58 80316F58 3C048022 */ lui $a0, %hi(gMaxSimultaneousNotes) # $a0, 0x8022
|
||||
/* 0D1F5C 80316F5C 0C0C5D63 */ jal func_8031758C
|
||||
/* 0D1F60 80316F60 8C846D70 */ lw $a0, %lo(gMaxSimultaneousNotes)($a0)
|
||||
/* 0D1F64 80316F64 0C0C8804 */ jal osWritebackDCacheAll
|
||||
/* 0D1F68 80316F68 00000000 */ nop
|
||||
/* 0D1F6C 80316F6C 3C0C8033 */ lui $t4, %hi(gAudioLoadLock) # $t4, 0x8033
|
||||
/* 0D1F70 80316F70 258C3EF4 */ addiu $t4, %lo(gAudioLoadLock) # addiu $t4, $t4, 0x3ef4
|
||||
/* 0D1F74 80316F74 8D8D0000 */ lw $t5, ($t4)
|
||||
/* 0D1F78 80316F78 3C0F7655 */ lui $t7, (0x76557364 >> 16) # lui $t7, 0x7655
|
||||
/* 0D1F7C 80316F7C 35EF7364 */ ori $t7, (0x76557364 & 0xFFFF) # ori $t7, $t7, 0x7364
|
||||
/* 0D1F80 80316F80 51A00003 */ beql $t5, $zero, .L80316F90
|
||||
/* 0D1F84 80316F84 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0D1F88 80316F88 AD8F0000 */ sw $t7, ($t4)
|
||||
/* 0D1F8C 80316F8C 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L80316F90:
|
||||
/* 0D1F90 80316F90 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0D1F94 80316F94 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0D1F98 80316F98 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 0D1F9C 80316F9C 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 0D1FA0 80316FA0 03E00008 */ jr $ra
|
||||
/* 0D1FA4 80316FA4 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user