Browse Source

refresh 6

master
n64 1 year ago
parent
commit
9a801cb96d
100 changed files with 8337 additions and 1802 deletions
  1. +9
    -0
      CHANGES
  2. +21
    -2
      Jenkinsfile
  3. +20
    -3
      Makefile
  4. +2
    -2
      actors/group5.h
  5. +73
    -73
      actors/mario/geo.inc.c
  6. +1
    -1
      actors/tornado/geo.inc.c
  7. +2
    -2
      asm/non_matchings/eu/append_bubble_vertex_buffer.s
  8. +2
    -2
      asm/non_matchings/eu/append_snowflake_vertex_buffer.s
  9. +269
    -0
      asm/non_matchings/eu/audio/alloc_bank_or_seq.s
  10. +88
    -0
      asm/non_matchings/eu/audio/func_eu_802e00d8.s
  11. +263
    -0
      asm/non_matchings/eu/audio/note_apply_headset_pan_effects.s
  12. +179
    -0
      asm/non_matchings/eu/audio/prepare_reverb_ring_buffer.s
  13. +781
    -0
      asm/non_matchings/eu/audio/seq_channel_layer_process_script.s
  14. +56
    -0
      asm/non_matchings/eu/audio/sequence_channel_enable.s
  15. +929
    -0
      asm/non_matchings/eu/audio/sequence_channel_process_script.s
  16. +698
    -0
      asm/non_matchings/eu/audio/sequence_player_process_sequence.s
  17. +331
    -0
      asm/non_matchings/eu/audio/synthesis_do_one_audio_update.s
  18. +178
    -0
      asm/non_matchings/eu/audio/synthesis_execute.s
  19. +657
    -0
      asm/non_matchings/eu/audio/synthesis_process_note.s
  20. +220
    -0
      asm/non_matchings/eu/audio/synthesis_resample_and_mix_reverb.s
  21. +29
    -29
      asm/non_matchings/eu/handle_dialog_text_and_pages.s
  22. +55
    -0
      asm/non_matchings/eu/libultra_unk_802aeeb0.s
  23. +87
    -0
      asm/non_matchings/eu/libultra_unk_802aef80.s
  24. +86
    -0
      asm/non_matchings/eu/play_sequence.s
  25. +36
    -0
      asm/non_matchings/eu/player_performed_grab_escape_action.s
  26. +0
    -156
      asm/non_matchings/patch_audio_bank.s
  27. +4
    -4
      data/behavior_data.c
  28. +52
    -2
      enhancements/README.md
  29. +0
    -0
      enhancements/RecordDemo.js
  30. +0
    -29
      enhancements/crash.h
  31. +0
    -292
      enhancements/crash.inc.c
  32. +0
    -158
      enhancements/crash.inc.s
  33. +529
    -0
      enhancements/crash.patch
  34. +0
    -23
      enhancements/debug_box.h
  35. +0
    -248
      enhancements/debug_box.inc.c
  36. +302
    -0
      enhancements/debug_box.patch
  37. +0
    -172
      enhancements/dyn_light.inc.c
  38. +0
    -59
      enhancements/fps.inc.c
  39. +60
    -0
      enhancements/fps.patch
  40. +312
    -0
      enhancements/ique_support.patch
  41. +0
    -46
      enhancements/ique_support/README.md
  42. +0
    -11
      enhancements/ique_support/consoleType.c
  43. +0
    -7
      enhancements/ique_support/console_type.h
  44. +0
    -9
      enhancements/ique_support/osEepromProbe.inc.c
  45. +0
    -8
      enhancements/ique_support/osEepromRead.inc.c
  46. +0
    -8
      enhancements/ique_support/osEepromWrite.inc.c
  47. +0
    -18
      enhancements/ique_support/skGetId.s
  48. +0
    -193
      enhancements/mem_error_screen.inc.c
  49. +298
    -0
      enhancements/mem_error_screen.patch
  50. +177
    -0
      enhancements/record_demo.patch
  51. +0
    -163
      enhancements/record_demo/record_demo.inc.c
  52. +10
    -4
      extract_assets.py
  53. +4
    -0
      first-diff.py
  54. +1
    -0
      include/PR/os_message.h
  55. +1
    -1
      include/PR/os_misc.h
  56. +27
    -25
      include/PR/os_pi.h
  57. +1
    -1
      include/PR/os_thread.h
  58. +2
    -0
      include/audio_defines.h
  59. +3
    -3
      include/behavior_data.h
  60. +5
    -1
      include/config.h
  61. +1
    -1
      include/macro_presets.h
  62. +1
    -1
      include/model_ids.h
  63. +23
    -0
      include/object_constants.h
  64. +3
    -3
      include/object_fields.h
  65. +9
    -0
      include/segments.h
  66. +2
    -2
      include/sm64.h
  67. +179
    -0
      include/text_strings.h.in
  68. +18
    -6
      include/types.h
  69. +1
    -1
      levels/bbh/script.c
  70. +3
    -0
      levels/ending/geo.c
  71. +2
    -2
      levels/intro/geo.c
  72. +5
    -0
      levels/menu/header.h
  73. +25
    -1
      levels/menu/leveldata.c
  74. +1
    -1
      levels/scripts.c
  75. +1
    -0
      levels/sl/script.c
  76. +5
    -5
      levels/ssl/script.c
  77. BIN
      lib/PR/boot/F3D_boot_eu.bin
  78. BIN
      lib/PR/f3d/new/F3D_data_EU.bin
  79. +472
    -2
      lib/asm/__osExceptionPreamble.s
  80. +22
    -0
      lib/asm/__os_eu_802ef550.s
  81. +34
    -0
      lib/asm/osSetIntMask.s
  82. +18
    -0
      lib/asm/parameters.s
  83. +9
    -0
      lib/rsp.s
  84. +147
    -0
      lib/src/D_802F4380.c
  85. +12
    -0
      lib/src/EU_D_802f4330.c
  86. +1
    -3
      lib/src/_Ldtob.c
  87. +85
    -1
      lib/src/__osDevMgrMain.c
  88. +5
    -0
      lib/src/__osGetCurrFaultedThread.c
  89. +1
    -0
      lib/src/__osSyncPutChars.c
  90. +26
    -1
      lib/src/__osViInit.c
  91. +171
    -0
      lib/src/func_802F4A20.c
  92. +31
    -0
      lib/src/func_802F7140.c
  93. +36
    -0
      lib/src/func_802F71A0.c
  94. +33
    -0
      lib/src/func_802F71F0.c
  95. +42
    -0
      lib/src/hardware.h
  96. +1
    -1
      lib/src/kdebugserver.c
  97. +19
    -15
      lib/src/libultra_internal.h
  98. +22
    -0
      lib/src/new_func.h
  99. +4
    -0
      lib/src/osContInit.c
  100. +7
    -1
      lib/src/osCreatePiManager.c

+ 9
- 0
CHANGES View File

@@ -1,3 +1,12 @@
Refresh #6
1.) Make tools work on MinGW (#804)
2.) Document mario_misc (#628)
3.) add patch_libmalloc.py script to work around compiler crashes (#811)
4.) Label the coffins file. (#829)
5.) Convert enhancements into patches (#827)
6.) Document Tweester.inc.c (#840)
7.) EU OK and cleanup EU (#782)

Refresh #5
1.) mem_error_screen.inc.c updated for C (#775)
2.) updated patch_libultra_math to work directly on libultra.a (#781)


+ 21
- 2
Jenkinsfile View File

@@ -17,14 +17,33 @@ pipeline {
sh './extract_assets.py jp us eu'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us'
}
}
stage('Build E Source') {
steps {
sh 'make -j4 VERSION=eu'
}
}
stage('Build J Source') {
steps {
sh 'make -j4 VERSION=jp'
}
}
stage('Build U Source') {
stage('Test Enhancements') {
steps {
sh 'make -j4 VERSION=us'
sh '''
set -e
for f in enhancements/*.patch
do
git clean -fd .
git checkout -- .
echo 'y' | tools/apply_patch.sh "$f"
make -j4 VERSION=us COMPARE=0
done
'''
}
}
}


+ 20
- 3
Makefile View File

@@ -37,7 +37,6 @@ ifeq ($(VERSION),us)
TARGET := sm64.us
else
ifeq ($(VERSION),eu)
$(warning Building EU is experimental and is prone to breaking. Try at your own risk.)
VERSION_CFLAGS := -DVERSION_EU
VERSION_ASFLAGS := --defsym VERSION_EU=1
GRUCODE_CFLAGS := -DF3D_NEW
@@ -193,7 +192,7 @@ GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d

# Files with GLOBAL_ASM blocks
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c) $(wildcard src/game/*.c)
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/**/*.c)
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep

@@ -316,10 +315,14 @@ $(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
ifeq ($(VERSION),eu)
TEXT_DIRS := text/de text/us text/fr

# EU encoded text inserted into individual segment 0x19 files
# EU encoded text inserted into individual segment 0x19 files,
# and course data also duplicated in leveldata.c
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c

else
TEXT_DIRS := text/$(VERSION)
@@ -328,6 +331,10 @@ TEXT_DIRS := text/$(VERSION)
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
endif

$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
$(CPP) $(VERSION_CFLAGS) $< -o $@ -I text/$*/
$(TEXTCONV) charmap.txt $@ $@

$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
$(CPP) $(VERSION_CFLAGS) $< -o $@ -I text/$*/
$(TEXTCONV) charmap.txt $@ $@
@@ -443,6 +450,9 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*


# Source code
$(BUILD_DIR)/levels/%/leveldata.o: OPT_FLAGS := -g
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -g
$(BUILD_DIR)/bin/%.o: OPT_FLAGS := -g
$(BUILD_DIR)/src/goddard/%.o: OPT_FLAGS := -g
$(BUILD_DIR)/src/goddard/%.o: MIPSISET := -mips1
$(BUILD_DIR)/src/audio/%.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
@@ -460,6 +470,13 @@ ifeq ($(VERSION),eu)
$(BUILD_DIR)/lib/src/_Litob.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/_Ldtob.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/_Printf.o: OPT_FLAGS := -O3
$(BUILD_DIR)/lib/src/sprintf.o: OPT_FLAGS := -O3

# enable loop unrolling except for external.c (external.c might also have used
# unrolling, but it makes one loop harder to match)
$(BUILD_DIR)/src/audio/%.o: OPT_FLAGS := -O2
$(BUILD_DIR)/src/audio/load.o: OPT_FLAGS := -O2
$(BUILD_DIR)/src/audio/external.o: OPT_FLAGS := -O2 -Wo,-loopunroll,0
endif

ifeq ($(NON_MATCHING),0)


+ 2
- 2
actors/group5.h View File

@@ -77,9 +77,9 @@ extern const Gfx pokey_seg5_dl_05012808[];
extern const Gfx pokey_seg5_dl_05013078[];
extern const Gfx pokey_seg5_dl_050130B0[];

// tornado
// tweester
extern const Gfx tornado_seg5_dl_05014450[];
extern const Gfx tornado_seg5_dl_050145C0[];
extern const GeoLayout tornado_seg5_geo_05014630[];
extern const GeoLayout tweester_geo[];

#endif

+ 73
- 73
actors/mario/geo.inc.c View File

@@ -2,7 +2,7 @@

// 0x170002E0
const GeoLayout mario_geo_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -32,7 +32,7 @@ const GeoLayout mario_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left
@@ -40,7 +40,7 @@ const GeoLayout mario_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right
@@ -56,7 +56,7 @@ const GeoLayout mario_geo_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed),
@@ -76,7 +76,7 @@ const GeoLayout mario_geo_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_hand_closed),
@@ -106,7 +106,7 @@ const GeoLayout mario_geo_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_butt), // starts sharing solid color with mario_torso (blue)
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_torso),
@@ -155,7 +155,7 @@ const GeoLayout mario_geo_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_right_foot), // stops sharing because foot has its solid color (brown)
@@ -175,7 +175,7 @@ const GeoLayout mario_geo_medium_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed),
@@ -195,7 +195,7 @@ const GeoLayout mario_geo_medium_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_hand_closed),
@@ -223,7 +223,7 @@ const GeoLayout mario_geo_medium_poly_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_medium_poly_butt), // starts sharing solid color with mario_torso (blue)
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_medium_poly_torso),
@@ -272,7 +272,7 @@ const GeoLayout mario_geo_medium_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_right_foot), // stops sharing because foot has its solid color (brown)
@@ -288,7 +288,7 @@ const GeoLayout mario_geo_medium_poly_body[] = {

// 0x170009D4
const GeoLayout mario_geo_low_poly_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -318,7 +318,7 @@ const GeoLayout mario_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // left
@@ -326,7 +326,7 @@ const GeoLayout mario_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_wings), // right
@@ -342,7 +342,7 @@ const GeoLayout mario_geo_low_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed),
@@ -362,7 +362,7 @@ const GeoLayout mario_geo_low_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_hand_closed),
@@ -390,7 +390,7 @@ const GeoLayout mario_geo_low_poly_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_low_poly_butt), // starts sharing solid color with mario_torso (blue)
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_low_poly_torso),
@@ -439,7 +439,7 @@ const GeoLayout mario_geo_low_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_right_foot), // stops sharing because foot has its solid color (brown)
@@ -457,7 +457,7 @@ const GeoLayout mario_geo_low_poly_body[] = {

// 0x17000DEC
const GeoLayout mario_vanish_geo_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -487,7 +487,7 @@ const GeoLayout mario_vanish_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent),
@@ -495,7 +495,7 @@ const GeoLayout mario_vanish_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent),
@@ -511,7 +511,7 @@ const GeoLayout mario_vanish_geo_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed),
@@ -531,7 +531,7 @@ const GeoLayout mario_vanish_geo_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_hand_closed),
@@ -561,7 +561,7 @@ const GeoLayout mario_vanish_geo_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_torso),
@@ -610,7 +610,7 @@ const GeoLayout mario_vanish_geo_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_right_foot),
@@ -630,7 +630,7 @@ const GeoLayout mario_vanish_geo_medium_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed),
@@ -650,7 +650,7 @@ const GeoLayout mario_vanish_geo_medium_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_hand_closed),
@@ -678,7 +678,7 @@ const GeoLayout mario_vanish_geo_medium_poly_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_medium_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_medium_poly_torso),
@@ -727,7 +727,7 @@ const GeoLayout mario_vanish_geo_medium_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_right_foot),
@@ -743,7 +743,7 @@ const GeoLayout mario_vanish_geo_medium_poly_body[] = {

// 0x170014E0
const GeoLayout mario_vanish_geo_low_poly_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -773,7 +773,7 @@ const GeoLayout mario_vanish_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent),
@@ -781,7 +781,7 @@ const GeoLayout mario_vanish_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_wings_transparent),
@@ -797,7 +797,7 @@ const GeoLayout mario_vanish_geo_low_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed),
@@ -817,7 +817,7 @@ const GeoLayout mario_vanish_geo_low_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_hand_closed),
@@ -845,7 +845,7 @@ const GeoLayout mario_vanish_geo_low_poly_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_low_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_low_poly_torso),
@@ -894,7 +894,7 @@ const GeoLayout mario_vanish_geo_low_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_right_foot),
@@ -912,7 +912,7 @@ const GeoLayout mario_vanish_geo_low_poly_body[] = {

// 0x170018F8
const GeoLayout mario_metal_geo_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -922,7 +922,7 @@ const GeoLayout mario_metal_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // left
@@ -930,7 +930,7 @@ const GeoLayout mario_metal_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings), // right
@@ -946,7 +946,7 @@ const GeoLayout mario_metal_geo_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_left_hand_closed_shared_dl),
@@ -966,7 +966,7 @@ const GeoLayout mario_metal_geo_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_hand_closed),
@@ -996,7 +996,7 @@ const GeoLayout mario_metal_geo_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_butt), // starts sharing metal texture with the dls below
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_torso_shared_dl),
@@ -1045,7 +1045,7 @@ const GeoLayout mario_metal_geo_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_right_foot),
@@ -1065,7 +1065,7 @@ const GeoLayout mario_metal_geo_medium_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_medium_poly_left_hand_closed_shared_dl),
@@ -1085,7 +1085,7 @@ const GeoLayout mario_metal_geo_medium_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_hand_closed),
@@ -1113,7 +1113,7 @@ const GeoLayout mario_metal_geo_medium_poly_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_medium_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_medium_poly_torso),
@@ -1162,7 +1162,7 @@ const GeoLayout mario_metal_geo_medium_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_medium_poly_right_foot),
@@ -1178,7 +1178,7 @@ const GeoLayout mario_metal_geo_medium_poly_body[] = {

// 0x17001F5C
const GeoLayout mario_metal_geo_low_poly_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -1188,7 +1188,7 @@ const GeoLayout mario_metal_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings),
@@ -1196,7 +1196,7 @@ const GeoLayout mario_metal_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_metal_cap_wings),
@@ -1212,7 +1212,7 @@ const GeoLayout mario_metal_geo_low_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_low_poly_left_hand_closed_shared_dl),
@@ -1232,7 +1232,7 @@ const GeoLayout mario_metal_geo_low_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_hand_closed),
@@ -1260,7 +1260,7 @@ const GeoLayout mario_metal_geo_low_poly_body[] = {
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, mario_metal_low_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 68, 0, 0, mario_metal_low_poly_torso),
@@ -1309,7 +1309,7 @@ const GeoLayout mario_metal_geo_low_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_OPAQUE, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_metal_low_poly_right_foot),
@@ -1327,7 +1327,7 @@ const GeoLayout mario_metal_geo_low_poly_body[] = {

// 0x170022E4
const GeoLayout mario_metal_vanish_geo_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -1337,7 +1337,7 @@ const GeoLayout mario_metal_vanish_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent),
@@ -1345,7 +1345,7 @@ const GeoLayout mario_metal_vanish_geo_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent),
@@ -1361,7 +1361,7 @@ const GeoLayout mario_metal_vanish_geo_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_left_hand_closed_shared_dl),
@@ -1381,7 +1381,7 @@ const GeoLayout mario_metal_vanish_geo_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_hand_closed),
@@ -1411,7 +1411,7 @@ const GeoLayout mario_metal_vanish_geo_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_torso_shared_dl),
@@ -1460,7 +1460,7 @@ const GeoLayout mario_metal_vanish_geo_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_right_foot),
@@ -1480,7 +1480,7 @@ const GeoLayout mario_metal_vanish_geo_medium_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_medium_poly_left_hand_closed_shared_dl),
@@ -1500,7 +1500,7 @@ const GeoLayout mario_metal_vanish_geo_medium_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_hand_closed),
@@ -1528,7 +1528,7 @@ const GeoLayout mario_metal_vanish_geo_medium_poly_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_medium_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_medium_poly_torso),
@@ -1580,7 +1580,7 @@ const GeoLayout mario_metal_vanish_geo_medium_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_medium_poly_right_foot),
@@ -1596,7 +1596,7 @@ const GeoLayout mario_metal_vanish_geo_medium_poly_body[] = {

// 0x17002958
const GeoLayout mario_metal_vanish_geo_low_poly_face_and_wings[] = {
GEO_ASM(0, Geo18_802773A4),
GEO_ASM(0, geo_mario_head_rotation),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_cap_on_off),
@@ -1606,7 +1606,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, -126, 22, -40, -135),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_80277824),
GEO_ASM(0, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent),
@@ -1614,7 +1614,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_face_and_wings[] = {
GEO_CLOSE_NODE(),
GEO_TRANSLATE_ROTATE(0, 142, -51, 126, -22, 40, -135),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_80277824),
GEO_ASM(1, geo_mario_rotate_wing_cap_wings),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_cap_wings_transparent),
@@ -1630,7 +1630,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_left_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(1, Geo18_802775CC),
GEO_ASM(1, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_low_poly_left_hand_closed_shared_dl),
@@ -1650,7 +1650,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_right_hand[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 60, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802775CC),
GEO_ASM(0, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_hand_closed),
@@ -1678,7 +1678,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_body[] = {
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 0, 0, 0, mario_metal_low_poly_butt),
GEO_OPEN_NODE(),
GEO_ASM(0, Geo18_802B1BB0),
GEO_ASM(0, Geo18_80277294),
GEO_ASM(0, geo_mario_tilt_torso),
GEO_ROTATION_NODE(0x00, 0, 0, 0),
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 68, 0, 0, mario_metal_low_poly_torso),
@@ -1727,7 +1727,7 @@ const GeoLayout mario_metal_vanish_geo_low_poly_body[] = {
GEO_OPEN_NODE(),
GEO_ANIMATED_PART(LAYER_TRANSPARENT, 67, 0, 0, NULL),
GEO_OPEN_NODE(),
GEO_ASM(2, Geo18_802775CC),
GEO_ASM(2, geo_mario_hand_foot_scaler),
GEO_SCALE(0x00, 65536),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_metal_low_poly_right_foot),
@@ -1812,7 +1812,7 @@ const GeoLayout mario_geo[] = {
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_mirror_mario_backface_culling),
GEO_ASM(0, Geo18_802770A4),
GEO_ASM(0, geo_mirror_mario_set_alpha),
GEO_SWITCH_CASE(0, geo_switch_mario_stand_run),
GEO_OPEN_NODE(),
GEO_BRANCH(1, mario_geo_load_body),


+ 1
- 1
actors/tornado/geo.inc.c View File

@@ -1,5 +1,5 @@
// 0x05014630
const GeoLayout tornado_seg5_geo_05014630[] = {
const GeoLayout tweester_geo[] = {
GEO_CULLING_RADIUS(5000),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, tornado_seg5_dl_050145C0),


asm/non_matchings/append_bubble_vertex_buffer_eu.s → asm/non_matchings/eu/append_bubble_vertex_buffer.s View File

@@ -53,14 +53,14 @@ glabel append_bubble_vertex_buffer
/* 075AA4 802B62A4 0303C821 */ addu $t9, $t8, $v1
/* 075AA8 802B62A8 8F2E0004 */ lw $t6, 4($t9)
/* 075AAC 802B62AC 17E00002 */ bnez $ra, .L802B62B8
/* 075AB0 802B62B0 00000000 */ nop
/* 075AB0 802B62B0 00000000 */ nop
/* 075AB4 802B62B4 0007000D */ break 7
.L802B62B8:
/* 075AB8 802B62B8 2401FFFF */ li $at, -1
/* 075ABC 802B62BC 17E10004 */ bne $ra, $at, .L802B62D0
/* 075AC0 802B62C0 3C018000 */ lui $at, 0x8000
/* 075AC4 802B62C4 14C10002 */ bne $a2, $at, .L802B62D0
/* 075AC8 802B62C8 00000000 */ nop
/* 075AC8 802B62C8 00000000 */ nop
/* 075ACC 802B62CC 0006000D */ break 6
.L802B62D0:
/* 075AD0 802B62D0 01EEC021 */ addu $t8, $t7, $t6

asm/non_matchings/append_snowflake_vertex_buffer_eu.s → asm/non_matchings/eu/append_snowflake_vertex_buffer.s View File

@@ -57,14 +57,14 @@ glabel append_snowflake_vertex_buffer
/* 074250 802B4A50 0303C821 */ addu $t9, $t8, $v1
/* 074254 802B4A54 8F2E0004 */ lw $t6, 4($t9)
/* 074258 802B4A58 15800002 */ bnez $t4, .L802B4A64
/* 07425C 802B4A5C 00000000 */ nop
/* 07425C 802B4A5C 00000000 */ nop
/* 074260 802B4A60 0007000D */ break 7
.L802B4A64:
/* 074264 802B4A64 2401FFFF */ li $at, -1
/* 074268 802B4A68 15810004 */ bne $t4, $at, .L802B4A7C
/* 07426C 802B4A6C 3C018000 */ lui $at, 0x8000
/* 074270 802B4A70 14C10002 */ bne $a2, $at, .L802B4A7C
/* 074274 802B4A74 00000000 */ nop
/* 074274 802B4A74 00000000 */ nop
/* 074278 802B4A78 0006000D */ break 6
.L802B4A7C:
/* 07427C 802B4A7C 01EEC021 */ addu $t8, $t7, $t6

+ 269
- 0
asm/non_matchings/eu/audio/alloc_bank_or_seq.s View File

@@ -0,0 +1,269 @@
glabel alloc_bank_or_seq
/* 0A1B94 802E2394 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 0A1B98 802E2398 AFB20020 */ sw $s2, 0x20($sp)
/* 0A1B9C 802E239C 00C09025 */ move $s2, $a2
/* 0A1BA0 802E23A0 AFB1001C */ sw $s1, 0x1c($sp)
/* 0A1BA4 802E23A4 AFB00018 */ sw $s0, 0x18($sp)
/* 0A1BA8 802E23A8 00A08025 */ move $s0, $a1
/* 0A1BAC 802E23AC 00808825 */ move $s1, $a0
/* 0A1BB0 802E23B0 2406000C */ li $a2, 12
/* 0A1BB4 802E23B4 AFBF0024 */ sw $ra, 0x24($sp)
/* 0A1BB8 802E23B8 8FA90068 */ lw $t1, 0x68($sp)
/* 0A1BBC 802E23BC 24080001 */ li $t0, 1
.L80200850:
/* 0A1BC0 802E23C0 14E000AD */ bnez $a3, .L80200B08
/* 0A1BC4 802E23C4 3C0E8022 */ lui $t6, %hi(gSeqLoadedPool) # $t6, 0x8022
/* 0A1BC8 802E23C8 25CE2670 */ addiu $t6, %lo(gSeqLoadedPool) # addiu $t6, $t6, 0x2670
/* 0A1BCC 802E23CC 162E0006 */ bne $s1, $t6, .L80200878
/* 0A1BD0 802E23D0 26300194 */ addiu $s0, $s1, 0x194
/* 0A1BD4 802E23D4 3C058022 */ lui $a1, %hi(gSeqLoadStatus) # $a1, 0x8022
/* 0A1BD8 802E23D8 24A52C58 */ addiu $a1, %lo(gSeqLoadStatus) # addiu $a1, $a1, 0x2c58
/* 0A1BDC 802E23DC AFA5003C */ sw $a1, 0x3c($sp)
/* 0A1BE0 802E23E0 10000009 */ b .L80200898
/* 0A1BE4 802E23E4 A3A0003B */ sb $zero, 0x3b($sp)
.L80200878:
/* 0A1BE8 802E23E8 3C0F8022 */ lui $t7, %hi(gBankLoadedPool) # $t7, 0x8022
/* 0A1BEC 802E23EC 25EF2840 */ addiu $t7, %lo(gBankLoadedPool) # addiu $t7, $t7, 0x2840
/* 0A1BF0 802E23F0 162F0005 */ bne $s1, $t7, .L80200898
/* 0A1BF4 802E23F4 3C058022 */ lui $a1, %hi(gBankLoadStatus) # $a1, 0x8022
/* 0A1BF8 802E23F8 24A52C18 */ addiu $a1, %lo(gBankLoadStatus) # addiu $a1, $a1, 0x2c18
/* 0A1BFC 802E23FC 240A0001 */ li $t2, 1
/* 0A1C00 802E2400 A3AA003B */ sb $t2, 0x3b($sp)
/* 0A1C04 802E2404 AFA5003C */ sw $a1, 0x3c($sp)
.L80200898:
/* 0A1C08 802E2408 8E02001C */ lw $v0, 0x1c($s0)
/* 0A1C0C 802E240C 2407FFFF */ li $a3, -1
/* 0A1C10 802E2410 8FA5003C */ lw $a1, 0x3c($sp)
/* 0A1C14 802E2414 14E20003 */ bne $a3, $v0, .L802008B4
/* 0A1C18 802E2418 93AA003B */ lbu $t2, 0x3b($sp)
/* 0A1C1C 802E241C 10000003 */ b .L802008BC
/* 0A1C20 802E2420 00001825 */ move $v1, $zero
.L802008B4:
/* 0A1C24 802E2424 0045C021 */ addu $t8, $v0, $a1
/* 0A1C28 802E2428 93030000 */ lbu $v1, ($t8)
.L802008BC:
/* 0A1C2C 802E242C 8E020028 */ lw $v0, 0x28($s0)
/* 0A1C30 802E2430 14E20003 */ bne $a3, $v0, .L802008D0
/* 0A1C34 802E2434 0045C821 */ addu $t9, $v0, $a1
/* 0A1C38 802E2438 10000002 */ b .L802008D4
/* 0A1C3C 802E243C 00002025 */ move $a0, $zero
.L802008D0:
/* 0A1C40 802E2440 93240000 */ lbu $a0, ($t9)
.L802008D4:
/* 0A1C44 802E2444 14600003 */ bnez $v1, .L802008E4
/* 0A1C48 802E2448 00601025 */ move $v0, $v1
/* 0A1C4C 802E244C 1000001D */ b .L80200954
/* 0A1C50 802E2450 AE000000 */ sw $zero, ($s0)
.L802008E4:
/* 0A1C54 802E2454 14800004 */ bnez $a0, .L802008F8
/* 0A1C58 802E2458 00801825 */ move $v1, $a0
/* 0A1C5C 802E245C 240B0001 */ li $t3, 1
/* 0A1C60 802E2460 10000018 */ b .L80200954
/* 0A1C64 802E2464 AE0B0000 */ sw $t3, ($s0)
.L802008F8:
/* 0A1C68 802E2468 24040003 */ li $a0, 3
/* 0A1C6C 802E246C 14820003 */ bne $a0, $v0, .L8020090C
/* 0A1C70 802E2470 00000000 */ nop
/* 0A1C74 802E2474 50830014 */ beql $a0, $v1, .L80200958
/* 0A1C78 802E2478 8E0E0000 */ lw $t6, ($s0)
.L8020090C:
/* 0A1C7C 802E247C 14820003 */ bne $a0, $v0, .L8020091C
/* 0A1C80 802E2480 00000000 */ nop
/* 0A1C84 802E2484 1000000F */ b .L80200954
/* 0A1C88 802E2488 AE000000 */ sw $zero, ($s0)
.L8020091C:
/* 0A1C8C 802E248C 14830003 */ bne $a0, $v1, .L8020092C
/* 0A1C90 802E2490 240C0001 */ li $t4, 1
/* 0A1C94 802E2494 1000000B */ b .L80200954
/* 0A1C98 802E2498 AE0C0000 */ sw $t4, ($s0)
.L8020092C:
/* 0A1C9C 802E249C 11020003 */ beq $t0, $v0, .L8020093C
/* 0A1CA0 802E24A0 00000000 */ nop
/* 0A1CA4 802E24A4 10000007 */ b .L80200954
/* 0A1CA8 802E24A8 AE000000 */ sw $zero, ($s0)
.L8020093C:
/* 0A1CAC 802E24AC 11030003 */ beq $t0, $v1, .L8020094C
/* 0A1CB0 802E24B0 240D0001 */ li $t5, 1
/* 0A1CB4 802E24B4 10000003 */ b .L80200954
/* 0A1CB8 802E24B8 AE0D0000 */ sw $t5, ($s0)
.L8020094C:
/* 0A1CBC 802E24BC 10000099 */ b .L80200BB4
/* 0A1CC0 802E24C0 00001025 */ move $v0, $zero
.L80200954:
/* 0A1CC4 802E24C4 8E0E0000 */ lw $t6, ($s0)
.L80200958:
/* 0A1CC8 802E24C8 01C60019 */ multu $t6, $a2
/* 0A1CCC 802E24CC 00007812 */ mflo $t7
/* 0A1CD0 802E24D0 020FC021 */ addu $t8, $s0, $t7
/* 0A1CD4 802E24D4 8F02001C */ lw $v0, 0x1c($t8)
/* 0A1CD8 802E24D8 10E20010 */ beq $a3, $v0, .L802009AC
/* 0A1CDC 802E24DC 00A2C821 */ addu $t9, $a1, $v0
/* 0A1CE0 802E24E0 150A000E */ bne $t0, $t2, .L802009AC
/* 0A1CE4 802E24E4 A3200000 */ sb $zero, ($t9)
/* 0A1CE8 802E24E8 8E0B0000 */ lw $t3, ($s0)
/* 0A1CEC 802E24EC 01660019 */ multu $t3, $a2
/* 0A1CF0 802E24F0 00006012 */ mflo $t4
/* 0A1CF4 802E24F4 020C6821 */ addu $t5, $s0, $t4
/* 0A1CF8 802E24F8 8DA4001C */ lw $a0, 0x1c($t5)
/* 0A1CFC 802E24FC A3AA003B */ sb $t2, 0x3b($sp)
/* 0A1D00 802E2500 AFA90068 */ sw $t1, 0x68($sp)
/* 0A1D04 802E2504 0C0B87A3 */ jal discard_bank
/* 0A1D08 802E2508 AFA5003C */ sw $a1, 0x3c($sp)
/* 0A1D0C 802E250C 8FA5003C */ lw $a1, 0x3c($sp)
/* 0A1D10 802E2510 24080001 */ li $t0, 1
/* 0A1D14 802E2514 8FA90068 */ lw $t1, 0x68($sp)
/* 0A1D18 802E2518 93AA003B */ lbu $t2, 0x3b($sp)
.L802009AC:
/* 0A1D1C 802E251C 8E040000 */ lw $a0, ($s0)
/* 0A1D20 802E2520 24010001 */ li $at, 1
/* 0A1D24 802E2524 26230198 */ addiu $v1, $s1, 0x198
/* 0A1D28 802E2528 50800006 */ beql $a0, $zero, .L802009D4
/* 0A1D2C 802E252C 8C6E0000 */ lw $t6, ($v1)
/* 0A1D30 802E2530 1081002B */ beq $a0, $at, .L80200A70
/* 0A1D34 802E2534 26230198 */ addiu $v1, $s1, 0x198
/* 0A1D38 802E2538 1000007A */ b .L80200BB4
/* 0A1D3C 802E253C 00001025 */ move $v0, $zero
/* 0A1D40 802E2540 8C6E0000 */ lw $t6, ($v1)
.L802009D4:
/* 0A1D44 802E2544 AE09001C */ sw $t1, 0x1c($s0)
/* 0A1D48 802E2548 AE120018 */ sw $s2, 0x18($s0)
/* 0A1D4C 802E254C AE0E0014 */ sw $t6, 0x14($s0)
/* 0A1D50 802E2550 8C6F0000 */ lw $t7, ($v1)
/* 0A1D54 802E2554 01F21021 */ addu $v0, $t7, $s2
/* 0A1D58 802E2558 AC620004 */ sw $v0, 4($v1)
/* 0A1D5C 802E255C 8E180020 */ lw $t8, 0x20($s0)
/* 0A1D60 802E2560 0302082B */ sltu $at, $t8, $v0
/* 0A1D64 802E2564 50200019 */ beql $at, $zero, .L80200A5C
/* 0A1D68 802E2568 8E030014 */ lw $v1, 0x14($s0)
/* 0A1D6C 802E256C 8E190028 */ lw $t9, 0x28($s0)
/* 0A1D70 802E2570 00B95821 */ addu $t3, $a1, $t9
/* 0A1D74 802E2574 11400005 */ beqz $t2, .L80200A1C
/* 0A1D78 802E2578 A1600000 */ sb $zero, ($t3)
/* 0A1D7C 802E257C 51480009 */ beql $t2, $t0, .L80200A34
/* 0A1D80 802E2580 8E040028 */ lw $a0, 0x28($s0)
/* 0A1D84 802E2584 1000000B */ b .L80200A44
/* 0A1D88 802E2588 240CFFFF */ li $t4, -1
.L80200A1C:
/* 0A1D8C 802E258C 8E040028 */ lw $a0, 0x28($s0)
/* 0A1D90 802E2590 0C0B87DC */ jal discard_sequence
/* 0A1D94 802E2594 AFA3002C */ sw $v1, 0x2c($sp)
/* 0A1D98 802E2598 10000005 */ b .L80200A40
/* 0A1D9C 802E259C 8FA3002C */ lw $v1, 0x2c($sp)
/* 0A1DA0 802E25A0 8E040028 */ lw $a0, 0x28($s0)
.L80200A34:
/* 0A1DA4 802E25A4 0C0B87A3 */ jal discard_bank
/* 0A1DA8 802E25A8 AFA3002C */ sw $v1, 0x2c($sp)
/* 0A1DAC 802E25AC 8FA3002C */ lw $v1, 0x2c($sp)
.L80200A40:
/* 0A1DB0 802E25B0 240CFFFF */ li $t4, -1
.L80200A44:
/* 0A1DB4 802E25B4 AE0C0028 */ sw $t4, 0x28($s0)
/* 0A1DB8 802E25B8 8C6E0008 */ lw $t6, 8($v1)
/* 0A1DBC 802E25BC 8C6D0000 */ lw $t5, ($v1)
/* 0A1DC0 802E25C0 01AE7821 */ addu $t7, $t5, $t6
/* 0A1DC4 802E25C4 AE0F0020 */ sw $t7, 0x20($s0)
/* 0A1DC8 802E25C8 8E030014 */ lw $v1, 0x14($s0)
.L80200A5C:
/* 0A1DCC 802E25CC 8E180000 */ lw $t8, ($s0)
/* 0A1DD0 802E25D0 00601025 */ move $v0, $v1
/* 0A1DD4 802E25D4 3B190001 */ xori $t9, $t8, 1
/* 0A1DD8 802E25D8 10000052 */ b .L80200BB4
/* 0A1DDC 802E25DC AE190000 */ sw $t9, ($s0)
.L80200A70:
/* 0A1DE0 802E25E0 8C6B0000 */ lw $t3, ($v1)
/* 0A1DE4 802E25E4 8C6C0008 */ lw $t4, 8($v1)
/* 0A1DE8 802E25E8 AE090028 */ sw $t1, 0x28($s0)
/* 0A1DEC 802E25EC AE120024 */ sw $s2, 0x24($s0)
/* 0A1DF0 802E25F0 016C6821 */ addu $t5, $t3, $t4
/* 0A1DF4 802E25F4 01B27023 */ subu $t6, $t5, $s2
/* 0A1DF8 802E25F8 25C2FFF0 */ addiu $v0, $t6, -0x10
/* 0A1DFC 802E25FC AE020020 */ sw $v0, 0x20($s0)
/* 0A1E00 802E2600 8C780004 */ lw $t8, 4($v1)
/* 0A1E04 802E2604 0058082B */ sltu $at, $v0, $t8
/* 0A1E08 802E2608 10200017 */ beqz $at, .L80200AF8
/* 0A1E0C 802E260C 00000000 */ nop
/* 0A1E10 802E2610 8E19001C */ lw $t9, 0x1c($s0)
/* 0A1E14 802E2614 00B95821 */ addu $t3, $a1, $t9
/* 0A1E18 802E2618 11400005 */ beqz $t2, .L80200AC0
/* 0A1E1C 802E261C A1600000 */ sb $zero, ($t3)
/* 0A1E20 802E2620 51480009 */ beql $t2, $t0, .L80200AD8
/* 0A1E24 802E2624 8E04001C */ lw $a0, 0x1c($s0)
/* 0A1E28 802E2628 1000000B */ b .L80200AE8
/* 0A1E2C 802E262C 240CFFFF */ li $t4, -1
.L80200AC0:
/* 0A1E30 802E2630 8E04001C */ lw $a0, 0x1c($s0)
/* 0A1E34 802E2634 0C0B87DC */ jal discard_sequence
/* 0A1E38 802E2638 AFA3002C */ sw $v1, 0x2c($sp)
/* 0A1E3C 802E263C 10000005 */ b .L80200AE4
/* 0A1E40 802E2640 8FA3002C */ lw $v1, 0x2c($sp)
/* 0A1E44 802E2644 8E04001C */ lw $a0, 0x1c($s0)
.L80200AD8:
/* 0A1E48 802E2648 0C0B87A3 */ jal discard_bank
/* 0A1E4C 802E264C AFA3002C */ sw $v1, 0x2c($sp)
/* 0A1E50 802E2650 8FA3002C */ lw $v1, 0x2c($sp)
.L80200AE4:
/* 0A1E54 802E2654 240CFFFF */ li $t4, -1
.L80200AE8:
/* 0A1E58 802E2658 AE0C001C */ sw $t4, 0x1c($s0)
/* 0A1E5C 802E265C 8C6D0000 */ lw $t5, ($v1)
/* 0A1E60 802E2660 AC6D0004 */ sw $t5, 4($v1)
/* 0A1E64 802E2664 8E020020 */ lw $v0, 0x20($s0)
.L80200AF8:
/* 0A1E68 802E2668 1000FFD8 */ b .L80200A5C
/* 0A1E6C 802E266C 00401825 */ move $v1, $v0
/* 0A1E70 802E2670 1000002C */ b .L80200BB4
/* 0A1E74 802E2674 00001025 */ move $v0, $zero
.L80200B08:
/* 0A1E78 802E2678 02120019 */ multu $s0, $s2
/* 0A1E7C 802E267C 26240004 */ addiu $a0, $s1, 4
/* 0A1E80 802E2680 AFA70064 */ sw $a3, 0x64($sp)
/* 0A1E84 802E2684 AFA90068 */ sw $t1, 0x68($sp)
/* 0A1E88 802E2688 00002812 */ mflo $a1
/* 0A1E8C 802E268C 0C0B87F8 */ jal soundAlloc
/* 0A1E90 802E2690 00000000 */ nop
/* 0A1E94 802E2694 8E2E0000 */ lw $t6, ($s1)
/* 0A1E98 802E2698 2406000C */ li $a2, 12
/* 0A1E9C 802E269C 8FA70064 */ lw $a3, 0x64($sp)
/* 0A1EA0 802E26A0 01C60019 */ multu $t6, $a2
/* 0A1EA4 802E26A4 8FA90068 */ lw $t1, 0x68($sp)
/* 0A1EA8 802E26A8 24080001 */ li $t0, 1
/* 0A1EAC 802E26AC 24010002 */ li $at, 2
/* 0A1EB0 802E26B0 00007812 */ mflo $t7
/* 0A1EB4 802E26B4 022FC021 */ addu $t8, $s1, $t7
/* 0A1EB8 802E26B8 14400009 */ bnez $v0, .L80200B70
/* 0A1EBC 802E26BC AF020014 */ sw $v0, 0x14($t8)
/* 0A1EC0 802E26C0 10E80005 */ beq $a3, $t0, .L80200B68
/* 0A1EC4 802E26C4 00000000 */ nop
/* 0A1EC8 802E26C8 54E10006 */ bnel $a3, $at, .L80200B74
/* 0A1ECC 802E26CC 8E390000 */ lw $t9, ($s1)
/* 0A1ED0 802E26D0 1000FF3B */ b .L80200850
/* 0A1ED4 802E26D4 00003825 */ move $a3, $zero
.L80200B68:
/* 0A1ED8 802E26D8 10000012 */ b .L80200BB4
/* 0A1EDC 802E26DC 00001025 */ move $v0, $zero
.L80200B70:
/* 0A1EE0 802E26E0 8E390000 */ lw $t9, ($s1)
.L80200B74:
/* 0A1EE4 802E26E4 03260019 */ multu $t9, $a2
/* 0A1EE8 802E26E8 00005812 */ mflo $t3
/* 0A1EEC 802E26EC 022B6021 */ addu $t4, $s1, $t3
/* 0A1EF0 802E26F0 AD89001C */ sw $t1, 0x1c($t4)
/* 0A1EF4 802E26F4 8E2D0000 */ lw $t5, ($s1)
/* 0A1EF8 802E26F8 01A60019 */ multu $t5, $a2
/* 0A1EFC 802E26FC 00007012 */ mflo $t6
/* 0A1F00 802E2700 022E7821 */ addu $t7, $s1, $t6
/* 0A1F04 802E2704 ADF20018 */ sw $s2, 0x18($t7)
/* 0A1F08 802E2708 8E230000 */ lw $v1, ($s1)
/* 0A1F0C 802E270C 00660019 */ multu $v1, $a2
/* 0A1F10 802E2710 246B0001 */ addiu $t3, $v1, 1
/* 0A1F14 802E2714 0000C012 */ mflo $t8
/* 0A1F18 802E2718 0238C821 */ addu $t9, $s1, $t8
/* 0A1F1C 802E271C 8F220014 */ lw $v0, 0x14($t9)
/* 0A1F20 802E2720 AE2B0000 */ sw $t3, ($s1)
.L80200BB4:
/* 0A1F24 802E2724 8FBF0024 */ lw $ra, 0x24($sp)
/* 0A1F28 802E2728 8FB00018 */ lw $s0, 0x18($sp)
/* 0A1F2C 802E272C 8FB1001C */ lw $s1, 0x1c($sp)
/* 0A1F30 802E2730 8FB20020 */ lw $s2, 0x20($sp)
/* 0A1F34 802E2734 03E00008 */ jr $ra
/* 0A1F38 802E2738 27BD0058 */ addiu $sp, $sp, 0x58

+ 88
- 0
asm/non_matchings/eu/audio/func_eu_802e00d8.s View File

@@ -0,0 +1,88 @@
glabel func_eu_802e00d8
/* 09F8D8 802E00D8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 09F8DC 802E00DC AFA50034 */ sw $a1, 0x34($sp)
/* 09F8E0 802E00E0 87B80036 */ lh $t8, 0x36($sp)
/* 09F8E4 802E00E4 3C088022 */ lui $t0, %hi(gSynthesisReverbs) # $t0, 0x8022
/* 09F8E8 802E00E8 2508C1B0 */ addiu $t0, %lo(gSynthesisReverbs) # addiu $t0, $t0, -0x3e50
/* 09F8EC 802E00EC 0018C940 */ sll $t9, $t8, 5
/* 09F8F0 802E00F0 0338C821 */ addu $t9, $t9, $t8
/* 09F8F4 802E00F4 0019C8C0 */ sll $t9, $t9, 3
/* 09F8F8 802E00F8 03281021 */ addu $v0, $t9, $t0
/* 09F8FC 802E00FC 90490003 */ lbu $t1, 3($v0)
/* 09F900 802E0100 00067400 */ sll $t6, $a2, 0x10
/* 09F904 802E0104 000E7C03 */ sra $t7, $t6, 0x10
/* 09F908 802E0108 00095080 */ sll $t2, $t1, 2
/* 09F90C 802E010C 01495023 */ subu $t2, $t2, $t1
/* 09F910 802E0110 000A50C0 */ sll $t2, $t2, 3
/* 09F914 802E0114 000F3880 */ sll $a3, $t7, 2
/* 09F918 802E0118 01495021 */ addu $t2, $t2, $t1
/* 09F91C 802E011C 904C0001 */ lbu $t4, 1($v0)
/* 09F920 802E0120 000A5080 */ sll $t2, $t2, 2
/* 09F924 802E0124 00EF3821 */ addu $a3, $a3, $t7
/* 09F928 802E0128 00073880 */ sll $a3, $a3, 2
/* 09F92C 802E012C 004A5821 */ addu $t3, $v0, $t2
/* 09F930 802E0130 AFB00020 */ sw $s0, 0x20($sp)
/* 09F934 802E0134 01671821 */ addu $v1, $t3, $a3
/* 09F938 802E0138 00808025 */ move $s0, $a0
/* 09F93C 802E013C AFBF0024 */ sw $ra, 0x24($sp)
/* 09F940 802E0140 AFA60038 */ sw $a2, 0x38($sp)
/* 09F944 802E0144 11800033 */ beqz $t4, .L80200BC4
/* 09F948 802E0148 24630030 */ addiu $v1, $v1, 0x30
/* 09F94C 802E014C 904D0004 */ lbu $t5, 4($v0)
/* 09F950 802E0150 24010001 */ li $at, 1
/* 09F954 802E0154 3C190800 */ lui $t9, 0x800
/* 09F958 802E0158 15A10018 */ bne $t5, $at, .L80200B6C
/* 09F95C 802E015C 3C080740 */ lui $t0, (0x07400280 >> 16) # lui $t0, 0x740
/* 09F960 802E0160 87AE0036 */ lh $t6, 0x36($sp)
/* 09F964 802E0164 9466000E */ lhu $a2, 0xe($v1)
/* 09F968 802E0168 84670010 */ lh $a3, 0x10($v1)
/* 09F96C 802E016C AFA3002C */ sw $v1, 0x2c($sp)
/* 09F970 802E0170 24050740 */ li $a1, 1856
/* 09F974 802E0174 0C0B7E65 */ jal synthesis_save_reverb_ring_buffer
/* 09F978 802E0178 AFAE0010 */ sw $t6, 0x10($sp)
/* 09F97C 802E017C 8FA3002C */ lw $v1, 0x2c($sp)
/* 09F980 802E0180 00408025 */ move $s0, $v0
/* 09F984 802E0184 00402025 */ move $a0, $v0
/* 09F988 802E0188 84670012 */ lh $a3, 0x12($v1)
/* 09F98C 802E018C 87B80036 */ lh $t8, 0x36($sp)
/* 09F990 802E0190 50E00021 */ beql $a3, $zero, .L80200BC8
/* 09F994 802E0194 8FBF0024 */ lw $ra, 0x24($sp)
/* 09F998 802E0198 84650010 */ lh $a1, 0x10($v1)
/* 09F99C 802E019C AFB80010 */ sw $t8, 0x10($sp)
/* 09F9A0 802E01A0 00003025 */ move $a2, $zero
/* 09F9A4 802E01A4 24A50740 */ addiu $a1, $a1, 0x740
/* 09F9A8 802E01A8 30AFFFFF */ andi $t7, $a1, 0xffff
/* 09F9AC 802E01AC 0C0B7E65 */ jal synthesis_save_reverb_ring_buffer
/* 09F9B0 802E01B0 01E02825 */ move $a1, $t7
/* 09F9B4 802E01B4 10000017 */ b .L80200BC4
/* 09F9B8 802E01B8 00408025 */ move $s0, $v0
.L80200B6C:
/* 09F9BC 802E01BC 02001825 */ move $v1, $s0
/* 09F9C0 802E01C0 26100008 */ addiu $s0, $s0, 8
/* 09F9C4 802E01C4 35080280 */ ori $t0, (0x07400280 & 0xFFFF) # ori $t0, $t0, 0x280
/* 09F9C8 802E01C8 AC680004 */ sw $t0, 4($v1)
/* 09F9CC 802E01CC AC790000 */ sw $t9, ($v1)
/* 09F9D0 802E01D0 02002025 */ move $a0, $s0
/* 09F9D4 802E01D4 3C090600 */ lui $t1, 0x600
/* 09F9D8 802E01D8 AC890000 */ sw $t1, ($a0)
/* 09F9DC 802E01DC 904A0003 */ lbu $t2, 3($v0)
/* 09F9E0 802E01E0 3C018000 */ lui $at, 0x8000
/* 09F9E4 802E01E4 26100008 */ addiu $s0, $s0, 8
/* 09F9E8 802E01E8 000A5880 */ sll $t3, $t2, 2
/* 09F9EC 802E01EC 016A5823 */ subu $t3, $t3, $t2
/* 09F9F0 802E01F0 000B58C0 */ sll $t3, $t3, 3
/* 09F9F4 802E01F4 016A5821 */ addu $t3, $t3, $t2
/* 09F9F8 802E01F8 000B5880 */ sll $t3, $t3, 2
/* 09F9FC 802E01FC 004B6021 */ addu $t4, $v0, $t3
/* 09FA00 802E0200 01876821 */ addu $t5, $t4, $a3
/* 09FA04 802E0204 8DAE0034 */ lw $t6, 0x34($t5)
/* 09FA08 802E0208 01C17821 */ addu $t7, $t6, $at
/* 09FA0C 802E020C AC8F0004 */ sw $t7, 4($a0)
/* 09FA10 802E0210 A0400000 */ sb $zero, ($v0)
.L80200BC4:
/* 09FA14 802E0214 8FBF0024 */ lw $ra, 0x24($sp)
.L80200BC8:
/* 09FA18 802E0218 02001025 */ move $v0, $s0
/* 09FA1C 802E021C 8FB00020 */ lw $s0, 0x20($sp)
/* 09FA20 802E0220 03E00008 */ jr $ra
/* 09FA24 802E0224 27BD0030 */ addiu $sp, $sp, 0x30

+ 263
- 0
asm/non_matchings/eu/audio/note_apply_headset_pan_effects.s View File

@@ -0,0 +1,263 @@
glabel note_apply_headset_pan_effects
/* 0A0F98 802E1798 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0A0F9C 802E179C 8FAE003C */ lw $t6, 0x3c($sp)
/* 0A0FA0 802E17A0 AFB00004 */ sw $s0, 4($sp)
/* 0A0FA4 802E17A4 24020001 */ li $v0, 1
/* 0A0FA8 802E17A8 11C20006 */ beq $t6, $v0, .L80202174
/* 0A0FAC 802E17AC 00C08025 */ move $s0, $a2
/* 0A0FB0 802E17B0 24010002 */ li $at, 2
/* 0A0FB4 802E17B4 11C10009 */ beq $t6, $at, .L8020218C
/* 0A0FB8 802E17B8 240A0600 */ li $t2, 1536
/* 0A0FBC 802E17BC 100000E8 */ b .L80202510
/* 0A0FC0 802E17C0 00801025 */ move $v0, $a0
.L80202174:
/* 0A0FC4 802E17C4 90A60003 */ lbu $a2, 3($a1)
/* 0A0FC8 802E17C8 92080002 */ lbu $t0, 2($s0)
/* 0A0FCC 802E17CC 240A04C0 */ li $t2, 1216
/* 0A0FD0 802E17D0 A2000003 */ sb $zero, 3($s0)
/* 0A0FD4 802E17D4 10000008 */ b .L802021A8
/* 0A0FD8 802E17D8 A2060002 */ sb $a2, 2($s0)
.L8020218C:
/* 0A0FDC 802E17DC 90A60004 */ lbu $a2, 4($a1)
/* 0A0FE0 802E17E0 92080003 */ lbu $t0, 3($s0)
/* 0A0FE4 802E17E4 A2000002 */ sb $zero, 2($s0)
/* 0A0FE8 802E17E8 10000003 */ b .L802021A8
/* 0A0FEC 802E17EC A2060003 */ sb $a2, 3($s0)
/* 0A0FF0 802E17F0 100000DB */ b .L80202510
/* 0A0FF4 802E17F4 00801025 */ move $v0, $a0
.L802021A8:
/* 0A0FF8 802E17F8 8FAF0038 */ lw $t7, 0x38($sp)
/* 0A0FFC 802E17FC 30E5FFFF */ andi $a1, $a3, 0xffff
/* 0A1000 802E1800 3C180A00 */ lui $t8, 0xa00
/* 0A1004 802E1804 51E200A5 */ beql $t7, $v0, .L8020244C
/* 0A1008 802E1808 00801825 */ move $v1, $a0
/* 0A100C 802E180C 15000047 */ bnez $t0, .L802022DC
/* 0A1010 802E1810 01002825 */ move $a1, $t0
/* 0A1014 802E1814 00801825 */ move $v1, $a0
/* 0A1018 802E1818 3C020A00 */ lui $v0, (0x0A000200 >> 16) # lui $v0, 0xa00
/* 0A101C 802E181C 24840008 */ addiu $a0, $a0, 8
/* 0A1020 802E1820 24180008 */ li $t8, 8
/* 0A1024 802E1824 34420200 */ ori $v0, (0x0A000200 & 0xFFFF) # ori $v0, $v0, 0x200
/* 0A1028 802E1828 AC780004 */ sw $t8, 4($v1)
/* 0A102C 802E182C 00805825 */ move $t3, $a0
/* 0A1030 802E1830 3C190200 */ lui $t9, (0x02000008 >> 16) # lui $t9, 0x200
/* 0A1034 802E1834 AC620000 */ sw $v0, ($v1)
/* 0A1038 802E1838 37390008 */ ori $t9, (0x02000008 & 0xFFFF) # ori $t9, $t9, 8
/* 0A103C 802E183C 24840008 */ addiu $a0, $a0, 8
/* 0A1040 802E1840 AD790000 */ sw $t9, ($t3)
/* 0A1044 802E1844 240E0008 */ li $t6, 8
/* 0A1048 802E1848 00806025 */ move $t4, $a0
/* 0A104C 802E184C AD6E0004 */ sw $t6, 4($t3)
/* 0A1050 802E1850 24840008 */ addiu $a0, $a0, 8
/* 0A1054 802E1854 3C0F0010 */ lui $t7, (0x00100010 >> 16) # lui $t7, 0x10
/* 0A1058 802E1858 35EF0010 */ ori $t7, (0x00100010 & 0xFFFF) # ori $t7, $t7, 0x10
/* 0A105C 802E185C 00806825 */ move $t5, $a0
/* 0A1060 802E1860 AD8F0004 */ sw $t7, 4($t4)
/* 0A1064 802E1864 AD820000 */ sw $v0, ($t4)
/* 0A1068 802E1868 24190020 */ li $t9, 32
/* 0A106C 802E186C 3C180800 */ lui $t8, 0x800
/* 0A1070 802E1870 ADB80000 */ sw $t8, ($t5)
/* 0A1074 802E1874 ADB90004 */ sw $t9, 4($t5)
/* 0A1078 802E1878 24840008 */ addiu $a0, $a0, 8
/* 0A107C 802E187C AFA4000C */ sw $a0, 0xc($sp)
/* 0A1080 802E1880 8FAF000C */ lw $t7, 0xc($sp)
/* 0A1084 802E1884 3C0E0600 */ lui $t6, 0x600
/* 0A1088 802E1888 3C098000 */ lui $t1, (0x80000090 >> 16) # lui $t1, 0x8000
/* 0A108C 802E188C ADEE0000 */ sw $t6, ($t7)
/* 0A1090 802E1890 8E18000C */ lw $t8, 0xc($s0)
/* 0A1094 802E1894 35290090 */ ori $t1, (0x80000090 & 0xFFFF) # ori $t1, $t1, 0x90
/* 0A1098 802E1898 00E67021 */ addu $t6, $a3, $a2
/* 0A109C 802E189C 0309C821 */ addu $t9, $t8, $t1
/* 0A10A0 802E18A0 0007C3C0 */ sll $t8, $a3, 0xf
/* 0A10A4 802E18A4 01C51823 */ subu $v1, $t6, $a1
/* 0A10A8 802E18A8 ADF90004 */ sw $t9, 4($t7)
/* 0A10AC 802E18AC 24790008 */ addiu $t9, $v1, 8
/* 0A10B0 802E18B0 0319001A */ div $zero, $t8, $t9
/* 0A10B4 802E18B4 24840008 */ addiu $a0, $a0, 8
/* 0A10B8 802E18B8 17200002 */ bnez $t9, .L80202274
/* 0A10BC 802E18BC 00000000 */ nop
/* 0A10C0 802E18C0 0007000D */ break 7
.L80202274:
/* 0A10C4 802E18C4 2401FFFF */ li $at, -1
/* 0A10C8 802E18C8 17210004 */ bne $t9, $at, .L8020228C
/* 0A10CC 802E18CC 3C018000 */ lui $at, 0x8000
/* 0A10D0 802E18D0 17010002 */ bne $t8, $at, .L8020228C
/* 0A10D4 802E18D4 00000000 */ nop
/* 0A10D8 802E18D8 0006000D */ break 6
.L8020228C:
/* 0A10DC 802E18DC 00005812 */ mflo $t3
/* 0A10E0 802E18E0 00806025 */ move $t4, $a0
/* 0A10E4 802E18E4 316FFFFF */ andi $t7, $t3, 0xffff
/* 0A10E8 802E18E8 3C0E0800 */ lui $t6, (0x08000208 >> 16) # lui $t6, 0x800
/* 0A10EC 802E18EC 35CE0208 */ ori $t6, (0x08000208 & 0xFFFF) # ori $t6, $t6, 0x208
/* 0A10F0 802E18F0 24840008 */ addiu $a0, $a0, 8
/* 0A10F4 802E18F4 3062FFFF */ andi $v0, $v1, 0xffff
/* 0A10F8 802E18F8 31F8FFFF */ andi $t8, $t7, 0xffff
/* 0A10FC 802E18FC 3C010500 */ lui $at, 0x500
/* 0A1100 802E1900 AD820004 */ sw $v0, 4($t4)
/* 0A1104 802E1904 AD8E0000 */ sw $t6, ($t4)
/* 0A1108 802E1908 0301C825 */ or $t9, $t8, $at
/* 0A110C 802E190C 00806825 */ move $t5, $a0
/* 0A1110 802E1910 01E05825 */ move $t3, $t7
/* 0A1114 802E1914 ADB90000 */ sw $t9, ($t5)
/* 0A1118 802E1918 8E0F000C */ lw $t7, 0xc($s0)
/* 0A111C 802E191C 24840008 */ addiu $a0, $a0, 8
/* 0A1120 802E1920 01E97021 */ addu $t6, $t7, $t1
/* 0A1124 802E1924 10000038 */ b .L802023B8
/* 0A1128 802E1928 ADAE0004 */ sw $t6, 4($t5)
.L802022DC:
/* 0A112C 802E192C 14C00014 */ bnez $a2, .L80202330
/* 0A1130 802E1930 00C01025 */ move $v0, $a2
/* 0A1134 802E1934 00E5C823 */ subu $t9, $a3, $a1
/* 0A1138 802E1938 272FFFFC */ addiu $t7, $t9, -4
/* 0A113C 802E193C 0007C3C0 */ sll $t8, $a3, 0xf
/* 0A1140 802E1940 030F001A */ div $zero, $t8, $t7
/* 0A1144 802E1944 00005812 */ mflo $t3
/* 0A1148 802E1948 316EFFFF */ andi $t6, $t3, 0xffff
/* 0A114C 802E194C 15E00002 */ bnez $t7, .L80202308
/* 0A1150 802E1950 00000000 */ nop
/* 0A1154 802E1954 0007000D */ break 7
.L80202308:
/* 0A1158 802E1958 2401FFFF */ li $at, -1
/* 0A115C 802E195C 15E10004 */ bne $t7, $at, .L80202320
/* 0A1160 802E1960 3C018000 */ lui $at, 0x8000
/* 0A1164 802E1964 17010002 */ bne $t8, $at, .L80202320
/* 0A1168 802E1968 00000000 */ nop
/* 0A116C 802E196C 0006000D */ break 6
.L80202320:
/* 0A1170 802E1970 00E2C821 */ addu $t9, $a3, $v0
/* 0A1174 802E1974 03251823 */ subu $v1, $t9, $a1
/* 0A1178 802E1978 10000011 */ b .L80202370
/* 0A117C 802E197C 01C05825 */ move $t3, $t6
.L80202330:
/* 0A1180 802E1980 00E2C021 */ addu $t8, $a3, $v0
/* 0A1184 802E1984 03051823 */ subu $v1, $t8, $a1
/* 0A1188 802E1988 00077BC0 */ sll $t7, $a3, 0xf
/* 0A118C 802E198C 01E3001A */ div $zero, $t7, $v1
/* 0A1190 802E1990 00005812 */ mflo $t3
/* 0A1194 802E1994 316EFFFF */ andi $t6, $t3, 0xffff
/* 0A1198 802E1998 01C05825 */ move $t3, $t6
/* 0A119C 802E199C 14600002 */ bnez $v1, .L80202358
/* 0A11A0 802E19A0 00000000 */ nop
/* 0A11A4 802E19A4 0007000D */ break 7
.L80202358:
/* 0A11A8 802E19A8 2401FFFF */ li $at, -1
/* 0A11AC 802E19AC 14610004 */ bne $v1, $at, .L80202370
/* 0A11B0 802E19B0 3C018000 */ lui $at, 0x8000
/* 0A11B4 802E19B4 15E10002 */ bne $t7, $at, .L80202370
/* 0A11B8 802E19B8 00000000 */ nop
/* 0A11BC 802E19BC 0006000D */ break 6
.L80202370:
/* 0A11C0 802E19C0 00806025 */ move $t4, $a0
/* 0A11C4 802E19C4 3C190800 */ lui $t9, (0x08000200 >> 16) # lui $t9, 0x800
/* 0A11C8 802E19C8 37390200 */ ori $t9, (0x08000200 & 0xFFFF) # ori $t9, $t9, 0x200
/* 0A11CC 802E19CC 24840008 */ addiu $a0, $a0, 8
/* 0A11D0 802E19D0 3062FFFF */ andi $v0, $v1, 0xffff
/* 0A11D4 802E19D4 3178FFFF */ andi $t8, $t3, 0xffff
/* 0A11D8 802E19D8 3C010500 */ lui $at, 0x500
/* 0A11DC 802E19DC AD820004 */ sw $v0, 4($t4)
/* 0A11E0 802E19E0 AD990000 */ sw $t9, ($t4)
/* 0A11E4 802E19E4 03017825 */ or $t7, $t8, $at
/* 0A11E8 802E19E8 00806825 */ move $t5, $a0
/* 0A11EC 802E19EC ADAF0000 */ sw $t7, ($t5)
/* 0A11F0 802E19F0 8E0E000C */ lw $t6, 0xc($s0)
/* 0A11F4 802E19F4 3C098000 */ lui $t1, %hi(0x80000004) # $t1, 0x8000
/* 0A11F8 802E19F8 35290090 */ ori $t1, (0x80000090 & 0xFFFF) # ori $t1, $t1, 0x90
/* 0A11FC 802E19FC 01C9C821 */ addu $t9, $t6, $t1
/* 0A1200 802E1A00 ADB90004 */ sw $t9, 4($t5)
/* 0A1204 802E1A04 24840008 */ addiu $a0, $a0, 8
.L802023B8:
/* 0A1208 802E1A08 10A0001B */ beqz $a1, .L80202428
/* 0A120C 802E1A0C 00801825 */ move $v1, $a0
/* 0A1210 802E1A10 00801825 */ move $v1, $a0
/* 0A1214 802E1A14 3C180800 */ lui $t8, (0x08000200 >> 16) # lui $t8, 0x800
/* 0A1218 802E1A18 37180200 */ ori $t8, (0x08000200 & 0xFFFF) # ori $t8, $t8, 0x200
/* 0A121C 802E1A1C 24840008 */ addiu $a0, $a0, 8
/* 0A1220 802E1A20 310FFFFF */ andi $t7, $t0, 0xffff
/* 0A1224 802E1A24 AC6F0004 */ sw $t7, 4($v1)
/* 0A1228 802E1A28 AC780000 */ sw $t8, ($v1)
/* 0A122C 802E1A2C 00804825 */ move $t1, $a0
/* 0A1230 802E1A30 3C0E0400 */ lui $t6, 0x400
/* 0A1234 802E1A34 AD2E0000 */ sw $t6, ($t1)
/* 0A1238 802E1A38 8E19000C */ lw $t9, 0xc($s0)
/* 0A123C 802E1A3C 3C018000 */ lui $at, (0x800000B0 >> 16) # lui $at, 0x8000
/* 0A1240 802E1A40 342100B0 */ ori $at, (0x800000B0 & 0xFFFF) # ori $at, $at, 0xb0
/* 0A1244 802E1A44 0321C021 */ addu $t8, $t9, $at
/* 0A1248 802E1A48 AD380004 */ sw $t8, %lo(0x80000004)($t1)
/* 0A124C 802E1A4C 24840008 */ addiu $a0, $a0, 8
/* 0A1250 802E1A50 00805825 */ move $t3, $a0
/* 0A1254 802E1A54 24B90200 */ addiu $t9, $a1, 0x200
/* 0A1258 802E1A58 3C0F0A00 */ lui $t7, 0xa00
/* 0A125C 802E1A5C AD6F0000 */ sw $t7, ($t3)
/* 0A1260 802E1A60 0019C400 */ sll $t8, $t9, 0x10
/* 0A1264 802E1A64 03027825 */ or $t7, $t8, $v0
/* 0A1268 802E1A68 AD6F0004 */ sw $t7, 4($t3)
/* 0A126C 802E1A6C 24840008 */ addiu $a0, $a0, 8
/* 0A1270 802E1A70 1000001C */ b .L80202494
/* 0A1274 802E1A74 30E5FFFF */ andi $a1, $a3, 0xffff
.L80202428:
/* 0A1278 802E1A78 3C010200 */ lui $at, 0x200
/* 0A127C 802E1A7C 0041C825 */ or $t9, $v0, $at
/* 0A1280 802E1A80 3C0E0A00 */ lui $t6, 0xa00
/* 0A1284 802E1A84 AC6E0000 */ sw $t6, ($v1)
/* 0A1288 802E1A88 AC790004 */ sw $t9, 4($v1)
/* 0A128C 802E1A8C 24840008 */ addiu $a0, $a0, 8
/* 0A1290 802E1A90 10000014 */ b .L80202494
/* 0A1294 802E1A94 30E5FFFF */ andi $a1, $a3, 0xffff
/* 0A1298 802E1A98 00801825 */ move $v1, $a0
.L8020244C:
/* 0A129C 802E1A9C 3C020A00 */ lui $v0, %hi(0x0A000004) # $v0, 0xa00
/* 0A12A0 802E1AA0 24840008 */ addiu $a0, $a0, 8
/* 0A12A4 802E1AA4 34420200 */ ori $v0, (0x0A000200 & 0xFFFF) # ori $v0, $v0, 0x200
/* 0A12A8 802E1AA8 00804025 */ move $t0, $a0
/* 0A12AC 802E1AAC AC620000 */ sw $v0, ($v1)
/* 0A12B0 802E1AB0 AC650004 */ sw $a1, 4($v1)
/* 0A12B4 802E1AB4 24CE0200 */ addiu $t6, $a2, 0x200
/* 0A12B8 802E1AB8 000ECC00 */ sll $t9, $t6, 0x10
/* 0A12BC 802E1ABC AD180000 */ sw $t8, ($t0)
/* 0A12C0 802E1AC0 24840008 */ addiu $a0, $a0, 8
/* 0A12C4 802E1AC4 0325C025 */ or $t8, $t9, $a1
/* 0A12C8 802E1AC8 00804825 */ move $t1, $a0
/* 0A12CC 802E1ACC AD180004 */ sw $t8, 4($t0)
/* 0A12D0 802E1AD0 3C0F0200 */ lui $t7, (0x02000200 >> 16) # lui $t7, 0x200
/* 0A12D4 802E1AD4 35EF0200 */ ori $t7, (0x02000200 & 0xFFFF) # ori $t7, $t7, 0x200
/* 0A12D8 802E1AD8 AD2F0000 */ sw $t7, ($t1)
/* 0A12DC 802E1ADC AD260004 */ sw $a2, %lo(0x80000004)($t1)
/* 0A12E0 802E1AE0 24840008 */ addiu $a0, $a0, 8
.L80202494:
/* 0A12E4 802E1AE4 10C00012 */ beqz $a2, .L802024E0
/* 0A12E8 802E1AE8 00801025 */ move $v0, $a0
/* 0A12EC 802E1AEC 3C0E0800 */ lui $t6, 0x800
/* 0A12F0 802E1AF0 AC4E0000 */ sw $t6, ($v0)
/* 0A12F4 802E1AF4 24F80200 */ addiu $t8, $a3, 0x200
/* 0A12F8 802E1AF8 00187C00 */ sll $t7, $t8, 0x10
/* 0A12FC 802E1AFC 30CEFFFF */ andi $t6, $a2, 0xffff
/* 0A1300 802E1B00 01EEC825 */ or $t9, $t7, $t6
/* 0A1304 802E1B04 24840008 */ addiu $a0, $a0, 8
/* 0A1308 802E1B08 AC590004 */ sw $t9, %lo(0x0A000004)($v0)
/* 0A130C 802E1B0C 00801825 */ move $v1, $a0
/* 0A1310 802E1B10 3C180600 */ lui $t8, 0x600
/* 0A1314 802E1B14 AC780000 */ sw $t8, ($v1)
/* 0A1318 802E1B18 8E0F000C */ lw $t7, 0xc($s0)
/* 0A131C 802E1B1C 3C018000 */ lui $at, (0x800000B0 >> 16) # lui $at, 0x8000
/* 0A1320 802E1B20 342100B0 */ ori $at, (0x800000B0 & 0xFFFF) # ori $at, $at, 0xb0
/* 0A1324 802E1B24 01E17021 */ addu $t6, $t7, $at
/* 0A1328 802E1B28 AC6E0004 */ sw $t6, 4($v1)
/* 0A132C 802E1B2C 24840008 */ addiu $a0, $a0, 8
.L802024E0:
/* 0A1330 802E1B30 24860008 */ addiu $a2, $a0, 8
/* 0A1334 802E1B34 3C190800 */ lui $t9, 0x800
/* 0A1338 802E1B38 AC990000 */ sw $t9, ($a0)
/* 0A133C 802E1B3C AC850004 */ sw $a1, 4($a0)
/* 0A1340 802E1B40 3C180C00 */ lui $t8, (0x0C007FFF >> 16) # lui $t8, 0xc00
/* 0A1344 802E1B44 314FFFFF */ andi $t7, $t2, 0xffff
/* 0A1348 802E1B48 3C010200 */ lui $at, 0x200
/* 0A134C 802E1B4C 01E17025 */ or $t6, $t7, $at
/* 0A1350 802E1B50 37187FFF */ ori $t8, (0x0C007FFF & 0xFFFF) # ori $t8, $t8, 0x7fff
/* 0A1354 802E1B54 ACD80000 */ sw $t8, ($a2)
/* 0A1358 802E1B58 ACCE0004 */ sw $t6, 4($a2)
/* 0A135C 802E1B5C 24C20008 */ addiu $v0, $a2, 8
.L80202510:
/* 0A1360 802E1B60 8FB00004 */ lw $s0, 4($sp)
/* 0A1364 802E1B64 03E00008 */ jr $ra
/* 0A1368 802E1B68 27BD0028 */ addiu $sp, $sp, 0x28

+ 179
- 0
asm/non_matchings/eu/audio/prepare_reverb_ring_buffer.s View File

@@ -0,0 +1,179 @@
glabel prepare_reverb_ring_buffer
/* 09EE50 802DF650 00067140 */ sll $t6, $a2, 5
/* 09EE54 802DF654 01C67021 */ addu $t6, $t6, $a2
/* 09EE58 802DF658 3C0F8022 */ lui $t7, %hi(gSynthesisReverbs) # $t7, 0x8022
/* 09EE5C 802DF65C 25EFC1B0 */ addiu $t7, %lo(gSynthesisReverbs) # addiu $t7, $t7, -0x3e50
/* 09EE60 802DF660 000E70C0 */ sll $t6, $t6, 3
/* 09EE64 802DF664 01CF3821 */ addu $a3, $t6, $t7
/* 09EE68 802DF668 90F80004 */ lbu $t8, 4($a3)
/* 09EE6C 802DF66C 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 09EE70 802DF670 24010001 */ li $at, 1
/* 09EE74 802DF674 AFBF0014 */ sw $ra, 0x14($sp)
/* 09EE78 802DF678 AFA40040 */ sw $a0, 0x40($sp)
/* 09EE7C 802DF67C 13010062 */ beq $t8, $at, .L802001B8
/* 09EE80 802DF680 AFA50044 */ sw $a1, 0x44($sp)
/* 09EE84 802DF684 90F90002 */ lbu $t9, 2($a3)
/* 09EE88 802DF688 00056080 */ sll $t4, $a1, 2
/* 09EE8C 802DF68C 01856021 */ addu $t4, $t4, $a1
/* 09EE90 802DF690 5720005E */ bnezl $t9, .L802001BC
/* 09EE94 802DF694 90E90004 */ lbu $t1, 4($a3)
/* 09EE98 802DF698 90E80003 */ lbu $t0, 3($a3)
/* 09EE9C 802DF69C 000C6080 */ sll $t4, $t4, 2
/* 09EEA0 802DF6A0 24050280 */ li $a1, 640
/* 09EEA4 802DF6A4 00084880 */ sll $t1, $t0, 2
/* 09EEA8 802DF6A8 01284823 */ subu $t1, $t1, $t0
/* 09EEAC 802DF6AC 000948C0 */ sll $t1, $t1, 3
/* 09EEB0 802DF6B0 01284821 */ addu $t1, $t1, $t0
/* 09EEB4 802DF6B4 00094880 */ sll $t1, $t1, 2
/* 09EEB8 802DF6B8 00E95021 */ addu $t2, $a3, $t1
/* 09EEBC 802DF6BC 014C3021 */ addu $a2, $t2, $t4
/* 09EEC0 802DF6C0 24C60030 */ addiu $a2, $a2, 0x30
/* 09EEC4 802DF6C4 8CC40004 */ lw $a0, 4($a2)
/* 09EEC8 802DF6C8 AFA70018 */ sw $a3, 0x18($sp)
/* 09EECC 802DF6CC 0C0BC448 */ jal osInvalDCache
/* 09EED0 802DF6D0 AFA6003C */ sw $a2, 0x3c($sp)
/* 09EED4 802DF6D4 8FA6003C */ lw $a2, 0x3c($sp)
/* 09EED8 802DF6D8 8FA70018 */ lw $a3, 0x18($sp)
/* 09EEDC 802DF6DC 00002825 */ move $a1, $zero
/* 09EEE0 802DF6E0 84CD0010 */ lh $t5, 0x10($a2)
/* 09EEE4 802DF6E4 00002025 */ move $a0, $zero
/* 09EEE8 802DF6E8 05A10003 */ bgez $t5, .L802000A8
/* 09EEEC 802DF6EC 000D7043 */ sra $t6, $t5, 1
/* 09EEF0 802DF6F0 25A10001 */ addiu $at, $t5, 1
/* 09EEF4 802DF6F4 00017043 */ sra $t6, $at, 1
.L802000A8:
/* 09EEF8 802DF6F8 59C00023 */ blezl $t6, .L80200138
/* 09EEFC 802DF6FC 84CE0012 */ lh $t6, 0x12($a2)
/* 09EF00 802DF700 00001025 */ move $v0, $zero
/* 09EF04 802DF704 8CCF0004 */ lw $t7, 4($a2)
.L802000B8:
/* 09EF08 802DF708 8CC9000C */ lw $t1, 0xc($a2)
/* 09EF0C 802DF70C 8CE80018 */ lw $t0, 0x18($a3)
/* 09EF10 802DF710 00051840 */ sll $v1, $a1, 1
/* 09EF14 802DF714 01E3C021 */ addu $t8, $t7, $v1
/* 09EF18 802DF718 87190000 */ lh $t9, ($t8)
/* 09EF1C 802DF71C 00095840 */ sll $t3, $t1, 1
/* 09EF20 802DF720 010B5021 */ addu $t2, $t0, $t3
/* 09EF24 802DF724 01426021 */ addu $t4, $t2, $v0
/* 09EF28 802DF728 A5990000 */ sh $t9, ($t4)
/* 09EF2C 802DF72C 8CCD0008 */ lw $t5, 8($a2)
/* 09EF30 802DF730 8CC9000C */ lw $t1, 0xc($a2)
/* 09EF34 802DF734 8CF8001C */ lw $t8, 0x1c($a3)
/* 09EF38 802DF738 01A37021 */ addu $t6, $t5, $v1
/* 09EF3C 802DF73C 85CF0000 */ lh $t7, ($t6)
/* 09EF40 802DF740 00094040 */ sll $t0, $t1, 1
/* 09EF44 802DF744 03085821 */ addu $t3, $t8, $t0
/* 09EF48 802DF748 01625021 */ addu $t2, $t3, $v0
/* 09EF4C 802DF74C A54F0000 */ sh $t7, ($t2)
/* 09EF50 802DF750 84CC0010 */ lh $t4, 0x10($a2)
/* 09EF54 802DF754 90F90004 */ lbu $t9, 4($a3)
/* 09EF58 802DF758 24840001 */ addiu $a0, $a0, 1
/* 09EF5C 802DF75C 24420002 */ addiu $v0, $v0, 2
/* 09EF60 802DF760 00B92821 */ addu $a1, $a1, $t9
/* 09EF64 802DF764 05810003 */ bgez $t4, .L80200124
/* 09EF68 802DF768 000C6843 */ sra $t5, $t4, 1
/* 09EF6C 802DF76C 25810001 */ addiu $at, $t4, 1
/* 09EF70 802DF770 00016843 */ sra $t5, $at, 1
.L80200124:
/* 09EF74 802DF774 008D082A */ slt $at, $a0, $t5
/* 09EF78 802DF778 5420FFE3 */ bnezl $at, .L802000B8
/* 09EF7C 802DF77C 8CCF0004 */ lw $t7, 4($a2)
/* 09EF80 802DF780 00002025 */ move $a0, $zero
/* 09EF84 802DF784 84CE0012 */ lh $t6, 0x12($a2)
.L80200138:
/* 09EF88 802DF788 05C10003 */ bgez $t6, .L80200148
/* 09EF8C 802DF78C 000E4843 */ sra $t1, $t6, 1
/* 09EF90 802DF790 25C10001 */ addiu $at, $t6, 1
/* 09EF94 802DF794 00014843 */ sra $t1, $at, 1
.L80200148:
/* 09EF98 802DF798 5920001C */ blezl $t1, .L802001BC
/* 09EF9C 802DF79C 90E90004 */ lbu $t1, 4($a3)
/* 09EFA0 802DF7A0 00001025 */ move $v0, $zero
/* 09EFA4 802DF7A4 8CD80004 */ lw $t8, 4($a2)
.L80200158:
/* 09EFA8 802DF7A8 00051840 */ sll $v1, $a1, 1
/* 09EFAC 802DF7AC 8CEF0018 */ lw $t7, 0x18($a3)
/* 09EFB0 802DF7B0 03034021 */ addu $t0, $t8, $v1
/* 09EFB4 802DF7B4 850B0000 */ lh $t3, ($t0)
/* 09EFB8 802DF7B8 01E25021 */ addu $t2, $t7, $v0
/* 09EFBC 802DF7BC 24840001 */ addiu $a0, $a0, 1
/* 09EFC0 802DF7C0 A54B0000 */ sh $t3, ($t2)
/* 09EFC4 802DF7C4 8CD90008 */ lw $t9, 8($a2)
/* 09EFC8 802DF7C8 8CEE001C */ lw $t6, 0x1c($a3)
/* 09EFCC 802DF7CC 03236021 */ addu $t4, $t9, $v1
/* 09EFD0 802DF7D0 858D0000 */ lh $t5, ($t4)
/* 09EFD4 802DF7D4 01C24821 */ addu $t1, $t6, $v0
/* 09EFD8 802DF7D8 24420002 */ addiu $v0, $v0, 2
/* 09EFDC 802DF7DC A52D0000 */ sh $t5, ($t1)
/* 09EFE0 802DF7E0 84C80012 */ lh $t0, 0x12($a2)
/* 09EFE4 802DF7E4 90F80004 */ lbu $t8, 4($a3)
/* 09EFE8 802DF7E8 00B82821 */ addu $a1, $a1, $t8
/* 09EFEC 802DF7EC 05010003 */ bgez $t0, .L802001AC
/* 09EFF0 802DF7F0 00087843 */ sra $t7, $t0, 1
/* 09EFF4 802DF7F4 25010001 */ addiu $at, $t0, 1
/* 09EFF8 802DF7F8 00017843 */ sra $t7, $at, 1
.L802001AC:
/* 09EFFC 802DF7FC 008F082A */ slt $at, $a0, $t7
/* 09F000 802DF800 5420FFE9 */ bnezl $at, .L80200158
/* 09F004 802DF804 8CD80004 */ lw $t8, 4($a2)
.L802001B8:
/* 09F008 802DF808 90E90004 */ lbu $t1, 4($a3)
.L802001BC:
/* 09F00C 802DF80C 8FAD0040 */ lw $t5, 0x40($sp)
/* 09F010 802DF810 90EB0003 */ lbu $t3, 3($a3)
/* 09F014 802DF814 8FAC0044 */ lw $t4, 0x44($sp)
/* 09F018 802DF818 01A9001A */ div $zero, $t5, $t1
/* 09F01C 802DF81C 000B5080 */ sll $t2, $t3, 2
/* 09F020 802DF820 8CF8000C */ lw $t8, 0xc($a3)
/* 09F024 802DF824 014B5023 */ subu $t2, $t2, $t3
/* 09F028 802DF828 8CEF0014 */ lw $t7, 0x14($a3)
/* 09F02C 802DF82C 000A50C0 */ sll $t2, $t2, 3
/* 09F030 802DF830 00001012 */ mflo $v0
/* 09F034 802DF834 014B5021 */ addu $t2, $t2, $t3
/* 09F038 802DF838 000C7080 */ sll $t6, $t4, 2
/* 09F03C 802DF83C 000A5080 */ sll $t2, $t2, 2
/* 09F040 802DF840 01CC7021 */ addu $t6, $t6, $t4
/* 09F044 802DF844 03024021 */ addu $t0, $t8, $v0
/* 09F048 802DF848 000E7080 */ sll $t6, $t6, 2
/* 09F04C 802DF84C 00EAC821 */ addu $t9, $a3, $t2
/* 09F050 802DF850 010F1823 */ subu $v1, $t0, $t7
/* 09F054 802DF854 032E3021 */ addu $a2, $t9, $t6
/* 09F058 802DF858 24C60030 */ addiu $a2, $a2, 0x30
/* 09F05C 802DF85C 15200002 */ bnez $t1, .L80200218
/* 09F060 802DF860 00000000 */ nop
/* 09F064 802DF864 0007000D */ break 7
.L80200218:
/* 09F068 802DF868 2401FFFF */ li $at, -1
/* 09F06C 802DF86C 15210004 */ bne $t1, $at, .L80200230
/* 09F070 802DF870 3C018000 */ lui $at, 0x8000
/* 09F074 802DF874 15A10002 */ bne $t5, $at, .L80200230
/* 09F078 802DF878 00000000 */ nop
/* 09F07C 802DF87C 0006000D */ break 6
.L80200230:
/* 09F080 802DF880 00437023 */ subu $t6, $v0, $v1
/* 09F084 802DF884 0461000A */ bgez $v1, .L80200260
/* 09F088 802DF888 00034840 */ sll $t1, $v1, 1
/* 09F08C 802DF88C 00025840 */ sll $t3, $v0, 1
/* 09F090 802DF890 A4CB0010 */ sh $t3, 0x10($a2)
/* 09F094 802DF894 A4C00012 */ sh $zero, 0x12($a2)
/* 09F098 802DF898 8CEA000C */ lw $t2, 0xc($a3)
/* 09F09C 802DF89C ACCA000C */ sw $t2, 0xc($a2)
/* 09F0A0 802DF8A0 8CEC000C */ lw $t4, 0xc($a3)
/* 09F0A4 802DF8A4 0182C821 */ addu $t9, $t4, $v0
/* 09F0A8 802DF8A8 10000007 */ b .L80200278
/* 09F0AC 802DF8AC ACF9000C */ sw $t9, 0xc($a3)
.L80200260:
/* 09F0B0 802DF8B0 000E6840 */ sll $t5, $t6, 1
/* 09F0B4 802DF8B4 A4CD0010 */ sh $t5, 0x10($a2)
/* 09F0B8 802DF8B8 A4C90012 */ sh $t1, 0x12($a2)
/* 09F0BC 802DF8BC 8CF8000C */ lw $t8, 0xc($a3)
/* 09F0C0 802DF8C0 ACD8000C */ sw $t8, 0xc($a2)
/* 09F0C4 802DF8C4 ACE3000C */ sw $v1, 0xc($a3)
.L80200278:
/* 09F0C8 802DF8C8 A4C20000 */ sh $v0, ($a2)
/* 09F0CC 802DF8CC 8FA80040 */ lw $t0, 0x40($sp)
/* 09F0D0 802DF8D0 A4C80002 */ sh $t0, 2($a2)
/* 09F0D4 802DF8D4 8FBF0014 */ lw $ra, 0x14($sp)
/* 09F0D8 802DF8D8 27BD0040 */ addiu $sp, $sp, 0x40
/* 09F0DC 802DF8DC 03E00008 */ jr $ra
/* 09F0E0 802DF8E0 00000000 */ nop

+ 781
- 0
asm/non_matchings/eu/audio/seq_channel_layer_process_script.s View File

@@ -0,0 +1,781 @@
.late_rodata
glabel jtbl_EU_803066A0
.word L_EU_802E7960, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E78F8
.word L_EU_802E78C0, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E7940
.word L_EU_802E7880, L_EU_802E7B6C
.word L_EU_802E7B6C, L_EU_802E7848

glabel jtbl_EU_803066D0
.word L_EU_802E7980, L_EU_802E79BC
.word L_EU_802E7A1C, L_EU_802E79E4
.word L_EU_802E79E4, L_EU_802E7A30
.word L_EU_802E7AA0, L_EU_802E7B28
.word L_EU_802E79BC, L_EU_802E7980
.word L_EU_802E7B30, L_EU_802E7B5C

glabel jtbl_EU_80306700
.word L_EU_802E7F48, L_EU_802E7F50
.word L_EU_802E7F48, L_EU_802E7F50
.word L_EU_802E7F48

.text
glabel seq_channel_layer_process_script
/* 0A6F08 802E7708 27BDFF90 */ addiu $sp, $sp, -0x70
/* 0A6F0C 802E770C 240E0001 */ li $t6, 1
/* 0A6F10 802E7710 AFBF002C */ sw $ra, 0x2c($sp)
/* 0A6F14 802E7714 AFB40028 */ sw $s4, 0x28($sp)
/* 0A6F18 802E7718 AFB30024 */ sw $s3, 0x24($sp)
/* 0A6F1C 802E771C AFB20020 */ sw $s2, 0x20($sp)
/* 0A6F20 802E7720 AFB1001C */ sw $s1, 0x1c($sp)
/* 0A6F24 802E7724 AFB00018 */ sw $s0, 0x18($sp)
/* 0A6F28 802E7728 AFAE0044 */ sw $t6, 0x44($sp)
/* 0A6F2C 802E772C 8C820000 */ lw $v0, ($a0)
/* 0A6F30 802E7730 00808825 */ move $s1, $a0
/* 0A6F34 802E7734 00027FC2 */ srl $t7, $v0, 0x1f
/* 0A6F38 802E7738 51E0028E */ beql $t7, $zero, .L80202184
/* 0A6F3C 802E773C 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A6F40 802E7740 84830038 */ lh $v1, 0x38($a0)
/* 0A6F44 802E7744 00024080 */ sll $t0, $v0, 2
/* 0A6F48 802E7748 000278C0 */ sll $t7, $v0, 3
/* 0A6F4C 802E774C 28610002 */ slti $at, $v1, 2
/* 0A6F50 802E7750 1420000E */ bnez $at, .L8020179C
/* 0A6F54 802E7754 2478FFFF */ addiu $t8, $v1, -1
/* 0A6F58 802E7758 05000285 */ bltz $t0, .L80202180
/* 0A6F5C 802E775C A4980038 */ sh $t8, 0x38($a0)
/* 0A6F60 802E7760 8489003A */ lh $t1, 0x3a($a0)
/* 0A6F64 802E7764 848A0038 */ lh $t2, 0x38($a0)
/* 0A6F68 802E7768 012A082A */ slt $at, $t1, $t2
/* 0A6F6C 802E776C 54200281 */ bnezl $at, .L80202184
/* 0A6F70 802E7770 8FBF002C */ lw $ra, 0x2c($sp)
/* 0A6F74 802E7774 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A6F78 802E7778 00000000 */ nop
/* 0A6F7C 802E777C 922C0000 */ lbu $t4, ($s1)
/* 0A6F80 802E7780 358D0020 */ ori $t5, $t4, 0x20
/* 0A6F84 802E7784 1000027A */ b .L80202180
/* 0A6F88 802E7788 A22D0000 */ sb $t5, ($s1)
.L8020179C:
/* 0A6F8C 802E778C 05E20004 */ bltzl $t7, .L802017B0
/* 0A6F90 802E7790 92220008 */ lbu $v0, 8($s1)
/* 0A6F94 802E7794 0C0B95B3 */ jal seq_channel_layer_note_decay
/* 0A6F98 802E7798 02202025 */ move $a0, $s1
/* 0A6F9C 802E779C 92220008 */ lbu $v0, 8($s1)
.L802017B0:
/* 0A6FA0 802E77A0 2401FF7F */ li $at, -129
/* 0A6FA4 802E77A4 0041C024 */ and $t8, $v0, $at
/* 0A6FA8 802E77A8 24010001 */ li $at, 1
/* 0A6FAC 802E77AC 13010003 */ beq $t8, $at, .L802017CC
/* 0A6FB0 802E77B0 24010002 */ li $at, 2
/* 0A6FB4 802E77B4 57010003 */ bnel $t8, $at, .L802017D4
/* 0A6FB8 802E77B8 8E22004C */ lw $v0, 0x4c($s1)
.L802017CC:
/* 0A6FBC 802E77BC A2200008 */ sb $zero, 8($s1)
/* 0A6FC0 802E77C0 8E22004C */ lw $v0, 0x4c($s1)
.L802017D4:
/* 0A6FC4 802E77C4 92280000 */ lbu $t0, ($s1)
/* 0A6FC8 802E77C8 26300050 */ addiu $s0, $s1, 0x50
/* 0A6FCC 802E77CC 8C540044 */ lw $s4, 0x44($v0)
/* 0A6FD0 802E77D0 35090004 */ ori $t1, $t0, 4
/* 0A6FD4 802E77D4 A2290000 */ sb $t1, ($s1)
/* 0A6FD8 802E77D8 97B3004A */ lhu $s3, 0x4a($sp)
/* 0A6FDC 802E77DC AFA20068 */ sw $v0, 0x68($sp)
.L802017F0:
/* 0A6FE0 802E77E0 0C0B9DA0 */ jal m64_read_u8
/* 0A6FE4 802E77E4 02002025 */ move $a0, $s0
/* 0A6FE8 802E77E8 284100C1 */ slti $at, $v0, 0xc1
/* 0A6FEC 802E77EC 305200FF */ andi $s2, $v0, 0xff
/* 0A6FF0 802E77F0 142000F7 */ bnez $at, .L80201BE0
/* 0A6FF4 802E77F4 00402825 */ move $a1, $v0
/* 0A6FF8 802E77F8 284100CD */ slti $at, $v0, 0xcd
/* 0A6FFC 802E77FC 1420000A */ bnez $at, .L80201838
/* 0A7000 802E7800 24ABFF3F */ addiu $t3, $a1, -0xc1
/* 0A7004 802E7804 244AFF0C */ addiu $t2, $v0, -0xf4
/* 0A7008 802E7808 2D41000C */ sltiu $at, $t2, 0xc
/* 0A700C 802E780C 102000D7 */ beqz $at, .L_EU_802E7B6C
/* 0A7010 802E7810 000A5080 */ sll $t2, $t2, 2
/* 0A7014 802E7814 3C018030 */ lui $at, %hi(jtbl_EU_803066A0)
/* 0A7018 802E7818 002A0821 */ addu $at, $at, $t2
/* 0A701C 802E781C 8C2A66A0 */ lw $t2, %lo(jtbl_EU_803066A0)($at)
/* 0A7020 802E7820 01400008 */ jr $t2
/* 0A7024 802E7824 00000000 */ nop
.L80201838:
/* 0A7028 802E7828 2D61000C */ sltiu $at, $t3, 0xc
/* 0A702C 802E782C 102000CF */ beqz $at, .L_EU_802E7B6C
/* 0A7030 802E7830 000B5880 */ sll $t3, $t3, 2
/* 0A7034 802E7834 3C018030 */ lui $at, %hi(jtbl_EU_803066D0)
/* 0A7038 802E7838 002B0821 */ addu $at, $at, $t3
/* 0A703C 802E783C 8C2B66D0 */ lw $t3, %lo(jtbl_EU_803066D0)($at)
/* 0A7040 802E7840 01600008 */ jr $t3
/* 0A7044 802E7844 00000000 */ nop
glabel L_EU_802E7848
/* 0A7048 802E7848 92030018 */ lbu $v1, 0x18($s0)
/* 0A704C 802E784C 14600005 */ bnez $v1, .L80201874
/* 0A7050 802E7850 2462FFFF */ addiu $v0, $v1, -1
/* 0A7054 802E7854 0C0B9C1E */ jal seq_channel_layer_disable
/* 0A7058 802E7858 02202025 */ move $a0, $s1
/* 0A705C 802E785C 10000245 */ b .L80202184
/* 0A7060 802E7860 8FBF002C */ lw $ra, 0x2c($sp)
.L80201874:
/* 0A7064 802E7864 304C00FF */ andi $t4, $v0, 0xff
/* 0A7068 802E7868 000C6880 */ sll $t5, $t4, 2
/* 0A706C 802E786C 020D7021 */ addu $t6, $s0, $t5
/* 0A7070 802E7870 A20C0018 */ sb $t4, 0x18($s0)
/* 0A7074 802E7874 8DCF0004 */ lw $t7, 4($t6)
/* 0A7078 802E7878 1000FFD9 */ b .L802017F0
/* 0A707C 802E787C AE0F0000 */ sw $t7, ($s0)
glabel L_EU_802E7880
/* 0A7080 802E7880 0C0B9DA5 */ jal m64_read_s16
/* 0A7084 802E7884 02002025 */ move $a0, $s0
/* 0A7088 802E7888 92190018 */ lbu $t9, 0x18($s0)
/* 0A708C 802E788C 8E180000 */ lw $t8, ($s0)
/* 0A7090 802E7890 304DFFFF */ andi $t5, $v0, 0xffff
/* 0A7094 802E7894 00194080 */ sll $t0, $t9, 2
/* 0A7098 802E7898 02084821 */ addu $t1, $s0, $t0
/* 0A709C 802E789C AD380004 */ sw $t8, 4($t1)
/* 0A70A0 802E78A0 920A0018 */ lbu $t2, 0x18($s0)
/* 0A70A4 802E78A4 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A70A8 802E78A8 254B0001 */ addiu $t3, $t2, 1
/* 0A70AC 802E78AC A20B0018 */ sb $t3, 0x18($s0)
/* 0A70B0 802E78B0 8E8C0014 */ lw $t4, 0x14($s4)
/* 0A70B4 802E78B4 018D7021 */ addu $t6, $t4, $t5
/* 0A70B8 802E78B8 1000FFC9 */ b .L802017F0
/* 0A70BC 802E78BC AE0E0000 */ sw $t6, ($s0)
glabel L_EU_802E78C0
/* 0A70C0 802E78C0 0C0B9DA0 */ jal m64_read_u8
/* 0A70C4 802E78C4 02002025 */ move $a0, $s0
/* 0A70C8 802E78C8 920F0018 */ lbu $t7, 0x18($s0)
/* 0A70CC 802E78CC 020FC821 */ addu $t9, $s0, $t7
/* 0A70D0 802E78D0 A3220014 */ sb $v0, 0x14($t9)
/* 0A70D4 802E78D4 92180018 */ lbu $t8, 0x18($s0)
/* 0A70D8 802E78D8 8E080000 */ lw $t0, ($s0)
/* 0A70DC 802E78DC 00184880 */ sll $t1, $t8, 2
/* 0A70E0 802E78E0 02095021 */ addu $t2, $s0, $t1
/* 0A70E4 802E78E4 AD480004 */ sw $t0, 4($t2)
/* 0A70E8 802E78E8 920B0018 */ lbu $t3, 0x18($s0)
/* 0A70EC 802E78EC 256C0001 */ addiu $t4, $t3, 1
/* 0A70F0 802E78F0 1000FFBB */ b .L802017F0
/* 0A70F4 802E78F4 A20C0018 */ sb $t4, 0x18($s0)
glabel L_EU_802E78F8
/* 0A70F8 802E78F8 920D0018 */ lbu $t5, 0x18($s0)
/* 0A70FC 802E78FC 020D1021 */ addu $v0, $s0, $t5
/* 0A7100 802E7900 904E0013 */ lbu $t6, 0x13($v0)
/* 0A7104 802E7904 25CFFFFF */ addiu $t7, $t6, -1
/* 0A7108 802E7908 A04F0013 */ sb $t7, 0x13($v0)
/* 0A710C 802E790C 92030018 */ lbu $v1, 0x18($s0)
/* 0A7110 802E7910 0203C821 */ addu $t9, $s0, $v1
/* 0A7114 802E7914 93380013 */ lbu $t8, 0x13($t9)
/* 0A7118 802E7918 00602025 */ move $a0, $v1
/* 0A711C 802E791C 00044880 */ sll $t1, $a0, 2
/* 0A7120 802E7920 13000005 */ beqz $t8, .L80201948
/* 0A7124 802E7924 246BFFFF */ addiu $t3, $v1, -1
/* 0A7128 802E7928 02094021 */ addu $t0, $s0, $t1
/* 0A712C 802E792C 8D0A0000 */ lw $t2, ($t0)
/* 0A7130 802E7930 1000FFAB */ b .L802017F0
/* 0A7134 802E7934 AE0A0000 */ sw $t2, ($s0)
.L80201948:
/* 0A7138 802E7938 1000FFA9 */ b .L802017F0
/* 0A713C 802E793C A20B0018 */ sb $t3, 0x18($s0)
glabel L_EU_802E7940
/* 0A7140 802E7940 0C0B9DA5 */ jal m64_read_s16
/* 0A7144 802E7944 02002025 */ move $a0, $s0
/* 0A7148 802E7948 8E8C0014 */ lw $t4, 0x14($s4)
/* 0A714C 802E794C 304DFFFF */ andi $t5, $v0, 0xffff
/* 0A7150 802E7950 3053FFFF */ andi $s3, $v0, 0xffff
/* 0A7154 802E7954 018D7021 */ addu $t6, $t4, $t5
/* 0A7158 802E7958 1000FFA1 */ b .L802017F0
/* 0A715C 802E795C AE0E0000 */ sw $t6, ($s0)
glabel L_EU_802E7960
/* 0A7160 802E7960 0C0B9DA0 */ jal m64_read_u8
/* 0A7164 802E7964 02002025 */ move $a0, $s0
/* 0A7168 802E7968 8E0F0000 */ lw $t7, ($s0)
/* 0A716C 802E796C 0002CE00 */ sll $t9, $v0, 0x18
/* 0A7170 802E7970 0019C603 */ sra $t8, $t9, 0x18
/* 0A7174 802E7974 01F84821 */ addu $t1, $t7, $t8
/* 0A7178 802E7978 1000FF99 */ b .L802017F0
/* 0A717C 802E797C AE090000 */ sw $t1, ($s0)
glabel L_EU_802E7980
/* 0A7180 802E7980 8E030000 */ lw $v1, ($s0)
/* 0A7184 802E7984 240100C1 */ li $at, 193
/* 0A7188 802E7988 90640000 */ lbu $a0, ($v1)
/* 0A718C 802E798C 24680001 */ addiu $t0, $v1, 1
/* 0A7190 802E7990 14A10008 */ bne $a1, $at, .L802019C4
/* 0A7194 802E7994 AE080000 */ sw $t0, ($s0)
/* 0A7198 802E7998 00840019 */ multu $a0, $a0
/* 0A719C 802E799C 00005012 */ mflo $t2
/* 0A71A0 802E79A0 448A2000 */ mtc1 $t2, $f4
/* 0A71A4 802E79A4 00000000 */ nop
/* 0A71A8 802E79A8 468021A0 */ cvt.s.w $f6, $f4
/* 0A71AC 802E79AC 1000FF8C */ b .L802017F0
/* 0A71B0 802E79B0 E6260028 */ swc1 $f6, 0x28($s1)
.L802019C4:
/* 0A71B4 802E79B4 1000FF8A */ b .L802017F0
/* 0A71B8 802E79B8 A2240005 */ sb $a0, 5($s1)
glabel L_EU_802E79BC
/* 0A71BC 802E79BC 8E030000 */ lw $v1, ($s0)
/* 0A71C0 802E79C0 240100C9 */ li $at, 201
/* 0A71C4 802E79C4 90640000 */ lbu $a0, ($v1)
/* 0A71C8 802E79C8 246B0001 */ addiu $t3, $v1, 1
/* 0A71CC 802E79CC 14A10003 */ bne $a1, $at, .L802019EC
/* 0A71D0 802E79D0 AE0B0000 */ sw $t3, ($s0)
/* 0A71D4 802E79D4 1000FF82 */ b .L802017F0
/* 0A71D8 802E79D8 A2240003 */ sb $a0, 3($s1)
.L802019EC:
/* 0A71DC 802E79DC 1000FF80 */ b .L802017F0
/* 0A71E0 802E79E0 A6240022 */ sh $a0, 0x22($s1)
glabel L_EU_802E79E4
/* 0A71E4 802E79E4 240100C4 */ li $at, 196
/* 0A71E8 802E79E8 54A10006 */ bnel $a1, $at, .L80201A14