diff --git a/.github/workflows/JPN.yml b/.github/workflows/JPN.yml new file mode 100644 index 0000000..3d90cf8 --- /dev/null +++ b/.github/workflows/JPN.yml @@ -0,0 +1,74 @@ +name: JP-Status + +on: + push: + branches: master + paths-ignore: # Don't trigger on files that are updated by the CI or other non-breaking files + - 'tools/**' + - '*.md' + - '.github/**' + - '.gitignore' + - 'CppProperties.json' + pull_request: + branches: master + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + buildjp: + + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v2 + + - name: Install Depedencies + run: | + sudo apt update + sudo apt install binutils-mips-linux-gnu make + wget https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb + sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb + + - name: Get US File + env: + FILE_US: ${{ secrets.SECRET_FILE_US }} + run: wget -O baserom.u.z64 $FILE_US + + - name: Get JP File + env: + FILE_JP: ${{ secrets.SECRET_FILE_JP }} + run: wget -O baserom.j.z64 $FILE_JP + + - name: Extract US Assets + run: ./extract_baserom.u.sh + + - name: Extract JP Assets + run: ./extract_diff.j.sh + + - name: Make JP + run: make -j VERSION=JP + + - name: Make report + run: make -C tools/report + + - name: Stats + run: python3 tools/ge-stats.py --version jp --report + + - name: Upload output files + + uses: dmnemec/copy_file_to_another_repo_action@v1.0.4 + + env: + API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} + API_TOKEN_USER: ${{ secrets.API_TOKEN_USER }} + API_TOKEN_EMAIL: ${{ secrets.API_TOKEN_EMAIL }} + + with: + destination_repo: 'kholdfuzion/goldeneyestatus' + user_email: $API_TOKEN_EMAIL + user_name: $API_TOKEN_USER + source_file: | + tools/report/JPN.htm + +#need way of telling report that JP passed/failed diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b14201b..2345a0b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,10 +1,15 @@ -name: GE-CI +name: NTSC-Status on: push: branches: master - paths-ignore: + paths-ignore: # Don't trigger on files that are updated by the CI or other non-breaking files - 'tools/**' + - '*.md' + - '.github/**' + - '.gitignore' + - 'CppProperties.json' + pull_request: branches: master @@ -23,6 +28,8 @@ jobs: run: | sudo apt update sudo apt install binutils-mips-linux-gnu make + wget https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb + sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb - name: Get US File env: @@ -70,39 +77,5 @@ jobs: tools/report/index.html tools/report/sfx.ogg tools/report/background.jpg - - buildjp: - - runs-on: ubuntu-18.04 - - steps: - - uses: actions/checkout@v2 - - - name: Install Depedencies - run: | - sudo apt update - sudo apt install binutils-mips-linux-gnu make - - - name: Get US File - env: - FILE_US: ${{ secrets.SECRET_FILE_US }} - run: wget -O baserom.u.z64 $FILE_US - - - name: Get JP File - env: - FILE_JP: ${{ secrets.SECRET_FILE_JP }} - run: wget -O baserom.j.z64 $FILE_JP - - - name: Extract US Assets - run: ./extract_baserom.u.sh - - - name: Extract JP Assets - run: ./extract_diff.j.sh - - - name: Make JP - run: make -j VERSION=JP - - - name: Stats - run: python3 tools/ge-stats.py --version jp #need way of telling report that JAP passed/failed diff --git a/.gitignore b/.gitignore index 8cb5fc6..ab85ae7 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ *.tmp *.z64 *.o +branchdiff.sh +baserom.*.dump +ge007.*.dump /.vs 021990.bin 0219D0.bin @@ -20,7 +23,7 @@ assets/ge007.u.123040.efont_chardata.bin assets/ge007.u.29D160.Globalimagetable.bin assets/ge007.u.29E560.Globalimagetable_commandblock.bin assets/ge007.u.2A4D50.usedby7F008DE4.bin -assets/images/split/*.bin +assets/images/split/*.bin* assets/music/*.bin assets/music/*.ctl assets/music/*.tbl @@ -40,14 +43,12 @@ assets/obseg/text/j/*.bin assets/obseg/text/u/*.bin assets/ramrom/*.bin build/* -data_seg -ge007.e.bin -ge007.e.elf -ge007.j.bin -ge007.j.elf -ge007.u.bin -ge007.u.elf -lib/libultra_rom.a -tools/aaa_rip/aaa_rip +build-*/* +tools/extractor/*.o tools/extractor/extractor -notes/ \ No newline at end of file +tools/aaa_rip/main.o +tools/aaa_rip/aaa_rip +tools/n64cksum +tools/armips +tools/gzipsrc/gzip +tools/gzipsrc/*.o diff --git a/Makefile b/Makefile index 6293390..7e75670 100644 --- a/Makefile +++ b/Makefile @@ -10,10 +10,18 @@ VERSION := US # If COMPARE is 1, check the output sha1sum when building 'all' COMPARE := 1 +ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0) + TOOLCHAIN := mips-linux-gnu- +else ifeq ($(shell type mips64-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0) + TOOLCHAIN := mips64-linux-gnu- +else + TOOLCHAIN := mips64-elf- +endif - -TOOLCHAIN := mips-linux-gnu- -QEMU_IRIX := tools/irix/qemu-irix +QEMU_IRIX := $(shell which qemu-irix 2>/dev/null) +ifeq (, $(QEMU_IRIX)) + $(error Using the IDO compiler requires qemu-irix. Please install qemu-irix package or set the QEMU_IRIX environment variable to the full qemu-irix binary path) +endif IRIX_ROOT := tools/irix/root # other tools TOOLS_DIR := tools @@ -51,7 +59,9 @@ LCDEFS := -DVERSION_JP ASMDEFS := --defsym VERSION_JP=1 endif -BUILD_DIR := build/$(COUNTRYCODE) +BUILD_DIR_BASE := build +# BUILD_DIR is the location where all build artifacts are placed +BUILD_DIR := $(BUILD_DIR_BASE)/$(COUNTRYCODE) include assets/Makefile.obseg include assets/Makefile.music BUILD_SUB_DIRS := \ @@ -63,15 +73,9 @@ BUILD_SUB_DIRS := \ $(shell mkdir -p $(BUILD_DIR)) $(foreach subdir,$(BUILD_SUB_DIRS),$(shell mkdir -p $(BUILD_DIR)/$(subdir))) - - - - - - -APPELF := ge007.$(COUNTRYCODE).elf -APPROM := ge007.$(COUNTRYCODE).z64 -APPBIN := ge007.$(COUNTRYCODE).bin +APPELF := $(BUILD_DIR)/ge007.$(COUNTRYCODE).elf +APPROM := $(BUILD_DIR)/ge007.$(COUNTRYCODE).z64 +APPBIN := $(BUILD_DIR)/ge007.$(COUNTRYCODE).bin HEADERFILES := $(foreach dir,src,$(wildcard $(dir)/*.s)) HEADEROBJECTS := $(foreach file,$(HEADERFILES),$(BUILD_DIR)/$(file:.s=.o)) @@ -144,7 +148,21 @@ all: $(APPROM) ifeq ($(COMPARE),1) @$(SHA1SUM) -c ge007.$(COUNTRYCODE).sha1 endif +.SECONDARY: + $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(COUNTRYCODE).map \ + $(HEADEROBJECTS) $(BOOTOBJECTS) $(CODEOBJECTS) $(GAMEOBJECTS) $(RZOBJECTS) \ + $(OBSEG_OBJECTS) $(OBSEG_RZ) $(ROMOBJECTS) $(RAMROM_OBJECTS) $(FONT_OBJECTS) $(MUSIC_OBJECTS) $(IMAGE_OBJS) $(MUSIC_RZ_FILES) +ifeq ($(filter clean dataclean codeclean print-%,$(MAKECMDGOALS)),) + # Make tools if out of date + $(info Building tools...) + DUMMY != make -s -C tools >&2 || echo FAIL + ifeq ($(DUMMY),FAIL) + $(error Failed to build tools) + endif + $(info Building ROM...) + +endif codeclean: rm -f $(APPELF) $(APPROM) $(APPBIN) $(ULTRAOBJECTS) $(BUILD_DIR)/ge007.$(COUNTRYCODE).map \ @@ -214,7 +232,6 @@ $(APPROM): $(APPBIN) $(N64CKSUM) $< $@ rm header.tmp +.PRECIOUS: %.bin %.o + .PHONY: all default codeclean dataclean clean - - - diff --git a/assets/obseg/Makefile.text b/assets/obseg/Makefile.text index 8277956..927386b 100644 --- a/assets/obseg/Makefile.text +++ b/assets/obseg/Makefile.text @@ -14,6 +14,8 @@ $(BUILD_DIR)/$(OBSEG_DIR)/text/%.bin: $(BUILD_DIR)/$(OBSEG_DIR)/text/%.elf $(BUILD_DIR)/$(OBSEG_DIR)/text/%.elf: $(BUILD_DIR)/$(OBSEG_DIR)/text/%.o $(LD) -T assets/obseg/text/LnameX.ld -o $@ $< +$(BUILD_DIR)/$(OBSEG_DIR)/text/%.o: $(OBSEG_DIR)/text/$(COUNTRYCODE)/%.c + $(CC) -c $(CFLAGS) -o $@ -O2 $< $(BUILD_DIR)/$(OBSEG_DIR)/text/%.o: $(OBSEG_DIR)/text/%.c $(CC) -c $(CFLAGS) -o $@ -O2 $< diff --git a/assets/obseg/text/LarchJ.c b/assets/obseg/text/LarchJ.c new file mode 100644 index 0000000..feb6e7d --- /dev/null +++ b/assets/obseg/text/LarchJ.c @@ -0,0 +1,68 @@ +#include "game/lvl_text.h" + +struct stringentry LarchJ[] = { + " €ÏŠÓ€ú€Û€Ð‚²Ïß´Ì„²‚ÄãÌÅØ´É€Â\n‚²Ò‚Ã…¥‚É¿à„†ÍÅÌó܃͂ÀÅÎÁÌÓ\nÎàλ€Â\n", + " ØÉ…¯Ø´ÉÒóÆ¿€Â007€Âƒƒ‘Î\n„æ»…õæ‚Àƒ¼â‚ޏ„á‚ïÅØÆ€Â\n\n €ú€Û€Ðó„ìƒø¸…ö…÷Æâ…ö…÷ƒ¶Î¹Ì»Î»\n¿à€ºÎÉ҃р»Ò€à€Ë€Ï€ÜÓ\n…¨‚΃ö…ø€ï€Û€Ì€Ö€Ï̓ ‚ú…ÚÆÒÙóÆ€Â\n‚ÍÓ…½‚™…ùƒùÒ‚áóÓ…ÚÒå¿â×¼óÆ€Â\n‚æ‚çÓ…úÄãØÇ¹€Â007€Â\n", + " 007€ÂƒÍ‚ÀóÀâ¿ô¼¿Ó‚ó… …¬ð€Â\n»ËÜ¿õ´ÌÓ»àãλ¿àÒ€Â\n ÜŃä‚ÀÆ‚ŽæóÀÉÎà€\n€ë€ö€Ñ€ã€ù€Ù€»†€»ÜË»óÏ‚¾´ÌÀÌÁã€Â\n ßäÅÁ„êÚ߀Â\n", + " ‚€È€»€ðƒ ØÉ…¯Ø´ÉÒ€À\nÃãóƒ¡æ»ËÜô¼»¼‚Ù‚¾Ê󃿂ŽÅÌ»É\n¿å¿âÍ»»å€Â\n\n ƒ‰…Þ€…ûƒ¶Íꀻ‚ôÅÌ…ü‚‰Ï‚ÁÒ€Â\n‚ÓÜ…ýçãõ‚ùåâÜÒÑ€Â\n", + "‚Ã…¥‚É¿à҃͂À\n", + "€ä€ß€»€÷€Ð¸„¯ËÂß\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»¸ƒŠ‚éÇß\n", + "€ä€ß€»€÷€ÐÍ…½ÏƒÍ‚À\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚×Ò‚Ãლ»Ï‚Ù¸ƒŽÂÌ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡„ª„”‚ÉÒ…þ¸Ë¿´ÌƒÍ‚ÀÅ\nØÅ·¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡…ÿ»å€Âܼù΂÷Ï\n»àãλå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Àµºººº ! €ˆ\n", + "‚Ý…–‚†:€‡€ÏŠÄ¹€Â€€»€ø‰€Ï€Ð€ÑÒ\nƒå…ÂÏ˻̃մ̻₎¸‚«Ì…ÚÅÌÜ\nྼ€Â€ˆ\n", + "‚Ý…–‚†:€‡õ¿éɂޏ€€Ò€ø€ò€ë„€‚²Ó\nÃÒ‚¤Ò…Æ…éÍÄã̻⾄§ðï€Â€ˆ\n", + "€ÏŠ:€‡€Ò€ø€ò€ëæ…ɹð€Â‚ÍæƒÃƒÄá‚ ð€Â€ˆ\n", + "‚Ý…–‚†:€‡‚׸ƒ»Ìä ! €ˆ\n", + "€ÏŠ:€‡†€Óȼð´ÉÒ¿ÜÅãλ€Â\nſņ҂áÓ‚ùå´É¹ð€Â€ˆ\n", + "‚Ý…–‚†:€‡¼È¸ËÁÎ ! ¾Ø½ÓÉðÒ\n€â€ú€÷€Ü€ãð€Â€ˆ\n", + "‚Ý…–‚†:€‡¾Ø½ÓºÒ†‚Í€»‚ôÏ……ŽÄã\nâÒð€Â€ˆ\n", + "€ÏŠ:€‡€ä€ß€»€÷€ÐÓ„†ÜÅÌλ€Â‚̓…\nÎà€Ýÿ€È€ø€ä€ó󄆿ƒ’ôɿ¸ƒÕ´Ì\n»â€Â€ˆ\n", + "‚Ý…–‚†:€‡…À…Á¿€À ÈÒÃÍÏË»ÌÓ„ùƒ¸\n¿à‚̓…¸‚Ãá…¥øâ€Â€ˆ\n", + "‚Ý…–‚†:€‡Øº€‚̓…Îà„ùƒ¸Ò„ç„ÂÏ‚±Å\n†ƒ½âß¼†„†…Æâ‚ŽæóÀâæÎ€Â€ˆ\n", + "‚Ý…–‚†:€‡ƒÜØã ! ††ƒòÓ…¯àåãÒ…áÍ\n»¼‚ޏ‚ÿãâÎ ! €ˆ\n", + "‚†ƒ¶:€‡€Ò€ø€ò€ë„€‚²¿à†‡…Ü€Â\n€Ü€Ñ¸……ŽÇ߀€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡€ÏŠ‚ó€ô¼Ýà‚óæƒŸÅ\n¿´Éß¼ð€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡€Ò€ø€ò€ë„€‚²Óƒ¯‚¤¸\nƒÃƒÄ´É€Â€ˆ\n", + "€ÏŠ:€‡‚Ñ„êóÀâƒÿóĽÜå¿àλ€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡„ùƒ¸ÏÍ´ÌÓ‚—†ˆÎ€ù€Ê€Ü€Ï\nÍδÌÅØ´É€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡…ÉØãÉ€ì€÷Ò€ë€ö€Ñ€ã€ù€Ù€»\n†€»¸‚¾´Ì»Á¿€À€ˆ\n", + "€ÏŠ:€‡Ó»€ÈãӀ󀿀ܿ€Ýÿ€È€ø€ä€ó\n‚Ž…ÑÏ‚•å´Ì»É‚ޏ…„¿ÅØÆ€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡ÈãÎà„“„”ÒοÏÅØ´\n̺â€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡ƒ¡ÓÃã¿à€€Ò€ø€ò€ëÒƒÃ\nƒÄḅ½‚™…ùςǂþÅÎÁÌÓÎàλ€Â€ˆ\n", + "€ï€Û€Ì€Ö€Ï:€‡‚Ù¸ËÂÌ΀€ÏŠ‚ó€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡…¨‚΃ö…øÒ€ï€Û€Ì€Ö€ÏÍ…ÚÆ\nƒ¹ƒºæºâå€Â€ˆ\n", + "„“„”҃渂¡Ï‚ºãÉ\n", + ">> ‚²‚´„ª„” <<\n", + " €ÏŠÓ€ú€Û€Ð‚²Ïß´Ì„²‚Ä\nãÌÅØ´É€Â\n ‚²Ò‚Ã…¥‚É¿à„†ÍÅÌó܃͂À\nÅÎÁÌÓÎàλ€Â\n", + " ØÉ…¯Ø´ÉÒóÆ¿€Â007€Â\nƒƒ‘΄滅õæ‚Àƒ¼â‚ޏ„á‚ï\nÅØÆ€Â\n €ú€Û€Ðó„ìƒø¸…ö…÷Æâ…ö…÷ƒ¶\nι̻λ¿à€ºÎÉ҃р»Ò\n€à€Ë€Ï€ÜÓ…¨‚΃ö…ø€ï€Û€Ì€Ö€ÏÍ\nƒ ‚ú…ÚÆÒÙóƀ‚ÍÓ…½‚™…ùƒùÒ\n‚áóÓ…ÚÒå¿â×¼óÆ€Â\n‚æ‚çÓ…úÄãØÇ¹€Â007€Â\n", + " 007€ÂƒÍ‚ÀóÀâ¿ô¼¿Ó‚ó\n… …¬ð€Â»ËÜ¿õ´ÌÓ»àãÎ\n»¿àÒ€Â\n ÜŃä‚ÀÆ‚ŽæóÀÉÎà€\n€ë€ö€Ñ€ã€ù€Ù€»†€»ÜË»óÏ\n‚¾´ÌÀÌÁã€Â\n ßäÅÁ„êÚ߀Â\n", + " ‚€È€»€ðƒ ØÉ…¯Ø´ÉÒ€À\nÃãóƒ¡æ»ËÜô¼»¼‚Ù‚¾Êó\nƒ¿‚ŽÅ̻ɿå¿âÍ»»å€Â\n\n ƒ‰…Þ€…ûƒ¶Íꀻ‚ôÅÌ…ü‚‰Ï‚\nÁҀ‚ÓÜ…ýçãõ‚ùåâÜÒÑ€Â\n", + "‚Ã…¥‚É¿à҃͂À\n", + "€ä€ß€»€÷€Ð¸„¯ËÂß\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»¸ƒŠ‚éÇß\n", + "€ä€ß€»€÷€ÐÍ…½ÏƒÍ‚À\n", + "‚²‚´„ª„” €Ú€Ï€×€ã€…“€â€ø€ø€þ\n", + "\n", + "Š€ÐÒƒæ\n", + "‚Ã…¥‚ÉÒƒæ\n", + "‚Ã…¥‚ÉÒƒæ\n", + "Š€Ð҃渂¡Ï‚ºãÉ\n", + "\n", + "„“„”Ó€ú€Ê€×ÄãÌ»ØÆ\n", + "€ë€ö€Ñ€ã\n", + "€ù€Ù€»†€»\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "\"€Ñ€ù€»€á\"€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»¸‚¡Ï‚ºãÉ\n", + "\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”҃渂¡Ï‚ºãÉ\n", + NULL +}; diff --git a/assets/obseg/text/LcaveJ.c b/assets/obseg/text/LcaveJ.c new file mode 100644 index 0000000..2600a93 --- /dev/null +++ b/assets/obseg/text/LcaveJ.c @@ -0,0 +1,48 @@ +#include "game/lvl_text.h" + +struct stringentry LcaveJ[] = { + " ƒø‚ˆ‚΂ς„›‚´Ò€ö€ö€Ð€Ï€â€äÓ€\n€ó€æ€ÜÒ„…ƒèÒÈõϺ ÆÒ‚áÏ„ÚÄãÌ\n»É€Âƒêƒë‚Î‚Ï¿à„¯ËÂâÃÍæóÀο´\nÉÒÓÃÒÉÛóºâ€Â\n ‡ÆÒ‡œƒ÷¸‚„›ÅÌ€€ö€ö¸‡œ‚áχÛ\nÉငäÏ‚ÀÅÉáÆâ‚ŽÒóÀ─ϒӀ\nÃÒ„…ƒèÒƒè‚ÕÒ‚§‚¨Ïºâ€Â\n ƒè‚Õ‚§‚¨Ó€ó€æ€ÜÒ€Ó€÷€»€ã‚³Ïß´Ì‚‘‚’\n΂݅–æ‚§ÄãÌ»âÍ‚Üåãâ€Â\n", + " €ï€Ê€Û€Í€Ï¸ƒÛƒÜτ̂ŀ‚â‚ãÄÇÎÄ»€Â\n007€…¤¹óÅØ´ÌӃⅢæÎ»å€Â\n\n ƒ‰ƒŠÓ‚·‚¸‚‚õ¸Í´ÌÜà»ØÆæ€‚¼†º\n¸„¯ËÂÉàCIAÒ‚€Ë€Ê€×Ï€ö€öÒƒŸ‚\nΆë‚ßÏ˻̄²†›ÅÌ‚ÕÄ»€Â‚ï‚ñÅÌ»â\nCIAÒ‚Þ‡Ÿ‚£‚³¸ƒúáƒû¹óÁãâÓíóÆ€Â\n", + " €ö€ö€Ð€Ï€â€äæ„уéÅÌ»âÒóƒ‰æ\n€à€Ë€Ï€Üìµ€ÂÜÅ”€Ï’¸‚¬‚­ÆâÃÍæ\n‚Àƒ¼Éà€ó€æ€ÜӀЀπâ€ä¸ƒ¬ö‡ÛÌ„ÚÆ\n‚ŽæóÀÎÁÎâ€Â\n ”€Ï’ƒŽƒìÒ€Ú€»‚„›‚ނ߸‚¬‚­Å€ÈÅÌ\n€î€Ü€ß€»€Ù€Ï€ã€ú€»€ø¸‚ë„„ÏÆâ¹ìµ€Â\n", + " غ€Â\nƒ‰ƒŠÒ‰€»€ã€Ü”€Ê€ãӆΆσڃˀÀ\nƒ€Ï¸ƒß‚¼ÅÏÅλóÑ€Â\n", + "”€Ï’Ò‚º€Õ‚„›‚ނ߸‚¬‚­Çß\n", + "”€Ï’Ò‚À€Õ‚„›‚ނ߸‚¬‚­Çß\n", + "€î€Ü€ß€»‚„›‚Þ‚ßÒ‚¬‚­\n", + "‚¼†º¸‚Ì´Ì‚€Ë€Ê€×Í„²†›¸‚Ãã\n", + "€ã€ùÿ€È€ø€ó€ÏÒ„ö„÷\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Íä»ï ‚€È€»€ðƒ !\n...»ËÜÒÃÍðæ€Â€ˆ\n", + "‚¼†º‚¬‚è ‚€Ë€Ê€×͂Ђтë‚ì„„\n", + "‚€Ë€Ê€×:€‡ß€»Å ! €ö€öÒ†ë‚ßÓ\nÅ´¿áƒ‚‚ôÉî€ÂÆèÈÊàς𿼀€ˆ\n", + "‚€‚‚æ‚ç: ‚ø‚…‚ Ò†“†”憗ÆçØÆ\n", + ">> ”€Ï’‚§‚¨ <<\n", + " ƒø‚ˆ‚΂ς„›‚´Ò€ö€ö€Ð€Ï€â\n€äÓ€€ó€æ€ÜÒ„…ƒèÒÈõϺâ€\n‡ÆÒ‚áÏ„ÚÄã̻ɀƒêƒë‚΂Ͽ\nà„¯ËÂâÃÍæóÀο´ÉÒÓ\nÃÒÉÛóºâ€Â\n ‡ÆÒ‡œƒ÷¸‚„›ÅÌ€€ö€ö¸\n‡œ‚áχÛÉငäÏ‚ÀÅÉáÆâ\n‚ŽÒóÀ─ϒӀÃÒ„…ƒèÒ\nƒè‚ÕÒ‚§‚¨Ïºâ€ÂÈÃÏÓ‚‘‚’Î\n‚Ý…–æ‚§ÄãÌ»âÍ‚Üåãâ€Â\n", + " €ï€Ê€Û€Í€Ï¸ƒÛƒÜτ̂ŀ\n‚â‚ãÄÇÎÄ»€Â007€…¤¹ó\nÅØ´ÌӃⅢæÎ»å€Â\n ƒ‰ƒŠÓ‚·‚¸‚‚õ¸Í´ÌÜà»Ø\nÆæ€‚¼†º¸„¯ËÂÉàCIAÒ\n‚€Ë€Ê€×Ï€ö€öÒƒŸ‚Άë‚ßÏ\n˻̄²†›ÅÌ‚ÕÄ»€Â‚ï‚ñÅÌ»\nâCIAÒ‚Þ‡Ÿ‚£‚³¸ƒúáƒû¹ó\nÁãâÓíóÆ€Â\n", + " €ö€ö€Ð€Ï€â€äæ„уéÅÌ»â\nÒóƒ‰æ€à€Ë€Ï€Üìµ€ÂÜÅ”€Ï’\n¸‚¬‚­ÆâÃÍæ‚Àƒ¼Éà€ó€æ€ÜÓ\n€Ð€Ï€â€ä¸ƒ¬ö‡ÛÌ„ÚÆ‚ŽæóÀ\nÎÁÎâ€Â\n ”€Ï’ƒŽƒìÒ€Ú€»‚„›‚ނ߸\n‚¬‚­Å€€î€Ü€ß€»€Ù€Ï€ã€ú€»€ø¸\n‚ë„„ÏÆâ¹ìµ€Â\n", + " غ€Â\nƒ‰ƒŠÒ‰€»€ã€Ü”€Ê€ãӆΆσڃˀÀ\nƒ€Ï¸ƒß‚¼ÅÏÅλóÑ€Â\n", + "”€Ï’Ò‚º€Õ‚„›‚ނ߸‚¬‚­Çß\n", + "”€Ï’Ò‚À€Õ‚„›‚ނ߸‚¬‚­Çß\n", + "€î€Ü€ß€»‚„›‚Þ‚ßÒ‚¬‚­\n", + "‚¼†º¸‚Ì´Ì‚€Ë€Ê€×Í„²†›¸‚Ãã\n", + "€ã€ùÿ€È€ø€ó€ÏÒ„ö„÷\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "€ó€æ€Ü‚È‚Œ„…ƒè”€Ï’‚§‚¨ €Ö€Ì€»‹\n", + "\n", + "€Ù€»Š€Õ€»Š\n", + "€Ù€»Š€Õ€»ŠA\n", + "€Ù€»Š€Õ€»ŠA\n", + "€Ù€»Š€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ù€»Š€Õ€»Š\n", + "€Ù€»Š€Õ€»ŠB\n", + "€Ù€»Š€Õ€»ŠB\n", + "€Ù€»Š€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ù€»Š€Õ€»Š\n", + "€Ù€»Š€Õ€»ŠC\n", + "€Ù€»Š€Õ€»ŠC\n", + "€Ù€»Š€Õ€»Š¸‚¡Ï‚ºãÉ\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/LcradE.bin b/assets/obseg/text/LcradE.bin deleted file mode 100644 index c2882a1..0000000 Binary files a/assets/obseg/text/LcradE.bin and /dev/null differ diff --git a/assets/obseg/text/LdestJ.c b/assets/obseg/text/LdestJ.c new file mode 100644 index 0000000..66f9d78 --- /dev/null +++ b/assets/obseg/text/LdestJ.c @@ -0,0 +1,36 @@ +#include "game/lvl_text.h" + +struct stringentry LdestJ[] = { + " €ò€Ï€â€…€Õ€ø€ú†×ƒéϺâ€ë€ö€Ï€Ü‚²€…„݄ބß\n€ö€…€ë€Å€Ó€âó‚åãâÓíóº´É€‚È‚Œ„‘„à\n€ì€÷Ò‰€ò€Ï€Ü€ã€ù€»€Û€Í€Ï惃τâ„áÄãÉ€Â\n\n €ë€ö€Ï€Ü‚²Ó‚Ž‚Ò¸„ã„äÅÌӻλæ€\nMI-6ÏÓ‚“‚ŒÏƒø„ç„è‚ÀÒ„é„êæƒ¼Ì»â€Â\nô¼Ýà€<€ó€æ€Ü>Í»¼„ë„ì„í„îÏß´Ì€\n„݄ބßӃ紂Ãà。ÍàÓ€‚È‚Œ„‘„à€ì€÷¸\n…¼ËÜáàÅ»€Â\n", + " „ë„ì„í„î<€ó€æ€Ü>Ò‚¡æ¿á¸Ë¿Ú„ñ„¨Ò\n€à€Ë€Ï€Üóƀ€ë€ö€Ï€Ü‚²ÓÆóσ‰ƒŠÒ„Š„‘Ò\n€Û€ä€÷€ÔÏ‚«„ò„ó€ÕÆâ„§„ô¸„õÛÌ»ØÆ€Â\n\n €ó€æ€ÜÒƒó‚õ¸ƒÚâÉÛ€‚È‚Œ„‘„à€ì€÷Ï„ö„÷\n‚ނ߸ËÂÎÄ»€Â\n 007€ÂƒÛƒÜÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n ÁãèãÜ€î€Ü€Ù€ïσÕã₎҂¼À߼πÂ\n", + " „üƒÄÏÜ€ë€ö€Ï€Ü‚²æ€ì€÷Ò„­„®„‰Î‚ƂǸ‡„\n½ÌÁãɾ¿éó„ö„÷‚ނ߸ƒ¢ÄÁ„ý„þÆâ‚Ž\nÏ„ÿ…€ÅÉ€ÂÃÒÆèãÜÒÓ€ì€÷¸„‘„à‚ë„„Ï\nÆâ‚ŽÜóÀâ€Â\n „ë„ì„í„î€ó€æ€ÜÓ…‚¸ƒ“‚¬ÆâÍ„æ´Ì»â€Â\nƒ“„ŽÓ€÷€Ê‚̀Ӏς€Ï‚Éσ¿„×ÂàãÉÍ\n„¼„ˆÄãâ€Â\n 007€ÂÃÒƒ“„Žƒ€ƒÉ‚ނ߸‚̽õ€ƒ“„ޏ\nƒ€ƒÉóÀâæ€‚Ãლ»ÏÓ‚Ù¸ËÂÌÁã߀Â\n", + " „ë„ì„í„î€ó€æ€ÜÒ………†:„€å€Ð€…€Ô€ä€ã€Ê’\næ…‡…‚ÅÌ»âÍ‚ÜåãØÆ€Â‚̓…Ó…ˆ…‰Ò\n…Š…‹¸‚¾´Ì»âÍ„æåãÌ»âå€Â\n Ë¿Øàλ߼ÏÁãèã܂ٸËÂÌÑ€Â\n", + "ƒø„縃€…ŒÇß\n", + "€÷€Ê‚Òƒ“„ޏƒ€ƒÉÇß\n", + "€Ó€Ï‚€Ï‚ÉÒƒ“„ޏƒ€ƒÉÇß\n", + "€ì€÷Ï„ö„÷‚ނ߸‚¨‚ßÇß\n", + "ƒø„çφ“†”!\n", + "ƒø„烀…Œ!\n", + "ƒø„çƒÍ‚À!\n", + "„ö„÷‚Þ‚ß €ì€÷Ï‚¨‚ß‚â‚ã\n", + "‚€È€»€ðƒ€„ö„÷‚Þ‚ßÒ‚Ãლ»Ï‚Ù¸ƒŽÂÌ\n", + "€÷€Ê‚ ƒ“„Žƒ€ƒÉ„ÿ…€\n", + "€Ó€Ï‚€Ï‚É ƒ“„Žƒ€ƒÉ„ÿ…€\n", + ">> „Ý„Þ„ß <<\n", + " €ò€Ï€â€…€Õ€ø€ú†×ƒéϺâ€ë€ö€Ï\n€Ü‚²€…„݄ބ߀ö€…€ë€Å€Ó€âó‚åã\nâÓíóº´É€‚È‚Œ„‘„à€ì€÷Ò‰\n€ò€Ï€Ü€ã€ù€»€Û€Í€Ïæ„â„áÄãÉ€Â\n €ë€ö€Ï€Ü‚²Ó‚Ž‚Ò¸„ã„äÅÌÓ»\nλæ€MI-6ÏÓ‚“‚ŒÏƒø„ç„è‚À\nÒ„é„êæƒ¼Ì»â€Â\n ô¼Ýà€<€ó€æ€Ü>Í»¼„ë„ì\n„í„îÏߴ̃紂Ãà。ÍàÓ€\n‚È‚Œ„‘„à€ì€÷¸…¼ËÜáàÅ»€Â\n", + " „ë„ì„í„î€ó€æ€ÜÒ‚¡æ¿á¸Ë¿\nÚ„ñ„¨Ò€à€Ë€Ï€Üóƀ€ë€ö€Ï€Ü‚²\nÓÆóσ‰ƒŠÒ„Š„‘Ò€Û€ä€÷€ÔÏ\n‚«„ò„ó€ÕÆâ„§„ô¸„õÛÌ»ØÆ€Â\n\n €ó€æ€ÜÒƒó‚õ¸ƒÚâÉÛ€‚È‚Œ\n„‘„à€ì€÷Ï„ö„÷‚ނ߸ËÂÎÄ»€Â\n007€ÂƒÛƒÜÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n ÁãèãÜ€î€Ü€Ù€ïσÕã₎Ò\n‚¼À߼πÂ\n", + " „üƒÄÏÜ€ë€ö€Ï€Ü‚²æ€ì€÷Ò„­„®\n„‰Î‚ƂǸ‡„½ÌÁãɾ¿éó\n„ö„÷‚ނ߸ƒ¢ÄÁ„ý„þÆâ‚ŽÏ„ÿ…€\nÅÉ€ÂÃÒÆèãÜÒÓ€ì€÷¸„‘„à\n‚ë„„ÏÆâ‚ŽÜóÀâ€Â\n „ë„ì„í„î€ó€æ€ÜÓ…‚¸ƒ“‚¬ÆâÍ\n„æ´Ì»â€Âƒ“„ŽÓ€÷€Ê‚Í€Ó€Ï\n‚€Ï‚Éσ¿„×ÂàãÉܼ͂€ÂÃÒ\nƒ“„Žƒ€ƒÉ‚ނ߸‚̽õ€ƒ“„ޏƒ€ƒÉ\nóÀâæ€‚Ù¸ËÂÌÁã߀Â\n", + " „ë„ì„í„î€ó€æ€ÜÒ………†\n„€å€Ð€…€Ô€ä€ã€Ê’æ…‡…‚ÅÌ»â\nÍ‚ÜåãØÆ€Â\n ‚̓…Ó…ˆ…‰Ò…Š…‹¸‚¾´Ì»âÍ\n„æåãÌ»âå€ÂË¿Øàλ߼\nÏÁãèã܂ٸËÂÌÑ€Â\n", + "ƒø„縃€…ŒÇß\n", + "€÷€Ê‚Òƒ“„ޏƒ€ƒÉÇß\n", + "€Ó€Ï‚€Ï‚ÉÒƒ“„ޏƒ€ƒÉÇß\n", + "€ì€÷Ï„ö„÷‚ނ߸‚¨‚ßÇß\n", + "„݄ބß<€ö€…€ë€Å€Ó€â> €ò€Ï€â€…€Õ€ø€ú†×ƒé\n", + "\n", + "„ö„÷‚Þ‚ß\n", + "„ö„÷‚Þ‚ß\n", + "„ö„÷‚Þ‚ß\n", + "„ö„÷‚ނ߸‚¡Ï‚ºãÉ\n", + "‚€‚‚æ‚ç: ƒø„çÒ†“†”憗ÆçØÆ\n", + NULL +}; diff --git a/assets/obseg/text/LrunJ.c b/assets/obseg/text/LrunJ.c new file mode 100644 index 0000000..2e02991 --- /dev/null +++ b/assets/obseg/text/LrunJ.c @@ -0,0 +1,36 @@ +#include "game/lvl_text.h" + +struct stringentry LrunJ[] = { + "\n ‚²‚´ƒÎƒÏƒÐæƒÑ€»ÒƒÍ‚À€ø€»€ãóºâ€Â\n", + " ƒ‰ƒŠÒ€ï€Ê€Û€Í€ÏæƒÒƒÓÎÃÍÓ006܃ƒ‘\nƒÔƒÕð´ÉÓí......\n\n ‚Í҃փ׸‚¼ƒØÏÇíƒÙ‚‚ñ¸‚̴̃͂À\nÅÎÄ»€ÂƒÛƒÜÏ‚‚õÆãõ‚¼‚ŽÏ‚˜ÀÌ\nƒ¾â‚ŽæóÀâÓíóÆ€Â\n ‚±ƒÝƒÞƒ”ƒßÍ€ï€Ú€Ñ€øƒÞƒß¸‚­Æ‚ޏ‚ÿãλ\nó‚ÕÄ»€ÂÄÜλ̀é€ÓÒ߼σáÊ‚ÛÍÄã\nÌÅØ¼¿ÜÅãØÇ¹€Â\n", + " ƒ¢ƒ£ƒ¤¸‚´ƒâÆâ‚Ó‚©æÎ¿´ÉÒó\n‚¡ƒìϺâÜÒóƒÄáƒäÂÌÁã€Â\n", + " »ËÜÎæà’€ù€Ê€Û€Ë€»Ïƒå»åÑ€Â\n‚€È€»€ðƒ€Â\n", + "ƒÙ‚‚ñҀӀς€Ï€Ö€»¸‚º‚¡Çß\n", + "‚±ƒÝƒÞƒ”ƒß¸‚¬‚­Çß\n", + "€ï€Ú€Ñ€øƒÞƒß¸‚¬‚­Çß\n", + "ƒÙ‚‚ñσç´ÌƒÍ‚ÀÇß\n", + "ƒÙ‚‚ñҀӀς€Ï€Ö€»¸‚¾´Ì»ØÇ¹\n", + "ƒÙ‚‚ñ ‚¬‚è\n", + ">> ƒÍ ‚À <<\n", + "‚²‚´ƒÎƒÏƒÐæƒÑ€»ÒƒÍ‚À€ø€»€ã\nóºâ€Â\n", + "ƒ‰ƒŠÒ€ï€Ê€Û€Í€ÏæƒÒƒÓÎÃÍÓ\n006܃ƒ‘ƒÔƒÕð´ÉÓí€Â‚ÍÒ\nƒÖƒ×¸‚¼ƒØÏÇíƒÙ‚‚ñ¸‚Ì´Ì\nƒÍ‚ÀÅÎÄ»€Â\nƒÛƒÜÏ‚‚õÆãõ‚¼‚ŽÏ‚˜À̃¾â\n‚ŽæóÀâÓíóÆ€Â\n‚±ƒÝƒÞƒ”ƒßÍ€ï€Ú€Ñ€øƒÞƒß¸‚­Æ‚Ž\n¸‚ÿãíÏ€ÂÄÜλ̀é€ÓÒß¼\nσáÊ‚ÛÍÄãÌÅØ¼å߀Â\n", + "ƒ¢ƒ£ƒ¤¸‚´ƒâÆâ‚Ó‚©æÎ¿´É\nÒ󂡃ìϺâÜÒóƒÄáƒäÂÌ\nÁã€Â\n", + "»ËÜÎæà’€ù€Ê€Û€Ë€»Ïƒå»\nåр‚€È€»€ðƒ€Â\n", + "ƒÙ‚‚ñҀӀς€Ï€Ö€»¸‚º‚¡Çß\n", + "‚±ƒÝƒÞƒ”ƒß¸‚¬‚­Çß\n", + "€ï€Ú€Ñ€øƒÞƒß¸‚¬‚­Çß\n", + "ƒÙ‚‚ñσç´ÌƒÍ‚ÀÇß\n", + "‚„‚…‚†‚‡‚ˆ‚‰¿à҃͂À\n", + "\n", + "€Ó€Ï‚€Ï€Ö€»\n", + "€Ó€Ï‚€Ï€Ö€»\n", + "€Ó€Ï‚€Ï€Ö€»\n", + "€Ó€Ï‚€Ï€Ö€»¸‚¡Ï‚ºãÉ\n", + "\n", + "\n", + "\n", + "\n", + "ÃÒŠ€ÐÓ‚„‚…‚†‚‡‚ˆ‚‰ÖÍ\nËÎæ´Ì»ØÆ€Â\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/LsevxbJ.c b/assets/obseg/text/LsevxbJ.c new file mode 100644 index 0000000..c4bd993 --- /dev/null +++ b/assets/obseg/text/LsevxbJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LsevxbJ[] = { + " „‘„à€ì€÷¸„ö„÷ÅÉ……€€Ýÿ€È€ø€ä€óϺâ\nÃÍæ„¾„¿Åɀƒêƒë‚Î‚Ïæ€ÈÃó‚ׄŒ„‘æ\nº´ÉÃÍÜ…‘…’ÅÌ»â€Âƒƒø‚ˆ‚΂ÏÓ…“200\n€î€Ñ€øÒ€Ü“€á€äƒ‚²Ò€Ö€Ë€Ï’󂲂´€ì€÷Ò\nƒˆ…”…•…–æ‚Àƒ¼Ì»â‚ŽÜ‚‚ÅÉ€Â\n ƒ·ƒƒÏ…—ƒèւ𿼃¹ƒºæºâ€ÂƒÙ‚‚ñ¿àÒ\n†€Ñó…—ƒèÏ„Öპ´ÉÃäÏÓ„‚£‚³æÆó\nÏ‚ï‚ñÅÌ»âÓíÎÒó…Òƒâæƒ¹ƒºóºâ€Â\n", + " …—ƒèÒƒè‚˸ӴÀáܻ͂‚ÀÅÌ‚ÕÄ»€Â\nιͿ€<€ó€æ€Ü>Ò‚•‡–¸†Ýƀιà¿Ò\n……ž¸„Ü„¯ÅÌ‚ÕÄ»€Â\n ‚²‚´€ì€÷¸‚¬‚­Æãõ€…Ÿ‚£ÖÓ„†Ü‚¾Ê\n‚ÀÇλóÅ·¼€Â\n €Ýÿ€È€ø€ä€óÒ„…ƒèÏ<€ó€æ€Ü>¸‚¡‚ÄÀ\nÅÉ‚ æ»âÓíóÆ€ÂÈãæ„Òð´É¿¸\n‚‚ÅÌ‚ÕÄ»€ÂóÜØíÓ€ƒè‚Õ„…ƒèÏ\n‚¹‚ºÆâÃÍóÆ€Â\n", + " ƒ‰ƒŠÒ€÷€ò€Ù€Ï†òƒ“„ŽÓ10ƒÂóƒ“„ÜÆâß¼\nÏ‚ù½Ì¾»Éï€Â€»…¦ð‚´ƒâÅÉÒó‚Õ‚¡Î\nƒ”…§öÎôÇ킲‚´€ì€÷Ò‚¬‚­Ï‚Ì´ÌÁã€Â\n ‚¹‚º‚´ÒÉÛ‚óÒ‘€Ü€ã€øÏ€Ú€Ñ€ù€Ï€Ú€»¸\nËÂ̾»É߀Âô¼ìµ…©„ÅɿрÂ\nóÜ…ª…«Îæàƒ‰ƒŠÒ‚Þ…–ÓÈãðÂìµ€Â\n", + " ‚€È€»€ðƒ€Ã҄滃ŠÅƒÕ´Ìâ€À\n\n€‡„õÅ̃ƒ¾áÓÅλ€Â€ˆ\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "ƒè‚Õ„…ƒèÍ҂Ђтނ߸‚¬‚­Çß\n", + "€Ü“€á€äƒ‚²Ò€ì€÷¸‚¬‚­Çß\n", + "ƒè‚Õ„…ƒèÖ‚¹‚ºÇß\n", + "‚Ђтñ„„ ‚¬‚è\n", + "ô¼¿ÅÉ¿€À ‚á…ÃĹ\n", + "ƒêƒë€Õ€ñ€ö‚ë„„\n", + "Hound MI-4σ“„Ž‚¨‚ß‚â‚ã\n", + "ƒ“„Ž‚¨‚ß‚æ‚ç\n", + "Hound MI-4ƒ“‚¬\n", + "€Ýÿ€È€ø€ä€óÖß¼ÃÈ\n", + ">> €Ýÿ€È€ø€ä€ó <<\n", + " „‘„à€ì€÷¸„ö„÷ÅÉ……€€Ýÿ€È\n€ø€ä€óϺâÃÍæ„¾„¿Åɀƒêƒë\n‚Î‚Ïæ€ÈÃó‚ׄŒ„‘溴ÉÃÍ\nÜ…‘…’ÅÌ»â€Â…“200€î€Ñ€øÒ\n€Ü“€á€äƒ‚²€Ö€Ë€Ï’󂲂´€ì€÷Ò\nƒˆ…”…•…–Ò‚â‚ãÜ‚‚ÅÉ€Â\n ƒ·ƒƒÏ…—ƒèւ𿼃¹ƒºæºâ€Â\nƒÙ‚‚ñ¿àÒ†€Ñó…—ƒèÏ„Öá\nƒž´ÉÃäÏÓ„‚£‚³æÆóÏ‚ï‚ñ\nÅÌ»âÓíÎÒó…Òƒâæƒ¹ƒº€Â\n", + " …—ƒèÒƒè‚˸ӴÀáܻ͂‚ÀÅ\nÌ‚ÕÄ»€ÂιͿ€<€ó€æ€Ü>Ò\n‚•‡–¸†Ýƀιà¿Ò……ž¸„Ü„¯\nÅÌ‚ÕÄ»€Â‚²‚´€ì€÷¸‚¬‚­Æãõ\n…Ÿ‚£Ö„†Ü‚¾Ê‚ÀÇλóÅ·¼€Â\n €Ýÿ€È€ø€ä€óÒ„…ƒèÏ€ó€æ€Ü¸\n‚¡‚ÄÀÅÉ‚ æ»âÓíóÆ€ÂÈã\næ„Òð´É¿¸‚‚ÅÌ‚ÕÄ»€Â\nóÜØíÓ€ƒè‚Õ„…ƒèÏ‚¹‚ºÆâ\nÃÍóÆ€Â\n", + " ƒ‰ƒŠÒƒ“„ŽÓ10ƒÂóƒ“„ÜÆâß\n¼Ï‚ù½Ì¾»Éï€Â€»…¦ð‚´ƒâ\nÅÉÒó‚Õ‚¡Îƒ”…§öÎôÇ킲‚´\n€ì€÷Ò‚¬‚­Ï‚Ì´ÌÁã€Â\n ‚óÒ‘€Ü€ã€øÏ€Ú€Ñ€ù€Ï€Ú€»¸Ë\nÂ̾»É߀Âô¼ìµ…©„ÅÉ¿\nÑ€ÂóÜ…ª…«Îæàƒ‰ƒŠÒ‚Þ…–Ó\nÈãðÂìµ€Â\n", + " ‚€È€»€ðƒ€Ã҄滃ŠÅ\nƒÕ´Ìâ€À\n\n€‡„õÅ̃ƒ¾áÓÅλ€Â€ˆ\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "ƒè‚Õ„…ƒèÍ҂Ђтނ߸‚¬‚­Çß\n", + "€Ü“€á€äƒ‚²Ò€ì€÷¸‚¬‚­Çß\n", + "ƒè‚Õ„…ƒèÖ‚¹‚ºÇß\n", + "€Ýÿ€È€ø€ä€ó €ÛŽ€÷€Ð†õ„Ï\n", + "\n", + "‚ЂтÉÒ€Õ€ý\n", + "‚ЂтÉÒ€Õ€ý\n", + "‚ЂтÉÒ€Õ€ý\n", + "‚ЂтÉÒ€Õ€ý¸‚¡Ï‚ºãÉ\n", + "\n", + "\n", + "\n", + "\n", + "ÃÒ‚ºá€úÓ‚äÀØÇ¹\n", + NULL +}; diff --git a/assets/obseg/text/j/LarecJ.c b/assets/obseg/text/j/LarecJ.c new file mode 100644 index 0000000..06d516d --- /dev/null +++ b/assets/obseg/text/j/LarecJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LarecJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ò…À…žƒèæ€Ö€Ì€»‹Ò\n‚€Ë€Ï€þ€øÒƒè‚Õς҅‡Æâ‚Žæ‚‚ÄãÉ€Â\n", + " 007€»ß»ßóÆÑ€ÂÍÏ¿Á‚¼‚Žó»Ì\nÁðÄ»€Â\n\n €ä€ß€»€÷€Ðæ€ó€æ€ÜҀـϑ€Ì€»€ß¸€é€Ê€Ö\n€Ï€þÅ̻₩€†°Ï‚̓…¸‚µ´ÌºéÌ\nÁðÄ»€Â\n †‡“¸„è¼€Õ€ýӂ̓…æ…›´Ì»âÒóÆ€Â\n", + " 007 „…ƒè‚“ó‚ÍàÒ‰€»€ßŽ€»€Ü¸„Ü„¯Å\n‚ƂǸ„Ä…äÅÌÁã€Â€ó€æ€ÜÒ‚Š‚‹‚Æ‚ÇÓ»ÁË\n¿Ò€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÏ…·‡¼ÄãÌ»â\nìµä¼€Â\n ÈÒ‚Æ‚ÇӀ󀿀ÜÏÍ´ÌÎÁÌÓÎàλ\nÜÒιð€Â\n ‚óÎà»»\"„Ä…ä„§…£\"¸ƒÕ´Ì»âðä¼€À\n", + " ‚€È€»€ðƒ€Â\nƒ¡Ü€Ù€Ï‘€Ì€»€ßÒ„Ù„Šèà»óÀâÒ߀Â\n", + "€ä€ß€»€÷€Ð¸‚µã\n", + "€€»€ø‰€Ï€Ð€Ñ‚΂ϸ‚ë„„Ï\n", + "‚«ÌÒ€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÒ‚¬‚­\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€‚Ù¸ËẦ€ˆ\n", + "€ÏŠ:€‡€ä€ß€»€÷€Ð ÃÃó‚ïÌ ! \nÊ·´Íƒò„À¸„¯ÌÁâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚º€úæ€Ý€Ö€Ì€÷€â€Æ€…€Ù€Ï\n‘€Ì€»€ßÏß´Ì€ú€Ê€×ÄãÌ»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€»Ë‚ä»Éå ! ºÎÉÓ\n€Ù€Ï€ã€ú€»€ø‚ÉÖÍ‚ð¿´Ì€Âƒ¡ÓÃÃó\n‚Àƒ¼âðÂÒÃ͸ÅÌÙâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ÄÆæðå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒö‡™‡š€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€Å´¿áÅÌ€õ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒƒÞ„Œ„Û‡›æ\n€ú€ÏŠ€ÏÏ„ŸÛàãÌ»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒƒÞ„Œ‚„›\n€Ù€Ï€ã€ú€»€ø¸„ªÀ„«½ÌÙâå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ‰ »Áå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ý´É ! €€»€ø‰€Ï€Ð€Ñ\nÒ‡¡ƒ£æíãÉå€Â€ˆ\n", + "€ÏŠ:€‡€ä€ß€»€÷€Ð ƒèƒéó‚ÛÊ‚ö¾¼ !\n…¾Ó€ã€ùÿ€È€ø€ó€ÏÒƒ¸„ö¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚Ù¸ËÂÌ ‚€È€»€ðƒ !\nƒéó‚ï´Ì»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒö‚Ù‡¢‡‚ºØó€€»€ø‰€Ï€Ð\n€ÑÒ‡½ƒ•æƒé‡¾ÅÎÂãõ»»¹ðÂô€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒ‡¡ƒ£„ôƒÐ¸\n5ƒ•‡¿ƒŸóÀÉà€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ¡æ€é€Ê€Ö€Ï€þ\nÅ̻₩‡»…÷ÅÌ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€Ü¼…âŃܿÏ\nóÀλҀ¼âÄÁÌ‚ê‚áóÀλå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ¡...€ˆ\n", + "€÷€Ü:€‡„ŒÉλó ! €ã€ùÿ€È€ø€ó€ÏÏ\n…ƒÄã̻ɹð€Â€ˆ\n", + "€÷€Ü:€‡„¸Ó‚ë…¤…áð ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®»ï ‚€È€»€ðƒ ! €ˆ\n", + "€÷€Ü:€‡ºÊµ€» ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾ÙêÍÑ€ÂóÜÃã¿à\nô¼Ý´Ì€é€Ê€Ö€Ï€þÆâÒ¿Åà€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡À‚–Æâå€Â»ØÒ怀»€ø\n‰€Ï€Ð€Ñ‚„›€Ù€Ï€ã€ú€»€øÒ„ªÀ„«½æóÀ\nâ‚ԃҀـϑ€Ì€»€ßß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ¡€€Ó€ùŽ€»€ßσ¾â€Âõ¿\n…ÍçæÆ¹ðàƒ¾´ÌÀÌÑ€ÂØºƒ¡æØð\n»ÉàÒ…ÚðÂô€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ºÎÉæ€÷€ÜÏÅÉÃÍ\n‚«‚£„¯Éå€ÂÔô»å߀€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚ÍÓÉðÒ’€ú€þ€ö€î€»ß !\nƒÁÄÎÁÉ´Ìß¿´ÉìµÎ»€Â€ˆ\n", + "€÷€Ü:€‡…¾ÒÃÍÎà‚ÙÏÅλó€Â\n€Ù€Ï‘€Ì€»€ßæºãõ»»¿à€Â€ˆ\n", + "€ä€ß€»€÷€Ð …¤…ò\n", + ">> ‚È‚Œ„…ƒè <<\n", + " „ë„ì„í„î€ó€æ€ÜÒ…À…žƒèæ\n€Ö€Ì€»‹Ò‚€Ë€Ï€þ€øÒƒè‚Õς҅‡\nÆâ‚Žæ‚‚ÄãÉ€Â\n", + " 007€»ß»ßóÆÑ€Â\nÍÏ¿Á‚¼‚Žó»ÌÁðÄ»€Â\n\n €ä€ß€»€÷€Ðæ\n€ó€æ€ÜҀـϑ€Ì€»€ß¸€é€Ê€Ö€Ï€þ\nÅ̻₩€†°Ï‚̓…¸‚µ´Ìºé\nÌÁðÄ»€Â\n †‡“¸„è¼€Õ€ýӂ̓…æ…›´Ì\n»âÒóÆ€Â\n", + " „…ƒè‚“ó‚ÍàÒ‰€»€ßŽ€»€Ü¸\n„Ü„¯Å‚ƂǸ„Ä…äÅÌÁã€Â€ó€æ€Ü\nÒ‚Š‚‹‚Æ‚ÇÓ€»Á˿Ҁڀ»‹€»\n€Ù€Ï‘€Ì€»€ßÏ…·‡¼ÄãÌ»â\nìµä¼€Â\n ÈÒ‚Æ‚ÇӀ󀿀ÜÏÍ´ÌÎÁÌ\nÓÎàλÜÒιð€Â\n ‚óÎà»»\"„Ä…ä„§…£\"¸ƒÕ´Ì\n»âðä¼€À\n", + " ‚€È€»€ðƒ€Â\nƒ¡Ü€Ù€Ï‘€Ì€»€ßÒ„Ù„Šèà»\nóÀâÒ߀Â\n", + "€ä€ß€»€÷€Ð¸‚µã\n", + "€€»€ø‰€Ï€Ð€Ñ‚΂ϸ‚ë„„Ï\n", + "‚«ÌÒ€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÒ‚¬‚­\n", + "€ó€æ€Ü‚È‚Œ„…ƒè €Ö€Ì€»‹\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LarkJ.c b/assets/obseg/text/j/LarkJ.c new file mode 100644 index 0000000..aeb5cb8 --- /dev/null +++ b/assets/obseg/text/j/LarkJ.c @@ -0,0 +1,76 @@ +#include "game/lvl_text.h" + +struct stringentry LarkJ[] = { + " ‚„‚…‚†‚‡‚ˆ‚‰Ï‚º´ÉàÆèÏ‚„‚…€ß€Ï€×‚É\nÖ͂𿻀ÈÅÌ€ñ€Ñ€Ï€ß€Ï€×σ“„ޏ\n‚¨‚ßÇÑõÎàλ€Â\n\n ‚€‚‚ဂ²‚Žƒ¦…Ä…ŸÒ‚¬‚­Ó†Ú€ÕÄÂâß¼Ï\nÍÒ„é„êæ€…Ç…È¿à‚ÀÌ»â€Â\n‚ø‚…‚ ÎôÏ܆“†”¸‚ÀÄλ߼Ï......\n", + " ƒ‰ƒŠÓ006Í€»‚ôÏ‚‚õÅÌÜà»ØÆ€Â\n‚„‚…€ß€Ï€×‚Éæ‚ïÊ‚öåÇ‚‰‚÷óÆ€Â\n‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚© <Š€»€×> Í\n‚ú‚ûÅ€ƒ·Á‚üéâ߼ςý‚þÆâÃÍ€Â\n ‚„‚…€ß€Ï€×‚ÉҀ݀ր̀÷€â€ÆŠ€ÐÒƒ€ƒ‚‡¸\n‚Í¿àƒ‚Â‚Ãá€006Ò‚ï´Ì»â‚„‚…\n€ß€Ï€×‚ÉÖ̓ƒçÎÄ»€Â\n ÈÒƒìÁÏÓ€€Õ‚€èÜÎÂãõ€ƒ„Å»ƒ…ƒ†\nÜ»ØÇ¹¿à€‚€‚Ï‚ê‚áóÀâóÅ·¼€Â\n", + " €ÏŠ€ƒ‹‚’σŒ»ÌÁã€Â5ËÒƒ“„ޏƒé‚¡\nπ݀ʀãÅλ̀10…¦Ò€ß€Ï€×¸ÃåÇλ\nï€ÂÈãÍ€ƒƒ‘ƒˆãÌ¿àƒ’ƒ“ÄÇâ¹ð€Â\nÄÜλ͂ó܃”ðâØìµ€Â\n Èã¿à€»ƒ•ó»»¿àƒ–ƒ—ƒ€ƒ‚‡¸‚­Äí\n‚¾´Ì‡Å´ÌÀÌÁã€Â»ËÜÙɻςÃá\nƒš»æƒ›»Íƒœ‚–΂ÓσσžÉ¹ï€Â\n ƒŸƒ »´Ìƒ¡Ó‚óæåë̓¢ƒ£ƒ¤¸ÃåÅÌ\n»â߼ςܽâÒðæ€Â\n", + " È´ÊÒ‚ˆ‚‰Ò‚„‚…ƒ¥ƒ¦Ó€ºÎÉ̓§ƒ†æ\n‚ö¼¿ÜÅãλå€Â\n\n ‚€È€»€ðƒ€‚¼‚ޏƒ¨´Ì»âå߀Â\n", + "ƒ©ƒª‚÷€Ó€÷€Ðσ«‚ºÇß\n", + "‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚©Í‚ú‚û\n", + "006Í‚ö…±Çß\n", + "‚„‚…€ß€Ï€×¸‚â‚«Ï‚¬‚­Çß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®¿´É΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ÃÃҀ߀π׸‚«‚£\nÃ对ð ! €ˆ\n", + "€ÏŠ:€‡å¿´É€Â€ˆ\n", + "€ÏŠ:€‡ÃÃØóƒ°Ïƒ¼ãÉî€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ²‚ŽÒƒ³ƒ‘Ó‚Šð€Â€ˆ\n", + "€ÏŠ:€‡ºÍÒƒ³ƒ‘Ó€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚Šƒ´Ä€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Îîð‚€È€»€ðƒ€Â€ˆ\n", + "€ÏŠ:€‡Š€»€×ƒµƒ¶ ƒ·Á‚üéÌ‚ÕÄ»€Â€ˆ\n", + "Š€»€×ƒµƒ¶:€‡ÃҀ݀ր̀÷€â€ÆŠ€ÐÒ\nƒ–ƒ—ƒ€ƒ‚‡¸‚¾´Ì»Â€Âƒƒ¸ƒ¹ƒºÏÎâ\n¿ÜÅãλ€Â‚¼‚ޏƒ¨âï€Â€ˆ\n", + "€Ò€ø€ò€ë:€‡‚׸ƒ»ÌÌ€Þ´ÁáôÊÖ\nƒ¼»€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ½¼Î€Â€ß€Ï€×¸ƒ“‚¬Åä ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ¾´ÌÀÉÒ¿€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ÃÃóÆâøÀƒ¿‚Žæºâ€Â\n‚€È€»€ðƒ€‚€‚¸‚Ò‚Åä ! €ˆ\n", + "€ÏŠ:€‡€Ð€ù€Ê€×€Ê·´Í\nÌÃí´ÌÅØ´É€Â€ˆ\n", + "€ÏŠ:€‡ÃÃσ¼âƒÀ‚áܼÆÃÅóƒÁà\nãâÍÃäð´É€Â€ˆ\n", + "€Ò€ø€ò€ë:€‡9€ˆ\n", + "€Ò€ø€ò€ë:€‡8€ˆ\n", + "€Ò€ø€ò€ë:€‡7€ˆ\n", + "€Ò€ø€ò€ë:€‡6€ˆ\n", + "€Ò€ø€ò€ë:€‡5€ˆ\n", + "€Ò€ø€ò€ë:€‡4€ˆ\n", + "€Ò€ø€ò€ë:€‡3€ˆ\n", + "€Ò€ø€ò€ë:€‡2€ˆ\n", + "€Ò€ø€ò€ë:€‡1...€ˆ\n", + "€Ò€ø€ò€ë:€‡1€ˆ\n", + "€Ò€ø€ò€ë:€‡1...‚͸ƒÁÇ ! €ˆ\n", + "€Ò€ø€ò€ë:€‡10ƒÂÝ \n", + "€ã€ùÿ€È€ø€ó€Ï:€‡È¼ð€€€»€ø‰€Ï€»€Ñ\nӃÃÄá‚ ð ! ‚€È€»€ðƒ€ƒÅƒÆÎܹð΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡»»ƒÇƒÈÏÁÉõã€Â€ˆ\n", + "€Ý€Ö€Ì€÷€â€ÆŠ€Ð €ú€Ê€×ƒ€ƒÉ\n", + "€ü€ÜƒÊãƒË‚À €Ó€÷€Ð¸ƒÌƒˆÅØÆ\n", + "€Ý€Ö€Ì€÷€â€Æ€»€…€Ù€»Š‚‡ƒ €ú€Ê€×ƒ€ƒÉ\n", + "‚€‚‚æ‚ç: ‚ø‚…‚ Ò†“†”憗ÆçØÆ\n", + ">> €Ð€»€Õ€Ï€ÿ€ø‚„‚…‚ˆ‚‰ <<\n", + " ‚„‚…‚†‚‡‚ˆ‚‰Ï‚º´ÉàÆèÏ‚„\n‚…€ß€Ï€×‚ÉÖ͂𿻀€ñ€Ñ€Ï€ß€Ï\n€×σ“„ޏ‚¨‚ßÇÑõÎàλ€Â\n\n ‚€‚‚ဂ²‚Žƒ¦…Ä…ŸÒ‚¬‚­Ó†Ú€Õ\nÄÂâß¼ÏÍÒ„é„êæ€…Ç…È¿à\n‚ÀÌ»â€Â‚ø‚…‚ ÎôÏ܆“†”¸\n‚ÀÄλ߼Ï......\n", + " ƒ‰ƒŠÓ 006 Í€»‚ôÏ‚‚õÅÌ\nÜà»ØÆ€Â‚„‚…€ß€Ï€×‚Éæ‚ïÊ‚ö\nåÇ‚‰‚÷óƀ‚ø‚…‚ Ï‚ù‚ÞÅÉ\n„ùƒ¸Ò…¿‚©Í‚ú‚ûÅ€ƒ·Á‚üéâß\n¼Ï‚ý‚þÆâÃÍ€Â\n ‚„‚…€ß€Ï€×‚ÉҀ݀ր̀÷€â€ÆŠ€Ð\nÒƒ€ƒ‚‡¸‚Í¿àƒ‚Â‚Ãá€006\nÒ‚ï´Ì»â‚„‚…€ß€Ï€×‚ÉÖ̓ƒç\nÎÄ»€Â\n", + " €ÏŠ€ƒ‹‚’σŒ»ÌÁã€Â5Ë\nÒƒ“„ޏƒé‚¡Ï€Ý€Ê€ãÅλ̀\n10…¦Ò€ß€Ï€×¸ÃåÇλï€Â\nÈãÍ€ƒƒ‘ƒˆãÌ¿àƒ’ƒ“ÄÇâ\n¹ð€ÂÄÜλ̓”ðâØìµ€Â\n Èã¿à€»ƒ•ó»»¿àƒ–ƒ—ƒ€ƒ\n‚‡¸‚­Ä킾´Ì‡Å´ÌÀÌÁã€Â\n»ËÜÒ߼ςÃლ»æƒ›»Í\nƒœ‚–΂ÓσσžÉ¹ï€Â\n", + " È´ÊÒ‚ˆ‚‰Ò‚„‚…ƒ¥ƒ¦Ó€ºÎ\nÉ̓§ƒ†æ‚ö¼¿ÜÅãλå€Â\n ‚€È€»€ðƒ€Â\n‚¼‚ޏƒ¨´Ì»âå߀Â\n", + "ƒ©ƒª‚÷€Ó€÷€Ðσ«‚ºÇß\n", + "‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚©Í‚ú‚û\n", + "006Í‚ö…±Çß \n", + "‚„‚…€ß€Ï€×¸‚â‚«Ï‚¬‚­Çß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A ¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B ¸‚¡Ï‚ºãÉ\n", + "\n", + "Š€ÐÓ€÷€ò€»€ã€ú€Ê€×ÄãÌ»ØÆ\n", + "€Ð€»€Õ€Ï€ÿ€ø‚„‚…‚†‚‡‚ˆ‚‰\n", + "…¿‚© <Š€»€×> Ó†¹ãÉ\n" +}; \ No newline at end of file diff --git a/assets/obseg/text/j/LcradJ.c b/assets/obseg/text/j/LcradJ.c new file mode 100644 index 0000000..9a33ad0 --- /dev/null +++ b/assets/obseg/text/j/LcradJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LcradJ[] = { + " €ä€ß€»€÷€ÐÒ¾¿éó€€€»€ø‰€Ï€Ð€ÑÓ\n‚„›‚ë„„ÍÎဇ¡ƒ£¸Óíã̃ö‚Ù‡¢ÖÍ\n‚úƒìÅÌ»â€Â\n …ªâӀ󀿀ÜÒ…Û‚£€ã€ùÿ€È€ø€ó€ÏÍ€\n‚ÍÒ‰€Æ€ü€»ŠÉÊÒÙÒÓíóºâæ......\n", + " ºÎÉÏ…Ù006€€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸\nËÂäÍ»¼ÒÓ€€Ù€×ÎÃÍ¿ÜÅãØÇ¹€Â\nſŀÃãÓ‚€‚óÆ€Â\n „†‚ŽÏÜ…Òƒâ…ÕÁ‚±‡¥ÅÌ‚ÕÄ»€Â\n\n €‡ƒÁÅÒ€ö€Ñ€Ý€Ï€Ü€ˆ\n¸ºÎÉÓ‚¾´Ì»âÒóÆ€Â\nÈÒÃ͸‚ÿãíÏ€Â\n", + " ‚Ñìàãâ¿007€À ‚ÒӀЀπâ€äÏܼ\n€»Ë€€»€ø‰€Ï€Ð€ÑÒ‚„›‚Þ‚ßæº´ÉÒð€Â\n €ã€ùÿ€È€ø€ó€ÏæÆóπЀπâ€ä¸ƒ¬€Ý€Ê€ãÅ\n‚ÔƒÒƒÞ„Œƒ´‚¯¸‚ÀÅÉ¿ÜÅãλ€Â‡¦ƒƒ€Ð€Ï\n€â€ä€ì‚𿻀‚„›‚ނ߸‚¬‚­ÅÌÁã€Â\n\n ‚ÔƒÒ‚Ôƒó‚«Ì¸‚æ»ÉÁÓλ¿àÒ€Â\n", + " ‚€È€»€ðƒ€€Ð€Ï€â€ä¸‚õ¿ÆÃÍ\nÒóÀÉ‚ æ†‡“¸‡§‡¨Æâå€Â\n\n ƒ¡ÓºÎÉæ‚¼‚ŽÏ…Æ‚¤Ïƒ¾âØó\n„Ô‚–Å̇©â‚ŽæóÀλ€Â\n", + "€Ð€Ï€â€ä‚„›‚ނ߸‚¬‚­Çß\n", + "€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸ËÂß\n", + "€ã€ùÿ€È€ø€ó€ÏÓ€€Ð€Ï€â€ä‚„›‚ނ߸\n„Š‚õÄÇØÅÉ€Â\n", + "€Ð€Ï€â€äƒ¬€Ý€Ê€ãØóºÍ3ƒ‘\n", + "‚„›‚Þ‚ß‚¬‚è €Ð€Ï€â€ä„Š‚õ„µ„¶\n", + "€Ð€Ï€â€äƒ¬€Ý€Ê€ãØóºÍ15ƒÂ\n", + "‚€‚‚æ‚ç: €€»€ø‰€Ï€Ð€Ñƒ¬ƒó‚õ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚í…ó‚Ó‚©ð€‚€È€»€ðƒ€Â\nÃãæ‚ÔƒÒ€à€Ë€Ï€Üð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ±´Éܼ͂Îß ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€€Ð€Ï€â€ä\n¿à‡ªØó¾Ê䀆†ƒòÒ‡ªÖð ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€€»‚ôÏÝ´Ì\n»ÂÉÒπ¾ؽӃÿßჯ‚¤¸½à¹ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒÿßဂ€‚¿€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€…€ÏŠ€Â \nƒ…‡«‡¬‚ÕÒ‚ý‡€Â„¨¿Î»‡­‡®ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ô¼ÅÉ€Â\n…懯҂€Í€»€×Ó€À †…ƒâðä€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ô¼ÅÉ€ÂÈãØó¿ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ÅËû„•ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â\n††ƒòσ±Ê„ÛÎô‚¼» ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â\nÈäÈä„õ†»¸ËÂß¼ìµÎ»¿ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â\n»ËÜ„¸Ò„§æ„Óæ†ï¿´É¹ðß΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ¯‚¤ÒÉÛ¿€À€ˆ\n", + "€ÏŠ:€‡»Ý€…惑ÒÉÛð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡„ú‡°æ„’»Î€Â\n‚€È€»€ðƒ€Â“€»€Ü懱ÆçÉ¿€À€ˆ\n", + ">> €ö€ö€Ð€Ï€â€ä <<\n", + " €ä€ß€»€÷€ÐÒ¾¿éó€€€»€ø‰\n€Ï€Ð€ÑÓ‚„›‚ë„„ÍÎဇ¡ƒ£¸\nÓíã̃ö‚Ù‡¢ÖÍ‚úƒìÅÌ»â€Â\n …ªâӀ󀿀ÜÒ…Û‚£€ã€ùÿ€È€ø€ó\n€ÏÍ€‚ÍÒ‰€Æ€ü€»ŠÉÊÒÙÒ\nÓíóºâæ......\n", + " ºÎÉÏ…Ù006€€ã€ùÿ€È€ø€ó€Ï\nÍ„õ†»¸ËÂäÍ»¼ÒÓ€€Ù€×Î\nÃÍ¿ÜÅãØÇ¹€Â\nſŀÃãÓ‚€‚óƀ„†‚ŽÏÜ\n…Òƒâ…ÕÁ‚±‡¥ÅÌ‚ÕÄ»€Â\n\n €‡ƒÁÅÒ€ö€Ñ€Ý€Ï€Ü€ˆ\n¸ºÎÉÓ‚¾´Ì»âÒóÆ€Â\nÈÒÃ͸‚ÿãíÏ€Â\n", + " ‚Ñìàãâ¿007€À ‚ÒӀЀÏ\n€â€äÏܼ€»Ë€€»€ø‰€Ï€Ð€ÑÒ\n‚„›‚Þ‚ßæº´ÉÒð€Â\n €ã€ùÿ€È€ø€ó€ÏæÆóπЀπâ€ä\n¸ƒ¬€Ý€Ê€ãÅ€‚ÔƒÒƒÞ„Œƒ´‚¯¸‚À\nÅÉ¿ÜÅãλ€Â‡¦ƒƒ€Ð€Ï€â€ä€ì\n‚𿻀‚„›‚ނ߸‚¬‚­ÅÌÁã€Â\n\n ‚ÔƒÒ‚Ôƒó‚«Ì¸‚æ»ÉÁÓ\nλ¿àÒ€Â\n", + " ‚€È€»€ðƒ€€Ð€Ï€â€ä¸‚õ¿ÆÃ\nÍÒóÀÉ‚ æ†‡“¸‡§‡¨Æâå€Â\n\n ƒ¡ÓºÎÉæ‚¼‚ŽÏ…Æ‚¤Ïƒ¾â\nØó„Ô‚–Å̇©â‚ŽæóÀλ€Â\n", + "€Ð€Ï€â€ä‚„›‚ނ߸‚¬‚­Çß\n", + "€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸ËÂß\n", + "\n", + "€ó€æ€Ü‚È‚Œ„…ƒè€ö€ö€Ð€Ï€â€ä €Ö€Ì€»‹\n", + NULL +}; diff --git a/assets/obseg/text/j/LcrypJ.c b/assets/obseg/text/j/LcrypJ.c new file mode 100644 index 0000000..1360ffc --- /dev/null +++ b/assets/obseg/text/j/LcrypJ.c @@ -0,0 +1,20 @@ +#include "game/lvl_text.h" + +struct stringentry LcrypJ[] = { + " €Ü€Õ€ö€î€Ï€üӀܴÍÜ…ÿâøÀƒ–ƒÁ‚ \nÍÅ̇‰¸…ªÅÌ»â€Â\n ‚Íæ‡Â‚´Å̻Ɇ„“‚×Ò‚„§Ó»Øð\nå¿àÐØØÍδ̻â€Â\n", + " „ùƒ¸Ó€Ú€ï‰€ÆÍ‡‰ƒçâÜÒ¿à€ñ€Ê€Ý€»‚¸\nƒ‚‚ÃáØÅɀºÎÉæ€é€Ñ€à󄑴ɺÒ\n€»Š€Ç€»‡„Ò‚Ì‚ €Ú€ï‰€ÆóÆ€Â\n ‚Íӆ„“‚׸‚¡Ï‚ºãÉÍ‚ž†¢Å€ºÎÉÍ\nƒ­´Ì…ÚæÅɻȼóÆ€Â\n ‚ïÊ‚ö»‚‰‚÷σ€Ó‚’€ã‡«Ò‡©â€Ó€ø€Ú€ê\n€ö†Ñ†Ò¸‚®„ŸÅÌÀØÅÉ€Â\n‚ÍÒ€û€äðÍ»¼ÃÍæ„ˆ„Ÿ‚Àƒ¼ØÆæ\n007€ºÎÉÎàƒçáýàãâÓíóÆ€Â\n", + " 007€†Â„“‚×ÓÍÌ܃å€ÕÎ†Ž‚‡ìµ€Â\nÁãèã܂ٸËÂÌÁãÉØ½€Â\n\n†Â„“‚×Îà€Ú€ï‰€ÆÍ„õ†»¸ËÂ₎æ‚Àƒ¼â\nìµä¼€Â\n", + " ѽ‚€È€»€ðƒ€\n€»Š€Ç€»‡„´Ì€í€Ï€ãς҅‡Æâܼ͂€À\n", + "†Â„“‚׸ƒŠ‚éÇß\n", + "€Ú€ï‰€Æ¸†¹Ç\n", + "€Ú€ï‰€Æ:€‡€é€€é€€é€€é...€ˆ\n", + ">> €Ó‚’€ã†Ñ†Ò <<\n", + " €Ü€Õ€ö€î€Ï€üÓÜ´ÍÜ…ÿâøÀ\nƒ–ƒÁ‚ ÍÅ̇‰¸…ªÅÌ»â€Â\n‚Íæ‡Â‚´Å̻Ɇ„“‚×Ò‚„§Ó»\nØðƒ€àÐØØÍδ̻â€Â\n", + " „ùƒ¸Ó€Ú€ï‰€ÆÍ‡‰ƒçâÜÒ¿à\n€ñ€Ê€Ý€»‚¸ƒ‚‚ÃáØÅÉ€Â\nºÎÉæ€é€Ñ€àó„‘´É€»Š€Ç€»\n‡„Ò‚Ì‚ €Ú€ï‰€Æóƀ‚Íӆ„“‚×\n¸‚¡Ï‚ºãÉÍ‚ž†¢Å€ºÎÉÍ\nƒ­´Ì…ÚæÅɻȼóÆ€Â\n ‚ïÊ‚ö»‚‰‚÷σ€Ó‚’€ã‡«Ò\n‡©â€Ó€ø€Ú€ê€ö†Ñ†Ò¸‚®„ŸÅÌÀØ\nÅɀ€û€äðÍ„ˆ„Ÿ‚Àƒ¼ØÆæ€º\nÎÉÎàƒçáýàãâÓíóÆ€Â\n", + " 007€†Â„“‚×ÓÍÌ܃å€ÕÎ†Ž‚‡\nìµ€ÂÁãèã܂ٸËÂÌÁãÉ\nؽ€Â\n †Â„“‚×Îà€Ú€ï‰€ÆÍ„õ†»¸ËÂ\n₎æ‚Àƒ¼âìµä¼€Â\n", + " ѽ‚€È€»€ðƒ€\n€»Š€Ç€»‡„´Ì€í€Ï€ãς҅‡Æâ\nܼ͂€À\n", + "†Â„“‚׸ƒŠ‚éÇß \n", + "€Ú€ï‰€Æ¸†¹Ç \n", + "€Ó€ø€…€Ú€ê€ö†Ñ†Ò €Ó‚’€ã\n", + NULL +}; diff --git a/assets/obseg/text/j/LdamJ.c b/assets/obseg/text/j/LdamJ.c new file mode 100644 index 0000000..f9edabc --- /dev/null +++ b/assets/obseg/text/j/LdamJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LdamJ[] = { + " €…€…€…9†ùƒ™€…€…€…\n USSR€Ð€»€Õ€Ï€ÿ€øÏºâ†€ðϾ»Ì\n‚„‚…‚†‚‡Ò‚˜‚™æ‚Œ¿Ï‚åã̻₎æ\n…Æ‚¤„¥‚Ç‚£ \"MI-6\" Ïß´Ì‚‚ÄãÉ€Â\n ‚‘‚’Ï€ü€»ŠÄãɆ€ð‚“Ò‚ˆ‚‰ó‚˜‚™Äã\n̻₄‚…€ü€ÜÓ€‚›‚œ‚‚ž‚Ÿ‚ Ò‚¡Ï‚¢´Ì\n¾á€€»‚£óÓ‚¤‚¥€â€ú„í„îÍÒ‚•åáæ\n‚¦ÄãÌ»â€Â\n ÃÒ‚ˆ‚‰¸‚¬‚­Æâƒ¹ƒºæºâ€Â\n", + " †€ðÒØåáÓ€‚²‚³Ò†Û„ŒÏ…–½É‚µáæ\nÄãÌ»âß¼ÎÒ󀿽´Ì‚·‚¸‚¹‚ºÒ\n׼滻óÅ·¼€Â\n\n ‚„‚…‚†‚‡‚ˆ‚‰Ó†€ðÒ„¡‚ÕϺâÒðÂô€\n‚¹‚º„§…£ÏË»ÌÓ€\"Q\"æ†ï»€Ð€Ñ‰€Ð¸\n‚¾´Ì»â߼߀Â\n", + " €ú€»’¸Ëɴ̆€ð¸„ÖáâÍ€‚Ó‚©æ\n¿¿âÒó„τ܄¯Äãâ¾Èãæºâ€Â\nÃÃÓ€‹€Ï‚€»‚€Ë€Ï’󀻂ÙσÙö„Öáä€Â\n ‚„‚…€ü€ÜÒ‚À‚Á‚Âö‚ÂĂÅÒ‚Æ‚ÇÓ†€ð‚“Ò\n‚È‚Œ‚Š‚‹‚ÉҀـϑ€Ì€»€ßÏߴ̂ʂËÄãÌ\n»â€ÂÃÒ…˜…™€ò‰€ð¸‚̽õ‚Íà҂΂ςЂÑ\n€÷€Ï€×Ï€Ð€×€Ý€ÜÆâÃÍæóÀ€ÈÅÌ\n‹€Ê€×€Ð€Ê’¸‚Ò‚Æãõ€„ùƒ¸Ó€‚Š‚‹‰€»€ß\n¸‚à‚ÃáÆâÃÍæóÀâ€Â\n", + " ‚€È€»€ðƒ€Â\nÉͽ†€ð¿à‚ÛÊÌÜ\n‚ÚÏÓ‚ÛÊλóÑ€Â\n", + "‚«Ì҂݂ǂނ߸‚¬‚­Çß\n", + "…˜…™€ò‰€ð¸€Ý€Ê€ãÇß\n", + "‚Š‚‹‰€»€ßÒ‹€Ê€×€Ð€Ê’¸‚Ò‚\n", + "†€ð҂ᇲó‹€Ï‚€»‚€Ë€Ï’Çß\n", + "…˜…™€ò‰€ð€Ý€Ê€ã‚â‚ã\n", + "‚Š‚‹‰€»€ßÒ‹€Ê€×€Ð€Ê’‚ä‚å\n…˜…™€ò‰€ð„Š‚õ‚ä‚å\n", + "‚Š‚‹‰€»€ßÒ‹€Ê€×€Ð€Ê’‚â‚ã\n‚Š‚‹‰€»€ßÒ‚à‚Ãá‚â‚ã\n", + "... ‹€Ê€×€Ð€Ê’‚æ‚ç\n", + "€Ú€»‹€»€Ù€Ï‘€Ì€»€ß‚¬‚è\n‚Š‚‹‰€»€ß‚¬‚è\n", + "€ò‰€ðæ€Ý€Ê€ãÄãÌ»ØÇ¹\n‚Š‚‹‰€»€ß¸‚à‚ÃáóÀØÇ¹\n", + "‚΂ςЂр÷€Ï€×‚¬‚è\n‚Š‚‹‰€»€ß¸‚à‚ÃáóÀØÇ¹\n", + "€Ý€Ö€Ì€÷€â€Æ€»€ÿ€»€ã\"A\"‚í‚î‚á\nÅõàÁ¾‚ïÊÁðÄ»\n", + "€Ý€Ö€Ì€÷€â€Æ€»€ÿ€»€ã\"B\"‚í‚î‚á\nÅõàÁ¾‚ïÊÁðÄ»\n", + ">> †€ð <<\n", + " €…€…€…9†ùƒ™€…€…€…\n USSR€Ð€»€Õ€Ï€ÿ€øÏºâ†€ðÏ\n¾»Ì‚„‚…‚†‚‡Ò‚˜‚™æ‚Œ¿Ï\n‚åã̻₎æ MI-6 Ïß´Ì\n‚‚ÄãÉ€Â\n ‚‘‚’Ï€ü€»ŠÄãɆ€ð‚“Ò‚ˆ‚‰\n󂘂™Äã̻₄‚…€ü€ÜÓ€‚›‚œ\n‚‚ž‚Ÿ‚ Ò‚¡Ï‚¢´Ì¾á€\n‚¤‚¥€â€úÍÒ‚•åáÒ‚¦Üºâ€Â\n ÃÒ‚ˆ‚‰¸‚¬‚­Æâƒ¹ƒºæºâ€Â\n", + " †€ðÒØåáÓ€‚²‚³Ò†Û„ŒÏ\n…–½É‚µáæÄãÌ»âß¼ÎÒó\n¿½´Ì‚·‚¸‚¹‚ºÒ׼滻\nóÅ·¼€Â\n\n ‚„‚…‚†‚‡‚ˆ‚‰Ó†€ðÒ„¡‚ÕϺâ\nÒðÂô€‚¹‚º„§…£ÏË»ÌÓ€\n\"Q\"æ†ï»€Ð€Ñ‰€Ð¸‚¾´Ì»â\n߼߀Â\n", + " €ú€»’¸Ëɴ̆€ð¸„ÖáâÍ\n„τ܄¯Äãâ¾Èãæºâ€Â‹€Ï\n‚€»‚€Ë€Ï’󀻂ÙσÙö„Öáä€Â\n ‚„‚…€ü€ÜÒ‚À‚Á‚Âö‚ÂĂÅÒ‚Æ‚Ç\nÓ†€ð‚“Ò‚È‚Œ‚Š‚‹‚ɀـϑ€Ì€»€ß\nÏߴ̂ʂËÄãÌ»â€ÂÃÒ…˜…™\n€ò‰€ð¸‚̽õ‚Íà҂΂ςЂÑÏ\n€Ð€×€Ý€ÜóÀ€‹€Ê€×€Ð€Ê’¸‚Ò‚\nÆãõ€„ùƒ¸Ó€‚Š‚‹‰€»€ß¸‚à‚Ã\náÆâÃÍæóÀâ€Â\n", + " ‚€È€»€ðƒ€Â\nÉͽ†€ð¿à‚ÛÊÌÜ\n‚ÚÏÓ‚ÛÊλóÑ€Â\n", + "‚«Ì҂݂ǂނ߸‚¬‚­Çß\n", + "…˜…™€ò‰€ð¸€Ý€Ê€ãÇß\n", + "‚Š‚‹‰€»€ßÒ‹€Ê€×€Ð€Ê’¸‚Ò‚\n", + "†€ð҂ᇲó‹€Ï‚€»‚€Ë€Ï’Çß\n", + "†€ð €Ð€»€Õ€Ï€ÿ€ø USSR\n", + "€…€…€… 9†ùƒ™ €…€…€…\n", + "\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð¸‚¡Ï‚ºãÉ\n", + "…˜…™€ò‰€ðҀ݀ʀãÏ‚æ‚ç !\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LdepoJ.c b/assets/obseg/text/j/LdepoJ.c new file mode 100644 index 0000000..db30912 --- /dev/null +++ b/assets/obseg/text/j/LdepoJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LdepoJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ӏڀπ׀々“€â€ø€ø€þ\nϺ⅗…‡‚Ì‚´Äã̻λ‚²Ò†˜¸…À…žƒèÍÅ\n̴̻̂âß¼ð€Â\n ÈÃ¿à†Ž‚‡‚Œ†œÝ‚¤‚¥€â€ú€…ƒ†„–¸\n‚δ̻âàÅ»€Â\n", + " „’Ò†žÍÅÌÓοο҃²óÆÑ€Â\n007€‚«€Õ¸ËÁÅÌ„ë„ì„í„î<€ó€æ€Ü>Ò\n‚Š‚‹¸† „¶ÅÌ‚ÕÄ»€Â\n ÃÒ‚ñƒ­Ï<€ó€æ€Ü>Ò…À…žƒèó€Ü€â€ø€Ü€ì€÷\nÒ‚¨„ƄǸ‚º‚¡ÅÎÄ»€Â‚Æ‚ÇÏßâÍ‚ÍàÓ\n€ì€÷Ò‚˜‚™¸‚åÛâàÅ»€Â\n ØÉ€€Ò€ø€ò€ëÓ€ä€ß€»€÷€Ð¸„²ãÌ€ã€ùÿ€È\n€ø€ó€ÏÒ‚²‚´†¡†ŠÏƒçáƒû¹ðÍ‚ÜåãØÆ€Â\nƒçხãλ߼…冢´Ì‚ÕÄ»€Â\n", + " ‚ÍàÒ…À…žƒèÏÓ¿Îᆣ†¤Äãɀـϑ€Ì€»\n€ßÒ€ç€Ê€ã€û€»€×æ„ÚÄãÌ»âÓíð€Â\n007€‚óÒ‚¡ó€ç€Ê€ã€û€»€×¸‚¬‚­ÅÌÁã€Â\n Èã¿à€ó€æ€ÜÒ‚Œ„þ‚ׂ‡†¥„”¸‚¬‚­Æâ‚ŽÜ\n‚ÿãλ߼Ï΀Â\n €é‰Î†¨ƒ”愯ãÎÁÌ…ª…«ìµß€Â\n", + " †¡†ŠÏƒçხãλ߼ÏÑ€Â\n‚€È€»€ðƒ€Â\n", + "‚Œ„þ‚ׂ‡†¥„”Ò‚¬‚­\n", + "€Ù€Ï‘€Ì€»€ß€ç€Ê€ã€û€»€×Ò‚¬‚­\n", + "„“„”҃渂º‚¡Çß\n", + "€ì€÷Ò‚¨„ƄǸ‚º‚¡Çß\n", + "€ó€æ€ÜÒ‚²‚´†¡†ŠÏ‚¹‚ºÇß\n", + ">> †˜ <<\n", + " „ë„ì„í„î€ó€æ€ÜӀڀπ׀々“€â\n€ø€ø€þϺ⅗…‡‚Ì‚´ÄãÌ»Î\n»‚²Ò†˜¸…À…žƒèÍÅ̴̻̂â\nß¼ð€Â\n ÈÃ¿à†Ž‚‡‚Œ†œÝ‚¤‚¥€â€ú€\n…ƒ†„–¸‚δ̻âàÅ»€Â\n", + " „’Ò†žÍÅÌÓοο҃²óÆ\nÑ€Â007€‚«€Õ¸ËÁÅÌ„ë„ì„í„î\n€ó€æ€ÜÒ‚Š‚‹¸† „¶ÅÌ‚ÕÄ»€Â\n ÃÒ‚ñƒ­Ï€ó€æ€ÜÒ…À…žƒèó€Ü€â\n€ø€Ü€ì€÷Ò‚¨„ƄǸ‚º‚¡ÅÎÄ»€Â\n‚Æ‚ÇÏßâÍ‚ÍàÓ€ì€÷Ò‚˜‚™¸‚å\nÛâàÅ»€Â\n €Ò€ø€ò€ëÓ€ä€ß€»€÷€Ð¸„²ãÌ\n€ã€ùÿ€È€ø€ó€ÏÒ‚²‚´†¡†ŠÏƒçá\nƒû¹ðÍ‚ÜåãØÆ€Â\n", + " ‚ÍàÒ…À…žƒèÏÓ¿Îᆣ†¤Äã\nɀـϑ€Ì€»€ßÒ€ç€Ê€ã€û€»€×æ„Ú\nÄãÌ»âÓíð€Â007€‚óÒ‚¡ó\n€ç€Ê€ã€û€»€×¸‚¬‚­ÅÌÁã€Â\n Èã¿à€ó€æ€ÜÒ‚Œ„þ‚ׂ‡†¥„”¸\n‚¬‚­Æâ‚ŽÜ‚ÿãλ߼Ï΀Â\n €é‰Î†¨ƒ”愯ãÎÁÌ\n…ª…«ìµß€Â\n", + " †¡†ŠÏƒçხãλ߼ÏÑ€Â\n‚€È€»€ðƒ€Â\n", + "‚²‚´†¡†ŠÒ†˜ €Ú€Ï€×€ã€…“€â€ø€ø€þ", + "‚Œ„þ‚ׂ‡†¥„”Ò‚¬‚­\n", + "€Ù€Ï‘€Ì€»€ß€ç€Ê€ã€û€»€×Ò‚¬‚­\n", + "„“„”҃渂º‚¡Çß\n", + "€ì€÷Ò‚¨„ƄǸ‚º‚¡Çß\n", + "€ó€æ€ÜÒ‚²‚´†¡†ŠÏ‚¹‚ºÇß\n", + "\n", + "\n", + "\n", + "\n", + "„“„”Ó€ú€Ê€×ÄãÌ»ØÆ\n", + "\n", + "€ì€÷Ò‚¨„Æ„Ç\n", + "€ì€÷Ò‚¨„Æ„Ç\n", + "\n", + "€ì€÷Ò‚¨„ƄǸ‚¡Ï‚ºãÉ\n", + "\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”҃渂¡Ï‚ºãÉ\n", + NULL +}; diff --git a/assets/obseg/text/j/LgunJ.c b/assets/obseg/text/j/LgunJ.c new file mode 100644 index 0000000..9ccad0e --- /dev/null +++ b/assets/obseg/text/j/LgunJ.c @@ -0,0 +1,228 @@ +#include "game/lvl_text.h" + +struct stringentry LgunJ[] = { + " D5K\n", + " …˜†Àƒ¿ƒò\n", + " ƒ“„Ž\n", + " PP7\n", + " DD44\n", + " †Â„“‚×\n", + "‚¡†âé€ä€Ñ€ë\n", + " ƒ“„Ž\n", + " KF7\n", + " ƒ“„Ž\n", + " €ö€Ñ€ë€ø\n", + "€ú€Ø€Ê€ã\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "<ƒì‚ú‚тʆò>\n", + "<€÷€ò€Ù€Ï†ò>\n", + "<‚Ó†–†ò>\n", + " €Ú€Ñ€ù€Ï€Ú€»\n", + "-\n", + "„‹„Œ€ö€Ñ€ë€ø\n", + "\n", + "€Ô€»‰€Æ€Ô€…€â€»’\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + " …æ‚õ\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "‚¨„Æ„Ç\n", + "Bolt€Ö€»\n", + "Bomb Case\n", + "ƒ“„Žƒ€ƒÉ‚Þ‚ß\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "Bug Detector\n", + "„ö„÷‚Þ‚ß\n", + "‹€Ï‚€»\n", + "€Õ€ñ€ö\n", + "„™„À„…†³\n", + "…­…¤‚ €÷€Ü€ã\n", + "Communicator\n", + "€Ù€Ï€ã€ú€»€ö\n", + "€î€þ€ä€ð‚×\n", + "\n", + "Credit Card\n", + "D5K<€Ú€Ñ€ù€Ï€Ú€»>\n", + "D5K Deutsche\n", + "DD44 Dostovei\n", + "Dark Glasses\n", + "DAT€â€»’\n", + "‰€»€ß€Û€»€ë\n", + "ƒ’ƒ“‚Þ‚ß\n", + "Deutsche\n", + "Š€Ðƒ€ƒ‚ñ\n", + "Door Exploder\n", + "Dostovei\n", + "‚„›‰€»€ß\n", + "Flare Pistol\n", + "Gas Keyring\n", + "Geiger Counter\n", + "Gold Bar\n", + "€€»€øŠPP7\n", + "†Â„“‚×\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»\n", + "\n", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»\n", + "€þ€ù€ç€»Š\n", + "‚¡á¶¼„Ž\n", + "Heroin\n", + "€é€Ï€ß€»€ä€Ñ€ë\n", + "Identifier\n", + "KF7 Soviet\n", + "Key Analyser Case\n", + "€Ö€»„¬„ ‚ñ\n", + "€Ö€»€Õ€»Š\n", + "€ä€Ñ€ë\n", + "€ù€»€»\n", + "€ö€Ï€à€Ë€»\n", + "Lectre\n", + "Lock Exploder\n", + "Magnet Repel\n", + "€î€þ€ä€ð‚×\n", + "€î€Ê’\n", + "Micro Camera\n", + "Microcode\n", + "Microfilm\n", + "‚²ƒ¿ƒò€ù€»€»‚×\n", + "\n", + "Money\n", + "\n", + "PP7<€Ú€Ñ€ù€Ï€Ú€»>\n", + "PP7…˜†Àƒ¿ƒò\n", + " PP7\n", + "Phantom\n", + "‘€ã€Ï‚×\n", + "„Ɔᄪ\n", + "’€ö€Ü€à€Ê€×ƒ“„Ž\n", + "Polarized Glasses\n", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž\n", + "RC-P90\n", + "Red Dossier\n", + "€÷€ò€Ù€Ï†òƒ“„Ž\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "Safecracker Case\n", + "„“„”ƒ€ƒ‚ñ\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "€Û€ø‹€»PP7\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "€Ü€ä€Ñ€»\n", + "Soviet\n", + "Spool Tape\n", + "Spy File\n", + "Klobb\n", + "€Ü€ß€Ê€ë€÷€Ü€ã\n", + "Suit-If-hand\n", + "„‘†Š\n", + "€Ü€ß€Ï€ü€Ï\n", + "‚¡†âé€ä€Ñ€ë\n", + "\n", + "‚Ó†–ƒ“„Ž\n", + "€ë€ö€Ê€þ\n", + "US AR33 „‹„Œ€ö€Ñ€ë€ø\n", + "US AR33\n", + "‚Þ…–‚¼Å\n", + "Œ‰€Ô€â€»’\n", + "Watch Communicator\n", + "Watch Geiger Counter\n", + "Watch Identifier\n", + "€ù€»€»‚Ó„Æ\n", + "„™†ã†ä‚Ó„Æ\n", + "Watch Magnet Repel\n", + "„™†ã†ä‚Ó„Æ\n", + "‚Ó„Æ\n", + "†Ž‚‡€Ø€»€Ü\n", + "ƒ¢‡´Ò€Õ€ý\n", + "ZMG (9mm)\n", + "\n", + "ar33\n", + "€Ô€»‰€Æ€Ô€â€»’\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "‚¨„Æ„Ç\n", + "bolt€Ö€»\n", + "bomb case\n", + "ƒ“„Žƒ€ƒÉ‚Þ‚ß\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "bug detector\n", + "„ö„÷‚Þ‚ß\n", + "‹€Ï‚€»\n", + "€Õ€ñ€ö\n", + "„™„À„…†³\n", + "…­…¤‚ €÷€Ü€ã\n", + "€î€þ€ä€ð‚×\n", + "credit card\n", + "d5k<€Ú€Ñ€ù€Ï€Ú€»>\n", + "d5k\n", + "dark glasses\n", + "dat€â€»’\n", + "‰€»€ß€Û€»€ë\n", + "dd44\n", + "ƒ’ƒ“‚Þ‚ß\n", + "ƒ–ƒ—ƒ€ƒ‚Þ‚ß\n", + "door exploder\n", + "‚„›‰€»€ß\n", + "flare pistol\n", + "gas keyring\n", + "gold bar\n", + "€€»€øŠPP7\n", + "†Â„“‚×\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»\n", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»\n", + "‚¡á¶¼„Ž\n", + "heroin\n", + "€é€Ï€ß€»€ä€Ñ€ë\n", + "€Ö€»„¬„ ‚ñ\n", + "€Ö€»€Õ€»Š\n", + "kf7 soviet\n", + "€ù€»€»\n", + "lectre\n", + "lock exploder\n", + "€î€Ê’\n", + "micro camera\n", + "microcode\n", + "microfilm\n", + "money\n", + "phantom\n", + "‘€ã€Ï‚×\n", + "„Ɔᄪ\n", + "’€ö€Ü€à€Ê€×ƒ“„Ž\n", + "polarized glasses\n", + "PP7<€Ú€Ñ€ù€Ï€Ú€»>\n", + "PP7\n", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž\n", + "rc-p90\n", + "red dossier\n", + "€÷€ò€Ù€Ï†òƒ“„Ž\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "ƒ–ƒ—ƒ€ƒ‚Þ‚ß\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "€Û€ø‹€»PP7\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "spool tape\n", + "spy file\n", + "klobb\n", + "€Ü€ß€Ê€ë€÷€Ü€ã\n", + "„‘†Š\n", + "€Ü€ß€Ï€ü€Ï\n", + "‚¡†âé€ä€Ñ€ë\n", + "‚Ó†–ƒ“„Ž\n", + "€ë€ö€Ê€þ\n", + "‚Þ…–‚¼Å\n", + "Œ‰€Ô€â€»’\n", + "watch communicator\n", + "watch geiger counter\n", + "watch identifier\n", + "€ù€»€»‚Ó„Æ\n", + "„™†ã†ä‚Ó„Æ\n", + "watch magnet repel\n", + "†Ž‚‡€Ø€»€Ü\n", + "ƒ¢‡´Ò€Õ€ý\n", + "zmg (9mm)\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»„¬„ ‚á...\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»¸‚¾´Ì»ØÇ¹\n", + "†¹ÅÉƒŠ„È", + "…¤…ò 1 ƒŠ„Û\n", + "…¤…ò", + "ƒŠ„Û", + "…æƒÁƒŠ„È", + NULL +}; diff --git a/assets/obseg/text/j/LjunJ.c b/assets/obseg/text/j/LjunJ.c new file mode 100644 index 0000000..5c17612 --- /dev/null +++ b/assets/obseg/text/j/LjunJ.c @@ -0,0 +1,48 @@ +#include "game/lvl_text.h" + +struct stringentry LjunJ[] = { + " ‚²‚´†¡†ŠÒ‚áó€Ù€Ï‘€Ì€»€ß¿à‚é‚êÅÉ\n€ó€æ€ÜÒ‚È‚Œ„…ƒèÒ†ë‚ßÓ€ƒêƒë‚΂ϿàÓ\n‚‚óÀο´É€Âƒèƒé¿àÒƒÚ†ü惹ƒºÍ\n‚Üåãâ€Â\n CIAÓ†ýƒÙ‚‚ñ¸†þ†ÿÅÌÁãÉ€Â\n€ù€»†€»ÎôÏ„¯Ë¿àλ߼†•ƒÝóƒÙö€\n€ö€Û€Ì€»€ãó„Ö‚ÕÅÌ‚€Ë€Ï€þ€ø¸ƒÚ†üÆâ\nƒ¹ƒºæºâ€ÂÈÅ̀ιÍÅÌ܀󀿀ÜÒ\n‚È‚Œ„…ƒè¸‡À„¶ÛÑõÎàλ€Â\n", + " ƒ‰ƒŠÓ€€ä€ß€»€÷€ÐÏ܃‚ÅÌÜà»ØÆ€Â\nÜŀ󀿀ܿ€€»€ø‰€Ï€Ð€Ñ¸„Ù´Ì»âÒÎ\nà€€Û€Ü€â€ð¸„µ„¶ÄÇâÒς̓…ÒƒÕ‡ƒæ\nƒ¹ƒºÍδÌÀØÆ€Â\n ‚̓…Ó„……À„‰Î‚×Ò‚Ì»„§¸CIAÒ‚€Ë€Ê€×\n¿à‡„å´ÉÒó„‘„à‚က»ƒøóÝ´Ì‚Ââó\nÅ·¼€Â\n ó܇…‡†Ó‡‡ƒ²óÆ€Â007€Â‚̓…ÓºÎÉÒ\n߼΄¥‚ǃùóÓλ‚ޏ‚ÿãλó‚ÕÄ»€Â\n", + " ƒÚ†ü‚áÏ€ó€æ€ÜÒ‚†‚³Ý‚¼ƒø‚ñ‚×Ï‚ÀÁåÅÉ\nà€‚È‚Œ„…ƒèÓƒì»Í»¼‚Žìµß€Â\n‚¼ƒø‚ñ‚×ÏÓ…˜Ï…҃⸇ˆ´Ì‚‚õÆâ¹ð€Â\n „Žƒ¥†¥„”‚´Ïƒ“„ޏ‚´ƒâÅɀƒõÒËØàλ\nƒ²Ï‚Ìåλ߼πÂ\n ¾¾€Èã¿à„€å€ÐÍ»¼‡‰Òƒ…ƒ†ÏÓ‚Ù¸\nËÂâ¹ð€Â007€ÂƒŒÁÍÃäÏßâÍ‚óÒƒ\n¸„ö´Ì»âàÅ»ìµÎ»¿€Â\n ÜÌâ†ÃÓËà»Ñ€Â\n", + " ‚€Ë€Ï€þ€øó¾‡Š»‰€»€ã€À\n2ƒøÒƒ…ƒ†Í€À\n\n ‚€È€»€ðƒ€ºÎɴ̃øÓ€…€…\n", + "‚¼ƒø‚ñ‚׸‚¬‚­Çß\n", + "„€å€Ð€…€Ô€ä€ã€Ê’¸†¹Ç\n", + "„Žƒ¥„”¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸€ó€æ€ÜÒ„…ƒèØó†‹Â\n", + "€ä€ß€»€÷€Ð:€‡Ý´Éå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡…ºÈ¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ®»å߀€ˆ\n", + "€ä€ß€»€÷€Ð:€‡»ÉðÀß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‰Ò„¯É€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ÃãÓ¾ÜÅä»åр€ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾Å¿´ÉåÑ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øº€ÆÌÀ·ºƒ²€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ÃÒ‚×ÓÍÌ܃å€Õðå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‰ÒÓ„Òð´ÉÒ¿Åà€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾ÜÅäÁδÌÀÉå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡»…÷ÅÌ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡„’»„Àр€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ë»Ìλå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øº€‡‹à¿´Ìâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚Å‚‚Ö€Â\n€ä€ß€»€÷€Ð€…€Û€ï€Í€èÿ€Å€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ü¼ÔÍËß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡ŒÂ‡Ñ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øâ󇎆áÙÉ»€Â€ˆ\n", + "€ä€ß€»€÷€Ð:\n", + "€ä€ß€»€÷€Ð:€‡Äº€»ÀØÅ·¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€‚Ù¸ËÂÌ ! €ˆ\n", + "„€å€Ð:€‡€ï€Ü€ß€»€…€ÏŠ€Âƒ‰ƒ•ÃÈÓ€\nƒ¡æƒ°ÅÚ…ç߀€ˆ\n", + "‚€‚‚æ‚ç: €ä€ß€»€÷€Ð…¤…ò\n", + ">> ‚€Ë€Ï€þ€ø <<\n", + " ‚²‚´†¡†ŠÒ‚áó‚é‚êÅɀ󀿀ÜÒ\n‚È‚Œ„…ƒèÒ†ë‚ßÓƒêƒë‚΂ϿàÓ\n‚‚óÀο´É€Âƒèƒé¿àÒƒÚ†ü\n惹ƒºÍ‚Üåãâ€Â\n CIAÓ†ýƒÙ‚‚ñ¸†þ†ÿÅÌÁãÉ€Â\n€ù€»†€»ÎôÏ„¯Ë¿àλ߼†•\nƒÝóƒÙö€€ö€Û€Ì€»€ãó„Ö‚ÕÅÌ\n‚€Ë€Ï€þ€ø¸ƒÚ†üÆâƒ¹ƒºæºâ€Â\nÈÅ̀ιÍÅÌ܀󀿀ÜÒ‚È‚Œ\n„…ƒè¸‡À„¶ÛÑõÎàλ€Â\n", + " ƒ‰ƒŠÓ€€ä€ß€»€÷€ÐÏ܃‚ÅÌ\nÜà»ØÆ€ÂÜŀ󀿀ܿ€€»€ø‰\n€Ï€Ð€Ñ¸„Ù´Ì»âÒÎà€€Û€Ü€â\n€ð¸„µ„¶ÄÇâÒς̓…ÒƒÕ‡ƒæ\nƒ¹ƒºÍδÌÀØÆ€Â\n ‚̓…Ó‚×Ò‚Ì»„§¸CIAÒ\n‚€Ë€Ê€×¿à‡„å´ÉÒó„‘„à‚á€\n€»ƒøóÝ´Ì‚ÂâóÅ·¼€Â\n ‚̓…ÓºÎÉÒ߼΄¥‚ǃùóÓ\nλ‚ޏ‚ÿãλó‚ÕÄ»€Â\n", + " ƒÚ†ü‚áÏ€ó€æ€ÜÒ‚†‚³Ý‚¼ƒø‚ñ‚×\nÏ‚ÀÁåÅÉà€‚È‚Œ„…ƒèÓƒì»Í\n»¼‚Žìµß€Â‚¼ƒø‚ñ‚×ÏÓ…˜Ï\n…҃⸇ˆ´Ì‚‚õÆâ¹ð€Â\n „Žƒ¥†¥„”‚´Ïƒ“„ޏ‚´ƒâÅɀƒõ\nÒËØàλƒ²Ï‚Ìåλ߼πÂ\n „€å€ÐÍ»¼‡‰Òƒ…ƒ†ÏÓ‚Ù¸Ë\nÂâ¹ð€ÂƒŒÁÍÃäÏßâÍ‚óÒ\nƒ¸„ö´Ì»âàÅ»ìµÎ»¿€Â\n ÜÌâ†ÃÓËà»Ñ€Â\n", + " ‚€Ë€Ï€þ€øó¾‡Š»‰€»€ã€À\n2ƒøÒƒ…ƒ†Í€À\n\n ‚€È€»€ðƒ€ºÎɴ̃øÓ€…€…\n", + "‚¼ƒø‚ñ‚׸‚¬‚­Çß\n", + "„€å€Ð€…€Ô€ä€ã€Ê’¸†¹Ç\n", + "„Žƒ¥„”¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸€ó€æ€ÜÒ„…ƒèØó†‹Â\n", + "€Ö€Ì€»‹ ‚€Ë€Ï€þ€ø\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LmiscJ.c b/assets/obseg/text/j/LmiscJ.c new file mode 100644 index 0000000..4f8759f --- /dev/null +++ b/assets/obseg/text/j/LmiscJ.c @@ -0,0 +1,76 @@ +#include "game/lvl_text.h" + +struct stringentry LmiscJ[] = { + "‚¼„€ò€»Š", + "€Ô€»€ø†Ž‚‡€ò€»Š", + "‚œ€Õ2‡Ã€ò€»Š", + "…¨„Ž€à€Í€Ê€Ö2‡Ã", + "‡Ä„¿ƒø‚©€ò€»Š", + "Bond Phase", + "„Ž‚¼‚†–€ò€»Š", + "DK€ò€»Š", + "€ß€Ñ€å€»€ÏŠ", + "‚œ€Õ10‡Ã€ò€»Š", + "€î€þ€ä€ð‚×", + "€ù€»€»‚×", + "†Â„“‚×", + "PP7€Û€ø‹€»€ß€Ñ’", + "PP7€€»€øŠ€ß€Ñ’", + "‚¼„€ò€»Š €Ô€Ï\n", + "€Ô€»€ø†Ž‚‡€ò€»Š €Ô€Ï\n", + "„Ž„È‚Ô‚—€ò€»Š\n", + "‚œ€Õ2‡Ã€ò€»Š\n", + "…¨„Ž€à€Í€Ê€Ö2‡Ã\n", + "‡Ä„¿ƒø‚©€ò€»Š €Ô€Ï\n", + "bond phase on\n", + "„Ž‚¼‚†–€ò€»Š €Ô€Ï\n", + "DK€ò€»Š €Ô€Ï\n", + "…˜†À†Ž‚‡\n", + "€ß€Ñ€å€»€ÏŠ €Ô€Ï\n", + "“€Ñ€Ï€ã€»€ø €Ô€Ï\n", + "‚œ€Õ10‡Ã€ò€»Š\n", + "Ããó…©„ÅÉ€€Õ€»€ø€À\n", + "€ß€»€ò€»Š €Ô€Ï\n", + "‚¼„€ò€»Š €Ô€ë\n", + "€Ô€»€ø†Ž‚‡€ò€»Š €Ô€ë\n", + "‡Ä„¿ƒø‚©€ò€»Š €Ô€ë\n", + "bond phase off\n", + "„Ž‚¼†–€ò€»Š €Ô€ë\n", + "DK€ò€»Š €Ô€ë\n", + "€ß€Ñ€å€»€ÏŠ €Ô€ë\n", + "“€Ñ€Ï€ã€»€ø €Ô€ë\n", + "€ù€»†€» €Ô€Ï\n", + "€ß€»€ò€»Š €Ô€ë\n", + "‡‰ƒ™‚¼Å", + "€Ó€ö€»\n", + "ƒ‰ƒŠÒ‚€‚Ó‚®‚¯ÎÅ\n", + "\n", + "‚€‚<", + ">‚â‚ã\n", + ">„»‚â‚ã\n", + ">‚æ‚ç\n", + "€Ò€ø€ã€ö€Ü€ú€»\n", + "€Ü€»€»€Ü€ú€»\n", + "„€Ü€ú€»€ò€»Š €Ô€Ï\n", + "€è€»€î€ø€…€ò€»Š\n", + "„€ß€»€ò€»Š €Ô€Ï\n", + "€Ü€»€»€Ü‘€»Š\n", + "€Ò€ø€ã€ö€Ü‘€»Š\n", + "€û€Ñ€ó€»€ò€»Š", + "“€Ñ€Ï€ã€»€ø", + "‚«„ R €ö€Ï€à€Ë€»", + "…ë‚¡ R €ö€Ï€à€Ë€»", + "…ë‚¡ G €ö€Ï€à€Ë€»", + "…ë‚¡ RC-P90", + "…ë‚¡ ‚¡†âé€ä€Ñ€ë", + "€ö€Ñ€ë€ø/€ö€Ï€à€Ë€»", + "…ë‚¡ €ù€»€»‚×", + "€ß€»€ò€»Š", + "„€ß€»€ò€»Š", + "„€Ü€ú€»€ò€»Š", + "€ù€»†€»‚¼Å ‚±„‘‚´", + "…ªá‚Ó‚© 60 ƒÂ", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LmpmenuJ.c b/assets/obseg/text/j/LmpmenuJ.c new file mode 100644 index 0000000..f2652b2 --- /dev/null +++ b/assets/obseg/text/j/LmpmenuJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LmpmenuJ[] = { + "…æƒÁ†å", + "„ŽÓôÀÀ", + "…¨„Ž€à€Í€Ê€ÖÓôÀÀ", + "…¨„Ž€à€Í€Ê€Ö†å", + "ƒ´‚á†Á†å", + "€Ü€ä€Ñ€»€…€×€ö€Ü", + "ƒ–ƒÁ‚ €×€ö€Ü", + "€»†æ†’†Œ€×€ö€Ü", + "†ç†è‚ €×€ö€Ü", + "‚Û†»¿Î»€×€ö€Ü", + "ƒŸ†é†ê€×€ö€Ü", + "„’…ù€×€ö€Ü", + "†¹ÄãÉ‚©ƒÌ总…çƒã»", + "†¹ÄãÉ‚©ƒÌ总…焳»", + "2ƒø¸ƒ‚Óφ¹ÅÉ", + "3ƒø¸ƒ‚Óφ¹ÅÉ", + "4ƒø¸ƒ‚Óφ¹ÅÉ", + "€ö€Ï€Ö€Ï€þ:€»†ë", + "€ö€Ï€Ö€Ï€þ:€å†ë", + "€ö€Ï€Ö€Ï€þ:†ì†ë", + "€ö€Ï€Ö€Ï€þ:†í†ë", + " Aó’€ù€Ñ", + "€ÿ€»€ð€Ô€»‹€»", + "€Ü€ß€»€ãó„·‚ã", + "”€»ƒ‚á", + " A󔀻ƒ", + " Aó„·‚ã", + "€Ü€Ù€Ð", + "", + "P 憹ÅÉƒŠ„È", + "P 憹ÄãÉ„È", + "€»…ç†ïÁ‚Ì´É†Ž‚‡", + "‚Ãá„ÄÅ", + "‚Ò‚", + "€Ü€ß€»€ã󄤂\n", + "to continue\n", +}; diff --git a/assets/obseg/text/j/LmpweaponsJ.c b/assets/obseg/text/j/LmpweaponsJ.c new file mode 100644 index 0000000..b715bc1 --- /dev/null +++ b/assets/obseg/text/j/LmpweaponsJ.c @@ -0,0 +1,20 @@ +#include "game/lvl_text.h" + +struct stringentry LmpweaponsJ[] = { + "€à€Í€Ê’ÒÙ", + "‘€Ü€ã€ø", + "€î€Û€Ï€ü€Ï", + "‚’‚†‚‡", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø", + "‚¡á¶¼„Ž", + "€÷€ò€Ù€Ï†òƒ“„Ž", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»", + "‚Ó†–ƒ“„Ž", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»", + "€ù€»€»‚×", + "†Â„“‚×", + "‚¡†âé€ä€Ñ€ë\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LoptionsJ.c b/assets/obseg/text/j/LoptionsJ.c new file mode 100644 index 0000000..1567c14 --- /dev/null +++ b/assets/obseg/text/j/LoptionsJ.c @@ -0,0 +1,68 @@ +#include "game/lvl_text.h" + +struct stringentry LoptionsJ[] = { + "„ŒË\n", + "†Ç…•\n", + "‚õ„Š\n", + "†Ž‚‡†½†¾\n", + "”€»ƒ\n", + "†ª‚õ\n", + "ƒë‚Ö†ª‚õ\n", + "€À\n", + "†Ç…•‚öåÇ\n", + "€ß€Ñ’ 1-1\n", + "€ß€Ñ’ 1-2\n", + "€ß€Ñ’ 1-3\n", + "€ß€Ñ’ 1-4\n", + "€ß€Ñ’ 2-1\n", + "€ß€Ñ’ 2-2\n", + "€ß€Ñ’ 2-3\n", + "€ß€Ñ’ 2-4\n", + "ƒë‚Ö†ª‚õ\n", + "…æ‚õ†Ç…•\n", + "…æ‚õƒ™„§ƒë‚Ö\n", + "†Ç…•‚¨„Ÿ\n", + "†Ç…•„ä†Ý\n", + "„Ž„È„ä†Ý\n", + "†á„ò‚¨„Ÿ\n", + "…»†Á\n", + "on\n", + "off\n", + "€è€»€î€ø\n", + "ƒé‚Õ†Þ\n", + "ƒÄᄽ\n", + "€í€»€øŠ\n", + "€ë€ø\n", + "€û€ÑŠ\n", + "€Û€ç€î\n", + "€è€»€î€ø\n", + "16:9\n", + "‚€‚‚á„¶:\n", + "‚Ò‚\n", + "‚Ãá„ÄÅ\n", + "‚€‚†ß†à:\n", + "‚â‚ã\n", + "„»‚â‚ã\n", + "Left Hand\n", + "\"Q\"€Ò€É€Ê€à V2.01 BETA\n", + "‚Õ\n", + "ƒé\n", + "€Ú€ÑЀ܀â€Ê’\n", + "€Ú€ÑЀ܀â€Ê’\n", + "ƒ™„ø\n", + "ƒ†ô\n", + "„Ù„Š‚¨„Ÿ\n", + "„Ù„Š€à€È€Ê€×(€»…¦€ò€»Š)\n", + "„Ù„Š€à€È€Ê€×(€å…¦€ò€»Š)\n", + "BGM\n", + "SE\n", + "‚€‚‚æ‚ç\n", + "2.€Ü€â€»‚‚‚‚ƒ\n", + "3.\"M\"Ò‚®‚¯\n", + "4.\"Q\"Ò…à„æ\n", + "5.€î€ç€»“€å€»\n", + "1.ƒ¹†É‚€‚\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LpeteJ.c b/assets/obseg/text/j/LpeteJ.c new file mode 100644 index 0000000..7c78e56 --- /dev/null +++ b/assets/obseg/text/j/LpeteJ.c @@ -0,0 +1,36 @@ +#include "game/lvl_text.h" + +struct stringentry LpeteJ[] = { + " ‚²‚´„ª„”ϺâKGB‚Ã…¥‚É¿àƒä‚ÀÅɃ\n€ä€ß€»€÷€ÐÓ€Ò€ø€ò€ë„€‚²Ò‚¡Ïß´Ì…¯Ø´Ì\nÅØ´É€Â\n\n ‚̓…Ó†Šó€Ú€Ï€×€ã€…“€â€ø€ø€þϺâ\n€ó€æ€ÜÒ‚²‚´†¡†ŠÒ†˜Ï„²ãÌ‚¿ãß¼Í\nÅÌ»â€Â\n", + " ƒƒ»ó‚ÍàÒƒ¸„ö»ÎÄ»€ÂÃÒØØ‚Íà¸\n„¯‚æ¼åÂÏÓ»ÀØÇ¹€Â‚ÍàÓƒ¹íºÎɸ\n€ã€ùÿ€È€ø€ó€ÏÒÜÍÖ͆‹»ÌÁãØÆ€Â\n ſŀ»¿Îâ‚Óó܃ۃÜÏ‚‚õÅÎÄ»€Â\n€Ú€Ï€×€ã€…“€â€ø€ø€þÒ†’†‰ó†Œ‚©ƒøÏ†“†”¸\n‚ÀÆÃÍÓ‚¤‚¥„„ÃÖÍËÎæáØÆ€Â\n ØðƒìÁÏ»âÓíÒÿ€Å€ù€Ï€â€Æ€ÏÒ…à¸\n†áÌ‚€‚¸„Ì‚ÅÌ‚ÕÄ»€Â\n", + " 007ƒ‰ƒŠÜƒ¢ƒ£ƒ¤Ó‚¼»ï€ÂſłóÎà\n€ú€Û€Ð‚²æ…ªÅÌ»´ÉƒæÝ†Ž‚‡Îô¸‚Ì´Ì\nƒÄáƒäÂàãâìµä€Â\n", + " ‚€È€»€ðƒ€‚̓…ÏÓÈÃØóÅÌ…àÂâ×ô\nÒ††‘Óλå€Â\n\n ÈãßáÜ´Í…áƒìϻ⻻ƒøÓô¼€À\n", + "€Ò€ø€ò€ëÍ€ä€ß€»€÷€Ð¸„ö„÷Çß\n", + "†’†ŒÒ†“†”¸‚Ôƒ¢†–Ï\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÍ‚ú‚û\n", + "…Òƒâ: †’†ŒÏ†“†” †—Å\n", + "‚Ý‚þ: †’†ŒÒ†“†” †–‡“\n", + "‚€‚‚æ‚ç: †’†ŒÒ†“†”憗ÆçØÆ\n", + "‚€‚‚æ‚ç: €Ò€ø€ò€ë¸„¯‚æ»ØÅÉ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡€ÏŠ ‚ŠßÁ‚üé‚ÀÇÉ΀€ˆ\n", + "€ÏŠ:€‡Å¿Å€€Ò€ø€ò€ëæ€ä€ß€»€÷€Ð¸\nËãÌ‚üƒÏ‚áð€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡ÈãÎàÄ´À€ƒ…¸\n„²ãÌ‚²Ò†˜Ï‚ð¿¼†Š¸„¯Éï€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡„ë„ì„í„î€ó€æ€ÜÒ…À…žƒè\nÓÈÃϺâ€Âƒ¡Ò‚£‚ÕÏ„™…Ú¸Æãõ‚Íà\n¸ƒ®àÇ₎æóÀâ€Â€ˆ\n", + "€ÏŠ:€‡ÿ€Å€ù€Ï€â€Æ€Ï€Â\nƒ¡¸…àÂÌ€ñ€÷€Ê€ãÓºâÒ¿€À€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡ƒ¿‚ŽÓƒ¿‚Žð¿à΀Â\nÈãφ™†šƒ§‚¡æ»ÎÁÎâ¹ð´Éà\n¾„Ô»ÜÒ߀€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡€ÏŠ€ƒÒƒÓÏ…á¸Äà\nÅÌØóÅÌÃÃÏ»â¹ð€Â…âÅèà»Ó\nƒŒÁ…ã¸Ü´Éàô¼ð€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€ÏæÃÒ‚‰¸…äáØÅÉ€Â\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÓ‚ÍÒ‚£‚ÕÏ„²†›¸‚ÃáØÅÉ€Â\n", + ">> €Ú€Ï€×€ã€…“€â€ø€ø€þ <<\n", + " ‚²‚´„ª„”ϺâKGB‚Ã…¥‚É¿à\nƒä‚ÀÅɃ€€ä€ß€»€÷€ÐÓ\n€Ò€ø€ò€ë„€‚²Ò‚¡Ïß´Ì…¯Ø´Ì\nÅØ´É€Â\n ‚̓…Ӏڀπ׀々“€â€ø€ø€þÏ\nºâ€ó€æ€ÜÒ‚²‚´†¡†ŠÒ†˜Ï„²ãÌ\n‚¿ãß¼ÍÅÌ»â€Â\n", + " ƒƒ»ó‚ÍàÒƒ¸„ö»ÎÄ»€Â\nÃÒØØ‚Íค¯‚æ¼åÂÏÓ»À\nØÇ¹€Â‚ÍàÓƒ¹íºÎɸ\n€ã€ùÿ€È€ø€ó€ÏÒÜÍÖ͆‹»ÌÁ\nãØÆ€Â»¿Îâ‚Óó܃ۃÜÏ‚‚õ\nÅÎÄ»€Â€Ú€Ï€×€ã€…“€â€ø€ø€þ\nÒ†Œ‚©ƒøÏ†“†”¸‚ÀÆÃÍÓ€‚¤‚¥\n„„ÃÖÍËÎæáØÆ€ÂØðƒìÁÏ\n»âÓíÒÿ€Å€ù€Ï€â€Æ€ÏÒ…à¸\n†áÌ‚€‚¸„Ì‚ÅÌ‚ÕÄ»€Â\n", + " 007ƒ‰ƒŠÜƒ¢ƒ£ƒ¤Ó‚¼»ï€Â\nſłóÎà€ú€Û€Ð‚²æ…ªÅÌ\n»´ÉƒæÝ†Ž‚‡Îô¸‚Ì´Ì\nƒÄáƒäÂàãâìµä€Â\n", + " ‚€È€»€ðƒ€‚̓…ÏÓÈÃØóÅ\nÌ…àÂâ×ôÒ††‘Óλå€Â\n\nÈãßáÜ´Í…áƒìϻ⻻ƒøÓ\nô¼€À\n", + "€Ò€ø€ò€ëÍ€ä€ß€»€÷€Ð¸„ö„÷Çß\n", + "†’†ŒÒ†“†”¸‚Ôƒ¢†–Ï\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÍ‚ú‚û\n", + "€Ú€Ï€×€ã€…“€â€ø€ø€þ†’†‰ƒè\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LpropobjJ.c b/assets/obseg/text/j/LpropobjJ.c new file mode 100644 index 0000000..eab65a2 --- /dev/null +++ b/assets/obseg/text/j/LpropobjJ.c @@ -0,0 +1,72 @@ +#include "game/lvl_text.h" + +struct stringentry LpropobjJ[] = { + "¸‚¡Ï‚ºãÉ", + "", + "", + "", + "", + "<„Ž>", + "€Û€Í€Ê€ã€ü€ÏÒ„Ž", + "€î€þ€ä€ð‚×Ò„Ž", + "†Â„“Ò„Ž", + "‚¡á¶¼„Ž", + "G €ö€Ï€à€Ë€»Ò„Ž", + "€ú€Ø€Ê€ã„Ž", + "€÷€ò€Ù€Ï†òƒ“„Ž", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž", + "‚Ó†–ƒ“„Ž", + "‚¡†âé", + "€ä€Ñ€ë", + "€ä€Ñ€ë", + "", + "dart", + "explosive pen", + "explosive case", + "flare", + "‘€»€ã€Ï", + "of dynamite", + "stick", + "sticks", + "„ö„÷‚Þ‚ß", + "micro camera", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»", + "€ë€ö€Ê€þ", + "’€ö€Ü€à€Ê€×ƒ“„Ž", + "€é€Ï€ß€»€ä€Ñ€ë\n", + "PP7\n", + "€Ú€Ñ€ù€Ï€Ú€»PP7\n", + "DD44 Dostovei\n", + "Klobb\n", + "KF7 Soviet\n", + "ZMG (9mm)\n", + "D5K Deutsche\n", + "€Ú€Ñ€ù€Ï€Ú€»D5K\n", + "Phantom\n", + "AR33„‹„Œ€ö€Ñ€ë€ø\n", + "RC-P90\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "€î€þ€ä€ð‚×\n", + "†Â„“‚×\n", + "€ù€»€»‚×\n", + "", + "‘€»€ã€Ï‚×\n", + "€Û€ø‹€»PP7\n", + "€€»€øŠPP7\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»\n", + "ƒþ†ò€Ö€»\n", + "†óÅ»†Ž‚‡\n", + "€Ö€»¸‚¡Ï‚ºãÉ\n", + "…¨„Ž€à€Í€Ê€Ö¸‚¡Ï‚ºãÉ\n", + "…¨„Ž€à€Í€Ê€Ö\n", + "„†¿¸‚¡Ï‚ºãÉ\n", + "€ú€Ê€×ÄãÌ»ØÆ\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LsevJ.c b/assets/obseg/text/j/LsevJ.c new file mode 100644 index 0000000..f3a601f --- /dev/null +++ b/assets/obseg/text/j/LsevJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LsevJ[] = { + " ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€óƒìƒíÒ\nƒî»ƒïƒð€Ý€Ï€ß€»ó҂뇳΂õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúáƒûØãÌ\n»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ºÎÉÒ‚€‚ÓÃÒƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ\n‚åã̻⿸‚‚Æâ‚ŽóÆ€Â\n\n ‚΂τ „¡Ïßâ̓è‚Õóƒöƒ¸„‰Î‚ˆ‚Žæ‚å\nãÌ»âß¼óƀ‚Íàæ»´É»„†ÒÉÛÏ\nƒó‚õ¸„¤ÂÌ»âÒ¿¸ƒÕáÉ»ÒóÆ€Â\n‚‰‚öÏß´ÌÓƒêƒë€Õ€ñ€ö¸‚¬‚­Æâƒ¹ƒºæºâ\n¿ÜÅãØÇ¹€Â\n ÎâøÁ„¦½ÛÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n", + " ƒ‰ƒŠÒ€ï€Ê€Û€Í€ÏóӀـϑ€Ì€»€ß¸ƒš´Ì\nÜ༂ŽÏÎâ€Â\n ƒèƒ£Ï€Ü€û€»Š¸ƒ€ƒÆâßá€Û€Ë€Ï“€Ï\n¸‚äÂâ„§¸„¨Ú‚óÒÃÍð¿à€ƒ‰ƒŠÓ‚óÒ\n„©åáσ¿‚ޏÅÌÁã⃢ƒ£ƒ¤¸„Š´É€Â\n\n ÃÒ‰€»€ß€Û€»€ë¸€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÏ\n‚Ã჎ÂâðÂó€Ý€Ö€Ì€÷€â€Æ€Ù€»Š¸„ªÀ„«½\nØÉ‰€»€ß¸†€Ò€Ï€ú€»ŠÆâ‚ŽæóÀâ€Â\n", + "‚€È€»€ðƒ ƒ‰ƒŠÒ‚€‚Ó€ÛŽ€÷€Ð†õ„ÏÒ\nƒè‚ÕÙɻрÀ\nƒ¡ÏÓÍÌÜ‚ÂȼÏλå€Â\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "GoldenEye€Ö€»¸„¬„ Å€ƒ»Ìä\n", + "„­„®‚ ¸„¯Ë€ـϑ€Ì€»€ß¸„°‚õ\n", + "€Ù€Ï‘€Ì€»€ß¿à‚ƂǸ‚ÄÀ‚ÀÇ\n", + "€ñ€Ñ€Ï€Ü€×€÷€»€ÏÒ„ „¡¸„±ã\n", + "Hello\n", + "€ÏŠ:€‡€Ú€»‹€»€Ù€Ï‘€Ì€»€ß¸„°‚õÄÇä€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡„ŒÉλó !\nÈãÎàôÊπ€ˆ\n", + "’€ú€þ€ö€î€»:€‡ÃøƒäÂÉàÆè€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡½½..̀€ˆ\n", + "’€ú€þ€ö€î€»:€‡È¹ÎÏ„³ÁÓ¿¿àλÓí€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡¼€»¹€Â\n€Ü€û€»Šæ‚ù„´ÄãÌ»â€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡À´Í..........\n'K''N''O''C''K''E''R''S'<€÷€ß€»€Ï>€ˆ\n", + "’€ú€þ€ö€î€»:€‡ºÊµ€»€Â€ˆ\n", + "€ÏŠ:€‡€Ý€Ö€Ì€÷€â€Æ¸„µ„¶ÄÇä ! €ˆ\n", + "’€ú€þ€ö€î€»æ‚üéØÅÉ\n€Ú€»‹€»€Ù€Ï‘€Ì€»€ß¸„°‚õóÀØÇ¹\n", + "€Ú€»‹€»€Ù€Ï‘€Ì€»€ßæ„°‚õÅÌ»ØÇ¹\n", + "‰€»€ß †€Ò€Ï€ú€»Š‚á\n", + "†€Ò€Ï€ú€»Š„·‚ã\n", + "’€ú€þ€ö€î€»:€‡Ã¹ÎÜÒ„¸æƒ Çâ¿ ! €ˆ\n", + ">> €Ýÿ€È€ø€ä€ó <<\n", + " ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€ó\nƒìƒí҃ïƒð€Ý€Ï€ß€»ó҂뇳Î\n‚õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúá\nƒûØãÌ»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ºÎÉÒ‚€‚ÓÃÒƒè‚Õ„…ƒèÏ\n‚¹‚ºÅ€„†æ‚åã̻⿸\n‚‚Æâ‚ŽóÆ€Â\n ‚΂τ „¡Ïßâ̓è‚Õóƒöƒ¸„‰Î\n‚ˆ‚Žæ‚åãÌ»âß¼óÆ€Â\n ‚Íàæ»´É»„†ÒÉÛσó‚õ¸\n„¤ÂÌ»âÒ¿¸ƒÕáÉ»ÒóÆ€Â\n‚‰‚öÏß´ÌÓƒêƒë€Õ€ñ€ö¸‚¬‚­\nÆâƒ¹ƒºæºâ¿ÜÅãØÇ¹æ€\n„¦½ÛÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n", + " ƒ‰ƒŠÓ€Ù€Ï‘€Ì€»€ß¸ƒš´Ì\nÜ༂ŽÏÎâ€Âƒèƒ£Ï€Ü€û€»Š\n¸ƒ€ƒÆâßá€Û€Ë€Ï“€Ï¸‚äÂâ\n„§¸„¨Ú‚óÒÃÍð¿à€ƒ‰ƒŠÓ\n‚óÒ„©åáσ¿‚ޏÅÌÁãâ\nƒ¢ƒ£ƒ¤¸„Š´É€ÂÃÒ‰€»€ß€Û€»€ë\n¸€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÏ‚Ã჎Â\nâðÂó€Ý€Ö€Ì€÷€â€Æ€Ù€»Š¸„ªÀ\n„«½€ØÉ‰€»€ß܆€Ò€Ï€ú€»Š\nÆâ‚ŽæóÀâ€Â\n", + " ‚€È€»€ðƒ€Â\nƒ‰ƒŠÒ‚€‚Ó€ÛŽ€÷€Ð†õ„ÏÒƒè‚Õ\nÙɻрÀ\nƒ¡ÏÓÍÌÜ‚ÂȼÏλå€Â\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "GoldenEye€Ö€»¸„¬„ Å€ƒ»Ìä\n", + "„­„®‚ ¸„¯Ë€ـϑ€Ì€»€ß¸„°‚õ\n", + "€Ù€Ï‘€Ì€»€ß¿à‚ƂǸ‚ÄÀ‚ÀÇ\n", + "€ñ€Ñ€Ï€Ü€×€÷€»€ÏÒ„ „¡¸„±ã\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É €Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É €Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É€Ö€»€Õ€»Š¸‚º‚¡\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "€Ýÿ€È€ø€ä€ó ƒè‚Õ„…ƒè(„‡‚¨‚á)\n", + "…—…‡\n", + "€Ú€»‹€»€Ù€Ï‘€Ì€»€ß‚¬‚è\n‰€»€ß¸†€Ò€Ï€ú€»ŠóÀØÇ¹", + NULL +}; diff --git a/assets/obseg/text/j/LsevxJ.c b/assets/obseg/text/j/LsevxJ.c new file mode 100644 index 0000000..d3f0de2 --- /dev/null +++ b/assets/obseg/text/j/LsevxJ.c @@ -0,0 +1,48 @@ +#include "game/lvl_text.h" + +struct stringentry LsevxJ[] = { + " €…€…€…5†ùƒ(4†ùƒ™)€…€…€…\n\n ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€óƒìƒíÒ\nƒî»ƒïƒð€Ý€Ï€ß€»ó҂뇳΂õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúáƒûØãÌ\n»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ÈÃÏÓ€¿Ë̀Ѐ»€Õ€Ï€ÿ€øÒ‚„‚…‚†‚‡‚ˆ‚‰\n¸‚®…ÅÅ̻ɀҀø€ò€ëÒ€„„‚‚†‚‡‚£„ƒæºâ\nÍ‚ÜåãØÆ€Â\n\n ƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ‚åã̻⿸‚‚\nÅÌÀÌ‚ÕÄ»€Â„‡‚¨’€ö€ÏÒƒŠ‚éæ‚Àƒ¼ãõ\n‚Ë„ˆ„‰óÆ€Âôÿ҄‡ƒ²Ò‚áÒ„“„”Ï…·‚ÊÄã\nÌ»âÍ‚Ü»ØÆÒó€ØíÓ€Õ€ý¸‚¡Ï‚ºãÌ\n‚ÕÄ»€Â\n", + " ƒêƒë‚΂ÏÒ„ „¡¿àÙâÍ€ì€÷”€»€ãϺâ\n‚º€ú¿àÒ‚¹‚ºÓÊ·´ÍƒÒƒÓÎ‚ÙæÆâ€Â\nÈãßáÜÈÒƒŽƒìϺâ‚Ђـ߀û€»¿à‚¹‚º\nÆâÒæ‚¼‚½ìµä¼€Â\n\n Èã¿à€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄâÃ͸\n‚ÿãíÏÎ€Â‚óæ‚¹‚ºÅÉ‚Ž‚Òæ€€ú€Û€Ð‚áÏ\nƒÕア₎ӀÊÍØí»¿àÒ€Â\n", + " €ÛŽ€÷€ÐÓ„—»å€‚€È€»€ðƒ€Â\n„˜¿ÁÅÌ‚¡„¸‚µ´ÌÑ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄã\n", + "„“„”Ò€Õ€ý¸‚º‚¡Çß\n", + "„‡‚¨’€ö€Ï¸‚º‚¡Çß\n", + "‚Ђـ߀û€»¿àƒè‚Õ„…ƒèÏ‚¹‚º\n", + "€ö€ö€Ð€Ï€â€äÒ„™„šæƒÄãØÅÉ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ‚„›‚Þ‚ß‚¬‚è€Â\n„œƒƒ„™€ÕσÄá„½ØÆ€Â\n", + "€Ð€×€Ý€Ü‚ë„„\n", + ">> €Ýÿ€È€ø€ä€ó <<\n", + " €…€…€…5†ùƒ(4†ùƒ™)€…€…€…\n\n ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€ó\nƒìƒí҃ïƒð€Ý€Ï€ß€»ó҂뇳Î\n‚õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúá\nƒûØãÌ»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ÈÃÏÓ€¿Ë̀Ѐ»€Õ€Ï€ÿ€ø\nÒ‚„‚…‚†‚‡‚ˆ‚‰¸‚®…ÅÅÌ»É\n€Ò€ø€ò€ëÒ€„„‚‚†‚‡‚£„ƒæºâ\nÍ‚ÜåãØÆ€Â\n ƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ‚åã\n̻⿸‚‚ÅÌÀÌ‚ÕÄ»€Â\n„‡‚¨’€ö€ÏÒƒŠ‚éæ‚Àƒ¼ãõ‚Ë„ˆ\n„‰óÆ€Âôÿ҄‡ƒ²Ò‚áÒ„“„”\nÏ…·‚ÊÄãÌ»âÍ‚Ü»ØÆÒó\nØíÓ€Õ€ý¸‚¡Ï‚ºãÌ‚ÕÄ»€Â\n", + " ƒêƒë‚΂ÏÒ„ „¡¿àÙâÍ€ì€÷”\n€»€ãϺ₺€ú¿àÒ‚¹‚ºÓÊ·´\n̓҃ÓÎ‚ÙæÆâ€ÂÈãßáÜÈÒ\nƒŽƒìϺâ‚Ђـ߀û€»¿à‚¹‚ºÆâ\nÒæ‚¼‚½ìµä¼€Â\n Èã¿à€ö€ö€Ð€Ï€â€äÒ„™„š\n¸ƒÄâÃ͸‚ÿãíÏÎ€Â‚óæ‚¹‚º\nÅÉ‚Ž‚Òæ€ú€Û€Ð‚áσÕア₎Ó\nÊÍØí»¿àÒ€Â\n", + " €ÛŽ€÷€ÐÓ„—»å€‚€È€»€ðƒ€Â\n„˜¿ÁÅÌ‚¡„¸‚µ´ÌÑ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄã\n", + "„“„”Ò€Õ€ý¸‚º‚¡Çß\n", + "„‡‚¨’€ö€Ï¸‚º‚¡Çß\n", + "‚Ђـ߀û€»¿àƒè‚Õ„…ƒèÏ‚¹‚º\n", + "€ÛŽ€÷€Ð†õ„Ï €Ýÿ€È€ø€ä€ó\n", + "€…€…€… 4†ùƒ™ €…€…€…\n", + "\n", + "\n", + "\n", + "\n", + "„“„”Ó€ú€Ê€×ÄãÌ»ØÆ\n", + "\n", + "ƒè‚Õ„…ƒè„‡‚¨’€ö€Ï\n", + "ƒè‚Õ„…ƒè„‡‚¨’€ö€Ï\n", + "ƒè‚Õ„…ƒè„‡‚¨’€ö€Ï\n", + "„‡‚¨’€ö€Ï¸‚¡Ï‚ºãÉ\n", + "\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý¸‚¡Ï‚ºãÉ\n", + "\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ¸‚¡Ï‚ºãÉ\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LsiloJ.c b/assets/obseg/text/j/LsiloJ.c new file mode 100644 index 0000000..f991308 --- /dev/null +++ b/assets/obseg/text/j/LsiloJ.c @@ -0,0 +1,76 @@ +#include "game/lvl_text.h" + +struct stringentry LsiloJ[] = { + " €…€…€…2†ùƒ(2†ùƒ™)€…€…€…\n €Ö€ø€ý€Ü€ß€ÏÒ€ú€Ø€Ê€ã €Ú€Ñ€úó†Ú‚ÈÒ\n€ú€Ø€Ê€ãƒáʃéé€â€Ü€ãæ‚åãß¼ÍÅÌ\n»âàÅ»€Â€â€Ü€ãÓ€€»€ø‰€Ï€Ð€Ñ‚΂Ï\n‚†‚‡ÒƒáʃééÍ‚•å´Ì»âÍMI-6Ó\nÏà¹ó»â€Â\n ‚¹‚º‚áÒ€Ü€Ñæ€ƒ‰ƒŠÒƒáʃééÓ\nƒþ€ÞŒ€Ó€ã„½€ÕÒƒó‚õóÓλ‚ޏ\n‚Ç‚þÅÌ»â€Â\n", + " €Ú€Ñ€úÏ‚¹‚ºÅ€„†æƒáʃééàãß¼Í\nÅÌ»âÒ¿¸‚‚ÅÌ‚ÕÄ»€Â\n\n ÜÅÈãæƒø‚ˆ‚΂ÏÎàõ€„™„À„…†³¸\nƒŠ‚éŃáʃé鸂ᄶÄÇÎÄ»€Â\n ƒ¹ƒºÎàõ€‚§‚¨¸‚¬‚­Æâ‚ŽÜƒÔ‚\nÅØÆ€Â\n\n007€ÃãÓ‚¤‚¥„‰Î€Ý€Ö€Ì€÷€â€Æ„„ÃóÆ€Â\n", + " €ú€Ø€Ê€ã€Ú€Ñ€úÒ‚¨„ƄǸÙâ¿çငȀ؂÷\nσ“„ޏ‚¨‚߯ãõ‚«ÌÒ‚§‚¨¸‚¬‚­Æâ‚Žæ\nóÀȼð€Â„ʄ˂É(H4€C3€K2€A1)\nÏ‚¨‚ßÆâ‚Žó‚€‚¸„Ì‚ÄÇ₎æóÀâ€Â\n 007€ƒ“ƒ¥ƒ²Òƒš»ÏÓÁãèã܂ٸƒŽÂÌ\nÁã€ÂŽ€Ñ€ø€»€ãóƒ’ôÉ004Òƒò΂ŽÏÓ\nÎàλ߼Ï΀Â\n Èã¿àƒø‚ˆ‚΂ÏÒ„ „¡¸„±´ÌÀÌÁã€Â\nÈãÏÓ»»„Í»‚¡æ»ÌÑ€Â\n", + " 18‚ÓÏŒ€Û€Ì€Ø€Ê€×Ö‚ð¿´ÌÑ€Â\n ‚€È€»€ðƒ€ƒö„΄ÏÒ€ú€î€Ï€à€Ê€×΄и\n‚Ü»„Ñ¿øÌ€Â‚ÏÒ‚ÕÏ‚àÉåá€Ö€Ë€Ï’\n€ë€Å€Ñ€ó€»Òƒ™ó€åƒøÓ„¯ËÛ‚ö¼€Â\n\nôÃÒ„Òð¿å¿àλƒ…ƒ†Ò„ÓÒ‚áó„Ôà»ó\n»â‚Ó€„ÕÒ„ÖáÈÈè€ú€ÏŠ€Ïó€Ô€ë€Æ€ÜÏ\n‚íìÃܴ̃¿‚ޏÅ̻⃡҂ŽÜ\n‚Ü»‚ÀÅÌÑ€Â\n", + "„ʄ˂Éσ“„ޏƒ¿„×Âß\n", + "ƒø‚ˆ‚΂ÏÒ„ „¡¸„±ã\n", + "‚ñ‚Œ DAT €â€»’¸‚º‚¡Çß\n", + "ƒø‚ˆ‚΂ÏÒ„™„À„…†³¸ƒŠ‚éÇß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "ƒ“„ŽÒ€Ý€Ê€ã‚â‚ã€Âƒ“„ÜØóºÍ6ƒ‘\n", + "€Ò€ø€ò€ë:€‡Ý˸†¹Ç ! €ˆ\n", + "‚Ý‚þ:€‡ƒ“„ÜØóºÍåí¿€ˆ\n", + "‚€‚‚æ‚ç: ‚ø‚…‚ Ò†“†”憗ÆçØÆ\n", + ">> €Ö€ø€ý€Ü€ß€Ï <<\n", + " €…€…€…2†ùƒ(2†ùƒ™)€…€…€…\n €Ö€ø€ý€Ü€ß€ÏÒ€ú€Ø€Ê€ã€Ú€Ñ€úó\n†Ú‚ÈÒ€ú€Ø€Ê€ãƒáʃéé€â€Ü€ãæ‚\nåãß¼ÍÅÌ»âàÅ»€Â\n €â€Ü€ãÓ€€»€ø‰€Ï€Ð€Ñ‚΂ς†‚‡\nÒƒáʃééÍ‚•å´Ì»âÍMI-6Ó\nÏà¹ó»â€Â\n ‚¹‚º‚áÒ€Ü€Ñæ€ƒ‰ƒŠÒƒáʃé\néæƒþ€ÞŒ€Ó€ã„½€ÕÒƒó‚õóÓλ\n‚ޏ‚Ç‚þÅÌ»â€Â\n", + " €Ú€Ñ€úÏ‚¹‚ºÅ€„†æƒáʃééà\nãß¼ÍÅÌ»âÒ¿¸‚‚ÅÌ‚Õ\nÄ»€ÂÜÅÈãæƒø‚ˆ‚΂ÏÎàõ€\n„™„À„…†³¸ƒŠ‚éŃáʃé鸂ᄶÄ\nÇÎÄ»€Â\n ƒ¹ƒºÎàõ€‚§‚¨¸‚¬‚­Æâ‚ŽÜ\nƒÔ‚ÅØÆ€Â\n 007€ÃãÓ‚¤‚¥„‰Î€Ý€Ö€Ì€÷\n€â€Æ„„ÃóÆ€Â\n", + " €ú€Ø€Ê€ã€Ú€Ñ€úÒ‚¨„ƄǸÙ↖\nငȀ؂÷σ“„ޏ‚¨‚߯ãõ‚«Ì\nÒ‚§‚¨¸‚¬‚­Æâ‚ŽæóÀȼð€Â\n„ʄ˂É(H4€C3€K2€A1)Ï‚¨‚ß\nÆãõOKìµ€Â\n ƒ“ƒ¥ƒ²Òƒš»ÏÓÁãèã܂ٸ\nƒŽÂä€ÂŽ€Ñ€ø€»€ãóƒ’ôÉ004\nÒƒò΂ŽÏÓÎàλ߼Ï΀Â\n Èã¿àƒø‚ˆ‚΂ÏÒ„ „¡¸„±´Ì\nÁã€Â»»„Í»‚¡æ»âÒó΀Â\n", + " 18‚ÓÏŒ€Û€Ì€Ø€Ê€×Ö‚ð¿´Ì€Â\n‚€È€»€ðƒ€ƒö„΄ÏÒ€ú€î€Ï€à€Ê€×\n΄и‚Ü»„Ñ¿øÌ€Â‚ÏÒ‚ÕÏ‚àÉ\nåá€Ö€Ë€Ï’€ë€Å€Ñ€ó€»Òƒ™ó€åƒø\nÓ„¯ËÛ‚ö¼€Â\n ôÃÒ„Òð¿å¿àλƒ…ƒ†Ò\n„ÓÒ‚áó„Ôà»óâ‚Ó€„ÕÒ„Öá\nÈÈè€ú€ÏŠ€Ïó€Ô€ë€Æ€ÜÏ‚íìÃ\ñܴ¿‚ޏÅ̻⃡҂ŽÜ‚Ü»\n‚ÀÅÌÑ€Â\n", + "„ʄ˂Éσ“„ޏƒ¿„×Âß\n", + "ƒø‚ˆ‚΂ÏÒ„ „¡¸„±ã\n", + "‚ñ‚Œ DAT €â€»’¸‚º‚¡Çß\n", + "ƒø‚ˆ‚΂ÏÒ„™„À„…†³¸ƒŠ‚éÇß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "\n", + "CPU „…†³\n", + "CPU „…†³\n", + "CPU „…†³\n", + "CPU „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "I/O „…†³\n", + "I/O „…†³\n", + "I/O „…†³\n", + "I/O „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "RSP „…†³\n", + "RSP „…†³\n", + "RSP „…†³\n", + "RSP „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "RDP „…†³\n", + "RDP „…†³\n", + "RDP „…†³\n", + "RDP „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-H4\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-H4)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-C3\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-C3)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-K2\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-K2)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "€Ò€ø€ò€ëÒ\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "€Ò€ø€ò€ëҀЀ߀ʀۀ̀؀»€Ü\n", + "€Ò€ø€ò€ëҀЀ߀ʀۀ̀؀»€Ü\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü¸‚¡Ï‚ºãÉ\n", + "€ú€Ø€Ê€ã €Ú€Ñ€ú €Ö€ø€ý€Ü€ß€Ï\n", + "€…€…€… 2†ùƒ™ €…€…€…\n", + "€ÏŠæ‚¾Êùð’€ö€Ü€à€Ê€×ƒ“„ŽÒ\n‚Ó†–‚Þ‚ßæ‡Ç„Š‚õÅÌÅØ´É !!!\n", + NULL +}; diff --git a/assets/obseg/text/j/LtitleJ.c b/assets/obseg/text/j/LtitleJ.c new file mode 100644 index 0000000..7458153 --- /dev/null +++ b/assets/obseg/text/j/LtitleJ.c @@ -0,0 +1,308 @@ +#include "game/lvl_text.h" + +struct stringentry LtitleJ[] = { + "‚Ó‚©", + "ƒ‘", + "ƒÂ", + "", + "€Ü€ß€»€ã\n", + "… Ò“€»‚\n", + "ƒ™Ò“€»‚\n", + "TWYCROSS BOARD OF GAME CLASSIFICATION\n", + "This is to certify\n", + "(c) 1997 Nintendo/Rare\n", + "(c) 1962, 1995 Danjaq, LLC. &\n", + "U.A.C. All Rights Reserved\n", + "(c) 1997 Eon Productions\n", + "Ltd. & Mac B. Inc.\n", + "Suitable only for 1-4 persons\n", + "PRESIDENT\n", + "VICE\n", + "James Bond theme by Monty Norman.\n", + "Used by permission of EMI Unart Catalog Inc.\n", + "€Ü€Ñ", + "…˜ƒ´€Ü€Ñ", + "<00Agent>", + "007", + "€ë€Å€Ñ€ø„Ä…ä€À\n", + "‚Ãá„ÄÅ\n", + "‚Ò‚\n", + "€ï€Ê€Û€Í€Ï ", + "€Ù‘€»\n", + "„Ä…ä\n", + "€ï€Ê€Û€Í€Ï†½†¾\n", + "‚±„‘’€ù€Ñ\n", + "¾ƒ°ÅÙ€ò€»Š\n", + ":‚€È€»€ðƒ €ÏŠ\n", + "€ï€Ê€Û€Í€Ï ", + "€»€ã ", + "‚½†¿ƒ•:\n", + "€Ü€Ñ\n", + "…˜ƒ´€Ü€Ñ\n", + "<00Agent>\n", + "007\n", + "…˜†À€Ô’€Û€Í€Ï:\n", + "„Ҁܑ€»Š\n", + "„Ò‚œ€Õ\n", + "„ÒƒåÄ\n", + "„Òƒ´‚á†Á\n", + "‚¼‚†–", + "5ƒ‘‚©", + "10ƒ‘‚©", + "20ƒ‘‚©", + "5”€Ñ€Ï€ã‚Å‚Ã", + "10”€Ñ€Ï€ã‚Å‚Ã", + "20”€Ñ€Ï€ã‚Å‚Ã", + "‚˜À…ªá„‘", + "‚І°‚±„‘", + "007Ӏ僕…¤Ð", + "€÷Œ€Ï€þ€…‰€Ñ€ö€Ñ€á(€ë€ö€Ê€þ„‘)", + "†Â„“‚׸‚¾Ë†Ã", + "„ÄÄãÉ€ö€Ñ€Ý€Ï€Ü", + "€à€»€ð„‘:2‚±2", + "€à€»€ð„‘:3‚±1", + "€à€»€ð„‘:2‚±1", + "‚œ€Õ €»10\n(…Æ…é)", + "‚œ€Õ €»4\n(Ž€â€ö€Ï)", + "‚œ€Õ €»3\n(Ž€â€ö€Ï)", + "‚œ€Õ €»2\n(Ž€â€ö€Ï)", + "‚œ€Õ €»1\n(Ž€â€ö€Ï)", + "‚œ€Õ +0\n(†Ä‚Ð)", + "‚œ€Õ +1\n(†Å†Æ)", + "‚œ€Õ +2\n(†Å†Æ)", + "‚œ€Õ +3\n(†Å†Æ)", + "‚œ€Õ +4\n(†Å†Æ)", + "‚œ€Õ +10\n(†Å‚–‚ )", + "†Ç…• OFF, …æ‚õ†Ç…• OFF", + "†Ç…• ON, …æ‚õ†Ç…• OFF", + "†Ç…• OFF, …æ‚õ†Ç…• ON", + "†Ç…• ON, …æ‚õ†Ç…• ON", + "‚±„‘’€ù€Ñ €Ô’€Û€Í€Ï:\n", + "’€ù€Ñ€ó€»:\n", + "€Û€ä€÷€Ô:\n", + "€Ü€â€»‚:\n", + "€ø€»€ø‚¨„Ÿ:\n", + "†Ž‚‡:\n", + "€Ö€Ë€ö€×€ß€»:\n", + "€é€Ï‰€Æ€Ö€Ë€Ê’:\n", + "†Ç…•:\n", + "€Ö€Ë€ö€×€ß€»†½†¾", + "€é€Ï‰€Æ€Ö€Ë€Ê’†½†¾:", + "€Û€ä€÷€Ô:\n", + "€à€»€ð†È„ÿ", + "€ù€ÊŠ€…€à€»€ð", + "€ø€»€…€à€»€ð", + "‚€‚‚â‚ã\n", + "‚€‚‚æ‚ç\n", + "ƒ¹†É‚€‚:\n", + "€Ü€â€»‚‚‚‚ƒ:\n", + "\"M\"Ò‚®‚¯:\n", + "\"Q\"Ò…à„æ:\n", + "€î€ç€»“€å€»:\n", + "€ù”€»€ã:\n", + "‚€‚……:\n", + " ‚€‚„Ì‚‚á …¤…ò\n", + " ‚€‚‚á„¶\n", + " ‚€‚‚â‚ã\n", + " ‚€‚‚æ‚ç\n", + "……:\n", + "‚Ó‚©:\n", + "ƒ´‚á†Á:\n", + "€»…çßÁ‚Ì´É†Ž‚‡:\n", + "†Ê€Û€Í€Ê€ã„È:\n", + "†Ë‚£€ê€Ê€ã:\n", + "†Ì‚œ€ê€Ê€ã:\n", + "‚¡„€ê€Ê€ã:\n", + "ÈÒƒõ:\n", + "†¹ÅɆʄÈ:\n", + "¾ƒ°ÅÙ€ò€»Š:\n", + "ON\n", + "OFF\n", + "€ï€Ê€Û€Í€Ï†½†¾(¾ƒ°ÅÙ€ò€»Š)", + "€Ù€Ï€ã€ú€»€ö€Ù€ç€×€ß 1 πـπã€ú€»€öæÄŃûØãÌ»ØÇ¹", + "„™„š¸ƒÄ´Ì€Ù€Ï€ã€ú€»€ö¸ÄŃû¹óÁðÄ»", + "€Ð€»€Õ€Ï€ÿ€ø", + "†€ð", + "‚„‚…‚ˆ‚‰", + "ƒÍ‚À", + "€Ýÿ€È€ø€ä€ó", + "†õ„Ï", + "ƒè‚Õ„…ƒè", + "€Ö€ø€ý€Ü€ß€Ï", + "€ú€Ø€Ê€ã €Ú€Ñ€ú", + "€Ú€Ñ€ú", + "€ò€Ï€â€…€Õ€ø€ú", + "„݄ބß", + " St.“€â€ø€ø€þ", + "…Î…Ï„ã…Ð", + "…Î…Ï„ã…Ð", + "‚²‚´„ª„”", + "‚²‚´„ª„”", + "†’†‰ƒè", + "†˜", + "‚²‚´†¡†Š", + "€Ö€Ì€»‹", + "‚€Ë€Ï€þ€ø", + "€ó€æ€Ü‚È‚Œ„…ƒè", + "‚È‚Œ„…ƒè", + "”€Ï’‚§‚¨", + "”€Ï’‚§‚¨", + "€Ð€Ï€â€ä‚§‚¨", + "€Ð€Ï€â€ä", + "€â€Ô€â€Æ€û€Õ€Ï", + "€Ð€Ü€â€Õ†Ð„÷", + "€Ð€Ü€â€Õ", + "€Ó‚’€ã", + "€Ó€ø€…€Ú€ê€ö†Ñ†Ò", + "€Ó‚’€ã", + "€ö€Ï†€ð", + "€ö€Ï†€ð", + "†ö†÷", + "†ö†÷", + "†Ð„÷", + "†Ð„÷", + "„Ç„ª†ø", + "„Ç„ª†ø", + "†Î†Ï", + "†Î†Ï", + "‚„‚…‚ˆ‚‰", + "‚„‚…‚ˆ‚‰", + "€Ýÿ€È€ø€ä€óƒè‚Õ„…ƒè", + "ƒè‚Õ„…ƒè", + "‚²‚´„ª„”", + "‚²‚´„ª„”", + "”€Ï’‚§‚¨", + "”€Ï’‚§‚¨", + "€Ó‚’€ã†Ñ†Ò", + "€Ó‚’€ã", + "Citadel", + "CITADEL", + "dest", + "dest", + "stat", + "stat", + "crad", + "cradle", + "azt", + "azt", + "€ÏŠ", + "€ï€Û€Ì€Ö€Ï", + "€÷€Ü", + "€Ò€ø€ò€ë", + "€ã€ùÿ€È€ø€ó€Ï", + "ÿ€Å€ù€Ï€â€Æ€Ï", + "„€å€Ð", + "€ä€ß€»€÷€Ð", + "€Ú€ï‰€Æ", + "‚€Í€»ƒ", + "€ñ€Ñ‰€»", + "€Ô€ÊŠ‚€Í€Ê", + "Rosika", + "Karl", + "Martin", + "Mark", + "Dave", + "Duncan", + "B", + "Steve E", + "Grant", + "Graeme", + "Ken", + "Alan", + "Pete", + "Shaun", + "Dwayne", + "Des", + "Chris", + "Lee", + "Neil", + "Jim", + "Robin", + "Steve H", + "Terrorist", + "Biker", + "Joel", + "Scott", + "Joe", + "Sally", + "Marion", + "Mandy", + "Vivien", + "\n", + "ÀÀ‚ÀƒÀ„\n", + "À…À†À‡ÀÀ‚ÀƒÀ„\n", + "ÀˆÀ‰ÀŠÀ‰À‹ÀŒ\n", + "ÀÀŽÀ‹ÀŒ\n", + "ÀÀÀ‘\n", + "À“À”À•À–Àà À—À‡À˜", + "À™ÀšÀ•À›Àœ ÀÀŸÀžÀ À¡À¢\n", + "ÀÀÀ’\n", + "ÀœÀ£À¤À¥ À„À£À¡À”À¦À§À‡\n", + "À¨À©ÀªÀ«À§À¬Àƒ\n", + "À­À®Àœ À¯À™À„À¤À°\n", + "À±À²\n", + "ÀœÀ•À³À•À´Àµ À¶À¦À·À¸\n", + "À—À›Àƒ À¹À›ÀÀ”À‡Àº\n", + "À»À¼À½À¾À¿ÀÀÀÁ\n", + "À¡À¢À£À‡ÀÂÀµÀ‡ ÀÃÀºÀ¸ÀƒÀÀ•\n", + "ÀÄÀÅÀÆÀÇ\n", + "À´ÀŸÀ„À› ÀŸÀÀÈÀÀ‡\n", + "À…À†À´À•\n", + "À“ÀžÀ•ÀÃ\n", + "À¯À¤À˜À“ÀžÀ¤ÀÉ\n", + "ÀÊÀŸÀ´Àµ\n", + "ÀÍÀÎÀÏÀÐ\n", + "ÀÊÀ‡À¥À„ÀÑÀÒÀÂÀ¦ÀÉÀ¦À¹ÀÕ\n", + "ÀÖÀÀœÀ²À×ÀÕ\n", + "ÀÖÀÀœÀ²ÀÕ\n", + "À§À¬ÀƒÀØÀ²ÀÕ\n", + "À§À¬ÀƒÀÀŽÀÏÀÐ\n", + "ÀÖÀÀœÀ²ÀÙÀÚÀÛ\n", + "ÀØÀ²À±ÀÕ\n", + "ÀÀÜÀ›ÀœÀÓÀÔÀÐ\n", + "ÀÝÀÞÀÀßÀÐ\n", + "ÀÀÜÀ›ÀœÀÀŽÀÏÀÐ\n", + "À–À•À‡À£À•À³À•ÀÀàÀÏÀÐ\n", + "ÀáÀ›ÀºÀ°ÀšÀ•ÀâÀãÀä\n", + "ÀåÀæÀç\n", + "ÀèÀé\n", + "€Ñ€»‚€»:\n", + "€è€»€î€ø:\n", + "€é€»Š:\n", + "€Ü“€Û€Ë€ø:\n", + "„Ç„ª†ø(ƒè‚ÕÒÙ)", + "„Ç„ª†ø(‚Õ)", + "„Ç„ª†ø(€ñ€Ñ€Ï€ë€ú€ÐÒÙ)", + "„Ç„ª†ø(ƒé)", + "ހ܀ã€ß€Ñ€ð:", + "„Û‡›€ß€Ñ€ð:", + "†óÅ» \"¾ƒ°ÅÙ\" ", + "¾ƒ°ÅÙ‚±„‘\n", + "€ß€Ñ’ 1-1\n", + "€ß€Ñ’ 1-2\n", + "€ß€Ñ’ 1-3\n", + "€ß€Ñ’ 1-4\n", + "€ß€Ñ’ 2-1\n", + "€ß€Ñ’ 2-2\n", + "€ß€Ñ’ 2-3\n", + "€ß€Ñ’ 2-4\n", + "„Ù„Š‚¨„Ÿ\n", + "„Ù„Š‚¨„Ÿ:\n", + "€ú€Û€Ð‚²‚†\n", + "€ú€Û€Ð‚²†Ö‚†\n", + "‚ø‚…‚ \n", + "€ú€Û€Ð‚²†Ø‚¯…†\n", + "€ó€æ€Ü†×‚²‚†\n", + "†×‚²„€‚†\n", + "€ì€÷€Ù’€ß€»„ن܃¶\n", + "€Ú€Ï€×€ã€…“€â€ø€ø€þ‚†\n", + "†’†Œ\n", + "€ÛŽ€÷€Ð‚Ý…–‚³\n", + "†Ù†Ú…˜†Û‚³\n", + "€ÛŽ€÷€Ð…˜†À‚£‚³\n", + "‚Œ†Õ‚£‚³\n", + "€ó€æ€Ü…˜†À‚£‚³\n", + "€ð€»€Ï€ù€»€Õ€»…˜…™‚£‚³\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/j/LtraJ.c b/assets/obseg/text/j/LtraJ.c new file mode 100644 index 0000000..4c472c5 --- /dev/null +++ b/assets/obseg/text/j/LtraJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LtraJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ò€ì€ÊŠ\n€Ð€ù€Ê€×€…€ã€ùÿ€È€ø€ó€Ï(…Ù006)Ó\n€ä€ß€»€÷€Ð¸ƒø„çÏ‚ÃကҀø€ò€ëàÍ‚²‚´†¡†Š\nσçáƒû¹ð€Â\n", + " …ă™Ï܃ø„ç„è‚À„Š„‘󅆩΅¿‚©¸‚æ´Ì\n»ØÆ€Â\n …¦ƒø„‰Î‡À‚ÆÓ‚ÿ〆ðƒÜ¸…·´Ì‚‚õÏ\n†ª´Ì‚ÕÄ»€Â007€Â\n", + " 007€Â‚Ø‚·Î„Š…¡ìµß€Â†«†Š…ëÒ\n€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Æãõ€„œƒƒ€Û€Ü€â€ðæ\n„Š‚õÅ€†¡†ŠÓ„µ„¶ÆâÓíìµ€Â\n", + " ‚€È€»€ðƒ€ØÉºÒ†‚€À\nÃáλåÑ€Â\n", + "€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸„è‚ÀÇß\n", + "€ó€æ€Ü‚È‚Œ„…ƒèÒ†ë‚߸‚‚Çß\n", + "€÷€ÜҀ܀û€»Š¸ƒ€ƒÇß\n", + "†¡†Š¿àƒÍ‚ÀÇß\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Èã…ăéƒìòÁÎ߀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ô¼ÅÉ ! ‚€È€»€ðƒ€Â\n‚õÂλҿ»€À ¿¿´Ìû߀€ˆ\n", + "€ÏŠ:€‡‚óæ‚Åð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ£Ó2Ëð€Âô´Ê¸‚Ãâ€À\nƒ…¿€‚€‚¿€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ±Ê„ÛÓλî€Â‚€È€»€ðƒ€Â€ˆ\n", + "„€å€Ð:€‡‚ï´Ì€€Ð€ù€Ê€× !\nêÛ¹ÎÄ»€Â„ŒÉãÌÅØ´É...€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡„•ฃÁÇ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ß¼ÃÈ‚€È€»€ðƒ€Â\nغ‚áÏ‚ºáÉØ½€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Ü¼‚üéâËÜá¿»€À\nȼƒé‚¡Á»¿¹ß€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚üéàã¹ß€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡¾Ø½Òƒ´ÜºÍ1ƒ‘¿...€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€Ýÿ€È€ø€ä€óÒ„…ƒèó»´Å·\nð´É€÷€ÜÒ€ë€Å€Ñ€øÏƒ«‚ºÆãõ€ºÒ2ƒø\nÒ‚À‚Åæå¿â¿ÜÅãλ€Â…¥øâå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡å¿´Éå€Â€Ö€Ì€»‹ß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚ÍҀ܀û€»Š¸\nƒ€ƒÆâ‚Ó‚©æÜ¼…âźãõ............€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‘¿´Éå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ ƒ‰‚Áå ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®»ï€Â007 ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡¼Ø»åÑ ! €Â‚€È€»€ðƒ€Â\nƒ¡ÒìµØ¸ÆâÒæ€…€…€…€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ãã쵯€ºÒ2ƒøÒ\n‚À‚ÅÓ‚‚óÀλå ! €ˆ\n", + "‚€‚‚æ‚ç: €ä€ß€»€÷€Ð…¤…ò\n", + ">> ‚²‚´†¡†Š <<\n", + " „ë„ì„í„î<€ó€æ€Ü>Ò€ì€ÊŠ\n€Ð€ù€Ê€×€…€ã€ùÿ€È€ø€ó€Ï\n(…Ù006)Ó€ä€ß€»€÷€Ð¸ƒø„çÏ\n‚ÃကҀø€ò€ëàÍ‚²‚´†¡†ŠÏ\nƒçáƒû¹ð€Â\n", + " …ă™Ï܃ø„ç„è‚À„Š„‘󅆩Î\n…¿‚©¸‚æ´Ì»ØÆ€Â\n …¦ƒø„‰Î‡À‚ÆÓ‚ÿ〆ðƒÜ¸…·´\nÌ‚‚õφª´Ì‚ÕÄ»€Â007€Â\n", + " 007€Â‚Ø‚·Î„Š…¡ìµß€Â\n†«†Š…ëÒ€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­\nÆãõ€„œƒƒ€Û€Ü€â€ð愊‚õÅ€\n†¡†ŠÓ„µ„¶ÆâÓíìµ€Â\n", + " ‚€È€»€ðƒ€ØÉºÒ†‚€À\nÃáλåÑ€Â\n", + "€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸„è‚ÀÇß\n", + "€ó€æ€Ü‚È‚Œ„…ƒèÒ†ë‚߸‚‚Çß\n", + "€÷€ÜҀ܀û€»Š¸ƒ€ƒÇß\n", + "†¡†Š¿àƒÍ‚ÀÇß\n", + "\n", + "Š€ÐÒƒæ\n", + "†¡†ŠÒŠ€ÐÒƒæ\n", + "†¡†ŠÒŠ€ÐÒƒæ\n", + "Š€Ð҃渂¡Ï‚ºãÉ\n", + "‚²‚´†¡†Š ‡¹Ï‚ð¿´Ì„ø‚‚á\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LarecJ.c b/assets/obseg/text/u/LarecJ.c new file mode 100644 index 0000000..a99f584 --- /dev/null +++ b/assets/obseg/text/u/LarecJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LarecJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ò…À…žƒèæ€Ö€Ì€»‹Ò\n‚€Ë€Ï€þ€øÒƒè‚Õς҅‡Æâ‚Žæ‚‚ÄãÉ€Â\n", + " 007€»ß»ßóÆÑ€ÂÍÏ¿Á‚¼‚Žó»Ì\nÁðÄ»€Â\n\n €ä€ß€»€÷€Ðæ€ó€æ€ÜҀـϑ€Ì€»€ß¸€é€Ê€Ö\n€Ï€þÅ̻₩€†°Ï‚̓…¸‚µ´ÌºéÌ\nÁðÄ»€Â\n †‡“¸„è¼€Õ€ýӂ̓…æ…›´Ì»âÒóÆ€Â\n", + " 007 „…ƒè‚“ó‚ÍàÒ‰€»€ßŽ€»€Ü¸„Ü„¯Å\n‚ƂǸ„Ä…äÅÌÁã€Â€ó€æ€ÜÒ‚Š‚‹‚Æ‚ÇÓ»ÁË\n¿Ò€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÏ…·‡¼ÄãÌ»â\nìµä¼€Â\n ÈÒ‚Æ‚ÇӀ󀿀ÜÏÍ´ÌÎÁÌÓÎàλ\nÜÒιð€Â\n ‚óÎà»»\"„Ä…ä„§…£\"¸ƒÕ´Ì»âðä¼€À\n", + " ‚€È€»€ðƒ€Â\nƒ¡Ü€Ù€Ï‘€Ì€»€ßÒ„Ù„Šèà»óÀâÒ߀Â\n", + "€ä€ß€»€÷€Ð¸‚µã\n", + "€€»€ø‰€Ï€Ð€Ñ‚΂ϸ‚ë„„Ï\n", + "‚«ÌÒ€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÒ‚¬‚­\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€‚Ù¸ËẦ€ˆ\n", + "€ÏŠ:€‡€ä€ß€»€÷€Ð ÃÃó‚ïÌ ! \nÊ·´Íƒò„À¸„¯ÌÁâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚º€úæ€Ý€Ö€Ì€÷€â€Æ€…€Ù€Ï\n‘€Ì€»€ßÏß´Ì€ú€Ê€×ÄãÌ»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€»Ë‚ä»Éå ! ºÎÉÓ\n€Ù€Ï€ã€ú€»€ø‚ÉÖÍ‚ð¿´Ì€Âƒ¡ÓÃÃó\n‚Àƒ¼âðÂÒÃ͸ÅÌÙâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ÄÆæðå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒö‡™‡š€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€Å´¿áÅÌ€õ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒƒÞ„Œ„Û‡›æ\n€ú€ÏŠ€ÏÏ„ŸÛàÌ»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒƒÞ„Œ‚„›\n€Ù€Ï€ã€ú€»€ø¸„ªÀ„«½ÌÙâå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ‰ »Áå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ý´É ! €€»€ø‰€Ï€Ð€Ñ\nÒ‡¡ƒ£æíãÉå€Â€ˆ\n", + "€ÏŠ:€‡€ä€ß€»€÷€Ð ƒèƒéó‚ÛÊ‚ö¾¼ !\n…¾Ó€ã€ùÿ€È€ø€ó€ÏÒƒ¸„ö¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚Ù¸ËÂÌ ‚€È€»€ðƒ !\nƒéó‚ï´Ì»âå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒö‚Ù‡¢‡‚ºØó€€»€ø‰€Ï€Ð\n€ÑÒ‡½ƒ•æƒé‡¾ÅÎÂãõ»»¹ðÂô€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€€»€ø‰€Ï€Ð€ÑÒ‡¡ƒ£„ôƒÐ¸\n5ƒ•‡¿ƒŸóÀÉà€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ¡æ€é€Ê€Ö€Ï€þ\nÅ̻₩‡»…÷ÅÌ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€Ü¼…âŃܿÏ\nóÀλҀ¼âÄÁÌ‚ê‚áóÀλå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€ƒ¡...€ˆ\n", + "€÷€Ü:€‡„ŒÉλó ! €ã€ùÿ€È€ø€ó€ÏÏ\n…ƒÄã̻ɹð€Â€ˆ\n", + "€÷€Ü:€‡„¸Ó‚ë…¤…áð ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®»ï ‚€È€»€ðƒ ! €ˆ\n", + "€÷€Ü:€‡ºÊµ€» ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾ÙêÍÑ€ÂóÜÃã¿à\nô¼Ý´Ì€é€Ê€Ö€Ï€þÆâÒ¿Åà€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡À‚–Æâå€Â»ØÒ怀»€ø\n‰€Ï€Ð€Ñ‚„›€Ù€Ï€ã€ú€»€øÒ„ªÀ„«½æóÀ\nâ‚ԃҀـϑ€Ì€»€ßß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ¡€€Ó€ùŽ€»€ßσ¾â€Âõ¿\n…ÍçæÆ¹ðàƒ¾´ÌÀÌÑ€ÂØºƒ¡æØð\n»ÉàÒ…ÚðÂô€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ºÎÉæ€÷€ÜÏÅÉÃÍ\n‚«‚£„¯Éå€ÂÔô»å߀€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚ÍÓÉðÒ’€ú€þ€ö€î€»ß !\nƒÁÄÎÁÉ´Ìß¿´ÉìµÎ»€Â€ˆ\n", + "€÷€Ü:€‡…¾ÒÃÍÎà‚ÙÏÅλó€Â\n€Ù€Ï‘€Ì€»€ßæºãõ»»¿à€Â€ˆ\n", + "€ä€ß€»€÷€Ð …¤…ò\n", + ">> ‚È‚Œ„…ƒè <<\n", + " „ë„ì„í„î€ó€æ€ÜÒ…À…žƒèæ\n€Ö€Ì€»‹Ò‚€Ë€Ï€þ€øÒƒè‚Õς҅‡\nÆâ‚Žæ‚‚ÄãÉ€Â\n", + " 007€»ß»ßóÆÑ€Â\nÍÏ¿Á‚¼‚Žó»ÌÁðÄ»€Â\n\n €ä€ß€»€÷€Ðæ\n€ó€æ€ÜҀـϑ€Ì€»€ß¸€é€Ê€Ö€Ï€þ\nÅ̻₩€†°Ï‚̓…¸‚µ´Ìºé\nÌÁðÄ»€Â\n †‡“¸„è¼€Õ€ýӂ̓…æ…›´Ì\n»âÒóÆ€Â\n", + " „…ƒè‚“ó‚ÍàÒ‰€»€ßŽ€»€Ü¸\n„Ü„¯Å‚ƂǸ„Ä…äÅÌÁã€Â€ó€æ€Ü\nÒ‚Š‚‹‚Æ‚ÇÓ€»Á˿Ҁڀ»‹€»\n€Ù€Ï‘€Ì€»€ßÏ…·‡¼ÄãÌ»â\nìµä¼€Â\n ÈÒ‚Æ‚ÇӀ󀿀ÜÏÍ´ÌÎÁÌ\nÓÎàλÜÒιð€Â\n ‚óÎà»»\"„Ä…ä„§…£\"¸ƒÕ´Ì\n»âðä¼€À\n", + " ‚€È€»€ðƒ€Â\nƒ¡Ü€Ù€Ï‘€Ì€»€ßÒ„Ù„Šèà»\nóÀâÒ߀Â\n", + "€ä€ß€»€÷€Ð¸‚µã\n", + "€€»€ø‰€Ï€Ð€Ñ‚΂ϸ‚ë„„Ï\n", + "‚«ÌÒ€Ú€»‹€»€Ù€Ï‘€Ì€»€ßÒ‚¬‚­\n", + "€ó€æ€Ü‚È‚Œ„…ƒè €Ö€Ì€»‹\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LarkJ.c b/assets/obseg/text/u/LarkJ.c new file mode 100644 index 0000000..2ba7fe3 --- /dev/null +++ b/assets/obseg/text/u/LarkJ.c @@ -0,0 +1,76 @@ +#include "game/lvl_text.h" + +struct stringentry LarkJ[] = { + " ‚„‚…‚†‚‡‚ˆ‚‰Ï‚º´ÉàÆèÏ‚„‚…€ß€Ï€×‚É\nÖ͂𿻀ÈÅÌ€ñ€Ñ€Ï€ß€Ï€×σ“„ޏ\n‚¨‚ßÇÑõÎàλ€Â\n\n ‚€‚‚ဂ²‚Žƒ¦…Ä…ŸÒ‚¬‚­Ó†Ú€ÕÄÂâß¼Ï\nÍÒ„é„êæ€…Ç…È¿à‚ÀÌ»â€Â\n‚ø‚…‚ ÎôÏ܆“†”¸‚ÀÄλ߼Ï......\n", + " ƒ‰ƒŠÓ006Í€»‚ôÏ‚‚õÅÌÜà»ØÆ€Â\n‚„‚…€ß€Ï€×‚Éæ‚ïÊ‚öåÇ‚‰‚÷óÆ€Â\n‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚© <Š€»€×> Í\n‚ú‚ûÅ€ƒ·Á‚üéâ߼ςý‚þÆâÃÍ€Â\n ‚„‚…€ß€Ï€×‚ÉҀ݀ր̀÷€â€ÆŠ€ÐÒƒ€ƒ‚‡¸\n‚Í¿àƒ‚Â‚Ãá€006Ò‚ï´Ì»â‚„‚…\n€ß€Ï€×‚ÉÖ̓ƒçÎÄ»€Â\n ƒ„Å»ƒ…ƒ†Ý€Õ‚€èÓÈÃ¿à€»ƒ‡€î€Ñ€øÜ\nƒˆãÌ»ØÆ€Â007€ÄÆæÒºÎÉ܃‰ƒŠ\nÓ‚€‚Ï‚ê‚áóÀâóÅ·¼€Â\n", + " €ÏŠ€ƒ‹‚’σŒ»ÌÁã€Â5ËÒƒ“„ޏƒé‚¡\nπ݀ʀãÅλ̀10…¦Ò€ß€Ï€×¸ÃåÇλ\nï€ÂÈãÍ€ƒƒ‘ƒˆãÌ¿àƒ’ƒ“ÄÇâ¹ð€Â\nÄÜλ͂ó܃”ðâØìµ€Â\n Èã¿à€»ƒ•ó»»¿àƒ–ƒ—ƒ€ƒ‚‡¸‚­Äí\n‚¾´Ì‡Å´ÌÀÌÁã€Â»ËÜÙɻςÃá\nƒš»æƒ›»Íƒœ‚–΂ÓσσžÉ¹ï€Â\n 007€ƒŸƒ »´Ìƒ¡Ó‚óæåë̓¢ƒ£ƒ¤¸\nÃåÅÌ»â߼ςܽâÒðæ€Â\n", + " È´ÊÒ‚ˆ‚‰Ò‚„‚…ƒ¥ƒ¦Ó€ºÎÉ̓§ƒ†æ\n‚ö¼¿ÜÅãλå€Â\n\n ‚€È€»€ðƒ€‚¼‚ޏƒ¨´Ì»âå߀Â\n", + "ƒ©ƒª‚÷€Ó€÷€Ðσ«‚ºÇß\n", + "‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚©Í‚ú‚û\n", + "006Í‚ö…±Çß\n", + "‚„‚…€ß€Ï€×¸‚â‚«Ï‚¬‚­Çß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®¿´É΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ¯‚¤ÒÉÛÏ ! €ˆ\n", + "€ÏŠ:€‡ƒìÁ€ƒ¯‚¤ÒÉÛπ€ˆ\n", + "€ÏŠ:€‡ÃÃҀ߀π׸‚«‚£ÃåÇõ\n»»¹ð΀ƒ°ƒ±ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ²‚ŽÒƒ³ƒ‘Ó‚Šð€Â€ˆ\n", + "€ÏŠ:€‡ºÍÒƒ³ƒ‘Ó€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚Šƒ´Ä€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Îîð‚€È€»€ðƒ€Â€ˆ\n", + "€ÏŠ:€‡Š€»€×ƒµƒ¶ ƒ·Á‚üéÌ‚ÕÄ»€Â€ˆ\n", + "Š€»€×ƒµƒ¶:€‡ÃҀ݀ր̀÷€â€ÆŠ€ÐÒ\nƒ–ƒ—ƒ€ƒ‚‡¸‚¾´Ì»Â€Âƒƒ¸ƒ¹ƒºÏÎâ\n¿ÜÅãλ€Â‚¼‚ޏƒ¨âï€Â€ˆ\n", + "€Ò€ø€ò€ë:€‡‚׸ƒ»ÌÌ€Þ´ÁáôÊÖ\nƒ¼»€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ½¼Î€Â€ß€Ï€×¸ƒ“‚¬Åä ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ¾´ÌÀÉÒ¿€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ÃÃóÆâøÀƒ¿‚Žæºâ€Â\n‚€È€»€ðƒ€‚€‚¸‚Ò‚Åä ! €ˆ\n", + "€ÏŠ:€‡€Ð€ù€Ê€×€Ê·´Í\nÌÃí´ÌÅØ´É€Â€ˆ\n", + "€ÏŠ:€‡ÃÃσ¼âƒÀ‚áܼÆÃÅóƒÁà\nãâÍÃäð´É€Â€ˆ\n", + "€Ò€ø€ò€ë:€‡9€ˆ\n", + "€Ò€ø€ò€ë:€‡8€ˆ\n", + "€Ò€ø€ò€ë:€‡7€ˆ\n", + "€Ò€ø€ò€ë:€‡6€ˆ\n", + "€Ò€ø€ò€ë:€‡5€ˆ\n", + "€Ò€ø€ò€ë:€‡4€ˆ\n", + "€Ò€ø€ò€ë:€‡3€ˆ\n", + "€Ò€ø€ò€ë:€‡2€ˆ\n", + "€Ò€ø€ò€ë:€‡1...€ˆ\n", + "€Ò€ø€ò€ë:€‡1€ˆ\n", + "€Ò€ø€ò€ë:€‡1...‚͸ƒÁÇ ! €ˆ\n", + "€Ò€ø€ò€ë:€‡10ƒÂÝ \n", + "€ã€ùÿ€È€ø€ó€Ï:€‡È¼ð€€€»€ø‰€Ï€»€Ñ\nӃÃÄá‚ ð ! ‚€È€»€ðƒ€ƒÅƒÆÎܹð΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡»»ƒÇƒÈÏÁÉõã€Â€ˆ\n", + "€Ý€Ö€Ì€÷€â€ÆŠ€Ðƒ€ƒÉ\n", + "€ü€ÜƒÊãƒË‚À €Ó€÷€Ð¸ƒÌƒˆÅØÆ\n", + "€Ý€Ö€Ì€÷€â€Æ€»€…€Ù€»Š‚‡ƒ €ú€Ê€×ƒ€ƒÉ\n", + "‚€‚‚æ‚ç: ‚ø‚…‚ Ò†“†”憗ÆçØÆ\n", + ">> €Ð€»€Õ€Ï€ÿ€ø‚„‚…‚ˆ‚‰ <<\n", + " ‚„‚…‚†‚‡‚ˆ‚‰Ï‚º´ÉàÆèÏ‚„\n‚…€ß€Ï€×‚ÉÖ͂𿻀€ñ€Ñ€Ï€ß€Ï\n€×σ“„ޏ‚¨‚ßÇÑõÎàλ€Â\n\n ‚€‚‚ဂ²‚Žƒ¦…Ä…ŸÒ‚¬‚­Ó†Ú€Õ\nÄÂâß¼ÏÍÒ„é„êæ€…Ç…È¿à\n‚ÀÌ»â€Â‚ø‚…‚ ÎôÏ܆“†”¸\n‚ÀÄλ߼Ï......\n", + " ƒ‰ƒŠÓ 006 Í€»‚ôÏ‚‚õÅÌ\nÜà»ØÆ€Â‚„‚…€ß€Ï€×‚Éæ‚ïÊ‚ö\nåÇ‚‰‚÷óƀ‚ø‚…‚ Ï‚ù‚ÞÅÉ\n„ùƒ¸Ò…¿‚©Í‚ú‚ûÅ€ƒ·Á‚üéâß\n¼Ï‚ý‚þÆâÃÍ€Â\n ‚„‚…€ß€Ï€×‚ÉҀ݀ր̀÷€â€ÆŠ€Ð\nÒƒ€ƒ‚‡¸‚Í¿àƒ‚Â‚Ãá€006\nÒ‚ï´Ì»â‚„‚…€ß€Ï€×‚ÉÖ̓ƒç\nÎÄ»€Â\n", + " €ÏŠ€ƒ‹‚’σŒ»ÌÁã€Â5Ë\nÒƒ“„ޏƒé‚¡Ï€Ý€Ê€ãÅλ̀\n10…¦Ò€ß€Ï€×¸ÃåÇλï€Â\nÈãÍ€ƒƒ‘ƒˆãÌ¿àƒ’ƒ“ÄÇâ\n¹ð€ÂÄÜλ̓”ðâØìµ€Â\n Èã¿à€»ƒ•ó»»¿àƒ–ƒ—ƒ€ƒ\n‚‡¸‚­Ä킾´Ì‡Å´ÌÀÌÁã€Â\n»ËÜÒ߼ςÃლ»æƒ›»Í\nƒœ‚–΂ÓσσžÉ¹ï€Â\n", + " È´ÊÒ‚ˆ‚‰Ò‚„‚…ƒ¥ƒ¦Ó€ºÎ\nÉ̓§ƒ†æ‚ö¼¿ÜÅãλå€Â\n ‚€È€»€ðƒ€Â\n‚¼‚ޏƒ¨´Ì»âå߀Â\n", + "ƒ©ƒª‚÷€Ó€÷€Ðσ«‚ºÇß\n", + "‚ø‚…‚ Ï‚ù‚ÞÅÉ„ùƒ¸Ò…¿‚©Í‚ú‚û\n", + "006Í‚ö…±Çß \n", + "‚„‚…€ß€Ï€×¸‚â‚«Ï‚¬‚­Çß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡\n", + "ƒ–ƒ—ƒ€ƒ‚‡¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A\n", + "€Ö€»€Õ€»Š A ¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B\n", + "€Ö€»€Õ€»Š B ¸‚¡Ï‚ºãÉ\n", + "\n", + "Š€ÐÓ€÷€ò€»€ã€ú€Ê€×ÄãÌ»ØÆ\n", + "€Ð€»€Õ€Ï€ÿ€ø‚„‚…‚†‚‡‚ˆ‚‰\n", + "…¿‚© <Š€»€×> Ó†¹ãÉ\n" +}; diff --git a/assets/obseg/text/u/LcradJ.c b/assets/obseg/text/u/LcradJ.c new file mode 100644 index 0000000..22b7553 --- /dev/null +++ b/assets/obseg/text/u/LcradJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LcradJ[] = { + " €ä€ß€»€÷€ÐÒ¾¿éó€€€»€ø‰€Ï€Ð€ÑÓ\n‚„›‚ë„„ÍÎဇ¡ƒ£¸Óíã̃ö‚Ù‡¢ÖÍ\n‚úƒìÅÌ»â€Â\n …ªâӀ󀿀ÜÒ…Û‚£€ã€ùÿ€È€ø€ó€ÏÍ€\n‚ÍÒ‰€Æ€ü€»ŠÉÊÒÙÒÓíóºâæ......\n", + " ºÎÉÏ…Ù006€€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸\nËÂäÍ»¼ÒÓ€€Ù€×ÎÃÍ¿ÜÅãØÇ¹€Â\nſŀÃãÓ‚€‚óÆ€Â\n „†‚ŽÏÜ…Òƒâ…ÕÁ‚±‡¥ÅÌ‚ÕÄ»€Â\n\n €‡ƒÁÅÒ€ö€Ñ€Ý€Ï€Ü€ˆ\n¸ºÎÉÓ‚¾´Ì»âÒóÆ€Â\nÈÒÃ͸‚ÿãíÏ€Â\n", + " ‚Ñìàãâ¿007€À ‚ÒӀЀπâ€äÏܼ\n€»Ë€€»€ø‰€Ï€Ð€ÑÒ‚„›‚Þ‚ßæº´ÉÒð€Â\n €ã€ùÿ€È€ø€ó€ÏæÆóπЀπâ€ä¸ƒ¬€Ý€Ê€ãÅ\n‚ÔƒÒƒÞ„Œƒ´‚¯¸‚ÀÅÉ¿ÜÅãλ€Â‡¦ƒƒ€Ð€Ï\n€â€ä€ì‚𿻀‚„›‚ނ߸‚¬‚­ÅÌÁã€Â\n\n ‚ÔƒÒ‚Ôƒó‚«Ì¸‚æ»ÉÁÓλ¿àÒ€Â\n", + " ‚€È€»€ðƒ€€Ð€Ï€â€ä¸‚õ¿ÆÃÍ\nÒóÀÉ‚ æ†‡“¸‡§‡¨Æâå€Â\n\n ƒ¡ÓºÎÉæ‚¼‚ŽÏ…Æ‚¤Ïƒ¾âØó\n„Ô‚–Å̇©â‚ŽæóÀλ€Â\n", + "€Ð€Ï€â€ä‚„›‚ނ߸‚¬‚­Çß\n", + "€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸ËÂß\n", + "€ã€ùÿ€È€ø€ó€ÏÓ€€Ð€Ï€â€ä‚„›‚ނ߸\n„Š‚õÄÇØÅÉ€Â\n", + "€Ð€Ï€â€äƒ¬€Ý€Ê€ãØóºÍ3ƒ‘\n", + "‚„›‚Þ‚ß‚¬‚è €Ð€Ï€â€ä„Š‚õ„µ„¶\n", + "€Ð€Ï€â€äƒ¬€Ý€Ê€ãØóºÍ15ƒÂ\n", + "‚€‚‚æ‚ç: €€»€ø‰€Ï€Ð€Ñƒ¬ƒó‚õ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚í…ó‚Ó‚©ð€‚€È€»€ðƒ€Â\nÃãæ‚ÔƒÒ€à€Ë€Ï€Üð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ±´Éܼ͂Îß ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€€Ð€Ï€â€ä\n¿à‡ªØó¾Ê䀆†ƒòÒ‡ªÖð ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€€»‚ôÏÝ´Ì\n»ÂÉÒπ¾ؽӃÿßჯ‚¤¸½à¹ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒÿßဂ€‚¿€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€…€ÏŠ€Â \nƒ…‡«‡¬‚ÕÒ‚ý‡€Â„¨¿Î»‡­‡®ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ô¼ÅÉ€Â\n…懯҂€Í€»€×Ó€À †…ƒâðä€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ô¼ÅÉ€ÂÈãØó¿ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ÅËû„•ð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â\n††ƒòσ±Ê„ÛÎô‚¼» ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â‚€‚¸‚â‚ã\nÄÇä€ÂÜÅóÀâÒÎàõ΀€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ€Â\n„¸Ó‚óßá„Óæ»»€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ¯‚¤ÒÉÛ¿€À€ˆ\n", + "€ÏŠ:€‡»Ý€…惑ÒÉÛð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡„ú‡°æ„’»Î€Â\n‚€È€»€ðƒ€Â“€»€Ü懱ÆçÉ¿€À€ˆ\n", + ">> €ö€ö€Ð€Ï€â€ä <<\n", + " €ä€ß€»€÷€ÐÒ¾¿éó€€€»€ø‰\n€Ï€Ð€ÑÓ‚„›‚ë„„ÍÎဇ¡ƒ£¸\nÓíã̃ö‚Ù‡¢ÖÍ‚úƒìÅÌ»â€Â\n …ªâӀ󀿀ÜÒ…Û‚£€ã€ùÿ€È€ø€ó\n€ÏÍ€‚ÍÒ‰€Æ€ü€»ŠÉÊÒÙÒ\nÓíóºâæ......\n", + " ºÎÉÏ…Ù006€€ã€ùÿ€È€ø€ó€Ï\nÍ„õ†»¸ËÂäÍ»¼ÒÓ€€Ù€×Î\nÃÍ¿ÜÅãØÇ¹€Â\nſŀÃãÓ‚€‚óƀ„†‚ŽÏÜ\n…Òƒâ…ÕÁ‚±‡¥ÅÌ‚ÕÄ»€Â\n\n €‡ƒÁÅÒ€ö€Ñ€Ý€Ï€Ü€ˆ\n¸ºÎÉÓ‚¾´Ì»âÒóÆ€Â\nÈÒÃ͸‚ÿãíÏ€Â\n", + " ‚Ñìàãâ¿007€À ‚ÒӀЀÏ\n€â€äÏܼ€»Ë€€»€ø‰€Ï€Ð€ÑÒ\n‚„›‚Þ‚ßæº´ÉÒð€Â\n €ã€ùÿ€È€ø€ó€ÏæÆóπЀπâ€ä\n¸ƒ¬€Ý€Ê€ãÅ€‚ÔƒÒƒÞ„Œƒ´‚¯¸‚À\nÅÉ¿ÜÅãλ€Â‡¦ƒƒ€Ð€Ï€â€ä€ì\n‚𿻀‚„›‚ނ߸‚¬‚­ÅÌÁã€Â\n\n ‚ÔƒÒ‚Ôƒó‚«Ì¸‚æ»ÉÁÓ\nλ¿àÒ€Â\n", + " ‚€È€»€ðƒ€€Ð€Ï€â€ä¸‚õ¿ÆÃ\nÍÒóÀÉ‚ æ†‡“¸‡§‡¨Æâå€Â\n\n ƒ¡ÓºÎÉæ‚¼‚ŽÏ…Æ‚¤Ïƒ¾â\nØó„Ô‚–Å̇©â‚ŽæóÀλ€Â\n", + "€Ð€Ï€â€ä‚„›‚ނ߸‚¬‚­Çß\n", + "€ã€ùÿ€È€ø€ó€ÏÍ„õ†»¸ËÂß\n", + "\n", + "€ó€æ€Ü‚È‚Œ„…ƒè€ö€ö€Ð€Ï€â€ä €Ö€Ì€»‹\n", + NULL +}; diff --git a/assets/obseg/text/u/LcrypJ.c b/assets/obseg/text/u/LcrypJ.c new file mode 100644 index 0000000..1dd2ae4 --- /dev/null +++ b/assets/obseg/text/u/LcrypJ.c @@ -0,0 +1,20 @@ +#include "game/lvl_text.h" + +struct stringentry LcrypJ[] = { + " €Ü€Õ€ö€î€Ï€üӀܴÍÜ…ÿâøÀƒ–ƒÁ‚ \nÍÅ̇‰¸…ªÅÌ»â€Â\n ‚Íæ‡Â‚´Å̻Ɇ„“‚×Ò‚„§Ó»Øðƒ€à\nÐØØÍδ̻â€Â\n", + " 007ƒö‚ùÎ‚Žæƒ’áØÅɀ„ùƒ¸Ó‹€ú€Ï€…\n€Ú€ñ‰€ÆÍ‡‰ƒçâÜÒ¿à€ñ€Ê€Ý€»‚¸ƒ‚Â\n‚ôÉÒóÆ€ÂȼóƺÎÉæ€é€Ñ€àó„‘´É\nºÒ€»Š€Ç€»‡„Ò‚Ì‚ ‹€ú€Ï€…€Ú€ñ‰€ÆóÆ€Â\n ‚Íӆ„“‚׸‚¡Ï‚ºãÉÍ‚ž†¢Å€ºÎÉÍ\nƒ ‚úƒ­´Ì…ÚæÅɻȼóÆ€Â\n ‚ïÊ‚ö»‚‰‚÷σ€Ó‚’€ã‡«Ò‡©â€Ó€ø€Ú€ê\n€ö†Ñ†Ò¸‚®„ŸÅÌÀØÅÉ€Â\n‚ÍÒ€û€äðÍ»¼ÃÍæ„ˆ„Ÿ‚Àƒ¼ØÆæ\n007 ºÎÉÎàƒçáýàãâÓíóÆ€Â\n", + " 007€†Â„“‚×ÓÍÌ܃å€ÕÎ†Ž‚‡ìµ€ÂÁã\nèã܂ٸËÂÌÁãÉØ½€Âìµæ€†Â„“‚×\nÎà‹€ú€Ï€…€Ú€ñ‰€ÆÍ„õ†»¸ËÂ₎æ‚Àƒ¼\nâìµä¼€Â\n", + " ѽ‚€È€»€ðƒ€\n€»Š€Ç€»‡„´Ì€í€Ï€ãς҅‡Æâܼ͂€À\n", + "†Â„“‚׸ƒŠ‚éÇß\n", + "‹€ú€Ï€…€Ú€ñ‰€Æ¸†¹Ç\n", + "‹€ú€Ï€…€Ú€ñ‰€Æ:€‡€é€€é€€é€€é...€ˆ\n", + ">> €Ó‚’€ã†Ñ†Ò <<\n", + " €Ü€Õ€ö€î€Ï€üÓÜ´ÍÜ…ÿâøÀ\nƒ–ƒÁ‚ ÍÅ̇‰¸…ªÅÌ»â€Â\n‚Íæ‡Â‚´Å̻Ɇ„“‚×Ò‚„§Ó»\nØðƒ€àÐØØÍδ̻â€Â\n", + " „ùƒ¸Ó‹€ú€Ï€…€Ú€ñ‰€ÆÍ‡‰ƒçâ\nÜÒ¿à€ñ€Ê€Ý€»‚¸ƒ‚‚ôÉÒ\nóƀºÎÉæ€é€Ñ€àó„‘´É€»\nŠ€Ç€»‡„Ò‚Ì‚ ‹€ú€Ï€…€Ú€ñ‰€Æó\nƀ‚Íӆ„“‚׸‚¡Ï‚ºãÉÍ‚ž†¢\nÅ€ºÎÉÍ…ÚæÅɻȼóÆ€Â\n ‚ïÊ‚ö»‚‰‚÷σ€Ó‚’€ã‡«Ò\n‡©â€Ó€ø€Ú€ê€ö†Ñ†Ò¸‚®„ŸÅÌÀØ\nÅɀ€û€äðÍ„ˆ„Ÿ‚Àƒ¼ØÆæ€º\nÎÉÎàƒçáýàãâÓíóÆ€Â\n", + " 007€†Â„“‚×ÓÍÌ܃å€ÕÎ†Ž‚‡\nìµ€ÂÁãèã܂ٸËÂÌÁãÉ\nؽ€Â\nìµæ€†Â„“‚×Îà‹€ú€Ï€…€Ú€ñ‰\n€ÆÍ„õ†»¸ËÂ₎æ‚Àƒ¼âìµä\n¼€Â\n", + " ѽ‚€È€»€ðƒ€\n€»Š€Ç€»‡„´Ì€í€Ï€ãς҅‡Æâ\nܼ͂€À\n", + "†Â„“‚׸ƒŠ‚éÇß\n", + "‹€ú€Ï€…€Ú€ñ‰€Æ¸†¹Ç\n", + "€Ó€ø€…€Ú€ê€ö†Ñ†Ò €Ó‚’€ã\n", + NULL +}; diff --git a/assets/obseg/text/u/LdamJ.c b/assets/obseg/text/u/LdamJ.c new file mode 100644 index 0000000..150520f --- /dev/null +++ b/assets/obseg/text/u/LdamJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LdamJ[] = { + " €…€…€…9†ùƒ™€…€…€…\n\n €Þ„²€…€Ð€»€Õ€Ï€ÿ€øÏºâ†€ðϾ»Ì\n‚„‚…‚†‚‡Ò‚˜‚™æ‚Œ¿Ï‚åã̻₎æ\n…Æ‚¤„¥‚Ç‚£ \"MI-6\" Ïß´Ì‚‚ÄãÉ€Â\n ‚‘‚’Ï€ü€»ŠÄãɆ€ð‚“Ò‚ˆ‚‰ó‚˜‚™Äã\n̻₄‚…€ü€ÜÓ€‚›‚œ‚‚ž‚Ÿ‚ Ò‚¡Ï‚¢´Ì\n¾á€€»‚£óÓ‚¤‚¥€â€ú„í„îÍÒ‚•åáæ\n‚¦ÄãÌ»â€Â\n ÃÒ‚§‚¨¸‚¬‚­Æâƒ¹ƒºæºâ€Â\n", + " †€ðÒ‚°áÓ€‚±‚²‚³‚´Ï…–½‚µá¸‚¶ÛÌ\n»âÒó‚·‚¸‚¹‚ºÒ„§æ»»óÅ·¼€Â\n\n ‚„‚…‚†‚‡‚ˆ‚‰Ï‚ºâÏÓ†€ðÒ‚»¸ËÉ´Ì\n„ÖáâÒæ‚¼‚½ðÂô€QæÈãÏË»Ì\n†ï»€Ð€Ñ‰€Ð¸‚¾´Ì»â߼߀Â\n", + " ‚„‚…€ü€ÜÒ‚À‚Á‚Âö‚ÂĂÅÒ‚Æ‚ÇÓ†€ð‚“Ò\n‚È‚Œ‚Š‚‹‚ÉҀـϑ€Ì€»€ß€»Ïߴ̂ʂËÄã\nÌ»â€ÂÃÒ…˜…™€ò‰€ð¸‚̽õ‚Íà҂΂ςЂÑ\n€÷€Ï€×Ï€Ð€×€Ý€ÜÆâÃÍæóÀ€ÈÅÌ\n‹€Ê€×€Ð€Ê’‚Ò‚‚Óω€»€ß¸†€Ò€Ï€ú€»ŠÆâ\n‚ŽæóÀâ€Â\n †€ð¿à‚§‚¨ÖÒ‚¹‚ºÏË»Ìðæ‹€Ï‚€»\n€ú€»’¸‚̴̆€ÑÅ€†€Ñ‚Ô‚Õ‚Öó€\nÃÒ‘€»€ã€Ï‚׸‚̽€Â‚Ø‚·Î‚Žìµß€Â\n", + " ‚€È€»€ðƒ€Â\nÉͽ†€ð¿à‚ÛÊÌÜ\n‚ÚÏÓ‚ÛÊλóÑ€Â\n", + "‚«Ì҂݂ǂނ߸‚¬‚­Çß\n", + "…˜…™€ò‰€ð¸€Ý€Ê€ãÇß\n", + "‹€Ê€×€Ð€Ê’‰€»€ß¸‚à‚ÃáÇß\n", + "†€ð҂ᇲó‹€Ï‚€»‚€Ë€Ï’Çß\n", + "…˜…™€ò‰€ð€Ý€Ê€ã‚â‚ã\n", + "€Ô€ë€Ú€Ñ€ã ‰€»€ß‹€Ê€×€Ð€Ê’‚ä‚å\n", + "€Ô€ë€Ú€Ñ€ã ‰€»€ß‹€Ê€×€Ð€Ê’‚â‚ã\n", + "... ‹€Ê€×€Ð€Ê’‚æ‚ç\n", + "€ñ€Ñ€Ï€Ù€Ï‘€Ì€»€ß€»‚¬‚è€Â\n‚Š‚‹‰€»€ß‚¬‚è\n", + "€ò‰€ðæ€Ý€Ê€ãÄãÌ»ØÇ¹€Â\nMI-6Ïß≀»€ß‚é‚ê‚ë‚ì\n", + "‚΂ςЂр÷€Ï€×‚¬‚è€Â\nMI-6Ïß≀»€ß‚é‚ê‚ë‚ì\n", + "€Ý€Ö€Ì€÷€â€Æ€»€ÿ€»€ã\"A\"‚í‚î‚á\nÅõàÁ¾‚ïÊÁðÄ»€Â\n", + "€Ý€Ö€Ì€÷€â€Æ€»€ÿ€»€ã\"B\"‚í‚î‚á\nÅõàÁ¾‚ïÊÁðÄ»€Â\n", + ">> BYELOMORYE†€ð <<\n", + " €…€…€…9†ùƒ™€…€…€…\n €Þ„²€…€Ð€»€Õ€Ï€ÿ€øÏºâ†€ðÏ\n¾»Ì‚„‚…‚†‚‡Ò‚˜‚™æ‚Œ¿Ï\n‚åã̻₎æ MI-6 Ïß´Ì\n‚‚ÄãÉ€Â\n ‚‘‚’Ï€ü€»ŠÄãɆ€ð‚“Ò‚ˆ‚‰\n󂘂™Äã̻₄‚…€ü€ÜÓ€‚›‚œ\n‚‚ž‚Ÿ‚ Ò‚¡Ï‚¢´Ì¾á€\n‚¤‚¥€â€úÍÒ‚•åáÒ‚¦Üºâ€Â\n ÃÒ‚§‚¨¸‚¬‚­Æâƒ¹ƒºæºâ€Â\n", + " †€ðÒ‚°áÓ€‚±‚²‚³‚´Ï…–½\n‚µá¸‚¶ÛÌ»âÒó‚·‚¸‚¹‚ºÒ\n„§æ»»óÅ·¼€Â\n\n ‚„‚…‚†‚‡‚ˆ‚‰Ï‚ºâÏÓ†€ðÒ\n‚»¸ËÉ´Ì„ÖáâÒæ‚¼‚½ðÂô\nQæÈãÏ˻̆ﻀЀщ€Ð¸\n‚¾´Ì»â߼߀Â\n", + " ‚„‚…€ü€ÜÒ‚À‚Á‚Âö‚ÂĂÅÒ‚Æ‚Ç\nÓ†€ð‚“Ò‚È‚Œ‚Š‚‹‚ɀـϑ€Ì€»€ß\nÏߴ̂ʂËÄãÌ»â€ÂÃÒ…˜…™\n€ò‰€ð¸‚̽õ‚Íà҂΂ςЂÑÏ\n€Ð€×€Ý€ÜóÀ€‹€Ê€×€Ð€Ê’‚Ò‚‚Ó\nω€»€ß¸†€Ò€Ï€ú€»ŠóÀâ€Â\n †€ð¿à‚§‚¨ÖÒ‚¹‚ºÏË»ÌÓ\n‹€Ï‚€»€ú€»’¸‚̴̆€ÑÅ€\n†€Ñ‚Ô‚Õ‚Öó‘€»€ã€Ï‚׸‚̽€Â\n‚Ø‚·Î‚Žìµß€Â\n", + " ‚€È€»€ðƒ€Â\nÉͽ†€ð¿à‚ÛÊÌÜ\n‚ÚÏÓ‚ÛÊλóÑ€Â\n", + "‚«Ì҂݂ǂނ߸‚¬‚­Çß\n", + "…˜…™€ò‰€ð¸€Ý€Ê€ãÇß\n", + "‹€Ê€×€Ð€Ê’‰€»€ß¸‚à‚ÃáÇß\n", + "†€ð҂ᇲó‹€Ï‚€»‚€Ë€Ï’Çß\n", + "Bylomorye†€ð €Ð€»€Õ€Ï€ÿ€ø €Þ„²\n", + "€…€…€… 9†ùƒ™ €…€…€…\n", + "\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð\n", + "…˜…™€ò‰€ð¸‚¡Ï‚ºãÉ\n", + "…˜…™€ò‰€ðҀ݀ʀãÏ‚æ‚ç !\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LdepoJ.c b/assets/obseg/text/u/LdepoJ.c new file mode 100644 index 0000000..35b945d --- /dev/null +++ b/assets/obseg/text/u/LdepoJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LdepoJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ӏڀπ׀々“€â€ø€ø€þ\nϺ⅗…‡‚Ì‚´Äã̻λ‚²Ò†˜¸…À…žƒèÍÅ\n̴̻̂âß¼ð€Â\n ÈÃ¿à†Ž‚‡‚Œ†œÝ‚¤‚¥€â€ú€…ƒ†„–¸\n‚δ̻âàÅ»€Â\n", + " „’Ò†žÍÅÌÓοο҃²óÆÑ€Â\n007€‚«€Õ¸ËÁÅÌ„ë„ì„í„î<€ó€æ€Ü>Ò\n‚Š‚‹¸† „¶ÅÌ‚ÕÄ»€Â\n ÃÒ‚ñƒ­Ï<€ó€æ€Ü>Ò…À…žƒèó€Ü€â€ø€Ü€ì€÷\nÒ‚¨„ƄǸ‚º‚¡ÅÎÄ»€Â‚Æ‚ÇÏßâÍ‚ÍàÓ\n€ì€÷Ò‚˜‚™¸‚åÛâàÅ»€Â\n ØÉ€€Ò€ø€ò€ëÓ€ä€ß€»€÷€Ð¸„²ãÌ€ã€ùÿ€È\n€ø€ó€ÏÒ‚²‚´†¡†ŠÏƒçáƒû¹ðÍ‚ÜåãØÆ€Â\nƒçხãλ߼…冢´Ì‚ÕÄ»€Â\n", + " ‚ÍàÒ…À…žƒèÏÓ¿Îᆣ†¤Äãɀـϑ€Ì€»\n€ßÒ€ç€Ê€ã€û€»€×æ„ÚÄãÌ»âÓíð€Â\n007€‚óÒ‚¡ó€ç€Ê€ã€û€»€×¸‚¬‚­ÅÌÁã€Â\n Èã¿à€ó€æ€ÜÒ‚Œ„þ‚ׂ‡†¥„”¸‚¬‚­Æâ‚ŽÜ\n‚ÿãλ߼Ï΀Â\n €é‰Î†¨ƒ”愯ãÎÁÌ…ª…«ìµß€Â\n", + " †¡†ŠÏƒçხãλ߼ÏÑ€Â\n‚€È€»€ðƒ€Â\n", + "‚Œ„þ‚ׂ‡†¥„”Ò‚¬‚­\n", + "€Ù€Ï‘€Ì€»€ß€ç€Ê€ã€û€»€×Ò‚¬‚­\n", + "„“„”҃渂º‚¡Çß\n", + "€ì€÷Ò‚¨„ƄǸ‚º‚¡Çß\n", + "€ó€æ€ÜÒ‚²‚´†¡†ŠÏ‚¹‚ºÇß\n", + ">> †˜ <<\n", + " „ë„ì„í„î€ó€æ€ÜӀڀπ׀々“€â\n€ø€ø€þϺ⅗…‡‚Ì‚´ÄãÌ»Î\n»‚²Ò†˜¸…À…žƒèÍÅ̴̻̂â\nß¼ð€Â\n ÈÃ¿à†Ž‚‡‚Œ†œÝ‚¤‚¥€â€ú€\n…ƒ†„–¸‚δ̻âàÅ»€Â\n", + " „’Ò†žÍÅÌÓοο҃²óÆ\nÑ€Â007€‚«€Õ¸ËÁÅÌ„ë„ì„í„î\n€ó€æ€ÜÒ‚Š‚‹¸† „¶ÅÌ‚ÕÄ»€Â\n ÃÒ‚ñƒ­Ï€ó€æ€ÜÒ…À…žƒèó€Ü€â\n€ø€Ü€ì€÷Ò‚¨„ƄǸ‚º‚¡ÅÎÄ»€Â\n‚Æ‚ÇÏßâÍ‚ÍàÓ€ì€÷Ò‚˜‚™¸‚å\nÛâàÅ»€Â\n €Ò€ø€ò€ëÓ€ä€ß€»€÷€Ð¸„²ãÌ\n€ã€ùÿ€È€ø€ó€ÏÒ‚²‚´†¡†ŠÏƒçá\nƒû¹ðÍ‚ÜåãØÆ€Â\n", + " ‚ÍàÒ…À…žƒèÏÓ¿Îᆣ†¤Äã\nɀـϑ€Ì€»€ßÒ€ç€Ê€ã€û€»€×æ„Ú\nÄãÌ»âÓíð€Â007€‚óÒ‚¡ó\n€ç€Ê€ã€û€»€×¸‚¬‚­ÅÌÁã€Â\n Èã¿à€ó€æ€ÜÒ‚Œ„þ‚ׂ‡†¥„”¸\n‚¬‚­Æâ‚ŽÜ‚ÿãλ߼Ï΀Â\n €é‰Î†¨ƒ”愯ãÎÁÌ\n…ª…«ìµß€Â\n", + " †¡†ŠÏƒçხãλ߼ÏÑ€Â\n‚€È€»€ðƒ€Â\n", + "‚²‚´†¡†ŠÒ†˜ St.“€â€ø€ø€þ\n", + "‚Œ„þ‚ׂ‡†¥„”Ò‚¬‚­\n", + "€Ù€Ï‘€Ì€»€ß€ç€Ê€ã€û€»€×Ò‚¬‚­\n", + "„“„”҃渂º‚¡Çß\n", + "€ì€÷Ò‚¨„ƄǸ‚º‚¡Çß\n", + "€ó€æ€ÜÒ‚²‚´†¡†ŠÏ‚¹‚ºÇß\n", + "\n", + "\n", + "\n", + "\n", + "„“„”Ó€ú€Ê€×ÄãÌ»ØÆ\n", + "\n", + "€ì€÷Ò‚¨„Æ„Ç\n", + "€ì€÷Ò‚¨„Æ„Ç\n", + "\n", + "€ì€÷Ò‚¨„ƄǸ‚¡Ï‚ºãÉ\n", + "\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”Òƒæ\n", + "„“„”҃渂¡Ï‚ºãÉ\n", + NULL +}; diff --git a/assets/obseg/text/u/LgunJ.c b/assets/obseg/text/u/LgunJ.c new file mode 100644 index 0000000..428bdf4 --- /dev/null +++ b/assets/obseg/text/u/LgunJ.c @@ -0,0 +1,228 @@ +#include "game/lvl_text.h" + +struct stringentry LgunJ[] = { + " D5K\n", + " …˜†Àƒ¿ƒò\n", + " ƒ“„Ž\n", + " PP7\n", + " DD44\n", + " †Â„“‚×\n", + "‚¡†âé€ä€Ñ€ë\n", + " ƒ“„Ž\n", + " KF7\n", + " ƒ“„Ž\n", + " €ö€Ñ€ë€ø\n", + "€ú€Ø€Ê€ã\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "<ƒì‚ú‚тʆò>\n", + "<€÷€ò€Ù€Ï†ò>\n", + "<‚Ó†–†ò>\n", + "<€Ú€Ñ€ù€Ï€Ú€»>\n", + "-\n", + "„‹„Œ€ö€Ñ€ë€ø\n", + "\n", + "€Ô€»‰€Æ€Ô€…€â€»’\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + " …æ‚õ\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "‚¨„Æ„Ç\n", + "Bolt€Ö€»\n", + "Bomb Case\n", + "ƒ“„Žƒ€ƒÉ‚Þ‚ß\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "Bug Detector\n", + "„ö„÷‚Þ‚ß\n", + "‹€Ï‚€»\n", + "€Õ€ñ€ö\n", + "„™„À„…†³\n", + "…­…¤‚ €÷€Ü€ã\n", + "Communicator\n", + "€Ù€Ï€ã€ú€»€ö\n", + "€î€þ€ä€ð‚×\n", + "\n", + "Credit Card\n", + "D5K<€Ú€Ñ€ù€Ï€Ú€»>\n", + "D5K Deutsche\n", + "DD44 Dostovei\n", + "Dark Glasses\n", + "DAT€â€»’\n", + "‰€»€ß€Û€»€ë\n", + "ƒ’ƒ“‚Þ‚ß\n", + "Deutsche\n", + "Š€Ðƒ€ƒ‚ñ\n", + "Door Exploder\n", + "Dostovei\n", + "‚„›‰€»€ß\n", + "Flare Pistol\n", + "Gas Keyring\n", + "Geiger Counter\n", + "Gold Bar\n", + "€€»€øŠPP7\n", + "†Â„“‚×\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»\n", + "\n", + "€þ€ù€ç€»Š€…€ö€Ï€à€Ë€»\n", + "€þ€ù€ç€»Š\n", + "‚¡á¶¼„Ž\n", + "Heroin\n", + "€é€Ï€â€Æ€Ï€þ€ä€Ñ€ë\n", + "Identifier\n", + "KF7 Soviet\n", + "Key Analyser Case\n", + "€Ö€»„¬„ ‚ñ\n", + "€Ö€»€Õ€»Š\n", + "€ä€Ñ€ë\n", + "€ù€»€»\n", + "€ö€Ï€à€Ë€»\n", + "Lectre\n", + "Lock Exploder\n", + "Magnet Repel\n", + "€î€þ€ä€ð‚×\n", + "€î€Ê’\n", + "Micro Camera\n", + "Microcode\n", + "Microfilm\n", + "‚²ƒ¿ƒò€ù€»€»‚×\n", + "\n", + "Money\n", + "\n", + "PP7<€Ú€Ñ€ù€Ï€Ú€»>\n", + "PP7…˜†Àƒ¿ƒò\n", + " PP7\n", + "Phantom\n", + "‘€ã€Ï‚×\n", + "„Ɔᄪ\n", + "’€ö€Ü€à€Ê€×ƒ“„Ž\n", + "Polarized Glasses\n", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž\n", + "RC-P90\n", + "Red Dossier\n", + "€÷€ò€Ù€Ï†òƒ“„Ž\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "Safecracker Case\n", + "„“„”ƒ€ƒ‚ñ\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "€Û€ø‹€»PP7\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "€Ü€ä€Ñ€»\n", + "Soviet\n", + "Spool Tape\n", + "Spy File\n", + "Klobb\n", + "€Ü€ß€Ê€ë€÷€Ü€ã\n", + "Suit-If-hand\n", + "„‘†Š\n", + "€Ü€ß€Ï€ü€Ï\n", + "‚¡†âé€ä€Ñ€ë\n", + "\n", + "‚Ó†–ƒ“„Ž\n", + "€ë€ö€Ê€þ\n", + "US AR33 „‹„Œ€ö€Ñ€ë€ø\n", + "US AR33\n", + "‚Þ…–‚¼Å\n", + "Œ‰€Ô€â€»’\n", + "Watch Communicator\n", + "Watch Geiger Counter\n", + "Watch Identifier\n", + "€ù€»€»‚Ó„Æ\n", + "„™†ã†ä‚Ó„Æ\n", + "Watch Magnet Repel\n", + "„™†ã†ä‚Ó„Æ\n", + "‚Ó„Æ\n", + "†Ž‚‡€Ø€»€Ü\n", + "ƒ¢‡´Ò€Õ€ý\n", + "ZMG (9mm)\n", + "\n", + "ar33\n", + "€Ô€»‰€Æ€Ô€â€»’\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + "€ë€ö€Ñ€ã€ù€Ù€»†€»\n", + "‚¨„Æ„Ç\n", + "bolt€Ö€»\n", + "bomb case\n", + "ƒ“„Žƒ€ƒÉ‚Þ‚ß\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "bug detector\n", + "„ö„÷‚Þ‚ß\n", + "‹€Ï‚€»\n", + "€Õ€ñ€ö\n", + "„™„À„…†³\n", + "…­…¤‚ €÷€Ü€ã\n", + "€î€þ€ä€ð‚×\n", + "credit card\n", + "d5k<€Ú€Ñ€ù€Ï€Ú€»>\n", + "d5k\n", + "dark glasses\n", + "dat€â€»’\n", + "‰€»€ß€Û€»€ë\n", + "dd44\n", + "ƒ’ƒ“‚Þ‚ß\n", + "ƒ–ƒ—ƒ€ƒ‚Þ‚ß\n", + "door exploder\n", + "‚„›‰€»€ß\n", + "flare pistol\n", + "gas keyring\n", + "gold bar\n", + "€€»€øŠPP7\n", + "†Â„“‚×\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»\n", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»\n", + "‚¡á¶¼„Ž\n", + "heroin\n", + "€é€Ï€â€Æ€Ï€þ€ä€Ñ€ë\n", + "€Ö€»„¬„ ‚ñ\n", + "€Ö€»€Õ€»Š\n", + "kf7 soviet\n", + "€ù€»€»\n", + "lectre\n", + "lock exploder\n", + "€î€Ê’\n", + "micro camera\n", + "microcode\n", + "microfilm\n", + "money\n", + "phantom\n", + "‘€ã€Ï‚×\n", + "„Ɔᄪ\n", + "’€ö€Ü€à€Ê€×ƒ“„Ž\n", + "polarized glasses\n", + "PP7<€Ú€Ñ€ù€Ï€Ú€»>\n", + "PP7\n", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž\n", + "rc-p90\n", + "red dossier\n", + "€÷€ò€Ù€Ï†òƒ“„Ž\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "ƒ–ƒ—ƒ€ƒ‚Þ‚ß\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "€Û€ø‹€»PP7\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "spool tape\n", + "spy file\n", + "klobb\n", + "€Ü€ß€Ê€ë€÷€Ü€ã\n", + "„‘†Š\n", + "€Ü€ß€Ï€ü€Ï\n", + "‚¡†âé€ä€Ñ€ë\n", + "‚Ó†–ƒ“„Ž\n", + "€ë€ö€Ê€þ\n", + "‚Þ…–‚¼Å\n", + "Œ‰€Ô€â€»’\n", + "watch communicator\n", + "watch geiger counter\n", + "watch identifier\n", + "€ù€»€»‚Ó„Æ\n", + "„™†ã†ä‚Ó„Æ\n", + "watch magnet repel\n", + "†Ž‚‡€Ø€»€Ü\n", + "ƒ¢‡´Ò€Õ€ý\n", + "zmg (9mm)\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»„¬„ ‚á...\n", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»¸‚¾´Ì»ØÇ¹\n", + "†¹ÅÉƒŠ„È", + "…¤…ò 1 ƒŠ„Û\n", + "…¤…ò", + "ƒŠ„Û", + "…æƒÁƒŠ„È", + NULL +}; diff --git a/assets/obseg/text/u/LjunJ.c b/assets/obseg/text/u/LjunJ.c new file mode 100644 index 0000000..57b0293 --- /dev/null +++ b/assets/obseg/text/u/LjunJ.c @@ -0,0 +1,48 @@ +#include "game/lvl_text.h" + +struct stringentry LjunJ[] = { + " ‚²‚´†¡†ŠÒ‚áó€Ù€Ï‘€Ì€»€ß¿à‚é‚êÅÉ\n€ó€æ€ÜÒ‚È‚Œ„…ƒèÒ†ë‚ßÓƒêƒë‚΂ϿàÒ†ú†û\nóÓ‚‚óÀο´É€Âƒèƒé¿àÒƒÚ†üæ\nƒ¹ƒºÍ‚Üåãâ€Â\n CIAÓ†ýƒÙ‚‚ñ¸†þ†ÿÅÌÁãÉ€Â\n€ù€»†€»Ï„¯Ë¿àλ߼†•ƒÝóƒÙö€€ö\n€Û€Ì€»€ãó„Ö‚ÕÅÌ‚€Ë€Ï€þ€ø¸ƒÚ†üÆâƒ¹ƒº\næºâ€Â\n ‚±…ñÆâÜÒÓ‚«Ì†¹Å€€ó€æ€ÜÒ‚È‚Œ„…ƒè\n¸‡À„¶ÛÑõÎàλ€Â\n", + " ƒ‰ƒŠÓ€€ä€ß€»€÷€ÐÏ܃‚ÅÌÜà»ØÆ€Â\nÜŀ󀿀ܿ€€»€ø‰€Ï€Ð€Ñ¸„Ù´Ì»âÒÎ\nà€€Û€Ü€â€ð¸„µ„¶ÄÇâÒς̓…ÒƒÕ‡ƒæ\nƒ¹ƒºÍδÌÀØÆ€Â\n ‚̓…Ó„……À„‰Î‚×Ò‚Ì»„§¸CIAÒ‚€Ë€Ê€×\n¿à‡„å´ÉÒó„‘„à‚က»ƒøóÝ´Ì‚Ââó\nÅ·¼€Â\n ó܇…‡†Ó‡‡ƒ²óÆ€Â007€Â‚̓…ÓºÎÉÒ\n߼΄¥‚ǃùóÓλ‚ޏ‚ÿãλó‚ÕÄ»€Â\n", + " ƒÚ†ü‚áÏ€ó€æ€ÜÒ‚†‚³Ý‚¼ƒø‚ñ‚×Ï‚ÀÁåÅÉ\nà€‚È‚Œ„…ƒèÓƒì»Í»¼‚Žìµß€Â\n‚¼ƒø‚ñ‚×ÏÓ…˜Ï…҃⸇ˆ´Ì‚‚õÆâ¹ð€Â\n „Žƒ¥†¥„”‚´Ïƒ“„ޏ‚´ƒâÅɀƒõÒËØàλ\nƒ²Ï‚Ìåλ߼πÂ\n ¾¾€Èã¿à„€å€ÐÍ»¼‡‰Òƒ…ƒ†ÏÓ‚Ù¸\nËÂâ¹ð€Â007€ÂƒŒÁÍÃäÏßâÍ‚óÒƒ\n¸„ö´Ì»âàÅ»ìµÎ»¿€Â\n ÜÌâ†ÃÓËà»Ñ€Â\n", + " ‚€Ë€Ï€þ€øó¾‡Š»‰€»€ã€À\n2ƒøÒƒ…ƒ†Í€À\n\n ‚€È€»€ðƒ€ºÎɴ̃øÓ€…€…\n", + "‚¼ƒø‚ñ‚׸‚¬‚­Çß\n", + "„€å€Ð€…€Ô€ä€ã€Ê’¸†¹Ç\n", + "„Žƒ¥„”¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸€ó€æ€ÜÒ„…ƒèØó†‹Â\n", + "€ä€ß€»€÷€Ð:€‡Ý´Éå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡…ºÈ¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ®»å߀€ˆ\n", + "€ä€ß€»€÷€Ð:€‡»ÉðÀß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‰Ò„¯É€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ÃãÓ¾ÜÅä»åр€ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾Å¿´ÉåÑ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øº€ÆÌÀ·ºƒ²€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ÃÒ‚×ÓÍÌ܃å€Õðå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‰ÒÓ„Òð´ÉÒ¿Åà€À€ˆ\n", + "€ä€ß€»€÷€Ð:€‡¾ÜÅäÁδÌÀÉå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡»…÷ÅÌ ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡„’»„Àр€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ë»Ìλå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øº€‡‹à¿´Ìâ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚Å‚‚Ö€Â\n€ä€ß€»€÷€Ð€…€Û€ï€Í€èÿ€Å€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ü¼ÔÍËß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‡ŒÂ‡Ñ€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Øâ󇎆áÙÉ»€Â€ˆ\n", + "€ä€ß€»€÷€Ð:\n", + "€ä€ß€»€÷€Ð:€‡Äº€»ÀØÅ·¼€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ€‚Ù¸ËÂÌ ! €ˆ\n", + "„€å€Ð:€‡€ï€Ü€ß€»€…€ÏŠ€Âƒ‰ƒ•ÃÈÓ€\nƒ¡æƒ°ÅÚ…ç߀€ˆ\n", + "‚€‚‚æ‚ç: €ä€ß€»€÷€Ð…¤…ò\n", + ">> ‚€Ë€Ï€þ€ø <<\n", + " ‚²‚´†¡†ŠÒ‚áó‚é‚êÅɀ󀿀ÜÒ\n‚È‚Œ„…ƒèÒ†ë‚ßÓƒêƒë‚΂ϿàóÓ\n‚‚óÀο´É€Âƒèƒé¿àÒƒÚ†ü\n惹ƒºÍ‚Üåãâ€Â\n CIAÓ†ýƒÙ‚‚ñ¸†þ†ÿÅÌÁãÉ€Â\n€ù€»†€»Ï„¯Ë¿àλ߼†•ƒÝó\nƒÙö€€ö€Û€Ì€»€ãó„Ö‚ÕÅÌ‚€Ë\n€Ï€þ€ø¸ƒÚ†üÆâƒ¹ƒºæºâ€Â\n ‚±…ñÆâ‚«Ì¸†¹Å€€ó€æ€ÜÒ‚È\n‚Œ„…ƒè¸‡À„¶ÛÑõÎàλ€Â\n", + " ƒ‰ƒŠÓ€€ä€ß€»€÷€ÐÏ܃‚ÅÌ\nÜà»ØÆ€ÂÜŀ󀿀ܿ€€»€ø‰\n€Ï€Ð€Ñ¸„Ù´Ì»âÒÎà€€Û€Ü€â\n€ð¸„µ„¶ÄÇâÒς̓…ÒƒÕ‡ƒæ\nƒ¹ƒºÍδÌÀØÆ€Â\n ‚̓…Ó‚×Ò‚Ì»„§¸CIAÒ\n‚€Ë€Ê€×¿à‡„å´ÉÒó„‘„à‚á€\n€»ƒøóÝ´Ì‚ÂâóÅ·¼€Â\n ‚̓…ÓºÎÉÒ߼΄¥‚ǃùóÓ\nλ‚ޏ‚ÿãλó‚ÕÄ»€Â\n", + " ƒÚ†ü‚áÏ€ó€æ€ÜÒ‚†‚³Ý‚¼ƒø‚ñ‚×\nÏ‚ÀÁåÅÉà€‚È‚Œ„…ƒèÓƒì»Í\n»¼‚Žìµß€Â‚¼ƒø‚ñ‚×ÏÓ…˜Ï\n…҃⸇ˆ´Ì‚‚õÆâ¹ð€Â\n „Žƒ¥†¥„”‚´Ïƒ“„ޏ‚´ƒâÅɀƒõ\nÒËØàλƒ²Ï‚Ìåλ߼πÂ\n „€å€ÐÍ»¼‡‰Òƒ…ƒ†ÏÓ‚Ù¸Ë\nÂâ¹ð€ÂƒŒÁÍÃäÏßâÍ‚óÒ\nƒ¸„ö´Ì»âàÅ»ìµÎ»¿€Â\n ÜÌâ†ÃÓËà»Ñ€Â\n", + " ‚€Ë€Ï€þ€øó¾‡Š»‰€»€ã€À\n2ƒøÒƒ…ƒ†Í€À\n\n ‚€È€»€ðƒ€ºÎɴ̃øÓ€…€…\n", + "‚¼ƒø‚ñ‚׸‚¬‚­Çß\n", + "„€å€Ð€…€Ô€ä€ã€Ê’¸†¹Ç\n", + "„Žƒ¥„”¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸€ó€æ€ÜÒ„…ƒèØó†‹Â\n", + "€Ö€Ì€»‹ ‚€Ë€Ï€þ€ø\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LlenJ.c b/assets/obseg/text/u/LlenJ.c new file mode 100644 index 0000000..9e43028 --- /dev/null +++ b/assets/obseg/text/u/LlenJ.c @@ -0,0 +1,60 @@ +#include "game/lvl_text.h" + +struct stringentry LlenJ[] = { + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ ‚¼‚Žð´ÉÒÑ ! €ˆ\n", + "€ÏŠ:€‡ºº €ä€ß€»€÷€Ð ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚¼‚Žóß¿´É...€ˆ\n", + "€Ö€Ì€»‹ ‚€Ë€Ï€þ€ø\n", + "\n", + "\n", + "\n", + "\n", + "€Ö€Ë€Ü€ã\n", + "\n", + "‚€È€»€ðƒ€…€ÏŠ\n", + "007\n", + "€ä€ß€»€÷€Ð€…€Û€ï€Í€è‹\n", + "€Ú€â€ö€Ñ€ã€…’€ú€þ€ö€î€»\n", + "€Ð€ù€Ê€×€…€ã€ùÿ€È€ø€ó€Ï\n", + "006/€ó€æ€Ü\n", + "„€å€Ð€…€Ô€ä€ã€Ê’\n", + "€ó€æ€Ü………Û\n", + "€Ð€»€Õ€»‰€Æ€…€Ò€ø€ò€ë\n", + "„€‚²\n", + "€÷€Ü€…€þ€÷€Û€È€Ï€Ù\n", + "ÿ€Å€ù€Ï€â€Æ€Ï€…ƒ€Ù€ë€Ü€Ö€»\n", + "…ÙKGB„¥‚ǃù\n", + "‰€ï€ã€÷€…€ï€Û€Ì€Ö€Ï\n", + "…¨‚΃ö…ø\n", + "The Bond Team\n", + "Martin Hollis\n", + "Karl Hilton\n", + "Mark Edmonds\n", + "B Jones\n", + "Duncan Botwood\n", + "Dave Doak\n", + "Steve Ellis\n", + "Graeme Norgate\n", + "Grant Kirkhope\n", + "Robin Beanland\n", + "Des Hinkson\n", + "Martin Wakeley\n", + "The Testers\n", + "Huw Ward\n", + "Gary Richards\n", + "Martin Penny\n", + "Jamie Williams\n", + "David Wong\n", + "Gareth Jones\n", + "Gavin Hood\n", + "\"JAMES BOND WILL RETURN\"\n", + NULL +}; diff --git a/assets/obseg/text/u/LmpmenuJ.c b/assets/obseg/text/u/LmpmenuJ.c new file mode 100644 index 0000000..5013751 --- /dev/null +++ b/assets/obseg/text/u/LmpmenuJ.c @@ -0,0 +1,40 @@ +#include "game/lvl_text.h" + +struct stringentry LmpmenuJ[] = { + "…æƒÁ†å", + "„ŽÓôÀÀ", + "…¨„Ž€à€Í€Ê€ÖÓôÀÀ", + "…¨„Ž€à€Í€Ê€Ö†å", + "ƒ´‚á†Á†å", + "€Ü€ä€Ñ€»€…€×€ö€Ü", + "ƒ–ƒÁ‚ €×€ö€Ü", + "€»†æ†’†Œ€×€ö€Ü", + "†ç†è‚ €×€ö€Ü", + "‚Û†»¿Î»€×€ö€Ü", + "ƒŸ†é†ê€×€ö€Ü", + "„’…ù€×€ö€Ü", + "†¹ÄãÉ‚©ƒÌ总…çƒã»", + "†¹ÄãÉ‚©ƒÌ总…焳»", + "2ƒø¸ƒ‚Óφ¹ÅÉ", + "3ƒø¸ƒ‚Óφ¹ÅÉ", + "4ƒø¸ƒ‚Óφ¹ÅÉ", + "€ö€Ï€Ö€Ï€þ:€»†ë", + "€ö€Ï€Ö€Ï€þ:€å†ë", + "€ö€Ï€Ö€Ï€þ:†ì†ë", + "€ö€Ï€Ö€Ï€þ:†í†ë", + " Aó’€ù€Ñ", + "€ÿ€»€ð€Ô€»‹€»", + "€Ü€ß€»€ãó„·‚ã", + "”€»ƒ‚á", + " A󔀻ƒ", + " Aó„·‚ã", + "€Ü€Ù€Ð", + "", + "P 憹ÅÉƒŠ„È", + "P ¸†¹ÅÉƒŠ„È", + "€»…ç†ïÁ‚Ì´É†Ž‚‡", + "‚Ãá„ÄÅ", + "‚Ò‚", + "€Ü€ß€»€ãó", + "„¤‚óÀØÆ", +}; diff --git a/assets/obseg/text/u/LmpweaponsJ.c b/assets/obseg/text/u/LmpweaponsJ.c new file mode 100644 index 0000000..802c37b --- /dev/null +++ b/assets/obseg/text/u/LmpweaponsJ.c @@ -0,0 +1,20 @@ +#include "game/lvl_text.h" + +struct stringentry LmpweaponsJ[] = { + "†ð‚¡ƒáÊÒÙ!", + "‘€Ü€ã€ø", + "…æ‚õ†ñ‚×", + "‚’‚†‚‡", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø", + "‚¡á¶¼„Ž", + "€÷€ò€Ù€Ï†òƒ“„Ž", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»", + "‚Ó†–ƒ“„Ž", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»", + "€ù€»€»‚×", + "†Â„“‚×", + "‚¡†âé€ä€Ñ€ë\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LoptionsJ.c b/assets/obseg/text/u/LoptionsJ.c new file mode 100644 index 0000000..3cc55f6 --- /dev/null +++ b/assets/obseg/text/u/LoptionsJ.c @@ -0,0 +1,68 @@ +#include "game/lvl_text.h" + +struct stringentry LoptionsJ[] = { + "„ŒË\n", + "†Ç…•\n", + "‚õ„Š\n", + "†Ž‚‡†½†¾\n", + "”€»ƒ\n", + "†ª‚õ\n", + "ƒë‚Ö†ª‚õ\n", + "€À\n", + "†Ç…•‚öåÇ\n", + "1.€ß€Ñ’ 1-1\n", + "2.€ß€Ñ’ 1-2\n", + "3.€ß€Ñ’ 1-3\n", + "4.€ß€Ñ’ 1-4\n", + "5.€ß€Ñ’ 2-1\n", + "6.€ß€Ñ’ 2-2\n", + "7.€ß€Ñ’ 2-3\n", + "8.€ß€Ñ’ 2-4\n", + "ƒë‚Ö†ª‚õ\n", + "…æ‚õ†Ç…•\n", + "…æ‚õƒ™„§ƒë‚Ö\n", + "†Ç…•‚¨„Ÿ\n", + "†Ç…•„ä†Ý\n", + "„Ž„È„ä†Ý\n", + "†á„ò‚¨„Ÿ\n", + "…»†Á\n", + "on\n", + "off\n", + "€è€»€î€ø\n", + "ƒé‚Õ†Þ\n", + "ƒÄᄽ\n", + "€í€»€øŠ\n", + "€ë€ø\n", + "€û€ÑŠ\n", + "€Û€ç€î\n", + "€è€»€î€ø\n", + "16:9\n", + "‚€‚‚á„¶:\n", + "‚Ò‚\n", + "‚Ãá„ÄÅ\n", + "‚€‚†ß†à:\n", + "‚â‚ã\n", + "„»‚â‚ã\n", + "Left Hand\n", + "\"Q\"€Ò€É€Ê€à V2.01 BETA\n", + "‚Õ\n", + "ƒé\n", + "€Ú€ÑЀ܀â€Ê’\n", + "€Ú€ÑЀ܀â€Ê’\n", + "ƒ™„ø\n", + "ƒ†ô\n", + "„Ù„Š‚¨„Ÿ\n", + "„Ù„Š€à€È€Ê€×(€»…¦€ò€»Š)\n", + "„Ù„Š€à€È€Ê€×(€å…¦€ò€»Š)\n", + "BGM\n", + "SE\n", + "‚€‚‚æ‚ç\n", + "2.€Ü€â€»‚‚‚‚ƒ\n", + "3.\"M\"Ò‚®‚¯\n", + "4.\"Q\"Ò…à„æ\n", + "5.€î€ç€»“€å€»\n", + "1.ƒ¹†É‚€‚\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LpeteJ.c b/assets/obseg/text/u/LpeteJ.c new file mode 100644 index 0000000..21751b8 --- /dev/null +++ b/assets/obseg/text/u/LpeteJ.c @@ -0,0 +1,36 @@ +#include "game/lvl_text.h" + +struct stringentry LpeteJ[] = { + " ‚²‚´„ª„”ϺâKGB‚Ã…¥‚É¿àƒä‚ÀÅɃ\n€ä€ß€»€÷€ÐÓ€Ò€ø€ò€ë„€‚²Ò‚¡Ïß´Ì…¯Ø´Ì\nÅØ´É€Â\n\n ‚̓…Ó†Šó€Ú€Ï€×€ã€…“€â€ø€ø€þϺâ\n€ó€æ€ÜÒ‚²‚´†¡†ŠÒ†˜Ï„²ãÌ‚¿ãß¼Í\nÅÌ»â€Â\n", + " ƒƒ»ó‚ÍàÒƒ¸„ö»ÎÄ»€ÂÃÒØØ‚Íà¸\n„¯‚æ¼åÂÏÓ»ÀØÇ¹€Â‚ÍàÓƒ¹íºÎɸ\n€ã€ùÿ€È€ø€ó€ÏÒÜÍÖ͆‹»ÌÁãØÆ€Â\n ſŀ»¿Îâ‚Óó܃ۃÜÏ‚‚õÅÎÄ»€Â\n€Ú€Ï€×€ã€…“€â€ø€ø€þÒ†’†‰ó†Œ‚©ƒøÏ†“†”¸\n‚ÀÆÃÍÓ‚¤‚¥„„ÃÖÍËÎæáØÆ€Â\n ØðƒìÁÏ»âÓíÒÿ€Å€ù€Ï€â€Æ€ÏÒ…à¸\n†áÌ‚€‚¸„Ì‚ÅÌ‚ÕÄ»€Â\n", + " 007ƒ‰ƒŠÜƒ¢ƒ£ƒ¤Ó‚¼»ï€ÂſłóÎà\n€ú€Û€Ð‚²æ…ªÅÌ»´ÉƒæÝ†Ž‚‡Îô¸‚Ì´Ì\nƒÄáƒäÂàãâìµä€Â\n", + " ‚€È€»€ðƒ€‚̓…ÏÓÈÃØóÅÌ…àÂâ×ô\nÒ††‘Óλå€Â\n\n ÈãßáÜ´Í…áƒìϻ⻻ƒøÓô¼€À\n", + "€Ò€ø€ò€ëÍ€ä€ß€»€÷€Ð¸„ö„÷Çß\n", + "†’†ŒÒ†“†”¸‚Ôƒ¢†–Ï\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÍ‚ú‚û\n", + "…Òƒâ: †’†ŒÏ†“†” †—Å\n", + "‚Ý‚þ: †’†ŒÒ†“†” †–‡“\n", + "‚€‚‚æ‚ç: †’†ŒÒ†“†”憗ÆçØÆ\n", + "‚€‚‚æ‚ç: €Ò€ø€ò€ë¸„¯‚æ»ØÅÉ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡€ÏŠ ‚ŠßÁ‚üé‚ÀÇÉ΀€ˆ\n", + "€ÏŠ:€‡Å¿Å€€Ò€ø€ò€ëæ€ä€ß€»€÷€Ð¸\nËãÌ‚üƒÏ‚áð€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡ÈãÎàÄ´À€ƒ…¸\n„²ãÌ‚²Ò†˜Ï‚ð¿¼†Š¸„¯Éï€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡„ë„ì„í„î€ó€æ€ÜÒ…À…žƒè\nÓÈÃϺâ€Âƒ¡Ò‚£‚ÕÏ„™…Ú¸Æãõ‚Íà\n¸ƒ®àÇ₎æóÀâ€Â€ˆ\n", + "€ÏŠ:€‡ÿ€Å€ù€Ï€â€Æ€Ï€Â\nƒ¡¸…àÂÌ€ñ€÷€Ê€ãÓºâÒ¿€À€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡ƒ¿‚ŽÓƒ¿‚Žð¿à΀Â\nÈãφ™†šƒ§‚¡æ»ÎÁÎâ¹ð´Éà\n¾„Ô»ÜÒ߀€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€Ï:€‡€ÏŠ€ƒÒƒÓÏ…á¸Äà\nÅÌØóÅÌÃÃÏ»â¹ð€Â…âÅèà»Ó\nƒŒÁ…ã¸Ü´Éàô¼ð€Â€ˆ\n", + "ÿ€Å€ù€Ï€â€Æ€ÏæÃÒ‚‰¸…äáØÅÉ€Â\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÓ‚ÍÒ‚£‚ÕÏ„²†›¸‚ÃáØÅÉ€Â\n", + ">> €Ú€Ï€×€ã€…“€â€ø€ø€þ <<\n", + " ‚²‚´„ª„”ϺâKGB‚Ã…¥‚É¿à\nƒä‚ÀÅɃ€€ä€ß€»€÷€ÐÓ\n€Ò€ø€ò€ë„€‚²Ò‚¡Ïß´Ì…¯Ø´Ì\nÅØ´É€Â\n ‚̓…Ӏڀπ׀々“€â€ø€ø€þÏ\nºâ€ó€æ€ÜÒ‚²‚´†¡†ŠÒ†˜Ï„²ãÌ\n‚¿ãß¼ÍÅÌ»â€Â\n", + " ƒƒ»ó‚ÍàÒƒ¸„ö»ÎÄ»€Â\nÃÒØØ‚Íค¯‚æ¼åÂÏÓ»À\nØÇ¹€Â‚ÍàÓƒ¹íºÎɸ\n€ã€ùÿ€È€ø€ó€ÏÒÜÍÖ͆‹»ÌÁ\nãØÆ€Â»¿Îâ‚Óó܃ۃÜÏ‚‚õ\nÅÎÄ»€Â€Ú€Ï€×€ã€…“€â€ø€ø€þ\nÒ†Œ‚©ƒøÏ†“†”¸‚ÀÆÃÍÓ€‚¤‚¥\n„„ÃÖÍËÎæáØÆ€ÂØðƒìÁÏ\n»âÓíÒÿ€Å€ù€Ï€â€Æ€ÏÒ…à¸\n†áÌ‚€‚¸„Ì‚ÅÌ‚ÕÄ»€Â\n", + " 007ƒ‰ƒŠÜƒ¢ƒ£ƒ¤Ó‚¼»ï€Â\nſłóÎà€ú€Û€Ð‚²æ…ªÅÌ\n»´ÉƒæÝ†Ž‚‡Îô‚̴̃ÄáƒäÂ\nàãâìµä€Â\n", + " ‚€È€»€ðƒ€‚̓…ÏÓÈÃØóÅ\nÌ…àÂâ×ôÒ††‘Óλå€Â\n\nÈãßáÜ´Í…áƒìϻ⻻ƒøÓ\nô¼€À\n", + "€Ò€ø€ò€ëÍ€ä€ß€»€÷€Ð¸„ö„÷Çß\n", + "†’†ŒÒ†“†”¸‚Ôƒ¢†–Ï\n", + "ÿ€Å€ù€Ï€â€Æ€ÏÍ‚ú‚û\n", + "€Ú€Ï€×€ã€…“€â€ø€ø€þ†’†‰ƒè\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LpropobjJ.c b/assets/obseg/text/u/LpropobjJ.c new file mode 100644 index 0000000..c6d05c1 --- /dev/null +++ b/assets/obseg/text/u/LpropobjJ.c @@ -0,0 +1,72 @@ +#include "game/lvl_text.h" + +struct stringentry LpropobjJ[] = { + "¸‚¡Ï‚ºãÉ", + "", + "", + "", + "", + "<„Ž>", + "€Û€Í€Ê€ã€ü€ÏÒ„Ž", + "€î€þ€ä€ð‚×Ò„Ž", + "†Â„“Ò„Ž", + "‚¡á¶¼„Ž", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»Ò„Ž", + "€ú€Ø€Ê€ã„Ž", + "€÷€ò€Ù€Ï†òƒ“„Ž", + "€ò€»€Û€Í€Ï€Ý€Ï€Ú€»ƒ“„Ž", + "‚Ó†–ƒ“„Ž", + "‚¡†âé", + "€ä€Ñ€ë", + "€ä€Ñ€ë", + "", + "dart", + "explosive pen", + "explosive case", + "flare", + "‘€»€ã€Ï", + "of dynamite", + "stick", + "sticks", + "„ö„÷‚Þ‚ß", + "micro camera", + "€€»€ø‰€Ï€Ð€Ñ€…€Ö€»", + "€ë€ö€Ê€þ", + "’€ö€Ü€à€Ê€×ƒ“„Ž", + "€é€Ï€â€Æ€Ï€þ€…€ä€Ñ€ë\n", + "PP7\n", + "€Ú€Ñ€ù€Ï€Ú€»PP7\n", + "DD44 Dostovei\n", + "Klobb\n", + "KF7 Soviet\n", + "ZMG (9mm)\n", + "D5K Deutsche\n", + "€Ú€Ñ€ù€Ï€Ú€»D5K\n", + "Phantom\n", + "AR33„‹„Œ€ö€Ñ€ë€ø\n", + "RC-P90\n", + "€Û€Í€Ê€ã€ü€Ï\n", + "…æ‚õ€Û€Í€Ê€ã€ü€Ï\n", + "€Ü€ä€Ñ€»€ö€Ñ€ë€ø\n", + "€þ€ù€ç€»Š€ö€Ï€à€Ë€»\n", + "€ú€Ø€Ê€ã€ö€Ï€à€Ë€»\n", + "Cougar Magnum\n", + "†Â„“‚×\n", + "€ð€»€Ï€ù€Ñ€Õ€»€…€ù€»€»‚×\n", + "", + "‘€»€ã€Ï‚×\n", + "€Û€ø‹€»PP7\n", + "€€»€øŠPP7\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»\n", + "ƒþ†ò€Ö€»\n", + "†óÅ»†Ž‚‡\n", + "€Ö€»¸‚¡Ï‚ºãÉ\n", + "…¨„Ž€à€Í€Ê€Ö¸‚¡Ï‚ºãÉ\n", + "…¨„Ž€à€Í€Ê€Ö\n", + "„†¿¸‚¡Ï‚ºãÉ\n", + "€ú€Ê€×ÄãÌ»ØÆ\n", + NULL, + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LsevJ.c b/assets/obseg/text/u/LsevJ.c new file mode 100644 index 0000000..70c5dee --- /dev/null +++ b/assets/obseg/text/u/LsevJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LsevJ[] = { + " ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€óƒìƒíÒ\nƒî»ƒïƒð€Ý€Ï€ß€»ó҂뇳΂õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúáƒûØãÌ\n»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ºÎÉÒ‚€‚ÓÃÒƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ\n‚åã̻⿸‚‚Æâ‚ŽóÆ€Â\n\n ‚΂τ „¡Ïßâ̓è‚Õóƒöƒ¸„‰Î‚ˆ‚Žæ‚å\nãÌ»âß¼óƀ‚Íàæ»´É»„†ÒÉÛÏ\nƒó‚õ¸„¤ÂÌ»âÒ¿¸ƒÕáÉ»ÒóÆ€Â\n‚‰‚öÏß´ÌÓƒêƒë€Õ€ñ€ö¸‚¬‚­Æâƒ¹ƒºæºâ\n¿ÜÅãØÇ¹€Â\n ÎâøÁ„¦½ÛÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n", + " ƒ‰ƒŠÒ€ï€Ê€Û€Í€ÏóӀـϑ€Ì€»€ßÒ\n€é€Ê€Ö€Ï€þ¸ÅÌÜ༂ŽÏÎâ€Â\n ƒèƒ£Ï€Ü€û€»Š¸ƒ€ƒÆâßá€Û€Ë€Ï“€Ï\n¸‚äÂâ„§¸„¨Ú‚óÒÃÍð¿à€ƒ‰ƒŠÓ‚óÒ\n„©åáσ¿‚ޏÅÌÁã⃢ƒ£ƒ¤¸„Š´É€Â\n\n ÃÒ‰€»€ß€Û€»€ë¸€ñ€Ñ€Ï€ë€ù€»€ðÏ‚Ãá\nƒŽÂâðÂó€Ý€Ö€Ì€÷€â€Æ€Ù€»Š¸„ªÀ„«½€\nØÉ‰€»€ß܆€Ò€Ï€ú€»ŠÆâ‚ŽæóÀâ€Â\n", + "‚€È€»€ðƒ ƒ‰ƒŠÒ‚€‚Ó€ÛŽ€÷€Ð†õ„ÏÒ\nƒè‚ÕÙɻрÀ\nƒ¡ÏÓÍÌÜ‚ÂȼÏλå€Â\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "GoldenEye€Ö€»¸„¬„ Å€ƒ»Ìä\n", + "„­„®‚ ¸„¯Ë€ـϑ€Ì€»€ß¸„°‚õ\n", + "€Ù€Ï‘€Ì€»€ß¿à‚ƂǸ‚ÄÀ‚ÀÇ\n", + "€ñ€Ñ€Ï€Ü€×€÷€»€ÏÒ„ „¡¸„±ã\n", + "Hello\n", + "€ÏŠ:€‡€Ù€Ï‘€Ì€»€ß‚ÉÒ€ñ€Ñ€Ï€ë€ù€»€ð\n¸„°‚õÄÇä ! €ˆ\n", + "’€ú€þ€ö€î€»:€‡„ŒÉλó !\nÈãÎàôÊπ€ˆ\n", + "’€ú€þ€ö€î€»:€‡ÃøƒäÂÉàÆè€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡½½..̀€ˆ\n", + "’€ú€þ€ö€î€»:€‡È¹ÎÏ„³ÁÓ¿¿àλÓí€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡¼€»¹€€Ü€û€»Šæ‚ù„´\nÄãÌâ€Â€ˆ\n", + "’€ú€þ€ö€î€»:€‡'K''N''O''C'\n'K''E''R''S'<€÷€ß€»€Ï>€ˆ\n", + "’€ú€þ€ö€î€»:€‡ºÊµ€»€Â€ˆ\n", + "€ÏŠ:€‡€Ý€Ö€Ì€÷€â€Æ¸„µ„¶ÄÇä ! €ˆ\n", + "’€ú€þ€ö€î€»æ‚üéØÅÉ\n€Ù€Ï‘€Ì€»€ß¸„°‚õóÀØÇ¹\n", + "€Ù€Ï‘€Ì€»€ßæ„°‚õÅÌ»ØÇ¹\n", + "‰€»€ß †€Ò€Ï€ú€»Š‚á\n", + "†€Ò€Ï€ú€»Š„·‚ã\n", + "’€ú€þ€ö€î€»:€‡Ã¹ÎÜÒ„¸æƒ Çâ¿ ! €ˆ\n", + ">> €Ýÿ€È€ø€ä€ó <<\n", + " ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€ó\nƒìƒí҃ïƒð€Ý€Ï€ß€»ó҂뇳Î\n‚õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúá\nƒûØãÌ»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ºÎÉÒ‚€‚ÓÃÒƒè‚Õ„…ƒèÏ\n‚¹‚ºÅ€„†æ‚åã̻⿸\n‚‚Æâ‚ŽóÆ€Â\n ‚΂τ „¡Ïßâ̓è‚Õóƒöƒ¸„‰Î\n‚ˆ‚Žæ‚åãÌ»âß¼óÆ€Â\n ‚Íàæ»´É»„†ÒÉÛσó‚õ¸\n„¤ÂÌ»âÒ¿¸ƒÕáÉ»ÒóÆ€Â\n‚‰‚öÏß´ÌÓƒêƒë€Õ€ñ€ö¸‚¬‚­\nÆâƒ¹ƒºæºâ¿ÜÅãØÇ¹æ€\n„¦½ÛÏ‚Ž¸„øÛÌ‚ÕÄ»€Â\n", + " ƒ‰ƒŠÓ€Ù€Ï‘€Ì€»€ßÒ€é€Ê€Ö€Ï€þ\n¸ÅÌÜ༂ŽÏÎâ€Â\n ƒèƒ£Ï€Ü€û€»Š¸ƒ€ƒÆâßá\n€Û€Ë€Ï“€Ï¸‚äÂâ„§¸„¨Ú‚óÒ\nÃÍð¿à€ƒ‰ƒŠÓ‚óÒ„©åáÏ\nƒ¿‚ޏÅÌÁã⃢ƒ£ƒ¤¸„Š´É€Â\nÃÒ‰€»€ß€Û€»€ë¸€ñ€Ñ€Ï€ë€ù€»€ð\nÏ‚Ã჎ÂâðÂó€Ý€Ö€Ì€÷€â€Æ\n€Ù€»Š¸„ªÀ„«½€ØÉ‰€»€ßÜ\n†€Ò€Ï€ú€»ŠÆâ‚ŽæóÀâ€Â\n", + " ‚€È€»€ðƒ€Â\nƒ‰ƒŠÒ‚€‚Ó€ÛŽ€÷€Ð†õ„ÏÒƒè‚Õ\nÙɻрÀ\nƒ¡ÏÓÍÌÜ‚ÂȼÏλå€Â\n", + "‚«ÌÒƒêƒë€Õ€ñ€ö¸‚¬‚­Çß\n", + "GoldenEye€Ö€»¸„¬„ Å€ƒ»Ìä\n", + "„­„®‚ ¸„¯Ë€ـϑ€Ì€»€ß¸„°‚õ\n", + "€Ù€Ï‘€Ì€»€ß¿à‚ƂǸ‚ÄÀ‚ÀÇ\n", + "€ñ€Ñ€Ï€Ü€×€÷€»€ÏÒ„ „¡¸„±ã\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É €Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É €Ö€»€Õ€»Š\n", + "€Ù€Ï‘€Ì€»€ß‚É€Ö€»€Õ€»Š¸‚º‚¡\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š\n", + "€Ý€Ö€Ì€÷€â€Æ€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "€Ýÿ€È€ø€ä€ó ƒè‚Õ„…ƒè(„‡‚¨‚á)\n", + "…—…‡\n", + "€Ù€Ï‘€Ì€»€ß‚¬‚è\n‰€»€ß¸†€Ò€Ï€ú€»ŠóÀØÇ¹", + NULL +}; diff --git a/assets/obseg/text/u/LsevxJ.c b/assets/obseg/text/u/LsevxJ.c new file mode 100644 index 0000000..952018d --- /dev/null +++ b/assets/obseg/text/u/LsevxJ.c @@ -0,0 +1,48 @@ +#include "game/lvl_text.h" + +struct stringentry LsevxJ[] = { + " €…€…€…5†ùƒ(4†ùƒ™)€…€…€…\n\n ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€óƒìƒíÒ\nƒî»ƒïƒð€Ý€Ï€ß€»ó҂뇳΂õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúáƒûØãÌ\n»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ÈÃÏÓ€¿Ë̀Ѐ»€Õ€Ï€ÿ€øÒ‚„‚…‚†‚‡‚ˆ‚‰\n¸‚®…ÅÅ̻ɀҀø€ò€ëÒ€„„‚‚†‚‡‚£„ƒæºâ\nÍ‚ÜåãØÆ€Â\n\n ƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ‚åã̻⿸‚‚\nÅÌÀÌ‚ÕÄ»€Â„‡‚¨’€ö€ÏÒƒŠ‚éæ‚Àƒ¼ãõ\n‚Ë„ˆ„‰óÆ€Âôÿ҄‡ƒ²Ò‚áÒ„“„”Ï…·‚ÊÄã\nÌ»âÍ‚Ü»ØÆÒó€ØíÓ€Õ€ý¸‚¡Ï‚ºãÌ\n‚ÕÄ»€Â\n", + " ƒêƒë‚΂ÏÒ„ „¡¿àÙâÍ€ì€÷”€»€ãϺâ\n‚º€ú¿àÒ‚¹‚ºÓÊ·´ÍƒÒƒÓÎ‚ÙæÆâ€Â\nÈãßáÜÈÒƒŽƒìϺâ‚Ђـ߀û€»¿à‚¹‚º\nÆâÒæ‚¼‚½ìµä¼€Â\n\n Èã¿à€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄâÃ͸\n‚ÿãíÏÎ€Â‚óæ‚¹‚ºÅÉ‚Ž‚Òæ€€ú€Û€Ð‚áÏ\nƒÕア₎ӀÊÍØí»¿àÒ€Â\n", + " €ÛŽ€÷€ÐÓ„—»å€‚€È€»€ðƒ€Â\n„˜¿ÁÅÌ‚¡„¸‚µ´ÌÑ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄã\n", + "„“„”Ò€Õ€ý¸‚º‚¡Çß\n", + "„‡‚¨’€ö€Ï¸‚º‚¡Çß\n", + "‚Ђـ߀û€»¿àƒè‚Õ„…ƒèÏ‚¹‚º\n", + "€ö€ö€Ð€Ï€â€äÒ„™„šæƒÄãØÅÉ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ‚„›‚Þ‚ß‚¬‚è€Â\n„œƒƒ„™€ÕσÄá„½ØÆ€Â\n", + "€Ð€×€Ý€Ü‚ë„„\n", + ">> €Ýÿ€È€ø€ä€ó <<\n", + " €…€…€…5†ùƒ(4†ùƒ™)€…€…€…\n\n ƒêƒë‚Î‚Ïæ€ú€Û€Ð€…€Ýÿ€È€ø€ä€ó\nƒìƒí҃ïƒð€Ý€Ï€ß€»ó҂뇳Î\n‚õÀ¸„Ü„¯ÅÉ€Â\n\n ƒöƒ÷Ҁـϑ€Ì€»€ß݃øƒùæƒúá\nƒûØãÌ»âÍ»¼‚Æ‚Çܺâ€Â\n", + " ÈÃÏÓ€¿Ë̀Ѐ»€Õ€Ï€ÿ€ø\nÒ‚„‚…‚†‚‡‚ˆ‚‰¸‚®…ÅÅÌ»É\n€Ò€ø€ò€ëÒ€„„‚‚†‚‡‚£„ƒæºâ\nÍ‚ÜåãØÆ€Â\n ƒè‚Õ„…ƒèÏ‚¹‚ºÅ€„†æ‚åã\n̻⿸‚‚ÅÌÀÌ‚ÕÄ»€Â\n„‡‚¨’€ö€ÏÒƒŠ‚éæ‚Àƒ¼ãõ‚Ë„ˆ\n„‰óÆ€Âôÿ҄‡ƒ²Ò‚áÒ„“„”\nÏ…·‚ÊÄãÌ»âÍ‚Ü»ØÆÒó\nØíÓ€Õ€ý¸‚¡Ï‚ºãÌ‚ÕÄ»€Â\n", + " ƒêƒë‚΂ÏÒ„ „¡¿àÙâÍ€ì€÷”\n€»€ãϺ₺€ú¿àÒ‚¹‚ºÓÊ·´\n̓҃ÓÎ‚ÙæÆâ€ÂÈãßáÜÈÒ\nƒŽƒìϺâ‚Ђـ߀û€»¿à‚¹‚ºÆâ\nÒæ‚¼‚½ìµä¼€Â\n Èã¿à€ö€ö€Ð€Ï€â€äÒ„™„š\n¸ƒÄâÃ͸‚ÿãíÏÎ€Â‚óæ‚¹‚º\nÅÉ‚Ž‚Òæ€ú€Û€Ð‚áσÕア₎Ó\nÊÍØí»¿àÒ€Â\n", + " €ÛŽ€÷€ÐÓ„—»å€‚€È€»€ðƒ€Â\n„˜¿ÁÅÌ‚¡„¸‚µ´ÌÑ€Â\n", + "€ö€ö€Ð€Ï€â€äÒ„™„š¸ƒÄã\n", + "„“„”Ò€Õ€ý¸‚º‚¡Çß\n", + "„‡‚¨’€ö€Ï¸‚º‚¡Çß\n", + "‚Ђـ߀û€»¿àƒè‚Õ„…ƒèÏ‚¹‚º\n", + "€ÛŽ€÷€Ð†õ„Ï €Ýÿ€È€ø€ä€ó\n", + "€…€…€… 4†ùƒ™ €…€…€…\n", + "\n", + "\n", + "\n", + "\n", + "„“„”Ó€ú€Ê€×ÄãÌ»ØÆ\n", + "€Ýÿ€È€ø€ä€ó\n", + "„‡‚¨’€ö€Ï\n", + "„‡‚¨’€ö€Ï\n", + "„‡‚¨’€ö€Ï\n", + "„‡‚¨’€ö€Ï¸‚¡Ï‚ºãÉ\n", + "\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý\n", + "„“„”Ò€Õ€ý¸‚¡Ï‚ºãÉ\n", + "\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ\n", + "ƒ¢‡´Òƒæ¸‚¡Ï‚ºãÉ\n", + NULL, + NULL +}; diff --git a/assets/obseg/text/u/LsiloJ.c b/assets/obseg/text/u/LsiloJ.c new file mode 100644 index 0000000..70ac76a --- /dev/null +++ b/assets/obseg/text/u/LsiloJ.c @@ -0,0 +1,76 @@ +#include "game/lvl_text.h" + +struct stringentry LsiloJ[] = { + " €…€…€…2†ùƒ(2†ùƒ™)€…€…€…\n\n €Ö€ø€ý€Ü€ß€ÏÒ€ú€Ø€Ê€ã €Ú€Ñ€úó†Ú‚ÈÒ\n€ú€Ø€Ê€ãƒáʃéé€â€Ü€ãæ‚åãß¼ÍÅÌ\n»âàÅ»€Â€â€Ü€ãÓ€€»€ø‰€Ï€Ð€Ñ‚΂Ï\n‚†‚‡ÒƒáʃééÍ‚•å´Ì»âÍMI-6Ó\nÏà¹ó»â€Â\n ‚¹‚º‚áÒ€Ü€Ñæ€ƒ‰ƒŠÒƒáʃééÓ\nƒþ€ÞŒ€Ó€ã„½€ÕÒƒó‚õóÓλ‚ޏ\n‚Ç‚þÅÌ»â€Â\n", + " €Ú€Ñ€úÏ‚¹‚ºÅ€„†æƒáʃééàãß¼Í\nÅÌ»âÒ¿¸‚‚ÅÌ‚ÕÄ»€Â\n\n ÜÅÈãæƒø‚ˆ‚΂ÏÎàõ€„™„À„…†³¸\nƒŠ‚éŃáʃé鸂ᄶÄÇÎÄ»€Â\n ƒ¹ƒºÎàõ€‚§‚¨¸‚¬‚­Æâ‚ŽÜƒÔ‚\nÅØÆ€Â\n\n007€ÃãÓ‚¤‚¥„‰Î€Ý€Ö€Ì€÷€â€Æ„„ÃóÆ€Â\n", + " €ú€Ø€Ê€ã€Ú€Ñ€úÒ‚¨„ƄǸÙâ¿çငȀ؂÷\nσ“„ޏ‚¨‚߯ãõ‚«ÌÒ‚§‚¨¸‚¬‚­Æâ‚Žæ\nóÀȼð€Â„ʄ˂É(H4€C3€K2€A1)\nÏ‚¨‚ßÆâ‚Žó‚€‚¸„Ì‚ÄÇ₎æóÀâ€Â\n 007€ƒ“ƒ¥ƒ²Òƒš»ÏÓÁãèã܂ٸƒŽÂÌ\nÁã€ÂŽ€Ñ€ø€»€ãóƒ’ôÉ004Òƒò΂ŽÏÓ\nÎàλ߼Ï΀Â\n Èã¿àƒø‚ˆ‚΂ÏÒ„ „¡¸„±´ÌÀÌÁã€Â\nÈãÏÓ»»„Í»‚¡æ»ÌÑ€Â\n", + " 18‚ÓÏŒ€Û€Ì€Ø€Ê€×Ö‚ð¿´ÌÑ€Â\n ‚€È€»€ðƒ€ƒö„΄ÏÒ€ú€î€Ï€à€Ê€×΄и\n‚Ü»„Ñ¿øÌ€Â‚ÏÒ‚ÕÏ‚àÉåá€Ö€Ë€Ï’\n€ë€Å€Ñ€ó€»Òƒ™ó€åƒøÓ„¯ËÛ‚ö¼€Â\n\nôÃÒ„Òð¿å¿àλƒ…ƒ†Ò„ÓÒ‚áó„Ôà»ó\n»â‚Ó€„ÕÒ„ÖáÈÈè€ú€ÏŠ€Ïó€Ô€ë€Æ€ÜÏ\n‚íìÃܴ̃¿‚ޏÅ̻⃡҂ŽÜ\n‚Ü»‚ÀÅÌÑ€Â\n", + "„ʄ˂Éσ“„ޏƒ¿„×Âß\n", + "ƒø‚ˆ‚΂ÏÒ„ „¡¸„±ã\n", + "‚ñ‚Œ DAT €â€»’¸‚º‚¡Çß\n", + "ƒø‚ˆ‚΂ÏÒ„™„À„…†³¸ƒŠ‚éÇß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "ƒ“„ŽÒ€Ý€Ê€ã‚â‚ã€Âƒ“„ÜØóºÍ6ƒ‘\n", + "€Ò€ø€ò€ë:€‡Ý˸†¹Ç ! €ˆ\n", + "‚Ý‚þ:€‡ƒ“„ÜØóºÍåí¿€ˆ\n", + "‚€‚‚æ‚ç: ‚ø‚…‚ Ò†“†”憗ÆçØÆ\n", + ">> €Ö€ø€ý€Ü€ß€Ï <<\n", + " €…€…€…2†ùƒ(2†ùƒ™)€…€…€…\n €Ö€ø€ý€Ü€ß€ÏÒ€ú€Ø€Ê€ã€Ú€Ñ€úó\n†Ú‚ÈÒ€ú€Ø€Ê€ãƒáʃéé€â€Ü€ãæ‚\nåãß¼ÍÅÌ»âàÅ»€Â\n €â€Ü€ãÓ€€»€ø‰€Ï€Ð€Ñ‚΂ς†‚‡\nÒƒáʃééÍ‚•å´Ì»âÍMI-6Ó\nÏà¹ó»â€Â\n ‚¹‚º‚áÒ€Ü€Ñæ€ƒ‰ƒŠÒƒáʃé\néæƒþ€ÞŒ€Ó€ã„½€ÕÒƒó‚õóÓλ\n‚ޏ‚Ç‚þÅÌ»â€Â\n", + " €Ú€Ñ€úÏ‚¹‚ºÅ€„†æƒáʃééà\nãß¼ÍÅÌ»âÒ¿¸‚‚ÅÌ‚Õ\nÄ»€ÂÜÅÈãæƒø‚ˆ‚΂ÏÎàõ€\n„™„À„…†³¸ƒŠ‚éŃáʃé鸂ᄶÄ\nÇÎÄ»€Â\n ƒ¹ƒºÎàõ€‚§‚¨¸‚¬‚­Æâ‚ŽÜ\nƒÔ‚ÅØÆ€Â\n 007€ÃãÓ‚¤‚¥„‰Î€Ý€Ö€Ì€÷\n€â€Æ„„ÃóÆ€Â\n", + " €ú€Ø€Ê€ã€Ú€Ñ€úÒ‚¨„ƄǸÙ↖\nငȀ؂÷σ“„ޏ‚¨‚߯ãõ‚«Ì\nÒ‚§‚¨¸‚¬‚­Æâ‚ŽæóÀȼð€Â\n„ʄ˂É(H4€C3€K2€A1)Ï‚¨‚ß\nÆãõOKìµ€Â\n ƒ“ƒ¥ƒ²Òƒš»ÏÓÁãèã܂ٸ\nƒŽÂä€ÂŽ€Ñ€ø€»€ãóƒ’ôÉ004\nÒƒò΂ŽÏÓÎàλ߼Ï΀Â\n Èã¿àƒø‚ˆ‚΂ÏÒ„ „¡¸„±´Ì\nÁã€Â»»„Í»‚¡æ»âÒó΀Â\n", + " 18‚ÓÏŒ€Û€Ì€Ø€Ê€×Ö‚ð¿´Ì€Â\n‚€È€»€ðƒ€ƒö„΄ÏÒ€ú€î€Ï€à€Ê€×\n΄и‚Ü»„Ñ¿øÌ€Â‚ÏÒ‚ÕÏ‚àÉ\nåá€Ö€Ë€Ï’€ë€Å€Ñ€ó€»Òƒ™ó€åƒø\nÓ„¯ËÛ‚ö¼€Â\n ôÃÒ„Òð¿å¿àλƒ…ƒ†Ò\n„ÓÒ‚áó„Ôà»óâ‚Ó€„ÕÒ„Öá\nÈÈè€ú€ÏŠ€Ïó€Ô€ë€Æ€ÜÏ‚íìÃ\ñܴ¿‚ޏÅ̻⃡҂ŽÜ‚Ü»\n‚ÀÅÌÑ€Â\n", + "„ʄ˂Éσ“„ޏƒ¿„×Âß\n", + "ƒø‚ˆ‚΂ÏÒ„ „¡¸„±ã\n", + "‚ñ‚Œ DAT €â€»’¸‚º‚¡Çß\n", + "ƒø‚ˆ‚΂ÏÒ„™„À„…†³¸ƒŠ‚éÇß\n", + "‚ø‚…‚ Ò†“†”¸‚Ôƒ¢†–Ï\n", + "\n", + "CPU „…†³\n", + "CPU „…†³\n", + "CPU „…†³\n", + "CPU „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "I/O „…†³\n", + "I/O „…†³\n", + "I/O „…†³\n", + "I/O „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "RSP „…†³\n", + "RSP „…†³\n", + "RSP „…†³\n", + "RSP „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "RDP „…†³\n", + "RDP „…†³\n", + "RDP „…†³\n", + "RDP „…†³¸‚¡Ï‚ºãÉ\n", + "\n", + "DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’\n", + "‚ñ‚Œ DAT €â€»’¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-H4\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-H4)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-C3\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-C3)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "\n", + "€Ö€»€Õ€»Š\n", + "€Ö€»€Õ€»Š4-K2\n", + "€Ö€»€Õ€»Š(€ùŽ€ø4-K2)\n", + "€Ö€»€Õ€»Š¸‚¡Ï‚ºãÉ\n", + "€Ò€ø€ò€ëÒ\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü\n", + "€Ò€ø€ò€ëҀЀ߀ʀۀ̀؀»€Ü\n", + "€Ò€ø€ò€ëҀЀ߀ʀۀ̀؀»€Ü\n", + "€Ð€ß€Ê€Û€Ì€Ø€»€Ü¸‚¡Ï‚ºãÉ\n", + "€ú€Ø€Ê€ã €Ú€Ñ€ú €Ö€ø€ý€Ü€ß€Ï\n", + "€…€…€… 2†ùƒ™ €…€…€…\n", + "€ÏŠæ‚¾ÊÃ¹ðƒ“„ŽÒ\n‚Ó†–‚Þ‚ßæ„Š‚õÅÌÅØ´É !\n", + NULL +}; diff --git a/assets/obseg/text/u/LtitleJ.c b/assets/obseg/text/u/LtitleJ.c new file mode 100644 index 0000000..4035366 --- /dev/null +++ b/assets/obseg/text/u/LtitleJ.c @@ -0,0 +1,292 @@ +#include "game/lvl_text.h" + +struct stringentry LtitleJ[] = { + "‚Ó‚©", + "ƒ‘", + "ƒÂ", + "", + "€Ü€ß€»€ã\n", + "… Ò“€»‚\n", + "ƒ™Ò“€»‚\n", + "TWYCROSS BOARD OF GAME CLASSIFICATION\n", + "This is to certify\n", + "(c) 1997 Nintendo/Rare\n", + "(c) 1962, 1995 Danjaq, LLC. &\n", + "U.A.C. All Rights Reserved\n", + "(c) 1997 Eon Productions\n", + "Ltd. & Mac B. Inc.\n", + "Suitable only for 1-4 persons\n", + "PRESIDENT\n", + "VICE\n", + "James Bond theme by Monty Norman.\n", + "Used by permission of EMI Unart Catalog Inc.\n", + "€Ü€Ñ", + "…˜ƒ´€Ü€Ñ", + "<00Agent>", + "007", + "€ë€Å€Ñ€ø„Ä…ä€À\n", + "‚Ãá„ÄÅ\n", + "‚Ò‚\n", + "€ï€Ê€Û€Í€Ï ", + "€Ù‘€»\n", + "„Ä…ä\n", + "€ï€Ê€Û€Í€Ï†½†¾\n", + "‚±„‘’€ù€Ñ\n", + "¾ƒ°ÅÙ€ò€»Š\n", + ":‚€È€»€ðƒ €ÏŠ\n", + "€ï€Ê€Û€Í€Ï ", + "€»€ã ", + "‚½†¿ƒ•:\n", + "€Ü€Ñ\n", + "…˜ƒ´€Ü€Ñ\n", + "<00Agent>\n", + "007\n", + "…˜†À€Ô’€Û€Í€Ï:\n", + "„Ҁܑ€»Š\n", + "„Ò‚œ€Õ\n", + "„Ò†€ñ€»‚\n", + "„Òƒ´‚á†Á\n", + "‚¼‚†–", + "5ƒ‘‚©", + "10ƒ‘‚©", + "20ƒ‘‚©", + "5”€Ñ€Ï€ã‚Å‚Ã", + "10”€Ñ€Ï€ã‚Å‚Ã", + "20”€Ñ€Ï€ã‚Å‚Ã", + "‚˜À…ªá„‘", + "‚І°‚±„‘", + "007Ӏ僕…¤Ð", + "€÷Œ€Ï€þ€…‰€Ñ€ö€Ñ€á(€ë€ö€Ê€þ„‘)", + "†Â„“‚׸‚¾Ë†Ã", + "„ÄÄãÉ€ö€Ñ€Ý€Ï€Ü", + "€à€»€ð„‘:2‚±2", + "€à€»€ð„‘:3‚±1", + "€à€»€ð„‘:2‚±1", + "‚œ€Õ €»10\n(…Æ…é)", + "‚œ€Õ €»4\n(Ž€â€ö€Ï)", + "‚œ€Õ €»3\n(Ž€â€ö€Ï)", + "‚œ€Õ €»2\n(Ž€â€ö€Ï)", + "‚œ€Õ €»1\n(Ž€â€ö€Ï)", + "‚œ€Õ +0\n(†Ä‚Ð)", + "‚œ€Õ +1\n(†Å†Æ)", + "‚œ€Õ +2\n(†Å†Æ)", + "‚œ€Õ +3\n(†Å†Æ)", + "‚œ€Õ +4\n(†Å†Æ)", + "‚œ€Õ +10\n(†Å‚–‚ )", + "†Ç…• OFF, …æ‚õ†Ç…• OFF", + "†Ç…• ON, …æ‚õ†Ç…• OFF", + "†Ç…• OFF, …æ‚õ†Ç…• ON", + "†Ç…• ON, …æ‚õ†Ç…• ON", + "‚±„‘’€ù€Ñ €Ô’€Û€Í€Ï:\n", + "’€ù€Ñ€ó€»:\n", + "€Û€ä€÷€Ô:\n", + "€Ü€â€»‚:\n", + "€ø€»€ø‚¨„Ÿ:\n", + "†Ž‚‡:\n", + "€Ö€Ë€ö€×€ß€»:\n", + "€é€Ï‰€Æ€Ö€Ë’:\n", + "†Ç…•:\n", + "€Ö€Ë€ö€×€ß€»†½†¾", + "€é€Ï‰€Æ€Ö€Ë€Ê’†½†¾:", + "€Û€ä€÷€Ô:\n", + "€à€»€ð†È„ÿ", + "€ù€ÊŠ€…€à€»€ð", + "€ø€»€…€à€»€ð", + "‚€‚‚â‚ã\n", + "‚€‚‚æ‚ç\n", + "ƒ¹†É‚€‚:\n", + "€Ü€â€»‚‚‚‚ƒ:\n", + "\"M\"Ò‚®‚¯:\n", + "\"Q\"Ò…à„æ:\n", + "€î€ç€»“€å€»:\n", + "€ù”€»€ã:\n", + "‚€‚……:\n", + " ‚€‚„Ì‚‚á …¤…ò\n", + " ‚€‚‚á„¶\n", + " ‚€‚‚â‚ã\n", + " ‚€‚‚æ‚ç\n", + "……:\n", + "‚Ó‚©:\n", + "ƒ´‚á†Á:\n", + "€»…çßÁ‚Ì´É†Ž‚‡:\n", + "†Ê€Û€Í€Ê€ã„È:\n", + "†Ë‚£€ê€Ê€ã:\n", + "†Ì‚œ€ê€Ê€ã:\n", + "‚¡„€ê€Ê€ã:\n", + "ÈÒƒõ:\n", + "†¹ÅɆʄÈ:\n", + "¾ƒ°ÅÙ€ò€»Š:\n", + "ON\n", + "OFF\n", + "€ï€Ê€Û€Í€Ï†½†¾(¾ƒ°ÅÙ€ò€»Š)", + "€Ù€Ï€ã€ú€»€ö€Ù€ç€×€ß 1 πـπã€ú€»€öæÄŃûØãÌ»ØÇ¹", + "„™„š¸ƒÄ´Ì€Ù€Ï€ã€ú€»€ö¸ÄŃû¹óÁðÄ»", + "€Ð€»€Õ€Ï€ÿ€ø", + "†€ð", + "‚„‚…‚ˆ‚‰", + "ƒÍ‚À", + "€Ýÿ€È€ø€ä€ó", + "†õ„Ï", + "ƒè‚Õ„…ƒè", + "€Ö€ø€ý€Ü€ß€Ï", + "€ú€Ø€Ê€ã €Ú€Ñ€ú", + "€Ú€Ñ€ú", + "€ò€Ï€â€…€Õ€ø€ú", + "„݄ބß", + " St.“€â€ø€ø€þ", + "…Î…Ï„ã…Ð", + "…Î…Ï„ã…Ð", + "‚²‚´„ª„”", + "‚²‚´„ª„”", + "†’†‰ƒè", + "†˜", + "‚²‚´†¡†Š", + "€Ö€Ì€»‹", + "‚€Ë€Ï€þ€ø", + "€ó€æ€Ü‚È‚Œ„…ƒè", + "‚È‚Œ„…ƒè", + "”€Ï’‚§‚¨", + "”€Ï’‚§‚¨", + "€Ð€Ï€â€ä‚§‚¨", + "€Ð€Ï€â€ä", + "€â€Ô€â€Æ€û€Õ€Ï", + "€Ð€Ü€â€Õ†Ð„÷", + "€Ð€Ü€â€Õ", + "€Ó‚’€ã", + "€Ó€ø€…€Ú€ê€ö†Ñ†Ò", + "€Ó‚’€ã", + "€ö€Ï†€ð", + "€ö€Ï†€ð", + "†ö†÷", + "†ö†÷", + "†Ð„÷", + "†Ð„÷", + "„Ç„ª†ø", + "„Ç„ª†ø", + "†Î†Ï", + "†Î†Ï", + "‚„‚…‚ˆ‚‰", + "‚„‚…‚ˆ‚‰", + "€Ýÿ€È€ø€ä€óƒè‚Õ„…ƒè", + "ƒè‚Õ„…ƒè", + "‚²‚´„ª„”", + "‚²‚´„ª„”", + "”€Ï’‚§‚¨", + "”€Ï’‚§‚¨", + "€Ó‚’€ã†Ñ†Ò", + "€Ó‚’€ã", + "Citadel", + "CITADEL", + "dest", + "dest", + "stat", + "stat", + "crad", + "cradle", + "azt", + "azt", + "€ÏŠ", + "€ï€Û€Ì€Ö€Ï", + "€÷€Ü", + "€Ò€ø€ò€ë", + "€ã€ùÿ€È€ø€ó€Ï", + "ÿ€Å€ù€Ï€â€Æ€Ï", + "„€å€Ð", + "€ä€ß€»€÷€Ð", + "€Ú€ï‰€Æ", + "‚€Í€»ƒ", + "€ñ€Ñ‰€»", + "€Ô€ÊŠ‚€Í€Ê", + "Rosika", + "Karl", + "Martin", + "Mark", + "Dave", + "Duncan", + "B", + "Steve E", + "Grant", + "Graeme", + "Ken", + "Alan", + "Pete", + "Shaun", + "Dwayne", + "Des", + "Chris", + "Lee", + "Neil", + "Jim", + "Robin", + "Steve H", + "Terrorist", + "Biker", + "Joel", + "Scott", + "Joe", + "Sally", + "Marion", + "Mandy", + "Vivien", + "\n", + "ÀÀ‚ÀƒÀ„\n", + "À…À†À‡ÀÀ‚ÀƒÀ„\n", + "ÀˆÀ‰ÀŠÀ‰À‹ÀŒ\n", + "ÀÀŽÀ‹ÀŒ\n", + "ÀÀÀ‘\n", + "À“À”À•À–Àà À—À‡À˜", + "À™ÀšÀ•À›Àœ ÀÀŸÀžÀ À¡À¢\n", + "ÀÀÀ’\n", + "ÀœÀ£À¤À¥ À„À£À¡À”À¦À§À‡\n", + "À¨À©ÀªÀ«À§À¬Àƒ\n", + "À­À®Àœ À¯À™À„À¤À°\n", + "À±À²\n", + "ÀœÀ•À³À•À´Àµ À¶À¦À·À¸\n", + "À—À›Àƒ À¹À›ÀÀ”À‡Àº\n", + "À»À¼À½À¾À¿ÀÀÀÁ\n", + "À¡À¢À£À‡ÀÂÀµÀ‡ ÀÃÀºÀ¸ÀƒÀÀ•\n", + "ÀÄÀÅÀÆÀÇ\n", + "À´ÀŸÀ„À› ÀŸÀÀÈÀÀ‡\n", + "À…À†À´À•\n", + "À“ÀžÀ•ÀÃ\n", + "À¯À¤À˜À“ÀžÀ¤ÀÉ\n", + "ÀÊÀŸÀ´Àµ\n", + "ÀÍÀÎÀÏÀÐ\n", + "ÀÊÀ‡À¥À„ÀÑÀÒÀÂÀ¦ÀÉÀ¦À¹ÀÕ\n", + "ÀÖÀÀœÀ²À×ÀÕ\n", + "ÀÖÀÀœÀ²ÀÕ\n", + "À§À¬ÀƒÀØÀ²ÀÕ\n", + "À§À¬ÀƒÀÀŽÀÏÀÐ\n", + "ÀÖÀÀœÀ²ÀÙÀÚÀÛ\n", + "ÀØÀ²À±ÀÕ\n", + "ÀÀÜÀ›ÀœÀÓÀÔÀÐ\n", + "ÀÝÀÞÀÀßÀÐ\n", + "ÀÀÜÀ›ÀœÀÀŽÀÏÀÐ\n", + "À–À•À‡À£À•À³À•ÀÀàÀÏÀÐ\n", + "ÀáÀ›ÀºÀ°ÀšÀ•ÀâÀãÀä\n", + "ÀåÀæÀç\n", + "ÀèÀé\n", + "€Ñ€»‚€»:\n", + "€è€»€î€ø:\n", + "€é€»Š:\n", + "€Ü“€Û€Ë€ø:\n", + "„Ç„ª†ø(ƒè‚ÕÒÙ)", + "„Ç„ª†ø(‚Õ)", + "„Ç„ª†ø(€ñ€Ñ€Ï€ë€ú€ÐÒÙ)", + "„Ç„ª†ø(ƒé)", + "ހ܀ã€ß€Ñ€ð:", + "„Û‡›€ß€Ñ€ð:", + "†óÅ»\"¾ƒ°ÅÙ\" !", + "¾ƒ°ÅÙ‚±„‘\n", + "1.1 Honey\n", + "1.2 Solitaire\n", + "1.3 Kissy\n", + "1.4 Goodnight\n", + "2.1 Plenty\n", + "2.2 Galore\n", + "2.3 Domino\n", + "2.4 Goodhead\n", + "Select Control Style\n", + "Control Style\n", + NULL +}; diff --git a/assets/obseg/text/u/LtraJ.c b/assets/obseg/text/u/LtraJ.c new file mode 100644 index 0000000..7ae2c7a --- /dev/null +++ b/assets/obseg/text/u/LtraJ.c @@ -0,0 +1,52 @@ +#include "game/lvl_text.h" + +struct stringentry LtraJ[] = { + " „ë„ì„í„î<€ó€æ€Ü>Ò€ì€ÊŠ\n€Ð€ù€Ê€×€…€ã€ùÿ€È€ø€ó€Ï(…Ù006)Ó\n€ä€ß€»€÷€Ð¸ƒø„çÏ‚ÃကҀø€ò€ëàÍ‚²‚´†¡†Š\nσçáƒû¹ð€Â\n", + " …ă™Ï܃ø„ç„è‚À„Š„‘󅆩΅¿‚©¸‚æ´Ì\n»ØÆ€Â\n …¦ƒø„‰Î‡À‚ÆÓ‚ÿ〆ðƒÜ¸…·´Ì‚‚õÏ\n†ª´Ì‚ÕÄ»€Â007€Â\n", + " 007€Â‚Ø‚·Î„Š…¡ìµß€Â†«†Š…ëÒ\n€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Æãõ€„œƒƒ€Û€Ü€â€ðæ\n„Š‚õÅ€†¡†ŠÓ„µ„¶ÆâÓíìµ€Â\n", + " ‚€È€»€ðƒ€ØÉºÒ†‚€À\nÃáλåÑ€Â\n", + "€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸„è‚ÀÇß\n", + "€ó€æ€Ü‚È‚Œ„…ƒèÒ†ë‚߸‚‚Çß\n", + "€÷€ÜҀ܀û€»Š¸ƒ€ƒÇß\n", + "†¡†Š¿àƒÍ‚ÀÇß\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Èã…ăéƒìÁσ¼âÎ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡»»ƒÇƒÈÏÁÉõã ! €ˆ\n", + "€ÏŠ:€‡‚óæ‚Åð€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ£Ó2Ëð€Âô´Ê¸‚Ãâ€À\nƒ…¿€‚€‚¿€À€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ±Ê„ÛÓλî€Â‚€È€»€ðƒ€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡„€å€Ð ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡„•„–¸ƒÁÇ ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚€È€»€ðƒ ÃãÓ\nι̃ŃÆÎ€Øº‚áÏ‚ºáÉØ½€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡Ü¼‚üéâËÜá¿»€À\nȼƒé‚¡Á»¿¹ß€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡‚üéàã¹ß€Â€ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡¾Ø½Òƒ´ÜºÍ1ƒ‘¿...€ˆ\n", + "€ä€ß€»€÷€Ð:€‡€Ýÿ€È€ø€ä€óÒ„…ƒèó»´Å·ð´É\n€÷€ÜÒ€ë€Å€Ñ€øÏƒ«‚ºÆãõ€ºÒ2ƒøÒ‚À‚Åæ\nå¿â¿ÜÅãλ€Â…¥øâå€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡å¿´Éå€Â€Ö€Ì€»‹ß ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚ÍҀ܀û€»Š¸\nƒ€ƒóÀÉà............€ˆ\n", + "€ä€ß€»€÷€Ð:€‡ƒ‘¿´Éå ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡‚€È€»€ðƒ ƒ‰‚Áå ! €ˆ\n", + "€ã€ùÿ€È€ø€ó€Ï:€‡ƒ®»ï€Â007 ! €ˆ\n", + "€ä€ß€»€÷€Ð:€‡¼Ø»åÑ ! €Â‚€È€»€ðƒ€Â\nƒ¡ÒìµØ¸ÆâÒæ€…€…€…€Â€ˆ\n", + "€ä€ß€»€÷€Ð:€‡Ãã쵯€ºÒ2ƒøÒ\n‚À‚ÅÓ‚‚óÀλå ! €ˆ\n", + "‚€‚‚æ‚ç: €ä€ß€»€÷€Ð…¤…ò\n", + ">> ‚²‚´†¡†Š <<\n", + " „ë„ì„í„î<€ó€æ€Ü>Ò€ì€ÊŠ\n€Ð€ù€Ê€×€…€ã€ùÿ€È€ø€ó€Ï\n(…Ù006)Ó€ä€ß€»€÷€Ð¸ƒø„çÏ\n‚ÃကҀø€ò€ëàÍ‚²‚´†¡†ŠÏ\nƒçáƒû¹ð€Â\n", + " …ă™Ï܃ø„ç„è‚À„Š„‘󅆩Î\n…¿‚©¸‚æ´Ì»ØÆ€Â\n …¦ƒø„‰Î‡À‚ÆÓ‚ÿ〆ðƒÜ¸…·´\nÌ‚‚õφª´Ì‚ÕÄ»€Â007€Â\n", + " 007€Â‚Ø‚·Î„Š…¡ìµß€Â\n†«†Š…ëÒ€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­\nÆãõ€„œƒƒ€Û€Ü€â€ð愊‚õÅ€\n†¡†ŠÓ„µ„¶ÆâÓíìµ€Â\n", + " ‚€È€»€ðƒ€ØÉºÒ†‚€À\nÃáλåÑ€Â\n", + "€ù€»€Ö€ô€å€Ê€ã¸‚¬‚­Çß\n", + "€ä€ß€»€÷€Ð¸„è‚ÀÇß\n", + "€ó€æ€Ü‚È‚Œ„…ƒèÒ†ë‚߸‚‚Çß\n", + "€÷€ÜҀ܀û€»Š¸ƒ€ƒÇß\n", + "†¡†Š¿àƒÍ‚ÀÇß\n", + "\n", + "Š€ÐÒƒæ\n", + "†¡†ŠÒŠ€ÐÒƒæ\n", + "†¡†ŠÒŠ€ÐÒƒæ\n", + "Š€Ð҃渂¡Ï‚ºãÉ\n", + "‚²‚´†¡†Š ‡¹Ï‚ð¿´Ì„ø‚‚á\n", + NULL, + NULL, + NULL +}; diff --git a/diff.py b/diff.py new file mode 100644 index 0000000..abb9eac --- /dev/null +++ b/diff.py @@ -0,0 +1,1507 @@ +#!/usr/bin/env python3 +# PYTHON_ARGCOMPLETE_OK +import argparse +import sys +from typing import ( + Any, + Dict, + List, + Match, + NamedTuple, + NoReturn, + Optional, + Set, + Tuple, + Union, +) + + +def fail(msg: str) -> NoReturn: + print(msg, file=sys.stderr) + sys.exit(1) + + +# Prefer to use diff_settings.py from the current working directory +sys.path.insert(0, ".") +try: + import diff_settings +except ModuleNotFoundError: + fail("Unable to find diff_settings.py in the same directory.") +sys.path.pop(0) + +# ==== COMMAND-LINE ==== + +try: + import argcomplete # type: ignore +except ModuleNotFoundError: + argcomplete = None + +parser = argparse.ArgumentParser(description="Diff MIPS or AArch64 assembly.") + +start_argument = parser.add_argument( + "start", + help="Function name or address to start diffing from.", +) + +if argcomplete: + + def complete_symbol( + prefix: str, parsed_args: argparse.Namespace, **kwargs: object + ) -> List[str]: + if not prefix or prefix.startswith("-"): + # skip reading the map file, which would + # result in a lot of useless completions + return [] + config: Dict[str, Any] = {} + diff_settings.apply(config, parsed_args) # type: ignore + mapfile = config.get("mapfile") + if not mapfile: + return [] + completes = [] + with open(mapfile) as f: + data = f.read() + # assume symbols are prefixed by a space character + search = f" {prefix}" + pos = data.find(search) + while pos != -1: + # skip the space character in the search string + pos += 1 + # assume symbols are suffixed by either a space + # character or a (unix-style) line return + spacePos = data.find(" ", pos) + lineReturnPos = data.find("\n", pos) + if lineReturnPos == -1: + endPos = spacePos + elif spacePos == -1: + endPos = lineReturnPos + else: + endPos = min(spacePos, lineReturnPos) + if endPos == -1: + match = data[pos:] + pos = -1 + else: + match = data[pos:endPos] + pos = data.find(search, endPos) + completes.append(match) + return completes + + setattr(start_argument, "completer", complete_symbol) + +parser.add_argument( + "end", + nargs="?", + help="Address to end diff at.", +) +parser.add_argument( + "-o", + dest="diff_obj", + action="store_true", + help="Diff .o files rather than a whole binary. This makes it possible to " + "see symbol names. (Recommended)", +) +parser.add_argument( + "-e", + "--elf", + dest="diff_elf_symbol", + metavar="SYMBOL", + help="Diff a given function in two ELFs, one being stripped and the other " + "one non-stripped. Requires objdump from binutils 2.33+.", +) +parser.add_argument( + "--source", + action="store_true", + help="Show source code (if possible). Only works with -o and -e.", +) +parser.add_argument( + "--inlines", + action="store_true", + help="Show inline function calls (if possible). Only works with -o and -e.", +) +parser.add_argument( + "--base-asm", + dest="base_asm", + metavar="FILE", + help="Read assembly from given file instead of configured base img.", +) +parser.add_argument( + "--write-asm", + dest="write_asm", + metavar="FILE", + help="Write the current assembly output to file, e.g. for use with --base-asm.", +) +parser.add_argument( + "-m", + "--make", + dest="make", + action="store_true", + help="Automatically run 'make' on the .o file or binary before diffing.", +) +parser.add_argument( + "-l", + "--skip-lines", + dest="skip_lines", + type=int, + default=0, + metavar="LINES", + help="Skip the first N lines of output.", +) +parser.add_argument( + "-s", + "--stop-jr-ra", + dest="stop_jrra", + action="store_true", + help="Stop disassembling at the first 'jr ra'. Some functions have multiple return points, so use with care!", +) +parser.add_argument( + "-i", + "--ignore-large-imms", + dest="ignore_large_imms", + action="store_true", + help="Pretend all large enough immediates are the same.", +) +parser.add_argument( + "-I", + "--ignore-addr-diffs", + action="store_true", + help="Ignore address differences. Currently only affects AArch64.", +) +parser.add_argument( + "-B", + "--no-show-branches", + dest="show_branches", + action="store_false", + help="Don't visualize branches/branch targets.", +) +parser.add_argument( + "-S", + "--base-shift", + dest="base_shift", + type=str, + default="0", + help="Diff position X in our img against position X + shift in the base img. " + 'Arithmetic is allowed, so e.g. |-S "0x1234 - 0x4321"| is a reasonable ' + "flag to pass if it is known that position 0x1234 in the base img syncs " + "up with position 0x4321 in our img. Not supported together with -o.", +) +parser.add_argument( + "-w", + "--watch", + dest="watch", + action="store_true", + help="Automatically update when source/object files change. " + "Recommended in combination with -m.", +) +parser.add_argument( + "-3", + "--threeway=prev", + dest="threeway", + action="store_const", + const="prev", + help="Show a three-way diff between target asm, current asm, and asm " + "prior to -w rebuild. Requires -w.", +) +parser.add_argument( + "-b", + "--threeway=base", + dest="threeway", + action="store_const", + const="base", + help="Show a three-way diff between target asm, current asm, and asm " + "when diff.py was started. Requires -w.", +) +parser.add_argument( + "--width", + dest="column_width", + type=int, + default=50, + help="Sets the width of the left and right view column.", +) +parser.add_argument( + "--algorithm", + dest="algorithm", + default="levenshtein", + choices=["levenshtein", "difflib"], + help="Diff algorithm to use. Levenshtein gives the minimum diff, while difflib " + "aims for long sections of equal opcodes. Defaults to %(default)s.", +) +parser.add_argument( + "--max-size", + "--max-lines", + dest="max_lines", + type=int, + default=1024, + help="The maximum length of the diff, in lines.", +) + +# Project-specific flags, e.g. different versions/make arguments. +add_custom_arguments_fn = getattr(diff_settings, "add_custom_arguments", None) +if add_custom_arguments_fn: + add_custom_arguments_fn(parser) + +if argcomplete: + argcomplete.autocomplete(parser) + +# ==== IMPORTS ==== + +# (We do imports late to optimize auto-complete performance.) + +import re +import os +import ast +import subprocess +import difflib +import string +import itertools +import threading +import queue +import time + + +MISSING_PREREQUISITES = ( + "Missing prerequisite python module {}. " + "Run `python3 -m pip install --user colorama ansiwrap watchdog python-Levenshtein cxxfilt` to install prerequisites (cxxfilt only needed with --source)." +) + +try: + from colorama import Fore, Style, Back # type: ignore + import ansiwrap # type: ignore + import watchdog # type: ignore +except ModuleNotFoundError as e: + fail(MISSING_PREREQUISITES.format(e.name)) + +# ==== CONFIG ==== + +args = parser.parse_args() + +# Set imgs, map file and make flags in a project-specific manner. +config: Dict[str, Any] = {} +diff_settings.apply(config, args) # type: ignore + +arch: str = config.get("arch", "mips") +baseimg: Optional[str] = config.get("baseimg") +myimg: Optional[str] = config.get("myimg") +mapfile: Optional[str] = config.get("mapfile") +makeflags: List[str] = config.get("makeflags", []) +source_directories: Optional[List[str]] = config.get("source_directories") +objdump_executable: Optional[str] = config.get("objdump_executable") + +MAX_FUNCTION_SIZE_LINES: int = args.max_lines +MAX_FUNCTION_SIZE_BYTES: int = MAX_FUNCTION_SIZE_LINES * 4 + +COLOR_ROTATION: List[str] = [ + Fore.MAGENTA, + Fore.CYAN, + Fore.GREEN, + Fore.RED, + Fore.LIGHTYELLOW_EX, + Fore.LIGHTMAGENTA_EX, + Fore.LIGHTCYAN_EX, + Fore.LIGHTGREEN_EX, + Fore.LIGHTBLACK_EX, +] + +BUFFER_CMD: List[str] = ["tail", "-c", str(10 ** 9)] +LESS_CMD: List[str] = ["less", "-SRic", "-#6"] + +DEBOUNCE_DELAY: float = 0.1 +FS_WATCH_EXTENSIONS: List[str] = [".c", ".h"] + +# ==== LOGIC ==== + +ObjdumpCommand = Tuple[List[str], str, Optional[str]] + +if args.algorithm == "levenshtein": + try: + import Levenshtein # type: ignore + except ModuleNotFoundError as e: + fail(MISSING_PREREQUISITES.format(e.name)) + +if args.source: + try: + import cxxfilt # type: ignore + except ModuleNotFoundError as e: + fail(MISSING_PREREQUISITES.format(e.name)) + +if args.threeway and not args.watch: + fail("Threeway diffing requires -w.") + +if objdump_executable is None: + for objdump_cand in ["mips-linux-gnu-objdump", "mips64-elf-objdump"]: + try: + subprocess.check_call( + [objdump_cand, "--version"], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + objdump_executable = objdump_cand + break + except subprocess.CalledProcessError: + pass + except FileNotFoundError: + pass + +if not objdump_executable: + fail( + "Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist, or configure objdump_executable." + ) + + +def maybe_eval_int(expr: str) -> Optional[int]: + try: + ret = ast.literal_eval(expr) + if not isinstance(ret, int): + raise Exception("not an integer") + return ret + except Exception: + return None + + +def eval_int(expr: str, emsg: str) -> int: + ret = maybe_eval_int(expr) + if ret is None: + fail(emsg) + return ret + + +def eval_line_num(expr: str) -> int: + return int(expr.strip().replace(":", ""), 16) + + +def run_make(target: str) -> None: + subprocess.check_call(["make"] + makeflags + [target]) + + +def run_make_capture_output(target: str) -> "subprocess.CompletedProcess[bytes]": + return subprocess.run( + ["make"] + makeflags + [target], + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + ) + + +def restrict_to_function(dump: str, fn_name: str) -> str: + out: List[str] = [] + search = f"<{fn_name}>:" + found = False + for line in dump.split("\n"): + if found: + if len(out) >= MAX_FUNCTION_SIZE_LINES: + break + out.append(line) + elif search in line: + found = True + return "\n".join(out) + + +def maybe_get_objdump_source_flags() -> List[str]: + if not args.source: + return [] + + flags = [ + "--source", + "--source-comment=│ ", + "-l", + ] + + if args.inlines: + flags.append("--inlines") + + return flags + + +def run_objdump(cmd: ObjdumpCommand) -> str: + flags, target, restrict = cmd + assert objdump_executable, "checked previously" + out = subprocess.check_output( + [objdump_executable] + arch_flags + flags + [target], universal_newlines=True + ) + if restrict is not None: + return restrict_to_function(out, restrict) + return out + + +base_shift: int = eval_int( + args.base_shift, "Failed to parse --base-shift (-S) argument as an integer." +) + + +def search_map_file(fn_name: str) -> Tuple[Optional[str], Optional[int]]: + if not mapfile: + fail(f"No map file configured; cannot find function {fn_name}.") + + try: + with open(mapfile) as f: + lines = f.read().split("\n") + except Exception: + fail(f"Failed to open map file {mapfile} for reading.") + + try: + cur_objfile = None + ram_to_rom = None + cands = [] + last_line = "" + for line in lines: + if line.startswith(" .text"): + cur_objfile = line.split()[3] + if "load address" in line: + tokens = last_line.split() + line.split() + ram = int(tokens[1], 0) + rom = int(tokens[5], 0) + ram_to_rom = rom - ram + if line.endswith(" " + fn_name): + ram = int(line.split()[0], 0) + if cur_objfile is not None and ram_to_rom is not None: + cands.append((cur_objfile, ram + ram_to_rom)) + last_line = line + except Exception as e: + import traceback + + traceback.print_exc() + fail(f"Internal error while parsing map file") + + if len(cands) > 1: + fail(f"Found multiple occurrences of function {fn_name} in map file.") + if len(cands) == 1: + return cands[0] + return None, None + + +def dump_elf() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if not baseimg or not myimg: + fail("Missing myimg/baseimg in config.") + if base_shift: + fail("--base-shift not compatible with -e") + + start_addr = eval_int(args.start, "Start address must be an integer expression.") + + if args.end is not None: + end_addr = eval_int(args.end, "End address must be an integer expression.") + else: + end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES + + flags1 = [ + f"--start-address={start_addr}", + f"--stop-address={end_addr}", + ] + + flags2 = [ + f"--disassemble={args.diff_elf_symbol}", + ] + + objdump_flags = ["-drz", "-j", ".text"] + return ( + myimg, + (objdump_flags + flags1, baseimg, None), + (objdump_flags + flags2 + maybe_get_objdump_source_flags(), myimg, None), + ) + + +def dump_objfile() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if base_shift: + fail("--base-shift not compatible with -o") + if args.end is not None: + fail("end address not supported together with -o") + if args.start.startswith("0"): + fail("numerical start address not supported with -o; pass a function name") + + objfile, _ = search_map_file(args.start) + if not objfile: + fail("Not able to find .o file for function.") + + if args.make: + run_make(objfile) + + if not os.path.isfile(objfile): + fail(f"Not able to find .o file for function: {objfile} is not a file.") + + refobjfile = "expected/" + objfile + if not os.path.isfile(refobjfile): + fail(f'Please ensure an OK .o file exists at "{refobjfile}".') + + objdump_flags = ["-drz"] + return ( + objfile, + (objdump_flags, refobjfile, args.start), + (objdump_flags + maybe_get_objdump_source_flags(), objfile, args.start), + ) + + +def dump_binary() -> Tuple[str, ObjdumpCommand, ObjdumpCommand]: + if not baseimg or not myimg: + fail("Missing myimg/baseimg in config.") + if args.make: + run_make(myimg) + start_addr = maybe_eval_int(args.start) + if start_addr is None: + _, start_addr = search_map_file(args.start) + if start_addr is None: + fail("Not able to find function in map file.") + if args.end is not None: + end_addr = eval_int(args.end, "End address must be an integer expression.") + else: + end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES + objdump_flags = ["-Dz", "-bbinary", "-EB"] + flags1 = [ + f"--start-address={start_addr + base_shift}", + f"--stop-address={end_addr + base_shift}", + ] + flags2 = [f"--start-address={start_addr}", f"--stop-address={end_addr}"] + return ( + myimg, + (objdump_flags + flags1, baseimg, None), + (objdump_flags + flags2, myimg, None), + ) + + +def ansi_ljust(s: str, width: int) -> str: + """Like s.ljust(width), but accounting for ANSI colors.""" + needed: int = width - ansiwrap.ansilen(s) + if needed > 0: + return s + " " * needed + else: + return s + + +if arch == "mips": + re_int = re.compile(r"[0-9]+") + re_comment = re.compile(r"<.*?>") + re_reg = re.compile( + r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|k[01]|fp|ra)\b" + ) + re_sprel = re.compile(r"(?<=,)([0-9]+|0x[0-9a-f]+)\(sp\)") + re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") + re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)") + forbidden = set(string.ascii_letters + "_") + arch_flags = ["-m", "mips:4300"] + branch_likely_instructions = { + "beql", + "bnel", + "beqzl", + "bnezl", + "bgezl", + "bgtzl", + "blezl", + "bltzl", + "bc1tl", + "bc1fl", + } + branch_instructions = branch_likely_instructions.union( + { + "b", + "beq", + "bne", + "beqz", + "bnez", + "bgez", + "bgtz", + "blez", + "bltz", + "bc1t", + "bc1f", + } + ) + instructions_with_address_immediates = branch_instructions.union({"jal", "j"}) +elif arch == "aarch64": + re_int = re.compile(r"[0-9]+") + re_comment = re.compile(r"(<.*?>|//.*$)") + # GPRs and FP registers: X0-X30, W0-W30, [DSHQ]0..31 + # The zero registers and SP should not be in this list. + re_reg = re.compile(r"\$?\b([dshq][12]?[0-9]|[dshq]3[01]|[xw][12]?[0-9]|[xw]30)\b") + re_sprel = re.compile(r"sp, #-?(0x[0-9a-fA-F]+|[0-9]+)\b") + re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}") + re_imm = re.compile(r"(? str: + full = pat.group(0) + if len(full) <= 1: + # leave one-digit ints alone + return full + start, end = pat.span() + if start and row[start - 1] in forbidden: + return full + if end < len(row) and row[end] in forbidden: + return full + return hex(int(full)) + + +def parse_relocated_line(line: str) -> Tuple[str, str, str]: + try: + ind2 = line.rindex(",") + except ValueError: + ind2 = line.rindex("\t") + before = line[: ind2 + 1] + after = line[ind2 + 1 :] + ind2 = after.find("(") + if ind2 == -1: + imm, after = after, "" + else: + imm, after = after[:ind2], after[ind2:] + if imm == "0x0": + imm = "0" + return before, imm, after + + +def process_mips_reloc(row: str, prev: str) -> str: + before, imm, after = parse_relocated_line(prev) + repl = row.split()[-1] + if imm != "0": + # MIPS uses relocations with addends embedded in the code as immediates. + # If there is an immediate, show it as part of the relocation. Ideally + # we'd show this addend in both %lo/%hi, but annoyingly objdump's output + # doesn't include enough information to pair up %lo's and %hi's... + # TODO: handle unambiguous cases where all addends for a symbol are the + # same, or show "+???". + mnemonic = prev.split()[0] + if mnemonic in instructions_with_address_immediates and not imm.startswith("0x"): + imm = "0x" + imm + repl += "+" + imm if int(imm, 0) > 0 else imm + if "R_MIPS_LO16" in row: + repl = f"%lo({repl})" + elif "R_MIPS_HI16" in row: + # Ideally we'd pair up R_MIPS_LO16 and R_MIPS_HI16 to generate a + # correct addend for each, but objdump doesn't give us the order of + # the relocations, so we can't find the right LO16. :( + repl = f"%hi({repl})" + else: + assert "R_MIPS_26" in row, f"unknown relocation type '{row}'" + return before + repl + after + + +def pad_mnemonic(line: str) -> str: + if "\t" not in line: + return line + mn, args = line.split("\t", 1) + return f"{mn:<7s} {args}" + + +class Line(NamedTuple): + mnemonic: str + diff_row: str + original: str + normalized_original: str + line_num: str + branch_target: Optional[str] + source_lines: List[str] + comment: Optional[str] + + +class DifferenceNormalizer: + def normalize(self, mnemonic: str, row: str) -> str: + """This should be called exactly once for each line.""" + row = self._normalize_arch_specific(mnemonic, row) + if args.ignore_large_imms: + row = re.sub(re_large_imm, "", row) + return row + + def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: + return row + + +class DifferenceNormalizerAArch64(DifferenceNormalizer): + def __init__(self) -> None: + super().__init__() + self._adrp_pair_registers: Set[str] = set() + + def _normalize_arch_specific(self, mnemonic: str, row: str) -> str: + if args.ignore_addr_diffs: + row = self._normalize_adrp_differences(mnemonic, row) + row = self._normalize_bl(mnemonic, row) + return row + + def _normalize_bl(self, mnemonic: str, row: str) -> str: + if mnemonic != "bl": + return row + + row, _ = split_off_branch(row) + return row + + def _normalize_adrp_differences(self, mnemonic: str, row: str) -> str: + """Identifies ADRP + LDR/ADD pairs that are used to access the GOT and + suppresses any immediate differences. + + Whenever an ADRP is seen, the destination register is added to the set of registers + that are part of an ADRP + LDR/ADD pair. Registers are removed from the set as soon + as they are used for an LDR or ADD instruction which completes the pair. + + This method is somewhat crude but should manage to detect most such pairs. + """ + row_parts = row.split("\t", 1) + if mnemonic == "adrp": + self._adrp_pair_registers.add(row_parts[1].strip().split(",")[0]) + row, _ = split_off_branch(row) + elif mnemonic == "ldr": + for reg in self._adrp_pair_registers: + # ldr xxx, [reg] + # ldr xxx, [reg, ] + if f", [{reg}" in row_parts[1]: + self._adrp_pair_registers.remove(reg) + return normalize_imms(row) + elif mnemonic == "add": + for reg in self._adrp_pair_registers: + # add reg, reg, + if row_parts[1].startswith(f"{reg}, {reg}, "): + self._adrp_pair_registers.remove(reg) + return normalize_imms(row) + + return row + + +def make_difference_normalizer() -> DifferenceNormalizer: + if arch == "aarch64": + return DifferenceNormalizerAArch64() + return DifferenceNormalizer() + + +def process(lines: List[str]) -> List[Line]: + normalizer = make_difference_normalizer() + skip_next = False + source_lines = [] + if not args.diff_obj: + lines = lines[7:] + if lines and not lines[-1]: + lines.pop() + + output: List[Line] = [] + stop_after_delay_slot = False + for row in lines: + if args.diff_obj and (">:" in row or not row): + continue + + if args.source and (row and row[0] != " "): + source_lines.append(row) + continue + + if "R_AARCH64_" in row: + # TODO: handle relocation + continue + + if "R_MIPS_" in row: + # N.B. Don't transform the diff rows, they already ignore immediates + # if output[-1].diff_row != "": + # output[-1] = output[-1].replace(diff_row=process_mips_reloc(row, output[-1].row_with_imm)) + new_original = process_mips_reloc(row, output[-1].original) + output[-1] = output[-1]._replace(original=new_original) + continue + + m_comment = re.search(re_comment, row) + comment = m_comment[0] if m_comment else None + row = re.sub(re_comment, "", row) + row = row.rstrip() + tabs = row.split("\t") + row = "\t".join(tabs[2:]) + line_num = tabs[0].strip() + row_parts = row.split("\t", 1) + mnemonic = row_parts[0].strip() + if mnemonic not in instructions_with_address_immediates: + row = re.sub(re_int, lambda m: hexify_int(row, m), row) + original = row + normalized_original = normalizer.normalize(mnemonic, original) + if skip_next: + skip_next = False + row = "" + mnemonic = "" + if mnemonic in branch_likely_instructions: + skip_next = True + row = re.sub(re_reg, "", row) + row = re.sub(re_sprel, "addr(sp)", row) + row_with_imm = row + if mnemonic in instructions_with_address_immediates: + row = row.strip() + row, _ = split_off_branch(row) + row += "" + else: + row = normalize_imms(row) + + branch_target = None + if mnemonic in branch_instructions: + target = row_parts[1].strip().split(",")[-1] + if mnemonic in branch_likely_instructions: + target = hex(int(target, 16) - 4)[2:] + branch_target = target.strip() + + output.append( + Line( + mnemonic=mnemonic, + diff_row=row, + original=original, + normalized_original=normalized_original, + line_num=line_num, + branch_target=branch_target, + source_lines=source_lines, + comment=comment, + ) + ) + source_lines = [] + + if args.stop_jrra and mnemonic == "jr" and row_parts[1].strip() == "ra": + stop_after_delay_slot = True + elif stop_after_delay_slot: + break + + return output + + +def format_single_line_diff(line1: str, line2: str, column_width: int) -> str: + return ansi_ljust(line1, column_width) + line2 + + +class SymbolColorer: + symbol_colors: Dict[str, str] + + def __init__(self, base_index: int) -> None: + self.color_index = base_index + self.symbol_colors = {} + + def color_symbol(self, s: str, t: Optional[str] = None) -> str: + try: + color = self.symbol_colors[s] + except: + color = COLOR_ROTATION[self.color_index % len(COLOR_ROTATION)] + self.color_index += 1 + self.symbol_colors[s] = color + t = t or s + return f"{color}{t}{Fore.RESET}" + + +def normalize_imms(row: str) -> str: + return re.sub(re_imm, "", row) + + +def normalize_stack(row: str) -> str: + return re.sub(re_sprel, "addr(sp)", row) + + +def split_off_branch(line: str) -> Tuple[str, str]: + parts = line.split(",") + if len(parts) < 2: + parts = line.split(None, 1) + off = len(line) - len(parts[-1]) + return line[:off], line[off:] + + +def color_imms(out1: str, out2: str) -> Tuple[str, str]: + # Call re_imm.sub() and record the calls made to the callback. + # We will assume they happen in the same order further down, when + # we do re_imm.sub() on the same input but with a different callback. + # (Swithing to re_imm.finditer would be cleaner...) + g1 = [] + g2 = [] + re_imm.sub(lambda m: g1.append(m.group()) or "", out1) # type: ignore + re_imm.sub(lambda m: g2.append(m.group()) or "", out2) # type: ignore + if len(g1) == len(g2): + diffs = [x != y for (x, y) in zip(g1, g2)] + it = iter(diffs) + + def maybe_color(s: str) -> str: + return f"{Fore.LIGHTBLUE_EX}{s}{Style.RESET_ALL}" if next(it) else s + + out1 = re_imm.sub(lambda m: maybe_color(m.group()), out1) + it = iter(diffs) + out2 = re_imm.sub(lambda m: maybe_color(m.group()), out2) + return out1, out2 + + +def color_branch_imms(br1: str, br2: str) -> Tuple[str, str]: + if br1 != br2: + br1 = f"{Fore.LIGHTBLUE_EX}{br1}{Style.RESET_ALL}" + br2 = f"{Fore.LIGHTBLUE_EX}{br2}{Style.RESET_ALL}" + return br1, br2 + + +def diff_sequences_difflib( + seq1: List[str], seq2: List[str] +) -> List[Tuple[str, int, int, int, int]]: + differ = difflib.SequenceMatcher(a=seq1, b=seq2, autojunk=False) + return differ.get_opcodes() + + +def diff_sequences( + seq1: List[str], seq2: List[str] +) -> List[Tuple[str, int, int, int, int]]: + if ( + args.algorithm != "levenshtein" + or len(seq1) * len(seq2) > 4 * 10 ** 8 + or len(seq1) + len(seq2) >= 0x110000 + ): + return diff_sequences_difflib(seq1, seq2) + + # The Levenshtein library assumes that we compare strings, not lists. Convert. + # (Per the check above we know we have fewer than 0x110000 unique elements, so chr() works.) + remapping: Dict[str, str] = {} + + def remap(seq: List[str]) -> str: + seq = seq[:] + for i in range(len(seq)): + val = remapping.get(seq[i]) + if val is None: + val = chr(len(remapping)) + remapping[seq[i]] = val + seq[i] = val + return "".join(seq) + + rem1 = remap(seq1) + rem2 = remap(seq2) + return Levenshtein.opcodes(rem1, rem2) # type: ignore + + +def diff_lines( + lines1: List[Line], + lines2: List[Line], +) -> List[Tuple[Optional[Line], Optional[Line]]]: + ret = [] + for (tag, i1, i2, j1, j2) in diff_sequences( + [line.mnemonic for line in lines1], + [line.mnemonic for line in lines2], + ): + for line1, line2 in itertools.zip_longest(lines1[i1:i2], lines2[j1:j2]): + if tag == "replace": + if line1 is None: + tag = "insert" + elif line2 is None: + tag = "delete" + elif tag == "insert": + assert line1 is None + elif tag == "delete": + assert line2 is None + ret.append((line1, line2)) + + return ret + + +class OutputLine: + base: Optional[str] + fmt2: str + key2: Optional[str] + + def __init__(self, base: Optional[str], fmt2: str, key2: Optional[str]) -> None: + self.base = base + self.fmt2 = fmt2 + self.key2 = key2 + + def __eq__(self, other: object) -> bool: + if not isinstance(other, OutputLine): + return NotImplemented + return self.key2 == other.key2 + + def __hash__(self) -> int: + return hash(self.key2) + + +def do_diff(basedump: str, mydump: str) -> List[OutputLine]: + output: List[OutputLine] = [] + + lines1 = process(basedump.split("\n")) + lines2 = process(mydump.split("\n")) + + sc1 = SymbolColorer(0) + sc2 = SymbolColorer(0) + sc3 = SymbolColorer(4) + sc4 = SymbolColorer(4) + sc5 = SymbolColorer(0) + sc6 = SymbolColorer(0) + bts1: Set[str] = set() + bts2: Set[str] = set() + + if args.show_branches: + for (lines, btset, sc) in [ + (lines1, bts1, sc5), + (lines2, bts2, sc6), + ]: + for line in lines: + bt = line.branch_target + if bt is not None: + btset.add(bt + ":") + sc.color_symbol(bt + ":") + + for (line1, line2) in diff_lines(lines1, lines2): + line_color1 = line_color2 = sym_color = Fore.RESET + line_prefix = " " + if line1 and line2 and line1.diff_row == line2.diff_row: + if line1.normalized_original == line2.normalized_original: + out1 = line1.original + out2 = line2.original + elif line1.diff_row == "": + out1 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line1.original}" + out2 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line2.original}" + else: + mnemonic = line1.original.split()[0] + out1, out2 = line1.original, line2.original + branch1 = branch2 = "" + if mnemonic in instructions_with_address_immediates: + out1, branch1 = split_off_branch(line1.original) + out2, branch2 = split_off_branch(line2.original) + branchless1 = out1 + branchless2 = out2 + out1, out2 = color_imms(out1, out2) + + same_relative_target = False + if line1.branch_target is not None and line2.branch_target is not None: + relative_target1 = eval_line_num(line1.branch_target) - eval_line_num(line1.line_num) + relative_target2 = eval_line_num(line2.branch_target) - eval_line_num(line2.line_num) + same_relative_target = relative_target1 == relative_target2 + + if not same_relative_target: + branch1, branch2 = color_branch_imms(branch1, branch2) + + out1 += branch1 + out2 += branch2 + if normalize_imms(branchless1) == normalize_imms(branchless2): + if not same_relative_target: + # only imms differences + sym_color = Fore.LIGHTBLUE_EX + line_prefix = "i" + else: + out1 = re.sub( + re_sprel, lambda m: sc3.color_symbol(m.group()), out1, + ) + out2 = re.sub( + re_sprel, lambda m: sc4.color_symbol(m.group()), out2, + ) + if normalize_stack(branchless1) == normalize_stack(branchless2): + # only stack differences (luckily stack and imm + # differences can't be combined in MIPS, so we + # don't have to think about that case) + sym_color = Fore.YELLOW + line_prefix = "s" + else: + # regs differences and maybe imms as well + out1 = re.sub( + re_reg, lambda m: sc1.color_symbol(m.group()), out1 + ) + out2 = re.sub( + re_reg, lambda m: sc2.color_symbol(m.group()), out2 + ) + line_color1 = line_color2 = sym_color = Fore.YELLOW + line_prefix = "r" + elif line1 and line2: + line_prefix = "|" + line_color1 = Fore.LIGHTBLUE_EX + line_color2 = Fore.LIGHTBLUE_EX + sym_color = Fore.LIGHTBLUE_EX + out1 = line1.original + out2 = line2.original + elif line1: + line_prefix = "<" + line_color1 = sym_color = Fore.RED + out1 = line1.original + out2 = "" + elif line2: + line_prefix = ">" + line_color2 = sym_color = Fore.GREEN + out1 = "" + out2 = line2.original + + if args.source and line2 and line2.comment: + out2 += f" {line2.comment}" + + def format_part( + out: str, + line: Optional[Line], + line_color: str, + btset: Set[str], + sc: SymbolColorer, + ) -> Optional[str]: + if line is None: + return None + in_arrow = " " + out_arrow = "" + if args.show_branches: + if line.line_num in btset: + in_arrow = sc.color_symbol(line.line_num, "~>") + line_color + if line.branch_target is not None: + out_arrow = " " + sc.color_symbol(line.branch_target + ":", "~>") + out = pad_mnemonic(out) + return f"{line_color}{line.line_num} {in_arrow} {out}{Style.RESET_ALL}{out_arrow}" + + part1 = format_part(out1, line1, line_color1, bts1, sc5) + part2 = format_part(out2, line2, line_color2, bts2, sc6) + key2 = line2.original if line2 else None + + mid = f"{sym_color}{line_prefix}" + + if line2: + for source_line in line2.source_lines: + color = Style.DIM + # File names and function names + if source_line and source_line[0] != "│": + color += Style.BRIGHT + # Function names + if source_line.endswith("():"): + # Underline. Colorama does not provide this feature, unfortunately. + color += "\u001b[4m" + try: + source_line = cxxfilt.demangle( + source_line[:-3], external_only=False + ) + except: + pass + output.append( + OutputLine( + None, + f" {color}{source_line}{Style.RESET_ALL}", + source_line, + ) + ) + + fmt2 = mid + " " + (part2 or "") + output.append(OutputLine(part1, fmt2, key2)) + + return output + + +def chunk_diff(diff: List[OutputLine]) -> List[Union[List[OutputLine], OutputLine]]: + cur_right: List[OutputLine] = [] + chunks: List[Union[List[OutputLine], OutputLine]] = [] + for output_line in diff: + if output_line.base is not None: + chunks.append(cur_right) + chunks.append(output_line) + cur_right = [] + else: + cur_right.append(output_line) + chunks.append(cur_right) + return chunks + + +def format_diff( + old_diff: List[OutputLine], new_diff: List[OutputLine] +) -> Tuple[str, List[str]]: + old_chunks = chunk_diff(old_diff) + new_chunks = chunk_diff(new_diff) + output: List[Tuple[str, OutputLine, OutputLine]] = [] + assert len(old_chunks) == len(new_chunks), "same target" + empty = OutputLine("", "", None) + for old_chunk, new_chunk in zip(old_chunks, new_chunks): + if isinstance(old_chunk, list): + assert isinstance(new_chunk, list) + if not old_chunk and not new_chunk: + # Most of the time lines sync up without insertions/deletions, + # and there's no interdiffing to be done. + continue + differ = difflib.SequenceMatcher(a=old_chunk, b=new_chunk, autojunk=False) + for (tag, i1, i2, j1, j2) in differ.get_opcodes(): + if tag in ["equal", "replace"]: + for i, j in zip(range(i1, i2), range(j1, j2)): + output.append(("", old_chunk[i], new_chunk[j])) + if tag in ["insert", "replace"]: + for j in range(j1 + i2 - i1, j2): + output.append(("", empty, new_chunk[j])) + if tag in ["delete", "replace"]: + for i in range(i1 + j2 - j1, i2): + output.append(("", old_chunk[i], empty)) + else: + assert isinstance(new_chunk, OutputLine) + assert new_chunk.base + # old_chunk.base and new_chunk.base have the same text since + # both diffs are based on the same target, but they might + # differ in color. Use the new version. + output.append((new_chunk.base, old_chunk, new_chunk)) + + # TODO: status line, with e.g. approximate permuter score? + width = args.column_width + if args.threeway: + header_line = "TARGET".ljust(width) + " CURRENT".ljust(width) + " PREVIOUS" + diff_lines = [ + ansi_ljust(base, width) + + ansi_ljust(new.fmt2, width) + + (old.fmt2 or "-" if old != new else "") + for (base, old, new) in output + ] + else: + header_line = "" + diff_lines = [ + ansi_ljust(base, width) + new.fmt2 + for (base, old, new) in output + if base or new.key2 is not None + ] + return header_line, diff_lines + + +def debounced_fs_watch( + targets: List[str], + outq: "queue.Queue[Optional[float]]", + debounce_delay: float, +) -> None: + import watchdog.events # type: ignore + import watchdog.observers # type: ignore + + class WatchEventHandler(watchdog.events.FileSystemEventHandler): # type: ignore + def __init__( + self, queue: "queue.Queue[float]", file_targets: List[str] + ) -> None: + self.queue = queue + self.file_targets = file_targets + + def on_modified(self, ev: object) -> None: + if isinstance(ev, watchdog.events.FileModifiedEvent): + self.changed(ev.src_path) + + def on_moved(self, ev: object) -> None: + if isinstance(ev, watchdog.events.FileMovedEvent): + self.changed(ev.dest_path) + + def should_notify(self, path: str) -> bool: + for target in self.file_targets: + if path == target: + return True + if args.make and any( + path.endswith(suffix) for suffix in FS_WATCH_EXTENSIONS + ): + return True + return False + + def changed(self, path: str) -> None: + if self.should_notify(path): + self.queue.put(time.time()) + + def debounce_thread() -> NoReturn: + listenq: "queue.Queue[float]" = queue.Queue() + file_targets: List[str] = [] + event_handler = WatchEventHandler(listenq, file_targets) + observer = watchdog.observers.Observer() + observed = set() + for target in targets: + if os.path.isdir(target): + observer.schedule(event_handler, target, recursive=True) + else: + file_targets.append(target) + target = os.path.dirname(target) or "." + if target not in observed: + observed.add(target) + observer.schedule(event_handler, target) + observer.start() + while True: + t = listenq.get() + more = True + while more: + delay = t + debounce_delay - time.time() + if delay > 0: + time.sleep(delay) + # consume entire queue + more = False + try: + while True: + t = listenq.get(block=False) + more = True + except queue.Empty: + pass + outq.put(t) + + th = threading.Thread(target=debounce_thread, daemon=True) + th.start() + + +class Display: + basedump: str + mydump: str + emsg: Optional[str] + last_diff_output: Optional[List[OutputLine]] + pending_update: Optional[Tuple[str, bool]] + ready_queue: "queue.Queue[None]" + watch_queue: "queue.Queue[Optional[float]]" + less_proc: "Optional[subprocess.Popen[bytes]]" + + def __init__(self, basedump: str, mydump: str) -> None: + self.basedump = basedump + self.mydump = mydump + self.emsg = None + self.last_diff_output = None + + def run_less(self) -> "Tuple[subprocess.Popen[bytes], subprocess.Popen[bytes]]": + if self.emsg is not None: + output = self.emsg + else: + diff_output = do_diff(self.basedump, self.mydump) + last_diff_output = self.last_diff_output or diff_output + if args.threeway != "base" or not self.last_diff_output: + self.last_diff_output = diff_output + header, diff_lines = format_diff(last_diff_output, diff_output) + header_lines = [header] if header else [] + output = "\n".join(header_lines + diff_lines[args.skip_lines :]) + + # Pipe the output through 'tail' and only then to less, to ensure the + # write call doesn't block. ('tail' has to buffer all its input before + # it starts writing.) This also means we don't have to deal with pipe + # closure errors. + buffer_proc = subprocess.Popen( + BUFFER_CMD, stdin=subprocess.PIPE, stdout=subprocess.PIPE + ) + less_proc = subprocess.Popen(LESS_CMD, stdin=buffer_proc.stdout) + assert buffer_proc.stdin + assert buffer_proc.stdout + buffer_proc.stdin.write(output.encode()) + buffer_proc.stdin.close() + buffer_proc.stdout.close() + return (buffer_proc, less_proc) + + def run_sync(self) -> None: + proca, procb = self.run_less() + procb.wait() + proca.wait() + + def run_async(self, watch_queue: "queue.Queue[Optional[float]]") -> None: + self.watch_queue = watch_queue + self.ready_queue = queue.Queue() + self.pending_update = None + dthread = threading.Thread(target=self.display_thread) + dthread.start() + self.ready_queue.get() + + def display_thread(self) -> None: + proca, procb = self.run_less() + self.less_proc = procb + self.ready_queue.put(None) + while True: + ret = procb.wait() + proca.wait() + self.less_proc = None + if ret != 0: + # fix the terminal + os.system("tput reset") + if ret != 0 and self.pending_update is not None: + # killed by program with the intent to refresh + msg, error = self.pending_update + self.pending_update = None + if not error: + self.mydump = msg + self.emsg = None + else: + self.emsg = msg + proca, procb = self.run_less() + self.less_proc = procb + self.ready_queue.put(None) + else: + # terminated by user, or killed + self.watch_queue.put(None) + self.ready_queue.put(None) + break + + def progress(self, msg: str) -> None: + # Write message to top-left corner + sys.stdout.write("\x1b7\x1b[1;1f{}\x1b8".format(msg + " ")) + sys.stdout.flush() + + def update(self, text: str, error: bool) -> None: + if not error and not self.emsg and text == self.mydump: + self.progress("Unchanged. ") + return + self.pending_update = (text, error) + if not self.less_proc: + return + self.less_proc.kill() + self.ready_queue.get() + + def terminate(self) -> None: + if not self.less_proc: + return + self.less_proc.kill() + self.ready_queue.get() + + +def main() -> None: + if args.diff_elf_symbol: + make_target, basecmd, mycmd = dump_elf() + elif args.diff_obj: + make_target, basecmd, mycmd = dump_objfile() + else: + make_target, basecmd, mycmd = dump_binary() + + if args.write_asm is not None: + mydump = run_objdump(mycmd) + with open(args.write_asm, "w") as f: + f.write(mydump) + print(f"Wrote assembly to {args.write_asm}.") + sys.exit(0) + + if args.base_asm is not None: + with open(args.base_asm) as f: + basedump = f.read() + else: + basedump = run_objdump(basecmd) + + mydump = run_objdump(mycmd) + + display = Display(basedump, mydump) + + if not args.watch: + display.run_sync() + else: + if not args.make: + yn = input( + "Warning: watch-mode (-w) enabled without auto-make (-m). " + "You will have to run make manually. Ok? (Y/n) " + ) + if yn.lower() == "n": + return + if args.make: + watch_sources = None + watch_sources_for_target_fn = getattr( + diff_settings, "watch_sources_for_target", None + ) + if watch_sources_for_target_fn: + watch_sources = watch_sources_for_target_fn(make_target) + watch_sources = watch_sources or source_directories + if not watch_sources: + fail("Missing source_directories config, don't know what to watch.") + else: + watch_sources = [make_target] + q: "queue.Queue[Optional[float]]" = queue.Queue() + debounced_fs_watch(watch_sources, q, DEBOUNCE_DELAY) + display.run_async(q) + last_build = 0.0 + try: + while True: + t = q.get() + if t is None: + break + if t < last_build: + continue + last_build = time.time() + if args.make: + display.progress("Building...") + ret = run_make_capture_output(make_target) + if ret.returncode != 0: + display.update( + ret.stderr.decode("utf-8-sig", "replace") + or ret.stdout.decode("utf-8-sig", "replace"), + error=True, + ) + continue + mydump = run_objdump(mycmd) + display.update(mydump, error=False) + except KeyboardInterrupt: + display.terminate() + + +main() diff --git a/diff_settings.py b/diff_settings.py new file mode 100644 index 0000000..8cfd286 --- /dev/null +++ b/diff_settings.py @@ -0,0 +1,5 @@ +def apply(config, args): + config["baseimg"] = "baserom.u.z64" + config["myimg"] = "build/u/ge007.u.z64" + config["mapfile"] = "build/ge007.u.map" + config["source_directories"] = ['src', 'include'] diff --git a/filediff.j.csv b/filediff.j.csv index c4cbe86..94c6c34 100644 --- a/filediff.j.csv +++ b/filediff.j.csv @@ -7,26 +7,26 @@ 9305360,10944,assets/obseg/setup/j/UsetupsiloZ,1,1 9316304,10192,assets/obseg/setup/j/UsetupstatueZ,1,1 9326496,12864,assets/obseg/setup/j/UsetuptraZ,1,1 -9344096,1440,assets/obseg/text/j/LarecJ,1,1 -9347232,1680,assets/obseg/text/j/LarkJ,1,1 +9344096,1440,assets/obseg/text/j/LarecJ,1,0 +9347232,1680,assets/obseg/text/j/LarkJ,1,0 9350032,1104,assets/obseg/text/j/LaztJ,1,1 -9354544,1184,assets/obseg/text/j/LcradJ,1,1 -9356320,672,assets/obseg/text/j/LcrypJ,1,1 -9358096,1104,assets/obseg/text/j/LdamJ,1,1 -9360080,816,assets/obseg/text/j/LdepoJ,1,1 -9365104,1856,assets/obseg/text/j/LgunJ,1,1 -9368304,1328,assets/obseg/text/j/LjunJ,1,1 +9354544,1184,assets/obseg/text/j/LcradJ,1,0 +9356320,672,assets/obseg/text/j/LcrypJ,1,0 +9358096,1104,assets/obseg/text/j/LdamJ,1,0 +9360080,816,assets/obseg/text/j/LdepoJ,1,0 +9365104,1856,assets/obseg/text/j/LgunJ,1,0 +9368304,1328,assets/obseg/text/j/LjunJ,1,0 9371376,1824,assets/obseg/text/j/LlenJ,1,1 -9373952,704,assets/obseg/text/j/LmiscJ,1,1 -9375072,416,assets/obseg/text/j/LmpmenuJ,1,1 -9375680,208,assets/obseg/text/j/LmpweaponsJ,1,1 -9376480,576,assets/obseg/text/j/LoptionsJ,1,1 -9378240,1136,assets/obseg/text/j/LpeteJ,1,1 -9380048,672,assets/obseg/text/j/LpropobjJ,1,1 -9383440,1296,assets/obseg/text/j/LsevJ,1,1 +9373952,704,assets/obseg/text/j/LmiscJ,1,0 +9375072,416,assets/obseg/text/j/LmpmenuJ,1,0 +9375680,208,assets/obseg/text/j/LmpweaponsJ,1,0 +9376480,576,assets/obseg/text/j/LoptionsJ,1,0 +9378240,1136,assets/obseg/text/j/LpeteJ,1,0 +9380048,672,assets/obseg/text/j/LpropobjJ,1,0 +9383440,1296,assets/obseg/text/j/LsevJ,1,0 9386608,2032,assets/obseg/text/j/LsevbJ,1,1 -9389760,976,assets/obseg/text/j/LsevxJ,1,1 -9394496,1520,assets/obseg/text/j/LsiloJ,1,1 +9389760,976,assets/obseg/text/j/LsevxJ,1,0 +9394496,1520,assets/obseg/text/j/LsiloJ,1,0 9398352,2128,assets/obseg/text/j/LstatJ,1,1 -9403312,3056,assets/obseg/text/j/LtitleJ,1,1 -9407440,1104,assets/obseg/text/j/LtraJ,1,1 +9403312,3056,assets/obseg/text/j/LtitleJ,1,0 +9407440,1104,assets/obseg/text/j/LtraJ,1,0 diff --git a/filelist.j.csv b/filelist.j.csv index b02edda..a27090e 100644 --- a/filelist.j.csv +++ b/filelist.j.csv @@ -723,11 +723,11 @@ 9339360,16,assets/obseg/text/LameE,1,0 9339376,16,assets/obseg/text/LameJ,1,0 9339392,1584,assets/obseg/text/LarchE,1,0 -9340976,1632,assets/obseg/text/LarchJ,1,1 +9340976,1632,assets/obseg/text/LarchJ,1,0 9342608,1488,assets/obseg/text/LarecE,1,0 -9344096,1440,assets/obseg/text/j/LarecJ,1,1 +9344096,1440,assets/obseg/text/j/LarecJ,1,0 9345536,1696,assets/obseg/text/LarkE,1,0 -9347232,1680,assets/obseg/text/j/LarkJ,1,1 +9347232,1680,assets/obseg/text/j/LarkJ,1,0 9348912,16,assets/obseg/text/LashE,1,0 9348928,16,assets/obseg/text/LashJ,1,0 9348944,1088,assets/obseg/text/LaztE,1,0 @@ -735,17 +735,17 @@ 9351136,16,assets/obseg/text/LcatE,1,0 9351152,16,assets/obseg/text/LcatJ,1,0 9351168,1024,assets/obseg/text/LcaveE,1,0 -9352192,1120,assets/obseg/text/LcaveJ,1,1 +9352192,1120,assets/obseg/text/LcaveJ,1,0 9353312,1232,assets/obseg/text/LcradE,1,0 -9354544,1184,assets/obseg/text/j/LcradJ,1,1 +9354544,1184,assets/obseg/text/j/LcradJ,1,0 9355728,592,assets/obseg/text/LcrypE,1,0 -9356320,672,assets/obseg/text/j/LcrypJ,1,1 +9356320,672,assets/obseg/text/j/LcrypJ,1,0 9356992,1104,assets/obseg/text/LdamE,1,0 -9358096,1104,assets/obseg/text/j/LdamJ,1,1 +9358096,1104,assets/obseg/text/j/LdamJ,1,0 9359200,880,assets/obseg/text/LdepoE,1,0 -9360080,816,assets/obseg/text/j/LdepoJ,1,1 +9360080,816,assets/obseg/text/j/LdepoJ,1,0 9360896,1168,assets/obseg/text/LdestE,1,0 -9362064,1120,assets/obseg/text/LdestJ,1,1 +9362064,1120,assets/obseg/text/LdestJ,1,0 9363184,16,assets/obseg/text/LdishE,1,0 9363200,16,assets/obseg/text/LdishJ,1,0 9363216,16,assets/obseg/text/LearE,1,0 @@ -753,11 +753,11 @@ 9363248,16,assets/obseg/text/LeldE,1,0 9363264,16,assets/obseg/text/LeldJ,1,0 9363280,1824,assets/obseg/text/LgunE,1,0 -9365104,1856,assets/obseg/text/j/LgunJ,1,1 +9365104,1856,assets/obseg/text/j/LgunJ,1,0 9366960,16,assets/obseg/text/LimpE,1,0 9366976,16,assets/obseg/text/LimpJ,1,0 9366992,1312,assets/obseg/text/LjunE,1,0 -9368304,1328,assets/obseg/text/j/LjunJ,1,1 +9368304,1328,assets/obseg/text/j/LjunJ,1,0 9369632,16,assets/obseg/text/LleeE,1,0 9369648,16,assets/obseg/text/LleeJ,1,0 9369664,1712,assets/obseg/text/LlenE,1,0 @@ -767,45 +767,45 @@ 9373232,16,assets/obseg/text/LlueE,1,0 9373248,16,assets/obseg/text/LlueJ,1,0 9373264,688,assets/obseg/text/LmiscE,1,0 -9373952,704,assets/obseg/text/j/LmiscJ,1,1 +9373952,704,assets/obseg/text/j/LmiscJ,1,0 9374656,416,assets/obseg/text/LmpmenuE,1,0 -9375072,416,assets/obseg/text/j/LmpmenuJ,1,1 +9375072,416,assets/obseg/text/j/LmpmenuJ,1,0 9375488,192,assets/obseg/text/LmpweaponsE,1,0 -9375680,208,assets/obseg/text/j/LmpweaponsJ,1,1 +9375680,208,assets/obseg/text/j/LmpweaponsJ,1,0 9375888,16,assets/obseg/text/LoatE,1,0 9375904,16,assets/obseg/text/LoatJ,1,0 9375920,560,assets/obseg/text/LoptionsE,1,0 -9376480,576,assets/obseg/text/j/LoptionsJ,1,1 +9376480,576,assets/obseg/text/j/LoptionsJ,1,0 9377056,16,assets/obseg/text/LpamE,1,0 9377072,16,assets/obseg/text/LpamJ,1,0 9377088,1152,assets/obseg/text/LpeteE,1,0 -9378240,1136,assets/obseg/text/j/LpeteJ,1,1 +9378240,1136,assets/obseg/text/j/LpeteJ,1,0 9379376,672,assets/obseg/text/LpropobjE,1,0 -9380048,672,assets/obseg/text/j/LpropobjJ,1,1 +9380048,672,assets/obseg/text/j/LpropobjJ,1,0 9380720,16,assets/obseg/text/LrefE,1,0 9380736,16,assets/obseg/text/LrefJ,1,0 9380752,16,assets/obseg/text/LritE,1,0 9380768,16,assets/obseg/text/LritJ,1,0 9380784,624,assets/obseg/text/LrunE,1,0 -9381408,656,assets/obseg/text/LrunJ,1,1 +9381408,656,assets/obseg/text/LrunJ,1,0 9382064,1376,assets/obseg/text/LsevE,1,0 -9383440,1296,assets/obseg/text/j/LsevJ,1,1 +9383440,1296,assets/obseg/text/j/LsevJ,1,0 9384736,1872,assets/obseg/text/LsevbE,1,0 9386608,2032,assets/obseg/text/j/LsevbJ,1,1 9388640,1120,assets/obseg/text/LsevxE,1,0 -9389760,976,assets/obseg/text/j/LsevxJ,1,1 +9389760,976,assets/obseg/text/j/LsevxJ,1,0 9390736,1168,assets/obseg/text/LsevxbE,1,0 -9391904,1104,assets/obseg/text/LsevxbJ,1,1 +9391904,1104,assets/obseg/text/LsevxbJ,1,0 9393008,16,assets/obseg/text/LshoE,1,0 9393024,16,assets/obseg/text/LshoJ,1,0 9393040,1456,assets/obseg/text/LsiloE,1,0 -9394496,1520,assets/obseg/text/j/LsiloJ,1,1 +9394496,1520,assets/obseg/text/j/LsiloJ,1,0 9396016,2336,assets/obseg/text/LstatE,1,0 9398352,2128,assets/obseg/text/j/LstatJ,1,1 9400480,2832,assets/obseg/text/LtitleE,1,0 -9403312,3056,assets/obseg/text/j/LtitleJ,1,1 +9403312,3056,assets/obseg/text/j/LtitleJ,1,0 9406368,1072,assets/obseg/text/LtraE,1,0 -9407440,1104,assets/obseg/text/j/LtraJ,1,1 +9407440,1104,assets/obseg/text/j/LtraJ,1,0 9408544,16,assets/obseg/text/LwaxE,1,0 9408560,16,assets/obseg/text/LwaxJ,1,0 9408576,16,assets/obseg/ob__ob_end.seg,0,1 diff --git a/filelist.u.csv b/filelist.u.csv index 9f31eaf..b8a4e10 100644 --- a/filelist.u.csv +++ b/filelist.u.csv @@ -723,11 +723,11 @@ 9335824,16,assets/obseg/text/LameE,1,0 9335840,16,assets/obseg/text/LameJ,1,0 9335856,1584,assets/obseg/text/LarchE,1,0 -9337440,1632,assets/obseg/text/LarchJ.bin,1,1 +9337440,1632,assets/obseg/text/LarchJ.bin,1,0 9339072,1488,assets/obseg/text/LarecE,1,0 -9340560,1424,assets/obseg/text/u/LarecJ.bin,1,1 +9340560,1424,assets/obseg/text/u/LarecJ.bin,1,0 9341984,1696,assets/obseg/text/LarkE,1,0 -9343680,1712,assets/obseg/text/u/LarkJ.bin,1,1 +9343680,1712,assets/obseg/text/u/LarkJ.bin,1,0 9345392,16,assets/obseg/text/LashE,1,0 9345408,16,assets/obseg/text/LashJ,1,0 9345424,1088,assets/obseg/text/LaztE,1,0 @@ -735,17 +735,17 @@ 9347712,16,assets/obseg/text/LcatE,1,0 9347728,16,assets/obseg/text/LcatJ,1,0 9347744,1024,assets/obseg/text/LcaveE,1,0 -9348768,1120,assets/obseg/text/LcaveJ.bin,1,1 +9348768,1120,assets/obseg/text/LcaveJ.bin,1,0 9349888,1232,assets/obseg/text/LcradE,1,0 -9351120,1200,assets/obseg/text/u/LcradJ.bin,1,1 +9351120,1200,assets/obseg/text/u/LcradJ.bin,1,0 9352320,592,assets/obseg/text/LcrypE,1,0 -9352912,704,assets/obseg/text/u/LcrypJ.bin,1,1 +9352912,704,assets/obseg/text/u/LcrypJ.bin,1,0 9353616,1104,assets/obseg/text/LdamE,1,0 -9354720,1136,assets/obseg/text/u/LdamJ.bin,1,1 +9354720,1136,assets/obseg/text/u/LdamJ.bin,1,0 9355856,880,assets/obseg/text/LdepoE,1,0 -9356736,832,assets/obseg/text/u/LdepoJ.bin,1,1 +9356736,832,assets/obseg/text/u/LdepoJ.bin,1,0 9357568,1168,assets/obseg/text/LdestE,1,0 -9358736,1120,assets/obseg/text/LdestJ.bin,1,1 +9358736,1120,assets/obseg/text/LdestJ.bin,1,0 9359856,16,assets/obseg/text/LdishE,1,0 9359872,16,assets/obseg/text/LdishJ,1,0 9359888,16,assets/obseg/text/LearE,1,0 @@ -753,15 +753,15 @@ 9359920,16,assets/obseg/text/LeldE,1,0 9359936,16,assets/obseg/text/LeldJ,1,0 9359952,1824,assets/obseg/text/LgunE,1,0 -9361776,1872,assets/obseg/text/u/LgunJ.bin,1,1 +9361776,1872,assets/obseg/text/u/LgunJ.bin,1,0 9363648,16,assets/obseg/text/LimpE,1,0 9363664,16,assets/obseg/text/LimpJ,1,0 9363680,1312,assets/obseg/text/LjunE,1,0 -9364992,1344,assets/obseg/text/u/LjunJ.bin,1,1 +9364992,1344,assets/obseg/text/u/LjunJ.bin,1,0 9366336,16,assets/obseg/text/LleeE,1,0 9366352,16,assets/obseg/text/LleeJ,1,0 9366368,1600,assets/obseg/text/LlenE,1,0 -9367968,688,assets/obseg/text/u/LlenJ.bin,1,1 +9367968,688,assets/obseg/text/u/LlenJ.bin,1,0 9368656,16,assets/obseg/text/LlipE,1,0 9368672,16,assets/obseg/text/LlipJ,1,0 9368688,16,assets/obseg/text/LlueE,1,0 @@ -769,43 +769,43 @@ 9368720,672,assets/obseg/text/LmiscE,1,0 9369392,736,assets/obseg/text/u/LmiscJ.bin,1,1 9370128,416,assets/obseg/text/LmpmenuE,1,0 -9370544,400,assets/obseg/text/u/LmpmenuJ.bin,1,1 +9370544,400,assets/obseg/text/u/LmpmenuJ.bin,1,0 9370944,192,assets/obseg/text/LmpweaponsE,1,0 -9371136,224,assets/obseg/text/u/LmpweaponsJ.bin,1,1 +9371136,224,assets/obseg/text/u/LmpweaponsJ.bin,1,0 9371360,16,assets/obseg/text/LoatE,1,0 9371376,16,assets/obseg/text/LoatJ,1,0 9371392,560,assets/obseg/text/LoptionsE,1,0 -9371952,592,assets/obseg/text/u/LoptionsJ.bin,1,1 +9371952,592,assets/obseg/text/u/LoptionsJ.bin,1,0 9372544,16,assets/obseg/text/LpamE,1,0 9372560,16,assets/obseg/text/LpamJ,1,0 9372576,1152,assets/obseg/text/LpeteE,1,0 -9373728,1136,assets/obseg/text/u/LpeteJ.bin,1,1 +9373728,1136,assets/obseg/text/u/LpeteJ.bin,1,0 9374864,672,assets/obseg/text/LpropobjE,1,0 -9375536,704,assets/obseg/text/u/LpropobjJ.bin,1,1 +9375536,704,assets/obseg/text/u/LpropobjJ.bin,1,0 9376240,16,assets/obseg/text/LrefE,1,0 9376256,16,assets/obseg/text/LrefJ,1,0 9376272,16,assets/obseg/text/LritE,1,0 9376288,16,assets/obseg/text/LritJ,1,0 9376304,624,assets/obseg/text/LrunE,1,0 -9376928,656,assets/obseg/text/LrunJ.bin,1,1 +9376928,656,assets/obseg/text/LrunJ.bin,1,0 9377584,1376,assets/obseg/text/LsevE,1,0 -9378960,1296,assets/obseg/text/u/LsevJ.bin,1,1 +9378960,1296,assets/obseg/text/u/LsevJ.bin,1,0 9380256,1872,assets/obseg/text/LsevbE,1,0 9382128,2032,assets/obseg/text/u/LsevbJ.bin,1,1 9384160,1120,assets/obseg/text/LsevxE,1,0 -9385280,960,assets/obseg/text/u/LsevxJ.bin,1,1 +9385280,960,assets/obseg/text/u/LsevxJ.bin,1,0 9386240,1168,assets/obseg/text/LsevxbE,1,0 -9387408,1104,assets/obseg/text/LsevxbJ.bin,1,1 +9387408,1104,assets/obseg/text/LsevxbJ.bin,1,0 9388512,16,assets/obseg/text/LshoE,1,0 9388528,16,assets/obseg/text/LshoJ,1,0 9388544,1456,assets/obseg/text/LsiloE,1,0 -9390000,1504,assets/obseg/text/u/LsiloJ.bin,1,1 +9390000,1504,assets/obseg/text/u/LsiloJ.bin,1,0 9391504,2336,assets/obseg/text/LstatE,1,0 9393840,2160,assets/obseg/text/u/LstatJ.bin,1,1 9396000,2752,assets/obseg/text/LtitleE,1,0 -9398752,2960,assets/obseg/text/u/LtitleJ.bin,1,1 +9398752,2960,assets/obseg/text/u/LtitleJ.bin,1,0 9401712,1072,assets/obseg/text/LtraE,1,0 -9402784,1056,assets/obseg/text/u/LtraJ.bin,1,1 +9402784,1056,assets/obseg/text/u/LtraJ.bin,1,0 9403840,16,assets/obseg/text/LwaxE,1,0 9403856,16,assets/obseg/text/LwaxJ,1,0 9403872,16,assets/obseg/ob__ob_end.seg,0,1 diff --git a/ge007.e.ld b/ge007.e.ld index fa5bcde..ce55856 100644 --- a/ge007.e.ld +++ b/ge007.e.ld @@ -3,7 +3,7 @@ OUTPUT_ARCH (mips) SECTIONS { - _romSegmentStart = 0; + _romSegmentStart = 0; /* header */ _headerSegmentStart = ADDR(.header); _headerSegmentRomStart = _romSegmentStart; @@ -46,11 +46,9 @@ SECTIONS build/e/src/init.o (.text); build/e/src/sched.o (.text); build/e/src/osMapTLB.o (.text); - - - build/e/src/libultra/osCreateViManager.o (.text); - build/e/src/libultra/osCreatePiManager.o (.text); - + + build/e/src/libultra/vimgr.o (.text); + build/e/src/libultra/pimgr.o (.text); build/e/src/tlb_manage.o (.text); build/e/src/tlb_random.o (.text); @@ -61,6 +59,7 @@ SECTIONS build/e/src/video.o (.text); build/e/src/deb.o (.text); build/e/src/deb_video.o (.text); + build/e/src/unused_fp.o (.text); build/e/src/deb_print.o (.text); build/e/src/debug_getlastRA.o (.text); build/e/src/ramrom.o (.text); @@ -80,87 +79,178 @@ SECTIONS build/e/src/motor.o (.text); build/e/src/rmon.o (.text); - build/e/src/libultra/osPiRawStartDma.o (.text); - build/e/src/libultra/osPiGetStatus.o (.text); - build/e/src/libultra/osInitialize.o (.text); - build/e/src/libultra/osWritebackDCacheAll.o (.text); - build/e/src/libultra/osInvalICache.o (.text); - build/e/src/libultra/osUnmapTLB.o (.text); - build/e/src/libultra/__osGetFpcCsr.o (.text); - build/e/src/libultra/__osSetFpcCsr.o (.text); - build/e/src/libultra/osCreateThread.o (.text); - build/e/src/libultra/osStartThread.o (.text); - build/e/src/libultra/osCreateMesgQueue.o (.text); - build/e/src/libultra/osStopThread.o (.text); - build/e/src/libultra/osSetThreadPri.o (.text); - build/e/src/libultra/osGetCount.o (.text); - - build/e/src/libultra/osViModeTable.o (.text); - build/e/src/libultra/osSetEventMesg.o (.text); - build/e/src/libultra/osViSetEvent.o (.text); - build/e/src/libultra/osSetIntMask.o (.text); - build/e/src/libultra/osRecvMesg.o (.text); - build/e/src/libultra/osSendMesg.o (.text); - build/e/src/libultra/osViSetMode.o (.text); - build/e/src/libultra/osViSetXScale.o (.text); - build/e/src/libultra/osViSetYScale.o (.text); - build/e/src/libultra/osViRepeatLine.o (.text); - build/e/src/libultra/osViBlack.o (.text); - build/e/src/libultra/osSpTaskYielded.o (.text); - build/e/src/libultra/osDpGetCounters.o (.text); - build/e/src/libultra/osViGetCurrentFramebuffer.o (.text); - build/e/src/libultra/osViGetNextFramebuffer.o (.text); - build/e/src/libultra/osViSwapBuffer.o (.text); - build/e/src/libultra/osDpSetStatus.o (.text); - build/e/src/libultra/osSpTaskLoad.o (.text); - build/e/src/libultra/osDpSetNextBuffer.o (.text); - build/e/src/libultra/osSpTaskYield.o (.text); - build/e/src/libultra/__osGetTLBHi.o (.text); - build/e/src/libultra/osVirtualToPhysical.o (.text); - build/e/src/libultra/osAiSetFrequency.o (.text); - build/e/src/libultra/alInit.o (.text); - build/e/src/libultra/osGetTime.o (.text); - build/e/src/libultra/ll.o (.text); - build/e/src/libultra/osAiGetLength.o (.text); - build/e/src/libultra/syn.o (.text); - build/e/src/libultra/osPiStartDma.o (.text); - build/e/src/libultra/osViSetSpecialFeatures.o (.text); + /*build/e/src/libultra/osPiRawStartDma.o (.text);*/ + build/e/src/libultra/pirawdma.o (.text); + build/e/src/libultra/pigetstat.o (.text); + build/e/src/libultra/initialize.o (.text); + build/e/src/libultra/writebackdcacheall.o (.text); + build/e/src/libultra/invalicache.o (.text); + build/e/src/libultra/unmaptlb.o (.text); + build/e/src/libultra/getfpccsr.o (.text); + build/e/src/libultra/setfpccsr.o (.text); + build/e/src/libultra/createthread.o (.text); + build/e/src/libultra/startthread.o (.text); + build/e/src/libultra/createmesgqueue.o (.text); + build/e/src/libultra/parameters.o (.text); + build/e/src/libultra/stopthread.o (.text); + build/e/src/libultra/setthreadpri.o (.text); + build/e/src/libultra/getcount.o (.text); + /*build/e/src/libultra/vimgr.o (.text);*/ + build/e/src/libultra/vitbl.o (.text); /*edited*/ + build/e/src/libultra/seteventmesg.o (.text); + build/e/src/libultra/visetevent.o (.text); + build/e/src/libultra/setintmask.o (.text); + build/e/src/libultra/recvmesg.o (.text); + build/e/src/libultra/sendmesg.o (.text); + build/e/src/libultra/visetmode.o (.text); + build/e/src/libultra/visetxscale.o (.text); + build/e/src/libultra/visetyscale.o (.text); + build/e/src/libultra/virepeatline.o (.text); + build/e/src/libultra/viblack.o (.text); + build/e/src/libultra/sptaskyielded.o (.text); + build/e/src/libultra/dpctr.o (.text); + build/e/src/libultra/vigetcurrframebuf.o (.text); + build/e/src/libultra/vigetnextframebuf.o (.text); + build/e/src/libultra/viswapbuf.o (.text); + build/e/src/libultra/dpsetstat.o (.text); + build/e/src/libultra/sptask.o (.text); + build/e/src/libultra/dpsetnextbuf.o (.text); + build/e/src/libultra/sptaskyield.o (.text); + build/e/src/libultra/gettlbhi.o (.text); + build/e/src/libultra/virtualtophysical.o (.text); + build/e/src/libultra/aisetfreq.o (.text); + build/e/src/libultra/sl.o (.text); + build/e/src/libultra/heapalloc.o (.text); + build/e/src/libultra/gettime.o (.text); + build/e/src/libultra/ll.o (.text); /*edited*/ + build/e/src/libultra/aisetnextbuf.o (.text); + build/e/src/libultra/aigetlen.o (.text); + build/e/src/libultra/synthesizer.o (.text); + build/e/src/libultra/pidma.o (.text); + build/e/src/libultra/visetspecial.o (.text); build/e/src/libultra/bcopy.o (.text); - build/e/src/libultra/guPerspective.o (.text); - build/e/src/libultra/Mtx.o (.text); - build/e/src/libultra/__osGetCurrFaultedThread.o (.text); - build/e/src/libultra/exception.o (.text); - build/e/src/libultra/__osDequeueThread.o (.text); - build/e/src/libultra/osYieldThread.o (.text); - build/e/src/libultra/osInvalDCache.o (.text); - build/e/src/libultra/osWritebackDCache.o (.text); - build/e/src/libultra/osSetTimer.o (.text); - build/e/src/libultra/alHeapInit.o (.text); - build/e/src/libultra/alBnkfNew.o (.text); - build/e/src/libultra/__CSP.o (.text); - build/e/src/libultra/alSeqpSetBank.o (.text); - build/e/src/libultra/alCSPGetState.o (.text); - build/e/src/libultra/csequencer.o (.text); - build/e/src/libultra/alCSPSetSeq.o (.text); - build/e/src/libultra/alCSPPlay.o (.text); - build/e/src/libultra/alCSPStop.o (.text); - build/e/src/libultra/alCSPSetVol.o (.text); - build/e/src/libultra/alEvtq.o (.text); - build/e/src/libultra/alSynAddPlayer.o (.text); - build/e/src/libultra/alSynAllocVoice.o (.text); - build/e/src/libultra/alSynSetVol.o (.text); - build/e/src/libultra/alSynStartVoice.o (.text); - build/e/src/libultra/alSynSetPan.o (.text); - build/e/src/libultra/alSynSetPitch.o (.text); - build/e/src/libultra/alSynSetFXMix.o (.text); - build/e/src/libultra/alSynStopVoice.o (.text); - build/e/src/libultra/alSynFreeVoice.o (.text); - build/e/src/libultra/alCents2Ratio.o (.text); - build/e/src/libultra/osPiReadIo.o (.text); + build/e/src/libultra/perspective.o (.text); + build/e/src/libultra/mtxutil.o (.text); + build/e/src/libultra/getcurrfaultthread.o (.text); + build/e/src/libultra/exception.o (.text); /*edited*/ + build/e/src/libultra/thread.o (.text); + build/e/src/libultra/yieldthread.o (.text); + build/e/src/libultra/invaldcache.o (.text); + build/e/src/libultra/writebackdcache.o (.text); + build/e/src/libultra/settimer.o (.text); + build/e/src/libultra/heapinit.o (.text); + build/e/src/libultra/bnkf.o (.text); + build/e/src/libultra/csplayer.o (.text); + build/e/src/libultra/seqpsetbank.o (.text); + build/e/src/libultra/cspgetstate.o (.text); + build/e/src/libultra/cseq.o (.text); + build/e/src/libultra/cspsetseq.o (.text); + build/e/src/libultra/cspplay.o (.text); + build/e/src/libultra/cspstop.o (.text); + build/e/src/libultra/cspsetvol.o (.text); + build/e/src/libultra/event.o (.text); + build/e/src/libultra/synaddplayer.o (.text); + build/e/src/libultra/synallocvoice.o (.text); + build/e/src/libultra/synsetvol.o (.text); + build/e/src/libultra/synstartvoice.o (.text); + build/e/src/libultra/synsetpan.o (.text); + build/e/src/libultra/synsetpitch.o (.text); + build/e/src/libultra/synsetfxmix.o (.text); + build/e/src/libultra/synstopvoice.o (.text); + build/e/src/libultra/synfreevoice.o (.text); + build/e/src/libultra/cents2ratio.o (.text); + build/e/src/libultra/piread.o (.text); build/e/src/libultra/string.o (.text); - build/e/src/libultra/_Printf.o (.text); - - build/e/src/libultra/libultra.o (.text); + build/e/src/libultra/xprintf.o (.text); + /*build/e/src/libultra/pimgr.o (.text);*/ + build/e/src/libultra/pfsinit.o (.text); + build/e/src/libultra/controller.o (.text); + build/e/src/libultra/contquery.o (.text); + build/e/src/libultra/contreaddata.o (.text); + build/e/src/libultra/conteepprobe.o (.text); + build/e/src/libultra/conteepread.o (.text); + build/e/src/libultra/conteepwrite.o (.text); + build/e/src/libultra/conteeplongread.o (.text); + build/e/src/libultra/conteeplongwrite.o (.text); + build/e/src/libultra/pfsisplug.o (.text); + build/e/src/libultra/siacs.o (.text); + build/e/src/libultra/sirawdma.o (.text); + build/e/src/libultra/crc.o (.text); + build/e/src/libultra/contramwrite.o (.text); + build/e/src/libultra/contramread.o (.text); + build/e/src/libultra/align.o (.text); + build/e/src/libultra/ortho.o (.text); + build/e/src/libultra/coss.o (.text); + build/e/src/libultra/sins.o (.text); + build/e/src/libultra/translate.o (.text); + build/e/src/libultra/bcmp.o (.text); + build/e/src/libultra/scale.o (.text); + build/e/src/libultra/lookatref.o (.text); + build/e/src/libultra/lookat.o (.text); + build/e/src/libultra/rotate.o (.text); + build/e/src/libultra/llcvt.o (.text); /*edited*/ + build/e/src/libultra/setsr.o (.text); + build/e/src/libultra/getsr.o (.text); + build/e/src/libultra/sirawread.o (.text); + build/e/src/libultra/sirawwrite.o (.text); + build/e/src/libultra/pirawread.o (.text); + build/e/src/libultra/bzero.o (.text); + build/e/src/libultra/sethwinterrupt.o (.text); + build/e/src/libultra/leointerrupt.o (.text); + build/e/src/libultra/interrupt.o (.text); + build/e/src/libultra/timerintr.o (.text); + build/e/src/libultra/kdebugserver.o (.text); + build/e/src/libultra/getthreadpri.o (.text); + build/e/src/libultra/vi.o (.text); /*edited*/ + build/e/src/libultra/vigetcurrcontext.o (.text); + build/e/src/libultra/viswapcontext.o (.text); + build/e/src/libultra/spgetstat.o (.text); + build/e/src/libultra/spsetstat.o (.text); + build/e/src/libultra/spsetpc.o (.text); + build/e/src/libultra/sprawdma.o (.text); + build/e/src/libultra/sp.o (.text); + build/e/src/libultra/dp.o (.text); + build/e/src/libultra/probetlb.o (.text); + build/e/src/libultra/syndelete.o (.text); + build/e/src/libultra/ai.o (.text); + build/e/src/libultra/drvrNew.o (.text); + build/e/src/libultra/synallocfx.o (.text); + build/e/src/libultra/mainbus.o (.text); + build/e/src/libultra/load.o (.text); + build/e/src/libultra/resample.o (.text); + build/e/src/libultra/env.o (.text); /*edited*/ + build/e/src/libultra/auxbus.o (.text); + build/e/src/libultra/save.o (.text); + build/e/src/libultra/jammesg.o (.text); + build/e/src/libultra/pigetcmdq.o (.text); + build/e/src/libultra/ultra7001B830.o (.text); /*edited*/ + build/e/src/libultra/ultra7001B9A0.o (.text); /*edited*/ + build/e/src/libultra/destroythread.o (.text); + build/e/src/libultra/seqplayer.o (.text); + build/e/src/libultra/synstartvoiceparam.o (.text); + build/e/src/libultra/copy.o (.text); + build/e/src/libultra/piacs.o (.text); + build/e/src/libultra/xlitob.o (.text); + build/e/src/libultra/xldtob.o (.text); + build/e/src/libultra/epirawdma.o (.text); + build/e/src/libultra/devmgr.o (.text); + build/e/src/libultra/contpfs.o (.text); + build/e/src/libultra/si.o (.text); + build/e/src/libultra/normalize.o (.text); + build/e/src/libultra/sqrtf.o (.text); + build/e/src/libultra/leodiskinit.o (.text); + build/e/src/libultra/setcompare.o (.text); + build/e/src/libultra/filter.o (.text); + build/e/src/libultra/reverb.o (.text); /*edited*/ + build/e/src/libultra/libm_vals.o (.text); /*edited*/ + build/e/src/libultra/seq.o (.text); + build/e/src/libultra/synsetpriority.o (.text); + build/e/src/libultra/ldiv.o (.text); + build/e/src/libultra/resetglobalintmask.o (.text); + build/e/src/libultra/epirawwrite.o (.text); + build/e/src/libultra/vimodentsclan1.o (.text); + build/e/src/libultra/vimodepallan1.o (.text); + build/e/src/libultra/ultra80069080.o (.text); /*edited*/ /*build/e/src/libultra/libultra.a:libultra.o (.text);*/ } _codeSegmentEnd = ADDR(.code) + SIZEOF(.code); @@ -280,7 +370,7 @@ SECTIONS build/e/src/game/unk_092E50.o (.text); build/e/src/game/unk_093880.o (.text); build/e/src/game/unk_09B600.o (.text); - build/e/src/game/unk_09B740.o (.text); + build/e/src/game/chrObjRandom.o (.text); build/e/src/game/unk_09B7A0.o (.text); build/e/src/game/unk_09C250.o (.text); build/e/src/game/unk_0A1DA0.o (.text); @@ -339,7 +429,6 @@ SECTIONS - _obsegSegmentStart = ADDR(.obseg); _obsegSegmentRomStart = _romfiles_117880SegmentRomEnd; .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { @@ -354,7 +443,10 @@ SECTIONS _imagesSegmentStart = ADDR(.images); _imagesSegmentRomStart = _obsegSegmentRomEnd; .images _imagesSegmentRomStart : AT(_imagesSegmentRomStart) { - build/e/assets/images/split/image1.o (.data); + _image1_start = .; + build/e/assets/images/split/image1.o (.data); + _image1_end = .; + _image1_size = (_image1_end - _image1_start); build/e/assets/images/split/image2.o (.data); build/e/assets/images/split/image3.o (.data); build/e/assets/images/split/image4.o (.data); @@ -3059,7 +3151,7 @@ SECTIONS - _romSegmentEnd = _imagesSegmentRomEnd; + _romSegmentEnd = _imagesSegmentRomEnd; @@ -3075,10 +3167,10 @@ SECTIONS build/e/src/init.o (.data); build/e/src/sched.o (.data); build/e/src/osMapTLB.o (.data); - - build/e/src/libultra/osCreateViManager.o (.data); - build/e/src/libultra/osCreatePiManager.o (.data); - + + build/e/src/libultra/vimgr.o (.data); + build/e/src/libultra/pimgr.o (.data); + build/e/src/tlb_manage.o (.data); build/e/src/tlb_random.o (.data); build/e/src/tlb_resolve.o (.data); @@ -3088,6 +3180,7 @@ SECTIONS build/e/src/video.o (.data); build/e/src/deb.o (.data); build/e/src/deb_video.o (.data); + build/e/src/unused_fp.o (.data); build/e/src/deb_print.o (.data); build/e/src/debug_getlastRA.o (.data); build/e/src/ramrom.o (.data); @@ -3107,87 +3200,178 @@ SECTIONS build/e/src/motor.o (.data); build/e/src/rmon.o (.data); - build/e/src/libultra/osPiRawStartDma.o (.data); - build/e/src/libultra/osPiGetStatus.o (.data); - build/e/src/libultra/osInitialize.o (.data); - build/e/src/libultra/osWritebackDCacheAll.o (.data); - build/e/src/libultra/osInvalICache.o (.data); - build/e/src/libultra/osUnmapTLB.o (.data); - build/e/src/libultra/__osGetFpcCsr.o (.data); - build/e/src/libultra/__osSetFpcCsr.o (.data); - build/e/src/libultra/osCreateThread.o (.data); - build/e/src/libultra/osStartThread.o (.data); - build/e/src/libultra/osCreateMesgQueue.o (.data); - build/e/src/libultra/osStopThread.o (.data); - build/e/src/libultra/osSetThreadPri.o (.data); - build/e/src/libultra/osGetCount.o (.data); - - build/e/src/libultra/osViModeTable.o (.data); - build/e/src/libultra/osSetEventMesg.o (.data); - build/e/src/libultra/osViSetEvent.o (.data); - build/e/src/libultra/osSetIntMask.o (.data); - build/e/src/libultra/osRecvMesg.o (.data); - build/e/src/libultra/osSendMesg.o (.data); - build/e/src/libultra/osViSetMode.o (.data); - build/e/src/libultra/osViSetXScale.o (.data); - build/e/src/libultra/osViSetYScale.o (.data); - build/e/src/libultra/osViRepeatLine.o (.data); - build/e/src/libultra/osViBlack.o (.data); - build/e/src/libultra/osSpTaskYielded.o (.data); - build/e/src/libultra/osDpGetCounters.o (.data); - build/e/src/libultra/osViGetCurrentFramebuffer.o (.data); - build/e/src/libultra/osViGetNextFramebuffer.o (.data); - build/e/src/libultra/osViSwapBuffer.o (.data); - build/e/src/libultra/osDpSetStatus.o (.data); - build/e/src/libultra/osSpTaskLoad.o (.data); - build/e/src/libultra/osDpSetNextBuffer.o (.data); - build/e/src/libultra/osSpTaskYield.o (.data); - build/e/src/libultra/__osGetTLBHi.o (.data); - build/e/src/libultra/osVirtualToPhysical.o (.data); - build/e/src/libultra/osAiSetFrequency.o (.data); - build/e/src/libultra/alInit.o (.data); - build/e/src/libultra/osGetTime.o (.data); - build/e/src/libultra/ll.o (.data); - build/e/src/libultra/osAiGetLength.o (.data); - build/e/src/libultra/syn.o (.data); - build/e/src/libultra/osPiStartDma.o (.data); - build/e/src/libultra/osViSetSpecialFeatures.o (.data); + /*build/e/src/libultra/osPiRawStartDma.o (.data);*/ + build/e/src/libultra/pirawdma.o (.data); + build/e/src/libultra/pigetstat.o (.data); + build/e/src/libultra/initialize.o (.data); + build/e/src/libultra/writebackdcacheall.o (.data); + build/e/src/libultra/invalicache.o (.data); + build/e/src/libultra/unmaptlb.o (.data); + build/e/src/libultra/getfpccsr.o (.data); + build/e/src/libultra/setfpccsr.o (.data); + build/e/src/libultra/createthread.o (.data); + build/e/src/libultra/startthread.o (.data); + build/e/src/libultra/createmesgqueue.o (.data); + build/e/src/libultra/parameters.o (.data); + build/e/src/libultra/stopthread.o (.data); + build/e/src/libultra/setthreadpri.o (.data); + build/e/src/libultra/getcount.o (.data); + /*build/e/src/libultra/vimgr.o (.data);*/ + build/e/src/libultra/vitbl.o (.data); /*edited*/ + build/e/src/libultra/seteventmesg.o (.data); + build/e/src/libultra/visetevent.o (.data); + build/e/src/libultra/setintmask.o (.data); + build/e/src/libultra/recvmesg.o (.data); + build/e/src/libultra/sendmesg.o (.data); + build/e/src/libultra/visetmode.o (.data); + build/e/src/libultra/visetxscale.o (.data); + build/e/src/libultra/visetyscale.o (.data); + build/e/src/libultra/virepeatline.o (.data); + build/e/src/libultra/viblack.o (.data); + build/e/src/libultra/sptaskyielded.o (.data); + build/e/src/libultra/dpctr.o (.data); + build/e/src/libultra/vigetcurrframebuf.o (.data); + build/e/src/libultra/vigetnextframebuf.o (.data); + build/e/src/libultra/viswapbuf.o (.data); + build/e/src/libultra/dpsetstat.o (.data); + build/e/src/libultra/sptask.o (.data); + build/e/src/libultra/dpsetnextbuf.o (.data); + build/e/src/libultra/sptaskyield.o (.data); + build/e/src/libultra/gettlbhi.o (.data); + build/e/src/libultra/virtualtophysical.o (.data); + build/e/src/libultra/aisetfreq.o (.data); + build/e/src/libultra/sl.o (.data); + build/e/src/libultra/heapalloc.o (.data); + build/e/src/libultra/gettime.o (.data); + build/e/src/libultra/ll.o (.data); /*edited*/ + build/e/src/libultra/aisetnextbuf.o (.data); + build/e/src/libultra/aigetlen.o (.data); + build/e/src/libultra/synthesizer.o (.data); + build/e/src/libultra/pidma.o (.data); + build/e/src/libultra/visetspecial.o (.data); build/e/src/libultra/bcopy.o (.data); - build/e/src/libultra/guPerspective.o (.data); - build/e/src/libultra/Mtx.o (.data); - build/e/src/libultra/__osGetCurrFaultedThread.o (.data); - build/e/src/libultra/exception.o (.data); - build/e/src/libultra/__osDequeueThread.o (.data); - build/e/src/libultra/osYieldThread.o (.data); - build/e/src/libultra/osInvalDCache.o (.data); - build/e/src/libultra/osWritebackDCache.o (.data); - build/e/src/libultra/osSetTimer.o (.data); - build/e/src/libultra/alHeapInit.o (.data); - build/e/src/libultra/alBnkfNew.o (.data); - build/e/src/libultra/__CSP.o (.data); - build/e/src/libultra/alSeqpSetBank.o (.data); - build/e/src/libultra/alCSPGetState.o (.data); - build/e/src/libultra/csequencer.o (.data); - build/e/src/libultra/alCSPSetSeq.o (.data); - build/e/src/libultra/alCSPPlay.o (.data); - build/e/src/libultra/alCSPStop.o (.data); - build/e/src/libultra/alCSPSetVol.o (.data); - build/e/src/libultra/alEvtq.o (.data); - build/e/src/libultra/alSynAddPlayer.o (.data); - build/e/src/libultra/alSynAllocVoice.o (.data); - build/e/src/libultra/alSynSetVol.o (.data); - build/e/src/libultra/alSynStartVoice.o (.data); - build/e/src/libultra/alSynSetPan.o (.data); - build/e/src/libultra/alSynSetPitch.o (.data); - build/e/src/libultra/alSynSetFXMix.o (.data); - build/e/src/libultra/alSynStopVoice.o (.data); - build/e/src/libultra/alSynFreeVoice.o (.data); - build/e/src/libultra/alCents2Ratio.o (.data); - build/e/src/libultra/osPiReadIo.o (.data); + build/e/src/libultra/perspective.o (.data); + build/e/src/libultra/mtxutil.o (.data); + build/e/src/libultra/getcurrfaultthread.o (.data); + build/e/src/libultra/exception.o (.data); /*edited*/ + build/e/src/libultra/thread.o (.data); + build/e/src/libultra/yieldthread.o (.data); + build/e/src/libultra/invaldcache.o (.data); + build/e/src/libultra/writebackdcache.o (.data); + build/e/src/libultra/settimer.o (.data); + build/e/src/libultra/heapinit.o (.data); + build/e/src/libultra/bnkf.o (.data); + build/e/src/libultra/csplayer.o (.data); + build/e/src/libultra/seqpsetbank.o (.data); + build/e/src/libultra/cspgetstate.o (.data); + build/e/src/libultra/cseq.o (.data); + build/e/src/libultra/cspsetseq.o (.data); + build/e/src/libultra/cspplay.o (.data); + build/e/src/libultra/cspstop.o (.data); + build/e/src/libultra/cspsetvol.o (.data); + build/e/src/libultra/event.o (.data); + build/e/src/libultra/synaddplayer.o (.data); + build/e/src/libultra/synallocvoice.o (.data); + build/e/src/libultra/synsetvol.o (.data); + build/e/src/libultra/synstartvoice.o (.data); + build/e/src/libultra/synsetpan.o (.data); + build/e/src/libultra/synsetpitch.o (.data); + build/e/src/libultra/synsetfxmix.o (.data); + build/e/src/libultra/synstopvoice.o (.data); + build/e/src/libultra/synfreevoice.o (.data); + build/e/src/libultra/cents2ratio.o (.data); + build/e/src/libultra/piread.o (.data); build/e/src/libultra/string.o (.data); - build/e/src/libultra/_Printf.o (.data); - - build/e/src/libultra/libultra.o (.data); + build/e/src/libultra/xprintf.o (.data); + /*build/e/src/libultra/pimgr.o (.data);*/ + build/e/src/libultra/pfsinit.o (.data); + build/e/src/libultra/controller.o (.data); + build/e/src/libultra/contquery.o (.data); + build/e/src/libultra/contreaddata.o (.data); + build/e/src/libultra/conteepprobe.o (.data); + build/e/src/libultra/conteepread.o (.data); + build/e/src/libultra/conteepwrite.o (.data); + build/e/src/libultra/conteeplongread.o (.data); + build/e/src/libultra/conteeplongwrite.o (.data); + build/e/src/libultra/pfsisplug.o (.data); + build/e/src/libultra/siacs.o (.data); + build/e/src/libultra/sirawdma.o (.data); + build/e/src/libultra/crc.o (.data); + build/e/src/libultra/contramwrite.o (.data); + build/e/src/libultra/contramread.o (.data); + build/e/src/libultra/align.o (.data); + build/e/src/libultra/ortho.o (.data); + build/e/src/libultra/coss.o (.data); + build/e/src/libultra/sins.o (.data); + build/e/src/libultra/translate.o (.data); + build/e/src/libultra/bcmp.o (.data); + build/e/src/libultra/scale.o (.data); + build/e/src/libultra/lookatref.o (.data); + build/e/src/libultra/lookat.o (.data); + build/e/src/libultra/rotate.o (.data); + build/e/src/libultra/llcvt.o (.data); /*edited*/ + build/e/src/libultra/setsr.o (.data); + build/e/src/libultra/getsr.o (.data); + build/e/src/libultra/sirawread.o (.data); + build/e/src/libultra/sirawwrite.o (.data); + build/e/src/libultra/pirawread.o (.data); + build/e/src/libultra/bzero.o (.data); + build/e/src/libultra/sethwinterrupt.o (.data); + build/e/src/libultra/leointerrupt.o (.data); + build/e/src/libultra/interrupt.o (.data); + build/e/src/libultra/timerintr.o (.data); + build/e/src/libultra/kdebugserver.o (.data); + build/e/src/libultra/getthreadpri.o (.data); + build/e/src/libultra/vi.o (.data); /*edited*/ + build/e/src/libultra/vigetcurrcontext.o (.data); + build/e/src/libultra/viswapcontext.o (.data); + build/e/src/libultra/spgetstat.o (.data); + build/e/src/libultra/spsetstat.o (.data); + build/e/src/libultra/spsetpc.o (.data); + build/e/src/libultra/sprawdma.o (.data); + build/e/src/libultra/sp.o (.data); + build/e/src/libultra/dp.o (.data); + build/e/src/libultra/probetlb.o (.data); + build/e/src/libultra/syndelete.o (.data); + build/e/src/libultra/ai.o (.data); + build/e/src/libultra/drvrNew.o (.data); + build/e/src/libultra/synallocfx.o (.data); + build/e/src/libultra/mainbus.o (.data); + build/e/src/libultra/load.o (.data); + build/e/src/libultra/resample.o (.data); + build/e/src/libultra/env.o (.data); /*edited*/ + build/e/src/libultra/auxbus.o (.data); + build/e/src/libultra/save.o (.data); + build/e/src/libultra/jammesg.o (.data); + build/e/src/libultra/pigetcmdq.o (.data); + build/e/src/libultra/ultra7001B830.o (.data); /*edited*/ + build/e/src/libultra/ultra7001B9A0.o (.data); /*edited*/ + build/e/src/libultra/destroythread.o (.data); + build/e/src/libultra/seqplayer.o (.data); + build/e/src/libultra/synstartvoiceparam.o (.data); + build/e/src/libultra/copy.o (.data); + build/e/src/libultra/piacs.o (.data); + build/e/src/libultra/xlitob.o (.data); + build/e/src/libultra/xldtob.o (.data); + build/e/src/libultra/epirawdma.o (.data); + build/e/src/libultra/devmgr.o (.data); + build/e/src/libultra/contpfs.o (.data); + build/e/src/libultra/si.o (.data); + build/e/src/libultra/normalize.o (.data); + build/e/src/libultra/sqrtf.o (.data); + build/e/src/libultra/leodiskinit.o (.data); + build/e/src/libultra/setcompare.o (.data); + build/e/src/libultra/filter.o (.data); + build/e/src/libultra/reverb.o (.data); /*edited*/ + build/e/src/libultra/libm_vals.o (.data); /*edited*/ + build/e/src/libultra/seq.o (.data); + build/e/src/libultra/synsetpriority.o (.data); + build/e/src/libultra/ldiv.o (.data); + build/e/src/libultra/resetglobalintmask.o (.data); + build/e/src/libultra/epirawwrite.o (.data); + build/e/src/libultra/vimodentsclan1.o (.data); + build/e/src/libultra/vimodepallan1.o (.data); + build/e/src/libultra/ultra80069080.o (.data); /*edited*/ /*build/e/src/libultra/libultra.a:libultra.o (.data);*/ build/e/src/aspboot.o (.rodata); @@ -3195,10 +3379,10 @@ SECTIONS build/e/src/init.o (.rodata); build/e/src/sched.o (.rodata); build/e/src/osMapTLB.o (.rodata); - - build/e/src/libultra/osCreateViManager.o (.rodata); - build/e/src/libultra/osCreatePiManager.o (.rodata); - + + build/e/src/libultra/vimgr.o (.rodata); + build/e/src/libultra/pimgr.o (.rodata); + build/e/src/tlb_manage.o (.rodata); build/e/src/tlb_random.o (.rodata); build/e/src/tlb_resolve.o (.rodata); @@ -3208,6 +3392,7 @@ SECTIONS build/e/src/video.o (.rodata); build/e/src/deb.o (.rodata); build/e/src/deb_video.o (.rodata); + build/e/src/unused_fp.o (.rodata); build/e/src/deb_print.o (.rodata); build/e/src/debug_getlastRA.o (.rodata); build/e/src/ramrom.o (.rodata); @@ -3227,87 +3412,178 @@ SECTIONS build/e/src/motor.o (.rodata); build/e/src/rmon.o (.rodata); - build/e/src/libultra/osPiRawStartDma.o (.rodata); - build/e/src/libultra/osPiGetStatus.o (.rodata); - build/e/src/libultra/osInitialize.o (.rodata); - build/e/src/libultra/osWritebackDCacheAll.o (.rodata); - build/e/src/libultra/osInvalICache.o (.rodata); - build/e/src/libultra/osUnmapTLB.o (.rodata); - build/e/src/libultra/__osGetFpcCsr.o (.rodata); - build/e/src/libultra/__osSetFpcCsr.o (.rodata); - build/e/src/libultra/osCreateThread.o (.rodata); - build/e/src/libultra/osStartThread.o (.rodata); - build/e/src/libultra/osCreateMesgQueue.o (.rodata); - build/e/src/libultra/osStopThread.o (.rodata); - build/e/src/libultra/osSetThreadPri.o (.rodata); - build/e/src/libultra/osGetCount.o (.rodata); - - build/e/src/libultra/osViModeTable.o (.rodata); - build/e/src/libultra/osSetEventMesg.o (.rodata); - build/e/src/libultra/osViSetEvent.o (.rodata); - build/e/src/libultra/osSetIntMask.o (.rodata); - build/e/src/libultra/osRecvMesg.o (.rodata); - build/e/src/libultra/osSendMesg.o (.rodata); - build/e/src/libultra/osViSetMode.o (.rodata); - build/e/src/libultra/osViSetXScale.o (.rodata); - build/e/src/libultra/osViSetYScale.o (.rodata); - build/e/src/libultra/osViRepeatLine.o (.rodata); - build/e/src/libultra/osViBlack.o (.rodata); - build/e/src/libultra/osSpTaskYielded.o (.rodata); - build/e/src/libultra/osDpGetCounters.o (.rodata); - build/e/src/libultra/osViGetCurrentFramebuffer.o (.rodata); - build/e/src/libultra/osViGetNextFramebuffer.o (.rodata); - build/e/src/libultra/osViSwapBuffer.o (.rodata); - build/e/src/libultra/osDpSetStatus.o (.rodata); - build/e/src/libultra/osSpTaskLoad.o (.rodata); - build/e/src/libultra/osDpSetNextBuffer.o (.rodata); - build/e/src/libultra/osSpTaskYield.o (.rodata); - build/e/src/libultra/__osGetTLBHi.o (.rodata); - build/e/src/libultra/osVirtualToPhysical.o (.rodata); - build/e/src/libultra/osAiSetFrequency.o (.rodata); - build/e/src/libultra/alInit.o (.rodata); - build/e/src/libultra/osGetTime.o (.rodata); - build/e/src/libultra/ll.o (.rodata); - build/e/src/libultra/osAiGetLength.o (.rodata); - build/e/src/libultra/syn.o (.rodata); - build/e/src/libultra/osPiStartDma.o (.rodata); - build/e/src/libultra/osViSetSpecialFeatures.o (.rodata); + /*build/e/src/libultra/osPiRawStartDma.o (.rodata);*/ + build/e/src/libultra/pirawdma.o (.rodata); + build/e/src/libultra/pigetstat.o (.rodata); + build/e/src/libultra/initialize.o (.rodata); + build/e/src/libultra/writebackdcacheall.o (.rodata); + build/e/src/libultra/invalicache.o (.rodata); + build/e/src/libultra/unmaptlb.o (.rodata); + build/e/src/libultra/getfpccsr.o (.rodata); + build/e/src/libultra/setfpccsr.o (.rodata); + build/e/src/libultra/createthread.o (.rodata); + build/e/src/libultra/startthread.o (.rodata); + build/e/src/libultra/createmesgqueue.o (.rodata); + build/e/src/libultra/parameters.o (.rodata); + build/e/src/libultra/stopthread.o (.rodata); + build/e/src/libultra/setthreadpri.o (.rodata); + build/e/src/libultra/getcount.o (.rodata); + /*build/e/src/libultra/vimgr.o (.rodata);*/ + build/e/src/libultra/vitbl.o (.rodata); /*edited*/ + build/e/src/libultra/seteventmesg.o (.rodata); + build/e/src/libultra/visetevent.o (.rodata); + build/e/src/libultra/setintmask.o (.rodata); + build/e/src/libultra/recvmesg.o (.rodata); + build/e/src/libultra/sendmesg.o (.rodata); + build/e/src/libultra/visetmode.o (.rodata); + build/e/src/libultra/visetxscale.o (.rodata); + build/e/src/libultra/visetyscale.o (.rodata); + build/e/src/libultra/virepeatline.o (.rodata); + build/e/src/libultra/viblack.o (.rodata); + build/e/src/libultra/sptaskyielded.o (.rodata); + build/e/src/libultra/dpctr.o (.rodata); + build/e/src/libultra/vigetcurrframebuf.o (.rodata); + build/e/src/libultra/vigetnextframebuf.o (.rodata); + build/e/src/libultra/viswapbuf.o (.rodata); + build/e/src/libultra/dpsetstat.o (.rodata); + build/e/src/libultra/sptask.o (.rodata); + build/e/src/libultra/dpsetnextbuf.o (.rodata); + build/e/src/libultra/sptaskyield.o (.rodata); + build/e/src/libultra/gettlbhi.o (.rodata); + build/e/src/libultra/virtualtophysical.o (.rodata); + build/e/src/libultra/aisetfreq.o (.rodata); + build/e/src/libultra/sl.o (.rodata); + build/e/src/libultra/heapalloc.o (.rodata); + build/e/src/libultra/gettime.o (.rodata); + build/e/src/libultra/ll.o (.rodata); /*edited*/ + build/e/src/libultra/aisetnextbuf.o (.rodata); + build/e/src/libultra/aigetlen.o (.rodata); + build/e/src/libultra/synthesizer.o (.rodata); + build/e/src/libultra/pidma.o (.rodata); + build/e/src/libultra/visetspecial.o (.rodata); build/e/src/libultra/bcopy.o (.rodata); - build/e/src/libultra/guPerspective.o (.rodata); - build/e/src/libultra/Mtx.o (.rodata); - build/e/src/libultra/__osGetCurrFaultedThread.o (.rodata); - build/e/src/libultra/exception.o (.rodata); - build/e/src/libultra/__osDequeueThread.o (.rodata); - build/e/src/libultra/osYieldThread.o (.rodata); - build/e/src/libultra/osInvalDCache.o (.rodata); - build/e/src/libultra/osWritebackDCache.o (.rodata); - build/e/src/libultra/osSetTimer.o (.rodata); - build/e/src/libultra/alHeapInit.o (.rodata); - build/e/src/libultra/alBnkfNew.o (.rodata); - build/e/src/libultra/__CSP.o (.rodata); - build/e/src/libultra/alSeqpSetBank.o (.rodata); - build/e/src/libultra/alCSPGetState.o (.rodata); - build/e/src/libultra/csequencer.o (.rodata); - build/e/src/libultra/alCSPSetSeq.o (.rodata); - build/e/src/libultra/alCSPPlay.o (.rodata); - build/e/src/libultra/alCSPStop.o (.rodata); - build/e/src/libultra/alCSPSetVol.o (.rodata); - build/e/src/libultra/alEvtq.o (.rodata); - build/e/src/libultra/alSynAddPlayer.o (.rodata); - build/e/src/libultra/alSynAllocVoice.o (.rodata); - build/e/src/libultra/alSynSetVol.o (.rodata); - build/e/src/libultra/alSynStartVoice.o (.rodata); - build/e/src/libultra/alSynSetPan.o (.rodata); - build/e/src/libultra/alSynSetPitch.o (.rodata); - build/e/src/libultra/alSynSetFXMix.o (.rodata); - build/e/src/libultra/alSynStopVoice.o (.rodata); - build/e/src/libultra/alSynFreeVoice.o (.rodata); - build/e/src/libultra/alCents2Ratio.o (.rodata); - build/e/src/libultra/osPiReadIo.o (.rodata); + build/e/src/libultra/perspective.o (.rodata); + build/e/src/libultra/mtxutil.o (.rodata); + build/e/src/libultra/getcurrfaultthread.o (.rodata); + build/e/src/libultra/exception.o (.rodata); /*edited*/ + build/e/src/libultra/thread.o (.rodata); + build/e/src/libultra/yieldthread.o (.rodata); + build/e/src/libultra/invaldcache.o (.rodata); + build/e/src/libultra/writebackdcache.o (.rodata); + build/e/src/libultra/settimer.o (.rodata); + build/e/src/libultra/heapinit.o (.rodata); + build/e/src/libultra/bnkf.o (.rodata); + build/e/src/libultra/csplayer.o (.rodata); + build/e/src/libultra/seqpsetbank.o (.rodata); + build/e/src/libultra/cspgetstate.o (.rodata); + build/e/src/libultra/cseq.o (.rodata); + build/e/src/libultra/cspsetseq.o (.rodata); + build/e/src/libultra/cspplay.o (.rodata); + build/e/src/libultra/cspstop.o (.rodata); + build/e/src/libultra/cspsetvol.o (.rodata); + build/e/src/libultra/event.o (.rodata); + build/e/src/libultra/synaddplayer.o (.rodata); + build/e/src/libultra/synallocvoice.o (.rodata); + build/e/src/libultra/synsetvol.o (.rodata); + build/e/src/libultra/synstartvoice.o (.rodata); + build/e/src/libultra/synsetpan.o (.rodata); + build/e/src/libultra/synsetpitch.o (.rodata); + build/e/src/libultra/synsetfxmix.o (.rodata); + build/e/src/libultra/synstopvoice.o (.rodata); + build/e/src/libultra/synfreevoice.o (.rodata); + build/e/src/libultra/cents2ratio.o (.rodata); + build/e/src/libultra/piread.o (.rodata); build/e/src/libultra/string.o (.rodata); - build/e/src/libultra/_Printf.o (.rodata); - - build/e/src/libultra/libultra.o (.rodata); + build/e/src/libultra/xprintf.o (.rodata); + /*build/e/src/libultra/pimgr.o (.rodata);*/ + build/e/src/libultra/pfsinit.o (.rodata); + build/e/src/libultra/controller.o (.rodata); + build/e/src/libultra/contquery.o (.rodata); + build/e/src/libultra/contreaddata.o (.rodata); + build/e/src/libultra/conteepprobe.o (.rodata); + build/e/src/libultra/conteepread.o (.rodata); + build/e/src/libultra/conteepwrite.o (.rodata); + build/e/src/libultra/conteeplongread.o (.rodata); + build/e/src/libultra/conteeplongwrite.o (.rodata); + build/e/src/libultra/pfsisplug.o (.rodata); + build/e/src/libultra/siacs.o (.rodata); + build/e/src/libultra/sirawdma.o (.rodata); + build/e/src/libultra/crc.o (.rodata); + build/e/src/libultra/contramwrite.o (.rodata); + build/e/src/libultra/contramread.o (.rodata); + build/e/src/libultra/align.o (.rodata); + build/e/src/libultra/ortho.o (.rodata); + build/e/src/libultra/coss.o (.rodata); + build/e/src/libultra/sins.o (.rodata); + build/e/src/libultra/translate.o (.rodata); + build/e/src/libultra/bcmp.o (.rodata); + build/e/src/libultra/scale.o (.rodata); + build/e/src/libultra/lookatref.o (.rodata); + build/e/src/libultra/lookat.o (.rodata); + build/e/src/libultra/rotate.o (.rodata); + build/e/src/libultra/llcvt.o (.rodata); /*edited*/ + build/e/src/libultra/setsr.o (.rodata); + build/e/src/libultra/getsr.o (.rodata); + build/e/src/libultra/sirawread.o (.rodata); + build/e/src/libultra/sirawwrite.o (.rodata); + build/e/src/libultra/pirawread.o (.rodata); + build/e/src/libultra/bzero.o (.rodata); + build/e/src/libultra/sethwinterrupt.o (.rodata); + build/e/src/libultra/leointerrupt.o (.rodata); + build/e/src/libultra/interrupt.o (.rodata); + build/e/src/libultra/timerintr.o (.rodata); + build/e/src/libultra/kdebugserver.o (.rodata); + build/e/src/libultra/getthreadpri.o (.rodata); + build/e/src/libultra/vi.o (.rodata); /*edited*/ + build/e/src/libultra/vigetcurrcontext.o (.rodata); + build/e/src/libultra/viswapcontext.o (.rodata); + build/e/src/libultra/spgetstat.o (.rodata); + build/e/src/libultra/spsetstat.o (.rodata); + build/e/src/libultra/spsetpc.o (.rodata); + build/e/src/libultra/sprawdma.o (.rodata); + build/e/src/libultra/sp.o (.rodata); + build/e/src/libultra/dp.o (.rodata); + build/e/src/libultra/probetlb.o (.rodata); + build/e/src/libultra/syndelete.o (.rodata); + build/e/src/libultra/ai.o (.rodata); + build/e/src/libultra/drvrNew.o (.rodata); + build/e/src/libultra/synallocfx.o (.rodata); + build/e/src/libultra/mainbus.o (.rodata); + build/e/src/libultra/load.o (.rodata); + build/e/src/libultra/resample.o (.rodata); + build/e/src/libultra/env.o (.rodata); /*edited*/ + build/e/src/libultra/auxbus.o (.rodata); + build/e/src/libultra/save.o (.rodata); + build/e/src/libultra/jammesg.o (.rodata); + build/e/src/libultra/pigetcmdq.o (.rodata); + build/e/src/libultra/ultra7001B830.o (.rodata); /*edited*/ + build/e/src/libultra/ultra7001B9A0.o (.rodata); /*edited*/ + build/e/src/libultra/destroythread.o (.rodata); + build/e/src/libultra/seqplayer.o (.rodata); + build/e/src/libultra/synstartvoiceparam.o (.rodata); + build/e/src/libultra/copy.o (.rodata); + build/e/src/libultra/piacs.o (.rodata); + build/e/src/libultra/xlitob.o (.rodata); + build/e/src/libultra/xldtob.o (.rodata); + build/e/src/libultra/epirawdma.o (.rodata); + build/e/src/libultra/devmgr.o (.rodata); + build/e/src/libultra/contpfs.o (.rodata); + build/e/src/libultra/si.o (.rodata); + build/e/src/libultra/normalize.o (.rodata); + build/e/src/libultra/sqrtf.o (.rodata); + build/e/src/libultra/leodiskinit.o (.rodata); + build/e/src/libultra/setcompare.o (.rodata); + build/e/src/libultra/filter.o (.rodata); + build/e/src/libultra/reverb.o (.rodata); /*edited*/ + build/e/src/libultra/libm_vals.o (.rodata); /*edited*/ + build/e/src/libultra/seq.o (.rodata); + build/e/src/libultra/synsetpriority.o (.rodata); + build/e/src/libultra/ldiv.o (.rodata); + build/e/src/libultra/resetglobalintmask.o (.rodata); + build/e/src/libultra/epirawwrite.o (.rodata); + build/e/src/libultra/vimodentsclan1.o (.rodata); + build/e/src/libultra/vimodepallan1.o (.rodata); + build/e/src/libultra/ultra80069080.o (.rodata); /*edited*/ /*build/e/src/libultra/libultra.a:libultra.o (.rodata);*/ build/e/src/game/initgamedata.o (.data); @@ -3395,7 +3671,7 @@ SECTIONS build/e/src/game/unk_092E50.o (.data); build/e/src/game/unk_093880.o (.data); build/e/src/game/unk_09B600.o (.data); - build/e/src/game/unk_09B740.o (.data); + build/e/src/game/chrObjRandom.o (.data); build/e/src/game/unk_09B7A0.o (.data); build/e/src/game/unk_09C250.o (.data); build/e/src/game/unk_0A1DA0.o (.data); @@ -3517,7 +3793,7 @@ SECTIONS build/e/src/game/unk_092E50.o (.rodata); build/e/src/game/unk_093880.o (.rodata); build/e/src/game/unk_09B600.o (.rodata); - build/e/src/game/unk_09B740.o (.rodata); + build/e/src/game/chrObjRandom.o (.rodata); build/e/src/game/unk_09B7A0.o (.rodata); build/e/src/game/unk_09C250.o (.rodata); build/e/src/game/unk_0A1DA0.o (.rodata); @@ -3569,10 +3845,10 @@ SECTIONS build/e/src/init.o (.bss); build/e/src/sched.o (.bss); build/e/src/osMapTLB.o (.bss); - - build/e/src/libultra/osCreateViManager.o (.bss); - build/e/src/libultra/osCreatePiManager.o (.bss); - + + build/e/src/libultra/vimgr.o (.bss); + build/e/src/libultra/pimgr.o (.bss); + build/e/src/tlb_manage.o (.bss); build/e/src/tlb_random.o (.bss); build/e/src/tlb_resolve.o (.bss); @@ -3581,6 +3857,7 @@ SECTIONS build/e/src/video.o (.bss); build/e/src/deb.o (.bss); build/e/src/deb_video.o (.bss); + build/e/src/unused_fp.o (.bss); build/e/src/deb_print.o (.bss); build/e/src/debug_getlastRA.o (.bss); build/e/src/ramrom.o (.bss); @@ -3600,87 +3877,178 @@ SECTIONS build/e/src/motor.o (.bss); build/e/src/rmon.o (.bss); - build/e/src/libultra/osPiRawStartDma.o (.bss); - build/e/src/libultra/osPiGetStatus.o (.bss); - build/e/src/libultra/osInitialize.o (.bss); - build/e/src/libultra/osWritebackDCacheAll.o (.bss); - build/e/src/libultra/osInvalICache.o (.bss); - build/e/src/libultra/osUnmapTLB.o (.bss); - build/e/src/libultra/__osGetFpcCsr.o (.bss); - build/e/src/libultra/__osSetFpcCsr.o (.bss); - build/e/src/libultra/osCreateThread.o (.bss); - build/e/src/libultra/osStartThread.o (.bss); - build/e/src/libultra/osCreateMesgQueue.o (.bss); - build/e/src/libultra/osStopThread.o (.bss); - build/e/src/libultra/osSetThreadPri.o (.bss); - build/e/src/libultra/osGetCount.o (.bss); - - build/e/src/libultra/osViModeTable.o (.bss); - build/e/src/libultra/osSetEventMesg.o (.bss); - build/e/src/libultra/osViSetEvent.o (.bss); - build/e/src/libultra/osSetIntMask.o (.bss); - build/e/src/libultra/osRecvMesg.o (.bss); - build/e/src/libultra/osSendMesg.o (.bss); - build/e/src/libultra/osViSetMode.o (.bss); - build/e/src/libultra/osViSetXScale.o (.bss); - build/e/src/libultra/osViSetYScale.o (.bss); - build/e/src/libultra/osViRepeatLine.o (.bss); - build/e/src/libultra/osViBlack.o (.bss); - build/e/src/libultra/osSpTaskYielded.o (.bss); - build/e/src/libultra/osDpGetCounters.o (.bss); - build/e/src/libultra/osViGetCurrentFramebuffer.o (.bss); - build/e/src/libultra/osViGetNextFramebuffer.o (.bss); - build/e/src/libultra/osViSwapBuffer.o (.bss); - build/e/src/libultra/osDpSetStatus.o (.bss); - build/e/src/libultra/osSpTaskLoad.o (.bss); - build/e/src/libultra/osDpSetNextBuffer.o (.bss); - build/e/src/libultra/osSpTaskYield.o (.bss); - build/e/src/libultra/__osGetTLBHi.o (.bss); - build/e/src/libultra/osVirtualToPhysical.o (.bss); - build/e/src/libultra/osAiSetFrequency.o (.bss); - build/e/src/libultra/alInit.o (.bss); - build/e/src/libultra/osGetTime.o (.bss); - build/e/src/libultra/ll.o (.bss); - build/e/src/libultra/osAiGetLength.o (.bss); - build/e/src/libultra/syn.o (.bss); - build/e/src/libultra/osPiStartDma.o (.bss); - build/e/src/libultra/osViSetSpecialFeatures.o (.bss); + /*build/e/src/libultra/osPiRawStartDma.o (.bss);*/ + build/e/src/libultra/pirawdma.o (.bss); + build/e/src/libultra/pigetstat.o (.bss); + build/e/src/libultra/initialize.o (.bss); + build/e/src/libultra/writebackdcacheall.o (.bss); + build/e/src/libultra/invalicache.o (.bss); + build/e/src/libultra/unmaptlb.o (.bss); + build/e/src/libultra/getfpccsr.o (.bss); + build/e/src/libultra/setfpccsr.o (.bss); + build/e/src/libultra/createthread.o (.bss); + build/e/src/libultra/startthread.o (.bss); + build/e/src/libultra/createmesgqueue.o (.bss); + build/e/src/libultra/parameters.o (.bss); + build/e/src/libultra/stopthread.o (.bss); + build/e/src/libultra/setthreadpri.o (.bss); + build/e/src/libultra/getcount.o (.bss); + /*build/e/src/libultra/vimgr.o (.bss);*/ + build/e/src/libultra/vitbl.o (.bss); /*edited*/ + build/e/src/libultra/seteventmesg.o (.bss); + build/e/src/libultra/visetevent.o (.bss); + build/e/src/libultra/setintmask.o (.bss); + build/e/src/libultra/recvmesg.o (.bss); + build/e/src/libultra/sendmesg.o (.bss); + build/e/src/libultra/visetmode.o (.bss); + build/e/src/libultra/visetxscale.o (.bss); + build/e/src/libultra/visetyscale.o (.bss); + build/e/src/libultra/virepeatline.o (.bss); + build/e/src/libultra/viblack.o (.bss); + build/e/src/libultra/sptaskyielded.o (.bss); + build/e/src/libultra/dpctr.o (.bss); + build/e/src/libultra/vigetcurrframebuf.o (.bss); + build/e/src/libultra/vigetnextframebuf.o (.bss); + build/e/src/libultra/viswapbuf.o (.bss); + build/e/src/libultra/dpsetstat.o (.bss); + build/e/src/libultra/sptask.o (.bss); + build/e/src/libultra/dpsetnextbuf.o (.bss); + build/e/src/libultra/sptaskyield.o (.bss); + build/e/src/libultra/gettlbhi.o (.bss); + build/e/src/libultra/virtualtophysical.o (.bss); + build/e/src/libultra/aisetfreq.o (.bss); + build/e/src/libultra/sl.o (.bss); + build/e/src/libultra/heapalloc.o (.bss); + build/e/src/libultra/gettime.o (.bss); + build/e/src/libultra/ll.o (.bss); /*edited*/ + build/e/src/libultra/aisetnextbuf.o (.bss); + build/e/src/libultra/aigetlen.o (.bss); + build/e/src/libultra/synthesizer.o (.bss); + build/e/src/libultra/pidma.o (.bss); + build/e/src/libultra/visetspecial.o (.bss); build/e/src/libultra/bcopy.o (.bss); - build/e/src/libultra/guPerspective.o (.bss); - build/e/src/libultra/Mtx.o (.bss); - build/e/src/libultra/__osGetCurrFaultedThread.o (.bss); - build/e/src/libultra/exception.o (.bss); - build/e/src/libultra/__osDequeueThread.o (.bss); - build/e/src/libultra/osYieldThread.o (.bss); - build/e/src/libultra/osInvalDCache.o (.bss); - build/e/src/libultra/osWritebackDCache.o (.bss); - build/e/src/libultra/osSetTimer.o (.bss); - build/e/src/libultra/alHeapInit.o (.bss); - build/e/src/libultra/alBnkfNew.o (.bss); - build/e/src/libultra/__CSP.o (.bss); - build/e/src/libultra/alSeqpSetBank.o (.bss); - build/e/src/libultra/alCSPGetState.o (.bss); - build/e/src/libultra/csequencer.o (.bss); - build/e/src/libultra/alCSPSetSeq.o (.bss); - build/e/src/libultra/alCSPPlay.o (.bss); - build/e/src/libultra/alCSPStop.o (.bss); - build/e/src/libultra/alCSPSetVol.o (.bss); - build/e/src/libultra/alEvtq.o (.bss); - build/e/src/libultra/alSynAddPlayer.o (.bss); - build/e/src/libultra/alSynAllocVoice.o (.bss); - build/e/src/libultra/alSynSetVol.o (.bss); - build/e/src/libultra/alSynStartVoice.o (.bss); - build/e/src/libultra/alSynSetPan.o (.bss); - build/e/src/libultra/alSynSetPitch.o (.bss); - build/e/src/libultra/alSynSetFXMix.o (.bss); - build/e/src/libultra/alSynStopVoice.o (.bss); - build/e/src/libultra/alSynFreeVoice.o (.bss); - build/e/src/libultra/alCents2Ratio.o (.bss); - build/e/src/libultra/osPiReadIo.o (.bss); + build/e/src/libultra/perspective.o (.bss); + build/e/src/libultra/mtxutil.o (.bss); + build/e/src/libultra/getcurrfaultthread.o (.bss); + build/e/src/libultra/exception.o (.bss); /*edited*/ + build/e/src/libultra/thread.o (.bss); + build/e/src/libultra/yieldthread.o (.bss); + build/e/src/libultra/invaldcache.o (.bss); + build/e/src/libultra/writebackdcache.o (.bss); + build/e/src/libultra/settimer.o (.bss); + build/e/src/libultra/heapinit.o (.bss); + build/e/src/libultra/bnkf.o (.bss); + build/e/src/libultra/csplayer.o (.bss); + build/e/src/libultra/seqpsetbank.o (.bss); + build/e/src/libultra/cspgetstate.o (.bss); + build/e/src/libultra/cseq.o (.bss); + build/e/src/libultra/cspsetseq.o (.bss); + build/e/src/libultra/cspplay.o (.bss); + build/e/src/libultra/cspstop.o (.bss); + build/e/src/libultra/cspsetvol.o (.bss); + build/e/src/libultra/event.o (.bss); + build/e/src/libultra/synaddplayer.o (.bss); + build/e/src/libultra/synallocvoice.o (.bss); + build/e/src/libultra/synsetvol.o (.bss); + build/e/src/libultra/synstartvoice.o (.bss); + build/e/src/libultra/synsetpan.o (.bss); + build/e/src/libultra/synsetpitch.o (.bss); + build/e/src/libultra/synsetfxmix.o (.bss); + build/e/src/libultra/synstopvoice.o (.bss); + build/e/src/libultra/synfreevoice.o (.bss); + build/e/src/libultra/cents2ratio.o (.bss); + build/e/src/libultra/piread.o (.bss); build/e/src/libultra/string.o (.bss); - build/e/src/libultra/_Printf.o (.bss); - - build/e/src/libultra/libultra.o (.bss); + build/e/src/libultra/xprintf.o (.bss); + /*build/e/src/libultra/pimgr.o (.bss);*/ + build/e/src/libultra/pfsinit.o (.bss); + build/e/src/libultra/controller.o (.bss); + build/e/src/libultra/contquery.o (.bss); + build/e/src/libultra/contreaddata.o (.bss); + build/e/src/libultra/conteepprobe.o (.bss); + build/e/src/libultra/conteepread.o (.bss); + build/e/src/libultra/conteepwrite.o (.bss); + build/e/src/libultra/conteeplongread.o (.bss); + build/e/src/libultra/conteeplongwrite.o (.bss); + build/e/src/libultra/pfsisplug.o (.bss); + build/e/src/libultra/siacs.o (.bss); + build/e/src/libultra/sirawdma.o (.bss); + build/e/src/libultra/crc.o (.bss); + build/e/src/libultra/contramwrite.o (.bss); + build/e/src/libultra/contramread.o (.bss); + build/e/src/libultra/align.o (.bss); + build/e/src/libultra/ortho.o (.bss); + build/e/src/libultra/coss.o (.bss); + build/e/src/libultra/sins.o (.bss); + build/e/src/libultra/translate.o (.bss); + build/e/src/libultra/bcmp.o (.bss); + build/e/src/libultra/scale.o (.bss); + build/e/src/libultra/lookatref.o (.bss); + build/e/src/libultra/lookat.o (.bss); + build/e/src/libultra/rotate.o (.bss); + build/e/src/libultra/llcvt.o (.bss); /*edited*/ + build/e/src/libultra/setsr.o (.bss); + build/e/src/libultra/getsr.o (.bss); + build/e/src/libultra/sirawread.o (.bss); + build/e/src/libultra/sirawwrite.o (.bss); + build/e/src/libultra/pirawread.o (.bss); + build/e/src/libultra/bzero.o (.bss); + build/e/src/libultra/sethwinterrupt.o (.bss); + build/e/src/libultra/leointerrupt.o (.bss); + build/e/src/libultra/interrupt.o (.bss); + build/e/src/libultra/timerintr.o (.bss); + build/e/src/libultra/kdebugserver.o (.bss); + build/e/src/libultra/getthreadpri.o (.bss); + build/e/src/libultra/vi.o (.bss); /*edited*/ + build/e/src/libultra/vigetcurrcontext.o (.bss); + build/e/src/libultra/viswapcontext.o (.bss); + build/e/src/libultra/spgetstat.o (.bss); + build/e/src/libultra/spsetstat.o (.bss); + build/e/src/libultra/spsetpc.o (.bss); + build/e/src/libultra/sprawdma.o (.bss); + build/e/src/libultra/sp.o (.bss); + build/e/src/libultra/dp.o (.bss); + build/e/src/libultra/probetlb.o (.bss); + build/e/src/libultra/syndelete.o (.bss); + build/e/src/libultra/ai.o (.bss); + build/e/src/libultra/drvrNew.o (.bss); + build/e/src/libultra/synallocfx.o (.bss); + build/e/src/libultra/mainbus.o (.bss); + build/e/src/libultra/load.o (.bss); + build/e/src/libultra/resample.o (.bss); + build/e/src/libultra/env.o (.bss); /*edited*/ + build/e/src/libultra/auxbus.o (.bss); + build/e/src/libultra/save.o (.bss); + build/e/src/libultra/jammesg.o (.bss); + build/e/src/libultra/pigetcmdq.o (.bss); + build/e/src/libultra/ultra7001B830.o (.bss); /*edited*/ + build/e/src/libultra/ultra7001B9A0.o (.bss); /*edited*/ + build/e/src/libultra/destroythread.o (.bss); + build/e/src/libultra/seqplayer.o (.bss); + build/e/src/libultra/synstartvoiceparam.o (.bss); + build/e/src/libultra/copy.o (.bss); + build/e/src/libultra/piacs.o (.bss); + build/e/src/libultra/xlitob.o (.bss); + build/e/src/libultra/xldtob.o (.bss); + build/e/src/libultra/epirawdma.o (.bss); + build/e/src/libultra/devmgr.o (.bss); + build/e/src/libultra/contpfs.o (.bss); + build/e/src/libultra/si.o (.bss); + build/e/src/libultra/normalize.o (.bss); + build/e/src/libultra/sqrtf.o (.bss); + build/e/src/libultra/leodiskinit.o (.bss); + build/e/src/libultra/setcompare.o (.bss); + build/e/src/libultra/filter.o (.bss); + build/e/src/libultra/reverb.o (.bss); /*edited*/ + build/e/src/libultra/libm_vals.o (.bss); /*edited*/ + build/e/src/libultra/seq.o (.bss); + build/e/src/libultra/synsetpriority.o (.bss); + build/e/src/libultra/ldiv.o (.bss); + build/e/src/libultra/resetglobalintmask.o (.bss); + build/e/src/libultra/epirawwrite.o (.bss); + build/e/src/libultra/vimodentsclan1.o (.bss); + build/e/src/libultra/vimodepallan1.o (.bss); + build/e/src/libultra/ultra80069080.o (.bss); /*edited*/ /*build/e/src/libultra/libultra.a:libultra.o (.bss);*/ build/e/src/game/initgamedata.o (.bss); @@ -3768,7 +4136,7 @@ SECTIONS build/e/src/game/unk_092E50.o (.bss); build/e/src/game/unk_093880.o (.bss); build/e/src/game/unk_09B600.o (.bss); - build/e/src/game/unk_09B740.o (.bss); + build/e/src/game/chrObjRandom.o (.bss); build/e/src/game/unk_09B7A0.o (.bss); build/e/src/game/unk_09C250.o (.bss); build/e/src/game/unk_0A1DA0.o (.bss); @@ -3817,15 +4185,23 @@ SECTIONS _roombufSegmentEnd = ADDR(.roombuf) + SIZEOF(.roombuf); _roombufSegmentRomEnd = _roombufSegmentRomStart + SIZEOF(.roombuf); + _tlbbufSegmentStart = ADDR(.tlbbuf); + _tlbbufSegmentRomStart = _roombufSegmentRomEnd; + .tlbbuf _roombufSegmentEnd : AT(_tlbbufSegmentRomStart){ + build/e/src/tlb_buffer.o (.bss); + } + _tlbbufSegmentEnd = ADDR(.tlbbuf) + SIZEOF(.tlbbuf); + _tlbbufSegmentRomEnd = _tlbbufSegmentRomStart + SIZEOF(.tlbbuf); + + _decompbufSegmentStart = ADDR(.decompbuf); - _decompbufSegmentRomStart = _roombufSegmentRomEnd; + _decompbufSegmentRomStart = _tlbbufSegmentRomEnd; .decompbuf 0x80300000 : AT(_decompbufSegmentRomStart){ build/e/src/decompressbuffer.o (.bss); } _decompbufSegmentEnd = ADDR(.decompbuf) + SIZEOF(.decompbuf); _decompbufSegmentRomEnd = _decompbufSegmentRomStart + SIZEOF(.decompbuf); - _stacksSegmentStart = ADDR(.stacks); _stacksSegmentRomStart = _decompbufSegmentRomEnd; .stacks 0x803ab400 : AT(_stacksSegmentRomStart){ @@ -3842,7 +4218,6 @@ SECTIONS _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); _cfbSegmentRomEnd = _cfbSegmentRomStart + SIZEOF(.cfb); - /*move em to end, out of the way*/ /DISCARD/ : { * (.MIPS.abiflags); diff --git a/ge007.e.sha1 b/ge007.e.sha1 index 6722f3a..f7c0c28 100644 --- a/ge007.e.sha1 +++ b/ge007.e.sha1 @@ -1 +1 @@ -167c3c433dec1f1eb921736f7d53fac8cb45ee31 ge007.e.z64 +167c3c433dec1f1eb921736f7d53fac8cb45ee31 build/e/ge007.e.z64 diff --git a/ge007.j.ld b/ge007.j.ld index 54ff937..19c8095 100644 --- a/ge007.j.ld +++ b/ge007.j.ld @@ -55,6 +55,7 @@ SECTIONS build/j/src/video.o (.text); build/j/src/deb.o (.text); build/j/src/deb_video.o (.text); + build/j/src/unused_fp.o (.text); build/j/src/deb_print.o (.text); build/j/src/debug_getlastRA.o (.text); build/j/src/ramrom.o (.text); @@ -365,7 +366,7 @@ SECTIONS build/j/src/game/unk_092E50.o (.text); build/j/src/game/unk_093880.o (.text); build/j/src/game/unk_09B600.o (.text); - build/j/src/game/unk_09B740.o (.text); + build/j/src/game/chrObjRandom.o (.text); build/j/src/game/unk_09B7A0.o (.text); build/j/src/game/unk_09C250.o (.text); build/j/src/game/unk_0A1DA0.o (.text); @@ -3169,6 +3170,7 @@ SECTIONS build/j/src/video.o (.data); build/j/src/deb.o (.data); build/j/src/deb_video.o (.data); + build/j/src/unused_fp.o (.data); build/j/src/deb_print.o (.data); build/j/src/debug_getlastRA.o (.data); build/j/src/ramrom.o (.data); @@ -3377,6 +3379,7 @@ SECTIONS build/j/src/video.o (.rodata); build/j/src/deb.o (.rodata); build/j/src/deb_video.o (.rodata); + build/j/src/unused_fp.o (.rodata); build/j/src/deb_print.o (.rodata); build/j/src/debug_getlastRA.o (.rodata); build/j/src/ramrom.o (.rodata); @@ -3656,7 +3659,7 @@ SECTIONS build/j/src/game/unk_092E50.o (.data); build/j/src/game/unk_093880.o (.data); build/j/src/game/unk_09B600.o (.data); - build/j/src/game/unk_09B740.o (.data); + build/j/src/game/chrObjRandom.o (.data); build/j/src/game/unk_09B7A0.o (.data); build/j/src/game/unk_09C250.o (.data); build/j/src/game/unk_0A1DA0.o (.data); @@ -3778,7 +3781,7 @@ SECTIONS build/j/src/game/unk_092E50.o (.rodata); build/j/src/game/unk_093880.o (.rodata); build/j/src/game/unk_09B600.o (.rodata); - build/j/src/game/unk_09B740.o (.rodata); + build/j/src/game/chrObjRandom.o (.rodata); build/j/src/game/unk_09B7A0.o (.rodata); build/j/src/game/unk_09C250.o (.rodata); build/j/src/game/unk_0A1DA0.o (.rodata); @@ -3838,6 +3841,7 @@ SECTIONS build/j/src/video.o (.bss); build/j/src/deb.o (.bss); build/j/src/deb_video.o (.bss); + build/j/src/unused_fp.o (.bss); build/j/src/deb_print.o (.bss); build/j/src/debug_getlastRA.o (.bss); build/j/src/ramrom.o (.bss); @@ -4116,7 +4120,7 @@ SECTIONS build/j/src/game/unk_092E50.o (.bss); build/j/src/game/unk_093880.o (.bss); build/j/src/game/unk_09B600.o (.bss); - build/j/src/game/unk_09B740.o (.bss); + build/j/src/game/chrObjRandom.o (.bss); build/j/src/game/unk_09B7A0.o (.bss); build/j/src/game/unk_09C250.o (.bss); build/j/src/game/unk_0A1DA0.o (.bss); diff --git a/ge007.j.sha1 b/ge007.j.sha1 index e60deee..cb4a558 100644 --- a/ge007.j.sha1 +++ b/ge007.j.sha1 @@ -1 +1 @@ -2a5dade32f7fad6c73c659d2026994632c1b3174 ge007.j.z64 +2a5dade32f7fad6c73c659d2026994632c1b3174 build/j/ge007.j.z64 diff --git a/ge007.u.ld b/ge007.u.ld index 81af918..41099dd 100644 --- a/ge007.u.ld +++ b/ge007.u.ld @@ -55,6 +55,7 @@ SECTIONS build/u/src/video.o (.text); build/u/src/deb.o (.text); build/u/src/deb_video.o (.text); + build/u/src/unused_fp.o (.text); build/u/src/deb_print.o (.text); build/u/src/debug_getlastRA.o (.text); build/u/src/ramrom.o (.text); @@ -365,7 +366,7 @@ SECTIONS build/u/src/game/unk_092E50.o (.text); build/u/src/game/unk_093880.o (.text); build/u/src/game/unk_09B600.o (.text); - build/u/src/game/unk_09B740.o (.text); + build/u/src/game/chrObjRandom.o (.text); build/u/src/game/unk_09B7A0.o (.text); build/u/src/game/unk_09C250.o (.text); build/u/src/game/unk_0A1DA0.o (.text); @@ -424,7 +425,6 @@ SECTIONS - _obsegSegmentStart = ADDR(.obseg); _obsegSegmentRomStart = _romfiles_117880SegmentRomEnd; .obseg _obsegSegmentRomStart : AT(_obsegSegmentRomStart) { @@ -3172,6 +3172,7 @@ SECTIONS build/u/src/video.o (.data); build/u/src/deb.o (.data); build/u/src/deb_video.o (.data); + build/u/src/unused_fp.o (.data); build/u/src/deb_print.o (.data); build/u/src/debug_getlastRA.o (.data); build/u/src/ramrom.o (.data); @@ -3379,6 +3380,7 @@ SECTIONS build/u/src/video.o (.rodata); build/u/src/deb.o (.rodata); build/u/src/deb_video.o (.rodata); + build/u/src/unused_fp.o (.rodata); build/u/src/deb_print.o (.rodata); build/u/src/debug_getlastRA.o (.rodata); build/u/src/ramrom.o (.rodata); @@ -3657,7 +3659,7 @@ SECTIONS build/u/src/game/unk_092E50.o (.data); build/u/src/game/unk_093880.o (.data); build/u/src/game/unk_09B600.o (.data); - build/u/src/game/unk_09B740.o (.data); + build/u/src/game/chrObjRandom.o (.data); build/u/src/game/unk_09B7A0.o (.data); build/u/src/game/unk_09C250.o (.data); build/u/src/game/unk_0A1DA0.o (.data); @@ -3779,7 +3781,7 @@ SECTIONS build/u/src/game/unk_092E50.o (.rodata); build/u/src/game/unk_093880.o (.rodata); build/u/src/game/unk_09B600.o (.rodata); - build/u/src/game/unk_09B740.o (.rodata); + build/u/src/game/chrObjRandom.o (.rodata); build/u/src/game/unk_09B7A0.o (.rodata); build/u/src/game/unk_09C250.o (.rodata); build/u/src/game/unk_0A1DA0.o (.rodata); @@ -3839,6 +3841,7 @@ SECTIONS build/u/src/video.o (.bss); build/u/src/deb.o (.bss); build/u/src/deb_video.o (.bss); + build/u/src/unused_fp.o (.bss); build/u/src/deb_print.o (.bss); build/u/src/debug_getlastRA.o (.bss); build/u/src/ramrom.o (.bss); @@ -4117,7 +4120,7 @@ SECTIONS build/u/src/game/unk_092E50.o (.bss); build/u/src/game/unk_093880.o (.bss); build/u/src/game/unk_09B600.o (.bss); - build/u/src/game/unk_09B740.o (.bss); + build/u/src/game/chrObjRandom.o (.bss); build/u/src/game/unk_09B7A0.o (.bss); build/u/src/game/unk_09C250.o (.bss); build/u/src/game/unk_0A1DA0.o (.bss); @@ -4199,7 +4202,6 @@ SECTIONS _cfbSegmentEnd = ADDR(.cfb) + SIZEOF(.cfb); _cfbSegmentRomEnd = _cfbSegmentRomStart + SIZEOF(.cfb); - /*move em to end, out of the way*/ /DISCARD/ : { * (.MIPS.abiflags); diff --git a/ge007.u.sha1 b/ge007.u.sha1 index 10db786..b9269d0 100644 --- a/ge007.u.sha1 +++ b/ge007.u.sha1 @@ -1 +1 @@ -abe01e4aeb033b6c0836819f549c791b26cfde83 ge007.u.z64 +abe01e4aeb033b6c0836819f549c791b26cfde83 build/u/ge007.u.z64 diff --git a/include/PR/libaudio.h b/include/PR/libaudio.h index 3fffe9c..660a84c 100644 --- a/include/PR/libaudio.h +++ b/include/PR/libaudio.h @@ -3,46 +3,604 @@ #include "abi.h" +/*********************************************************************** + * misc defines + ***********************************************************************/ +typedef u8 ALPan; + +/*********************************************************************** + * Audio Library global routines + ***********************************************************************/ +typedef struct ALLink_s { + struct ALLink_s *next; + struct ALLink_s *prev; +} ALLink; + +typedef s32 (*ALDMAproc)(s32 addr, s32 len, void *state); +typedef ALDMAproc (*ALDMANew)(void *state); + +#define AL_FX_NONE 0 +#define AL_FX_SMALLROOM 1 +#define AL_FX_BIGROOM 2 +#define AL_FX_CHORUS 3 +#define AL_FX_FLANGE 4 +#define AL_FX_ECHO 5 +#define AL_FX_CUSTOM 6 + +typedef u8 ALFxId; +typedef s32 ALMicroTime; + +typedef struct { + u8 *base; + u8 *current; + s32 len; + s32 count; +} ALHeap; + +typedef struct { + s32 maxVVoices; /* obsolete */ + s32 maxPVoices; + s32 maxUpdates; + s32 maxFXbusses; + void *dmaproc; + ALHeap *heap; + s32 outputRate; + ALFxId fxType; + s32 *params; +} ALSynConfig; + + +void alHeapInit(ALHeap *hp, u8 *base, s32 len); +void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); + +#ifdef DEBUG +#define alHeapAlloc(hp, elem ,size) alHeapDBAlloc((u8 *) __FILE__,__LINE__,(hp),(elem),(size)) +#else +#define alHeapAlloc(hp, elem ,size) alHeapDBAlloc(0, 0,(hp),(elem),(size)) +#endif + +/*********************************************************************** + * data structures for sound banks + ***********************************************************************/ + +typedef struct { + s32 order; + s32 npredictors; + s16 book[1]; /* Actually variable size. Must be 8-byte aligned */ +} ALADPCMBook; + +typedef struct { + u32 start; + u32 end; + u32 count; + ADPCM_STATE state; +} ALADPCMloop; + +typedef struct { + u32 start; + u32 end; + u32 count; +} ALRawLoop; + +typedef struct { + ALMicroTime attackTime; + ALMicroTime decayTime; + ALMicroTime releaseTime; + u8 attackVolume; + u8 decayVolume; +} ALEnvelope; + +typedef struct { + u8 velocityMin; + u8 velocityMax; + u8 keyMin; + u8 keyMax; + u8 keyBase; + s8 detune; +} ALKeyMap; + +typedef struct { + ALADPCMloop *loop; + ALADPCMBook *book; +} ALADPCMWaveInfo; + +typedef struct { + ALRawLoop *loop; +} ALRAWWaveInfo; + +typedef struct ALWaveTable_s { + u8 *base; /* ptr to start of wave data */ + s32 len; /* length of data in bytes */ + u8 type; /* compression type */ + u8 flags; /* offset/address flags */ + union { + ALADPCMWaveInfo adpcmWave; + ALRAWWaveInfo rawWave; + } waveInfo; +} ALWaveTable; + +typedef struct ALSound_s { + ALEnvelope *envelope; + ALKeyMap *keyMap; + ALWaveTable *wavetable; /* offset to wavetable struct */ + ALPan samplePan; + u8 sampleVolume; + u8 flags; +} ALSound; + +typedef struct { + u8 volume; /* overall volume for this instrument */ + ALPan pan; /* 0 = hard left, 127 = hard right */ + u8 priority; /* voice priority for this instrument */ + u8 flags; + u8 tremType; /* the type of tremelo osc. to use */ + u8 tremRate; /* the rate of the tremelo osc. */ + u8 tremDepth; /* the depth of the tremelo osc */ + u8 tremDelay; /* the delay for the tremelo osc */ + u8 vibType; /* the type of tremelo osc. to use */ + u8 vibRate; /* the rate of the tremelo osc. */ + u8 vibDepth; /* the depth of the tremelo osc */ + u8 vibDelay; /* the delay for the tremelo osc */ + s16 bendRange; /* pitch bend range in cents */ + s16 soundCount; /* number of sounds in this array */ + ALSound *soundArray[1]; +} ALInstrument; + +typedef struct ALBank_s { + s16 instCount; /* number of programs in this bank */ + u8 flags; + u8 pad; + s32 sampleRate; /* e.g. 44100, 22050, etc... */ + ALInstrument *percussion; /* default percussion for GM */ + ALInstrument *instArray[1]; /* ARRAY of instruments */ +} ALBank; + +typedef struct { /* Note: sizeof won't be correct */ + s16 revision; /* format revision of this file */ + s16 bankCount; /* number of banks */ + ALBank *bankArray[1]; /* ARRAY of bank offsets */ +} ALBankFile; + +void alBnkfNew(ALBankFile *f, u8 *table); + +/*********************************************************************** + * Synthesis driver stuff + ***********************************************************************/ +typedef ALMicroTime (*ALVoiceHandler)(void *); + +typedef struct ALPlayer_s { + struct ALPlayer_s *next; + void *clientData; /* storage for client callback */ + ALVoiceHandler handler; /* voice handler for player */ + ALMicroTime callTime; /* usec requested callback */ + s32 samplesLeft; /* usec remaining to callback */ +} ALPlayer; + +typedef struct ALVoice_s { + ALLink node; + struct PVoice_s *pvoice; + ALWaveTable *table; + void *clientPrivate; + s16 state; + s16 priority; + s16 fxBus; + s16 unityPitch; +} ALVoice; + +typedef struct { + ALPlayer *head; /* client list head */ + ALLink pFreeList; /* list of free physical voices */ + ALLink pAllocList; /* list of allocated physical voices */ + ALLink pLameList; /* list of voices ready to be freed */ + s32 paramSamples; + s32 curSamples; /* samples from start of game */ + ALDMANew dma; + ALHeap *heap; + + struct ALParam_s *paramList; + + struct ALMainBus_s *mainBus; + struct ALAuxBus_s *auxBus; /* ptr to array of aux bus structs */ + struct ALFilter_s *outputFilter; /* last filter in the filter chain */ + + s32 numPVoices; + s32 maxAuxBusses; + s32 outputRate; /* output sample rate */ + s32 maxOutSamples; /* Maximum samples rsp can generate + at one time at output rate */ +} ALSynth; + +/*********************************************************************** + * Audio Library (AL) stuff + ***********************************************************************/ +typedef struct { + ALSynth drvr; +} ALGlobals; + +/*********************************************************************** + * Sequence Files + ***********************************************************************/ + +/** + * Metadata for a sequence "file" entry / data content of single sequence. + * Based on original ALSeqData in n64devkit\ultra\usr\include\PR\libaudio.h. + */ typedef struct { - u8 *offset; - s32 len; -#ifdef VERSION_SH - s8 magic[2]; // tbl: 0x0204, otherwise: 0x0203 - - // for ctl (else zeros): - union { - // unused, just for clarification (big endian) - struct { - u8 bank; - u8 ff; - u8 numInstruments; - u8 numDrums; - } as_u8; - - // used - struct { - s16 bankAndFf; - s16 numInstrumentsAndDrums; - } as_s16; - } ctl; -#endif + u8 *address; + u16 offset; + u16 len; } ALSeqData; +/** + * Structure for storing collection of sequence metadatas. + * Based on original ALSeqFile in n64devkit\ultra\usr\include\PR\libaudio.h. + */ typedef struct { -#ifndef VERSION_SH - s16 revision; -#endif - s16 seqCount; -#ifdef VERSION_SH - s16 unk2; - u8 *data; - s32 pad[2]; -#endif + /** + * number of sequences. + */ + u16 seqCount; + + /** + * Unknown, maybe revision. + */ + u16 unk; + + /** + * ARRAY of sequence info. This is a "dynamic" array, more space + * will be allocated from ALHeap at runtime. + */ ALSeqData seqArray[1]; } ALSeqFile; void alSeqFileNew(ALSeqFile *f, u8 *base); +/*********************************************************************** + * Audio Library (AL) stuff + ***********************************************************************/ +typedef struct { + u8 *curPtr; /* ptr to the next event */ + s32 lastTicks; /* sequence clock ticks (used by alSeqSetLoc) */ + s32 curTicks; /* sequence clock ticks of next event (used by loop end test) */ + s16 lastStatus; /* the last status msg */ +} ALSeqMarker; + +typedef struct { + s32 ticks; /* MIDI, Tempo and End events must start with ticks */ + u8 status; + u8 byte1; + u8 byte2; + u32 duration; +} ALMIDIEvent; + +typedef struct { + s32 ticks; + u8 status; + u8 type; + u8 len; + u8 byte1; + u8 byte2; + u8 byte3; +} ALTempoEvent; + +typedef struct { + s32 ticks; + u8 status; + u8 type; + u8 len; +} ALEndEvent; + +typedef struct { + struct ALVoice_s *voice; +} ALNoteEvent; + +typedef struct { + struct ALVoice_s *voice; + ALMicroTime delta; + u8 vol; +} ALVolumeEvent; + +typedef struct { + s16 vol; +} ALSeqpVolEvent; + +typedef struct { + ALSeqMarker *start; + ALSeqMarker *end; + s32 count; +} ALSeqpLoopEvent; + +typedef struct { + u8 chan; + u8 priority; +} ALSeqpPriorityEvent; + +typedef struct { + void *seq; /* pointer to a seq (could be an ALSeq or an ALCSeq). */ +} ALSeqpSeqEvent; + +typedef struct { + ALBank *bank; +} ALSeqpBankEvent; + +typedef struct { + struct ALVoiceState_s *vs; + void *oscState; + u8 chan; +} ALOscEvent; + +typedef struct { + s16 type; + union { + ALMIDIEvent midi; + ALTempoEvent tempo; + ALEndEvent end; + ALNoteEvent note; + ALVolumeEvent vol; + ALSeqpLoopEvent loop; + ALSeqpVolEvent spvol; + ALSeqpPriorityEvent sppriority; + ALSeqpSeqEvent spseq; + ALSeqpBankEvent spbank; + ALOscEvent osc; + } msg; +} ALEvent; + +typedef struct { + ALLink freeList; + ALLink allocList; + s32 eventCount; +} ALEventQueue; + +typedef struct { + ALInstrument *instrument; /* instrument assigned to this chan */ + s16 bendRange; /* pitch bend range in cents */ + ALFxId fxId; /* type of fx assigned to this chan */ + ALPan pan; /* overall pan for this chan */ + u8 priority; /* priority for this chan */ + u8 vol; /* current volume for this chan */ + u8 fxmix; /* current fx mix for this chan */ + u8 sustain; /* current sustain pedal state */ + f32 pitchBend; /* current pitch bend val in cents */ +} ALChanState; + +typedef struct ALVoiceState_s { + struct ALVoiceState_s *next;/* MUST be first */ + ALVoice voice; + ALSound *sound; + ALMicroTime envEndTime; /* time of envelope segment end */ + f32 pitch; /* currect pitch ratio */ + f32 vibrato; /* current value of the vibrato */ + u8 envGain; /* current envelope gain */ + u8 channel; /* channel assignment */ + u8 key; /* note on key number */ + u8 velocity; /* note on velocity */ + u8 envPhase; /* what envelope phase */ + u8 phase; + u8 tremelo; /* current value of the tremelo */ + u8 flags; /* bit 0 tremelo flag + bit 1 vibrato flag */ +} ALVoiceState; + +typedef struct ALSeq_s { + u8 *base; /* ptr to start of sequence file */ + u8 *trackStart; /* ptr to first MIDI event */ + u8 *curPtr; /* ptr to next event to read */ + s32 lastTicks; /* MIDI ticks for last event */ + s32 len; /* length of sequence in bytes */ + f32 qnpt; /* qrter notes / tick (1/division) */ + s16 division; /* ticks per quarter note */ + s16 lastStatus; /* for running status */ +} ALSeq; + +typedef struct { + u32 trackOffset[16]; + u32 division; +} ALCMidiHdr; + +typedef struct ALCSeq_s { + ALCMidiHdr *base; /* ptr to start of sequence file */ + u32 validTracks; /* set of flags, showing valid tracks */ + f32 qnpt; /* qrter notes / tick (1/division) */ + u32 lastTicks; /* keep track of ticks incase app wants */ + u32 lastDeltaTicks; /* number of delta ticks of last event */ + u32 deltaFlag; /* flag: set if delta's not subtracted */ + u8 *curLoc[16]; /* ptr to current track location, */ + /* may point to next event, or may point */ + /* to a backup code */ + u8 *curBUPtr[16]; /* ptr to next event if in backup mode */ + u8 curBULen[16]; /* if > 0, then in backup mode */ + u8 lastStatus[16]; /* for running status */ + u32 evtDeltaTicks[16]; /* delta time to next event */ +} ALCSeq; + +typedef struct { + u32 validTracks; + s32 lastTicks; + u32 lastDeltaTicks; + u8 *curLoc[16]; + u8 *curBUPtr[16]; + u8 curBULen[16]; + u8 lastStatus[16]; + u32 evtDeltaTicks[16]; +} ALCSeqMarker; + +typedef struct ALSeqpConfig_s { + s32 maxVoices; /* max number of voices to alloc */ + s32 maxEvents; /* max internal events to support */ + u8 maxChannels; /* max MIDI channels to support (16)*/ + u8 debugFlags; /* control which error get reported */ + ALHeap *heap; /* ptr to initialized heap */ + void *initOsc; + void *updateOsc; + void *stopOsc; +} ALSeqpConfig; + +typedef ALMicroTime (*ALOscInit)(void **oscState,f32 *initVal, u8 oscType, + u8 oscRate, u8 oscDepth, u8 oscDelay); +typedef ALMicroTime (*ALOscUpdate)(void *oscState, f32 *updateVal); +typedef void (*ALOscStop)(void *oscState); + +typedef struct { + ALPlayer node; /* note: must be first in structure */ + ALSynth *drvr; /* reference to the client driver */ + ALSeq *target; /* current sequence */ + ALMicroTime curTime; + ALBank *bank; /* current ALBank */ + s32 uspt; /* microseconds per tick */ + s32 nextDelta; /* microseconds to next callback */ + s32 state; + u16 chanMask; /* active channels */ + s16 vol; /* overall sequence volume */ + u8 maxChannels; /* number of MIDI channels */ + u8 debugFlags; /* control which error get reported */ + ALEvent nextEvent; + ALEventQueue evtq; + ALMicroTime frameTime; + ALChanState *chanState; /* 16 channels for MIDI */ + ALVoiceState *vAllocHead; /* list head for allocated voices */ + ALVoiceState *vAllocTail; /* list tail for allocated voices */ + ALVoiceState *vFreeList; /* list of free voice state structs */ + ALOscInit initOsc; + ALOscUpdate updateOsc; + ALOscStop stopOsc; + ALSeqMarker *loopStart; + ALSeqMarker *loopEnd; + s32 loopCount; /* -1 = loop forever, 0 = no loop */ +} ALSeqPlayer; + +typedef struct { + ALPlayer node; /* note: must be first in structure */ + ALSynth *drvr; /* reference to the client driver */ + ALCSeq *target; /* current sequence */ + ALMicroTime curTime; + ALBank *bank; /* current ALBank */ + s32 uspt; /* microseconds per tick */ + s32 nextDelta; /* microseconds to next callback */ + s32 state; + u16 chanMask; /* active channels */ + s16 vol; /* overall sequence volume */ + u8 maxChannels; /* number of MIDI channels */ + u8 debugFlags; /* control which error get reported */ + ALEvent nextEvent; + ALEventQueue evtq; + ALMicroTime frameTime; + ALChanState *chanState; /* 16 channels for MIDI */ + ALVoiceState *vAllocHead; /* list head for allocated voices */ + ALVoiceState *vAllocTail; /* list tail for allocated voices */ + ALVoiceState *vFreeList; /* list of free voice state structs */ + ALOscInit initOsc; + ALOscUpdate updateOsc; + ALOscStop stopOsc; +} ALCSPlayer; + +/* + * Sequence data representation routines + */ +void alSeqNew(ALSeq *seq, u8 *ptr, s32 len); +void alSeqNextEvent(ALSeq *seq, ALEvent *event); +s32 alSeqGetTicks(ALSeq *seq); +f32 alSeqTicksToSec(ALSeq *seq, s32 ticks, u32 tempo); +u32 alSeqSecToTicks(ALSeq *seq, f32 sec, u32 tempo); +void alSeqNewMarker(ALSeq *seq, ALSeqMarker *m, u32 ticks); +void alSeqSetLoc(ALSeq *seq, ALSeqMarker *marker); +void alSeqGetLoc(ALSeq *seq, ALSeqMarker *marker); +/* + * Compact Sequence data representation routines + */ +void alCSeqNew(ALCSeq *seq, u8 *ptr); +void alCSeqNextEvent(ALCSeq *seq,ALEvent *evt); +s32 alCSeqGetTicks(ALCSeq *seq); +f32 alCSeqTicksToSec(ALCSeq *seq, s32 ticks, u32 tempo); +u32 alCSeqSecToTicks(ALCSeq *seq, f32 sec, u32 tempo); +void alCSeqNewMarker(ALCSeq *seq, ALCSeqMarker *m, u32 ticks); +void alCSeqSetLoc(ALCSeq *seq, ALCSeqMarker *marker); +void alCSeqGetLoc(ALCSeq *seq, ALCSeqMarker *marker); + +/* + * Sequence Player routines + */ +f32 alCents2Ratio(s32 cents); + +void alSeqpNew(ALSeqPlayer *seqp, ALSeqpConfig *config); +void alSeqpDelete(ALSeqPlayer *seqp); +void alSeqpSetSeq(ALSeqPlayer *seqp, ALSeq *seq); +ALSeq *alSeqpGetSeq(ALSeqPlayer *seqp); +void alSeqpPlay(ALSeqPlayer *seqp); +void alSeqpStop(ALSeqPlayer *seqp); +s32 alSeqpGetState(ALSeqPlayer *seqp); +void alSeqpSetBank(ALSeqPlayer *seqp, ALBank *b); +void alSeqpSetTempo(ALSeqPlayer *seqp, s32 tempo); +s32 alSeqpGetTempo(ALSeqPlayer *seqp); +s16 alSeqpGetVol(ALSeqPlayer *seqp); /* Master volume control */ +void alSeqpSetVol(ALSeqPlayer *seqp, s16 vol); +void alSeqpLoop(ALSeqPlayer *seqp, ALSeqMarker *start, ALSeqMarker *end, s32 count); + +void alSeqpSetChlProgram(ALSeqPlayer *seqp, u8 chan, u8 prog); +s32 alSeqpGetChlProgram(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlFXMix(ALSeqPlayer *seqp, u8 chan, u8 fxmix); +u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlVol(ALSeqPlayer *seqp, u8 chan, u8 vol); +u8 alSeqpGetChlVol(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlPan(ALSeqPlayer *seqp, u8 chan, ALPan pan); +ALPan alSeqpGetChlPan(ALSeqPlayer *seqp, u8 chan); +void alSeqpSetChlPriority(ALSeqPlayer *seqp, u8 chan, u8 priority); +u8 alSeqpGetChlPriority(ALSeqPlayer *seqp, u8 chan); +void alSeqpSendMidi(ALSeqPlayer *seqp, s32 ticks, u8 status, u8 byte1, u8 byte2); + + +/* Maintain backwards compatibility with old routine names. */ +#define alSeqpSetProgram alSeqpSetChlProgram +#define alSeqpGetProgram alSeqpGetChlProgram +#define alSeqpSetFXMix alSeqpSetChlFXMix +#define alSeqpGetFXMix alSeqpGetChlFXMix +#define alSeqpSetPan alSeqpSetChlPan +#define alSeqpGetPan alSeqpGetChlPan +#define alSeqpSetChannelPriority alSeqpSetChlPriority +#define alSeqpGetChannelPriority alSeqpGetChlPriority + + + +/* + * Compressed Sequence Player routines + */ +void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *config); +void alCSPDelete(ALCSPlayer *seqp); +void alCSPSetSeq(ALCSPlayer *seqp, ALCSeq *seq); +ALCSeq *alCSPGetSeq(ALCSPlayer *seqp); +void alCSPPlay(ALCSPlayer *seqp); +void alCSPStop(ALCSPlayer *seqp); +s32 alCSPGetState(ALCSPlayer *seqp); +void alCSPSetBank(ALCSPlayer *seqp, ALBank *b); +void alCSPSetTempo(ALCSPlayer *seqp, s32 tempo); +s32 alCSPGetTempo(ALCSPlayer *seqp); +s16 alCSPGetVol(ALCSPlayer *seqp); +void alCSPSetVol(ALCSPlayer *seqp, s16 vol); + +void alCSPSetChlProgram(ALCSPlayer *seqp, u8 chan, u8 prog); +s32 alCSPGetChlProgram(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlFXMix(ALCSPlayer *seqp, u8 chan, u8 fxmix); +u8 alCSPGetChlFXMix(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); +ALPan alCSPGetChlPan(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlVol(ALCSPlayer *seqp, u8 chan, u8 vol); +u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); +void alCSPSetChlPriority(ALCSPlayer *seqp, u8 chan, u8 priority); +u8 alCSPGetChlPriority(ALCSPlayer *seqp, u8 chan); +void alCSPSendMidi(ALCSPlayer *seqp, s32 ticks, u8 status, + u8 byte1, u8 byte2); + + +/* Maintain backwards compatibility with old routine names. */ +#define alCSPSetProgram alCSPSetChlProgram +#define alCSPGetProgram alCSPGetChlProgram +#define alCSPSetFXMix alCSPSetChlFXMix +#define alCSPGetFXMix alCSPGetChlFXMix +#define alCSPSetPan alCSPSetChlPan +#define alCSPGetPan alCSPGetChlPan +#define alCSPSetChannelPriority alCSPSetChlPriority +#define alCSPGetChannelPriority alCSPGetChlPriority + #endif diff --git a/include/PR/os_cont.h b/include/PR/os_cont.h index 15ee60f..eab8ceb 100644 --- a/include/PR/os_cont.h +++ b/include/PR/os_cont.h @@ -150,6 +150,7 @@ typedef struct { #define L_CBUTTONS CONT_C #define R_CBUTTONS CONT_F #define D_CBUTTONS CONT_D +#define ANY_BUTTON 0xFFFF /* Controller error number */ diff --git a/include/platform_info.h b/include/platform_info.h index 310aa4d..c6ba892 100644 --- a/include/platform_info.h +++ b/include/platform_info.h @@ -12,4 +12,4 @@ #define DOUBLE_SIZE_ON_64_BIT(size) ((size) * (sizeof(void *) / 4)) -#endif // PLATFORM_INFO_H +#endif /* PLATFORM_INFO_H */ diff --git a/notes/GE_Documentation.tgz b/notes/GE_Documentation.tgz new file mode 100644 index 0000000..d25eac9 Binary files /dev/null and b/notes/GE_Documentation.tgz differ diff --git a/notes/PD_Documentation.tgz b/notes/PD_Documentation.tgz new file mode 100644 index 0000000..406f3f4 Binary files /dev/null and b/notes/PD_Documentation.tgz differ diff --git a/readme.md b/readme.md index 6bd8b99..0782553 100644 --- a/readme.md +++ b/readme.md @@ -1,44 +1,83 @@ This is a working Goldeneye 007 decompilation! -[![GE-CI](https://github.com/kholdfuzion/goldeneye_src/workflows/GE-CI/badge.svg)](https://kholdfuzion.github.io/goldeneyestatus/) +[![NTSC-Status](https://github.com/kholdfuzion/goldeneye_src/workflows/NTSC-Status/badge.svg)](https://kholdfuzion.github.io/goldeneyestatus/) +[![JP-Status](https://github.com/kholdfuzion/goldeneye_src/workflows/JP-Status/badge.svg)](https://kholdfuzion.github.io/goldeneyestatus/JPN.htm) +This repo builds a matching USA. JPN or PAL ROM. + +This repo does not include all assets necessary for compiling the ROMs. A prior copy of the game is required to extract the assets. ## Setup -The only requirements for Ubuntu 16.04 and 18.04 should be -``` +The only requirements for Ubuntu 16.04+ should be +```bash sudo apt install binutils-mips-linux-gnu make ``` + +If you don't have host development tools already installed then you will also need +```bash +sudo apt install build-essential +``` + +Additionally [qemu-irix](https://github.com/n64decomp/qemu-irix/releases) is needed + +Install the package after download: +```bash +sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb +``` + Make sure you cloned the repo with git otherwise it won't build!! -Place a USA rom in project root named -``` +Place an unmodified USA rom in project root named +```bash baserom.u.z64 ``` followed by -``` +```bash ./extract_baserom.u.sh && make ``` -For J support also place a baserom.j.z64 in root and run: +or +```bash +./extract_baserom.u.sh /path_to/rom.n64 && make +# Example (Rom located on EverDrive): + ./extract_baserom.u.sh /mnt/e/Goldeneye.n64 && make ``` +For J support also place a baserom.j.z64 in root and run: +```bash ./extract_baserom.u.sh && ./extract_diff.j.sh && make VERSION=JP ``` If you are upgrading from an old repo, run: -``` +```bash ./clean_baserom.sh && ./extract_baserom.u.sh && make clean && make ``` The extract and clean scripts support switches: -``` +```bash name_baserom.sh files name_baserom.sh images ``` to do just one or the other, default is both +## Build the ROM +Run make to build the ROM (defaults to VERSION=us). Other examples: +```bash +make VERSION=jp -j4 # build (J) version instead with 4 jobs +make VERSION=eu COMPARE=0 # build (EU) version but do not compare ROM hashes +``` + + +Resulting artifacts can be found in the build directory. + + +The full list of configurable variables are listed below, with the default being the first listed: + +VERSION: us, jp, eu + ## Project Structure ``` goldeneye_src +|-- Workflows: GitHub use only ├── assets: game assets │   ├── font: font data │   ├── images: image data @@ -56,10 +95,8 @@ goldeneye_src │   └── ramrom: demo data ├── bin: files that haven't been touched ├── build: output directory -├── ge007_libultra: to be merged with libreultra ├── include: header files -├── lib: SDK library code -├── notes: documentation +├── rsp: Custom GBI code (Assembly) (C0 and 4Tri) ├── src: C source code for game │   ├── game: core ge specific code 0x7f000000 range │   ├── libultra: currently used libultra.s @@ -67,6 +104,10 @@ goldeneye_src └── tools: build tools ``` +Documentation has been moved to https://github.com/kholdfuzion/goldeneye_docs/tree/master/notes + +Style Guide is https://github.com/kholdfuzion/goldeneye_docs/tree/master/notes/StyleGuide.txt + This decompilation was only made possible thanks to many awesome 00 Agents who will be revealed only if they wish. GE and PD documentation made by Zoinkity diff --git a/src/audi.c b/src/audi.c index ddc9459..d50cbcb 100644 --- a/src/audi.c +++ b/src/audi.c @@ -1,600 +1,525 @@ -//FIXME i still need data/bss love. #include "ultra64.h" #include "sched.h" #include "audi.h" /** * @file audi.c - * This file contains audio code. + * This file contains audio code. Starts main audio thread, handles some audio DMA. */ +// 0x5622 = 22050 +#define OUTPUT_RATE 0x5622 +#define MAYBE_FRAME_RATE 60 +#define FRAMES_PER_FIELD_AS_POW2 1 +#define AUDIO_FRAME_MESSAGE_QUEUE_SIZE 8 +#define AUDIO_REPLY_MESSAGE_QUEUE_SIZE 8 +#define AUDIO_DMA_IO_QUEUE_SIZE 64 +#define AUDIO_DMA_QUEUE_SIZE 66 +#define AUDIO_DMA_MAX_BUFFER_LENGTH 0x200 + +#define NUMBER_OUTPUT_BUFFERS 3 +#define NUMBER_ACMD_LISTS 2 +#define MAX_ACMD_SIZE 3000 +#define NUMBER_DMA_BUFFERS 64 +#define EXTRA_SAMPLES 0x25 +#define AUDIO_FRAME_MESSAGE_QUEUE_SIZE 8 +#define AUDIO_REPLY_MESSAGE_QUEUE_SIZE 8 + +#define MAIN_QUIT_MESSAGE 10 +#define AUDIO_MANAGER_COUNT_INTERVAL 0xf0 + +extern long long int rspbootTextStart[]; +extern long long int gsp3DTextStart[]; +extern long long int aspMainTextStart[]; +extern long long int aspMainDataStart[]; +extern u8 sp_audi[]; + +/** + * Copied from the n64devkit audio examples. + * sizeof(struct DMABuffer_s) == 0x14 (20) + */ +typedef struct DMABuffer_s { + /** + * 0x0. + */ + ALLink node; + + /** + * 0x8. + */ + int startAddr; + + /** + * 0xc. + */ + u32 lastFrame; + + /** + * 0x10. + */ + u8* ptr; +} DMABuffer; + +/** + * Copied from the n64devkit audio examples. + * sizeof(struct DMAState_s) == 0xc (12). + */ +typedef struct DMAState_s { + /** + * This was defined (in the devkit) as u8 (and code expects a byte), but the size + * of the struct and offset for firstUsed seems to make this u32/s32. + * I'm adding the union to make this explicit. + * 0x0. + */ + union { + u8 initialized; + s32 _unusedAlign; + } u; + + /** + * 0x4. + */ + DMABuffer *firstUsed; + + /** + * 0x8. + */ + DMABuffer *firstFree; +} DMAState; + +/** + * Copied from the n64devkit audio examples. + */ +typedef union AudioMessage_u { + struct { + s16 type; + } gen; + + struct { + s16 type; + struct AudioInfo_s *info; + } done; + + OSScMsg app; +} AudioMessage; + +/** +* Modified from n64devkit example. +* sizeof(struct _DMAState) == 0xc (12). +*/ +typedef struct AudioInfo_s { + /** + * Output data pointer. + * 0x0. + */ + s16 *data; + + /** + * # of samples synthesized in this frame + * 0x4. + */ + s16 frameSamples; + + /** + * scheduler structure + * 0x8 + */ + OSScTask task; +} AudioInfo; + +// unknown purpose u32 D_800230F0 = 0; -u32 audFrameCt = 0; -u32 nextDMA = 0; -u32 curAcmdList = 0; -u64 D_80023100[]= { - {0x000600001900}, - {0x0000000000A0}, - {0x2666FFFFD99A}, - {0x000000000000}, - {0x000000000000}, - {0x00A000000140}, - {0x2666FFFFD99A}, - {0x2B8400000000}, - {0x000000002500}, - {0x032000000A00}, - {0x4000FFFFC000}, - {0x11EB00000000}, - {0x000000003000}, - {0x0C80000015E0}, - {0x4000FFFFC000}, - {0x11EB00000000}, - {0x000000003500}, - {0x0D20000012C0}, - {0x2000FFFFE000}, - {0x000000000000}, - {0x000000004000}, - {0x000000001720}, - {0x32C8FFFFCD38}, - {0x00000000017C}, - {0x000A00004500}, + +u32 g_AudioFrameCount = 0; + +u32 g_NextDMa = 0; + +u32 g_CurrentAcmdList = 0; + +/* +* This macro is used/defined in both libultra and libnaudio +*/ +#define ms *(((s32)((f32)44.1)) & ~0x7) + +#define CUSTOM_FX_SECTION_COUNT 6 +#define CUSTOM_FX_SECTION_SIZE 8 +/* +* Following the libultra and libnaudio naming convention ... +*/ +s32 CUSTOM_FX_PARAMS_N[CUSTOM_FX_SECTION_COUNT * CUSTOM_FX_SECTION_SIZE + 2] = { + + /* sections length */ + 6, 160 ms, + + /* chorus chorus filter + input output fbcoef ffcoef gain rate depth coef */ + 0, 4 ms, 9830, -9830, 0, 0, 0, 0, + 4 ms, 8 ms, 9830, -9830, 0x2B84, 0, 0, 0x2500, + 20 ms, 64 ms, 16384, -16384, 0x11EB, 0, 0, 0x3000, + 80 ms, 140 ms, 16384, -16384, 0x11EB, 0, 0, 0x3500, + 84 ms, 120 ms, 8192, -8192, 0, 0, 0, 0x4000, + 0, 148 ms, 13000, -13000, 0, 0x017C, 0xA, 0x4500 }; -s32 firstTime = 1; - +s32 g_FirstTime = 1; /*bss needs fixing */ s32 dword_CODE_bss_8005E4B0[2]; -s32 dword_CODE_bss_8005E4B8[2]; -s32 dword_CODE_bss_8005E4C0; -s32 dword_CODE_bss_8005E4C4; -s32 dword_CODE_bss_8005E4C8; -s32 dword_CODE_bss_8005E4CC; -s32 dword_CODE_bss_8005E4D0[2]; -s32 dword_CODE_bss_8005E4D8[2]; -char dword_CODE_bss_8005E4E0[0x38]; -//8005e518 -char _am[0x284]; - - - - - - -//8005e7a0 -OSScClient audi_client[2]; -//8005e7b0 -s32 dmaState_initialized; -s32 dmaState_firstUsed; -s32 dmaState_firstFree[2]; -char dmaBuffs[0x500]; -s32 minFrameSize; -s32 frameSize; -s32 maxFrameSize; -s32 cmdLen; - -OSIoMesg audDMAIOMesgBuf[0x40]; -OSMesgQueue audDMAMessageQ; -char audDMAMessageBuf[0x108]; - /** - * 29D0 70001BD0 + * Address 8005E4B8. + * (type is u64) + * Used in amMain. + * This looks like it stores the largest sDeltaTime between + * counts of AUDIO_MANAGER_COUNT_INTERVAL. + */ +OSTime g_LargestDeltaTime; + +/** + * Address 8005E4C0. + * (type is u64) + * Used in amMain. + * Stores the elpased time of main loop (difference between sEndTime and sStartTime). */ #ifdef NONMATCHING -void amCreateAudioMgr(void *arg0) -{ - ? sp48; - f32 temp_f0; - s32 temp_ret; - s32 temp_s2; - u32 temp_s0; - u32 temp_t0; - u32 temp_t9; - u32 temp_v1; - void *temp_s0_2; - void *temp_s1; - void *temp_t0_2; - void *temp_t7; - u32 phi_v1; - u32 phi_v1_2; - void *phi_t7; - void *phi_t0; - void *phi_s0; - s32 phi_s0_2; - void *phi_s1; - s32 phi_s2; - void *phi_s0_3; - - arg0->unk10 = &__amDmaNew; - temp_ret = osAiSetFrequency(0x5622); - arg0->unk18 = temp_ret; - temp_f0 = (f32) (temp_ret * 2) / 60.0f; - temp_t9 = (u32) temp_f0; - frameSize = temp_t9; - temp_t0 = temp_t9 + 1; - phi_v1 = temp_t9; - if ((f32) temp_t9 < temp_f0) - { - frameSize = temp_t0; - phi_v1 = temp_t0; - } - phi_v1_2 = phi_v1; - if ((phi_v1 & 0xf) != 0) - { - temp_v1 = (phi_v1 & -0x10) + 0x10; - frameSize = temp_v1; - phi_v1_2 = temp_v1; - } - minFrameSize = (s32) (phi_v1_2 + -0x10); - maxFrameSize = (s32) (phi_v1_2 + 0x35); - if (arg0->unk1C == 6) - { - phi_t7 = &D_80023100; - phi_t0 = &sp48; -loop_6: - temp_t7 = phi_t7 + 0xc; - temp_t0_2 = phi_t0 + 0xc; - temp_t0_2->unk-C = (?32) *phi_t7; - temp_t0_2->unk-8 = (?32) temp_t7->unk-8; - temp_t0_2->unk-4 = (?32) temp_t7->unk-4; - phi_t7 = temp_t7; - phi_t0 = temp_t0_2; - if (temp_t7 != (&D_80023100 + 0xc0)) - { - goto loop_6; - } - temp_t0_2->unk0 = (?32) temp_t7->unk0; - temp_t0_2->unk4 = (?32) temp_t7->unk4; - arg0->unk20 = &sp48; - alInit(&_am+0x238, arg0); - } - else - { - alInit(&_am+0x238, arg0); - } - phi_s0 = &_am; -loop_10: - phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x60); - temp_s0 = phi_s0 + 4; - *phi_s0->unk8 = alHeapDBAlloc(0, 0, arg0->unk14, 1, (s32) (maxFrameSize * 4)); - phi_s0 = temp_s0; - if (temp_s0 < &_am+0xC) - { - goto loop_10; - } - osCreateMesgQueue(&_am+0x200, &_am+0x218, 8); - osCreateMesgQueue(&_am+0x1C8, &_am+0x1E0, 8); - osCreateMesgQueue(&audDMAMessageQ, &audDMAMessageBuf, 0x40); - dmaBuffs.unk4 = 0; - dmaBuffs.unk0 = 0; - phi_s0_2 = dmaBuffs + 0xe; - phi_s1 = &dmaBuffs; - phi_s2 = 0; -loop_12: - alLink(phi_s0_2, phi_s1); - temp_s2 = phi_s2 + 1; - temp_s1 = phi_s1 + 0x14; - temp_s1->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); - phi_s0_2 = phi_s0_2 + 0x14; - phi_s1 = temp_s1; - phi_s2 = temp_s2; - if (temp_s2 < 0x3f) - { - goto loop_12; - } - temp_s1->unk10 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x200); - phi_s0_3 = &_am; -loop_14: - temp_s0_2 = phi_s0_3 + 4; - temp_s0_2->unk-4 = alHeapDBAlloc(0, 0, arg0->unk14, 1, 0x5dc0); - phi_s0_3 = temp_s0_2; - if (temp_s0_2 != &_am+0x8) - { - goto loop_14; - } - osCreateThread(&_am+0x18, 4, &_amMain, 0, set_stack_entry(&sp_audi, 0x1000), 0x14); -} +OSTime g_DeltaTime; #else -GLOBAL_ASM( -.text -glabel amCreateAudioMgr -/* 0027D0 70001BD0 27BDFEE8 */ addiu $sp, $sp, -0x118 -/* 0027D4 70001BD4 AFB3002C */ sw $s3, 0x2c($sp) -/* 0027D8 70001BD8 3C0E7000 */ lui $t6, %hi(__amDmaNew) # $t6, 0x7000 -/* 0027DC 70001BDC AFBF0034 */ sw $ra, 0x34($sp) -/* 0027E0 70001BE0 AFB40030 */ sw $s4, 0x30($sp) -/* 0027E4 70001BE4 AFB20028 */ sw $s2, 0x28($sp) -/* 0027E8 70001BE8 AFB10024 */ sw $s1, 0x24($sp) -/* 0027EC 70001BEC AFB00020 */ sw $s0, 0x20($sp) -/* 0027F0 70001BF0 25CE25D8 */ addiu $t6, %lo(__amDmaNew) # addiu $t6, $t6, 0x25d8 -/* 0027F4 70001BF4 00809825 */ move $s3, $a0 -/* 0027F8 70001BF8 AC8E0010 */ sw $t6, 0x10($a0) -/* 0027FC 70001BFC 0C003A4C */ jal osAiSetFrequency -/* 002800 70001C00 24045622 */ li $a0, 22050 -/* 002804 70001C04 00027840 */ sll $t7, $v0, 1 -/* 002808 70001C08 448F2000 */ mtc1 $t7, $f4 -/* 00280C 70001C0C 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 002810 70001C10 44814000 */ mtc1 $at, $f8 -/* 002814 70001C14 468021A0 */ cvt.s.w $f6, $f4 -/* 002818 70001C18 24190001 */ li $t9, 1 -/* 00281C 70001C1C 3C048006 */ lui $a0, %hi(frameSize) -/* 002820 70001C20 3C148006 */ lui $s4, %hi(maxFrameSize) -/* 002824 70001C24 2484ECC4 */ addiu $a0, %lo(frameSize) # addiu $a0, $a0, -0x133c -/* 002828 70001C28 AE620018 */ sw $v0, 0x18($s3) -/* 00282C 70001C2C 46083003 */ div.s $f0, $f6, $f8 -/* 002830 70001C30 2694ECC8 */ addiu $s4, %lo(maxFrameSize) # addiu $s4, $s4, -0x1338 -/* 002834 70001C34 4458F800 */ cfc1 $t8, $31 -/* 002838 70001C38 44D9F800 */ ctc1 $t9, $31 -/* 00283C 70001C3C 00000000 */ nop -/* 002840 70001C40 460002A4 */ cvt.w.s $f10, $f0 -/* 002844 70001C44 4459F800 */ cfc1 $t9, $31 -/* 002848 70001C48 00000000 */ nop -/* 00284C 70001C4C 33390078 */ andi $t9, $t9, 0x78 -/* 002850 70001C50 13200012 */ beqz $t9, .L70001C9C -/* 002854 70001C54 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 002858 70001C58 44815000 */ mtc1 $at, $f10 -/* 00285C 70001C5C 24190001 */ li $t9, 1 -/* 002860 70001C60 460A0281 */ sub.s $f10, $f0, $f10 -/* 002864 70001C64 44D9F800 */ ctc1 $t9, $31 -/* 002868 70001C68 00000000 */ nop -/* 00286C 70001C6C 460052A4 */ cvt.w.s $f10, $f10 -/* 002870 70001C70 4459F800 */ cfc1 $t9, $31 -/* 002874 70001C74 00000000 */ nop -/* 002878 70001C78 33390078 */ andi $t9, $t9, 0x78 -/* 00287C 70001C7C 17200005 */ bnez $t9, .L70001C94 -/* 002880 70001C80 00000000 */ nop -/* 002884 70001C84 44195000 */ mfc1 $t9, $f10 -/* 002888 70001C88 3C018000 */ lui $at, 0x8000 -/* 00288C 70001C8C 10000007 */ b .L70001CAC -/* 002890 70001C90 0321C825 */ or $t9, $t9, $at -.L70001C94: -/* 002894 70001C94 10000005 */ b .L70001CAC -/* 002898 70001C98 2419FFFF */ li $t9, -1 -.L70001C9C: -/* 00289C 70001C9C 44195000 */ mfc1 $t9, $f10 -/* 0028A0 70001CA0 00000000 */ nop -/* 0028A4 70001CA4 0720FFFB */ bltz $t9, .L70001C94 -/* 0028A8 70001CA8 00000000 */ nop -.L70001CAC: -/* 0028AC 70001CAC 03201825 */ move $v1, $t9 -/* 0028B0 70001CB0 44D8F800 */ ctc1 $t8, $31 -/* 0028B4 70001CB4 44838000 */ mtc1 $v1, $f16 -/* 0028B8 70001CB8 AC990000 */ sw $t9, ($a0) -/* 0028BC 70001CBC 07210005 */ bgez $t9, .L70001CD4 -/* 0028C0 70001CC0 468084A0 */ cvt.s.w $f18, $f16 -/* 0028C4 70001CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0028C8 70001CC8 44812000 */ mtc1 $at, $f4 -/* 0028CC 70001CCC 00000000 */ nop -/* 0028D0 70001CD0 46049480 */ add.s $f18, $f18, $f4 -.L70001CD4: -/* 0028D4 70001CD4 4600903C */ c.lt.s $f18, $f0 -/* 0028D8 70001CD8 00000000 */ nop -/* 0028DC 70001CDC 45000003 */ bc1f .L70001CEC -/* 0028E0 70001CE0 24680001 */ addiu $t0, $v1, 1 -/* 0028E4 70001CE4 AC880000 */ sw $t0, ($a0) -/* 0028E8 70001CE8 01001825 */ move $v1, $t0 -.L70001CEC: -/* 0028EC 70001CEC 3069000F */ andi $t1, $v1, 0xf -/* 0028F0 70001CF0 11200004 */ beqz $t1, .L70001D04 -/* 0028F4 70001CF4 2401FFF0 */ li $at, -16 -/* 0028F8 70001CF8 00615024 */ and $t2, $v1, $at -/* 0028FC 70001CFC 25430010 */ addiu $v1, $t2, 0x10 -/* 002900 70001D00 AC830000 */ sw $v1, ($a0) -.L70001D04: -/* 002904 70001D04 246CFFF0 */ addiu $t4, $v1, -0x10 -/* 002908 70001D08 3C018006 */ lui $at, %hi(minFrameSize) -/* 00290C 70001D0C AC2CECC0 */ sw $t4, %lo(minFrameSize)($at) -/* 002910 70001D10 246D0035 */ addiu $t5, $v1, 0x35 -/* 002914 70001D14 AE8D0000 */ sw $t5, ($s4) -/* 002918 70001D18 926E001C */ lbu $t6, 0x1c($s3) -/* 00291C 70001D1C 24010006 */ li $at, 6 -/* 002920 70001D20 3C048006 */ lui $a0, %hi(_am+0x238) -/* 002924 70001D24 15C1001A */ bne $t6, $at, .L70001D90 -/* 002928 70001D28 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 -/* 00292C 70001D2C 3C0F8002 */ lui $t7, %hi(D_80023100) -/* 002930 70001D30 27A20048 */ addiu $v0, $sp, 0x48 -/* 002934 70001D34 25EF3100 */ addiu $t7, %lo(D_80023100) # addiu $t7, $t7, 0x3100 -/* 002938 70001D38 25F900C0 */ addiu $t9, $t7, 0xc0 -/* 00293C 70001D3C 00404025 */ move $t0, $v0 -.L70001D40: -/* 002940 70001D40 8DE10000 */ lw $at, ($t7) -/* 002944 70001D44 25EF000C */ addiu $t7, $t7, 0xc -/* 002948 70001D48 2508000C */ addiu $t0, $t0, 0xc -/* 00294C 70001D4C AD01FFF4 */ sw $at, -0xc($t0) -/* 002950 70001D50 8DE1FFF8 */ lw $at, -8($t7) -/* 002954 70001D54 AD01FFF8 */ sw $at, -8($t0) -/* 002958 70001D58 8DE1FFFC */ lw $at, -4($t7) -/* 00295C 70001D5C 15F9FFF8 */ bne $t7, $t9, .L70001D40 -/* 002960 70001D60 AD01FFFC */ sw $at, -4($t0) -/* 002964 70001D64 8DE10000 */ lw $at, ($t7) -/* 002968 70001D68 3C048006 */ lui $a0, %hi(_am+0x238) -/* 00296C 70001D6C 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 -/* 002970 70001D70 AD010000 */ sw $at, ($t0) -/* 002974 70001D74 8DF90004 */ lw $t9, 4($t7) -/* 002978 70001D78 02602825 */ move $a1, $s3 -/* 00297C 70001D7C AD190004 */ sw $t9, 4($t0) -/* 002980 70001D80 0C003AC7 */ jal alInit -/* 002984 70001D84 AE620020 */ sw $v0, 0x20($s3) -/* 002988 70001D88 10000003 */ b .L70001D98 -/* 00298C 70001D8C 00000000 */ nop -.L70001D90: -/* 002990 70001D90 0C003AC7 */ jal alInit -/* 002994 70001D94 02602825 */ move $a1, $s3 -.L70001D98: -/* 002998 70001D98 3C108006 */ lui $s0, %hi(_am) -/* 00299C 70001D9C 3C118006 */ lui $s1, %hi(_am+0xC) -/* 0029A0 70001DA0 2631E524 */ addiu $s1, %lo(_am+0xC) # addiu $s1, $s1, -0x1adc -/* 0029A4 70001DA4 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 -.L70001DA8: -/* 0029A8 70001DA8 8E660014 */ lw $a2, 0x14($s3) -/* 0029AC 70001DAC 24090060 */ li $t1, 96 -/* 0029B0 70001DB0 AFA90010 */ sw $t1, 0x10($sp) -/* 0029B4 70001DB4 00002025 */ move $a0, $zero -/* 0029B8 70001DB8 00002825 */ move $a1, $zero -/* 0029BC 70001DBC 0C003AD4 */ jal alHeapDBAlloc -/* 0029C0 70001DC0 24070001 */ li $a3, 1 -/* 0029C4 70001DC4 8E8A0000 */ lw $t2, ($s4) -/* 0029C8 70001DC8 AE020008 */ sw $v0, 8($s0) -/* 0029CC 70001DCC 8E660014 */ lw $a2, 0x14($s3) -/* 0029D0 70001DD0 000A5880 */ sll $t3, $t2, 2 -/* 0029D4 70001DD4 AFAB0010 */ sw $t3, 0x10($sp) -/* 0029D8 70001DD8 00002025 */ move $a0, $zero -/* 0029DC 70001DDC 00002825 */ move $a1, $zero -/* 0029E0 70001DE0 0C003AD4 */ jal alHeapDBAlloc -/* 0029E4 70001DE4 24070001 */ li $a3, 1 -/* 0029E8 70001DE8 8E0C0008 */ lw $t4, 8($s0) -/* 0029EC 70001DEC 26100004 */ addiu $s0, $s0, 4 -/* 0029F0 70001DF0 0211082B */ sltu $at, $s0, $s1 -/* 0029F4 70001DF4 1420FFEC */ bnez $at, .L70001DA8 -/* 0029F8 70001DF8 AD820000 */ sw $v0, ($t4) -/* 0029FC 70001DFC 3C048006 */ lui $a0, %hi(_am+0x200) -/* 002A00 70001E00 3C058006 */ lui $a1, %hi(_am+0x218) -/* 002A04 70001E04 24A5E730 */ addiu $a1, %lo(_am+0x218) # addiu $a1, $a1, -0x18d0 -/* 002A08 70001E08 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 -/* 002A0C 70001E0C 0C0035B4 */ jal osCreateMesgQueue -/* 002A10 70001E10 24060008 */ li $a2, 8 -/* 002A14 70001E14 3C048006 */ lui $a0, %hi(_am+0x1C8) -/* 002A18 70001E18 3C058006 */ lui $a1, %hi(_am+0x1E0) -/* 002A1C 70001E1C 24A5E6F8 */ addiu $a1, %lo(_am+0x1E0) # addiu $a1, $a1, -0x1908 -/* 002A20 70001E20 2484E6E0 */ addiu $a0, %lo(_am+0x1C8) # addiu $a0, $a0, -0x1920 -/* 002A24 70001E24 0C0035B4 */ jal osCreateMesgQueue -/* 002A28 70001E28 24060008 */ li $a2, 8 -/* 002A2C 70001E2C 3C048006 */ lui $a0, %hi(audDMAMessageQ) -/* 002A30 70001E30 3C058006 */ lui $a1, %hi(audDMAMessageBuf) -/* 002A34 70001E34 24A5F2E8 */ addiu $a1, %lo(audDMAMessageBuf) # addiu $a1, $a1, -0xd18 -/* 002A38 70001E38 2484F2D0 */ addiu $a0, %lo(audDMAMessageQ) # addiu $a0, $a0, -0xd30 -/* 002A3C 70001E3C 0C0035B4 */ jal osCreateMesgQueue -/* 002A40 70001E40 24060040 */ li $a2, 64 -/* 002A44 70001E44 3C028006 */ lui $v0, %hi(dmaBuffs) -/* 002A48 70001E48 2442E7C0 */ addiu $v0, %lo(dmaBuffs) # addiu $v0, $v0, -0x1840 -/* 002A4C 70001E4C 3C118006 */ lui $s1, %hi(dmaBuffs) -/* 002A50 70001E50 3C108006 */ lui $s0, %hi(dmaBuffs+20) -/* 002A54 70001E54 AC400004 */ sw $zero, 4($v0) -/* 002A58 70001E58 AC400000 */ sw $zero, ($v0) -/* 002A5C 70001E5C 2610E7D4 */ addiu $s0, $s0, %lo(dmaBuffs+20) -/* 002A60 70001E60 2631E7C0 */ addiu $s1, %lo(dmaBuffs) # addiu $s1, $s1, -0x1840 -/* 002A64 70001E64 00009025 */ move $s2, $zero -.L70001E68: -/* 002A68 70001E68 02002025 */ move $a0, $s0 -/* 002A6C 70001E6C 0C003AB0 */ jal alLink -/* 002A70 70001E70 02202825 */ move $a1, $s1 -/* 002A74 70001E74 8E660014 */ lw $a2, 0x14($s3) -/* 002A78 70001E78 240D0200 */ li $t5, 512 -/* 002A7C 70001E7C AFAD0010 */ sw $t5, 0x10($sp) -/* 002A80 70001E80 00002025 */ move $a0, $zero -/* 002A84 70001E84 00002825 */ move $a1, $zero -/* 002A88 70001E88 0C003AD4 */ jal alHeapDBAlloc -/* 002A8C 70001E8C 24070001 */ li $a3, 1 -/* 002A90 70001E90 26520001 */ addiu $s2, $s2, 1 -/* 002A94 70001E94 2A41003F */ slti $at, $s2, 0x3f -/* 002A98 70001E98 26310014 */ addiu $s1, $s1, 0x14 -/* 002A9C 70001E9C 26100014 */ addiu $s0, $s0, 0x14 -/* 002AA0 70001EA0 1420FFF1 */ bnez $at, .L70001E68 -/* 002AA4 70001EA4 AE22FFFC */ sw $v0, -4($s1) -/* 002AA8 70001EA8 8E660014 */ lw $a2, 0x14($s3) -/* 002AAC 70001EAC 240E0200 */ li $t6, 512 -/* 002AB0 70001EB0 AFAE0010 */ sw $t6, 0x10($sp) -/* 002AB4 70001EB4 00002025 */ move $a0, $zero -/* 002AB8 70001EB8 00002825 */ move $a1, $zero -/* 002ABC 70001EBC 0C003AD4 */ jal alHeapDBAlloc -/* 002AC0 70001EC0 24070001 */ li $a3, 1 -/* 002AC4 70001EC4 AE220010 */ sw $v0, 0x10($s1) -/* 002AC8 70001EC8 3C118006 */ lui $s1, %hi(_am+0x8) -/* 002ACC 70001ECC 3C108006 */ lui $s0, %hi(_am) -/* 002AD0 70001ED0 2610E518 */ addiu $s0, %lo(_am) # addiu $s0, $s0, -0x1ae8 -/* 002AD4 70001ED4 2631E520 */ addiu $s1, %lo(_am+0x8) # addiu $s1, $s1, -0x1ae0 -.L70001ED8: -/* 002AD8 70001ED8 8E660014 */ lw $a2, 0x14($s3) -/* 002ADC 70001EDC 24185DC0 */ li $t8, 24000 -/* 002AE0 70001EE0 AFB80010 */ sw $t8, 0x10($sp) -/* 002AE4 70001EE4 00002025 */ move $a0, $zero -/* 002AE8 70001EE8 00002825 */ move $a1, $zero -/* 002AEC 70001EEC 0C003AD4 */ jal alHeapDBAlloc -/* 002AF0 70001EF0 24070001 */ li $a3, 1 -/* 002AF4 70001EF4 26100004 */ addiu $s0, $s0, 4 -/* 002AF8 70001EF8 1611FFF7 */ bne $s0, $s1, .L70001ED8 -/* 002AFC 70001EFC AE02FFFC */ sw $v0, -4($s0) -/* 002B00 70001F00 3C04803B */ lui $a0, %hi(sp_audi) # $a0, 0x803b -/* 002B04 70001F04 24843950 */ addiu $a0, %lo(sp_audi) # addiu $a0, $a0, 0x3950 -/* 002B08 70001F08 0C0001BC */ jal set_stack_entry -/* 002B0C 70001F0C 24051000 */ li $a1, 4096 -/* 002B10 70001F10 3C048006 */ lui $a0, %hi(_am+0x18) -/* 002B14 70001F14 3C067000 */ lui $a2, %hi(_amMain) # $a2, 0x7000 -/* 002B18 70001F18 24190014 */ li $t9, 20 -/* 002B1C 70001F1C AFB90014 */ sw $t9, 0x14($sp) -/* 002B20 70001F20 24C61F7C */ addiu $a2, %lo(_amMain) # addiu $a2, $a2, 0x1f7c -/* 002B24 70001F24 2484E530 */ addiu $a0, %lo(_am+0x18) # addiu $a0, $a0, -0x1ad0 -/* 002B28 70001F28 24050004 */ li $a1, 4 -/* 002B2C 70001F2C 00003825 */ move $a3, $zero -/* 002B30 70001F30 0C00350C */ jal osCreateThread -/* 002B34 70001F34 AFA20010 */ sw $v0, 0x10($sp) -/* 002B38 70001F38 8FBF0034 */ lw $ra, 0x34($sp) -/* 002B3C 70001F3C 8FB00020 */ lw $s0, 0x20($sp) -/* 002B40 70001F40 8FB10024 */ lw $s1, 0x24($sp) -/* 002B44 70001F44 8FB20028 */ lw $s2, 0x28($sp) -/* 002B48 70001F48 8FB3002C */ lw $s3, 0x2c($sp) -/* 002B4C 70001F4C 8FB40030 */ lw $s4, 0x30($sp) -/* 002B50 70001F50 03E00008 */ jr $ra -/* 002B54 70001F54 27BD0118 */ addiu $sp, $sp, 0x118 -) +s32 dword_CODE_bss_8005E4C0; +s32 dword_CODE_bss_8005E4C4; #endif /** - * 2B58 70001F58 + * Address 8005E4C8. + * Every AUDIO_MANAGER_COUNT_INTERVAL number of events, the average for sDeltaTimeSum + * is computed and stored here. + */ +#ifdef NONMATCHING +u64 g_DeltaAverage; +#else +s32 dword_CODE_bss_8005E4C8; +s32 dword_CODE_bss_8005E4CC; +#endif + +/** + * Address 8005E4D0. + * Tracks the sum total elapsed time. Reset every AUDIO_MANAGER_COUNT_INTERVAL. + */ +u64 g_DeltaTimeSum; + +/** + * Address 8005E4D8. + * (type is u64) + * Used in amMain. + * Stores the time at the start of the loop. + */ +OSTime g_StartTime; + +/** + * Address 8005E4E0. + * (type is u64) + * Used in amMain. + * Stores the time after primary processing is done. + */ +OSTime g_EndTime; + +/** + * Unknown / unused + */ +char dword_CODE_bss_8005E4E8[0x30]; + +/** + * Address 8005e518. + * sizeof(struct AudioManager_s) == 0x288 (648) + */ +struct AudioManager_s { + + /** + * 0. + */ + Acmd *cmdList[NUMBER_ACMD_LISTS]; + + /** + * 0x8. + */ + AudioInfo *audioInfo[NUMBER_OUTPUT_BUFFERS]; + + /** + * 0x14. + */ + u32 numberOutputBuffers; + + /** + * 0x18. + */ + OSThread audioThread; + + /** + * 0x1c8. + */ + OSMesgQueue frameMessageQueue; + + /** + * 0x1e0. + */ + OSMesg frameMessageBuffer[AUDIO_FRAME_MESSAGE_QUEUE_SIZE]; + + /** + * 0x200. + */ + OSMesgQueue replyMessageQueue; + + /** + * 0x218. + */ + OSMesg replyMessageBuffer[AUDIO_REPLY_MESSAGE_QUEUE_SIZE]; + + /** + * 0x238 + */ + ALGlobals g; + +} g_AudioManager; + +/** + * Address 0x8005e7a0. + */ +OSScClient g_AudioClient[2]; + +/** + * Address 0x8005e7b0. + */ +DMAState g_DmaState; + +DMABuffer g_DmaBuffers[NUMBER_DMA_BUFFERS]; + +u32 g_MinFrameSize; +u32 g_FrameSize; +u32 g_MaxFrameSize; +s32 g_CommandLength; + +OSIoMesg g_DmaIOMessageBuffer[AUDIO_DMA_IO_QUEUE_SIZE]; + +OSMesgQueue g_DmaMessageQueue; + +OSMesg g_DmaMessageBuffer[AUDIO_DMA_QUEUE_SIZE]; + + +// Forward declarations +s32 amDmaCallback(s32 addr, s32 len, void* state); +void amClearDmaBuffers(void); +void amHandleFrameMessage(AudioInfo *info, AudioInfo *lastInfo); +void amHandleDoneMessage(AudioInfo *info); +void amMain(void* arg); +ALDMAproc amDmaNew(DMAState** state); + + +/** + * Address 29D0 70001BD0 + * + * Looks to be loosely based on method + * amCreateAudioMgr + * from the n64devkit. + * + * @param alconf hw setup/config. + */ +void amCreateAudioManager(ALSynConfig* alconf) +{ + u32 j; + f32 fsize; + + alconf->dmaproc = &amDmaNew; + alconf->outputRate = osAiSetFrequency(OUTPUT_RATE); + + fsize = (f32) ((alconf->outputRate << FRAMES_PER_FIELD_AS_POW2) / (f32)MAYBE_FRAME_RATE); + + g_FrameSize = (u32) fsize; + + if (g_FrameSize < fsize) + { + g_FrameSize++; + } + + // This rounds up to the next multiple of 16. + if (g_FrameSize & 0xf) + { + g_FrameSize = (g_FrameSize & ~0xf) + 0x10; + } + + g_MinFrameSize = (u32)(g_FrameSize - 0x10); + g_MaxFrameSize = (u32)(g_FrameSize + EXTRA_SAMPLES + 0x10); + + if (alconf->fxType == AL_FX_CUSTOM) + { + s32 sp48[CUSTOM_FX_SECTION_COUNT * CUSTOM_FX_SECTION_SIZE + 2] = CUSTOM_FX_PARAMS_N; + alconf->params = sp48; + alInit(&g_AudioManager.g, alconf); + } + else + { + alInit(&g_AudioManager.g, alconf); + } + + for (j=0; j < NUMBER_OUTPUT_BUFFERS; j++) + { + g_AudioManager.audioInfo[j] = (AudioInfo *)alHeapDBAlloc(0, 0, alconf->heap, 1, sizeof(AudioInfo)); + g_AudioManager.audioInfo[j]->data = (s16*)alHeapDBAlloc(0, 0, alconf->heap, 1, g_MaxFrameSize * 4); + } + + osCreateMesgQueue(&g_AudioManager.replyMessageQueue, (OSMesg*)&g_AudioManager.replyMessageBuffer, AUDIO_REPLY_MESSAGE_QUEUE_SIZE); + osCreateMesgQueue(&g_AudioManager.frameMessageQueue, (OSMesg*)&g_AudioManager.frameMessageBuffer, AUDIO_FRAME_MESSAGE_QUEUE_SIZE); + osCreateMesgQueue(&g_DmaMessageQueue, (OSMesg*)&g_DmaMessageBuffer, AUDIO_DMA_IO_QUEUE_SIZE); + + g_DmaBuffers[0].node.prev = NULL; + g_DmaBuffers[0].node.next = NULL; + + for (j=0; (s32)j < NUMBER_DMA_BUFFERS - 1; j++) + { + alLink((ALLink*)&g_DmaBuffers[j+1], (ALLink*)&g_DmaBuffers[j]); + g_DmaBuffers[j].ptr = (void*)alHeapDBAlloc(0, 0, alconf->heap, 1, AUDIO_DMA_MAX_BUFFER_LENGTH); + } + // last buffer already linked, but still needs buffer + g_DmaBuffers[j].ptr = (void*)alHeapDBAlloc(0, 0, alconf->heap, 1, AUDIO_DMA_MAX_BUFFER_LENGTH); + + for (j=0; j < NUMBER_ACMD_LISTS; j++) + { + g_AudioManager.cmdList[j] = (Acmd *)alHeapDBAlloc(0, 0, alconf->heap, 1, MAX_ACMD_SIZE * sizeof(Acmd)); + } + + osCreateThread(&g_AudioManager.audioThread, 4, &amMain, 0, (void*)set_stack_entry((u8*)(&sp_audi), 0x1000), 0x14); +} + +/** + * 2B58 70001F58 * insert sound manager thread * redirect to 7000D580: A0=8005E530 */ -#ifdef NONMATCHING -void startaudiThread(void) { - osStartThread(&_am+0x18); -} -#else -GLOBAL_ASM( -glabel startaudiThread -/* 002B58 70001F58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002B5C 70001F5C AFBF0014 */ sw $ra, 0x14($sp) -/* 002B60 70001F60 3C048006 */ lui $a0, %hi(_am+0x18) -/* 002B64 70001F64 0C003560 */ jal osStartThread -/* 002B68 70001F68 2484E530 */ addiu $a0, $a0, %lo(_am+0x18) -/* 002B6C 70001F6C 8FBF0014 */ lw $ra, 0x14($sp) -/* 002B70 70001F70 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002B74 70001F74 03E00008 */ jr $ra -/* 002B78 70001F78 00000000 */ nop -) -#endif - -/** - * 2B7C 70001F7C - */ -#ifdef NONMATCHING -void _amMain(s32 arg0) +void amStartAudioThread(void) { - void *sp64; - ?32 sp60; - u32 sp54; - s32 sp50; - u32 sp4C; - s32 sp48; - u32 sp44; - u32 sp40; - ? temp_ret; - s32 temp_s1; - ? temp_ret_2; - u32 temp_t8; - u32 temp_t9; - ? temp_ret_3; - u32 temp_t7; - s32 phi_s1; - s32 phi_s2; - s32 phi_s2_2; + osStartThread(&g_AudioManager.audioThread); +} - sp64 = NULL; - sp60 = 0; - osScAddClient(&sc, &audi_client, &_am+0x1C8, 1); - phi_s1 = 0; - phi_s2_2 = 0; -loop_1: - osRecvMesg(&_am+0x1C8, &sp64, 1); - if (*sp64 != 1) - { - if (*sp64 != 5) - { - if (*sp64 != 0xa) - { - phi_s2 = phi_s2_2; - phi_s1 = phi_s1; - } - else - { - phi_s2 = 1; - phi_s1 = phi_s1; - } - } - else - { - phi_s2 = 1; - phi_s1 = phi_s1; - } - } - else - { - temp_ret = osGetTime(*sp64); - dword_CODE_bss_8005E4D8 = temp_ret; - dword_CODE_bss_8005E4D8.unk4 = temp_ret; - video_related_3(0x30000); - _amHandleFrameMsg((0x80060000 + (((u32) audFrameCt % 3U) * 4))->unk-1AE0, sp60); - temp_s1 = (phi_s1 + 1); - video_related_3(0x60000); - temp_ret_2 = osGetTime(); - dword_CODE_bss_8005E4E0 = temp_ret_2; - temp_t8 = ((temp_ret_2 - dword_CODE_bss_8005E4D8) - (temp_ret_2 < (u32) dword_CODE_bss_8005E4D8.unk4)); - dword_CODE_bss_8005E4E0.unk4 = temp_ret_2; - temp_t9 = (temp_ret_2 - dword_CODE_bss_8005E4D8.unk4); - dword_CODE_bss_8005E4C0 = temp_t9; - dword_CODE_bss_8005E4C0 = temp_t8; - sp44 = temp_t9; - sp40 = temp_t8; - sp50 = temp_ret_2; - sp54 = temp_ret_2; - sp48 = (s32) dword_CODE_bss_8005E4D8; - sp4C = (u32) dword_CODE_bss_8005E4D8.unk4; - if ((temp_s1 % 0xf0) == 0) - { - temp_ret_3 = __ull_div(dword_CODE_bss_8005E4D0, dword_CODE_bss_8005E4D0.unk4, 0, 0xf0); - dword_CODE_bss_8005E4CC = temp_ret_3; - dword_CODE_bss_8005E4CC = temp_ret_3; - sp44 = (u32) (dword_CODE_bss_8005E4E0.unk4 - dword_CODE_bss_8005E4D8.unk4); - dword_CODE_bss_8005E4B8.unk4 = 0U; - dword_CODE_bss_8005E4B8 = 0U; - dword_CODE_bss_8005E4D0.unk4 = 0; - sp40 = (u32) ((dword_CODE_bss_8005E4E0 - dword_CODE_bss_8005E4D8) - ((u32) dword_CODE_bss_8005E4E0.unk4 < (u32) dword_CODE_bss_8005E4D8.unk4)); - dword_CODE_bss_8005E4D0 = 0; - } - else - { - temp_t7 = (dword_CODE_bss_8005E4D0.unk4 + sp54); - dword_CODE_bss_8005E4D0.unk4 = (s32) (temp_t7 - sp4C); - dword_CODE_bss_8005E4D0 = (s32) (((((temp_t7 < sp54) + dword_CODE_bss_8005E4D0) + sp50) - sp48) - (temp_t7 < sp4C)); - } - if (sp40 >= (u32) dword_CODE_bss_8005E4B8) - { - if (((u32) dword_CODE_bss_8005E4B8 < sp40) || ((u32) dword_CODE_bss_8005E4B8.unk4 < sp44)) - { - dword_CODE_bss_8005E4B8 = sp40; - dword_CODE_bss_8005E4B8.unk4 = sp44; - } - else - { +#ifdef NONMATCHING +/** + * 2B7C 70001F7C + * Looks to be loosely based on method + * __amMain + * from the n64devkit. This method makes some kind of video calls, + * but also does some kind of debug tracking of the time spent between + * beginning and end of processing. + * + * @param arg unused. + * + * decomp status: + * - compiles: yes + * - stack resize: ok + * - identical instructions: fail + * - identical registers: fail + * + * notes: It looks like there are a few issues. + * 1) The static variables are being loaded into the wrong registers. + * This is sEndTime, sStartTime, sLargestDeltaTime. + * This causes trickle down differences. + * 2) Inside the first if block, registers are saved onto the stack, + * but the stack locations differ. + * This causes trickle down differences. + * 3) localDelta is probably a red herring, it makes the code close, but ... + * 4) g_DeltaAverage and g_DeltaTime don't seem to be written correctly as u64. + * Compare: + 4e8: 3c010000 lui at,0x0 4e8: R_MIPS_HI16 dword_CODE_bss_8005E4C0 + 4ec: 006bc823 subu t9,v1,t3 + 4f0: ac390000 sw t9,0(at) 4f0: R_MIPS_LO16 dword_CODE_bss_8005E4C4 + 4f4: ac380000 sw t8,0(at) 4f4: R_MIPS_LO16 dword_CODE_bss_8005E4C0 + to +4e8: 3c010000 lui at,0x0 4e8: R_MIPS_HI16 g_DeltaTime + 4ec: 006bc823 subu t9,v1,t3 + 4f0: ac390004 sw t9,4(at) 4f0: R_MIPS_LO16 g_DeltaTime + 4f4: ac380000 sw t8,0(at) 4f4: R_MIPS_LO16 g_DeltaTime + */ +void amMain(void* arg) +{ + s32 counter = 0; + + s32 done = 0; + AudioMessage *msg = 0; + AudioInfo *lastInfo = 0; + u64 localDelta; - } - } - osRecvMesg(&_am+0x200, &sp60, 1); - __amHandleDoneMsg(sp60); - phi_s2 = phi_s2_2; - phi_s1 = temp_s1; - } - phi_s2_2 = phi_s2; - if (phi_s2 == 0) + osScAddClient(&sc, &(g_AudioClient[0]), &(g_AudioManager.frameMessageQueue), (void*)1); + + while (!done) { - goto loop_1; + osRecvMesg(&g_AudioManager.frameMessageQueue, (OSMesg *)&msg, OS_MESG_BLOCK); + + switch (msg->gen.type) + { + case OS_SC_RETRACE_MSG: + { + g_StartTime = osGetTime(); + + speedGraphVideoRelated_3(0x30000); + amHandleFrameMessage(g_AudioManager.audioInfo[g_AudioFrameCount % 3U], lastInfo); + counter++; + speedGraphVideoRelated_3(0x60000); + + g_EndTime = osGetTime(); + + localDelta = g_EndTime - g_StartTime; + g_DeltaTime = localDelta; + + if ((counter % AUDIO_MANAGER_COUNT_INTERVAL) == 0) + { + g_DeltaAverage = g_DeltaTimeSum / AUDIO_MANAGER_COUNT_INTERVAL; + + localDelta = g_EndTime - g_StartTime; + + g_DeltaTimeSum = 0U; + g_LargestDeltaTime = 0U; + } + else + { + g_DeltaTimeSum = g_DeltaTimeSum + g_EndTime - g_StartTime; + } + + if (g_LargestDeltaTime < localDelta) + { + g_LargestDeltaTime = localDelta; + } + + osRecvMesg(&g_AudioManager.replyMessageQueue, (OSMesg *)&lastInfo, OS_MESG_BLOCK); + + amHandleDoneMessage(lastInfo); + } + break; + + case 5: + done = 1; + break; + + case MAIN_QUIT_MESSAGE: + done = 1; + break; + + default: + break; + } } - alClose(&_am+0x238); + + alClose(&(g_AudioManager.g)); } #else GLOBAL_ASM( .text -glabel _amMain +glabel amMain /* 002B7C 70001F7C 27BDFF90 */ addiu $sp, $sp, -0x70 /* 002B80 70001F80 AFB60030 */ sw $s6, 0x30($sp) -/* 002B84 70001F84 3C168006 */ lui $s6, %hi(_am+0x1C8) +/* 002B84 70001F84 3C168006 */ lui $s6, %hi(g_AudioManager+0x1C8) /* 002B88 70001F88 AFA40070 */ sw $a0, 0x70($sp) -/* 002B8C 70001F8C 26D6E6E0 */ addiu $s6, %lo(_am+0x1C8) # addiu $s6, $s6, -0x1920 +/* 002B8C 70001F8C 26D6E6E0 */ addiu $s6, %lo(g_AudioManager+0x1C8) # addiu $s6, $s6, -0x1920 /* 002B90 70001F90 AFBF003C */ sw $ra, 0x3c($sp) /* 002B94 70001F94 AFB20020 */ sw $s2, 0x20($sp) /* 002B98 70001F98 AFB1001C */ sw $s1, 0x1c($sp) /* 002B9C 70001F9C 3C048006 */ lui $a0, %hi(sc) -/* 002BA0 70001FA0 3C058006 */ lui $a1, %hi(audi_client) +/* 002BA0 70001FA0 3C058006 */ lui $a1, %hi(g_AudioClient) /* 002BA4 70001FA4 AFBE0038 */ sw $fp, 0x38($sp) /* 002BA8 70001FA8 AFB70034 */ sw $s7, 0x34($sp) /* 002BAC 70001FAC AFB5002C */ sw $s5, 0x2c($sp) @@ -605,19 +530,19 @@ glabel _amMain /* 002BC0 70001FC0 00009025 */ move $s2, $zero /* 002BC4 70001FC4 AFA00064 */ sw $zero, 0x64($sp) /* 002BC8 70001FC8 AFA00060 */ sw $zero, 0x60($sp) -/* 002BCC 70001FCC 24A5E7A0 */ addiu $a1, %lo(audi_client) # addiu $a1, $a1, -0x1860 +/* 002BCC 70001FCC 24A5E7A0 */ addiu $a1, %lo(g_AudioClient) # addiu $a1, $a1, -0x1860 /* 002BD0 70001FD0 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 /* 002BD4 70001FD4 02C03025 */ move $a2, $s6 /* 002BD8 70001FD8 0C000305 */ jal osScAddClient /* 002BDC 70001FDC 24070001 */ li $a3, 1 -/* 002BE0 70001FE0 3C158006 */ lui $s5, %hi(dword_CODE_bss_8005E4E0) -/* 002BE4 70001FE4 3C148006 */ lui $s4, %hi(dword_CODE_bss_8005E4D8) -/* 002BE8 70001FE8 3C138006 */ lui $s3, %hi(dword_CODE_bss_8005E4B8) -/* 002BEC 70001FEC 3C108006 */ lui $s0, %hi(dword_CODE_bss_8005E4D0) -/* 002BF0 70001FF0 2610E4D0 */ addiu $s0, %lo(dword_CODE_bss_8005E4D0) # addiu $s0, $s0, -0x1b30 -/* 002BF4 70001FF4 2673E4B8 */ addiu $s3, %lo(dword_CODE_bss_8005E4B8) # addiu $s3, $s3, -0x1b48 -/* 002BF8 70001FF8 2694E4D8 */ addiu $s4, %lo(dword_CODE_bss_8005E4D8) # addiu $s4, $s4, -0x1b28 -/* 002BFC 70001FFC 26B5E4E0 */ addiu $s5, %lo(dword_CODE_bss_8005E4E0) # addiu $s5, $s5, -0x1b20 +/* 002BE0 70001FE0 3C158006 */ lui $s5, %hi(g_EndTime) +/* 002BE4 70001FE4 3C148006 */ lui $s4, %hi(g_StartTime) +/* 002BE8 70001FE8 3C138006 */ lui $s3, %hi(g_LargestDeltaTime) +/* 002BEC 70001FEC 3C108006 */ lui $s0, %hi(g_DeltaTimeSum) +/* 002BF0 70001FF0 2610E4D0 */ addiu $s0, %lo(g_DeltaTimeSum) # addiu $s0, $s0, -0x1b30 +/* 002BF4 70001FF4 2673E4B8 */ addiu $s3, %lo(g_LargestDeltaTime) # addiu $s3, $s3, -0x1b48 +/* 002BF8 70001FF8 2694E4D8 */ addiu $s4, %lo(g_StartTime) # addiu $s4, $s4, -0x1b28 +/* 002BFC 70001FFC 26B5E4E0 */ addiu $s5, %lo(g_EndTime) # addiu $s5, $s5, -0x1b20 /* 002C00 70002000 241E0001 */ li $fp, 1 /* 002C04 70002004 27B70064 */ addiu $s7, $sp, 0x64 /* 002C08 70002008 02C02025 */ move $a0, $s6 @@ -641,21 +566,21 @@ glabel _amMain /* 002C48 70002048 00000000 */ nop /* 002C4C 7000204C AE820000 */ sw $v0, ($s4) /* 002C50 70002050 AE830004 */ sw $v1, 4($s4) -/* 002C54 70002054 0C000A15 */ jal video_related_3 +/* 002C54 70002054 0C000A15 */ jal speedGraphVideoRelated_3 /* 002C58 70002058 3C040003 */ lui $a0, 3 -/* 002C5C 7000205C 3C0F8002 */ lui $t7, %hi(audFrameCt) -/* 002C60 70002060 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) +/* 002C5C 7000205C 3C0F8002 */ lui $t7, %hi(g_AudioFrameCount) +/* 002C60 70002060 8DEF30F4 */ lw $t7, %lo(g_AudioFrameCount)($t7) /* 002C64 70002064 24010003 */ li $at, 3 -/* 002C68 70002068 3C048006 */ lui $a0, %hi(_am+8) +/* 002C68 70002068 3C048006 */ lui $a0, %hi(g_AudioManager+8) /* 002C6C 7000206C 01E1001B */ divu $zero, $t7, $at /* 002C70 70002070 0000C010 */ mfhi $t8 /* 002C74 70002074 0018C880 */ sll $t9, $t8, 2 /* 002C78 70002078 00992021 */ addu $a0, $a0, $t9 -/* 002C7C 7000207C 8C84E520 */ lw $a0, %lo(_am+8)($a0) -/* 002C80 70002080 0C000891 */ jal _amHandleFrameMsg +/* 002C7C 7000207C 8C84E520 */ lw $a0, %lo(g_AudioManager+8)($a0) +/* 002C80 70002080 0C000891 */ jal amHandleFrameMessage /* 002C84 70002084 8FA50060 */ lw $a1, 0x60($sp) /* 002C88 70002088 26310001 */ addiu $s1, $s1, 1 -/* 002C8C 7000208C 0C000A15 */ jal video_related_3 +/* 002C8C 7000208C 0C000A15 */ jal speedGraphVideoRelated_3 /* 002C90 70002090 3C040006 */ lui $a0, 6 /* 002C94 70002094 0C003AEC */ jal osGetTime /* 002C98 70002098 00000000 */ nop @@ -731,7 +656,7 @@ glabel _amMain /* 002DA8 700021A8 8FAD0044 */ lw $t5, 0x44($sp) /* 002DAC 700021AC 018A082B */ sltu $at, $t4, $t2 /* 002DB0 700021B0 14200008 */ bnez $at, .L700021D4 -/* 002DB4 700021B4 3C048006 */ lui $a0, %hi(_am+0x200) +/* 002DB4 700021B4 3C048006 */ lui $a0, %hi(g_AudioManager+0x200) /* 002DB8 700021B8 014C082B */ sltu $at, $t2, $t4 /* 002DBC 700021BC 14200003 */ bnez $at, .L700021CC /* 002DC0 700021C0 016D082B */ sltu $at, $t3, $t5 @@ -741,11 +666,11 @@ glabel _amMain /* 002DCC 700021CC AE6C0000 */ sw $t4, ($s3) /* 002DD0 700021D0 AE6D0004 */ sw $t5, 4($s3) .L700021D4: -/* 002DD4 700021D4 2484E718 */ addiu $a0, %lo(_am+0x200) # addiu $a0, $a0, -0x18e8 +/* 002DD4 700021D4 2484E718 */ addiu $a0, %lo(g_AudioManager+0x200) # addiu $a0, $a0, -0x18e8 /* 002DD8 700021D8 27A50060 */ addiu $a1, $sp, 0x60 /* 002DDC 700021DC 0C003774 */ jal osRecvMesg /* 002DE0 700021E0 03C03025 */ move $a2, $fp -/* 002DE4 700021E4 0C0008F9 */ jal __amHandleDoneMsg +/* 002DE4 700021E4 0C0008F9 */ jal amHandleDoneMessage /* 002DE8 700021E8 8FA40060 */ lw $a0, 0x60($sp) /* 002DEC 700021EC 10000004 */ b .L70002200 /* 002DF0 700021F0 00000000 */ nop @@ -756,9 +681,9 @@ glabel _amMain .L70002200: /* 002E00 70002200 5240FF82 */ beql $s2, $zero, .L7000200C /* 002E04 70002204 02C02025 */ move $a0, $s6 -/* 002E08 70002208 3C048006 */ lui $a0, %hi(_am+0x238) +/* 002E08 70002208 3C048006 */ lui $a0, %hi(g_AudioManager+0x238) /* 002E0C 7000220C 0C003AB9 */ jal alClose -/* 002E10 70002210 2484E750 */ addiu $a0, %lo(_am+0x238) # addiu $a0, $a0, -0x18b0 +/* 002E10 70002210 2484E750 */ addiu $a0, %lo(g_AudioManager+0x238) # addiu $a0, $a0, -0x18b0 /* 002E14 70002214 8FBF003C */ lw $ra, 0x3c($sp) /* 002E18 70002218 8FB00018 */ lw $s0, 0x18($sp) /* 002E1C 7000221C 8FB1001C */ lw $s1, 0x1c($sp) @@ -776,595 +701,348 @@ glabel _amMain /** * 2E44 70002244 - * accepts: A0=, A1=p->audio packet + * Based on method + * static u32 __amHandleFrameMsg(AudioInfo *info, AudioInfo *lastInfo) + * from the n64devkit demos_old/simple/audiomgr.c. + * + * original documentation: + * First, clear the past audio dma's, then calculate + * the number of samples you will need for this frame. This value varies + * due to the fact that audio is synchronised off of the video interupt + * which can have a small amount of jitter in it. Varying the number of + * samples slightly will allow you to stay in synch with the video. This + * is an advantageous thing to do, since if you are in synch with the + * video, you will have fewer graphics yields. After you've calculated + * the number of frames needed, call alAudioFrame, which will call all + * of the synthesizer's players (sequence player and sound player) to + * generate the audio task list. If you get a valid task list back, put + * it in a task structure and send a message to the scheduler to let it + * know that the next frame of audio is ready for processing. + * + * @param info audio info. + * @param lastInfo last info. */ -#ifdef NONMATCHING -void _amHandleFrameMsg(void *arg0, s32 arg1, void *argB) { - s32 sp24; +void amHandleFrameMessage(AudioInfo *info, AudioInfo *lastInfo) +{ + s16* outBuffer; + Acmd *cmdlp; + s32 temp_v1; - // Node 0 - __clearAudioDMA(); - sp24 = osVirtualToPhysical(*arg0); - if (argB != 0) + /* call once a frame, before doing alAudioFrame */ + amClearDmaBuffers(); + + outBuffer = (s16*)osVirtualToPhysical(info->data); + + if (lastInfo) { - // Node 1 - osAiSetNextBuffer(*argB, (argB->unk4 * 4)); + osAiSetNextBuffer(lastInfo->data, lastInfo->frameSamples * 4); } - // Node 2 - arg0->unk4 = (s16) (((frameSize - (osAiGetLength() >> 2)) + 0x35) & 0xfff0); - if (arg0->unk4 < ((s32) (minFrameSize << 0x10) >> 0x10)) + + /* calculate how many samples needed for this frame to keep the DAC full */ + /* this will vary slightly frame to frame, must recalculate every frame */ + /* divide by four, to convert bytes */ + /* to stereo 16 bit samples */ + info->frameSamples = (u16)(((g_FrameSize - (osAiGetLength() >> 2)) + 16 + EXTRA_SAMPLES) & ~0xf); + temp_v1 = g_MinFrameSize; + + if ((s32)info->frameSamples < (s32)(s16)temp_v1) { - // Node 3 - arg0->unk4 = (s16) minFrameSize; + info->frameSamples = (s16)temp_v1; } - // Node 4 - arg0->unk8 = 0; - arg0->unk58 = &_am+0x200; - arg0->unk5C = arg0; - arg0->unk10 = 2; - arg0->unk48 = (?32) *(&_am + (curAcmdList * 4)); - arg0->unk4C = (s32) (((s32) (alAudioFrame((0x80060000 + (curAcmdList * 4))->unk-1AE8, &cmdLen, sp24, arg0->unk4) - *(&_am + (curAcmdList * 4))) >> 3) * 8); - arg0->unk18 = 2; - arg0->unk20 = &rspbootTextStart; - arg0->unk24 = (s32) (&gsp3DTextStart - &rspbootTextStart); - arg0->unk1C = 0; - arg0->unk28 = &aspMainTextStart; - arg0->unk30 = &aspMainDataStart; - arg0->unk34 = 0x800; - arg0->unk50 = 0; - arg0->unk54 = 0; - osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0); - curAcmdList = (s32) (curAcmdList ^ 1); - return; - // (possible return value: osSendMesg(osScGetCmdQ(&sc, &rspbootTextStart, &curAcmdList, &_am), (arg0 + 8), 0)) + + cmdlp = (Acmd*)alAudioFrame(g_AudioManager.cmdList[g_CurrentAcmdList], &g_CommandLength, outBuffer, info->frameSamples); + + /* paranoia */ + info->task.next = 0; + info->task.flags = 0; + + /* reply to when finished */ + info->task.msgQ = (void *) (&(g_AudioManager.replyMessageQueue.mtqueue)); + + /* reply with this message */ + info->task.msg = info; + info->task.flags = OS_SC_NEEDS_RSP; + info->task.list.t.data_ptr = (u64*)(g_AudioManager.cmdList[g_CurrentAcmdList]); + info->task.list.t.data_size = (((s32)cmdlp - (s32)g_AudioManager.cmdList[g_CurrentAcmdList]) >> 3) * sizeof(Acmd); + info->task.list.t.type = M_AUDTASK; + info->task.list.t.ucode_boot = (u64*)rspbootTextStart; + info->task.list.t.ucode_boot_size = ((s32)gsp3DTextStart - (s32)rspbootTextStart); + info->task.list.t.flags = 0; // 1c + info->task.list.t.ucode = (u64*)aspMainTextStart; + info->task.list.t.ucode_data = (u64*)aspMainDataStart; + info->task.list.t.ucode_data_size = SP_UCODE_DATA_SIZE; + info->task.list.t.yield_data_ptr = NULL; // 50 + info->task.list.t.yield_data_size = 0; // 54 + + osSendMesg(osScGetCmdQ(&sc), (OSMesg)&info->task, OS_MESG_NOBLOCK); + + /* swap which acmd list you use each frame */ + g_CurrentAcmdList ^= 1; } -#else -GLOBAL_ASM( -.text -glabel _amHandleFrameMsg -/* 002E44 70002244 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 002E48 70002248 AFBF001C */ sw $ra, 0x1c($sp) -/* 002E4C 7000224C AFB00018 */ sw $s0, 0x18($sp) -/* 002E50 70002250 00808025 */ move $s0, $a0 -/* 002E54 70002254 0C000984 */ jal __clearAudioDMA -/* 002E58 70002258 AFA5002C */ sw $a1, 0x2c($sp) -/* 002E5C 7000225C 0C003A2C */ jal osVirtualToPhysical -/* 002E60 70002260 8E040000 */ lw $a0, ($s0) -/* 002E64 70002264 8FA3002C */ lw $v1, 0x2c($sp) -/* 002E68 70002268 AFA20024 */ sw $v0, 0x24($sp) -/* 002E6C 7000226C 10600006 */ beqz $v1, .L70002288 -/* 002E70 70002270 00000000 */ nop -/* 002E74 70002274 84650004 */ lh $a1, 4($v1) -/* 002E78 70002278 8C640000 */ lw $a0, ($v1) -/* 002E7C 7000227C 00057080 */ sll $t6, $a1, 2 -/* 002E80 70002280 0C003BC0 */ jal osAiSetNextBuffer -/* 002E84 70002284 01C02825 */ move $a1, $t6 -.L70002288: -/* 002E88 70002288 0C003BEC */ jal osAiGetLength -/* 002E8C 7000228C 00000000 */ nop -/* 002E90 70002290 3C0F8006 */ lui $t7, %hi(frameSize) -/* 002E94 70002294 8DEFECC4 */ lw $t7, %lo(frameSize)($t7) -/* 002E98 70002298 0002C082 */ srl $t8, $v0, 2 -/* 002E9C 7000229C 3C038006 */ lui $v1, %hi(minFrameSize) -/* 002EA0 700022A0 01F8C823 */ subu $t9, $t7, $t8 -/* 002EA4 700022A4 27280035 */ addiu $t0, $t9, 0x35 -/* 002EA8 700022A8 3109FFF0 */ andi $t1, $t0, 0xfff0 -/* 002EAC 700022AC A6090004 */ sh $t1, 4($s0) -/* 002EB0 700022B0 8C63ECC0 */ lw $v1, %lo(minFrameSize)($v1) -/* 002EB4 700022B4 86070004 */ lh $a3, 4($s0) -/* 002EB8 700022B8 3C0C8002 */ lui $t4, %hi(curAcmdList) -/* 002EBC 700022BC 00035400 */ sll $t2, $v1, 0x10 -/* 002EC0 700022C0 000A5C03 */ sra $t3, $t2, 0x10 -/* 002EC4 700022C4 00EB082A */ slt $at, $a3, $t3 -/* 002EC8 700022C8 10200003 */ beqz $at, .L700022D8 -/* 002ECC 700022CC 3C048006 */ lui $a0, %hi(_am) -/* 002ED0 700022D0 A6030004 */ sh $v1, 4($s0) -/* 002ED4 700022D4 86070004 */ lh $a3, 4($s0) -.L700022D8: -/* 002ED8 700022D8 8D8C30FC */ lw $t4, %lo(curAcmdList)($t4) -/* 002EDC 700022DC 3C058006 */ lui $a1, %hi(cmdLen) -/* 002EE0 700022E0 24A5ECCC */ addiu $a1, %lo(cmdLen) # addiu $a1, $a1, -0x1334 -/* 002EE4 700022E4 000C6880 */ sll $t5, $t4, 2 -/* 002EE8 700022E8 008D2021 */ addu $a0, $a0, $t5 -/* 002EEC 700022EC 8C84E518 */ lw $a0, %lo(_am)($a0) -/* 002EF0 700022F0 0C003C42 */ jal alAudioFrame -/* 002EF4 700022F4 8FA60024 */ lw $a2, 0x24($sp) -/* 002EF8 700022F8 3C0E8006 */ lui $t6, %hi(_am+0x200) -/* 002EFC 700022FC 24030002 */ li $v1, 2 -/* 002F00 70002300 3C068002 */ lui $a2, %hi(curAcmdList) -/* 002F04 70002304 25CEE718 */ addiu $t6, %lo(_am+0x200) # addiu $t6, $t6, -0x18e8 -/* 002F08 70002308 24C630FC */ addiu $a2, %lo(curAcmdList) # addiu $a2, $a2, 0x30fc -/* 002F0C 7000230C AE000008 */ sw $zero, 8($s0) -/* 002F10 70002310 AE0E0058 */ sw $t6, 0x58($s0) -/* 002F14 70002314 AE10005C */ sw $s0, 0x5c($s0) -/* 002F18 70002318 AE030010 */ sw $v1, 0x10($s0) -/* 002F1C 7000231C 8CCF0000 */ lw $t7, ($a2) -/* 002F20 70002320 3C078006 */ lui $a3, %hi(_am) -/* 002F24 70002324 24E7E518 */ addiu $a3, %lo(_am) # addiu $a3, $a3, -0x1ae8 -/* 002F28 70002328 000FC080 */ sll $t8, $t7, 2 -/* 002F2C 7000232C 00F8C821 */ addu $t9, $a3, $t8 -/* 002F30 70002330 8F280000 */ lw $t0, ($t9) -/* 002F34 70002334 3C058002 */ lui $a1, %hi(rspbootTextStart) -/* 002F38 70002338 3C188002 */ lui $t8, %hi(gsp3DTextStart) -/* 002F3C 7000233C AE080048 */ sw $t0, 0x48($s0) -/* 002F40 70002340 8CC90000 */ lw $t1, ($a2) -/* 002F44 70002344 24A50D90 */ addiu $a1, %lo(rspbootTextStart) # addiu $a1, $a1, 0xd90 -/* 002F48 70002348 27180E60 */ addiu $t8, %lo(gsp3DTextStart) # addiu $t8, $t8, 0xe60 -/* 002F4C 7000234C 00095080 */ sll $t2, $t1, 2 -/* 002F50 70002350 00EA5821 */ addu $t3, $a3, $t2 -/* 002F54 70002354 8D6C0000 */ lw $t4, ($t3) -/* 002F58 70002358 3C088002 */ lui $t0, %hi(aspMainTextStart) -/* 002F5C 7000235C 3C098006 */ lui $t1, %hi(aspMainDataStart) -/* 002F60 70002360 004C6823 */ subu $t5, $v0, $t4 -/* 002F64 70002364 000D70C3 */ sra $t6, $t5, 3 -/* 002F68 70002368 000E78C0 */ sll $t7, $t6, 3 -/* 002F6C 7000236C 0305C823 */ subu $t9, $t8, $a1 -/* 002F70 70002370 25082280 */ addiu $t0, %lo(aspMainTextStart) # addiu $t0, $t0, 0x2280 -/* 002F74 70002374 2529D020 */ addiu $t1, %lo(aspMainDataStart) # addiu $t1, $t1, -0x2fe0 -/* 002F78 70002378 240A0800 */ li $t2, 2048 -/* 002F7C 7000237C 3C048006 */ lui $a0, %hi(sc) -/* 002F80 70002380 AE0F004C */ sw $t7, 0x4c($s0) -/* 002F84 70002384 AE030018 */ sw $v1, 0x18($s0) -/* 002F88 70002388 AE050020 */ sw $a1, 0x20($s0) -/* 002F8C 7000238C AE190024 */ sw $t9, 0x24($s0) -/* 002F90 70002390 AE00001C */ sw $zero, 0x1c($s0) -/* 002F94 70002394 AE080028 */ sw $t0, 0x28($s0) -/* 002F98 70002398 AE090030 */ sw $t1, 0x30($s0) -/* 002F9C 7000239C AE0A0034 */ sw $t2, 0x34($s0) -/* 002FA0 700023A0 AE000050 */ sw $zero, 0x50($s0) -/* 002FA4 700023A4 AE000054 */ sw $zero, 0x54($s0) -/* 002FA8 700023A8 0C00033E */ jal osScGetCmdQ -/* 002FAC 700023AC 2484DA40 */ addiu $a0, %lo(sc) # addiu $a0, $a0, -0x25c0 -/* 002FB0 700023B0 00402025 */ move $a0, $v0 -/* 002FB4 700023B4 26050008 */ addiu $a1, $s0, 8 -/* 002FB8 700023B8 0C0037C4 */ jal osSendMesg -/* 002FBC 700023BC 00003025 */ move $a2, $zero -/* 002FC0 700023C0 3C038002 */ lui $v1, %hi(curAcmdList) -/* 002FC4 700023C4 246330FC */ addiu $v1, %lo(curAcmdList) # addiu $v1, $v1, 0x30fc -/* 002FC8 700023C8 8C6B0000 */ lw $t3, ($v1) -/* 002FCC 700023CC 8FBF001C */ lw $ra, 0x1c($sp) -/* 002FD0 700023D0 8FB00018 */ lw $s0, 0x18($sp) -/* 002FD4 700023D4 396C0001 */ xori $t4, $t3, 1 -/* 002FD8 700023D8 AC6C0000 */ sw $t4, ($v1) -/* 002FDC 700023DC 03E00008 */ jr $ra -/* 002FE0 700023E0 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif + /** * 2FE4 700023E4 + * Based on method + * static void __amHandleDoneMsg(AudioInfo *info) + * from the n64devkit demos_old/simple/audiomgr.c. + * + * original documentation: + * Really just debugging info in this frame. Checks + * to make sure we completed before we were out of samples. + * + * @param info Unused. */ -#ifdef NONMATCHING -void __amHandleDoneMsg(AudioInfo *info) { - int samplesLeft; - - samplesLeft = osAiGetLength(); - if ((samplesLeft >> 2 == 0) && (firstTime == 0)) { - firstTime = 0; - } -} -#else -GLOBAL_ASM( -.text -glabel __amHandleDoneMsg -/* 002FE4 700023E4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002FE8 700023E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 002FEC 700023EC 0C003BEC */ jal osAiGetLength -/* 002FF0 700023F0 AFA40018 */ sw $a0, 0x18($sp) -/* 002FF4 700023F4 00027083 */ sra $t6, $v0, 2 -/* 002FF8 700023F8 15C00006 */ bnez $t6, .L70002414 -/* 002FFC 700023FC 3C0F8002 */ lui $t7, %hi(firstTime) -/* 003000 70002400 8DEF31C8 */ lw $t7, %lo(firstTime)($t7) -/* 003004 70002404 3C018002 */ lui $at, %hi(firstTime) -/* 003008 70002408 55E00003 */ bnezl $t7, .L70002418 -/* 00300C 7000240C 8FBF0014 */ lw $ra, 0x14($sp) -/* 003010 70002410 AC2031C8 */ sw $zero, %lo(firstTime)($at) -.L70002414: -/* 003014 70002414 8FBF0014 */ lw $ra, 0x14($sp) -.L70002418: -/* 003018 70002418 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00301C 7000241C 03E00008 */ jr $ra -/* 003020 70002420 00000000 */ nop -) +void amHandleDoneMessage(AudioInfo *info) +{ + s32 samplesLeft; + /* + * in the audiomgr example, firstTime is declared here with + * the static keyword. That breaks the build, but the following + * code will compile to a matching binary, + */ + int *b; + + samplesLeft = (s32)osAiGetLength() >> 2; + + /* + * The initial code probably looked like the following (and this + * is what you get with mips_to_c): + * + * if (samplesLeft == 0 && !firstTime) + */ + b = &g_FirstTime; + if (!samplesLeft && !(*b)) + { + // debug printf from audioMgr demo +#ifdef DEBUG + osSyncPrintf("audio: ai out of samples\n"); #endif + g_FirstTime = 0; + } +} /** - * 3024 70002424 + * 3024 70002424 + * Looks to be based on method + * s32 __amDMA(s32 addr, s32 len, void *state) + * from the n64devkit. + * + * original documentation: + * This routine handles the dma'ing of samples from rom to ram. + * First it checks the current buffers to see if the samples needed are + * already in place. Because buffers are linked sequentially by the + * addresses where the samples are on rom, it doesn't need to check all + * of them, only up to the address that it needs. If it finds one, it + * returns the address of that buffer. If it doesn't find the samples + * that it needs, it will initiate a DMA of the samples that it needs. + * In either case, it updates the lastFrame variable, to indicate that + * this buffer was last used in this frame. This is important for the + * __clearAudioDMA routine. + * + * @param addr ?. + * @param len ?. + * @param state unused. + * @return result from call to osVirtualToPhysical */ -#ifdef NONMATCHING -s32 __amDMA(u32 arg0, s32 arg1, ? arg2, s32 arg14) { - s32 sp30; - s32 sp48; - ?32 sp4C; - s32 temp_t2; - s32 temp_a3; +s32 amDmaCallback(s32 addr, s32 len, void* state) +{ + void *freeBuffer; + s32 delta; + DMABuffer *dmaPtr; + s32 addrEnd; + s32 buffEnd; + DMABuffer *lastDmaPtr; - // Node 0 - temp_t2 = (arg0 & 1); - sp48 = temp_t2; - if (dmaState_initialized.unk4 != 0) + lastDmaPtr = NULL; + dmaPtr = g_DmaState.firstUsed; + delta = addr & 0x1; + addrEnd = addr + len; + + /* first check to see if a currently existing buffer contains the + sample that you need. */ + while (dmaPtr) { - loop_1: - // Node 1 - if (arg0 >= (u32) dmaState_initialized.unk4->unk8) + buffEnd = dmaPtr->startAddr + AUDIO_DMA_MAX_BUFFER_LENGTH; + + /* since buffers are ordered */ + /* abort if past possible */ + if ((u32)dmaPtr->startAddr > (u32)addr) { - // Node 2 - if ((dmaState_initialized.unk4->unk8 + 0x200) >= (arg0 + arg1)) - { - // Node 3 - dmaState_initialized.unk4->unkC = (?32) audFrameCt; - osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0); - return; - // (possible return value: osVirtualToPhysical(((dmaState_initialized.unk4->unk10 + arg0) - dmaState_initialized.unk4->unk8), dmaState_initialized.unk4, arg0)) - } - // Node 4 - if (*dmaState_initialized.unk4 != 0) - { - goto loop_1; - } + break; } + /* yes, found a buffer with samples */ + else if (addrEnd <= buffEnd) + { + /* mark it used */ + dmaPtr->lastFrame = (s32) g_AudioFrameCount; + freeBuffer = (dmaPtr->ptr + addr) - dmaPtr->startAddr; + return osVirtualToPhysical(freeBuffer); + } + + lastDmaPtr = dmaPtr; + dmaPtr = (DMABuffer*)dmaPtr->node.next; } - // Node 5 - if (dmaState_initialized.unk8 == 0) + + /* get here, and you didn't find a buffer, so dma a new one */ + /* get a buffer from the free list */ + dmaPtr = g_DmaState.firstFree; + + /* + * if you get here and dmaPtr is null, send back a bogus + * pointer, it's better than nothing + */ + if (!dmaPtr) { - // Node 6 - if (NULL == 0) + if (!lastDmaPtr) { - // Node 7 + lastDmaPtr = g_DmaState.firstUsed; } - // Node 8 - sp30 = temp_t2; - osVirtualToPhysical(NULL->unk10, NULL, arg0); + + return osVirtualToPhysical(lastDmaPtr->ptr) + delta; } + + g_DmaState.firstFree = (DMABuffer*)dmaPtr->node.next; + alUnlink((ALLink*)dmaPtr); + + /* add it to the used list */ + /* if you have other dmabuffers used, add this one */ + /* to the list, after the last one checked above */ + if (lastDmaPtr) + { + alLink((ALLink*)dmaPtr, (ALLink*)lastDmaPtr); + } + /* if this buffer is before any others */ + // Jam at begining of list + else if (g_DmaState.firstUsed) + { + lastDmaPtr = g_DmaState.firstUsed; + g_DmaState.firstUsed = dmaPtr; + dmaPtr->node.next = (ALLink*)lastDmaPtr; + dmaPtr->node.prev = 0; + lastDmaPtr->node.prev = (ALLink*)dmaPtr; + } + /* no buffers in list, this is the first one */ else { - // Node 9 - dmaState_initialized.unk8 = (void *) *dmaState_initialized.unk8; - alUnlink(dmaState_initialized.unk8, NULL, arg0); - if (sp38 != 0) + g_DmaState.firstUsed = dmaPtr; + dmaPtr->node.next = 0; + dmaPtr->node.prev = 0; + } + + freeBuffer = dmaPtr->ptr; + addr -= delta; + dmaPtr->startAddr = addr; + dmaPtr->lastFrame = g_AudioFrameCount; + + osPiStartDma(&g_DmaIOMessageBuffer[g_NextDMa++], OS_MESG_PRI_HIGH, OS_READ, (u32)addr, freeBuffer, AUDIO_DMA_MAX_BUFFER_LENGTH, &g_DmaMessageQueue); + return (s32)osVirtualToPhysical(freeBuffer) + delta; +} + +/** + * 31D8 700025D8 + * Based on method + * ALDMAproc __amDmaNew(AMDMAState **state) + * from the n64devkit demos_old/simple/audiomgr.c. + * + * original documentation: + * Initialize the dma buffers and return the address of the + * procedure that will be used to dma the samples from rom to ram. This + * routine will be called once for each physical voice that is created. + * In this case, because we know where all the buffers are, and since + * they are not attached to a specific voice, we will only really do any + * initialization the first time. After that we just return the address + * to the dma routine. + * + * @param state will point to g_DmaState after call. + * @return Address of dma callback function. + */ +ALDMAproc amDmaNew(DMAState** state) +{ + if (g_DmaState.u.initialized == 0) + { + g_DmaState.firstUsed = NULL; + g_DmaState.firstFree = g_DmaBuffers; + g_DmaState.u.initialized = (u8)1U; + } + + *state = &g_DmaState; + return &amDmaCallback; +} + +/** + * 3210 70002610 + * Based on method + * static void __clearAudioDMA(void) + * from the n64devkit demos_old/simple/audiomgr.c. + * + * original documentation: + * Routine to move dma buffers back to the unused list. + * First clear out your dma messageQ. Then check each buffer to see when + * it was last used. If that was more than FRAME_LAG frames ago, move it + * back to the unused list. + */ +void amClearDmaBuffers(void) +{ + u32 i; + OSMesg osmesg; + DMABuffer *dmaPtr, *nextPtr; + + osmesg = 0; + + /* + * Don't block here. If dma's aren't complete, you've had an audio + * overrun. (Bad news, but go for it anyway, and try and recover. + */ + for (i=0; i < g_NextDMa; i++) + { + if (osRecvMesg(&g_DmaMessageQueue, (OSMesg *)&osmesg, OS_MESG_NOBLOCK) == -1) + { +#ifdef DEBUG + osSyncPrintf("Dma not done\n"); +#endif + } + +#ifdef DEBUG + /* debug logging from audioMgr.c, I think this requires #include + * // if (logging) + * // osLogEvent(log, 17, 2, osmesg->devAddr, osmesg->size); + */ +#endif + } + + dmaPtr = g_DmaState.firstUsed; + while (dmaPtr) + { + nextPtr = (DMABuffer*)dmaPtr->node.next; + + /* remove old dma's from list */ + /* Can change FRAME_LAG value. Should be at least one. */ + /* Larger values mean more buffers needed, but fewer DMA's */ + if (dmaPtr->lastFrame + 1 < g_AudioFrameCount) { - // Node 10 - alLink(dmaState_initialized.unk8, sp38, sp38, arg14); - } - else - { - // Node 11 - if (dmaState_initialized.unk4 != 0) + if (g_DmaState.firstUsed == dmaPtr) { - // Node 12 - dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; - *dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; - dmaState_initialized.unk8->unk4 = 0; - dmaState_initialized.unk4->unk4 = (void *) dmaState_initialized.unk8; + g_DmaState.firstUsed = (DMABuffer*)dmaPtr->node.next; + } + + alUnlink((ALLink*)dmaPtr); + + if (g_DmaState.firstFree) + { + alLink((ALLink*)dmaPtr, (ALLink*)g_DmaState.firstFree); } else { - // Node 13 - dmaState_initialized.unk4 = (void *) dmaState_initialized.unk8; - *dmaState_initialized.unk8 = NULL; - dmaState_initialized.unk8->unk4 = 0; + g_DmaState.firstFree = dmaPtr; + dmaPtr->node.next = 0; + dmaPtr->node.prev = 0; } } - // Node 14 - temp_a3 = (arg14 - sp48); - dmaState_initialized.unk8->unk8 = temp_a3; - dmaState_initialized.unk8->unkC = (?32) audFrameCt; - nextDMA = (s32) (nextDMA + 1); - sp4C = (?32) dmaState_initialized.unk8->unk10; - osPiStartDma(((nextDMA * 0x18) + &audDMAIOMesgBuf), 1, 0, temp_a3, (?32) dmaState_initialized.unk8->unk10, 0x200, &audDMAMessageQ); - osVirtualToPhysical(sp4C); + dmaPtr = nextPtr; } - // Node 15 - return; - // (possible return value: (osVirtualToPhysical(sp4C) + sp48)) + + g_NextDMa = 0U; + g_AudioFrameCount = (s32)(g_AudioFrameCount + 1); } -#else -GLOBAL_ASM( -.text -glabel __amDMA -/* 003024 70002424 3C098006 */ lui $t1, %hi(dmaState_initialized) -/* 003028 70002428 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 -/* 00302C 7000242C 8D280004 */ lw $t0, 4($t1) -/* 003030 70002430 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 003034 70002434 AFB00028 */ sw $s0, 0x28($sp) -/* 003038 70002438 AFA60058 */ sw $a2, 0x58($sp) -/* 00303C 7000243C 308A0001 */ andi $t2, $a0, 1 -/* 003040 70002440 AFBF002C */ sw $ra, 0x2c($sp) -/* 003044 70002444 00803825 */ move $a3, $a0 -/* 003048 70002448 00003025 */ move $a2, $zero -/* 00304C 7000244C AFAA0048 */ sw $t2, 0x48($sp) -/* 003050 70002450 11000015 */ beqz $t0, .L700024A8 -/* 003054 70002454 01008025 */ move $s0, $t0 -/* 003058 70002458 8E020008 */ lw $v0, 8($s0) -.L7000245C: -/* 00305C 7000245C 00E57021 */ addu $t6, $a3, $a1 -/* 003060 70002460 00E2082B */ sltu $at, $a3, $v0 -/* 003064 70002464 14200010 */ bnez $at, .L700024A8 -/* 003068 70002468 24430200 */ addiu $v1, $v0, 0x200 -/* 00306C 7000246C 006E082A */ slt $at, $v1, $t6 -/* 003070 70002470 1420000A */ bnez $at, .L7000249C -/* 003074 70002474 02003025 */ move $a2, $s0 -/* 003078 70002478 8E180010 */ lw $t8, 0x10($s0) -/* 00307C 7000247C 3C0F8002 */ lui $t7, %hi(audFrameCt) -/* 003080 70002480 8DEF30F4 */ lw $t7, %lo(audFrameCt)($t7) -/* 003084 70002484 0307C821 */ addu $t9, $t8, $a3 -/* 003088 70002488 03222023 */ subu $a0, $t9, $v0 -/* 00308C 7000248C 0C003A2C */ jal osVirtualToPhysical -/* 003090 70002490 AE0F000C */ sw $t7, 0xc($s0) -/* 003094 70002494 1000004C */ b .L700025C8 -/* 003098 70002498 8FBF002C */ lw $ra, 0x2c($sp) -.L7000249C: -/* 00309C 7000249C 8E100000 */ lw $s0, ($s0) -/* 0030A0 700024A0 5600FFEE */ bnezl $s0, .L7000245C -/* 0030A4 700024A4 8E020008 */ lw $v0, 8($s0) -.L700024A8: -/* 0030A8 700024A8 8D300008 */ lw $s0, 8($t1) -/* 0030AC 700024AC 1600000A */ bnez $s0, .L700024D8 -/* 0030B0 700024B0 02002025 */ move $a0, $s0 -/* 0030B4 700024B4 54C00003 */ bnezl $a2, .L700024C4 -/* 0030B8 700024B8 8CC40010 */ lw $a0, 0x10($a2) -/* 0030BC 700024BC 01003025 */ move $a2, $t0 -/* 0030C0 700024C0 8CC40010 */ lw $a0, 0x10($a2) -.L700024C4: -/* 0030C4 700024C4 0C003A2C */ jal osVirtualToPhysical -/* 0030C8 700024C8 AFAA0030 */ sw $t2, 0x30($sp) -/* 0030CC 700024CC 8FAA0030 */ lw $t2, 0x30($sp) -/* 0030D0 700024D0 1000003C */ b .L700025C4 -/* 0030D4 700024D4 004A1021 */ addu $v0, $v0, $t2 -.L700024D8: -/* 0030D8 700024D8 8E0B0000 */ lw $t3, ($s0) -/* 0030DC 700024DC AFA70050 */ sw $a3, 0x50($sp) -/* 0030E0 700024E0 AFA60038 */ sw $a2, 0x38($sp) -/* 0030E4 700024E4 0C003AA4 */ jal alUnlink -/* 0030E8 700024E8 AD2B0008 */ sw $t3, 8($t1) -/* 0030EC 700024EC 8FA60038 */ lw $a2, 0x38($sp) -/* 0030F0 700024F0 3C098006 */ lui $t1, %hi(dmaState_initialized) -/* 0030F4 700024F4 2529E7B0 */ addiu $t1, %lo(dmaState_initialized) # addiu $t1, $t1, -0x1850 -/* 0030F8 700024F8 10C00007 */ beqz $a2, .L70002518 -/* 0030FC 700024FC 8FA70050 */ lw $a3, 0x50($sp) -/* 003100 70002500 02002025 */ move $a0, $s0 -/* 003104 70002504 00C02825 */ move $a1, $a2 -/* 003108 70002508 0C003AB0 */ jal alLink -/* 00310C 7000250C AFA70050 */ sw $a3, 0x50($sp) -/* 003110 70002510 1000000C */ b .L70002544 -/* 003114 70002514 8FA70050 */ lw $a3, 0x50($sp) -.L70002518: -/* 003118 70002518 8D280004 */ lw $t0, 4($t1) -/* 00311C 7000251C 51000007 */ beql $t0, $zero, .L7000253C -/* 003120 70002520 AD300004 */ sw $s0, 4($t1) -/* 003124 70002524 AD300004 */ sw $s0, 4($t1) -/* 003128 70002528 AE080000 */ sw $t0, ($s0) -/* 00312C 7000252C AE000004 */ sw $zero, 4($s0) -/* 003130 70002530 10000004 */ b .L70002544 -/* 003134 70002534 AD100004 */ sw $s0, 4($t0) -/* 003138 70002538 AD300004 */ sw $s0, 4($t1) -.L7000253C: -/* 00313C 7000253C AE000000 */ sw $zero, ($s0) -/* 003140 70002540 AE000004 */ sw $zero, 4($s0) -.L70002544: -/* 003144 70002544 8FAC0048 */ lw $t4, 0x48($sp) -/* 003148 70002548 3C0D8002 */ lui $t5, %hi(audFrameCt) -/* 00314C 7000254C 3C088002 */ lui $t0, %hi(nextDMA) -/* 003150 70002550 00EC3823 */ subu $a3, $a3, $t4 -/* 003154 70002554 AE070008 */ sw $a3, 8($s0) -/* 003158 70002558 8DAD30F4 */ lw $t5, %lo(audFrameCt)($t5) -/* 00315C 7000255C 250830F8 */ addiu $t0, %lo(nextDMA) # addiu $t0, $t0, 0x30f8 -/* 003160 70002560 8E030010 */ lw $v1, 0x10($s0) -/* 003164 70002564 AE0D000C */ sw $t5, 0xc($s0) -/* 003168 70002568 8D020000 */ lw $v0, ($t0) -/* 00316C 7000256C 3C0F8006 */ lui $t7, %hi(audDMAIOMesgBuf) -/* 003170 70002570 3C198006 */ lui $t9, %hi(audDMAMessageQ) -/* 003174 70002574 00027080 */ sll $t6, $v0, 2 -/* 003178 70002578 01C27023 */ subu $t6, $t6, $v0 -/* 00317C 7000257C 000E70C0 */ sll $t6, $t6, 3 -/* 003180 70002580 2739F2D0 */ addiu $t9, %lo(audDMAMessageQ) # addiu $t9, $t9, -0xd30 -/* 003184 70002584 25EFECD0 */ addiu $t7, %lo(audDMAIOMesgBuf) # addiu $t7, $t7, -0x1330 -/* 003188 70002588 24180200 */ li $t8, 512 -/* 00318C 7000258C 244B0001 */ addiu $t3, $v0, 1 -/* 003190 70002590 AD0B0000 */ sw $t3, ($t0) -/* 003194 70002594 AFB80014 */ sw $t8, 0x14($sp) -/* 003198 70002598 01CF2021 */ addu $a0, $t6, $t7 -/* 00319C 7000259C AFB90018 */ sw $t9, 0x18($sp) -/* 0031A0 700025A0 24050001 */ li $a1, 1 -/* 0031A4 700025A4 00003025 */ move $a2, $zero -/* 0031A8 700025A8 AFA3004C */ sw $v1, 0x4c($sp) -/* 0031AC 700025AC 0C003DA8 */ jal osPiStartDma -/* 0031B0 700025B0 AFA30010 */ sw $v1, 0x10($sp) -/* 0031B4 700025B4 0C003A2C */ jal osVirtualToPhysical -/* 0031B8 700025B8 8FA4004C */ lw $a0, 0x4c($sp) -/* 0031BC 700025BC 8FAC0048 */ lw $t4, 0x48($sp) -/* 0031C0 700025C0 004C1021 */ addu $v0, $v0, $t4 -.L700025C4: -/* 0031C4 700025C4 8FBF002C */ lw $ra, 0x2c($sp) -.L700025C8: -/* 0031C8 700025C8 8FB00028 */ lw $s0, 0x28($sp) -/* 0031CC 700025CC 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0031D0 700025D0 03E00008 */ jr $ra -/* 0031D4 700025D4 00000000 */ nop -) -#endif - -/** - * 31D8 700025D8 - */ -#ifdef NONMATCHING -void *__amDmaNew(void *arg0) { - // Node 0 - if (dmaState_initialized == 0) - { - // Node 1 - dmaState_initialized.unk4 = 0; - dmaState_initialized.unk8 = &dmaBuffs; - dmaState_initialized = (u8)1; - } - // Node 2 - *arg0 = &dmaState_initialized; - return; - // (possible return value: &__amDMA) -} -#else -GLOBAL_ASM( -.text -glabel __amDmaNew -/* 0031D8 700025D8 3C038006 */ lui $v1, %hi(dmaState_initialized) -/* 0031DC 700025DC 2463E7B0 */ addiu $v1, %lo(dmaState_initialized) # addiu $v1, $v1, -0x1850 -/* 0031E0 700025E0 906E0000 */ lbu $t6, ($v1) -/* 0031E4 700025E4 3C027000 */ lui $v0, %hi(__amDMA) # $v0, 0x7000 -/* 0031E8 700025E8 3C0F8006 */ lui $t7, %hi(dmaBuffs) -/* 0031EC 700025EC 15C00006 */ bnez $t6, .L70002608 -/* 0031F0 700025F0 24422424 */ addiu $v0, %lo(__amDMA) # addiu $v0, $v0, 0x2424 -/* 0031F4 700025F4 25EFE7C0 */ addiu $t7, %lo(dmaBuffs) # addiu $t7, $t7, -0x1840 -/* 0031F8 700025F8 24180001 */ li $t8, 1 -/* 0031FC 700025FC AC600004 */ sw $zero, 4($v1) -/* 003200 70002600 AC6F0008 */ sw $t7, 8($v1) -/* 003204 70002604 A0780000 */ sb $t8, ($v1) -.L70002608: -/* 003208 70002608 03E00008 */ jr $ra -/* 00320C 7000260C AC830000 */ sw $v1, ($a0) -) -#endif - -/** - * 3210 70002610 - */ -#ifdef NONMATCHING -void __clearAudioDMA(void) { - ?32 sp40; - - // Node 0 - sp40 = 0; - if (nextDMA != 0) - { - // Node 1 - // Node 2 - osRecvMesg(&audDMAMessageQ, &sp40, 0); - if ((u32) (0 + 1) < (u32) nextDMA) - { - goto loop_2; - } - } - // Node 3 - if (dmaState_initialized.unk4 != 0) - { - loop_4: - // Node 4 - if ((u32) (dmaState_initialized.unk4->unkC + 1) < (u32) audFrameCt) - { - // Node 5 - if (dmaState_initialized.unk4 == dmaState_initialized.unk4) - { - // Node 6 - dmaState_initialized.unk4 = (void *) *dmaState_initialized.unk4; - } - // Node 7 - alUnlink(dmaState_initialized.unk4); - if (dmaState_initialized.unk8 != 0) - { - // Node 8 - alLink(dmaState_initialized.unk4, dmaState_initialized.unk8); - } - else - { - // Node 9 - dmaState_initialized.unk8 = (void *) dmaState_initialized.unk4; - *dmaState_initialized.unk4 = NULL; - dmaState_initialized.unk4->unk4 = 0; - } - } - // Node 10 - if (*dmaState_initialized.unk4 != 0) - { - goto loop_4; - } - } - // Node 11 - nextDMA = 0U; - audFrameCt = (u32) (audFrameCt + 1); - return; - // (function likely void) -} -#else -GLOBAL_ASM( -.text -glabel __clearAudioDMA -/* 003210 70002610 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 003214 70002614 AFB40028 */ sw $s4, 0x28($sp) -/* 003218 70002618 3C148002 */ lui $s4, %hi(nextDMA) -/* 00321C 7000261C 269430F8 */ addiu $s4, %lo(nextDMA) # addiu $s4, $s4, 0x30f8 -/* 003220 70002620 8E8E0000 */ lw $t6, ($s4) -/* 003224 70002624 AFB00018 */ sw $s0, 0x18($sp) -/* 003228 70002628 AFBF002C */ sw $ra, 0x2c($sp) -/* 00322C 7000262C AFB30024 */ sw $s3, 0x24($sp) -/* 003230 70002630 AFB20020 */ sw $s2, 0x20($sp) -/* 003234 70002634 AFB1001C */ sw $s1, 0x1c($sp) -/* 003238 70002638 AFA00040 */ sw $zero, 0x40($sp) -/* 00323C 7000263C 11C0000D */ beqz $t6, .L70002674 -/* 003240 70002640 00008025 */ move $s0, $zero -/* 003244 70002644 3C118006 */ lui $s1, %hi(audDMAMessageQ) -/* 003248 70002648 2631F2D0 */ addiu $s1, %lo(audDMAMessageQ) # addiu $s1, $s1, -0xd30 -/* 00324C 7000264C 27B20040 */ addiu $s2, $sp, 0x40 -/* 003250 70002650 02202025 */ move $a0, $s1 -.L70002654: -/* 003254 70002654 02402825 */ move $a1, $s2 -/* 003258 70002658 0C003774 */ jal osRecvMesg -/* 00325C 7000265C 00003025 */ move $a2, $zero -/* 003260 70002660 8E8F0000 */ lw $t7, ($s4) -/* 003264 70002664 26100001 */ addiu $s0, $s0, 1 -/* 003268 70002668 020F082B */ sltu $at, $s0, $t7 -/* 00326C 7000266C 5420FFF9 */ bnezl $at, .L70002654 -/* 003270 70002670 02202025 */ move $a0, $s1 -.L70002674: -/* 003274 70002674 3C128006 */ lui $s2, %hi(dmaState_initialized) -/* 003278 70002678 2652E7B0 */ addiu $s2, %lo(dmaState_initialized) # addiu $s2, $s2, -0x1850 -/* 00327C 7000267C 8E500004 */ lw $s0, 4($s2) -/* 003280 70002680 3C138002 */ lui $s3, %hi(audFrameCt) -/* 003284 70002684 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 -/* 003288 70002688 1200001A */ beqz $s0, .L700026F4 -/* 00328C 7000268C 00000000 */ nop -.L70002690: -/* 003290 70002690 8E19000C */ lw $t9, 0xc($s0) -/* 003294 70002694 8E780000 */ lw $t8, ($s3) -/* 003298 70002698 8E020000 */ lw $v0, ($s0) -/* 00329C 7000269C 27280001 */ addiu $t0, $t9, 1 -/* 0032A0 700026A0 0118082B */ sltu $at, $t0, $t8 -/* 0032A4 700026A4 10200011 */ beqz $at, .L700026EC -/* 0032A8 700026A8 00408825 */ move $s1, $v0 -/* 0032AC 700026AC 8E490004 */ lw $t1, 4($s2) -/* 0032B0 700026B0 16090002 */ bne $s0, $t1, .L700026BC -/* 0032B4 700026B4 00000000 */ nop -/* 0032B8 700026B8 AE420004 */ sw $v0, 4($s2) -.L700026BC: -/* 0032BC 700026BC 0C003AA4 */ jal alUnlink -/* 0032C0 700026C0 02002025 */ move $a0, $s0 -/* 0032C4 700026C4 8E450008 */ lw $a1, 8($s2) -/* 0032C8 700026C8 50A00006 */ beql $a1, $zero, .L700026E4 -/* 0032CC 700026CC AE500008 */ sw $s0, 8($s2) -/* 0032D0 700026D0 0C003AB0 */ jal alLink -/* 0032D4 700026D4 02002025 */ move $a0, $s0 -/* 0032D8 700026D8 10000004 */ b .L700026EC -/* 0032DC 700026DC 00000000 */ nop -/* 0032E0 700026E0 AE500008 */ sw $s0, 8($s2) -.L700026E4: -/* 0032E4 700026E4 AE000000 */ sw $zero, ($s0) -/* 0032E8 700026E8 AE000004 */ sw $zero, 4($s0) -.L700026EC: -/* 0032EC 700026EC 1620FFE8 */ bnez $s1, .L70002690 -/* 0032F0 700026F0 02208025 */ move $s0, $s1 -.L700026F4: -/* 0032F4 700026F4 3C138002 */ lui $s3, %hi(audFrameCt) -/* 0032F8 700026F8 267330F4 */ addiu $s3, %lo(audFrameCt) # addiu $s3, $s3, 0x30f4 -/* 0032FC 700026FC 8E6A0000 */ lw $t2, ($s3) -/* 003300 70002700 8FBF002C */ lw $ra, 0x2c($sp) -/* 003304 70002704 AE800000 */ sw $zero, ($s4) -/* 003308 70002708 254B0001 */ addiu $t3, $t2, 1 -/* 00330C 7000270C AE6B0000 */ sw $t3, ($s3) -/* 003310 70002710 8FB30024 */ lw $s3, 0x24($sp) -/* 003314 70002714 8FB40028 */ lw $s4, 0x28($sp) -/* 003318 70002718 8FB00018 */ lw $s0, 0x18($sp) -/* 00331C 7000271C 8FB1001C */ lw $s1, 0x1c($sp) -/* 003320 70002720 8FB20020 */ lw $s2, 0x20($sp) -/* 003324 70002724 03E00008 */ jr $ra -/* 003328 70002728 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif diff --git a/src/audi.h b/src/audi.h index 6e1102d..5745687 100644 --- a/src/audi.h +++ b/src/audi.h @@ -1,7 +1,9 @@ #ifndef _AUDI_H_ #define _AUDI_H_ -void amCreateAudioMgr(void); -void startaudiThread(void); +#include "ultra64.h" + +void amCreateAudioManager(ALSynConfig* alconf); +void amStartAudioThread(void); #endif diff --git a/src/bondaicommands.h b/src/bondaicommands.h index 85c98a7..eea0f98 100644 --- a/src/bondaicommands.h +++ b/src/bondaicommands.h @@ -131,7 +131,7 @@ #define TARGET_PAD 0x0008 // set target type to pad #define TARGET_COMPASS 0x0010 // set target to compass direction (hex) N: 0000 E: C000 S: 8000: W: 4000 #define TARGET_AIM_ONLY 0x0020 // aim at target instead of firing -#define TARGET_180_RANGE 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag) +#define TARGET_DONTTURN 0x0040 // limits target to 180 degrees in front of guard (cannot be used with bond target flag) // command 18/19 - target body part values #define HIT_NULL_PART 0x00 // null part, no reaction - 1x damage diff --git a/src/bondconstants.h b/src/bondconstants.h index 98aa566..69c87c3 100644 --- a/src/bondconstants.h +++ b/src/bondconstants.h @@ -1027,8 +1027,8 @@ typedef enum SCREEN_SIZE typedef enum COLORMODE { - MODE_32BIT = 0x0, - MODE_16BIT = 0x1 + COLORMODE_32BIT = 0x0, + COLORMODE_16BIT = 0x1 } COLORMODE; typedef enum CAMERAMODE { @@ -1270,6 +1270,9 @@ typedef enum ACT_TYPE { ACT_THROWGRENADE, ACT_TURNDIR, ACT_TEST, + ACT_BONDINTRO, + ACT_BONDDIE, + ACT_BONDMULTI, ACT_NULL } ACT_TYPE; diff --git a/src/boss.c b/src/boss.c index 4c74ddd..ebca0ef 100644 --- a/src/boss.c +++ b/src/boss.c @@ -1,26 +1,76 @@ -#include "ultra64.h" -#include "ramrom.h" -#include "boss.h" -#include "bondgame.h" #include "game/debugmenu_090490.h" +#include "game/mainmenu.h" +#include "game/ramromreplay.h" #include "game/room_model_buffer.h" -#include "deb.h" -#include "game/stan.h" #include "game/rsp.h" +#include "game/stan.h" +#include "game/unk_093880.h" +#include "game/unk_0C0A70.h" +#include "game/unk_0C0A70.h" +#include "bond.h" #include "bondconstants.h" +#include "bondgame.h" +#include "boss.h" +#include "deb.h" +#include "debugmenu.h" +#include "dyn.h" +#include "game_debug.h" +#include "gamefile.h" +#include "gamefile2.h" +#include "indy_comms.h" +#include "init.h" +#include "joy.h" +#include "lvl.h" +#include "mainmenu.h" +#include "mema.h" +#include "memp.h" +#include "music.h" +#include "ob.h" +#include "ramrom.h" +#include "random.h" +#include "sched.h" +#include "speed_graph.h" +#include "token.h" +#include "tlb_manage.h" +#include "ultra64.h" +#include "video.h" +#include "image.h" + /** * @file boss.c * This file contains the main game loop code. */ +#define MAIN_LOOP_TICK_INTERVAL 0x5eb61U + +/** + * Copied from n64devkit\ultra\usr\src\pr\demos_old\simple\gfx.h + */ +typedef union { + + struct { + short type; + } gen; + + struct { + short type; + } done; + + OSScMsg app; + +} GFXMsg; + +// forward declarations +void bossMainloop(void); + /* data */ -u32 boss_c_ptr_debug_notice_list_entry = 0; -s32 debug_and_update_stage_flag = 0; -LEVELID current_stage_num = LEVELID_TITLE; -u32 current_m_malloc_value = 0x234800; -u32 current_ma_malloc_value = 0x4B000; -s32 show_mem_use_flag = 0; -s32 show_mem_bars_flag = 0; +u32 g_BossDebugNoticeEntry = 0; +s32 g_DebugAndUpdateStageFlag = 0; +s32 g_StageNum = LEVELID_TITLE; +u32 g_CurentMMallocValue = 0x234800; +u32 g_CurentMaMallocValue = 0x4B000; +s32 g_ShowMemUseFlag = 0; +s32 g_ShowMemBarsFlag = 0; struct memallocstring memallocstringtable[] = { { LEVELID_DAM, "-ml0 -me0 -mgfx70 -mvtx50 -mt625 -ma275"}, @@ -65,42 +115,31 @@ struct memallocstring memallocstringtable[] = { { 0x0, } }; -LEVELID loadedstage = LEVELID_NONE; -s32 debug_feature_flag = 0; -s32 D_80024304 = 0x20000; -s32 D_80024308 = 0; -s32 D_8002430C = 0; -s32 D_80024310 = 0; -s32 D_80024314 = 0; -s32 D_80024318 = 0; -s32 D_8002431C = 0; -s32 D_80024320 = 0; -s32 taskgrab_ramdump_num = 1; +s32 g_MainStageNum = LEVELID_NONE; +s32 g_DebugFeatureFlag = 0; -/* rodata */ +// Declared as array in PD. Might be array here too? +struct D_80024304_s { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkc; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1c; +} D_80024304 = { 0x20000 }; -//const char aLevel_[] = "-level_"; -//const char aMl0Me0Mgfx100Mvtx50Mt700Ma400_1[] = " -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"; -//const char aM[] = "-m"; -//const char aM_1[] = "-m"; - -//***moved to mainloop -//const char aLevel__0[] = "-level_"; -//const char aLevel__1[] = "-level_"; -//const char aHard[] = "-hard"; -//const char aHard_1[] = "-hard"; -//const char aHard_2[] = "-hard"; -//const char aMa[] = "-ma"; -//const char aMa_0[] = "-ma"; -//const char aU64_taskgrab_D_core[] = "u64.taskgrab.%d.core"; +// extern declarations +extern struct player *pPlayer; /** - * 6930 70005D30 + * 6930 70005D30 * ??? - uses "-level_", "-m" strings */ -#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate))/1000000LL) +#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(osClockRate))/1000000LL) -void init_mainthread_data(void) +void bossInitMainthreadData(void) { OSMesg bossmsg; OSTimer bosstimer; @@ -109,64 +148,67 @@ void init_mainthread_data(void) u32 unused; s32 i; - - debInitDebugNoticeList(); + debInit(); romCreateMesgQueue(); - establish_TLB_buffer_management_table(); + tlbmanageEstablishManagementTable(); image_entries_load(); mempInitDebugNoticeList(); - memaInitDebugNoticeList(); + memaInit(); bgInitDebugNoticeList(); viInitDebugNoticeList(); init_video_settings(); init_indy_if_not_ready(); - debug_and_update_stage_flag = rmon_debug_is_final_build(); + g_DebugAndUpdateStageFlag = rmonIsFinalBuild(); obInitDebugNoticeList(); rspInitDebugNoticeList(); dynInitDebugNoticeList(); - joyInitDebugNoticeList(); + joyInit(); osCreateMesgQueue(&bossmq, &bossmsg, 1); - for (i = 0; i != 4; i++) + for (i = 0; i != MAXCONTROLLERS; i++) { osSetTimer(&bosstimer, OS_USEC_TO_CYCLES(100000), 0, &bossmq, &bossmsg); - osRecvMesg(&bossmq, &bossmsg, 1); + osRecvMesg(&bossmq, &bossmsg, OS_MESG_BLOCK); if (i == 1) { - test_controller_presence(); + joyCheckStatusThreadSafe(); } else if (i >= 2) { - redirect_to_ramrom_replay_and_record_handlers_if_set(); + joyConsumeSamplesWrapper(); } } - if (check_token(1, "-level_") == 0) + if (tokenFind(1, "-level_") == 0) { - debug_and_update_stage_flag = 1; + g_DebugAndUpdateStageFlag = 1; } + stanInitDebugNoticeList(); gameInitDebugNoticeList(); - if (debug_and_update_stage_flag != 0) + + if (g_DebugAndUpdateStageFlag != 0) { - strtok(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); + tokenSetString(" -ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"); } - if (check_token(1, "-m") != 0) + + if (tokenFind(1, "-m") != 0) { - current_m_malloc_value = (s32) (strtol(check_token(1, "-m"), 0, 0) << 0xa); + g_CurentMMallocValue = (s32) (strtol(tokenFind(1, "-m"), 0, 0) << 0xa); } + temp_s0 = (osVirtualToPhysical(&room_model_buffer) | 0x80000000); - mempCheckMemflagTokens(temp_s0, (return_ptr_TLBallocatedblock() - temp_s0)); + mempCheckMemflagTokens(temp_s0, ((u32)tlbmanageGetTlbAllocatedBlock() - (u32)temp_s0)); mempResetBank(6); init_LnameX(); lvInitDebugNoticeList(); bossInitDebugNoticeList(); textrelatedInit_REMOVED(); - debugmenuInit_REMOVED(); + debmenu7000ADA8(); default_player_perspective_and_height(); store_osgetcount(); null_init_main_1(); - displaylist_related(); + speedGraphDisplayListRelated(); set_gu_scale(); null_init_main_2(); sub_GAME_7F000980(); @@ -181,40 +223,44 @@ void init_mainthread_data(void) } /** - * 6BF4 70005FF4 + * 6BF4 70005FF4 * 1 ->"show mem use" debug memory display [800241B4]; fry AT,T6 */ -void enable_show_mem_use_flag(void) { - show_mem_use_flag=TRUE; +void bossEnableShowMemUseFlag(void) { + g_ShowMemUseFlag=TRUE; } /** - * 6C04 70006004 + * 6C04 70006004 * toggle "show mem bars" [800241B8]; fries V0,T6,T7 */ -void mem_bars_flag_toggle(void) { - show_mem_bars_flag = show_mem_bars_flag ^ 1; +void bossMemBarsFlagToggle(void) { + g_ShowMemBarsFlag = g_ShowMemBarsFlag ^ 1; } /** - * 6C1C 7000601C + * 6C1C 7000601C * loads primary resources and starts main program loop * this is infinite. Loops unconditionally: JAL 70006060 */ void bossEntry(void) { - init_mainthread_data(); + bossInitMainthreadData(); allocate_init_rsp_buffers(); - setupaudio(); + musicSeqPlayerInit(); while(1){ - mainloop(); + bossMainloop(); } } - - /** - * 6C60 70006060 - * main program loop + * Main program loop. + * + * 6C60 70006060 + * + * Seems to have been based on devkit example at one point, + * n64devkit\ultra\usr\src\pr\demos_old\simple\simple.c + * + * loop: * 70006090 tests memstring for "-level_##" * 700060DC if not title, tests memstring for "-hard#" * 70006160 follows... @@ -229,1060 +275,378 @@ void bossEntry(void) { * 70006708 displays memory usage when active * 70006724 displays in-game debugger when active * 7000674C writes a full sync, end display list combo - * 7000676C display mem use when active [800241B4] - * 700067A8 display mem bars when active [800241B8] + * 7000676C display mem use when active [800241B4] + * 700067A8 display mem bars when active [800241B8] * 700067C0 follows... * 700067D8 tests if "u64.taskgrab.#.core" activated and dumps memory * 70006854 follows... (700068BC - stop demos) */ -#ifdef NONMATCHING -void mainloop(void) +void bossMainloop(void) { - s32 sp1DC; - void *sp1D4; - ? sp1B4; - s32 sp1AC; - s32 sp1A4; - ? sp5C; - ? sp58; - void *sp48; - s32 temp_a0; - s32 temp_a1; - s32 temp_a2; - s32 temp_ret; - s32 temp_ret_2; - s32 temp_s0; - s32 temp_s0_2; - s32 temp_s0_3; - s32 temp_s1; - s32 temp_s3; - s32 temp_s3_2; - s32 temp_v0_3; - s32 temp_v0_4; - s32 temp_v1; - s32 temp_v1_2; - s32 temp_v1_3; - void *temp_s3_3; - void *temp_v0; - void *temp_v0_2; - void *temp_v0_5; - s32 phi_v1; - void *phi_v0; - s32 phi_s0; - s32 phi_s0_2; - s32 phi_v1_2; - void *phi_v0_2; - s32 phi_s0_3; - s32 phi_s1; - u32 phi_fp; - s32 phi_s1_2; - s32 phi_s3; - s32 phi_s3_2; - void *phi_s3_3; - s32 phi_v0_3; - u32 phi_fp_2; - s32 phi_s0_4; - s32 phi_s0_5; + // declarations - sp1DC = 0; + s32 done; + const unsigned char *tokenFindLevel; + GFXMsg *localGfxFrameMsg; // sp 468 + struct D_80024304_s localD_80024304; // sp 436 + s32 stringIndex; + s32 toggleFlag; // sp 428 + Gfx *gdl; // sp424 + Gfx *firstGdl; + u32 nowCount; + s32 i; + s32 count; + s8 joyStickXPos; + s8 joyStickYPos; + u16 joyButtons; + struct player *localPlayer; + s32 localSelectedNumPlayers; + u32 pendingGfx = 0; + s32 freeGfx; + s32 mainTickElapsed; + s32 rsparg; + + u32 unused_stackpadding_[56]; + + // end declarations + + done = 0; reset_mem_bank_5(); - if (check_token(1, "-level_") != 0) + + if (tokenFind(1, "-level_") != NULL) { - temp_ret = check_token(1, "-level_"); - current_stage_num = (s32) ((temp_ret->unk1 + (temp_ret->unk0 * 0xa)) + -0x210); + tokenFindLevel = (const unsigned char *)tokenFind(1, "-level_"); + + // quick hack strltolon, converts the two digit ASCII level to 32bit int + g_StageNum = (((s32)(tokenFindLevel[0] * 10) + (s32)tokenFindLevel[1]) - 0x210); } - if (current_stage_num != 0x5a) + + if (g_StageNum != LEVELID_TITLE) { sub_GAME_7F01DF90(); set_selected_folder_num(0); - set_selected_difficulty(0); - set_solo_and_ptr_briefing(current_stage_num); - if (check_token(1, "-hard") != 0) + set_selected_difficulty(DIFFICULTY_AGENT); + set_solo_and_ptr_briefing(g_StageNum); + + if (tokenFind(1, "-hard")) { - set_selected_difficulty(*check_token(1, "-hard") + -0x30); - set_difficulty(*check_token(1, "-hard") + -0x30); + // convert ASCII difficulty value to int in set difficulty calls + set_selected_difficulty(*(const unsigned char*)tokenFind(1, "-hard") - '0'); + set_difficulty(*(const unsigned char*)tokenFind(1, "-hard") - '0'); } } - increment_random_num(osGetCount()); -loop_6: - sp1D4 = NULL; - sp1B4.unk0 = (?32) D_80024304.unk0; - sp1B4.unk4 = (?32) D_80024304.unk4; - sp1B4.unkC = (?32) D_80024304.unkC; - sp1B4.unk8 = (?32) D_80024304.unk8; - sp1B4.unk10 = (?32) D_80024304.unk10; - sp1B4.unk14 = (?32) D_80024304.unk14; - sp1B4.unk1C = (?32) D_80024304.unk1C; - sp1B4.unk18 = (?32) D_80024304.unk18; - sp1AC = 0; - test_if_recording_demos_this_stage_load(current_stage_num, get_current_difficulty()); - if (debug_and_update_stage_flag != 0) + + nowCount = osGetCount(); + randomSetSeed(nowCount); + + // 'done' value never changes, and control never breaks -- infinite loop + while (!done) { - phi_s0_2 = -1; - if (current_stage_num != 0x5a) + localGfxFrameMsg = NULL; + localD_80024304 = D_80024304; + toggleFlag = 0; + pendingGfx = 0; + + test_if_recording_demos_this_stage_load(g_StageNum, get_current_difficulty()); + if (g_DebugAndUpdateStageFlag) { - phi_s0_2 = -1; + stringIndex = -1; + + if (g_StageNum != LEVELID_TITLE && get_selected_num_players() >= 2) + { + stringIndex = 0; + + while(memallocstringtable[stringIndex].id) + { + if (memallocstringtable[stringIndex].id == (g_StageNum + 400)) + { + break; + } + + stringIndex++; + } + + if (memallocstringtable[stringIndex].id == 0) + { + stringIndex = -1; + } + } + + if (stringIndex) + { + // empty + } + + if (stringIndex < 0) + { + stringIndex = 0; + + while(memallocstringtable[stringIndex].id) + { + if (memallocstringtable[stringIndex].id == g_StageNum) + { + break; + } + + stringIndex++; + } + } + + tokenSetString(memallocstringtable[stringIndex].string); + } + + mempResetBank(4); + obBlankResourcesLoadedInBank(4); + if (tokenFind(1, "-ma")) + { + g_CurentMaMallocValue = (s32) (strtol(tokenFind(1, "-ma"), NULL, 0) * 1024); + } + + memaSetBuffer(mempAllocBytesInBank(g_CurentMaMallocValue, 4), g_CurentMaMallocValue); + reset_play_data_ptrs(); + + localSelectedNumPlayers = 0; + if (g_StageNum != LEVELID_TITLE) + { + localSelectedNumPlayers = 1; if (get_selected_num_players() >= 2) { - phi_s0 = 0; - if (memallocstringtable != 0) - { - temp_v0 = 0x80020000 + 0x41bc; - phi_v1 = *temp_v0; - phi_v0 = temp_v0; - phi_s0_4 = 0; -loop_11: - phi_s0 = phi_s0_4; - if ((current_stage_num + 0x190) != phi_v1) - { - temp_v1 = phi_v0->unk8; - temp_s0 = phi_s0_4 + 1; - phi_v1 = temp_v1; - phi_v0 = phi_v0 + 8; - phi_s0 = temp_s0; - phi_s0_4 = temp_s0; - if (temp_v1 != 0) - { - goto loop_11; - } - } - } - phi_s0_2 = phi_s0; - if (*(&memallocstringtable + (phi_s0 * 8)) == 0) - { - phi_s0_2 = -1; - } + localSelectedNumPlayers = get_selected_num_players(); } } - phi_s0_3 = phi_s0_2; - if (phi_s0_2 < 0) - { - phi_s0_3 = 0; - if (memallocstringtable != 0) - { - temp_v0_2 = 0x80020000 + 0x41bc; - phi_v1_2 = *temp_v0_2; - phi_v0_2 = temp_v0_2; - phi_s0_5 = 0; -loop_18: - phi_s0_3 = phi_s0_5; - if (current_stage_num != phi_v1_2) - { - temp_v1_2 = phi_v0_2->unk8; - temp_s0_2 = phi_s0_5 + 1; - phi_v1_2 = temp_v1_2; - phi_v0_2 = phi_v0_2 + 8; - phi_s0_3 = temp_s0_2; - phi_s0_5 = temp_s0_2; - if (temp_v1_2 != 0) - { - goto loop_18; - } - } - } - } - strtok((&memallocstringtable + (phi_s0_3 * 8))->unk4, &memallocstringtable); - } - mempResetBank(4); - obBlankResourcesLoadedInBank(4); - if (check_token(1, &aMa) != 0) - { - current_ma_malloc_value = (s32) (strtol(check_token(1, &aMa_0), 0, 0) << 0xa); - } - mempInitMallocTable(mempAllocBytesInBank(current_ma_malloc_value, 4), current_ma_malloc_value); - reset_play_data_ptrs(); - phi_s1 = 0; - if (current_stage_num != 0x5a) - { - phi_s1 = 1; - if (get_selected_num_players() >= 2) - { - phi_s1 = get_selected_num_players(); - } - } - init_player_data_ptrs_construct_viewports(phi_s1); - set_vtx_gfx_mem_alloc(); - test_controller_presence(); - stage_load(current_stage_num); - init_both_video_buffers(); - debug_text_related_2(); - sub_GAME_7F0C0B4C(); - video_related_2(); - if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) - { -loop_27: - if (osRecvMesg(&gfxFrameMsgQ, &sp1D4, 0) == 0) - { - goto loop_27; - } - } - phi_fp = 0U; - if (loadedstage < 0) - { -loop_29: - osRecvMesg(&gfxFrameMsgQ, &sp1D4, 1); - if (*sp1D4 != 1) - { - if (*sp1D4 != 2) - { - if (*sp1D4 != 5) - { - phi_v0_3 = loadedstage; - phi_fp_2 = phi_fp; - } - else - { - phi_v0_3 = (void *)0x80020000->unk42FC; - phi_fp_2 = 4U; - } - } - else - { - phi_v0_3 = (void *)0x80020000->unk42FC; - phi_fp_2 = phi_fp; - } - } - else - { - if ((u32) (osGetCount() - copy_of_osgetcount_value_1) < 0x5eb61U) - { - phi_v0_3 = loadedstage; - phi_fp_2 = phi_fp; - } - else - { - phi_v0_3 = (void *)0x80020000->unk42FC; - phi_fp_2 = phi_fp; - if ((void *)0x80020000->unk42FC < 0) - { - phi_v0_3 = (void *)0x80020000->unk42FC; - phi_fp_2 = phi_fp; - if ((u32) phi_fp < 2U) - { - sp48 = &sp1B4; - if (get_is_ramrom_flag() != 0) - { - iterate_ramrom_entries_handle_camera_out(); - } - else - { - sub_GAME_7F0C0B4C(); - } - video_DL_related_4(); - video_related_2(); - video_related_3(0x20000); - redirect_to_ramrom_replay_and_record_handlers_if_set(); - permit_stderr(0); - temp_ret_2 = get_ptr_displaylist(); - sp1A4 = temp_ret_2; - if (debug_feature_flag != 0) - { - debug_feature_flag = debug_menu_processor((s32) (((s32) (get_cur_controller_horz_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (s32) (((s32) (get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18) << 0x18) >> 0x18, (get_controller_buttons_held(0, 0xffff) & 0xffff) & 0xffff, get_controller_buttons_pressed(0, 0xffff) & 0xffff); - } - manage_mp_game(); - sub_GAME_7F09B41C(); - if (current_stage_num != 0x5a) - { - phi_s1_2 = 0; - if (getPlayerCount() > 0) - { -loop_44: - set_cur_player(sub_GAME_7F09B528(phi_s1_2)); - set_video2_width_height(pPlayer->unk7F0, pPlayer->unk7F2); - set_video2_ulx_uly(pPlayer->viewleft, pPlayer->viewtop); - sub_GAME_7F0BF800(); - temp_s1 = phi_s1_2 + 1; - phi_s1_2 = temp_s1; - if (temp_s1 < getPlayerCount()) - { - goto loop_44; - } - } - } - temp_s3 = sub_GAME_7F0BE30C(temp_ret_2); - phi_s3 = temp_s3; - if (get_debug_VisCVG_flag() != 0) - { // Lets Visualise the Coverage Value used for Scilohete Anti-Ailising (edges) (done on the VI), also produces a cool looking linemode - providing AA is working. - temp_v0_3 = temp_s3; - // glistp = glist //make pointer to gfx list - temp_s3 = temp_s3 + 8; - temp_v1_3 = temp_s3; //increment pointer by SizeOf(gfx) - temp_v0_3->unk0 = 0xe7000000; - temp_v0_3->unk4 = 0; - //gDPPipesync(glistp++); - temp_s3 = temp_s3 + 8; - temp_a0 = temp_s3; - temp_s3 = temp_s3 + 8; - temp_v1_3->unk0 = 0xba001402; - temp_v1_3->unk4 = 0; - //gDPSetCycleType(glistp++, 2CYCLE); - temp_a1 = temp_s3; - temp_s3 = temp_s3 + 8; - temp_a0->unk0 = 0xf9000000; - temp_a0->unk4 = -1; - temp_a2 = temp_s3; - temp_s3 = temp_s3 + 8; - temp_a1->unk0 = 0xee000000; - temp_a1->unk4 = -1; - temp_v0_4 = temp_s3; - temp_s3 = temp_s3 + 8; - temp_a2->unk4 = 4; - temp_a2->unk0 = 0xb9000201; - //gDPSetAlphaCompare(glistp++); - temp_s0_3 = temp_s3; - temp_v0_4->unk0 = 0xb900031d; - temp_v0_4->unk4 = 0xfa54040; - //gDPSetRenderMode(glistp++, ); + + init_player_data_ptrs_construct_viewports(localSelectedNumPlayers); + dynInitMemory(); + joyCheckStatusThreadSafe(); + stage_load(g_StageNum); + viInitBuffers(); + debmenuInit(); + sub_GAME_7F0C0B4C(); + speedGraphVideoRelated_2(); - //above would most likly look like - //glistp = glist; - //gDPPipesync(glistp++); - //gDPSetCycleType(glistp++, 2CYCLE); - // ...etc + // The following 4 empty blocks are to make s2/s3 match. - temp_s0_3->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW(temp_a0, temp_a1, temp_a2, -1) << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); - temp_s0_3->unk4 = 0; - phi_s3 = temp_s3 + 8; - } - temp_s3_2 = read_screen_display_block_and_write_chars(phi_s3); - phi_s3_2 = temp_s3_2; - if (get_memusage_display_flag() != 0) - { - phi_s3_2 = display_speed_graph(temp_s3_2); - } - phi_s3_3 = (void *) phi_s3_2; - if (debug_feature_flag != 0) - { - display_debug_menu_text_onscreen(); - phi_s3_3 = print_debug_mcm_to_stdout(phi_s3_2); - } - temp_v0_5 = phi_s3_3; - temp_s3_3 = phi_s3_3 + 8; - temp_v0_5->unk0 = 0xe9000000; - temp_v0_5->unk4 = 0; - temp_s3_3->unk0 = 0xb8000000; - temp_s3_3->unk4 = 0; - temp_s3_3 = temp_s3_3 + 8; - if (show_mem_use_flag != 0) - { - nulled_mempLoopAllMemBanks(); - memaGenerateListsBeforeAfterMerge(); - removed_debug_routine(temp_s3_3); - nullsub_41(0); - show_mem_use_flag = 0; - } - if (show_mem_bars_flag != 0) - { - draw_membars(temp_s3_3); - } - allocate_something_in_mgfx(temp_s3_3); - allocate_something_in_mvtx(); - video_related_8(); - if (get_debug_taskgrab_val() != 0) - { - if (get_controller_buttons_pressed(0, 0xc000) != 0) - { - if (get_controller_buttons_held(0, 0xc000) == 0xc000) - { -loop_58: - sprintf(&sp5C, &aU64_taskgrab_D_core, taskgrab_ramdump_num); - if (check_file_found_on_indy(&sp5C, &sp58) != 0) - { - taskgrab_ramdump_num = (s32) (taskgrab_ramdump_num + 1); - goto loop_58; - } - indy_send_capture_data(&sp5C, 0x80000000, 0x400000); - } - } - } - load_rsp_microcode(sp1A4, temp_s3_3, 0, sp48); - mem_related_calls_sort_merge_entries(); - sp1AC = (s32) (sp1AC ^ 1); - video_related_3(0x10000); - phi_v0_3 = loadedstage; - phi_fp_2 = phi_fp; - } - } - } - } - phi_fp = phi_fp_2; - if (phi_v0_3 < 0) + if(1){} // regalloc + do{}while(0); // regalloc + + while (osRecvMesg(&gfxFrameMsgQ, (OSMesg *)&localGfxFrameMsg, OS_MESG_NOBLOCK) == 0) { - goto loop_29; + // empty } - phi_fp = phi_fp_2; - if (phi_fp_2 != 0) + + if(1){} // regalloc + do{}while(0); // regalloc + + while (g_MainStageNum < 0 || pendingGfx != 0) { - goto loop_29; - } - } - unload_stage_text_data(); - stop_demo_playback(); - mempNullNextEntryInBank(4); - obBlankResourcesLoadedInBank(4); - current_stage_num = (?32) loadedstage; - loadedstage = -1; - if (sp1DC == 0) - { - goto loop_6; - } - sub_GAME_7F0D1A7C(); -} -#else -GLOBAL_ASM( + osRecvMesg(&gfxFrameMsgQ, (OSMesg *)&localGfxFrameMsg, OS_MESG_BLOCK); -.rdata -glabel aLevel__0 -.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ -glabel aLevel__1 -.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/ -glabel aHard -.word 0x2d686172, 0x64000000 /*"-hard"*/ -glabel aHard_1 -.word 0x2d686172, 0x64000000 /*"-hard"*/ -glabel aHard_2 -.word 0x2d686172, 0x64000000 /*"-hard"*/ -glabel aMa -.word 0x2d6d6100 /*"-ma"*/ -glabel aMa_0 -.word 0x2d6d6100 /*"-ma"*/ -glabel aU64_taskgrab_D_core -.word 0x7536342e, 0x7461736b, 0x67726162, 0x2e25642e, 0x636f7265, 0x00000000 /*"u64.taskgrab.%d.core"*/ - -.text -glabel mainloop -/* 006C60 70006060 27BDFE20 */ addiu $sp, $sp, -0x1e0 -/* 006C64 70006064 AFBF003C */ sw $ra, 0x3c($sp) -/* 006C68 70006068 AFBE0038 */ sw $fp, 0x38($sp) -/* 006C6C 7000606C AFB70034 */ sw $s7, 0x34($sp) -/* 006C70 70006070 AFB60030 */ sw $s6, 0x30($sp) -/* 006C74 70006074 AFB5002C */ sw $s5, 0x2c($sp) -/* 006C78 70006078 AFB40028 */ sw $s4, 0x28($sp) -/* 006C7C 7000607C AFB30024 */ sw $s3, 0x24($sp) -/* 006C80 70006080 AFB20020 */ sw $s2, 0x20($sp) -/* 006C84 70006084 AFB1001C */ sw $s1, 0x1c($sp) -/* 006C88 70006088 AFB00018 */ sw $s0, 0x18($sp) -/* 006C8C 7000608C 0FC34693 */ jal reset_mem_bank_5 -/* 006C90 70006090 AFA001DC */ sw $zero, 0x1dc($sp) -/* 006C94 70006094 3C058003 */ lui $a1, %hi(aLevel__0) -/* 006C98 70006098 24A59104 */ addiu $a1, %lo(aLevel__0) # addiu $a1, $a1, -0x6efc -/* 006C9C 7000609C 0C0029A8 */ jal check_token -/* 006CA0 700060A0 24040001 */ li $a0, 1 -/* 006CA4 700060A4 1040000D */ beqz $v0, .L700060DC -/* 006CA8 700060A8 24040001 */ li $a0, 1 -/* 006CAC 700060AC 3C058003 */ lui $a1, %hi(aLevel__1) -/* 006CB0 700060B0 0C0029A8 */ jal check_token -/* 006CB4 700060B4 24A5910C */ addiu $a1, %lo(aLevel__1) # addiu $a1, $a1, -0x6ef4 -/* 006CB8 700060B8 904F0000 */ lbu $t7, ($v0) -/* 006CBC 700060BC 904E0001 */ lbu $t6, 1($v0) -/* 006CC0 700060C0 3C018002 */ lui $at, %hi(current_stage_num) -/* 006CC4 700060C4 000FC080 */ sll $t8, $t7, 2 -/* 006CC8 700060C8 030FC021 */ addu $t8, $t8, $t7 -/* 006CCC 700060CC 0018C040 */ sll $t8, $t8, 1 -/* 006CD0 700060D0 01D8C821 */ addu $t9, $t6, $t8 -/* 006CD4 700060D4 2728FDF0 */ addiu $t0, $t9, -0x210 -/* 006CD8 700060D8 AC2841A8 */ sw $t0, %lo(current_stage_num)($at) -.L700060DC: -/* 006CDC 700060DC 3C098002 */ lui $t1, %hi(current_stage_num) -/* 006CE0 700060E0 8D2941A8 */ lw $t1, %lo(current_stage_num)($t1) -/* 006CE4 700060E4 2401005A */ li $at, 90 -/* 006CE8 700060E8 1121001D */ beq $t1, $at, .L70006160 -/* 006CEC 700060EC 00000000 */ nop -/* 006CF0 700060F0 0FC077E4 */ jal sub_GAME_7F01DF90 -/* 006CF4 700060F4 00000000 */ nop -/* 006CF8 700060F8 0FC07564 */ jal set_selected_folder_num -/* 006CFC 700060FC 00002025 */ move $a0, $zero -/* 006D00 70006100 0FC07567 */ jal set_selected_difficulty -/* 006D04 70006104 00002025 */ move $a0, $zero -/* 006D08 70006108 3C048002 */ lui $a0, %hi(current_stage_num) -/* 006D0C 7000610C 0FC0757B */ jal set_solo_and_ptr_briefing -/* 006D10 70006110 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) -/* 006D14 70006114 3C058003 */ lui $a1, %hi(aHard) -/* 006D18 70006118 24A59114 */ addiu $a1, %lo(aHard) # addiu $a1, $a1, -0x6eec -/* 006D1C 7000611C 0C0029A8 */ jal check_token -/* 006D20 70006120 24040001 */ li $a0, 1 -/* 006D24 70006124 1040000E */ beqz $v0, .L70006160 -/* 006D28 70006128 24040001 */ li $a0, 1 -/* 006D2C 7000612C 3C058003 */ lui $a1, %hi(aHard_1) -/* 006D30 70006130 0C0029A8 */ jal check_token -/* 006D34 70006134 24A5911C */ addiu $a1, %lo(aHard_1) # addiu $a1, $a1, -0x6ee4 -/* 006D38 70006138 90440000 */ lbu $a0, ($v0) -/* 006D3C 7000613C 0FC07567 */ jal set_selected_difficulty -/* 006D40 70006140 2484FFD0 */ addiu $a0, $a0, -0x30 -/* 006D44 70006144 3C058003 */ lui $a1, %hi(aHard_2) -/* 006D48 70006148 24A59124 */ addiu $a1, %lo(aHard_2) # addiu $a1, $a1, -0x6edc -/* 006D4C 7000614C 0C0029A8 */ jal check_token -/* 006D50 70006150 24040001 */ li $a0, 1 -/* 006D54 70006154 90440000 */ lbu $a0, ($v0) -/* 006D58 70006158 0FC2FF07 */ jal set_difficulty -/* 006D5C 7000615C 2484FFD0 */ addiu $a0, $a0, -0x30 -.L70006160: -/* 006D60 70006160 0C003638 */ jal osGetCount -/* 006D64 70006164 00000000 */ nop -/* 006D68 70006168 0C002926 */ jal increment_random_num -/* 006D6C 7000616C 00402025 */ move $a0, $v0 -/* 006D70 70006170 3C168003 */ lui $s6, %hi(aU64_taskgrab_D_core) -/* 006D74 70006174 3C158008 */ lui $s5, %hi(pPlayer) -/* 006D78 70006178 26B5A0B0 */ addiu $s5, %lo(pPlayer) # addiu $s5, $s5, -0x5f50 -/* 006D7C 7000617C 26D69134 */ addiu $s6, %lo(aU64_taskgrab_D_core) # addiu $s6, $s6, -0x6ecc -/* 006D80 70006180 27B70058 */ addiu $s7, $sp, 0x58 -/* 006D84 70006184 27B4005C */ addiu $s4, $sp, 0x5c -/* 006D88 70006188 8FB301A8 */ lw $s3, 0x1a8($sp) -.L7000618C: -/* 006D8C 7000618C 3C0B8002 */ lui $t3, %hi(D_80024304) -/* 006D90 70006190 AFA001D4 */ sw $zero, 0x1d4($sp) -/* 006D94 70006194 256B4304 */ addiu $t3, %lo(D_80024304) # addiu $t3, $t3, 0x4304 -/* 006D98 70006198 8D610000 */ lw $at, ($t3) -/* 006D9C 7000619C 8D6F0004 */ lw $t7, 4($t3) -/* 006DA0 700061A0 27AA01B4 */ addiu $t2, $sp, 0x1b4 -/* 006DA4 700061A4 AD410000 */ sw $at, ($t2) -/* 006DA8 700061A8 AD4F0004 */ sw $t7, 4($t2) -/* 006DAC 700061AC 8D6F000C */ lw $t7, 0xc($t3) -/* 006DB0 700061B0 8D610008 */ lw $at, 8($t3) -/* 006DB4 700061B4 0000F025 */ move $fp, $zero -/* 006DB8 700061B8 AD4F000C */ sw $t7, 0xc($t2) -/* 006DBC 700061BC AD410008 */ sw $at, 8($t2) -/* 006DC0 700061C0 8D610010 */ lw $at, 0x10($t3) -/* 006DC4 700061C4 8D6F0014 */ lw $t7, 0x14($t3) -/* 006DC8 700061C8 00008825 */ move $s1, $zero -/* 006DCC 700061CC AD410010 */ sw $at, 0x10($t2) -/* 006DD0 700061D0 AD4F0014 */ sw $t7, 0x14($t2) -/* 006DD4 700061D4 8D6F001C */ lw $t7, 0x1c($t3) -/* 006DD8 700061D8 8D610018 */ lw $at, 0x18($t3) -/* 006DDC 700061DC AD4F001C */ sw $t7, 0x1c($t2) -/* 006DE0 700061E0 AD410018 */ sw $at, 0x18($t2) -/* 006DE4 700061E4 0FC2FF04 */ jal get_current_difficulty -/* 006DE8 700061E8 AFA001AC */ sw $zero, 0x1ac($sp) -/* 006DEC 700061EC 3C048002 */ lui $a0, %hi(current_stage_num) -/* 006DF0 700061F0 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) -/* 006DF4 700061F4 0FC30190 */ jal test_if_recording_demos_this_stage_load -/* 006DF8 700061F8 00402825 */ move $a1, $v0 -/* 006DFC 700061FC 3C0E8002 */ lui $t6, %hi(debug_and_update_stage_flag) -/* 006E00 70006200 8DCE41A4 */ lw $t6, %lo(debug_and_update_stage_flag)($t6) -/* 006E04 70006204 3C188002 */ lui $t8, %hi(current_stage_num) -/* 006E08 70006208 11C00038 */ beqz $t6, .L700062EC -/* 006E0C 7000620C 00000000 */ nop -/* 006E10 70006210 8F1841A8 */ lw $t8, %lo(current_stage_num)($t8) -/* 006E14 70006214 2401005A */ li $at, 90 -/* 006E18 70006218 2410FFFF */ li $s0, -1 -/* 006E1C 7000621C 1301001D */ beq $t8, $at, .L70006294 -/* 006E20 70006220 00000000 */ nop -/* 006E24 70006224 0FC040A4 */ jal get_selected_num_players -/* 006E28 70006228 00000000 */ nop -/* 006E2C 7000622C 28410002 */ slti $at, $v0, 2 -/* 006E30 70006230 14200018 */ bnez $at, .L70006294 -/* 006E34 70006234 3C058002 */ lui $a1, %hi(memallocstringtable) -/* 006E38 70006238 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc -/* 006E3C 7000623C 8CB90000 */ lw $t9, ($a1) -/* 006E40 70006240 00008025 */ move $s0, $zero -/* 006E44 70006244 3C048002 */ lui $a0, %hi(current_stage_num) -/* 006E48 70006248 1320000C */ beqz $t9, .L7000627C -/* 006E4C 7000624C 3C088002 */ lui $t0, %hi(memallocstringtable) -/* 006E50 70006250 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) -/* 006E54 70006254 250241BC */ addiu $v0, $t0, %lo(memallocstringtable) -/* 006E58 70006258 8C430000 */ lw $v1, ($v0) -/* 006E5C 7000625C 24840190 */ addiu $a0, $a0, 0x190 -.L70006260: -/* 006E60 70006260 50830007 */ beql $a0, $v1, .L70006280 -/* 006E64 70006264 001048C0 */ sll $t1, $s0, 3 -/* 006E68 70006268 8C430008 */ lw $v1, 8($v0) -/* 006E6C 7000626C 26100001 */ addiu $s0, $s0, 1 -/* 006E70 70006270 24420008 */ addiu $v0, $v0, 8 -/* 006E74 70006274 1460FFFA */ bnez $v1, .L70006260 -/* 006E78 70006278 00000000 */ nop -.L7000627C: -/* 006E7C 7000627C 001048C0 */ sll $t1, $s0, 3 -.L70006280: -/* 006E80 70006280 00A96821 */ addu $t5, $a1, $t1 -/* 006E84 70006284 8DAC0000 */ lw $t4, ($t5) -/* 006E88 70006288 15800002 */ bnez $t4, .L70006294 -/* 006E8C 7000628C 00000000 */ nop -/* 006E90 70006290 2410FFFF */ li $s0, -1 -.L70006294: -/* 006E94 70006294 3C058002 */ lui $a1, %hi(memallocstringtable) -/* 006E98 70006298 06010010 */ bgez $s0, .L700062DC -/* 006E9C 7000629C 24A541BC */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x41bc -/* 006EA0 700062A0 8CAA0000 */ lw $t2, ($a1) -/* 006EA4 700062A4 00008025 */ move $s0, $zero -/* 006EA8 700062A8 3C048002 */ lui $a0, %hi(current_stage_num) -/* 006EAC 700062AC 1140000B */ beqz $t2, .L700062DC -/* 006EB0 700062B0 3C0B8002 */ lui $t3, %hi(memallocstringtable) -/* 006EB4 700062B4 256241BC */ addiu $v0, $t3, %lo(memallocstringtable) -/* 006EB8 700062B8 8C430000 */ lw $v1, ($v0) -/* 006EBC 700062BC 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) -.L700062C0: -/* 006EC0 700062C0 50830007 */ beql $a0, $v1, .L700062E0 -/* 006EC4 700062C4 001078C0 */ sll $t7, $s0, 3 -/* 006EC8 700062C8 8C430008 */ lw $v1, 8($v0) -/* 006ECC 700062CC 26100001 */ addiu $s0, $s0, 1 -/* 006ED0 700062D0 24420008 */ addiu $v0, $v0, 8 -/* 006ED4 700062D4 1460FFFA */ bnez $v1, .L700062C0 -/* 006ED8 700062D8 00000000 */ nop -.L700062DC: -/* 006EDC 700062DC 001078C0 */ sll $t7, $s0, 3 -.L700062E0: -/* 006EE0 700062E0 00AF7021 */ addu $t6, $a1, $t7 -/* 006EE4 700062E4 0C002963 */ jal strtok -/* 006EE8 700062E8 8DC40004 */ lw $a0, 4($t6) -.L700062EC: -/* 006EEC 700062EC 0C002667 */ jal mempResetBank -/* 006EF0 700062F0 24040004 */ li $a0, 4 -/* 006EF4 700062F4 0FC2F46F */ jal obBlankResourcesLoadedInBank -/* 006EF8 700062F8 24040004 */ li $a0, 4 -/* 006EFC 700062FC 3C058003 */ lui $a1, %hi(aMa) -/* 006F00 70006300 24A5912C */ addiu $a1, %lo(aMa) # addiu $a1, $a1, -0x6ed4 -/* 006F04 70006304 0C0029A8 */ jal check_token -/* 006F08 70006308 24040001 */ li $a0, 1 -/* 006F0C 7000630C 1040000B */ beqz $v0, .L7000633C -/* 006F10 70006310 24040001 */ li $a0, 1 -/* 006F14 70006314 3C058003 */ lui $a1, %hi(aMa_0) -/* 006F18 70006318 0C0029A8 */ jal check_token -/* 006F1C 7000631C 24A59130 */ addiu $a1, %lo(aMa_0) # addiu $a1, $a1, -0x6ed0 -/* 006F20 70006320 00402025 */ move $a0, $v0 -/* 006F24 70006324 00002825 */ move $a1, $zero -/* 006F28 70006328 0C002A78 */ jal strtol -/* 006F2C 7000632C 00003025 */ move $a2, $zero -/* 006F30 70006330 0002C280 */ sll $t8, $v0, 0xa -/* 006F34 70006334 3C018002 */ lui $at, %hi(current_ma_malloc_value) -/* 006F38 70006338 AC3841B0 */ sw $t8, %lo(current_ma_malloc_value)($at) -.L7000633C: -/* 006F3C 7000633C 3C048002 */ lui $a0, %hi(current_ma_malloc_value) -/* 006F40 70006340 8C8441B0 */ lw $a0, %lo(current_ma_malloc_value)($a0) -/* 006F44 70006344 0C0025C8 */ jal mempAllocBytesInBank -/* 006F48 70006348 24050004 */ li $a1, 4 -/* 006F4C 7000634C 3C058002 */ lui $a1, %hi(current_ma_malloc_value) -/* 006F50 70006350 8CA541B0 */ lw $a1, %lo(current_ma_malloc_value)($a1) -/* 006F54 70006354 0C002766 */ jal mempInitMallocTable -/* 006F58 70006358 00402025 */ move $a0, $v0 -/* 006F5C 7000635C 0FC268CB */ jal reset_play_data_ptrs -/* 006F60 70006360 00000000 */ nop -/* 006F64 70006364 3C198002 */ lui $t9, %hi(current_stage_num) -/* 006F68 70006368 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) -/* 006F6C 7000636C 2401005A */ li $at, 90 -/* 006F70 70006370 13210009 */ beq $t9, $at, .L70006398 -/* 006F74 70006374 00000000 */ nop -/* 006F78 70006378 0FC040A4 */ jal get_selected_num_players -/* 006F7C 7000637C 24110001 */ li $s1, 1 -/* 006F80 70006380 28410002 */ slti $at, $v0, 2 -/* 006F84 70006384 14200004 */ bnez $at, .L70006398 -/* 006F88 70006388 00000000 */ nop -/* 006F8C 7000638C 0FC040A4 */ jal get_selected_num_players -/* 006F90 70006390 00000000 */ nop -/* 006F94 70006394 00408825 */ move $s1, $v0 -.L70006398: -/* 006F98 70006398 0FC268E3 */ jal init_player_data_ptrs_construct_viewports -/* 006F9C 7000639C 02202025 */ move $a0, $s1 -/* 006FA0 700063A0 0FC2F523 */ jal set_vtx_gfx_mem_alloc -/* 006FA4 700063A4 00000000 */ nop -/* 006FA8 700063A8 0C002DAB */ jal test_controller_presence -/* 006FAC 700063AC 00000000 */ nop -/* 006FB0 700063B0 3C048002 */ lui $a0, %hi(current_stage_num) -/* 006FB4 700063B4 0FC2F6AC */ jal stage_load -/* 006FB8 700063B8 8C8441A8 */ lw $a0, %lo(current_stage_num)($a0) -/* 006FBC 700063BC 0C000C49 */ jal init_both_video_buffers -/* 006FC0 700063C0 00000000 */ nop -/* 006FC4 700063C4 0C002B6C */ jal debug_text_related_2 -/* 006FC8 700063C8 00000000 */ nop -/* 006FCC 700063CC 0FC302D3 */ jal sub_GAME_7F0C0B4C -/* 006FD0 700063D0 00000000 */ nop -/* 006FD4 700063D4 0C000A04 */ jal video_related_2 -/* 006FD8 700063D8 00000000 */ nop -/* 006FDC 700063DC 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) -/* 006FE0 700063E0 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 -/* 006FE4 700063E4 27A501D4 */ addiu $a1, $sp, 0x1d4 -/* 006FE8 700063E8 0C003774 */ jal osRecvMesg -/* 006FEC 700063EC 00003025 */ move $a2, $zero -/* 006FF0 700063F0 14400007 */ bnez $v0, .L70006410 -.L700063F4: -/* 006FF4 700063F4 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) -/* 006FF8 700063F8 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 -/* 006FFC 700063FC 27A501D4 */ addiu $a1, $sp, 0x1d4 -/* 007000 70006400 0C003774 */ jal osRecvMesg -/* 007004 70006404 00003025 */ move $a2, $zero -/* 007008 70006408 1040FFFA */ beqz $v0, .L700063F4 -/* 00700C 7000640C 00000000 */ nop -.L70006410: -/* 007010 70006410 3C088002 */ lui $t0, %hi(loadedstage) -/* 007014 70006414 8D0842FC */ lw $t0, %lo(loadedstage)($t0) -/* 007018 70006418 05010126 */ bgez $t0, .L700068B4 -.L7000641C: -/* 00701C 7000641C 3C048006 */ lui $a0, %hi(gfxFrameMsgQ) -/* 007020 70006420 2484D9A0 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, -0x2660 -/* 007024 70006424 27A501D4 */ addiu $a1, $sp, 0x1d4 -/* 007028 70006428 0C003774 */ jal osRecvMesg -/* 00702C 7000642C 24060001 */ li $a2, 1 -/* 007030 70006430 8FA901D4 */ lw $t1, 0x1d4($sp) -/* 007034 70006434 24010001 */ li $at, 1 -/* 007038 70006438 85230000 */ lh $v1, ($t1) -/* 00703C 7000643C 10610009 */ beq $v1, $at, .L70006464 -/* 007040 70006440 24010002 */ li $at, 2 -/* 007044 70006444 10610112 */ beq $v1, $at, .L70006890 -/* 007048 70006448 3C028002 */ lui $v0, %hi(loadedstage) -/* 00704C 7000644C 24010005 */ li $at, 5 -/* 007050 70006450 10610112 */ beq $v1, $at, .L7000689C -/* 007054 70006454 3C028002 */ lui $v0, %hi(loadedstage) -/* 007058 70006458 3C028002 */ lui $v0, %hi(loadedstage) -/* 00705C 7000645C 10000111 */ b .L700068A4 -/* 007060 70006460 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -.L70006464: -/* 007064 70006464 0C003638 */ jal osGetCount -/* 007068 70006468 00000000 */ nop -/* 00706C 7000646C 3C0D8005 */ lui $t5, %hi(copy_of_osgetcount_value_1) -/* 007070 70006470 8DAD84B0 */ lw $t5, %lo(copy_of_osgetcount_value_1)($t5) -/* 007074 70006474 3C010005 */ lui $at, (0x0005EB61 >> 16) # lui $at, 5 -/* 007078 70006478 3421EB61 */ ori $at, (0x0005EB61 & 0xFFFF) # ori $at, $at, 0xeb61 -/* 00707C 7000647C 004D1823 */ subu $v1, $v0, $t5 -/* 007080 70006480 0061082B */ sltu $at, $v1, $at -/* 007084 70006484 10200004 */ beqz $at, .L70006498 -/* 007088 70006488 3C028002 */ lui $v0, %hi(loadedstage) -/* 00708C 7000648C 3C028002 */ lui $v0, %hi(loadedstage) -/* 007090 70006490 10000104 */ b .L700068A4 -/* 007094 70006494 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -.L70006498: -/* 007098 70006498 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -/* 00709C 7000649C 2FC10002 */ sltiu $at, $fp, 2 -/* 0070A0 700064A0 04410100 */ bgez $v0, .L700068A4 -/* 0070A4 700064A4 00000000 */ nop -/* 0070A8 700064A8 102000FE */ beqz $at, .L700068A4 -/* 0070AC 700064AC 27AC01B4 */ addiu $t4, $sp, 0x1b4 -/* 0070B0 700064B0 0FC2FF23 */ jal get_is_ramrom_flag -/* 0070B4 700064B4 AFAC0048 */ sw $t4, 0x48($sp) -/* 0070B8 700064B8 10400005 */ beqz $v0, .L700064D0 -/* 0070BC 700064BC 00000000 */ nop -/* 0070C0 700064C0 0FC3009A */ jal iterate_ramrom_entries_handle_camera_out -/* 0070C4 700064C4 00000000 */ nop -/* 0070C8 700064C8 10000003 */ b .L700064D8 -/* 0070CC 700064CC 00000000 */ nop -.L700064D0: -/* 0070D0 700064D0 0FC302D3 */ jal sub_GAME_7F0C0B4C -/* 0070D4 700064D4 00000000 */ nop -.L700064D8: -/* 0070D8 700064D8 0C000B36 */ jal video_DL_related_4 -/* 0070DC 700064DC 00000000 */ nop -/* 0070E0 700064E0 0C000A04 */ jal video_related_2 -/* 0070E4 700064E4 00000000 */ nop -/* 0070E8 700064E8 0C000A15 */ jal video_related_3 -/* 0070EC 700064EC 3C040002 */ lui $a0, 2 -/* 0070F0 700064F0 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set -/* 0070F4 700064F4 00000000 */ nop -/* 0070F8 700064F8 0C000262 */ jal permit_stderr -/* 0070FC 700064FC 00002025 */ move $a0, $zero -/* 007100 70006500 0FC2F59D */ jal get_ptr_displaylist -/* 007104 70006504 00000000 */ nop -/* 007108 70006508 3C0A8002 */ lui $t2, %hi(debug_feature_flag) -/* 00710C 7000650C 8D4A4300 */ lw $t2, %lo(debug_feature_flag)($t2) -/* 007110 70006510 AFA201A4 */ sw $v0, 0x1a4($sp) -/* 007114 70006514 00409825 */ move $s3, $v0 -/* 007118 70006518 1140001D */ beqz $t2, .L70006590 -/* 00711C 7000651C 00000000 */ nop -/* 007120 70006520 0C00303B */ jal get_cur_controller_horz_stick_pos -/* 007124 70006524 00002025 */ move $a0, $zero -/* 007128 70006528 00028600 */ sll $s0, $v0, 0x18 -/* 00712C 7000652C 00105E03 */ sra $t3, $s0, 0x18 -/* 007130 70006530 01608025 */ move $s0, $t3 -/* 007134 70006534 0C00307F */ jal get_cur_controller_vert_stick_pos -/* 007138 70006538 00002025 */ move $a0, $zero -/* 00713C 7000653C 00028E00 */ sll $s1, $v0, 0x18 -/* 007140 70006540 00117E03 */ sra $t7, $s1, 0x18 -/* 007144 70006544 01E08825 */ move $s1, $t7 -/* 007148 70006548 00002025 */ move $a0, $zero -/* 00714C 7000654C 0C0030C3 */ jal get_controller_buttons_held -/* 007150 70006550 3405FFFF */ li $a1, 65535 -/* 007154 70006554 3052FFFF */ andi $s2, $v0, 0xffff -/* 007158 70006558 00002025 */ move $a0, $zero -/* 00715C 7000655C 0C0030EB */ jal get_controller_buttons_pressed -/* 007160 70006560 3405FFFF */ li $a1, 65535 -/* 007164 70006564 00102600 */ sll $a0, $s0, 0x18 -/* 007168 70006568 00112E00 */ sll $a1, $s1, 0x18 -/* 00716C 7000656C 0005C603 */ sra $t8, $a1, 0x18 -/* 007170 70006570 00047603 */ sra $t6, $a0, 0x18 -/* 007174 70006574 01C02025 */ move $a0, $t6 -/* 007178 70006578 03002825 */ move $a1, $t8 -/* 00717C 7000657C 3246FFFF */ andi $a2, $s2, 0xffff -/* 007180 70006580 0FC24168 */ jal debug_menu_processor -/* 007184 70006584 3047FFFF */ andi $a3, $v0, 0xffff -/* 007188 70006588 3C018002 */ lui $at, %hi(debug_feature_flag) -/* 00718C 7000658C AC224300 */ sw $v0, %lo(debug_feature_flag)($at) -.L70006590: -/* 007190 70006590 0FC2FAE2 */ jal manage_mp_game -/* 007194 70006594 00000000 */ nop -/* 007198 70006598 0FC26D07 */ jal sub_GAME_7F09B41C -/* 00719C 7000659C 00000000 */ nop -/* 0071A0 700065A0 3C198002 */ lui $t9, %hi(current_stage_num) -/* 0071A4 700065A4 8F3941A8 */ lw $t9, %lo(current_stage_num)($t9) -/* 0071A8 700065A8 2401005A */ li $at, 90 -/* 0071AC 700065AC 13210018 */ beq $t9, $at, .L70006610 -/* 0071B0 700065B0 00000000 */ nop -/* 0071B4 700065B4 0FC26919 */ jal getPlayerCount -/* 0071B8 700065B8 00008825 */ move $s1, $zero -/* 0071BC 700065BC 18400014 */ blez $v0, .L70006610 -/* 0071C0 700065C0 00000000 */ nop -.L700065C4: -/* 0071C4 700065C4 0FC26D4A */ jal sub_GAME_7F09B528 -/* 0071C8 700065C8 02202025 */ move $a0, $s1 -/* 0071CC 700065CC 0FC26C43 */ jal set_cur_player -/* 0071D0 700065D0 00402025 */ move $a0, $v0 -/* 0071D4 700065D4 8EB00000 */ lw $s0, ($s5) -/* 0071D8 700065D8 860407F0 */ lh $a0, 0x7f0($s0) -/* 0071DC 700065DC 0C00110F */ jal set_video2_width_height -/* 0071E0 700065E0 860507F2 */ lh $a1, 0x7f2($s0) -/* 0071E4 700065E4 8EB00000 */ lw $s0, ($s5) -/* 0071E8 700065E8 860407F4 */ lh $a0, 0x7f4($s0) -/* 0071EC 700065EC 0C00112F */ jal set_video2_ulx_uly -/* 0071F0 700065F0 860507F6 */ lh $a1, 0x7f6($s0) -/* 0071F4 700065F4 0FC2FE00 */ jal sub_GAME_7F0BF800 -/* 0071F8 700065F8 00000000 */ nop -/* 0071FC 700065FC 0FC26919 */ jal getPlayerCount -/* 007200 70006600 26310001 */ addiu $s1, $s1, 1 -/* 007204 70006604 0222082A */ slt $at, $s1, $v0 -/* 007208 70006608 1420FFEE */ bnez $at, .L700065C4 -/* 00720C 7000660C 00000000 */ nop -.L70006610: -/* 007210 70006610 0FC2F8C3 */ jal sub_GAME_7F0BE30C -/* 007214 70006614 02602025 */ move $a0, $s3 -/* 007218 70006618 0FC243F7 */ jal get_debug_VisCVG_flag -/* 00721C 7000661C 00409825 */ move $s3, $v0 -/* 007220 70006620 10400037 */ beqz $v0, .L70006700 -/* 007224 70006624 2407FFFF */ li $a3, -1 -/* 007228 70006628 02601025 */ move $v0, $s3 -/* 00722C 7000662C 26730008 */ addiu $s3, $s3, 8 -/* 007230 70006630 3C08E700 */ lui $t0, 0xe700 -/* 007234 70006634 02601825 */ move $v1, $s3 -/* 007238 70006638 AC480000 */ sw $t0, ($v0) -/* 00723C 7000663C AC400004 */ sw $zero, 4($v0) -/* 007240 70006640 26730008 */ addiu $s3, $s3, 8 -/* 007244 70006644 3C09BA00 */ lui $t1, (0xBA001402 >> 16) # lui $t1, 0xba00 -/* 007248 70006648 02602025 */ move $a0, $s3 -/* 00724C 7000664C 35291402 */ ori $t1, (0xBA001402 & 0xFFFF) # ori $t1, $t1, 0x1402 -/* 007250 70006650 26730008 */ addiu $s3, $s3, 8 -/* 007254 70006654 AC690000 */ sw $t1, ($v1) -/* 007258 70006658 AC600004 */ sw $zero, 4($v1) -/* 00725C 7000665C 02602825 */ move $a1, $s3 -/* 007260 70006660 3C0DF900 */ lui $t5, 0xf900 -/* 007264 70006664 26730008 */ addiu $s3, $s3, 8 -/* 007268 70006668 AC8D0000 */ sw $t5, 0($a0) -/* 00726C 7000666C AC870004 */ sw $a3, 4($a0) -/* 007270 70006670 02603025 */ move $a2, $s3 -/* 007274 70006674 3C0CEE00 */ lui $t4, 0xee00 -/* 007278 70006678 26730008 */ addiu $s3, $s3, 8 -/* 00727C 7000667C ACAC0000 */ sw $t4, ($a1) -/* 007280 70006680 ACA70004 */ sw $a3, 4($a1) -/* 007284 70006684 3C0AB900 */ lui $t2, (0xB9000201 >> 16) # lui $t2, 0xb900 -/* 007288 70006688 02601025 */ move $v0, $s3 -/* 00728C 7000668C 354A0201 */ ori $t2, (0xB9000201 & 0xFFFF) # ori $t2, $t2, 0x201 -/* 007290 70006690 240B0004 */ li $t3, 4 -/* 007294 70006694 26730008 */ addiu $s3, $s3, 8 -/* 007298 70006698 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 00729C 7000669C 3C0E0FA5 */ lui $t6, (0x0FA54040 >> 16) # lui $t6, 0xfa5 -/* 0072A0 700066A0 ACCB0004 */ sw $t3, 4($a2) -/* 0072A4 700066A4 ACCA0000 */ sw $t2, ($a2) -/* 0072A8 700066A8 35CE4040 */ ori $t6, (0x0FA54040 & 0xFFFF) # ori $t6, $t6, 0x4040 -/* 0072AC 700066AC 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 0072B0 700066B0 02608025 */ move $s0, $s3 -/* 0072B4 700066B4 AC4F0000 */ sw $t7, ($v0) -/* 0072B8 700066B8 AC4E0004 */ sw $t6, 4($v0) -/* 0072BC 700066BC 0C001107 */ jal get_video2_settings_txtClipW -/* 0072C0 700066C0 26730008 */ addiu $s3, $s3, 8 -/* 0072C4 700066C4 00028C00 */ sll $s1, $v0, 0x10 -/* 0072C8 700066C8 0011C403 */ sra $t8, $s1, 0x10 -/* 0072CC 700066CC 0C00110B */ jal get_video2_settings_txtClipH -/* 0072D0 700066D0 03008825 */ move $s1, $t8 -/* 0072D4 700066D4 2459FFFF */ addiu $t9, $v0, -1 -/* 0072D8 700066D8 332803FF */ andi $t0, $t9, 0x3ff -/* 0072DC 700066DC 262CFFFF */ addiu $t4, $s1, -1 -/* 0072E0 700066E0 318A03FF */ andi $t2, $t4, 0x3ff -/* 0072E4 700066E4 00084880 */ sll $t1, $t0, 2 -/* 0072E8 700066E8 3C01F600 */ lui $at, 0xf600 -/* 0072EC 700066EC 01216825 */ or $t5, $t1, $at -/* 0072F0 700066F0 000A5B80 */ sll $t3, $t2, 0xe -/* 0072F4 700066F4 01AB7825 */ or $t7, $t5, $t3 -/* 0072F8 700066F8 AE0F0000 */ sw $t7, ($s0) -/* 0072FC 700066FC AE000004 */ sw $zero, 4($s0) -.L70006700: -/* 007300 70006700 0C002C9F */ jal read_screen_display_block_and_write_chars -/* 007304 70006704 02602025 */ move $a0, $s3 -/* 007308 70006708 0FC243CD */ jal get_memusage_display_flag -/* 00730C 7000670C 00409825 */ move $s3, $v0 -/* 007310 70006710 10400004 */ beqz $v0, .L70006724 -/* 007314 70006714 00000000 */ nop -/* 007318 70006718 0C000A56 */ jal display_speed_graph -/* 00731C 7000671C 02602025 */ move $a0, $s3 -/* 007320 70006720 00409825 */ move $s3, $v0 -.L70006724: -/* 007324 70006724 3C0E8002 */ lui $t6, %hi(debug_feature_flag) -/* 007328 70006728 8DCE4300 */ lw $t6, %lo(debug_feature_flag)($t6) -/* 00732C 7000672C 51C00007 */ beql $t6, $zero, .L7000674C -/* 007330 70006730 02601025 */ move $v0, $s3 -/* 007334 70006734 0FC24124 */ jal display_debug_menu_text_onscreen -/* 007338 70006738 00000000 */ nop -/* 00733C 7000673C 0FC23F9D */ jal print_debug_mcm_to_stdout -/* 007340 70006740 02602025 */ move $a0, $s3 -/* 007344 70006744 00409825 */ move $s3, $v0 -/* 007348 70006748 02601025 */ move $v0, $s3 -.L7000674C: -/* 00734C 7000674C 26730008 */ addiu $s3, $s3, 8 -/* 007350 70006750 3C18E900 */ lui $t8, 0xe900 -/* 007354 70006754 AC580000 */ sw $t8, ($v0) -/* 007358 70006758 AC400004 */ sw $zero, 4($v0) -/* 00735C 7000675C 02601825 */ move $v1, $s3 -/* 007360 70006760 3C19B800 */ lui $t9, 0xb800 -/* 007364 70006764 AC790000 */ sw $t9, ($v1) -/* 007368 70006768 AC600004 */ sw $zero, 4($v1) -/* 00736C 7000676C 3C088002 */ lui $t0, %hi(show_mem_use_flag) -/* 007370 70006770 8D0841B4 */ lw $t0, %lo(show_mem_use_flag)($t0) -/* 007374 70006774 26730008 */ addiu $s3, $s3, 8 -/* 007378 70006778 1100000B */ beqz $t0, .L700067A8 -/* 00737C 7000677C 00000000 */ nop -/* 007380 70006780 0C00263C */ jal nulled_mempLoopAllMemBanks -/* 007384 70006784 00000000 */ nop -/* 007388 70006788 0C0028A7 */ jal memaGenerateListsBeforeAfterMerge -/* 00738C 7000678C 00000000 */ nop -/* 007390 70006790 0FC2F5DD */ jal removed_debug_routine -/* 007394 70006794 02602025 */ move $a0, $s3 -/* 007398 70006798 0FC31994 */ jal nullsub_41 -/* 00739C 7000679C 00002025 */ move $a0, $zero -/* 0073A0 700067A0 3C018002 */ lui $at, %hi(show_mem_use_flag) -/* 0073A4 700067A4 AC2041B4 */ sw $zero, %lo(show_mem_use_flag)($at) -.L700067A8: -/* 0073A8 700067A8 3C098002 */ lui $t1, %hi(show_mem_bars_flag) -/* 0073AC 700067AC 8D2941B8 */ lw $t1, %lo(show_mem_bars_flag)($t1) -/* 0073B0 700067B0 11200003 */ beqz $t1, .L700067C0 -/* 0073B4 700067B4 00000000 */ nop -/* 0073B8 700067B8 0FC2F604 */ jal draw_membars -/* 0073BC 700067BC 02602025 */ move $a0, $s3 -.L700067C0: -/* 0073C0 700067C0 0FC2F5A7 */ jal allocate_something_in_mgfx -/* 0073C4 700067C4 02602025 */ move $a0, $s3 -/* 0073C8 700067C8 0FC2F5CE */ jal allocate_something_in_mvtx -/* 0073CC 700067CC 00000000 */ nop -/* 0073D0 700067D0 0C000CA6 */ jal video_related_8 -/* 0073D4 700067D4 00000000 */ nop -/* 0073D8 700067D8 0FC2441B */ jal get_debug_taskgrab_val -/* 0073DC 700067DC 00000000 */ nop -/* 0073E0 700067E0 1040001C */ beqz $v0, .L70006854 -/* 0073E4 700067E4 00002025 */ move $a0, $zero -/* 0073E8 700067E8 0C0030EB */ jal get_controller_buttons_pressed -/* 0073EC 700067EC 3405C000 */ li $a1, 49152 -/* 0073F0 700067F0 10400018 */ beqz $v0, .L70006854 -/* 0073F4 700067F4 00002025 */ move $a0, $zero -/* 0073F8 700067F8 0C0030C3 */ jal get_controller_buttons_held -/* 0073FC 700067FC 3405C000 */ li $a1, 49152 -/* 007400 70006800 3401C000 */ li $at, 49152 -/* 007404 70006804 14410013 */ bne $v0, $at, .L70006854 -.L70006808: -/* 007408 70006808 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) -/* 00740C 7000680C 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) -/* 007410 70006810 02802025 */ move $a0, $s4 -/* 007414 70006814 0C002B25 */ jal sprintf -/* 007418 70006818 02C02825 */ move $a1, $s6 -/* 00741C 7000681C 02802025 */ move $a0, $s4 -/* 007420 70006820 0FC34026 */ jal check_file_found_on_indy -/* 007424 70006824 02E02825 */ move $a1, $s7 -/* 007428 70006828 10400006 */ beqz $v0, .L70006844 -/* 00742C 7000682C 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) -/* 007430 70006830 8CC64324 */ lw $a2, %lo(taskgrab_ramdump_num)($a2) -/* 007434 70006834 3C018002 */ lui $at, %hi(taskgrab_ramdump_num) -/* 007438 70006838 24C60001 */ addiu $a2, $a2, 1 -/* 00743C 7000683C 1000FFF2 */ b .L70006808 -/* 007440 70006840 AC264324 */ sw $a2, %lo(taskgrab_ramdump_num)($at) -.L70006844: -/* 007444 70006844 02802025 */ move $a0, $s4 -/* 007448 70006848 3C058000 */ lui $a1, 0x8000 -/* 00744C 7000684C 0FC33FF8 */ jal indy_send_capture_data -/* 007450 70006850 3C060040 */ lui $a2, 0x40 -.L70006854: -/* 007454 70006854 8FA401A4 */ lw $a0, 0x1a4($sp) -/* 007458 70006858 02602825 */ move $a1, $s3 -/* 00745C 7000685C 00003025 */ move $a2, $zero -/* 007460 70006860 0FC33F86 */ jal load_rsp_microcode -/* 007464 70006864 8FA70048 */ lw $a3, 0x48($sp) -/* 007468 70006868 0C002784 */ jal mem_related_calls_sort_merge_entries -/* 00746C 7000686C 27DE0001 */ addiu $fp, $fp, 1 -/* 007470 70006870 8FAC01AC */ lw $t4, 0x1ac($sp) -/* 007474 70006874 3C040001 */ lui $a0, 1 -/* 007478 70006878 398A0001 */ xori $t2, $t4, 1 -/* 00747C 7000687C 0C000A15 */ jal video_related_3 -/* 007480 70006880 AFAA01AC */ sw $t2, 0x1ac($sp) -/* 007484 70006884 3C028002 */ lui $v0, %hi(loadedstage) -/* 007488 70006888 10000006 */ b .L700068A4 -/* 00748C 7000688C 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -.L70006890: -/* 007490 70006890 27DEFFFF */ addiu $fp, $fp, -1 -/* 007494 70006894 10000003 */ b .L700068A4 -/* 007498 70006898 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -.L7000689C: -/* 00749C 7000689C 241E0004 */ li $fp, 4 -/* 0074A0 700068A0 8C4242FC */ lw $v0, %lo(loadedstage)($v0) -.L700068A4: -/* 0074A4 700068A4 0440FEDD */ bltz $v0, .L7000641C -/* 0074A8 700068A8 00000000 */ nop -/* 0074AC 700068AC 17C0FEDB */ bnez $fp, .L7000641C -/* 0074B0 700068B0 00000000 */ nop -.L700068B4: -/* 0074B4 700068B4 0FC2FEC8 */ jal unload_stage_text_data -/* 0074B8 700068B8 00000000 */ nop -/* 0074BC 700068BC 0FC3023F */ jal stop_demo_playback -/* 0074C0 700068C0 00000000 */ nop -/* 0074C4 700068C4 0C002671 */ jal mempNullNextEntryInBank -/* 0074C8 700068C8 24040004 */ li $a0, 4 -/* 0074CC 700068CC 0FC2F46F */ jal obBlankResourcesLoadedInBank -/* 0074D0 700068D0 24040004 */ li $a0, 4 -/* 0074D4 700068D4 3C028002 */ lui $v0, %hi(loadedstage) -/* 0074D8 700068D8 244242FC */ addiu $v0, %lo(loadedstage) # addiu $v0, $v0, 0x42fc -/* 0074DC 700068DC 8C4D0000 */ lw $t5, ($v0) -/* 0074E0 700068E0 8FAF01DC */ lw $t7, 0x1dc($sp) -/* 0074E4 700068E4 3C018002 */ lui $at, %hi(current_stage_num) -/* 0074E8 700068E8 240BFFFF */ li $t3, -1 -/* 0074EC 700068EC AC2D41A8 */ sw $t5, %lo(current_stage_num)($at) -/* 0074F0 700068F0 11E0FE26 */ beqz $t7, .L7000618C -/* 0074F4 700068F4 AC4B0000 */ sw $t3, ($v0) -/* 0074F8 700068F8 0FC3469F */ jal sub_GAME_7F0D1A7C -/* 0074FC 700068FC AFB301A8 */ sw $s3, 0x1a8($sp) -/* 007500 70006900 8FBF003C */ lw $ra, 0x3c($sp) -/* 007504 70006904 8FB00018 */ lw $s0, 0x18($sp) -/* 007508 70006908 8FB1001C */ lw $s1, 0x1c($sp) -/* 00750C 7000690C 8FB20020 */ lw $s2, 0x20($sp) -/* 007510 70006910 8FB30024 */ lw $s3, 0x24($sp) -/* 007514 70006914 8FB40028 */ lw $s4, 0x28($sp) -/* 007518 70006918 8FB5002C */ lw $s5, 0x2c($sp) -/* 00751C 7000691C 8FB60030 */ lw $s6, 0x30($sp) -/* 007520 70006920 8FB70034 */ lw $s7, 0x34($sp) -/* 007524 70006924 8FBE0038 */ lw $fp, 0x38($sp) -/* 007528 70006928 03E00008 */ jr $ra -/* 00752C 7000692C 27BD01E0 */ addiu $sp, $sp, 0x1e0 -) + switch (localGfxFrameMsg->gen.type) + { + case (OS_SC_RETRACE_MSG): + { +#ifdef DEBUG + /* debug logging from simple.c, I think this requires #include + * // if (logging) + * // osLogEvent(log, LOG_RETRACE, 1, pendingGfx); + */ #endif + mainTickElapsed = (u32) (osGetCount() - copy_of_osgetcount_value_1); + if (mainTickElapsed < MAIN_LOOP_TICK_INTERVAL) + { + // nothing to do. + } + else + { + if (g_MainStageNum < 0 && pendingGfx < 2U) + { + if (get_is_ramrom_flag()) + { + iterate_ramrom_entries_handle_camera_out(); + } + else + { + sub_GAME_7F0C0B4C(); + } + + video_DL_related_4(); + speedGraphVideoRelated_2(); + speedGraphVideoRelated_3(0x20000); + joyConsumeSamplesWrapper(); + permit_stderr(0); + + gdl = firstGdl = dynGetMasterDisplayList(); + + if (g_DebugFeatureFlag) + { + joyStickXPos = joyGetStickX(0); + joyStickYPos = joyGetStickY(0); + joyButtons = joyGetButtons(0, ANY_BUTTON); + g_DebugFeatureFlag = debug_menu_processor(joyStickXPos, joyStickYPos, joyButtons, joyGetButtonsPressedThisFrame(0, ANY_BUTTON)); + } + + manage_mp_game(); + sub_GAME_7F09B41C(); + + if (g_StageNum != LEVELID_TITLE) + { + for (i = 0; i < getPlayerCount(); i++) + { + set_cur_player(sub_GAME_7F09B528(i)); + + localPlayer = pPlayer; + viSetViewSize(localPlayer->viewx, localPlayer->viewy); + + localPlayer = pPlayer; + viSetViewPosition(localPlayer->viewleft, localPlayer->viewtop); + + sub_GAME_7F0BF800(); + } + } + + gdl = sub_GAME_7F0BE30C(gdl); + + // Lets Visualise the Coverage Value used for Scilohete Anti-Ailising (edges) + // (done on the VI), also produces a cool looking linemode - providing AA is working. + if (get_debug_VisCVG_flag()) + { + gDPPipeSync(gdl++); // 0xe7000000, 0x00000000 + gDPSetCycleType(gdl++, G_CYC_1CYCLE); // 0xba001402, 0x00000000 + gDPSetBlendColor(gdl++, 0xff, 0xff, 0xff, 0xff); // 0xf9000000, 0xffffffff + gDPSetPrimDepth(gdl++, 0xffff, 0xffff); // 0xee000000, 0xffffffff + gDPSetDepthSource(gdl++, G_ZS_PRIM); // 0xb9000201, 0x00000004 + gDPSetRenderMode(gdl++, G_RM_VISCVG, G_RM_VISCVG2); // 0xb900031d, 0x0fa54040 + gDPFillRectangle(gdl++, 0, 0, viGetX() - 1, viGetY() - 1); + } + + gdl = debmenuDraw(gdl); + + if (get_memusage_display_flag()) + { + gdl = speedGraphDisplay(gdl); + } + + if (g_DebugFeatureFlag) + { + display_debug_menu_text_onscreen(); + gdl = print_debug_mcm_to_stdout(gdl); + } + + gDPFullSync(gdl++); // 0xe9000000, 0x00000000 + gSPEndDisplayList(gdl++); // 0xb8000000, 0x00000000 + + if (g_ShowMemUseFlag) + { + nulled_mempLoopAllMemBanks(); + memaDumpPrePostMerge(); + dynRemovedFunc(gdl); + nullsub_41(0); + g_ShowMemUseFlag = 0; + } + + if (g_ShowMemBarsFlag) + { + dynDrawMembars(gdl); + } + + freeGfx = dynGetFreeGfx2(gdl); + dynSwapBuffers(); + video_related_8(); + + if ((get_debug_taskgrab_val()) + && (joyGetButtonsPressedThisFrame(0, (A_BUTTON | B_BUTTON))) + && (joyGetButtons(0, (A_BUTTON | B_BUTTON)) == (A_BUTTON | B_BUTTON))) + { + static s32 taskgrab_ramdump_num = 1; + u8 taskGrabBuffer[28]; + s32 taskGrabFileSize; + + while (1) + { + s32 unusedSprintf = sprintf(taskGrabBuffer, "u64.taskgrab.%d.core", taskgrab_ramdump_num); + + if (check_file_found_on_indy(taskGrabBuffer, &taskGrabFileSize) != NULL) + { + taskgrab_ramdump_num++; + continue; + } + + break; + } + + indy_send_capture_data(taskGrabBuffer, (u8*)0x80000000, 0x400000); + } + + rsparg = (s32)(&localD_80024304); + load_rsp_microcode(firstGdl, gdl, 0, (s32*)rsparg); + + pendingGfx++; + memaIterateAndMerge(); + toggleFlag ^= 1; + speedGraphVideoRelated_3(0x10000); + } + } + } + break; + + case (OS_SC_DONE_MSG): + pendingGfx--; + break; + + case 5: + pendingGfx = 4U; + break; + } + } + + unload_stage_text_data(); + stop_demo_playback(); + mempNullNextEntryInBank(4); + obBlankResourcesLoadedInBank(4); + + g_StageNum = g_MainStageNum; + g_MainStageNum = LEVELID_NONE; + } + + // if(gdl) also works here. + if (!gdl) + // removed ... or ido? + ; + + sub_GAME_7F0D1A7C(); +} + /** - * 7530 70006930 + * 7530 70006930 * run title [0x5A->loaded stage#]; fry AT * redirect to 70006950: A0=0x5A */ -void run_title_stage(void) { - set_loaded_stage(LEVELID_TITLE); +void bossRunTitleStage(void) { + bossSetLoadedStage(LEVELID_TITLE); } /** - * 7550 70006950 + * 7550 70006950 * A0->loaded stage# [800242FC]; fry AT * 0x5A jumps to folder select * 0x5B * 0x63 */ -void set_loaded_stage(LEVELID stage){ - loadedstage = stage; +void bossSetLoadedStage(LEVELID stage){ + g_MainStageNum = stage; } /** - * 755C 7000695C + * 755C 7000695C * V0= stage# [800241A8] */ -LEVELID get_stage_num(){ - return current_stage_num; +LEVELID bossGetStageNum() { + return g_StageNum; } /** - * 7568 70006968 + * 7568 70006968 * return to title screen from stage */ void return_to_title_from_level_end(void) { @@ -1290,26 +654,25 @@ void return_to_title_from_level_end(void) { display_objective_status_text_on_status_change(); FUN_7f057a40(); #endif - if ((get_stage_num() != LEVELID_CUBA) && (check_objectives_complete() != 0x0)) { + if ((bossGetStageNum() != LEVELID_CUBA) && (check_objectives_complete() != 0x0)) { end_of_mission_briefing(); } - run_title_stage(); + bossRunTitleStage(); } /** - * 75B4 700069B4 + * 75B4 700069B4 * V0=state of debug menu (1:on; 0:off) [80024300] */ -s32 get_debug_parse_flag(void) { - return debug_feature_flag; +s32 bossGetDebugParseFlag(void) { + return g_DebugFeatureFlag; } /** - * 75C0 700069C0 + * 75C0 700069C0 * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 */ void bossInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&boss_c_ptr_debug_notice_list_entry, "boss_c_debug"); + debTryAdd(&g_BossDebugNoticeEntry, "boss_c_debug"); } - diff --git a/src/boss.h b/src/boss.h index 25e54a5..3362b91 100644 --- a/src/boss.h +++ b/src/boss.h @@ -9,7 +9,11 @@ struct memallocstring void *string; }; -void set_loaded_stage(LEVELID stage); +LEVELID bossGetStageNum(); +void bossSetLoadedStage(LEVELID stage); void bossInitDebugNoticeList(void); +void bossEnableShowMemUseFlag(void); +void bossMemBarsFlagToggle(void); +void bossRunTitleStage(void); #endif diff --git a/src/deb.c b/src/deb.c index 7b76e9f..bfe62b9 100644 --- a/src/deb.c +++ b/src/deb.c @@ -2,277 +2,87 @@ #include "bondgame.h" #include "ramrom.h" #include "deb.h" +#include "str.h" +#include "memp.h" -/** - * @file deb.c - * This file contains debug related code. - * - * In particular, it seems to handle debug_notice_list - */ - -/* bss */ -extern char dword_CODE_bss_80060890[0x400]; - - - -/* data */ -u32 D_800232E0[] = {0, 0}; -u32 debug_notice_list[] = {0, 0, 0, 0}; -char * debug_notice_list_data = &dword_CODE_bss_80060890; - - - - - -/** - * 5920 70004D20 - * V0=p->match in debug.notice.list [800232E8] or NULL if not found - * accepts: A0=p->name, A1=p->data - */ -#ifdef NONMATCHING -void *debCheckIfDNLEntryExists(s32 arg0) +struct deblistentry { - void *temp_s0; - void *phi_s0; + struct deblistentry *next; + u32 data; + const char *name; + s32 unused; +}; - phi_s0 = debug_notice_list; - if (debug_notice_list != 0) - { -loop_1: - if (something_with_strings_0(phi_s0->unk8, arg0) == 0) - { - return phi_s0; - } - temp_s0 = phi_s0->unk0; - phi_s0 = temp_s0; - if (temp_s0 != 0) - { - goto loop_1; +u8 g_DebBuffer[0x400]; +u32 g_DebDebugData[] = {0, 0}; +struct deblistentry *g_DebList = NULL; +s32 D_800232EC[] = {0, 0, 0}; +u8 *g_DebMemPos = g_DebBuffer; + +struct deblistentry *debFind(const char *name) +{ + struct deblistentry *entry = g_DebList; + while (entry != NULL) { + if (strcmp(entry->name, name) == 0) { + return entry; } + entry = entry->next; } return NULL; } -#else -GLOBAL_ASM( -.text -glabel debCheckIfDNLEntryExists -/* 005920 70004D20 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 005924 70004D24 AFB00014 */ sw $s0, 0x14($sp) -/* 005928 70004D28 3C108002 */ lui $s0, %hi(debug_notice_list) -/* 00592C 70004D2C 8E1032E8 */ lw $s0, %lo(debug_notice_list)($s0) -/* 005930 70004D30 AFB10018 */ sw $s1, 0x18($sp) -/* 005934 70004D34 00808825 */ move $s1, $a0 -/* 005938 70004D38 1200000B */ beqz $s0, .L70004D68 -/* 00593C 70004D3C AFBF001C */ sw $ra, 0x1c($sp) -/* 005940 70004D40 8E040008 */ lw $a0, 8($s0) -.L70004D44: -/* 005944 70004D44 0C002A13 */ jal something_with_strings_0 -/* 005948 70004D48 02202825 */ move $a1, $s1 -/* 00594C 70004D4C 54400004 */ bnezl $v0, .L70004D60 -/* 005950 70004D50 8E100000 */ lw $s0, ($s0) -/* 005954 70004D54 10000005 */ b .L70004D6C -/* 005958 70004D58 02001025 */ move $v0, $s0 -/* 00595C 70004D5C 8E100000 */ lw $s0, ($s0) -.L70004D60: -/* 005960 70004D60 5600FFF8 */ bnezl $s0, .L70004D44 -/* 005964 70004D64 8E040008 */ lw $a0, 8($s0) -.L70004D68: -/* 005968 70004D68 00001025 */ move $v0, $zero -.L70004D6C: -/* 00596C 70004D6C 8FBF001C */ lw $ra, 0x1c($sp) -/* 005970 70004D70 8FB00014 */ lw $s0, 0x14($sp) -/* 005974 70004D74 8FB10018 */ lw $s1, 0x18($sp) -/* 005978 70004D78 03E00008 */ jr $ra -/* 00597C 70004D7C 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif -/** - * 5980 70004D80 - * V0=p->entry of size A0 allocated in debug.notice.list; entry allocated in block 6 on failure - * accepts: A0=size - */ -#ifdef NONMATCHING -u32 debAllocateDNLEntry(s32 arg0) -{ - u32 temp_v0; - - temp_v0 = (debug_notice_list_data + arg0); - if (&tlbthread >= temp_v0) - { - debug_notice_list_data = temp_v0; - return debug_notice_list_data; +u8 *debAllocate(s32 size) { + u8 **pos = &g_DebMemPos; + u8 *curr = *pos; + u8 *prev = curr; + curr += size; + if (curr > (g_DebBuffer + 0x400)) { + curr -= size; + *pos = curr; + return mempAllocBytesInBank(size, 6); + } else { + *pos = curr; } - debug_notice_list_data = (u32) (temp_v0 - arg0); - return mempAllocBytesInBank(6); + return prev; } -#else -GLOBAL_ASM( -.text -glabel debAllocateDNLEntry -/* 005980 70004D80 3C028002 */ lui $v0, %hi(debug_notice_list_data) -/* 005984 70004D84 8C4232F8 */ lw $v0, %lo(debug_notice_list_data)($v0) -/* 005988 70004D88 3C0E8006 */ lui $t6, %hi(tlbthread) -/* 00598C 70004D8C 25CE0C90 */ addiu $t6, %lo(tlbthread) # addiu $t6, $t6, 0xc90 -/* 005990 70004D90 00401825 */ move $v1, $v0 -/* 005994 70004D94 00441021 */ addu $v0, $v0, $a0 -/* 005998 70004D98 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00599C 70004D9C 01C2082B */ sltu $at, $t6, $v0 -/* 0059A0 70004DA0 10200008 */ beqz $at, .L70004DC4 -/* 0059A4 70004DA4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0059A8 70004DA8 00441023 */ subu $v0, $v0, $a0 -/* 0059AC 70004DAC 3C018002 */ lui $at, %hi(debug_notice_list_data) -/* 0059B0 70004DB0 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) -/* 0059B4 70004DB4 0C0025C8 */ jal mempAllocBytesInBank -/* 0059B8 70004DB8 24050006 */ li $a1, 6 -/* 0059BC 70004DBC 10000005 */ b .L70004DD4 -/* 0059C0 70004DC0 8FBF0014 */ lw $ra, 0x14($sp) -.L70004DC4: -/* 0059C4 70004DC4 3C018002 */ lui $at, %hi(debug_notice_list_data) -/* 0059C8 70004DC8 AC2232F8 */ sw $v0, %lo(debug_notice_list_data)($at) -/* 0059CC 70004DCC 00601025 */ move $v0, $v1 -/* 0059D0 70004DD0 8FBF0014 */ lw $ra, 0x14($sp) -.L70004DD4: -/* 0059D4 70004DD4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0059D8 70004DD8 03E00008 */ jr $ra -/* 0059DC 70004DDC 00000000 */ nop -) -#endif - - - -/** - * 59E0 70004DE0 - * V0=p->new entry added in debug.notice.list - * accepts: A0=p->name, A1=p->data - */ -#ifdef NONMATCHING -void debAllocateAndAddDNLEntry(s32 arg0, s32 arg1) -{ - ? temp_ret; - - temp_ret = debAllocateDNLEntry(0x10); - *temp_ret = (s32) debug_notice_list; - temp_ret->unk4 = arg1; - temp_ret->unk8 = arg0; - debug_notice_list = temp_ret; +void debAdd(const char *name, u32 data) { + struct deblistentry *entry = debAllocate(sizeof(struct deblistentry)); + entry->next = g_DebList; + entry->data = data; + entry->name = name; + g_DebList = entry; } -#else -GLOBAL_ASM( -.text -glabel debAllocateAndAddDNLEntry -/* 0059E0 70004DE0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0059E4 70004DE4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0059E8 70004DE8 AFA40018 */ sw $a0, 0x18($sp) -/* 0059EC 70004DEC AFA5001C */ sw $a1, 0x1c($sp) -/* 0059F0 70004DF0 0C001360 */ jal debAllocateDNLEntry -/* 0059F4 70004DF4 24040010 */ li $a0, 16 -/* 0059F8 70004DF8 3C038002 */ lui $v1, %hi(debug_notice_list) -/* 0059FC 70004DFC 246332E8 */ addiu $v1, %lo(debug_notice_list) # addiu $v1, $v1, 0x32e8 -/* 005A00 70004E00 8C6E0000 */ lw $t6, ($v1) -/* 005A04 70004E04 AC4E0000 */ sw $t6, ($v0) -/* 005A08 70004E08 8FAF001C */ lw $t7, 0x1c($sp) -/* 005A0C 70004E0C AC4F0004 */ sw $t7, 4($v0) -/* 005A10 70004E10 8FB80018 */ lw $t8, 0x18($sp) -/* 005A14 70004E14 AC580008 */ sw $t8, 8($v0) -/* 005A18 70004E18 8FBF0014 */ lw $ra, 0x14($sp) -/* 005A1C 70004E1C AC620000 */ sw $v0, ($v1) -/* 005A20 70004E20 27BD0018 */ addiu $sp, $sp, 0x18 -/* 005A24 70004E24 03E00008 */ jr $ra -/* 005A28 70004E28 00000000 */ nop -) -#endif - - - -/** - * 5A2C 70004E2C - * V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0 - */ -void debInitDebugNoticeList(void) -{ - debCheckAddDebugNoticeListEntry(&D_800232E0, "deb_c_debug"); +void debInit(void) { + debTryAdd(&g_DebDebugData, "deb_c_debug"); init_tlb(); } - -/** - * 5A60 70004E60 - * V0=p->debug.notice.list entry for name A1 and data A0; generates if not found - * accepts: A0=p->data, A1=p->name - */ -void debCheckAddDebugNoticeListEntry(void* data, char * string) -{ - if (debCheckIfDNLEntryExists(string) == 0) - { - debAllocateAndAddDNLEntry(string, data); +void debTryAdd(void* data, const char *name) { + if (debFind(name) == NULL) { + debAdd(name, data); } } - - -/** - * 5A98 70004E98 - * V0=0; scan debug.notice.list until a NULL pointer - * likely this would have executed some function for each entry... - */ -#ifdef NONMATCHING -void *debScanDNLEntries_NEUTERED(void) -{ - void *temp_v0; - void *phi_v0; - - phi_v0 = debug_notice_list; - if (debug_notice_list != 0) - { -loop_1: - temp_v0 = *phi_v0; - phi_v0 = temp_v0; - if (temp_v0 != 0) - { - goto loop_1; - } +void deb70004E98(void) { + struct deblistentry *entry = g_DebList; + while (entry != NULL) { + // Removed + entry = entry->next; } - return debug_notice_list; -} -#else -GLOBAL_ASM( -.text -glabel debScanDNLEntries_NEUTERED -/* 005A98 70004E98 3C028002 */ lui $v0, %hi(debug_notice_list) -/* 005A9C 70004E9C 8C4232E8 */ lw $v0, %lo(debug_notice_list)($v0) -/* 005AA0 70004EA0 10400004 */ beqz $v0, .L70004EB4 -/* 005AA4 70004EA4 00000000 */ nop -/* 005AA8 70004EA8 8C420000 */ lw $v0, ($v0) -.L70004EAC: -/* 005AAC 70004EAC 5440FFFF */ bnezl $v0, .L70004EAC -/* 005AB0 70004EB0 8C420000 */ lw $v0, ($v0) -.L70004EB4: -/* 005AB4 70004EB4 03E00008 */ jr $ra -/* 005AB8 70004EB8 00000000 */ nop -) -#endif - - - -/** - * 5ABC 70004EBC - * unconditional return - */ -void debRemoved70004EBC(void) -{ - return; } /** - * 5AC4 70004EC4 - * A0->SP+0, A1->SP+4, A2->SP+8 + * Removed */ -void debRemoved70004EC4(s32 arg0, s32 arg1, s32 arg2) -{ - return; +void deb70004EBC(void) { + // Removed } - +/** + * Removed + */ +void deb70004EC4(s32 arg0, s32 arg1, s32 arg2) { + // Removed +} diff --git a/src/deb.h b/src/deb.h index 9075851..75fb8b0 100644 --- a/src/deb.h +++ b/src/deb.h @@ -3,7 +3,7 @@ #include "ultra64.h" -void debInitDebugNoticeList(void); -void debCheckAddDebugNoticeListEntry(void *arg0, char *string); +void debInit(void); +void debTryAdd(void *data, const char *name); #endif diff --git a/src/deb_print.c b/src/deb_print.c index 4a9b493..05e131e 100644 --- a/src/deb_print.c +++ b/src/deb_print.c @@ -1,698 +1,269 @@ #include "ultra64.h" #include "deb_print.h" #include "bondgame.h" +#include "video.h" +#include "PR/R4300.h" -/** - * @file deb_print.c - * This file contains the stderr manager. - */ - -//im just padding +// Padding u32 D_80023300 = 0; - -struct debug_processor_error_entry debug_processor_error_table[] = { -{0x80000000, 0x80000000, "BD"}, -{0x8000, 0x8000, "IP8"}, -{0x4000, 0x4000, "IP7"}, -{0x2000, 0x2000, "IP6"}, -{0x1000, 0x1000, "IP5"}, -{0x800, 0x800, "IP4"}, -{0x400, 0x400, "IP3"}, -{0x200, 0x200, "IP2"}, -{0x100, 0x100, "IP1"}, -{0x7C, 0, "Int"}, -{0x7C, 4, "TLBmod"}, -{0x7C, 8, "TLBload"}, -{0x7C, 0xC, "TLBstore"}, -{0x7C, 0x10, "Address error on load or instruction fetch"}, -{0x7C, 0x14, "Address error on store"}, -{0x7C, 0x18, "Bus error exception on instruction fetch"}, -{0x7C, 0x1C, "Bus error exception on data reference"}, -{0x7C, 0x20, "Syscall"}, -{0x7C, 0x24, "Brk"}, -{0x7C, 0x28, "Reserved instruction"}, -{0x7C, 0x2C, "Cop unusable"}, -{0x7C, 0x30, "Overflow"}, -{0x7C, 0x34, "Trap"}, -{0x7C, 0x38, "Virtual coherency exception on intruction fetch"}, -{0x7C, 0x3C, "Fp exception"}, -{0x7C, 0x5C, "Watchpoint"}, -{0x7C, 0x7C, "Virtual coherency exception on data reference"}, -{0, 0, ""}, -{0x80000000, 0x80000000, "CU3"}, -{0x40000000, 0x40000000, "CU2"}, -{0x20000000, 0x20000000, "CU1"}, -{0x10000000, 0x10000000, "CU0"}, -{0x8000000, 0x8000000, "RP"}, -{0x4000000, 0x4000000, "FR"}, -{0x2000000, 0x2000000, "RE"}, -{0x400000, 0x400000, "BEV"}, -{0x200000, 0x200000, "TS"}, -{0x100000, 0x100000, "SR"}, -{0x40000, 0x40000, "CH"}, -{0x20000, 0x20000, "CE"}, -{0x10000, 0x10000, "DE"}, -{0x8000, 0x8000, "IM8"}, -{0x4000, 0x4000, "IM7"}, -{0x2000, 0x2000, "IM6"}, -{0x1000, 0x1000, "IM5"}, -{0x800, 0x800, "IM4"}, -{0x400, 0x400, "IM3"}, -{0x200, 0x200, "IM2"}, -{0x100, 0x100, "IM1"}, -{0x80, 0x80, "KX"}, -{0x40, 0x40, "SX"}, -{0x20, 0x20, "UX"}, -{0x18, 0x10, "USR"}, -{0x18, 8, "SUP"}, -{0x18, 0, "KER"}, -{4, 4, "ERL"}, -{2, 2, "EXL"}, -{1, 1, "IE"}, -{0, 0, ""}, -{0x1000000, 0x1000000, "FS"}, -{0x800000, 0x800000, "C"}, -{0x20000, 0x20000, "Unimplemented"}, -{0x10000, 0x10000, "Invalid op"}, -{0x8000, 0x8000, "/ by 0.0"}, -{0x4000, 0x4000, "Overflow"}, -{0x2000, 0x2000, "Underflow"}, -{0x1000, 0x1000, "Inexact op"}, -{0x800, 0x800, "EV"}, -{0x400, 0x400, "EZ"}, -{0x200, 0x200, "EO"}, -{0x100, 0x100, "EU"}, -{0x80, 0x80, "EI"}, -{0x40, 0x40, "FV"}, -{0x20, 0x20, "FZ"}, -{0x10, 0x10, "FO"}, -{8, 8, "FU"}, -{4, 4, "FI"}, -{3, 0, "RN"}, -{3, 1, "RZ"}, -{3, 2, "RP"}, -{3, 3, "RM"}, -{0, 0, ""} }; - -void *stack_ptrs_1[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; -void *stack_ptrs_2[] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; -void *stack_ptrs_3[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; - -char stderr_buffer[2280] = {0x0}; - - -//split more here likely -u32 std_error_font_bitcode[] = { -0x00000000, 0x22220200, 0x55000000, 0x5F5F500, 0x27427200, -0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, -0x06F6F600, 0x272000, 0x240, 0x70000, 0x200, -0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, -0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, -0x25531600, 0x200200, 0x200640, 0x1242100, 0x707000, - 0x4212400, 0x7120200, 0x25FF5700, 0x2557D00, 0x6575E00, - 0x7445300, 0x7555600, 0x7565700, 0x7564400, 0x7C95700, - 0x5575500, 0x7222700, 0x3111600, 0x5665500, 0x4445F00, - 0xDFF9D00, 0xF777D00, 0x7DD5700, 0x7564600, 0x7995770, - 0x7565500, 0x7461E00, 0x7222200, 0xD999600, 0xD552200, - 0xDF77500, 0xD625500, 0x5622600, 0x7125700, 0x32222230, -0x44222110, 0x62222260, 0x25000000, 0x700, 0x42200000, - 0x67D700, 0x44755700, 0x788600, 0x117DD700, 0x6FC700, -0x32722700, 0x7DD730, 0x44755500, 0x2622700, 0x2711130, -0x44766500, 0x62222700, 0xFFFF00, 0x755D00, 0x6DD600, - 0x755740, 0x799710, 0x744600, 0x775700, 0x2722300, - 0x555700, 0x552200, 0x577500, 0x562500, 0x552220, - 0x703700, 0x12242210, 0x2222220, 0x42212240, 0x5A0000 }; - -void *ptr_videobuffer1 = 0; -void *ptr_videobuffer2 = 0; - -u32 padding_80024184[4] = {0}; - - - - -/** - * 6230 70005630 - * write char A2 to (A0,A1) in stderr - * accepts: A0=xpos, A1=ypos, A2=char +//The following regDesc's are similar to PR/Tools/Gload/Server.c +/* + * Cause Register */ -#ifdef NONMATCHING -void write_char_to_pos_stderr(int xpos,int ypos,u8 letter) { - if ((letter == 9) || (letter == 10)) { - letter = 0; - } - if ((letter <= 0 || letter >= 0x20) && letter >= 0x7f) { - letter = 0x3f; - } - if ((0 < xpos && xpos < 0x48) && (0 < ypos && ypos < 0x20)) { - stderr_buffer[ypos * 0x47 + xpos] = letter; - } - return; -} -#else -GLOBAL_ASM( -.text -glabel write_char_to_pos_stderr -/* 006230 70005630 30CE00FF */ andi $t6, $a2, 0xff -/* 006234 70005634 AFA60008 */ sw $a2, 8($sp) -/* 006238 70005638 24010009 */ li $at, 9 -/* 00623C 7000563C 01C03025 */ move $a2, $t6 -/* 006240 70005640 11C10004 */ beq $t6, $at, .L70005654 -/* 006244 70005644 01C01025 */ move $v0, $t6 -/* 006248 70005648 2401000A */ li $at, 10 -/* 00624C 7000564C 15C10003 */ bne $t6, $at, .L7000565C -/* 006250 70005650 00000000 */ nop -.L70005654: -/* 006254 70005654 00003025 */ move $a2, $zero -/* 006258 70005658 00001025 */ move $v0, $zero -.L7000565C: -/* 00625C 7000565C 18400002 */ blez $v0, .L70005668 -/* 006260 70005660 28410020 */ slti $at, $v0, 0x20 -/* 006264 70005664 14200003 */ bnez $at, .L70005674 -.L70005668: -/* 006268 70005668 2841007F */ slti $at, $v0, 0x7f -/* 00626C 7000566C 14200002 */ bnez $at, .L70005678 -/* 006270 70005670 00000000 */ nop -.L70005674: -/* 006274 70005674 2406003F */ li $a2, 63 -.L70005678: -/* 006278 70005678 0480000E */ bltz $a0, .L700056B4 -/* 00627C 7000567C 28810048 */ slti $at, $a0, 0x48 -/* 006280 70005680 1020000C */ beqz $at, .L700056B4 -/* 006284 70005684 00000000 */ nop -/* 006288 70005688 04A0000A */ bltz $a1, .L700056B4 -/* 00628C 7000568C 28A10020 */ slti $at, $a1, 0x20 -/* 006290 70005690 10200008 */ beqz $at, .L700056B4 -/* 006294 70005694 000578C0 */ sll $t7, $a1, 3 -/* 006298 70005698 01E57821 */ addu $t7, $t7, $a1 -/* 00629C 7000569C 000F78C0 */ sll $t7, $t7, 3 -/* 0062A0 700056A0 01E57823 */ subu $t7, $t7, $a1 -/* 0062A4 700056A4 01E4C021 */ addu $t8, $t7, $a0 -/* 0062A8 700056A8 3C018002 */ lui $at, %hi(stderr_buffer) -/* 0062AC 700056AC 00380821 */ addu $at, $at, $t8 -/* 0062B0 700056B0 A0263718 */ sb $a2, %lo(stderr_buffer)($at) -.L700056B4: -/* 0062B4 700056B4 03E00008 */ jr $ra -/* 0062B8 700056B8 00000000 */ nop -) -#endif +static regDesc_t causeDesc[] = { + {CAUSE_BD, CAUSE_BD, "BD"}, + /* Interrupt pending bits */ + {CAUSE_IP8, CAUSE_IP8, "IP8"}, + {CAUSE_IP7, CAUSE_IP7, "IP7"}, + {CAUSE_IP6, CAUSE_IP6, "IP6"}, + {CAUSE_IP5, CAUSE_IP5, "IP5"}, + {CAUSE_IP4, CAUSE_IP4, "IP4"}, + {CAUSE_IP3, CAUSE_IP3, "IP3"}, + {CAUSE_SW2, CAUSE_SW2, "IP2"}, + {CAUSE_SW1, CAUSE_SW1, "IP1"}, + /* Hardware exception codes */ + {CAUSE_EXCMASK, EXC_INT, "Int"}, + {CAUSE_EXCMASK, EXC_MOD, "TLBmod"}, + {CAUSE_EXCMASK, EXC_RMISS, "TLBload"}, + {CAUSE_EXCMASK, EXC_WMISS, "TLBstore"}, + {CAUSE_EXCMASK, EXC_RADE, "Address error on load or instruction fetch"}, + {CAUSE_EXCMASK, EXC_WADE, "Address error on store"}, + {CAUSE_EXCMASK, EXC_IBE, "Bus error exception on instruction fetch"}, + {CAUSE_EXCMASK, EXC_DBE, "Bus error exception on data reference"}, + {CAUSE_EXCMASK, EXC_SYSCALL, "Syscall"}, + {CAUSE_EXCMASK, EXC_BREAK, "Brk"}, + {CAUSE_EXCMASK, EXC_II, "Reserved instruction"}, + {CAUSE_EXCMASK, EXC_CPU, "Cop unusable"}, + {CAUSE_EXCMASK, EXC_OV, "Overflow"}, + {CAUSE_EXCMASK, EXC_TRAP, "Trap"}, + {CAUSE_EXCMASK, + EXC_VCEI, + "Virtual coherency exception on intruction fetch"}, + {CAUSE_EXCMASK, EXC_FPE, "Fp exception"}, + {CAUSE_EXCMASK, EXC_WATCH, "Watchpoint"}, + {CAUSE_EXCMASK, EXC_VCED, "Virtual coherency exception on data reference"}, + {0, 0, ""}, +}; - - - -/** - * 62BC 700056BC - * write char A0 to stderr - * accepts: A0=char +/* + * Status register */ -#ifdef NONMATCHING -void __osRdbSend(void) { +static regDesc_t srDesc[] = { + {SR_CU3, SR_CU3, "CU3"}, + {SR_CU2, SR_CU2, "CU2"}, + {SR_CU1, SR_CU1, "CU1"}, + {SR_CU0, SR_CU0, "CU0"}, + {SR_RP, SR_RP, "RP"}, + {SR_FR, SR_FR, "FR"}, + {SR_RE, SR_RE, "RE"}, + {SR_BEV, SR_BEV, "BEV"}, + {SR_TS, SR_TS, "TS"}, + {SR_SR, SR_SR, "SR"}, + {SR_CH, SR_CH, "CH"}, + {SR_CE, SR_CE, "CE"}, + {SR_DE, SR_DE, "DE"}, -} -#else -GLOBAL_ASM( -.text -glabel __osRdbSend -/* 0062BC 700056BC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0062C0 700056C0 308600FF */ andi $a2, $a0, 0xff -/* 0062C4 700056C4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0062C8 700056C8 AFB00018 */ sw $s0, 0x18($sp) -/* 0062CC 700056CC AFA40028 */ sw $a0, 0x28($sp) -/* 0062D0 700056D0 10C00039 */ beqz $a2, .L700057B8 -/* 0062D4 700056D4 00C01025 */ move $v0, $a2 -/* 0062D8 700056D8 24010009 */ li $at, 9 -/* 0062DC 700056DC 14C1000A */ bne $a2, $at, .L70005708 -/* 0062E0 700056E0 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) -/* 0062E4 700056E4 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 -.L700056E8: -/* 0062E8 700056E8 0C0015AF */ jal __osRdbSend -/* 0062EC 700056EC 24040020 */ li $a0, 32 -/* 0062F0 700056F0 8E0E0000 */ lw $t6, ($s0) -/* 0062F4 700056F4 31CF0007 */ andi $t7, $t6, 7 -/* 0062F8 700056F8 15E0FFFB */ bnez $t7, .L700056E8 -/* 0062FC 700056FC 00000000 */ nop -/* 006300 70005700 1000002E */ b .L700057BC -/* 006304 70005704 8FBF001C */ lw $ra, 0x1c($sp) -.L70005708: -/* 006308 70005708 2401000A */ li $at, 10 -/* 00630C 7000570C 14410008 */ bne $v0, $at, .L70005730 -/* 006310 70005710 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) -/* 006314 70005714 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc -/* 006318 70005718 8C780000 */ lw $t8, ($v1) -/* 00631C 7000571C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) -/* 006320 70005720 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 -/* 006324 70005724 27190001 */ addiu $t9, $t8, 1 -/* 006328 70005728 AC790000 */ sw $t9, ($v1) -/* 00632C 7000572C AE000000 */ sw $zero, ($s0) -.L70005730: -/* 006330 70005730 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) -/* 006334 70005734 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc -/* 006338 70005738 8C650000 */ lw $a1, ($v1) -/* 00633C 7000573C 3C108002 */ lui $s0, %hi(stderr_buffer + 0x8E0) -/* 006340 70005740 26103FF8 */ addiu $s0, %lo(stderr_buffer + 0x8E0) # addiu $s0, $s0, 0x3ff8 -/* 006344 70005744 28A1001F */ slti $at, $a1, 0x1f -/* 006348 70005748 1420000A */ bnez $at, .L70005774 -/* 00634C 7000574C 24A4FFE2 */ addiu $a0, $a1, -0x1e -/* 006350 70005750 AFA20024 */ sw $v0, 0x24($sp) -/* 006354 70005754 0C0015F3 */ jal scroll_stderr_oneline -/* 006358 70005758 A3A6002B */ sb $a2, 0x2b($sp) -/* 00635C 7000575C 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) -/* 006360 70005760 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc -/* 006364 70005764 2408001E */ li $t0, 30 -/* 006368 70005768 8FA20024 */ lw $v0, 0x24($sp) -/* 00636C 7000576C 93A6002B */ lbu $a2, 0x2b($sp) -/* 006370 70005770 AC680000 */ sw $t0, ($v1) -.L70005774: -/* 006374 70005774 2401000A */ li $at, 10 -/* 006378 70005778 50410010 */ beql $v0, $at, .L700057BC -/* 00637C 7000577C 8FBF001C */ lw $ra, 0x1c($sp) -/* 006380 70005780 8E040000 */ lw $a0, ($s0) -/* 006384 70005784 0C00158C */ jal write_char_to_pos_stderr -/* 006388 70005788 8C650000 */ lw $a1, ($v1) -/* 00638C 7000578C 8E090000 */ lw $t1, ($s0) -/* 006390 70005790 3C038002 */ lui $v1, %hi(stderr_buffer + 0x8E4) -/* 006394 70005794 24633FFC */ addiu $v1, %lo(stderr_buffer + 0x8E4) # addiu $v1, $v1, 0x3ffc -/* 006398 70005798 252A0001 */ addiu $t2, $t1, 1 -/* 00639C 7000579C 29410047 */ slti $at, $t2, 0x47 -/* 0063A0 700057A0 14200005 */ bnez $at, .L700057B8 -/* 0063A4 700057A4 AE0A0000 */ sw $t2, ($s0) -/* 0063A8 700057A8 8C6C0000 */ lw $t4, ($v1) -/* 0063AC 700057AC AE000000 */ sw $zero, ($s0) -/* 0063B0 700057B0 258D0001 */ addiu $t5, $t4, 1 -/* 0063B4 700057B4 AC6D0000 */ sw $t5, ($v1) -.L700057B8: -/* 0063B8 700057B8 8FBF001C */ lw $ra, 0x1c($sp) -.L700057BC: -/* 0063BC 700057BC 8FB00018 */ lw $s0, 0x18($sp) -/* 0063C0 700057C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0063C4 700057C4 03E00008 */ jr $ra -/* 0063C8 700057C8 00000000 */ nop -) -#endif + /* + * Interrupt enable bits + * (NOTE: bits set to 1 enable the corresponding level interrupt) + */ + {SR_IBIT8, SR_IBIT8, "IM8"}, + {SR_IBIT7, SR_IBIT7, "IM7"}, + {SR_IBIT6, SR_IBIT6, "IM6"}, + {SR_IBIT5, SR_IBIT5, "IM5"}, + {SR_IBIT4, SR_IBIT4, "IM4"}, + {SR_IBIT3, SR_IBIT3, "IM3"}, + {SR_IBIT2, SR_IBIT2, "IM2"}, + {SR_IBIT1, SR_IBIT1, "IM1"}, + {SR_KX, SR_KX, "KX"}, + {SR_SX, SR_SX, "SX"}, + {SR_UX, SR_UX, "UX"}, + {SR_KSU_MASK, SR_KSU_USR, "USR"}, + {SR_KSU_MASK, SR_KSU_SUP, "SUP"}, + {SR_KSU_MASK, SR_KSU_KER, "KER"}, + {SR_ERL, SR_ERL, "ERL"}, + {SR_EXL, SR_EXL, "EXL"}, + {SR_IE, SR_IE, "IE"}, + {0, 0, ""} +}; - - -/** - * 63CC 700057CC - * scroll stderr down one line - * accepts: A0=ypos +/* + * floating-point status register */ -#ifdef NONMATCHING -s32 scroll_stderr_oneline(s32 arg0) { - void *temp_a1_2; - void *temp_a1; +static regDesc_t fpcsrDesc[] = { + {FPCSR_FS, FPCSR_FS, "FS"}, + {FPCSR_C, FPCSR_C, "C"}, + {FPCSR_CE, FPCSR_CE, "Unimplemented"}, + {FPCSR_CV, FPCSR_CV, "Invalid op"}, + {FPCSR_CZ, FPCSR_CZ, "/ by 0.0"}, + {FPCSR_CO, FPCSR_CO, "Overflow"}, + {FPCSR_CU, FPCSR_CU, "Underflow"}, + {FPCSR_CI, FPCSR_CI, "Inexact op"}, + {FPCSR_EV, FPCSR_EV, "EV"}, + {FPCSR_EZ, FPCSR_EZ, "EZ"}, + {FPCSR_EO, FPCSR_EO, "EO"}, + {FPCSR_EU, FPCSR_EU, "EU"}, + {FPCSR_EI, FPCSR_EI, "EI"}, + {FPCSR_FV, FPCSR_FV, "FV"}, + {FPCSR_FZ, FPCSR_FZ, "FZ"}, + {FPCSR_FO, FPCSR_FO, "FO"}, + {FPCSR_FU, FPCSR_FU, "FU"}, + {FPCSR_FI, FPCSR_FI, "FI"}, + {FPCSR_RM_MASK, FPCSR_RM_RN, "RN"}, + {FPCSR_RM_MASK, FPCSR_RM_RZ, "RZ"}, + {FPCSR_RM_MASK, FPCSR_RM_RP, "RP"}, + {FPCSR_RM_MASK, FPCSR_RM_RM, "RM"}, + {0, 0, ""} +}; - // Node 0 - if (0 < arg0) - { - // Node 1 - // Node 2 - // Node 3 - temp_a1_2 = (&stderr_buffer + 3); - stderr_buffer = (s8) stderr_buffer.unk47; - stderr_buffer.unk1 = (s8) stderr_buffer.unk48; - stderr_buffer.unk2 = (s8) stderr_buffer.unk49; - // Node 4 - temp_a1 = (temp_a1_2 + 4); - temp_a1->unk-3 = (s8) temp_a1_2->unk48; - temp_a1->unk-2 = (s8) temp_a1_2->unk49; - temp_a1->unk-1 = (s8) temp_a1_2->unk4A; - temp_a1->unk-4 = (s8) temp_a1_2->unk47; - if ((3 + 4) != 0x47) - { - goto loop_4; - } - // Node 5 - if ((&stderr_buffer + 0x47) != (stderr_buffer + 0x899)) - { - goto loop_3; - } - // Node 6 - if (0 < (arg0 + -1)) - { - goto loop_2; - } +void *g_StackPtrs1[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; +void *g_StackPtrs2[] = {&sp_idle, &sp_shed, &sp_main, &sp_audi, &sp_debug}; +void *g_StackPtrs3[] = {&sp_rmon, &sp_idle, &sp_shed, &sp_main, &sp_audi}; + + + +// 71 x 32 text buffer (32th line is not drawn) +unsigned char g_DebugOutputTextBuffer[32][71] = {0}; + +static s32 g_DebugOutputCurrentPosX = 0; +static s32 g_DebugOutputCurrentPosY = 0; + +// 4 x 7 bitmaps of ascii characters (0x20 - 0x7E), each padded to 32 bits +u32 g_DebugOutputBitmaps[] = { + 0x00000000, 0x22220200, 0x55000000, 0x05F5F500, 0x27427200, // ' ', '!', '\"', '#', '$' + 0x05124500, 0x34255300, 0x22000000, 0x24444420, 0x42222240, // '%', '&', '\'', '(', ')' + 0x06F6F600, 0x00272000, 0x00000240, 0x00070000, 0x00000200, // '*', '+', '´', '-', '.' + 0x11224480, 0x25555200, 0x26222700, 0x25125700, 0x61211600, // '/', '0', '1', '2', '3' + 0x33557300, 0x64611600, 0x24655200, 0x71112200, 0x25755200, // '4', '5', '6', '7', '8' + 0x25531600, 0x00200200, 0x00200640, 0x01242100, 0x00707000, // '9', ':', ';', '<', '=' + 0x04212400, 0x07120200, 0x25FF5700, 0x02557D00, 0x06575E00, // '>', '?', '@', 'A', 'B' + 0x07445300, 0x07555600, 0x07565700, 0x07564400, 0x07C95700, // 'C', 'D', 'E', 'F', 'G' + 0x05575500, 0x07222700, 0x03111600, 0x05665500, 0x04445F00, // 'H', 'I', 'J', 'K', 'L' + 0x0DFF9D00, 0x0F777D00, 0x07DD5700, 0x07564600, 0x07995770, // 'M', 'N', 'O', 'P', 'Q' + 0x07565500, 0x07461E00, 0x07222200, 0x0D999600, 0x0D552200, // 'R', 'S', 'T', 'U', 'V' + 0x0DF77500, 0x0D625500, 0x05622600, 0x07125700, 0x32222230, // 'W', 'X', 'Y', 'Z', '[' + 0x44222110, 0x62222260, 0x25000000, 0x00000700, 0x42200000, // '\\', ']', '^', '_', '`' + 0x0067D700, 0x44755700, 0x00788600, 0x117DD700, 0x006FC700, // 'a', 'b', 'c', 'd', 'e' + 0x32722700, 0x007DD730, 0x44755500, 0x02622700, 0x02711130, // 'f', 'g', 'h', 'i', 'j', + 0x44766500, 0x62222700, 0x00FFFF00, 0x00755D00, 0x006DD600, // 'k', 'l', 'm', 'n', 'o' + 0x00755740, 0x00799710, 0x00744600, 0x00775700, 0x02722300, // 'p', 'q', 'r', 's', 't' + 0x00555700, 0x00552200, 0x00577500, 0x00562500, 0x00552220, // 'u', 'v', 'w', 'x', 'y' + 0x00703700, 0x12242210, 0x02222220, 0x42212240, 0x005A0000 // 'z', '{', '|', '}', '~' +}; + +u16 *g_DebugOutputVideoBuffer1 = NULL; +u16 *g_DebugOutputVideoBuffer2 = NULL; + +// Padding +u32 D_80024184[4] = {0}; + +void deboutWriteCharAtPos(s32 x, s32 y, unsigned char c) { + if ((c == '\t') || (c == '\n')) { + c = '\0'; } - // (possible return value: (0 < arg0)) -} -#else -GLOBAL_ASM( -.text -glabel scroll_stderr_oneline -/* 0063CC 700057CC 0004102A */ slt $v0, $zero, $a0 -/* 0063D0 700057D0 10400020 */ beqz $v0, .L70005854 -/* 0063D4 700057D4 2484FFFF */ addiu $a0, $a0, -1 -/* 0063D8 700057D8 3C088002 */ lui $t0, %hi(stderr_buffer + 0x899) -/* 0063DC 700057DC 25083FB1 */ addiu $t0, %lo(stderr_buffer + 0x899) # addiu $t0, $t0, 0x3fb1 -/* 0063E0 700057E0 24070047 */ li $a3, 71 -.L700057E4: -/* 0063E4 700057E4 3C0E8002 */ lui $t6, %hi(stderr_buffer) -/* 0063E8 700057E8 25C63718 */ addiu $a2, $t6, %lo(stderr_buffer) -/* 0063EC 700057EC 00C01825 */ move $v1, $a2 -.L700057F0: -/* 0063F0 700057F0 90CF0047 */ lbu $t7, 0x47($a2) -/* 0063F4 700057F4 90D80048 */ lbu $t8, 0x48($a2) -/* 0063F8 700057F8 90D90049 */ lbu $t9, 0x49($a2) -/* 0063FC 700057FC 24020003 */ li $v0, 3 -/* 006400 70005800 24650003 */ addiu $a1, $v1, 3 -/* 006404 70005804 A0CF0000 */ sb $t7, ($a2) -/* 006408 70005808 A0D80001 */ sb $t8, 1($a2) -/* 00640C 7000580C A0D90002 */ sb $t9, 2($a2) -.L70005810: -/* 006410 70005810 90AA0048 */ lbu $t2, 0x48($a1) -/* 006414 70005814 90AB0049 */ lbu $t3, 0x49($a1) -/* 006418 70005818 90AC004A */ lbu $t4, 0x4a($a1) -/* 00641C 7000581C 90A90047 */ lbu $t1, 0x47($a1) -/* 006420 70005820 24420004 */ addiu $v0, $v0, 4 -/* 006424 70005824 24A50004 */ addiu $a1, $a1, 4 -/* 006428 70005828 A0AAFFFD */ sb $t2, -3($a1) -/* 00642C 7000582C A0ABFFFE */ sb $t3, -2($a1) -/* 006430 70005830 A0ACFFFF */ sb $t4, -1($a1) -/* 006434 70005834 1447FFF6 */ bne $v0, $a3, .L70005810 -/* 006438 70005838 A0A9FFFC */ sb $t1, -4($a1) -/* 00643C 7000583C 24C60047 */ addiu $a2, $a2, 0x47 -/* 006440 70005840 14C8FFEB */ bne $a2, $t0, .L700057F0 -/* 006444 70005844 24630047 */ addiu $v1, $v1, 0x47 -/* 006448 70005848 0004102A */ slt $v0, $zero, $a0 -/* 00644C 7000584C 1440FFE5 */ bnez $v0, .L700057E4 -/* 006450 70005850 2484FFFF */ addiu $a0, $a0, -1 -.L70005854: -/* 006454 70005854 03E00008 */ jr $ra -/* 006458 70005858 00000000 */ nop -) -#endif - - - - -/** - * 645C 7000585C - * print char A2 to stderr screen position (A0,A1) in video buffer 1 - * accepts: A0=xpos, A1=ypos, A2=char - */ -#ifdef NONMATCHING -void print_to_vidbuff1(s32 arg0, s32 arg1, ? arg2, s32 arg6, s32 arg7, s32 arg8) { - s32 temp_at; - void *temp_a0; - void *temp_v1; - void *temp_v1_2; - void *temp_v1_3; - void *temp_v1_4; - - // Node 0 - if (arg8 == 0) - { - // Node 1 + if ((c > '\0') && (c < ' ') || (c > '~')) { + c = '?'; } - // Node 2 - temp_at = (arg8 < 0x7f); - if (temp_at == 0) - { - // Node 3 - if (temp_at != 0) - { - // Node 4 - temp_a0 = (0x80020000 + (arg8 * 4)); - temp_v1 = (((arg6 * 2) + ptr_videobuffer1) + ((arg7 * get_video2_settings_txtClipW()) * 2)); - // Node 5 - if ((temp_a0->unk3F80 & 0x80000000) != 0) - { - // Node 6 - *temp_v1 = (u16)0xffff; - } - else - { - // Node 7 - *temp_v1 = (u16)1; - } - // Node 8 - temp_v1_2 = (temp_v1 + 2); - if (((temp_a0->unk3F80 * 2) & 0x80000000) != 0) - { - // Node 9 - *temp_v1_2 = (u16)0xffff; - } - else - { - // Node 10 - *temp_v1_2 = (u16)1; - } - // Node 11 - temp_v1_3 = (temp_v1_2 + 2); - if (((temp_a0->unk3F80 * 4) & 0x80000000) != 0) - { - // Node 12 - *temp_v1_3 = (u16)0xffff; - } - else - { - // Node 13 - *temp_v1_3 = (u16)1; - } - // Node 14 - temp_v1_4 = (temp_v1_3 + 2); - if (((temp_a0->unk3F80 * 8) & 0x80000000) != 0) - { - // Node 15 - *temp_v1_4 = (u16)0xffff; - } - else - { - // Node 16 - *temp_v1_4 = (u16)1; - } - // Node 17 - if ((0 + 1) != 7) - { - goto loop_5; + if (((x >= 0) && (x <= 71)) && ((y >= 0) && (y <= 31))) { + g_DebugOutputTextBuffer[y][x] = c; + } +} + +void deboutWriteChar(unsigned char c) { + if (c != '\0') { + if (c == '\t') { + do { + deboutWriteChar(' '); + } while (g_DebugOutputCurrentPosX & 7); + + return; + } + if (c == '\n') { + g_DebugOutputCurrentPosY++; + g_DebugOutputCurrentPosX = 0; + } + if (g_DebugOutputCurrentPosY > 30) { + deboutScrollUp(g_DebugOutputCurrentPosY - 30); + g_DebugOutputCurrentPosY = 30; + } + if (c != '\n') { + deboutWriteCharAtPos(g_DebugOutputCurrentPosX, g_DebugOutputCurrentPosY, c); + g_DebugOutputCurrentPosX++; + if (g_DebugOutputCurrentPosX > 70) { + g_DebugOutputCurrentPosX = 0; + g_DebugOutputCurrentPosY++; } } } - // (possible return value: get_video2_settings_txtClipW()) } -#else -GLOBAL_ASM( -.text -glabel print_to_vidbuff1 -/* 00645C 7000585C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 006460 70005860 AFBF0014 */ sw $ra, 0x14($sp) -/* 006464 70005864 AFA40018 */ sw $a0, 0x18($sp) -/* 006468 70005868 AFA5001C */ sw $a1, 0x1c($sp) -/* 00646C 7000586C 0C001107 */ jal get_video2_settings_txtClipW -/* 006470 70005870 AFA60020 */ sw $a2, 0x20($sp) -/* 006474 70005874 93A50023 */ lbu $a1, 0x23($sp) -/* 006478 70005878 54A00003 */ bnezl $a1, .L70005888 -/* 00647C 7000587C 28A10020 */ slti $at, $a1, 0x20 -/* 006480 70005880 24050020 */ li $a1, 32 -/* 006484 70005884 28A10020 */ slti $at, $a1, 0x20 -.L70005888: -/* 006488 70005888 1420003A */ bnez $at, .L70005974 -/* 00648C 7000588C 28A1007F */ slti $at, $a1, 0x7f -/* 006490 70005890 10200038 */ beqz $at, .L70005974 -/* 006494 70005894 8FAE0018 */ lw $t6, 0x18($sp) -/* 006498 70005898 8FAB001C */ lw $t3, 0x1c($sp) -/* 00649C 7000589C 3C188002 */ lui $t8, %hi(ptr_videobuffer1) -/* 0064A0 700058A0 8F18417C */ lw $t8, %lo(ptr_videobuffer1)($t8) -/* 0064A4 700058A4 01620019 */ multu $t3, $v0 -/* 0064A8 700058A8 000E7840 */ sll $t7, $t6, 1 -/* 0064AC 700058AC 00057080 */ sll $t6, $a1, 2 -/* 0064B0 700058B0 3C048002 */ lui $a0, %hi(stderr_buffer+0x868) -/* 0064B4 700058B4 008E2021 */ addu $a0, $a0, $t6 -/* 0064B8 700058B8 01F8C821 */ addu $t9, $t7, $t8 -/* 0064BC 700058BC 8C843F80 */ lw $a0, %lo(stderr_buffer+0x868)($a0) -/* 0064C0 700058C0 3C058000 */ lui $a1, 0x8000 -/* 0064C4 700058C4 00004025 */ move $t0, $zero -/* 0064C8 700058C8 00024840 */ sll $t1, $v0, 1 -/* 0064CC 700058CC 00006012 */ mflo $t4 -/* 0064D0 700058D0 000C6840 */ sll $t5, $t4, 1 -/* 0064D4 700058D4 032D1821 */ addu $v1, $t9, $t5 -/* 0064D8 700058D8 240A0007 */ li $t2, 7 -/* 0064DC 700058DC 24070001 */ li $a3, 1 -/* 0064E0 700058E0 3406FFFF */ li $a2, 65535 -.L700058E4: -/* 0064E4 700058E4 00857824 */ and $t7, $a0, $a1 -/* 0064E8 700058E8 11E00003 */ beqz $t7, .L700058F8 -/* 0064EC 700058EC 0004C040 */ sll $t8, $a0, 1 -/* 0064F0 700058F0 10000002 */ b .L700058FC -/* 0064F4 700058F4 A4660000 */ sh $a2, ($v1) -.L700058F8: -/* 0064F8 700058F8 A4670000 */ sh $a3, ($v1) -.L700058FC: -/* 0064FC 700058FC 03055824 */ and $t3, $t8, $a1 -/* 006500 70005900 24630002 */ addiu $v1, $v1, 2 -/* 006504 70005904 11600003 */ beqz $t3, .L70005914 -/* 006508 70005908 03002025 */ move $a0, $t8 -/* 00650C 7000590C 10000002 */ b .L70005918 -/* 006510 70005910 A4660000 */ sh $a2, ($v1) -.L70005914: -/* 006514 70005914 A4670000 */ sh $a3, ($v1) -.L70005918: -/* 006518 70005918 00046040 */ sll $t4, $a0, 1 -/* 00651C 7000591C 0185C824 */ and $t9, $t4, $a1 -/* 006520 70005920 01802025 */ move $a0, $t4 -/* 006524 70005924 13200003 */ beqz $t9, .L70005934 -/* 006528 70005928 24630002 */ addiu $v1, $v1, 2 -/* 00652C 7000592C 10000002 */ b .L70005938 -/* 006530 70005930 A4660000 */ sh $a2, ($v1) -.L70005934: -/* 006534 70005934 A4670000 */ sh $a3, ($v1) -.L70005938: -/* 006538 70005938 00046840 */ sll $t5, $a0, 1 -/* 00653C 7000593C 01A57024 */ and $t6, $t5, $a1 -/* 006540 70005940 01A02025 */ move $a0, $t5 -/* 006544 70005944 11C00003 */ beqz $t6, .L70005954 -/* 006548 70005948 24630002 */ addiu $v1, $v1, 2 -/* 00654C 7000594C 10000002 */ b .L70005958 -/* 006550 70005950 A4660000 */ sh $a2, ($v1) -.L70005954: -/* 006554 70005954 A4670000 */ sh $a3, ($v1) -.L70005958: -/* 006558 70005958 24630002 */ addiu $v1, $v1, 2 -/* 00655C 7000595C 25080001 */ addiu $t0, $t0, 1 -/* 006560 70005960 00047840 */ sll $t7, $a0, 1 -/* 006564 70005964 00691821 */ addu $v1, $v1, $t1 -/* 006568 70005968 01E02025 */ move $a0, $t7 -/* 00656C 7000596C 150AFFDD */ bne $t0, $t2, .L700058E4 -/* 006570 70005970 2463FFF8 */ addiu $v1, $v1, -8 -.L70005974: -/* 006574 70005974 8FBF0014 */ lw $ra, 0x14($sp) -/* 006578 70005978 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00657C 7000597C 03E00008 */ jr $ra -/* 006580 70005980 00000000 */ nop -) -#endif - - - - -/** - * 6584 70005984 - * set pointers to video buffers 1 & 2 to A0 and A1, respectively - * sets values to uncached addresses - * A0 | A0000000 -> 8002417C - * A1 | A0000000 -> 80024180 - */ - -void set_ptr_video_buffers(s32 arg0, s32 arg1) { - ptr_videobuffer1 = (s32) (arg0 | 0xa0000000); - ptr_videobuffer2 = (s32) (arg1 | 0xa0000000); +void deboutScrollUp(s32 numlines) { + s32 y; + s32 x; + while (numlines-- > 0) { + for (y = 0; y < 31; y++) { + for (x = 0; x < 71; x++) { + g_DebugOutputTextBuffer[y][x] = g_DebugOutputTextBuffer[y + 1][x]; + } + } + } } - - - -/** - * 65A4 700059A4 - * set pointers to video buffers 1 & 2 - * calls 70005984: A0=803B5000, A1=803DA800 - */ -void set_video_buffer_pointers(void) { - set_ptr_video_buffers(&cfb_16[0], &cfb_16[1]); +void deboutDrawChar(s32 x, s32 y, unsigned char c) { + s32 bitmap_x; + s32 bitmap_y; + u32 bitmap; + s16 screen_w = viGetX(); + u16 *ptr; + if (c == '\0') { + c = ' '; + } + if ((c >= ' ') && (c <= '~')) { + ptr = (g_DebugOutputVideoBuffer1 + x + (y * screen_w)); + bitmap = g_DebugOutputBitmaps[c - ' ']; + for (bitmap_y = 0; bitmap_y < 7; bitmap_y++) { + for (bitmap_x = 0; bitmap_x < 4; bitmap_x++) { + if (bitmap & (1 << 31)) { + *ptr = GPACK_RGBA5551(255, 255, 255, 1); + } else { + *ptr = GPACK_RGBA5551(0, 0, 0, 1); + } + ptr++; + bitmap <<= 1; + } + ptr += screen_w; + ptr -= 4; + } + } } - - - - -/** - * 65D0 700059D0 - * write stderr to video buffer A0 - * accepts: A0=p->video buffer - */ -#ifdef NONMATCHING -void write_stderr_to_buffer(void) { - +void deboutSetBuffers(u16 *buffer1, u16 *buffer2) { + g_DebugOutputVideoBuffer1 = K0_TO_K1(buffer1); + g_DebugOutputVideoBuffer2 = K0_TO_K1(buffer2); +} + +void deboutInitBuffers(void) { + deboutSetBuffers(&cfb_16[0], &cfb_16[1]); +} + +void deboutDrawToBuffer(u16 *buffer) { + s32 screen_w; + s32 screen_h; + s32 output_w; + s32 output_h; + s32 x; + s32 y; + deboutInitBuffers(); + g_DebugOutputVideoBuffer1 = K0_TO_K1(buffer); + screen_w = ((viGetX() - 13) / 4); + screen_h = ((viGetY() - 10) / 7); + output_w = screen_w - 5; // - margin_w + output_h = screen_h - 1; // - margin_h + for (y = 0; ((y < output_h) && (y < 31)); y++) { + for (x = 0; ((x < output_w) && (x < 71)); x++) { + deboutDrawChar(((x + 5) * 4), ((y + 1) * 7), g_DebugOutputTextBuffer[y][x]); + } + } } -#else -GLOBAL_ASM( -.text -glabel write_stderr_to_buffer -/* 0065D0 700059D0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0065D4 700059D4 AFBF003C */ sw $ra, 0x3c($sp) -/* 0065D8 700059D8 AFB00018 */ sw $s0, 0x18($sp) -/* 0065DC 700059DC 00808025 */ move $s0, $a0 -/* 0065E0 700059E0 AFBE0038 */ sw $fp, 0x38($sp) -/* 0065E4 700059E4 AFB70034 */ sw $s7, 0x34($sp) -/* 0065E8 700059E8 AFB60030 */ sw $s6, 0x30($sp) -/* 0065EC 700059EC AFB5002C */ sw $s5, 0x2c($sp) -/* 0065F0 700059F0 AFB40028 */ sw $s4, 0x28($sp) -/* 0065F4 700059F4 AFB30024 */ sw $s3, 0x24($sp) -/* 0065F8 700059F8 AFB20020 */ sw $s2, 0x20($sp) -/* 0065FC 700059FC 0C001669 */ jal set_video_buffer_pointers -/* 006600 70005A00 AFB1001C */ sw $s1, 0x1c($sp) -/* 006604 70005A04 3C01A000 */ lui $at, 0xa000 -/* 006608 70005A08 02017025 */ or $t6, $s0, $at -/* 00660C 70005A0C 3C018002 */ lui $at, %hi(ptr_videobuffer1) -/* 006610 70005A10 0C001107 */ jal get_video2_settings_txtClipW -/* 006614 70005A14 AC2E417C */ sw $t6, %lo(ptr_videobuffer1)($at) -/* 006618 70005A18 2450FFF3 */ addiu $s0, $v0, -0xd -/* 00661C 70005A1C 06010003 */ bgez $s0, .L70005A2C -/* 006620 70005A20 00107883 */ sra $t7, $s0, 2 -/* 006624 70005A24 26010003 */ addiu $at, $s0, 3 -/* 006628 70005A28 00017883 */ sra $t7, $at, 2 -.L70005A2C: -/* 00662C 70005A2C 0C00110B */ jal get_video2_settings_txtClipH -/* 006630 70005A30 01E08025 */ move $s0, $t7 -/* 006634 70005A34 2443FFF6 */ addiu $v1, $v0, -0xa -/* 006638 70005A38 24010007 */ li $at, 7 -/* 00663C 70005A3C 0061001A */ div $zero, $v1, $at -/* 006640 70005A40 00001812 */ mflo $v1 -/* 006644 70005A44 247EFFFF */ addiu $fp, $v1, -1 -/* 006648 70005A48 1BC00023 */ blez $fp, .L70005AD8 -/* 00664C 70005A4C 0000A825 */ move $s5, $zero -/* 006650 70005A50 2616FFFB */ addiu $s6, $s0, -5 -/* 006654 70005A54 2417001F */ li $s7, 31 -/* 006658 70005A58 24140130 */ li $s4, 304 -.L70005A5C: -/* 00665C 70005A5C 1AC00018 */ blez $s6, .L70005AC0 -/* 006660 70005A60 00008080 */ sll $s0, $zero, 2 -/* 006664 70005A64 0015C8C0 */ sll $t9, $s5, 3 -/* 006668 70005A68 0335C821 */ addu $t9, $t9, $s5 -/* 00666C 70005A6C 0019C8C0 */ sll $t9, $t9, 3 -/* 006670 70005A70 001590C0 */ sll $s2, $s5, 3 -/* 006674 70005A74 3C098002 */ lui $t1, %hi(stderr_buffer) -/* 006678 70005A78 25293718 */ addiu $t1, %lo(stderr_buffer) # addiu $t1, $t1, 0x3718 -/* 00667C 70005A7C 02559023 */ subu $s2, $s2, $s5 -/* 006680 70005A80 0335C823 */ subu $t9, $t9, $s5 -/* 006684 70005A84 00169880 */ sll $s3, $s6, 2 -/* 006688 70005A88 26730014 */ addiu $s3, $s3, 0x14 -/* 00668C 70005A8C 03298821 */ addu $s1, $t9, $t1 -/* 006690 70005A90 26520007 */ addiu $s2, $s2, 7 -/* 006694 70005A94 26100014 */ addiu $s0, $s0, 0x14 -/* 006698 70005A98 02002025 */ move $a0, $s0 -.L70005A9C: -/* 00669C 70005A9C 02402825 */ move $a1, $s2 -/* 0066A0 70005AA0 0C001617 */ jal print_to_vidbuff1 -/* 0066A4 70005AA4 92260000 */ lbu $a2, ($s1) -/* 0066A8 70005AA8 26100004 */ addiu $s0, $s0, 4 -/* 0066AC 70005AAC 0213082A */ slt $at, $s0, $s3 -/* 0066B0 70005AB0 10200003 */ beqz $at, .L70005AC0 -/* 0066B4 70005AB4 26310001 */ addiu $s1, $s1, 1 -/* 0066B8 70005AB8 5614FFF8 */ bnel $s0, $s4, .L70005A9C -/* 0066BC 70005ABC 02002025 */ move $a0, $s0 -.L70005AC0: -/* 0066C0 70005AC0 26B50001 */ addiu $s5, $s5, 1 -/* 0066C4 70005AC4 02BE082A */ slt $at, $s5, $fp -/* 0066C8 70005AC8 50200004 */ beql $at, $zero, .L70005ADC -/* 0066CC 70005ACC 8FBF003C */ lw $ra, 0x3c($sp) -/* 0066D0 70005AD0 16B7FFE2 */ bne $s5, $s7, .L70005A5C -/* 0066D4 70005AD4 00000000 */ nop -.L70005AD8: -/* 0066D8 70005AD8 8FBF003C */ lw $ra, 0x3c($sp) -.L70005ADC: -/* 0066DC 70005ADC 8FB00018 */ lw $s0, 0x18($sp) -/* 0066E0 70005AE0 8FB1001C */ lw $s1, 0x1c($sp) -/* 0066E4 70005AE4 8FB20020 */ lw $s2, 0x20($sp) -/* 0066E8 70005AE8 8FB30024 */ lw $s3, 0x24($sp) -/* 0066EC 70005AEC 8FB40028 */ lw $s4, 0x28($sp) -/* 0066F0 70005AF0 8FB5002C */ lw $s5, 0x2c($sp) -/* 0066F4 70005AF4 8FB60030 */ lw $s6, 0x30($sp) -/* 0066F8 70005AF8 8FB70034 */ lw $s7, 0x34($sp) -/* 0066FC 70005AFC 8FBE0038 */ lw $fp, 0x38($sp) -/* 006700 70005B00 03E00008 */ jr $ra -/* 006704 70005B04 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif diff --git a/src/deb_print.h b/src/deb_print.h index e962b1f..d36ed11 100644 --- a/src/deb_print.h +++ b/src/deb_print.h @@ -3,21 +3,20 @@ #include "ultra64.h" -//im just padding -extern u32 D_80023300; - -struct debug_processor_error_entry +typedef struct { - u32 val1; - u32 val2; - void *string; -}; + u32 mask; + u32 value; + char *string; +} regDesc_t; -extern struct debug_processor_error_entry debug_processor_error_table[]; -extern void *stack_ptrs_1[]; -extern void *stack_ptrs_2[]; -extern void *stack_ptrs_3[]; -extern char stderr_buffer[2280]; +extern void *g_StackPtrs1[]; +extern void *g_StackPtrs2[]; +extern void *g_StackPtrs3[]; + +void deboutWriteChar(unsigned char c); +void deboutScrollUp(s32 numlines); +void deboutInitBuffers(); +void deboutDrawToBuffer(u16 *buffer); -void write_stderr_to_buffer(u32 *buffer); #endif diff --git a/src/deb_video.c b/src/deb_video.c index b9ef5e8..8c0f7fa 100644 --- a/src/deb_video.c +++ b/src/deb_video.c @@ -2,6 +2,7 @@ #include "ultra64.h" #include "bondgame.h" #include "deb_video.h" +#include "tlb_manage.h" /** * @file deb_video.c @@ -10,6 +11,13 @@ * I should probably be renamed... */ +#define IEEE_FLOAT_FRACTION_BITMASK 0x7FFFFF +#define IEEE_FLOAT_FRACTION_BIT_COUNT 23 +#define IEEE_FLOAT_EXPONENT_BITMASK 0x7F800000 +#define IEEE_FLOAT_EXPONENT_BIT_COUNT 8 +#define IEEE_FLOAT_SIGN_BITMASK 0x80000000 +#define IEEE_FLOAT_SIGN_BIT_COUNT 1 + //bss char tlbthread[0x6B0]; char tlbStack[0x2300]; @@ -27,7 +35,7 @@ char indy_read_buffer[0x60]; * 5AE0 70004EE0 */ void init_tlb(void) { - set_video_buffer_pointers(); + deboutInitBuffers(); osCreateMesgQueue(&tlbMesgQ, &tlbMesgBuf, 1); osCreateThread(&tlbthread, 5, &tlbproc, 0, &tlbStack, 0x28); osStartThread(&tlbthread); @@ -98,7 +106,7 @@ glabel tlbproc /* 005C08 70005008 16790014 */ bne $s3, $t9, .L7000505C /* 005C0C 7000500C 00000000 */ nop /* 005C10 70005010 8D08365C */ lw $t0, %lo(ptr_tlbthread_maybe)($t0) -/* 005C14 70005014 0C000676 */ jal translate_load_rom_from_TLBaddress +/* 005C14 70005014 0C000676 */ jal tlbmanageTranslateLoadRomFromTlbAddress /* 005C18 70005018 8D040124 */ lw $a0, 0x124($t0) /* 005C1C 7000501C 3C098006 */ lui $t1, %hi(ptr_tlbthread_maybe) /* 005C20 70005020 8D29365C */ lw $t1, %lo(ptr_tlbthread_maybe)($t1) @@ -545,16 +553,16 @@ s32 debug_sp_related_11(u32 arg0, u32 arg1) s32 temp_v0; void *temp_t8; - sp1C = (?32) stack_ptrs_1; - sp1C.unk4 = (?32) stack_ptrs_1.unk4; - sp1C.unk8 = (?32) stack_ptrs_1.unk8; - sp1C.unkC = (?32) stack_ptrs_1.unkC; - sp1C.unk10 = (?32) stack_ptrs_1.unk10; - sp8 = (?32) stack_ptrs_2; - sp8.unk4 = (?32) stack_ptrs_2.unk4; - sp8.unk8 = (?32) stack_ptrs_2.unk8; - sp8.unkC = (?32) stack_ptrs_2.unkC; - sp8.unk10 = (?32) stack_ptrs_2.unk10; + sp1C = (?32) g_StackPtrs1; + sp1C.unk4 = (?32) g_StackPtrs1.unk4; + sp1C.unk8 = (?32) g_StackPtrs1.unk8; + sp1C.unkC = (?32) g_StackPtrs1.unkC; + sp1C.unk10 = (?32) g_StackPtrs1.unk10; + sp8 = (?32) g_StackPtrs2; + sp8.unk4 = (?32) g_StackPtrs2.unk4; + sp8.unk8 = (?32) g_StackPtrs2.unk8; + sp8.unkC = (?32) g_StackPtrs2.unkC; + sp8.unk10 = (?32) g_StackPtrs2.unk10; if (arg1 <= 0) { return 0; @@ -575,15 +583,15 @@ s32 debug_sp_related_11(u32 arg0, u32 arg1) GLOBAL_ASM( .text glabel debug_sp_related_11 -/* 006020 70005420 3C0E8002 */ lui $t6, %hi(stack_ptrs_1) -/* 006024 70005424 25CE36DC */ addiu $t6, %lo(stack_ptrs_1) # addiu $t6, $t6, 0x36dc +/* 006020 70005420 3C0E8002 */ lui $t6, %hi(g_StackPtrs1) +/* 006024 70005424 25CE36DC */ addiu $t6, %lo(g_StackPtrs1) # addiu $t6, $t6, 0x36dc /* 006028 70005428 8DC10000 */ lw $at, ($t6) /* 00602C 7000542C 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 006030 70005430 27A7001C */ addiu $a3, $sp, 0x1c /* 006034 70005434 ACE10000 */ sw $at, ($a3) /* 006038 70005438 8DD90004 */ lw $t9, 4($t6) -/* 00603C 7000543C 3C098002 */ lui $t1, %hi(stack_ptrs_2) -/* 006040 70005440 252936F0 */ addiu $t1, %lo(stack_ptrs_2) # addiu $t1, $t1, 0x36f0 +/* 00603C 7000543C 3C098002 */ lui $t1, %hi(g_StackPtrs2) +/* 006040 70005440 252936F0 */ addiu $t1, %lo(g_StackPtrs2) # addiu $t1, $t1, 0x36f0 /* 006044 70005444 ACF90004 */ sw $t9, 4($a3) /* 006048 70005448 8DC10008 */ lw $at, 8($t6) /* 00604C 7000544C 27A80008 */ addiu $t0, $sp, 8 @@ -645,11 +653,11 @@ s32 debug_sp_related_12(u32 arg0, u32 arg1) { u32 sp4; // Node 0 - sp4 = (?32) stack_ptrs_3; - sp4.unk4 = (?32) stack_ptrs_3.unk4; - sp4.unk8 = (?32) stack_ptrs_3.unk8; - sp4.unkC = (?32) stack_ptrs_3.unkC; - sp4.unk10 = (?32) stack_ptrs_3.unk10; + sp4 = (?32) g_StackPtrs3; + sp4.unk4 = (?32) g_StackPtrs3.unk4; + sp4.unk8 = (?32) g_StackPtrs3.unk8; + sp4.unkC = (?32) g_StackPtrs3.unkC; + sp4.unk10 = (?32) g_StackPtrs3.unk10; if (arg1 <= 0) { // Node 2 @@ -678,8 +686,8 @@ s32 debug_sp_related_12(u32 arg0, u32 arg1) { GLOBAL_ASM( .text glabel debug_sp_related_12 -/* 0060E4 700054E4 3C0E8002 */ lui $t6, %hi(stack_ptrs_3) -/* 0060E8 700054E8 25CE3704 */ addiu $t6, %lo(stack_ptrs_3) # addiu $t6, $t6, 0x3704 +/* 0060E4 700054E4 3C0E8002 */ lui $t6, %hi(g_StackPtrs3) +/* 0060E8 700054E8 25CE3704 */ addiu $t6, %lo(g_StackPtrs3) # addiu $t6, $t6, 0x3704 /* 0060EC 700054EC 8DC10000 */ lw $at, ($t6) /* 0060F0 700054F0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0060F4 700054F4 27A20004 */ addiu $v0, $sp, 4 @@ -717,136 +725,3 @@ glabel debug_sp_related_12 #endif -//maybe newfile, falls on 0 address and logically does different things - -/** - * 6160 70005560 - * V0= TRUE if F12 a normal single precision float - * accepts: F12= single-precision float - */ -#ifdef NONMATCHING -s32 _is_normal_single_precision_float(f32 arg0) { - // Node 0 - if ((u32) (arg0 & 0x7fffff) >= 1U) - { - // Node 1 - if (0U < (u32) ((arg0 >> 0x17) & 0xff)) - { - // Node 2 - return; - // (possible return value: (0U < (u32) (((arg0 >> 0x17) & 0xff) ^ 0xff))) - } - } - // (possible return value: ((u32) (arg0 & 0x7fffff) < 1U)) -} -#else -GLOBAL_ASM( -.text -glabel _is_normal_single_precision_float -/* 006160 70005560 E7AC0000 */ swc1 $f12, ($sp) -/* 006164 70005564 8FA40000 */ lw $a0, ($sp) -/* 006168 70005568 3C01007F */ lui $at, (0x007FFFFF >> 16) # lui $at, 0x7f -/* 00616C 7000556C 3421FFFF */ ori $at, (0x007FFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 006170 70005570 00811024 */ and $v0, $a0, $at -/* 006174 70005574 2C4E0001 */ sltiu $t6, $v0, 1 -/* 006178 70005578 15C00008 */ bnez $t6, .L7000559C -/* 00617C 7000557C 01C01025 */ move $v0, $t6 -/* 006180 70005580 00041DC2 */ srl $v1, $a0, 0x17 -/* 006184 70005584 306F00FF */ andi $t7, $v1, 0xff -/* 006188 70005588 000F102B */ sltu $v0, $zero, $t7 -/* 00618C 7000558C 10400003 */ beqz $v0, .L7000559C -/* 006190 70005590 00000000 */ nop -/* 006194 70005594 39E200FF */ xori $v0, $t7, 0xff -/* 006198 70005598 0002102B */ sltu $v0, $zero, $v0 -.L7000559C: -/* 00619C 7000559C 03E00008 */ jr $ra -/* 0061A0 700055A0 00000000 */ nop -) -#endif - - - - -/** - * 61A4 700055A4 - * V0= TRUE if A1 a normal single precision float; would have set result as short at A0 - * accepts: A0=(unused) p->target, A1=single-precision float - */ -#ifdef NONMATCHING -void is_normal_single_precision_float(s32 arg0, s32 arg1) { - _is_normal_single_precision_float(arg1); -} -#else -GLOBAL_ASM( -.text -glabel is_normal_single_precision_float -/* 0061A4 700055A4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0061A8 700055A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0061AC 700055AC 44856000 */ mtc1 $a1, $f12 -/* 0061B0 700055B0 0C001558 */ jal _is_normal_single_precision_float -/* 0061B4 700055B4 AFA40018 */ sw $a0, 0x18($sp) -/* 0061B8 700055B8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0061BC 700055BC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0061C0 700055C0 03E00008 */ jr $ra -/* 0061C4 700055C4 00000000 */ nop -) -#endif - - - - - -/** - * 61C8 700055C8 - * removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0 - */ -#ifdef NONMATCHING -void set_normality_of_single_precision_floats(s32 arg0, s32 arg1, ? arg2, ? arg3, s32 arg6, ? arg8, ? arg9, ? argA) { - // Node 0 - is_normal_single_precision_float(arg1, arg1); - is_normal_single_precision_float((arg6 + 2), arg8); - is_normal_single_precision_float((arg6 + 4), arg9); - is_normal_single_precision_float((arg6 + 6), argA); - return; - // (possible return value: is_normal_single_precision_float((arg6 + 6), argA)) -} -#else -GLOBAL_ASM( -.text -glabel set_normality_of_single_precision_floats -/* 0061C8 700055C8 44856000 */ mtc1 $a1, $f12 -/* 0061CC 700055CC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0061D0 700055D0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0061D4 700055D4 44056000 */ mfc1 $a1, $f12 -/* 0061D8 700055D8 AFA40018 */ sw $a0, 0x18($sp) -/* 0061DC 700055DC AFA60020 */ sw $a2, 0x20($sp) -/* 0061E0 700055E0 0C001569 */ jal is_normal_single_precision_float -/* 0061E4 700055E4 AFA70024 */ sw $a3, 0x24($sp) -/* 0061E8 700055E8 8FA40018 */ lw $a0, 0x18($sp) -/* 0061EC 700055EC 8FA50020 */ lw $a1, 0x20($sp) -/* 0061F0 700055F0 0C001569 */ jal is_normal_single_precision_float -/* 0061F4 700055F4 24840002 */ addiu $a0, $a0, 2 -/* 0061F8 700055F8 8FA40018 */ lw $a0, 0x18($sp) -/* 0061FC 700055FC 8FA50024 */ lw $a1, 0x24($sp) -/* 006200 70005600 0C001569 */ jal is_normal_single_precision_float -/* 006204 70005604 24840004 */ addiu $a0, $a0, 4 -/* 006208 70005608 8FA40018 */ lw $a0, 0x18($sp) -/* 00620C 7000560C 8FA50028 */ lw $a1, 0x28($sp) -/* 006210 70005610 0C001569 */ jal is_normal_single_precision_float -/* 006214 70005614 24840006 */ addiu $a0, $a0, 6 -/* 006218 70005618 8FBF0014 */ lw $ra, 0x14($sp) -/* 00621C 7000561C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 006220 70005620 03E00008 */ jr $ra -/* 006224 70005624 00000000 */ nop -) -#endif - -/** - * 6228 70005628 - * unconditional return - */ -void debug_indy_stub_2(void) { - return; -} - - diff --git a/src/debugmenu.c b/src/debugmenu.c index a0979c2..7d4447d 100644 --- a/src/debugmenu.c +++ b/src/debugmenu.c @@ -1,406 +1,284 @@ #include "ultra64.h" #include "debugmenu.h" #include "vi.h" +#include "game/dyn.h" -u32 image_resource[] = { - 0, 0x227A00, 0x7A348B, 0x223434, 0x115811, 0x696900, 0, 0x9C00, - 0x4600, 0x460000, 0x4600, 0, 0, 0, 0, 0x46, - 0x229C11, 0x346900, 0x229C11, 0x699C11, 0x5834, 0xADAD34, 0x118B34, 0x9CAD7A, - 0x229C11, 0x229C11, 0, 0, 0, 0, 0, 0x113411, - 0, 0x46CE00, 0xAD58DE, 0x466969, 0x9C9C69, 0x8B8B00, 0x469C00, 0x22CE00, - 0x583400, 0x345800, 0x7ACE69, 0x5800, 0, 0, 0, 0x3446, - 0x8B007A, 0x588B00, 0x8B008B, 0x22007A, 0x119C69, 0x8B0000, 0x9C1100, 0x22008B, - 0x8B007A, 0x8B007A, 0, 0, 0x225869, 0,0x69582200, 0x9C698B, - 0, 0x46CE00, 0x222258, 0xDEEF7A, 0xAD1111, 0x69EF9C, 0x8B0000, 0x460000, - 0x8B0000, 0x8B00, 0x58CE34, 0x8B00, 0, 0, 0, 0x8B00, - 0x8B008B, 0x8B00, 0x11007A, 0x118B46, 0x58467A, 0xCEAD22, 0x9C8B00, 0x117A, - 0x698B46, 0x8B00AD, 0x34AD00, 0x34AD00,0x228B4600,0x8B8B8B8B, 0x468B22, 0x11008B, - 0, 0x7A00, 0, 0x9C9C00, 0x118B34,0x22ADBD46, 0x8B8B34, 0, - 0x8B0000, 0x8B00, 0x7A2269,0x22ADEF9C, 0,0x22ADADAD, 0, 0x226900, - 0x8B008B, 0x8B00, 0x7A00, 0x117A, 0x9C347A, 0x8B, 0xCE117A, 0x2269, - 0x8B227A, 0x229C8B, 0x1100, 0x1100,0xAD580000,0x34343434, 0x58AD, 0xBD34, - 0, 0x112200, 0,0x22DEDE22, 0xCE5858, 0x46468B, 0x8BAD00, 0, - 0x8B0000, 0x8B00, 0, 0x8B00, 0x3400, 0, 0x2200, 0x691100, - 0x8B008B, 0x8B00, 0x691158, 0x11008B, 0x7A9CAD,0x1122008B, 0x8B008B, 0x8B00, - 0x8B008B, 0x227A, 0x2200, 0x2200,0x228B4600,0x8B8B8B8B, 0x468B22, 0x6900, - 0, 0x228B00, 0, 0x8B8B00, 0x34BD00, 0x119C46, 0x7A6969, 0, - 0x583400, 0x345800, 0, 0x5800, 0x11FF00, 0, 0x228B00, 0x8B0000, - 0x349C22, 0x8BCE69,0x22BDAD8B, 0x7A9C11, 0x8B8B,0x118B9C11, 0x349C22, 0x5800, - 0x349C11, 0x588B11, 0x228B00, 0x69AD00, 0x225869, 0,0x69582200, 0xBD00, - 0, 0, 0, 0x464600, 0x4600, 0, 0, 0, - 0x4600, 0x460000, 0, 0, 0x583400, 0, 0,0x58340000, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0x8B0000, 0, 0, 0, 0, - 0x229C11, 0x221100,0x11223400, 0x3411,0x11342200, 0x343422, 0x343422, 0x2222, - 0x220022, 0x342222, 0x3434, 0x341122,0x22341100,0x11110022,0x22221134, 0x2200, - 0x343411, 0x3400, 0x343411, 0x113411, 0x343434,0x11341134,0x11220034,0x34220034, -0x11340022,0x11220034, 0x223422, 0x8B34, 0x460000, 0x587A00, 0x5800, 0, -0x348B008B, 0x69BD00,0x11DE7A58, 0xAD69DE,0x22CE7A9C,0x11CE7AAD,0x11CE7AAD, 0xAD7ADE, -0x22CE00CE, 0x69CE58, 0x8BCE,0x22CE22CE,0x46CE4600,0x7ABD00FF,0x58FF46CE, 0xAD7A9C, -0x11CE7A7A, 0xAD7A8B,0x22CE7A7A,0x118B7ABD,0x469CCECE,0x8B8B34CE,0x8B8B00BD,0xBD8B22BD, -0x58CE00CE,0x22BD00CE, 0xBD7AAD, 0x8B00, 0x7A1100, 0x8B00, 0x694658, 0, -0x468B7ABD, 0x588B22, 0x8B008B,0x46460011, 0x8B007A,0x118B3458, 0x8B3458,0x46460011, - 0x8B008B, 0x8B00, 0x117A, 0x8B7A11, 0x8B0000,0x589C58BD,0x11AD698B,0x4646007A, -0x118B007A,0x5846007A,0x118B007A,0x46580011,0x34228B46,0x6934008B, 0x7A008B,0x58348B7A, -0x11696946, 0x695846, 0x113458, 0x8B00, 0x116900, 0x8B00, 0x110011, 0, -0x468B8B9C, 0x9C228B, 0xDEAD7A,0x58340000, 0x8B007A,0x11DEAD00, 0xDEAD00,0x583400AD, -0x46DEADBD, 0x8B00,0x3411117A, 0xDEAD00, 0x8B0000,0x5846AD7A,0x118B8B8B,0x5834007A, -0x11DEAD34,0x5834007A,0x11DEDE46, 0x58AD34, 0x8B00,0x5834008B, 0x8B117A, 0xBDDE8B, - 0x22AD00, 0x11BD00, 0x226900, 0x8B00, 0x8B00, 0x8B00, 0, 0, -0x348B348B,0x469C8BAD, 0x8B007A,0x347A0058, 0x8B009C, 0x8B008B, 0x8B0000,0x228B007A, - 0x8B008B, 0x8B00,0x46462269, 0x8B117A, 0x8B007A,0x6934347A,0x118B34DE,0x118B009C, - 0x8B0000,0x228B009C, 0x8B117A,0x3434008B, 0x8B00,0x4646008B, 0x22CE00, 0xADBD8B, - 0x8B007A, 0x8B00, 0x8B0058, 0x8B00, 0x3446, 0x8B00, 0, 0, - 0x697A9C,0x7A9C00BD,0x69CEAD58, 0x58AD58,0x22BDAD34,0x22CEAD8B,0x22BD2200, 0x58AD58, -0x22AD00CE, 0x8BBD7A, 0x7A7A00,0x22BD228B,0x69BDADBD,0x8B9C00BD,0x69CE227A, 0x58AD34, -0x22CE6900, 0x9CEF69,0x22BD2258,0x7A9C9C22, 0x46CE34, 0x7AAD11, 0x5800, 0x580058, -0x22AD00CE, 0x58BD34, 0xAD9C9C, 0x8B00, 0x8B, 0x8B00, 0,0x22222222, - 0x2211, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0x58588B, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0xCE34, 0x7A,0x1158AD00, 0,0x7A7A7A7A, - 0x693400, 0,0x22690000, 0, 0x8B, 0, 0x589C,0x11000000, -0x22690000, 0x1100, 0x1100,0x22690000, 0x8B7A00, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0x4646, 0x4600, 0x464600, 0, 0, - 0x46AD00, 0, 0x8B0000, 0, 0x8B, 0, 0x116900, 0, - 0x8B0000, 0x6900, 0x6900, 0x8B0000, 0x8B00, 0, 0, 0, - 0, 0, 0, 0, 0x226900, 0, 0, 0, - 0, 0, 0, 0x8B00, 0x8B00, 0x8B00, 0, 0, - 0x5800, 0x8B9C34, 0xCEAD69, 0x7AAD9C, 0x8BADBD, 0x7AAD34, 0x9CDE7A, 0x8B9CCE, -0x11CEAD69, 0x589C00, 0x8BAD69, 0x8BAD69, 0x8B00,0x7AAD9C9C,0x22CEAD69, 0x7AAD34, -0x22CEAD69, 0x8B9CDE,0x22DE9C69, 0x7AAD9C, 0x9CDE7A,0x118B00AD,0x11CE00DE,0x34CE00DE, -0x22CE34AD,0x22CE00DE, 0xBD9CAD, 0x8B00, 0x8B00, 0x8B00,0x229C347A, 0, - 0, 0x9CAD7A, 0x8B007A,0x69340034,0x4634009C,0x46CE9CBD, 0x226900,0x4646008B, - 0x8B008B, 0x8B00, 0x7A, 0xDE7A00, 0x8B00,0x46468B69,0x119C008B,0x4646008B, - 0x8B0069,0x5846008B, 0x8B0000, 0x8B7A58, 0x226900, 0x8B008B, 0x7A117A, 0x8B8B8B, - 0x58BD00, 0x8B008B, 0x464646, 0x467A00, 0x8B00, 0x8B46,0x7A349C22, 0, - 0,0x4634227A, 0x9C007A,0x58460022,0x4646009C,0x34460034, 0x226900,0x3446009C, - 0x8B008B, 0x8B00, 0x7A, 0x8B6911, 0x8B00,0x46468B69,0x118B008B,0x3458008B, - 0xAD0069,0x584600AD, 0x8B0000, 0x69348B, 0x226911, 0x8B009C, 0x11DE00, 0xADBD8B, - 0x699C11, 0x469C34, 0x225858, 0x8B00, 0x8B00, 0x8B00, 0, 0, - 0,0x119C8BCE,0x22ADAD58, 0x7A9C46, 0x69ADAD,0x1169AD46, 0x8BBD7A, 0x69ADAD, -0x22AD00BD,0x118BCE69, 0x7A,0x227A34CE, 0x8BBD7A,0x7A699C46,0x69BD00CE, 0x7A9C22, - 0xBD9C58, 0x69ADAD,0x22CE9C34, 0x8BAD58, 0x9C8B, 0x699CAD,0x11005800, 0x580069, -0x11BD349C, 0x9C00, 0xADAD9C, 0x8B00, 0x8B00, 0x8B00, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0x8B, - 0, 0, 0x4646, 0, 0, 0, 0, 0, - 0x8B0000, 0x8B, 0, 0, 0, 0, 0, 0, - 0, 0x226900, 0, 0x8B46, 0x8B00, 0x467A00, 0, 0 +u32 g_DebugMenuTexture[] = { + 0x00000000, 0x00227A00, 0x007A348B, 0x00223434, 0x00115811, 0x00696900, 0x00000000, 0x00009C00, + 0x00004600, 0x00460000, 0x00004600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000046, + 0x00229C11, 0x00346900, 0x00229C11, 0x00699C11, 0x00005834, 0x00ADAD34, 0x00118B34, 0x009CAD7A, + 0x00229C11, 0x00229C11, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00113411, + 0x00000000, 0x0046CE00, 0x00AD58DE, 0x00466969, 0x009C9C69, 0x008B8B00, 0x00469C00, 0x0022CE00, + 0x00583400, 0x00345800, 0x007ACE69, 0x00005800, 0x00000000, 0x00000000, 0x00000000, 0x00003446, + 0x008B007A, 0x00588B00, 0x008B008B, 0x0022007A, 0x00119C69, 0x008B0000, 0x009C1100, 0x0022008B, + 0x008B007A, 0x008B007A, 0x00000000, 0x00000000, 0x00225869, 0x00000000, 0x69582200, 0x009C698B, + 0x00000000, 0x0046CE00, 0x00222258, 0x00DEEF7A, 0x00AD1111, 0x0069EF9C, 0x008B0000, 0x00460000, + 0x008B0000, 0x00008B00, 0x0058CE34, 0x00008B00, 0x00000000, 0x00000000, 0x00000000, 0x00008B00, + 0x008B008B, 0x00008B00, 0x0011007A, 0x00118B46, 0x0058467A, 0x00CEAD22, 0x009C8B00, 0x0000117A, + 0x00698B46, 0x008B00AD, 0x0034AD00, 0x0034AD00, 0x228B4600, 0x8B8B8B8B, 0x00468B22, 0x0011008B, + 0x00000000, 0x00007A00, 0x00000000, 0x009C9C00, 0x00118B34, 0x22ADBD46, 0x008B8B34, 0x00000000, + 0x008B0000, 0x00008B00, 0x007A2269, 0x22ADEF9C, 0x00000000, 0x22ADADAD, 0x00000000, 0x00226900, + 0x008B008B, 0x00008B00, 0x00007A00, 0x0000117A, 0x009C347A, 0x0000008B, 0x00CE117A, 0x00002269, + 0x008B227A, 0x00229C8B, 0x00001100, 0x00001100, 0xAD580000, 0x34343434, 0x000058AD, 0x0000BD34, + 0x00000000, 0x00112200, 0x00000000, 0x22DEDE22, 0x00CE5858, 0x0046468B, 0x008BAD00, 0x00000000, + 0x008B0000, 0x00008B00, 0x00000000, 0x00008B00, 0x00003400, 0x00000000, 0x00002200, 0x00691100, + 0x008B008B, 0x00008B00, 0x00691158, 0x0011008B, 0x007A9CAD, 0x1122008B, 0x008B008B, 0x00008B00, + 0x008B008B, 0x0000227A, 0x00002200, 0x00002200, 0x228B4600, 0x8B8B8B8B, 0x00468B22, 0x00006900, + 0x00000000, 0x00228B00, 0x00000000, 0x008B8B00, 0x0034BD00, 0x00119C46, 0x007A6969, 0x00000000, + 0x00583400, 0x00345800, 0x00000000, 0x00005800, 0x0011FF00, 0x00000000, 0x00228B00, 0x008B0000, + 0x00349C22, 0x008BCE69, 0x22BDAD8B, 0x007A9C11, 0x00008B8B, 0x118B9C11, 0x00349C22, 0x00005800, + 0x00349C11, 0x00588B11, 0x00228B00, 0x0069AD00, 0x00225869, 0x00000000, 0x69582200, 0x0000BD00, + 0x00000000, 0x00000000, 0x00000000, 0x00464600, 0x00004600, 0x00000000, 0x00000000, 0x00000000, + 0x00004600, 0x00460000, 0x00000000, 0x00000000, 0x00583400, 0x00000000, 0x00000000, 0x58340000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x008B0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00229C11, 0x00221100, 0x11223400, 0x00003411, 0x11342200, 0x00343422, 0x00343422, 0x00002222, + 0x00220022, 0x00342222, 0x00003434, 0x00341122, 0x22341100, 0x11110022, 0x22221134, 0x00002200, + 0x00343411, 0x00003400, 0x00343411, 0x00113411, 0x00343434, 0x11341134, 0x11220034, 0x34220034, + 0x11340022, 0x11220034, 0x00223422, 0x00008B34, 0x00460000, 0x00587A00, 0x00005800, 0x00000000, + 0x348B008B, 0x0069BD00, 0x11DE7A58, 0x00AD69DE, 0x22CE7A9C, 0x11CE7AAD, 0x11CE7AAD, 0x00AD7ADE, + 0x22CE00CE, 0x0069CE58, 0x00008BCE, 0x22CE22CE, 0x46CE4600, 0x7ABD00FF, 0x58FF46CE, 0x00AD7A9C, + 0x11CE7A7A, 0x00AD7A8B, 0x22CE7A7A, 0x118B7ABD, 0x469CCECE, 0x8B8B34CE, 0x8B8B00BD, 0xBD8B22BD, + 0x58CE00CE, 0x22BD00CE, 0x00BD7AAD, 0x00008B00, 0x007A1100, 0x00008B00, 0x00694658, 0x00000000, + 0x468B7ABD, 0x00588B22, 0x008B008B, 0x46460011, 0x008B007A, 0x118B3458, 0x008B3458, 0x46460011, + 0x008B008B, 0x00008B00, 0x0000117A, 0x008B7A11, 0x008B0000, 0x589C58BD, 0x11AD698B, 0x4646007A, + 0x118B007A, 0x5846007A, 0x118B007A, 0x46580011, 0x34228B46, 0x6934008B, 0x007A008B, 0x58348B7A, + 0x11696946, 0x00695846, 0x00113458, 0x00008B00, 0x00116900, 0x00008B00, 0x00110011, 0x00000000, + 0x468B8B9C, 0x009C228B, 0x00DEAD7A, 0x58340000, 0x008B007A, 0x11DEAD00, 0x00DEAD00, 0x583400AD, + 0x46DEADBD, 0x00008B00, 0x3411117A, 0x00DEAD00, 0x008B0000, 0x5846AD7A, 0x118B8B8B, 0x5834007A, + 0x11DEAD34, 0x5834007A, 0x11DEDE46, 0x0058AD34, 0x00008B00, 0x5834008B, 0x008B117A, 0x00BDDE8B, + 0x0022AD00, 0x0011BD00, 0x00226900, 0x00008B00, 0x00008B00, 0x00008B00, 0x00000000, 0x00000000, + 0x348B348B, 0x469C8BAD, 0x008B007A, 0x347A0058, 0x008B009C, 0x008B008B, 0x008B0000, 0x228B007A, + 0x008B008B, 0x00008B00, 0x46462269, 0x008B117A, 0x008B007A, 0x6934347A, 0x118B34DE, 0x118B009C, + 0x008B0000, 0x228B009C, 0x008B117A, 0x3434008B, 0x00008B00, 0x4646008B, 0x0022CE00, 0x00ADBD8B, + 0x008B007A, 0x00008B00, 0x008B0058, 0x00008B00, 0x00003446, 0x00008B00, 0x00000000, 0x00000000, + 0x00697A9C, 0x7A9C00BD, 0x69CEAD58, 0x0058AD58, 0x22BDAD34, 0x22CEAD8B, 0x22BD2200, 0x0058AD58, + 0x22AD00CE, 0x008BBD7A, 0x007A7A00, 0x22BD228B, 0x69BDADBD, 0x8B9C00BD, 0x69CE227A, 0x0058AD34, + 0x22CE6900, 0x009CEF69, 0x22BD2258, 0x7A9C9C22, 0x0046CE34, 0x007AAD11, 0x00005800, 0x00580058, + 0x22AD00CE, 0x0058BD34, 0x00AD9C9C, 0x00008B00, 0x0000008B, 0x00008B00, 0x00000000, 0x22222222, + 0x00002211, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x0058588B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x0000CE34, 0x0000007A, 0x1158AD00, 0x00000000, 0x7A7A7A7A, + 0x00693400, 0x00000000, 0x22690000, 0x00000000, 0x0000008B, 0x00000000, 0x0000589C, 0x11000000, + 0x22690000, 0x00001100, 0x00001100, 0x22690000, 0x008B7A00, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00004646, 0x00004600, 0x00464600, 0x00000000, 0x00000000, + 0x0046AD00, 0x00000000, 0x008B0000, 0x00000000, 0x0000008B, 0x00000000, 0x00116900, 0x00000000, + 0x008B0000, 0x00006900, 0x00006900, 0x008B0000, 0x00008B00, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00226900, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00008B00, 0x00008B00, 0x00008B00, 0x00000000, 0x00000000, + 0x00005800, 0x008B9C34, 0x00CEAD69, 0x007AAD9C, 0x008BADBD, 0x007AAD34, 0x009CDE7A, 0x008B9CCE, + 0x11CEAD69, 0x00589C00, 0x008BAD69, 0x008BAD69, 0x00008B00, 0x7AAD9C9C, 0x22CEAD69, 0x007AAD34, + 0x22CEAD69, 0x008B9CDE, 0x22DE9C69, 0x007AAD9C, 0x009CDE7A, 0x118B00AD, 0x11CE00DE, 0x34CE00DE, + 0x22CE34AD, 0x22CE00DE, 0x00BD9CAD, 0x00008B00, 0x00008B00, 0x00008B00, 0x229C347A, 0x00000000, + 0x00000000, 0x009CAD7A, 0x008B007A, 0x69340034, 0x4634009C, 0x46CE9CBD, 0x00226900, 0x4646008B, + 0x008B008B, 0x00008B00, 0x0000007A, 0x00DE7A00, 0x00008B00, 0x46468B69, 0x119C008B, 0x4646008B, + 0x008B0069, 0x5846008B, 0x008B0000, 0x008B7A58, 0x00226900, 0x008B008B, 0x007A117A, 0x008B8B8B, + 0x0058BD00, 0x008B008B, 0x00464646, 0x00467A00, 0x00008B00, 0x00008B46, 0x7A349C22, 0x00000000, + 0x00000000, 0x4634227A, 0x009C007A, 0x58460022, 0x4646009C, 0x34460034, 0x00226900, 0x3446009C, + 0x008B008B, 0x00008B00, 0x0000007A, 0x008B6911, 0x00008B00, 0x46468B69, 0x118B008B, 0x3458008B, + 0x00AD0069, 0x584600AD, 0x008B0000, 0x0069348B, 0x00226911, 0x008B009C, 0x0011DE00, 0x00ADBD8B, + 0x00699C11, 0x00469C34, 0x00225858, 0x00008B00, 0x00008B00, 0x00008B00, 0x00000000, 0x00000000, + 0x00000000, 0x119C8BCE, 0x22ADAD58, 0x007A9C46, 0x0069ADAD, 0x1169AD46, 0x008BBD7A, 0x0069ADAD, + 0x22AD00BD, 0x118BCE69, 0x0000007A, 0x227A34CE, 0x008BBD7A, 0x7A699C46, 0x69BD00CE, 0x007A9C22, + 0x00BD9C58, 0x0069ADAD, 0x22CE9C34, 0x008BAD58, 0x00009C8B, 0x00699CAD, 0x11005800, 0x00580069, + 0x11BD349C, 0x00009C00, 0x00ADAD9C, 0x00008B00, 0x00008B00, 0x00008B00, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000008B, + 0x00000000, 0x00000000, 0x00004646, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x008B0000, 0x0000008B, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00226900, 0x00000000, 0x00008B46, 0x00008B00, 0x00467A00, 0x00000000, 0x00000000 }; -s32 debug_menu_x_pos_offset = 5; -s32 debug_menu_y_pos_offset = 1; -s32 debug_menu_x_text_pos = 0x18; -s32 debug_menu_y_text_pos = 0x10; +typedef struct { + u8 chr; + u8 color; +} character; -u32 stdout_display_list[] = { - 0xE7000000, 0, //gsDPPipeSync(), - 0xBA001402, 0, //gsDPSetCycleType(G_CYC_1CYCLE), - 0xBA000602, 0xC0, //gsDPSetTextureLOD - 0xB900031D,0x500A4240, //gsDPSetRenderMode - 0xFC30B261,0x5566DB6D, //gsDPSetCombineMode - 0xBA001301, 0, //gsDPSetTextureLOD - 0xB9000002, 0, //gsDPSetRenderMode - 0xFD700000,&image_resource[0], //gsDPSetTextureImage - 0xF5700000, 0x7000000, //gsDPSetTile - 0xE6000000, 0, //gsDPLoadSync(), - 0xF3000000, 0x753F080, //gsDPLoadBlock - 0xE7000000, 0, //gsDPPipeSync(), - 0xF5682000, 0, //gsDPSetTile - 0xF2000000, 0x1FC050, //gsDPSetTileSize - 0xE6000000, 0, //gsDPLoadSync(), - 0xB8000000, 0 //gsSPEndDisplayList(), +s32 g_DebugMenuTextStartX = 5; +s32 g_DebugMenuTextStartY = 1; +s32 g_DebugMenuTextCurrentX = 24; +s32 g_DebugMenuTextCurrentY = 16; +Gfx g_DebugMenuTextureDisplayList[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetColorDither(G_CD_DISABLE), + gsDPSetRenderMode(IM_RD | CVG_DST_FULL | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_MEM, G_BL_A_IN, G_BL_CLR_IN, G_BL_1), IM_RD | CVG_DST_FULL | ZMODE_OPA | FORCE_BL | GBL_c2(G_BL_CLR_MEM, G_BL_A_IN, G_BL_CLR_IN, G_BL_1)), + gsDPSetCombineLERP(PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT), + gsDPSetTexturePersp(G_TP_NONE), + gsDPSetAlphaCompare(G_AC_NONE), + gsDPLoadTextureBlock(&g_DebugMenuTexture, G_IM_FMT_IA, G_IM_SIZ_8b, 128, 21, 0, (G_TX_NOMIRROR | G_TX_WRAP), (G_TX_NOMIRROR | G_TX_WRAP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD), + gsDPLoadSync(), + gsSPEndDisplayList() }; +character g_DebugMenuTextBuffer[80][35] = {0}; +Gfx g_DebugMenuPrimitiveColors[32] = {0}; +Gfx g_DebugMenuEnvironmentColors[32] = {0}; +s32 g_DebugMenuCurrentColorIndex = 0; -u32 stdout_debug_menu_screen_buffer[1400] = {0}; -u32 stdout_primary_color_table[64] = {0}; -u32 stdout_environment_color_table[64] = {0}; +#define ANSI_COLOR_CODE_FG_BLACK "\x1B[30m" +#define ANSI_COLOR_CODE_FG_RED "\x1B[31m" +#define ANSI_COLOR_CODE_FG_GREEN "\x1B[32m" +#define ANSI_COLOR_CODE_FG_YELLOW "\x1B[33m" +#define ANSI_COLOR_CODE_FG_BLUE "\x1B[34m" +#define ANSI_COLOR_CODE_FG_MAGENTA "\x1B[35m" +#define ANSI_COLOR_CODE_FG_CYAN "\x1B[36m" +#define ANSI_COLOR_CODE_FG_WHITE "\x1B[37m" -char *string_formatting[] = {0, -"\x1B[31m\x1B[40m", "\x1B[37m\x1B[40m", -"\x1B[32m\x1B[40m", "\x1B[33m\x1B[40m", -"\x1B[34m\x1B[40m", "\x1B[35m\x1B[40m", -"\x1B[36m\x1B[40m", "\x1B[37m\x1B[44m", -"\x1B[31m\x1B[44m", "\x1B[32m\x1B[44m", -"\x1B[33m\x1B[44m", "\x1B[30m\x1B[44m", -"\x1B[35m\x1B[44m", "\x1B[36m\x1B[44m", -"\x1B[37m\x1B[41m", "\x1B[30m\x1B[41m", -"\x1B[32m\x1B[41m", "\x1B[33m\x1B[41m", -"\x1B[34m\x1B[41m", "\x1B[35m\x1B[41m", -"\x1B[36m\x1B[41m", "\x1B[37m\x1B[45m", -"\x1B[31m\x1B[45m", "\x1B[32m\x1B[45m", -"\x1B[33m\x1B[45m", "\x1B[34m\x1B[45m", -"\x1B[30m\x1B[45m", "\x1B[36m\x1B[45m", -"\x1B[37m\x1B[42m", "\x1B[31m\x1B[42m", -"\x1B[30m\x1B[42m", "\x1B[33m\x1B[42m"}; +#define ANSI_COLOR_CODE_BG_BLACK "\x1B[40m" +#define ANSI_COLOR_CODE_BG_RED "\x1B[41m" +#define ANSI_COLOR_CODE_BG_GREEN "\x1B[42m" +#define ANSI_COLOR_CODE_BG_YELLOW "\x1B[43m" +#define ANSI_COLOR_CODE_BG_BLUE "\x1B[44m" +#define ANSI_COLOR_CODE_BG_MAGENTA "\x1B[45m" +#define ANSI_COLOR_CODE_BG_CYAN "\x1B[46m" +#define ANSI_COLOR_CODE_BG_WHITE "\x1B[47m" +const char *g_DebugMenuUnusedStrings[] = { + ANSI_COLOR_CODE_FG_RED ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_WHITE ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_GREEN ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_YELLOW ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_BLUE ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_MAGENTA ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_CYAN ANSI_COLOR_CODE_BG_BLACK, + ANSI_COLOR_CODE_FG_WHITE ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_RED ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_GREEN ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_YELLOW ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_BLACK ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_MAGENTA ANSI_COLOR_CODE_BG_BLUE, + ANSI_COLOR_CODE_FG_CYAN ANSI_COLOR_CODE_BG_BLUE, -u64 end_displaylist_command = 0xB800000000000000; -u64 blank_C0_command =0xC000000000000000; -u32 stdout_primary_color = 0xFA000000; -u32 debug_text_color = 0xFFFFFF00; -u32 debug_text_bg_color = 0xFB000000; -u32 speedgraph_color = 0; -u32 D_800268B8 = 0xFF; + ANSI_COLOR_CODE_FG_WHITE ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_BLACK ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_GREEN ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_YELLOW ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_BLUE ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_MAGENTA ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_CYAN ANSI_COLOR_CODE_BG_RED, + ANSI_COLOR_CODE_FG_WHITE ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_RED ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_GREEN ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_YELLOW ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_BLUE ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_BLACK ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_CYAN ANSI_COLOR_CODE_BG_MAGENTA, + ANSI_COLOR_CODE_FG_WHITE ANSI_COLOR_CODE_BG_GREEN, + ANSI_COLOR_CODE_FG_RED ANSI_COLOR_CODE_BG_GREEN, + ANSI_COLOR_CODE_FG_BLACK ANSI_COLOR_CODE_BG_GREEN, + ANSI_COLOR_CODE_FG_YELLOW ANSI_COLOR_CODE_BG_GREEN +}; +Gfx g_DebugMenuEndDisplayList = gsSPEndDisplayList(); +Gfx g_DebugMenuNoOp = gsDPNoOp(); +Gfx g_DebugMenuPrimitiveColor = gsDPSetPrimColor(0, 0, 255, 255, 255, 0); +Gfx g_DebugMenuEnvironmentColor = gsDPSetEnvColor(0, 0, 0, 0); +u32 g_DebugMenuRandomThreshold = 0xFF; // Static? - - -u32 dummied_function_7000AD80(s32 arg0, s32 arg1) -{ +/** + * Removed + */ +u32 debmenu7000AD80(s32 arg0, s32 arg1) { + // Removed return 0; } - -u32 dummied_function_7000AD90(s32 arg0, s32 arg1) -{ +/** + * Removed + */ +u32 debmenu7000AD90(s32 arg0, s32 arg1) { + // Removed return 0; } - -void null_function_7000ADA0(void) -{ -//empty +/** + * Removed + */ +void debmenu7000ADA0(void) { + // Removed } - -void debugmenuInit_REMOVED(void) -{ -//empty +/** + * Removed + */ +void debmenu7000ADA8(void) { + // Removed } - -void debug_text_related_2(void) -{ - blank_debug_buffer_chars(); +void debmenuInit(void) { + debmenuReset(); } +void debmenuWriteCharAtPos(s32 x, s32 y, unsigned char c) { + s32 i; + for (i = 0; i < 32; i++) { + if ((g_DebugMenuPrimitiveColor.words.w1 == g_DebugMenuPrimitiveColors[i].words.w1) && + (g_DebugMenuEnvironmentColor.words.w1 == g_DebugMenuEnvironmentColors[i].words.w1)) { + goto end; + } + } + g_DebugMenuPrimitiveColors[g_DebugMenuCurrentColorIndex] = g_DebugMenuPrimitiveColor; + g_DebugMenuEnvironmentColors[g_DebugMenuCurrentColorIndex] = g_DebugMenuEnvironmentColor; + g_DebugMenuCurrentColorIndex = ((g_DebugMenuCurrentColorIndex + 1) % 32); + i = g_DebugMenuCurrentColorIndex; +end: + g_DebugMenuTextBuffer[x][y].chr = c; + g_DebugMenuTextBuffer[x][y].color = i; +} +void debmenuResetPosition(void) { + g_DebugMenuTextCurrentX = g_DebugMenuTextStartX; + g_DebugMenuTextCurrentY = g_DebugMenuTextStartY; +} +void debmenuReset(void) { + s32 x; + s32 y; + for (y = 0; y < 35; y++) { + for (x = 0; x < 80; x++) { + debmenuWriteCharAtPos(x, y, '\0'); + } + } + debmenuResetPosition(); + debmenu7000ADA0(); + g_DebugMenuCurrentColorIndex = 0; +} - +/** + * Removed. + * Called from debmenu7000AF98 + */ +void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2) { + // Removed +} #ifdef NONMATCHING -s32 display_text_to_coord(s32 arg0, s32 arg1, s32 arg2) { - s32 temp_a0; - void *temp_t5; - void *temp_t8; - s32 temp_t7; - s32 temp_t5_2; - void *temp_v1; - - // Node 0 - // Node 1 - if ((debug_text_color != stdout_primary_color_table.unk4) || (debug_text_bg_color.unk4 != (&stdout_environment_color_table + 0)->unk4)) - { - // Node 3 - if ((0 + 1) < 0x20) - { - goto loop_1; - } - // Node 4 - temp_a0 = (string_formatting * 8); - temp_t5 = (temp_a0 + &stdout_primary_color_table); - *temp_t5 = (?32) stdout_primary_color; - temp_t8 = (&stdout_environment_color_table + temp_a0); - temp_t7 = (string_formatting + 1); - temp_t5->unk4 = (?32) stdout_primary_color.unk4; - *temp_t8 = (?32) debug_text_bg_color; - temp_t8->unk4 = (s32) debug_text_bg_color.unk4; - temp_t5_2 = (temp_t7 & 0x1f); - if (temp_t7 < 0) - { - // Node 5 - if (temp_t5_2 != 0) - { - // Node 6 +s32 debmenu7000AF98(s32 height) { + s32 x; + s32 y; + s32 ret; + for (y = 33; y > 0; y--) { + s32 y2 = (y + height); + if (y2 >= 0 && y2 < 35) { + for (x = 0; x < 80; x++) { + debmenu7000AF84(x, y2, x, y); + } + } else { + for (x = 0; x < 80; x++) { + debmenuWriteCharAtPos(x, y, '\0'); } } - // Node 7 - string_formatting = temp_t5_2; - } - else - { - - } - // Node 8 - temp_v1 = (((arg0 * 0x46) + (arg1 * 2)) + &stdout_debug_menu_screen_buffer); - *temp_v1 = (s8) (arg2 & 0xff); - temp_v1->unk1 = temp_t5_2; - return; - // (possible return value: temp_t5_2) -} - -#else -GLOBAL_ASM( -.text -glabel display_text_to_coord -/* 00B9D0 7000ADD0 AFA60008 */ sw $a2, 8($sp) -/* 00B9D4 7000ADD4 30CE00FF */ andi $t6, $a2, 0xff -/* 00B9D8 7000ADD8 3C038002 */ lui $v1, %hi(debug_text_color) -/* 00B9DC 7000ADDC 3C088002 */ lui $t0, %hi(stdout_primary_color_table) -/* 00B9E0 7000ADE0 3C0A8002 */ lui $t2, %hi(stdout_environment_color_table) -/* 00B9E4 7000ADE4 3C098002 */ lui $t1, %hi(debug_text_bg_color) -/* 00B9E8 7000ADE8 01C03025 */ move $a2, $t6 -/* 00B9EC 7000ADEC AFA40000 */ sw $a0, ($sp) -/* 00B9F0 7000ADF0 252968B0 */ addiu $t1, %lo(debug_text_bg_color) # addiu $t1, $t1, 0x68b0 -/* 00B9F4 7000ADF4 254A6710 */ addiu $t2, %lo(stdout_environment_color_table) # addiu $t2, $t2, 0x6710 -/* 00B9F8 7000ADF8 25086610 */ addiu $t0, %lo(stdout_primary_color_table) # addiu $t0, $t0, 0x6610 -/* 00B9FC 7000ADFC 8C6368AC */ lw $v1, %lo(debug_text_color)($v1) -/* 00BA00 7000AE00 00001025 */ move $v0, $zero -/* 00BA04 7000AE04 00003825 */ move $a3, $zero -.L7000AE08: -/* 00BA08 7000AE08 8D0F0004 */ lw $t7, 4($t0) -/* 00BA0C 7000AE0C 25080008 */ addiu $t0, $t0, 8 -/* 00BA10 7000AE10 0147C821 */ addu $t9, $t2, $a3 -/* 00BA14 7000AE14 546F0006 */ bnel $v1, $t7, .L7000AE30 -/* 00BA18 7000AE18 24420001 */ addiu $v0, $v0, 1 -/* 00BA1C 7000AE1C 8D380004 */ lw $t8, 4($t1) -/* 00BA20 7000AE20 8F2B0004 */ lw $t3, 4($t9) -/* 00BA24 7000AE24 530B0020 */ beql $t8, $t3, .L7000AEA8 -/* 00BA28 7000AE28 8FAE0000 */ lw $t6, ($sp) -/* 00BA2C 7000AE2C 24420001 */ addiu $v0, $v0, 1 -.L7000AE30: -/* 00BA30 7000AE30 28410020 */ slti $at, $v0, 0x20 -/* 00BA34 7000AE34 1420FFF4 */ bnez $at, .L7000AE08 -/* 00BA38 7000AE38 24E70008 */ addiu $a3, $a3, 8 -/* 00BA3C 7000AE3C 3C078002 */ lui $a3, %hi(string_formatting) -/* 00BA40 7000AE40 24E76810 */ addiu $a3, %lo(string_formatting) # addiu $a3, $a3, 0x6810 -/* 00BA44 7000AE44 8CE30000 */ lw $v1, ($a3) -/* 00BA48 7000AE48 3C0E8002 */ lui $t6, %hi(stdout_primary_color) -/* 00BA4C 7000AE4C 25CE68A8 */ addiu $t6, %lo(stdout_primary_color) # addiu $t6, $t6, 0x68a8 -/* 00BA50 7000AE50 8DC10000 */ lw $at, ($t6) -/* 00BA54 7000AE54 3C0C8002 */ lui $t4, %hi(stdout_primary_color_table) -/* 00BA58 7000AE58 258C6610 */ addiu $t4, %lo(stdout_primary_color_table) # addiu $t4, $t4, 0x6610 -/* 00BA5C 7000AE5C 000320C0 */ sll $a0, $v1, 3 -/* 00BA60 7000AE60 008C6821 */ addu $t5, $a0, $t4 -/* 00BA64 7000AE64 ADA10000 */ sw $at, ($t5) -/* 00BA68 7000AE68 8DD90004 */ lw $t9, 4($t6) -/* 00BA6C 7000AE6C 0144C021 */ addu $t8, $t2, $a0 -/* 00BA70 7000AE70 246F0001 */ addiu $t7, $v1, 1 -/* 00BA74 7000AE74 ADB90004 */ sw $t9, 4($t5) -/* 00BA78 7000AE78 8D210000 */ lw $at, ($t1) -/* 00BA7C 7000AE7C AF010000 */ sw $at, ($t8) -/* 00BA80 7000AE80 8D2C0004 */ lw $t4, 4($t1) -/* 00BA84 7000AE84 AF0C0004 */ sw $t4, 4($t8) -/* 00BA88 7000AE88 05E10004 */ bgez $t7, .L7000AE9C -/* 00BA8C 7000AE8C 31ED001F */ andi $t5, $t7, 0x1f -/* 00BA90 7000AE90 11A00002 */ beqz $t5, .L7000AE9C -/* 00BA94 7000AE94 00000000 */ nop -/* 00BA98 7000AE98 25ADFFE0 */ addiu $t5, $t5, -0x20 -.L7000AE9C: -/* 00BA9C 7000AE9C ACED0000 */ sw $t5, ($a3) -/* 00BAA0 7000AEA0 01A01025 */ move $v0, $t5 -/* 00BAA4 7000AEA4 8FAE0000 */ lw $t6, ($sp) -.L7000AEA8: -/* 00BAA8 7000AEA8 00055840 */ sll $t3, $a1, 1 -/* 00BAAC 7000AEAC 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) -/* 00BAB0 7000AEB0 000EC8C0 */ sll $t9, $t6, 3 -/* 00BAB4 7000AEB4 032EC821 */ addu $t9, $t9, $t6 -/* 00BAB8 7000AEB8 0019C880 */ sll $t9, $t9, 2 -/* 00BABC 7000AEBC 032EC823 */ subu $t9, $t9, $t6 -/* 00BAC0 7000AEC0 0019C840 */ sll $t9, $t9, 1 -/* 00BAC4 7000AEC4 032BC021 */ addu $t8, $t9, $t3 -/* 00BAC8 7000AEC8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 -/* 00BACC 7000AECC 030C1821 */ addu $v1, $t8, $t4 -/* 00BAD0 7000AED0 A0660000 */ sb $a2, ($v1) -/* 00BAD4 7000AED4 03E00008 */ jr $ra -/* 00BAD8 7000AED8 A0620001 */ sb $v0, 1($v1) -) -#endif - - - - -void debugMenuSetTextPOStoOffset(void) -{ - debug_menu_x_text_pos = debug_menu_x_pos_offset; - debug_menu_y_text_pos = debug_menu_y_pos_offset; -} - - - - -void blank_debug_buffer_chars(void) -{ - int x; - int y; - - for (y = 0; y < 0x23; y++) - { - for (x = 0; x < 0x50; x++) - { - display_text_to_coord(x,y,'\0'); - } - } - debugMenuSetTextPOStoOffset(); - null_function_7000ADA0(); - string_formatting[0] = NULL; -} - - - - -void stubbed_function_7000AF84(s32 arg0, s32 arg1, s32 arg2, s32 arg3) -{ - return; -} - - - - - - -#ifdef NONMATCHING -void something_debug_info_related(s32 arg0) -{ - s32 temp_s0; - s32 temp_s0_2; - s32 phi_s3; - s32 phi_s0; - s32 phi_s1; - s32 phi_s0_2; - - phi_s3 = arg0 + 0x21; - phi_s1 = 0x21; -loop_1: - if ((phi_s3 >= 0) && (phi_s3 < 0x23)) - { -loop_3: - stubbed_function_7000AF84(phi_s0, phi_s3, phi_s0, phi_s1); - temp_s0 = phi_s0 + 1; - phi_s0 = temp_s0; - if (temp_s0 != 0x50) - { - goto loop_3; - } - } - else - { - phi_s0_2 = 0; -loop_6: - display_text_to_coord(phi_s0_2, phi_s1, 0); - temp_s0_2 = phi_s0_2 + 1; - phi_s0_2 = temp_s0_2; - if (temp_s0_2 != 0x50) - { - goto loop_6; - } - } - phi_s3 = phi_s3 - 1; - phi_s1 = phi_s1 - 1; - if (phi_s1 != 0) - { - goto loop_1; + ret = y; } + return ret; } #else GLOBAL_ASM( .text -glabel something_debug_info_related +glabel debmenu7000AF98 /* 00BB98 7000AF98 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 00BB9C 7000AF9C AFB30020 */ sw $s3, 0x20($sp) /* 00BBA0 7000AFA0 AFB2001C */ sw $s2, 0x1c($sp) @@ -419,7 +297,7 @@ glabel something_debug_info_related .L7000AFD0: /* 00BBD0 7000AFD0 02602825 */ move $a1, $s3 /* 00BBD4 7000AFD4 02003025 */ move $a2, $s0 -/* 00BBD8 7000AFD8 0C002BE1 */ jal stubbed_function_7000AF84 +/* 00BBD8 7000AFD8 0C002BE1 */ jal debmenu7000AF84 /* 00BBDC 7000AFDC 02203825 */ move $a3, $s1 /* 00BBE0 7000AFE0 26100001 */ addiu $s0, $s0, 1 /* 00BBE4 7000AFE4 5612FFFA */ bnel $s0, $s2, .L7000AFD0 @@ -431,7 +309,7 @@ glabel something_debug_info_related /* 00BBF8 7000AFF8 02002025 */ move $a0, $s0 .L7000AFFC: /* 00BBFC 7000AFFC 02202825 */ move $a1, $s1 -/* 00BC00 7000B000 0C002B74 */ jal display_text_to_coord +/* 00BC00 7000B000 0C002B74 */ jal debmenuWriteCharAtPos /* 00BC04 7000B004 00003025 */ move $a2, $zero /* 00BC08 7000B008 26100001 */ addiu $s0, $s0, 1 /* 00BC0C 7000B00C 5612FFFB */ bnel $s0, $s2, .L7000AFFC @@ -451,459 +329,125 @@ glabel something_debug_info_related ) #endif +void debmenuSetPosition(s32 x, s32 y) { + x += g_DebugMenuTextStartX; + y += g_DebugMenuTextStartY; + g_DebugMenuTextCurrentX = x; + g_DebugMenuTextCurrentY = y; +} +void debmenuSetPrimColor(s32 r, s32 g, s32 b, s32 a) { + g_DebugMenuPrimitiveColor.words.w1 = ((r << 24) | (g << 16) | (b << 8) | (255 - a)); +} + +void debmenuSetEnvColor(s32 r, s32 g, s32 b, s32 a) { + g_DebugMenuEnvironmentColor.words.w1 = ((r << 24) | (g << 16) | (b << 8) | (255 - a)); +} + +void debmenuWriteChar(unsigned char c) { + s32 width = ((viGetX() - 13) / 4); + s32 height = ((viGetY() - 10) / 7); + if ((c == '\0') || ((c >= ' ') && (c <= '~'))) { + debmenuWriteCharAtPos(g_DebugMenuTextCurrentX, g_DebugMenuTextCurrentY, c); + } + g_DebugMenuTextCurrentX++; + if ((c == '\r') || (c == '\n') || (g_DebugMenuTextCurrentX >= width)) { + g_DebugMenuTextCurrentX = g_DebugMenuTextStartX; + g_DebugMenuTextCurrentY++; + if (g_DebugMenuTextCurrentY >= height) { + g_DebugMenuTextCurrentY = g_DebugMenuTextStartY; + } + } +} + +void debmenuSetPositionAndWriteChar(s32 x, s32 y, unsigned char c) +{ + debmenuSetPosition(x, y); + debmenuWriteChar(c); +} + +void debmenuWriteString(const unsigned char *str) { + while (*str != '\0') { + debmenuWriteChar(*str++); + } +} + +void debmenuSetPositionAndWriteString(s32 x, s32 y, const unsigned char *str) { + debmenuSetPosition(x, y); + while (*str != '\0') { + debmenuWriteChar(*str++); + } +} #ifdef NONMATCHING -void set_final_debug_text_positions(s32 xadjust,s32 yadjust) -{ - debug_menu_x_text_pos = xadjust + debug_menu_x_pos_offset; - debug_menu_y_text_pos = yadjust + debug_menu_y_pos_offset; -} -#else -GLOBAL_ASM( -.text -glabel set_final_debug_text_positions -/* 00BC40 7000B040 3C0E8002 */ lui $t6, %hi(debug_menu_x_pos_offset) -/* 00BC44 7000B044 8DCE4FA0 */ lw $t6, %lo(debug_menu_x_pos_offset)($t6) -/* 00BC48 7000B048 3C0F8002 */ lui $t7, %hi(debug_menu_y_pos_offset) -/* 00BC4C 7000B04C 8DEF4FA4 */ lw $t7, %lo(debug_menu_y_pos_offset)($t7) -/* 00BC50 7000B050 3C018002 */ lui $at, %hi(debug_menu_x_text_pos) -/* 00BC54 7000B054 008E2021 */ addu $a0, $a0, $t6 -/* 00BC58 7000B058 AC244FA8 */ sw $a0, %lo(debug_menu_x_text_pos)($at) -/* 00BC5C 7000B05C 3C018002 */ lui $at, %hi(debug_menu_y_text_pos) -/* 00BC60 7000B060 00AF2821 */ addu $a1, $a1, $t7 -/* 00BC64 7000B064 03E00008 */ jr $ra -/* 00BC68 7000B068 AC254FAC */ sw $a1, %lo(debug_menu_y_text_pos)($at) -) -#endif - - - - - - -void set_debug_text_color(s32 red,s32 blue,s32 green,s32 alpha) -{ - debug_text_color = red << 0x18 | blue << 0x10 | green << 8 | 0xffU - alpha; -} - - -void set_color_speedgraph(s32 red,s32 green,s32 blue,s32 alpha) -{ - speedgraph_color = red << 0x18 | green << 0x10 | blue << 8 | 0xffU - alpha; -} - - - - - -#ifdef NONMATCHING -void write_char_to_screen(u8 character) - -{ - short txtClipW; - short txtClipH; - int start_pos; - - txtClipW = get_video2_settings_txtClipW(); - start_pos = (int)txtClipW + -0xd; - if (start_pos < 0) { - start_pos = (int)txtClipW + -10; - } - txtClipH = get_video2_settings_txtClipH(); - if ((character == 0) || ((0x1f < character && (character < 0x7f)))) { - display_text_to_coord(debug_menu_x_text_pos,debug_menu_y_text_pos,character); - } - debug_menu_x_text_pos += 1; - if (((character == 0xd) || (character == 10)) || (start_pos >> 2 <= debug_menu_x_text_pos)) { - debug_menu_y_text_pos += 1; - debug_menu_x_text_pos = debug_menu_x_pos_offset; - if (((int)txtClipH + -10) / 7 <= debug_menu_y_text_pos) { - debug_menu_y_text_pos = debug_menu_y_pos_offset; - } - } -} -#else -GLOBAL_ASM( -.text -glabel write_char_to_screen -/* 00BCC4 7000B0C4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 00BCC8 7000B0C8 AFBF0014 */ sw $ra, 0x14($sp) -/* 00BCCC 7000B0CC 0C001107 */ jal get_video2_settings_txtClipW -/* 00BCD0 7000B0D0 AFA40028 */ sw $a0, 0x28($sp) -/* 00BCD4 7000B0D4 244EFFF3 */ addiu $t6, $v0, -0xd -/* 00BCD8 7000B0D8 05C10003 */ bgez $t6, .L7000B0E8 -/* 00BCDC 7000B0DC 000E7883 */ sra $t7, $t6, 2 -/* 00BCE0 7000B0E0 25C10003 */ addiu $at, $t6, 3 -/* 00BCE4 7000B0E4 00017883 */ sra $t7, $at, 2 -.L7000B0E8: -/* 00BCE8 7000B0E8 0C00110B */ jal get_video2_settings_txtClipH -/* 00BCEC 7000B0EC AFAF0024 */ sw $t7, 0x24($sp) -/* 00BCF0 7000B0F0 2448FFF6 */ addiu $t0, $v0, -0xa -/* 00BCF4 7000B0F4 24010007 */ li $at, 7 -/* 00BCF8 7000B0F8 0101001A */ div $zero, $t0, $at -/* 00BCFC 7000B0FC 93A6002B */ lbu $a2, 0x2b($sp) -/* 00BD00 7000B100 00004012 */ mflo $t0 -/* 00BD04 7000B104 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) -/* 00BD08 7000B108 10C00005 */ beqz $a2, .L7000B120 -/* 00BD0C 7000B10C 00C01825 */ move $v1, $a2 -/* 00BD10 7000B110 28610020 */ slti $at, $v1, 0x20 -/* 00BD14 7000B114 1420000C */ bnez $at, .L7000B148 -/* 00BD18 7000B118 2861007F */ slti $at, $v1, 0x7f -/* 00BD1C 7000B11C 1020000A */ beqz $at, .L7000B148 -.L7000B120: -/* 00BD20 7000B120 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) -/* 00BD24 7000B124 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac -/* 00BD28 7000B128 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 -/* 00BD2C 7000B12C 8C440000 */ lw $a0, ($v0) -/* 00BD30 7000B130 8CE50000 */ lw $a1, ($a3) -/* 00BD34 7000B134 AFA3001C */ sw $v1, 0x1c($sp) -/* 00BD38 7000B138 0C002B74 */ jal display_text_to_coord -/* 00BD3C 7000B13C AFA80020 */ sw $t0, 0x20($sp) -/* 00BD40 7000B140 8FA3001C */ lw $v1, 0x1c($sp) -/* 00BD44 7000B144 8FA80020 */ lw $t0, 0x20($sp) -.L7000B148: -/* 00BD48 7000B148 3C028002 */ lui $v0, %hi(debug_menu_x_text_pos) -/* 00BD4C 7000B14C 24424FA8 */ addiu $v0, %lo(debug_menu_x_text_pos) # addiu $v0, $v0, 0x4fa8 -/* 00BD50 7000B150 8C590000 */ lw $t9, ($v0) -/* 00BD54 7000B154 3C078002 */ lui $a3, %hi(debug_menu_y_text_pos) -/* 00BD58 7000B158 2401000D */ li $at, 13 -/* 00BD5C 7000B15C 27290001 */ addiu $t1, $t9, 1 -/* 00BD60 7000B160 24E74FAC */ addiu $a3, %lo(debug_menu_y_text_pos) # addiu $a3, $a3, 0x4fac -/* 00BD64 7000B164 10610007 */ beq $v1, $at, .L7000B184 -/* 00BD68 7000B168 AC490000 */ sw $t1, ($v0) -/* 00BD6C 7000B16C 2401000A */ li $at, 10 -/* 00BD70 7000B170 10610004 */ beq $v1, $at, .L7000B184 -/* 00BD74 7000B174 8FAB0024 */ lw $t3, 0x24($sp) -/* 00BD78 7000B178 012B082A */ slt $at, $t1, $t3 -/* 00BD7C 7000B17C 5420000D */ bnezl $at, .L7000B1B4 -/* 00BD80 7000B180 8FBF0014 */ lw $ra, 0x14($sp) -.L7000B184: -/* 00BD84 7000B184 8CED0000 */ lw $t5, ($a3) -/* 00BD88 7000B188 3C0C8002 */ lui $t4, %hi(debug_menu_x_pos_offset) -/* 00BD8C 7000B18C 8D8C4FA0 */ lw $t4, %lo(debug_menu_x_pos_offset)($t4) -/* 00BD90 7000B190 25AE0001 */ addiu $t6, $t5, 1 -/* 00BD94 7000B194 01C8082A */ slt $at, $t6, $t0 -/* 00BD98 7000B198 ACEE0000 */ sw $t6, ($a3) -/* 00BD9C 7000B19C 14200004 */ bnez $at, .L7000B1B0 -/* 00BDA0 7000B1A0 AC4C0000 */ sw $t4, ($v0) -/* 00BDA4 7000B1A4 3C188002 */ lui $t8, %hi(debug_menu_y_pos_offset) -/* 00BDA8 7000B1A8 8F184FA4 */ lw $t8, %lo(debug_menu_y_pos_offset)($t8) -/* 00BDAC 7000B1AC ACF80000 */ sw $t8, ($a3) -.L7000B1B0: -/* 00BDB0 7000B1B0 8FBF0014 */ lw $ra, 0x14($sp) -.L7000B1B4: -/* 00BDB4 7000B1B4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 00BDB8 7000B1B8 03E00008 */ jr $ra -/* 00BDBC 7000B1BC 00000000 */ nop -) -#endif - - - - -void debug_printcharatpos(int x,int y, u8 character) -{ - set_final_debug_text_positions(x,y); - write_char_to_screen(character); -} - - - -#ifdef NONMATCHING -void write_string_stdout(void *arg0) -{ - void *temp_s1; - s32 phi_s0; - void *phi_s1; - - phi_s0 = *arg0; - phi_s1 = arg0; - if (*arg0 != 0) - { -loop_1: - temp_s1 = phi_s1 + 1; - write_char_to_screen(phi_s0 & 0xff); - phi_s0 = *temp_s1; - phi_s1 = temp_s1; - if (*temp_s1 != 0) - { - goto loop_1; - } - } -} -#else -GLOBAL_ASM( -.text -glabel write_string_stdout -/* 00BDE8 7000B1E8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00BDEC 7000B1EC AFBF001C */ sw $ra, 0x1c($sp) -/* 00BDF0 7000B1F0 AFB10018 */ sw $s1, 0x18($sp) -/* 00BDF4 7000B1F4 AFB00014 */ sw $s0, 0x14($sp) -/* 00BDF8 7000B1F8 90900000 */ lbu $s0, ($a0) -/* 00BDFC 7000B1FC 00808825 */ move $s1, $a0 -/* 00BE00 7000B200 12000006 */ beqz $s0, .L7000B21C -/* 00BE04 7000B204 320400FF */ andi $a0, $s0, 0xff -.L7000B208: -/* 00BE08 7000B208 0C002C31 */ jal write_char_to_screen -/* 00BE0C 7000B20C 26310001 */ addiu $s1, $s1, 1 -/* 00BE10 7000B210 92300000 */ lbu $s0, ($s1) -/* 00BE14 7000B214 5600FFFC */ bnezl $s0, .L7000B208 -/* 00BE18 7000B218 320400FF */ andi $a0, $s0, 0xff -.L7000B21C: -/* 00BE1C 7000B21C 8FBF001C */ lw $ra, 0x1c($sp) -/* 00BE20 7000B220 8FB00014 */ lw $s0, 0x14($sp) -/* 00BE24 7000B224 8FB10018 */ lw $s1, 0x18($sp) -/* 00BE28 7000B228 03E00008 */ jr $ra -/* 00BE2C 7000B22C 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - -#ifdef NONMATCHING -void debug_text_related(void *arg2) -{ - void *temp_s1; - s32 phi_s0; - void *phi_s1; - - set_final_debug_text_positions(); - phi_s0 = *arg2; - phi_s1 = arg2; - if (*arg2 != 0) - { -loop_1: - temp_s1 = phi_s1 + 1; - write_char_to_screen(phi_s0 & 0xff); - phi_s0 = *temp_s1; - phi_s1 = temp_s1; - if (*temp_s1 != 0) - { - goto loop_1; - } - } -} -#else -GLOBAL_ASM( -.text -glabel debug_text_related -/* 00BE30 7000B230 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00BE34 7000B234 AFBF001C */ sw $ra, 0x1c($sp) -/* 00BE38 7000B238 AFB10018 */ sw $s1, 0x18($sp) -/* 00BE3C 7000B23C 00C08825 */ move $s1, $a2 -/* 00BE40 7000B240 0C002C10 */ jal set_final_debug_text_positions -/* 00BE44 7000B244 AFB00014 */ sw $s0, 0x14($sp) -/* 00BE48 7000B248 92300000 */ lbu $s0, ($s1) -/* 00BE4C 7000B24C 12000006 */ beqz $s0, .L7000B268 -/* 00BE50 7000B250 320400FF */ andi $a0, $s0, 0xff -.L7000B254: -/* 00BE54 7000B254 0C002C31 */ jal write_char_to_screen -/* 00BE58 7000B258 26310001 */ addiu $s1, $s1, 1 -/* 00BE5C 7000B25C 92300000 */ lbu $s0, ($s1) -/* 00BE60 7000B260 5600FFFC */ bnezl $s0, .L7000B254 -/* 00BE64 7000B264 320400FF */ andi $a0, $s0, 0xff -.L7000B268: -/* 00BE68 7000B268 8FBF001C */ lw $ra, 0x1c($sp) -/* 00BE6C 7000B26C 8FB00014 */ lw $s0, 0x14($sp) -/* 00BE70 7000B270 8FB10018 */ lw $s1, 0x18($sp) -/* 00BE74 7000B274 03E00008 */ jr $ra -/* 00BE78 7000B278 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - -#ifdef NONMATCHING -void *read_screen_display_block_and_write_chars(void *arg0) -{ - s32 sp40; - s32 temp_a0; - s32 temp_a0_2; - s32 temp_a1; - s32 temp_a1_2; - s32 temp_a2; - s32 temp_s1; - s32 temp_s3; - s32 temp_s5; - s32 temp_t0; - s32 temp_v0; - s32 temp_v1; - s32 temp_v1_2; - s32 temp_v1_3; - s32 temp_v1_4; - void *temp_a1_3; - void *temp_s0; - void *temp_s0_2; - void *temp_t5; - void *temp_t8; - void *temp_v0_2; - void *phi_a0; - s32 phi_a2; - s32 phi_a1; - s32 phi_t0; - s32 phi_a2_2; - void *phi_s1; - void *phi_s2; - s32 phi_s4; - void *phi_s0; - void *phi_s0_2; - s32 phi_s1_2; - s32 phi_s5; - void *phi_s0_3; - void *phi_s1_3; - void *phi_s1_4; - s32 phi_s4_2; - s32 phi_s4_3; - - phi_t0 = 0; - phi_a2 = -1; - phi_s1_4 = arg0; -loop_1: - temp_a1 = 0x80020000 + 0x5030; - phi_a0 = phi_t0 + temp_a1; - phi_a1 = temp_a1; -loop_2: - temp_a1_2 = phi_a1 + 0x46; - temp_v1 = phi_a0->unk1; - phi_a2_2 = phi_a2; - phi_s1 = phi_s1_4; - if (phi_a0->unk0 != 0) - { - phi_a2_2 = phi_a2; - phi_s1_3 = phi_s1_4; - if (temp_v1 != phi_a2) - { - phi_a2_2 = temp_v1; - phi_s1_3 = phi_s1_4 + 0x10; - } - phi_s1 = phi_s1_3 + 0x18; - } - phi_a0 = phi_a0 + 0x46; - phi_a2 = phi_a2_2; - phi_a1 = temp_a1_2; - phi_s1_4 = phi_s1; - if (temp_a1_2 != &stdout_primary_color_table) - { - goto loop_2; - } - temp_t0 = phi_t0 + 2; - phi_t0 = temp_t0; - phi_a2 = phi_a2_2; - phi_s1_4 = phi_s1; - if (temp_t0 < 0x46) - { - goto loop_1; - } - temp_a0 = phi_s1 - arg0; - temp_v1_2 = num_microcode_cmds_that_fit(arg0, temp_a1_2, phi_a2_2, &stdout_primary_color_table) + -0x800; - if (temp_a0 <= 0) - { - return arg0; - } - if (temp_v1_2 <= 0) - { - D_800268B8 = 0; -block_15: - } - else - { - if (temp_v1_2 < temp_a0) - { - D_800268B8 = (s32) ((s32) (temp_v1_2 * 0xff) / temp_a0); - } - else - { - D_800268B8 = 0x100; - goto block_15; - } - } - arg0->unk0 = 0x6000000; - arg0->unk4 = &stdout_display_list; - sp40 = 0; - phi_s5 = 0; - phi_s4 = -1; - phi_s0 = arg0 + 8; -loop_17: - phi_s2 = sp40 + &stdout_debug_menu_screen_buffer; - phi_s1_2 = 0; -loop_18: - temp_s3 = phi_s2->unk0; - temp_v1_3 = phi_s2->unk1; - phi_s0_3 = phi_s0; - phi_s4_2 = phi_s4; - if (temp_s3 != 0) - { - temp_v0 = temp_v1_3 * 8; - phi_s0_2 = phi_s0; - phi_s4_3 = phi_s4; - if (temp_v1_3 != phi_s4) - { - temp_t5 = &stdout_primary_color_table + temp_v0; - temp_t8 = &stdout_environment_color_table + temp_v0; - temp_s0 = phi_s0 + 0x10; - temp_s0->unk-10 = (?32) temp_t5->unk0; - temp_s0->unk-C = (?32) temp_t5->unk4; - temp_s0->unk-8 = (?32) temp_t8->unk0; - temp_s0->unk-4 = (?32) temp_t8->unk4; - phi_s0_2 = temp_s0; - phi_s4_3 = temp_v1_3; - } - phi_s0_3 = phi_s0_2; - phi_s4_2 = phi_s4_3; - if ((u32) (get_random_value() & 0xff) < (u32) D_800268B8) - { - temp_v0_2 = phi_s0_2; - phi_s0_3 = phi_s0_2; - phi_s4_2 = phi_s4_3; - if (num_microcode_cmds_that_fit(phi_s0_2) >= 0x400) - { - temp_v1_4 = phi_s1_2 * 0x10; - temp_a0_2 = ((phi_s5 * 8) - phi_s5) * 4; - temp_a2 = temp_s3 + -0x20; - temp_s0_2 = phi_s0_2 + 8; - temp_a1_3 = temp_s0_2; - temp_v0_2->unk0 = (s32) (((((temp_v1_4 + 0x10) & 0xfff) << 0xc) | 0xe4000000) | ((temp_a0_2 + 0x1c) & 0xfff)); - temp_v0_2->unk4 = (s32) (((temp_v1_4 & 0xfff) << 0xc) | (temp_a0_2 & 0xfff)); - temp_s0_2 = temp_s0_2 + 8; - temp_a1_3->unk0 = 0xb4000000; - temp_a1_3->unk4 = (s32) (((temp_a2 & 0x1f) << 0x17) | (((temp_a2 >> 5) * 0xe0) & 0xffff)); - temp_s0_2->unk0 = 0xb3000000; - temp_s0_2->unk4 = 0x4000400; - phi_s0_3 = temp_s0_2 + 8; - phi_s4_2 = phi_s4_3; +u32 get_random_value(void); +// Decent attempt but still lots of diffs +Gfx *debmenuDraw(Gfx *gdl) { + s32 y; + s32 x; + s32 index = -1; + Gfx *end; + s32 size; + s32 free; + for (y = 0; y < 35; y++) { + for (x = 0; x < 80; x++) { + u8 var = g_DebugMenuTextBuffer[x][y].color; + if (g_DebugMenuTextBuffer[x][y].chr != '\0') { + if (var != index) { + end += 2; + index = var; + } + end += 3; } } } - temp_s1 = phi_s1_2 + 1; - phi_s2 = phi_s2 + 0x46; - phi_s4 = phi_s4_2; - phi_s0 = phi_s0_3; - phi_s1_2 = temp_s1; - if (temp_s1 != 0x50) - { - goto loop_18; + size = ((u8*)end - (u8*)gdl); + free = dynGetFreeGfx(gdl); + if (size <= 0) { + return gdl; } - temp_s5 = phi_s5 + 1; - sp40 = (s32) (sp40 + 2); - phi_s5 = temp_s5; - phi_s4 = phi_s4_2; - phi_s0 = phi_s0_3; - if (temp_s5 != 0x23) - { - goto loop_17; + free -= 2048; + if (free <= 0) { + g_DebugMenuRandomThreshold = 0; + } else if (free < size) { + g_DebugMenuRandomThreshold = ((free * 255) / size); + } else { + g_DebugMenuRandomThreshold = 256; } - return phi_s0_3; + gSPDisplayList(gdl++, g_DebugMenuTextureDisplayList); + index = -1; + for (y = 0; y < 35; y++) { + for (x = 0; x < 80; x++) { + character *ptr = &g_DebugMenuTextBuffer[x][y]; + u32 var2 = ptr->chr; + u8 var1 = ptr->color; + if (var2 != '\0') { + if (var1 != index) { + *(gdl++) = g_DebugMenuPrimitiveColors[var1]; + *(gdl++) = g_DebugMenuEnvironmentColors[var1]; + index = var1; + } + if ((randomGetNext() & 0xFF) < g_DebugMenuRandomThreshold) { + if (dynGetFreeGfx(gdl) >= 1024) { + s32 s = ((var2 - 32) % 32); + s32 t = ((var2 - 32) / 32); + gSPTextureRectangle(gdl++, ((x * 4) * 4), ((y * 7) * 4), (((x + 1) * 4) * 4), (((y + 1) * 7) * 4), G_TX_RENDERTILE, ((s * 4) * 32), ((t * 7) * 32), (1 << 10), (1 << 10)); + } + } + } + } + } + return gdl; } #else GLOBAL_ASM( .text -glabel read_screen_display_block_and_write_chars +glabel debmenuDraw /* 00BE7C 7000B27C 27BDFF78 */ addiu $sp, $sp, -0x88 /* 00BE80 7000B280 AFB5002C */ sw $s5, 0x2c($sp) /* 00BE84 7000B284 AFB1001C */ sw $s1, 0x1c($sp) /* 00BE88 7000B288 AFB00018 */ sw $s0, 0x18($sp) -/* 00BE8C 7000B28C 3C078002 */ lui $a3, %hi(stdout_primary_color_table) +/* 00BE8C 7000B28C 3C078002 */ lui $a3, %hi(g_DebugMenuPrimitiveColors) /* 00BE90 7000B290 00808025 */ move $s0, $a0 /* 00BE94 7000B294 AFBF003C */ sw $ra, 0x3c($sp) /* 00BE98 7000B298 AFBE0038 */ sw $fp, 0x38($sp) @@ -914,12 +458,12 @@ glabel read_screen_display_block_and_write_chars /* 00BEAC 7000B2AC AFB20020 */ sw $s2, 0x20($sp) /* 00BEB0 7000B2B0 00808825 */ move $s1, $a0 /* 00BEB4 7000B2B4 2406FFFF */ li $a2, -1 -/* 00BEB8 7000B2B8 24E76610 */ addiu $a3, %lo(stdout_primary_color_table) # addiu $a3, $a3, 0x6610 +/* 00BEB8 7000B2B8 24E76610 */ addiu $a3, %lo(g_DebugMenuPrimitiveColors) # addiu $a3, $a3, 0x6610 /* 00BEBC 7000B2BC 0000A825 */ move $s5, $zero /* 00BEC0 7000B2C0 00004025 */ move $t0, $zero .L7000B2C4: -/* 00BEC4 7000B2C4 3C0E8002 */ lui $t6, %hi(stdout_debug_menu_screen_buffer) -/* 00BEC8 7000B2C8 25C55030 */ addiu $a1, $t6, %lo(stdout_debug_menu_screen_buffer) +/* 00BEC4 7000B2C4 3C0E8002 */ lui $t6, %hi(g_DebugMenuTextBuffer) +/* 00BEC8 7000B2C8 25C55030 */ addiu $a1, $t6, %lo(g_DebugMenuTextBuffer) /* 00BECC 7000B2CC 01052021 */ addu $a0, $t0, $a1 .L7000B2D0: /* 00BED0 7000B2D0 90820000 */ lbu $v0, ($a0) @@ -939,7 +483,7 @@ glabel read_screen_display_block_and_write_chars /* 00BF04 7000B304 29010046 */ slti $at, $t0, 0x46 /* 00BF08 7000B308 1420FFEE */ bnez $at, .L7000B2C4 /* 00BF0C 7000B30C 00000000 */ nop -/* 00BF10 7000B310 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00BF10 7000B310 0FC2F5DF */ jal dynGetFreeGfx /* 00BF14 7000B314 02002025 */ move $a0, $s0 /* 00BF18 7000B318 02302023 */ subu $a0, $s1, $s0 /* 00BF1C 7000B31C 1C800003 */ bgtz $a0, .L7000B32C @@ -949,9 +493,9 @@ glabel read_screen_display_block_and_write_chars .L7000B32C: /* 00BF2C 7000B32C 1C600004 */ bgtz $v1, .L7000B340 /* 00BF30 7000B330 2414FFFF */ li $s4, -1 -/* 00BF34 7000B334 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF34 7000B334 3C018002 */ lui $at, %hi(g_DebugMenuRandomThreshold) /* 00BF38 7000B338 10000017 */ b .L7000B398 -/* 00BF3C 7000B33C AC2068B8 */ sw $zero, %lo(D_800268B8)($at) +/* 00BF3C 7000B33C AC2068B8 */ sw $zero, %lo(g_DebugMenuRandomThreshold)($at) .L7000B340: /* 00BF40 7000B340 0064082A */ slt $at, $v1, $a0 /* 00BF44 7000B344 10200011 */ beqz $at, .L7000B38C @@ -969,35 +513,35 @@ glabel read_screen_display_block_and_write_chars /* 00BF70 7000B370 00000000 */ nop /* 00BF74 7000B374 0006000D */ break 6 .L7000B378: -/* 00BF78 7000B378 3C018002 */ lui $at, %hi(D_800268B8) +/* 00BF78 7000B378 3C018002 */ lui $at, %hi(g_DebugMenuRandomThreshold) /* 00BF7C 7000B37C 0000C012 */ mflo $t8 -/* 00BF80 7000B380 AC3868B8 */ sw $t8, %lo(D_800268B8)($at) +/* 00BF80 7000B380 AC3868B8 */ sw $t8, %lo(g_DebugMenuRandomThreshold)($at) /* 00BF84 7000B384 10000005 */ b .L7000B39C /* 00BF88 7000B388 02001025 */ move $v0, $s0 .L7000B38C: /* 00BF8C 7000B38C 24190100 */ li $t9, 256 -/* 00BF90 7000B390 3C018002 */ lui $at, %hi(D_800268B8) -/* 00BF94 7000B394 AC3968B8 */ sw $t9, %lo(D_800268B8)($at) +/* 00BF90 7000B390 3C018002 */ lui $at, %hi(g_DebugMenuRandomThreshold) +/* 00BF94 7000B394 AC3968B8 */ sw $t9, %lo(g_DebugMenuRandomThreshold)($at) .L7000B398: /* 00BF98 7000B398 02001025 */ move $v0, $s0 .L7000B39C: -/* 00BF9C 7000B39C 3C0A8002 */ lui $t2, %hi(stdout_display_list) -/* 00BFA0 7000B3A0 254A4FB0 */ addiu $t2, %lo(stdout_display_list) # addiu $t2, $t2, 0x4fb0 +/* 00BF9C 7000B39C 3C0A8002 */ lui $t2, %hi(g_DebugMenuTextureDisplayList) +/* 00BFA0 7000B3A0 254A4FB0 */ addiu $t2, %lo(g_DebugMenuTextureDisplayList) # addiu $t2, $t2, 0x4fb0 /* 00BFA4 7000B3A4 3C090600 */ lui $t1, 0x600 /* 00BFA8 7000B3A8 AC490000 */ sw $t1, ($v0) /* 00BFAC 7000B3AC AC4A0004 */ sw $t2, 4($v0) -/* 00BFB0 7000B3B0 3C1E8002 */ lui $fp, %hi(stdout_environment_color_table) -/* 00BFB4 7000B3B4 3C178002 */ lui $s7, %hi(stdout_primary_color_table) +/* 00BFB0 7000B3B0 3C1E8002 */ lui $fp, %hi(g_DebugMenuEnvironmentColors) +/* 00BFB4 7000B3B4 3C178002 */ lui $s7, %hi(g_DebugMenuPrimitiveColors) /* 00BFB8 7000B3B8 26100008 */ addiu $s0, $s0, 8 -/* 00BFBC 7000B3BC 26F76610 */ addiu $s7, %lo(stdout_primary_color_table) # addiu $s7, $s7, 0x6610 -/* 00BFC0 7000B3C0 27DE6710 */ addiu $fp, %lo(stdout_environment_color_table) # addiu $fp, $fp, 0x6710 +/* 00BFBC 7000B3BC 26F76610 */ addiu $s7, %lo(g_DebugMenuPrimitiveColors) # addiu $s7, $s7, 0x6610 +/* 00BFC0 7000B3C0 27DE6710 */ addiu $fp, %lo(g_DebugMenuEnvironmentColors) # addiu $fp, $fp, 0x6710 /* 00BFC4 7000B3C4 AFA00040 */ sw $zero, 0x40($sp) /* 00BFC8 7000B3C8 0000A825 */ move $s5, $zero /* 00BFCC 7000B3CC 24160050 */ li $s6, 80 .L7000B3D0: /* 00BFD0 7000B3D0 8FAB0040 */ lw $t3, 0x40($sp) -/* 00BFD4 7000B3D4 3C0C8002 */ lui $t4, %hi(stdout_debug_menu_screen_buffer) -/* 00BFD8 7000B3D8 258C5030 */ addiu $t4, %lo(stdout_debug_menu_screen_buffer) # addiu $t4, $t4, 0x5030 +/* 00BFD4 7000B3D4 3C0C8002 */ lui $t4, %hi(g_DebugMenuTextBuffer) +/* 00BFD8 7000B3D8 258C5030 */ addiu $t4, %lo(g_DebugMenuTextBuffer) # addiu $t4, $t4, 0x5030 /* 00BFDC 7000B3DC 00008825 */ move $s1, $zero /* 00BFE0 7000B3E0 016C9021 */ addu $s2, $t3, $t4 .L7000B3E4: @@ -1020,15 +564,15 @@ glabel read_screen_display_block_and_write_chars /* 00C024 7000B424 8F090004 */ lw $t1, 4($t8) /* 00C028 7000B428 AE09FFFC */ sw $t1, -4($s0) .L7000B42C: -/* 00C02C 7000B42C 0C002914 */ jal get_random_value +/* 00C02C 7000B42C 0C002914 */ jal randomGetNext /* 00C030 7000B430 00000000 */ nop -/* 00C034 7000B434 3C0B8002 */ lui $t3, %hi(D_800268B8) -/* 00C038 7000B438 8D6B68B8 */ lw $t3, %lo(D_800268B8)($t3) +/* 00C034 7000B434 3C0B8002 */ lui $t3, %hi(g_DebugMenuRandomThreshold) +/* 00C038 7000B438 8D6B68B8 */ lw $t3, %lo(g_DebugMenuRandomThreshold)($t3) /* 00C03C 7000B43C 304A00FF */ andi $t2, $v0, 0xff /* 00C040 7000B440 014B082B */ sltu $at, $t2, $t3 /* 00C044 7000B444 5020002F */ beql $at, $zero, .L7000B504 /* 00C048 7000B448 26310001 */ addiu $s1, $s1, 1 -/* 00C04C 7000B44C 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 00C04C 7000B44C 0FC2F5DF */ jal dynGetFreeGfx /* 00C050 7000B450 02002025 */ move $a0, $s0 /* 00C054 7000B454 28410400 */ slti $at, $v0, 0x400 /* 00C058 7000B458 14200029 */ bnez $at, .L7000B500 diff --git a/src/debugmenu.h b/src/debugmenu.h index 8e4b637..e735706 100644 --- a/src/debugmenu.h +++ b/src/debugmenu.h @@ -2,6 +2,14 @@ #define _DEBUGMENU_H_ #include -void blank_debug_buffer_chars(void); -void debugmenuInit_REMOVED(void); + +void debmenu7000ADA8(void); +void debmenuInit(void); +void debmenuReset(void); +void debmenuSetPosition(s32 x, s32 y); +void debmenuSetPrimColor(s32 r, s32 g, s32 b, s32 a); +void debmenuSetEnvColor(s32 r, s32 g, s32 b, s32 a); +void debmenuWriteString(const unsigned char *str); +Gfx *debmenuDraw(Gfx *gdl); + #endif diff --git a/src/game/bg.c b/src/game/bg.c index d089e60..4a54c49 100644 --- a/src/game/bg.c +++ b/src/game/bg.c @@ -250,237 +250,219 @@ u32 D_80044924 = 0; */ //D:80044928 Gfx D_80044928[] = { - 0xFC26A004, 0x1F1093FF, 0xFC232DFF, 0xFFFFFE38, - //gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), - //gDPSetCombineLERP(TEXEL1, 0, COMBINED_ALPHA, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), - 0x0,0x0 + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, 0, SCALE, 0, TEXEL1, 0, PRIM_LOD_FRAC, 0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + 0,0 }; //D:80044940 - Primary -Gfx D_80044940[] = { - 0xB900031D, 0x0C192078, 0xB900031D, 0xC8112078, - 0xB900031D, 0x0C182078, 0xB900031D, 0xC8102078, - 0xB900031D, 0x0C192D58, 0xB900031D, 0xC8112D58, - 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, - 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, - 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, - 0xB900031D, 0x0C192048, 0xB900031D, 0xC8112048, - 0xB900031D, 0x0C182048, 0xB900031D, 0xC8102048, - - /* +Gfx FogDL_primary_80044940[] = { //Add FOG to all rendermodes //Standard HiQuality Surface to Standard Fogable HiQuality Surface - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2), //Terrain to Fogable Terrain - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_TERR2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_TERR2), //Standard DECAL to FOG DECAL - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_DECAL2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_DECAL2), //Transparent DECAL to FOG Transparent DECAL - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), //Transparent Surface to FOG Transparent Surface - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp // See PGDLists\Transparent Textures.htm for more info - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), //Standard Z-Less OPA to Standard FOG Z-Less OPA - gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_SURF2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_SURF2), //Z-Less OPA Terrain to Z-Less Fog OPA Terrain - gDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), - */ -0x0, 0x0 + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_OPA_TERR2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_OPA_TERR2), + 0x0, 0x0 }; //D:800449C8 - Secondary -Gfx D_800449C8[] = { - 0xB900031D, 0x0C184DD8, 0xB900031D, 0xC8104DD8, - 0xB900031D, 0x0C1849D8, 0xB900031D, 0xC81049D8, - 0xB900031D, 0x0C193078, 0xB900031D, 0xC8113078, - 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, - 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, - 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, - 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, - 0xFC26A004, 0x1F1093FF, 0xFC26A004, 0x1F1493FF, - 0xFC121824, 0xFF33FFFF, 0xFC121A24, 0xFF37FFFF, - 0xFC26A004, 0x1FFC93FC, 0xFC26A004, 0x1FFC93FD, - 0xFC127E24, 0xFFFFF9FC, 0xFC127E24, 0xFFFFFBFD, - 0xFCFFFFFF, 0xFFFE7838, 0xFCFFFFFF, 0xFFFE7A38, - 0xFCFFFFFF, 0xFFFE793C, 0xFCFFFFFF, 0xFFFE7B3D, - 0xFC26E404, 0x1F10FFFF, 0xFC26E404, 0x1F14FFFF, - /* +Gfx FogDL_secondary_800449C8[] = { //Add FOG to Rendermodes //Transparent DECAL to FOG Transparent DECAL - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_DECAL2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_DECAL2), //Transparent Surface to FOG Transparent Surface - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_XLU_SURF2), // Billboard Cut-out to FOG Billboard Cut-out - eg, Mario Tree or Depot lamp - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), gDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), - + 0xB900031D, 0x0C193078, + 0xB900031D, 0xC8113078, // Swap all refrences to Shade in Alpha to Environment - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), - gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), - gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), // This one is an oddball... its extra here AND is weird using Tile1 only for Alpha - gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA) , gDPSetCombineMode(TLRGB_ATile1, ModulateRGB_EnvA2), - */ - 0x0, 0x0 + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + 0x0, + 0x0 }; //D:80044AB0 // Loaded once on first time entering level, only once ever -u64 D_80044AB0[] = { - 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, - 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, - 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, - 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, - 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, - 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, - 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, - 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, - 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, - 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, - /* - // Swap all refrences to Shade in Alpha to Environment - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA), - gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), - gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA), - */ - 0x0 +Gfx D_80044AB0[] = { + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + 0,0 }; //D:80044B58 // Loaded once on first time entering level, only once ever -u64 D_80044B58[] = { - 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, - 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, - 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, - 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, - 0xFC26A0041F1093FF, 0xFC26A0041F1493FF, - 0xFC121824FF33FFFF, 0xFC121A24FF37FFFF, - 0xFC26A0041FFC93FC, 0xFC26A0041FFC93FD, - 0xFC127E24FFFFF9FC, 0xFC127E24FFFFFBFD, - 0xFCFFFFFFFFFE7838, 0xFCFFFFFFFFFE7A38, - 0xFCFFFFFFFFFE793C, 0xFCFFFFFFFFFE7B3D, - /* - // Swap all refrences to Shade in Alpha to Environment - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineMode(G_CC_TRILERP, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_PASS2), - gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2) , gDPSetCombineMode(G_CC_SHADE_EnvA, G_CC_SHADE_EnvA2), - */ - 0x0 +Gfx D_80044B58[] = { + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT), + 0,0 }; //D:80044C00 -u64 D_80044C00[] = { - 0xB900031D005049D8, 0xB900031D00553078, - 0xB900031D0C1849D8, 0xB900031D0C193078, - /* +Gfx BillboardDL_80044C00[] = { //Transparent 1Cycle to BillBoard 1Cycle - gDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), //Transparent Surface to Billboard - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), - */ - 0x0 + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_TEX_EDGE2), + 0x0,0x0 }; //D:80044C28 //water -u64 D_80044C28[] = { - 0xB900031D00552078, 0xB900031D00502078, - 0xB900031D0C192078, 0xB900031D0C182078, +Gfx ParticleDL_80044C28[] = { + 0xB900031D, 0x00552078, 0xB900031D, 0x00502078, + 0xB900031D, 0x0C192078, 0xB900031D, 0x0C182078, /* //1 Cycle Opa to Particle gDPSetRenderMode(RM_AA_ZB_OPA_SURF, RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_AA_ZB_PCL_SURF, G_RM_AA_ZB_PCL_SURF2), //2 cycle Opa to Particle gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_PCL_SURF2), */ - 0x0 + 0x0, 0 }; //D:80044C50 -u64 D_80044C50[] = { - 0xB900031D0C1849D8, 0xB900031D0C184B50, - /* +Gfx transparent2cloudDL_80044C50[] = { //Transparent to Cloud (Saves AA - Stops Jaggies from appearing behind BillBoard) - gDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), - */ - 0x0 + gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2), gsDPSetRenderMode(G_RM_PASS, G_RM_ZB_CLD_SURF2), + 0,0 }; //D:80044C68 //(Wallet Bond - Main Menu) -u64 D_80044C68[] = { - 0xBA00140200000000, 0xBA00140200100000, //1Cycle --> 2Cycle - 0xB900031D00502048, 0xB900031D08D02048, - 0xFC127E24FFFFF9FC, 0xFC127FFFFFFFF838, +Gfx WalletBondDL_80044C68[] = { + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetCycleType(G_CYC_2CYCLE), //1Cycle --> 2Cycle + 0xB900031D, 0x00502048, + 0xB900031D, 0x08D02048, + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), /* //1 Cycle particle Surface to 2 Cycle colour + 1-a*Fog ??? gsDPSetCycleType(G_CYC_2CYCLE), gDPSetRenderMode(G_RM_AA_PCL_SURF, G_RM_AA_PCL_SURF2), gDPSetRenderMode(AA_EN | IM_RD | CVG_DST_CLAMP | ALPHA_CVG_SEL | ZMODE_OPA | GBL_c1(G_BL_CLR_IN, G_BL_A_SHADE, G_BL_CLR_FOG, G_BL_1MA) | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)), gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2), gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), */ - 0x0 + 0x0, 0 }; //D:80044CA0 -u64 D_80044CA0[] = { - 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, - 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, - 0xFC127E24FFFFF9FC, 0xFC137E26FFFFFBFD, - 0xFC121824FF33FFFF, 0xFC131A26FF37FFFF, - 0xFCFFFFFFFFFE793C, 0xFC637EC6FFFFFBFD, - 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, - 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, - 0xFC26A0041FFC93FC, 0xFC26A0061FFC93FD, - 0xFC26A0041F1093FF, 0xFC26A0061F1493FF, - 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, - 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, - 0xFC26E4041FFCFFFC, 0xFC26E4061FFCFFFD, - 0xFC26E4041F10FFFF, 0xFC26E4061F14FFFF, - 0xFCFFFFFFFFFE7838, 0xFC637FFFFFFFFA38, - /* - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB2) , gDPSetCombineMode(ModulateRGB_EnvA, ModulateRGB_EnvA2), - gDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA2) , gDPSetCombineMode(ModulateRGBA_EnvA, ModulateRGBA_EnvA2), - gDPSetCombineMode(G_CC_SHADE, G_CC_SHADE2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGB2) , gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), - gDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), - gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), - gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), - gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGB2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT), - gDPSetCombineMode(TLRGB_ATile1, G_CC_MODULATERGBA2), gDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, COMBINED_ALPHA, 0, COMBINED, 0, ENVIRONMENT, 0), - gDPSetCombineMode(G_CC_SHADE, G_CC_PASS2), gDPSetCombineLERP(CENTER, 0, COMBINED_ALPHA, 0, 0, 0, 0, ENVIRONMENT 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), - */ - 0x0 +Gfx D_80044CA0[] = { + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE, TEXEL0, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SCALE, 0, TEXEL0, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, SHADE), + gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEI2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineMode(G_CC_TRILERP, G_CC_MODULATEIA2), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, 0, 0, 0, SHADE), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + gsDPSetCombineLERP(TEXEL1, TEXEL0, LOD_FRACTION, TEXEL0, 1, 0, TEXEL1, 0, COMBINED, 0, SCALE, 0, COMBINED, 0, ENVIRONMENT, 0), + gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, SHADE, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + gsDPSetCombineLERP(CENTER, 0, SCALE, 0, 0, 0, 0, ENVIRONMENT, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED), + 0,0 }; //D:80044D88 s32 *ptrDynamic_CC_RM_LUT[] = { - &D_80044928, &D_80044940, &D_80044C00, &D_80044C28, &D_80044C50, - &D_800449C8, &D_80044AB0, &D_80044B58, &D_80044C68, &D_80044CA0 + &D_80044928, &FogDL_primary_80044940, &BillboardDL_80044C00, &ParticleDL_80044C28, &transparent2cloudDL_80044C50, + &FogDL_secondary_800449C8, &D_80044AB0, &D_80044B58, &WalletBondDL_80044C68, &D_80044CA0 }; //D:80044DB0 s32 D_80044DB0 = 0; @@ -492,7 +474,7 @@ s32 D_80044DB0 = 0; void bgInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug"); + debTryAdd(&ptr_bg_c_debug_debug_notice_list, "bg_c_debug"); } @@ -2883,7 +2865,7 @@ void sub_GAME_7F0B5208(s32 arg0, void *arg1) { s32 phi_s3_3; // Node 0 - video_related_27(&sp3C); + viGetZRange(&sp3C); sp40 = (f32) (sp40 / D_800413FC); phi_v1 = 0; phi_a2 = ((arg0 * 0x50) + &array_room_info); @@ -3077,7 +3059,7 @@ glabel sub_GAME_7F0B5208 /* 0E9D70 7F0B5240 00009825 */ move $s3, $zero /* 0E9D74 7F0B5244 0000A025 */ move $s4, $zero /* 0E9D78 7F0B5248 0000A825 */ move $s5, $zero -/* 0E9D7C 7F0B524C 0C0011AB */ jal video_related_27 +/* 0E9D7C 7F0B524C 0C0011AB */ jal viGetZRange /* 0E9D80 7F0B5250 27A4003C */ addiu $a0, $sp, 0x3c /* 0E9D84 7F0B5254 3C018004 */ lui $at, %hi(D_800413FC) /* 0E9D88 7F0B5258 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) @@ -3347,7 +3329,7 @@ glabel sub_GAME_7F0B5528 /* 0EA09C 7F0B556C AFA400B0 */ sw $a0, 0xb0($sp) /* 0EA0A0 7F0B5570 AFA200AC */ sw $v0, 0xac($sp) /* 0EA0A4 7F0B5574 241E0001 */ li $fp, 1 -/* 0EA0A8 7F0B5578 0C0011AB */ jal video_related_27 +/* 0EA0A8 7F0B5578 0C0011AB */ jal viGetZRange /* 0EA0AC 7F0B557C 27A40098 */ addiu $a0, $sp, 0x98 /* 0EA0B0 7F0B5580 3C018004 */ lui $at, %hi(D_800413FC) /* 0EA0B4 7F0B5584 C42613FC */ lwc1 $f6, %lo(D_800413FC)($at) @@ -4869,11 +4851,11 @@ void sub_GAME_7F0B6368(s32 rooms) { { // Node 5 sp1C = temp_v1; - sp2C = mem_related_0(0); + sp2C = memaGetLargestAllocSize(0); } // Node 6 sp1C = (void *) temp_v1; - temp_ret = mem_related_something_find_first(sp2C, sp28); + temp_ret = memaFree(sp2C, sp28); temp_v1_2 = temp_v1; sp20 = temp_ret; if (temp_ret != 0) @@ -4948,7 +4930,7 @@ void sub_GAME_7F0B6368(s32 rooms) { { // Node 19 sp1C = (void *) phi_v1_2; - mem_related_1(sp20, sp2C, temp_t1, phi_a3_2); + memaResize(sp20, sp2C, temp_t1, phi_a3_2); phi_v1_3 = phi_v1_2; } // Node 20 @@ -5024,7 +5006,7 @@ glabel sub_GAME_7F0B6368 /* 0EAF10 7F0B63E0 AFAB002C */ sw $t3, 0x2c($sp) /* 0EAF14 7F0B63E4 AFA3001C */ sw $v1, 0x1c($sp) .L7F0B63E8: -/* 0EAF18 7F0B63E8 0C0028DC */ jal mem_related_0 +/* 0EAF18 7F0B63E8 0C0028DC */ jal memaGetLargestAllocSize /* 0EAF1C 7F0B63EC AFA70028 */ sw $a3, 0x28($sp) /* 0EAF20 7F0B63F0 8FA3001C */ lw $v1, 0x1c($sp) /* 0EAF24 7F0B63F4 8FA70028 */ lw $a3, 0x28($sp) @@ -5032,7 +5014,7 @@ glabel sub_GAME_7F0B6368 .L7F0B63FC: /* 0EAF2C 7F0B63FC 8FA4002C */ lw $a0, 0x2c($sp) /* 0EAF30 7F0B6400 AFA3001C */ sw $v1, 0x1c($sp) -/* 0EAF34 7F0B6404 0C00278D */ jal mem_related_something_find_first +/* 0EAF34 7F0B6404 0C00278D */ jal memaFree /* 0EAF38 7F0B6408 AFA70028 */ sw $a3, 0x28($sp) /* 0EAF3C 7F0B640C 8FA3001C */ lw $v1, 0x1c($sp) /* 0EAF40 7F0B6410 8FA70028 */ lw $a3, 0x28($sp) @@ -5104,7 +5086,7 @@ glabel sub_GAME_7F0B6368 /* 0EB034 7F0B6504 8FA40020 */ lw $a0, 0x20($sp) /* 0EB038 7F0B6508 01602825 */ move $a1, $t3 /* 0EB03C 7F0B650C 01203025 */ move $a2, $t1 -/* 0EB040 7F0B6510 0C0028F7 */ jal mem_related_1 +/* 0EB040 7F0B6510 0C0028F7 */ jal memaResize /* 0EB044 7F0B6514 AFA3001C */ sw $v1, 0x1c($sp) /* 0EB048 7F0B6518 8FA3001C */ lw $v1, 0x1c($sp) .L7F0B651C: @@ -5170,7 +5152,7 @@ void sub_GAME_7F0B65C4(s32 arg0) { if (temp_s0->unk2C != 0) { // Node 1 - mem_related_model_room_buffers_0(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C); + memaRegister(temp_s0->unk2C, (((temp_s0->unk30 * 0x1c) + 0xf) & -0x10), temp_s0->unk2C); temp_s0->unk2C = 0; } // Node 2 @@ -5180,13 +5162,13 @@ void sub_GAME_7F0B65C4(s32 arg0) { if (temp_s0->unk4 != 0) { // Node 4 - mem_related_model_room_buffers_0(temp_s0->unk4, temp_s0->unk28); + memaRegister(temp_s0->unk4, temp_s0->unk28); temp_s0->unk4 = 0; } else { // Node 5 - mem_related_model_room_buffers_0(temp_s0->unk8, temp_s0->unk28); + memaRegister(temp_s0->unk8, temp_s0->unk28); temp_s0->unk4 = 0; } // Node 6 @@ -5221,7 +5203,7 @@ glabel sub_GAME_7F0B65C4 /* 0EB138 7F0B6608 0018C080 */ sll $t8, $t8, 2 /* 0EB13C 7F0B660C 2705000F */ addiu $a1, $t8, 0xf /* 0EB140 7F0B6610 00A1C824 */ and $t9, $a1, $at -/* 0EB144 7F0B6614 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB144 7F0B6614 0C002808 */ jal memaRegister /* 0EB148 7F0B6618 03202825 */ move $a1, $t9 /* 0EB14C 7F0B661C AE00002C */ sw $zero, 0x2c($s0) /* 0EB150 7F0B6620 8E020028 */ lw $v0, 0x28($s0) @@ -5232,12 +5214,12 @@ glabel sub_GAME_7F0B65C4 /* 0EB160 7F0B6630 00402825 */ move $a1, $v0 /* 0EB164 7F0B6634 10800005 */ beqz $a0, .L7F0B664C /* 0EB168 7F0B6638 00000000 */ nop -/* 0EB16C 7F0B663C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB16C 7F0B663C 0C002808 */ jal memaRegister /* 0EB170 7F0B6640 00402825 */ move $a1, $v0 /* 0EB174 7F0B6644 10000004 */ b .L7F0B6658 /* 0EB178 7F0B6648 AE000004 */ sw $zero, 4($s0) .L7F0B664C: -/* 0EB17C 7F0B664C 0C002808 */ jal mem_related_model_room_buffers_0 +/* 0EB17C 7F0B664C 0C002808 */ jal memaRegister /* 0EB180 7F0B6650 8E040008 */ lw $a0, 8($s0) /* 0EB184 7F0B6654 AE000004 */ sw $zero, 4($s0) .L7F0B6658: @@ -5696,7 +5678,7 @@ loop_3: temp_t8 = (((((phi_t5 * 8) - phi_t5) * 4) + 0xf) & -0x10); sp24 = temp_t8; sp3C = (s32) phi_t5; - temp_ret = mem_related_something_find_first(temp_t8, temp_a1, temp_a1->unk8); + temp_ret = memaFree(temp_t8, temp_a1, temp_a1->unk8); if (temp_ret != 0) { // Node 7 @@ -5881,7 +5863,7 @@ glabel sub_GAME_7F0B6994 /* 0EB55C 7F0B6A2C AFB80024 */ sw $t8, 0x24($sp) /* 0EB560 7F0B6A30 AFA50028 */ sw $a1, 0x28($sp) /* 0EB564 7F0B6A34 AFA60048 */ sw $a2, 0x48($sp) -/* 0EB568 7F0B6A38 0C00278D */ jal mem_related_something_find_first +/* 0EB568 7F0B6A38 0C00278D */ jal memaFree /* 0EB56C 7F0B6A3C AFAD003C */ sw $t5, 0x3c($sp) /* 0EB570 7F0B6A40 8FA50028 */ lw $a1, 0x28($sp) /* 0EB574 7F0B6A44 8FA60048 */ lw $a2, 0x48($sp) @@ -9760,8 +9742,8 @@ f32 sub_GAME_7F0B908C(void) { // Node 0 sp2C = (f32) D_80041404; sp24 = (f32) D_80041404.unk4; - sp28 = (f32) ((f32) D_8004140C + (f32) get_video2_settings_txtClipW()); - sp20 = (f32) ((f32) D_80041410 + (f32) get_video2_settings_txtClipH()); + sp28 = (f32) ((f32) D_8004140C + (f32) viGetX()); + sp20 = (f32) ((f32) D_80041410 + (f32) viGetY()); pPlayer->unk1118 = (f32) viGetViewLeft(); if (pPlayer->unk1118 < sp2C) { @@ -9833,7 +9815,7 @@ glabel sub_GAME_7F0B908C /* 0EDBDC 7F0B90AC 468021A0 */ cvt.s.w $f6, $f4 /* 0EDBE0 7F0B90B0 468042A0 */ cvt.s.w $f10, $f8 /* 0EDBE4 7F0B90B4 E7A6002C */ swc1 $f6, 0x2c($sp) -/* 0EDBE8 7F0B90B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0EDBE8 7F0B90B8 0C001107 */ jal viGetX /* 0EDBEC 7F0B90BC E7AA0024 */ swc1 $f10, 0x24($sp) /* 0EDBF0 7F0B90C0 3C188004 */ lui $t8, %hi(D_8004140C) /* 0EDBF4 7F0B90C4 8F18140C */ lw $t8, %lo(D_8004140C)($t8) @@ -9842,7 +9824,7 @@ glabel sub_GAME_7F0B908C /* 0EDC00 7F0B90D0 468021A0 */ cvt.s.w $f6, $f4 /* 0EDC04 7F0B90D4 468084A0 */ cvt.s.w $f18, $f16 /* 0EDC08 7F0B90D8 46069200 */ add.s $f8, $f18, $f6 -/* 0EDC0C 7F0B90DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0EDC0C 7F0B90DC 0C00110B */ jal viGetY /* 0EDC10 7F0B90E0 E7A80028 */ swc1 $f8, 0x28($sp) /* 0EDC14 7F0B90E4 3C198004 */ lui $t9, %hi(D_80041410) /* 0EDC18 7F0B90E8 8F391410 */ lw $t9, %lo(D_80041410)($t9) @@ -12002,11 +11984,11 @@ u32 sub_GAME_7F0BA5C0(u32 arg0, u32 arg1) { phi_v0 = arg0; loop_2: // Node 2 - if (D_80044940 != 0) + if (FogDL_primary_80044940 != 0) { // Node 3 - phi_a0 = D_80044940; - phi_v1 = &D_80044940; + phi_a0 = FogDL_primary_80044940; + phi_v1 = &FogDL_primary_80044940; loop_4: // Node 4 if (*phi_v0 == phi_a0) @@ -12046,12 +12028,12 @@ glabel sub_GAME_7F0BA5C0 /* 0EF0F0 7F0BA5C0 0085082B */ sltu $at, $a0, $a1 /* 0EF0F4 7F0BA5C4 1020001C */ beqz $at, .L7F0BA638 /* 0EF0F8 7F0BA5C8 00801025 */ move $v0, $a0 -/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(D_80044940) -/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(D_80044940) # addiu $a2, $a2, 0x4940 +/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(FogDL_primary_80044940) +/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(FogDL_primary_80044940) # addiu $a2, $a2, 0x4940 /* 0EF104 7F0BA5D4 8CCE0000 */ lw $t6, ($a2) .L7F0BA5D8: -/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(D_80044940) -/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(D_80044940) # addiu $t7, $t7, 0x4940 +/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(FogDL_primary_80044940) +/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(FogDL_primary_80044940) # addiu $t7, $t7, 0x4940 /* 0EF110 7F0BA5E0 11C00011 */ beqz $t6, .L7F0BA628 /* 0EF114 7F0BA5E4 00C01825 */ move $v1, $a2 /* 0EF118 7F0BA5E8 8DE40000 */ lw $a0, ($t7) diff --git a/src/game/blood_animation.c b/src/game/blood_animation.c index 946d7d6..c788441 100644 --- a/src/game/blood_animation.c +++ b/src/game/blood_animation.c @@ -1,933 +1,288 @@ #include "ultra64.h" +#include "video.h" +#include "dyn.h" +#include "intro_logos.h" +#include "blood_decrypt.h" +#include "unk_093880.h" +#include "libultra/os.h" -char die_blood_image_1[] = { - 0,0x20, 3, 5, 4, 2,0x60,0x21,0x22, 1,0xE0,0xE0,0xE0,0xE0, - 0xE0,0xE0,0xE0,0x60, 3,0x24, 2,0xA0, 2,0xC0, 1,0x22, 0, 3, - 6, 7, 6, 4,0x20, 1, 2,0x23,0x24, 3, 2,0x80,0x21,0xE0, - 0xE0,0xE0,0xE0,0xE0,0xE0,0x60, 5,0x46, 4,0x80,0x24,0xFF, 0, 1, - 3,0xFF,0x80, 3,0x44, 0,0x29, 8, 7,0xFF, 0, 2, 2,0xFF, - 2,0x24,0x25,0x26, 5, 4, 2,0x41, 2, 3, 4, 6,0xFF, 0, - 4, 4,0xFF,0xFF, 0, 5, 2,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0, - 0,0xFF, 0, 3, 3,0xFF, 7,0x48, 6,0x60,0xFF, 0, 2, 3, - 0xFF, 6, 7,0xFF, 0, 2, 4,0xFF,0x60, 5,0x66, 0, 0xB, 0xA, - 9, 8,0x26,0x47, 8,0x27, 5, 4,0x43, 4, 5, 7, 0xB,0xFF, - 0, 3, 8,0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF, - 0xE0,0x80, 1,0x22, 1,0xE0,0x20, 1,0x22,0x21,0xE0,0xE0, 0,0xFF, - 0, 2, 7,0xFF,0x4A, 9, 7,0x60, 8,0x29,0xFF, 0, 2, 6, - 0xFF,0xFF, 0, 4, 3,0xFF,0xFF, 0, 5, 2,0xFF,0xFF, 0, 5, - 2,0xFF,0xFF, 0, 2, 5,0xFF,0x88, 0, 0xC, 0xB, 0xA,0xE9, 7, - 0x65, 6, 8, 0xF, 0xE, 0xD,0xFF, 0, 5, 7,0xFF,0xFF, 0, 6, - 5,0xFF,0xFF, 0, 6, 4,0xFF,0xE0,0x60, 2,0x43, 2, 1,0xE0, - 0x64, 3,0x22,0x21,0xE0,0x80,0xFF, 0, 5, 5,0xFF, 0xB,0x4C, 0xB, - 9,0x40,0xFF, 0, 4, 5,0xFF, 0xA, 0xB, 0xA,0xFF, 0, 3, 7, - 0xFF,0xFF, 0, 5, 5,0xFF,0xFF, 0, 5, 4,0xFF,0xFF, 0, 4, - 5,0xFF,0xAA, 0,0x2D, 0xC,0xAB, 0xA, 9, 7,0x26, 7, 8,0xFF, - 0xB, 3, 3,0xFF,0x12,0x11,0x10,0xFF, 1, 4, 0xA,0xFF,0xFF, 0, - 6, 8,0xFF,0xFF, 0, 7, 5,0xFF,0xFF, 0, 8, 3,0xFF,0xE0, - 0x20, 1, 4,0x45,0x24, 3,0xA0, 2, 8, 7,0x26, 5,0x24,0x23, - 0x22, 1,0x20,0x41,0x42, 1, 0,0xFF, 0, 6, 5,0xFF,0xFF, 2, - 1, 0xA,0xFF, 0xD,0x4E, 0xD,0xFF, 0, 5, 6,0xFF,0x20,0xFF, 0, - 8, 2,0xFF,0x6C,0xFF, 2, 1, 9,0xFF,0xFF, 0, 5, 7,0xFF, - 0xFF, 0, 5, 7,0xFF,0xCC, 0, 0xF,0x2E,0x8D, 0xC, 0xB, 9,0x28, - 9, 0xB,0x34,0x13,0x12,0x11,0xFF, 2, 5, 9,0xFF,0xFF, 1, 6, - 8,0xFF,0xFF, 1, 7, 5,0xFF,0xFF, 0, 9, 2,0xFF, 0,0x41, - 0x80, 3, 5,0x47,0x26, 5, 4, 3, 1, 0, 1, 2, 0xB, 0xC, - 0xA, 9, 8, 7,0x26,0x25,0x24,0xA3,0x64, 3,0xFF, 2, 6, 4, - 0xFF,0xFF, 3, 2, 9,0xFF,0x2F,0x50, 0xF,0xFF, 0, 6, 8,0xFF, - 0,0xFF, 0, 0xA, 2,0xFF,0xFF, 0, 6, 7,0xFF,0x8E,0xFF, 2, - 3, 9,0xFF,0xFF, 3, 1, 0xA,0xFF,0xCE, 0,0x11,0x30,0x4F,0x2E, - 0xC, 0xB,0x2A, 0xB,0x16,0x17,0x16,0x15,0x14,0x13,0xFF, 4, 3, 0xB, - 0xFF,0xFF, 3, 5, 8,0xFF,0xFF, 2, 6, 7,0xFF,0xFF, 2, 7, - 5,0xFF,0xFF, 2, 8, 2,0xFF,0x43, 2, 1,0x40, 5, 7, 8, - 0x29,0x28,0x27, 6, 5, 4, 5, 0xB, 0xE, 0xF, 0xD, 0xB, 0xA, 9, - 0x28,0x27,0x46,0xA5,0x66,0xFF, 5, 3, 5,0xFF, 0xF,0x10,0x31,0x32, - 0x31,0xFF, 1, 6, 9,0xFF,0xFF, 0, 9, 6,0xFF,0xFF, 0, 9, - 6,0xFF,0xF0,0xD0, 1,0x11,0x30,0x4F, 0xE, 0xD, 0xC,0x2B,0xFF, 0xE, - 6, 3,0xFF,0x38,0x17,0x16,0x14,0x13,0x12,0xFF, 6, 1, 0xB,0xFF, - 0xFF, 5, 3, 9,0xFF,0xFF, 4, 5, 7,0xFF,0xFF, 4, 6, 5, - 0xFF,0x44, 3, 2, 1, 0, 2, 5, 8,0x89,0x28,0x47, 8, 0xC, - 0xF,0x30, 0xE, 0xC, 0xA,0x29,0x28,0x67,0xA6,0x27, 8, 0xC,0x10,0x31, - 0xB2,0xFF, 3, 4, 0xB,0xFF,0xFF, 1, 8, 9,0xFF,0xFF, 3, 4, - 0xB,0xFF,0x91,0x30,0xF1, 4,0x2F,0x2E,0x2D, 0xC,0x4A,0x57,0x16,0x14, - 0x13,0x12,0x11,0x10, 0xF, 0xE,0xFF, 7, 2, 8,0xFF,0xFF, 7, 3, - 6,0xFF,0x23, 2, 1,0x20, 1, 4, 6, 7,0x48,0x47,0x26, 7, - 8, 0xB, 0xE,0x2F, 0xE, 0xB, 0xA, 8,0x27,0xA6,0x85,0x26, 7, 0xA, - 0xE, 0xF,0x30,0xB1,0x10,0xFF, 4, 4, 0xC,0xFF,0x70,0x8F,0xD0, 6, - 0x2E,0x2D, 0xC, 0xB,0x2A,0xFF,0x12, 3, 6,0xFF,0x57,0x15,0x14,0x13, - 0x12,0x11,0x10, 0xF, 0xE, 0xD, 0xC, 0xA, 3, 2, 1,0x20, 2, 4, - 6, 7,0x48,0x47,0x26, 7, 8, 0xB, 0xE, 0xF,0x10, 0xF, 0xD, 0xA, - 9, 8, 7,0x26, 5,0x46,0xA5, 6, 7, 9, 0xD, 0xF,0x50,0xB1, - 0x50,0xEF,0x90, 0xF,0x10, 9,0x2C,0x2B, 0xA, 9, 0xA,0x16,0x17,0x16, - 0x15,0x14,0x13,0x11,0x10, 0xF, 0xE,0x2D, 0xC, 0xB, 0xA, 7, 2, 1, - 0x20, 1, 3, 4, 6,0x47, 6,0xFF, 0xF, 8, 5,0xFF,0x66, 7, - 0xA, 0xC, 0xE, 0xF, 0xE, 0xD, 0xA, 8, 7, 6, 5,0x64, 5,0xC4, - 6, 8, 0xB, 0xD, 0xE,0x4F,0xB0,0x2F,0xEE, 0xE,0x6F,0x4E, 0xB,0x4B, - 0xA, 0xB,0x14,0x16,0x17,0x16,0x15,0x13,0x12,0x11,0x10, 0xF, 0xE, 0xD, - 0x2C, 0xB, 0xA, 8, 4, 1,0x20, 1, 2, 4, 5, 6,0x27,0xFF, - 0x12, 6, 4,0xFF,0xFF,0x11, 6, 7,0xFF,0xFF,0x11, 6, 7,0xFF, - 0x46, 8, 9, 0xC, 0xE,0x2F, 0xE, 0xB, 9, 7, 6, 5,0xE4,0x23, - 0x24, 5, 7, 0xB, 0xD,0x4E,0x4F,0x90,0x2F,0x4E,0x6D,0x2E,0x6F,0x4E, - 0xD,0x2A, 0xB,0x12,0x16,0x17,0x16,0x15,0x14,0x13,0x11,0x10, 0xF, 0xE, - 0x2D, 0xC,0x2B, 0xA, 9, 5, 2,0x20, 1, 2, 4, 5, 6,0x27, - 0xFF,0x15, 1, 9,0xFF,0x13,0xFF,0x15, 1, 0xB,0xFF,0xFF,0x14, 5, - 5,0xFF, 6, 7, 8, 9, 0xB, 0xD,0x2F, 0xE, 0xC, 0xA, 8, 6, - 5, 4,0x23,0x84,0x43, 4, 5, 7, 0xB,0x2D,0x4E,0x8F,0x30,0x2F, - 0x2E,0xCD, 0xE,0x4F,0x6E, 0xF, 0xB, 0xF,0x15,0x56,0x15,0x13,0x12,0x11, - 0x10, 0xF, 0xE, 0xD,0x2C,0x2B, 0xA, 9, 6, 2,0x20, 1, 2, 4, - 5, 6, 7, 0xC,0x12,0x13,0x14,0x13,0x27, 8, 9, 0xB, 0xD, 0xE, - 0xF, 0xE, 0xD, 0xB, 9, 7, 5, 4,0x43,0x84,0x43, 4, 6, 0xB, - 0x4D,0x6E,0xEF, 0xE,0xED,0x2E,0x2F,0x6E,0x11,0x14,0x56,0x15,0x14,0x13, - 0x11,0x10, 0xF, 0xE, 0xD,0x2C,0x4B,0x2A, 7, 3, 1, 0, 1, 2, - 4, 5, 6, 8, 0xE,0x12,0x13,0x14,0x13, 0xD,0x28, 9, 0xB, 0xD, - 0xE, 0xF,0x2E, 0xC, 0xA, 8, 5, 4,0x63,0x64,0x43, 4, 7, 0xB, - 0xC,0x4D,0x8E,0xAF,0x2E,0x2D,0x6C,0x2D,0x2E,0x2F,0x6E,0x13,0x56,0x15, - 0x13,0x12,0x10, 0xF, 0xE,0x2D, 0xC,0x6B,0x2A, 8, 4, 1, 0, 1, - 2, 4, 5, 7, 0xA, 0xF,0x12,0x13,0x34,0x13, 9, 8, 9, 0xB, - 0xD,0x6E, 0xD, 0xC, 0xA, 6, 4, 3,0x22, 3,0x84,0x23, 4, 8, - 0xB, 0xC,0xAD,0x8E,0x4F,0x2E,0x2D,0xAC, 0xD,0xEE,0x16,0x15,0x14,0x13, - 0x11,0x10, 0xE,0x2D, 0xC, 0xB,0x2A,0x89, 8, 4, 1,0x20, 1, 3, - 5, 7, 0xB, 0xF,0x11,0x12,0x33,0x12, 0xA,0x28, 0xA, 0xC,0xCD,0xFF, - 0x20, 4, 4,0xFF,0xFF,0x1B, 8, 6,0xFF,0xFF,0x18, 0xC, 5,0xFF, - 0xFF,0x17, 0xF, 2,0xFF, 1, 2,0xC3, 4, 8, 0xA,0x2B,0xCC,0xED, - 0x2C,0x4B,0x2A,0x2B,0x2C,0xCD,0x18,0x13,0x12,0x10, 0xF, 0xD,0x2C, 0xB, - 0x2A,0xA9, 8, 6, 2, 0, 1, 2, 4, 6, 8, 0xC, 0xF,0x11, - 0x32,0x13,0x32,0x29, 0xA,0x2C,0x4D, 0xE, 0xF,0x11,0x12,0x33,0xFF,0x1A, - 9, 8,0xFF,0xFF,0x1A, 0xB, 6,0xFF, 2,0xA3, 4, 6, 8, 9, - 0xA,0x4B,0xEC,0xAD, 0xC,0x4B,0x6A,0x2B, 0xC,0xCD,0x1C, 0xF, 0xD, 0xB, - 0x2A, 9, 8,0xE7, 6, 5, 3, 0, 1, 2, 3, 5, 8, 0xB, - 0xD, 0xF,0x90, 0xF, 0xC,0x6A,0x2B, 0xC, 0xE, 0xF,0x10,0x71,0xFF,0x1D, - 9, 7,0xFF,0xFF,0x1D, 0xC, 2,0xFF,0x61, 2, 3, 4, 6, 7, - 0x28,0xC9,0xAA,0x2B,0x4A,0x29,0x88,0x29, 0xA,0xCB,0x1F, 0xA, 9,0x28, - 7,0x26,0x45,0x66, 5, 4, 3,0x22, 3, 4, 5, 8, 0xB, 0xD, - 0x2E,0x6F, 0xE, 0xD, 0xA,0x69, 0xA, 0xB, 0xD, 0xE,0x2F,0x70,0xFF,0x21, - 5, 9,0xFF,0xFF,0x20, 9, 6,0xFF,0x20,0x21, 2, 3, 5,0x26, - 0x27,0xE8,0x28,0xC9,0x28,0x27,0x26,0x47, 8,0x29,0x2A,0x4B, 0xA,0x22, - 7,0x26, 5,0x84,0x65,0x24,0x63, 4, 6, 9, 0xA, 0xC,0x2D,0x6E, - 0xD, 0xC, 0xA, 9,0x48, 9, 0xA, 0xC, 0xD,0x4E,0x6F,0x10,0xFF,0x22, - 7, 9,0xFF,0x20, 1, 2,0x23, 4,0x25,0x86,0xE7,0x88,0x27,0x26, - 0x65,0x26, 7,0x28, 9,0x6A, 9,0x25,0x24,0x23,0x22,0x23,0x64,0x23, - 0x42, 3, 5, 7, 8, 9, 0xA, 0xB,0x2C, 0xD,0x4C, 0xB, 9, 8, - 0x47, 8, 9, 0xB,0x2C,0x6D,0x2E, 0xF,0x10,0xFF,0x27, 1, 0xD,0xFF, - 0,0x21,0x22,0x23,0x44,0xE5,0x25,0x46,0x47,0x26,0x45,0x84, 5, 6, - 7, 8,0x29, 0xA,0x49,0x29, 1,0x60,0x21,0x42,0xA1, 2, 4, 5, - 6, 7, 8, 9,0x8A, 9, 8, 7, 6, 5, 4, 5, 6, 7, - 8, 9,0x4A,0x4B, 0xC, 0xD,0x2E, 0xD, 2,0x60,0x41,0x62,0xE3, 3, - 0xC4,0x23,0x42, 1, 2,0xFF,0x2B, 0xB, 3,0xFF,0xFF,0x2C, 9, 4, - 0xFF,0xFF,0x2D, 7, 5,0xFF,0xFF,0x2F, 5, 4,0xFF, 7,0x68,0x27, - 0x2B,0x60,0xFF,0x2C, 0xB, 2,0xFF,0xFF,0x2D, 9, 4,0xFF,0xFF,0x2D, - 8, 5,0xFF,0xFF,0x2D, 8, 5,0xFF, 2,0x81, 2, 3, 4, 5, - 6, 7, 8,0x29,0x2A,0x49, 8, 7, 5,0x24, 5, 6, 7, 8, - 0x29,0x6A, 0xB, 0xC, 0xD,0x4E, 0xC, 3, 1,0x40,0x61,0x62,0xE3,0x24, - 0x45,0x24,0x23,0x22, 1,0xFF,0x2C, 0xA, 4,0xFF,0xFF,0x2D, 8, 7, - 0xFF,0xFF,0x2E, 6, 8,0xFF,0xFF,0x2F, 4, 9,0xFF,0x10, 0xF, 0xE, - 0xB, 9,0x28,0x27,0x2C, 0,0xFF,0x2D, 0xB, 2,0xFF,0xFF,0x2E, 8, - 6,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x30, 3, 9,0xFF,0x10,0xFF, - 0x31, 2, 9,0xFF,0xFF,0x30, 5, 6,0xFF, 3,0x22,0x23, 4, 5, - 0x26, 7, 8, 9,0x8A,0x29, 8, 7, 6,0x45, 7, 8,0x29,0x6A, - 0x2B, 0xC,0x2E,0x2F, 0xE, 0xC, 3, 2,0x61,0x62,0xC3,0x44,0x25,0x86, - 0x25,0x24,0xFF,0x2F, 8, 2,0xFF,0xFF,0x2F, 6, 7,0xFF,0xFF,0x2F, - 5, 9,0xFF,0xFF,0x30, 3, 0xB,0xFF,0x12,0x31,0x10, 0xF, 0xD, 0xB, - 0xA,0x29, 8,0x2F,0xFF,0x30, 4, 0xA,0xFF,0x6F,0x2E, 0xC,0x63,0x24, - 0x25, 6, 7,0x28,0x29,0x48,0x27, 6, 5,0x24, 5, 6,0x27,0x48, - 0x49, 0xA, 0xB, 0xC,0x6D, 0xC, 8, 2,0xA0,0x41,0x82,0x43,0x24, 5, - 0xE6, 9, 0xC, 0xE, 0xF,0x70, 0xF, 0xE, 0xD, 0xC, 0xA, 9,0x48,0x31, - 0x2F,0x4E, 0xD, 0xC, 8, 5,0x84, 5, 6, 7,0x88,0x27,0x26, 5, - 0x44, 5,0x26,0x27,0x68, 9, 0xA, 0xB, 0xC,0x4D,0x2C, 0xA, 6, 2, - 0xC0,0x21,0x62,0x23, 4, 6,0xE8,0x28, 9, 0xB, 0xD, 0xE, 0xF,0x50, - 0x2F, 0xE, 0xD, 0xC, 0xA, 9,0x28, 9,0x33,0x4E,0x2D, 0xC, 9, 6, - 0x24, 3,0x24, 5, 6, 7,0x68,0x27,0x26,0x25,0x44, 5,0x26,0x47, - 0x48, 9, 0xA, 0xB,0x8C, 0xB, 0xA, 8, 5, 1,0xC0,0x21,0x22,0x23, - 5, 7, 9,0x4A,0x49,0x68, 9, 0xA, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, - 0xB, 0xA, 9, 8, 9, 0xA,0x34,0x6E, 0xC, 0xA, 6, 5,0x44, 5, - 6, 7, 8,0x49,0x28,0x27,0x46,0x25,0x26,0x27,0x68,0x29, 0xA, 0xB, - 0xC,0x6D,0x2C, 0xB, 0xA, 8, 5, 2,0x21, 0,0x61,0x22, 3, 4, - 5, 7, 9, 0xB,0x4C,0x2B,0x2A,0x49,0x2A, 0xB, 0xD, 0xE, 0xF,0x50, - 0xF,0x4E, 0xD, 0xC, 0xB,0x2A, 0xB, 0xD,0x36,0x2E, 0xD, 0xC, 0xA, 6, - 0x64, 5, 7,0x28, 9,0x28,0x47,0xA6,0x67,0x68, 9, 0xA, 0xB,0xCC, - 0x2B, 0xA, 9, 7, 4, 2,0x21,0x20,0x21,0x22, 3, 4, 5, 7, - 9, 0xB,0x2D, 0xC,0x2B,0x2A,0x69,0x2A, 0xC, 0xD, 0xE,0x6F,0x2E,0x2D, - 0x2C, 0xB, 0xA, 0xB, 0xC, 0xE,0x38,0x4D, 0xA, 6,0x44, 5, 6,0x28, - 0x29,0x28,0xA7,0xFF,0x41, 3, 1,0xFF, 0xE, 0xD, 9,0xA8, 9, 0xA, - 0xD, 0xE,0x2D,0x2C,0x6B,0x2A, 9, 7, 5, 3, 2, 1,0x40,0x21, - 2, 3, 4, 5, 7, 0xA, 0xC,0x4D, 0xC, 0xB,0x2A,0x89,0x2A, 0xC, - 0xD, 0xE,0x4F, 0xE,0x2D,0x4C,0x4B, 0xC, 0xD, 0xF,0x3A,0x4D,0xFF,0x41, - 2, 3,0xFF,0x45, 7, 8,0x49,0x28,0x67, 8, 0xC, 0xE,0x2F, 0xE, - 0xD, 0xA,0x68, 9, 0xB, 0xD, 0xF,0x2E, 0xD, 0xC,0x2B,0x6A,0x29, 8, - 6, 4, 2,0x21,0x20,0x21, 2, 3, 4, 5, 7, 0xA, 0xC, 0xD, - 0x2E, 0xC, 0xB,0x2A,0x29,0x48,0x29, 0xA, 0xC, 0xD, 0xE,0x2F, 0xE,0x2D, - 0x2C,0x6B, 0xC, 0xD, 0xE, 0xF,0x3C,0x6D, 0xC, 0xB, 0xA,0x69,0x68, 9, - 0xA, 0xC, 0xE,0x4F, 0xE, 0xD, 0xB, 9,0x28, 9, 0xB, 0xD, 0xE,0x2F, - 0xE, 0xC, 0xB,0x2A,0x89,0x28, 6, 5, 3, 2,0x21, 0,0x21,0x22, - 4, 5, 7, 0xA, 0xC, 0xD,0x2E, 0xD, 0xC, 0xB, 0xA, 9,0xA8, 9, - 0xA, 0xC, 0xD,0x4E, 0xD,0x2C,0x8B,0x2C, 0xD, 0xE, 0xF,0x3F,0x2C,0x2B, - 0xA,0x29,0xA8, 9, 0xA, 0xB,0x2D,0x2E,0x2D, 0xB, 0xA,0x48, 9, 0xB, - 0xD,0x2E, 0xD, 0xC, 0xB, 9,0x68,0x67,0x26, 4, 3, 1,0x80,0x21, - 2, 4, 6, 8, 0xB, 0xC, 0xD, 0xE, 0xD, 0xC, 0xA, 9, 8,0x27, - 0x66, 7, 8, 0xA, 0xC,0x6D, 0xC, 0xB,0xAA, 0xB,0x2C,0x2D,0x41,0x2B, - 0xA,0x29,0x88,0x29, 0xA, 0xB, 0xC,0x6D,0x2C, 0xB,0x69, 0xB, 0xC, 0xD, - 0xE,0x2D, 0xC, 0xA, 9, 8,0xE7, 6, 5, 3, 2, 1,0x60,0x21, - 2, 4, 6, 8, 0xB, 0xC,0x4E, 0xD, 0xB, 0xA, 9, 8, 7,0x86, - 7, 9, 0xB, 0xC,0x4D, 0xC, 0xB,0x2A,0x49,0x2A, 0xB,0x4C, 0xD,0x43, - 0xA,0x49,0x48,0x29,0x2A, 0xB,0x4C, 0xD,0x4C, 0xB, 0xA,0x49, 0xA, 0xC, - 0x6D, 0xC, 0xB, 9, 8, 7,0x46,0x87, 6, 5, 4, 3, 2,0x21, - 0,0x21, 2, 3, 4, 6, 8, 0xA, 0xC,0x8D, 0xB, 0xA, 8, 7, - 0x26,0x25, 6, 7, 8, 0xB, 0xC,0x6D, 0xB,0x2A,0x69,0x2A,0x2B,0x4C, - 0x46, 8,0x67,0x28,0x29,0xEA, 0xA,0x29, 8,0x29,0xCA, 9, 7, 6, - 0x85, 6,0x27, 8, 7, 6, 4, 3, 2, 1,0x60, 1, 2, 3, - 5, 7, 9,0xEA, 9, 8, 7,0x65, 6, 8,0xEA, 9,0x88, 9, - 0xAA,0x49, 6,0xE7,0xE7,0xE7,0x87, 5,0x24,0x23, 4, 5,0xA7, 6, - 4, 2,0x21,0x60, 1, 2, 4, 6,0xE7,0xA7, 6,0xE7,0xE7,0xE7, - 7,0x4B,0xE5,0xE5,0xE5,0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1, - 0x40, 1, 2, 4,0xE5,0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5, - 0xA5, 4,0x23, 4,0xE5,0x45, 3, 2, 1,0x40, 1, 2, 4,0xE5, - 0xE5,0xE5,0xE5,0xE5,0x25,0x4B,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5,0xE5, - 0xE5,0xE5,0xE5,0xE5 +u8 die_blood_image_1[] = { + 0x00, 0x20, 0x03, 0x05, 0x04, 0x02, 0x60, 0x21, 0x22, 0x01, 0xE0, 0xE0, 0xE0, 0xE0, + 0xE0, 0xE0, 0xE0, 0x60, 0x03, 0x24, 0x02, 0xA0, 0x02, 0xC0, 0x01, 0x22, 0x00, 0x03, + 0x06, 0x07, 0x06, 0x04, 0x20, 0x01, 0x02, 0x23, 0x24, 0x03, 0x02, 0x80, 0x21, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x60, 0x05, 0x46, 0x04, 0x80, 0x24, 0xFF, 0x00, 0x01, + 0x03, 0xFF, 0x80, 0x03, 0x44, 0x00, 0x29, 0x08, 0x07, 0xFF, 0x00, 0x02, 0x02, 0xFF, + 0x02, 0x24, 0x25, 0x26, 0x05, 0x04, 0x02, 0x41, 0x02, 0x03, 0x04, 0x06, 0xFF, 0x00, + 0x04, 0x04, 0xFF, 0xFF, 0x00, 0x05, 0x02, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, + 0x00, 0xFF, 0x00, 0x03, 0x03, 0xFF, 0x07, 0x48, 0x06, 0x60, 0xFF, 0x00, 0x02, 0x03, + 0xFF, 0x06, 0x07, 0xFF, 0x00, 0x02, 0x04, 0xFF, 0x60, 0x05, 0x66, 0x00, 0x0B, 0x0A, + 0x09, 0x08, 0x26, 0x47, 0x08, 0x27, 0x05, 0x04, 0x43, 0x04, 0x05, 0x07, 0x0B, 0xFF, + 0x00, 0x03, 0x08, 0xFF, 0xFF, 0x00, 0x05, 0x05, 0xFF, 0xFF, 0x00, 0x05, 0x04, 0xFF, + 0xE0, 0x80, 0x01, 0x22, 0x01, 0xE0, 0x20, 0x01, 0x22, 0x21, 0xE0, 0xE0, 0x00, 0xFF, + 0x00, 0x02, 0x07, 0xFF, 0x4A, 0x09, 0x07, 0x60, 0x08, 0x29, 0xFF, 0x00, 0x02, 0x06, + 0xFF, 0xFF, 0x00, 0x04, 0x03, 0xFF, 0xFF, 0x00, 0x05, 0x02, 0xFF, 0xFF, 0x00, 0x05, + 0x02, 0xFF, 0xFF, 0x00, 0x02, 0x05, 0xFF, 0x88, 0x00, 0x0C, 0x0B, 0x0A, 0xE9, 0x07, + 0x65, 0x06, 0x08, 0x0F, 0x0E, 0x0D, 0xFF, 0x00, 0x05, 0x07, 0xFF, 0xFF, 0x00, 0x06, + 0x05, 0xFF, 0xFF, 0x00, 0x06, 0x04, 0xFF, 0xE0, 0x60, 0x02, 0x43, 0x02, 0x01, 0xE0, + 0x64, 0x03, 0x22, 0x21, 0xE0, 0x80, 0xFF, 0x00, 0x05, 0x05, 0xFF, 0x0B, 0x4C, 0x0B, + 0x09, 0x40, 0xFF, 0x00, 0x04, 0x05, 0xFF, 0x0A, 0x0B, 0x0A, 0xFF, 0x00, 0x03, 0x07, + 0xFF, 0xFF, 0x00, 0x05, 0x05, 0xFF, 0xFF, 0x00, 0x05, 0x04, 0xFF, 0xFF, 0x00, 0x04, + 0x05, 0xFF, 0xAA, 0x00, 0x2D, 0x0C, 0xAB, 0x0A, 0x09, 0x07, 0x26, 0x07, 0x08, 0xFF, + 0x0B, 0x03, 0x03, 0xFF, 0x12, 0x11, 0x10, 0xFF, 0x01, 0x04, 0x0A, 0xFF, 0xFF, 0x00, + 0x06, 0x08, 0xFF, 0xFF, 0x00, 0x07, 0x05, 0xFF, 0xFF, 0x00, 0x08, 0x03, 0xFF, 0xE0, + 0x20, 0x01, 0x04, 0x45, 0x24, 0x03, 0xA0, 0x02, 0x08, 0x07, 0x26, 0x05, 0x24, 0x23, + 0x22, 0x01, 0x20, 0x41, 0x42, 0x01, 0x00, 0xFF, 0x00, 0x06, 0x05, 0xFF, 0xFF, 0x02, + 0x01, 0x0A, 0xFF, 0x0D, 0x4E, 0x0D, 0xFF, 0x00, 0x05, 0x06, 0xFF, 0x20, 0xFF, 0x00, + 0x08, 0x02, 0xFF, 0x6C, 0xFF, 0x02, 0x01, 0x09, 0xFF, 0xFF, 0x00, 0x05, 0x07, 0xFF, + 0xFF, 0x00, 0x05, 0x07, 0xFF, 0xCC, 0x00, 0x0F, 0x2E, 0x8D, 0x0C, 0x0B, 0x09, 0x28, + 0x09, 0x0B, 0x34, 0x13, 0x12, 0x11, 0xFF, 0x02, 0x05, 0x09, 0xFF, 0xFF, 0x01, 0x06, + 0x08, 0xFF, 0xFF, 0x01, 0x07, 0x05, 0xFF, 0xFF, 0x00, 0x09, 0x02, 0xFF, 0x00, 0x41, + 0x80, 0x03, 0x05, 0x47, 0x26, 0x05, 0x04, 0x03, 0x01, 0x00, 0x01, 0x02, 0x0B, 0x0C, + 0x0A, 0x09, 0x08, 0x07, 0x26, 0x25, 0x24, 0xA3, 0x64, 0x03, 0xFF, 0x02, 0x06, 0x04, + 0xFF, 0xFF, 0x03, 0x02, 0x09, 0xFF, 0x2F, 0x50, 0x0F, 0xFF, 0x00, 0x06, 0x08, 0xFF, + 0x00, 0xFF, 0x00, 0x0A, 0x02, 0xFF, 0xFF, 0x00, 0x06, 0x07, 0xFF, 0x8E, 0xFF, 0x02, + 0x03, 0x09, 0xFF, 0xFF, 0x03, 0x01, 0x0A, 0xFF, 0xCE, 0x00, 0x11, 0x30, 0x4F, 0x2E, + 0x0C, 0x0B, 0x2A, 0x0B, 0x16, 0x17, 0x16, 0x15, 0x14, 0x13, 0xFF, 0x04, 0x03, 0x0B, + 0xFF, 0xFF, 0x03, 0x05, 0x08, 0xFF, 0xFF, 0x02, 0x06, 0x07, 0xFF, 0xFF, 0x02, 0x07, + 0x05, 0xFF, 0xFF, 0x02, 0x08, 0x02, 0xFF, 0x43, 0x02, 0x01, 0x40, 0x05, 0x07, 0x08, + 0x29, 0x28, 0x27, 0x06, 0x05, 0x04, 0x05, 0x0B, 0x0E, 0x0F, 0x0D, 0x0B, 0x0A, 0x09, + 0x28, 0x27, 0x46, 0xA5, 0x66, 0xFF, 0x05, 0x03, 0x05, 0xFF, 0x0F, 0x10, 0x31, 0x32, + 0x31, 0xFF, 0x01, 0x06, 0x09, 0xFF, 0xFF, 0x00, 0x09, 0x06, 0xFF, 0xFF, 0x00, 0x09, + 0x06, 0xFF, 0xF0, 0xD0, 0x01, 0x11, 0x30, 0x4F, 0x0E, 0x0D, 0x0C, 0x2B, 0xFF, 0x0E, + 0x06, 0x03, 0xFF, 0x38, 0x17, 0x16, 0x14, 0x13, 0x12, 0xFF, 0x06, 0x01, 0x0B, 0xFF, + 0xFF, 0x05, 0x03, 0x09, 0xFF, 0xFF, 0x04, 0x05, 0x07, 0xFF, 0xFF, 0x04, 0x06, 0x05, + 0xFF, 0x44, 0x03, 0x02, 0x01, 0x00, 0x02, 0x05, 0x08, 0x89, 0x28, 0x47, 0x08, 0x0C, + 0x0F, 0x30, 0x0E, 0x0C, 0x0A, 0x29, 0x28, 0x67, 0xA6, 0x27, 0x08, 0x0C, 0x10, 0x31, + 0xB2, 0xFF, 0x03, 0x04, 0x0B, 0xFF, 0xFF, 0x01, 0x08, 0x09, 0xFF, 0xFF, 0x03, 0x04, + 0x0B, 0xFF, 0x91, 0x30, 0xF1, 0x04, 0x2F, 0x2E, 0x2D, 0x0C, 0x4A, 0x57, 0x16, 0x14, + 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0xFF, 0x07, 0x02, 0x08, 0xFF, 0xFF, 0x07, 0x03, + 0x06, 0xFF, 0x23, 0x02, 0x01, 0x20, 0x01, 0x04, 0x06, 0x07, 0x48, 0x47, 0x26, 0x07, + 0x08, 0x0B, 0x0E, 0x2F, 0x0E, 0x0B, 0x0A, 0x08, 0x27, 0xA6, 0x85, 0x26, 0x07, 0x0A, + 0x0E, 0x0F, 0x30, 0xB1, 0x10, 0xFF, 0x04, 0x04, 0x0C, 0xFF, 0x70, 0x8F, 0xD0, 0x06, + 0x2E, 0x2D, 0x0C, 0x0B, 0x2A, 0xFF, 0x12, 0x03, 0x06, 0xFF, 0x57, 0x15, 0x14, 0x13, + 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0A, 0x03, 0x02, 0x01, 0x20, 0x02, 0x04, + 0x06, 0x07, 0x48, 0x47, 0x26, 0x07, 0x08, 0x0B, 0x0E, 0x0F, 0x10, 0x0F, 0x0D, 0x0A, + 0x09, 0x08, 0x07, 0x26, 0x05, 0x46, 0xA5, 0x06, 0x07, 0x09, 0x0D, 0x0F, 0x50, 0xB1, + 0x50, 0xEF, 0x90, 0x0F, 0x10, 0x09, 0x2C, 0x2B, 0x0A, 0x09, 0x0A, 0x16, 0x17, 0x16, + 0x15, 0x14, 0x13, 0x11, 0x10, 0x0F, 0x0E, 0x2D, 0x0C, 0x0B, 0x0A, 0x07, 0x02, 0x01, + 0x20, 0x01, 0x03, 0x04, 0x06, 0x47, 0x06, 0xFF, 0x0F, 0x08, 0x05, 0xFF, 0x66, 0x07, + 0x0A, 0x0C, 0x0E, 0x0F, 0x0E, 0x0D, 0x0A, 0x08, 0x07, 0x06, 0x05, 0x64, 0x05, 0xC4, + 0x06, 0x08, 0x0B, 0x0D, 0x0E, 0x4F, 0xB0, 0x2F, 0xEE, 0x0E, 0x6F, 0x4E, 0x0B, 0x4B, + 0x0A, 0x0B, 0x14, 0x16, 0x17, 0x16, 0x15, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D, + 0x2C, 0x0B, 0x0A, 0x08, 0x04, 0x01, 0x20, 0x01, 0x02, 0x04, 0x05, 0x06, 0x27, 0xFF, + 0x12, 0x06, 0x04, 0xFF, 0xFF, 0x11, 0x06, 0x07, 0xFF, 0xFF, 0x11, 0x06, 0x07, 0xFF, + 0x46, 0x08, 0x09, 0x0C, 0x0E, 0x2F, 0x0E, 0x0B, 0x09, 0x07, 0x06, 0x05, 0xE4, 0x23, + 0x24, 0x05, 0x07, 0x0B, 0x0D, 0x4E, 0x4F, 0x90, 0x2F, 0x4E, 0x6D, 0x2E, 0x6F, 0x4E, + 0x0D, 0x2A, 0x0B, 0x12, 0x16, 0x17, 0x16, 0x15, 0x14, 0x13, 0x11, 0x10, 0x0F, 0x0E, + 0x2D, 0x0C, 0x2B, 0x0A, 0x09, 0x05, 0x02, 0x20, 0x01, 0x02, 0x04, 0x05, 0x06, 0x27, + 0xFF, 0x15, 0x01, 0x09, 0xFF, 0x13, 0xFF, 0x15, 0x01, 0x0B, 0xFF, 0xFF, 0x14, 0x05, + 0x05, 0xFF, 0x06, 0x07, 0x08, 0x09, 0x0B, 0x0D, 0x2F, 0x0E, 0x0C, 0x0A, 0x08, 0x06, + 0x05, 0x04, 0x23, 0x84, 0x43, 0x04, 0x05, 0x07, 0x0B, 0x2D, 0x4E, 0x8F, 0x30, 0x2F, + 0x2E, 0xCD, 0x0E, 0x4F, 0x6E, 0x0F, 0x0B, 0x0F, 0x15, 0x56, 0x15, 0x13, 0x12, 0x11, + 0x10, 0x0F, 0x0E, 0x0D, 0x2C, 0x2B, 0x0A, 0x09, 0x06, 0x02, 0x20, 0x01, 0x02, 0x04, + 0x05, 0x06, 0x07, 0x0C, 0x12, 0x13, 0x14, 0x13, 0x27, 0x08, 0x09, 0x0B, 0x0D, 0x0E, + 0x0F, 0x0E, 0x0D, 0x0B, 0x09, 0x07, 0x05, 0x04, 0x43, 0x84, 0x43, 0x04, 0x06, 0x0B, + 0x4D, 0x6E, 0xEF, 0x0E, 0xED, 0x2E, 0x2F, 0x6E, 0x11, 0x14, 0x56, 0x15, 0x14, 0x13, + 0x11, 0x10, 0x0F, 0x0E, 0x0D, 0x2C, 0x4B, 0x2A, 0x07, 0x03, 0x01, 0x00, 0x01, 0x02, + 0x04, 0x05, 0x06, 0x08, 0x0E, 0x12, 0x13, 0x14, 0x13, 0x0D, 0x28, 0x09, 0x0B, 0x0D, + 0x0E, 0x0F, 0x2E, 0x0C, 0x0A, 0x08, 0x05, 0x04, 0x63, 0x64, 0x43, 0x04, 0x07, 0x0B, + 0x0C, 0x4D, 0x8E, 0xAF, 0x2E, 0x2D, 0x6C, 0x2D, 0x2E, 0x2F, 0x6E, 0x13, 0x56, 0x15, + 0x13, 0x12, 0x10, 0x0F, 0x0E, 0x2D, 0x0C, 0x6B, 0x2A, 0x08, 0x04, 0x01, 0x00, 0x01, + 0x02, 0x04, 0x05, 0x07, 0x0A, 0x0F, 0x12, 0x13, 0x34, 0x13, 0x09, 0x08, 0x09, 0x0B, + 0x0D, 0x6E, 0x0D, 0x0C, 0x0A, 0x06, 0x04, 0x03, 0x22, 0x03, 0x84, 0x23, 0x04, 0x08, + 0x0B, 0x0C, 0xAD, 0x8E, 0x4F, 0x2E, 0x2D, 0xAC, 0x0D, 0xEE, 0x16, 0x15, 0x14, 0x13, + 0x11, 0x10, 0x0E, 0x2D, 0x0C, 0x0B, 0x2A, 0x89, 0x08, 0x04, 0x01, 0x20, 0x01, 0x03, + 0x05, 0x07, 0x0B, 0x0F, 0x11, 0x12, 0x33, 0x12, 0x0A, 0x28, 0x0A, 0x0C, 0xCD, 0xFF, + 0x20, 0x04, 0x04, 0xFF, 0xFF, 0x1B, 0x08, 0x06, 0xFF, 0xFF, 0x18, 0x0C, 0x05, 0xFF, + 0xFF, 0x17, 0x0F, 0x02, 0xFF, 0x01, 0x02, 0xC3, 0x04, 0x08, 0x0A, 0x2B, 0xCC, 0xED, + 0x2C, 0x4B, 0x2A, 0x2B, 0x2C, 0xCD, 0x18, 0x13, 0x12, 0x10, 0x0F, 0x0D, 0x2C, 0x0B, + 0x2A, 0xA9, 0x08, 0x06, 0x02, 0x00, 0x01, 0x02, 0x04, 0x06, 0x08, 0x0C, 0x0F, 0x11, + 0x32, 0x13, 0x32, 0x29, 0x0A, 0x2C, 0x4D, 0x0E, 0x0F, 0x11, 0x12, 0x33, 0xFF, 0x1A, + 0x09, 0x08, 0xFF, 0xFF, 0x1A, 0x0B, 0x06, 0xFF, 0x02, 0xA3, 0x04, 0x06, 0x08, 0x09, + 0x0A, 0x4B, 0xEC, 0xAD, 0x0C, 0x4B, 0x6A, 0x2B, 0x0C, 0xCD, 0x1C, 0x0F, 0x0D, 0x0B, + 0x2A, 0x09, 0x08, 0xE7, 0x06, 0x05, 0x03, 0x00, 0x01, 0x02, 0x03, 0x05, 0x08, 0x0B, + 0x0D, 0x0F, 0x90, 0x0F, 0x0C, 0x6A, 0x2B, 0x0C, 0x0E, 0x0F, 0x10, 0x71, 0xFF, 0x1D, + 0x09, 0x07, 0xFF, 0xFF, 0x1D, 0x0C, 0x02, 0xFF, 0x61, 0x02, 0x03, 0x04, 0x06, 0x07, + 0x28, 0xC9, 0xAA, 0x2B, 0x4A, 0x29, 0x88, 0x29, 0x0A, 0xCB, 0x1F, 0x0A, 0x09, 0x28, + 0x07, 0x26, 0x45, 0x66, 0x05, 0x04, 0x03, 0x22, 0x03, 0x04, 0x05, 0x08, 0x0B, 0x0D, + 0x2E, 0x6F, 0x0E, 0x0D, 0x0A, 0x69, 0x0A, 0x0B, 0x0D, 0x0E, 0x2F, 0x70, 0xFF, 0x21, + 0x05, 0x09, 0xFF, 0xFF, 0x20, 0x09, 0x06, 0xFF, 0x20, 0x21, 0x02, 0x03, 0x05, 0x26, + 0x27, 0xE8, 0x28, 0xC9, 0x28, 0x27, 0x26, 0x47, 0x08, 0x29, 0x2A, 0x4B, 0x0A, 0x22, + 0x07, 0x26, 0x05, 0x84, 0x65, 0x24, 0x63, 0x04, 0x06, 0x09, 0x0A, 0x0C, 0x2D, 0x6E, + 0x0D, 0x0C, 0x0A, 0x09, 0x48, 0x09, 0x0A, 0x0C, 0x0D, 0x4E, 0x6F, 0x10, 0xFF, 0x22, + 0x07, 0x09, 0xFF, 0x20, 0x01, 0x02, 0x23, 0x04, 0x25, 0x86, 0xE7, 0x88, 0x27, 0x26, + 0x65, 0x26, 0x07, 0x28, 0x09, 0x6A, 0x09, 0x25, 0x24, 0x23, 0x22, 0x23, 0x64, 0x23, + 0x42, 0x03, 0x05, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x2C, 0x0D, 0x4C, 0x0B, 0x09, 0x08, + 0x47, 0x08, 0x09, 0x0B, 0x2C, 0x6D, 0x2E, 0x0F, 0x10, 0xFF, 0x27, 0x01, 0x0D, 0xFF, + 0x00, 0x21, 0x22, 0x23, 0x44, 0xE5, 0x25, 0x46, 0x47, 0x26, 0x45, 0x84, 0x05, 0x06, + 0x07, 0x08, 0x29, 0x0A, 0x49, 0x29, 0x01, 0x60, 0x21, 0x42, 0xA1, 0x02, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x09, 0x8A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x4A, 0x4B, 0x0C, 0x0D, 0x2E, 0x0D, 0x02, 0x60, 0x41, 0x62, 0xE3, 0x03, + 0xC4, 0x23, 0x42, 0x01, 0x02, 0xFF, 0x2B, 0x0B, 0x03, 0xFF, 0xFF, 0x2C, 0x09, 0x04, + 0xFF, 0xFF, 0x2D, 0x07, 0x05, 0xFF, 0xFF, 0x2F, 0x05, 0x04, 0xFF, 0x07, 0x68, 0x27, + 0x2B, 0x60, 0xFF, 0x2C, 0x0B, 0x02, 0xFF, 0xFF, 0x2D, 0x09, 0x04, 0xFF, 0xFF, 0x2D, + 0x08, 0x05, 0xFF, 0xFF, 0x2D, 0x08, 0x05, 0xFF, 0x02, 0x81, 0x02, 0x03, 0x04, 0x05, + 0x06, 0x07, 0x08, 0x29, 0x2A, 0x49, 0x08, 0x07, 0x05, 0x24, 0x05, 0x06, 0x07, 0x08, + 0x29, 0x6A, 0x0B, 0x0C, 0x0D, 0x4E, 0x0C, 0x03, 0x01, 0x40, 0x61, 0x62, 0xE3, 0x24, + 0x45, 0x24, 0x23, 0x22, 0x01, 0xFF, 0x2C, 0x0A, 0x04, 0xFF, 0xFF, 0x2D, 0x08, 0x07, + 0xFF, 0xFF, 0x2E, 0x06, 0x08, 0xFF, 0xFF, 0x2F, 0x04, 0x09, 0xFF, 0x10, 0x0F, 0x0E, + 0x0B, 0x09, 0x28, 0x27, 0x2C, 0x00, 0xFF, 0x2D, 0x0B, 0x02, 0xFF, 0xFF, 0x2E, 0x08, + 0x06, 0xFF, 0xFF, 0x2F, 0x06, 0x07, 0xFF, 0xFF, 0x30, 0x03, 0x09, 0xFF, 0x10, 0xFF, + 0x31, 0x02, 0x09, 0xFF, 0xFF, 0x30, 0x05, 0x06, 0xFF, 0x03, 0x22, 0x23, 0x04, 0x05, + 0x26, 0x07, 0x08, 0x09, 0x8A, 0x29, 0x08, 0x07, 0x06, 0x45, 0x07, 0x08, 0x29, 0x6A, + 0x2B, 0x0C, 0x2E, 0x2F, 0x0E, 0x0C, 0x03, 0x02, 0x61, 0x62, 0xC3, 0x44, 0x25, 0x86, + 0x25, 0x24, 0xFF, 0x2F, 0x08, 0x02, 0xFF, 0xFF, 0x2F, 0x06, 0x07, 0xFF, 0xFF, 0x2F, + 0x05, 0x09, 0xFF, 0xFF, 0x30, 0x03, 0x0B, 0xFF, 0x12, 0x31, 0x10, 0x0F, 0x0D, 0x0B, + 0x0A, 0x29, 0x08, 0x2F, 0xFF, 0x30, 0x04, 0x0A, 0xFF, 0x6F, 0x2E, 0x0C, 0x63, 0x24, + 0x25, 0x06, 0x07, 0x28, 0x29, 0x48, 0x27, 0x06, 0x05, 0x24, 0x05, 0x06, 0x27, 0x48, + 0x49, 0x0A, 0x0B, 0x0C, 0x6D, 0x0C, 0x08, 0x02, 0xA0, 0x41, 0x82, 0x43, 0x24, 0x05, + 0xE6, 0x09, 0x0C, 0x0E, 0x0F, 0x70, 0x0F, 0x0E, 0x0D, 0x0C, 0x0A, 0x09, 0x48, 0x31, + 0x2F, 0x4E, 0x0D, 0x0C, 0x08, 0x05, 0x84, 0x05, 0x06, 0x07, 0x88, 0x27, 0x26, 0x05, + 0x44, 0x05, 0x26, 0x27, 0x68, 0x09, 0x0A, 0x0B, 0x0C, 0x4D, 0x2C, 0x0A, 0x06, 0x02, + 0xC0, 0x21, 0x62, 0x23, 0x04, 0x06, 0xE8, 0x28, 0x09, 0x0B, 0x0D, 0x0E, 0x0F, 0x50, + 0x2F, 0x0E, 0x0D, 0x0C, 0x0A, 0x09, 0x28, 0x09, 0x33, 0x4E, 0x2D, 0x0C, 0x09, 0x06, + 0x24, 0x03, 0x24, 0x05, 0x06, 0x07, 0x68, 0x27, 0x26, 0x25, 0x44, 0x05, 0x26, 0x47, + 0x48, 0x09, 0x0A, 0x0B, 0x8C, 0x0B, 0x0A, 0x08, 0x05, 0x01, 0xC0, 0x21, 0x22, 0x23, + 0x05, 0x07, 0x09, 0x4A, 0x49, 0x68, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x6F, 0x2E, 0x2D, + 0x0B, 0x0A, 0x09, 0x08, 0x09, 0x0A, 0x34, 0x6E, 0x0C, 0x0A, 0x06, 0x05, 0x44, 0x05, + 0x06, 0x07, 0x08, 0x49, 0x28, 0x27, 0x46, 0x25, 0x26, 0x27, 0x68, 0x29, 0x0A, 0x0B, + 0x0C, 0x6D, 0x2C, 0x0B, 0x0A, 0x08, 0x05, 0x02, 0x21, 0x00, 0x61, 0x22, 0x03, 0x04, + 0x05, 0x07, 0x09, 0x0B, 0x4C, 0x2B, 0x2A, 0x49, 0x2A, 0x0B, 0x0D, 0x0E, 0x0F, 0x50, + 0x0F, 0x4E, 0x0D, 0x0C, 0x0B, 0x2A, 0x0B, 0x0D, 0x36, 0x2E, 0x0D, 0x0C, 0x0A, 0x06, + 0x64, 0x05, 0x07, 0x28, 0x09, 0x28, 0x47, 0xA6, 0x67, 0x68, 0x09, 0x0A, 0x0B, 0xCC, + 0x2B, 0x0A, 0x09, 0x07, 0x04, 0x02, 0x21, 0x20, 0x21, 0x22, 0x03, 0x04, 0x05, 0x07, + 0x09, 0x0B, 0x2D, 0x0C, 0x2B, 0x2A, 0x69, 0x2A, 0x0C, 0x0D, 0x0E, 0x6F, 0x2E, 0x2D, + 0x2C, 0x0B, 0x0A, 0x0B, 0x0C, 0x0E, 0x38, 0x4D, 0x0A, 0x06, 0x44, 0x05, 0x06, 0x28, + 0x29, 0x28, 0xA7, 0xFF, 0x41, 0x03, 0x01, 0xFF, 0x0E, 0x0D, 0x09, 0xA8, 0x09, 0x0A, + 0x0D, 0x0E, 0x2D, 0x2C, 0x6B, 0x2A, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01, 0x40, 0x21, + 0x02, 0x03, 0x04, 0x05, 0x07, 0x0A, 0x0C, 0x4D, 0x0C, 0x0B, 0x2A, 0x89, 0x2A, 0x0C, + 0x0D, 0x0E, 0x4F, 0x0E, 0x2D, 0x4C, 0x4B, 0x0C, 0x0D, 0x0F, 0x3A, 0x4D, 0xFF, 0x41, + 0x02, 0x03, 0xFF, 0x45, 0x07, 0x08, 0x49, 0x28, 0x67, 0x08, 0x0C, 0x0E, 0x2F, 0x0E, + 0x0D, 0x0A, 0x68, 0x09, 0x0B, 0x0D, 0x0F, 0x2E, 0x0D, 0x0C, 0x2B, 0x6A, 0x29, 0x08, + 0x06, 0x04, 0x02, 0x21, 0x20, 0x21, 0x02, 0x03, 0x04, 0x05, 0x07, 0x0A, 0x0C, 0x0D, + 0x2E, 0x0C, 0x0B, 0x2A, 0x29, 0x48, 0x29, 0x0A, 0x0C, 0x0D, 0x0E, 0x2F, 0x0E, 0x2D, + 0x2C, 0x6B, 0x0C, 0x0D, 0x0E, 0x0F, 0x3C, 0x6D, 0x0C, 0x0B, 0x0A, 0x69, 0x68, 0x09, + 0x0A, 0x0C, 0x0E, 0x4F, 0x0E, 0x0D, 0x0B, 0x09, 0x28, 0x09, 0x0B, 0x0D, 0x0E, 0x2F, + 0x0E, 0x0C, 0x0B, 0x2A, 0x89, 0x28, 0x06, 0x05, 0x03, 0x02, 0x21, 0x00, 0x21, 0x22, + 0x04, 0x05, 0x07, 0x0A, 0x0C, 0x0D, 0x2E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0xA8, 0x09, + 0x0A, 0x0C, 0x0D, 0x4E, 0x0D, 0x2C, 0x8B, 0x2C, 0x0D, 0x0E, 0x0F, 0x3F, 0x2C, 0x2B, + 0x0A, 0x29, 0xA8, 0x09, 0x0A, 0x0B, 0x2D, 0x2E, 0x2D, 0x0B, 0x0A, 0x48, 0x09, 0x0B, + 0x0D, 0x2E, 0x0D, 0x0C, 0x0B, 0x09, 0x68, 0x67, 0x26, 0x04, 0x03, 0x01, 0x80, 0x21, + 0x02, 0x04, 0x06, 0x08, 0x0B, 0x0C, 0x0D, 0x0E, 0x0D, 0x0C, 0x0A, 0x09, 0x08, 0x27, + 0x66, 0x07, 0x08, 0x0A, 0x0C, 0x6D, 0x0C, 0x0B, 0xAA, 0x0B, 0x2C, 0x2D, 0x41, 0x2B, + 0x0A, 0x29, 0x88, 0x29, 0x0A, 0x0B, 0x0C, 0x6D, 0x2C, 0x0B, 0x69, 0x0B, 0x0C, 0x0D, + 0x0E, 0x2D, 0x0C, 0x0A, 0x09, 0x08, 0xE7, 0x06, 0x05, 0x03, 0x02, 0x01, 0x60, 0x21, + 0x02, 0x04, 0x06, 0x08, 0x0B, 0x0C, 0x4E, 0x0D, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x86, + 0x07, 0x09, 0x0B, 0x0C, 0x4D, 0x0C, 0x0B, 0x2A, 0x49, 0x2A, 0x0B, 0x4C, 0x0D, 0x43, + 0x0A, 0x49, 0x48, 0x29, 0x2A, 0x0B, 0x4C, 0x0D, 0x4C, 0x0B, 0x0A, 0x49, 0x0A, 0x0C, + 0x6D, 0x0C, 0x0B, 0x09, 0x08, 0x07, 0x46, 0x87, 0x06, 0x05, 0x04, 0x03, 0x02, 0x21, + 0x00, 0x21, 0x02, 0x03, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x8D, 0x0B, 0x0A, 0x08, 0x07, + 0x26, 0x25, 0x06, 0x07, 0x08, 0x0B, 0x0C, 0x6D, 0x0B, 0x2A, 0x69, 0x2A, 0x2B, 0x4C, + 0x46, 0x08, 0x67, 0x28, 0x29, 0xEA, 0x0A, 0x29, 0x08, 0x29, 0xCA, 0x09, 0x07, 0x06, + 0x85, 0x06, 0x27, 0x08, 0x07, 0x06, 0x04, 0x03, 0x02, 0x01, 0x60, 0x01, 0x02, 0x03, + 0x05, 0x07, 0x09, 0xEA, 0x09, 0x08, 0x07, 0x65, 0x06, 0x08, 0xEA, 0x09, 0x88, 0x09, + 0xAA, 0x49, 0x06, 0xE7, 0xE7, 0xE7, 0x87, 0x05, 0x24, 0x23, 0x04, 0x05, 0xA7, 0x06, + 0x04, 0x02, 0x21, 0x60, 0x01, 0x02, 0x04, 0x06, 0xE7, 0xA7, 0x06, 0xE7, 0xE7, 0xE7, + 0x07, 0x4B, 0xE5, 0xE5, 0xE5, 0xA5, 0x04, 0x23, 0x04, 0xE5, 0x45, 0x03, 0x02, 0x01, + 0x40, 0x01, 0x02, 0x04, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0x25, 0x4B, 0xE5, 0xE5, 0xE5, + 0xA5, 0x04, 0x23, 0x04, 0xE5, 0x45, 0x03, 0x02, 0x01, 0x40, 0x01, 0x02, 0x04, 0xE5, + 0xE5, 0xE5, 0xE5, 0xE5, 0x25, 0x4B, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, + 0xE5, 0xE5, 0xE5, 0xE5 }; -s32 D_8002C50C = 0; +u8 D_8002C50C = 0; -#ifdef NONMATCHING -void insert_imageDL(void) { +Gfx *insert_imageDL(Gfx *gdl) { + gDPSetCycleType(gdl++, G_CYC_FILL); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, viGetX(), osVirtualToPhysical(viGetFrameBuf2())); + gDPSetFillColor(gdl++, ((GPACK_RGBA5551(0, 0, 0, 1) << 16) | GPACK_RGBA5551(0, 0, 0, 1))); + gDPFillRectangle(gdl++, 0, 0, (viGetX() - 1), (viGetY() - 1)); + return gdl; } -#else -GLOBAL_ASM( -.text -glabel insert_imageDL -/* 050C00 7F01C0D0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 050C04 7F01C0D4 AFB00018 */ sw $s0, 0x18($sp) -/* 050C08 7F01C0D8 AFBF001C */ sw $ra, 0x1c($sp) -/* 050C0C 7F01C0DC 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 -/* 050C10 7F01C0E0 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 -/* 050C14 7F01C0E4 3C0F0030 */ lui $t7, 0x30 -/* 050C18 7F01C0E8 AC8F0004 */ sw $t7, 4($a0) -/* 050C1C 7F01C0EC AC8E0000 */ sw $t6, ($a0) -/* 050C20 7F01C0F0 24900008 */ addiu $s0, $a0, 8 -/* 050C24 7F01C0F4 AFB00030 */ sw $s0, 0x30($sp) -/* 050C28 7F01C0F8 0C001107 */ jal get_video2_settings_txtClipW -/* 050C2C 7F01C0FC 26100008 */ addiu $s0, $s0, 8 -/* 050C30 7F01C100 2458FFFF */ addiu $t8, $v0, -1 -/* 050C34 7F01C104 8FA90030 */ lw $t1, 0x30($sp) -/* 050C38 7F01C108 33190FFF */ andi $t9, $t8, 0xfff -/* 050C3C 7F01C10C 3C01FF10 */ lui $at, 0xff10 -/* 050C40 7F01C110 03214025 */ or $t0, $t9, $at -/* 050C44 7F01C114 0C000F07 */ jal get_video_settings2_frameb -/* 050C48 7F01C118 AD280000 */ sw $t0, ($t1) -/* 050C4C 7F01C11C 0C003A2C */ jal osVirtualToPhysical -/* 050C50 7F01C120 00402025 */ move $a0, $v0 -/* 050C54 7F01C124 8FAA0030 */ lw $t2, 0x30($sp) -/* 050C58 7F01C128 02001825 */ move $v1, $s0 -/* 050C5C 7F01C12C 3C0C0001 */ lui $t4, (0x00010001 >> 16) # lui $t4, 1 -/* 050C60 7F01C130 AD420004 */ sw $v0, 4($t2) -/* 050C64 7F01C134 358C0001 */ ori $t4, (0x00010001 & 0xFFFF) # ori $t4, $t4, 1 -/* 050C68 7F01C138 3C0BF700 */ lui $t3, 0xf700 -/* 050C6C 7F01C13C AC6B0000 */ sw $t3, ($v1) -/* 050C70 7F01C140 AC6C0004 */ sw $t4, 4($v1) -/* 050C74 7F01C144 26100008 */ addiu $s0, $s0, 8 -/* 050C78 7F01C148 AFB00028 */ sw $s0, 0x28($sp) -/* 050C7C 7F01C14C 0C001107 */ jal get_video2_settings_txtClipW -/* 050C80 7F01C150 26100008 */ addiu $s0, $s0, 8 -/* 050C84 7F01C154 0C00110B */ jal get_video2_settings_txtClipH -/* 050C88 7F01C158 A7A20022 */ sh $v0, 0x22($sp) -/* 050C8C 7F01C15C 87B90022 */ lh $t9, 0x22($sp) -/* 050C90 7F01C160 244DFFFF */ addiu $t5, $v0, -1 -/* 050C94 7F01C164 8FA30028 */ lw $v1, 0x28($sp) -/* 050C98 7F01C168 31AE03FF */ andi $t6, $t5, 0x3ff -/* 050C9C 7F01C16C 2728FFFF */ addiu $t0, $t9, -1 -/* 050CA0 7F01C170 310903FF */ andi $t1, $t0, 0x3ff -/* 050CA4 7F01C174 000E7880 */ sll $t7, $t6, 2 -/* 050CA8 7F01C178 3C01F600 */ lui $at, 0xf600 -/* 050CAC 7F01C17C 01E1C025 */ or $t8, $t7, $at -/* 050CB0 7F01C180 00095380 */ sll $t2, $t1, 0xe -/* 050CB4 7F01C184 030A5825 */ or $t3, $t8, $t2 -/* 050CB8 7F01C188 AC6B0000 */ sw $t3, ($v1) -/* 050CBC 7F01C18C AC600004 */ sw $zero, 4($v1) -/* 050CC0 7F01C190 8FBF001C */ lw $ra, 0x1c($sp) -/* 050CC4 7F01C194 02001025 */ move $v0, $s0 -/* 050CC8 7F01C198 8FB00018 */ lw $s0, 0x18($sp) -/* 050CCC 7F01C19C 03E00008 */ jr $ra -/* 050CD0 7F01C1A0 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif +Gfx *sub_GAME_7F01C1A4(Gfx *gdl) { + gSPMatrix(gdl++, osVirtualToPhysical(matrix_buffer_gunbarrel_0), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION)); + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_rarelogo_2[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW)); + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_1CYCLE); + gDPSetRenderMode(gdl++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + gSPSetGeometryMode(gdl++, (G_SHADE | G_SHADING_SMOOTH)); - -#ifdef NONMATCHING -void sub_GAME_7F01C1A4(void) { - + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F01C1A4 -/* 050CD4 7F01C1A4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 050CD8 7F01C1A8 3C0E0103 */ lui $t6, (0x01030040 >> 16) # lui $t6, 0x103 -/* 050CDC 7F01C1AC AFBF0014 */ sw $ra, 0x14($sp) -/* 050CE0 7F01C1B0 35CE0040 */ ori $t6, (0x01030040 & 0xFFFF) # ori $t6, $t6, 0x40 -/* 050CE4 7F01C1B4 AC8E0000 */ sw $t6, ($a0) -/* 050CE8 7F01C1B8 00801825 */ move $v1, $a0 -/* 050CEC 7F01C1BC 24850008 */ addiu $a1, $a0, 8 -/* 050CF0 7F01C1C0 3C048007 */ lui $a0, %hi(matrix_buffer_gunbarrel_0) -/* 050CF4 7F01C1C4 8C84955C */ lw $a0, %lo(matrix_buffer_gunbarrel_0)($a0) -/* 050CF8 7F01C1C8 AFA50020 */ sw $a1, 0x20($sp) -/* 050CFC 7F01C1CC 0C003A2C */ jal osVirtualToPhysical -/* 050D00 7F01C1D0 AFA3001C */ sw $v1, 0x1c($sp) -/* 050D04 7F01C1D4 8FA3001C */ lw $v1, 0x1c($sp) -/* 050D08 7F01C1D8 8FA80020 */ lw $t0, 0x20($sp) -/* 050D0C 7F01C1DC 3C0F0102 */ lui $t7, (0x01020040 >> 16) # lui $t7, 0x102 -/* 050D10 7F01C1E0 35EF0040 */ ori $t7, (0x01020040 & 0xFFFF) # ori $t7, $t7, 0x40 -/* 050D14 7F01C1E4 AC620004 */ sw $v0, 4($v1) -/* 050D18 7F01C1E8 3C188003 */ lui $t8, %hi(D_8002A7D0) -/* 050D1C 7F01C1EC AD0F0000 */ sw $t7, ($t0) -/* 050D20 7F01C1F0 8F18A7D0 */ lw $t8, %lo(D_8002A7D0)($t8) -/* 050D24 7F01C1F4 3C098007 */ lui $t1, %hi(matrix_buffer_rarelogo_2) -/* 050D28 7F01C1F8 8D299564 */ lw $t1, %lo(matrix_buffer_rarelogo_2)($t1) -/* 050D2C 7F01C1FC 25050008 */ addiu $a1, $t0, 8 -/* 050D30 7F01C200 0018C980 */ sll $t9, $t8, 6 -/* 050D34 7F01C204 AFA50020 */ sw $a1, 0x20($sp) -/* 050D38 7F01C208 AFA80018 */ sw $t0, 0x18($sp) -/* 050D3C 7F01C20C 0C003A2C */ jal osVirtualToPhysical -/* 050D40 7F01C210 03292021 */ addu $a0, $t9, $t1 -/* 050D44 7F01C214 8FA30020 */ lw $v1, 0x20($sp) -/* 050D48 7F01C218 8FA80018 */ lw $t0, 0x18($sp) -/* 050D4C 7F01C21C 3C0AE700 */ lui $t2, 0xe700 -/* 050D50 7F01C220 24640008 */ addiu $a0, $v1, 8 -/* 050D54 7F01C224 AD020004 */ sw $v0, 4($t0) -/* 050D58 7F01C228 3C0BBA00 */ lui $t3, (0xBA001402 >> 16) # lui $t3, 0xba00 gDPSetCycleType(2cycle) -/* 050D5C 7F01C22C AC600004 */ sw $zero, 4($v1) -/* 050D60 7F01C230 AC6A0000 */ sw $t2, ($v1) -/* 050D64 7F01C234 356B1402 */ ori $t3, (0xBA001402 & 0xFFFF) # ori $t3, $t3, 0x1402 -/* 050D68 7F01C238 24860008 */ addiu $a2, $a0, 8 -/* 050D6C 7F01C23C AC8B0000 */ sw $t3, ($a0) -/* 050D70 7F01C240 AC800004 */ sw $zero, 4($a0) -/* 050D74 7F01C244 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 gDPSetRenderMode(AAOpaSurf) -/* 050D78 7F01C248 3C0D0055 */ lui $t5, (0x00552048 >> 16) # lui $t5, 0x55 -/* 050D7C 7F01C24C 35AD2048 */ ori $t5, (0x00552048 & 0xFFFF) # ori $t5, $t5, 0x2048 -/* 050D80 7F01C250 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 050D84 7F01C254 ACCC0000 */ sw $t4, ($a2) -/* 050D88 7F01C258 ACCD0004 */ sw $t5, 4($a2) -/* 050D8C 7F01C25C 24C70008 */ addiu $a3, $a2, 8 -/* 050D90 7F01C260 3C0EB700 */ lui $t6, 0xb700 -/* 050D94 7F01C264 240F0204 */ li $t7, 516 -/* 050D98 7F01C268 ACEF0004 */ sw $t7, 4($a3) -/* 050D9C 7F01C26C ACEE0000 */ sw $t6, ($a3) -/* 050DA0 7F01C270 8FBF0014 */ lw $ra, 0x14($sp) -/* 050DA4 7F01C274 24E20008 */ addiu $v0, $a3, 8 -/* 050DA8 7F01C278 27BD0020 */ addiu $sp, $sp, 0x20 -/* 050DAC 7F01C27C 03E00008 */ jr $ra -/* 050DB0 7F01C280 00000000 */ nop -) -#endif +s32 die_blood_image_routine(s32 arg0) { + s8 sp37; + u8* temp_v0_2; + if (arg0 == 0) { + pPlayer->field_11A8 = die_blood_image_1; + } else if (arg0 == 1) { + if (pPlayer->field_11AC < &D_8002C50C) { + pPlayer->field_11A8 = pPlayer->field_11AC; + } + } -#ifdef NONMATCHING -void die_blood_image_routine(void) { + pPlayer->field_11B8 = (1 - pPlayer->field_11B8); + pPlayer->field_11B0[pPlayer->field_11B8] = dynAllocate(0x1E00); + temp_v0_2 = dynAllocate(0x1E00); + pPlayer->field_11AC = decrypt_bleeding_animation_data(pPlayer->field_11A8, 0x50, 0x60, temp_v0_2, &sp37); + sub_GAME_7F01D16C(temp_v0_2, 0x50, 0x60, pPlayer->field_11B0[pPlayer->field_11B8]); + sub_GAME_7F01D02C(pPlayer->field_11B0[pPlayer->field_11B8], 0x50, pPlayer->field_11B0[pPlayer->field_11B8]); + sub_GAME_7F01CEEC(pPlayer->field_11B0[pPlayer->field_11B8], 0x50, pPlayer->field_11B0[pPlayer->field_11B8]); + sub_GAME_7F01CC94(pPlayer->field_11B0[pPlayer->field_11B8], 0x1E00, pPlayer->field_11B0[pPlayer->field_11B8]); + return (pPlayer->field_11AC >= &D_8002C50C); } -#else -GLOBAL_ASM( -.text -glabel die_blood_image_routine -/* 050DB4 7F01C284 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 050DB8 7F01C288 AFBF0024 */ sw $ra, 0x24($sp) -/* 050DBC 7F01C28C AFB10020 */ sw $s1, 0x20($sp) -/* 050DC0 7F01C290 14800008 */ bnez $a0, .L7F01C2B4 -/* 050DC4 7F01C294 AFB0001C */ sw $s0, 0x1c($sp) -/* 050DC8 7F01C298 3C118008 */ lui $s1, %hi(pPlayer) -/* 050DCC 7F01C29C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 -/* 050DD0 7F01C2A0 8E2F0000 */ lw $t7, ($s1) -/* 050DD4 7F01C2A4 3C0E8003 */ lui $t6, %hi(die_blood_image_1) -/* 050DD8 7F01C2A8 25CEBB30 */ addiu $t6, %lo(die_blood_image_1) # addiu $t6, $t6, -0x44d0 -/* 050DDC 7F01C2AC 1000000D */ b .L7F01C2E4 -/* 050DE0 7F01C2B0 ADEE11A8 */ sw $t6, 0x11a8($t7) -.L7F01C2B4: -/* 050DE4 7F01C2B4 24010001 */ li $at, 1 -/* 050DE8 7F01C2B8 1481000A */ bne $a0, $at, .L7F01C2E4 -/* 050DEC 7F01C2BC 3C118008 */ lui $s1, %hi(pPlayer) -/* 050DF0 7F01C2C0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 -/* 050DF4 7F01C2C4 8E300000 */ lw $s0, ($s1) -/* 050DF8 7F01C2C8 3C188003 */ lui $t8, %hi(D_8002C50C) -/* 050DFC 7F01C2CC 2718C50C */ addiu $t8, %lo(D_8002C50C) # addiu $t8, $t8, -0x3af4 -/* 050E00 7F01C2D0 8E0211AC */ lw $v0, 0x11ac($s0) -/* 050E04 7F01C2D4 0058082B */ sltu $at, $v0, $t8 -/* 050E08 7F01C2D8 10200002 */ beqz $at, .L7F01C2E4 -/* 050E0C 7F01C2DC 00000000 */ nop -/* 050E10 7F01C2E0 AE0211A8 */ sw $v0, 0x11a8($s0) -.L7F01C2E4: -/* 050E14 7F01C2E4 3C118008 */ lui $s1, %hi(pPlayer) -/* 050E18 7F01C2E8 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 -/* 050E1C 7F01C2EC 8E300000 */ lw $s0, ($s1) -/* 050E20 7F01C2F0 24080001 */ li $t0, 1 -/* 050E24 7F01C2F4 24041E00 */ li $a0, 7680 -/* 050E28 7F01C2F8 8E1911B8 */ lw $t9, 0x11b8($s0) -/* 050E2C 7F01C2FC 01194823 */ subu $t1, $t0, $t9 -/* 050E30 7F01C300 0FC2F5C5 */ jal sub_GAME_7F0BD714 -/* 050E34 7F01C304 AE0911B8 */ sw $t1, 0x11b8($s0) -/* 050E38 7F01C308 8E300000 */ lw $s0, ($s1) -/* 050E3C 7F01C30C 24041E00 */ li $a0, 7680 -/* 050E40 7F01C310 8E0A11B8 */ lw $t2, 0x11b8($s0) -/* 050E44 7F01C314 000A5880 */ sll $t3, $t2, 2 -/* 050E48 7F01C318 020B6021 */ addu $t4, $s0, $t3 -/* 050E4C 7F01C31C 0FC2F5C5 */ jal sub_GAME_7F0BD714 -/* 050E50 7F01C320 AD8211B0 */ sw $v0, 0x11b0($t4) -/* 050E54 7F01C324 8E2D0000 */ lw $t5, ($s1) -/* 050E58 7F01C328 AFA20030 */ sw $v0, 0x30($sp) -/* 050E5C 7F01C32C 27AE0037 */ addiu $t6, $sp, 0x37 -/* 050E60 7F01C330 8DA411A8 */ lw $a0, 0x11a8($t5) -/* 050E64 7F01C334 AFAE0010 */ sw $t6, 0x10($sp) -/* 050E68 7F01C338 24050050 */ li $a1, 80 -/* 050E6C 7F01C33C 24060060 */ li $a2, 96 -/* 050E70 7F01C340 0FC072B8 */ jal decrypt_bleeding_animation_data -/* 050E74 7F01C344 00403825 */ move $a3, $v0 -/* 050E78 7F01C348 8E2F0000 */ lw $t7, ($s1) -/* 050E7C 7F01C34C 24050050 */ li $a1, 80 -/* 050E80 7F01C350 24060060 */ li $a2, 96 -/* 050E84 7F01C354 ADE211AC */ sw $v0, 0x11ac($t7) -/* 050E88 7F01C358 8E300000 */ lw $s0, ($s1) -/* 050E8C 7F01C35C 8FA40030 */ lw $a0, 0x30($sp) -/* 050E90 7F01C360 8E1811B8 */ lw $t8, 0x11b8($s0) -/* 050E94 7F01C364 00184080 */ sll $t0, $t8, 2 -/* 050E98 7F01C368 0208C821 */ addu $t9, $s0, $t0 -/* 050E9C 7F01C36C 0FC0745B */ jal sub_GAME_7F01D16C -/* 050EA0 7F01C370 8F2711B0 */ lw $a3, 0x11b0($t9) -/* 050EA4 7F01C374 8E300000 */ lw $s0, ($s1) -/* 050EA8 7F01C378 24050050 */ li $a1, 80 -/* 050EAC 7F01C37C 8E0911B8 */ lw $t1, 0x11b8($s0) -/* 050EB0 7F01C380 00095080 */ sll $t2, $t1, 2 -/* 050EB4 7F01C384 020A5821 */ addu $t3, $s0, $t2 -/* 050EB8 7F01C388 8D6411B0 */ lw $a0, 0x11b0($t3) -/* 050EBC 7F01C38C 0FC0740B */ jal sub_GAME_7F01D02C -/* 050EC0 7F01C390 00803025 */ move $a2, $a0 -/* 050EC4 7F01C394 8E300000 */ lw $s0, ($s1) -/* 050EC8 7F01C398 24050050 */ li $a1, 80 -/* 050ECC 7F01C39C 8E0C11B8 */ lw $t4, 0x11b8($s0) -/* 050ED0 7F01C3A0 000C6880 */ sll $t5, $t4, 2 -/* 050ED4 7F01C3A4 020D7021 */ addu $t6, $s0, $t5 -/* 050ED8 7F01C3A8 8DC411B0 */ lw $a0, 0x11b0($t6) -/* 050EDC 7F01C3AC 0FC073BB */ jal sub_GAME_7F01CEEC -/* 050EE0 7F01C3B0 00803025 */ move $a2, $a0 -/* 050EE4 7F01C3B4 8E300000 */ lw $s0, ($s1) -/* 050EE8 7F01C3B8 24051E00 */ li $a1, 7680 -/* 050EEC 7F01C3BC 8E0F11B8 */ lw $t7, 0x11b8($s0) -/* 050EF0 7F01C3C0 000FC080 */ sll $t8, $t7, 2 -/* 050EF4 7F01C3C4 02184021 */ addu $t0, $s0, $t8 -/* 050EF8 7F01C3C8 8D0411B0 */ lw $a0, 0x11b0($t0) -/* 050EFC 7F01C3CC 0FC07325 */ jal sub_GAME_7F01CC94 -/* 050F00 7F01C3D0 00803025 */ move $a2, $a0 -/* 050F04 7F01C3D4 8E390000 */ lw $t9, ($s1) -/* 050F08 7F01C3D8 8FBF0024 */ lw $ra, 0x24($sp) -/* 050F0C 7F01C3DC 3C0A8003 */ lui $t2, %hi(D_8002C50C) -/* 050F10 7F01C3E0 8F2911AC */ lw $t1, 0x11ac($t9) -/* 050F14 7F01C3E4 254AC50C */ addiu $t2, %lo(D_8002C50C) # addiu $t2, $t2, -0x3af4 -/* 050F18 7F01C3E8 8FB10020 */ lw $s1, 0x20($sp) -/* 050F1C 7F01C3EC 8FB0001C */ lw $s0, 0x1c($sp) -/* 050F20 7F01C3F0 012A102B */ sltu $v0, $t1, $t2 -/* 050F24 7F01C3F4 38420001 */ xori $v0, $v0, 1 -/* 050F28 7F01C3F8 03E00008 */ jr $ra -/* 050F2C 7F01C3FC 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif +Gfx *sub_GAME_7F01C400(Gfx *gdl) { + gDPSetTextureLUT(gdl++, G_TT_NONE); + gDPSetTextureFilter(gdl++, G_TF_BILERP); + gdl = sub_GAME_7F01C1A4(gdl); -#ifdef NONMATCHING -void sub_GAME_7F01C400(void) { - + gSPTexture(gdl++, 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON); + gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(gdl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM) + gDPSetColorDither(gdl++, G_CD_MAGICSQ); + gDPSetPrimColor(gdl++, 0, 0, 0x96, 0x00, 0x00, 0xB4); + gDPSetTexturePersp(gdl++, G_TP_NONE); + gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(pPlayer->field_11B0[pPlayer->field_11B8]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gdl++, 0, 0, ((viGetX() * 4) - 1), ((viGetY() * 4) - 1), G_TX_RENDERTILE, 0, 0, 0x18000 / viGetX(), 0x14000 / viGetY()); + + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F01C400 -/* 050F30 7F01C400 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 050F34 7F01C404 AFBF001C */ sw $ra, 0x1c($sp) -/* 050F38 7F01C408 AFB00018 */ sw $s0, 0x18($sp) -/* 050F3C 7F01C40C 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H -/* 050F40 7F01C410 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 -/* 050F44 7F01C414 AC8E0000 */ sw $t6, ($a0) -/* 050F48 7F01C418 AC800004 */ sw $zero, 4($a0) -/* 050F4C 7F01C41C 24830008 */ addiu $v1, $a0, 8 -/* 050F50 7F01C420 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 -/* 050F54 7F01C424 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 -/* 050F58 7F01C428 24182000 */ li $t8, 8192 -/* 050F5C 7F01C42C AC780004 */ sw $t8, 4($v1) -/* 050F60 7F01C430 AC6F0000 */ sw $t7, ($v1) -/* 050F64 7F01C434 0FC07069 */ jal sub_GAME_7F01C1A4 -/* 050F68 7F01C438 24640008 */ addiu $a0, $v1, 8 -/* 050F6C 7F01C43C 3C19BB00 */ lui $t9, (0xBB000001 >> 16) # lui $t9, 0xbb00 -/* 050F70 7F01C440 37390001 */ ori $t9, (0xBB000001 & 0xFFFF) # ori $t9, $t9, 1 -/* 050F74 7F01C444 AC590000 */ sw $t9, ($v0) -/* 050F78 7F01C448 3C088000 */ lui $t0, (0x80008000 >> 16) -/* 050F7C 7F01C44C 3C09B900 */ lui $t1, (0xB900031D >> 16) # lui $t1, 0xb900 #gDPSetRenderMode(OpaSurf) -/* 050F80 7F01C450 3C0A0050 */ lui $t2, (0x00504340 >> 16) # lui $t2, 0x50 -/* 050F84 7F01C454 3C0BFC11 */ lui $t3, (0xFC119623 >> 16) # lui $t3, 0xfc11 -/* 050F88 7F01C458 3C0CFF2F */ lui $t4, (0xFF2FFFFF >> 16) # lui $t4, 0xff2f -/* 050F8C 7F01C45C 3C0DBA00 */ lui $t5, (0xBA000602 >> 16) # lui $t5, 0xba00 -/* 050F90 7F01C460 3C0F9600 */ lui $t7, (0x960000B4 >> 16) # lui $t7, 0x9600 -/* 050F94 7F01C464 3C18BA00 */ lui $t8, (0xBA001301 >> 16) # lui $t8, 0xba00 -/* 050F98 7F01C468 35088000 */ ori $t0, (0x80008000 & 0xFFFF) # ori $t0, $t0, 0x8000 -/* 050F9C 7F01C46C 354A4340 */ ori $t2, (0x00504340 & 0xFFFF) # ori $t2, $t2, 0x4340 -/* 050FA0 7F01C470 3529031D */ ori $t1, (0xB900031D & 0xFFFF) # ori $t1, $t1, 0x31d -/* 050FA4 7F01C474 358CFFFF */ ori $t4, (0xFF2FFFFF & 0xFFFF) # ori $t4, $t4, 0xffff -/* 050FA8 7F01C478 356B9623 */ ori $t3, (0xFC119623 & 0xFFFF) # ori $t3, $t3, 0x9623 #setcombine() -/* 050FAC 7F01C47C 35AD0602 */ ori $t5, (0xBA000602 & 0xFFFF) # ori $t5, $t5, 0x602 -/* 050FB0 7F01C480 35EF00B4 */ ori $t7, (0x960000B4 & 0xFFFF) # ori $t7, $t7, 0xb4 -/* 050FB4 7F01C484 3C0EFA00 */ lui $t6, 0xfa00 -/* 050FB8 7F01C488 37181301 */ ori $t8, (0xBA001301 & 0xFFFF) # ori $t8, $t8, 0x1301 -/* 050FBC 7F01C48C 3C19FD90 */ lui $t9, 0xfd90 -/* 050FC0 7F01C490 AC480004 */ sw $t0, 4($v0) -/* 050FC4 7F01C494 AC490008 */ sw $t1, 8($v0) -/* 050FC8 7F01C498 AC4A000C */ sw $t2, 0xc($v0) -/* 050FCC 7F01C49C AC4B0010 */ sw $t3, 0x10($v0) -/* 050FD0 7F01C4A0 AC4C0014 */ sw $t4, 0x14($v0) -/* 050FD4 7F01C4A4 AC4D0018 */ sw $t5, 0x18($v0) -/* 050FD8 7F01C4A8 AC40001C */ sw $zero, 0x1c($v0) -/* 050FDC 7F01C4AC AC4E0020 */ sw $t6, 0x20($v0) -/* 050FE0 7F01C4B0 AC4F0024 */ sw $t7, 0x24($v0) -/* 050FE4 7F01C4B4 AC580028 */ sw $t8, 0x28($v0) -/* 050FE8 7F01C4B8 AC40002C */ sw $zero, 0x2c($v0) -/* 050FEC 7F01C4BC AC590030 */ sw $t9, 0x30($v0) -/* 050FF0 7F01C4C0 3C038008 */ lui $v1, %hi(pPlayer) -/* 050FF4 7F01C4C4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) -/* 050FF8 7F01C4C8 3C018000 */ lui $at, 0x8000 -/* 050FFC 7F01C4CC 3C190777 */ lui $t9, (0x0777F156 >> 16) # lui $t9, 0x777 -/* 051000 7F01C4D0 8C6811B8 */ lw $t0, 0x11b8($v1) -/* 051004 7F01C4D4 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708 -/* 051008 7F01C4D8 3C0DF590 */ lui $t5, 0xf590 -/* 05100C 7F01C4DC 00084880 */ sll $t1, $t0, 2 -/* 051010 7F01C4E0 00695021 */ addu $t2, $v1, $t1 -/* 051014 7F01C4E4 8D4B11B0 */ lw $t3, 0x11b0($t2) -/* 051018 7F01C4E8 3C0A0008 */ lui $t2, (0x00080200 >> 16) # lui $t2, 8 -/* 05101C 7F01C4EC 3C09F580 */ lui $t1, (0xF5800C00 >> 16) # lui $t1, 0xf580 -/* 051020 7F01C4F0 01616021 */ addu $t4, $t3, $at -/* 051024 7F01C4F4 AC4C0034 */ sw $t4, 0x34($v0) -/* 051028 7F01C4F8 3C0C0017 */ lui $t4, (0x0017C13C >> 16) # lui $t4, 0x17 -/* 05102C 7F01C4FC 358CC13C */ ori $t4, (0x0017C13C & 0xFFFF) # ori $t4, $t4, 0xc13c -/* 051030 7F01C500 3C0BF200 */ lui $t3, 0xf200 -/* 051034 7F01C504 35290C00 */ ori $t1, (0xF5800C00 & 0xFFFF) # ori $t1, $t1, 0xc00 -/* 051038 7F01C508 354A0200 */ ori $t2, (0x00080200 & 0xFFFF) # ori $t2, $t2, 0x200 -/* 05103C 7F01C50C AC4D0038 */ sw $t5, 0x38($v0) -/* 051040 7F01C510 3C08E700 */ lui $t0, 0xe700 -/* 051044 7F01C514 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200 -/* 051048 7F01C518 3739F156 */ ori $t9, (0x0777F156 & 0xFFFF) # ori $t9, $t9, 0xf156 -/* 05104C 7F01C51C 3C18F300 */ lui $t8, 0xf300 -/* 051050 7F01C520 3C0FE600 */ lui $t7, 0xe600 -/* 051054 7F01C524 AC4F0040 */ sw $t7, 0x40($v0) -/* 051058 7F01C528 AC580048 */ sw $t8, 0x48($v0) -/* 05105C 7F01C52C AC59004C */ sw $t9, 0x4c($v0) -/* 051060 7F01C530 AC4E003C */ sw $t6, 0x3c($v0) -/* 051064 7F01C534 AC480050 */ sw $t0, 0x50($v0) -/* 051068 7F01C538 AC4A005C */ sw $t2, 0x5c($v0) -/* 05106C 7F01C53C AC490058 */ sw $t1, 0x58($v0) -/* 051070 7F01C540 AC4B0060 */ sw $t3, 0x60($v0) -/* 051074 7F01C544 AC4C0064 */ sw $t4, 0x64($v0) -/* 051078 7F01C548 AC400054 */ sw $zero, 0x54($v0) -/* 05107C 7F01C54C AC400044 */ sw $zero, 0x44($v0) -/* 051080 7F01C550 244D0068 */ addiu $t5, $v0, 0x68 -/* 051084 7F01C554 AFAD0030 */ sw $t5, 0x30($sp) -/* 051088 7F01C558 0C001107 */ jal get_video2_settings_txtClipW -/* 05108C 7F01C55C 24500070 */ addiu $s0, $v0, 0x70 -/* 051090 7F01C560 0C00110B */ jal get_video2_settings_txtClipH -/* 051094 7F01C564 A7A20026 */ sh $v0, 0x26($sp) -/* 051098 7F01C568 87A80026 */ lh $t0, 0x26($sp) -/* 05109C 7F01C56C 00027080 */ sll $t6, $v0, 2 -/* 0510A0 7F01C570 8FA50030 */ lw $a1, 0x30($sp) -/* 0510A4 7F01C574 00084880 */ sll $t1, $t0, 2 -/* 0510A8 7F01C578 252AFFFF */ addiu $t2, $t1, -1 -/* 0510AC 7F01C57C 25CFFFFF */ addiu $t7, $t6, -1 -/* 0510B0 7F01C580 31F80FFF */ andi $t8, $t7, 0xfff -/* 0510B4 7F01C584 314B0FFF */ andi $t3, $t2, 0xfff -/* 0510B8 7F01C588 3C01E400 */ lui $at, 0xe400 -/* 0510BC 7F01C58C 0301C825 */ or $t9, $t8, $at -/* 0510C0 7F01C590 000B6300 */ sll $t4, $t3, 0xc -/* 0510C4 7F01C594 032C6825 */ or $t5, $t9, $t4 -/* 0510C8 7F01C598 02001825 */ move $v1, $s0 -/* 0510CC 7F01C59C ACAD0000 */ sw $t5, ($a1) -/* 0510D0 7F01C5A0 ACA00004 */ sw $zero, 4($a1) -/* 0510D4 7F01C5A4 26100008 */ addiu $s0, $s0, 8 -/* 0510D8 7F01C5A8 3C0EB400 */ lui $t6, 0xb400 -/* 0510DC 7F01C5AC AC6E0000 */ sw $t6, ($v1) -/* 0510E0 7F01C5B0 02002025 */ move $a0, $s0 -/* 0510E4 7F01C5B4 AC600004 */ sw $zero, 4($v1) -/* 0510E8 7F01C5B8 3C0FB300 */ lui $t7, 0xb300 -/* 0510EC 7F01C5BC AC8F0000 */ sw $t7, ($a0) -/* 0510F0 7F01C5C0 AFA40028 */ sw $a0, 0x28($sp) -/* 0510F4 7F01C5C4 0C001107 */ jal get_video2_settings_txtClipW -/* 0510F8 7F01C5C8 26100008 */ addiu $s0, $s0, 8 -/* 0510FC 7F01C5CC 0C00110B */ jal get_video2_settings_txtClipH -/* 051100 7F01C5D0 A7A20026 */ sh $v0, 0x26($sp) -/* 051104 7F01C5D4 3C180001 */ lui $t8, (0x00014000 >> 16) # lui $t8, 1 -/* 051108 7F01C5D8 37184000 */ ori $t8, (0x00014000 & 0xFFFF) # ori $t8, $t8, 0x4000 -/* 05110C 7F01C5DC 0302001A */ div $zero, $t8, $v0 -/* 051110 7F01C5E0 00004012 */ mflo $t0 -/* 051114 7F01C5E4 87AA0026 */ lh $t2, 0x26($sp) -/* 051118 7F01C5E8 3C0B0001 */ lui $t3, (0x00018000 >> 16) # lui $t3, 1 -/* 05111C 7F01C5EC 356B8000 */ ori $t3, (0x00018000 & 0xFFFF) # ori $t3, $t3, 0x8000 -/* 051120 7F01C5F0 016A001A */ div $zero, $t3, $t2 -/* 051124 7F01C5F4 14400002 */ bnez $v0, .L7F01C600 -/* 051128 7F01C5F8 00000000 */ nop -/* 05112C 7F01C5FC 0007000D */ break 7 -.L7F01C600: -/* 051130 7F01C600 2401FFFF */ li $at, -1 -/* 051134 7F01C604 14410004 */ bne $v0, $at, .L7F01C618 -/* 051138 7F01C608 3C018000 */ lui $at, 0x8000 -/* 05113C 7F01C60C 17010002 */ bne $t8, $at, .L7F01C618 -/* 051140 7F01C610 00000000 */ nop -/* 051144 7F01C614 0006000D */ break 6 -.L7F01C618: -/* 051148 7F01C618 0000C812 */ mflo $t9 -/* 05114C 7F01C61C 8FAF0028 */ lw $t7, 0x28($sp) -/* 051150 7F01C620 332CFFFF */ andi $t4, $t9, 0xffff -/* 051154 7F01C624 000C6C00 */ sll $t5, $t4, 0x10 -/* 051158 7F01C628 3109FFFF */ andi $t1, $t0, 0xffff -/* 05115C 7F01C62C 012D7025 */ or $t6, $t1, $t5 -/* 051160 7F01C630 ADEE0004 */ sw $t6, 4($t7) -/* 051164 7F01C634 8FBF001C */ lw $ra, 0x1c($sp) -/* 051168 7F01C638 02001025 */ move $v0, $s0 -/* 05116C 7F01C63C 8FB00018 */ lw $s0, 0x18($sp) -/* 051170 7F01C640 15400002 */ bnez $t2, .L7F01C64C -/* 051174 7F01C644 00000000 */ nop -/* 051178 7F01C648 0007000D */ break 7 -.L7F01C64C: -/* 05117C 7F01C64C 2401FFFF */ li $at, -1 -/* 051180 7F01C650 15410004 */ bne $t2, $at, .L7F01C664 -/* 051184 7F01C654 3C018000 */ lui $at, 0x8000 -/* 051188 7F01C658 15610002 */ bne $t3, $at, .L7F01C664 -/* 05118C 7F01C65C 00000000 */ nop -/* 051190 7F01C660 0006000D */ break 6 -.L7F01C664: -/* 051194 7F01C664 27BD0070 */ addiu $sp, $sp, 0x70 -/* 051198 7F01C668 03E00008 */ jr $ra -/* 05119C 7F01C66C 00000000 */ nop -) -#endif +Gfx *sub_GAME_7F01C670(Gfx *gdl) { + gDPSetTextureLUT(gdl++, G_TT_NONE); + gDPSetTextureFilter(gdl++, G_TF_BILERP); + gDPSetCycleType(gdl++, G_CYC_1CYCLE); + gSPSetGeometryMode(gdl++, (G_SHADE | G_SHADING_SMOOTH)); + gSPTexture(gdl++, 0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON); + gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(gdl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); + gDPSetColorDither(gdl++, G_CD_MAGICSQ); + gDPSetPrimColor(gdl++, 0, 0, 0x96, 0x00, 0x00, 0xB4); + gDPSetTexturePersp(gdl++, G_TP_NONE); + gDPLoadTextureBlock_4b(gdl++, OS_K0_TO_PHYSICAL(pPlayer->field_11B0[pPlayer->field_11B8]), G_IM_FMT_I, 96, 80, 0, (G_TX_NOMIRROR | G_TX_CLAMP), (G_TX_NOMIRROR | G_TX_CLAMP), G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gdl++, (viGetViewLeft() * 4), (viGetViewTop() * 4), (((viGetViewLeft() + viGetViewWidth()) * 4) - 1), (((viGetViewTop() + viGetViewHeight()) * 4) - 1), G_TX_RENDERTILE, 0, 0, (0x18000 / viGetViewWidth()), (0x14000 / viGetViewHeight())); + gDPPipeSync(gdl++); + gDPSetColorDither(gdl++, G_CD_BAYER); + gDPSetTexturePersp(gdl++, G_TP_PERSP); - -#ifdef NONMATCHING -void sub_GAME_7F01C670(void) { - + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F01C670 -/* 0511A0 7F01C670 27BDFF78 */ addiu $sp, $sp, -0x88 -/* 0511A4 7F01C674 AFB00014 */ sw $s0, 0x14($sp) -/* 0511A8 7F01C678 AFBF001C */ sw $ra, 0x1c($sp) -/* 0511AC 7F01C67C AFB10018 */ sw $s1, 0x18($sp) -/* 0511B0 7F01C680 24900008 */ addiu $s0, $a0, 8 -/* 0511B4 7F01C684 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() -/* 0511B8 7F01C688 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 -/* 0511BC 7F01C68C 02001825 */ move $v1, $s0 -/* 0511C0 7F01C690 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 -/* 0511C4 7F01C694 AC8E0000 */ sw $t6, ($a0) -/* 0511C8 7F01C698 AC800004 */ sw $zero, 4($a0) -/* 0511CC 7F01C69C 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 #G_SETOTHERMODE_H() -/* 0511D0 7F01C6A0 26100008 */ addiu $s0, $s0, 8 -/* 0511D4 7F01C6A4 AC6F0000 */ sw $t7, ($v1) -/* 0511D8 7F01C6A8 24182000 */ li $t8, 8192 -/* 0511DC 7F01C6AC 02002825 */ move $a1, $s0 -/* 0511E0 7F01C6B0 AC780004 */ sw $t8, 4($v1) -/* 0511E4 7F01C6B4 26100008 */ addiu $s0, $s0, 8 -/* 0511E8 7F01C6B8 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00 #gDPSetCycleType(2Cycle) -/* 0511EC 7F01C6BC 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402 -/* 0511F0 7F01C6C0 02003025 */ move $a2, $s0 -/* 0511F4 7F01C6C4 ACB90000 */ sw $t9, ($a1) -/* 0511F8 7F01C6C8 ACA00004 */ sw $zero, 4($a1) -/* 0511FC 7F01C6CC 26100008 */ addiu $s0, $s0, 8 -/* 051200 7F01C6D0 3C08B700 */ lui $t0, 0xb700 -/* 051204 7F01C6D4 24090204 */ li $t1, 516 -/* 051208 7F01C6D8 ACC90004 */ sw $t1, 4($a2) -/* 05120C 7F01C6DC ACC80000 */ sw $t0, ($a2) -/* 051210 7F01C6E0 02003825 */ move $a3, $s0 -/* 051214 7F01C6E4 26100008 */ addiu $s0, $s0, 8 -/* 051218 7F01C6E8 3C0ABB00 */ lui $t2, (0xBB000001 >> 16) # lui $t2, 0xbb00 -/* 05121C 7F01C6EC 3C0B8000 */ lui $t3, (0x80008000 >> 16) # lui $t3, 0x8000 -/* 051220 7F01C6F0 356B8000 */ ori $t3, (0x80008000 & 0xFFFF) # ori $t3, $t3, 0x8000 -/* 051224 7F01C6F4 354A0001 */ ori $t2, (0xBB000001 & 0xFFFF) # ori $t2, $t2, 1 -/* 051228 7F01C6F8 02001025 */ move $v0, $s0 -/* 05122C 7F01C6FC ACEA0000 */ sw $t2, ($a3) -/* 051230 7F01C700 ACEB0004 */ sw $t3, 4($a3) -/* 051234 7F01C704 26100008 */ addiu $s0, $s0, 8 -/* 051238 7F01C708 3C0CB900 */ lui $t4, (0xB900031D >> 16) # lui $t4, 0xb900 #gDPSetRenderMode() -/* 05123C 7F01C70C 3C0D0050 */ lui $t5, (0x00504340 >> 16) # lui $t5, 0x50 -/* 051240 7F01C710 35AD4340 */ ori $t5, (0x00504340 & 0xFFFF) # ori $t5, $t5, 0x4340 -/* 051244 7F01C714 358C031D */ ori $t4, (0xB900031D & 0xFFFF) # ori $t4, $t4, 0x31d -/* 051248 7F01C718 02001825 */ move $v1, $s0 -/* 05124C 7F01C71C AC4C0000 */ sw $t4, ($v0) -/* 051250 7F01C720 AC4D0004 */ sw $t5, 4($v0) -/* 051254 7F01C724 3C0FFF2F */ lui $t7, (0xFF2FFFFF >> 16) # lui $t7, 0xff2f -/* 051258 7F01C728 3C0EFC11 */ lui $t6, (0xFC119623 >> 16) # lui $t6, 0xfc11 #Setcombine() -/* 05125C 7F01C72C 35CE9623 */ ori $t6, (0xFC119623 & 0xFFFF) # ori $t6, $t6, 0x9623 -/* 051260 7F01C730 35EFFFFF */ ori $t7, (0xFF2FFFFF & 0xFFFF) # ori $t7, $t7, 0xffff -/* 051264 7F01C734 26100008 */ addiu $s0, $s0, 8 -/* 051268 7F01C738 AC6F0004 */ sw $t7, 4($v1) -/* 05126C 7F01C73C AC6E0000 */ sw $t6, ($v1) -/* 051270 7F01C740 02002025 */ move $a0, $s0 -/* 051274 7F01C744 26100008 */ addiu $s0, $s0, 8 -/* 051278 7F01C748 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 #G_SETOTHERMODE_H(envmapping) -/* 05127C 7F01C74C 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 -/* 051280 7F01C750 02002825 */ move $a1, $s0 -/* 051284 7F01C754 AC980000 */ sw $t8, ($a0) -/* 051288 7F01C758 AC800004 */ sw $zero, 4($a0) -/* 05128C 7F01C75C 26100008 */ addiu $s0, $s0, 8 -/* 051290 7F01C760 3C089600 */ lui $t0, (0x960000B4 >> 16) # lui $t0, 0x9600 -/* 051294 7F01C764 350800B4 */ ori $t0, (0x960000B4 & 0xFFFF) # ori $t0, $t0, 0xb4 -/* 051298 7F01C768 3C19FA00 */ lui $t9, 0xfa00 -/* 05129C 7F01C76C 02003025 */ move $a2, $s0 -/* 0512A0 7F01C770 ACB90000 */ sw $t9, ($a1) -/* 0512A4 7F01C774 ACA80004 */ sw $t0, 4($a1) -/* 0512A8 7F01C778 3C09BA00 */ lui $t1, (0xBA001301 >> 16) # lui $t1, 0xba00 #G_SETOTHERMODE_H() -/* 0512AC 7F01C77C 35291301 */ ori $t1, (0xBA001301 & 0xFFFF) # ori $t1, $t1, 0x1301 -/* 0512B0 7F01C780 26100008 */ addiu $s0, $s0, 8 -/* 0512B4 7F01C784 ACC90000 */ sw $t1, ($a2) -/* 0512B8 7F01C788 ACC00004 */ sw $zero, 4($a2) -/* 0512BC 7F01C78C 02001025 */ move $v0, $s0 -/* 0512C0 7F01C790 3C0AFD90 */ lui $t2, 0xfd90 -/* 0512C4 7F01C794 AC4A0000 */ sw $t2, ($v0) -/* 0512C8 7F01C798 3C038008 */ lui $v1, %hi(pPlayer) -/* 0512CC 7F01C79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) -/* 0512D0 7F01C7A0 3C018000 */ lui $at, 0x8000 -/* 0512D4 7F01C7A4 26100008 */ addiu $s0, $s0, 8 -/* 0512D8 7F01C7A8 8C6B11B8 */ lw $t3, 0x11b8($v1) -/* 0512DC 7F01C7AC 02002025 */ move $a0, $s0 -/* 0512E0 7F01C7B0 26100008 */ addiu $s0, $s0, 8 -/* 0512E4 7F01C7B4 000B6080 */ sll $t4, $t3, 2 -/* 0512E8 7F01C7B8 006C6821 */ addu $t5, $v1, $t4 -/* 0512EC 7F01C7BC 8DAE11B0 */ lw $t6, 0x11b0($t5) -/* 0512F0 7F01C7C0 3C190708 */ lui $t9, (0x07080200 >> 16) # lui $t9, 0x708 -/* 0512F4 7F01C7C4 37390200 */ ori $t9, (0x07080200 & 0xFFFF) # ori $t9, $t9, 0x200 -/* 0512F8 7F01C7C8 01C17821 */ addu $t7, $t6, $at -/* 0512FC 7F01C7CC AC4F0004 */ sw $t7, 4($v0) -/* 051300 7F01C7D0 02002825 */ move $a1, $s0 -/* 051304 7F01C7D4 3C18F590 */ lui $t8, 0xf590 -/* 051308 7F01C7D8 AC980000 */ sw $t8, ($a0) -/* 05130C 7F01C7DC 26100008 */ addiu $s0, $s0, 8 -/* 051310 7F01C7E0 AC990004 */ sw $t9, 4($a0) -/* 051314 7F01C7E4 02003025 */ move $a2, $s0 -/* 051318 7F01C7E8 3C08E600 */ lui $t0, 0xe600 -/* 05131C 7F01C7EC ACA80000 */ sw $t0, ($a1) -/* 051320 7F01C7F0 26100008 */ addiu $s0, $s0, 8 -/* 051324 7F01C7F4 ACA00004 */ sw $zero, 4($a1) -/* 051328 7F01C7F8 3C0A0777 */ lui $t2, (0x0777F156 >> 16) # lui $t2, 0x777 -/* 05132C 7F01C7FC 354AF156 */ ori $t2, (0x0777F156 & 0xFFFF) # ori $t2, $t2, 0xf156 -/* 051330 7F01C800 02003825 */ move $a3, $s0 -/* 051334 7F01C804 3C09F300 */ lui $t1, 0xf300 -/* 051338 7F01C808 ACC90000 */ sw $t1, ($a2) -/* 05133C 7F01C80C 26100008 */ addiu $s0, $s0, 8 -/* 051340 7F01C810 ACCA0004 */ sw $t2, 4($a2) -/* 051344 7F01C814 02001025 */ move $v0, $s0 -/* 051348 7F01C818 3C0BE700 */ lui $t3, 0xe700 -/* 05134C 7F01C81C ACEB0000 */ sw $t3, ($a3) -/* 051350 7F01C820 26100008 */ addiu $s0, $s0, 8 -/* 051354 7F01C824 ACE00004 */ sw $zero, 4($a3) -/* 051358 7F01C828 3C0D0008 */ lui $t5, (0x00080200 >> 16) # lui $t5, 8 -/* 05135C 7F01C82C 3C0CF580 */ lui $t4, (0xF5800C00 >> 16) # lui $t4, 0xf580 #settilesize() -/* 051360 7F01C830 358C0C00 */ ori $t4, (0xF5800C00 & 0xFFFF) # ori $t4, $t4, 0xc00 -/* 051364 7F01C834 35AD0200 */ ori $t5, (0x00080200 & 0xFFFF) # ori $t5, $t5, 0x200 -/* 051368 7F01C838 02001825 */ move $v1, $s0 -/* 05136C 7F01C83C AC4D0004 */ sw $t5, 4($v0) -/* 051370 7F01C840 AC4C0000 */ sw $t4, ($v0) -/* 051374 7F01C844 3C0F0017 */ lui $t7, (0x0017C13C >> 16) # lui $t7, 0x17 -/* 051378 7F01C848 35EFC13C */ ori $t7, (0x0017C13C & 0xFFFF) # ori $t7, $t7, 0xc13c -/* 05137C 7F01C84C 3C0EF200 */ lui $t6, 0xf200 -/* 051380 7F01C850 AC6E0000 */ sw $t6, ($v1) -/* 051384 7F01C854 AC6F0004 */ sw $t7, 4($v1) -/* 051388 7F01C858 26100008 */ addiu $s0, $s0, 8 -/* 05138C 7F01C85C AFB00040 */ sw $s0, 0x40($sp) -/* 051390 7F01C860 0C001127 */ jal viGetViewWidth -/* 051394 7F01C864 26100008 */ addiu $s0, $s0, 8 -/* 051398 7F01C868 0C001145 */ jal viGetViewLeft -/* 05139C 7F01C86C A7A20026 */ sh $v0, 0x26($sp) -/* 0513A0 7F01C870 0C001149 */ jal viGetViewTop -/* 0513A4 7F01C874 A7A20028 */ sh $v0, 0x28($sp) -/* 0513A8 7F01C878 00028C00 */ sll $s1, $v0, 0x10 -/* 0513AC 7F01C87C 0011C403 */ sra $t8, $s1, 0x10 -/* 0513B0 7F01C880 0C00112B */ jal viGetViewHeight -/* 0513B4 7F01C884 03008825 */ move $s1, $t8 -/* 0513B8 7F01C888 87B90028 */ lh $t9, 0x28($sp) -/* 0513BC 7F01C88C 87A80026 */ lh $t0, 0x26($sp) -/* 0513C0 7F01C890 00517021 */ addu $t6, $v0, $s1 -/* 0513C4 7F01C894 000E7880 */ sll $t7, $t6, 2 -/* 0513C8 7F01C898 03284821 */ addu $t1, $t9, $t0 -/* 0513CC 7F01C89C 00095080 */ sll $t2, $t1, 2 -/* 0513D0 7F01C8A0 254BFFFF */ addiu $t3, $t2, -1 -/* 0513D4 7F01C8A4 25F8FFFF */ addiu $t8, $t7, -1 -/* 0513D8 7F01C8A8 33190FFF */ andi $t9, $t8, 0xfff -/* 0513DC 7F01C8AC 316C0FFF */ andi $t4, $t3, 0xfff -/* 0513E0 7F01C8B0 3C01E400 */ lui $at, 0xe400 -/* 0513E4 7F01C8B4 8FAA0040 */ lw $t2, 0x40($sp) -/* 0513E8 7F01C8B8 03214025 */ or $t0, $t9, $at -/* 0513EC 7F01C8BC 000C6B00 */ sll $t5, $t4, 0xc -/* 0513F0 7F01C8C0 010D4825 */ or $t1, $t0, $t5 -/* 0513F4 7F01C8C4 0C001145 */ jal viGetViewLeft -/* 0513F8 7F01C8C8 AD490000 */ sw $t1, ($t2) -/* 0513FC 7F01C8CC 00028C00 */ sll $s1, $v0, 0x10 -/* 051400 7F01C8D0 00115C03 */ sra $t3, $s1, 0x10 -/* 051404 7F01C8D4 0C001149 */ jal viGetViewTop -/* 051408 7F01C8D8 01608825 */ move $s1, $t3 -/* 05140C 7F01C8DC 00117880 */ sll $t7, $s1, 2 -/* 051410 7F01C8E0 8FAD0040 */ lw $t5, 0x40($sp) -/* 051414 7F01C8E4 31F80FFF */ andi $t8, $t7, 0xfff -/* 051418 7F01C8E8 00026080 */ sll $t4, $v0, 2 -/* 05141C 7F01C8EC 318E0FFF */ andi $t6, $t4, 0xfff -/* 051420 7F01C8F0 0018CB00 */ sll $t9, $t8, 0xc -/* 051424 7F01C8F4 01D94025 */ or $t0, $t6, $t9 -/* 051428 7F01C8F8 02001825 */ move $v1, $s0 -/* 05142C 7F01C8FC ADA80004 */ sw $t0, 4($t5) -/* 051430 7F01C900 26100008 */ addiu $s0, $s0, 8 -/* 051434 7F01C904 3C09B400 */ lui $t1, 0xb400 -/* 051438 7F01C908 AC690000 */ sw $t1, ($v1) -/* 05143C 7F01C90C 02002025 */ move $a0, $s0 -/* 051440 7F01C910 AC600004 */ sw $zero, 4($v1) -/* 051444 7F01C914 3C0AB300 */ lui $t2, 0xb300 -/* 051448 7F01C918 AC8A0000 */ sw $t2, ($a0) -/* 05144C 7F01C91C AFA40038 */ sw $a0, 0x38($sp) -/* 051450 7F01C920 0C001127 */ jal viGetViewWidth -/* 051454 7F01C924 26100008 */ addiu $s0, $s0, 8 -/* 051458 7F01C928 00028C00 */ sll $s1, $v0, 0x10 -/* 05145C 7F01C92C 00115C03 */ sra $t3, $s1, 0x10 -/* 051460 7F01C930 0C00112B */ jal viGetViewHeight -/* 051464 7F01C934 01608825 */ move $s1, $t3 -/* 051468 7F01C938 3C0C0001 */ lui $t4, (0x00014000 >> 16) # lui $t4, 1 -/* 05146C 7F01C93C 358C4000 */ ori $t4, (0x00014000 & 0xFFFF) # ori $t4, $t4, 0x4000 -/* 051470 7F01C940 0182001A */ div $zero, $t4, $v0 -/* 051474 7F01C944 00007812 */ mflo $t7 -/* 051478 7F01C948 3C0E0001 */ lui $t6, (0x00018000 >> 16) # lui $t6, 1 -/* 05147C 7F01C94C 35CE8000 */ ori $t6, (0x00018000 & 0xFFFF) # ori $t6, $t6, 0x8000 -/* 051480 7F01C950 01D1001A */ div $zero, $t6, $s1 -/* 051484 7F01C954 14400002 */ bnez $v0, .L7F01C960 -/* 051488 7F01C958 00000000 */ nop -/* 05148C 7F01C95C 0007000D */ break 7 -.L7F01C960: -/* 051490 7F01C960 2401FFFF */ li $at, -1 -/* 051494 7F01C964 14410004 */ bne $v0, $at, .L7F01C978 -/* 051498 7F01C968 3C018000 */ lui $at, 0x8000 -/* 05149C 7F01C96C 15810002 */ bne $t4, $at, .L7F01C978 -/* 0514A0 7F01C970 00000000 */ nop -/* 0514A4 7F01C974 0006000D */ break 6 -.L7F01C978: -/* 0514A8 7F01C978 0000C812 */ mflo $t9 -/* 0514AC 7F01C97C 8FAA0038 */ lw $t2, 0x38($sp) -/* 0514B0 7F01C980 3328FFFF */ andi $t0, $t9, 0xffff -/* 0514B4 7F01C984 00086C00 */ sll $t5, $t0, 0x10 -/* 0514B8 7F01C988 31F8FFFF */ andi $t8, $t7, 0xffff -/* 0514BC 7F01C98C 030D4825 */ or $t1, $t8, $t5 -/* 0514C0 7F01C990 02001825 */ move $v1, $s0 -/* 0514C4 7F01C994 26100008 */ addiu $s0, $s0, 8 -/* 0514C8 7F01C998 AD490004 */ sw $t1, 4($t2) -/* 0514CC 7F01C99C 3C0BE700 */ lui $t3, 0xe700 -/* 0514D0 7F01C9A0 02002025 */ move $a0, $s0 -/* 0514D4 7F01C9A4 AC6B0000 */ sw $t3, ($v1) -/* 0514D8 7F01C9A8 AC600004 */ sw $zero, 4($v1) -/* 0514DC 7F01C9AC 3C0CBA00 */ lui $t4, (0xBA000602 >> 16) # lui $t4, 0xba00 #G_SETOTHERMODE_H() -/* 0514E0 7F01C9B0 16200002 */ bnez $s1, .L7F01C9BC -/* 0514E4 7F01C9B4 00000000 */ nop -/* 0514E8 7F01C9B8 0007000D */ break 7 -.L7F01C9BC: -/* 0514EC 7F01C9BC 2401FFFF */ li $at, -1 -/* 0514F0 7F01C9C0 16210004 */ bne $s1, $at, .L7F01C9D4 -/* 0514F4 7F01C9C4 3C018000 */ lui $at, 0x8000 -/* 0514F8 7F01C9C8 15C10002 */ bne $t6, $at, .L7F01C9D4 -/* 0514FC 7F01C9CC 00000000 */ nop -/* 051500 7F01C9D0 0006000D */ break 6 -.L7F01C9D4: -/* 051504 7F01C9D4 358C0602 */ ori $t4, (0xBA000602 & 0xFFFF) # ori $t4, $t4, 0x602 #G_SETOTHERMODE_H() -/* 051508 7F01C9D8 26100008 */ addiu $s0, $s0, 8 -/* 05150C 7F01C9DC 240F0040 */ li $t7, 64 -/* 051510 7F01C9E0 AC8F0004 */ sw $t7, 4($a0) -/* 051514 7F01C9E4 AC8C0000 */ sw $t4, ($a0) -/* 051518 7F01C9E8 02002825 */ move $a1, $s0 -/* 05151C 7F01C9EC 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 #G_SETOTHERMODE_H() -/* 051520 7F01C9F0 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 -/* 051524 7F01C9F4 3C190008 */ lui $t9, 8 -/* 051528 7F01C9F8 ACB90004 */ sw $t9, 4($a1) -/* 05152C 7F01C9FC ACAE0000 */ sw $t6, ($a1) -/* 051530 7F01CA00 8FBF001C */ lw $ra, 0x1c($sp) -/* 051534 7F01CA04 26020008 */ addiu $v0, $s0, 8 -/* 051538 7F01CA08 8FB00014 */ lw $s0, 0x14($sp) -/* 05153C 7F01CA0C 8FB10018 */ lw $s1, 0x18($sp) -/* 051540 7F01CA10 03E00008 */ jr $ra -/* 051544 7F01CA14 27BD0088 */ addiu $sp, $sp, 0x88 -) -#endif +Gfx *sub_GAME_7F01CA18(Gfx *gdl) { + gdl = sub_GAME_7F01C1A4(gdl); + gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(gdl++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(gdl++, 0, 0, 150, 0, 0, 180); + gDPSetColorDither(gdl++, G_CD_MAGICSQ); + gDPFillRectangle(gdl++, 0, 0, viGetX(), viGetY()); -#ifdef NONMATCHING -void sub_GAME_7F01CA18(Gfx *glistp) //BloodRed_Dl_Setup -{ - sub_GAME_7F01C1A4(); - //1 cycle settings - gDPSetRenderMode(glistp++, G_RM_CLD_SURF, G_RM_CLD_SURF2); - gDPSetCombineMode(glistp++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetPrimColor(glistp++, 0, 0, 150, 00, 00, 180); //dark red - gDPSetColorDither(glistp++, G_CD_MAGICSQ); - - get_video2_settings_txtClipW(); - //... + return gdl; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F01CA18 -/* 051548 7F01CA18 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 05154C 7F01CA1C AFBF0014 */ sw $ra, 0x14($sp) -/* 051550 7F01CA20 0FC07069 */ jal sub_GAME_7F01C1A4 -/* 051554 7F01CA24 00000000 */ nop -/* 051558 7F01CA28 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 05155C 7F01CA2C 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 -/* 051560 7F01CA30 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff -/* 051564 7F01CA34 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd -/* 051568 7F01CA38 3C099600 */ lui $t1, (0x960000B4 >> 16) # lui $t1, 0x9600 -/* 05156C 7F01CA3C 3C0ABA00 */ lui $t2, (0xBA000602 >> 16) # lui $t2, 0xba00 -/* 051570 7F01CA40 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 -/* 051574 7F01CA44 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 051578 7F01CA48 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb -/* 05157C 7F01CA4C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff -/* 051580 7F01CA50 352900B4 */ ori $t1, (0x960000B4 & 0xFFFF) # ori $t1, $t1, 0xb4 -/* 051584 7F01CA54 3C08FA00 */ lui $t0, 0xfa00 -/* 051588 7F01CA58 354A0602 */ ori $t2, (0xBA000602 & 0xFFFF) # ori $t2, $t2, 0x602 -/* 05158C 7F01CA5C AC4E0000 */ sw $t6, ($v0) #$v0 = gfx glist -/* 051590 7F01CA60 AC4F0004 */ sw $t7, 4($v0) -/* 051594 7F01CA64 AC580008 */ sw $t8, 8($v0) -/* 051598 7F01CA68 AC59000C */ sw $t9, 0xc($v0) -/* 05159C 7F01CA6C AC480010 */ sw $t0, 0x10($v0) -/* 0515A0 7F01CA70 AC490014 */ sw $t1, 0x14($v0) -/* 0515A4 7F01CA74 AC4A0018 */ sw $t2, 0x18($v0) -/* 0515A8 7F01CA78 AC40001C */ sw $zero, 0x1c($v0) -/* 0515AC 7F01CA7C 244B0020 */ addiu $t3, $v0, 0x20 -/* 0515B0 7F01CA80 244C0028 */ addiu $t4, $v0, 0x28 -/* 0515B4 7F01CA84 AFAC0030 */ sw $t4, 0x30($sp) -/* 0515B8 7F01CA88 0C001107 */ jal get_video2_settings_txtClipW -/* 0515BC 7F01CA8C AFAB001C */ sw $t3, 0x1c($sp) -/* 0515C0 7F01CA90 0C00110B */ jal get_video2_settings_txtClipH -/* 0515C4 7F01CA94 A7A2001A */ sh $v0, 0x1a($sp) -/* 0515C8 7F01CA98 87B8001A */ lh $t8, 0x1a($sp) -/* 0515CC 7F01CA9C 8FA3001C */ lw $v1, 0x1c($sp) -/* 0515D0 7F01CAA0 304D03FF */ andi $t5, $v0, 0x3ff -/* 0515D4 7F01CAA4 000D7080 */ sll $t6, $t5, 2 -/* 0515D8 7F01CAA8 3C01F600 */ lui $at, 0xf600 -/* 0515DC 7F01CAAC 331903FF */ andi $t9, $t8, 0x3ff -/* 0515E0 7F01CAB0 00194380 */ sll $t0, $t9, 0xe -/* 0515E4 7F01CAB4 01C17825 */ or $t7, $t6, $at -/* 0515E8 7F01CAB8 01E84825 */ or $t1, $t7, $t0 -/* 0515EC 7F01CABC AC690000 */ sw $t1, ($v1) -/* 0515F0 7F01CAC0 AC600004 */ sw $zero, 4($v1) -/* 0515F4 7F01CAC4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0515F8 7F01CAC8 8FA20030 */ lw $v0, 0x30($sp) -/* 0515FC 7F01CACC 27BD0030 */ addiu $sp, $sp, 0x30 -/* 051600 7F01CAD0 03E00008 */ jr $ra -/* 051604 7F01CAD4 00000000 */ nop -) -#endif - - - - - - - - diff --git a/src/game/blood_animation.h b/src/game/blood_animation.h new file mode 100644 index 0000000..0c3ee74 --- /dev/null +++ b/src/game/blood_animation.h @@ -0,0 +1,12 @@ +#ifndef _BLOOD_ANIMATION_H_ +#define _BLOOD_ANIMATION_H_ + +#include "ultra64.h" + +Gfx *insert_imageDL(Gfx *gdl); +Gfx *sub_GAME_7F01C1A4(Gfx *gdl); +s32 die_blood_image_routine(s32 arg0); +Gfx *sub_GAME_7F01C400(Gfx *gdl); +Gfx *sub_GAME_7F01CA18(Gfx *gdl); + +#endif \ No newline at end of file diff --git a/src/game/blood_decrypt.c b/src/game/blood_decrypt.c index 51dc0f6..3026d52 100644 --- a/src/game/blood_decrypt.c +++ b/src/game/blood_decrypt.c @@ -1,11 +1,7 @@ -#include "ultra64.h" - - - - +#include "blood_decrypt.h" #ifdef NONMATCHING -void decrypt_bleeding_animation_data(void) { +u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*) { } #else @@ -141,8 +137,12 @@ glabel decrypt_bleeding_animation_data #ifdef NONMATCHING -void sub_GAME_7F01CC94(void) { - +// Uses sltu instead of slt for comparison +void sub_GAME_7F01CC94(u8* arg0, u16 arg1, u8* arg2) { + while (arg1-- != 0) { + *arg2++ = (arg0[0] & 0xF0) | (arg0[1] >> 4); + arg0 += 2; + } } #else GLOBAL_ASM( @@ -338,7 +338,7 @@ glabel sub_GAME_7F01CCEC #ifdef NONMATCHING -void sub_GAME_7F01CEEC(void) { +void sub_GAME_7F01CEEC(u8*, s32, u8*) { } #else @@ -434,7 +434,7 @@ glabel sub_GAME_7F01CEEC #ifdef NONMATCHING -void sub_GAME_7F01D02C(void) { +void sub_GAME_7F01D02C(u8*, s32, u8*) { } #else @@ -530,7 +530,7 @@ glabel sub_GAME_7F01D02C #ifdef NONMATCHING -void sub_GAME_7F01D16C(void) { +void sub_GAME_7F01D16C(u8*, s32, s32, u8*) { } #else diff --git a/src/game/blood_decrypt.h b/src/game/blood_decrypt.h new file mode 100644 index 0000000..699d080 --- /dev/null +++ b/src/game/blood_decrypt.h @@ -0,0 +1,12 @@ +#ifndef _BLOOD_DECRYPT_H_ +#define _BLOOD_DECRYPT_H_ + +#include "ultra64.h" + +u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*); +void sub_GAME_7F01D16C(u8*, s32, s32, u8*); +void sub_GAME_7F01D02C(u8*, s32, u8*); +void sub_GAME_7F01CEEC(u8*, s32, u8*); +void sub_GAME_7F01CC94(u8*, u16, u8*); + +#endif \ No newline at end of file diff --git a/src/game/bond.c b/src/game/bond.c index 4f47b04..e60c260 100644 --- a/src/game/bond.c +++ b/src/game/bond.c @@ -6,6 +6,8 @@ #include "game/lvl.h" #include "game/bondinv.h" #include "game/bondwalk.h" +#include "boss.h" +#include "music.h" // bss struct coord flt_CODE_bss_80079940; @@ -325,6 +327,36 @@ u32 D_80036634[] = { 0xFF, 0xFF, 0xFF }; #endif +#ifdef VERSION_EU +//D:80036634 +u32 D_80036634[] = { + 0x0, 0xA, 0x3C, 0x3F19999A, + 0x0, 0x5, 0x28, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x3C, 0x3F19999A, + 0x0, 0x5, 0x28, 0x3F800000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x32, 0x3F19999A, + 0x0, 0x5, 0x1E, 0x3F4CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x28, 0x3F19999A, + 0x0, 0x5, 0x19, 0x3F19999A, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x23, 0x3F19999A, + 0x0, 0x5, 0x16, 0x3F0CCCCD, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0x13, 0x3F000000, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0x11, 0x3EE66666, + 0xFF, 0xFF, 0xFF, + 0x0, 0xA, 0x1E, 0x3F19999A, + 0x0, 0x5, 0xF, 0x3ECCCCCD, + 0xFF, 0xFF, 0xFF +}; +#endif + //D:80036794 u32 D_80036794 = 0; //D:80036798 @@ -1807,7 +1839,7 @@ block_15: } if (phi_s1_4 != 0) { - phi_s3 = (get_random_value() % (u32) dword_CODE_bss_80079C68); + phi_s3 = (randomGetNext() % (u32) dword_CODE_bss_80079C68); } return phi_s3; } @@ -1997,7 +2029,7 @@ glabel sub_GAME_7F0790F0 .L7F079388: /* 0ADEB8 7F079388 5220000B */ beql $s1, $zero, .L7F0793B8 /* 0ADEBC 7F07938C 8FBF0044 */ lw $ra, 0x44($sp) -/* 0ADEC0 7F079390 0C002914 */ jal get_random_value +/* 0ADEC0 7F079390 0C002914 */ jal randomGetNext /* 0ADEC4 7F079394 00000000 */ nop /* 0ADEC8 7F079398 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) /* 0ADECC 7F07939C 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) @@ -2025,7 +2057,7 @@ glabel sub_GAME_7F0790F0 ) #endif -#ifdef VERSION_US +#ifndef VERSION_JP void init_player_BONDdata(void) { if (getPlayerCount() >= 2) @@ -4026,6 +4058,570 @@ variable_body_head: ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:80054FE4*/ +glabel jpt_bondcuff +.word .L7F079EA4 +.word cuff_1_brosnan +.word cuff_2_jungle +.word cuff_3_boiler +.word cuff_4_snowsuit +.word cuff_5_connery +.word cuff_6_moore +.word cuff_7_dalton +.word cuff_8_variable_bond_head + +/*D:80055008*/ +glabel jpt_bondhead +.word .L7F079F84 +.word brosnan_tux_head_set +.word jungle_head_set +.word boiler_bond_head_set +.word .L7F079F84 +.word connery_head_set +.word moore_head_set +.word dalton_head_set +.word variable_body_head + +glabel D_8005502C +.word 0x3f7851ec /*0.97000003*/ +.text +glabel solo_char_load +/* 0AE820 7F079CF0 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 0AE824 7F079CF4 AFBF001C */ sw $ra, 0x1c($sp) +/* 0AE828 7F079CF8 0FC227B9 */ jal get_curplay_horizontal_rotation_in_degrees +/* 0AE82C 7F079CFC 00000000 */ nop +/* 0AE830 7F079D00 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0AE834 7F079D04 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0AE838 7F079D08 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0AE83C 7F079D0C 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AE840 7F079D10 8DE20004 */ lw $v0, 4($t7) +/* 0AE844 7F079D14 544001CA */ bnezl $v0, .L7F07A440 +/* 0AE848 7F079D18 8C4F001C */ lw $t7, 0x1c($v0) +/* 0AE84C 7F079D1C 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE850 7F079D20 00002025 */ move $a0, $zero +/* 0AE854 7F079D24 AFA200F0 */ sw $v0, 0xf0($sp) +/* 0AE858 7F079D28 0FC173CC */ jal getPlayerWeaponBufferForHand +/* 0AE85C 7F079D2C 24040001 */ li $a0, 1 +/* 0AE860 7F079D30 AFA200EC */ sw $v0, 0xec($sp) +/* 0AE864 7F079D34 AFA000E8 */ sw $zero, 0xe8($sp) +/* 0AE868 7F079D38 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE86C 7F079D3C 00002025 */ move $a0, $zero +/* 0AE870 7F079D40 AFA200E4 */ sw $v0, 0xe4($sp) +/* 0AE874 7F079D44 0FC173D2 */ jal getSizeBufferWeaponInHand +/* 0AE878 7F079D48 24040001 */ li $a0, 1 +/* 0AE87C 7F079D4C 3C198003 */ lui $t9, %hi(dummy_08_pp7_obj) +/* 0AE880 7F079D50 273965AC */ addiu $t9, %lo(dummy_08_pp7_obj) # addiu $t9, $t9, 0x65ac +/* 0AE884 7F079D54 AFA200E0 */ sw $v0, 0xe0($sp) +/* 0AE888 7F079D58 272C0084 */ addiu $t4, $t9, 0x84 +/* 0AE88C 7F079D5C 27B80054 */ addiu $t8, $sp, 0x54 +.L7F079D60: +/* 0AE890 7F079D60 8F210000 */ lw $at, ($t9) +/* 0AE894 7F079D64 2739000C */ addiu $t9, $t9, 0xc +/* 0AE898 7F079D68 2718000C */ addiu $t8, $t8, 0xc +/* 0AE89C 7F079D6C AF01FFF4 */ sw $at, -0xc($t8) +/* 0AE8A0 7F079D70 8F21FFF8 */ lw $at, -8($t9) +/* 0AE8A4 7F079D74 AF01FFF8 */ sw $at, -8($t8) +/* 0AE8A8 7F079D78 8F21FFFC */ lw $at, -4($t9) +/* 0AE8AC 7F079D7C 172CFFF8 */ bne $t9, $t4, .L7F079D60 +/* 0AE8B0 7F079D80 AF01FFFC */ sw $at, -4($t8) +/* 0AE8B4 7F079D84 8F210000 */ lw $at, ($t9) +/* 0AE8B8 7F079D88 00002025 */ move $a0, $zero +/* 0AE8BC 7F079D8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0AE8C0 7F079D90 AF010000 */ sw $at, ($t8) +/* 0AE8C4 7F079D94 240D0017 */ li $t5, 23 +/* 0AE8C8 7F079D98 240E004B */ li $t6, 75 +/* 0AE8CC 7F079D9C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0AE8D0 7F079DA0 AFA20048 */ sw $v0, 0x48($sp) +/* 0AE8D4 7F079DA4 AFAD0044 */ sw $t5, 0x44($sp) +/* 0AE8D8 7F079DA8 AFAE0040 */ sw $t6, 0x40($sp) +/* 0AE8DC 7F079DAC AFA00038 */ sw $zero, 0x38($sp) +/* 0AE8E0 7F079DB0 0FC1F799 */ jal sub_GAME_7F07DE64 +/* 0AE8E4 7F079DB4 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0AE8E8 7F079DB8 0FC26919 */ jal getPlayerCount +/* 0AE8EC 7F079DBC 00000000 */ nop +/* 0AE8F0 7F079DC0 24010001 */ li $at, 1 +/* 0AE8F4 7F079DC4 14410066 */ bne $v0, $at, .L7F079F60 +/* 0AE8F8 7F079DC8 00000000 */ nop +/* 0AE8FC 7F079DCC 0FC0755B */ jal getSelectedFolderBond +/* 0AE900 7F079DD0 00000000 */ nop +/* 0AE904 7F079DD4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0AE908 7F079DD8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0AE90C 7F079DDC 8DE3041C */ lw $v1, 0x41c($t7) +/* 0AE910 7F079DE0 2C610009 */ sltiu $at, $v1, 9 +/* 0AE914 7F079DE4 1020002F */ beqz $at, .L7F079EA4 +/* 0AE918 7F079DE8 00035880 */ sll $t3, $v1, 2 +/* 0AE91C 7F079DEC 3C018005 */ lui $at, %hi(jpt_bondcuff) +/* 0AE920 7F079DF0 002B0821 */ addu $at, $at, $t3 +/* 0AE924 7F079DF4 8C2B4FE4 */ lw $t3, %lo(jpt_bondcuff)($at) +/* 0AE928 7F079DF8 01600008 */ jr $t3 +/* 0AE92C 7F079DFC 00000000 */ nop +cuff_3_boiler: +/* 0AE930 7F079E00 240A0016 */ li $t2, 22 +/* 0AE934 7F079E04 10000027 */ b .L7F079EA4 +/* 0AE938 7F079E08 AFAA0044 */ sw $t2, 0x44($sp) +cuff_2_jungle: +/* 0AE93C 7F079E0C 240C0018 */ li $t4, 24 +/* 0AE940 7F079E10 10000024 */ b .L7F079EA4 +/* 0AE944 7F079E14 AFAC0044 */ sw $t4, 0x44($sp) +cuff_4_snowsuit: +/* 0AE948 7F079E18 24190019 */ li $t9, 25 +/* 0AE94C 7F079E1C 10000021 */ b .L7F079EA4 +/* 0AE950 7F079E20 AFB90044 */ sw $t9, 0x44($sp) +cuff_1_brosnan: +/* 0AE954 7F079E24 24180005 */ li $t8, 5 +/* 0AE958 7F079E28 1000001E */ b .L7F079EA4 +/* 0AE95C 7F079E2C AFB80044 */ sw $t8, 0x44($sp) +cuff_5_connery: +/* 0AE960 7F079E30 240D0005 */ li $t5, 5 +/* 0AE964 7F079E34 1000001B */ b .L7F079EA4 +/* 0AE968 7F079E38 AFAD0044 */ sw $t5, 0x44($sp) +cuff_6_moore: +/* 0AE96C 7F079E3C 240E0005 */ li $t6, 5 +/* 0AE970 7F079E40 10000018 */ b .L7F079EA4 +/* 0AE974 7F079E44 AFAE0044 */ sw $t6, 0x44($sp) +cuff_7_dalton: +/* 0AE978 7F079E48 240F0005 */ li $t7, 5 +/* 0AE97C 7F079E4C 10000015 */ b .L7F079EA4 +/* 0AE980 7F079E50 AFAF0044 */ sw $t7, 0x44($sp) +cuff_8_variable_bond_head: +/* 0AE984 7F079E54 1040000C */ beqz $v0, .L7F079E88 +/* 0AE988 7F079E58 240B0005 */ li $t3, 5 +/* 0AE98C 7F079E5C 24010001 */ li $at, 1 +/* 0AE990 7F079E60 1041000B */ beq $v0, $at, .L7F079E90 +/* 0AE994 7F079E64 240A0005 */ li $t2, 5 +/* 0AE998 7F079E68 24010002 */ li $at, 2 +/* 0AE99C 7F079E6C 1041000A */ beq $v0, $at, .L7F079E98 +/* 0AE9A0 7F079E70 240C0005 */ li $t4, 5 +/* 0AE9A4 7F079E74 24010003 */ li $at, 3 +/* 0AE9A8 7F079E78 10410009 */ beq $v0, $at, .L7F079EA0 +/* 0AE9AC 7F079E7C 24190005 */ li $t9, 5 +/* 0AE9B0 7F079E80 10000008 */ b .L7F079EA4 +/* 0AE9B4 7F079E84 00000000 */ nop +.L7F079E88: +/* 0AE9B8 7F079E88 10000006 */ b .L7F079EA4 +/* 0AE9BC 7F079E8C AFAB0044 */ sw $t3, 0x44($sp) +.L7F079E90: +/* 0AE9C0 7F079E90 10000004 */ b .L7F079EA4 +/* 0AE9C4 7F079E94 AFAA0044 */ sw $t2, 0x44($sp) +.L7F079E98: +/* 0AE9C8 7F079E98 10000002 */ b .L7F079EA4 +/* 0AE9CC 7F079E9C AFAC0044 */ sw $t4, 0x44($sp) +.L7F079EA0: +/* 0AE9D0 7F079EA0 AFB90044 */ sw $t9, 0x44($sp) +.L7F079EA4: +/* 0AE9D4 7F079EA4 1040000C */ beqz $v0, .L7F079ED8 +/* 0AE9D8 7F079EA8 2C610009 */ sltiu $at, $v1, 9 +/* 0AE9DC 7F079EAC 24010001 */ li $at, 1 +/* 0AE9E0 7F079EB0 10410025 */ beq $v0, $at, .L7F079F48 +/* 0AE9E4 7F079EB4 2418004E */ li $t8, 78 +/* 0AE9E8 7F079EB8 24010002 */ li $at, 2 +/* 0AE9EC 7F079EBC 10410024 */ beq $v0, $at, .L7F079F50 +/* 0AE9F0 7F079EC0 240D004E */ li $t5, 78 +/* 0AE9F4 7F079EC4 24010003 */ li $at, 3 +/* 0AE9F8 7F079EC8 10410023 */ beq $v0, $at, .L7F079F58 +/* 0AE9FC 7F079ECC 240E004E */ li $t6, 78 +/* 0AEA00 7F079ED0 1000002C */ b .L7F079F84 +/* 0AEA04 7F079ED4 00000000 */ nop +.L7F079ED8: +/* 0AEA08 7F079ED8 1020002A */ beqz $at, .L7F079F84 +/* 0AEA0C 7F079EDC 0003C080 */ sll $t8, $v1, 2 +/* 0AEA10 7F079EE0 3C018005 */ lui $at, %hi(jpt_bondhead) +/* 0AEA14 7F079EE4 00380821 */ addu $at, $at, $t8 +/* 0AEA18 7F079EE8 8C385008 */ lw $t8, %lo(jpt_bondhead)($at) +/* 0AEA1C 7F079EEC 03000008 */ jr $t8 +/* 0AEA20 7F079EF0 00000000 */ nop +boiler_bond_head_set: +/* 0AEA24 7F079EF4 240D004A */ li $t5, 74 +/* 0AEA28 7F079EF8 10000022 */ b .L7F079F84 +/* 0AEA2C 7F079EFC AFAD0040 */ sw $t5, 0x40($sp) +jungle_head_set: +/* 0AEA30 7F079F00 240E004C */ li $t6, 76 +/* 0AEA34 7F079F04 1000001F */ b .L7F079F84 +/* 0AEA38 7F079F08 AFAE0040 */ sw $t6, 0x40($sp) +brosnan_tux_head_set: +/* 0AEA3C 7F079F0C 240F004E */ li $t7, 78 +/* 0AEA40 7F079F10 1000001C */ b .L7F079F84 +/* 0AEA44 7F079F14 AFAF0040 */ sw $t7, 0x40($sp) +connery_head_set: +/* 0AEA48 7F079F18 240B004E */ li $t3, 78 +/* 0AEA4C 7F079F1C 10000019 */ b .L7F079F84 +/* 0AEA50 7F079F20 AFAB0040 */ sw $t3, 0x40($sp) +moore_head_set: +/* 0AEA54 7F079F24 240A004E */ li $t2, 78 +/* 0AEA58 7F079F28 10000016 */ b .L7F079F84 +/* 0AEA5C 7F079F2C AFAA0040 */ sw $t2, 0x40($sp) +dalton_head_set: +/* 0AEA60 7F079F30 240C004E */ li $t4, 78 +/* 0AEA64 7F079F34 10000013 */ b .L7F079F84 +/* 0AEA68 7F079F38 AFAC0040 */ sw $t4, 0x40($sp) +variable_body_head: +/* 0AEA6C 7F079F3C 2419004E */ li $t9, 78 +/* 0AEA70 7F079F40 10000010 */ b .L7F079F84 +/* 0AEA74 7F079F44 AFB90040 */ sw $t9, 0x40($sp) +.L7F079F48: +/* 0AEA78 7F079F48 1000000E */ b .L7F079F84 +/* 0AEA7C 7F079F4C AFB80040 */ sw $t8, 0x40($sp) +.L7F079F50: +/* 0AEA80 7F079F50 1000000C */ b .L7F079F84 +/* 0AEA84 7F079F54 AFAD0040 */ sw $t5, 0x40($sp) +.L7F079F58: +/* 0AEA88 7F079F58 1000000A */ b .L7F079F84 +/* 0AEA8C 7F079F5C AFAE0040 */ sw $t6, 0x40($sp) +.L7F079F60: +/* 0AEA90 7F079F60 0FC26C54 */ jal get_cur_playernum +/* 0AEA94 7F079F64 00000000 */ nop +/* 0AEA98 7F079F68 0FC040AF */ jal get_player_mp_char_head +/* 0AEA9C 7F079F6C 00402025 */ move $a0, $v0 +/* 0AEAA0 7F079F70 0FC26C54 */ jal get_cur_playernum +/* 0AEAA4 7F079F74 AFA20040 */ sw $v0, 0x40($sp) +/* 0AEAA8 7F079F78 0FC040D7 */ jal get_player_mp_char_body +/* 0AEAAC 7F079F7C 00402025 */ move $a0, $v0 +/* 0AEAB0 7F079F80 AFA20044 */ sw $v0, 0x44($sp) +.L7F079F84: +/* 0AEAB4 7F079F84 3C0F8003 */ lui $t7, %hi(cameramode) +/* 0AEAB8 7F079F88 8DEF6494 */ lw $t7, %lo(cameramode)($t7) +/* 0AEABC 7F079F8C 24010003 */ li $at, 3 +/* 0AEAC0 7F079F90 15E10003 */ bne $t7, $at, .L7F079FA0 +/* 0AEAC4 7F079F94 3C0B8008 */ lui $t3, %hi(starting_right_weapon) +/* 0AEAC8 7F079F98 8D6B99E0 */ lw $t3, %lo(starting_right_weapon)($t3) +/* 0AEACC 7F079F9C AFAB0048 */ sw $t3, 0x48($sp) +.L7F079FA0: +/* 0AEAD0 7F079FA0 0FC26919 */ jal getPlayerCount +/* 0AEAD4 7F079FA4 00000000 */ nop +/* 0AEAD8 7F079FA8 24010001 */ li $at, 1 +/* 0AEADC 7F079FAC 14410083 */ bne $v0, $at, .L7F07A1BC +/* 0AEAE0 7F079FB0 8FAF0044 */ lw $t7, 0x44($sp) +/* 0AEAE4 7F079FB4 0FC173D7 */ jal remove_item_in_hand +/* 0AEAE8 7F079FB8 24040001 */ li $a0, 1 +/* 0AEAEC 7F079FBC 0FC173D7 */ jal remove_item_in_hand +/* 0AEAF0 7F079FC0 00002025 */ move $a0, $zero +/* 0AEAF4 7F079FC4 27A40100 */ addiu $a0, $sp, 0x100 +/* 0AEAF8 7F079FC8 8FA500EC */ lw $a1, 0xec($sp) +/* 0AEAFC 7F079FCC 0FC32EBD */ jal sub_GAME_7F0CBAF4 +/* 0AEB00 7F079FD0 8FA600E0 */ lw $a2, 0xe0($sp) +/* 0AEB04 7F079FD4 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEB08 7F079FD8 00002025 */ move $a0, $zero +/* 0AEB0C 7F079FDC 8FAA0044 */ lw $t2, 0x44($sp) +/* 0AEB10 7F079FE0 3C198004 */ lui $t9, %hi(c_item_entries) +/* 0AEB14 7F079FE4 2739DE10 */ addiu $t9, %lo(c_item_entries) # addiu $t9, $t9, -0x21f0 +/* 0AEB18 7F079FE8 000A6080 */ sll $t4, $t2, 2 +/* 0AEB1C 7F079FEC 018A6021 */ addu $t4, $t4, $t2 +/* 0AEB20 7F079FF0 000C6080 */ sll $t4, $t4, 2 +/* 0AEB24 7F079FF4 01991821 */ addu $v1, $t4, $t9 +/* 0AEB28 7F079FF8 8C780000 */ lw $t8, ($v1) +/* 0AEB2C 7F079FFC AFA200FC */ sw $v0, 0xfc($sp) +/* 0AEB30 7F07A000 27AB0100 */ addiu $t3, $sp, 0x100 +/* 0AEB34 7F07A004 8F010000 */ lw $at, ($t8) +/* 0AEB38 7F07A008 00402025 */ move $a0, $v0 +/* 0AEB3C 7F07A00C AC410000 */ sw $at, ($v0) +/* 0AEB40 7F07A010 8F0F0004 */ lw $t7, 4($t8) +/* 0AEB44 7F07A014 AC4F0004 */ sw $t7, 4($v0) +/* 0AEB48 7F07A018 8F010008 */ lw $at, 8($t8) +/* 0AEB4C 7F07A01C AC410008 */ sw $at, 8($v0) +/* 0AEB50 7F07A020 8F0F000C */ lw $t7, 0xc($t8) +/* 0AEB54 7F07A024 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEB58 7F07A028 8F010010 */ lw $at, 0x10($t8) +/* 0AEB5C 7F07A02C AC410010 */ sw $at, 0x10($v0) +/* 0AEB60 7F07A030 8F0F0014 */ lw $t7, 0x14($t8) +/* 0AEB64 7F07A034 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEB68 7F07A038 8F010018 */ lw $at, 0x18($t8) +/* 0AEB6C 7F07A03C AC410018 */ sw $at, 0x18($v0) +/* 0AEB70 7F07A040 8F0F001C */ lw $t7, 0x1c($t8) +/* 0AEB74 7F07A044 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEB78 7F07A048 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEB7C 7F07A04C AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEB80 7F07A050 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0AEB84 7F07A054 8FA600F0 */ lw $a2, 0xf0($sp) +/* 0AEB88 7F07A058 0FC1D929 */ jal load_object_fill_header +/* 0AEB8C 7F07A05C 8C650004 */ lw $a1, 4($v1) +/* 0AEB90 7F07A060 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEB94 7F07A064 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEB98 7F07A068 8C640004 */ lw $a0, 4($v1) +/* 0AEB9C 7F07A06C 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AEBA0 7F07A070 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AEBA4 7F07A074 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AEBA8 7F07A078 000DC080 */ sll $t8, $t5, 2 +/* 0AEBAC 7F07A07C 030DC021 */ addu $t8, $t8, $t5 +/* 0AEBB0 7F07A080 0018C080 */ sll $t8, $t8, 2 +/* 0AEBB4 7F07A084 030F1821 */ addu $v1, $t8, $t7 +/* 0AEBB8 7F07A088 8C6B0000 */ lw $t3, ($v1) +/* 0AEBBC 7F07A08C 2448003F */ addiu $t0, $v0, 0x3f +/* 0AEBC0 7F07A090 8FA900F0 */ lw $t1, 0xf0($sp) +/* 0AEBC4 7F07A094 350A003F */ ori $t2, $t0, 0x3f +/* 0AEBC8 7F07A098 8D610000 */ lw $at, ($t3) +/* 0AEBCC 7F07A09C 394C003F */ xori $t4, $t2, 0x3f +/* 0AEBD0 7F07A0A0 2588005F */ addiu $t0, $t4, 0x5f +/* 0AEBD4 7F07A0A4 3519003F */ ori $t9, $t0, 0x3f +/* 0AEBD8 7F07A0A8 012C2021 */ addu $a0, $t1, $t4 +/* 0AEBDC 7F07A0AC 3B28003F */ xori $t0, $t9, 0x3f +/* 0AEBE0 7F07A0B0 AC810000 */ sw $at, ($a0) +/* 0AEBE4 7F07A0B4 8D790004 */ lw $t9, 4($t3) +/* 0AEBE8 7F07A0B8 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEBEC 7F07A0BC 01283021 */ addu $a2, $t1, $t0 +/* 0AEBF0 7F07A0C0 AC990004 */ sw $t9, 4($a0) +/* 0AEBF4 7F07A0C4 8D610008 */ lw $at, 8($t3) +/* 0AEBF8 7F07A0C8 AC810008 */ sw $at, 8($a0) +/* 0AEBFC 7F07A0CC 8D79000C */ lw $t9, 0xc($t3) +/* 0AEC00 7F07A0D0 AC99000C */ sw $t9, 0xc($a0) +/* 0AEC04 7F07A0D4 8D610010 */ lw $at, 0x10($t3) +/* 0AEC08 7F07A0D8 AC810010 */ sw $at, 0x10($a0) +/* 0AEC0C 7F07A0DC 8D790014 */ lw $t9, 0x14($t3) +/* 0AEC10 7F07A0E0 AC990014 */ sw $t9, 0x14($a0) +/* 0AEC14 7F07A0E4 8D610018 */ lw $at, 0x18($t3) +/* 0AEC18 7F07A0E8 AC810018 */ sw $at, 0x18($a0) +/* 0AEC1C 7F07A0EC 8D79001C */ lw $t9, 0x1c($t3) +/* 0AEC20 7F07A0F0 AC99001C */ sw $t9, 0x1c($a0) +/* 0AEC24 7F07A0F4 8FAE00E4 */ lw $t6, 0xe4($sp) +/* 0AEC28 7F07A0F8 AFA800E8 */ sw $t0, 0xe8($sp) +/* 0AEC2C 7F07A0FC AFA400F8 */ sw $a0, 0xf8($sp) +/* 0AEC30 7F07A100 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEC34 7F07A104 AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEC38 7F07A108 8C650004 */ lw $a1, 4($v1) +/* 0AEC3C 7F07A10C 0FC1D929 */ jal load_object_fill_header +/* 0AEC40 7F07A110 01C83823 */ subu $a3, $t6, $t0 +/* 0AEC44 7F07A114 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEC48 7F07A118 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEC4C 7F07A11C 8C640004 */ lw $a0, 4($v1) +/* 0AEC50 7F07A120 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC54 7F07A124 8FAC00F0 */ lw $t4, 0xf0($sp) +/* 0AEC58 7F07A128 8FA400FC */ lw $a0, 0xfc($sp) +/* 0AEC5C 7F07A12C 00431821 */ addu $v1, $v0, $v1 +/* 0AEC60 7F07A130 2463003F */ addiu $v1, $v1, 0x3f +/* 0AEC64 7F07A134 3478003F */ ori $t8, $v1, 0x3f +/* 0AEC68 7F07A138 3B0F003F */ xori $t7, $t8, 0x3f +/* 0AEC6C 7F07A13C 25E300FB */ addiu $v1, $t7, 0xfb +/* 0AEC70 7F07A140 346B003F */ ori $t3, $v1, 0x3f +/* 0AEC74 7F07A144 3979003F */ xori $t9, $t3, 0x3f +/* 0AEC78 7F07A148 018F5021 */ addu $t2, $t4, $t7 +/* 0AEC7C 7F07A14C AFAA0038 */ sw $t2, 0x38($sp) +/* 0AEC80 7F07A150 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC84 7F07A154 AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AEC88 7F07A158 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEC8C 7F07A15C 8FA400F8 */ lw $a0, 0xf8($sp) +/* 0AEC90 7F07A160 8FA500FC */ lw $a1, 0xfc($sp) +/* 0AEC94 7F07A164 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0AEC98 7F07A168 8FA300E8 */ lw $v1, 0xe8($sp) +/* 0AEC9C 7F07A16C 84B80014 */ lh $t8, 0x14($a1) +/* 0AECA0 7F07A170 85EC0014 */ lh $t4, 0x14($t7) +/* 0AECA4 7F07A174 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AECA8 7F07A178 8FA40038 */ lw $a0, 0x38($sp) +/* 0AECAC 7F07A17C 030C1021 */ addu $v0, $t8, $t4 +/* 0AECB0 7F07A180 2442000A */ addiu $v0, $v0, 0xa +/* 0AECB4 7F07A184 00025080 */ sll $t2, $v0, 2 +/* 0AECB8 7F07A188 01C33021 */ addu $a2, $t6, $v1 +/* 0AECBC 7F07A18C 01431821 */ addu $v1, $t2, $v1 +/* 0AECC0 7F07A190 2463003F */ addiu $v1, $v1, 0x3f +/* 0AECC4 7F07A194 346B003F */ ori $t3, $v1, 0x3f +/* 0AECC8 7F07A198 3979003F */ xori $t9, $t3, 0x3f +/* 0AECCC 7F07A19C AFB900E8 */ sw $t9, 0xe8($sp) +/* 0AECD0 7F07A1A0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 0AECD4 7F07A1A4 AFA20030 */ sw $v0, 0x30($sp) +/* 0AECD8 7F07A1A8 8FA20030 */ lw $v0, 0x30($sp) +/* 0AECDC 7F07A1AC 8FAE0038 */ lw $t6, 0x38($sp) +/* 0AECE0 7F07A1B0 A5C20002 */ sh $v0, 2($t6) +/* 0AECE4 7F07A1B4 1000001F */ b .L7F07A234 +/* 0AECE8 7F07A1B8 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A1BC: +/* 0AECEC 7F07A1BC 000FC080 */ sll $t8, $t7, 2 +/* 0AECF0 7F07A1C0 030FC021 */ addu $t8, $t8, $t7 +/* 0AECF4 7F07A1C4 3C0C8004 */ lui $t4, %hi(c_item_entries) +/* 0AECF8 7F07A1C8 258CDE10 */ addiu $t4, %lo(c_item_entries) # addiu $t4, $t4, -0x21f0 +/* 0AECFC 7F07A1CC 0018C080 */ sll $t8, $t8, 2 +/* 0AED00 7F07A1D0 030C1821 */ addu $v1, $t8, $t4 +/* 0AED04 7F07A1D4 8C6A0000 */ lw $t2, ($v1) +/* 0AED08 7F07A1D8 AFAA00FC */ sw $t2, 0xfc($sp) +/* 0AED0C 7F07A1DC 8D590000 */ lw $t9, ($t2) +/* 0AED10 7F07A1E0 01402025 */ move $a0, $t2 +/* 0AED14 7F07A1E4 57200004 */ bnezl $t9, .L7F07A1F8 +/* 0AED18 7F07A1E8 8FAD0040 */ lw $t5, 0x40($sp) +/* 0AED1C 7F07A1EC 0FC1D953 */ jal load_object_into_memory +/* 0AED20 7F07A1F0 8C650004 */ lw $a1, 4($v1) +/* 0AED24 7F07A1F4 8FAD0040 */ lw $t5, 0x40($sp) +.L7F07A1F8: +/* 0AED28 7F07A1F8 3C0F8004 */ lui $t7, %hi(c_item_entries) +/* 0AED2C 7F07A1FC 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 +/* 0AED30 7F07A200 000D7080 */ sll $t6, $t5, 2 +/* 0AED34 7F07A204 01CD7021 */ addu $t6, $t6, $t5 +/* 0AED38 7F07A208 000E7080 */ sll $t6, $t6, 2 +/* 0AED3C 7F07A20C 01CF1821 */ addu $v1, $t6, $t7 +/* 0AED40 7F07A210 8C670000 */ lw $a3, ($v1) +/* 0AED44 7F07A214 8CF80000 */ lw $t8, ($a3) +/* 0AED48 7F07A218 00E02025 */ move $a0, $a3 +/* 0AED4C 7F07A21C 57000006 */ bnezl $t8, .L7F07A238 +/* 0AED50 7F07A220 8FAC0038 */ lw $t4, 0x38($sp) +/* 0AED54 7F07A224 8C650004 */ lw $a1, 4($v1) +/* 0AED58 7F07A228 0FC1D953 */ jal load_object_into_memory +/* 0AED5C 7F07A22C AFA700F8 */ sw $a3, 0xf8($sp) +/* 0AED60 7F07A230 8FA700F8 */ lw $a3, 0xf8($sp) +.L7F07A234: +/* 0AED64 7F07A234 8FAC0038 */ lw $t4, 0x38($sp) +.L7F07A238: +/* 0AED68 7F07A238 8FA40044 */ lw $a0, 0x44($sp) +/* 0AED6C 7F07A23C 8FA50040 */ lw $a1, 0x40($sp) +/* 0AED70 7F07A240 8FA600FC */ lw $a2, 0xfc($sp) +/* 0AED74 7F07A244 AFA00010 */ sw $zero, 0x10($sp) +/* 0AED78 7F07A248 0FC08CBA */ jal maybe_load_models_for_guards +/* 0AED7C 7F07A24C AFAC0014 */ sw $t4, 0x14($sp) +/* 0AED80 7F07A250 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AED84 7F07A254 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0AED88 7F07A258 8C6A0000 */ lw $t2, ($v1) +/* 0AED8C 7F07A25C 3C018005 */ lui $at, %hi(D_8005502C) +/* 0AED90 7F07A260 AD4200D4 */ sw $v0, 0xd4($t2) +/* 0AED94 7F07A264 8C790000 */ lw $t9, ($v1) +/* 0AED98 7F07A268 C426502C */ lwc1 $f6, %lo(D_8005502C)($at) +/* 0AED9C 7F07A26C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEDA0 7F07A270 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0AEDA4 7F07A274 46062202 */ mul.s $f8, $f4, $f6 +/* 0AEDA8 7F07A278 44054000 */ mfc1 $a1, $f8 +/* 0AEDAC 7F07A27C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0AEDB0 7F07A280 00000000 */ nop +/* 0AEDB4 7F07A284 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEDB8 7F07A288 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEDBC 7F07A28C 8FA70114 */ lw $a3, 0x114($sp) +/* 0AEDC0 7F07A290 8C6400A8 */ lw $a0, 0xa8($v1) +/* 0AEDC4 7F07A294 8C6500D4 */ lw $a1, 0xd4($v1) +/* 0AEDC8 7F07A298 8C8B0014 */ lw $t3, 0x14($a0) +/* 0AEDCC 7F07A29C AFA00014 */ sw $zero, 0x14($sp) +/* 0AEDD0 7F07A2A0 24860008 */ addiu $a2, $a0, 8 +/* 0AEDD4 7F07A2A4 0FC0802F */ jal init_GUARDdata_with_set_values +/* 0AEDD8 7F07A2A8 AFAB0010 */ sw $t3, 0x10($sp) +/* 0AEDDC 7F07A2AC 3C078008 */ lui $a3, %hi(pPlayer) +/* 0AEDE0 7F07A2B0 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 +/* 0AEDE4 7F07A2B4 8CEE0000 */ lw $t6, ($a3) +/* 0AEDE8 7F07A2B8 240D0006 */ li $t5, 6 +/* 0AEDEC 7F07A2BC 8DCF00A8 */ lw $t7, 0xa8($t6) +/* 0AEDF0 7F07A2C0 A1ED0000 */ sb $t5, ($t7) +/* 0AEDF4 7F07A2C4 8CF80000 */ lw $t8, ($a3) +/* 0AEDF8 7F07A2C8 8F0C00A8 */ lw $t4, 0xa8($t8) +/* 0AEDFC 7F07A2CC 8D860004 */ lw $a2, 4($t4) +/* 0AEE00 7F07A2D0 8CCA0014 */ lw $t2, 0x14($a2) +/* 0AEE04 7F07A2D4 35590001 */ ori $t9, $t2, 1 +/* 0AEE08 7F07A2D8 ACD90014 */ sw $t9, 0x14($a2) +/* 0AEE0C 7F07A2DC 8CE30000 */ lw $v1, ($a3) +/* 0AEE10 7F07A2E0 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEE14 7F07A2E4 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEE18 7F07A2E8 AFA60110 */ sw $a2, 0x110($sp) +/* 0AEE1C 7F07A2EC 0FC1B303 */ jal setsuboffset +/* 0AEE20 7F07A2F0 24A50008 */ addiu $a1, $a1, 8 +/* 0AEE24 7F07A2F4 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0AEE28 7F07A2F8 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0AEE2C 7F07A2FC 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEE30 7F07A300 0FC1B34F */ jal setsubroty +/* 0AEE34 7F07A304 8D6400D4 */ lw $a0, 0xd4($t3) +/* 0AEE38 7F07A308 0FC26C91 */ jal sub_GAME_7F09B244 +/* 0AEE3C 7F07A30C 8FA40048 */ lw $a0, 0x48($sp) +/* 0AEE40 7F07A310 04400045 */ bltz $v0, .L7F07A428 +/* 0AEE44 7F07A314 AFA2004C */ sw $v0, 0x4c($sp) +/* 0AEE48 7F07A318 0FC26919 */ jal getPlayerCount +/* 0AEE4C 7F07A31C 00000000 */ nop +/* 0AEE50 7F07A320 24010001 */ li $at, 1 +/* 0AEE54 7F07A324 14410035 */ bne $v0, $at, .L7F07A3FC +/* 0AEE58 7F07A328 8FAE00F0 */ lw $t6, 0xf0($sp) +/* 0AEE5C 7F07A32C 8FA200E8 */ lw $v0, 0xe8($sp) +/* 0AEE60 7F07A330 24040001 */ li $a0, 1 +/* 0AEE64 7F07A334 01C26821 */ addu $t5, $t6, $v0 +/* 0AEE68 7F07A338 244200C7 */ addiu $v0, $v0, 0xc7 +/* 0AEE6C 7F07A33C 344F003F */ ori $t7, $v0, 0x3f +/* 0AEE70 7F07A340 39F8003F */ xori $t8, $t7, 0x3f +/* 0AEE74 7F07A344 AFAD00DC */ sw $t5, 0xdc($sp) +/* 0AEE78 7F07A348 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0AEE7C 7F07A34C AFB800E8 */ sw $t8, 0xe8($sp) +/* 0AEE80 7F07A350 8FAC004C */ lw $t4, 0x4c($sp) +/* 0AEE84 7F07A354 3C198004 */ lui $t9, %hi(PitemZ_entries) +/* 0AEE88 7F07A358 2739A228 */ addiu $t9, %lo(PitemZ_entries) # addiu $t9, $t9, -0x5dd8 +/* 0AEE8C 7F07A35C 000C5080 */ sll $t2, $t4, 2 +/* 0AEE90 7F07A360 014C5023 */ subu $t2, $t2, $t4 +/* 0AEE94 7F07A364 000A5080 */ sll $t2, $t2, 2 +/* 0AEE98 7F07A368 01591821 */ addu $v1, $t2, $t9 +/* 0AEE9C 7F07A36C 8C6B0000 */ lw $t3, ($v1) +/* 0AEEA0 7F07A370 AFA200F4 */ sw $v0, 0xf4($sp) +/* 0AEEA4 7F07A374 27AD0100 */ addiu $t5, $sp, 0x100 +/* 0AEEA8 7F07A378 8D610000 */ lw $at, ($t3) +/* 0AEEAC 7F07A37C 00402025 */ move $a0, $v0 +/* 0AEEB0 7F07A380 AC410000 */ sw $at, ($v0) +/* 0AEEB4 7F07A384 8D6F0004 */ lw $t7, 4($t3) +/* 0AEEB8 7F07A388 AC4F0004 */ sw $t7, 4($v0) +/* 0AEEBC 7F07A38C 8D610008 */ lw $at, 8($t3) +/* 0AEEC0 7F07A390 AC410008 */ sw $at, 8($v0) +/* 0AEEC4 7F07A394 8D6F000C */ lw $t7, 0xc($t3) +/* 0AEEC8 7F07A398 AC4F000C */ sw $t7, 0xc($v0) +/* 0AEECC 7F07A39C 8D610010 */ lw $at, 0x10($t3) +/* 0AEED0 7F07A3A0 AC410010 */ sw $at, 0x10($v0) +/* 0AEED4 7F07A3A4 8D6F0014 */ lw $t7, 0x14($t3) +/* 0AEED8 7F07A3A8 AC4F0014 */ sw $t7, 0x14($v0) +/* 0AEEDC 7F07A3AC 8D610018 */ lw $at, 0x18($t3) +/* 0AEEE0 7F07A3B0 AC410018 */ sw $at, 0x18($v0) +/* 0AEEE4 7F07A3B4 8D6F001C */ lw $t7, 0x1c($t3) +/* 0AEEE8 7F07A3B8 AC4F001C */ sw $t7, 0x1c($v0) +/* 0AEEEC 7F07A3BC 8FAC00E8 */ lw $t4, 0xe8($sp) +/* 0AEEF0 7F07A3C0 8FAA00E4 */ lw $t2, 0xe4($sp) +/* 0AEEF4 7F07A3C4 8FB800F0 */ lw $t8, 0xf0($sp) +/* 0AEEF8 7F07A3C8 AFA30028 */ sw $v1, 0x28($sp) +/* 0AEEFC 7F07A3CC AFAD0010 */ sw $t5, 0x10($sp) +/* 0AEF00 7F07A3D0 8C650004 */ lw $a1, 4($v1) +/* 0AEF04 7F07A3D4 014C3823 */ subu $a3, $t2, $t4 +/* 0AEF08 7F07A3D8 0FC1D929 */ jal load_object_fill_header +/* 0AEF0C 7F07A3DC 030C3021 */ addu $a2, $t8, $t4 +/* 0AEF10 7F07A3E0 8FA30028 */ lw $v1, 0x28($sp) +/* 0AEF14 7F07A3E4 0FC2F462 */ jal get_pc_buffer_remaining_value +/* 0AEF18 7F07A3E8 8C640004 */ lw $a0, 4($v1) +/* 0AEF1C 7F07A3EC 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 0AEF20 7F07A3F0 8FA400F4 */ lw $a0, 0xf4($sp) +/* 0AEF24 7F07A3F4 10000004 */ b .L7F07A408 +/* 0AEF28 7F07A3F8 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A3FC: +/* 0AEF2C 7F07A3FC AFA000DC */ sw $zero, 0xdc($sp) +/* 0AEF30 7F07A400 AFA000F4 */ sw $zero, 0xf4($sp) +/* 0AEF34 7F07A404 8FAE00DC */ lw $t6, 0xdc($sp) +.L7F07A408: +/* 0AEF38 7F07A408 8FAB00F4 */ lw $t3, 0xf4($sp) +/* 0AEF3C 7F07A40C 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF40 7F07A410 8FA5004C */ lw $a1, 0x4c($sp) +/* 0AEF44 7F07A414 8FA60048 */ lw $a2, 0x48($sp) +/* 0AEF48 7F07A418 00003825 */ move $a3, $zero +/* 0AEF4C 7F07A41C AFAE0010 */ sw $t6, 0x10($sp) +/* 0AEF50 7F07A420 0FC14885 */ jal something_with_generating_object +/* 0AEF54 7F07A424 AFAB0014 */ sw $t3, 0x14($sp) +.L7F07A428: +/* 0AEF58 7F07A428 8FA40110 */ lw $a0, 0x110($sp) +/* 0AEF5C 7F07A42C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF60 7F07A430 24050000 */ li $a1, 0 +/* 0AEF64 7F07A434 10000017 */ b .L7F07A494 +/* 0AEF68 7F07A438 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF6C 7F07A43C 8C4F001C */ lw $t7, 0x1c($v0) +.L7F07A440: +/* 0AEF70 7F07A440 00402025 */ move $a0, $v0 +/* 0AEF74 7F07A444 8DF80020 */ lw $t8, 0x20($t7) +/* 0AEF78 7F07A448 57000012 */ bnezl $t8, .L7F07A494 +/* 0AEF7C 7F07A44C 8FBF001C */ lw $ra, 0x1c($sp) +/* 0AEF80 7F07A450 8C4C0014 */ lw $t4, 0x14($v0) +/* 0AEF84 7F07A454 24050000 */ li $a1, 0 +/* 0AEF88 7F07A458 358A0001 */ ori $t2, $t4, 1 +/* 0AEF8C 7F07A45C 0FC08EA5 */ jal sub_GAME_7F023A94 +/* 0AEF90 7F07A460 AC4A0014 */ sw $t2, 0x14($v0) +/* 0AEF94 7F07A464 3C038008 */ lui $v1, %hi(pPlayer) +/* 0AEF98 7F07A468 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0AEF9C 7F07A46C 8C6500A8 */ lw $a1, 0xa8($v1) +/* 0AEFA0 7F07A470 8C6400D4 */ lw $a0, 0xd4($v1) +/* 0AEFA4 7F07A474 0FC1B303 */ jal setsuboffset +/* 0AEFA8 7F07A478 24A50008 */ addiu $a1, $a1, 8 +/* 0AEFAC 7F07A47C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0AEFB0 7F07A480 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0AEFB4 7F07A484 8FA50114 */ lw $a1, 0x114($sp) +/* 0AEFB8 7F07A488 0FC1B34F */ jal setsubroty +/* 0AEFBC 7F07A48C 8F2400D4 */ lw $a0, 0xd4($t9) +/* 0AEFC0 7F07A490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F07A494: +/* 0AEFC4 7F07A494 27BD0118 */ addiu $sp, $sp, 0x118 +/* 0AEFC8 7F07A498 03E00008 */ jr $ra +/* 0AEFCC 7F07A49C 00000000 */ nop +) +#endif + + #endif @@ -4165,7 +4761,7 @@ glabel sub_GAME_7F07A534 /* 0AF0F8 7F07A5C8 C5DC04B0 */ lwc1 $f28, 0x4b0($t6) /* 0AF0FC 7F07A5CC 0000F025 */ move $fp, $zero /* 0AF100 7F07A5D0 461C2180 */ add.s $f6, $f4, $f28 -/* 0AF104 7F07A5D4 0C002914 */ jal get_random_value +/* 0AF104 7F07A5D4 0C002914 */ jal randomGetNext /* 0AF108 7F07A5D8 E7A600D0 */ swc1 $f6, 0xd0($sp) /* 0AF10C 7F07A5DC 44824000 */ mtc1 $v0, $f8 /* 0AF110 7F07A5E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4273,7 +4869,7 @@ glabel sub_GAME_7F07A534 /* 0AF298 7F07A768 460A8481 */ sub.s $f18, $f16, $f10 /* 0AF29C 7F07A76C E7B20090 */ swc1 $f18, 0x90($sp) .L7F07A770: -/* 0AF2A0 7F07A770 0C002914 */ jal get_random_value +/* 0AF2A0 7F07A770 0C002914 */ jal randomGetNext /* 0AF2A4 7F07A774 00000000 */ nop /* 0AF2A8 7F07A778 44822000 */ mtc1 $v0, $f4 /* 0AF2AC 7F07A77C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4342,7 +4938,7 @@ glabel sub_GAME_7F07A534 /* 0AF3A4 7F07A874 8E260008 */ lw $a2, 8($s1) /* 0AF3A8 7F07A878 0FC2CA5C */ jal sub_GAME_7F0B2970 /* 0AF3AC 7F07A87C 461C4581 */ sub.s $f22, $f8, $f28 -/* 0AF3B0 7F07A880 0C002914 */ jal get_random_value +/* 0AF3B0 7F07A880 0C002914 */ jal randomGetNext /* 0AF3B4 7F07A884 46000506 */ mov.s $f20, $f0 /* 0AF3B8 7F07A888 44823000 */ mtc1 $v0, $f6 /* 0AF3BC 7F07A88C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4478,7 +5074,7 @@ glabel set_camera_mode /* 0AF56C 7F07AA3C 44807000 */ mtc1 $zero, $f14 /* 0AF570 7F07AA40 0FC20216 */ jal currentPlayerSetFadeFrac /* 0AF574 7F07AA44 00000000 */ nop -/* 0AF578 7F07AA48 0C001A57 */ jal get_stage_num +/* 0AF578 7F07AA48 0C001A57 */ jal bossGetStageNum /* 0AF57C 7F07AA4C 00000000 */ nop /* 0AF580 7F07AA50 00402025 */ move $a0, $v0 /* 0AF584 7F07AA54 0FC2EA99 */ jal load_enviroment @@ -4524,7 +5120,7 @@ glabel set_camera_mode /* 0AF618 7F07AAE8 3C0142A0 */ li $at, 0x42A00000 # 80.000000 /* 0AF61C 7F07AAEC 44814000 */ mtc1 $at, $f8 /* 0AF620 7F07AAF0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E10) -/* 0AF624 7F07AAF4 0C001A57 */ jal get_stage_num +/* 0AF624 7F07AAF4 0C001A57 */ jal bossGetStageNum /* 0AF628 7F07AAF8 E4289E10 */ swc1 $f8, %lo(flt_CODE_bss_80079E10)($at) /* 0AF62C 7F07AAFC 00402025 */ move $a0, $v0 /* 0AF630 7F07AB00 0FC2EA99 */ jal load_enviroment @@ -4546,7 +5142,7 @@ glabel set_camera_mode /* 0AF66C 7F07AB3C 44807000 */ mtc1 $zero, $f14 /* 0AF670 7F07AB40 0FC20216 */ jal currentPlayerSetFadeFrac /* 0AF674 7F07AB44 00000000 */ nop -/* 0AF678 7F07AB48 0C001A57 */ jal get_stage_num +/* 0AF678 7F07AB48 0C001A57 */ jal bossGetStageNum /* 0AF67C 7F07AB4C 00000000 */ nop /* 0AF680 7F07AB50 00402025 */ move $a0, $v0 /* 0AF684 7F07AB54 0FC2EA99 */ jal load_enviroment @@ -4629,7 +5225,7 @@ glabel set_camera_mode /* 0AF7AC 7F07AC7C 24010004 */ li $at, 4 /* 0AF7B0 7F07AC80 5441003A */ bnel $v0, $at, .L7F07AD6C /* 0AF7B4 7F07AC84 24010005 */ li $at, 5 -/* 0AF7B8 7F07AC88 0C001A57 */ jal get_stage_num +/* 0AF7B8 7F07AC88 0C001A57 */ jal bossGetStageNum /* 0AF7BC 7F07AC8C 00000000 */ nop /* 0AF7C0 7F07AC90 24010036 */ li $at, 54 /* 0AF7C4 7F07AC94 1441000D */ bne $v0, $at, .L7F07ACCC @@ -4665,7 +5261,7 @@ glabel set_camera_mode /* 0AF834 7F07AD04 28410002 */ slti $at, $v0, 2 /* 0AF838 7F07AD08 14200006 */ bnez $at, .L7F07AD24 /* 0AF83C 7F07AD0C 00000000 */ nop -/* 0AF840 7F07AD10 0C001A57 */ jal get_stage_num +/* 0AF840 7F07AD10 0C001A57 */ jal bossGetStageNum /* 0AF844 7F07AD14 00000000 */ nop /* 0AF848 7F07AD18 00402025 */ move $a0, $v0 /* 0AF84C 7F07AD1C 0FC2EA99 */ jal load_enviroment @@ -4900,7 +5496,7 @@ glabel set_camera_mode /* 0AFBB8 7F07B088 10000042 */ b .L7F07B194 /* 0AFBBC 7F07B08C 8FBF002C */ lw $ra, 0x2c($sp) .L7F07B090: -/* 0AFBC0 7F07B090 0C001A4C */ jal run_title_stage +/* 0AFBC0 7F07B090 0C001A4C */ jal bossRunTitleStage /* 0AFBC4 7F07B094 00000000 */ nop /* 0AFBC8 7F07B098 1000003E */ b .L7F07B194 /* 0AFBCC 7F07B09C 8FBF002C */ lw $ra, 0x2c($sp) @@ -7464,6 +8060,1098 @@ glabel sub_GAME_7F07B56C ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80055044 +.word 0x43338000 /*179.5*/ +glabel D_80055048 +.word 0x3dcccccd /*0.1*/ +glabel D_8005504C +.word 0x3c75c28f /*0.015*/ +glabel D_80055050 +.word 0x40490fdb /*3.1415927*/ +glabel D_80055054 +.word 0x3da3d70a /*0.079999998*/ +glabel D_80055058 +.word 0x3da3d70a /*0.079999998*/ +glabel D_8005505C +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F07B56C +/* 0B009C 7F07B56C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B00A0 7F07B570 3C028003 */ lui $v0, %hi(cameramode) +/* 0B00A4 7F07B574 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0B00A8 7F07B578 240B0001 */ li $t3, 1 +/* 0B00AC 7F07B57C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B00B0 7F07B580 AFA40040 */ sw $a0, 0x40($sp) +/* 0B00B4 7F07B584 AFA50044 */ sw $a1, 0x44($sp) +/* 0B00B8 7F07B588 AFA60048 */ sw $a2, 0x48($sp) +/* 0B00BC 7F07B58C 11620004 */ beq $t3, $v0, .L7F07B5A0 +/* 0B00C0 7F07B590 AFA7004C */ sw $a3, 0x4c($sp) +/* 0B00C4 7F07B594 24050002 */ li $a1, 2 +/* 0B00C8 7F07B598 14A200AF */ bne $a1, $v0, .L7F07B858 +/* 0B00CC 7F07B59C 24010009 */ li $at, 9 +.L7F07B5A0: +/* 0B00D0 7F07B5A0 15620059 */ bne $t3, $v0, .L7F07B708 +/* 0B00D4 7F07B5A4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B00D8 7F07B5A8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B00DC 7F07B5AC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B00E0 7F07B5B0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0B00E4 7F07B5B4 44810000 */ mtc1 $at, $f0 +/* 0B00E8 7F07B5B8 C5420000 */ lwc1 $f2, ($t2) +/* 0B00EC 7F07B5BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B00F0 7F07B5C0 4600103C */ c.lt.s $f2, $f0 +/* 0B00F4 7F07B5C4 00000000 */ nop +/* 0B00F8 7F07B5C8 45000014 */ bc1f .L7F07B61C +/* 0B00FC 7F07B5CC 00000000 */ nop +/* 0B0100 7F07B5D0 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0104 7F07B5D4 3C048004 */ lui $a0, %hi(ptrSecondFontTableLarge) +/* 0B0108 7F07B5D8 3C058004 */ lui $a1, %hi(ptrFirstFontTableLarge) +/* 0B010C 7F07B5DC 46041180 */ add.s $f6, $f2, $f4 +/* 0B0110 7F07B5E0 4606003E */ c.le.s $f0, $f6 +/* 0B0114 7F07B5E4 00000000 */ nop +/* 0B0118 7F07B5E8 4500000C */ bc1f .L7F07B61C +/* 0B011C 7F07B5EC 00000000 */ nop +/* 0B0120 7F07B5F0 8C840EB8 */ lw $a0, %lo(ptrSecondFontTableLarge)($a0) +/* 0B0124 7F07B5F4 0FC228ED */ jal setFontTables +/* 0B0128 7F07B5F8 8CA50EB4 */ lw $a1, %lo(ptrFirstFontTableLarge)($a1) +/* 0B012C 7F07B5FC 3C0E8003 */ lui $t6, %hi(ptr_random06cam_entry) +/* 0B0130 7F07B600 8DCE64C0 */ lw $t6, %lo(ptr_random06cam_entry)($t6) +/* 0B0134 7F07B604 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B0138 7F07B608 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B013C 7F07B60C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0140 7F07B610 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0144 7F07B614 C5420000 */ lwc1 $f2, ($t2) +/* 0B0148 7F07B618 240B0001 */ li $t3, 1 +.L7F07B61C: +/* 0B014C 7F07B61C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B0150 7F07B620 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B0154 7F07B624 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0158 7F07B628 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B015C 7F07B62C 8DE40020 */ lw $a0, 0x20($t7) +/* 0B0160 7F07B630 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0164 7F07B634 46081000 */ add.s $f0, $f2, $f8 +/* 0B0168 7F07B638 5080001F */ beql $a0, $zero, .L7F07B6B8 +/* 0B016C 7F07B63C 44816000 */ mtc1 $at, $f12 +/* 0B0170 7F07B640 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0B0174 7F07B644 44816000 */ mtc1 $at, $f12 +/* 0B0178 7F07B648 00000000 */ nop +/* 0B017C 7F07B64C 460C103C */ c.lt.s $f2, $f12 +/* 0B0180 7F07B650 00000000 */ nop +/* 0B0184 7F07B654 4502000F */ bc1fl .L7F07B694 +/* 0B0188 7F07B658 3C0143F0 */ lui $at, 0x43f0 +/* 0B018C 7F07B65C 4600603E */ c.le.s $f12, $f0 +/* 0B0190 7F07B660 00000000 */ nop +/* 0B0194 7F07B664 4502000B */ bc1fl .L7F07B694 +/* 0B0198 7F07B668 3C0143F0 */ lui $at, 0x43f0 +/* 0B019C 7F07B66C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0B01A0 7F07B670 00000000 */ nop +/* 0B01A4 7F07B674 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B01A8 7F07B678 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B01AC 7F07B67C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B01B0 7F07B680 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B01B4 7F07B684 C5420000 */ lwc1 $f2, ($t2) +/* 0B01B8 7F07B688 240B0001 */ li $t3, 1 +/* 0B01BC 7F07B68C 460A1000 */ add.s $f0, $f2, $f10 +/* 0B01C0 7F07B690 3C0143F0 */ li $at, 0x43F00000 # 480.000000 +.L7F07B694: +/* 0B01C4 7F07B694 44812000 */ mtc1 $at, $f4 +/* 0B01C8 7F07B698 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01CC 7F07B69C 4602203C */ c.lt.s $f4, $f2 +/* 0B01D0 7F07B6A0 00000000 */ nop +/* 0B01D4 7F07B6A4 4500000A */ bc1f .L7F07B6D0 +/* 0B01D8 7F07B6A8 00000000 */ nop +/* 0B01DC 7F07B6AC 10000008 */ b .L7F07B6D0 +/* 0B01E0 7F07B6B0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B01E4 7F07B6B4 44816000 */ mtc1 $at, $f12 +.L7F07B6B8: +/* 0B01E8 7F07B6B8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B01EC 7F07B6BC 4602603C */ c.lt.s $f12, $f2 +/* 0B01F0 7F07B6C0 00000000 */ nop +/* 0B01F4 7F07B6C4 45000002 */ bc1f .L7F07B6D0 +/* 0B01F8 7F07B6C8 00000000 */ nop +/* 0B01FC 7F07B6CC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B6D0: +/* 0B0200 7F07B6D0 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0204 7F07B6D4 E5400000 */ swc1 $f0, ($t2) +/* 0B0208 7F07B6D8 14400015 */ bnez $v0, .L7F07B730 +/* 0B020C 7F07B6DC 240B0001 */ li $t3, 1 +/* 0B0210 7F07B6E0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0214 7F07B6E4 97B80042 */ lhu $t8, 0x42($sp) +/* 0B0218 7F07B6E8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B021C 7F07B6EC 03206027 */ not $t4, $t9 +/* 0B0220 7F07B6F0 030C6824 */ and $t5, $t8, $t4 +/* 0B0224 7F07B6F4 31AEF030 */ andi $t6, $t5, 0xf030 +/* 0B0228 7F07B6F8 11C0000D */ beqz $t6, .L7F07B730 +/* 0B022C 7F07B6FC 00000000 */ nop +/* 0B0230 7F07B700 1000000B */ b .L7F07B730 +/* 0B0234 7F07B704 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B708: +/* 0B0238 7F07B708 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B023C 7F07B70C 8D2F0000 */ lw $t7, ($t1) +/* 0B0240 7F07B710 44807000 */ mtc1 $zero, $f14 +/* 0B0244 7F07B714 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0248 7F07B718 C5E603E4 */ lwc1 $f6, 0x3e4($t7) +/* 0B024C 7F07B71C 460E303C */ c.lt.s $f6, $f14 +/* 0B0250 7F07B720 00000000 */ nop +/* 0B0254 7F07B724 45000002 */ bc1f .L7F07B730 +/* 0B0258 7F07B728 00000000 */ nop +/* 0B025C 7F07B72C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07B730: +/* 0B0260 7F07B730 3C028003 */ lui $v0, %hi(ptr_random06cam_entry) +/* 0B0264 7F07B734 244264C0 */ addiu $v0, %lo(ptr_random06cam_entry) # addiu $v0, $v0, 0x64c0 +/* 0B0268 7F07B738 8C590000 */ lw $t9, ($v0) +/* 0B026C 7F07B73C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0270 7F07B740 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0274 7F07B744 E7080000 */ swc1 $f8, ($t8) +/* 0B0278 7F07B748 8C4C0000 */ lw $t4, ($v0) +/* 0B027C 7F07B74C C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0280 7F07B750 E70A0004 */ swc1 $f10, 4($t8) +/* 0B0284 7F07B754 8C4D0000 */ lw $t5, ($v0) +/* 0B0288 7F07B758 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 0B028C 7F07B75C E7040008 */ swc1 $f4, 8($t8) +/* 0B0290 7F07B760 8C4E0000 */ lw $t6, ($v0) +/* 0B0294 7F07B764 0FC15FA8 */ jal cosf +/* 0B0298 7F07B768 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 0B029C 7F07B76C 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02A0 7F07B770 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02A4 7F07B774 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B02A8 7F07B778 0FC15FAB */ jal sinf +/* 0B02AC 7F07B77C C5EC0010 */ lwc1 $f12, 0x10($t7) +/* 0B02B0 7F07B780 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B02B4 7F07B784 8FB90048 */ lw $t9, 0x48($sp) +/* 0B02B8 7F07B788 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B02BC 7F07B78C 46060202 */ mul.s $f8, $f0, $f6 +/* 0B02C0 7F07B790 C72A0000 */ lwc1 $f10, ($t9) +/* 0B02C4 7F07B794 3C0D8003 */ lui $t5, %hi(ptr_random06cam_entry) +/* 0B02C8 7F07B798 460A4100 */ add.s $f4, $f8, $f10 +/* 0B02CC 7F07B79C E5840000 */ swc1 $f4, ($t4) +/* 0B02D0 7F07B7A0 8DAD64C0 */ lw $t5, %lo(ptr_random06cam_entry)($t5) +/* 0B02D4 7F07B7A4 0FC15FAB */ jal sinf +/* 0B02D8 7F07B7A8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B02DC 7F07B7AC 8FB80048 */ lw $t8, 0x48($sp) +/* 0B02E0 7F07B7B0 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B02E4 7F07B7B4 3C0F8003 */ lui $t7, %hi(ptr_random06cam_entry) +/* 0B02E8 7F07B7B8 C7060004 */ lwc1 $f6, 4($t8) +/* 0B02EC 7F07B7BC 46060200 */ add.s $f8, $f0, $f6 +/* 0B02F0 7F07B7C0 E5C80004 */ swc1 $f8, 4($t6) +/* 0B02F4 7F07B7C4 8DEF64C0 */ lw $t7, %lo(ptr_random06cam_entry)($t7) +/* 0B02F8 7F07B7C8 0FC15FA8 */ jal cosf +/* 0B02FC 7F07B7CC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0300 7F07B7D0 3C198003 */ lui $t9, %hi(ptr_random06cam_entry) +/* 0B0304 7F07B7D4 8F3964C0 */ lw $t9, %lo(ptr_random06cam_entry)($t9) +/* 0B0308 7F07B7D8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B030C 7F07B7DC 0FC15FA8 */ jal cosf +/* 0B0310 7F07B7E0 C72C0010 */ lwc1 $f12, 0x10($t9) +/* 0B0314 7F07B7E4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0318 7F07B7E8 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B031C 7F07B7EC 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0320 7F07B7F0 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0324 7F07B7F4 C58A0008 */ lwc1 $f10, 8($t4) +/* 0B0328 7F07B7F8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B032C 7F07B7FC 3C188003 */ lui $t8, %hi(ptr_random06cam_entry) +/* 0B0330 7F07B800 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 0B0334 7F07B804 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0338 7F07B808 E5A80008 */ swc1 $f8, 8($t5) +/* 0B033C 7F07B80C 8F1864C0 */ lw $t8, %lo(ptr_random06cam_entry)($t8) +/* 0B0340 7F07B810 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 0B0344 7F07B814 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B0348 7F07B818 8F0E0018 */ lw $t6, 0x18($t8) +/* 0B034C 7F07B81C 000E7880 */ sll $t7, $t6, 2 +/* 0B0350 7F07B820 01EE7823 */ subu $t7, $t7, $t6 +/* 0B0354 7F07B824 000F7880 */ sll $t7, $t7, 2 +/* 0B0358 7F07B828 01EE7823 */ subu $t7, $t7, $t6 +/* 0B035C 7F07B82C 000F7880 */ sll $t7, $t7, 2 +/* 0B0360 7F07B830 01F91021 */ addu $v0, $t7, $t9 +/* 0B0364 7F07B834 8C4C0028 */ lw $t4, 0x28($v0) +/* 0B0368 7F07B838 ADAC0000 */ sw $t4, ($t5) +/* 0B036C 7F07B83C C4440000 */ lwc1 $f4, ($v0) +/* 0B0370 7F07B840 E4640000 */ swc1 $f4, ($v1) +/* 0B0374 7F07B844 C44A0004 */ lwc1 $f10, 4($v0) +/* 0B0378 7F07B848 E46A0004 */ swc1 $f10, 4($v1) +/* 0B037C 7F07B84C C4460008 */ lwc1 $f6, 8($v0) +/* 0B0380 7F07B850 10000337 */ b .L7F07C530 +/* 0B0384 7F07B854 E4660008 */ swc1 $f6, 8($v1) +.L7F07B858: +/* 0B0388 7F07B858 544100B3 */ bnel $v0, $at, .L7F07BB28 +/* 0B038C 7F07B85C 24010003 */ li $at, 3 +/* 0B0390 7F07B860 0FC26C54 */ jal get_cur_playernum +/* 0B0394 7F07B864 00000000 */ nop +/* 0B0398 7F07B868 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0B039C 7F07B86C 00402025 */ move $a0, $v0 +/* 0B03A0 7F07B870 14400054 */ bnez $v0, .L7F07B9C4 +/* 0B03A4 7F07B874 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B03A8 7F07B878 3C078005 */ lui $a3, %hi(clock_timer) +/* 0B03AC 7F07B87C 8CE78374 */ lw $a3, %lo(clock_timer)($a3) +/* 0B03B0 7F07B880 00001825 */ move $v1, $zero +/* 0B03B4 7F07B884 3C018008 */ lui $at, %hi(flt_CODE_bss_80079E08) +/* 0B03B8 7F07B888 18E0004E */ blez $a3, .L7F07B9C4 +/* 0B03BC 7F07B88C 3C068008 */ lui $a2, %hi(flt_CODE_bss_80079E04) +/* 0B03C0 7F07B890 C42C9E08 */ lwc1 $f12, %lo(flt_CODE_bss_80079E08)($at) +/* 0B03C4 7F07B894 3C018005 */ lui $at, %hi(D_80055044) +/* 0B03C8 7F07B898 C4325044 */ lwc1 $f18, %lo(D_80055044)($at) +/* 0B03CC 7F07B89C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B03D0 7F07B8A0 44818000 */ mtc1 $at, $f16 +/* 0B03D4 7F07B8A4 3C018005 */ lui $at, %hi(D_80055048) +/* 0B03D8 7F07B8A8 3C058008 */ lui $a1, %hi(flt_CODE_bss_80079E0C) +/* 0B03DC 7F07B8AC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B03E0 7F07B8B0 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B03E4 7F07B8B4 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B03E8 7F07B8B8 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B03EC 7F07B8BC 24A59E0C */ addiu $a1, %lo(flt_CODE_bss_80079E0C) # addiu $a1, $a1, -0x61f4 +/* 0B03F0 7F07B8C0 C42E5048 */ lwc1 $f14, %lo(D_80055048)($at) +/* 0B03F4 7F07B8C4 24C69E04 */ addiu $a2, %lo(flt_CODE_bss_80079E04) # addiu $a2, $a2, -0x61fc +/* 0B03F8 7F07B8C8 4612603C */ c.lt.s $f12, $f18 +.L7F07B8CC: +/* 0B03FC 7F07B8CC 24630001 */ addiu $v1, $v1, 1 +/* 0B0400 7F07B8D0 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B0404 7F07B8D4 45020017 */ bc1fl .L7F07B934 +/* 0B0408 7F07B8D8 44812000 */ mtc1 $at, $f4 +/* 0B040C 7F07B8DC 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B0410 7F07B8E0 44814000 */ mtc1 $at, $f8 +/* 0B0414 7F07B8E4 3C0142DC */ li $at, 0x42DC0000 # 110.000000 +/* 0B0418 7F07B8E8 44815000 */ mtc1 $at, $f10 +/* 0B041C 7F07B8EC 4608603C */ c.lt.s $f12, $f8 +/* 0B0420 7F07B8F0 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0424 7F07B8F4 45020005 */ bc1fl .L7F07B90C +/* 0B0428 7F07B8F8 460C503C */ c.lt.s $f10, $f12 +/* 0B042C 7F07B8FC 460E0100 */ add.s $f4, $f0, $f14 +/* 0B0430 7F07B900 E4C40000 */ swc1 $f4, ($a2) +/* 0B0434 7F07B904 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0438 7F07B908 460C503C */ c.lt.s $f10, $f12 +.L7F07B90C: +/* 0B043C 7F07B90C 00000000 */ nop +/* 0B0440 7F07B910 45020005 */ bc1fl .L7F07B928 +/* 0B0444 7F07B914 46006200 */ add.s $f8, $f12, $f0 +/* 0B0448 7F07B918 460E0181 */ sub.s $f6, $f0, $f14 +/* 0B044C 7F07B91C E4C60000 */ swc1 $f6, ($a2) +/* 0B0450 7F07B920 C4C00000 */ lwc1 $f0, ($a2) +/* 0B0454 7F07B924 46006200 */ add.s $f8, $f12, $f0 +.L7F07B928: +/* 0B0458 7F07B928 10000004 */ b .L7F07B93C +/* 0B045C 7F07B92C E4880000 */ swc1 $f8, ($a0) +/* 0B0460 7F07B930 44812000 */ mtc1 $at, $f4 +.L7F07B934: +/* 0B0464 7F07B934 00000000 */ nop +/* 0B0468 7F07B938 E4840000 */ swc1 $f4, ($a0) +.L7F07B93C: +/* 0B046C 7F07B93C 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 0B0470 7F07B940 44815000 */ mtc1 $at, $f10 +/* 0B0474 7F07B944 C48C0000 */ lwc1 $f12, ($a0) +/* 0B0478 7F07B948 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B047C 7F07B94C 460C503C */ c.lt.s $f10, $f12 +/* 0B0480 7F07B950 00000000 */ nop +/* 0B0484 7F07B954 45020019 */ bc1fl .L7F07B9BC +/* 0B0488 7F07B958 0067082A */ slt $at, $v1, $a3 +/* 0B048C 7F07B95C C4400000 */ lwc1 $f0, ($v0) +/* 0B0490 7F07B960 44813000 */ mtc1 $at, $f6 +/* 0B0494 7F07B964 C4A20000 */ lwc1 $f2, ($a1) +/* 0B0498 7F07B968 3C018005 */ lui $at, %hi(D_8005504C) +/* 0B049C 7F07B96C 4600303C */ c.lt.s $f6, $f0 +/* 0B04A0 7F07B970 00000000 */ nop +/* 0B04A4 7F07B974 45000004 */ bc1f .L7F07B988 +/* 0B04A8 7F07B978 00000000 */ nop +/* 0B04AC 7F07B97C 460E1201 */ sub.s $f8, $f2, $f14 +/* 0B04B0 7F07B980 10000004 */ b .L7F07B994 +/* 0B04B4 7F07B984 E4A80000 */ swc1 $f8, ($a1) +.L7F07B988: +/* 0B04B8 7F07B988 C424504C */ lwc1 $f4, %lo(D_8005504C)($at) +/* 0B04BC 7F07B98C 46041280 */ add.s $f10, $f2, $f4 +/* 0B04C0 7F07B990 E4AA0000 */ swc1 $f10, ($a1) +.L7F07B994: +/* 0B04C4 7F07B994 C4A60000 */ lwc1 $f6, ($a1) +/* 0B04C8 7F07B998 46060200 */ add.s $f8, $f0, $f6 +/* 0B04CC 7F07B99C E4480000 */ swc1 $f8, ($v0) +/* 0B04D0 7F07B9A0 C4440000 */ lwc1 $f4, ($v0) +/* 0B04D4 7F07B9A4 4610203C */ c.lt.s $f4, $f16 +/* 0B04D8 7F07B9A8 00000000 */ nop +/* 0B04DC 7F07B9AC 45020003 */ bc1fl .L7F07B9BC +/* 0B04E0 7F07B9B0 0067082A */ slt $at, $v1, $a3 +/* 0B04E4 7F07B9B4 E4500000 */ swc1 $f16, ($v0) +/* 0B04E8 7F07B9B8 0067082A */ slt $at, $v1, $a3 +.L7F07B9BC: +/* 0B04EC 7F07B9BC 5420FFC3 */ bnezl $at, .L7F07B8CC +/* 0B04F0 7F07B9C0 4612603C */ c.lt.s $f12, $f18 +.L7F07B9C4: +/* 0B04F4 7F07B9C4 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B04F8 7F07B9C8 8D380000 */ lw $t8, ($t1) +/* 0B04FC 7F07B9CC 3C048008 */ lui $a0, %hi(flt_CODE_bss_80079E08) +/* 0B0500 7F07B9D0 24849E08 */ addiu $a0, %lo(flt_CODE_bss_80079E08) # addiu $a0, $a0, -0x61f8 +/* 0B0504 7F07B9D4 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0508 7F07B9D8 C7060148 */ lwc1 $f6, 0x148($t8) +/* 0B050C 7F07B9DC 3C018005 */ lui $at, %hi(D_80055050) +/* 0B0510 7F07B9E0 C4245050 */ lwc1 $f4, %lo(D_80055050)($at) +/* 0B0514 7F07B9E4 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0518 7F07B9E8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0B051C 7F07B9EC 44813000 */ mtc1 $at, $f6 +/* 0B0520 7F07B9F0 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0524 7F07B9F4 46065303 */ div.s $f12, $f10, $f6 +/* 0B0528 7F07B9F8 0FC15FAB */ jal sinf +/* 0B052C 7F07B9FC E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0B0530 7F07BA00 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0534 7F07BA04 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B0538 7F07BA08 C4480000 */ lwc1 $f8, ($v0) +/* 0B053C 7F07BA0C 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0540 7F07BA10 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0544 7F07BA14 46080102 */ mul.s $f4, $f0, $f8 +/* 0B0548 7F07BA18 8D2E0000 */ lw $t6, ($t1) +/* 0B054C 7F07BA1C 8FA30048 */ lw $v1, 0x48($sp) +/* 0B0550 7F07BA20 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0B0554 7F07BA24 C5CA04B4 */ lwc1 $f10, 0x4b4($t6) +/* 0B0558 7F07BA28 3C018005 */ lui $at, %hi(D_80055054) +/* 0B055C 7F07BA2C 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0560 7F07BA30 E4660000 */ swc1 $f6, ($v1) +/* 0B0564 7F07BA34 C4245054 */ lwc1 $f4, %lo(D_80055054)($at) +/* 0B0568 7F07BA38 C4480000 */ lwc1 $f8, ($v0) +/* 0B056C 7F07BA3C 8D2F0000 */ lw $t7, ($t1) +/* 0B0570 7F07BA40 46044282 */ mul.s $f10, $f8, $f4 +/* 0B0574 7F07BA44 C5E604B8 */ lwc1 $f6, 0x4b8($t7) +/* 0B0578 7F07BA48 460A3200 */ add.s $f8, $f6, $f10 +/* 0B057C 7F07BA4C 0FC15FA8 */ jal cosf +/* 0B0580 7F07BA50 E4680004 */ swc1 $f8, 4($v1) +/* 0B0584 7F07BA54 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079E10) +/* 0B0588 7F07BA58 24429E10 */ addiu $v0, %lo(flt_CODE_bss_80079E10) # addiu $v0, $v0, -0x61f0 +/* 0B058C 7F07BA5C C4440000 */ lwc1 $f4, ($v0) +/* 0B0590 7F07BA60 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0594 7F07BA64 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0598 7F07BA68 46040182 */ mul.s $f6, $f0, $f4 +/* 0B059C 7F07BA6C 8D390000 */ lw $t9, ($t1) +/* 0B05A0 7F07BA70 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B05A4 7F07BA74 8FA30058 */ lw $v1, 0x58($sp) +/* 0B05A8 7F07BA78 C72A04BC */ lwc1 $f10, 0x4bc($t9) +/* 0B05AC 7F07BA7C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0B05B0 7F07BA80 3C018005 */ lui $at, %hi(D_80055058) +/* 0B05B4 7F07BA84 460A3200 */ add.s $f8, $f6, $f10 +/* 0B05B8 7F07BA88 240B0001 */ li $t3, 1 +/* 0B05BC 7F07BA8C E5880008 */ swc1 $f8, 8($t4) +/* 0B05C0 7F07BA90 8D2D0000 */ lw $t5, ($t1) +/* 0B05C4 7F07BA94 C5A404B4 */ lwc1 $f4, 0x4b4($t5) +/* 0B05C8 7F07BA98 E4840000 */ swc1 $f4, ($a0) +/* 0B05CC 7F07BA9C 8D380000 */ lw $t8, ($t1) +/* 0B05D0 7F07BAA0 C70604B8 */ lwc1 $f6, 0x4b8($t8) +/* 0B05D4 7F07BAA4 E4860004 */ swc1 $f6, 4($a0) +/* 0B05D8 7F07BAA8 8D2E0000 */ lw $t6, ($t1) +/* 0B05DC 7F07BAAC C5CA04BC */ lwc1 $f10, 0x4bc($t6) +/* 0B05E0 7F07BAB0 E48A0008 */ swc1 $f10, 8($a0) +/* 0B05E4 7F07BAB4 8D2F0000 */ lw $t7, ($t1) +/* 0B05E8 7F07BAB8 8FAD0054 */ lw $t5, 0x54($sp) +/* 0B05EC 7F07BABC 8DF900A8 */ lw $t9, 0xa8($t7) +/* 0B05F0 7F07BAC0 8F2C0014 */ lw $t4, 0x14($t9) +/* 0B05F4 7F07BAC4 ADAC0000 */ sw $t4, ($t5) +/* 0B05F8 7F07BAC8 8D380000 */ lw $t8, ($t1) +/* 0B05FC 7F07BACC C70804B4 */ lwc1 $f8, 0x4b4($t8) +/* 0B0600 7F07BAD0 E4680000 */ swc1 $f8, ($v1) +/* 0B0604 7F07BAD4 C4440000 */ lwc1 $f4, ($v0) +/* 0B0608 7F07BAD8 C4265058 */ lwc1 $f6, %lo(D_80055058)($at) +/* 0B060C 7F07BADC 8D2E0000 */ lw $t6, ($t1) +/* 0B0610 7F07BAE0 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B0614 7F07BAE4 46062282 */ mul.s $f10, $f4, $f6 +/* 0B0618 7F07BAE8 C5C804B8 */ lwc1 $f8, 0x4b8($t6) +/* 0B061C 7F07BAEC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0620 7F07BAF0 44815000 */ mtc1 $at, $f10 +/* 0B0624 7F07BAF4 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0628 7F07BAF8 E4640004 */ swc1 $f4, 4($v1) +/* 0B062C 7F07BAFC 8D2F0000 */ lw $t7, ($t1) +/* 0B0630 7F07BB00 C5E604BC */ lwc1 $f6, 0x4bc($t7) +/* 0B0634 7F07BB04 E4660008 */ swc1 $f6, 8($v1) +/* 0B0638 7F07BB08 C4480000 */ lwc1 $f8, ($v0) +/* 0B063C 7F07BB0C 460A403C */ c.lt.s $f8, $f10 +/* 0B0640 7F07BB10 00000000 */ nop +/* 0B0644 7F07BB14 45020287 */ bc1fl .L7F07C534 +/* 0B0648 7F07BB18 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B064C 7F07BB1C 10000284 */ b .L7F07C530 +/* 0B0650 7F07BB20 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0654 7F07BB24 24010003 */ li $at, 3 +.L7F07BB28: +/* 0B0658 7F07BB28 144100CB */ bne $v0, $at, .L7F07BE58 +/* 0B065C 7F07BB2C 24030005 */ li $v1, 5 +/* 0B0660 7F07BB30 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0664 7F07BB34 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0668 7F07BB38 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B066C 7F07BB3C C4328378 */ lwc1 $f18, %lo(global_timer_delta)($at) +/* 0B0670 7F07BB40 C5440000 */ lwc1 $f4, ($t2) +/* 0B0674 7F07BB44 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0678 7F07BB48 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B067C 7F07BB4C 46122180 */ add.s $f6, $f4, $f18 +/* 0B0680 7F07BB50 8D030000 */ lw $v1, ($t0) +/* 0B0684 7F07BB54 3C048003 */ lui $a0, %hi(D_800364AC) +/* 0B0688 7F07BB58 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B068C 7F07BB5C E5460000 */ swc1 $f6, ($t2) +/* 0B0690 7F07BB60 8C8464AC */ lw $a0, %lo(D_800364AC)($a0) +/* 0B0694 7F07BB64 0003C940 */ sll $t9, $v1, 5 +/* 0B0698 7F07BB68 C5420000 */ lwc1 $f2, ($t2) +/* 0B069C 7F07BB6C 00991021 */ addu $v0, $a0, $t9 +/* 0B06A0 7F07BB70 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06A4 7F07BB74 4602003E */ c.le.s $f0, $f2 +/* 0B06A8 7F07BB78 00000000 */ nop +/* 0B06AC 7F07BB7C 45020019 */ bc1fl .L7F07BBE4 +/* 0B06B0 7F07BB80 24650001 */ addiu $a1, $v1, 1 +/* 0B06B4 7F07BB84 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BB88: +/* 0B06B8 7F07BB88 318D0001 */ andi $t5, $t4, 1 +/* 0B06BC 7F07BB8C 55A00007 */ bnezl $t5, .L7F07BBAC +/* 0B06C0 7F07BB90 E5400000 */ swc1 $f0, ($t2) +/* 0B06C4 7F07BB94 46001201 */ sub.s $f8, $f2, $f0 +/* 0B06C8 7F07BB98 24780001 */ addiu $t8, $v1, 1 +/* 0B06CC 7F07BB9C AD180000 */ sw $t8, ($t0) +/* 0B06D0 7F07BBA0 10000006 */ b .L7F07BBBC +/* 0B06D4 7F07BBA4 E5480000 */ swc1 $f8, ($t2) +/* 0B06D8 7F07BBA8 E5400000 */ swc1 $f0, ($t2) +.L7F07BBAC: +/* 0B06DC 7F07BBAC AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B06E0 7F07BBB0 C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B06E4 7F07BBB4 1000000A */ b .L7F07BBE0 +/* 0B06E8 7F07BBB8 C5420000 */ lwc1 $f2, ($t2) +.L7F07BBBC: +/* 0B06EC 7F07BBBC 8D030000 */ lw $v1, ($t0) +/* 0B06F0 7F07BBC0 C5420000 */ lwc1 $f2, ($t2) +/* 0B06F4 7F07BBC4 00037140 */ sll $t6, $v1, 5 +/* 0B06F8 7F07BBC8 008E1021 */ addu $v0, $a0, $t6 +/* 0B06FC 7F07BBCC C4400018 */ lwc1 $f0, 0x18($v0) +/* 0B0700 7F07BBD0 4602003E */ c.le.s $f0, $f2 +/* 0B0704 7F07BBD4 00000000 */ nop +/* 0B0708 7F07BBD8 4503FFEB */ bc1tl .L7F07BB88 +/* 0B070C 7F07BBDC 8C4C0064 */ lw $t4, 0x64($v0) +.L7F07BBE0: +/* 0B0710 7F07BBE0 24650001 */ addiu $a1, $v1, 1 +.L7F07BBE4: +/* 0B0714 7F07BBE4 00057940 */ sll $t7, $a1, 5 +/* 0B0718 7F07BBE8 008F1021 */ addu $v0, $a0, $t7 +/* 0B071C 7F07BBEC 8C590044 */ lw $t9, 0x44($v0) +/* 0B0720 7F07BBF0 46020281 */ sub.s $f10, $f0, $f2 +/* 0B0724 7F07BBF4 44807000 */ mtc1 $zero, $f14 +/* 0B0728 7F07BBF8 332C0001 */ andi $t4, $t9, 1 +/* 0B072C 7F07BBFC 15800007 */ bnez $t4, .L7F07BC1C +/* 0B0730 7F07BC00 460A7400 */ add.s $f16, $f14, $f10 +.L7F07BC04: +/* 0B0734 7F07BC04 8C4D0064 */ lw $t5, 0x64($v0) +/* 0B0738 7F07BC08 C4440018 */ lwc1 $f4, 0x18($v0) +/* 0B073C 7F07BC0C 24420020 */ addiu $v0, $v0, 0x20 +/* 0B0740 7F07BC10 31B80001 */ andi $t8, $t5, 1 +/* 0B0744 7F07BC14 1300FFFB */ beqz $t8, .L7F07BC04 +/* 0B0748 7F07BC18 46048400 */ add.s $f16, $f16, $f4 +.L7F07BC1C: +/* 0B074C 7F07BC1C 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B0750 7F07BC20 44816000 */ mtc1 $at, $f12 +/* 0B0754 7F07BC24 00000000 */ nop +/* 0B0758 7F07BC28 460C803C */ c.lt.s $f16, $f12 +/* 0B075C 7F07BC2C 00000000 */ nop +/* 0B0760 7F07BC30 4500000D */ bc1f .L7F07BC68 +/* 0B0764 7F07BC34 00000000 */ nop +/* 0B0768 7F07BC38 46128180 */ add.s $f6, $f16, $f18 +/* 0B076C 7F07BC3C 4606603E */ c.le.s $f12, $f6 +/* 0B0770 7F07BC40 00000000 */ nop +/* 0B0774 7F07BC44 45000008 */ bc1f .L7F07BC68 +/* 0B0778 7F07BC48 00000000 */ nop +/* 0B077C 7F07BC4C 0FC20284 */ jal currentPlayerStartChrFade +/* 0B0780 7F07BC50 E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B0784 7F07BC54 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0788 7F07BC58 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B078C 7F07BC5C 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0790 7F07BC60 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0794 7F07BC64 C7B00030 */ lwc1 $f16, 0x30($sp) +.L7F07BC68: +/* 0B0798 7F07BC68 3C0E8003 */ lui $t6, %hi(D_8003649C) +/* 0B079C 7F07BC6C 8DCE649C */ lw $t6, %lo(D_8003649C)($t6) +/* 0B07A0 7F07BC70 51C0000D */ beql $t6, $zero, .L7F07BCA8 +/* 0B07A4 7F07BC74 3C014270 */ lui $at, 0x4270 +/* 0B07A8 7F07BC78 0FC20223 */ jal currentPlayerIsFadeComplete +/* 0B07AC 7F07BC7C E7B00030 */ swc1 $f16, 0x30($sp) +/* 0B07B0 7F07BC80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B07B4 7F07BC84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B07B8 7F07BC88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B07BC 7F07BC8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B07C0 7F07BC90 240B0001 */ li $t3, 1 +/* 0B07C4 7F07BC94 10400003 */ beqz $v0, .L7F07BCA4 +/* 0B07C8 7F07BC98 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 0B07CC 7F07BC9C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B07D0 7F07BCA0 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BCA4: +/* 0B07D4 7F07BCA4 3C014270 */ li $at, 0x42700000 # 60.000000 +.L7F07BCA8: +/* 0B07D8 7F07BCA8 44814000 */ mtc1 $at, $f8 +/* 0B07DC 7F07BCAC 3C0F8003 */ lui $t7, %hi(D_8003649C) +/* 0B07E0 7F07BCB0 4610403C */ c.lt.s $f8, $f16 +/* 0B07E4 7F07BCB4 00000000 */ nop +/* 0B07E8 7F07BCB8 45020036 */ bc1fl .L7F07BD94 +/* 0B07EC 7F07BCBC 8D040000 */ lw $a0, ($t0) +/* 0B07F0 7F07BCC0 8DEF649C */ lw $t7, %lo(D_8003649C)($t7) +/* 0B07F4 7F07BCC4 55E00033 */ bnezl $t7, .L7F07BD94 +/* 0B07F8 7F07BCC8 8D040000 */ lw $a0, ($t0) +/* 0B07FC 7F07BCCC 0FC2FF01 */ jal get_controls_locked_flag +/* 0B0800 7F07BCD0 00000000 */ nop +/* 0B0804 7F07BCD4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B0808 7F07BCD8 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B080C 7F07BCDC 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0810 7F07BCE0 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B0814 7F07BCE4 1440002A */ bnez $v0, .L7F07BD90 +/* 0B0818 7F07BCE8 240B0001 */ li $t3, 1 +/* 0B081C 7F07BCEC 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0820 7F07BCF0 97B90042 */ lhu $t9, 0x42($sp) +/* 0B0824 7F07BCF4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0828 7F07BCF8 01806827 */ not $t5, $t4 +/* 0B082C 7F07BCFC 032DC024 */ and $t8, $t9, $t5 +/* 0B0830 7F07BD00 330EF030 */ andi $t6, $t8, 0xf030 +/* 0B0834 7F07BD04 11C00022 */ beqz $t6, .L7F07BD90 +/* 0B0838 7F07BD08 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B083C 7F07BD0C 3C018003 */ lui $at, %hi(D_8003649C) +/* 0B0840 7F07BD10 AC2B649C */ sw $t3, %lo(D_8003649C)($at) +/* 0B0844 7F07BD14 8D2F0000 */ lw $t7, ($t1) +/* 0B0848 7F07BD18 00002025 */ move $a0, $zero +/* 0B084C 7F07BD1C 00002825 */ move $a1, $zero +/* 0B0850 7F07BD20 00003025 */ move $a2, $zero +/* 0B0854 7F07BD24 0FC201EC */ jal currentPlayerSetFadeColour +/* 0B0858 7F07BD28 8DE703DC */ lw $a3, 0x3dc($t7) +/* 0B085C 7F07BD2C 0FC20223 */ jal currentPlayerIsFadeComplete +/* 0B0860 7F07BD30 00000000 */ nop +/* 0B0864 7F07BD34 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0868 7F07BD38 1040000C */ beqz $v0, .L7F07BD6C +/* 0B086C 7F07BD3C 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0870 7F07BD40 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0B0874 7F07BD44 44816000 */ mtc1 $at, $f12 +/* 0B0878 7F07BD48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B087C 7F07BD4C 44817000 */ mtc1 $at, $f14 +/* 0B0880 7F07BD50 0FC20216 */ jal currentPlayerSetFadeFrac +/* 0B0884 7F07BD54 00000000 */ nop +/* 0B0888 7F07BD58 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B088C 7F07BD5C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0890 7F07BD60 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0894 7F07BD64 1000000A */ b .L7F07BD90 +/* 0B0898 7F07BD68 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD6C: +/* 0B089C 7F07BD6C 8D2C0000 */ lw $t4, ($t1) +/* 0B08A0 7F07BD70 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B08A4 7F07BD74 44817000 */ mtc1 $at, $f14 +/* 0B08A8 7F07BD78 0FC20216 */ jal currentPlayerSetFadeFrac +/* 0B08AC 7F07BD7C C58C03E0 */ lwc1 $f12, 0x3e0($t4) +/* 0B08B0 7F07BD80 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08B4 7F07BD84 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B08B8 7F07BD88 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B08BC 7F07BD8C 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +.L7F07BD90: +/* 0B08C0 7F07BD90 8D040000 */ lw $a0, ($t0) +.L7F07BD94: +/* 0B08C4 7F07BD94 8D450000 */ lw $a1, ($t2) +/* 0B08C8 7F07BD98 8FA60048 */ lw $a2, 0x48($sp) +/* 0B08CC 7F07BD9C 0FC1ECA8 */ jal sub_GAME_7F07B2A0 +/* 0B08D0 7F07BDA0 8FA7004C */ lw $a3, 0x4c($sp) +/* 0B08D4 7F07BDA4 3C088003 */ lui $t0, %hi(D_800364A8) +/* 0B08D8 7F07BDA8 250864A8 */ addiu $t0, %lo(D_800364A8) # addiu $t0, $t0, 0x64a8 +/* 0B08DC 7F07BDAC 8D0D0000 */ lw $t5, ($t0) +/* 0B08E0 7F07BDB0 3C198003 */ lui $t9, %hi(D_800364AC) +/* 0B08E4 7F07BDB4 8F3964AC */ lw $t9, %lo(D_800364AC)($t9) +/* 0B08E8 7F07BDB8 000DC140 */ sll $t8, $t5, 5 +/* 0B08EC 7F07BDBC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B08F0 7F07BDC0 03387021 */ addu $t6, $t9, $t8 +/* 0B08F4 7F07BDC4 8DC4001C */ lw $a0, 0x1c($t6) +/* 0B08F8 7F07BDC8 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B08FC 7F07BDCC 3C0C8007 */ lui $t4, %hi(ptr_0xxxpresets) +/* 0B0900 7F07BDD0 04800012 */ bltz $a0, .L7F07BE1C +/* 0B0904 7F07BDD4 00047880 */ sll $t7, $a0, 2 +/* 0B0908 7F07BDD8 01E47823 */ subu $t7, $t7, $a0 +/* 0B090C 7F07BDDC 8D8C5D18 */ lw $t4, %lo(ptr_0xxxpresets)($t4) +/* 0B0910 7F07BDE0 000F7880 */ sll $t7, $t7, 2 +/* 0B0914 7F07BDE4 01E47823 */ subu $t7, $t7, $a0 +/* 0B0918 7F07BDE8 000F7880 */ sll $t7, $t7, 2 +/* 0B091C 7F07BDEC 01EC1021 */ addu $v0, $t7, $t4 +/* 0B0920 7F07BDF0 8C4D0028 */ lw $t5, 0x28($v0) +/* 0B0924 7F07BDF4 8FB90054 */ lw $t9, 0x54($sp) +/* 0B0928 7F07BDF8 8FA30058 */ lw $v1, 0x58($sp) +/* 0B092C 7F07BDFC AF2D0000 */ sw $t5, ($t9) +/* 0B0930 7F07BE00 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0934 7F07BE04 E46A0000 */ swc1 $f10, ($v1) +/* 0B0938 7F07BE08 C4440004 */ lwc1 $f4, 4($v0) +/* 0B093C 7F07BE0C E4640004 */ swc1 $f4, 4($v1) +/* 0B0940 7F07BE10 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0944 7F07BE14 100001C6 */ b .L7F07C530 +/* 0B0948 7F07BE18 E4660008 */ swc1 $f6, 8($v1) +.L7F07BE1C: +/* 0B094C 7F07BE1C 8D380000 */ lw $t8, ($t1) +/* 0B0950 7F07BE20 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0954 7F07BE24 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0958 7F07BE28 8F0E0488 */ lw $t6, 0x488($t8) +/* 0B095C 7F07BE2C ADEE0000 */ sw $t6, ($t7) +/* 0B0960 7F07BE30 8D2C0000 */ lw $t4, ($t1) +/* 0B0964 7F07BE34 C588048C */ lwc1 $f8, 0x48c($t4) +/* 0B0968 7F07BE38 E4680000 */ swc1 $f8, ($v1) +/* 0B096C 7F07BE3C 8D2D0000 */ lw $t5, ($t1) +/* 0B0970 7F07BE40 C5AA0490 */ lwc1 $f10, 0x490($t5) +/* 0B0974 7F07BE44 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0978 7F07BE48 8D390000 */ lw $t9, ($t1) +/* 0B097C 7F07BE4C C7240494 */ lwc1 $f4, 0x494($t9) +/* 0B0980 7F07BE50 100001B7 */ b .L7F07C530 +/* 0B0984 7F07BE54 E4640008 */ swc1 $f4, 8($v1) +.L7F07BE58: +/* 0B0988 7F07BE58 10620003 */ beq $v1, $v0, .L7F07BE68 +/* 0B098C 7F07BE5C 24010006 */ li $at, 6 +/* 0B0990 7F07BE60 5441009C */ bnel $v0, $at, .L7F07C0D4 +/* 0B0994 7F07BE64 24010007 */ li $at, 7 +.L7F07BE68: +/* 0B0998 7F07BE68 1462003F */ bne $v1, $v0, .L7F07BF68 +/* 0B099C 7F07BE6C 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B09A0 7F07BE70 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B09A4 7F07BE74 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B09A8 7F07BE78 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0B09AC 7F07BE7C C5460000 */ lwc1 $f6, ($t2) +/* 0B09B0 7F07BE80 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09B4 7F07BE84 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09B8 7F07BE88 46083280 */ add.s $f10, $f6, $f8 +/* 0B09BC 7F07BE8C 8D380000 */ lw $t8, ($t1) +/* 0B09C0 7F07BE90 3C014334 */ lui $at, 0x4334 +/* 0B09C4 7F07BE94 E54A0000 */ swc1 $f10, ($t2) +/* 0B09C8 7F07BE98 8F0400D4 */ lw $a0, 0xd4($t8) +/* 0B09CC 7F07BE9C 50800015 */ beql $a0, $zero, .L7F07BEF4 +/* 0B09D0 7F07BEA0 C5460000 */ lwc1 $f6, ($t2) +/* 0B09D4 7F07BEA4 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 0B09D8 7F07BEA8 00000000 */ nop +/* 0B09DC 7F07BEAC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09E0 7F07BEB0 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B09E4 7F07BEB4 8D2E0000 */ lw $t6, ($t1) +/* 0B09E8 7F07BEB8 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B09EC 7F07BEBC 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0B09F0 7F07BEC0 8DC400D4 */ lw $a0, 0xd4($t6) +/* 0B09F4 7F07BEC4 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B09F8 7F07BEC8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B09FC 7F07BECC 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0A00 7F07BED0 4604003E */ c.le.s $f0, $f4 +/* 0B0A04 7F07BED4 240B0001 */ li $t3, 1 +/* 0B0A08 7F07BED8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A0C 7F07BEDC 45000002 */ bc1f .L7F07BEE8 +/* 0B0A10 7F07BEE0 00000000 */ nop +/* 0B0A14 7F07BEE4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BEE8: +/* 0B0A18 7F07BEE8 10000009 */ b .L7F07BF10 +/* 0B0A1C 7F07BEEC 24050002 */ li $a1, 2 +/* 0B0A20 7F07BEF0 C5460000 */ lwc1 $f6, ($t2) +.L7F07BEF4: +/* 0B0A24 7F07BEF4 44814000 */ mtc1 $at, $f8 +/* 0B0A28 7F07BEF8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A2C 7F07BEFC 4606403E */ c.le.s $f8, $f6 +/* 0B0A30 7F07BF00 00000000 */ nop +/* 0B0A34 7F07BF04 45020003 */ bc1fl .L7F07BF14 +/* 0B0A38 7F07BF08 97AC0046 */ lhu $t4, 0x46($sp) +/* 0B0A3C 7F07BF0C AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +.L7F07BF10: +/* 0B0A40 7F07BF10 97AC0046 */ lhu $t4, 0x46($sp) +.L7F07BF14: +/* 0B0A44 7F07BF14 97AF0042 */ lhu $t7, 0x42($sp) +/* 0B0A48 7F07BF18 01806827 */ not $t5, $t4 +/* 0B0A4C 7F07BF1C 01EDC824 */ and $t9, $t7, $t5 +/* 0B0A50 7F07BF20 3338F000 */ andi $t8, $t9, 0xf000 +/* 0B0A54 7F07BF24 13000036 */ beqz $t8, .L7F07C000 +/* 0B0A58 7F07BF28 00000000 */ nop +/* 0B0A5C 7F07BF2C 8D220000 */ lw $v0, ($t1) +/* 0B0A60 7F07BF30 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0B0A64 7F07BF34 11C00032 */ beqz $t6, .L7F07C000 +/* 0B0A68 7F07BF38 00000000 */ nop +/* 0B0A6C 7F07BF3C 8C4C0424 */ lw $t4, 0x424($v0) +/* 0B0A70 7F07BF40 1180002F */ beqz $t4, .L7F07C000 +/* 0B0A74 7F07BF44 00000000 */ nop +/* 0B0A78 7F07BF48 8C4F0428 */ lw $t7, 0x428($v0) +/* 0B0A7C 7F07BF4C 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0A80 7F07BF50 11E0002B */ beqz $t7, .L7F07C000 +/* 0B0A84 7F07BF54 00000000 */ nop +/* 0B0A88 7F07BF58 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0A8C 7F07BF5C 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0A90 7F07BF60 10000027 */ b .L7F07C000 +/* 0B0A94 7F07BF64 AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07BF68: +/* 0B0A98 7F07BF68 24010006 */ li $at, 6 +/* 0B0A9C 7F07BF6C 14410024 */ bne $v0, $at, .L7F07C000 +/* 0B0AA0 7F07BF70 3C0A8003 */ lui $t2, %hi(D_800364A4) +/* 0B0AA4 7F07BF74 254A64A4 */ addiu $t2, %lo(D_800364A4) # addiu $t2, $t2, 0x64a4 +/* 0B0AA8 7F07BF78 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0AAC 7F07BF7C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 0B0AB0 7F07BF80 C54A0000 */ lwc1 $f10, ($t2) +/* 0B0AB4 7F07BF84 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0AB8 7F07BF88 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0ABC 7F07BF8C 46045180 */ add.s $f6, $f10, $f4 +/* 0B0AC0 7F07BF90 8D220000 */ lw $v0, ($t1) +/* 0B0AC4 7F07BF94 44807000 */ mtc1 $zero, $f14 +/* 0B0AC8 7F07BF98 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 0B0ACC 7F07BF9C E5460000 */ swc1 $f6, ($t2) +/* 0B0AD0 7F07BFA0 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0B0AD4 7F07BFA4 460E403C */ c.lt.s $f8, $f14 +/* 0B0AD8 7F07BFA8 00000000 */ nop +/* 0B0ADC 7F07BFAC 45020003 */ bc1fl .L7F07BFBC +/* 0B0AE0 7F07BFB0 97B90046 */ lhu $t9, 0x46($sp) +/* 0B0AE4 7F07BFB4 AC2B6498 */ sw $t3, %lo(enable_move_after_cinema)($at) +/* 0B0AE8 7F07BFB8 97B90046 */ lhu $t9, 0x46($sp) +.L7F07BFBC: +/* 0B0AEC 7F07BFBC 97AD0042 */ lhu $t5, 0x42($sp) +/* 0B0AF0 7F07BFC0 0320C027 */ not $t8, $t9 +/* 0B0AF4 7F07BFC4 01B87024 */ and $t6, $t5, $t8 +/* 0B0AF8 7F07BFC8 31CCF000 */ andi $t4, $t6, 0xf000 +/* 0B0AFC 7F07BFCC 1180000C */ beqz $t4, .L7F07C000 +/* 0B0B00 7F07BFD0 00000000 */ nop +/* 0B0B04 7F07BFD4 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B0B08 7F07BFD8 11E00009 */ beqz $t7, .L7F07C000 +/* 0B0B0C 7F07BFDC 00000000 */ nop +/* 0B0B10 7F07BFE0 8C590424 */ lw $t9, 0x424($v0) +/* 0B0B14 7F07BFE4 13200006 */ beqz $t9, .L7F07C000 +/* 0B0B18 7F07BFE8 00000000 */ nop +/* 0B0B1C 7F07BFEC 8C4D0428 */ lw $t5, 0x428($v0) +/* 0B0B20 7F07BFF0 3C018003 */ lui $at, %hi(D_80036510) +/* 0B0B24 7F07BFF4 11A00002 */ beqz $t5, .L7F07C000 +/* 0B0B28 7F07BFF8 00000000 */ nop +/* 0B0B2C 7F07BFFC AC256510 */ sw $a1, %lo(D_80036510)($at) +.L7F07C000: +/* 0B0B30 7F07C000 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799E8) +/* 0B0B34 7F07C004 246399E8 */ addiu $v1, %lo(flt_CODE_bss_800799E8) # addiu $v1, $v1, -0x6618 +/* 0B0B38 7F07C008 C46A0000 */ lwc1 $f10, ($v1) +/* 0B0B3C 7F07C00C 8FB80048 */ lw $t8, 0x48($sp) +/* 0B0B40 7F07C010 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0B44 7F07C014 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0B48 7F07C018 E70A0000 */ swc1 $f10, ($t8) +/* 0B0B4C 7F07C01C C4640004 */ lwc1 $f4, 4($v1) +/* 0B0B50 7F07C020 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799F4) +/* 0B0B54 7F07C024 24A599F4 */ addiu $a1, %lo(dword_CODE_bss_800799F4) # addiu $a1, $a1, -0x660c +/* 0B0B58 7F07C028 E7040004 */ swc1 $f4, 4($t8) +/* 0B0B5C 7F07C02C C4660008 */ lwc1 $f6, 8($v1) +/* 0B0B60 7F07C030 E7060008 */ swc1 $f6, 8($t8) +/* 0B0B64 7F07C034 8D220000 */ lw $v0, ($t1) +/* 0B0B68 7F07C038 8CA40000 */ lw $a0, ($a1) +/* 0B0B6C 7F07C03C 8C4E00A8 */ lw $t6, 0xa8($v0) +/* 0B0B70 7F07C040 548E000C */ bnel $a0, $t6, .L7F07C074 +/* 0B0B74 7F07C044 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0B78 7F07C048 C44803C4 */ lwc1 $f8, 0x3c4($v0) +/* 0B0B7C 7F07C04C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0B80 7F07C050 E5880000 */ swc1 $f8, ($t4) +/* 0B0B84 7F07C054 8D2F0000 */ lw $t7, ($t1) +/* 0B0B88 7F07C058 C5EA03C8 */ lwc1 $f10, 0x3c8($t7) +/* 0B0B8C 7F07C05C E58A0004 */ swc1 $f10, 4($t4) +/* 0B0B90 7F07C060 8D390000 */ lw $t9, ($t1) +/* 0B0B94 7F07C064 C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0B98 7F07C068 1000000A */ b .L7F07C094 +/* 0B0B9C 7F07C06C E5840008 */ swc1 $f4, 8($t4) +/* 0B0BA0 7F07C070 C4860008 */ lwc1 $f6, 8($a0) +.L7F07C074: +/* 0B0BA4 7F07C074 8FAD004C */ lw $t5, 0x4c($sp) +/* 0B0BA8 7F07C078 E5A60000 */ swc1 $f6, ($t5) +/* 0B0BAC 7F07C07C 8CB80000 */ lw $t8, ($a1) +/* 0B0BB0 7F07C080 C708000C */ lwc1 $f8, 0xc($t8) +/* 0B0BB4 7F07C084 E5A80004 */ swc1 $f8, 4($t5) +/* 0B0BB8 7F07C088 8CAE0000 */ lw $t6, ($a1) +/* 0B0BBC 7F07C08C C5CA0010 */ lwc1 $f10, 0x10($t6) +/* 0B0BC0 7F07C090 E5AA0008 */ swc1 $f10, 8($t5) +.L7F07C094: +/* 0B0BC4 7F07C094 8D2F0000 */ lw $t7, ($t1) +/* 0B0BC8 7F07C098 8FAC0054 */ lw $t4, 0x54($sp) +/* 0B0BCC 7F07C09C 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0BD0 7F07C0A0 8DF90488 */ lw $t9, 0x488($t7) +/* 0B0BD4 7F07C0A4 AD990000 */ sw $t9, ($t4) +/* 0B0BD8 7F07C0A8 8D380000 */ lw $t8, ($t1) +/* 0B0BDC 7F07C0AC C704048C */ lwc1 $f4, 0x48c($t8) +/* 0B0BE0 7F07C0B0 E4640000 */ swc1 $f4, ($v1) +/* 0B0BE4 7F07C0B4 8D2E0000 */ lw $t6, ($t1) +/* 0B0BE8 7F07C0B8 C5C60490 */ lwc1 $f6, 0x490($t6) +/* 0B0BEC 7F07C0BC E4660004 */ swc1 $f6, 4($v1) +/* 0B0BF0 7F07C0C0 8D2D0000 */ lw $t5, ($t1) +/* 0B0BF4 7F07C0C4 C5A80494 */ lwc1 $f8, 0x494($t5) +/* 0B0BF8 7F07C0C8 10000119 */ b .L7F07C530 +/* 0B0BFC 7F07C0CC E4680008 */ swc1 $f8, 8($v1) +/* 0B0C00 7F07C0D0 24010007 */ li $at, 7 +.L7F07C0D4: +/* 0B0C04 7F07C0D4 14410116 */ bne $v0, $at, .L7F07C530 +/* 0B0C08 7F07C0D8 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799F8) +/* 0B0C0C 7F07C0DC 244299F8 */ addiu $v0, %lo(dword_CODE_bss_800799F8) # addiu $v0, $v0, -0x6608 +/* 0B0C10 7F07C0E0 8C440000 */ lw $a0, ($v0) +/* 0B0C14 7F07C0E4 8FAF0048 */ lw $t7, 0x48($sp) +/* 0B0C18 7F07C0E8 10800024 */ beqz $a0, .L7F07C17C +/* 0B0C1C 7F07C0EC 00000000 */ nop +/* 0B0C20 7F07C0F0 C48A0000 */ lwc1 $f10, ($a0) +/* 0B0C24 7F07C0F4 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0C28 7F07C0F8 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0C2C 7F07C0FC E5EA0000 */ swc1 $f10, ($t7) +/* 0B0C30 7F07C100 8C590000 */ lw $t9, ($v0) +/* 0B0C34 7F07C104 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0C38 7F07C108 C7240004 */ lwc1 $f4, 4($t9) +/* 0B0C3C 7F07C10C E5E40004 */ swc1 $f4, 4($t7) +/* 0B0C40 7F07C110 8C4C0000 */ lw $t4, ($v0) +/* 0B0C44 7F07C114 C5860008 */ lwc1 $f6, 8($t4) +/* 0B0C48 7F07C118 E5E60008 */ swc1 $f6, 8($t7) +/* 0B0C4C 7F07C11C 8D380000 */ lw $t8, ($t1) +/* 0B0C50 7F07C120 8FAE004C */ lw $t6, 0x4c($sp) +/* 0B0C54 7F07C124 C70803C4 */ lwc1 $f8, 0x3c4($t8) +/* 0B0C58 7F07C128 E5C80000 */ swc1 $f8, ($t6) +/* 0B0C5C 7F07C12C 8D2D0000 */ lw $t5, ($t1) +/* 0B0C60 7F07C130 C5AA03C8 */ lwc1 $f10, 0x3c8($t5) +/* 0B0C64 7F07C134 E5CA0004 */ swc1 $f10, 4($t6) +/* 0B0C68 7F07C138 8D390000 */ lw $t9, ($t1) +/* 0B0C6C 7F07C13C C72403CC */ lwc1 $f4, 0x3cc($t9) +/* 0B0C70 7F07C140 E5C40008 */ swc1 $f4, 8($t6) +/* 0B0C74 7F07C144 8C4C0000 */ lw $t4, ($v0) +/* 0B0C78 7F07C148 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0C7C 7F07C14C 8D8F0028 */ lw $t7, 0x28($t4) +/* 0B0C80 7F07C150 AF0F0000 */ sw $t7, ($t8) +/* 0B0C84 7F07C154 8C4D0000 */ lw $t5, ($v0) +/* 0B0C88 7F07C158 C5A60000 */ lwc1 $f6, ($t5) +/* 0B0C8C 7F07C15C E4660000 */ swc1 $f6, ($v1) +/* 0B0C90 7F07C160 8C590000 */ lw $t9, ($v0) +/* 0B0C94 7F07C164 C7280004 */ lwc1 $f8, 4($t9) +/* 0B0C98 7F07C168 E4680004 */ swc1 $f8, 4($v1) +/* 0B0C9C 7F07C16C 8C4E0000 */ lw $t6, ($v0) +/* 0B0CA0 7F07C170 C5CA0008 */ lwc1 $f10, 8($t6) +/* 0B0CA4 7F07C174 100000EE */ b .L7F07C530 +/* 0B0CA8 7F07C178 E46A0008 */ swc1 $f10, 8($v1) +.L7F07C17C: +/* 0B0CAC 7F07C17C 3C058008 */ lui $a1, %hi(dword_CODE_bss_800799FC) +/* 0B0CB0 7F07C180 24A599FC */ addiu $a1, %lo(dword_CODE_bss_800799FC) # addiu $a1, $a1, -0x6604 +/* 0B0CB4 7F07C184 8CA40000 */ lw $a0, ($a1) +/* 0B0CB8 7F07C188 10800063 */ beqz $a0, .L7F07C318 +/* 0B0CBC 7F07C18C 00000000 */ nop +/* 0B0CC0 7F07C190 8C830018 */ lw $v1, 0x18($a0) +/* 0B0CC4 7F07C194 3C0D8007 */ lui $t5, %hi(ptr_2xxxpresets) +/* 0B0CC8 7F07C198 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0CCC 7F07C19C 28612710 */ slti $at, $v1, 0x2710 +/* 0B0CD0 7F07C1A0 1020000A */ beqz $at, .L7F07C1CC +/* 0B0CD4 7F07C1A4 0003C100 */ sll $t8, $v1, 4 +/* 0B0CD8 7F07C1A8 00036080 */ sll $t4, $v1, 2 +/* 0B0CDC 7F07C1AC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CE0 7F07C1B0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CE4 7F07C1B4 3C0F8007 */ lui $t7, %hi(ptr_0xxxpresets) +/* 0B0CE8 7F07C1B8 8DEF5D18 */ lw $t7, %lo(ptr_0xxxpresets)($t7) +/* 0B0CEC 7F07C1BC 01836023 */ subu $t4, $t4, $v1 +/* 0B0CF0 7F07C1C0 000C6080 */ sll $t4, $t4, 2 +/* 0B0CF4 7F07C1C4 10000008 */ b .L7F07C1E8 +/* 0B0CF8 7F07C1C8 018F1021 */ addu $v0, $t4, $t7 +.L7F07C1CC: +/* 0B0CFC 7F07C1CC 8DAD5D1C */ lw $t5, %lo(ptr_2xxxpresets)($t5) +/* 0B0D00 7F07C1D0 0303C021 */ addu $t8, $t8, $v1 +/* 0B0D04 7F07C1D4 0018C080 */ sll $t8, $t8, 2 +/* 0B0D08 7F07C1D8 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0D0C 7F07C1DC 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0D10 7F07C1E0 030D1021 */ addu $v0, $t8, $t5 +/* 0B0D14 7F07C1E4 00411021 */ addu $v0, $v0, $at +.L7F07C1E8: +/* 0B0D18 7F07C1E8 C4840004 */ lwc1 $f4, 4($a0) +/* 0B0D1C 7F07C1EC 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0D20 7F07C1F0 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079A18) +/* 0B0D24 7F07C1F4 E7240000 */ swc1 $f4, ($t9) +/* 0B0D28 7F07C1F8 8CAE0000 */ lw $t6, ($a1) +/* 0B0D2C 7F07C1FC 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B0D30 7F07C200 2529A0B0 */ addiu $t1, %lo(pPlayer) # addiu $t1, $t1, -0x5f50 +/* 0B0D34 7F07C204 C5C60008 */ lwc1 $f6, 8($t6) +/* 0B0D38 7F07C208 E7260004 */ swc1 $f6, 4($t9) +/* 0B0D3C 7F07C20C 8CAC0000 */ lw $t4, ($a1) +/* 0B0D40 7F07C210 C588000C */ lwc1 $f8, 0xc($t4) +/* 0B0D44 7F07C214 E7280008 */ swc1 $f8, 8($t9) +/* 0B0D48 7F07C218 8FB80054 */ lw $t8, 0x54($sp) +/* 0B0D4C 7F07C21C 8C4F0028 */ lw $t7, 0x28($v0) +/* 0B0D50 7F07C220 AF0F0000 */ sw $t7, ($t8) +/* 0B0D54 7F07C224 C44A0000 */ lwc1 $f10, ($v0) +/* 0B0D58 7F07C228 E46A0000 */ swc1 $f10, ($v1) +/* 0B0D5C 7F07C22C C4440004 */ lwc1 $f4, 4($v0) +/* 0B0D60 7F07C230 E4640004 */ swc1 $f4, 4($v1) +/* 0B0D64 7F07C234 C4460008 */ lwc1 $f6, 8($v0) +/* 0B0D68 7F07C238 E4660008 */ swc1 $f6, 8($v1) +/* 0B0D6C 7F07C23C 8DAD9A18 */ lw $t5, %lo(dword_CODE_bss_80079A18)($t5) +/* 0B0D70 7F07C240 556D000D */ bnel $t3, $t5, .L7F07C278 +/* 0B0D74 7F07C244 8CB80000 */ lw $t8, ($a1) +/* 0B0D78 7F07C248 8D2E0000 */ lw $t6, ($t1) +/* 0B0D7C 7F07C24C 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0D80 7F07C250 C5C803C4 */ lwc1 $f8, 0x3c4($t6) +/* 0B0D84 7F07C254 E5880000 */ swc1 $f8, ($t4) +/* 0B0D88 7F07C258 8D390000 */ lw $t9, ($t1) +/* 0B0D8C 7F07C25C C72A03C8 */ lwc1 $f10, 0x3c8($t9) +/* 0B0D90 7F07C260 E58A0004 */ swc1 $f10, 4($t4) +/* 0B0D94 7F07C264 8D2F0000 */ lw $t7, ($t1) +/* 0B0D98 7F07C268 C5E403CC */ lwc1 $f4, 0x3cc($t7) +/* 0B0D9C 7F07C26C 100000B0 */ b .L7F07C530 +/* 0B0DA0 7F07C270 E5840008 */ swc1 $f4, 8($t4) +/* 0B0DA4 7F07C274 8CB80000 */ lw $t8, ($a1) +.L7F07C278: +/* 0B0DA8 7F07C278 0FC15FA8 */ jal cosf +/* 0B0DAC 7F07C27C C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B0DB0 7F07C280 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DB4 7F07C284 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0DB8 7F07C288 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0DBC 7F07C28C 0FC15FAB */ jal sinf +/* 0B0DC0 7F07C290 C5AC0010 */ lwc1 $f12, 0x10($t5) +/* 0B0DC4 7F07C294 C7A6001C */ lwc1 $f6, 0x1c($sp) +/* 0B0DC8 7F07C298 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0DCC 7F07C29C 8FB9004C */ lw $t9, 0x4c($sp) +/* 0B0DD0 7F07C2A0 46060202 */ mul.s $f8, $f0, $f6 +/* 0B0DD4 7F07C2A4 C5CA0000 */ lwc1 $f10, ($t6) +/* 0B0DD8 7F07C2A8 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799FC) +/* 0B0DDC 7F07C2AC 460A4100 */ add.s $f4, $f8, $f10 +/* 0B0DE0 7F07C2B0 E7240000 */ swc1 $f4, ($t9) +/* 0B0DE4 7F07C2B4 8DEF99FC */ lw $t7, %lo(dword_CODE_bss_800799FC)($t7) +/* 0B0DE8 7F07C2B8 0FC15FAB */ jal sinf +/* 0B0DEC 7F07C2BC C5EC0014 */ lwc1 $f12, 0x14($t7) +/* 0B0DF0 7F07C2C0 8FAC0048 */ lw $t4, 0x48($sp) +/* 0B0DF4 7F07C2C4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0DF8 7F07C2C8 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_800799FC) +/* 0B0DFC 7F07C2CC C5860004 */ lwc1 $f6, 4($t4) +/* 0B0E00 7F07C2D0 46060200 */ add.s $f8, $f0, $f6 +/* 0B0E04 7F07C2D4 E7080004 */ swc1 $f8, 4($t8) +/* 0B0E08 7F07C2D8 8DAD99FC */ lw $t5, %lo(dword_CODE_bss_800799FC)($t5) +/* 0B0E0C 7F07C2DC 0FC15FA8 */ jal cosf +/* 0B0E10 7F07C2E0 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0B0E14 7F07C2E4 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_800799FC) +/* 0B0E18 7F07C2E8 8DCE99FC */ lw $t6, %lo(dword_CODE_bss_800799FC)($t6) +/* 0B0E1C 7F07C2EC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0E20 7F07C2F0 0FC15FA8 */ jal cosf +/* 0B0E24 7F07C2F4 C5CC0010 */ lwc1 $f12, 0x10($t6) +/* 0B0E28 7F07C2F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0E2C 7F07C2FC 8FB90048 */ lw $t9, 0x48($sp) +/* 0B0E30 7F07C300 8FAF004C */ lw $t7, 0x4c($sp) +/* 0B0E34 7F07C304 46040182 */ mul.s $f6, $f0, $f4 +/* 0B0E38 7F07C308 C72A0008 */ lwc1 $f10, 8($t9) +/* 0B0E3C 7F07C30C 46065201 */ sub.s $f8, $f10, $f6 +/* 0B0E40 7F07C310 10000087 */ b .L7F07C530 +/* 0B0E44 7F07C314 E5E80008 */ swc1 $f8, 8($t7) +.L7F07C318: +/* 0B0E48 7F07C318 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079A14) +/* 0B0E4C 7F07C31C 8C429A14 */ lw $v0, %lo(dword_CODE_bss_80079A14)($v0) +/* 0B0E50 7F07C320 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 0B0E54 7F07C324 8FAF0054 */ lw $t7, 0x54($sp) +/* 0B0E58 7F07C328 28412710 */ slti $at, $v0, 0x2710 +/* 0B0E5C 7F07C32C 1020000A */ beqz $at, .L7F07C358 +/* 0B0E60 7F07C330 00026900 */ sll $t5, $v0, 4 +/* 0B0E64 7F07C334 00026080 */ sll $t4, $v0, 2 +/* 0B0E68 7F07C338 01826023 */ subu $t4, $t4, $v0 +/* 0B0E6C 7F07C33C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E70 7F07C340 3C188007 */ lui $t8, %hi(ptr_0xxxpresets) +/* 0B0E74 7F07C344 8F185D18 */ lw $t8, %lo(ptr_0xxxpresets)($t8) +/* 0B0E78 7F07C348 01826023 */ subu $t4, $t4, $v0 +/* 0B0E7C 7F07C34C 000C6080 */ sll $t4, $t4, 2 +/* 0B0E80 7F07C350 10000008 */ b .L7F07C374 +/* 0B0E84 7F07C354 01982021 */ addu $a0, $t4, $t8 +.L7F07C358: +/* 0B0E88 7F07C358 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 0B0E8C 7F07C35C 01A26821 */ addu $t5, $t5, $v0 +/* 0B0E90 7F07C360 000D6880 */ sll $t5, $t5, 2 +/* 0B0E94 7F07C364 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 0B0E98 7F07C368 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 0B0E9C 7F07C36C 01AE2021 */ addu $a0, $t5, $t6 +/* 0B0EA0 7F07C370 00812021 */ addu $a0, $a0, $at +.L7F07C374: +/* 0B0EA4 7F07C374 8C990028 */ lw $t9, 0x28($a0) +/* 0B0EA8 7F07C378 8FA30058 */ lw $v1, 0x58($sp) +/* 0B0EAC 7F07C37C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EB0 7F07C380 ADF90000 */ sw $t9, ($t7) +/* 0B0EB4 7F07C384 C4840000 */ lwc1 $f4, ($a0) +/* 0B0EB8 7F07C388 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EBC 7F07C38C E4640000 */ swc1 $f4, ($v1) +/* 0B0EC0 7F07C390 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0EC4 7F07C394 E46A0004 */ swc1 $f10, 4($v1) +/* 0B0EC8 7F07C398 C4860008 */ lwc1 $f6, 8($a0) +/* 0B0ECC 7F07C39C E4660008 */ swc1 $f6, 8($v1) +/* 0B0ED0 7F07C3A0 AFA40020 */ sw $a0, 0x20($sp) +/* 0B0ED4 7F07C3A4 0FC15FA8 */ jal cosf +/* 0B0ED8 7F07C3A8 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0EDC 7F07C3AC 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0EE0 7F07C3B0 8FAC004C */ lw $t4, 0x4c($sp) +/* 0B0EE4 7F07C3B4 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0EE8 7F07C3B8 C4880000 */ lwc1 $f8, ($a0) +/* 0B0EEC 7F07C3BC 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0EF0 7F07C3C0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0EF4 7F07C3C4 E5880000 */ swc1 $f8, ($t4) +/* 0B0EF8 7F07C3C8 C42A9A10 */ lwc1 $f10, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0EFC 7F07C3CC C4840004 */ lwc1 $f4, 4($a0) +/* 0B0F00 7F07C3D0 460A2180 */ add.s $f6, $f4, $f10 +/* 0B0F04 7F07C3D4 E5860004 */ swc1 $f6, 4($t4) +/* 0B0F08 7F07C3D8 0FC15FAB */ jal sinf +/* 0B0F0C 7F07C3DC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F10 7F07C3E0 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F14 7F07C3E4 8FB8004C */ lw $t8, 0x4c($sp) +/* 0B0F18 7F07C3E8 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F1C 7F07C3EC C4880008 */ lwc1 $f8, 8($a0) +/* 0B0F20 7F07C3F0 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F24 7F07C3F4 E7080008 */ swc1 $f8, 8($t8) +/* 0B0F28 7F07C3F8 0FC15FAB */ jal sinf +/* 0B0F2C 7F07C3FC C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F30 7F07C400 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F34 7F07C404 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F38 7F07C408 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F3C 7F07C40C 0FC15FA8 */ jal cosf +/* 0B0F40 7F07C410 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0F44 7F07C414 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0F48 7F07C418 C42A9A08 */ lwc1 $f10, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0F4C 7F07C41C C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0B0F50 7F07C420 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0F54 7F07C424 8FAD0048 */ lw $t5, 0x48($sp) +/* 0B0F58 7F07C428 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B0F5C 7F07C42C C4880000 */ lwc1 $f8, ($a0) +/* 0B0F60 7F07C430 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 0B0F64 7F07C434 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F68 7F07C438 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0F6C 7F07C43C 46064100 */ add.s $f4, $f8, $f6 +/* 0B0F70 7F07C440 E5A40000 */ swc1 $f4, ($t5) +/* 0B0F74 7F07C444 C4289A10 */ lwc1 $f8, %lo(flt_CODE_bss_80079A10)($at) +/* 0B0F78 7F07C448 C48A0004 */ lwc1 $f10, 4($a0) +/* 0B0F7C 7F07C44C 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 0B0F80 7F07C450 C4249A0C */ lwc1 $f4, %lo(flt_CODE_bss_80079A0C)($at) +/* 0B0F84 7F07C454 46085180 */ add.s $f6, $f10, $f8 +/* 0B0F88 7F07C458 46043280 */ add.s $f10, $f6, $f4 +/* 0B0F8C 7F07C45C E5AA0004 */ swc1 $f10, 4($t5) +/* 0B0F90 7F07C460 0FC15FA8 */ jal cosf +/* 0B0F94 7F07C464 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0F98 7F07C468 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0F9C 7F07C46C 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FA0 7F07C470 C44C0000 */ lwc1 $f12, ($v0) +/* 0B0FA4 7F07C474 0FC15FAB */ jal sinf +/* 0B0FA8 7F07C478 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0B0FAC 7F07C47C 3C018005 */ lui $at, %hi(D_8005505C) +/* 0B0FB0 7F07C480 C42C505C */ lwc1 $f12, %lo(D_8005505C)($at) +/* 0B0FB4 7F07C484 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 0B0FB8 7F07C488 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_80079A08)($at) +/* 0B0FBC 7F07C48C C7A8001C */ lwc1 $f8, 0x1c($sp) +/* 0B0FC0 7F07C490 8FA40020 */ lw $a0, 0x20($sp) +/* 0B0FC4 7F07C494 8FAE0048 */ lw $t6, 0x48($sp) +/* 0B0FC8 7F07C498 46064102 */ mul.s $f4, $f8, $f6 +/* 0B0FCC 7F07C49C C48A0008 */ lwc1 $f10, 8($a0) +/* 0B0FD0 7F07C4A0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 0B0FD4 7F07C4A4 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079A00) +/* 0B0FD8 7F07C4A8 24429A00 */ addiu $v0, %lo(flt_CODE_bss_80079A00) # addiu $v0, $v0, -0x6600 +/* 0B0FDC 7F07C4AC 44807000 */ mtc1 $zero, $f14 +/* 0B0FE0 7F07C4B0 46045200 */ add.s $f8, $f10, $f4 +/* 0B0FE4 7F07C4B4 E5C80008 */ swc1 $f8, 8($t6) +/* 0B0FE8 7F07C4B8 C4269A04 */ lwc1 $f6, %lo(flt_CODE_bss_80079A04)($at) +/* 0B0FEC 7F07C4BC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B0FF0 7F07C4C0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 0B0FF4 7F07C4C4 C4480000 */ lwc1 $f8, ($v0) +/* 0B0FF8 7F07C4C8 460A3102 */ mul.s $f4, $f6, $f10 +/* 0B0FFC 7F07C4CC 46044180 */ add.s $f6, $f8, $f4 +/* 0B1000 7F07C4D0 E4460000 */ swc1 $f6, ($v0) +/* 0B1004 7F07C4D4 C4420000 */ lwc1 $f2, ($v0) +/* 0B1008 7F07C4D8 4602603E */ c.le.s $f12, $f2 +/* 0B100C 7F07C4DC 00000000 */ nop +/* 0B1010 7F07C4E0 45020009 */ bc1fl .L7F07C508 +/* 0B1014 7F07C4E4 460E103C */ c.lt.s $f2, $f14 +/* 0B1018 7F07C4E8 460C1281 */ sub.s $f10, $f2, $f12 +.L7F07C4EC: +/* 0B101C 7F07C4EC E44A0000 */ swc1 $f10, ($v0) +/* 0B1020 7F07C4F0 C4420000 */ lwc1 $f2, ($v0) +/* 0B1024 7F07C4F4 4602603E */ c.le.s $f12, $f2 +/* 0B1028 7F07C4F8 00000000 */ nop +/* 0B102C 7F07C4FC 4503FFFB */ bc1tl .L7F07C4EC +/* 0B1030 7F07C500 460C1281 */ sub.s $f10, $f2, $f12 +/* 0B1034 7F07C504 460E103C */ c.lt.s $f2, $f14 +.L7F07C508: +/* 0B1038 7F07C508 00000000 */ nop +/* 0B103C 7F07C50C 45020009 */ bc1fl .L7F07C534 +/* 0B1040 7F07C510 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B1044 7F07C514 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C518: +/* 0B1048 7F07C518 E4480000 */ swc1 $f8, ($v0) +/* 0B104C 7F07C51C C4420000 */ lwc1 $f2, ($v0) +/* 0B1050 7F07C520 460E103C */ c.lt.s $f2, $f14 +/* 0B1054 7F07C524 00000000 */ nop +/* 0B1058 7F07C528 4503FFFB */ bc1tl .L7F07C518 +/* 0B105C 7F07C52C 460C1200 */ add.s $f8, $f2, $f12 +.L7F07C530: +/* 0B1060 7F07C530 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07C534: +/* 0B1064 7F07C534 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B1068 7F07C538 03E00008 */ jr $ra +/* 0B106C 7F07C53C 00000000 */ nop +) +#endif + + #endif @@ -9876,7 +11564,7 @@ glabel sub_GAME_7F07D960 .L7F07DD5C: /* 0B288C 7F07DD5C AFA30044 */ sw $v1, 0x44($sp) /* 0B2890 7F07DD60 AFA4003C */ sw $a0, 0x3c($sp) -/* 0B2894 7F07DD64 0C002914 */ jal get_random_value +/* 0B2894 7F07DD64 0C002914 */ jal randomGetNext /* 0B2898 7F07DD68 AFA80048 */ sw $t0, 0x48($sp) /* 0B289C 7F07DD6C 8FA4003C */ lw $a0, 0x3c($sp) /* 0B28A0 7F07DD70 86060006 */ lh $a2, 6($s0) @@ -10628,7 +12316,7 @@ void sub_GAME_7F07E62C(void) { } // Node 9 set_cur_player_fovy(pPlayer->field_11C4, &pPlayer); - return setvideo_far(pPlayer->field_11C4, &pPlayer); + return viSetFovY(pPlayer->field_11C4, &pPlayer); } #else @@ -10705,7 +12393,7 @@ glabel sub_GAME_7F07E62C /* 0B324C 7F07E71C 3C048008 */ lui $a0, %hi(pPlayer) /* 0B3250 7F07E720 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 /* 0B3254 7F07E724 8C990000 */ lw $t9, ($a0) -/* 0B3258 7F07E728 0C001151 */ jal setvideo_far +/* 0B3258 7F07E728 0C001151 */ jal viSetFovY /* 0B325C 7F07E72C C72C11C4 */ lwc1 $f12, 0x11c4($t9) /* 0B3260 7F07E730 8FBF0014 */ lw $ra, 0x14($sp) /* 0B3264 7F07E734 27BD0018 */ addiu $sp, $sp, 0x18 @@ -10781,7 +12469,7 @@ glabel sub_GAME_7F07E62C /* 0B3898 7F07ED28 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 /* 0B389C 7F07ED2C 2484A120 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5ee0 /* 0B38A0 7F07ED30 8C8F0000 */ lw $t7, ($a0) -/* 0B38A4 7F07ED34 0C001151 */ jal setvideo_far +/* 0B38A4 7F07ED34 0C001151 */ jal viSetFovY /* 0B38A8 7F07ED38 C5EC11C4 */ lwc1 $f12, 0x11c4($t7) /* 0B38AC 7F07ED3C 8FBF0014 */ lw $ra, 0x14($sp) /* 0B38B0 7F07ED40 27BD0018 */ addiu $sp, $sp, 0x18 @@ -10790,6 +12478,89 @@ glabel sub_GAME_7F07E62C ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F07E62C +/* 0B315C 7F07E62C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3160 7F07E630 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3164 7F07E634 8C820000 */ lw $v0, ($a0) +/* 0B3168 7F07E638 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B316C 7F07E63C AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3170 7F07E640 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3174 7F07E644 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B3178 7F07E648 4600603C */ c.lt.s $f12, $f0 +/* 0B317C 7F07E64C 00000000 */ nop +/* 0B3180 7F07E650 4502002C */ bc1fl .L7F07E704 +/* 0B3184 7F07E654 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3188 7F07E658 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0B318C 7F07E65C 24010005 */ li $at, 5 +/* 0B3190 7F07E660 3C0E8005 */ lui $t6, %hi(D_80048498) +/* 0B3194 7F07E664 10610003 */ beq $v1, $at, .L7F07E674 +/* 0B3198 7F07E668 2401000C */ li $at, 12 +/* 0B319C 7F07E66C 14610008 */ bne $v1, $at, .L7F07E690 +/* 0B31A0 7F07E670 3C0F8005 */ lui $t7, %hi(D_80048498) +.L7F07E674: +/* 0B31A4 7F07E674 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) +/* 0B31A8 7F07E678 448E2000 */ mtc1 $t6, $f4 +/* 0B31AC 7F07E67C 00000000 */ nop +/* 0B31B0 7F07E680 468021A0 */ cvt.s.w $f6, $f4 +/* 0B31B4 7F07E684 46066200 */ add.s $f8, $f12, $f6 +/* 0B31B8 7F07E688 1000000A */ b .L7F07E6B4 +/* 0B31BC 7F07E68C E44811BC */ swc1 $f8, 0x11bc($v0) +.L7F07E690: +/* 0B31C0 7F07E690 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0B31C4 7F07E694 3C018003 */ lui $at, %hi(watch_transition_time) +/* 0B31C8 7F07E698 C43265A8 */ lwc1 $f18, %lo(watch_transition_time)($at) +/* 0B31CC 7F07E69C 448F5000 */ mtc1 $t7, $f10 +/* 0B31D0 7F07E6A0 00000000 */ nop +/* 0B31D4 7F07E6A4 46805420 */ cvt.s.w $f16, $f10 +/* 0B31D8 7F07E6A8 46128102 */ mul.s $f4, $f16, $f18 +/* 0B31DC 7F07E6AC 46046180 */ add.s $f6, $f12, $f4 +/* 0B31E0 7F07E6B0 E44611BC */ swc1 $f6, 0x11bc($v0) +.L7F07E6B4: +/* 0B31E4 7F07E6B4 8C820000 */ lw $v0, ($a0) +/* 0B31E8 7F07E6B8 C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B31EC 7F07E6BC C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B31F0 7F07E6C0 460C003C */ c.lt.s $f0, $f12 +/* 0B31F4 7F07E6C4 00000000 */ nop +/* 0B31F8 7F07E6C8 45020006 */ bc1fl .L7F07E6E4 +/* 0B31FC 7F07E6CC C44211C8 */ lwc1 $f2, 0x11c8($v0) +/* 0B3200 7F07E6D0 E44011BC */ swc1 $f0, 0x11bc($v0) +/* 0B3204 7F07E6D4 8C820000 */ lw $v0, ($a0) +/* 0B3208 7F07E6D8 C44C11BC */ lwc1 $f12, 0x11bc($v0) +/* 0B320C 7F07E6DC C44011C0 */ lwc1 $f0, 0x11c0($v0) +/* 0B3210 7F07E6E0 C44211C8 */ lwc1 $f2, 0x11c8($v0) +.L7F07E6E4: +/* 0B3214 7F07E6E4 C44811CC */ lwc1 $f8, 0x11cc($v0) +/* 0B3218 7F07E6E8 46024281 */ sub.s $f10, $f8, $f2 +/* 0B321C 7F07E6EC 460A6402 */ mul.s $f16, $f12, $f10 +/* 0B3220 7F07E6F0 46008483 */ div.s $f18, $f16, $f0 +/* 0B3224 7F07E6F4 46121100 */ add.s $f4, $f2, $f18 +/* 0B3228 7F07E6F8 10000005 */ b .L7F07E710 +/* 0B322C 7F07E6FC E44411C4 */ swc1 $f4, 0x11c4($v0) +/* 0B3230 7F07E700 E44011BC */ swc1 $f0, 0x11bc($v0) +.L7F07E704: +/* 0B3234 7F07E704 8C820000 */ lw $v0, ($a0) +/* 0B3238 7F07E708 C44611CC */ lwc1 $f6, 0x11cc($v0) +/* 0B323C 7F07E70C E44611C4 */ swc1 $f6, 0x11c4($v0) +.L7F07E710: +/* 0B3240 7F07E710 8C980000 */ lw $t8, ($a0) +/* 0B3244 7F07E714 0FC26C85 */ jal set_cur_player_fovy +/* 0B3248 7F07E718 C70C11C4 */ lwc1 $f12, 0x11c4($t8) +/* 0B324C 7F07E71C 3C048008 */ lui $a0, %hi(pPlayer) +/* 0B3250 7F07E720 2484A0B0 */ addiu $a0, %lo(pPlayer) # addiu $a0, $a0, -0x5f50 +/* 0B3254 7F07E724 8C990000 */ lw $t9, ($a0) +/* 0B3258 7F07E728 0C001151 */ jal viSetFovY +/* 0B325C 7F07E72C C72C11C4 */ lwc1 $f12, 0x11c4($t9) +/* 0B3260 7F07E730 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B3264 7F07E734 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B3268 7F07E738 03E00008 */ jr $ra +/* 0B326C 7F07E73C 00000000 */ nop +) +#endif + + #endif @@ -11656,12 +13427,12 @@ glabel sub_GAME_7F07EC54 /* 0B3BB4 7F07F084 1701000B */ bne $t8, $at, .L7F07F0B4 /* 0B3BB8 7F07F088 00000000 */ nop /* 0B3BBC 7F07F08C 8C79021C */ lw $t9, 0x21c($v1) -/* 0B3BC0 7F07F090 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3BC0 7F07F090 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0B3BC4 7F07F094 240500ED */ li $a1, 237 /* 0B3BC8 7F07F098 13200006 */ beqz $t9, .L7F07F0B4 /* 0B3BCC 7F07F09C 00003025 */ move $a2, $zero /* 0B3BD0 7F07F0A0 0C002382 */ jal play_sfx_a1 -/* 0B3BD4 7F07F0A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3BD4 7F07F0A4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0B3BD8 7F07F0A8 3C088008 */ lui $t0, %hi(pPlayer) /* 0B3BDC 7F07F0AC 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) /* 0B3BE0 7F07F0B0 AD00021C */ sw $zero, 0x21c($t0) @@ -11734,14 +13505,14 @@ glabel sub_GAME_7F07EC54 /* 0B3CD4 7F07F1A4 AC6C01C8 */ sw $t4, 0x1c8($v1) /* 0B3CD8 7F07F1A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) /* 0B3CDC 7F07F1AC 3C0F8008 */ lui $t7, %hi(pPlayer) -/* 0B3CE0 7F07F1B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3CE0 7F07F1B0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0B3CE4 7F07F1B4 ADCD01C0 */ sw $t5, 0x1c0($t6) /* 0B3CE8 7F07F1B8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) /* 0B3CEC 7F07F1BC 240500EE */ li $a1, 238 /* 0B3CF0 7F07F1C0 00003025 */ move $a2, $zero /* 0B3CF4 7F07F1C4 ADE001C4 */ sw $zero, 0x1c4($t7) /* 0B3CF8 7F07F1C8 0C002382 */ jal play_sfx_a1 -/* 0B3CFC 7F07F1CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3CFC 7F07F1CC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0B3D00 7F07F1D0 3C038008 */ lui $v1, %hi(pPlayer) /* 0B3D04 7F07F1D4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) .L7F07F1D8: @@ -12493,12 +14264,12 @@ glabel sub_GAME_7F07EC54 /* 0B4204 7F07F694 1501000B */ bne $t0, $at, .Ljp7F07F6C4 /* 0B4208 7F07F698 00000000 */ nop /* 0B420C 7F07F69C 8C69021C */ lw $t1, 0x21c($v1) -/* 0B4210 7F07F6A0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4210 7F07F6A0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 0B4214 7F07F6A4 240500ED */ li $a1, 237 /* 0B4218 7F07F6A8 11200006 */ beqz $t1, .Ljp7F07F6C4 /* 0B421C 7F07F6AC 00003025 */ move $a2, $zero /* 0B4220 7F07F6B0 0C002386 */ jal play_sfx_a1 -/* 0B4224 7F07F6B4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B4224 7F07F6B4 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0B4228 7F07F6B8 3C0A8008 */ lui $t2, %hi(pPlayer) # $t2, 0x8008 /* 0B422C 7F07F6BC 8D4AA120 */ lw $t2, %lo(pPlayer)($t2) /* 0B4230 7F07F6C0 AD40021C */ sw $zero, 0x21c($t2) @@ -12571,14 +14342,14 @@ glabel sub_GAME_7F07EC54 /* 0B4324 7F07F7B4 AC6E01C8 */ sw $t6, 0x1c8($v1) /* 0B4328 7F07F7B8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) /* 0B432C 7F07F7BC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 0B4330 7F07F7C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0B4330 7F07F7C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 0B4334 7F07F7C4 AF0F01C0 */ sw $t7, 0x1c0($t8) /* 0B4338 7F07F7C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) /* 0B433C 7F07F7CC 240500EE */ li $a1, 238 /* 0B4340 7F07F7D0 00003025 */ move $a2, $zero /* 0B4344 7F07F7D4 AF2001C4 */ sw $zero, 0x1c4($t9) /* 0B4348 7F07F7D8 0C002386 */ jal play_sfx_a1 -/* 0B434C 7F07F7DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B434C 7F07F7DC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0B4350 7F07F7E0 3C038008 */ lui $v1, %hi(pPlayer) # $v1, 0x8008 /* 0B4354 7F07F7E4 8C63A120 */ lw $v1, %lo(pPlayer)($v1) .Ljp7F07F7E8: @@ -13033,6 +14804,842 @@ glabel sub_GAME_7F07EC54 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F07EC54 +/* 0B3784 7F07EC54 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3788 7F07EC58 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B378C 7F07EC5C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0B3790 7F07EC60 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B3794 7F07EC64 8DC201C8 */ lw $v0, 0x1c8($t6) +/* 0B3798 7F07EC68 504002E8 */ beql $v0, $zero, .L7F07F80C +/* 0B379C 7F07EC6C 24010005 */ li $at, 5 +/* 0B37A0 7F07EC70 0FC17674 */ jal get_item_in_hand +/* 0B37A4 7F07EC74 00002025 */ move $a0, $zero +/* 0B37A8 7F07EC78 3843001E */ xori $v1, $v0, 0x1e +/* 0B37AC 7F07EC7C 2C630001 */ sltiu $v1, $v1, 1 +/* 0B37B0 7F07EC80 14600006 */ bnez $v1, .L7F07EC9C +/* 0B37B4 7F07EC84 AFA3001C */ sw $v1, 0x1c($sp) +/* 0B37B8 7F07EC88 0FC17674 */ jal get_item_in_hand +/* 0B37BC 7F07EC8C 00002025 */ move $a0, $zero +/* 0B37C0 7F07EC90 384F0017 */ xori $t7, $v0, 0x17 +/* 0B37C4 7F07EC94 2DEF0001 */ sltiu $t7, $t7, 1 +/* 0B37C8 7F07EC98 AFAF001C */ sw $t7, 0x1c($sp) +.L7F07EC9C: +/* 0B37CC 7F07EC9C 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B37D0 7F07ECA0 24050011 */ li $a1, 17 +/* 0B37D4 7F07ECA4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B37D8 7F07ECA8 13000002 */ beqz $t8, .L7F07ECB4 +/* 0B37DC 7F07ECAC AFB8003C */ sw $t8, 0x3c($sp) +/* 0B37E0 7F07ECB0 24050023 */ li $a1, 35 +.L7F07ECB4: +/* 0B37E4 7F07ECB4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B37E8 7F07ECB8 3C088005 */ lui $t0, %hi(clock_timer) +/* 0B37EC 7F07ECBC 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 0B37F0 7F07ECC0 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B37F4 7F07ECC4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B37F8 7F07ECC8 24010001 */ li $at, 1 +/* 0B37FC 7F07ECCC 03284821 */ addu $t1, $t9, $t0 +/* 0B3800 7F07ECD0 AC6901C4 */ sw $t1, 0x1c4($v1) +/* 0B3804 7F07ECD4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3808 7F07ECD8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B380C 7F07ECDC 8C6A01C0 */ lw $t2, 0x1c0($v1) +/* 0B3810 7F07ECE0 254B0001 */ addiu $t3, $t2, 1 +/* 0B3814 7F07ECE4 AC6B01C0 */ sw $t3, 0x1c0($v1) +/* 0B3818 7F07ECE8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B381C 7F07ECEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3820 7F07ECF0 AD800200 */ sw $zero, 0x200($t4) +/* 0B3824 7F07ECF4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3828 7F07ECF8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B382C 7F07ECFC 15A1003A */ bne $t5, $at, .L7F07EDE8 +/* 0B3830 7F07ED00 00000000 */ nop +/* 0B3834 7F07ED04 AC600200 */ sw $zero, 0x200($v1) +/* 0B3838 7F07ED08 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B383C 7F07ED0C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3840 7F07ED10 24010001 */ li $at, 1 +/* 0B3844 7F07ED14 24040001 */ li $a0, 1 +/* 0B3848 7F07ED18 8DC201C0 */ lw $v0, 0x1c0($t6) +/* 0B384C 7F07ED1C 54410006 */ bnel $v0, $at, .L7F07ED38 +/* 0B3850 7F07ED20 24010002 */ li $at, 2 +/* 0B3854 7F07ED24 0FC17680 */ jal draw_item_in_hand +/* 0B3858 7F07ED28 24050054 */ li $a1, 84 +/* 0B385C 7F07ED2C 1000002E */ b .L7F07EDE8 +/* 0B3860 7F07ED30 00000000 */ nop +/* 0B3864 7F07ED34 24010002 */ li $at, 2 +.L7F07ED38: +/* 0B3868 7F07ED38 14410009 */ bne $v0, $at, .L7F07ED60 +/* 0B386C 7F07ED3C 24040001 */ li $a0, 1 +/* 0B3870 7F07ED40 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3874 7F07ED44 00002025 */ move $a0, $zero +/* 0B3878 7F07ED48 11E00027 */ beqz $t7, .L7F07EDE8 +/* 0B387C 7F07ED4C 00000000 */ nop +/* 0B3880 7F07ED50 0FC17680 */ jal draw_item_in_hand +/* 0B3884 7F07ED54 00002825 */ move $a1, $zero +/* 0B3888 7F07ED58 10000023 */ b .L7F07EDE8 +/* 0B388C 7F07ED5C 00000000 */ nop +.L7F07ED60: +/* 0B3890 7F07ED60 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3894 7F07ED64 AFA50038 */ sw $a1, 0x38($sp) +/* 0B3898 7F07ED68 24010054 */ li $at, 84 +/* 0B389C 7F07ED6C 1441001E */ bne $v0, $at, .L7F07EDE8 +/* 0B38A0 7F07ED70 00000000 */ nop +/* 0B38A4 7F07ED74 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38A8 7F07ED78 24040001 */ li $a0, 1 +/* 0B38AC 7F07ED7C 1040001A */ beqz $v0, .L7F07EDE8 +/* 0B38B0 7F07ED80 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B38B4 7F07ED84 13000008 */ beqz $t8, .L7F07EDA8 +/* 0B38B8 7F07ED88 00000000 */ nop +/* 0B38BC 7F07ED8C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B38C0 7F07ED90 00002025 */ move $a0, $zero +/* 0B38C4 7F07ED94 14400014 */ bnez $v0, .L7F07EDE8 +/* 0B38C8 7F07ED98 00000000 */ nop +/* 0B38CC 7F07ED9C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B38D0 7F07EDA0 00002025 */ move $a0, $zero +/* 0B38D4 7F07EDA4 10400010 */ beqz $v0, .L7F07EDE8 +.L7F07EDA8: +/* 0B38D8 7F07EDA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B38DC 7F07EDAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B38E0 7F07EDB0 8FA80038 */ lw $t0, 0x38($sp) +/* 0B38E4 7F07EDB4 24090002 */ li $t1, 2 +/* 0B38E8 7F07EDB8 8C7901C4 */ lw $t9, 0x1c4($v1) +/* 0B38EC 7F07EDBC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B38F0 7F07EDC0 0328082A */ slt $at, $t9, $t0 +/* 0B38F4 7F07EDC4 14200008 */ bnez $at, .L7F07EDE8 +/* 0B38F8 7F07EDC8 00000000 */ nop +/* 0B38FC 7F07EDCC AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3900 7F07EDD0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3904 7F07EDD4 240A0001 */ li $t2, 1 +/* 0B3908 7F07EDD8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B390C 7F07EDDC AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3910 7F07EDE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3914 7F07EDE4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07EDE8: +/* 0B3918 7F07EDE8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B391C 7F07EDEC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3920 7F07EDF0 24010002 */ li $at, 2 +/* 0B3924 7F07EDF4 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B3928 7F07EDF8 55A10043 */ bnel $t5, $at, .L7F07EF08 +/* 0B392C 7F07EDFC 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3930 7F07EE00 AC600200 */ sw $zero, 0x200($v1) +/* 0B3934 7F07EE04 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3938 7F07EE08 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B393C 7F07EE0C 24010001 */ li $at, 1 +/* 0B3940 7F07EE10 24040008 */ li $a0, 8 +/* 0B3944 7F07EE14 8C6E01C0 */ lw $t6, 0x1c0($v1) +/* 0B3948 7F07EE18 55C10026 */ bnel $t6, $at, .L7F07EEB4 +/* 0B394C 7F07EE1C C4640214 */ lwc1 $f4, 0x214($v1) +/* 0B3950 7F07EE20 0FC1A96A */ jal set_unset_bitflags +/* 0B3954 7F07EE24 00002825 */ move $a1, $zero +/* 0B3958 7F07EE28 24040004 */ li $a0, 4 +/* 0B395C 7F07EE2C 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B3960 7F07EE30 00002825 */ move $a1, $zero +/* 0B3964 7F07EE34 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B3968 7F07EE38 24040001 */ li $a0, 1 +/* 0B396C 7F07EE3C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B3970 7F07EE40 24040001 */ li $a0, 1 +/* 0B3974 7F07EE44 24040004 */ li $a0, 4 +/* 0B3978 7F07EE48 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B397C 7F07EE4C 00002825 */ move $a1, $zero +/* 0B3980 7F07EE50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3984 7F07EE54 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3988 7F07EE58 24010002 */ li $at, 2 +/* 0B398C 7F07EE5C 8C640218 */ lw $a0, 0x218($v1) +/* 0B3990 7F07EE60 10800005 */ beqz $a0, .L7F07EE78 +/* 0B3994 7F07EE64 00000000 */ nop +/* 0B3998 7F07EE68 10810003 */ beq $a0, $at, .L7F07EE78 +/* 0B399C 7F07EE6C 24010003 */ li $at, 3 +/* 0B39A0 7F07EE70 54810010 */ bnel $a0, $at, .L7F07EEB4 +/* 0B39A4 7F07EE74 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EE78: +/* 0B39A8 7F07EE78 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B39AC 7F07EE7C 24040001 */ li $a0, 1 +/* 0B39B0 7F07EE80 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39B4 7F07EE84 44811000 */ mtc1 $at, $f2 +/* 0B39B8 7F07EE88 46000306 */ mov.s $f12, $f0 +/* 0B39BC 7F07EE8C 4602003C */ c.lt.s $f0, $f2 +/* 0B39C0 7F07EE90 00000000 */ nop +/* 0B39C4 7F07EE94 45000002 */ bc1f .L7F07EEA0 +/* 0B39C8 7F07EE98 00000000 */ nop +/* 0B39CC 7F07EE9C 46001306 */ mov.s $f12, $f2 +.L7F07EEA0: +/* 0B39D0 7F07EEA0 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B39D4 7F07EEA4 00000000 */ nop +/* 0B39D8 7F07EEA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B39DC 7F07EEAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B39E0 7F07EEB0 C4640214 */ lwc1 $f4, 0x214($v1) +.L7F07EEB4: +/* 0B39E4 7F07EEB4 C4660210 */ lwc1 $f6, 0x210($v1) +/* 0B39E8 7F07EEB8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0B39EC 7F07EEBC 44815000 */ mtc1 $at, $f10 +/* 0B39F0 7F07EEC0 46062201 */ sub.s $f8, $f4, $f6 +/* 0B39F4 7F07EEC4 240F0003 */ li $t7, 3 +/* 0B39F8 7F07EEC8 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B39FC 7F07EECC 460A403C */ c.lt.s $f8, $f10 +/* 0B3A00 7F07EED0 00000000 */ nop +/* 0B3A04 7F07EED4 4502000C */ bc1fl .L7F07EF08 +/* 0B3A08 7F07EED8 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3A0C 7F07EEDC AC6F01C8 */ sw $t7, 0x1c8($v1) +/* 0B3A10 7F07EEE0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3A14 7F07EEE4 24180001 */ li $t8, 1 +/* 0B3A18 7F07EEE8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3A1C 7F07EEEC AF3801C0 */ sw $t8, 0x1c0($t9) +/* 0B3A20 7F07EEF0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3A24 7F07EEF4 0FC1F9F3 */ jal sub_GAME_7F07E7CC +/* 0B3A28 7F07EEF8 AD0001C4 */ sw $zero, 0x1c4($t0) +/* 0B3A2C 7F07EEFC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3A30 7F07EF00 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3A34 7F07EF04 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07EF08: +/* 0B3A38 7F07EF08 24010003 */ li $at, 3 +/* 0B3A3C 7F07EF0C 54410059 */ bnel $v0, $at, .L7F07F074 +/* 0B3A40 7F07EF10 24010004 */ li $at, 4 +/* 0B3A44 7F07EF14 8C6901C0 */ lw $t1, 0x1c0($v1) +/* 0B3A48 7F07EF18 24010001 */ li $at, 1 +/* 0B3A4C 7F07EF1C 55210036 */ bnel $t1, $at, .L7F07EFF8 +/* 0B3A50 7F07EF20 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A54 7F07EF24 8C620220 */ lw $v0, 0x220($v1) +/* 0B3A58 7F07EF28 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A5C 7F07EF2C 44817000 */ mtc1 $at, $f14 +/* 0B3A60 7F07EF30 1040000D */ beqz $v0, .L7F07EF68 +/* 0B3A64 7F07EF34 8C640218 */ lw $a0, 0x218($v1) +/* 0B3A68 7F07EF38 24010003 */ li $at, 3 +/* 0B3A6C 7F07EF3C 1041000A */ beq $v0, $at, .L7F07EF68 +/* 0B3A70 7F07EF40 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A74 7F07EF44 44818000 */ mtc1 $at, $f16 +/* 0B3A78 7F07EF48 C4720258 */ lwc1 $f18, 0x258($v1) +/* 0B3A7C 7F07EF4C 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3A80 7F07EF50 44813000 */ mtc1 $at, $f6 +/* 0B3A84 7F07EF54 46128101 */ sub.s $f4, $f16, $f18 +/* 0B3A88 7F07EF58 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3A8C 7F07EF5C 44815000 */ mtc1 $at, $f10 +/* 0B3A90 7F07EF60 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3A94 7F07EF64 460A4383 */ div.s $f14, $f8, $f10 +.L7F07EF68: +/* 0B3A98 7F07EF68 10800004 */ beqz $a0, .L7F07EF7C +/* 0B3A9C 7F07EF6C 24010002 */ li $at, 2 +/* 0B3AA0 7F07EF70 10810002 */ beq $a0, $at, .L7F07EF7C +/* 0B3AA4 7F07EF74 24010003 */ li $at, 3 +/* 0B3AA8 7F07EF78 1481001A */ bne $a0, $at, .L7F07EFE4 +.L7F07EF7C: +/* 0B3AAC 7F07EF7C 24040001 */ li $a0, 1 +/* 0B3AB0 7F07EF80 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3AB4 7F07EF84 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AB8 7F07EF88 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3ABC 7F07EF8C C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AC0 7F07EF90 44818000 */ mtc1 $at, $f16 +/* 0B3AC4 7F07EF94 46000306 */ mov.s $f12, $f0 +/* 0B3AC8 7F07EF98 46107081 */ sub.s $f2, $f14, $f16 +/* 0B3ACC 7F07EF9C 4602003C */ c.lt.s $f0, $f2 +/* 0B3AD0 7F07EFA0 00000000 */ nop +/* 0B3AD4 7F07EFA4 45020003 */ bc1fl .L7F07EFB4 +/* 0B3AD8 7F07EFA8 E7AC002C */ swc1 $f12, 0x2c($sp) +/* 0B3ADC 7F07EFAC 46001306 */ mov.s $f12, $f2 +/* 0B3AE0 7F07EFB0 E7AC002C */ swc1 $f12, 0x2c($sp) +.L7F07EFB4: +/* 0B3AE4 7F07EFB4 0FC1F804 */ jal sub_GAME_7F07E010 +/* 0B3AE8 7F07EFB8 E7AE0030 */ swc1 $f14, 0x30($sp) +/* 0B3AEC 7F07EFBC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0B3AF0 7F07EFC0 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 0B3AF4 7F07EFC4 44819000 */ mtc1 $at, $f18 +/* 0B3AF8 7F07EFC8 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 0B3AFC 7F07EFCC 46126000 */ add.s $f0, $f12, $f18 +/* 0B3B00 7F07EFD0 4600703C */ c.lt.s $f14, $f0 +/* 0B3B04 7F07EFD4 00000000 */ nop +/* 0B3B08 7F07EFD8 45000002 */ bc1f .L7F07EFE4 +/* 0B3B0C 7F07EFDC 00000000 */ nop +/* 0B3B10 7F07EFE0 46000386 */ mov.s $f14, $f0 +.L7F07EFE4: +/* 0B3B14 7F07EFE4 0FC1FA2C */ jal sub_GAME_7F07E8B0 +/* 0B3B18 7F07EFE8 46007306 */ mov.s $f12, $f14 +/* 0B3B1C 7F07EFEC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B20 7F07EFF0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B24 7F07EFF4 8C620220 */ lw $v0, 0x220($v1) +.L7F07EFF8: +/* 0B3B28 7F07EFF8 24010003 */ li $at, 3 +/* 0B3B2C 7F07EFFC 10400003 */ beqz $v0, .L7F07F00C +/* 0B3B30 7F07F000 00000000 */ nop +/* 0B3B34 7F07F004 54410008 */ bnel $v0, $at, .L7F07F028 +/* 0B3B38 7F07F008 240A0001 */ li $t2, 1 +.L7F07F00C: +/* 0B3B3C 7F07F00C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3B40 7F07F010 00000000 */ nop +/* 0B3B44 7F07F014 10400009 */ beqz $v0, .L7F07F03C +/* 0B3B48 7F07F018 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3B4C 7F07F01C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B50 7F07F020 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B54 7F07F024 240A0001 */ li $t2, 1 +.L7F07F028: +/* 0B3B58 7F07F028 AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3B5C 7F07F02C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B60 7F07F030 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B64 7F07F034 1000000E */ b .L7F07F070 +/* 0B3B68 7F07F038 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F03C: +/* 0B3B6C 7F07F03C 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3B70 7F07F040 240B0004 */ li $t3, 4 +/* 0B3B74 7F07F044 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3B78 7F07F048 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3B7C 7F07F04C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3B80 7F07F050 240D0001 */ li $t5, 1 +/* 0B3B84 7F07F054 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3B88 7F07F058 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3B8C 7F07F05C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3B90 7F07F060 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3B94 7F07F064 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3B98 7F07F068 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3B9C 7F07F06C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F070: +/* 0B3BA0 7F07F070 24010004 */ li $at, 4 +.L7F07F074: +/* 0B3BA4 7F07F074 5441002F */ bnel $v0, $at, .L7F07F134 +/* 0B3BA8 7F07F078 24010005 */ li $at, 5 +/* 0B3BAC 7F07F07C 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3BB0 7F07F080 24010001 */ li $at, 1 +/* 0B3BB4 7F07F084 1701000B */ bne $t8, $at, .L7F07F0B4 +/* 0B3BB8 7F07F088 00000000 */ nop +/* 0B3BBC 7F07F08C 8C79021C */ lw $t9, 0x21c($v1) +/* 0B3BC0 7F07F090 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3BC4 7F07F094 240500ED */ li $a1, 237 +/* 0B3BC8 7F07F098 13200006 */ beqz $t9, .L7F07F0B4 +/* 0B3BCC 7F07F09C 00003025 */ move $a2, $zero +/* 0B3BD0 7F07F0A0 0C002382 */ jal play_sfx_a1 +/* 0B3BD4 7F07F0A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3BD8 7F07F0A8 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B3BDC 7F07F0AC 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B3BE0 7F07F0B0 AD00021C */ sw $zero, 0x21c($t0) +.L7F07F0B4: +/* 0B3BE4 7F07F0B4 0FC1F94B */ jal zoom_to_watch_on_open +/* 0B3BE8 7F07F0B8 00000000 */ nop +/* 0B3BEC 7F07F0BC 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3BF0 7F07F0C0 00000000 */ nop +/* 0B3BF4 7F07F0C4 10400009 */ beqz $v0, .L7F07F0EC +/* 0B3BF8 7F07F0C8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3BFC 7F07F0CC 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B3C00 7F07F0D0 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B3C04 7F07F0D4 24090001 */ li $t1, 1 +/* 0B3C08 7F07F0D8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C0C 7F07F0DC AD490200 */ sw $t1, 0x200($t2) +/* 0B3C10 7F07F0E0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C14 7F07F0E4 10000012 */ b .L7F07F130 +/* 0B3C18 7F07F0E8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F0EC: +/* 0B3C1C 7F07F0EC 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3C20 7F07F0F0 240B0005 */ li $t3, 5 +/* 0B3C24 7F07F0F4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3C28 7F07F0F8 AD8B01C8 */ sw $t3, 0x1c8($t4) +/* 0B3C2C 7F07F0FC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3C30 7F07F100 240D0001 */ li $t5, 1 +/* 0B3C34 7F07F104 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3C38 7F07F108 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3C3C 7F07F10C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3C40 7F07F110 3C198008 */ lui $t9, %hi(pPlayer) +/* 0B3C44 7F07F114 24180001 */ li $t8, 1 +/* 0B3C48 7F07F118 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3C4C 7F07F11C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0B3C50 7F07F120 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C54 7F07F124 AF38021C */ sw $t8, 0x21c($t9) +/* 0B3C58 7F07F128 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C5C 7F07F12C 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F130: +/* 0B3C60 7F07F130 24010005 */ li $at, 5 +.L7F07F134: +/* 0B3C64 7F07F134 5441000F */ bnel $v0, $at, .L7F07F174 +/* 0B3C68 7F07F138 2401000C */ li $at, 12 +/* 0B3C6C 7F07F13C 8C6801C0 */ lw $t0, 0x1c0($v1) +/* 0B3C70 7F07F140 24010001 */ li $at, 1 +/* 0B3C74 7F07F144 55010006 */ bnel $t0, $at, .L7F07F160 +/* 0B3C78 7F07F148 24090001 */ li $t1, 1 +/* 0B3C7C 7F07F14C 0FC304C4 */ jal sub_GAME_7F0C1310 +/* 0B3C80 7F07F150 00000000 */ nop +/* 0B3C84 7F07F154 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C88 7F07F158 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C8C 7F07F15C 24090001 */ li $t1, 1 +.L7F07F160: +/* 0B3C90 7F07F160 AC690200 */ sw $t1, 0x200($v1) +/* 0B3C94 7F07F164 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3C98 7F07F168 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3C9C 7F07F16C 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CA0 7F07F170 2401000C */ li $at, 12 +.L7F07F174: +/* 0B3CA4 7F07F174 14410018 */ bne $v0, $at, .L7F07F1D8 +/* 0B3CA8 7F07F178 240A0001 */ li $t2, 1 +/* 0B3CAC 7F07F17C AC6A0200 */ sw $t2, 0x200($v1) +/* 0B3CB0 7F07F180 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3CB4 7F07F184 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3CB8 7F07F188 240C0006 */ li $t4, 6 +/* 0B3CBC 7F07F18C 240D0001 */ li $t5, 1 +/* 0B3CC0 7F07F190 8C6B01C0 */ lw $t3, 0x1c0($v1) +/* 0B3CC4 7F07F194 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3CC8 7F07F198 29610003 */ slti $at, $t3, 3 +/* 0B3CCC 7F07F19C 5420000F */ bnezl $at, .L7F07F1DC +/* 0B3CD0 7F07F1A0 8C6201C8 */ lw $v0, 0x1c8($v1) +/* 0B3CD4 7F07F1A4 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B3CD8 7F07F1A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3CDC 7F07F1AC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B3CE0 7F07F1B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0B3CE4 7F07F1B4 ADCD01C0 */ sw $t5, 0x1c0($t6) +/* 0B3CE8 7F07F1B8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B3CEC 7F07F1BC 240500EE */ li $a1, 238 +/* 0B3CF0 7F07F1C0 00003025 */ move $a2, $zero +/* 0B3CF4 7F07F1C4 ADE001C4 */ sw $zero, 0x1c4($t7) +/* 0B3CF8 7F07F1C8 0C002382 */ jal play_sfx_a1 +/* 0B3CFC 7F07F1CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0B3D00 7F07F1D0 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D04 7F07F1D4 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F1D8: +/* 0B3D08 7F07F1D8 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F1DC: +/* 0B3D0C 7F07F1DC 24010006 */ li $at, 6 +/* 0B3D10 7F07F1E0 5441002F */ bnel $v0, $at, .L7F07F2A0 +/* 0B3D14 7F07F1E4 24010007 */ li $at, 7 +/* 0B3D18 7F07F1E8 8C7801C0 */ lw $t8, 0x1c0($v1) +/* 0B3D1C 7F07F1EC 24010001 */ li $at, 1 +/* 0B3D20 7F07F1F0 1701000D */ bne $t8, $at, .L7F07F228 +/* 0B3D24 7F07F1F4 00000000 */ nop +/* 0B3D28 7F07F1F8 0FC1F965 */ jal zoom_from_watch_on_exit +/* 0B3D2C 7F07F1FC 00000000 */ nop +/* 0B3D30 7F07F200 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3D34 7F07F204 00002025 */ move $a0, $zero +/* 0B3D38 7F07F208 13200005 */ beqz $t9, .L7F07F220 +/* 0B3D3C 7F07F20C 00000000 */ nop +/* 0B3D40 7F07F210 0FC17680 */ jal draw_item_in_hand +/* 0B3D44 7F07F214 00002825 */ move $a1, $zero +/* 0B3D48 7F07F218 10000003 */ b .L7F07F228 +/* 0B3D4C 7F07F21C 00000000 */ nop +.L7F07F220: +/* 0B3D50 7F07F220 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B3D54 7F07F224 00002025 */ move $a0, $zero +.L7F07F228: +/* 0B3D58 7F07F228 0FC1F97F */ jal check_watch_page_transistion_running +/* 0B3D5C 7F07F22C 00000000 */ nop +/* 0B3D60 7F07F230 10400009 */ beqz $v0, .L7F07F258 +/* 0B3D64 7F07F234 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3D68 7F07F238 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B3D6C 7F07F23C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B3D70 7F07F240 24080001 */ li $t0, 1 +/* 0B3D74 7F07F244 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3D78 7F07F248 AD280200 */ sw $t0, 0x200($t1) +/* 0B3D7C 7F07F24C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3D80 7F07F250 10000012 */ b .L7F07F29C +/* 0B3D84 7F07F254 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F258: +/* 0B3D88 7F07F258 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3D8C 7F07F25C 240A0007 */ li $t2, 7 +/* 0B3D90 7F07F260 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3D94 7F07F264 AD6A01C8 */ sw $t2, 0x1c8($t3) +/* 0B3D98 7F07F268 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3D9C 7F07F26C 240C0001 */ li $t4, 1 +/* 0B3DA0 7F07F270 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B3DA4 7F07F274 ADAC01C0 */ sw $t4, 0x1c0($t5) +/* 0B3DA8 7F07F278 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B3DAC 7F07F27C 3C188008 */ lui $t8, %hi(pPlayer) +/* 0B3DB0 7F07F280 240F0001 */ li $t7, 1 +/* 0B3DB4 7F07F284 ADC001C4 */ sw $zero, 0x1c4($t6) +/* 0B3DB8 7F07F288 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0B3DBC 7F07F28C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DC0 7F07F290 AF0F021C */ sw $t7, 0x21c($t8) +/* 0B3DC4 7F07F294 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3DC8 7F07F298 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F29C: +/* 0B3DCC 7F07F29C 24010007 */ li $at, 7 +.L7F07F2A0: +/* 0B3DD0 7F07F2A0 5441003F */ bnel $v0, $at, .L7F07F3A0 +/* 0B3DD4 7F07F2A4 24010008 */ li $at, 8 +/* 0B3DD8 7F07F2A8 8C7901C0 */ lw $t9, 0x1c0($v1) +/* 0B3DDC 7F07F2AC 24010001 */ li $at, 1 +/* 0B3DE0 7F07F2B0 17210024 */ bne $t9, $at, .L7F07F344 +/* 0B3DE4 7F07F2B4 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3DE8 7F07F2B8 44817000 */ mtc1 $at, $f14 +/* 0B3DEC 7F07F2BC 00002025 */ move $a0, $zero +/* 0B3DF0 7F07F2C0 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B3DF4 7F07F2C4 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3DF8 7F07F2C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3DFC 7F07F2CC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E00 7F07F2D0 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 0B3E04 7F07F2D4 46000306 */ mov.s $f12, $f0 +/* 0B3E08 7F07F2D8 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E0C 7F07F2DC 24010003 */ li $at, 3 +/* 0B3E10 7F07F2E0 5040000A */ beql $v0, $zero, .L7F07F30C +/* 0B3E14 7F07F2E4 3C0141A0 */ lui $at, 0x41a0 +/* 0B3E18 7F07F2E8 10410007 */ beq $v0, $at, .L7F07F308 +/* 0B3E1C 7F07F2EC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0B3E20 7F07F2F0 44813000 */ mtc1 $at, $f6 +/* 0B3E24 7F07F2F4 C4640258 */ lwc1 $f4, 0x258($v1) +/* 0B3E28 7F07F2F8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0B3E2C 7F07F2FC 44815000 */ mtc1 $at, $f10 +/* 0B3E30 7F07F300 46062202 */ mul.s $f8, $f4, $f6 +/* 0B3E34 7F07F304 460A4383 */ div.s $f14, $f8, $f10 +.L7F07F308: +/* 0B3E38 7F07F308 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.L7F07F30C: +/* 0B3E3C 7F07F30C 44818000 */ mtc1 $at, $f16 +/* 0B3E40 7F07F310 00000000 */ nop +/* 0B3E44 7F07F314 46107080 */ add.s $f2, $f14, $f16 +/* 0B3E48 7F07F318 4602003C */ c.lt.s $f0, $f2 +/* 0B3E4C 7F07F31C 00000000 */ nop +/* 0B3E50 7F07F320 45000002 */ bc1f .L7F07F32C +/* 0B3E54 7F07F324 00000000 */ nop +/* 0B3E58 7F07F328 46001306 */ mov.s $f12, $f2 +.L7F07F32C: +/* 0B3E5C 7F07F32C 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B3E60 7F07F330 E7AE0028 */ swc1 $f14, 0x28($sp) +/* 0B3E64 7F07F334 0FC1FA44 */ jal sub_GAME_7F07E910 +/* 0B3E68 7F07F338 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 0B3E6C 7F07F33C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E70 7F07F340 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F07F344: +/* 0B3E74 7F07F344 8C620220 */ lw $v0, 0x220($v1) +/* 0B3E78 7F07F348 24010003 */ li $at, 3 +/* 0B3E7C 7F07F34C 24090008 */ li $t1, 8 +/* 0B3E80 7F07F350 10400008 */ beqz $v0, .L7F07F374 +/* 0B3E84 7F07F354 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0B3E88 7F07F358 10410006 */ beq $v0, $at, .L7F07F374 +/* 0B3E8C 7F07F35C 24080001 */ li $t0, 1 +/* 0B3E90 7F07F360 AC680200 */ sw $t0, 0x200($v1) +/* 0B3E94 7F07F364 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3E98 7F07F368 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3E9C 7F07F36C 1000000B */ b .L7F07F39C +/* 0B3EA0 7F07F370 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F374: +/* 0B3EA4 7F07F374 AC6901C8 */ sw $t1, 0x1c8($v1) +/* 0B3EA8 7F07F378 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0B3EAC 7F07F37C 240A0001 */ li $t2, 1 +/* 0B3EB0 7F07F380 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B3EB4 7F07F384 AD6A01C0 */ sw $t2, 0x1c0($t3) +/* 0B3EB8 7F07F388 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B3EBC 7F07F38C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B3EC0 7F07F390 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0B3EC4 7F07F394 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B3EC8 7F07F398 8C6201C8 */ lw $v0, 0x1c8($v1) +.L7F07F39C: +/* 0B3ECC 7F07F39C 24010008 */ li $at, 8 +.L7F07F3A0: +/* 0B3ED0 7F07F3A0 14410069 */ bne $v0, $at, .L7F07F548 +/* 0B3ED4 7F07F3A4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B3ED8 7F07F3A8 AC600200 */ sw $zero, 0x200($v1) +/* 0B3EDC 7F07F3AC 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B3EE0 7F07F3B0 24010001 */ li $at, 1 +/* 0B3EE4 7F07F3B4 8DAE01C0 */ lw $t6, 0x1c0($t5) +/* 0B3EE8 7F07F3B8 15C10028 */ bne $t6, $at, .L7F07F45C +/* 0B3EEC 7F07F3BC 00000000 */ nop +/* 0B3EF0 7F07F3C0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3EF4 7F07F3C4 24040001 */ li $a0, 1 +/* 0B3EF8 7F07F3C8 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3EFC 7F07F3CC 0FC17674 */ jal get_item_in_hand +/* 0B3F00 7F07F3D0 24040001 */ li $a0, 1 +/* 0B3F04 7F07F3D4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0B3F08 7F07F3D8 504F000B */ beql $v0, $t7, .L7F07F408 +/* 0B3F0C 7F07F3DC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F10 7F07F3E0 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F14 7F07F3E4 24040001 */ li $a0, 1 +/* 0B3F18 7F07F3E8 50400007 */ beql $v0, $zero, .L7F07F408 +/* 0B3F1C 7F07F3EC 8FB8003C */ lw $t8, 0x3c($sp) +/* 0B3F20 7F07F3F0 0FC17674 */ jal get_item_in_hand +/* 0B3F24 7F07F3F4 24040001 */ li $a0, 1 +/* 0B3F28 7F07F3F8 24040001 */ li $a0, 1 +/* 0B3F2C 7F07F3FC 0FC17680 */ jal draw_item_in_hand +/* 0B3F30 7F07F400 00402825 */ move $a1, $v0 +/* 0B3F34 7F07F404 8FB8003C */ lw $t8, 0x3c($sp) +.L7F07F408: +/* 0B3F38 7F07F408 1300004F */ beqz $t8, .L7F07F548 +/* 0B3F3C 7F07F40C 00000000 */ nop +/* 0B3F40 7F07F410 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3F44 7F07F414 00002025 */ move $a0, $zero +/* 0B3F48 7F07F418 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3F4C 7F07F41C 0FC17674 */ jal get_item_in_hand +/* 0B3F50 7F07F420 00002025 */ move $a0, $zero +/* 0B3F54 7F07F424 8FB9001C */ lw $t9, 0x1c($sp) +/* 0B3F58 7F07F428 10590047 */ beq $v0, $t9, .L7F07F548 +/* 0B3F5C 7F07F42C 00000000 */ nop +/* 0B3F60 7F07F430 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3F64 7F07F434 00002025 */ move $a0, $zero +/* 0B3F68 7F07F438 10400043 */ beqz $v0, .L7F07F548 +/* 0B3F6C 7F07F43C 00000000 */ nop +/* 0B3F70 7F07F440 0FC17674 */ jal get_item_in_hand +/* 0B3F74 7F07F444 00002025 */ move $a0, $zero +/* 0B3F78 7F07F448 00002025 */ move $a0, $zero +/* 0B3F7C 7F07F44C 0FC17680 */ jal draw_item_in_hand +/* 0B3F80 7F07F450 00402825 */ move $a1, $v0 +/* 0B3F84 7F07F454 1000003C */ b .L7F07F548 +/* 0B3F88 7F07F458 00000000 */ nop +.L7F07F45C: +/* 0B3F8C 7F07F45C 0FC1F81A */ jal sub_GAME_7F07E068 +/* 0B3F90 7F07F460 00000000 */ nop +/* 0B3F94 7F07F464 14400038 */ bnez $v0, .L7F07F548 +/* 0B3F98 7F07F468 00000000 */ nop +/* 0B3F9C 7F07F46C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FA0 7F07F470 24040001 */ li $a0, 1 +/* 0B3FA4 7F07F474 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B3FA8 7F07F478 0FC17674 */ jal get_item_in_hand +/* 0B3FAC 7F07F47C 24040001 */ li $a0, 1 +/* 0B3FB0 7F07F480 8FA8001C */ lw $t0, 0x1c($sp) +/* 0B3FB4 7F07F484 14480030 */ bne $v0, $t0, .L7F07F548 +/* 0B3FB8 7F07F488 00000000 */ nop +/* 0B3FBC 7F07F48C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FC0 7F07F490 24040001 */ li $a0, 1 +/* 0B3FC4 7F07F494 1040002C */ beqz $v0, .L7F07F548 +/* 0B3FC8 7F07F498 8FA9003C */ lw $t1, 0x3c($sp) +/* 0B3FCC 7F07F49C 1120000D */ beqz $t1, .L7F07F4D4 +/* 0B3FD0 7F07F4A0 00000000 */ nop +/* 0B3FD4 7F07F4A4 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B3FD8 7F07F4A8 00002025 */ move $a0, $zero +/* 0B3FDC 7F07F4AC AFA20018 */ sw $v0, 0x18($sp) +/* 0B3FE0 7F07F4B0 0FC17674 */ jal get_item_in_hand +/* 0B3FE4 7F07F4B4 00002025 */ move $a0, $zero +/* 0B3FE8 7F07F4B8 8FAA0018 */ lw $t2, 0x18($sp) +/* 0B3FEC 7F07F4BC 144A0022 */ bne $v0, $t2, .L7F07F548 +/* 0B3FF0 7F07F4C0 00000000 */ nop +/* 0B3FF4 7F07F4C4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B3FF8 7F07F4C8 00002025 */ move $a0, $zero +/* 0B3FFC 7F07F4CC 1040001E */ beqz $v0, .L7F07F548 +/* 0B4000 7F07F4D0 00000000 */ nop +.L7F07F4D4: +/* 0B4004 7F07F4D4 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B4008 7F07F4D8 24040001 */ li $a0, 1 +/* 0B400C 7F07F4DC 8FAB003C */ lw $t3, 0x3c($sp) +/* 0B4010 7F07F4E0 51600004 */ beql $t3, $zero, .L7F07F4F4 +/* 0B4014 7F07F4E4 24040008 */ li $a0, 8 +/* 0B4018 7F07F4E8 0FC176B9 */ jal sub_GAME_7F05DAE4 +/* 0B401C 7F07F4EC 00002025 */ move $a0, $zero +/* 0B4020 7F07F4F0 24040008 */ li $a0, 8 +.L7F07F4F4: +/* 0B4024 7F07F4F4 0FC1A96A */ jal set_unset_bitflags +/* 0B4028 7F07F4F8 24050001 */ li $a1, 1 +/* 0B402C 7F07F4FC 24040004 */ li $a0, 4 +/* 0B4030 7F07F500 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B4034 7F07F504 24050001 */ li $a1, 1 +/* 0B4038 7F07F508 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B403C 7F07F50C 24040001 */ li $a0, 1 +/* 0B4040 7F07F510 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B4044 7F07F514 24040001 */ li $a0, 1 +/* 0B4048 7F07F518 24040004 */ li $a0, 4 +/* 0B404C 7F07F51C 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B4050 7F07F520 24050001 */ li $a1, 1 +/* 0B4054 7F07F524 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0B4058 7F07F528 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0B405C 7F07F52C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4060 7F07F530 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4064 7F07F534 AD8001C8 */ sw $zero, 0x1c8($t4) +/* 0B4068 7F07F538 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B406C 7F07F53C ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B4070 7F07F540 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4074 7F07F544 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F548: +/* 0B4078 7F07F548 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B407C 7F07F54C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4080 7F07F550 24010009 */ li $at, 9 +/* 0B4084 7F07F554 24040001 */ li $a0, 1 +/* 0B4088 7F07F558 8C6F01C8 */ lw $t7, 0x1c8($v1) +/* 0B408C 7F07F55C 15E10023 */ bne $t7, $at, .L7F07F5EC +/* 0B4090 7F07F560 00000000 */ nop +/* 0B4094 7F07F564 0FC17674 */ jal get_item_in_hand +/* 0B4098 7F07F568 AC600200 */ sw $zero, 0x200($v1) +/* 0B409C 7F07F56C AFA2001C */ sw $v0, 0x1c($sp) +/* 0B40A0 7F07F570 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40A4 7F07F574 24040001 */ li $a0, 1 +/* 0B40A8 7F07F578 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B40AC 7F07F57C 1058001B */ beq $v0, $t8, .L7F07F5EC +/* 0B40B0 7F07F580 00000000 */ nop +/* 0B40B4 7F07F584 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40B8 7F07F588 24040001 */ li $a0, 1 +/* 0B40BC 7F07F58C 10400017 */ beqz $v0, .L7F07F5EC +/* 0B40C0 7F07F590 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B40C4 7F07F594 1320000C */ beqz $t9, .L7F07F5C8 +/* 0B40C8 7F07F598 00000000 */ nop +/* 0B40CC 7F07F59C 0FC17674 */ jal get_item_in_hand +/* 0B40D0 7F07F5A0 00002025 */ move $a0, $zero +/* 0B40D4 7F07F5A4 AFA20018 */ sw $v0, 0x18($sp) +/* 0B40D8 7F07F5A8 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B40DC 7F07F5AC 00002025 */ move $a0, $zero +/* 0B40E0 7F07F5B0 8FA80018 */ lw $t0, 0x18($sp) +/* 0B40E4 7F07F5B4 1048000D */ beq $v0, $t0, .L7F07F5EC +/* 0B40E8 7F07F5B8 00000000 */ nop +/* 0B40EC 7F07F5BC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B40F0 7F07F5C0 00002025 */ move $a0, $zero +/* 0B40F4 7F07F5C4 10400009 */ beqz $v0, .L7F07F5EC +.L7F07F5C8: +/* 0B40F8 7F07F5C8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B40FC 7F07F5CC 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B4100 7F07F5D0 8C4A0000 */ lw $t2, ($v0) +/* 0B4104 7F07F5D4 24090008 */ li $t1, 8 +/* 0B4108 7F07F5D8 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B410C 7F07F5DC 8C4B0000 */ lw $t3, ($v0) +/* 0B4110 7F07F5E0 AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B4114 7F07F5E4 8C4C0000 */ lw $t4, ($v0) +/* 0B4118 7F07F5E8 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F5EC: +/* 0B411C 7F07F5EC 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4120 7F07F5F0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4124 7F07F5F4 2401000A */ li $at, 10 +/* 0B4128 7F07F5F8 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B412C 7F07F5FC 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B4130 7F07F600 15A1002D */ bne $t5, $at, .L7F07F6B8 +/* 0B4134 7F07F604 00000000 */ nop +/* 0B4138 7F07F608 AC600200 */ sw $zero, 0x200($v1) +/* 0B413C 7F07F60C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4140 7F07F610 24010001 */ li $at, 1 +/* 0B4144 7F07F614 8DCF01C0 */ lw $t7, 0x1c0($t6) +/* 0B4148 7F07F618 15E10005 */ bne $t7, $at, .L7F07F630 +/* 0B414C 7F07F61C 00000000 */ nop +/* 0B4150 7F07F620 0FC1F7CA */ jal sub_GAME_7F07DF28 +/* 0B4154 7F07F624 00002025 */ move $a0, $zero +/* 0B4158 7F07F628 0FC1F80F */ jal sub_GAME_7F07E03C +/* 0B415C 7F07F62C 46000306 */ mov.s $f12, $f0 +.L7F07F630: +/* 0B4160 7F07F630 0FC17674 */ jal get_item_in_hand +/* 0B4164 7F07F634 24040001 */ li $a0, 1 +/* 0B4168 7F07F638 AFA2001C */ sw $v0, 0x1c($sp) +/* 0B416C 7F07F63C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4170 7F07F640 24040001 */ li $a0, 1 +/* 0B4174 7F07F644 8FB8001C */ lw $t8, 0x1c($sp) +/* 0B4178 7F07F648 1058001B */ beq $v0, $t8, .L7F07F6B8 +/* 0B417C 7F07F64C 00000000 */ nop +/* 0B4180 7F07F650 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4184 7F07F654 24040001 */ li $a0, 1 +/* 0B4188 7F07F658 10400017 */ beqz $v0, .L7F07F6B8 +/* 0B418C 7F07F65C 8FB9003C */ lw $t9, 0x3c($sp) +/* 0B4190 7F07F660 1320000C */ beqz $t9, .L7F07F694 +/* 0B4194 7F07F664 00000000 */ nop +/* 0B4198 7F07F668 0FC17674 */ jal get_item_in_hand +/* 0B419C 7F07F66C 00002025 */ move $a0, $zero +/* 0B41A0 7F07F670 AFA20018 */ sw $v0, 0x18($sp) +/* 0B41A4 7F07F674 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B41A8 7F07F678 00002025 */ move $a0, $zero +/* 0B41AC 7F07F67C 8FA80018 */ lw $t0, 0x18($sp) +/* 0B41B0 7F07F680 1048000D */ beq $v0, $t0, .L7F07F6B8 +/* 0B41B4 7F07F684 00000000 */ nop +/* 0B41B8 7F07F688 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B41BC 7F07F68C 00002025 */ move $a0, $zero +/* 0B41C0 7F07F690 10400009 */ beqz $v0, .L7F07F6B8 +.L7F07F694: +/* 0B41C4 7F07F694 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B41C8 7F07F698 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0B41CC 7F07F69C 8C4A0000 */ lw $t2, ($v0) +/* 0B41D0 7F07F6A0 24090008 */ li $t1, 8 +/* 0B41D4 7F07F6A4 AD4901C8 */ sw $t1, 0x1c8($t2) +/* 0B41D8 7F07F6A8 8C4B0000 */ lw $t3, ($v0) +/* 0B41DC 7F07F6AC AD6001C0 */ sw $zero, 0x1c0($t3) +/* 0B41E0 7F07F6B0 8C4C0000 */ lw $t4, ($v0) +/* 0B41E4 7F07F6B4 AD8001C4 */ sw $zero, 0x1c4($t4) +.L7F07F6B8: +/* 0B41E8 7F07F6B8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B41EC 7F07F6BC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B41F0 7F07F6C0 2401000B */ li $at, 11 +/* 0B41F4 7F07F6C4 24040001 */ li $a0, 1 +/* 0B41F8 7F07F6C8 8C6D01C8 */ lw $t5, 0x1c8($v1) +/* 0B41FC 7F07F6CC 15A10024 */ bne $t5, $at, .L7F07F760 +/* 0B4200 7F07F6D0 00000000 */ nop +/* 0B4204 7F07F6D4 0FC17674 */ jal get_item_in_hand +/* 0B4208 7F07F6D8 AC600200 */ sw $zero, 0x200($v1) +/* 0B420C 7F07F6DC AFA2001C */ sw $v0, 0x1c($sp) +/* 0B4210 7F07F6E0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B4214 7F07F6E4 24040001 */ li $a0, 1 +/* 0B4218 7F07F6E8 8FAE001C */ lw $t6, 0x1c($sp) +/* 0B421C 7F07F6EC 144E001C */ bne $v0, $t6, .L7F07F760 +/* 0B4220 7F07F6F0 00000000 */ nop +/* 0B4224 7F07F6F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4228 7F07F6F8 24040001 */ li $a0, 1 +/* 0B422C 7F07F6FC 10400018 */ beqz $v0, .L7F07F760 +/* 0B4230 7F07F700 8FAF003C */ lw $t7, 0x3c($sp) +/* 0B4234 7F07F704 11E0000C */ beqz $t7, .L7F07F738 +/* 0B4238 7F07F708 00000000 */ nop +/* 0B423C 7F07F70C 0FC17674 */ jal get_item_in_hand +/* 0B4240 7F07F710 00002025 */ move $a0, $zero +/* 0B4244 7F07F714 AFA20018 */ sw $v0, 0x18($sp) +/* 0B4248 7F07F718 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0B424C 7F07F71C 00002025 */ move $a0, $zero +/* 0B4250 7F07F720 8FB80018 */ lw $t8, 0x18($sp) +/* 0B4254 7F07F724 1458000E */ bne $v0, $t8, .L7F07F760 +/* 0B4258 7F07F728 00000000 */ nop +/* 0B425C 7F07F72C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B4260 7F07F730 00002025 */ move $a0, $zero +/* 0B4264 7F07F734 1040000A */ beqz $v0, .L7F07F760 +.L7F07F738: +/* 0B4268 7F07F738 3C088008 */ lui $t0, %hi(pPlayer) +/* 0B426C 7F07F73C 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0B4270 7F07F740 24190001 */ li $t9, 1 +/* 0B4274 7F07F744 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B4278 7F07F748 AD1901C8 */ sw $t9, 0x1c8($t0) +/* 0B427C 7F07F74C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B4280 7F07F750 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0B4284 7F07F754 AD2001C0 */ sw $zero, 0x1c0($t1) +/* 0B4288 7F07F758 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0B428C 7F07F75C AD4001C4 */ sw $zero, 0x1c4($t2) +.L7F07F760: +/* 0B4290 7F07F760 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B4294 7F07F764 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B4298 7F07F768 2401000D */ li $at, 13 +/* 0B429C 7F07F76C 24040001 */ li $a0, 1 +/* 0B42A0 7F07F770 8C6B01C8 */ lw $t3, 0x1c8($v1) +/* 0B42A4 7F07F774 1561001B */ bne $t3, $at, .L7F07F7E4 +/* 0B42A8 7F07F778 00000000 */ nop +/* 0B42AC 7F07F77C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42B0 7F07F780 AC600200 */ sw $zero, 0x200($v1) +/* 0B42B4 7F07F784 10400017 */ beqz $v0, .L7F07F7E4 +/* 0B42B8 7F07F788 00000000 */ nop +/* 0B42BC 7F07F78C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 0B42C0 7F07F790 00002025 */ move $a0, $zero +/* 0B42C4 7F07F794 10400013 */ beqz $v0, .L7F07F7E4 +/* 0B42C8 7F07F798 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B42CC 7F07F79C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0B42D0 7F07F7A0 24010005 */ li $at, 5 +/* 0B42D4 7F07F7A4 8C620C3C */ lw $v0, 0xc3c($v1) +/* 0B42D8 7F07F7A8 1041000E */ beq $v0, $at, .L7F07F7E4 +/* 0B42DC 7F07F7AC 24010006 */ li $at, 6 +/* 0B42E0 7F07F7B0 1041000C */ beq $v0, $at, .L7F07F7E4 +/* 0B42E4 7F07F7B4 24010007 */ li $at, 7 +/* 0B42E8 7F07F7B8 1041000A */ beq $v0, $at, .L7F07F7E4 +/* 0B42EC 7F07F7BC 24010008 */ li $at, 8 +/* 0B42F0 7F07F7C0 10410008 */ beq $v0, $at, .L7F07F7E4 +/* 0B42F4 7F07F7C4 240C0001 */ li $t4, 1 +/* 0B42F8 7F07F7C8 AC6C01C8 */ sw $t4, 0x1c8($v1) +/* 0B42FC 7F07F7CC 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0B4300 7F07F7D0 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0B4304 7F07F7D4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0B4308 7F07F7D8 ADA001C0 */ sw $zero, 0x1c0($t5) +/* 0B430C 7F07F7DC 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0B4310 7F07F7E0 ADC001C4 */ sw $zero, 0x1c4($t6) +.L7F07F7E4: +/* 0B4314 7F07F7E4 0FC1F824 */ jal sub_GAME_7F07E090 +/* 0B4318 7F07F7E8 00000000 */ nop +/* 0B431C 7F07F7EC 0FC1FA59 */ jal sub_GAME_7F07E964 +/* 0B4320 7F07F7F0 00000000 */ nop +/* 0B4324 7F07F7F4 0FC1F98B */ jal sub_GAME_7F07E62C +/* 0B4328 7F07F7F8 00000000 */ nop +/* 0B432C 7F07F7FC 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0B4330 7F07F800 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0B4334 7F07F804 8DE201C8 */ lw $v0, 0x1c8($t7) +/* 0B4338 7F07F808 24010005 */ li $at, 5 +.L7F07F80C: +/* 0B433C 7F07F80C 54410008 */ bnel $v0, $at, .L7F07F830 +/* 0B4340 7F07F810 2401000C */ li $at, 12 +/* 0B4344 7F07F814 0FC2FEFE */ jal set_controls_locked_flag +/* 0B4348 7F07F818 24040001 */ li $a0, 1 +/* 0B434C 7F07F81C 0FC29AA0 */ jal sub_GAME_7F0A6A80 +/* 0B4350 7F07F820 00000000 */ nop +/* 0B4354 7F07F824 1000000B */ b .L7F07F854 +/* 0B4358 7F07F828 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B435C 7F07F82C 2401000C */ li $at, 12 +.L7F07F830: +/* 0B4360 7F07F830 14410005 */ bne $v0, $at, .L7F07F848 +/* 0B4364 7F07F834 00000000 */ nop +/* 0B4368 7F07F838 0FC2FEFE */ jal set_controls_locked_flag +/* 0B436C 7F07F83C 24040001 */ li $a0, 1 +/* 0B4370 7F07F840 10000004 */ b .L7F07F854 +/* 0B4374 7F07F844 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F848: +/* 0B4378 7F07F848 0FC2FEFE */ jal set_controls_locked_flag +/* 0B437C 7F07F84C 00002025 */ move $a0, $zero +/* 0B4380 7F07F850 8FBF0014 */ lw $ra, 0x14($sp) +.L7F07F854: +/* 0B4384 7F07F854 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0B4388 7F07F858 03E00008 */ jr $ra +/* 0B438C 7F07F85C 00000000 */ nop +) +#endif + + #endif @@ -13988,9 +16595,9 @@ glabel sub_GAME_7F080B34 .L7F080BB4: /* 0B56E4 7F080BB4 51E0001B */ beql $t7, $zero, .L7F080C24 /* 0B56E8 7F080BB8 3C013F00 */ lui $at, 0x3f00 -/* 0B56EC 7F080BBC 0C002914 */ jal get_random_value +/* 0B56EC 7F080BBC 0C002914 */ jal randomGetNext /* 0B56F0 7F080BC0 00000000 */ nop -/* 0B56F4 7F080BC4 0C002914 */ jal get_random_value +/* 0B56F4 7F080BC4 0C002914 */ jal randomGetNext /* 0B56F8 7F080BC8 AFA20044 */ sw $v0, 0x44($sp) /* 0B56FC 7F080BCC 3C198003 */ lui $t9, %hi(D_8003650C) /* 0B5700 7F080BD0 8F39650C */ lw $t9, %lo(D_8003650C)($t9) @@ -15426,7 +18033,7 @@ glabel controller_gameplay_interaction /* 0B6700 7F081BD0 8FAA0064 */ lw $t2, 0x64($sp) /* 0B6704 7F081BD4 004A2021 */ addu $a0, $v0, $t2 /* 0B6708 7F081BD8 00046600 */ sll $t4, $a0, 0x18 -/* 0B670C 7F081BDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0B670C 7F081BDC 0C00303B */ jal joyGetStickX /* 0B6710 7F081BE0 000C2603 */ sra $a0, $t4, 0x18 /* 0B6714 7F081BE4 0FC26C54 */ jal get_cur_playernum /* 0B6718 7F081BE8 A3A2011F */ sb $v0, 0x11f($sp) @@ -15435,7 +18042,7 @@ glabel controller_gameplay_interaction /* 0B6724 7F081BF4 8FAD0064 */ lw $t5, 0x64($sp) /* 0B6728 7F081BF8 004D2021 */ addu $a0, $v0, $t5 /* 0B672C 7F081BFC 00047E00 */ sll $t7, $a0, 0x18 -/* 0B6730 7F081C00 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0B6730 7F081C00 0C00307F */ jal joyGetStickY /* 0B6734 7F081C04 000F2603 */ sra $a0, $t7, 0x18 /* 0B6738 7F081C08 0FC26C54 */ jal get_cur_playernum /* 0B673C 7F081C0C A3A2011E */ sb $v0, 0x11e($sp) @@ -15445,7 +18052,7 @@ glabel controller_gameplay_interaction /* 0B674C 7F081C1C 3405FFFF */ li $a1, 65535 /* 0B6750 7F081C20 00582021 */ addu $a0, $v0, $t8 /* 0B6754 7F081C24 0004CE00 */ sll $t9, $a0, 0x18 -/* 0B6758 7F081C28 0C0030C3 */ jal get_controller_buttons_held +/* 0B6758 7F081C28 0C0030C3 */ jal joyGetButtons /* 0B675C 7F081C2C 00192603 */ sra $a0, $t9, 0x18 /* 0B6760 7F081C30 8E0B0000 */ lw $t3, ($s0) /* 0B6764 7F081C34 83AC011F */ lb $t4, 0x11f($sp) @@ -18513,6 +21120,260 @@ glabel sub_GAME_7F083FC8 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F083FC8 +/* 0B8AF8 7F083FC8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8AFC 7F083FCC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8B00 7F083FD0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0B8B04 7F083FD4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0B8B08 7F083FD8 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8B0C 7F083FDC 04620089 */ bltzl $v1, .L7F084204 +/* 0B8B10 7F083FE0 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8B14 7F083FE4 14600021 */ bnez $v1, .L7F08406C +/* 0B8B18 7F083FE8 24040008 */ li $a0, 8 +/* 0B8B1C 7F083FEC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8B20 7F083FF0 00002825 */ move $a1, $zero +/* 0B8B24 7F083FF4 24040010 */ li $a0, 16 +/* 0B8B28 7F083FF8 0FC1A96A */ jal set_unset_bitflags +/* 0B8B2C 7F083FFC 00002825 */ move $a1, $zero +/* 0B8B30 7F084000 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 0B8B34 7F084004 24040004 */ li $a0, 4 +/* 0B8B38 7F084008 0FC22A51 */ jal sub_GAME_7F08A944 +/* 0B8B3C 7F08400C 24040004 */ li $a0, 4 +/* 0B8B40 7F084010 24040008 */ li $a0, 8 +/* 0B8B44 7F084014 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8B48 7F084018 00002825 */ move $a1, $zero +/* 0B8B4C 7F08401C 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8B50 7F084020 00000000 */ nop +/* 0B8B54 7F084024 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8B58 7F084028 44812000 */ mtc1 $at, $f4 +/* 0B8B5C 7F08402C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0B8B60 7F084030 2463A0B0 */ addiu $v1, %lo(pPlayer) # addiu $v1, $v1, -0x5f50 +/* 0B8B64 7F084034 46040182 */ mul.s $f6, $f0, $f4 +/* 0B8B68 7F084038 8C780000 */ lw $t8, ($v1) +/* 0B8B6C 7F08403C 24090007 */ li $t1, 7 +/* 0B8B70 7F084040 4600320D */ trunc.w.s $f8, $f6 +/* 0B8B74 7F084044 440F4000 */ mfc1 $t7, $f8 +/* 0B8B78 7F084048 00000000 */ nop +/* 0B8B7C 7F08404C AF0F29D4 */ sw $t7, 0x29d4($t8) +/* 0B8B80 7F084050 8C620000 */ lw $v0, ($v1) +/* 0B8B84 7F084054 8C5929D4 */ lw $t9, 0x29d4($v0) +/* 0B8B88 7F084058 2B210008 */ slti $at, $t9, 8 +/* 0B8B8C 7F08405C 54200004 */ bnezl $at, .L7F084070 +/* 0B8B90 7F084060 8C4A29D4 */ lw $t2, 0x29d4($v0) +/* 0B8B94 7F084064 AC4929D4 */ sw $t1, 0x29d4($v0) +/* 0B8B98 7F084068 8C620000 */ lw $v0, ($v1) +.L7F08406C: +/* 0B8B9C 7F08406C 8C4A29D4 */ lw $t2, 0x29d4($v0) +.L7F084070: +/* 0B8BA0 7F084070 3C0C8003 */ lui $t4, %hi(D_80036634) +/* 0B8BA4 7F084074 258C6634 */ addiu $t4, %lo(D_80036634) # addiu $t4, $t4, 0x6634 +/* 0B8BA8 7F084078 000A5880 */ sll $t3, $t2, 2 +/* 0B8BAC 7F08407C 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB0 7F084080 000B5880 */ sll $t3, $t3, 2 +/* 0B8BB4 7F084084 016A5823 */ subu $t3, $t3, $t2 +/* 0B8BB8 7F084088 000B5880 */ sll $t3, $t3, 2 +/* 0B8BBC 7F08408C 016C4021 */ addu $t0, $t3, $t4 +/* 0B8BC0 7F084090 8D0D0008 */ lw $t5, 8($t0) +/* 0B8BC4 7F084094 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8BC8 7F084098 01A3082A */ slt $at, $t5, $v1 +/* 0B8BCC 7F08409C 50200008 */ beql $at, $zero, .L7F0840C0 +/* 0B8BD0 7F0840A0 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8BD4 7F0840A4 8D0E0018 */ lw $t6, 0x18($t0) +/* 0B8BD8 7F0840A8 240400FF */ li $a0, 255 +/* 0B8BDC 7F0840AC 240500FF */ li $a1, 255 +/* 0B8BE0 7F0840B0 01C3082A */ slt $at, $t6, $v1 +/* 0B8BE4 7F0840B4 1420003A */ bnez $at, .L7F0841A0 +/* 0B8BE8 7F0840B8 240EFFFF */ li $t6, -1 +/* 0B8BEC 7F0840BC 8C4F00D8 */ lw $t7, 0xd8($v0) +.L7F0840C0: +/* 0B8BF0 7F0840C0 55E00029 */ bnezl $t7, .L7F084168 +/* 0B8BF4 7F0840C4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8BF8 7F0840C8 8D040010 */ lw $a0, 0x10($t0) +/* 0B8BFC 7F0840CC 0064082A */ slt $at, $v1, $a0 +/* 0B8C00 7F0840D0 54200025 */ bnezl $at, .L7F084168 +/* 0B8C04 7F0840D4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C08 7F0840D8 8D060018 */ lw $a2, 0x18($t0) +/* 0B8C0C 7F0840DC 00C3082A */ slt $at, $a2, $v1 +/* 0B8C10 7F0840E0 54200021 */ bnezl $at, .L7F084168 +/* 0B8C14 7F0840E4 8C4901C8 */ lw $t1, 0x1c8($v0) +/* 0B8C18 7F0840E8 8D050014 */ lw $a1, 0x14($t0) +/* 0B8C1C 7F0840EC 00641023 */ subu $v0, $v1, $a0 +/* 0B8C20 7F0840F0 00C43823 */ subu $a3, $a2, $a0 +/* 0B8C24 7F0840F4 0045082A */ slt $at, $v0, $a1 +/* 0B8C28 7F0840F8 10200009 */ beqz $at, .L7F084120 +/* 0B8C2C 7F0840FC 00E2C023 */ subu $t8, $a3, $v0 +/* 0B8C30 7F084100 44828000 */ mtc1 $v0, $f16 +/* 0B8C34 7F084104 C50A001C */ lwc1 $f10, 0x1c($t0) +/* 0B8C38 7F084108 44853000 */ mtc1 $a1, $f6 +/* 0B8C3C 7F08410C 468084A0 */ cvt.s.w $f18, $f16 +/* 0B8C40 7F084110 46803220 */ cvt.s.w $f8, $f6 +/* 0B8C44 7F084114 46125102 */ mul.s $f4, $f10, $f18 +/* 0B8C48 7F084118 1000000A */ b .L7F084144 +/* 0B8C4C 7F08411C 46082003 */ div.s $f0, $f4, $f8 +.L7F084120: +/* 0B8C50 7F084120 44985000 */ mtc1 $t8, $f10 +/* 0B8C54 7F084124 C510001C */ lwc1 $f16, 0x1c($t0) +/* 0B8C58 7F084128 00E5C823 */ subu $t9, $a3, $a1 +/* 0B8C5C 7F08412C 468054A0 */ cvt.s.w $f18, $f10 +/* 0B8C60 7F084130 44992000 */ mtc1 $t9, $f4 +/* 0B8C64 7F084134 00000000 */ nop +/* 0B8C68 7F084138 46802220 */ cvt.s.w $f8, $f4 +/* 0B8C6C 7F08413C 46128182 */ mul.s $f6, $f16, $f18 +/* 0B8C70 7F084140 46083003 */ div.s $f0, $f6, $f8 +.L7F084144: +/* 0B8C74 7F084144 44070000 */ mfc1 $a3, $f0 +/* 0B8C78 7F084148 8D040020 */ lw $a0, 0x20($t0) +/* 0B8C7C 7F08414C 8D050024 */ lw $a1, 0x24($t0) +/* 0B8C80 7F084150 0FC201EC */ jal currentPlayerSetFadeColour +/* 0B8C84 7F084154 8D060028 */ lw $a2, 0x28($t0) +/* 0B8C88 7F084158 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8C8C 7F08415C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8C90 7F084160 8C4300F4 */ lw $v1, 0xf4($v0) +/* 0B8C94 7F084164 8C4901C8 */ lw $t1, 0x1c8($v0) +.L7F084168: +/* 0B8C98 7F084168 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 0B8C9C 7F08416C 3C0C8005 */ lui $t4, %hi(D_80048498) +/* 0B8CA0 7F084170 15200005 */ bnez $t1, .L7F084188 +/* 0B8CA4 7F084174 00000000 */ nop +/* 0B8CA8 7F084178 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 0B8CAC 7F08417C 006A5821 */ addu $t3, $v1, $t2 +/* 0B8CB0 7F084180 10000004 */ b .L7F084194 +/* 0B8CB4 7F084184 AC4B00F4 */ sw $t3, 0xf4($v0) +.L7F084188: +/* 0B8CB8 7F084188 8D8C8498 */ lw $t4, %lo(D_80048498)($t4) +/* 0B8CBC 7F08418C 006C6821 */ addu $t5, $v1, $t4 +/* 0B8CC0 7F084190 AC4D00F4 */ sw $t5, 0xf4($v0) +.L7F084194: +/* 0B8CC4 7F084194 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CC8 7F084198 10000019 */ b .L7F084200 +/* 0B8CCC 7F08419C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F0841A0: +/* 0B8CD0 7F0841A0 AC4E00F4 */ sw $t6, 0xf4($v0) +/* 0B8CD4 7F0841A4 240600FF */ li $a2, 255 +/* 0B8CD8 7F0841A8 0FC201EC */ jal currentPlayerSetFadeColour +/* 0B8CDC 7F0841AC 24070000 */ li $a3, 0 +/* 0B8CE0 7F0841B0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8CE4 7F0841B4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8CE8 7F0841B8 24040008 */ li $a0, 8 +/* 0B8CEC 7F0841BC 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0B8CF0 7F0841C0 55E00010 */ bnezl $t7, .L7F084204 +/* 0B8CF4 7F0841C4 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8CF8 7F0841C8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0B8CFC 7F0841CC 24050001 */ li $a1, 1 +/* 0B8D00 7F0841D0 24040010 */ li $a0, 16 +/* 0B8D04 7F0841D4 0FC1A96A */ jal set_unset_bitflags +/* 0B8D08 7F0841D8 24050001 */ li $a1, 1 +/* 0B8D0C 7F0841DC 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 0B8D10 7F0841E0 24040004 */ li $a0, 4 +/* 0B8D14 7F0841E4 0FC22A4A */ jal sub_GAME_7F08A928 +/* 0B8D18 7F0841E8 24040004 */ li $a0, 4 +/* 0B8D1C 7F0841EC 24040008 */ li $a0, 8 +/* 0B8D20 7F0841F0 0FC15858 */ jal set_unset_clock_lock_bits +/* 0B8D24 7F0841F4 24050001 */ li $a1, 1 +/* 0B8D28 7F0841F8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D2C 7F0841FC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F084200: +/* 0B8D30 7F084200 8C4300F8 */ lw $v1, 0xf8($v0) +.L7F084204: +/* 0B8D34 7F084204 04620053 */ bltzl $v1, .L7F084354 +/* 0B8D38 7F084208 8FBF0014 */ lw $ra, 0x14($sp) +/* 0B8D3C 7F08420C 54600017 */ bnezl $v1, .L7F08426C +/* 0B8D40 7F084210 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D44 7F084214 0FC228BB */ jal get_BONDdata_watch_health +/* 0B8D48 7F084218 00000000 */ nop +/* 0B8D4C 7F08421C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0B8D50 7F084220 44815000 */ mtc1 $at, $f10 +/* 0B8D54 7F084224 3C098008 */ lui $t1, %hi(pPlayer) +/* 0B8D58 7F084228 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0B8D5C 7F08422C 460A0402 */ mul.s $f16, $f0, $f10 +/* 0B8D60 7F084230 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D64 7F084234 240B0007 */ li $t3, 7 +/* 0B8D68 7F084238 4600848D */ trunc.w.s $f18, $f16 +/* 0B8D6C 7F08423C 44199000 */ mfc1 $t9, $f18 +/* 0B8D70 7F084240 00000000 */ nop +/* 0B8D74 7F084244 AD3929B8 */ sw $t9, 0x29b8($t1) +/* 0B8D78 7F084248 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D7C 7F08424C 8C4A29B8 */ lw $t2, 0x29b8($v0) +/* 0B8D80 7F084250 29410008 */ slti $at, $t2, 8 +/* 0B8D84 7F084254 54200005 */ bnezl $at, .L7F08426C +/* 0B8D88 7F084258 8C4C00D8 */ lw $t4, 0xd8($v0) +/* 0B8D8C 7F08425C AC4B29B8 */ sw $t3, 0x29b8($v0) +/* 0B8D90 7F084260 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8D94 7F084264 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8D98 7F084268 8C4C00D8 */ lw $t4, 0xd8($v0) +.L7F08426C: +/* 0B8D9C 7F08426C 3C0F8003 */ lui $t7, %hi(D_80036794) +/* 0B8DA0 7F084270 2418FFFF */ li $t8, -1 +/* 0B8DA4 7F084274 55800036 */ bnezl $t4, .L7F084350 +/* 0B8DA8 7F084278 AC5800F8 */ sw $t8, 0xf8($v0) +/* 0B8DAC 7F08427C 8C4D29B8 */ lw $t5, 0x29b8($v0) +/* 0B8DB0 7F084280 25EF6794 */ addiu $t7, %lo(D_80036794) # addiu $t7, $t7, 0x6794 +/* 0B8DB4 7F084284 8C4300F8 */ lw $v1, 0xf8($v0) +/* 0B8DB8 7F084288 000D7080 */ sll $t6, $t5, 2 +/* 0B8DBC 7F08428C 01CD7023 */ subu $t6, $t6, $t5 +/* 0B8DC0 7F084290 000E7080 */ sll $t6, $t6, 2 +/* 0B8DC4 7F084294 01CF2021 */ addu $a0, $t6, $t7 +/* 0B8DC8 7F084298 8C850000 */ lw $a1, ($a0) +/* 0B8DCC 7F08429C 0065082A */ slt $at, $v1, $a1 +/* 0B8DD0 7F0842A0 54200014 */ bnezl $at, .L7F0842F4 +/* 0B8DD4 7F0842A4 0065082A */ slt $at, $v1, $a1 +/* 0B8DD8 7F0842A8 8C980004 */ lw $t8, 4($a0) +/* 0B8DDC 7F0842AC 0303082A */ slt $at, $t8, $v1 +/* 0B8DE0 7F0842B0 54200010 */ bnezl $at, .L7F0842F4 +/* 0B8DE4 7F0842B4 0065082A */ slt $at, $v1, $a1 +/* 0B8DE8 7F0842B8 C44400E4 */ lwc1 $f4, 0xe4($v0) +/* 0B8DEC 7F0842BC 3C098005 */ lui $t1, %hi(clock_timer) +/* 0B8DF0 7F0842C0 E44400EC */ swc1 $f4, 0xec($v0) +/* 0B8DF4 7F0842C4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8DF8 7F0842C8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8DFC 7F0842CC C44600E8 */ lwc1 $f6, 0xe8($v0) +/* 0B8E00 7F0842D0 E44600F0 */ swc1 $f6, 0xf0($v0) +/* 0B8E04 7F0842D4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E08 7F0842D8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E0C 7F0842DC 8D298374 */ lw $t1, %lo(clock_timer)($t1) +/* 0B8E10 7F0842E0 8C5900F8 */ lw $t9, 0xf8($v0) +/* 0B8E14 7F0842E4 03295021 */ addu $t2, $t9, $t1 +/* 0B8E18 7F0842E8 10000019 */ b .L7F084350 +/* 0B8E1C 7F0842EC AC4A00F8 */ sw $t2, 0xf8($v0) +/* 0B8E20 7F0842F0 0065082A */ slt $at, $v1, $a1 +.L7F0842F4: +/* 0B8E24 7F0842F4 14200013 */ bnez $at, .L7F084344 +/* 0B8E28 7F0842F8 240FFFFF */ li $t7, -1 +/* 0B8E2C 7F0842FC 8C8B0008 */ lw $t3, 8($a0) +/* 0B8E30 7F084300 0163082A */ slt $at, $t3, $v1 +/* 0B8E34 7F084304 1420000F */ bnez $at, .L7F084344 +/* 0B8E38 7F084308 00000000 */ nop +/* 0B8E3C 7F08430C C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0B8E40 7F084310 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0B8E44 7F084314 E44800EC */ swc1 $f8, 0xec($v0) +/* 0B8E48 7F084318 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E4C 7F08431C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E50 7F084320 C44A00E0 */ lwc1 $f10, 0xe0($v0) +/* 0B8E54 7F084324 E44A00F0 */ swc1 $f10, 0xf0($v0) +/* 0B8E58 7F084328 3C028008 */ lui $v0, %hi(pPlayer) +/* 0B8E5C 7F08432C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0B8E60 7F084330 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0B8E64 7F084334 8C4C00F8 */ lw $t4, 0xf8($v0) +/* 0B8E68 7F084338 018D7021 */ addu $t6, $t4, $t5 +/* 0B8E6C 7F08433C 10000004 */ b .L7F084350 +/* 0B8E70 7F084340 AC4E00F8 */ sw $t6, 0xf8($v0) +.L7F084344: +/* 0B8E74 7F084344 10000002 */ b .L7F084350 +/* 0B8E78 7F084348 AC4F00F8 */ sw $t7, 0xf8($v0) +/* 0B8E7C 7F08434C AC5800F8 */ sw $t8, 0xf8($v0) +.L7F084350: +/* 0B8E80 7F084350 8FBF0014 */ lw $ra, 0x14($sp) +.L7F084354: +/* 0B8E84 7F084354 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0B8E88 7F084358 03E00008 */ jr $ra +/* 0B8E8C 7F08435C 00000000 */ nop +) +#endif + + #endif @@ -18577,7 +21438,7 @@ glabel sub_GAME_7F084360 /* 0B8F50 7F084420 10000058 */ b .L7F084584 /* 0B8F54 7F084424 00000000 */ nop .L7F084428: -/* 0B8F58 7F084428 0C002914 */ jal get_random_value +/* 0B8F58 7F084428 0C002914 */ jal randomGetNext /* 0B8F5C 7F08442C 00000000 */ nop /* 0B8F60 7F084430 44825000 */ mtc1 $v0, $f10 /* 0B8F64 7F084434 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -18601,7 +21462,7 @@ glabel sub_GAME_7F084360 /* 0B8FA8 7F084478 10000042 */ b .L7F084584 /* 0B8FAC 7F08447C E7A80034 */ swc1 $f8, 0x34($sp) .L7F084480: -/* 0B8FB0 7F084480 0C002914 */ jal get_random_value +/* 0B8FB0 7F084480 0C002914 */ jal randomGetNext /* 0B8FB4 7F084484 00000000 */ nop /* 0B8FB8 7F084488 44823000 */ mtc1 $v0, $f6 /* 0B8FBC 7F08448C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -18625,7 +21486,7 @@ glabel sub_GAME_7F084360 /* 0B9000 7F0844D0 1000002C */ b .L7F084584 /* 0B9004 7F0844D4 E7A80034 */ swc1 $f8, 0x34($sp) .L7F0844D8: -/* 0B9008 7F0844D8 0C002914 */ jal get_random_value +/* 0B9008 7F0844D8 0C002914 */ jal randomGetNext /* 0B900C 7F0844DC 00000000 */ nop /* 0B9010 7F0844E0 44828000 */ mtc1 $v0, $f16 /* 0B9014 7F0844E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -18649,7 +21510,7 @@ glabel sub_GAME_7F084360 /* 0B9058 7F084528 10000016 */ b .L7F084584 /* 0B905C 7F08452C E7A8003C */ swc1 $f8, 0x3c($sp) .L7F084530: -/* 0B9060 7F084530 0C002914 */ jal get_random_value +/* 0B9060 7F084530 0C002914 */ jal randomGetNext /* 0B9064 7F084534 00000000 */ nop /* 0B9068 7F084538 44829000 */ mtc1 $v0, $f18 /* 0B906C 7F08453C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -18672,7 +21533,7 @@ glabel sub_GAME_7F084360 /* 0B90AC 7F08457C 46062201 */ sub.s $f8, $f4, $f6 /* 0B90B0 7F084580 E7A8003C */ swc1 $f8, 0x3c($sp) .L7F084584: -/* 0B90B4 7F084584 0C002914 */ jal get_random_value +/* 0B90B4 7F084584 0C002914 */ jal randomGetNext /* 0B90B8 7F084588 00000000 */ nop /* 0B90BC 7F08458C 44825000 */ mtc1 $v0, $f10 /* 0B90C0 7F084590 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -18707,7 +21568,7 @@ glabel sub_GAME_7F084360 /* 0B9130 7F084600 AFA00014 */ sw $zero, 0x14($sp) /* 0B9134 7F084604 0FC27094 */ jal sub_GAME_7F09C250 /* 0B9138 7F084608 AFA00010 */ sw $zero, 0x10($sp) -/* 0B913C 7F08460C 0C002914 */ jal get_random_value +/* 0B913C 7F08460C 0C002914 */ jal randomGetNext /* 0B9140 7F084610 00000000 */ nop /* 0B9144 7F084614 2401000F */ li $at, 15 /* 0B9148 7F084618 0041001B */ divu $zero, $v0, $at @@ -19961,6 +22822,5094 @@ glabel MoveBond /* 0BA188 7F085658 0FC2FF01 */ jal get_controls_locked_flag /* 0BA18C 7F08565C 00000000 */ nop /* 0BA190 7F085660 14400005 */ bnez $v0, .L7F085678 +/* 0BA194 7F085664 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BA198 7F085668 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BA19C 7F08566C 24050042 */ li $a1, 66 +/* 0BA1A0 7F085670 0C002382 */ jal play_sfx_a1 +/* 0BA1A4 7F085674 02003025 */ move $a2, $s0 +.L7F085678: +/* 0BA1A8 7F085678 8E040000 */ lw $a0, ($s0) +.L7F08567C: +/* 0BA1AC 7F08567C 24050008 */ li $a1, 8 +/* 0BA1B0 7F085680 0C002461 */ jal sfx_c_70009184 +/* 0BA1B4 7F085684 240661A8 */ li $a2, 25000 +/* 0BA1B8 7F085688 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA1BC 7F08568C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA1C0 7F085690 240C61A8 */ li $t4, 25000 +/* 0BA1C4 7F085694 AC4C0000 */ sw $t4, ($v0) +/* 0BA1C8 7F085698 100000D1 */ b .L7F0859E0 +/* 0BA1CC 7F08569C 8E280000 */ lw $t0, ($s1) +.L7F0856A0: +/* 0BA1D0 7F0856A0 8E280000 */ lw $t0, ($s1) +/* 0BA1D4 7F0856A4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA1D8 7F0856A8 44814000 */ mtc1 $at, $f8 +/* 0BA1DC 7F0856AC C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA1E0 7F0856B0 3C018005 */ lui $at, %hi(D_800551E8) +/* 0BA1E4 7F0856B4 C42451E8 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA1E8 7F0856B8 46085003 */ div.s $f0, $f10, $f8 +/* 0BA1EC 7F0856BC C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA1F0 7F0856C0 46043083 */ div.s $f2, $f6, $f4 +/* 0BA1F4 7F0856C4 4614003C */ c.lt.s $f0, $f20 +/* 0BA1F8 7F0856C8 00000000 */ nop +/* 0BA1FC 7F0856CC 45020003 */ bc1fl .L7F0856DC +/* 0BA200 7F0856D0 4614103C */ c.lt.s $f2, $f20 +/* 0BA204 7F0856D4 46000007 */ neg.s $f0, $f0 +/* 0BA208 7F0856D8 4614103C */ c.lt.s $f2, $f20 +.L7F0856DC: +/* 0BA20C 7F0856DC 00000000 */ nop +/* 0BA210 7F0856E0 45020003 */ bc1fl .L7F0856F0 +/* 0BA214 7F0856E4 4602003C */ c.lt.s $f0, $f2 +/* 0BA218 7F0856E8 46001087 */ neg.s $f2, $f2 +/* 0BA21C 7F0856EC 4602003C */ c.lt.s $f0, $f2 +.L7F0856F0: +/* 0BA220 7F0856F0 46000306 */ mov.s $f12, $f0 +/* 0BA224 7F0856F4 45020003 */ bc1fl .L7F085704 +/* 0BA228 7F0856F8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA22C 7F0856FC 46001306 */ mov.s $f12, $f2 +/* 0BA230 7F085700 460CA03C */ c.lt.s $f20, $f12 +.L7F085704: +/* 0BA234 7F085704 00000000 */ nop +/* 0BA238 7F085708 45000043 */ bc1f .L7F085818 +/* 0BA23C 7F08570C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA240 7F085710 44815000 */ mtc1 $at, $f10 +/* 0BA244 7F085714 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA248 7F085718 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA24C 7F08571C 460C503C */ c.lt.s $f10, $f12 +/* 0BA250 7F085720 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA254 7F085724 45020004 */ bc1fl .L7F085738 +/* 0BA258 7F085728 8E190004 */ lw $t9, 4($s0) +/* 0BA25C 7F08572C 44816000 */ mtc1 $at, $f12 +/* 0BA260 7F085730 00000000 */ nop +/* 0BA264 7F085734 8E190004 */ lw $t9, 4($s0) +.L7F085738: +/* 0BA268 7F085738 5720000E */ bnezl $t9, .L7F085774 +/* 0BA26C 7F08573C 8E040004 */ lw $a0, 4($s0) +/* 0BA270 7F085740 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA274 7F085744 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA278 7F085748 14400009 */ bnez $v0, .L7F085770 +/* 0BA27C 7F08574C C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA280 7F085750 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BA284 7F085754 3C068003 */ lui $a2, %hi(SFX_8003645C) +/* 0BA288 7F085758 24C6645C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x645c +/* 0BA28C 7F08575C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BA290 7F085760 2405003E */ li $a1, 62 +/* 0BA294 7F085764 0C002382 */ jal play_sfx_a1 +/* 0BA298 7F085768 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA29C 7F08576C C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085770: +/* 0BA2A0 7F085770 8E040004 */ lw $a0, 4($s0) +.L7F085774: +/* 0BA2A4 7F085774 3C018005 */ lui $at, %hi(D_800551EC) +/* 0BA2A8 7F085778 24050008 */ li $a1, 8 +/* 0BA2AC 7F08577C 50800034 */ beql $a0, $zero, .L7F085850 +/* 0BA2B0 7F085780 8E0E0000 */ lw $t6, ($s0) +/* 0BA2B4 7F085784 C42051EC */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA2B8 7F085788 24067FFF */ li $a2, 32767 +/* 0BA2BC 7F08578C 3C018005 */ lui $at, %hi(D_800551F4) +/* 0BA2C0 7F085790 4600603C */ c.lt.s $f12, $f0 +/* 0BA2C4 7F085794 00000000 */ nop +/* 0BA2C8 7F085798 45000009 */ bc1f .L7F0857C0 +/* 0BA2CC 7F08579C 00000000 */ nop +/* 0BA2D0 7F0857A0 3C018005 */ lui $at, %hi(D_800551F0) +/* 0BA2D4 7F0857A4 C42851F0 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA2D8 7F0857A8 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA2DC 7F0857AC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA2E0 7F0857B0 4600228D */ trunc.w.s $f10, $f4 +/* 0BA2E4 7F0857B4 44065000 */ mfc1 $a2, $f10 +/* 0BA2E8 7F0857B8 10000013 */ b .L7F085808 +/* 0BA2EC 7F0857BC 00000000 */ nop +.L7F0857C0: +/* 0BA2F0 7F0857C0 C42851F4 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA2F4 7F0857C4 3C018005 */ lui $at, %hi(D_800551F8) +/* 0BA2F8 7F0857C8 4608603C */ c.lt.s $f12, $f8 +/* 0BA2FC 7F0857CC 00000000 */ nop +/* 0BA300 7F0857D0 4500000D */ bc1f .L7F085808 +/* 0BA304 7F0857D4 00000000 */ nop +/* 0BA308 7F0857D8 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA30C 7F0857DC C42451F8 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BA310 7F0857E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA314 7F0857E4 44814000 */ mtc1 $at, $f8 +/* 0BA318 7F0857E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA31C 7F0857EC 3C018005 */ lui $at, %hi(D_800551FC) +/* 0BA320 7F0857F0 C42451FC */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BA324 7F0857F4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA328 7F0857F8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA32C 7F0857FC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA330 7F085800 44064000 */ mfc1 $a2, $f8 +/* 0BA334 7F085804 00000000 */ nop +.L7F085808: +/* 0BA338 7F085808 0C002461 */ jal sfx_c_70009184 +/* 0BA33C 7F08580C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA340 7F085810 1000000E */ b .L7F08584C +/* 0BA344 7F085814 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085818: +/* 0BA348 7F085818 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA34C 7F08581C 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA350 7F085820 8E040004 */ lw $a0, 4($s0) +/* 0BA354 7F085824 5080000A */ beql $a0, $zero, .L7F085850 +/* 0BA358 7F085828 8E0E0000 */ lw $t6, ($s0) +/* 0BA35C 7F08582C 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA360 7F085830 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA364 7F085834 10400005 */ beqz $v0, .L7F08584C +/* 0BA368 7F085838 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA36C 7F08583C 8E040004 */ lw $a0, 4($s0) +/* 0BA370 7F085840 0C002408 */ jal sfxDeactivate +/* 0BA374 7F085844 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA378 7F085848 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F08584C: +/* 0BA37C 7F08584C 8E0E0000 */ lw $t6, ($s0) +.L7F085850: +/* 0BA380 7F085850 55C0000D */ bnezl $t6, .L7F085888 +/* 0BA384 7F085854 8E040000 */ lw $a0, ($s0) +/* 0BA388 7F085858 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA38C 7F08585C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA390 7F085860 14400008 */ bnez $v0, .L7F085884 +/* 0BA394 7F085864 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA398 7F085868 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BA39C 7F08586C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BA3A0 7F085870 24050041 */ li $a1, 65 +/* 0BA3A4 7F085874 02003025 */ move $a2, $s0 +/* 0BA3A8 7F085878 0C002382 */ jal play_sfx_a1 +/* 0BA3AC 7F08587C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA3B0 7F085880 C7AC0244 */ lwc1 $f12, 0x244($sp) +.L7F085884: +/* 0BA3B4 7F085884 8E040000 */ lw $a0, ($s0) +.L7F085888: +/* 0BA3B8 7F085888 1080001A */ beqz $a0, .L7F0858F4 +/* 0BA3BC 7F08588C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA3C0 7F085890 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA3C4 7F085894 240F7FFF */ li $t7, 32767 +/* 0BA3C8 7F085898 AC4F0000 */ sw $t7, ($v0) +/* 0BA3CC 7F08589C 3C018005 */ lui $at, %hi(D_80055200) +/* 0BA3D0 7F0858A0 C4265200 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BA3D4 7F0858A4 3C018005 */ lui $at, %hi(D_80055204) +/* 0BA3D8 7F0858A8 24050008 */ li $a1, 8 +/* 0BA3DC 7F0858AC 4606603C */ c.lt.s $f12, $f6 +/* 0BA3E0 7F0858B0 00000000 */ nop +/* 0BA3E4 7F0858B4 4500000D */ bc1f .L7F0858EC +/* 0BA3E8 7F0858B8 00000000 */ nop +/* 0BA3EC 7F0858BC C4245204 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BA3F0 7F0858C0 3C018005 */ lui $at, %hi(D_80055208) +/* 0BA3F4 7F0858C4 C4285208 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BA3F8 7F0858C8 46046282 */ mul.s $f10, $f12, $f4 +/* 0BA3FC 7F0858CC 3C018005 */ lui $at, %hi(D_8005520C) +/* 0BA400 7F0858D0 C424520C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BA404 7F0858D4 46085183 */ div.s $f6, $f10, $f8 +/* 0BA408 7F0858D8 46043280 */ add.s $f10, $f6, $f4 +/* 0BA40C 7F0858DC 4600520D */ trunc.w.s $f8, $f10 +/* 0BA410 7F0858E0 44184000 */ mfc1 $t8, $f8 +/* 0BA414 7F0858E4 00000000 */ nop +/* 0BA418 7F0858E8 AC580000 */ sw $t8, ($v0) +.L7F0858EC: +/* 0BA41C 7F0858EC 0C002461 */ jal sfx_c_70009184 +/* 0BA420 7F0858F0 8C460000 */ lw $a2, ($v0) +.L7F0858F4: +/* 0BA424 7F0858F4 0FC17674 */ jal get_item_in_hand +/* 0BA428 7F0858F8 00002025 */ move $a0, $zero +/* 0BA42C 7F0858FC 24010020 */ li $at, 32 +/* 0BA430 7F085900 14410007 */ bne $v0, $at, .L7F085920 +/* 0BA434 7F085904 3C048005 */ lui $a0, %hi(clock_timer) +/* 0BA438 7F085908 8E280000 */ lw $t0, ($s1) +/* 0BA43C 7F08590C 3C018005 */ lui $at, %hi(D_80055210) +/* 0BA440 7F085910 C4265210 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BA444 7F085914 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BA448 7F085918 10000004 */ b .L7F08592C +/* 0BA44C 7F08591C 46061080 */ add.s $f2, $f2, $f6 +.L7F085920: +/* 0BA450 7F085920 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA454 7F085924 C422646C */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BA458 7F085928 8E280000 */ lw $t0, ($s1) +.L7F08592C: +/* 0BA45C 7F08592C 3C018005 */ lui $at, %hi(D_80055214) +/* 0BA460 7F085930 C4205214 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BA464 7F085934 3C018005 */ lui $at, %hi(D_80055218) +/* 0BA468 7F085938 4602003C */ c.lt.s $f0, $f2 +/* 0BA46C 7F08593C 00000000 */ nop +/* 0BA470 7F085940 45000002 */ bc1f .L7F08594C +/* 0BA474 7F085944 00000000 */ nop +/* 0BA478 7F085948 46000086 */ mov.s $f2, $f0 +.L7F08594C: +/* 0BA47C 7F08594C C4205218 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BA480 7F085950 4600103C */ c.lt.s $f2, $f0 +/* 0BA484 7F085954 00000000 */ nop +/* 0BA488 7F085958 45000002 */ bc1f .L7F085964 +/* 0BA48C 7F08595C 00000000 */ nop +/* 0BA490 7F085960 46000086 */ mov.s $f2, $f0 +.L7F085964: +/* 0BA494 7F085964 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA498 7F085968 00001025 */ move $v0, $zero +/* 0BA49C 7F08596C 18800014 */ blez $a0, .L7F0859C0 +/* 0BA4A0 7F085970 3C018005 */ lui $at, %hi(D_8005521C) +/* 0BA4A4 7F085974 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4A8 7F085978 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4AC 7F08597C C420521C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BA4B0 7F085980 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4B4 7F085984 24420001 */ addiu $v0, $v0, 1 +/* 0BA4B8 7F085988 0044082A */ slt $at, $v0, $a0 +/* 0BA4BC 7F08598C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4C0 7F085990 5020000A */ beql $at, $zero, .L7F0859BC +/* 0BA4C4 7F085994 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4C8 7F085998 46029400 */ add.s $f16, $f18, $f2 +.L7F08599C: +/* 0BA4CC 7F08599C 24420001 */ addiu $v0, $v0, 1 +/* 0BA4D0 7F0859A0 0044082A */ slt $at, $v0, $a0 +/* 0BA4D4 7F0859A4 E4700000 */ swc1 $f16, ($v1) +/* 0BA4D8 7F0859A8 C4700000 */ lwc1 $f16, ($v1) +/* 0BA4DC 7F0859AC 46100482 */ mul.s $f18, $f0, $f16 +/* 0BA4E0 7F0859B0 5420FFFA */ bnezl $at, .L7F08599C +/* 0BA4E4 7F0859B4 46029400 */ add.s $f16, $f18, $f2 +/* 0BA4E8 7F0859B8 46029400 */ add.s $f16, $f18, $f2 +.L7F0859BC: +/* 0BA4EC 7F0859BC E4700000 */ swc1 $f16, ($v1) +.L7F0859C0: +/* 0BA4F0 7F0859C0 3C038003 */ lui $v1, %hi(D_80036470) +/* 0BA4F4 7F0859C4 24636470 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x6470 +/* 0BA4F8 7F0859C8 3C018005 */ lui $at, %hi(D_80055220) +/* 0BA4FC 7F0859CC C4245220 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BA500 7F0859D0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA504 7F0859D4 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BA508 7F0859D8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA50C 7F0859DC E42A646C */ swc1 $f10, %lo(D_8003646C)($at) +.L7F0859E0: +/* 0BA510 7F0859E0 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.L7F0859E4: +/* 0BA514 7F0859E4 44810000 */ mtc1 $at, $f0 +/* 0BA518 7F0859E8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA51C 7F0859EC C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA520 7F0859F0 3C018005 */ lui $at, %hi(D_80055224) +/* 0BA524 7F0859F4 C4245224 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BA528 7F0859F8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BA52C 7F0859FC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BA530 7F085A00 4406A000 */ mfc1 $a2, $f20 +/* 0BA534 7F085A04 4600A306 */ mov.s $f12, $f20 +/* 0BA538 7F085A08 46043283 */ div.s $f10, $f6, $f4 +/* 0BA53C 7F085A0C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA540 7F085A10 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA544 7F085A14 8E280000 */ lw $t0, ($s1) +/* 0BA548 7F085A18 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA54C 7F085A1C 4614203C */ c.lt.s $f4, $f20 +/* 0BA550 7F085A20 00000000 */ nop +/* 0BA554 7F085A24 45000002 */ bc1f .L7F085A30 +/* 0BA558 7F085A28 00000000 */ nop +/* 0BA55C 7F085A2C E514019C */ swc1 $f20, 0x19c($t0) +.L7F085A30: +/* 0BA560 7F085A30 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA564 7F085A34 4600A386 */ mov.s $f14, $f20 +/* 0BA568 7F085A38 3C018005 */ lui $at, %hi(D_80055228) +/* 0BA56C 7F085A3C C4285228 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BA570 7F085A40 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA574 7F085A44 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA578 7F085A48 0FC15FAB */ jal sinf +/* 0BA57C 7F085A4C 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BA580 7F085A50 8E2C0000 */ lw $t4, ($s1) +/* 0BA584 7F085A54 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA588 7F085A58 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA58C 7F085A5C C5860174 */ lwc1 $f6, 0x174($t4) +/* 0BA590 7F085A60 3C018005 */ lui $at, %hi(D_8005522C) +/* 0BA594 7F085A64 46003102 */ mul.s $f4, $f6, $f0 +/* 0BA598 7F085A68 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BA59C 7F085A6C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA5A0 7F085A70 C428522C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BA5A4 7F085A74 3C018003 */ lui $at, %hi(D_80036464) +/* 0BA5A8 7F085A78 460A3100 */ add.s $f4, $f6, $f10 +/* 0BA5AC 7F085A7C C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BA5B0 7F085A80 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA5B4 7F085A84 0FC15FA8 */ jal cosf +/* 0BA5B8 7F085A88 46064301 */ sub.s $f12, $f8, $f6 +/* 0BA5BC 7F085A8C 8E390000 */ lw $t9, ($s1) +/* 0BA5C0 7F085A90 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA5C4 7F085A94 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BA5C8 7F085A98 C72A0174 */ lwc1 $f10, 0x174($t9) +/* 0BA5CC 7F085A9C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BA5D0 7F085AA0 24050001 */ li $a1, 1 +/* 0BA5D4 7F085AA4 46005102 */ mul.s $f4, $f10, $f0 +/* 0BA5D8 7F085AA8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA5DC 7F085AAC 46082182 */ mul.s $f6, $f4, $f8 +/* 0BA5E0 7F085AB0 46065100 */ add.s $f4, $f10, $f6 +/* 0BA5E4 7F085AB4 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BA5E8 7F085AB8 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BA5EC 7F085ABC 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BA5F0 7F085AC0 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BA5F4 7F085AC4 24010002 */ li $at, 2 +/* 0BA5F8 7F085AC8 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 0BA5FC 7F085ACC 55410237 */ bnel $t2, $at, .L7F0863AC +/* 0BA600 7F085AD0 8E280000 */ lw $t0, ($s1) +/* 0BA604 7F085AD4 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 0BA608 7F085AD8 59A00234 */ blezl $t5, .L7F0863AC +/* 0BA60C 7F085ADC 8E280000 */ lw $t0, ($s1) +/* 0BA610 7F085AE0 8E280000 */ lw $t0, ($s1) +/* 0BA614 7F085AE4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA618 7F085AE8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA61C 7F085AEC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA620 7F085AF0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BA624 7F085AF4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BA628 7F085AF8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA62C 7F085AFC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BA630 7F085B00 46082281 */ sub.s $f10, $f4, $f8 +/* 0BA634 7F085B04 460E3003 */ div.s $f0, $f6, $f14 +/* 0BA638 7F085B08 460E5083 */ div.s $f2, $f10, $f14 +/* 0BA63C 7F085B0C 46000182 */ mul.s $f6, $f0, $f0 +/* 0BA640 7F085B10 00000000 */ nop +/* 0BA644 7F085B14 46021102 */ mul.s $f4, $f2, $f2 +/* 0BA648 7F085B18 0C007DF8 */ jal sqrtf +/* 0BA64C 7F085B1C 46043300 */ add.s $f12, $f6, $f4 +/* 0BA650 7F085B20 8E280000 */ lw $t0, ($s1) +/* 0BA654 7F085B24 46000086 */ mov.s $f2, $f0 +/* 0BA658 7F085B28 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BA65C 7F085B2C 4614403C */ c.lt.s $f8, $f20 +/* 0BA660 7F085B30 00000000 */ nop +/* 0BA664 7F085B34 45000002 */ bc1f .L7F085B40 +/* 0BA668 7F085B38 00000000 */ nop +/* 0BA66C 7F085B3C 46000087 */ neg.s $f2, $f0 +.L7F085B40: +/* 0BA670 7F085B40 10000219 */ b .L7F0863A8 +/* 0BA674 7F085B44 E5020174 */ swc1 $f2, 0x174($t0) +.L7F085B48: +/* 0BA678 7F085B48 8E040000 */ lw $a0, ($s0) +/* 0BA67C 7F085B4C 50800019 */ beql $a0, $zero, .L7F085BB4 +/* 0BA680 7F085B50 8E040004 */ lw $a0, 4($s0) +/* 0BA684 7F085B54 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA688 7F085B58 00000000 */ nop +/* 0BA68C 7F085B5C 10400014 */ beqz $v0, .L7F085BB0 +/* 0BA690 7F085B60 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0BA694 7F085B64 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0BA698 7F085B68 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) +/* 0BA69C 7F085B6C 244299B4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x664c +/* 0BA6A0 7F085B70 000F5940 */ sll $t3, $t7, 5 +/* 0BA6A4 7F085B74 016F5823 */ subu $t3, $t3, $t7 +/* 0BA6A8 7F085B78 8C4E0000 */ lw $t6, ($v0) +/* 0BA6AC 7F085B7C 000B5880 */ sll $t3, $t3, 2 +/* 0BA6B0 7F085B80 016F5821 */ addu $t3, $t3, $t7 +/* 0BA6B4 7F085B84 000B58C0 */ sll $t3, $t3, 3 +/* 0BA6B8 7F085B88 01CB3023 */ subu $a2, $t6, $t3 +/* 0BA6BC 7F085B8C 18C00006 */ blez $a2, .L7F085BA8 +/* 0BA6C0 7F085B90 AC460000 */ sw $a2, ($v0) +/* 0BA6C4 7F085B94 8E040000 */ lw $a0, ($s0) +/* 0BA6C8 7F085B98 0C002461 */ jal sfx_c_70009184 +/* 0BA6CC 7F085B9C 24050008 */ li $a1, 8 +/* 0BA6D0 7F085BA0 10000004 */ b .L7F085BB4 +/* 0BA6D4 7F085BA4 8E040004 */ lw $a0, 4($s0) +.L7F085BA8: +/* 0BA6D8 7F085BA8 0C002408 */ jal sfxDeactivate +/* 0BA6DC 7F085BAC 8E040000 */ lw $a0, ($s0) +.L7F085BB0: +/* 0BA6E0 7F085BB0 8E040004 */ lw $a0, 4($s0) +.L7F085BB4: +/* 0BA6E4 7F085BB4 10800007 */ beqz $a0, .L7F085BD4 +/* 0BA6E8 7F085BB8 00000000 */ nop +/* 0BA6EC 7F085BBC 0C00237C */ jal sfxGetArg0Unk3F +/* 0BA6F0 7F085BC0 00000000 */ nop +/* 0BA6F4 7F085BC4 10400003 */ beqz $v0, .L7F085BD4 +/* 0BA6F8 7F085BC8 00000000 */ nop +/* 0BA6FC 7F085BCC 0C002408 */ jal sfxDeactivate +/* 0BA700 7F085BD0 8E040004 */ lw $a0, 4($s0) +.L7F085BD4: +/* 0BA704 7F085BD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA708 7F085BD8 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA70C 7F085BDC 3C018003 */ lui $at, %hi(D_80036AF4) +/* 0BA710 7F085BE0 C42A6AF4 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BA714 7F085BE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA718 7F085BE8 44813000 */ mtc1 $at, $f6 +/* 0BA71C 7F085BEC 8E280000 */ lw $t0, ($s1) +/* 0BA720 7F085BF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BA724 7F085BF4 46065102 */ mul.s $f4, $f10, $f6 +/* 0BA728 7F085BF8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BA72C 7F085BFC E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BA730 7F085C00 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BA734 7F085C04 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BA738 7F085C08 00000000 */ nop +/* 0BA73C 7F085C0C 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BA740 7F085C10 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BA744 7F085C14 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BA748 7F085C18 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BA74C 7F085C1C C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BA750 7F085C20 46000207 */ neg.s $f8, $f0 +/* 0BA754 7F085C24 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA758 7F085C28 46082402 */ mul.s $f16, $f4, $f8 +/* 0BA75C 7F085C2C 46068101 */ sub.s $f4, $f16, $f6 +/* 0BA760 7F085C30 46005482 */ mul.s $f18, $f10, $f0 +/* 0BA764 7F085C34 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BA768 7F085C38 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BA76C 7F085C3C C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BA770 7F085C40 46089281 */ sub.s $f10, $f18, $f8 +/* 0BA774 7F085C44 46063102 */ mul.s $f4, $f6, $f6 +/* 0BA778 7F085C48 E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BA77C 7F085C4C C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BA780 7F085C50 46084282 */ mul.s $f10, $f8, $f8 +/* 0BA784 7F085C54 460A2080 */ add.s $f2, $f4, $f10 +/* 0BA788 7F085C58 44812000 */ mtc1 $at, $f4 +/* 0BA78C 7F085C5C 00000000 */ nop +/* 0BA790 7F085C60 4602203E */ c.le.s $f4, $f2 +/* 0BA794 7F085C64 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BA798 7F085C68 45000008 */ bc1f .L7F085C8C +/* 0BA79C 7F085C6C 00000000 */ nop +/* 0BA7A0 7F085C70 3C018005 */ lui $at, %hi(D_80055230) +/* 0BA7A4 7F085C74 C4205230 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BA7A8 7F085C78 46003282 */ mul.s $f10, $f6, $f0 +/* 0BA7AC 7F085C7C 00000000 */ nop +/* 0BA7B0 7F085C80 46004102 */ mul.s $f4, $f8, $f0 +/* 0BA7B4 7F085C84 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BA7B8 7F085C88 E7A4021C */ swc1 $f4, 0x21c($sp) +.L7F085C8C: +/* 0BA7BC 7F085C8C 3C018005 */ lui $at, %hi(D_80055234) +/* 0BA7C0 7F085C90 C4305234 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BA7C4 7F085C94 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BA7C8 7F085C98 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA7CC 7F085C9C C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BA7D0 7F085CA0 46103002 */ mul.s $f0, $f6, $f16 +/* 0BA7D4 7F085CA4 4614003C */ c.lt.s $f0, $f20 +/* 0BA7D8 7F085CA8 46105302 */ mul.s $f12, $f10, $f16 +/* 0BA7DC 7F085CAC 45020003 */ bc1fl .L7F085CBC +/* 0BA7E0 7F085CB0 4614103C */ c.lt.s $f2, $f20 +/* 0BA7E4 7F085CB4 46000007 */ neg.s $f0, $f0 +/* 0BA7E8 7F085CB8 4614103C */ c.lt.s $f2, $f20 +.L7F085CBC: +/* 0BA7EC 7F085CBC 3C018005 */ lui $at, %hi(D_80055238) +/* 0BA7F0 7F085CC0 45020003 */ bc1fl .L7F085CD0 +/* 0BA7F4 7F085CC4 4614603C */ c.lt.s $f12, $f20 +/* 0BA7F8 7F085CC8 46001087 */ neg.s $f2, $f2 +/* 0BA7FC 7F085CCC 4614603C */ c.lt.s $f12, $f20 +.L7F085CD0: +/* 0BA800 7F085CD0 00000000 */ nop +/* 0BA804 7F085CD4 45020003 */ bc1fl .L7F085CE4 +/* 0BA808 7F085CD8 4600103C */ c.lt.s $f2, $f0 +/* 0BA80C 7F085CDC 46006307 */ neg.s $f12, $f12 +/* 0BA810 7F085CE0 4600103C */ c.lt.s $f2, $f0 +.L7F085CE4: +/* 0BA814 7F085CE4 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BA818 7F085CE8 45020003 */ bc1fl .L7F085CF8 +/* 0BA81C 7F085CEC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA820 7F085CF0 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BA824 7F085CF4 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085CF8: +/* 0BA828 7F085CF8 460C403C */ c.lt.s $f8, $f12 +/* 0BA82C 7F085CFC 00000000 */ nop +/* 0BA830 7F085D00 45020003 */ bc1fl .L7F085D10 +/* 0BA834 7F085D04 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BA838 7F085D08 E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BA83C 7F085D0C C7A40218 */ lwc1 $f4, 0x218($sp) +.L7F085D10: +/* 0BA840 7F085D10 C4265238 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BA844 7F085D14 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BA848 7F085D18 44810000 */ mtc1 $at, $f0 +/* 0BA84C 7F085D1C 4604303E */ c.le.s $f6, $f4 +/* 0BA850 7F085D20 00000000 */ nop +/* 0BA854 7F085D24 45020008 */ bc1fl .L7F085D48 +/* 0BA858 7F085D28 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA85C 7F085D2C C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA860 7F085D30 4610503C */ c.lt.s $f10, $f16 +/* 0BA864 7F085D34 00000000 */ nop +/* 0BA868 7F085D38 45020003 */ bc1fl .L7F085D48 +/* 0BA86C 7F085D3C C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BA870 7F085D40 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BA874 7F085D44 C7A80398 */ lwc1 $f8, 0x398($sp) +.L7F085D48: +/* 0BA878 7F085D48 4608003E */ c.le.s $f0, $f8 +/* 0BA87C 7F085D4C 00000000 */ nop +/* 0BA880 7F085D50 4502000B */ bc1fl .L7F085D80 +/* 0BA884 7F085D54 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BA888 7F085D58 46004101 */ sub.s $f4, $f8, $f0 +/* 0BA88C 7F085D5C 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BA890 7F085D60 44815000 */ mtc1 $at, $f10 +/* 0BA894 7F085D64 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BA898 7F085D68 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA89C 7F085D6C 460A3203 */ div.s $f8, $f6, $f10 +/* 0BA8A0 7F085D70 46082180 */ add.s $f6, $f4, $f8 +/* 0BA8A4 7F085D74 1000000A */ b .L7F085DA0 +/* 0BA8A8 7F085D78 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BA8AC 7F085D7C C7AA0398 */ lwc1 $f10, 0x398($sp) +.L7F085D80: +/* 0BA8B0 7F085D80 3C018005 */ lui $at, %hi(D_8005523C) +/* 0BA8B4 7F085D84 C426523C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BA8B8 7F085D88 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BA8BC 7F085D8C 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BA8C0 7F085D90 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BA8C4 7F085D94 46064283 */ div.s $f10, $f8, $f6 +/* 0BA8C8 7F085D98 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA8CC 7F085D9C E508019C */ swc1 $f8, 0x19c($t0) +.L7F085DA0: +/* 0BA8D0 7F085DA0 8E280000 */ lw $t0, ($s1) +/* 0BA8D4 7F085DA4 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BA8D8 7F085DA8 4614003C */ c.lt.s $f0, $f20 +/* 0BA8DC 7F085DAC 00000000 */ nop +/* 0BA8E0 7F085DB0 45020005 */ bc1fl .L7F085DC8 +/* 0BA8E4 7F085DB4 3C013F80 */ lui $at, 0x3f80 +/* 0BA8E8 7F085DB8 E514019C */ swc1 $f20, 0x19c($t0) +/* 0BA8EC 7F085DBC 1000000C */ b .L7F085DF0 +/* 0BA8F0 7F085DC0 8E280000 */ lw $t0, ($s1) +/* 0BA8F4 7F085DC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F085DC8: +/* 0BA8F8 7F085DC8 44813000 */ mtc1 $at, $f6 +/* 0BA8FC 7F085DCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA900 7F085DD0 4600303C */ c.lt.s $f6, $f0 +/* 0BA904 7F085DD4 00000000 */ nop +/* 0BA908 7F085DD8 45020006 */ bc1fl .L7F085DF4 +/* 0BA90C 7F085DDC C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BA910 7F085DE0 44812000 */ mtc1 $at, $f4 +/* 0BA914 7F085DE4 00000000 */ nop +/* 0BA918 7F085DE8 E504019C */ swc1 $f4, 0x19c($t0) +/* 0BA91C 7F085DEC 8E280000 */ lw $t0, ($s1) +.L7F085DF0: +/* 0BA920 7F085DF0 C7AC0398 */ lwc1 $f12, 0x398($sp) +.L7F085DF4: +/* 0BA924 7F085DF4 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BA928 7F085DF8 0FC202CD */ jal sub_GAME_7F080B34 +/* 0BA92C 7F085DFC 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BA930 7F085E00 8E280000 */ lw $t0, ($s1) +/* 0BA934 7F085E04 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA938 7F085E08 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA93C 7F085E0C C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BA940 7F085E10 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BA944 7F085E14 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BA948 7F085E18 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA94C 7F085E1C 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA950 7F085E20 00000000 */ nop +/* 0BA954 7F085E24 46060102 */ mul.s $f4, $f0, $f6 +/* 0BA958 7F085E28 46044281 */ sub.s $f10, $f8, $f4 +/* 0BA95C 7F085E2C C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BA960 7F085E30 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BA964 7F085E34 46064100 */ add.s $f4, $f8, $f6 +/* 0BA968 7F085E38 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BA96C 7F085E3C C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BA970 7F085E40 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BA974 7F085E44 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BA978 7F085E48 00000000 */ nop +/* 0BA97C 7F085E4C 46060282 */ mul.s $f10, $f0, $f6 +/* 0BA980 7F085E50 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA984 7F085E54 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BA988 7F085E58 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BA98C 7F085E5C 46085180 */ add.s $f6, $f10, $f8 +/* 0BA990 7F085E60 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BA994 7F085E64 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA998 7F085E68 C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BA99C 7F085E6C E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BA9A0 7F085E70 46043280 */ add.s $f10, $f6, $f4 +/* 0BA9A4 7F085E74 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BA9A8 7F085E78 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BA9AC 7F085E7C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BA9B0 7F085E80 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BA9B4 7F085E84 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BA9B8 7F085E88 E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BA9BC 7F085E8C 8D0C0488 */ lw $t4, 0x488($t0) +/* 0BA9C0 7F085E90 0FC24406 */ jal get_debug_fast_bond_flag +/* 0BA9C4 7F085E94 AFAC0200 */ sw $t4, 0x200($sp) +/* 0BA9C8 7F085E98 50400021 */ beql $v0, $zero, .L7F085F20 +/* 0BA9CC 7F085E9C 8E390000 */ lw $t9, ($s1) +/* 0BA9D0 7F085EA0 8E280000 */ lw $t0, ($s1) +/* 0BA9D4 7F085EA4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BA9D8 7F085EA8 44810000 */ mtc1 $at, $f0 +/* 0BA9DC 7F085EAC C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BA9E0 7F085EB0 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA9E4 7F085EB4 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BA9E8 7F085EB8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0BA9EC 7F085EBC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA9F0 7F085EC0 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BA9F4 7F085EC4 C42E8378 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BA9F8 7F085EC8 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA9FC 7F085ECC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAA00 7F085ED0 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BAA04 7F085ED4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA08 7F085ED8 00000000 */ nop +/* 0BAA0C 7F085EDC 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA10 7F085EE0 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA14 7F085EE4 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BAA18 7F085EE8 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BAA1C 7F085EEC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAA20 7F085EF0 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BAA24 7F085EF4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAA28 7F085EF8 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BAA2C 7F085EFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA30 7F085F00 460A4180 */ add.s $f6, $f8, $f10 +/* 0BAA34 7F085F04 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAA38 7F085F08 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAA3C 7F085F0C 00000000 */ nop +/* 0BAA40 7F085F10 46002202 */ mul.s $f8, $f4, $f0 +/* 0BAA44 7F085F14 46085180 */ add.s $f6, $f10, $f8 +/* 0BAA48 7F085F18 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BAA4C 7F085F1C 8E390000 */ lw $t9, ($s1) +.L7F085F20: +/* 0BAA50 7F085F20 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BAA54 7F085F24 00002825 */ move $a1, $zero +/* 0BAA58 7F085F28 C7241274 */ lwc1 $f4, 0x1274($t9) +/* 0BAA5C 7F085F2C 4604A032 */ c.eq.s $f20, $f4 +/* 0BAA60 7F085F30 00000000 */ nop +/* 0BAA64 7F085F34 45000002 */ bc1f .L7F085F40 +/* 0BAA68 7F085F38 00000000 */ nop +/* 0BAA6C 7F085F3C 24050001 */ li $a1, 1 +.L7F085F40: +/* 0BAA70 7F085F40 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAA74 7F085F44 00000000 */ nop +/* 0BAA78 7F085F48 8E2A0000 */ lw $t2, ($s1) +/* 0BAA7C 7F085F4C 3C018005 */ lui $at, %hi(D_80055240) +/* 0BAA80 7F085F50 C4285240 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BAA84 7F085F54 C54A04B0 */ lwc1 $f10, 0x4b0($t2) +/* 0BAA88 7F085F58 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BAA8C 7F085F5C AFB00010 */ sw $s0, 0x10($sp) +/* 0BAA90 7F085F60 46085182 */ mul.s $f6, $f10, $f8 +/* 0BAA94 7F085F64 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAA98 7F085F68 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAA9C 7F085F6C 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAAA0 7F085F70 44073000 */ mfc1 $a3, $f6 +/* 0BAAA4 7F085F74 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAA8 7F085F78 00000000 */ nop +/* 0BAAAC 7F085F7C 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAB0 7F085F80 02002025 */ move $a0, $s0 +/* 0BAAB4 7F085F84 10400002 */ beqz $v0, .L7F085F90 +/* 0BAAB8 7F085F88 240D0001 */ li $t5, 1 +/* 0BAABC 7F085F8C AFAD0394 */ sw $t5, 0x394($sp) +.L7F085F90: +/* 0BAAC0 7F085F90 8E280000 */ lw $t0, ($s1) +/* 0BAAC4 7F085F94 3C018005 */ lui $at, %hi(D_80055244) +/* 0BAAC8 7F085F98 C42A5244 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BAACC 7F085F9C C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BAAD0 7F085FA0 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAAD4 7F085FA4 8D060494 */ lw $a2, 0x494($t0) +/* 0BAAD8 7F085FA8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BAADC 7F085FAC AFB00010 */ sw $s0, 0x10($sp) +/* 0BAAE0 7F085FB0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAAE4 7F085FB4 44074000 */ mfc1 $a3, $f8 +/* 0BAAE8 7F085FB8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAAEC 7F085FBC 00000000 */ nop +/* 0BAAF0 7F085FC0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAAF4 7F085FC4 02002025 */ move $a0, $s0 +/* 0BAAF8 7F085FC8 10400002 */ beqz $v0, .L7F085FD4 +/* 0BAAFC 7F085FCC 240F0001 */ li $t7, 1 +/* 0BAB00 7F085FD0 AFAF0394 */ sw $t7, 0x394($sp) +.L7F085FD4: +/* 0BAB04 7F085FD4 8E280000 */ lw $t0, ($s1) +/* 0BAB08 7F085FD8 8D05048C */ lw $a1, 0x48c($t0) +/* 0BAB0C 7F085FDC 8D060494 */ lw $a2, 0x494($t0) +/* 0BAB10 7F085FE0 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BAB14 7F085FE4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB18 7F085FE8 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB1C 7F085FEC 25040488 */ addiu $a0, $t0, 0x488 +/* 0BAB20 7F085FF0 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB24 7F085FF4 02002025 */ move $a0, $s0 +/* 0BAB28 7F085FF8 1440000D */ bnez $v0, .L7F086030 +/* 0BAB2C 7F085FFC 00000000 */ nop +/* 0BAB30 7F086000 8E2E0000 */ lw $t6, ($s1) +/* 0BAB34 7F086004 3C018005 */ lui $at, %hi(D_80055248) +/* 0BAB38 7F086008 C4245248 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BAB3C 7F08600C C5C604B0 */ lwc1 $f6, 0x4b0($t6) +/* 0BAB40 7F086010 AFB00010 */ sw $s0, 0x10($sp) +/* 0BAB44 7F086014 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BAB48 7F086018 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAB4C 7F08601C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BAB50 7F086020 8FA60204 */ lw $a2, 0x204($sp) +/* 0BAB54 7F086024 44075000 */ mfc1 $a3, $f10 +/* 0BAB58 7F086028 0FC2C8C5 */ jal sub_GAME_7F0B2314 +/* 0BAB5C 7F08602C 00000000 */ nop +.L7F086030: +/* 0BAB60 7F086030 0FC2C8E9 */ jal sub_GAME_7F0B23A4 +/* 0BAB64 7F086034 02002025 */ move $a0, $s0 +/* 0BAB68 7F086038 104000B8 */ beqz $v0, .L7F08631C +/* 0BAB6C 7F08603C 240B0001 */ li $t3, 1 +/* 0BAB70 7F086040 AFAB0394 */ sw $t3, 0x394($sp) +/* 0BAB74 7F086044 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BAB78 7F086048 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BAB7C 7F08604C 0FC2C908 */ jal sub_GAME_7F0B2420 +/* 0BAB80 7F086050 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BAB84 7F086054 8E380000 */ lw $t8, ($s1) +/* 0BAB88 7F086058 C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BAB8C 7F08605C C7060074 */ lwc1 $f6, 0x74($t8) +/* 0BAB90 7F086060 4608303E */ c.le.s $f6, $f8 +/* 0BAB94 7F086064 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BAB98 7F086068 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BAB9C 7F08606C 450200AC */ bc1fl .L7F086320 +/* 0BABA0 7F086070 8E280000 */ lw $t0, ($s1) +/* 0BABA4 7F086074 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BABA8 7F086078 C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BABAC 7F08607C 46064381 */ sub.s $f14, $f8, $f6 +/* 0BABB0 7F086080 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BABB4 7F086084 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BABB8 7F086088 E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BABBC 7F08608C 46021282 */ mul.s $f10, $f2, $f2 +/* 0BABC0 7F086090 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BABC4 7F086094 0C007DF8 */ jal sqrtf +/* 0BABC8 7F086098 460A2300 */ add.s $f12, $f4, $f10 +/* 0BABCC 7F08609C C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BABD0 7F0860A0 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BABD4 7F0860A4 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BABD8 7F0860A8 46001083 */ div.s $f2, $f2, $f0 +/* 0BABDC 7F0860AC C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BABE0 7F0860B0 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BABE4 7F0860B4 46064101 */ sub.s $f4, $f8, $f6 +/* 0BABE8 7F0860B8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BABEC 7F0860BC E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BABF0 7F0860C0 46007383 */ div.s $f14, $f14, $f0 +/* 0BABF4 7F0860C4 46022282 */ mul.s $f10, $f4, $f2 +/* 0BABF8 7F0860C8 C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BABFC 7F0860CC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC00 7F0860D0 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BAC04 7F0860D4 46065300 */ add.s $f12, $f10, $f6 +/* 0BAC08 7F0860D8 C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BAC0C 7F0860DC C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BAC10 7F0860E0 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BAC14 7F0860E4 460A3180 */ add.s $f6, $f6, $f10 +/* 0BAC18 7F0860E8 C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BAC1C 7F0860EC 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BAC20 7F0860F0 46023282 */ mul.s $f10, $f6, $f2 +/* 0BAC24 7F0860F4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC28 7F0860F8 46062100 */ add.s $f4, $f4, $f6 +/* 0BAC2C 7F0860FC 46082181 */ sub.s $f6, $f4, $f8 +/* 0BAC30 7F086100 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BAC34 7F086104 46045480 */ add.s $f18, $f10, $f4 +/* 0BAC38 7F086108 C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BAC3C 7F08610C 46126202 */ mul.s $f8, $f12, $f18 +/* 0BAC40 7F086110 46009406 */ mov.s $f16, $f18 +/* 0BAC44 7F086114 4614403E */ c.le.s $f8, $f20 +/* 0BAC48 7F086118 46042202 */ mul.s $f8, $f4, $f4 +/* 0BAC4C 7F08611C 45020004 */ bc1fl .L7F086130 +/* 0BAC50 7F086120 4614903C */ c.lt.s $f18, $f20 +/* 0BAC54 7F086124 1000001F */ b .L7F0861A4 +/* 0BAC58 7F086128 4600A386 */ mov.s $f14, $f20 +/* 0BAC5C 7F08612C 4614903C */ c.lt.s $f18, $f20 +.L7F086130: +/* 0BAC60 7F086130 00000000 */ nop +/* 0BAC64 7F086134 45020005 */ bc1fl .L7F08614C +/* 0BAC68 7F086138 4610603E */ c.le.s $f12, $f16 +/* 0BAC6C 7F08613C C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BAC70 7F086140 46009407 */ neg.s $f16, $f18 +/* 0BAC74 7F086144 46006307 */ neg.s $f12, $f12 +/* 0BAC78 7F086148 4610603E */ c.le.s $f12, $f16 +.L7F08614C: +/* 0BAC7C 7F08614C 00000000 */ nop +/* 0BAC80 7F086150 45020004 */ bc1fl .L7F086164 +/* 0BAC84 7F086154 8E2C0000 */ lw $t4, ($s1) +/* 0BAC88 7F086158 10000012 */ b .L7F0861A4 +/* 0BAC8C 7F08615C 4600A386 */ mov.s $f14, $f20 +/* 0BAC90 7F086160 8E2C0000 */ lw $t4, ($s1) +.L7F086164: +/* 0BAC94 7F086164 C58004B0 */ lwc1 $f0, 0x4b0($t4) +/* 0BAC98 7F086168 4610003C */ c.lt.s $f0, $f16 +/* 0BAC9C 7F08616C 00000000 */ nop +/* 0BACA0 7F086170 45020004 */ bc1fl .L7F086184 +/* 0BACA4 7F086174 4600603C */ c.lt.s $f12, $f0 +/* 0BACA8 7F086178 1000000A */ b .L7F0861A4 +/* 0BACAC 7F08617C 4600A386 */ mov.s $f14, $f20 +/* 0BACB0 7F086180 4600603C */ c.lt.s $f12, $f0 +.L7F086184: +/* 0BACB4 7F086184 00000000 */ nop +/* 0BACB8 7F086188 45020004 */ bc1fl .L7F08619C +/* 0BACBC 7F08618C 46006181 */ sub.s $f6, $f12, $f0 +/* 0BACC0 7F086190 10000004 */ b .L7F0861A4 +/* 0BACC4 7F086194 4600A386 */ mov.s $f14, $f20 +/* 0BACC8 7F086198 46006181 */ sub.s $f6, $f12, $f0 +.L7F08619C: +/* 0BACCC 7F08619C 46106281 */ sub.s $f10, $f12, $f16 +/* 0BACD0 7F0861A0 460A3383 */ div.s $f14, $f6, $f10 +.L7F0861A4: +/* 0BACD4 7F0861A4 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BACD8 7F0861A8 E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BACDC 7F0861AC 46063282 */ mul.s $f10, $f6, $f6 +/* 0BACE0 7F0861B0 0C007DF8 */ jal sqrtf +/* 0BACE4 7F0861B4 460A4300 */ add.s $f12, $f8, $f10 +/* 0BACE8 7F0861B8 4600A03C */ c.lt.s $f20, $f0 +/* 0BACEC 7F0861BC C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BACF0 7F0861C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BACF4 7F0861C4 4502001B */ bc1fl .L7F086234 +/* 0BACF8 7F0861C8 C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BACFC 7F0861CC 44812000 */ mtc1 $at, $f4 +/* 0BAD00 7F0861D0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD04 7F0861D4 44814000 */ mtc1 $at, $f8 +/* 0BAD08 7F0861D8 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BAD0C 7F0861DC 8E390000 */ lw $t9, ($s1) +/* 0BAD10 7F0861E0 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BAD14 7F0861E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BAD18 7F0861E8 46003082 */ mul.s $f2, $f6, $f0 +/* 0BAD1C 7F0861EC 00000000 */ nop +/* 0BAD20 7F0861F0 46081302 */ mul.s $f12, $f2, $f8 +/* 0BAD24 7F0861F4 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BAD28 7F0861F8 C7320074 */ lwc1 $f18, 0x74($t9) +/* 0BAD2C 7F0861FC 460C9280 */ add.s $f10, $f18, $f12 +/* 0BAD30 7F086200 460A203E */ c.le.s $f4, $f10 +/* 0BAD34 7F086204 00000000 */ nop +/* 0BAD38 7F086208 45000009 */ bc1f .L7F086230 +/* 0BAD3C 7F08620C 00000000 */ nop +/* 0BAD40 7F086210 46122181 */ sub.s $f6, $f4, $f18 +/* 0BAD44 7F086214 44814000 */ mtc1 $at, $f8 +/* 0BAD48 7F086218 00000000 */ nop +/* 0BAD4C 7F08621C 46083283 */ div.s $f10, $f6, $f8 +/* 0BAD50 7F086220 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BAD54 7F086224 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BAD58 7F086228 46008103 */ div.s $f4, $f16, $f0 +/* 0BAD5C 7F08622C 46047380 */ add.s $f14, $f14, $f4 +.L7F086230: +/* 0BAD60 7F086230 C7A6019C */ lwc1 $f6, 0x19c($sp) +.L7F086234: +/* 0BAD64 7F086234 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BAD68 7F086238 C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BAD6C 7F08623C C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BAD70 7F086240 46083301 */ sub.s $f12, $f6, $f8 +/* 0BAD74 7F086244 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BAD78 7F086248 8E280000 */ lw $t0, ($s1) +/* 0BAD7C 7F08624C 46045401 */ sub.s $f16, $f10, $f4 +/* 0BAD80 7F086250 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BAD84 7F086254 46083481 */ sub.s $f18, $f6, $f8 +/* 0BAD88 7F086258 46045181 */ sub.s $f6, $f10, $f4 +/* 0BAD8C 7F08625C 46129202 */ mul.s $f8, $f18, $f18 +/* 0BAD90 7F086260 00000000 */ nop +/* 0BAD94 7F086264 46063282 */ mul.s $f10, $f6, $f6 +/* 0BAD98 7F086268 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BAD9C 7F08626C 460A4100 */ add.s $f4, $f8, $f10 +/* 0BADA0 7F086270 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BADA4 7F086274 00000000 */ nop +/* 0BADA8 7F086278 46108282 */ mul.s $f10, $f16, $f16 +/* 0BADAC 7F08627C 460A4200 */ add.s $f8, $f8, $f10 +/* 0BADB0 7F086280 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BADB4 7F086284 4608203C */ c.lt.s $f4, $f8 +/* 0BADB8 7F086288 C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BADBC 7F08628C 45000003 */ bc1f .L7F08629C +/* 0BADC0 7F086290 46045201 */ sub.s $f8, $f10, $f4 +/* 0BADC4 7F086294 46009306 */ mov.s $f12, $f18 +/* 0BADC8 7F086298 46003406 */ mov.s $f16, $f6 +.L7F08629C: +/* 0BADCC 7F08629C C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BADD0 7F0862A0 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BADD4 7F0862A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BADD8 7F0862A8 46083003 */ div.s $f0, $f6, $f8 +/* 0BADDC 7F0862AC 00002825 */ move $a1, $zero +/* 0BADE0 7F0862B0 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BADE4 7F0862B4 00000000 */ nop +/* 0BADE8 7F0862B8 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BADEC 7F0862BC 46065200 */ add.s $f8, $f10, $f6 +/* 0BADF0 7F0862C0 46100102 */ mul.s $f4, $f0, $f16 +/* 0BADF4 7F0862C4 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BADF8 7F0862C8 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BADFC 7F0862CC 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BAE00 7F0862D0 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE04 7F0862D4 46062200 */ add.s $f8, $f4, $f6 +/* 0BAE08 7F0862D8 E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BAE0C 7F0862DC E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BAE10 7F0862E0 8E2A0000 */ lw $t2, ($s1) +/* 0BAE14 7F0862E4 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BAE18 7F0862E8 E5440494 */ swc1 $f4, 0x494($t2) +/* 0BAE1C 7F0862EC 8E2F0000 */ lw $t7, ($s1) +/* 0BAE20 7F0862F0 8FAD0200 */ lw $t5, 0x200($sp) +/* 0BAE24 7F0862F4 ADED0488 */ sw $t5, 0x488($t7) +/* 0BAE28 7F0862F8 8E2E0000 */ lw $t6, ($s1) +/* 0BAE2C 7F0862FC C5C61274 */ lwc1 $f6, 0x1274($t6) +/* 0BAE30 7F086300 4606A032 */ c.eq.s $f20, $f6 +/* 0BAE34 7F086304 00000000 */ nop +/* 0BAE38 7F086308 45000002 */ bc1f .L7F086314 +/* 0BAE3C 7F08630C 00000000 */ nop +/* 0BAE40 7F086310 24050001 */ li $a1, 1 +.L7F086314: +/* 0BAE44 7F086314 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0BAE48 7F086318 00000000 */ nop +.L7F08631C: +/* 0BAE4C 7F08631C 8E280000 */ lw $t0, ($s1) +.L7F086320: +/* 0BAE50 7F086320 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BAE54 7F086324 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BAE58 7F086328 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAE5C 7F08632C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAE60 7F086330 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BAE64 7F086334 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BAE68 7F086338 46062381 */ sub.s $f14, $f4, $f6 +/* 0BAE6C 7F08633C 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE70 7F086340 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BAE74 7F086344 46042182 */ mul.s $f6, $f4, $f4 +/* 0BAE78 7F086348 46065000 */ add.s $f0, $f10, $f6 +/* 0BAE7C 7F08634C 46140032 */ c.eq.s $f0, $f20 +/* 0BAE80 7F086350 46000306 */ mov.s $f12, $f0 +/* 0BAE84 7F086354 45010006 */ bc1t .L7F086370 +/* 0BAE88 7F086358 00000000 */ nop +/* 0BAE8C 7F08635C 46021202 */ mul.s $f8, $f2, $f2 +/* 0BAE90 7F086360 00000000 */ nop +/* 0BAE94 7F086364 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BAE98 7F086368 46044280 */ add.s $f10, $f8, $f4 +/* 0BAE9C 7F08636C 46005303 */ div.s $f12, $f10, $f0 +.L7F086370: +/* 0BAEA0 7F086370 0C007DF8 */ jal sqrtf +/* 0BAEA4 7F086374 00000000 */ nop +/* 0BAEA8 7F086378 C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BAEAC 7F08637C 8E280000 */ lw $t0, ($s1) +/* 0BAEB0 7F086380 46080102 */ mul.s $f4, $f0, $f8 +/* 0BAEB4 7F086384 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAEB8 7F086388 46043280 */ add.s $f10, $f6, $f4 +/* 0BAEBC 7F08638C E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BAEC0 7F086390 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BAEC4 7F086394 8E280000 */ lw $t0, ($s1) +/* 0BAEC8 7F086398 46060102 */ mul.s $f4, $f0, $f6 +/* 0BAECC 7F08639C C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAED0 7F0863A0 46044280 */ add.s $f10, $f8, $f4 +/* 0BAED4 7F0863A4 E50A127C */ swc1 $f10, 0x127c($t0) +.L7F0863A8: +/* 0BAED8 7F0863A8 8E280000 */ lw $t0, ($s1) +.L7F0863AC: +/* 0BAEDC 7F0863AC 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BAEE0 7F0863B0 C428524C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BAEE4 7F0863B4 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BAEE8 7F0863B8 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BAEEC 7F0863BC C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BAEF0 7F0863C0 46083103 */ div.s $f4, $f6, $f8 +/* 0BAEF4 7F0863C4 44813000 */ mtc1 $at, $f6 +/* 0BAEF8 7F0863C8 C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BAEFC 7F0863CC 46065203 */ div.s $f8, $f10, $f6 +/* 0BAF00 7F0863D0 46082080 */ add.s $f2, $f4, $f8 +/* 0BAF04 7F0863D4 0FC23ABE */ jal sub_GAME_7F08EAF8 +/* 0BAF08 7F0863D8 E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BAF0C 7F0863DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAF10 7F0863E0 44817000 */ mtc1 $at, $f14 +/* 0BAF14 7F0863E4 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BAF18 7F0863E8 4407A000 */ mfc1 $a3, $f20 +/* 0BAF1C 7F0863EC 46000306 */ mov.s $f12, $f0 +/* 0BAF20 7F0863F0 4602703C */ c.lt.s $f14, $f2 +/* 0BAF24 7F0863F4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BAF28 7F0863F8 45020004 */ bc1fl .L7F08640C +/* 0BAF2C 7F0863FC 44817000 */ mtc1 $at, $f14 +/* 0BAF30 7F086400 10000008 */ b .L7F086424 +/* 0BAF34 7F086404 46007086 */ mov.s $f2, $f14 +/* 0BAF38 7F086408 44817000 */ mtc1 $at, $f14 +.L7F08640C: +/* 0BAF3C 7F08640C 00000000 */ nop +/* 0BAF40 7F086410 460E103C */ c.lt.s $f2, $f14 +/* 0BAF44 7F086414 00000000 */ nop +/* 0BAF48 7F086418 45020003 */ bc1fl .L7F086428 +/* 0BAF4C 7F08641C 8E2B0000 */ lw $t3, ($s1) +/* 0BAF50 7F086420 46007086 */ mov.s $f2, $f14 +.L7F086424: +/* 0BAF54 7F086424 8E2B0000 */ lw $t3, ($s1) +.L7F086428: +/* 0BAF58 7F086428 24010001 */ li $at, 1 +/* 0BAF5C 7F08642C 44061000 */ mfc1 $a2, $f2 +/* 0BAF60 7F086430 8D7804E8 */ lw $t8, 0x4e8($t3) +/* 0BAF64 7F086434 17010004 */ bne $t8, $at, .L7F086448 +/* 0BAF68 7F086438 3C018005 */ lui $at, %hi(D_80055250) +/* 0BAF6C 7F08643C C42A5250 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BAF70 7F086440 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BAF74 7F086444 00000000 */ nop +.L7F086448: +/* 0BAF78 7F086448 0FC17839 */ jal sub_GAME_7F05E0E4 +/* 0BAF7C 7F08644C C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BAF80 7F086450 8E2C0000 */ lw $t4, ($s1) +/* 0BAF84 7F086454 3C018005 */ lui $at, %hi(D_80055254) +/* 0BAF88 7F086458 C4245254 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BAF8C 7F08645C C586015C */ lwc1 $f6, 0x15c($t4) +/* 0BAF90 7F086460 46043302 */ mul.s $f12, $f6, $f4 +/* 0BAF94 7F086464 0FC1797C */ jal sub_GAME_7F05E5F0 +/* 0BAF98 7F086468 00000000 */ nop +/* 0BAF9C 7F08646C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0BAFA0 7F086470 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BAFA4 7F086474 3C198003 */ lui $t9, %hi(in_tank_flag) +/* 0BAFA8 7F086478 5060012F */ beql $v1, $zero, .L7F086938 +/* 0BAFAC 7F08647C 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFB0 7F086480 8F396448 */ lw $t9, %lo(in_tank_flag)($t9) +/* 0BAFB4 7F086484 24010001 */ li $at, 1 +/* 0BAFB8 7F086488 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_800799B8) +/* 0BAFBC 7F08648C 5721012A */ bnel $t9, $at, .L7F086938 +/* 0BAFC0 7F086490 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFC4 7F086494 8D4A99B8 */ lw $t2, %lo(dword_CODE_bss_800799B8)($t2) +/* 0BAFC8 7F086498 24010002 */ li $at, 2 +/* 0BAFCC 7F08649C 55410126 */ bnel $t2, $at, .L7F086938 +/* 0BAFD0 7F0864A0 8FA40394 */ lw $a0, 0x394($sp) +/* 0BAFD4 7F0864A4 8C620004 */ lw $v0, 4($v1) +/* 0BAFD8 7F0864A8 00002025 */ move $a0, $zero +/* 0BAFDC 7F0864AC AFA20138 */ sw $v0, 0x138($sp) +/* 0BAFE0 7F0864B0 8C4D0014 */ lw $t5, 0x14($v0) +/* 0BAFE4 7F0864B4 00408025 */ move $s0, $v0 +/* 0BAFE8 7F0864B8 8DAF0008 */ lw $t7, 8($t5) +/* 0BAFEC 7F0864BC 8DEE0008 */ lw $t6, 8($t7) +/* 0BAFF0 7F0864C0 8DCB0014 */ lw $t3, 0x14($t6) +/* 0BAFF4 7F0864C4 8D780004 */ lw $t8, 4($t3) +/* 0BAFF8 7F0864C8 0FC17674 */ jal get_item_in_hand +/* 0BAFFC 7F0864CC AFB80130 */ sw $t8, 0x130($sp) +/* 0BB000 7F0864D0 38430020 */ xori $v1, $v0, 0x20 +/* 0BB004 7F0864D4 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB008 7F0864D8 50800005 */ beql $a0, $zero, .L7F0864F0 +/* 0BB00C 7F0864DC AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB010 7F0864E0 0FC17722 */ jal get_hands_firing_status +/* 0BB014 7F0864E4 00002025 */ move $a0, $zero +/* 0BB018 7F0864E8 0002202B */ sltu $a0, $zero, $v0 +/* 0BB01C 7F0864EC AE0400C4 */ sw $a0, 0xc4($s0) +.L7F0864F0: +/* 0BB020 7F0864F0 3C018003 */ lui $at, %hi(D_8003646C) +/* 0BB024 7F0864F4 C428646C */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB028 7F0864F8 3C018003 */ lui $at, %hi(D_80036474) +/* 0BB02C 7F0864FC 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB030 7F086500 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB034 7F086504 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB038 7F086508 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB03C 7F08650C E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB040 7F086510 C4266464 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB044 7F086514 3C018005 */ lui $at, %hi(D_80055258) +/* 0BB048 7F086518 E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB04C 7F08651C C4245258 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB050 7F086520 3C018003 */ lui $at, %hi(D_80036464) +/* 0BB054 7F086524 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB058 7F086528 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0BB05C 7F08652C 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB060 7F086530 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB064 7F086534 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB068 7F086538 8D990014 */ lw $t9, 0x14($t4) +/* 0BB06C 7F08653C 0FC1629F */ jal matrix_scalar_multiply +/* 0BB070 7F086540 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0BB074 7F086544 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) +/* 0BB078 7F086548 C42A99A8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB07C 7F08654C C42499AC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB080 7F086550 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) +/* 0BB084 7F086554 46005187 */ neg.s $f6, $f10 +/* 0BB088 7F086558 C42A99B0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB08C 7F08655C E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB090 7F086560 46002207 */ neg.s $f8, $f4 +/* 0BB094 7F086564 46005187 */ neg.s $f6, $f10 +/* 0BB098 7F086568 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB09C 7F08656C E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB0A0 7F086570 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB0A4 7F086574 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0BB0A8 7F086578 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB0AC 7F08657C 8E280000 */ lw $t0, ($s1) +/* 0BB0B0 7F086580 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB0B4 7F086584 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB0B8 7F086588 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0BC 7F08658C 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB0C0 7F086590 46082280 */ add.s $f10, $f4, $f8 +/* 0BB0C4 7F086594 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB0C8 7F086598 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB0CC 7F08659C 46043200 */ add.s $f8, $f6, $f4 +/* 0BB0D0 7F0865A0 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB0D4 7F0865A4 8D0A0488 */ lw $t2, 0x488($t0) +/* 0BB0D8 7F0865A8 8C4D0010 */ lw $t5, 0x10($v0) +/* 0BB0DC 7F0865AC ADAA0014 */ sw $t2, 0x14($t5) +/* 0BB0E0 7F0865B0 8E280000 */ lw $t0, ($s1) +/* 0BB0E4 7F0865B4 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB0E8 7F0865B8 8C440010 */ lw $a0, 0x10($v0) +/* 0BB0EC 7F0865BC 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB0F0 7F0865C0 8D060494 */ lw $a2, 0x494($t0) +/* 0BB0F4 7F0865C4 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB0F8 7F0865C8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB0FC 7F0865CC 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0BB100 7F0865D0 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB104 7F0865D4 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB108 7F0865D8 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB10C 7F0865DC 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB110 7F0865E0 8DEE0010 */ lw $t6, 0x10($t7) +/* 0BB114 7F0865E4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0BB118 7F0865E8 8DC40014 */ lw $a0, 0x14($t6) +/* 0BB11C 7F0865EC 3C038005 */ lui $v1, %hi(clock_timer) +/* 0BB120 7F0865F0 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0BB124 7F0865F4 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB128 7F0865F8 8C6B0000 */ lw $t3, ($v1) +/* 0BB12C 7F0865FC 00001025 */ move $v0, $zero +/* 0BB130 7F086600 3C018005 */ lui $at, %hi(D_8005525C) +/* 0BB134 7F086604 1960000C */ blez $t3, .L7F086638 +/* 0BB138 7F086608 00000000 */ nop +/* 0BB13C 7F08660C C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB140 7F086610 C420525C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB144 7F086614 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086618: +/* 0BB148 7F086618 24420001 */ addiu $v0, $v0, 1 +/* 0BB14C 7F08661C 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB150 7F086620 46022200 */ add.s $f8, $f4, $f2 +/* 0BB154 7F086624 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB158 7F086628 8C780000 */ lw $t8, ($v1) +/* 0BB15C 7F08662C 0058082A */ slt $at, $v0, $t8 +/* 0BB160 7F086630 5420FFF9 */ bnezl $at, .L7F086618 +/* 0BB164 7F086634 C60600D0 */ lwc1 $f6, 0xd0($s0) +.L7F086638: +/* 0BB168 7F086638 3C018005 */ lui $at, %hi(D_80055260) +/* 0BB16C 7F08663C C4265260 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB170 7F086640 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB174 7F086644 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB178 7F086648 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB17C 7F08664C 0FC0FA19 */ jal sub_GAME_7F03E864 +/* 0BB180 7F086650 00000000 */ nop +/* 0BB184 7F086654 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB188 7F086658 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB18C 7F08665C 44813000 */ mtc1 $at, $f6 +/* 0BB190 7F086660 8C4C0014 */ lw $t4, 0x14($v0) +/* 0BB194 7F086664 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB198 7F086668 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB19C 7F08666C C5840014 */ lwc1 $f4, 0x14($t4) +/* 0BB1A0 7F086670 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB1A4 7F086674 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB1A8 7F086678 46065100 */ add.s $f4, $f10, $f6 +/* 0BB1AC 7F08667C 0FC16008 */ jal matrix_4x4_copy +/* 0BB1B0 7F086680 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB1B4 7F086684 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1B8 7F086688 C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB1BC 7F08668C 8C990010 */ lw $t9, 0x10($a0) +/* 0BB1C0 7F086690 E7200008 */ swc1 $f0, 8($t9) +/* 0BB1C4 7F086694 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB1C8 7F086698 C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB1CC 7F08669C 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB1D0 7F0866A0 E540000C */ swc1 $f0, 0xc($t2) +/* 0BB1D4 7F0866A4 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB1D8 7F0866A8 C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB1DC 7F0866AC 8C8D0010 */ lw $t5, 0x10($a0) +/* 0BB1E0 7F0866B0 E5A00010 */ swc1 $f0, 0x10($t5) +/* 0BB1E4 7F0866B4 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 0BB1E8 7F0866B8 E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB1EC 7F0866BC 0FC10121 */ jal sub_GAME_7F040484 +/* 0BB1F0 7F0866C0 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB1F4 7F0866C4 8E250000 */ lw $a1, ($s1) +/* 0BB1F8 7F0866C8 3C068003 */ lui $a2, %hi(D_80036464) +/* 0BB1FC 7F0866CC 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB200 7F0866D0 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB204 7F0866D4 0FC1F222 */ jal sub_GAME_7F07C888 +/* 0BB208 7F0866D8 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB20C 7F0866DC 8FAF0138 */ lw $t7, 0x138($sp) +/* 0BB210 7F0866E0 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB214 7F0866E4 02002825 */ move $a1, $s0 +/* 0BB218 7F0866E8 0FC0F2E3 */ jal sub_GAME_7F03CB8C +/* 0BB21C 7F0866EC 8DE40010 */ lw $a0, 0x10($t7) +/* 0BB220 7F0866F0 0FC0F8FF */ jal sub_GAME_7F03E3FC +/* 0BB224 7F0866F4 02002025 */ move $a0, $s0 +/* 0BB228 7F0866F8 3C0E8007 */ lui $t6, %hi(ptr_list_object_lookup_indices) +/* 0BB22C 7F0866FC 8DCE9C30 */ lw $t6, %lo(ptr_list_object_lookup_indices)($t6) +/* 0BB230 7F086700 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB234 7F086704 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB238 7F086708 85C20000 */ lh $v0, ($t6) +/* 0BB23C 7F08670C 0442008A */ bltzl $v0, .L7F086938 +/* 0BB240 7F086710 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB244 7F086714 4481A000 */ mtc1 $at, $f20 +/* 0BB248 7F086718 00000000 */ nop +/* 0BB24C 7F08671C 8FAC0138 */ lw $t4, 0x138($sp) +.L7F086720: +/* 0BB250 7F086720 00025880 */ sll $t3, $v0, 2 +/* 0BB254 7F086724 01625823 */ subu $t3, $t3, $v0 +/* 0BB258 7F086728 000B5880 */ sll $t3, $t3, 2 +/* 0BB25C 7F08672C 8D990010 */ lw $t9, 0x10($t4) +/* 0BB260 7F086730 01625821 */ addu $t3, $t3, $v0 +/* 0BB264 7F086734 3C188007 */ lui $t8, %hi(pos_data_entry) +/* 0BB268 7F086738 27189C38 */ addiu $t8, %lo(pos_data_entry) # addiu $t8, $t8, -0x63c8 +/* 0BB26C 7F08673C 000B5880 */ sll $t3, $t3, 2 +/* 0BB270 7F086740 01788021 */ addu $s0, $t3, $t8 +/* 0BB274 7F086744 52190076 */ beql $s0, $t9, .L7F086920 +/* 0BB278 7F086748 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB27C 7F08674C 92020000 */ lbu $v0, ($s0) +/* 0BB280 7F086750 24010003 */ li $at, 3 +/* 0BB284 7F086754 240A0001 */ li $t2, 1 +/* 0BB288 7F086758 14410054 */ bne $v0, $at, .L7F0868AC +/* 0BB28C 7F08675C 02002025 */ move $a0, $s0 +/* 0BB290 7F086760 AFAA007C */ sw $t2, 0x7c($sp) +/* 0BB294 7F086764 8E080004 */ lw $t0, 4($s0) +/* 0BB298 7F086768 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB29C 7F08676C 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB2A0 7F086770 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB2A4 7F086774 0FC0F3E2 */ jal sub_GAME_7F03CF88 +/* 0BB2A8 7F086778 AFA8006C */ sw $t0, 0x6c($sp) +/* 0BB2AC 7F08677C 26040008 */ addiu $a0, $s0, 8 +/* 0BB2B0 7F086780 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB2B4 7F086784 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB2B8 7F086788 0FC0F336 */ jal sub_GAME_7F03CCD8 +/* 0BB2BC 7F08678C 24060004 */ li $a2, 4 +/* 0BB2C0 7F086790 1040002B */ beqz $v0, .L7F086840 +/* 0BB2C4 7F086794 8FA8006C */ lw $t0, 0x6c($sp) +/* 0BB2C8 7F086798 AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB2CC 7F08679C 810D0007 */ lb $t5, 7($t0) +/* 0BB2D0 7F0867A0 24010004 */ li $at, 4 +/* 0BB2D4 7F0867A4 55A10027 */ bnel $t5, $at, .L7F086844 +/* 0BB2D8 7F0867A8 8FAC007C */ lw $t4, 0x7c($sp) +/* 0BB2DC 7F0867AC 8D030014 */ lw $v1, 0x14($t0) +/* 0BB2E0 7F0867B0 3C010100 */ lui $at, 0x100 +/* 0BB2E4 7F0867B4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB2E8 7F0867B8 000379C0 */ sll $t7, $v1, 7 +/* 0BB2EC 7F0867BC 05E00020 */ bltz $t7, .L7F086840 +/* 0BB2F0 7F0867C0 00617025 */ or $t6, $v1, $at +/* 0BB2F4 7F0867C4 AD0E0014 */ sw $t6, 0x14($t0) +/* 0BB2F8 7F0867C8 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB2FC 7F0867CC 24010003 */ li $at, 3 +/* 0BB300 7F0867D0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BB304 7F0867D4 0041001A */ div $zero, $v0, $at +/* 0BB308 7F0867D8 00001010 */ mfhi $v0 +/* 0BB30C 7F0867DC 28410002 */ slti $at, $v0, 2 +/* 0BB310 7F0867E0 1020000E */ beqz $at, .L7F08681C +/* 0BB314 7F0867E4 240500B7 */ li $a1, 183 +/* 0BB318 7F0867E8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BB31C 7F0867EC 0C002382 */ jal play_sfx_a1 +/* 0BB320 7F0867F0 00003025 */ move $a2, $zero +/* 0BB324 7F0867F4 00402025 */ move $a0, $v0 +/* 0BB328 7F0867F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB32C 7F0867FC 8FA50050 */ lw $a1, 0x50($sp) +/* 0BB330 7F086800 3C028005 */ lui $v0, %hi(D_80048380) +/* 0BB334 7F086804 8C428380 */ lw $v0, %lo(D_80048380)($v0) +/* 0BB338 7F086808 24010003 */ li $at, 3 +/* 0BB33C 7F08680C 0041001A */ div $zero, $v0, $at +/* 0BB340 7F086810 00001010 */ mfhi $v0 +/* 0BB344 7F086814 00000000 */ nop +/* 0BB348 7F086818 00000000 */ nop +.L7F08681C: +/* 0BB34C 7F08681C 18400008 */ blez $v0, .L7F086840 +/* 0BB350 7F086820 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BB354 7F086824 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BB358 7F086828 240500D5 */ li $a1, 213 +/* 0BB35C 7F08682C 0C002382 */ jal play_sfx_a1 +/* 0BB360 7F086830 00003025 */ move $a2, $zero +/* 0BB364 7F086834 00402025 */ move $a0, $v0 +/* 0BB368 7F086838 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0BB36C 7F08683C 8FA50050 */ lw $a1, 0x50($sp) +.L7F086840: +/* 0BB370 7F086840 8FAC007C */ lw $t4, 0x7c($sp) +.L7F086844: +/* 0BB374 7F086844 8FA40050 */ lw $a0, 0x50($sp) +/* 0BB378 7F086848 8FA50080 */ lw $a1, 0x80($sp) +/* 0BB37C 7F08684C 11800006 */ beqz $t4, .L7F086868 +/* 0BB380 7F086850 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB384 7F086854 0FC111C6 */ jal sub_GAME_7F044718 +/* 0BB388 7F086858 24070004 */ li $a3, 4 +/* 0BB38C 7F08685C 50400003 */ beql $v0, $zero, .L7F08686C +/* 0BB390 7F086860 8FB9007C */ lw $t9, 0x7c($sp) +/* 0BB394 7F086864 AFA0007C */ sw $zero, 0x7c($sp) +.L7F086868: +/* 0BB398 7F086868 8FB9007C */ lw $t9, 0x7c($sp) +.L7F08686C: +/* 0BB39C 7F08686C 8FAA0138 */ lw $t2, 0x138($sp) +/* 0BB3A0 7F086870 5720002B */ bnezl $t9, .L7F086920 +/* 0BB3A4 7F086874 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB3A8 7F086878 C5480058 */ lwc1 $f8, 0x58($t2) +/* 0BB3AC 7F08687C 4406A000 */ mfc1 $a2, $f20 +/* 0BB3B0 7F086880 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BB3B4 7F086884 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BB3B8 7F086888 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BB3BC 7F08688C 24070001 */ li $a3, 1 +/* 0BB3C0 7F086890 E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BB3C4 7F086894 C5460060 */ lwc1 $f6, 0x60($t2) +/* 0BB3C8 7F086898 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BB3CC 7F08689C 0FC09E01 */ jal sub_GAME_7F027804 +/* 0BB3D0 7F0868A0 8E040004 */ lw $a0, 4($s0) +/* 0BB3D4 7F0868A4 1000001E */ b .L7F086920 +/* 0BB3D8 7F0868A8 8FAF008C */ lw $t7, 0x8c($sp) +.L7F0868AC: +/* 0BB3DC 7F0868AC 24010001 */ li $at, 1 +/* 0BB3E0 7F0868B0 1441001A */ bne $v0, $at, .L7F08691C +/* 0BB3E4 7F0868B4 02002025 */ move $a0, $s0 +/* 0BB3E8 7F0868B8 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BB3EC 7F0868BC 0FC0F32C */ jal sub_GAME_7F03CCB0 +/* 0BB3F0 7F0868C0 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BB3F4 7F0868C4 8FA50060 */ lw $a1, 0x60($sp) +/* 0BB3F8 7F0868C8 8FA40064 */ lw $a0, 0x64($sp) +/* 0BB3FC 7F0868CC 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BB400 7F0868D0 58A00013 */ blezl $a1, .L7F086920 +/* 0BB404 7F0868D4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB408 7F0868D8 0FC111AE */ jal sub_GAME_7F0446B8 +/* 0BB40C 7F0868DC 24070004 */ li $a3, 4 +/* 0BB410 7F0868E0 5040000F */ beql $v0, $zero, .L7F086920 +/* 0BB414 7F0868E4 8FAF008C */ lw $t7, 0x8c($sp) +/* 0BB418 7F0868E8 0FC26C54 */ jal get_cur_playernum +/* 0BB41C 7F0868EC 00000000 */ nop +/* 0BB420 7F0868F0 8E060004 */ lw $a2, 4($s0) +/* 0BB424 7F0868F4 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BB428 7F0868F8 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BB42C 7F0868FC AFA20010 */ sw $v0, 0x10($sp) +/* 0BB430 7F086900 02002025 */ move $a0, $s0 +/* 0BB434 7F086904 24070020 */ li $a3, 32 +/* 0BB438 7F086908 0FC137BF */ jal sub_GAME_7F04DEFC +/* 0BB43C 7F08690C 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BB440 7F086910 240D005A */ li $t5, 90 +/* 0BB444 7F086914 3C018003 */ lui $at, %hi(D_80036490) +/* 0BB448 7F086918 AC2D6490 */ sw $t5, %lo(D_80036490)($at) +.L7F08691C: +/* 0BB44C 7F08691C 8FAF008C */ lw $t7, 0x8c($sp) +.L7F086920: +/* 0BB450 7F086920 25EE0002 */ addiu $t6, $t7, 2 +/* 0BB454 7F086924 AFAE008C */ sw $t6, 0x8c($sp) +/* 0BB458 7F086928 85C20000 */ lh $v0, ($t6) +/* 0BB45C 7F08692C 0443FF7C */ bgezl $v0, .L7F086720 +/* 0BB460 7F086930 8FAC0138 */ lw $t4, 0x138($sp) +/* 0BB464 7F086934 8FA40394 */ lw $a0, 0x394($sp) +.L7F086938: +/* 0BB468 7F086938 0FC2037E */ jal sub_GAME_7F080DF8 +/* 0BB46C 7F08693C 8FA50390 */ lw $a1, 0x390($sp) +/* 0BB470 7F086940 0FC2051E */ jal sub_GAME_7F081478 +/* 0BB474 7F086944 00000000 */ nop +/* 0BB478 7F086948 0FC22867 */ jal sub_GAME_7F08A19C +/* 0BB47C 7F08694C 00000000 */ nop +/* 0BB480 7F086950 0FC243DF */ jal get_debug_man_pos_flag +/* 0BB484 7F086954 00000000 */ nop +/* 0BB488 7F086958 50400008 */ beql $v0, $zero, .L7F08697C +/* 0BB48C 7F08695C 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BB490 7F086960 8E280000 */ lw $t0, ($s1) +/* 0BB494 7F086964 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BB498 7F086968 8D040488 */ lw $a0, 0x488($t0) +/* 0BB49C 7F08696C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB4A0 7F086970 0FC2CB0B */ jal copy_tile_RGB_as_24bit +/* 0BB4A4 7F086974 8D060494 */ lw $a2, 0x494($t0) +/* 0BB4A8 7F086978 8FBF002C */ lw $ra, 0x2c($sp) +.L7F08697C: +/* 0BB4AC 7F08697C D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BB4B0 7F086980 8FB00024 */ lw $s0, 0x24($sp) +/* 0BB4B4 7F086984 8FB10028 */ lw $s1, 0x28($sp) +/* 0BB4B8 7F086988 03E00008 */ jr $ra +/* 0BB4BC 7F08698C 27BD03B8 */ addiu $sp, $sp, 0x3b8 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9868 7F084CF8 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B986C 7F084CFC 3C198003 */ lui $t9, %hi(D_800367F4) # $t9, 0x8003 +/* 0B9870 7F084D00 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9874 7F084D04 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9878 7F084D08 AFB00024 */ sw $s0, 0x24($sp) +/* 0B987C 7F084D0C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9880 7F084D10 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9884 7F084D14 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9888 7F084D18 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B988C 7F084D1C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B9890 7F084D20 27396834 */ addiu $t9, %lo(D_800367F4) # addiu $t9, $t9, 0x6834 +/* 0B9894 7F084D24 8F210000 */ lw $at, ($t9) +/* 0B9898 7F084D28 27AA03AC */ addiu $t2, $sp, 0x3ac +/* 0B989C 7F084D2C 8F2C0004 */ lw $t4, 4($t9) +/* 0B98A0 7F084D30 AD410000 */ sw $at, ($t2) +/* 0B98A4 7F084D34 8F210008 */ lw $at, 8($t9) +/* 0B98A8 7F084D38 4480A000 */ mtc1 $zero, $f20 +/* 0B98AC 7F084D3C 00048600 */ sll $s0, $a0, 0x18 +/* 0B98B0 7F084D40 AD410008 */ sw $at, 8($t2) +/* 0B98B4 7F084D44 00107603 */ sra $t6, $s0, 0x18 +/* 0B98B8 7F084D48 AD4C0004 */ sw $t4, 4($t2) +/* 0B98BC 7F084D4C 29C10064 */ slti $at, $t6, 0x64 +/* 0B98C0 7F084D50 01C08025 */ move $s0, $t6 +/* 0B98C4 7F084D54 AFA00394 */ sw $zero, 0x394($sp) +/* 0B98C8 7F084D58 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B98CC 7F084D5C 10200004 */ beqz $at, .Ljp7F084D70 +/* 0B98D0 7F084D60 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B98D4 7F084D64 29C1FF9D */ slti $at, $t6, -0x63 +/* 0B98D8 7F084D68 50200004 */ beql $at, $zero, .Ljp7F084D7C +/* 0B98DC 7F084D6C 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D70: +/* 0B98E0 7F084D70 0FC1B297 */ jal return_null +/* 0B98E4 7F084D74 00000000 */ nop +/* 0B98E8 7F084D78 83AB03BF */ lb $t3, 0x3bf($sp) +.Ljp7F084D7C: +/* 0B98EC 7F084D7C 29610064 */ slti $at, $t3, 0x64 +/* 0B98F0 7F084D80 10200003 */ beqz $at, .Ljp7F084D90 +/* 0B98F4 7F084D84 2961FF9D */ slti $at, $t3, -0x63 +/* 0B98F8 7F084D88 10200003 */ beqz $at, .Ljp7F084D98 +/* 0B98FC 7F084D8C 00000000 */ nop +.Ljp7F084D90: +/* 0B9900 7F084D90 0FC1B297 */ jal return_null +/* 0B9904 7F084D94 00000000 */ nop +.Ljp7F084D98: +/* 0B9908 7F084D98 3C038003 */ lui $v1, %hi(camera_80036424) # $v1, 0x8003 +/* 0B990C 7F084D9C 24636464 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6464 +/* 0B9910 7F084DA0 8C620000 */ lw $v0, ($v1) +/* 0B9914 7F084DA4 18400015 */ blez $v0, .Ljp7F084DFC +/* 0B9918 7F084DA8 244D0001 */ addiu $t5, $v0, 1 +/* 0B991C 7F084DAC 29A10004 */ slti $at, $t5, 4 +/* 0B9920 7F084DB0 14200012 */ bnez $at, .Ljp7F084DFC +/* 0B9924 7F084DB4 AC6D0000 */ sw $t5, ($v1) +/* 0B9928 7F084DB8 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B992C 7F084DBC 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9930 7F084DC0 8E380000 */ lw $t8, ($s1) +/* 0B9934 7F084DC4 AC600000 */ sw $zero, ($v1) +/* 0B9938 7F084DC8 24040001 */ li $a0, 1 +/* 0B993C 7F084DCC AF002A54 */ sw $zero, 0x2a54($t8) +/* 0B9940 7F084DD0 8E2F0000 */ lw $t7, ($s1) +/* 0B9944 7F084DD4 0FC177BC */ jal get_item_in_hand +/* 0B9948 7F084DD8 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0B994C 7F084DDC 24040001 */ li $a0, 1 +/* 0B9950 7F084DE0 0FC1781D */ jal remove_hands_item +/* 0B9954 7F084DE4 00402825 */ move $a1, $v0 +/* 0B9958 7F084DE8 0FC177BC */ jal get_item_in_hand +/* 0B995C 7F084DEC 00002025 */ move $a0, $zero +/* 0B9960 7F084DF0 00002025 */ move $a0, $zero +/* 0B9964 7F084DF4 0FC1781D */ jal remove_hands_item +/* 0B9968 7F084DF8 00402825 */ move $a1, $v0 +.Ljp7F084DFC: +/* 0B996C 7F084DFC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 +/* 0B9970 7F084E00 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 +/* 0B9974 7F084E04 0FC1E810 */ jal currentPlayerSetField00 +/* 0B9978 7F084E08 00002025 */ move $a0, $zero +/* 0B997C 7F084E0C 0FC21176 */ jal sub_GAME_7F083FC8 +/* 0B9980 7F084E10 00000000 */ nop +/* 0B9984 7F084E14 0FC21284 */ jal sub_GAME_7F084360 +/* 0B9988 7F084E18 00000000 */ nop +/* 0B998C 7F084E1C 00102600 */ sll $a0, $s0, 0x18 +/* 0B9990 7F084E20 00045603 */ sra $t2, $a0, 0x18 +/* 0B9994 7F084E24 01402025 */ move $a0, $t2 +/* 0B9998 7F084E28 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B999C 7F084E2C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B99A0 7F084E30 0FC207E1 */ jal controller_gameplay_interaction +/* 0B99A4 7F084E34 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B99A8 7F084E38 0FC3021B */ jal get_controls_locked_flag +/* 0B99AC 7F084E3C 00000000 */ nop +/* 0B99B0 7F084E40 50400004 */ beql $v0, $zero, .Ljp7F084E54 +/* 0B99B4 7F084E44 8E390000 */ lw $t9, ($s1) +/* 0B99B8 7F084E48 0FC1FC3F */ jal sub_GAME_7F07EAF0 +/* 0B99BC 7F084E4C 00000000 */ nop +/* 0B99C0 7F084E50 8E390000 */ lw $t9, ($s1) +.Ljp7F084E54: +/* 0B99C4 7F084E54 8F2C01C8 */ lw $t4, 0x1c8($t9) +/* 0B99C8 7F084E58 11800003 */ beqz $t4, .Ljp7F084E68 +/* 0B99CC 7F084E5C 00000000 */ nop +/* 0B99D0 7F084E60 0FC1FC98 */ jal sub_GAME_7F07EC54 +/* 0B99D4 7F084E64 00000000 */ nop +.Ljp7F084E68: +/* 0B99D8 7F084E68 3C0B8003 */ lui $t3, %hi(in_tank_flag) # $t3, 0x8003 +/* 0B99DC 7F084E6C 8D6B6488 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B99E0 7F084E70 1560006E */ bnez $t3, .Ljp7F08502C +/* 0B99E4 7F084E74 00000000 */ nop +/* 0B99E8 7F084E78 0FC1E7F8 */ jal currentPlayerGetCrouchPos +/* 0B99EC 7F084E7C 00000000 */ nop +/* 0B99F0 7F084E80 5440000D */ bnezl $v0, .Ljp7F084EB8 +/* 0B99F4 7F084E84 8E280000 */ lw $t0, ($s1) +/* 0B99F8 7F084E88 8E280000 */ lw $t0, ($s1) +/* 0B99FC 7F084E8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9A00 7F084E90 44815000 */ mtc1 $at, $f10 +/* 0B9A04 7F084E94 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9A08 7F084E98 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B9A0C 7F084E9C 44812000 */ mtc1 $at, $f4 +/* 0B9A10 7F084EA0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9A14 7F084EA4 8E280000 */ lw $t0, ($s1) +/* 0B9A18 7F084EA8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B9A1C 7F084EAC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9A20 7F084EB0 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9A24 7F084EB4 8E280000 */ lw $t0, ($s1) +.Ljp7F084EB8: +/* 0B9A28 7F084EB8 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B9A2C 7F084EBC 4612A032 */ c.eq.s $f20, $f18 +/* 0B9A30 7F084EC0 00000000 */ nop +/* 0B9A34 7F084EC4 45020007 */ bc1fl .Ljp7F084EE4 +/* 0B9A38 7F084EC8 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B9A3C 7F084ECC C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9A40 7F084ED0 4606A032 */ c.eq.s $f20, $f6 +/* 0B9A44 7F084ED4 00000000 */ nop +/* 0B9A48 7F084ED8 45010054 */ bc1t .Ljp7F08502C +/* 0B9A4C 7F084EDC 00000000 */ nop +/* 0B9A50 7F084EE0 C5000188 */ lwc1 $f0, 0x188($t0) +.Ljp7F084EE4: +/* 0B9A54 7F084EE4 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9A58 7F084EE8 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B9A5C 7F084EEC 46009387 */ neg.s $f14, $f18 +/* 0B9A60 7F084EF0 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9A64 7F084EF4 00000000 */ nop +/* 0B9A68 7F084EF8 46107102 */ mul.s $f4, $f14, $f16 +/* 0B9A6C 7F084EFC 46044280 */ add.s $f10, $f8, $f4 +/* 0B9A70 7F084F00 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9A74 7F084F04 00000000 */ nop +/* 0B9A78 7F084F08 46100202 */ mul.s $f8, $f0, $f16 +/* 0B9A7C 7F084F0C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9A80 7F084F10 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9A84 7F084F14 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9A88 7F084F18 46129182 */ mul.s $f6, $f18, $f18 +/* 0B9A8C 7F084F1C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B9A90 7F084F20 0C007E08 */ jal sqrtf +/* 0B9A94 7F084F24 46065300 */ add.s $f12, $f10, $f6 +/* 0B9A98 7F084F28 8E280000 */ lw $t0, ($s1) +/* 0B9A9C 7F084F2C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B9AA0 7F084F30 3C018005 */ lui $at, %hi(D_8005516C) # $at, 0x8005 +/* 0B9AA4 7F084F34 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B9AA8 7F084F38 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9AAC 7F084F3C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9AB0 7F084F40 46044280 */ add.s $f10, $f8, $f4 +/* 0B9AB4 7F084F44 00001825 */ move $v1, $zero +/* 0B9AB8 7F084F48 2404000C */ li $a0, 12 +/* 0B9ABC 7F084F4C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B9AC0 7F084F50 8E280000 */ lw $t0, ($s1) +/* 0B9AC4 7F084F54 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B9AC8 7F084F58 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B9ACC 7F084F5C 46083100 */ add.s $f4, $f6, $f8 +/* 0B9AD0 7F084F60 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B9AD4 7F084F64 C42C519C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B9AD8 7F084F68 8E2D0000 */ lw $t5, ($s1) +.Ljp7F084F6C: +/* 0B9ADC 7F084F6C 01A31021 */ addu $v0, $t5, $v1 +/* 0B9AE0 7F084F70 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B9AE4 7F084F74 4602A032 */ c.eq.s $f20, $f2 +/* 0B9AE8 7F084F78 00000000 */ nop +/* 0B9AEC 7F084F7C 45030029 */ bc1tl .Ljp7F085024 +/* 0B9AF0 7F084F80 24630004 */ addiu $v1, $v1, 4 +/* 0B9AF4 7F084F84 4602A03C */ c.lt.s $f20, $f2 +/* 0B9AF8 7F084F88 00000000 */ nop +/* 0B9AFC 7F084F8C 45020012 */ bc1fl .Ljp7F084FD8 +/* 0B9B00 7F084F90 4614103C */ c.lt.s $f2, $f20 +/* 0B9B04 7F084F94 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9B08 7F084F98 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B9B0C 7F084F9C 00000000 */ nop +/* 0B9B10 7F084FA0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9B14 7F084FA4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9B18 7F084FA8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B9B1C 7F084FAC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9B20 7F084FB0 8E2E0000 */ lw $t6, ($s1) +/* 0B9B24 7F084FB4 01C31021 */ addu $v0, $t6, $v1 +/* 0B9B28 7F084FB8 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B9B2C 7F084FBC 4614303C */ c.lt.s $f6, $f20 +/* 0B9B30 7F084FC0 00000000 */ nop +/* 0B9B34 7F084FC4 45000016 */ bc1f .Ljp7F085020 +/* 0B9B38 7F084FC8 00000000 */ nop +/* 0B9B3C 7F084FCC 10000014 */ b .Ljp7F085020 +/* 0B9B40 7F084FD0 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9B44 7F084FD4 4614103C */ c.lt.s $f2, $f20 +.Ljp7F084FD8: +/* 0B9B48 7F084FD8 00000000 */ nop +/* 0B9B4C 7F084FDC 45020011 */ bc1fl .Ljp7F085024 +/* 0B9B50 7F084FE0 24630004 */ addiu $v1, $v1, 4 +/* 0B9B54 7F084FE4 C5280000 */ lwc1 $f8, ($t1) +/* 0B9B58 7F084FE8 46086102 */ mul.s $f4, $f12, $f8 +/* 0B9B5C 7F084FEC 00000000 */ nop +/* 0B9B60 7F084FF0 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9B64 7F084FF4 46005183 */ div.s $f6, $f10, $f0 +/* 0B9B68 7F084FF8 46061201 */ sub.s $f8, $f2, $f6 +/* 0B9B6C 7F084FFC E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9B70 7F085000 8E380000 */ lw $t8, ($s1) +/* 0B9B74 7F085004 03031021 */ addu $v0, $t8, $v1 +/* 0B9B78 7F085008 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B9B7C 7F08500C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9B80 7F085010 00000000 */ nop +/* 0B9B84 7F085014 45000002 */ bc1f .Ljp7F085020 +/* 0B9B88 7F085018 00000000 */ nop +/* 0B9B8C 7F08501C E4540180 */ swc1 $f20, 0x180($v0) +.Ljp7F085020: +/* 0B9B90 7F085020 24630004 */ addiu $v1, $v1, 4 +.Ljp7F085024: +/* 0B9B94 7F085024 5464FFD1 */ bnel $v1, $a0, .Ljp7F084F6C +/* 0B9B98 7F085028 8E2D0000 */ lw $t5, ($s1) +.Ljp7F08502C: +/* 0B9B9C 7F08502C 3C0F8003 */ lui $t7, %hi(in_tank_flag) # $t7, 0x8003 +/* 0B9BA0 7F085030 8DEF6488 */ lw $t7, %lo(in_tank_flag)($t7) +/* 0B9BA4 7F085034 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 +/* 0B9BA8 7F085038 24010001 */ li $at, 1 +/* 0B9BAC 7F08503C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c +/* 0B9BB0 7F085040 15E10211 */ bne $t7, $at, .Ljp7F085888 +/* 0B9BB4 7F085044 8E280000 */ lw $t0, ($s1) +/* 0B9BB8 7F085048 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9BBC 7F08504C C5260000 */ lwc1 $f6, ($t1) +/* 0B9BC0 7F085050 3C018005 */ lui $at, %hi(D_80055170) # $at, 0x8005 +/* 0B9BC4 7F085054 C42C51A0 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B9BC8 7F085058 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9BCC 7F08505C 3C018005 */ lui $at, %hi(D_80055174) # $at, 0x8005 +/* 0B9BD0 7F085060 C42451A4 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B9BD4 7F085064 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9BD8 7F085068 44813000 */ mtc1 $at, $f6 +/* 0B9BDC 7F08506C 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9BE0 7F085070 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B9BE4 7F085074 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9BE8 7F085078 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9BEC 7F08507C 02003825 */ move $a3, $s0 +/* 0B9BF0 7F085080 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9BF4 7F085084 27AA0368 */ addiu $t2, $sp, 0x368 +/* 0B9BF8 7F085088 46065082 */ mul.s $f2, $f10, $f6 +/* 0B9BFC 7F08508C 46024000 */ add.s $f0, $f8, $f2 +/* 0B9C00 7F085090 4600603E */ c.le.s $f12, $f0 +/* 0B9C04 7F085094 00000000 */ nop +/* 0B9C08 7F085098 45020003 */ bc1fl .Ljp7F0850A8 +/* 0B9C0C 7F08509C 4614003C */ c.lt.s $f0, $f20 +/* 0B9C10 7F0850A0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9C14 7F0850A4 4614003C */ c.lt.s $f0, $f20 +.Ljp7F0850A8: +/* 0B9C18 7F0850A8 00000000 */ nop +/* 0B9C1C 7F0850AC 45020003 */ bc1fl .Ljp7F0850BC +/* 0B9C20 7F0850B0 8D050488 */ lw $a1, 0x488($t0) +/* 0B9C24 7F0850B4 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9C28 7F0850B8 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F0850BC: +/* 0B9C2C 7F0850BC 44060000 */ mfc1 $a2, $f0 +/* 0B9C30 7F0850C0 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9C34 7F0850C4 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9C38 7F0850C8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9C3C 7F0850CC AFAA0010 */ sw $t2, 0x10($sp) +/* 0B9C40 7F0850D0 50400007 */ beql $v0, $zero, .Ljp7F0850F0 +/* 0B9C44 7F0850D4 3C01BF80 */ lui $at, 0xbf80 +/* 0B9C48 7F0850D8 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B9C4C 7F0850DC 3C018003 */ li $at, 0x80030000 # -0.000000 +/* 0B9C50 7F0850E0 E42464A4 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9C54 7F0850E4 100000CB */ b .Ljp7F085414 +/* 0B9C58 7F0850E8 8E280000 */ lw $t0, ($s1) +/* 0B9C5C 7F0850EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.Ljp7F0850F0: +/* 0B9C60 7F0850F0 44815000 */ mtc1 $at, $f10 +/* 0B9C64 7F0850F4 44813000 */ mtc1 $at, $f6 +/* 0B9C68 7F0850F8 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B9C6C 7F0850FC 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9C70 7F085100 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9C74 7F085104 0FC2CD18 */ jal getCollisionEdge_maybe +/* 0B9C78 7F085108 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B9C7C 7F08510C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9C80 7F085110 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9C84 7F085114 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9C88 7F085118 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B9C8C 7F08511C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B9C90 7F085120 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9C94 7F085124 46021202 */ mul.s $f8, $f2, $f2 +/* 0B9C98 7F085128 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9C9C 7F08512C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B9CA0 7F085130 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9CA4 7F085134 0C007E08 */ jal sqrtf +/* 0B9CA8 7F085138 46044300 */ add.s $f12, $f8, $f4 +/* 0B9CAC 7F08513C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9CB0 7F085140 44815000 */ mtc1 $at, $f10 +/* 0B9CB4 7F085144 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9CB8 7F085148 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9CBC 7F08514C 46005403 */ div.s $f16, $f10, $f0 +/* 0B9CC0 7F085150 8E280000 */ lw $t0, ($s1) +/* 0B9CC4 7F085154 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9CC8 7F085158 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9CCC 7F08515C 00000000 */ nop +/* 0B9CD0 7F085160 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9CD4 7F085164 46001307 */ neg.s $f12, $f2 +/* 0B9CD8 7F085168 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9CDC 7F08516C E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B9CE0 7F085170 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9CE4 7F085174 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9CE8 7F085178 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B9CEC 7F08517C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9CF0 7F085180 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9CF4 7F085184 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9CF8 7F085188 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9CFC 7F08518C C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9D00 7F085190 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9D04 7F085194 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D08 7F085198 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9D0C 7F08519C 46044480 */ add.s $f18, $f8, $f4 +/* 0B9D10 7F0851A0 4614903C */ c.lt.s $f18, $f20 +/* 0B9D14 7F0851A4 00000000 */ nop +/* 0B9D18 7F0851A8 45000006 */ bc1f .Ljp7F0851C4 +/* 0B9D1C 7F0851AC 00000000 */ nop +/* 0B9D20 7F0851B0 46007287 */ neg.s $f10, $f14 +/* 0B9D24 7F0851B4 46006187 */ neg.s $f6, $f12 +/* 0B9D28 7F0851B8 46009487 */ neg.s $f18, $f18 +/* 0B9D2C 7F0851BC E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9D30 7F0851C0 E7A60320 */ swc1 $f6, 0x320($sp) +.Ljp7F0851C4: +/* 0B9D34 7F0851C4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9D38 7F0851C8 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9D3C 7F0851CC C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9D40 7F0851D0 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9D44 7F0851D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9D48 7F0851D8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B9D4C 7F0851DC C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9D50 7F0851E0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9D54 7F0851E4 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9D58 7F0851E8 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9D5C 7F0851EC 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9D60 7F0851F0 4612003C */ c.lt.s $f0, $f18 +/* 0B9D64 7F0851F4 00000000 */ nop +/* 0B9D68 7F0851F8 45020004 */ bc1fl .Ljp7F08520C +/* 0B9D6C 7F0851FC C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9D70 7F085200 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9D74 7F085204 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9D78 7F085208 C7A40368 */ lwc1 $f4, 0x368($sp) +.Ljp7F08520C: +/* 0B9D7C 7F08520C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9D80 7F085210 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9D84 7F085214 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9D88 7F085218 46082081 */ sub.s $f2, $f4, $f8 +/* 0B9D8C 7F08521C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B9D90 7F085220 46021102 */ mul.s $f4, $f2, $f2 +/* 0B9D94 7F085224 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B9D98 7F085228 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B9D9C 7F08522C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B9DA0 7F085230 0C007E08 */ jal sqrtf +/* 0B9DA4 7F085234 46082300 */ add.s $f12, $f4, $f8 +/* 0B9DA8 7F085238 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9DAC 7F08523C 44815000 */ mtc1 $at, $f10 +/* 0B9DB0 7F085240 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B9DB4 7F085244 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B9DB8 7F085248 46005403 */ div.s $f16, $f10, $f0 +/* 0B9DBC 7F08524C 8E280000 */ lw $t0, ($s1) +/* 0B9DC0 7F085250 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9DC4 7F085254 46101082 */ mul.s $f2, $f2, $f16 +/* 0B9DC8 7F085258 00000000 */ nop +/* 0B9DCC 7F08525C 46107382 */ mul.s $f14, $f14, $f16 +/* 0B9DD0 7F085260 46001307 */ neg.s $f12, $f2 +/* 0B9DD4 7F085264 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B9DD8 7F085268 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B9DDC 7F08526C C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B9DE0 7F085270 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B9DE4 7F085274 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9DE8 7F085278 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B9DEC 7F08527C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9DF0 7F085280 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9DF4 7F085284 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9DF8 7F085288 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9DFC 7F08528C 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9E00 7F085290 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9E04 7F085294 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9E08 7F085298 46082480 */ add.s $f18, $f4, $f8 +/* 0B9E0C 7F08529C 4614903C */ c.lt.s $f18, $f20 +/* 0B9E10 7F0852A0 00000000 */ nop +/* 0B9E14 7F0852A4 45000006 */ bc1f .Ljp7F0852C0 +/* 0B9E18 7F0852A8 00000000 */ nop +/* 0B9E1C 7F0852AC 46007407 */ neg.s $f16, $f14 +/* 0B9E20 7F0852B0 46006287 */ neg.s $f10, $f12 +/* 0B9E24 7F0852B4 46009487 */ neg.s $f18, $f18 +/* 0B9E28 7F0852B8 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B9E2C 7F0852BC E7B0030C */ swc1 $f16, 0x30c($sp) +.Ljp7F0852C0: +/* 0B9E30 7F0852C0 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9E34 7F0852C4 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9E38 7F0852C8 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B9E3C 7F0852CC C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9E40 7F0852D0 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9E44 7F0852D4 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9E48 7F0852D8 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B9E4C 7F0852DC C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9E50 7F0852E0 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9E54 7F0852E4 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9E58 7F0852E8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9E5C 7F0852EC C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9E60 7F0852F0 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9E64 7F0852F4 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9E68 7F0852F8 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B9E6C 7F0852FC 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9E70 7F085300 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9E74 7F085304 46043080 */ add.s $f2, $f6, $f4 +/* 0B9E78 7F085308 4600103C */ c.lt.s $f2, $f0 +/* 0B9E7C 7F08530C 00000000 */ nop +/* 0B9E80 7F085310 45020003 */ bc1fl .Ljp7F085320 +/* 0B9E84 7F085314 4612003C */ c.lt.s $f0, $f18 +/* 0B9E88 7F085318 46001006 */ mov.s $f0, $f2 +/* 0B9E8C 7F08531C 4612003C */ c.lt.s $f0, $f18 +.Ljp7F085320: +/* 0B9E90 7F085320 00000000 */ nop +/* 0B9E94 7F085324 45020004 */ bc1fl .Ljp7F085338 +/* 0B9E98 7F085328 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B9E9C 7F08532C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B9EA0 7F085330 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B9EA4 7F085334 C7A20304 */ lwc1 $f2, 0x304($sp) +.Ljp7F085338: +/* 0B9EA8 7F085338 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B9EAC 7F08533C 4602A03E */ c.le.s $f20, $f2 +/* 0B9EB0 7F085340 00000000 */ nop +/* 0B9EB4 7F085344 4502000D */ bc1fl .Ljp7F08537C +/* 0B9EB8 7F085348 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EBC 7F08534C 460A103C */ c.lt.s $f2, $f10 +/* 0B9EC0 7F085350 00000000 */ nop +/* 0B9EC4 7F085354 45030006 */ bc1tl .Ljp7F085370 +/* 0B9EC8 7F085358 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B9ECC 7F08535C 4614503C */ c.lt.s $f10, $f20 +/* 0B9ED0 7F085360 00000000 */ nop +/* 0B9ED4 7F085364 45020005 */ bc1fl .Ljp7F08537C +/* 0B9ED8 7F085368 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B9EDC 7F08536C E7B00324 */ swc1 $f16, 0x324($sp) +.Ljp7F085370: +/* 0B9EE0 7F085370 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B9EE4 7F085374 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B9EE8 7F085378 C7A0031C */ lwc1 $f0, 0x31c($sp) +.Ljp7F08537C: +/* 0B9EEC 7F08537C C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9EF0 7F085380 4600A03E */ c.le.s $f20, $f0 +/* 0B9EF4 7F085384 00000000 */ nop +/* 0B9EF8 7F085388 45020022 */ bc1fl .Ljp7F085414 +/* 0B9EFC 7F08538C E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9F00 7F085390 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F04 7F085394 3C018005 */ lui $at, %hi(D_80055178) # $at, 0x8005 +/* 0B9F08 7F085398 C42451A8 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B9F0C 7F08539C C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9F10 7F0853A0 3C018005 */ lui $at, %hi(D_8005517C) # $at, 0x8005 +/* 0B9F14 7F0853A4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9F18 7F0853A8 24050001 */ li $a1, 1 +/* 0B9F1C 7F0853AC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F20 7F0853B0 C42451AC */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9F24 7F0853B4 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9F28 7F0853B8 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B9F2C 7F0853BC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9F30 7F0853C0 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0B9F34 7F0853C4 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9F38 7F0853C8 8E280000 */ lw $t0, ($s1) +/* 0B9F3C 7F0853CC E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9F40 7F0853D0 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9F44 7F0853D4 27B90368 */ addiu $t9, $sp, 0x368 +/* 0B9F48 7F0853D8 8D050488 */ lw $a1, 0x488($t0) +/* 0B9F4C 7F0853DC AFB90010 */ sw $t9, 0x10($sp) +/* 0B9F50 7F0853E0 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9F54 7F0853E4 02003825 */ move $a3, $s0 +/* 0B9F58 7F0853E8 0FC1F43B */ jal sub_GAME_7F07CAC8 +/* 0B9F5C 7F0853EC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9F60 7F0853F0 10400004 */ beqz $v0, .Ljp7F085404 +/* 0B9F64 7F0853F4 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9F68 7F0853F8 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0B9F6C 7F0853FC 10000002 */ b .Ljp7F085408 +/* 0B9F70 7F085400 E42864A4 */ swc1 $f8, %lo(D_80036464)($at) +.Ljp7F085404: +/* 0B9F74 7F085404 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085408: +/* 0B9F78 7F085408 10000002 */ b .Ljp7F085414 +/* 0B9F7C 7F08540C 8E280000 */ lw $t0, ($s1) +/* 0B9F80 7F085410 E7B40358 */ swc1 $f20, 0x358($sp) +.Ljp7F085414: +/* 0B9F84 7F085414 3C018005 */ lui $at, %hi(D_80055180) # $at, 0x8005 +/* 0B9F88 7F085418 C42E51B0 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B9F8C 7F08541C 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0B9F90 7F085420 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0B9F94 7F085424 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0B9F98 7F085428 C42464C8 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B9F9C 7F08542C C4660000 */ lwc1 $f6, ($v1) +/* 0B9FA0 7F085430 3C078003 */ lui $a3, %hi(D_80036474) # $a3, 0x8003 +/* 0B9FA4 7F085434 24E764B4 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x64b4 +/* 0B9FA8 7F085438 46043280 */ add.s $f10, $f6, $f4 +/* 0B9FAC 7F08543C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9FB0 7F085440 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9FB4 7F085444 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0B9FB8 7F085448 E46A0000 */ swc1 $f10, ($v1) +/* 0B9FBC 7F08544C C4600000 */ lwc1 $f0, ($v1) +/* 0B9FC0 7F085450 44815000 */ mtc1 $at, $f10 +/* 0B9FC4 7F085454 46006406 */ mov.s $f16, $f12 +/* 0B9FC8 7F085458 4600703E */ c.le.s $f14, $f0 +/* 0B9FCC 7F08545C 00000000 */ nop +/* 0B9FD0 7F085460 45020005 */ bc1fl .Ljp7F085478 +/* 0B9FD4 7F085464 4614003C */ c.lt.s $f0, $f20 +/* 0B9FD8 7F085468 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B9FDC 7F08546C E4680000 */ swc1 $f8, ($v1) +/* 0B9FE0 7F085470 C4600000 */ lwc1 $f0, ($v1) +/* 0B9FE4 7F085474 4614003C */ c.lt.s $f0, $f20 +.Ljp7F085478: +/* 0B9FE8 7F085478 00000000 */ nop +/* 0B9FEC 7F08547C 45020005 */ bc1fl .Ljp7F085494 +/* 0B9FF0 7F085480 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9FF4 7F085484 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9FF8 7F085488 E4660000 */ swc1 $f6, ($v1) +/* 0B9FFC 7F08548C C4600000 */ lwc1 $f0, ($v1) +/* 0BA000 7F085490 C504014C */ lwc1 $f4, 0x14c($t0) +.Ljp7F085494: +/* 0BA004 7F085494 3C018005 */ lui $at, %hi(D_80055184) # $at, 0x8005 +/* 0BA008 7F085498 C42651B4 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0BA00C 7F08549C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA010 7F0854A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA014 7F0854A4 44815000 */ mtc1 $at, $f10 +/* 0BA018 7F0854A8 3C018005 */ lui $at, %hi(D_80055188) # $at, 0x8005 +/* 0BA01C 7F0854AC 46064102 */ mul.s $f4, $f8, $f6 +/* 0BA020 7F0854B0 00000000 */ nop +/* 0BA024 7F0854B4 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BA028 7F0854B8 46004080 */ add.s $f2, $f8, $f0 +/* 0BA02C 7F0854BC 4614103C */ c.lt.s $f2, $f20 +/* 0BA030 7F0854C0 00000000 */ nop +/* 0BA034 7F0854C4 45000002 */ bc1f .Ljp7F0854D0 +/* 0BA038 7F0854C8 00000000 */ nop +/* 0BA03C 7F0854CC 460E1080 */ add.s $f2, $f2, $f14 +.Ljp7F0854D0: +/* 0BA040 7F0854D0 4602703E */ c.le.s $f14, $f2 +/* 0BA044 7F0854D4 00000000 */ nop +/* 0BA048 7F0854D8 45020003 */ bc1fl .Ljp7F0854E8 +/* 0BA04C 7F0854DC 460C1001 */ sub.s $f0, $f2, $f12 +/* 0BA050 7F0854E0 460E1081 */ sub.s $f2, $f2, $f14 +/* 0BA054 7F0854E4 460C1001 */ sub.s $f0, $f2, $f12 +.Ljp7F0854E8: +/* 0BA058 7F0854E8 C42651B8 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0BA05C 7F0854EC 3C018005 */ lui $at, %hi(D_80055190) +/* 0BA060 7F0854F0 4600303E */ c.le.s $f6, $f0 +/* 0BA064 7F0854F4 00000000 */ nop +/* 0BA068 7F0854F8 45000005 */ bc1f .Ljp7F085510 +/* 0BA06C 7F0854FC 00000000 */ nop +/* 0BA070 7F085500 3C018005 */ lui $at, %hi(D_8005518C) # $at, 0x8005 +/* 0BA074 7F085504 C42451BC */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0BA078 7F085508 10000009 */ b .Ljp7F085530 +/* 0BA07C 7F08550C 46041081 */ sub.s $f2, $f2, $f4 +.Ljp7F085510: +/* 0BA080 7F085510 C42A51C0 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0BA084 7F085514 3C018005 */ lui $at, %hi(D_80055194) # $at, 0x8005 +/* 0BA088 7F085518 460A003C */ c.lt.s $f0, $f10 +/* 0BA08C 7F08551C 00000000 */ nop +/* 0BA090 7F085520 45000003 */ bc1f .Ljp7F085530 +/* 0BA094 7F085524 00000000 */ nop +/* 0BA098 7F085528 C42851C4 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0BA09C 7F08552C 46081080 */ add.s $f2, $f2, $f8 +.Ljp7F085530: +/* 0BA0A0 7F085530 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA0A4 7F085534 00001025 */ move $v0, $zero +/* 0BA0A8 7F085538 3C018005 */ lui $at, %hi(D_80055198) # $at, 0x8005 +/* 0BA0AC 7F08553C 18800013 */ blez $a0, .Ljp7F08558C +/* 0BA0B0 7F085540 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA0B4 7F085544 C42E51C8 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0BA0B8 7F085548 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA0BC 7F08554C C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0C0 7F085550 24420001 */ addiu $v0, $v0, 1 +/* 0BA0C4 7F085554 0044082A */ slt $at, $v0, $a0 +/* 0BA0C8 7F085558 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0CC 7F08555C 5020000A */ beql $at, $zero, .Ljp7F085588 +/* 0BA0D0 7F085560 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0D4 7F085564 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085568: +/* 0BA0D8 7F085568 24420001 */ addiu $v0, $v0, 1 +/* 0BA0DC 7F08556C 0044082A */ slt $at, $v0, $a0 +/* 0BA0E0 7F085570 E60C0000 */ swc1 $f12, ($s0) +/* 0BA0E4 7F085574 C60C0000 */ lwc1 $f12, ($s0) +/* 0BA0E8 7F085578 460C7482 */ mul.s $f18, $f14, $f12 +/* 0BA0EC 7F08557C 5420FFFA */ bnezl $at, .Ljp7F085568 +/* 0BA0F0 7F085580 46029300 */ add.s $f12, $f18, $f2 +/* 0BA0F4 7F085584 46029300 */ add.s $f12, $f18, $f2 +.Ljp7F085588: +/* 0BA0F8 7F085588 E60C0000 */ swc1 $f12, ($s0) +.Ljp7F08558C: +/* 0BA0FC 7F08558C 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 +/* 0BA100 7F085590 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 +/* 0BA104 7F085594 3C018005 */ lui $at, %hi(D_8005519C) # $at, 0x8005 +/* 0BA108 7F085598 C42051CC */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0BA10C 7F08559C C6080000 */ lwc1 $f8, ($s0) +/* 0BA110 7F0855A0 3C018005 */ lui $at, %hi(D_800551A0) # $at, 0x8005 +/* 0BA114 7F0855A4 C42251D0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0BA118 7F0855A8 46004182 */ mul.s $f6, $f8, $f0 +/* 0BA11C 7F0855AC 2504048C */ addiu $a0, $t0, 0x48c +/* 0BA120 7F0855B0 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BA124 7F0855B4 E4E60000 */ swc1 $f6, ($a3) +/* 0BA128 7F0855B8 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA12C 7F0855BC 460C103E */ c.le.s $f2, $f12 +/* 0BA130 7F0855C0 00000000 */ nop +/* 0BA134 7F0855C4 45020007 */ bc1fl .Ljp7F0855E4 +/* 0BA138 7F0855C8 4614603C */ c.lt.s $f12, $f20 +/* 0BA13C 7F0855CC 46026101 */ sub.s $f4, $f12, $f2 +/* 0BA140 7F0855D0 E4E40000 */ swc1 $f4, ($a3) +/* 0BA144 7F0855D4 C4EC0000 */ lwc1 $f12, ($a3) +/* 0BA148 7F0855D8 46006283 */ div.s $f10, $f12, $f0 +/* 0BA14C 7F0855DC E60A0000 */ swc1 $f10, ($s0) +/* 0BA150 7F0855E0 4614603C */ c.lt.s $f12, $f20 +.Ljp7F0855E4: +/* 0BA154 7F0855E4 00000000 */ nop +/* 0BA158 7F0855E8 45020007 */ bc1fl .Ljp7F085608 +/* 0BA15C 7F0855EC 8D050488 */ lw $a1, 0x488($t0) +/* 0BA160 7F0855F0 46026200 */ add.s $f8, $f12, $f2 +/* 0BA164 7F0855F4 E4E80000 */ swc1 $f8, ($a3) +/* 0BA168 7F0855F8 C4E60000 */ lwc1 $f6, ($a3) +/* 0BA16C 7F0855FC 46003103 */ div.s $f4, $f6, $f0 +/* 0BA170 7F085600 E6040000 */ swc1 $f4, ($s0) +/* 0BA174 7F085604 8D050488 */ lw $a1, 0x488($t0) +.Ljp7F085608: +/* 0BA178 7F085608 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0BA17C 7F08560C 0FC1F4F3 */ jal sub_GAME_7F07CDA8 +/* 0BA180 7F085610 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BA184 7F085614 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 +/* 0BA188 7F085618 3C018005 */ lui $at, %hi(D_800551A8) # $at, 0x8005 +/* 0BA18C 7F08561C C42E51D8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0BA190 7F085620 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 +/* 0BA194 7F085624 14400009 */ bnez $v0, .Ljp7F08564C +/* 0BA198 7F085628 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0BA19C 7F08562C 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA1A0 7F085630 E43064B4 */ swc1 $f16, %lo(D_80036474)($at) +/* 0BA1A4 7F085634 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BA1A8 7F085638 3C018005 */ lui $at, %hi(D_800551AC) # $at, 0x8005 +/* 0BA1AC 7F08563C C42851DC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0BA1B0 7F085640 E4700000 */ swc1 $f16, ($v1) +/* 0BA1B4 7F085644 46085183 */ div.s $f6, $f10, $f8 +/* 0BA1B8 7F085648 E6060000 */ swc1 $f6, ($s0) +.Ljp7F08564C: +/* 0BA1BC 7F08564C 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA1C0 7F085650 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA1C4 7F085654 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA1C8 7F085658 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA1CC 7F08565C 1060002F */ beqz $v1, .Ljp7F08571C +/* 0BA1D0 7F085660 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0BA1D4 7F085664 8C6C0004 */ lw $t4, 4($v1) +/* 0BA1D8 7F085668 C4440000 */ lwc1 $f4, ($v0) +/* 0BA1DC 7F08566C C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA1E0 7F085670 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA1E4 7F085674 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0BA1E8 7F085678 02002825 */ move $a1, $s0 +/* 0BA1EC 7F08567C AFAC0300 */ sw $t4, 0x300($sp) +/* 0BA1F0 7F085680 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA1F4 7F085684 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA1F8 7F085688 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0BA1FC 7F08568C 02002025 */ move $a0, $s0 +/* 0BA200 7F085690 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA204 7F085694 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA208 7F085698 0FC1F376 */ jal sub_GAME_7F07C7B4 +/* 0BA20C 7F08569C 00000000 */ nop +/* 0BA210 7F0856A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA214 7F0856A4 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA218 7F0856A8 C4480000 */ lwc1 $f8, ($v0) +/* 0BA21C 7F0856AC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0BA220 7F0856B0 C44A0008 */ lwc1 $f10, 8($v0) +/* 0BA224 7F0856B4 3C018005 */ lui $at, %hi(D_800551BC) # $at, 0x8005 +/* 0BA228 7F0856B8 46064101 */ sub.s $f4, $f8, $f6 +/* 0BA22C 7F0856BC C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0BA230 7F0856C0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0BA234 7F0856C4 02002825 */ move $a1, $s0 +/* 0BA238 7F0856C8 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0BA23C 7F0856CC 46085181 */ sub.s $f6, $f10, $f8 +/* 0BA240 7F0856D0 C42451EC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0BA244 7F0856D4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA248 7F0856D8 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA24C 7F0856DC E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0BA250 7F0856E0 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA254 7F0856E4 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA258 7F0856E8 8FAB0300 */ lw $t3, 0x300($sp) +/* 0BA25C 7F0856EC 02002825 */ move $a1, $s0 +/* 0BA260 7F0856F0 8D6D0014 */ lw $t5, 0x14($t3) +/* 0BA264 7F0856F4 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA268 7F0856F8 C5AC0014 */ lwc1 $f12, 0x14($t5) +/* 0BA26C 7F0856FC 02002025 */ move $a0, $s0 +/* 0BA270 7F085700 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA274 7F085704 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0BA278 7F085708 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0BA27C 7F08570C 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BA280 7F085710 24050001 */ li $a1, 1 +/* 0BA284 7F085714 3C018005 */ lui $at, %hi(D_800551CC) # $at, 0x8005 +/* 0BA288 7F085718 C42E51FC */ lwc1 $f14, %lo(D_800551CC)($at) +.Ljp7F08571C: +/* 0BA28C 7F08571C 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BA290 7F085720 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BA294 7F085724 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA298 7F085728 C42C64B4 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0BA29C 7F08572C 5880001B */ blezl $a0, .Ljp7F08579C +/* 0BA2A0 7F085730 3C0143B4 */ lui $at, 0x43b4 +/* 0BA2A4 7F085734 18800018 */ blez $a0, .Ljp7F085798 +/* 0BA2A8 7F085738 00001025 */ move $v0, $zero +/* 0BA2AC 7F08573C 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 +/* 0BA2B0 7F085740 C42864C8 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0BA2B4 7F085744 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA2B8 7F085748 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA2BC 7F08574C 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA2C0 7F085750 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA2C4 7F085754 46064003 */ div.s $f0, $f8, $f6 +/* 0BA2C8 7F085758 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2CC 7F08575C 24420001 */ addiu $v0, $v0, 1 +/* 0BA2D0 7F085760 0044082A */ slt $at, $v0, $a0 +/* 0BA2D4 7F085764 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2D8 7F085768 5020000A */ beql $at, $zero, .Ljp7F085794 +/* 0BA2DC 7F08576C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA2E0 7F085770 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085774: +/* 0BA2E4 7F085774 24420001 */ addiu $v0, $v0, 1 +/* 0BA2E8 7F085778 0044082A */ slt $at, $v0, $a0 +/* 0BA2EC 7F08577C E4700000 */ swc1 $f16, ($v1) +/* 0BA2F0 7F085780 C4700000 */ lwc1 $f16, ($v1) +/* 0BA2F4 7F085784 46107482 */ mul.s $f18, $f14, $f16 +/* 0BA2F8 7F085788 5420FFFA */ bnezl $at, .Ljp7F085774 +/* 0BA2FC 7F08578C 46009400 */ add.s $f16, $f18, $f0 +/* 0BA300 7F085790 46009400 */ add.s $f16, $f18, $f0 +.Ljp7F085794: +/* 0BA304 7F085794 E4700000 */ swc1 $f16, ($v1) +.Ljp7F085798: +/* 0BA308 7F085798 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F08579C: +/* 0BA30C 7F08579C 44817000 */ mtc1 $at, $f14 +/* 0BA310 7F0857A0 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 +/* 0BA314 7F0857A4 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc +/* 0BA318 7F0857A8 3C018005 */ lui $at, %hi(D_800551D0) # $at, 0x8005 +/* 0BA31C 7F0857AC C4245200 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0BA320 7F0857B0 C4660000 */ lwc1 $f6, ($v1) +/* 0BA324 7F0857B4 8E280000 */ lw $t0, ($s1) +/* 0BA328 7F0857B8 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA32C 7F0857BC 46043082 */ mul.s $f2, $f6, $f4 +/* 0BA330 7F0857C0 44814000 */ mtc1 $at, $f8 +/* 0BA334 7F0857C4 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BA338 7F0857C8 3C018005 */ lui $at, %hi(D_800551D4) # $at, 0x8005 +/* 0BA33C 7F0857CC C4245204 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0BA340 7F0857D0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA344 7F0857D4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA348 7F0857D8 44814000 */ mtc1 $at, $f8 +/* 0BA34C 7F0857DC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA350 7F0857E0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BA354 7F0857E4 C42464A4 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0BA358 7F0857E8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BA35C 7F0857EC 46085182 */ mul.s $f6, $f10, $f8 +/* 0BA360 7F0857F0 460C2280 */ add.s $f10, $f4, $f12 +/* 0BA364 7F0857F4 44812000 */ mtc1 $at, $f4 +/* 0BA368 7F0857F8 3C018005 */ lui $at, %hi(D_800551D8) # $at, 0x8005 +/* 0BA36C 7F0857FC 46065200 */ add.s $f8, $f10, $f6 +/* 0BA370 7F085800 46041282 */ mul.s $f10, $f2, $f4 +/* 0BA374 7F085804 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA378 7F085808 C4285208 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0BA37C 7F08580C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BA380 7F085810 46082283 */ div.s $f10, $f4, $f8 +/* 0BA384 7F085814 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA388 7F085818 8E280000 */ lw $t0, ($s1) +/* 0BA38C 7F08581C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA390 7F085820 4614003C */ c.lt.s $f0, $f20 +/* 0BA394 7F085824 00000000 */ nop +/* 0BA398 7F085828 4502000A */ bc1fl .Ljp7F085854 +/* 0BA39C 7F08582C 4600703E */ c.le.s $f14, $f0 +/* 0BA3A0 7F085830 460E0180 */ add.s $f6, $f0, $f14 +.Ljp7F085834: +/* 0BA3A4 7F085834 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA3A8 7F085838 8E280000 */ lw $t0, ($s1) +/* 0BA3AC 7F08583C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3B0 7F085840 4614003C */ c.lt.s $f0, $f20 +/* 0BA3B4 7F085844 00000000 */ nop +/* 0BA3B8 7F085848 4503FFFA */ bc1tl .Ljp7F085834 +/* 0BA3BC 7F08584C 460E0180 */ add.s $f6, $f0, $f14 +/* 0BA3C0 7F085850 4600703E */ c.le.s $f14, $f0 +.Ljp7F085854: +/* 0BA3C4 7F085854 00000000 */ nop +/* 0BA3C8 7F085858 45000009 */ bc1f .Ljp7F085880 +/* 0BA3CC 7F08585C 00000000 */ nop +/* 0BA3D0 7F085860 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085864: +/* 0BA3D4 7F085864 E5040148 */ swc1 $f4, 0x148($t0) +/* 0BA3D8 7F085868 8E280000 */ lw $t0, ($s1) +/* 0BA3DC 7F08586C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA3E0 7F085870 4600703E */ c.le.s $f14, $f0 +/* 0BA3E4 7F085874 00000000 */ nop +/* 0BA3E8 7F085878 4503FFFA */ bc1tl .Ljp7F085864 +/* 0BA3EC 7F08587C 460E0101 */ sub.s $f4, $f0, $f14 +.Ljp7F085880: +/* 0BA3F0 7F085880 10000022 */ b .Ljp7F08590C +/* 0BA3F4 7F085884 00000000 */ nop +.Ljp7F085888: +/* 0BA3F8 7F085888 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0BA3FC 7F08588C C52A0000 */ lwc1 $f10, ($t1) +/* 0BA400 7F085890 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0BA404 7F085894 44812000 */ mtc1 $at, $f4 +/* 0BA408 7F085898 460A4182 */ mul.s $f6, $f8, $f10 +/* 0BA40C 7F08589C C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0BA410 7F0858A0 3C0143B4 */ lui $at, 0x43b4 +/* 0BA414 7F0858A4 46043202 */ mul.s $f8, $f6, $f4 +/* 0BA418 7F0858A8 46085000 */ add.s $f0, $f10, $f8 +/* 0BA41C 7F0858AC 4614003C */ c.lt.s $f0, $f20 +/* 0BA420 7F0858B0 00000000 */ nop +/* 0BA424 7F0858B4 45020009 */ bc1fl .Ljp7F0858DC +/* 0BA428 7F0858B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA42C 7F0858BC 44817000 */ mtc1 $at, $f14 +/* 0BA430 7F0858C0 00000000 */ nop +/* 0BA434 7F0858C4 460E0000 */ add.s $f0, $f0, $f14 +.Ljp7F0858C8: +/* 0BA438 7F0858C8 4614003C */ c.lt.s $f0, $f20 +/* 0BA43C 7F0858CC 00000000 */ nop +/* 0BA440 7F0858D0 4503FFFD */ bc1tl .Ljp7F0858C8 +/* 0BA444 7F0858D4 460E0000 */ add.s $f0, $f0, $f14 +/* 0BA448 7F0858D8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.Ljp7F0858DC: +/* 0BA44C 7F0858DC 44817000 */ mtc1 $at, $f14 +/* 0BA450 7F0858E0 00000000 */ nop +/* 0BA454 7F0858E4 4600703E */ c.le.s $f14, $f0 +/* 0BA458 7F0858E8 00000000 */ nop +/* 0BA45C 7F0858EC 45020007 */ bc1fl .Ljp7F08590C +/* 0BA460 7F0858F0 E5000148 */ swc1 $f0, 0x148($t0) +/* 0BA464 7F0858F4 460E0001 */ sub.s $f0, $f0, $f14 +.Ljp7F0858F8: +/* 0BA468 7F0858F8 4600703E */ c.le.s $f14, $f0 +/* 0BA46C 7F0858FC 00000000 */ nop +/* 0BA470 7F085900 4503FFFD */ bc1tl .Ljp7F0858F8 +/* 0BA474 7F085904 460E0001 */ sub.s $f0, $f0, $f14 +/* 0BA478 7F085908 E5000148 */ swc1 $f0, 0x148($t0) +.Ljp7F08590C: +/* 0BA47C 7F08590C 0FC20768 */ jal sub_GAME_7F081790 +/* 0BA480 7F085910 00000000 */ nop +/* 0BA484 7F085914 0FC1E7F8 */ jal currentPlayerGetCrouchPos +/* 0BA488 7F085918 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0BA48C 7F08591C 14400004 */ bnez $v0, .Ljp7F085930 +/* 0BA490 7F085920 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0BA494 7F085924 44813000 */ mtc1 $at, $f6 +/* 0BA498 7F085928 1000000B */ b .Ljp7F085958 +/* 0BA49C 7F08592C E7A602AC */ swc1 $f6, 0x2ac($sp) +.Ljp7F085930: +/* 0BA4A0 7F085930 0FC1E7F8 */ jal currentPlayerGetCrouchPos +/* 0BA4A4 7F085934 00000000 */ nop +/* 0BA4A8 7F085938 24010001 */ li $at, 1 +/* 0BA4AC 7F08593C 14410004 */ bne $v0, $at, .Ljp7F085950 +/* 0BA4B0 7F085940 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0BA4B4 7F085944 44812000 */ mtc1 $at, $f4 +/* 0BA4B8 7F085948 10000003 */ b .Ljp7F085958 +/* 0BA4BC 7F08594C E7A402AC */ swc1 $f4, 0x2ac($sp) +.Ljp7F085950: +/* 0BA4C0 7F085950 0FC1E7F8 */ jal currentPlayerGetCrouchPos +/* 0BA4C4 7F085954 00000000 */ nop +.Ljp7F085958: +/* 0BA4C8 7F085958 8E280000 */ lw $t0, ($s1) +/* 0BA4CC 7F08595C C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0BA4D0 7F085960 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA4D4 7F085964 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA4D8 7F085968 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0BA4DC 7F08596C 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0BA4E0 7F085970 46005032 */ c.eq.s $f10, $f0 +/* 0BA4E4 7F085974 00000000 */ nop +/* 0BA4E8 7F085978 4503000C */ bc1tl .Ljp7F0859AC +/* 0BA4EC 7F08597C C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0BA4F0 7F085980 44810000 */ mtc1 $at, $f0 +/* 0BA4F4 7F085984 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BA4F8 7F085988 44814000 */ mtc1 $at, $f8 +/* 0BA4FC 7F08598C 44055000 */ mfc1 $a1, $f10 +/* 0BA500 7F085990 44070000 */ mfc1 $a3, $f0 +/* 0BA504 7F085994 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0BA508 7F085998 0FC10C86 */ jal sub_GAME_7F042F18 +/* 0BA50C 7F08599C E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BA510 7F0859A0 8E280000 */ lw $t0, ($s1) +/* 0BA514 7F0859A4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0BA518 7F0859A8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.Ljp7F0859AC: +/* 0BA51C 7F0859AC 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA520 7F0859B0 3C0E8003 */ lui $t6, %hi(in_tank_flag) # $t6, 0x8003 +/* 0BA524 7F0859B4 46003032 */ c.eq.s $f6, $f0 +/* 0BA528 7F0859B8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA52C 7F0859BC 45000002 */ bc1f .Ljp7F0859C8 +/* 0BA530 7F0859C0 00000000 */ nop +/* 0BA534 7F0859C4 E51400A4 */ swc1 $f20, 0xa4($t0) +.Ljp7F0859C8: +/* 0BA538 7F0859C8 8DCE6488 */ lw $t6, %lo(in_tank_flag)($t6) +/* 0BA53C 7F0859CC 24010001 */ li $at, 1 +/* 0BA540 7F0859D0 15C10209 */ bne $t6, $at, .Ljp7F0861F8 +/* 0BA544 7F0859D4 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) # $v0, 0x8008 +/* 0BA548 7F0859D8 8C4299F8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0BA54C 7F0859DC 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BA550 7F0859E0 24010001 */ li $at, 1 +/* 0BA554 7F0859E4 144000BF */ bnez $v0, .Ljp7F085CE4 +/* 0BA558 7F0859E8 00000000 */ nop +/* 0BA55C 7F0859EC 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BA560 7F0859F0 3C018005 */ lui $at, %hi(D_800551DC) # $at, 0x8005 +/* 0BA564 7F0859F4 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA568 7F0859F8 106000AD */ beqz $v1, .Ljp7F085CB0 +/* 0BA56C 7F0859FC 00000000 */ nop +/* 0BA570 7F085A00 C424520C */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0BA574 7F085A04 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA578 7F085A08 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BA57C 7F085A0C 8C700004 */ lw $s0, 4($v1) +/* 0BA580 7F085A10 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BA584 7F085A14 460A2301 */ sub.s $f12, $f4, $f10 +/* 0BA588 7F085A18 8E180014 */ lw $t8, 0x14($s0) +/* 0BA58C 7F085A1C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0BA590 7F085A20 0FC163E7 */ jal matrix_scalar_multiply +/* 0BA594 7F085A24 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BA598 7F085A28 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 +/* 0BA59C 7F085A2C 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 +/* 0BA5A0 7F085A30 C4480000 */ lwc1 $f8, ($v0) +/* 0BA5A4 7F085A34 C4460004 */ lwc1 $f6, 4($v0) +/* 0BA5A8 7F085A38 C4440008 */ lwc1 $f4, 8($v0) +/* 0BA5AC 7F085A3C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0BA5B0 7F085A40 27A5025C */ addiu $a1, $sp, 0x25c +/* 0BA5B4 7F085A44 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0BA5B8 7F085A48 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0BA5BC 7F085A4C 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BA5C0 7F085A50 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0BA5C4 7F085A54 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA5C8 7F085A58 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0BA5CC 7F085A5C C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0BA5D0 7F085A60 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0BA5D4 7F085A64 46085180 */ add.s $f6, $f10, $f8 +/* 0BA5D8 7F085A68 44810000 */ mtc1 $at, $f0 +/* 0BA5DC 7F085A6C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA5E0 7F085A70 44817000 */ mtc1 $at, $f14 +/* 0BA5E4 7F085A74 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0BA5E8 7F085A78 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0BA5EC 7F085A7C C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0BA5F0 7F085A80 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BA5F4 7F085A84 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA5F8 7F085A88 8E2F0000 */ lw $t7, ($s1) +/* 0BA5FC 7F085A8C E7A80260 */ swc1 $f8, 0x260($sp) +/* 0BA600 7F085A90 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0BA604 7F085A94 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BA608 7F085A98 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BA60C 7F085A9C 46043280 */ add.s $f10, $f6, $f4 +/* 0BA610 7F085AA0 C42664B4 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0BA614 7F085AA4 3C018005 */ lui $at, %hi(D_800551E0) # $at, 0x8005 +/* 0BA618 7F085AA8 46064100 */ add.s $f4, $f8, $f6 +/* 0BA61C 7F085AAC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0BA620 7F085AB0 C5E20158 */ lwc1 $f2, 0x158($t7) +/* 0BA624 7F085AB4 C4285210 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0BA628 7F085AB8 460E2282 */ mul.s $f10, $f4, $f14 +/* 0BA62C 7F085ABC 4600103C */ c.lt.s $f2, $f0 +/* 0BA630 7F085AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA634 7F085AC4 44819000 */ mtc1 $at, $f18 +/* 0BA638 7F085AC8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BA63C 7F085ACC 45000002 */ bc1f .Ljp7F085AD8 +/* 0BA640 7F085AD0 46085403 */ div.s $f16, $f10, $f8 +/* 0BA644 7F085AD4 46000086 */ mov.s $f2, $f0 +.Ljp7F085AD8: +/* 0BA648 7F085AD8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BA64C 7F085ADC 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0BA650 7F085AE0 44812000 */ mtc1 $at, $f4 +/* 0BA654 7F085AE4 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA658 7F085AE8 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA65C 7F085AEC 46043283 */ div.s $f10, $f6, $f4 +/* 0BA660 7F085AF0 C6080000 */ lwc1 $f8, ($s0) +/* 0BA664 7F085AF4 3C018005 */ lui $at, %hi(D_800551E4) # $at, 0x8005 +/* 0BA668 7F085AF8 460A4180 */ add.s $f6, $f8, $f10 +/* 0BA66C 7F085AFC E6060000 */ swc1 $f6, ($s0) +/* 0BA670 7F085B00 C6000000 */ lwc1 $f0, ($s0) +/* 0BA674 7F085B04 4600903E */ c.le.s $f18, $f0 +/* 0BA678 7F085B08 00000000 */ nop +/* 0BA67C 7F085B0C 45000003 */ bc1f .Ljp7F085B1C +/* 0BA680 7F085B10 00000000 */ nop +/* 0BA684 7F085B14 E6120000 */ swc1 $f18, ($s0) +/* 0BA688 7F085B18 C6000000 */ lwc1 $f0, ($s0) +.Ljp7F085B1C: +/* 0BA68C 7F085B1C C4245214 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0BA690 7F085B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA694 7F085B24 44815000 */ mtc1 $at, $f10 +/* 0BA698 7F085B28 46040202 */ mul.s $f8, $f0, $f4 +/* 0BA69C 7F085B2C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0BA6A0 7F085B30 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0BA6A4 7F085B34 460A4302 */ mul.s $f12, $f8, $f10 +/* 0BA6A8 7F085B38 0FC160F0 */ jal cosf +/* 0BA6AC 7F085B3C 00000000 */ nop +/* 0BA6B0 7F085B40 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BA6B4 7F085B44 44817000 */ mtc1 $at, $f14 +/* 0BA6B8 7F085B48 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6BC 7F085B4C 44813000 */ mtc1 $at, $f6 +/* 0BA6C0 7F085B50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BA6C4 7F085B54 44814000 */ mtc1 $at, $f8 +/* 0BA6C8 7F085B58 46060100 */ add.s $f4, $f0, $f6 +/* 0BA6CC 7F085B5C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) # $v0, 0x8008 +/* 0BA6D0 7F085B60 24429A00 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6600 +/* 0BA6D4 7F085B64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA6D8 7F085B68 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA6DC 7F085B6C 44813000 */ mtc1 $at, $f6 +/* 0BA6E0 7F085B70 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0BA6E4 7F085B74 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) # $at, 0x8008 +/* 0BA6E8 7F085B78 8E2A0000 */ lw $t2, ($s1) +/* 0BA6EC 7F085B7C C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA6F0 7F085B80 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) # $v1, 0x8008 +/* 0BA6F4 7F085B84 E44A0000 */ swc1 $f10, ($v0) +/* 0BA6F8 7F085B88 C4420000 */ lwc1 $f2, ($v0) +/* 0BA6FC 7F085B8C 24639A10 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x65f0 +/* 0BA700 7F085B90 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA704 7F085B94 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA708 7F085B98 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) # $at, 0x8008 +/* 0BA70C 7F085B9C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA710 7F085BA0 00000000 */ nop +/* 0BA714 7F085BA4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA718 7F085BA8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA71C 7F085BAC E5480158 */ swc1 $f8, 0x158($t2) +/* 0BA720 7F085BB0 C4329A04 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA724 7F085BB4 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA728 7F085BB8 44813000 */ mtc1 $at, $f6 +/* 0BA72C 7F085BBC 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA730 7F085BC0 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA734 7F085BC4 44812000 */ mtc1 $at, $f4 +/* 0BA738 7F085BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA73C 7F085BCC 460C303C */ c.lt.s $f6, $f12 +/* 0BA740 7F085BD0 44814000 */ mtc1 $at, $f8 +/* 0BA744 7F085BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA748 7F085BD8 45000002 */ bc1f .Ljp7F085BE4 +/* 0BA74C 7F085BDC 00000000 */ nop +/* 0BA750 7F085BE0 460E8401 */ sub.s $f16, $f16, $f14 +.Ljp7F085BE4: +/* 0BA754 7F085BE4 4604603C */ c.lt.s $f12, $f4 +/* 0BA758 7F085BE8 00000000 */ nop +/* 0BA75C 7F085BEC 45020003 */ bc1fl .Ljp7F085BFC +/* 0BA760 7F085BF0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA764 7F085BF4 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA768 7F085BF8 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085BFC: +/* 0BA76C 7F085BFC 8E390000 */ lw $t9, ($s1) +/* 0BA770 7F085C00 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA774 7F085C04 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA778 7F085C08 00000000 */ nop +/* 0BA77C 7F085C0C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA780 7F085C10 46045200 */ add.s $f8, $f10, $f4 +/* 0BA784 7F085C14 44812000 */ mtc1 $at, $f4 +/* 0BA788 7F085C18 E7280148 */ swc1 $f8, 0x148($t9) +/* 0BA78C 7F085C1C 8E280000 */ lw $t0, ($s1) +/* 0BA790 7F085C20 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA794 7F085C24 4600703E */ c.le.s $f14, $f0 +/* 0BA798 7F085C28 00000000 */ nop +/* 0BA79C 7F085C2C 45000005 */ bc1f .Ljp7F085C44 +/* 0BA7A0 7F085C30 00000000 */ nop +/* 0BA7A4 7F085C34 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA7A8 7F085C38 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA7AC 7F085C3C 8E280000 */ lw $t0, ($s1) +/* 0BA7B0 7F085C40 C5000148 */ lwc1 $f0, 0x148($t0) +.Ljp7F085C44: +/* 0BA7B4 7F085C44 4614003C */ c.lt.s $f0, $f20 +/* 0BA7B8 7F085C48 00000000 */ nop +/* 0BA7BC 7F085C4C 45020005 */ bc1fl .Ljp7F085C64 +/* 0BA7C0 7F085C50 C4420000 */ lwc1 $f2, ($v0) +/* 0BA7C4 7F085C54 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA7C8 7F085C58 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA7CC 7F085C5C 8E280000 */ lw $t0, ($s1) +/* 0BA7D0 7F085C60 C4420000 */ lwc1 $f2, ($v0) +.Ljp7F085C64: +/* 0BA7D4 7F085C64 C4680000 */ lwc1 $f8, ($v1) +/* 0BA7D8 7F085C68 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA7DC 7F085C6C 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA7E0 7F085C70 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA7E4 7F085C74 00000000 */ nop +/* 0BA7E8 7F085C78 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA7EC 7F085C7C C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA7F0 7F085C80 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA7F4 7F085C84 46043200 */ add.s $f8, $f6, $f4 +/* 0BA7F8 7F085C88 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA7FC 7F085C8C 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA800 7F085C90 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA804 7F085C94 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA808 7F085C98 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA80C 7F085C9C 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA810 7F085CA0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA814 7F085CA4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA818 7F085CA8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA81C 7F085CAC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.Ljp7F085CB0: +/* 0BA820 7F085CB0 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 +/* 0BA824 7F085CB4 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 +/* 0BA828 7F085CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA82C 7F085CBC 44812000 */ mtc1 $at, $f4 +/* 0BA830 7F085CC0 C6060000 */ lwc1 $f6, ($s0) +/* 0BA834 7F085CC4 8E280000 */ lw $t0, ($s1) +/* 0BA838 7F085CC8 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA83C 7F085CCC 4606203E */ c.le.s $f4, $f6 +/* 0BA840 7F085CD0 240C0001 */ li $t4, 1 +/* 0BA844 7F085CD4 450200EF */ bc1fl .Ljp7F086094 +/* 0BA848 7F085CD8 3C013F40 */ lui $at, %hi(0x3F3F99F8) # $at, 0x3f40 +/* 0BA84C 7F085CDC 100000EC */ b .Ljp7F086090 +/* 0BA850 7F085CE0 AC2C99F8 */ sw $t4, %lo(dword_CODE_bss_800799B8)($at) +.Ljp7F085CE4: +/* 0BA854 7F085CE4 1441001A */ bne $v0, $at, .Ljp7F085D50 +/* 0BA858 7F085CE8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA85C 7F085CEC 240B0002 */ li $t3, 2 +/* 0BA860 7F085CF0 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) # $at, 0x8008 +/* 0BA864 7F085CF4 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA868 7F085CF8 AC2B99F8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA86C 7F085CFC 8E0D0000 */ lw $t5, ($s0) +/* 0BA870 7F085D00 55A0000A */ bnezl $t5, .Ljp7F085D2C +/* 0BA874 7F085D04 8E040000 */ lw $a0, ($s0) +/* 0BA878 7F085D08 0FC3021B */ jal get_controls_locked_flag +/* 0BA87C 7F085D0C 00000000 */ nop +/* 0BA880 7F085D10 14400005 */ bnez $v0, .Ljp7F085D28 +/* 0BA884 7F085D14 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BA888 7F085D18 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BA88C 7F085D1C 24050042 */ li $a1, 66 +/* 0BA890 7F085D20 0C002386 */ jal play_sfx_a1 +/* 0BA894 7F085D24 02003025 */ move $a2, $s0 +.Ljp7F085D28: +/* 0BA898 7F085D28 8E040000 */ lw $a0, ($s0) +.Ljp7F085D2C: +/* 0BA89C 7F085D2C 24050008 */ li $a1, 8 +/* 0BA8A0 7F085D30 0C002465 */ jal sfx_c_70009184 +/* 0BA8A4 7F085D34 240661A8 */ li $a2, 25000 +/* 0BA8A8 7F085D38 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BA8AC 7F085D3C 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BA8B0 7F085D40 240E61A8 */ li $t6, 25000 +/* 0BA8B4 7F085D44 AC4E0000 */ sw $t6, ($v0) +/* 0BA8B8 7F085D48 100000D1 */ b .Ljp7F086090 +/* 0BA8BC 7F085D4C 8E280000 */ lw $t0, ($s1) +.Ljp7F085D50: +/* 0BA8C0 7F085D50 8E280000 */ lw $t0, ($s1) +/* 0BA8C4 7F085D54 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0BA8C8 7F085D58 44814000 */ mtc1 $at, $f8 +/* 0BA8CC 7F085D5C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BA8D0 7F085D60 3C018005 */ lui $at, %hi(D_800551E8) # $at, 0x8005 +/* 0BA8D4 7F085D64 C4245218 */ lwc1 $f4, %lo(D_800551E8)($at) +/* 0BA8D8 7F085D68 46085003 */ div.s $f0, $f10, $f8 +/* 0BA8DC 7F085D6C C506014C */ lwc1 $f6, 0x14c($t0) +/* 0BA8E0 7F085D70 46043083 */ div.s $f2, $f6, $f4 +/* 0BA8E4 7F085D74 4614003C */ c.lt.s $f0, $f20 +/* 0BA8E8 7F085D78 00000000 */ nop +/* 0BA8EC 7F085D7C 45020003 */ bc1fl .Ljp7F085D8C +/* 0BA8F0 7F085D80 4614103C */ c.lt.s $f2, $f20 +/* 0BA8F4 7F085D84 46000007 */ neg.s $f0, $f0 +/* 0BA8F8 7F085D88 4614103C */ c.lt.s $f2, $f20 +.Ljp7F085D8C: +/* 0BA8FC 7F085D8C 00000000 */ nop +/* 0BA900 7F085D90 45020003 */ bc1fl .Ljp7F085DA0 +/* 0BA904 7F085D94 4602003C */ c.lt.s $f0, $f2 +/* 0BA908 7F085D98 46001087 */ neg.s $f2, $f2 +/* 0BA90C 7F085D9C 4602003C */ c.lt.s $f0, $f2 +.Ljp7F085DA0: +/* 0BA910 7F085DA0 46000306 */ mov.s $f12, $f0 +/* 0BA914 7F085DA4 45020003 */ bc1fl .Ljp7F085DB4 +/* 0BA918 7F085DA8 460CA03C */ c.lt.s $f20, $f12 +/* 0BA91C 7F085DAC 46001306 */ mov.s $f12, $f2 +/* 0BA920 7F085DB0 460CA03C */ c.lt.s $f20, $f12 +.Ljp7F085DB4: +/* 0BA924 7F085DB4 00000000 */ nop +/* 0BA928 7F085DB8 45000043 */ bc1f .Ljp7F085EC8 +/* 0BA92C 7F085DBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA930 7F085DC0 44815000 */ mtc1 $at, $f10 +/* 0BA934 7F085DC4 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BA938 7F085DC8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BA93C 7F085DCC 460C503C */ c.lt.s $f10, $f12 +/* 0BA940 7F085DD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA944 7F085DD4 45020004 */ bc1fl .Ljp7F085DE8 +/* 0BA948 7F085DD8 8E180004 */ lw $t8, 4($s0) +/* 0BA94C 7F085DDC 44816000 */ mtc1 $at, $f12 +/* 0BA950 7F085DE0 00000000 */ nop +/* 0BA954 7F085DE4 8E180004 */ lw $t8, 4($s0) +.Ljp7F085DE8: +/* 0BA958 7F085DE8 5700000E */ bnezl $t8, .Ljp7F085E24 +/* 0BA95C 7F085DEC 8E040004 */ lw $a0, 4($s0) +/* 0BA960 7F085DF0 0FC3021B */ jal get_controls_locked_flag +/* 0BA964 7F085DF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA968 7F085DF8 14400009 */ bnez $v0, .Ljp7F085E20 +/* 0BA96C 7F085DFC C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BA970 7F085E00 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BA974 7F085E04 3C068003 */ lui $a2, %hi(SFX_8003645C) # $a2, 0x8003 +/* 0BA978 7F085E08 24C6649C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x649c +/* 0BA97C 7F085E0C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BA980 7F085E10 2405003E */ li $a1, 62 +/* 0BA984 7F085E14 0C002386 */ jal play_sfx_a1 +/* 0BA988 7F085E18 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BA98C 7F085E1C C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085E20: +/* 0BA990 7F085E20 8E040004 */ lw $a0, 4($s0) +.Ljp7F085E24: +/* 0BA994 7F085E24 3C018005 */ lui $at, %hi(D_800551EC) # $at, 0x8005 +/* 0BA998 7F085E28 24050008 */ li $a1, 8 +/* 0BA99C 7F085E2C 50800034 */ beql $a0, $zero, .Ljp7F085F00 +/* 0BA9A0 7F085E30 8E190000 */ lw $t9, ($s0) +/* 0BA9A4 7F085E34 C420521C */ lwc1 $f0, %lo(D_800551EC)($at) +/* 0BA9A8 7F085E38 24067FFF */ li $a2, 32767 +/* 0BA9AC 7F085E3C 3C018005 */ lui $at, 0x8005 +/* 0BA9B0 7F085E40 4600603C */ c.lt.s $f12, $f0 +/* 0BA9B4 7F085E44 00000000 */ nop +/* 0BA9B8 7F085E48 45000009 */ bc1f .Ljp7F085E70 +/* 0BA9BC 7F085E4C 00000000 */ nop +/* 0BA9C0 7F085E50 3C018005 */ lui $at, %hi(D_800551F0) # $at, 0x8005 +/* 0BA9C4 7F085E54 C4285220 */ lwc1 $f8, %lo(D_800551F0)($at) +/* 0BA9C8 7F085E58 46086182 */ mul.s $f6, $f12, $f8 +/* 0BA9CC 7F085E5C 46003103 */ div.s $f4, $f6, $f0 +/* 0BA9D0 7F085E60 4600228D */ trunc.w.s $f10, $f4 +/* 0BA9D4 7F085E64 44065000 */ mfc1 $a2, $f10 +/* 0BA9D8 7F085E68 10000013 */ b .Ljp7F085EB8 +/* 0BA9DC 7F085E6C 00000000 */ nop +.Ljp7F085E70: +/* 0BA9E0 7F085E70 C4285224 */ lwc1 $f8, %lo(D_800551F4)($at) +/* 0BA9E4 7F085E74 3C018005 */ lui $at, %hi(D_800551F4) # $at, 0x8005 +/* 0BA9E8 7F085E78 4608603C */ c.lt.s $f12, $f8 +/* 0BA9EC 7F085E7C 00000000 */ nop +/* 0BA9F0 7F085E80 4500000D */ bc1f .Ljp7F085EB8 +/* 0BA9F4 7F085E84 00000000 */ nop +/* 0BA9F8 7F085E88 46006181 */ sub.s $f6, $f12, $f0 +/* 0BA9FC 7F085E8C C4245228 */ lwc1 $f4, %lo(D_800551F8)($at) +/* 0BAA00 7F085E90 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAA04 7F085E94 44814000 */ mtc1 $at, $f8 +/* 0BAA08 7F085E98 46043282 */ mul.s $f10, $f6, $f4 +/* 0BAA0C 7F085E9C 3C018005 */ lui $at, %hi(D_800551FC) # $at, 0x8005 +/* 0BAA10 7F085EA0 C424522C */ lwc1 $f4, %lo(D_800551FC)($at) +/* 0BAA14 7F085EA4 46085183 */ div.s $f6, $f10, $f8 +/* 0BAA18 7F085EA8 46043280 */ add.s $f10, $f6, $f4 +/* 0BAA1C 7F085EAC 4600520D */ trunc.w.s $f8, $f10 +/* 0BAA20 7F085EB0 44064000 */ mfc1 $a2, $f8 +/* 0BAA24 7F085EB4 00000000 */ nop +.Ljp7F085EB8: +/* 0BAA28 7F085EB8 0C002465 */ jal sfx_c_70009184 +/* 0BAA2C 7F085EBC E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA30 7F085EC0 1000000E */ b .Ljp7F085EFC +/* 0BAA34 7F085EC4 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EC8: +/* 0BAA38 7F085EC8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 +/* 0BAA3C 7F085ECC 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 +/* 0BAA40 7F085ED0 8E040004 */ lw $a0, 4($s0) +/* 0BAA44 7F085ED4 5080000A */ beql $a0, $zero, .Ljp7F085F00 +/* 0BAA48 7F085ED8 8E190000 */ lw $t9, ($s0) +/* 0BAA4C 7F085EDC 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAA50 7F085EE0 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA54 7F085EE4 10400005 */ beqz $v0, .Ljp7F085EFC +/* 0BAA58 7F085EE8 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA5C 7F085EEC 8E040004 */ lw $a0, 4($s0) +/* 0BAA60 7F085EF0 0C00240C */ jal sfxDeactivate +/* 0BAA64 7F085EF4 E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA68 7F085EF8 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085EFC: +/* 0BAA6C 7F085EFC 8E190000 */ lw $t9, ($s0) +.Ljp7F085F00: +/* 0BAA70 7F085F00 5720000D */ bnezl $t9, .Ljp7F085F38 +/* 0BAA74 7F085F04 8E040000 */ lw $a0, ($s0) +/* 0BAA78 7F085F08 0FC3021B */ jal get_controls_locked_flag +/* 0BAA7C 7F085F0C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAA80 7F085F10 14400008 */ bnez $v0, .Ljp7F085F34 +/* 0BAA84 7F085F14 C7AC0244 */ lwc1 $f12, 0x244($sp) +/* 0BAA88 7F085F18 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BAA8C 7F085F1C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BAA90 7F085F20 24050041 */ li $a1, 65 +/* 0BAA94 7F085F24 02003025 */ move $a2, $s0 +/* 0BAA98 7F085F28 0C002386 */ jal play_sfx_a1 +/* 0BAA9C 7F085F2C E7AC0244 */ swc1 $f12, 0x244($sp) +/* 0BAAA0 7F085F30 C7AC0244 */ lwc1 $f12, 0x244($sp) +.Ljp7F085F34: +/* 0BAAA4 7F085F34 8E040000 */ lw $a0, ($s0) +.Ljp7F085F38: +/* 0BAAA8 7F085F38 1080001A */ beqz $a0, .Ljp7F085FA4 +/* 0BAAAC 7F085F3C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAAB0 7F085F40 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAAB4 7F085F44 240C7FFF */ li $t4, 32767 +/* 0BAAB8 7F085F48 AC4C0000 */ sw $t4, ($v0) +/* 0BAABC 7F085F4C 3C018005 */ lui $at, %hi(D_80055200) # $at, 0x8005 +/* 0BAAC0 7F085F50 C4265230 */ lwc1 $f6, %lo(D_80055200)($at) +/* 0BAAC4 7F085F54 3C018005 */ lui $at, %hi(D_80055204) # $at, 0x8005 +/* 0BAAC8 7F085F58 24050008 */ li $a1, 8 +/* 0BAACC 7F085F5C 4606603C */ c.lt.s $f12, $f6 +/* 0BAAD0 7F085F60 00000000 */ nop +/* 0BAAD4 7F085F64 4500000D */ bc1f .Ljp7F085F9C +/* 0BAAD8 7F085F68 00000000 */ nop +/* 0BAADC 7F085F6C C4245234 */ lwc1 $f4, %lo(D_80055204)($at) +/* 0BAAE0 7F085F70 3C018005 */ lui $at, %hi(D_80055208) # $at, 0x8005 +/* 0BAAE4 7F085F74 C4285238 */ lwc1 $f8, %lo(D_80055208)($at) +/* 0BAAE8 7F085F78 46046282 */ mul.s $f10, $f12, $f4 +/* 0BAAEC 7F085F7C 3C018005 */ lui $at, %hi(D_8005520C) # $at, 0x8005 +/* 0BAAF0 7F085F80 C424523C */ lwc1 $f4, %lo(D_8005520C)($at) +/* 0BAAF4 7F085F84 46085183 */ div.s $f6, $f10, $f8 +/* 0BAAF8 7F085F88 46043280 */ add.s $f10, $f6, $f4 +/* 0BAAFC 7F085F8C 4600520D */ trunc.w.s $f8, $f10 +/* 0BAB00 7F085F90 440D4000 */ mfc1 $t5, $f8 +/* 0BAB04 7F085F94 00000000 */ nop +/* 0BAB08 7F085F98 AC4D0000 */ sw $t5, ($v0) +.Ljp7F085F9C: +/* 0BAB0C 7F085F9C 0C002465 */ jal sfx_c_70009184 +/* 0BAB10 7F085FA0 8C460000 */ lw $a2, ($v0) +.Ljp7F085FA4: +/* 0BAB14 7F085FA4 0FC177BC */ jal get_item_in_hand +/* 0BAB18 7F085FA8 00002025 */ move $a0, $zero +/* 0BAB1C 7F085FAC 24010020 */ li $at, 32 +/* 0BAB20 7F085FB0 14410007 */ bne $v0, $at, .Ljp7F085FD0 +/* 0BAB24 7F085FB4 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 +/* 0BAB28 7F085FB8 8E280000 */ lw $t0, ($s1) +/* 0BAB2C 7F085FBC 3C018005 */ lui $at, %hi(D_80055210) # $at, 0x8005 +/* 0BAB30 7F085FC0 C4265240 */ lwc1 $f6, %lo(D_80055210)($at) +/* 0BAB34 7F085FC4 C5022A08 */ lwc1 $f2, 0x2a08($t0) +/* 0BAB38 7F085FC8 10000004 */ b .Ljp7F085FDC +/* 0BAB3C 7F085FCC 46061080 */ add.s $f2, $f2, $f6 +.Ljp7F085FD0: +/* 0BAB40 7F085FD0 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BAB44 7F085FD4 C42264AC */ lwc1 $f2, %lo(D_8003646C)($at) +/* 0BAB48 7F085FD8 8E280000 */ lw $t0, ($s1) +.Ljp7F085FDC: +/* 0BAB4C 7F085FDC 3C018005 */ lui $at, %hi(D_80055214) # $at, 0x8005 +/* 0BAB50 7F085FE0 C4205244 */ lwc1 $f0, %lo(D_80055214)($at) +/* 0BAB54 7F085FE4 3C018005 */ lui $at, %hi(D_80055218) # $at, 0x8005 +/* 0BAB58 7F085FE8 4602003C */ c.lt.s $f0, $f2 +/* 0BAB5C 7F085FEC 00000000 */ nop +/* 0BAB60 7F085FF0 45000002 */ bc1f .Ljp7F085FFC +/* 0BAB64 7F085FF4 00000000 */ nop +/* 0BAB68 7F085FF8 46000086 */ mov.s $f2, $f0 +.Ljp7F085FFC: +/* 0BAB6C 7F085FFC C4205248 */ lwc1 $f0, %lo(D_80055218)($at) +/* 0BAB70 7F086000 4600103C */ c.lt.s $f2, $f0 +/* 0BAB74 7F086004 00000000 */ nop +/* 0BAB78 7F086008 45000002 */ bc1f .Ljp7F086014 +/* 0BAB7C 7F08600C 00000000 */ nop +/* 0BAB80 7F086010 46000086 */ mov.s $f2, $f0 +.Ljp7F086014: +/* 0BAB84 7F086014 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) +/* 0BAB88 7F086018 00001025 */ move $v0, $zero +/* 0BAB8C 7F08601C 18800014 */ blez $a0, .Ljp7F086070 +/* 0BAB90 7F086020 3C018005 */ lui $at, %hi(D_8005521C) # $at, 0x8005 +/* 0BAB94 7F086024 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BAB98 7F086028 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BAB9C 7F08602C C420524C */ lwc1 $f0, %lo(D_8005521C)($at) +/* 0BABA0 7F086030 C4700000 */ lwc1 $f16, ($v1) +/* 0BABA4 7F086034 24420001 */ addiu $v0, $v0, 1 +/* 0BABA8 7F086038 0044082A */ slt $at, $v0, $a0 +/* 0BABAC 7F08603C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABB0 7F086040 5020000A */ beql $at, $zero, .Ljp7F08606C +/* 0BABB4 7F086044 46029400 */ add.s $f16, $f18, $f2 +/* 0BABB8 7F086048 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08604C: +/* 0BABBC 7F08604C 24420001 */ addiu $v0, $v0, 1 +/* 0BABC0 7F086050 0044082A */ slt $at, $v0, $a0 +/* 0BABC4 7F086054 E4700000 */ swc1 $f16, ($v1) +/* 0BABC8 7F086058 C4700000 */ lwc1 $f16, ($v1) +/* 0BABCC 7F08605C 46100482 */ mul.s $f18, $f0, $f16 +/* 0BABD0 7F086060 5420FFFA */ bnezl $at, .Ljp7F08604C +/* 0BABD4 7F086064 46029400 */ add.s $f16, $f18, $f2 +/* 0BABD8 7F086068 46029400 */ add.s $f16, $f18, $f2 +.Ljp7F08606C: +/* 0BABDC 7F08606C E4700000 */ swc1 $f16, ($v1) +.Ljp7F086070: +/* 0BABE0 7F086070 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 +/* 0BABE4 7F086074 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 +/* 0BABE8 7F086078 3C018005 */ lui $at, %hi(D_80055220) # $at, 0x8005 +/* 0BABEC 7F08607C C4245250 */ lwc1 $f4, %lo(D_80055220)($at) +/* 0BABF0 7F086080 C4660000 */ lwc1 $f6, ($v1) +/* 0BABF4 7F086084 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BABF8 7F086088 46043282 */ mul.s $f10, $f6, $f4 +/* 0BABFC 7F08608C E42A64AC */ swc1 $f10, %lo(D_8003646C)($at) +.Ljp7F086090: +/* 0BAC00 7F086090 3C013F40 */ li $at, 0x3F400000 # 0.750000 +.Ljp7F086094: +/* 0BAC04 7F086094 44810000 */ mtc1 $at, $f0 +/* 0BAC08 7F086098 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC0C 7F08609C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC10 7F0860A0 3C018005 */ lui $at, %hi(D_80055224) # $at, 0x8005 +/* 0BAC14 7F0860A4 C4245254 */ lwc1 $f4, %lo(D_80055224)($at) +/* 0BAC18 7F0860A8 46080182 */ mul.s $f6, $f0, $f8 +/* 0BAC1C 7F0860AC C508019C */ lwc1 $f8, 0x19c($t0) +/* 0BAC20 7F0860B0 4406A000 */ mfc1 $a2, $f20 +/* 0BAC24 7F0860B4 4600A306 */ mov.s $f12, $f20 +/* 0BAC28 7F0860B8 46043283 */ div.s $f10, $f6, $f4 +/* 0BAC2C 7F0860BC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAC30 7F0860C0 E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAC34 7F0860C4 8E280000 */ lw $t0, ($s1) +/* 0BAC38 7F0860C8 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAC3C 7F0860CC 4614203C */ c.lt.s $f4, $f20 +/* 0BAC40 7F0860D0 00000000 */ nop +/* 0BAC44 7F0860D4 45000002 */ bc1f .Ljp7F0860E0 +/* 0BAC48 7F0860D8 00000000 */ nop +/* 0BAC4C 7F0860DC E514019C */ swc1 $f20, 0x19c($t0) +.Ljp7F0860E0: +/* 0BAC50 7F0860E0 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BAC54 7F0860E4 4600A386 */ mov.s $f14, $f20 +/* 0BAC58 7F0860E8 3C018005 */ lui $at, %hi(D_80055228) # $at, 0x8005 +/* 0BAC5C 7F0860EC C4285258 */ lwc1 $f8, %lo(D_80055228)($at) +/* 0BAC60 7F0860F0 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC64 7F0860F4 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0BAC68 7F0860F8 0FC160F3 */ jal sinf +/* 0BAC6C 7F0860FC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0BAC70 7F086100 8E2E0000 */ lw $t6, ($s1) +/* 0BAC74 7F086104 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAC78 7F086108 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BAC7C 7F08610C C5C60174 */ lwc1 $f6, 0x174($t6) +/* 0BAC80 7F086110 3C018005 */ lui $at, %hi(D_8005522C) # $at, 0x8005 +/* 0BAC84 7F086114 46003102 */ mul.s $f4, $f6, $f0 +/* 0BAC88 7F086118 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BAC8C 7F08611C 46082282 */ mul.s $f10, $f4, $f8 +/* 0BAC90 7F086120 C428525C */ lwc1 $f8, %lo(D_8005522C)($at) +/* 0BAC94 7F086124 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BAC98 7F086128 460A3100 */ add.s $f4, $f6, $f10 +/* 0BAC9C 7F08612C C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BACA0 7F086130 E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BACA4 7F086134 0FC160F0 */ jal cosf +/* 0BACA8 7F086138 46064301 */ sub.s $f12, $f8, $f6 +/* 0BACAC 7F08613C 8E380000 */ lw $t8, ($s1) +/* 0BACB0 7F086140 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BACB4 7F086144 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 0BACB8 7F086148 C70A0174 */ lwc1 $f10, 0x174($t8) +/* 0BACBC 7F08614C 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BACC0 7F086150 24050001 */ li $a1, 1 +/* 0BACC4 7F086154 46005102 */ mul.s $f4, $f10, $f0 +/* 0BACC8 7F086158 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BACCC 7F08615C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BACD0 7F086160 46065100 */ add.s $f4, $f10, $f6 +/* 0BACD4 7F086164 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BACD8 7F086168 E7A403B4 */ swc1 $f4, 0x3b4($sp) +/* 0BACDC 7F08616C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BACE0 7F086170 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BACE4 7F086174 24010002 */ li $at, 2 +/* 0BACE8 7F086178 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 +/* 0BACEC 7F08617C 55E10238 */ bnel $t7, $at, .Ljp7F086A60 +/* 0BACF0 7F086180 8E280000 */ lw $t0, ($s1) +/* 0BACF4 7F086184 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) +/* 0BACF8 7F086188 59400235 */ blezl $t2, .Ljp7F086A60 +/* 0BACFC 7F08618C 8E280000 */ lw $t0, ($s1) +/* 0BAD00 7F086190 8E280000 */ lw $t0, ($s1) +/* 0BAD04 7F086194 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD08 7F086198 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAD0C 7F08619C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BAD10 7F0861A0 C50A0408 */ lwc1 $f10, 0x408($t0) +/* 0BAD14 7F0861A4 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BAD18 7F0861A8 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BAD1C 7F0861AC C5080410 */ lwc1 $f8, 0x410($t0) +/* 0BAD20 7F0861B0 46082281 */ sub.s $f10, $f4, $f8 +/* 0BAD24 7F0861B4 460E3003 */ div.s $f0, $f6, $f14 +/* 0BAD28 7F0861B8 460E5083 */ div.s $f2, $f10, $f14 +/* 0BAD2C 7F0861BC 46000182 */ mul.s $f6, $f0, $f0 +/* 0BAD30 7F0861C0 00000000 */ nop +/* 0BAD34 7F0861C4 46021102 */ mul.s $f4, $f2, $f2 +/* 0BAD38 7F0861C8 0C007E08 */ jal sqrtf +/* 0BAD3C 7F0861CC 46043300 */ add.s $f12, $f6, $f4 +/* 0BAD40 7F0861D0 8E280000 */ lw $t0, ($s1) +/* 0BAD44 7F0861D4 46000086 */ mov.s $f2, $f0 +/* 0BAD48 7F0861D8 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0BAD4C 7F0861DC 4614403C */ c.lt.s $f8, $f20 +/* 0BAD50 7F0861E0 00000000 */ nop +/* 0BAD54 7F0861E4 45000002 */ bc1f .Ljp7F0861F0 +/* 0BAD58 7F0861E8 00000000 */ nop +/* 0BAD5C 7F0861EC 46000087 */ neg.s $f2, $f0 +.Ljp7F0861F0: +/* 0BAD60 7F0861F0 1000021A */ b .Ljp7F086A5C +/* 0BAD64 7F0861F4 E5020174 */ swc1 $f2, 0x174($t0) +.Ljp7F0861F8: +/* 0BAD68 7F0861F8 8E040000 */ lw $a0, ($s0) +/* 0BAD6C 7F0861FC 5080001A */ beql $a0, $zero, .Ljp7F086268 +/* 0BAD70 7F086200 8E040004 */ lw $a0, 4($s0) +/* 0BAD74 7F086204 0C002380 */ jal sfxGetArg0Unk3F +/* 0BAD78 7F086208 00000000 */ nop +/* 0BAD7C 7F08620C 10400015 */ beqz $v0, .Ljp7F086264 +/* 0BAD80 7F086210 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0BAD84 7F086214 44815000 */ mtc1 $at, $f10 +/* 0BAD88 7F086218 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BAD8C 7F08621C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0BAD90 7F086220 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 +/* 0BAD94 7F086224 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c +/* 0BAD98 7F086228 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAD9C 7F08622C 8C4B0000 */ lw $t3, ($v0) +/* 0BADA0 7F086230 24050008 */ li $a1, 8 +/* 0BADA4 7F086234 4600220D */ trunc.w.s $f8, $f4 +/* 0BADA8 7F086238 440C4000 */ mfc1 $t4, $f8 +/* 0BADAC 7F08623C 00000000 */ nop +/* 0BADB0 7F086240 016C3023 */ subu $a2, $t3, $t4 +/* 0BADB4 7F086244 18C00005 */ blez $a2, .Ljp7F08625C +/* 0BADB8 7F086248 AC460000 */ sw $a2, ($v0) +/* 0BADBC 7F08624C 0C002465 */ jal sfx_c_70009184 +/* 0BADC0 7F086250 8E040000 */ lw $a0, ($s0) +/* 0BADC4 7F086254 10000004 */ b .Ljp7F086268 +/* 0BADC8 7F086258 8E040004 */ lw $a0, 4($s0) +.Ljp7F08625C: +/* 0BADCC 7F08625C 0C00240C */ jal sfxDeactivate +/* 0BADD0 7F086260 8E040000 */ lw $a0, ($s0) +.Ljp7F086264: +/* 0BADD4 7F086264 8E040004 */ lw $a0, 4($s0) +.Ljp7F086268: +/* 0BADD8 7F086268 10800007 */ beqz $a0, .Ljp7F086288 +/* 0BADDC 7F08626C 00000000 */ nop +/* 0BADE0 7F086270 0C002380 */ jal sfxGetArg0Unk3F +/* 0BADE4 7F086274 00000000 */ nop +/* 0BADE8 7F086278 10400003 */ beqz $v0, .Ljp7F086288 +/* 0BADEC 7F08627C 00000000 */ nop +/* 0BADF0 7F086280 0C00240C */ jal sfxDeactivate +/* 0BADF4 7F086284 8E040004 */ lw $a0, 4($s0) +.Ljp7F086288: +/* 0BADF8 7F086288 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BADFC 7F08628C C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BAE00 7F086290 3C018003 */ lui $at, %hi(D_80036AF4) # $at, 0x8003 +/* 0BAE04 7F086294 C42A6B24 */ lwc1 $f10, %lo(D_80036AF4)($at) +/* 0BAE08 7F086298 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0BAE0C 7F08629C 44813000 */ mtc1 $at, $f6 +/* 0BAE10 7F0862A0 8E280000 */ lw $t0, ($s1) +/* 0BAE14 7F0862A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0BAE18 7F0862A8 46065102 */ mul.s $f4, $f10, $f6 +/* 0BAE1C 7F0862AC C508016C */ lwc1 $f8, 0x16c($t0) +/* 0BAE20 7F0862B0 E7A8004C */ swc1 $f8, 0x4c($sp) +/* 0BAE24 7F0862B4 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0BAE28 7F0862B8 460E2302 */ mul.s $f12, $f4, $f14 +/* 0BAE2C 7F0862BC 00000000 */ nop +/* 0BAE30 7F0862C0 460C5182 */ mul.s $f6, $f10, $f12 +/* 0BAE34 7F0862C4 E7A603A0 */ swc1 $f6, 0x3a0($sp) +/* 0BAE38 7F0862C8 C5001274 */ lwc1 $f0, 0x1274($t0) +/* 0BAE3C 7F0862CC C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BAE40 7F0862D0 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BAE44 7F0862D4 46000207 */ neg.s $f8, $f0 +/* 0BAE48 7F0862D8 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BAE4C 7F0862DC 46082402 */ mul.s $f16, $f4, $f8 +/* 0BAE50 7F0862E0 46068101 */ sub.s $f4, $f16, $f6 +/* 0BAE54 7F0862E4 46005482 */ mul.s $f18, $f10, $f0 +/* 0BAE58 7F0862E8 E7A40220 */ swc1 $f4, 0x220($sp) +/* 0BAE5C 7F0862EC C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BAE60 7F0862F0 C7A60220 */ lwc1 $f6, 0x220($sp) +/* 0BAE64 7F0862F4 46089281 */ sub.s $f10, $f18, $f8 +/* 0BAE68 7F0862F8 46063102 */ mul.s $f4, $f6, $f6 +/* 0BAE6C 7F0862FC E7AA021C */ swc1 $f10, 0x21c($sp) +/* 0BAE70 7F086300 C7A8021C */ lwc1 $f8, 0x21c($sp) +/* 0BAE74 7F086304 46084282 */ mul.s $f10, $f8, $f8 +/* 0BAE78 7F086308 460A2080 */ add.s $f2, $f4, $f10 +/* 0BAE7C 7F08630C 44812000 */ mtc1 $at, $f4 +/* 0BAE80 7F086310 00000000 */ nop +/* 0BAE84 7F086314 4602203E */ c.le.s $f4, $f2 +/* 0BAE88 7F086318 E7A20218 */ swc1 $f2, 0x218($sp) +/* 0BAE8C 7F08631C 45000008 */ bc1f .Ljp7F086340 +/* 0BAE90 7F086320 00000000 */ nop +/* 0BAE94 7F086324 3C018005 */ lui $at, %hi(D_80055230) # $at, 0x8005 +/* 0BAE98 7F086328 C4205260 */ lwc1 $f0, %lo(D_80055230)($at) +/* 0BAE9C 7F08632C 46003282 */ mul.s $f10, $f6, $f0 +/* 0BAEA0 7F086330 00000000 */ nop +/* 0BAEA4 7F086334 46004102 */ mul.s $f4, $f8, $f0 +/* 0BAEA8 7F086338 E7AA0220 */ swc1 $f10, 0x220($sp) +/* 0BAEAC 7F08633C E7A4021C */ swc1 $f4, 0x21c($sp) +.Ljp7F086340: +/* 0BAEB0 7F086340 3C018005 */ lui $at, %hi(D_80055234) # $at, 0x8005 +/* 0BAEB4 7F086344 C4305264 */ lwc1 $f16, %lo(D_80055234)($at) +/* 0BAEB8 7F086348 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 0BAEBC 7F08634C C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0BAEC0 7F086350 C5020174 */ lwc1 $f2, 0x174($t0) +/* 0BAEC4 7F086354 46103002 */ mul.s $f0, $f6, $f16 +/* 0BAEC8 7F086358 4614003C */ c.lt.s $f0, $f20 +/* 0BAECC 7F08635C 46105302 */ mul.s $f12, $f10, $f16 +/* 0BAED0 7F086360 45020003 */ bc1fl .Ljp7F086370 +/* 0BAED4 7F086364 4614103C */ c.lt.s $f2, $f20 +/* 0BAED8 7F086368 46000007 */ neg.s $f0, $f0 +/* 0BAEDC 7F08636C 4614103C */ c.lt.s $f2, $f20 +.Ljp7F086370: +/* 0BAEE0 7F086370 3C018005 */ lui $at, %hi(D_80055238) # $at, 0x8005 +/* 0BAEE4 7F086374 45020003 */ bc1fl .Ljp7F086384 +/* 0BAEE8 7F086378 4614603C */ c.lt.s $f12, $f20 +/* 0BAEEC 7F08637C 46001087 */ neg.s $f2, $f2 +/* 0BAEF0 7F086380 4614603C */ c.lt.s $f12, $f20 +.Ljp7F086384: +/* 0BAEF4 7F086384 00000000 */ nop +/* 0BAEF8 7F086388 45020003 */ bc1fl .Ljp7F086398 +/* 0BAEFC 7F08638C 4600103C */ c.lt.s $f2, $f0 +/* 0BAF00 7F086390 46006307 */ neg.s $f12, $f12 +/* 0BAF04 7F086394 4600103C */ c.lt.s $f2, $f0 +.Ljp7F086398: +/* 0BAF08 7F086398 E7A20398 */ swc1 $f2, 0x398($sp) +/* 0BAF0C 7F08639C 45020003 */ bc1fl .Ljp7F0863AC +/* 0BAF10 7F0863A0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF14 7F0863A4 E7A00398 */ swc1 $f0, 0x398($sp) +/* 0BAF18 7F0863A8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863AC: +/* 0BAF1C 7F0863AC 460C403C */ c.lt.s $f8, $f12 +/* 0BAF20 7F0863B0 00000000 */ nop +/* 0BAF24 7F0863B4 45020003 */ bc1fl .Ljp7F0863C4 +/* 0BAF28 7F0863B8 C7A40218 */ lwc1 $f4, 0x218($sp) +/* 0BAF2C 7F0863BC E7AC0398 */ swc1 $f12, 0x398($sp) +/* 0BAF30 7F0863C0 C7A40218 */ lwc1 $f4, 0x218($sp) +.Ljp7F0863C4: +/* 0BAF34 7F0863C4 C4265268 */ lwc1 $f6, %lo(D_80055238)($at) +/* 0BAF38 7F0863C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BAF3C 7F0863CC 44810000 */ mtc1 $at, $f0 +/* 0BAF40 7F0863D0 4604303E */ c.le.s $f6, $f4 +/* 0BAF44 7F0863D4 00000000 */ nop +/* 0BAF48 7F0863D8 45020008 */ bc1fl .Ljp7F0863FC +/* 0BAF4C 7F0863DC C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF50 7F0863E0 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF54 7F0863E4 4610503C */ c.lt.s $f10, $f16 +/* 0BAF58 7F0863E8 00000000 */ nop +/* 0BAF5C 7F0863EC 45020003 */ bc1fl .Ljp7F0863FC +/* 0BAF60 7F0863F0 C7A80398 */ lwc1 $f8, 0x398($sp) +/* 0BAF64 7F0863F4 E7B00398 */ swc1 $f16, 0x398($sp) +/* 0BAF68 7F0863F8 C7A80398 */ lwc1 $f8, 0x398($sp) +.Ljp7F0863FC: +/* 0BAF6C 7F0863FC 4608003E */ c.le.s $f0, $f8 +/* 0BAF70 7F086400 00000000 */ nop +/* 0BAF74 7F086404 4502000B */ bc1fl .Ljp7F086434 +/* 0BAF78 7F086408 C7AA0398 */ lwc1 $f10, 0x398($sp) +/* 0BAF7C 7F08640C 46004101 */ sub.s $f4, $f8, $f0 +/* 0BAF80 7F086410 3C014461 */ li $at, 0x44610000 # 900.000000 +/* 0BAF84 7F086414 44815000 */ mtc1 $at, $f10 +/* 0BAF88 7F086418 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BAF8C 7F08641C C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAF90 7F086420 460A3203 */ div.s $f8, $f6, $f10 +/* 0BAF94 7F086424 46082180 */ add.s $f6, $f4, $f8 +/* 0BAF98 7F086428 1000000A */ b .Ljp7F086454 +/* 0BAF9C 7F08642C E506019C */ swc1 $f6, 0x19c($t0) +/* 0BAFA0 7F086430 C7AA0398 */ lwc1 $f10, 0x398($sp) +.Ljp7F086434: +/* 0BAFA4 7F086434 3C018005 */ lui $at, %hi(D_8005523C) # $at, 0x8005 +/* 0BAFA8 7F086438 C426526C */ lwc1 $f6, %lo(D_8005523C)($at) +/* 0BAFAC 7F08643C 460A0101 */ sub.s $f4, $f0, $f10 +/* 0BAFB0 7F086440 460E2202 */ mul.s $f8, $f4, $f14 +/* 0BAFB4 7F086444 C504019C */ lwc1 $f4, 0x19c($t0) +/* 0BAFB8 7F086448 46064283 */ div.s $f10, $f8, $f6 +/* 0BAFBC 7F08644C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BAFC0 7F086450 E508019C */ swc1 $f8, 0x19c($t0) +.Ljp7F086454: +/* 0BAFC4 7F086454 8E280000 */ lw $t0, ($s1) +/* 0BAFC8 7F086458 C500019C */ lwc1 $f0, 0x19c($t0) +/* 0BAFCC 7F08645C 4614003C */ c.lt.s $f0, $f20 +/* 0BAFD0 7F086460 00000000 */ nop +/* 0BAFD4 7F086464 45020005 */ bc1fl .Ljp7F08647C +/* 0BAFD8 7F086468 3C013F80 */ lui $at, 0x3f80 +/* 0BAFDC 7F08646C E514019C */ swc1 $f20, 0x19c($t0) +/* 0BAFE0 7F086470 1000000C */ b .Ljp7F0864A4 +/* 0BAFE4 7F086474 8E280000 */ lw $t0, ($s1) +/* 0BAFE8 7F086478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.Ljp7F08647C: +/* 0BAFEC 7F08647C 44813000 */ mtc1 $at, $f6 +/* 0BAFF0 7F086480 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BAFF4 7F086484 4600303C */ c.lt.s $f6, $f0 +/* 0BAFF8 7F086488 00000000 */ nop +/* 0BAFFC 7F08648C 45020006 */ bc1fl .Ljp7F0864A8 +/* 0BB000 7F086490 C7AC0398 */ lwc1 $f12, 0x398($sp) +/* 0BB004 7F086494 44812000 */ mtc1 $at, $f4 +/* 0BB008 7F086498 00000000 */ nop +/* 0BB00C 7F08649C E504019C */ swc1 $f4, 0x19c($t0) +/* 0BB010 7F0864A0 8E280000 */ lw $t0, ($s1) +.Ljp7F0864A4: +/* 0BB014 7F0864A4 C7AC0398 */ lwc1 $f12, 0x398($sp) +.Ljp7F0864A8: +/* 0BB018 7F0864A8 C50E0174 */ lwc1 $f14, 0x174($t0) +/* 0BB01C 7F0864AC 0FC20451 */ jal sub_GAME_7F080B34 +/* 0BB020 7F0864B0 8FA603A0 */ lw $a2, 0x3a0($sp) +/* 0BB024 7F0864B4 8E280000 */ lw $t0, ($s1) +/* 0BB028 7F0864B8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB02C 7F0864BC C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB030 7F0864C0 C5020504 */ lwc1 $f2, 0x504($t0) +/* 0BB034 7F0864C4 C50A0498 */ lwc1 $f10, 0x498($t0) +/* 0BB038 7F0864C8 C50004FC */ lwc1 $f0, 0x4fc($t0) +/* 0BB03C 7F0864CC C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB040 7F0864D0 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB044 7F0864D4 00000000 */ nop +/* 0BB048 7F0864D8 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB04C 7F0864DC 46044281 */ sub.s $f10, $f8, $f4 +/* 0BB050 7F0864E0 C7A803AC */ lwc1 $f8, 0x3ac($sp) +/* 0BB054 7F0864E4 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB058 7F0864E8 46064100 */ add.s $f4, $f8, $f6 +/* 0BB05C 7F0864EC E7A403AC */ swc1 $f4, 0x3ac($sp) +/* 0BB060 7F0864F0 C50A04A0 */ lwc1 $f10, 0x4a0($t0) +/* 0BB064 7F0864F4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB068 7F0864F8 460A1202 */ mul.s $f8, $f2, $f10 +/* 0BB06C 7F0864FC 00000000 */ nop +/* 0BB070 7F086500 46060282 */ mul.s $f10, $f0, $f6 +/* 0BB074 7F086504 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB078 7F086508 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB07C 7F08650C 460E3202 */ mul.s $f8, $f6, $f14 +/* 0BB080 7F086510 46085180 */ add.s $f6, $f10, $f8 +/* 0BB084 7F086514 C7AA0220 */ lwc1 $f10, 0x220($sp) +/* 0BB088 7F086518 460A2200 */ add.s $f8, $f4, $f10 +/* 0BB08C 7F08651C C7A4021C */ lwc1 $f4, 0x21c($sp) +/* 0BB090 7F086520 E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB094 7F086524 46043280 */ add.s $f10, $f6, $f4 +/* 0BB098 7F086528 E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB09C 7F08652C E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0BB0A0 7F086530 C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB0A4 7F086534 E7A80208 */ swc1 $f8, 0x208($sp) +/* 0BB0A8 7F086538 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0BB0AC 7F08653C E7A60204 */ swc1 $f6, 0x204($sp) +/* 0BB0B0 7F086540 8D0E0488 */ lw $t6, 0x488($t0) +/* 0BB0B4 7F086544 0FC246BE */ jal get_debug_fast_bond_flag +/* 0BB0B8 7F086548 AFAE0200 */ sw $t6, 0x200($sp) +/* 0BB0BC 7F08654C 50400021 */ beql $v0, $zero, .Ljp7F0865D4 +/* 0BB0C0 7F086550 8E380000 */ lw $t8, ($s1) +/* 0BB0C4 7F086554 8E280000 */ lw $t0, ($s1) +/* 0BB0C8 7F086558 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BB0CC 7F08655C 44810000 */ mtc1 $at, $f0 +/* 0BB0D0 7F086560 C5040498 */ lwc1 $f4, 0x498($t0) +/* 0BB0D4 7F086564 C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB0D8 7F086568 C50604A0 */ lwc1 $f6, 0x4a0($t0) +/* 0BB0DC 7F08656C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0BB0E0 7F086570 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB0E4 7F086574 C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB0E8 7F086578 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) +/* 0BB0EC 7F08657C 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB0F0 7F086580 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BB0F4 7F086584 C7AA03AC */ lwc1 $f10, 0x3ac($sp) +/* 0BB0F8 7F086588 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB0FC 7F08658C 00000000 */ nop +/* 0BB100 7F086590 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB104 7F086594 46085180 */ add.s $f6, $f10, $f8 +/* 0BB108 7F086598 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BB10C 7F08659C C50A0174 */ lwc1 $f10, 0x174($t0) +/* 0BB110 7F0865A0 C50404A0 */ lwc1 $f4, 0x4a0($t0) +/* 0BB114 7F0865A4 C5060498 */ lwc1 $f6, 0x498($t0) +/* 0BB118 7F0865A8 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB11C 7F0865AC C504016C */ lwc1 $f4, 0x16c($t0) +/* 0BB120 7F0865B0 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB124 7F0865B4 460A4180 */ add.s $f6, $f8, $f10 +/* 0BB128 7F0865B8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB12C 7F0865BC 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB130 7F0865C0 00000000 */ nop +/* 0BB134 7F0865C4 46002202 */ mul.s $f8, $f4, $f0 +/* 0BB138 7F0865C8 46085180 */ add.s $f6, $f10, $f8 +/* 0BB13C 7F0865CC E7A603B4 */ swc1 $f6, 0x3b4($sp) +/* 0BB140 7F0865D0 8E380000 */ lw $t8, ($s1) +.Ljp7F0865D4: +/* 0BB144 7F0865D4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB148 7F0865D8 00002825 */ move $a1, $zero +/* 0BB14C 7F0865DC C7041274 */ lwc1 $f4, 0x1274($t8) +/* 0BB150 7F0865E0 4604A032 */ c.eq.s $f20, $f4 +/* 0BB154 7F0865E4 00000000 */ nop +/* 0BB158 7F0865E8 45000002 */ bc1f .Ljp7F0865F4 +/* 0BB15C 7F0865EC 00000000 */ nop +/* 0BB160 7F0865F0 24050001 */ li $a1, 1 +.Ljp7F0865F4: +/* 0BB164 7F0865F4 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB168 7F0865F8 00000000 */ nop +/* 0BB16C 7F0865FC 8E2F0000 */ lw $t7, ($s1) +/* 0BB170 7F086600 3C018005 */ lui $at, %hi(D_80055240) # $at, 0x8005 +/* 0BB174 7F086604 C4285270 */ lwc1 $f8, %lo(D_80055240)($at) +/* 0BB178 7F086608 C5EA04B0 */ lwc1 $f10, 0x4b0($t7) +/* 0BB17C 7F08660C 27B001B4 */ addiu $s0, $sp, 0x1b4 +/* 0BB180 7F086610 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB184 7F086614 46085182 */ mul.s $f6, $f10, $f8 +/* 0BB188 7F086618 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB18C 7F08661C 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB190 7F086620 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB194 7F086624 44073000 */ mfc1 $a3, $f6 +/* 0BB198 7F086628 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB19C 7F08662C 00000000 */ nop +/* 0BB1A0 7F086630 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1A4 7F086634 02002025 */ move $a0, $s0 +/* 0BB1A8 7F086638 10400002 */ beqz $v0, .Ljp7F086644 +/* 0BB1AC 7F08663C 240A0001 */ li $t2, 1 +/* 0BB1B0 7F086640 AFAA0394 */ sw $t2, 0x394($sp) +.Ljp7F086644: +/* 0BB1B4 7F086644 8E280000 */ lw $t0, ($s1) +/* 0BB1B8 7F086648 3C018005 */ lui $at, %hi(D_80055244) # $at, 0x8005 +/* 0BB1BC 7F08664C C42A5274 */ lwc1 $f10, %lo(D_80055244)($at) +/* 0BB1C0 7F086650 C50404B0 */ lwc1 $f4, 0x4b0($t0) +/* 0BB1C4 7F086654 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB1C8 7F086658 8D060494 */ lw $a2, 0x494($t0) +/* 0BB1CC 7F08665C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BB1D0 7F086660 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB1D4 7F086664 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB1D8 7F086668 44074000 */ mfc1 $a3, $f8 +/* 0BB1DC 7F08666C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB1E0 7F086670 00000000 */ nop +/* 0BB1E4 7F086674 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB1E8 7F086678 02002025 */ move $a0, $s0 +/* 0BB1EC 7F08667C 10400002 */ beqz $v0, .Ljp7F086688 +/* 0BB1F0 7F086680 24190001 */ li $t9, 1 +/* 0BB1F4 7F086684 AFB90394 */ sw $t9, 0x394($sp) +.Ljp7F086688: +/* 0BB1F8 7F086688 8E280000 */ lw $t0, ($s1) +/* 0BB1FC 7F08668C 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB200 7F086690 8D060494 */ lw $a2, 0x494($t0) +/* 0BB204 7F086694 8D0704B0 */ lw $a3, 0x4b0($t0) +/* 0BB208 7F086698 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB20C 7F08669C 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB210 7F0866A0 25040488 */ addiu $a0, $t0, 0x488 +/* 0BB214 7F0866A4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB218 7F0866A8 02002025 */ move $a0, $s0 +/* 0BB21C 7F0866AC 1440000D */ bnez $v0, .Ljp7F0866E4 +/* 0BB220 7F0866B0 00000000 */ nop +/* 0BB224 7F0866B4 8E2B0000 */ lw $t3, ($s1) +/* 0BB228 7F0866B8 3C018005 */ lui $at, %hi(D_80055248) # $at, 0x8005 +/* 0BB22C 7F0866BC C4245278 */ lwc1 $f4, %lo(D_80055248)($at) +/* 0BB230 7F0866C0 C56604B0 */ lwc1 $f6, 0x4b0($t3) +/* 0BB234 7F0866C4 AFB00010 */ sw $s0, 0x10($sp) +/* 0BB238 7F0866C8 27A40200 */ addiu $a0, $sp, 0x200 +/* 0BB23C 7F0866CC 46043282 */ mul.s $f10, $f6, $f4 +/* 0BB240 7F0866D0 8FA50208 */ lw $a1, 0x208($sp) +/* 0BB244 7F0866D4 8FA60204 */ lw $a2, 0x204($sp) +/* 0BB248 7F0866D8 44075000 */ mfc1 $a3, $f10 +/* 0BB24C 7F0866DC 0FC2CBB1 */ jal sub_GAME_7F0B2314 +/* 0BB250 7F0866E0 00000000 */ nop +.Ljp7F0866E4: +/* 0BB254 7F0866E4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 +/* 0BB258 7F0866E8 02002025 */ move $a0, $s0 +/* 0BB25C 7F0866EC 104000B8 */ beqz $v0, .Ljp7F0869D0 +/* 0BB260 7F0866F0 240C0001 */ li $t4, 1 +/* 0BB264 7F0866F4 AFAC0394 */ sw $t4, 0x394($sp) +/* 0BB268 7F0866F8 27A40174 */ addiu $a0, $sp, 0x174 +/* 0BB26C 7F0866FC 27A50170 */ addiu $a1, $sp, 0x170 +/* 0BB270 7F086700 0FC2CBF4 */ jal sub_GAME_7F0B2420 +/* 0BB274 7F086704 27A60184 */ addiu $a2, $sp, 0x184 +/* 0BB278 7F086708 8E2D0000 */ lw $t5, ($s1) +/* 0BB27C 7F08670C C7A801A0 */ lwc1 $f8, 0x1a0($sp) +/* 0BB280 7F086710 C5A60074 */ lwc1 $f6, 0x74($t5) +/* 0BB284 7F086714 4608303E */ c.le.s $f6, $f8 +/* 0BB288 7F086718 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0BB28C 7F08671C C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB290 7F086720 450200AC */ bc1fl .Ljp7F0869D4 +/* 0BB294 7F086724 8E280000 */ lw $t0, ($s1) +/* 0BB298 7F086728 C7A40184 */ lwc1 $f4, 0x184($sp) +/* 0BB29C 7F08672C C7AA0190 */ lwc1 $f10, 0x190($sp) +/* 0BB2A0 7F086730 46064381 */ sub.s $f14, $f8, $f6 +/* 0BB2A4 7F086734 460A2081 */ sub.s $f2, $f4, $f10 +/* 0BB2A8 7F086738 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB2AC 7F08673C E7AE016C */ swc1 $f14, 0x16c($sp) +/* 0BB2B0 7F086740 46021282 */ mul.s $f10, $f2, $f2 +/* 0BB2B4 7F086744 E7A20168 */ swc1 $f2, 0x168($sp) +/* 0BB2B8 7F086748 0C007E08 */ jal sqrtf +/* 0BB2BC 7F08674C 460A2300 */ add.s $f12, $f4, $f10 +/* 0BB2C0 7F086750 C7A20168 */ lwc1 $f2, 0x168($sp) +/* 0BB2C4 7F086754 C7AE016C */ lwc1 $f14, 0x16c($sp) +/* 0BB2C8 7F086758 C7A80204 */ lwc1 $f8, 0x204($sp) +/* 0BB2CC 7F08675C 46001083 */ div.s $f2, $f2, $f0 +/* 0BB2D0 7F086760 C7A6018C */ lwc1 $f6, 0x18c($sp) +/* 0BB2D4 7F086764 E7A80030 */ swc1 $f8, 0x30($sp) +/* 0BB2D8 7F086768 46064101 */ sub.s $f4, $f8, $f6 +/* 0BB2DC 7F08676C C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB2E0 7F086770 E7A60034 */ swc1 $f6, 0x34($sp) +/* 0BB2E4 7F086774 46007383 */ div.s $f14, $f14, $f0 +/* 0BB2E8 7F086778 46022282 */ mul.s $f10, $f4, $f2 +/* 0BB2EC 7F08677C C7A40208 */ lwc1 $f4, 0x208($sp) +/* 0BB2F0 7F086780 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB2F4 7F086784 460E3182 */ mul.s $f6, $f6, $f14 +/* 0BB2F8 7F086788 46065300 */ add.s $f12, $f10, $f6 +/* 0BB2FC 7F08678C C7A60030 */ lwc1 $f6, 0x30($sp) +/* 0BB300 7F086790 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB304 7F086794 E7AC0050 */ swc1 $f12, 0x50($sp) +/* 0BB308 7F086798 460A3180 */ add.s $f6, $f6, $f10 +/* 0BB30C 7F08679C C7AA0034 */ lwc1 $f10, 0x34($sp) +/* 0BB310 7F0867A0 460A3181 */ sub.s $f6, $f6, $f10 +/* 0BB314 7F0867A4 46023282 */ mul.s $f10, $f6, $f2 +/* 0BB318 7F0867A8 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB31C 7F0867AC 46062100 */ add.s $f4, $f4, $f6 +/* 0BB320 7F0867B0 46082181 */ sub.s $f6, $f4, $f8 +/* 0BB324 7F0867B4 460E3102 */ mul.s $f4, $f6, $f14 +/* 0BB328 7F0867B8 46045480 */ add.s $f18, $f10, $f4 +/* 0BB32C 7F0867BC C7A403B4 */ lwc1 $f4, 0x3b4($sp) +/* 0BB330 7F0867C0 46126202 */ mul.s $f8, $f12, $f18 +/* 0BB334 7F0867C4 46009406 */ mov.s $f16, $f18 +/* 0BB338 7F0867C8 4614403E */ c.le.s $f8, $f20 +/* 0BB33C 7F0867CC 46042202 */ mul.s $f8, $f4, $f4 +/* 0BB340 7F0867D0 45020004 */ bc1fl .Ljp7F0867E4 +/* 0BB344 7F0867D4 4614903C */ c.lt.s $f18, $f20 +/* 0BB348 7F0867D8 1000001F */ b .Ljp7F086858 +/* 0BB34C 7F0867DC 4600A386 */ mov.s $f14, $f20 +/* 0BB350 7F0867E0 4614903C */ c.lt.s $f18, $f20 +.Ljp7F0867E4: +/* 0BB354 7F0867E4 00000000 */ nop +/* 0BB358 7F0867E8 45020005 */ bc1fl .Ljp7F086800 +/* 0BB35C 7F0867EC 4610603E */ c.le.s $f12, $f16 +/* 0BB360 7F0867F0 C7AC0050 */ lwc1 $f12, 0x50($sp) +/* 0BB364 7F0867F4 46009407 */ neg.s $f16, $f18 +/* 0BB368 7F0867F8 46006307 */ neg.s $f12, $f12 +/* 0BB36C 7F0867FC 4610603E */ c.le.s $f12, $f16 +.Ljp7F086800: +/* 0BB370 7F086800 00000000 */ nop +/* 0BB374 7F086804 45020004 */ bc1fl .Ljp7F086818 +/* 0BB378 7F086808 8E2E0000 */ lw $t6, ($s1) +/* 0BB37C 7F08680C 10000012 */ b .Ljp7F086858 +/* 0BB380 7F086810 4600A386 */ mov.s $f14, $f20 +/* 0BB384 7F086814 8E2E0000 */ lw $t6, ($s1) +.Ljp7F086818: +/* 0BB388 7F086818 C5C004B0 */ lwc1 $f0, 0x4b0($t6) +/* 0BB38C 7F08681C 4610003C */ c.lt.s $f0, $f16 +/* 0BB390 7F086820 00000000 */ nop +/* 0BB394 7F086824 45020004 */ bc1fl .Ljp7F086838 +/* 0BB398 7F086828 4600603C */ c.lt.s $f12, $f0 +/* 0BB39C 7F08682C 1000000A */ b .Ljp7F086858 +/* 0BB3A0 7F086830 4600A386 */ mov.s $f14, $f20 +/* 0BB3A4 7F086834 4600603C */ c.lt.s $f12, $f0 +.Ljp7F086838: +/* 0BB3A8 7F086838 00000000 */ nop +/* 0BB3AC 7F08683C 45020004 */ bc1fl .Ljp7F086850 +/* 0BB3B0 7F086840 46006181 */ sub.s $f6, $f12, $f0 +/* 0BB3B4 7F086844 10000004 */ b .Ljp7F086858 +/* 0BB3B8 7F086848 4600A386 */ mov.s $f14, $f20 +/* 0BB3BC 7F08684C 46006181 */ sub.s $f6, $f12, $f0 +.Ljp7F086850: +/* 0BB3C0 7F086850 46106281 */ sub.s $f10, $f12, $f16 +/* 0BB3C4 7F086854 460A3383 */ div.s $f14, $f6, $f10 +.Ljp7F086858: +/* 0BB3C8 7F086858 C7A603AC */ lwc1 $f6, 0x3ac($sp) +/* 0BB3CC 7F08685C E7AE0180 */ swc1 $f14, 0x180($sp) +/* 0BB3D0 7F086860 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB3D4 7F086864 0C007E08 */ jal sqrtf +/* 0BB3D8 7F086868 460A4300 */ add.s $f12, $f8, $f10 +/* 0BB3DC 7F08686C 4600A03C */ c.lt.s $f20, $f0 +/* 0BB3E0 7F086870 C7AE0180 */ lwc1 $f14, 0x180($sp) +/* 0BB3E4 7F086874 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB3E8 7F086878 4502001B */ bc1fl .Ljp7F0868E8 +/* 0BB3EC 7F08687C C7A6019C */ lwc1 $f6, 0x19c($sp) +/* 0BB3F0 7F086880 44812000 */ mtc1 $at, $f4 +/* 0BB3F4 7F086884 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB3F8 7F086888 44814000 */ mtc1 $at, $f8 +/* 0BB3FC 7F08688C 460E2181 */ sub.s $f6, $f4, $f14 +/* 0BB400 7F086890 8E380000 */ lw $t8, ($s1) +/* 0BB404 7F086894 C7A401A0 */ lwc1 $f4, 0x1a0($sp) +/* 0BB408 7F086898 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BB40C 7F08689C 46003082 */ mul.s $f2, $f6, $f0 +/* 0BB410 7F0868A0 00000000 */ nop +/* 0BB414 7F0868A4 46081302 */ mul.s $f12, $f2, $f8 +/* 0BB418 7F0868A8 E7AC0390 */ swc1 $f12, 0x390($sp) +/* 0BB41C 7F0868AC C7120074 */ lwc1 $f18, 0x74($t8) +/* 0BB420 7F0868B0 460C9280 */ add.s $f10, $f18, $f12 +/* 0BB424 7F0868B4 460A203E */ c.le.s $f4, $f10 +/* 0BB428 7F0868B8 00000000 */ nop +/* 0BB42C 7F0868BC 45000009 */ bc1f .Ljp7F0868E4 +/* 0BB430 7F0868C0 00000000 */ nop +/* 0BB434 7F0868C4 46122181 */ sub.s $f6, $f4, $f18 +/* 0BB438 7F0868C8 44814000 */ mtc1 $at, $f8 +/* 0BB43C 7F0868CC 00000000 */ nop +/* 0BB440 7F0868D0 46083283 */ div.s $f10, $f6, $f8 +/* 0BB444 7F0868D4 E7A60390 */ swc1 $f6, 0x390($sp) +/* 0BB448 7F0868D8 460A1401 */ sub.s $f16, $f2, $f10 +/* 0BB44C 7F0868DC 46008103 */ div.s $f4, $f16, $f0 +/* 0BB450 7F0868E0 46047380 */ add.s $f14, $f14, $f4 +.Ljp7F0868E4: +/* 0BB454 7F0868E4 C7A6019C */ lwc1 $f6, 0x19c($sp) +.Ljp7F0868E8: +/* 0BB458 7F0868E8 C7A80184 */ lwc1 $f8, 0x184($sp) +/* 0BB45C 7F0868EC C7AA01A4 */ lwc1 $f10, 0x1a4($sp) +/* 0BB460 7F0868F0 C7A4018C */ lwc1 $f4, 0x18c($sp) +/* 0BB464 7F0868F4 46083301 */ sub.s $f12, $f6, $f8 +/* 0BB468 7F0868F8 C7A601A8 */ lwc1 $f6, 0x1a8($sp) +/* 0BB46C 7F0868FC 8E280000 */ lw $t0, ($s1) +/* 0BB470 7F086900 46045401 */ sub.s $f16, $f10, $f4 +/* 0BB474 7F086904 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) +/* 0BB478 7F086908 46083481 */ sub.s $f18, $f6, $f8 +/* 0BB47C 7F08690C 46045181 */ sub.s $f6, $f10, $f4 +/* 0BB480 7F086910 46129202 */ mul.s $f8, $f18, $f18 +/* 0BB484 7F086914 00000000 */ nop +/* 0BB488 7F086918 46063282 */ mul.s $f10, $f6, $f6 +/* 0BB48C 7F08691C E7A60048 */ swc1 $f6, 0x48($sp) +/* 0BB490 7F086920 460A4100 */ add.s $f4, $f8, $f10 +/* 0BB494 7F086924 460C6202 */ mul.s $f8, $f12, $f12 +/* 0BB498 7F086928 00000000 */ nop +/* 0BB49C 7F08692C 46108282 */ mul.s $f10, $f16, $f16 +/* 0BB4A0 7F086930 460A4200 */ add.s $f8, $f8, $f10 +/* 0BB4A4 7F086934 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) +/* 0BB4A8 7F086938 4608203C */ c.lt.s $f4, $f8 +/* 0BB4AC 7F08693C C7A40188 */ lwc1 $f4, 0x188($sp) +/* 0BB4B0 7F086940 45000003 */ bc1f .Ljp7F086950 +/* 0BB4B4 7F086944 46045201 */ sub.s $f8, $f10, $f4 +/* 0BB4B8 7F086948 46009306 */ mov.s $f12, $f18 +/* 0BB4BC 7F08694C 46003406 */ mov.s $f16, $f6 +.Ljp7F086950: +/* 0BB4C0 7F086950 C7A60390 */ lwc1 $f6, 0x390($sp) +/* 0BB4C4 7F086954 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB4C8 7F086958 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0BB4CC 7F08695C 46083003 */ div.s $f0, $f6, $f8 +/* 0BB4D0 7F086960 00002825 */ move $a1, $zero +/* 0BB4D4 7F086964 460C0282 */ mul.s $f10, $f0, $f12 +/* 0BB4D8 7F086968 00000000 */ nop +/* 0BB4DC 7F08696C 460E2182 */ mul.s $f6, $f4, $f14 +/* 0BB4E0 7F086970 46065200 */ add.s $f8, $f10, $f6 +/* 0BB4E4 7F086974 46100102 */ mul.s $f4, $f0, $f16 +/* 0BB4E8 7F086978 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) +/* 0BB4EC 7F08697C E7A803AC */ swc1 $f8, 0x3ac($sp) +/* 0BB4F0 7F086980 460E5182 */ mul.s $f6, $f10, $f14 +/* 0BB4F4 7F086984 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB4F8 7F086988 46062200 */ add.s $f8, $f4, $f6 +/* 0BB4FC 7F08698C E7A803B4 */ swc1 $f8, 0x3b4($sp) +/* 0BB500 7F086990 E50A048C */ swc1 $f10, 0x48c($t0) +/* 0BB504 7F086994 8E2F0000 */ lw $t7, ($s1) +/* 0BB508 7F086998 C7A40204 */ lwc1 $f4, 0x204($sp) +/* 0BB50C 7F08699C E5E40494 */ swc1 $f4, 0x494($t7) +/* 0BB510 7F0869A0 8E390000 */ lw $t9, ($s1) +/* 0BB514 7F0869A4 8FAA0200 */ lw $t2, 0x200($sp) +/* 0BB518 7F0869A8 AF2A0488 */ sw $t2, 0x488($t9) +/* 0BB51C 7F0869AC 8E2B0000 */ lw $t3, ($s1) +/* 0BB520 7F0869B0 C5661274 */ lwc1 $f6, 0x1274($t3) +/* 0BB524 7F0869B4 4606A032 */ c.eq.s $f20, $f6 +/* 0BB528 7F0869B8 00000000 */ nop +/* 0BB52C 7F0869BC 45000002 */ bc1f .Ljp7F0869C8 +/* 0BB530 7F0869C0 00000000 */ nop +/* 0BB534 7F0869C4 24050001 */ li $a1, 1 +.Ljp7F0869C8: +/* 0BB538 7F0869C8 0FC1F7E1 */ jal sub_GAME_7F07D960 +/* 0BB53C 7F0869CC 00000000 */ nop +.Ljp7F0869D0: +/* 0BB540 7F0869D0 8E280000 */ lw $t0, ($s1) +.Ljp7F0869D4: +/* 0BB544 7F0869D4 C7AA0208 */ lwc1 $f10, 0x208($sp) +/* 0BB548 7F0869D8 C7A60204 */ lwc1 $f6, 0x204($sp) +/* 0BB54C 7F0869DC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB550 7F0869E0 C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB554 7F0869E4 460A4081 */ sub.s $f2, $f8, $f10 +/* 0BB558 7F0869E8 C7A803B4 */ lwc1 $f8, 0x3b4($sp) +/* 0BB55C 7F0869EC 46062381 */ sub.s $f14, $f4, $f6 +/* 0BB560 7F0869F0 46084282 */ mul.s $f10, $f8, $f8 +/* 0BB564 7F0869F4 C7A403AC */ lwc1 $f4, 0x3ac($sp) +/* 0BB568 7F0869F8 46042182 */ mul.s $f6, $f4, $f4 +/* 0BB56C 7F0869FC 46065000 */ add.s $f0, $f10, $f6 +/* 0BB570 7F086A00 46140032 */ c.eq.s $f0, $f20 +/* 0BB574 7F086A04 46000306 */ mov.s $f12, $f0 +/* 0BB578 7F086A08 45010006 */ bc1t .Ljp7F086A24 +/* 0BB57C 7F086A0C 00000000 */ nop +/* 0BB580 7F086A10 46021202 */ mul.s $f8, $f2, $f2 +/* 0BB584 7F086A14 00000000 */ nop +/* 0BB588 7F086A18 460E7102 */ mul.s $f4, $f14, $f14 +/* 0BB58C 7F086A1C 46044280 */ add.s $f10, $f8, $f4 +/* 0BB590 7F086A20 46005303 */ div.s $f12, $f10, $f0 +.Ljp7F086A24: +/* 0BB594 7F086A24 0C007E08 */ jal sqrtf +/* 0BB598 7F086A28 00000000 */ nop +/* 0BB59C 7F086A2C C7A80220 */ lwc1 $f8, 0x220($sp) +/* 0BB5A0 7F086A30 8E280000 */ lw $t0, ($s1) +/* 0BB5A4 7F086A34 46080102 */ mul.s $f4, $f0, $f8 +/* 0BB5A8 7F086A38 C5061278 */ lwc1 $f6, 0x1278($t0) +/* 0BB5AC 7F086A3C 46043280 */ add.s $f10, $f6, $f4 +/* 0BB5B0 7F086A40 E50A1278 */ swc1 $f10, 0x1278($t0) +/* 0BB5B4 7F086A44 C7A6021C */ lwc1 $f6, 0x21c($sp) +/* 0BB5B8 7F086A48 8E280000 */ lw $t0, ($s1) +/* 0BB5BC 7F086A4C 46060102 */ mul.s $f4, $f0, $f6 +/* 0BB5C0 7F086A50 C508127C */ lwc1 $f8, 0x127c($t0) +/* 0BB5C4 7F086A54 46044280 */ add.s $f10, $f8, $f4 +/* 0BB5C8 7F086A58 E50A127C */ swc1 $f10, 0x127c($t0) +.Ljp7F086A5C: +/* 0BB5CC 7F086A5C 8E280000 */ lw $t0, ($s1) +.Ljp7F086A60: +/* 0BB5D0 7F086A60 3C018005 */ lui $at, %hi(D_8005524C) +/* 0BB5D4 7F086A64 C428527C */ lwc1 $f8, %lo(D_8005524C)($at) +/* 0BB5D8 7F086A68 C5060160 */ lwc1 $f6, 0x160($t0) +/* 0BB5DC 7F086A6C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0BB5E0 7F086A70 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 0BB5E4 7F086A74 46083103 */ div.s $f4, $f6, $f8 +/* 0BB5E8 7F086A78 44813000 */ mtc1 $at, $f6 +/* 0BB5EC 7F086A7C C514014C */ lwc1 $f20, 0x14c($t0) +/* 0BB5F0 7F086A80 46065203 */ div.s $f8, $f10, $f6 +/* 0BB5F4 7F086A84 46082080 */ add.s $f2, $f4, $f8 +/* 0BB5F8 7F086A88 0FC23D76 */ jal sub_GAME_7F08EAF8 +/* 0BB5FC 7F086A8C E7A20144 */ swc1 $f2, 0x144($sp) +/* 0BB600 7F086A90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BB604 7F086A94 44817000 */ mtc1 $at, $f14 +/* 0BB608 7F086A98 C7A20144 */ lwc1 $f2, 0x144($sp) +/* 0BB60C 7F086A9C 4407A000 */ mfc1 $a3, $f20 +/* 0BB610 7F086AA0 46000306 */ mov.s $f12, $f0 +/* 0BB614 7F086AA4 4602703C */ c.lt.s $f14, $f2 +/* 0BB618 7F086AA8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0BB61C 7F086AAC 45020004 */ bc1fl .Ljp7F086AC0 +/* 0BB620 7F086AB0 44817000 */ mtc1 $at, $f14 +/* 0BB624 7F086AB4 10000008 */ b .Ljp7F086AD8 +/* 0BB628 7F086AB8 46007086 */ mov.s $f2, $f14 +/* 0BB62C 7F086ABC 44817000 */ mtc1 $at, $f14 +.Ljp7F086AC0: +/* 0BB630 7F086AC0 00000000 */ nop +/* 0BB634 7F086AC4 460E103C */ c.lt.s $f2, $f14 +/* 0BB638 7F086AC8 00000000 */ nop +/* 0BB63C 7F086ACC 45020003 */ bc1fl .Ljp7F086ADC +/* 0BB640 7F086AD0 8E2C0000 */ lw $t4, ($s1) +/* 0BB644 7F086AD4 46007086 */ mov.s $f2, $f14 +.Ljp7F086AD8: +/* 0BB648 7F086AD8 8E2C0000 */ lw $t4, ($s1) +.Ljp7F086ADC: +/* 0BB64C 7F086ADC 24010001 */ li $at, 1 +/* 0BB650 7F086AE0 44061000 */ mfc1 $a2, $f2 +/* 0BB654 7F086AE4 8D8D04E8 */ lw $t5, 0x4e8($t4) +/* 0BB658 7F086AE8 15A10004 */ bne $t5, $at, .Ljp7F086AFC +/* 0BB65C 7F086AEC 3C018005 */ lui $at, %hi(D_80055250) # $at, 0x8005 +/* 0BB660 7F086AF0 C42A5280 */ lwc1 $f10, %lo(D_80055250)($at) +/* 0BB664 7F086AF4 460A0302 */ mul.s $f12, $f0, $f10 +/* 0BB668 7F086AF8 00000000 */ nop +.Ljp7F086AFC: +/* 0BB66C 7F086AFC 0FC17981 */ jal sub_GAME_7F05E0E4 +/* 0BB670 7F086B00 C7AE0398 */ lwc1 $f14, 0x398($sp) +/* 0BB674 7F086B04 8E2E0000 */ lw $t6, ($s1) +/* 0BB678 7F086B08 3C018005 */ lui $at, %hi(D_80055254) # $at, 0x8005 +/* 0BB67C 7F086B0C C4245284 */ lwc1 $f4, %lo(D_80055254)($at) +/* 0BB680 7F086B10 C5C6015C */ lwc1 $f6, 0x15c($t6) +/* 0BB684 7F086B14 46043302 */ mul.s $f12, $f6, $f4 +/* 0BB688 7F086B18 0FC17AC4 */ jal sub_GAME_7F05E5F0 +/* 0BB68C 7F086B1C 00000000 */ nop +/* 0BB690 7F086B20 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 +/* 0BB694 7F086B24 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0BB698 7F086B28 3C188003 */ lui $t8, %hi(in_tank_flag) # $t8, 0x8003 +/* 0BB69C 7F086B2C 50600135 */ beql $v1, $zero, .Ljp7F087004 +/* 0BB6A0 7F086B30 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6A4 7F086B34 8F186488 */ lw $t8, %lo(in_tank_flag)($t8) +/* 0BB6A8 7F086B38 24010001 */ li $at, 1 +/* 0BB6AC 7F086B3C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 +/* 0BB6B0 7F086B40 57010130 */ bnel $t8, $at, .Ljp7F087004 +/* 0BB6B4 7F086B44 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6B8 7F086B48 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) +/* 0BB6BC 7F086B4C 24010002 */ li $at, 2 +/* 0BB6C0 7F086B50 55E1012C */ bnel $t7, $at, .Ljp7F087004 +/* 0BB6C4 7F086B54 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB6C8 7F086B58 8C620004 */ lw $v0, 4($v1) +/* 0BB6CC 7F086B5C 00002025 */ move $a0, $zero +/* 0BB6D0 7F086B60 AFA20138 */ sw $v0, 0x138($sp) +/* 0BB6D4 7F086B64 8C4A0014 */ lw $t2, 0x14($v0) +/* 0BB6D8 7F086B68 00408025 */ move $s0, $v0 +/* 0BB6DC 7F086B6C 8D590008 */ lw $t9, 8($t2) +/* 0BB6E0 7F086B70 8F2B0008 */ lw $t3, 8($t9) +/* 0BB6E4 7F086B74 8D6C0014 */ lw $t4, 0x14($t3) +/* 0BB6E8 7F086B78 8D8D0004 */ lw $t5, 4($t4) +/* 0BB6EC 7F086B7C 0FC177BC */ jal get_item_in_hand +/* 0BB6F0 7F086B80 AFAD0130 */ sw $t5, 0x130($sp) +/* 0BB6F4 7F086B84 38430020 */ xori $v1, $v0, 0x20 +/* 0BB6F8 7F086B88 2C640001 */ sltiu $a0, $v1, 1 +/* 0BB6FC 7F086B8C 50800005 */ beql $a0, $zero, .Ljp7F086BA4 +/* 0BB700 7F086B90 AE0400C4 */ sw $a0, 0xc4($s0) +/* 0BB704 7F086B94 0FC1786A */ jal get_hands_firing_status +/* 0BB708 7F086B98 00002025 */ move $a0, $zero +/* 0BB70C 7F086B9C 0002202B */ sltu $a0, $zero, $v0 +/* 0BB710 7F086BA0 AE0400C4 */ sw $a0, 0xc4($s0) +.Ljp7F086BA4: +/* 0BB714 7F086BA4 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 +/* 0BB718 7F086BA8 C42864AC */ lwc1 $f8, %lo(D_8003646C)($at) +/* 0BB71C 7F086BAC 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 +/* 0BB720 7F086BB0 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB724 7F086BB4 E60800C8 */ swc1 $f8, 0xc8($s0) +/* 0BB728 7F086BB8 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0BB72C 7F086BBC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB730 7F086BC0 E60A00CC */ swc1 $f10, 0xcc($s0) +/* 0BB734 7F086BC4 C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) +/* 0BB738 7F086BC8 3C018005 */ lui $at, %hi(D_80055258) # $at, 0x8005 +/* 0BB73C 7F086BCC E60600DC */ swc1 $f6, 0xdc($s0) +/* 0BB740 7F086BD0 C4245288 */ lwc1 $f4, %lo(D_80055258)($at) +/* 0BB744 7F086BD4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 +/* 0BB748 7F086BD8 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0BB74C 7F086BDC 0FC162C7 */ jal matrix_4x4_set_rotation_around_y +/* 0BB750 7F086BE0 46082301 */ sub.s $f12, $f4, $f8 +/* 0BB754 7F086BE4 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BB758 7F086BE8 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BB75C 7F086BEC 8DD80014 */ lw $t8, 0x14($t6) +/* 0BB760 7F086BF0 0FC163E7 */ jal matrix_scalar_multiply +/* 0BB764 7F086BF4 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0BB768 7F086BF8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) # $at, 0x8008 +/* 0BB76C 7F086BFC C42A99E8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) +/* 0BB770 7F086C00 C42499EC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) +/* 0BB774 7F086C04 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) # $at, 0x8008 +/* 0BB778 7F086C08 46005187 */ neg.s $f6, $f10 +/* 0BB77C 7F086C0C C42A99F0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) +/* 0BB780 7F086C10 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 0BB784 7F086C14 46002207 */ neg.s $f8, $f4 +/* 0BB788 7F086C18 46005187 */ neg.s $f6, $f10 +/* 0BB78C 7F086C1C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 0BB790 7F086C20 E7A600EC */ swc1 $f6, 0xec($sp) +/* 0BB794 7F086C24 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB798 7F086C28 0FC1623E */ jal matrix_4x4_rotate_vector_in_place +/* 0BB79C 7F086C2C 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BB7A0 7F086C30 8E280000 */ lw $t0, ($s1) +/* 0BB7A4 7F086C34 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 0BB7A8 7F086C38 C7A600EC */ lwc1 $f6, 0xec($sp) +/* 0BB7AC 7F086C3C C508048C */ lwc1 $f8, 0x48c($t0) +/* 0BB7B0 7F086C40 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB7B4 7F086C44 46082280 */ add.s $f10, $f4, $f8 +/* 0BB7B8 7F086C48 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 0BB7BC 7F086C4C C5040494 */ lwc1 $f4, 0x494($t0) +/* 0BB7C0 7F086C50 46043200 */ add.s $f8, $f6, $f4 +/* 0BB7C4 7F086C54 E7A800EC */ swc1 $f8, 0xec($sp) +/* 0BB7C8 7F086C58 8D0F0488 */ lw $t7, 0x488($t0) +/* 0BB7CC 7F086C5C 8C4A0010 */ lw $t2, 0x10($v0) +/* 0BB7D0 7F086C60 AD4F0014 */ sw $t7, 0x14($t2) +/* 0BB7D4 7F086C64 8E280000 */ lw $t0, ($s1) +/* 0BB7D8 7F086C68 C7AA00EC */ lwc1 $f10, 0xec($sp) +/* 0BB7DC 7F086C6C 8C440010 */ lw $a0, 0x10($v0) +/* 0BB7E0 7F086C70 8D05048C */ lw $a1, 0x48c($t0) +/* 0BB7E4 7F086C74 8D060494 */ lw $a2, 0x494($t0) +/* 0BB7E8 7F086C78 8FA700E4 */ lw $a3, 0xe4($sp) +/* 0BB7EC 7F086C7C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BB7F0 7F086C80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 +/* 0BB7F4 7F086C84 24840014 */ addiu $a0, $a0, 0x14 +/* 0BB7F8 7F086C88 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB7FC 7F086C8C 8FA500E4 */ lw $a1, 0xe4($sp) +/* 0BB800 7F086C90 8FA600EC */ lw $a2, 0xec($sp) +/* 0BB804 7F086C94 8F2B0010 */ lw $t3, 0x10($t9) +/* 0BB808 7F086C98 0FC2CD48 */ jal sub_GAME_7F0B2970 +/* 0BB80C 7F086C9C 8D640014 */ lw $a0, 0x14($t3) +/* 0BB810 7F086CA0 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 +/* 0BB814 7F086CA4 246383A4 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c5c +/* 0BB818 7F086CA8 E60000D4 */ swc1 $f0, 0xd4($s0) +/* 0BB81C 7F086CAC 8C6C0000 */ lw $t4, ($v1) +/* 0BB820 7F086CB0 00001025 */ move $v0, $zero +/* 0BB824 7F086CB4 3C018005 */ lui $at, %hi(D_8005525C) # $at, 0x8005 +/* 0BB828 7F086CB8 1980000C */ blez $t4, .Ljp7F086CEC +/* 0BB82C 7F086CBC 00000000 */ nop +/* 0BB830 7F086CC0 C60200D4 */ lwc1 $f2, 0xd4($s0) +/* 0BB834 7F086CC4 C420528C */ lwc1 $f0, %lo(D_8005525C)($at) +/* 0BB838 7F086CC8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CCC: +/* 0BB83C 7F086CCC 24420001 */ addiu $v0, $v0, 1 +/* 0BB840 7F086CD0 46003102 */ mul.s $f4, $f6, $f0 +/* 0BB844 7F086CD4 46022200 */ add.s $f8, $f4, $f2 +/* 0BB848 7F086CD8 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 0BB84C 7F086CDC 8C6D0000 */ lw $t5, ($v1) +/* 0BB850 7F086CE0 004D082A */ slt $at, $v0, $t5 +/* 0BB854 7F086CE4 5420FFF9 */ bnezl $at, .Ljp7F086CCC +/* 0BB858 7F086CE8 C60600D0 */ lwc1 $f6, 0xd0($s0) +.Ljp7F086CEC: +/* 0BB85C 7F086CEC 3C018005 */ lui $at, %hi(D_80055260) # $at, 0x8005 +/* 0BB860 7F086CF0 C4265290 */ lwc1 $f6, %lo(D_80055260)($at) +/* 0BB864 7F086CF4 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 0BB868 7F086CF8 8FA40130 */ lw $a0, 0x130($sp) +/* 0BB86C 7F086CFC 46065502 */ mul.s $f20, $f10, $f6 +/* 0BB870 7F086D00 0FC0FAD9 */ jal sub_GAME_7F03E864 +/* 0BB874 7F086D04 00000000 */ nop +/* 0BB878 7F086D08 8FA20138 */ lw $v0, 0x138($sp) +/* 0BB87C 7F086D0C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0BB880 7F086D10 44813000 */ mtc1 $at, $f6 +/* 0BB884 7F086D14 8C4E0014 */ lw $t6, 0x14($v0) +/* 0BB888 7F086D18 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BB88C 7F086D1C 24450018 */ addiu $a1, $v0, 0x18 +/* 0BB890 7F086D20 C5C40014 */ lwc1 $f4, 0x14($t6) +/* 0BB894 7F086D24 46040202 */ mul.s $f8, $f0, $f4 +/* 0BB898 7F086D28 4608A281 */ sub.s $f10, $f20, $f8 +/* 0BB89C 7F086D2C 46065100 */ add.s $f4, $f10, $f6 +/* 0BB8A0 7F086D30 0FC16150 */ jal matrix_4x4_copy +/* 0BB8A4 7F086D34 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 0BB8A8 7F086D38 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8AC 7F086D3C C7A000E4 */ lwc1 $f0, 0xe4($sp) +/* 0BB8B0 7F086D40 8C980010 */ lw $t8, 0x10($a0) +/* 0BB8B4 7F086D44 E7000008 */ swc1 $f0, 8($t8) +/* 0BB8B8 7F086D48 E4800058 */ swc1 $f0, 0x58($a0) +/* 0BB8BC 7F086D4C C7A000E8 */ lwc1 $f0, 0xe8($sp) +/* 0BB8C0 7F086D50 8C8F0010 */ lw $t7, 0x10($a0) +/* 0BB8C4 7F086D54 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0BB8C8 7F086D58 E480005C */ swc1 $f0, 0x5c($a0) +/* 0BB8CC 7F086D5C C7A000EC */ lwc1 $f0, 0xec($sp) +/* 0BB8D0 7F086D60 8C8A0010 */ lw $t2, 0x10($a0) +/* 0BB8D4 7F086D64 E5400010 */ swc1 $f0, 0x10($t2) +/* 0BB8D8 7F086D68 0FC15C68 */ jal sub_GAME_7F056CA0 +/* 0BB8DC 7F086D6C E4800060 */ swc1 $f0, 0x60($a0) +/* 0BB8E0 7F086D70 0FC101E1 */ jal sub_GAME_7F040484 +/* 0BB8E4 7F086D74 8FA40138 */ lw $a0, 0x138($sp) +/* 0BB8E8 7F086D78 8E250000 */ lw $a1, ($s1) +/* 0BB8EC 7F086D7C 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 +/* 0BB8F0 7F086D80 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) +/* 0BB8F4 7F086D84 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BB8F8 7F086D88 0FC1F3AB */ jal sub_GAME_7F07C888 +/* 0BB8FC 7F086D8C 24A5048C */ addiu $a1, $a1, 0x48c +/* 0BB900 7F086D90 8FB90138 */ lw $t9, 0x138($sp) +/* 0BB904 7F086D94 27B00094 */ addiu $s0, $sp, 0x94 +/* 0BB908 7F086D98 02002825 */ move $a1, $s0 +/* 0BB90C 7F086D9C 0FC0F3A3 */ jal sub_GAME_7F03CB8C +/* 0BB910 7F086DA0 8F240010 */ lw $a0, 0x10($t9) +/* 0BB914 7F086DA4 0FC0F9BF */ jal sub_GAME_7F03E3FC +/* 0BB918 7F086DA8 02002025 */ move $a0, $s0 +/* 0BB91C 7F086DAC 3C0B8007 */ lui $t3, %hi(ptr_list_object_lookup_indices) # $t3, 0x8007 +/* 0BB920 7F086DB0 8D6B9C70 */ lw $t3, %lo(ptr_list_object_lookup_indices)($t3) +/* 0BB924 7F086DB4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0BB928 7F086DB8 AFAB008C */ sw $t3, 0x8c($sp) +/* 0BB92C 7F086DBC 85620000 */ lh $v0, ($t3) +/* 0BB930 7F086DC0 04420090 */ bltzl $v0, .Ljp7F087004 +/* 0BB934 7F086DC4 8FA40394 */ lw $a0, 0x394($sp) +/* 0BB938 7F086DC8 4481A000 */ mtc1 $at, $f20 +/* 0BB93C 7F086DCC 00000000 */ nop +/* 0BB940 7F086DD0 8FAE0138 */ lw $t6, 0x138($sp) +.Ljp7F086DD4: +/* 0BB944 7F086DD4 00026080 */ sll $t4, $v0, 2 +/* 0BB948 7F086DD8 01826023 */ subu $t4, $t4, $v0 +/* 0BB94C 7F086DDC 000C6080 */ sll $t4, $t4, 2 +/* 0BB950 7F086DE0 8DD80010 */ lw $t8, 0x10($t6) +/* 0BB954 7F086DE4 01826021 */ addu $t4, $t4, $v0 +/* 0BB958 7F086DE8 3C0D8007 */ lui $t5, %hi(pos_data_entry) # $t5, 0x8007 +/* 0BB95C 7F086DEC 25AD9C78 */ addiu $t5, %lo(pos_data_entry) # addiu $t5, $t5, -0x6388 +/* 0BB960 7F086DF0 000C6080 */ sll $t4, $t4, 2 +/* 0BB964 7F086DF4 018D8021 */ addu $s0, $t4, $t5 +/* 0BB968 7F086DF8 5218007C */ beql $s0, $t8, .Ljp7F086FEC +/* 0BB96C 7F086DFC 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BB970 7F086E00 92020000 */ lbu $v0, ($s0) +/* 0BB974 7F086E04 24010003 */ li $at, 3 +/* 0BB978 7F086E08 240F0001 */ li $t7, 1 +/* 0BB97C 7F086E0C 1441005A */ bne $v0, $at, .Ljp7F086F78 +/* 0BB980 7F086E10 02002025 */ move $a0, $s0 +/* 0BB984 7F086E14 AFAF007C */ sw $t7, 0x7c($sp) +/* 0BB988 7F086E18 8E030004 */ lw $v1, 4($s0) +/* 0BB98C 7F086E1C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BB990 7F086E20 27A60088 */ addiu $a2, $sp, 0x88 +/* 0BB994 7F086E24 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BB998 7F086E28 0FC0F4A2 */ jal sub_GAME_7F03CF88 +/* 0BB99C 7F086E2C AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9A0 7F086E30 26040008 */ addiu $a0, $s0, 8 +/* 0BB9A4 7F086E34 AFA40050 */ sw $a0, 0x50($sp) +/* 0BB9A8 7F086E38 27A500B4 */ addiu $a1, $sp, 0xb4 +/* 0BB9AC 7F086E3C 0FC0F3F6 */ jal sub_GAME_7F03CCD8 +/* 0BB9B0 7F086E40 24060004 */ li $a2, 4 +/* 0BB9B4 7F086E44 10400031 */ beqz $v0, .Ljp7F086F0C +/* 0BB9B8 7F086E48 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9BC 7F086E4C AFA0007C */ sw $zero, 0x7c($sp) +/* 0BB9C0 7F086E50 806A0007 */ lb $t2, 7($v1) +/* 0BB9C4 7F086E54 24010004 */ li $at, 4 +/* 0BB9C8 7F086E58 5541002D */ bnel $t2, $at, .Ljp7F086F10 +/* 0BB9CC 7F086E5C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9D0 7F086E60 8C790014 */ lw $t9, 0x14($v1) +/* 0BB9D4 7F086E64 001959C0 */ sll $t3, $t9, 7 +/* 0BB9D8 7F086E68 05620029 */ bltzl $t3, .Ljp7F086F10 +/* 0BB9DC 7F086E6C 8FAF007C */ lw $t7, 0x7c($sp) +/* 0BB9E0 7F086E70 0FC3021B */ jal get_controls_locked_flag +/* 0BB9E4 7F086E74 AFA3006C */ sw $v1, 0x6c($sp) +/* 0BB9E8 7F086E78 14400024 */ bnez $v0, .Ljp7F086F0C +/* 0BB9EC 7F086E7C 8FA3006C */ lw $v1, 0x6c($sp) +/* 0BB9F0 7F086E80 8C6C0014 */ lw $t4, 0x14($v1) +/* 0BB9F4 7F086E84 3C010100 */ lui $at, 0x100 +/* 0BB9F8 7F086E88 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BB9FC 7F086E8C 01816825 */ or $t5, $t4, $at +/* 0BBA00 7F086E90 AC6D0014 */ sw $t5, 0x14($v1) +/* 0BBA04 7F086E94 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA08 7F086E98 24010003 */ li $at, 3 +/* 0BBA0C 7F086E9C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BBA10 7F086EA0 0041001A */ div $zero, $v0, $at +/* 0BBA14 7F086EA4 00001010 */ mfhi $v0 +/* 0BBA18 7F086EA8 28410002 */ slti $at, $v0, 2 +/* 0BBA1C 7F086EAC 1020000E */ beqz $at, .Ljp7F086EE8 +/* 0BBA20 7F086EB0 240500B7 */ li $a1, 183 +/* 0BBA24 7F086EB4 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BBA28 7F086EB8 0C002386 */ jal play_sfx_a1 +/* 0BBA2C 7F086EBC 00003025 */ move $a2, $zero +/* 0BBA30 7F086EC0 00402025 */ move $a0, $v0 +/* 0BBA34 7F086EC4 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA38 7F086EC8 8FA50050 */ lw $a1, 0x50($sp) +/* 0BBA3C 7F086ECC 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0BBA40 7F086ED0 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) +/* 0BBA44 7F086ED4 24010003 */ li $at, 3 +/* 0BBA48 7F086ED8 0041001A */ div $zero, $v0, $at +/* 0BBA4C 7F086EDC 00001010 */ mfhi $v0 +/* 0BBA50 7F086EE0 00000000 */ nop +/* 0BBA54 7F086EE4 00000000 */ nop +.Ljp7F086EE8: +/* 0BBA58 7F086EE8 18400008 */ blez $v0, .Ljp7F086F0C +/* 0BBA5C 7F086EEC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BBA60 7F086EF0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BBA64 7F086EF4 240500D5 */ li $a1, 213 +/* 0BBA68 7F086EF8 0C002386 */ jal play_sfx_a1 +/* 0BBA6C 7F086EFC 00003025 */ move $a2, $zero +/* 0BBA70 7F086F00 00402025 */ move $a0, $v0 +/* 0BBA74 7F086F04 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0BBA78 7F086F08 8FA50050 */ lw $a1, 0x50($sp) +.Ljp7F086F0C: +/* 0BBA7C 7F086F0C 8FAF007C */ lw $t7, 0x7c($sp) +.Ljp7F086F10: +/* 0BBA80 7F086F10 8FA40050 */ lw $a0, 0x50($sp) +/* 0BBA84 7F086F14 8FA50080 */ lw $a1, 0x80($sp) +/* 0BBA88 7F086F18 11E00006 */ beqz $t7, .Ljp7F086F34 +/* 0BBA8C 7F086F1C 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBA90 7F086F20 0FC112BB */ jal sub_GAME_7F044718 +/* 0BBA94 7F086F24 24070004 */ li $a3, 4 +/* 0BBA98 7F086F28 50400003 */ beql $v0, $zero, .Ljp7F086F38 +/* 0BBA9C 7F086F2C 8FAA007C */ lw $t2, 0x7c($sp) +/* 0BBAA0 7F086F30 AFA0007C */ sw $zero, 0x7c($sp) +.Ljp7F086F34: +/* 0BBAA4 7F086F34 8FAA007C */ lw $t2, 0x7c($sp) +.Ljp7F086F38: +/* 0BBAA8 7F086F38 8FB90138 */ lw $t9, 0x138($sp) +/* 0BBAAC 7F086F3C 5540002B */ bnezl $t2, .Ljp7F086FEC +/* 0BBAB0 7F086F40 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBAB4 7F086F44 C7280058 */ lwc1 $f8, 0x58($t9) +/* 0BBAB8 7F086F48 4406A000 */ mfc1 $a2, $f20 +/* 0BBABC 7F086F4C 27A50070 */ addiu $a1, $sp, 0x70 +/* 0BBAC0 7F086F50 E7A80070 */ swc1 $f8, 0x70($sp) +/* 0BBAC4 7F086F54 C60A000C */ lwc1 $f10, 0xc($s0) +/* 0BBAC8 7F086F58 24070001 */ li $a3, 1 +/* 0BBACC 7F086F5C E7AA0074 */ swc1 $f10, 0x74($sp) +/* 0BBAD0 7F086F60 C7260060 */ lwc1 $f6, 0x60($t9) +/* 0BBAD4 7F086F64 E7A60078 */ swc1 $f6, 0x78($sp) +/* 0BBAD8 7F086F68 0FC09EC3 */ jal sub_GAME_7F027804 +/* 0BBADC 7F086F6C 8E040004 */ lw $a0, 4($s0) +/* 0BBAE0 7F086F70 1000001E */ b .Ljp7F086FEC +/* 0BBAE4 7F086F74 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086F78: +/* 0BBAE8 7F086F78 24010001 */ li $at, 1 +/* 0BBAEC 7F086F7C 1441001A */ bne $v0, $at, .Ljp7F086FE8 +/* 0BBAF0 7F086F80 02002025 */ move $a0, $s0 +/* 0BBAF4 7F086F84 27A50064 */ addiu $a1, $sp, 0x64 +/* 0BBAF8 7F086F88 0FC0F3EC */ jal sub_GAME_7F03CCB0 +/* 0BBAFC 7F086F8C 27A60060 */ addiu $a2, $sp, 0x60 +/* 0BBB00 7F086F90 8FA50060 */ lw $a1, 0x60($sp) +/* 0BBB04 7F086F94 8FA40064 */ lw $a0, 0x64($sp) +/* 0BBB08 7F086F98 27A600B4 */ addiu $a2, $sp, 0xb4 +/* 0BBB0C 7F086F9C 58A00013 */ blezl $a1, .Ljp7F086FEC +/* 0BBB10 7F086FA0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB14 7F086FA4 0FC11268 */ jal sub_GAME_7F0446B8 +/* 0BBB18 7F086FA8 24070004 */ li $a3, 4 +/* 0BBB1C 7F086FAC 5040000F */ beql $v0, $zero, .Ljp7F086FEC +/* 0BBB20 7F086FB0 8FAC008C */ lw $t4, 0x8c($sp) +/* 0BBB24 7F086FB4 0FC26F3C */ jal get_cur_playernum +/* 0BBB28 7F086FB8 00000000 */ nop +/* 0BBB2C 7F086FBC 8E060004 */ lw $a2, 4($s0) +/* 0BBB30 7F086FC0 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c +/* 0BBB34 7F086FC4 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 0BBB38 7F086FC8 AFA20010 */ sw $v0, 0x10($sp) +/* 0BBB3C 7F086FCC 02002025 */ move $a0, $s0 +/* 0BBB40 7F086FD0 24070020 */ li $a3, 32 +/* 0BBB44 7F086FD4 0FC138C0 */ jal sub_GAME_7F04DEFC +/* 0BBB48 7F086FD8 24C60058 */ addiu $a2, $a2, 0x58 +/* 0BBB4C 7F086FDC 240B005A */ li $t3, 90 +/* 0BBB50 7F086FE0 3C018003 */ lui $at, %hi(D_80036490) # $at, 0x8003 +/* 0BBB54 7F086FE4 AC2B64D0 */ sw $t3, %lo(D_80036490)($at) +.Ljp7F086FE8: +/* 0BBB58 7F086FE8 8FAC008C */ lw $t4, 0x8c($sp) +.Ljp7F086FEC: +/* 0BBB5C 7F086FEC 258D0002 */ addiu $t5, $t4, 2 +/* 0BBB60 7F086FF0 AFAD008C */ sw $t5, 0x8c($sp) +/* 0BBB64 7F086FF4 85A20000 */ lh $v0, ($t5) +/* 0BBB68 7F086FF8 0443FF76 */ bgezl $v0, .Ljp7F086DD4 +/* 0BBB6C 7F086FFC 8FAE0138 */ lw $t6, 0x138($sp) +/* 0BBB70 7F087000 8FA40394 */ lw $a0, 0x394($sp) +.Ljp7F087004: +/* 0BBB74 7F087004 0FC20502 */ jal sub_GAME_7F080DF8 +/* 0BBB78 7F087008 8FA50390 */ lw $a1, 0x390($sp) +/* 0BBB7C 7F08700C 0FC206A2 */ jal sub_GAME_7F081478 +/* 0BBB80 7F087010 00000000 */ nop +/* 0BBB84 7F087014 0FC22A35 */ jal sub_GAME_7F08A19C +/* 0BBB88 7F087018 00000000 */ nop +/* 0BBB8C 7F08701C 0FC24697 */ jal get_debug_man_pos_flag +/* 0BBB90 7F087020 00000000 */ nop +/* 0BBB94 7F087024 50400008 */ beql $v0, $zero, .Ljp7F087048 +/* 0BBB98 7F087028 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BBB9C 7F08702C 8E280000 */ lw $t0, ($s1) +/* 0BBBA0 7F087030 27A7005C */ addiu $a3, $sp, 0x5c +/* 0BBBA4 7F087034 8D040488 */ lw $a0, 0x488($t0) +/* 0BBBA8 7F087038 8D05048C */ lw $a1, 0x48c($t0) +/* 0BBBAC 7F08703C 0FC2CDF7 */ jal copy_tile_RGB_as_24bit +/* 0BBBB0 7F087040 8D060494 */ lw $a2, 0x494($t0) +/* 0BBBB4 7F087044 8FBF002C */ lw $ra, 0x2c($sp) +.Ljp7F087048: +/* 0BBBB8 7F087048 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0BBBBC 7F08704C 8FB00024 */ lw $s0, 0x24($sp) +/* 0BBBC0 7F087050 8FB10028 */ lw $s1, 0x28($sp) +/* 0BBBC4 7F087054 03E00008 */ jr $ra +/* 0BBBC8 7F087058 27BD03B8 */ addiu $sp, $sp, 0x3b8 + +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_8005516C +.word 0x3d888889 /*0.06666667*/ +glabel D_80055170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055174 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055178 +.word 0x3f8147ae /*1.01*/ +glabel D_8005517C +.word 0x3f8147ae /*1.01*/ +glabel D_80055180 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055184 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055188 +.word 0x40490fdb /*3.1415927*/ +glabel D_8005518C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055190 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80055194 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055198 +.word 0x3f6b851f /*0.92000002*/ +glabel D_8005519C +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551A0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551A4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551A8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551AC +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551B0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551B8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551BC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551C0 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C4 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551C8 +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551CC +.word 0x3f6b851f /*0.92000002*/ +glabel D_800551D0 +.word 0x3da3d708 /*0.079999983*/ +glabel D_800551D4 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_800551D8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551DC +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_800551E8 +.word 0x3e99999a /*0.30000001*/ +glabel D_800551EC +.word 0x3e19999a /*0.15000001*/ +glabel D_800551F0 +.word 0x469c4000 /*20000.0*/ +glabel D_800551F4 +.word 0x3f666666 /*0.89999998*/ +glabel D_800551F8 +.word 0x46477c00 /*12767.0*/ +glabel D_800551FC +.word 0x469c4000 /*20000.0*/ +glabel D_80055200 +.word 0x3f666666 /*0.89999998*/ +glabel D_80055204 +.word 0x45f2b800 /*7767.0*/ +glabel D_80055208 +.word 0x3f666666 /*0.89999998*/ +glabel D_8005520C +.word 0x46c35000 /*25000.0;*/ +glabel D_80055210 +.word 0x3e32b8c3 /*0.17453294*/ +glabel D_80055214 +.word 0x3edf66f3 /*0.43633232*/ +glabel D_80055218 +.word 0xbdb2b8c3 /*-0.087266468*/ +glabel D_8005521C +.word 0x3f70a3d7 /*0.94*/ +glabel D_80055220 +.word 0x3d75c290 /*0.060000002*/ +glabel D_80055224 +.word 0x4528c000 /*2700.0*/ +glabel D_80055228 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005522C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80055230 +.word 0x3f19999a /*0.60000002*/ +glabel D_80055234 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80055238 +.word 0x3dcccccd /*0.1*/ +glabel D_8005523C +.word 0x4528c000 /*2700.0*/ +glabel D_80055240 +.word 0x3f947ae1 /*1.16*/ +glabel D_80055244 +.word 0x3f8147ae /*1.01*/ +glabel D_80055248 +.word 0x3f7d7721 /*0.99009901*/ +glabel D_8005524C +.word 0x3f333333 /*0.69999999*/ +glabel D_80055250 +.word 0x3f99999a /*1.2*/ +glabel D_80055254 +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055258 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005525C +.word 0x3f547ae1 /*0.82999998*/ +glabel D_80055260 +.word 0x3e2e147c /*0.17000002*/ +.text +glabel MoveBond +/* 0B9178 7F084648 27BDFC48 */ addiu $sp, $sp, -0x3b8 +/* 0B917C 7F08464C 3C0E8003 */ lui $t6, %hi(D_800367F4) +/* 0B9180 7F084650 AFBF002C */ sw $ra, 0x2c($sp) +/* 0B9184 7F084654 AFB10028 */ sw $s1, 0x28($sp) +/* 0B9188 7F084658 AFB00024 */ sw $s0, 0x24($sp) +/* 0B918C 7F08465C F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0B9190 7F084660 AFA403B8 */ sw $a0, 0x3b8($sp) +/* 0B9194 7F084664 AFA503BC */ sw $a1, 0x3bc($sp) +/* 0B9198 7F084668 AFA603C0 */ sw $a2, 0x3c0($sp) +/* 0B919C 7F08466C AFA703C4 */ sw $a3, 0x3c4($sp) +/* 0B91A0 7F084670 25CE67F4 */ addiu $t6, %lo(D_800367F4) # addiu $t6, $t6, 0x67f4 +/* 0B91A4 7F084674 8DC10000 */ lw $at, ($t6) +/* 0B91A8 7F084678 27AD03AC */ addiu $t5, $sp, 0x3ac +/* 0B91AC 7F08467C 8DCF0004 */ lw $t7, 4($t6) +/* 0B91B0 7F084680 ADA10000 */ sw $at, ($t5) +/* 0B91B4 7F084684 8DC10008 */ lw $at, 8($t6) +/* 0B91B8 7F084688 4480A000 */ mtc1 $zero, $f20 +/* 0B91BC 7F08468C 00048600 */ sll $s0, $a0, 0x18 +/* 0B91C0 7F084690 ADA10008 */ sw $at, 8($t5) +/* 0B91C4 7F084694 00106603 */ sra $t4, $s0, 0x18 +/* 0B91C8 7F084698 ADAF0004 */ sw $t7, 4($t5) +/* 0B91CC 7F08469C 29810064 */ slti $at, $t4, 0x64 +/* 0B91D0 7F0846A0 01808025 */ move $s0, $t4 +/* 0B91D4 7F0846A4 AFA00394 */ sw $zero, 0x394($sp) +/* 0B91D8 7F0846A8 E7B40398 */ swc1 $f20, 0x398($sp) +/* 0B91DC 7F0846AC 10200004 */ beqz $at, .L7F0846C0 +/* 0B91E0 7F0846B0 E7B40390 */ swc1 $f20, 0x390($sp) +/* 0B91E4 7F0846B4 2981FF9D */ slti $at, $t4, -0x63 +/* 0B91E8 7F0846B8 50200004 */ beql $at, $zero, .L7F0846CC +/* 0B91EC 7F0846BC 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846C0: +/* 0B91F0 7F0846C0 0FC1B11B */ jal return_null +/* 0B91F4 7F0846C4 00000000 */ nop +/* 0B91F8 7F0846C8 83AB03BF */ lb $t3, 0x3bf($sp) +.L7F0846CC: +/* 0B91FC 7F0846CC 29610064 */ slti $at, $t3, 0x64 +/* 0B9200 7F0846D0 10200003 */ beqz $at, .L7F0846E0 +/* 0B9204 7F0846D4 2961FF9D */ slti $at, $t3, -0x63 +/* 0B9208 7F0846D8 10200003 */ beqz $at, .L7F0846E8 +/* 0B920C 7F0846DC 00000000 */ nop +.L7F0846E0: +/* 0B9210 7F0846E0 0FC1B11B */ jal return_null +/* 0B9214 7F0846E4 00000000 */ nop +.L7F0846E8: +/* 0B9218 7F0846E8 3C038003 */ lui $v1, %hi(camera_80036424) +/* 0B921C 7F0846EC 24636424 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6424 +/* 0B9220 7F0846F0 8C620000 */ lw $v0, ($v1) +/* 0B9224 7F0846F4 18400015 */ blez $v0, .L7F08474C +/* 0B9228 7F0846F8 24580001 */ addiu $t8, $v0, 1 +/* 0B922C 7F0846FC 2B010004 */ slti $at, $t8, 4 +/* 0B9230 7F084700 14200012 */ bnez $at, .L7F08474C +/* 0B9234 7F084704 AC780000 */ sw $t8, ($v1) +/* 0B9238 7F084708 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B923C 7F08470C 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9240 7F084710 8E390000 */ lw $t9, ($s1) +/* 0B9244 7F084714 AC600000 */ sw $zero, ($v1) +/* 0B9248 7F084718 24040001 */ li $a0, 1 +/* 0B924C 7F08471C AF202A54 */ sw $zero, 0x2a54($t9) +/* 0B9250 7F084720 8E2A0000 */ lw $t2, ($s1) +/* 0B9254 7F084724 0FC17674 */ jal get_item_in_hand +/* 0B9258 7F084728 AD402A50 */ sw $zero, 0x2a50($t2) +/* 0B925C 7F08472C 24040001 */ li $a0, 1 +/* 0B9260 7F084730 0FC176D5 */ jal remove_hands_item +/* 0B9264 7F084734 00402825 */ move $a1, $v0 +/* 0B9268 7F084738 0FC17674 */ jal get_item_in_hand +/* 0B926C 7F08473C 00002025 */ move $a0, $zero +/* 0B9270 7F084740 00002025 */ move $a0, $zero +/* 0B9274 7F084744 0FC176D5 */ jal remove_hands_item +/* 0B9278 7F084748 00402825 */ move $a1, $v0 +.L7F08474C: +/* 0B927C 7F08474C 3C118008 */ lui $s1, %hi(pPlayer) +/* 0B9280 7F084750 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 0B9284 7F084754 0FC1E694 */ jal currentPlayerSetField00 +/* 0B9288 7F084758 00002025 */ move $a0, $zero +/* 0B928C 7F08475C 0FC20FF2 */ jal sub_GAME_7F083FC8 +/* 0B9290 7F084760 00000000 */ nop +/* 0B9294 7F084764 0FC210D8 */ jal sub_GAME_7F084360 +/* 0B9298 7F084768 00000000 */ nop +/* 0B929C 7F08476C 00102600 */ sll $a0, $s0, 0x18 +/* 0B92A0 7F084770 00046E03 */ sra $t5, $a0, 0x18 +/* 0B92A4 7F084774 01A02025 */ move $a0, $t5 +/* 0B92A8 7F084778 83A503BF */ lb $a1, 0x3bf($sp) +/* 0B92AC 7F08477C 97A603C2 */ lhu $a2, 0x3c2($sp) +/* 0B92B0 7F084780 0FC2065D */ jal controller_gameplay_interaction +/* 0B92B4 7F084784 97A703C6 */ lhu $a3, 0x3c6($sp) +/* 0B92B8 7F084788 0FC2FF01 */ jal get_controls_locked_flag +/* 0B92BC 7F08478C 00000000 */ nop +/* 0B92C0 7F084790 50400004 */ beql $v0, $zero, .L7F0847A4 +/* 0B92C4 7F084794 8E2E0000 */ lw $t6, ($s1) +/* 0B92C8 7F084798 0FC1FABC */ jal sub_GAME_7F07EAF0 +/* 0B92CC 7F08479C 00000000 */ nop +/* 0B92D0 7F0847A0 8E2E0000 */ lw $t6, ($s1) +.L7F0847A4: +/* 0B92D4 7F0847A4 8DCF01C8 */ lw $t7, 0x1c8($t6) +/* 0B92D8 7F0847A8 11E00003 */ beqz $t7, .L7F0847B8 +/* 0B92DC 7F0847AC 00000000 */ nop +/* 0B92E0 7F0847B0 0FC1FB15 */ jal sub_GAME_7F07EC54 +/* 0B92E4 7F0847B4 00000000 */ nop +.L7F0847B8: +/* 0B92E8 7F0847B8 3C0B8003 */ lui $t3, %hi(in_tank_flag) +/* 0B92EC 7F0847BC 8D6B6448 */ lw $t3, %lo(in_tank_flag)($t3) +/* 0B92F0 7F0847C0 1560006E */ bnez $t3, .L7F08497C +/* 0B92F4 7F0847C4 00000000 */ nop +/* 0B92F8 7F0847C8 0FC1E67C */ jal currentPlayerGetCrouchPos +/* 0B92FC 7F0847CC 00000000 */ nop +/* 0B9300 7F0847D0 5440000D */ bnezl $v0, .L7F084808 +/* 0B9304 7F0847D4 8E280000 */ lw $t0, ($s1) +/* 0B9308 7F0847D8 8E280000 */ lw $t0, ($s1) +/* 0B930C 7F0847DC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9310 7F0847E0 44815000 */ mtc1 $at, $f10 +/* 0B9314 7F0847E4 C5040174 */ lwc1 $f4, 0x174($t0) +/* 0B9318 7F0847E8 460A2182 */ mul.s $f6, $f4, $f10 +/* 0B931C 7F0847EC 44812000 */ mtc1 $at, $f4 +/* 0B9320 7F0847F0 E5060174 */ swc1 $f6, 0x174($t0) +/* 0B9324 7F0847F4 8E280000 */ lw $t0, ($s1) +/* 0B9328 7F0847F8 C508016C */ lwc1 $f8, 0x16c($t0) +/* 0B932C 7F0847FC 46044282 */ mul.s $f10, $f8, $f4 +/* 0B9330 7F084800 E50A016C */ swc1 $f10, 0x16c($t0) +/* 0B9334 7F084804 8E280000 */ lw $t0, ($s1) +.L7F084808: +/* 0B9338 7F084808 C5120180 */ lwc1 $f18, 0x180($t0) +/* 0B933C 7F08480C 4612A032 */ c.eq.s $f20, $f18 +/* 0B9340 7F084810 00000000 */ nop +/* 0B9344 7F084814 45020007 */ bc1fl .L7F084834 +/* 0B9348 7F084818 C5000188 */ lwc1 $f0, 0x188($t0) +/* 0B934C 7F08481C C5060188 */ lwc1 $f6, 0x188($t0) +/* 0B9350 7F084820 4606A032 */ c.eq.s $f20, $f6 +/* 0B9354 7F084824 00000000 */ nop +/* 0B9358 7F084828 45010054 */ bc1t .L7F08497C +/* 0B935C 7F08482C 00000000 */ nop +/* 0B9360 7F084830 C5000188 */ lwc1 $f0, 0x188($t0) +.L7F084834: +/* 0B9364 7F084834 C5020150 */ lwc1 $f2, 0x150($t0) +/* 0B9368 7F084838 C5100154 */ lwc1 $f16, 0x154($t0) +/* 0B936C 7F08483C 46009387 */ neg.s $f14, $f18 +/* 0B9370 7F084840 46020202 */ mul.s $f8, $f0, $f2 +/* 0B9374 7F084844 00000000 */ nop +/* 0B9378 7F084848 46107102 */ mul.s $f4, $f14, $f16 +/* 0B937C 7F08484C 46044280 */ add.s $f10, $f8, $f4 +/* 0B9380 7F084850 46027182 */ mul.s $f6, $f14, $f2 +/* 0B9384 7F084854 00000000 */ nop +/* 0B9388 7F084858 46100202 */ mul.s $f8, $f0, $f16 +/* 0B938C 7F08485C E7AA038C */ swc1 $f10, 0x38c($sp) +/* 0B9390 7F084860 46000282 */ mul.s $f10, $f0, $f0 +/* 0B9394 7F084864 46083101 */ sub.s $f4, $f6, $f8 +/* 0B9398 7F084868 46129182 */ mul.s $f6, $f18, $f18 +/* 0B939C 7F08486C E7A40388 */ swc1 $f4, 0x388($sp) +/* 0B93A0 7F084870 0C007DF8 */ jal sqrtf +/* 0B93A4 7F084874 46065300 */ add.s $f12, $f10, $f6 +/* 0B93A8 7F084878 8E280000 */ lw $t0, ($s1) +/* 0B93AC 7F08487C C7A4038C */ lwc1 $f4, 0x38c($sp) +/* 0B93B0 7F084880 3C018005 */ lui $at, %hi(D_8005516C) +/* 0B93B4 7F084884 C5080174 */ lwc1 $f8, 0x174($t0) +/* 0B93B8 7F084888 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B93BC 7F08488C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B93C0 7F084890 46044280 */ add.s $f10, $f8, $f4 +/* 0B93C4 7F084894 00001825 */ move $v1, $zero +/* 0B93C8 7F084898 2404000C */ li $a0, 12 +/* 0B93CC 7F08489C E50A0174 */ swc1 $f10, 0x174($t0) +/* 0B93D0 7F0848A0 8E280000 */ lw $t0, ($s1) +/* 0B93D4 7F0848A4 C7A80388 */ lwc1 $f8, 0x388($sp) +/* 0B93D8 7F0848A8 C506016C */ lwc1 $f6, 0x16c($t0) +/* 0B93DC 7F0848AC 46083100 */ add.s $f4, $f6, $f8 +/* 0B93E0 7F0848B0 E504016C */ swc1 $f4, 0x16c($t0) +/* 0B93E4 7F0848B4 C42C516C */ lwc1 $f12, %lo(D_8005516C)($at) +/* 0B93E8 7F0848B8 8E380000 */ lw $t8, ($s1) +.L7F0848BC: +/* 0B93EC 7F0848BC 03031021 */ addu $v0, $t8, $v1 +/* 0B93F0 7F0848C0 C4420180 */ lwc1 $f2, 0x180($v0) +/* 0B93F4 7F0848C4 4602A032 */ c.eq.s $f20, $f2 +/* 0B93F8 7F0848C8 00000000 */ nop +/* 0B93FC 7F0848CC 45030029 */ bc1tl .L7F084974 +/* 0B9400 7F0848D0 24630004 */ addiu $v1, $v1, 4 +/* 0B9404 7F0848D4 4602A03C */ c.lt.s $f20, $f2 +/* 0B9408 7F0848D8 00000000 */ nop +/* 0B940C 7F0848DC 45020012 */ bc1fl .L7F084928 +/* 0B9410 7F0848E0 4614103C */ c.lt.s $f2, $f20 +/* 0B9414 7F0848E4 C52A0000 */ lwc1 $f10, ($t1) +/* 0B9418 7F0848E8 460A6182 */ mul.s $f6, $f12, $f10 +/* 0B941C 7F0848EC 00000000 */ nop +/* 0B9420 7F0848F0 46023202 */ mul.s $f8, $f6, $f2 +/* 0B9424 7F0848F4 46004103 */ div.s $f4, $f8, $f0 +/* 0B9428 7F0848F8 46041281 */ sub.s $f10, $f2, $f4 +/* 0B942C 7F0848FC E44A0180 */ swc1 $f10, 0x180($v0) +/* 0B9430 7F084900 8E2C0000 */ lw $t4, ($s1) +/* 0B9434 7F084904 01831021 */ addu $v0, $t4, $v1 +/* 0B9438 7F084908 C4460180 */ lwc1 $f6, 0x180($v0) +/* 0B943C 7F08490C 4614303C */ c.lt.s $f6, $f20 +/* 0B9440 7F084910 00000000 */ nop +/* 0B9444 7F084914 45000016 */ bc1f .L7F084970 +/* 0B9448 7F084918 00000000 */ nop +/* 0B944C 7F08491C 10000014 */ b .L7F084970 +/* 0B9450 7F084920 E4540180 */ swc1 $f20, 0x180($v0) +/* 0B9454 7F084924 4614103C */ c.lt.s $f2, $f20 +.L7F084928: +/* 0B9458 7F084928 00000000 */ nop +/* 0B945C 7F08492C 45020011 */ bc1fl .L7F084974 +/* 0B9460 7F084930 24630004 */ addiu $v1, $v1, 4 +/* 0B9464 7F084934 C5280000 */ lwc1 $f8, ($t1) +/* 0B9468 7F084938 46086102 */ mul.s $f4, $f12, $f8 +/* 0B946C 7F08493C 00000000 */ nop +/* 0B9470 7F084940 46022282 */ mul.s $f10, $f4, $f2 +/* 0B9474 7F084944 46005183 */ div.s $f6, $f10, $f0 +/* 0B9478 7F084948 46061201 */ sub.s $f8, $f2, $f6 +/* 0B947C 7F08494C E4480180 */ swc1 $f8, 0x180($v0) +/* 0B9480 7F084950 8E390000 */ lw $t9, ($s1) +/* 0B9484 7F084954 03231021 */ addu $v0, $t9, $v1 +/* 0B9488 7F084958 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0B948C 7F08495C 4604A03C */ c.lt.s $f20, $f4 +/* 0B9490 7F084960 00000000 */ nop +/* 0B9494 7F084964 45000002 */ bc1f .L7F084970 +/* 0B9498 7F084968 00000000 */ nop +/* 0B949C 7F08496C E4540180 */ swc1 $f20, 0x180($v0) +.L7F084970: +/* 0B94A0 7F084970 24630004 */ addiu $v1, $v1, 4 +.L7F084974: +/* 0B94A4 7F084974 5464FFD1 */ bnel $v1, $a0, .L7F0848BC +/* 0B94A8 7F084978 8E380000 */ lw $t8, ($s1) +.L7F08497C: +/* 0B94AC 7F08497C 3C0A8003 */ lui $t2, %hi(in_tank_flag) +/* 0B94B0 7F084980 8D4A6448 */ lw $t2, %lo(in_tank_flag)($t2) +/* 0B94B4 7F084984 3C098005 */ lui $t1, %hi(global_timer_delta) +/* 0B94B8 7F084988 24010001 */ li $at, 1 +/* 0B94BC 7F08498C 25298378 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c88 +/* 0B94C0 7F084990 15410211 */ bne $t2, $at, .L7F0851D8 +/* 0B94C4 7F084994 8E280000 */ lw $t0, ($s1) +/* 0B94C8 7F084998 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B94CC 7F08499C C5260000 */ lwc1 $f6, ($t1) +/* 0B94D0 7F0849A0 3C018005 */ lui $at, %hi(D_80055170) +/* 0B94D4 7F0849A4 C42C5170 */ lwc1 $f12, %lo(D_80055170)($at) +/* 0B94D8 7F0849A8 46065202 */ mul.s $f8, $f10, $f6 +/* 0B94DC 7F0849AC 3C018005 */ lui $at, %hi(D_80055174) +/* 0B94E0 7F0849B0 C4245174 */ lwc1 $f4, %lo(D_80055174)($at) +/* 0B94E4 7F0849B4 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B94E8 7F0849B8 44813000 */ mtc1 $at, $f6 +/* 0B94EC 7F0849BC 3C018003 */ lui $at, %hi(D_80036464) +/* 0B94F0 7F0849C0 27B00374 */ addiu $s0, $sp, 0x374 +/* 0B94F4 7F0849C4 46044282 */ mul.s $f10, $f8, $f4 +/* 0B94F8 7F0849C8 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B94FC 7F0849CC 02003825 */ move $a3, $s0 +/* 0B9500 7F0849D0 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9504 7F0849D4 27AD0368 */ addiu $t5, $sp, 0x368 +/* 0B9508 7F0849D8 46065082 */ mul.s $f2, $f10, $f6 +/* 0B950C 7F0849DC 46024000 */ add.s $f0, $f8, $f2 +/* 0B9510 7F0849E0 4600603E */ c.le.s $f12, $f0 +/* 0B9514 7F0849E4 00000000 */ nop +/* 0B9518 7F0849E8 45020003 */ bc1fl .L7F0849F8 +/* 0B951C 7F0849EC 4614003C */ c.lt.s $f0, $f20 +/* 0B9520 7F0849F0 460C0001 */ sub.s $f0, $f0, $f12 +/* 0B9524 7F0849F4 4614003C */ c.lt.s $f0, $f20 +.L7F0849F8: +/* 0B9528 7F0849F8 00000000 */ nop +/* 0B952C 7F0849FC 45020003 */ bc1fl .L7F084A0C +/* 0B9530 7F084A00 8D050488 */ lw $a1, 0x488($t0) +/* 0B9534 7F084A04 460C0000 */ add.s $f0, $f0, $f12 +/* 0B9538 7F084A08 8D050488 */ lw $a1, 0x488($t0) +.L7F084A0C: +/* 0B953C 7F084A0C 44060000 */ mfc1 $a2, $f0 +/* 0B9540 7F084A10 E7A20358 */ swc1 $f2, 0x358($sp) +/* 0B9544 7F084A14 E7A0035C */ swc1 $f0, 0x35c($sp) +/* 0B9548 7F084A18 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B954C 7F084A1C AFAD0010 */ sw $t5, 0x10($sp) +/* 0B9550 7F084A20 50400007 */ beql $v0, $zero, .L7F084A40 +/* 0B9554 7F084A24 3C01BF80 */ lui $at, 0xbf80 +/* 0B9558 7F084A28 C7A4035C */ lwc1 $f4, 0x35c($sp) +/* 0B955C 7F084A2C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9560 7F084A30 E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 0B9564 7F084A34 100000CB */ b .L7F084D64 +/* 0B9568 7F084A38 8E280000 */ lw $t0, ($s1) +/* 0B956C 7F084A3C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F084A40: +/* 0B9570 7F084A40 44815000 */ mtc1 $at, $f10 +/* 0B9574 7F084A44 44813000 */ mtc1 $at, $f6 +/* 0B9578 7F084A48 27A40348 */ addiu $a0, $sp, 0x348 +/* 0B957C 7F084A4C 27A5033C */ addiu $a1, $sp, 0x33c +/* 0B9580 7F084A50 E7AA031C */ swc1 $f10, 0x31c($sp) +/* 0B9584 7F084A54 0FC2CA2C */ jal getCollisionEdge_maybe +/* 0B9588 7F084A58 E7A60304 */ swc1 $f6, 0x304($sp) +/* 0B958C 7F084A5C C7A8033C */ lwc1 $f8, 0x33c($sp) +/* 0B9590 7F084A60 C7A40348 */ lwc1 $f4, 0x348($sp) +/* 0B9594 7F084A64 C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9598 7F084A68 C7A60350 */ lwc1 $f6, 0x350($sp) +/* 0B959C 7F084A6C 46044081 */ sub.s $f2, $f8, $f4 +/* 0B95A0 7F084A70 46065381 */ sub.s $f14, $f10, $f6 +/* 0B95A4 7F084A74 46021202 */ mul.s $f8, $f2, $f2 +/* 0B95A8 7F084A78 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B95AC 7F084A7C 460E7102 */ mul.s $f4, $f14, $f14 +/* 0B95B0 7F084A80 E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B95B4 7F084A84 0C007DF8 */ jal sqrtf +/* 0B95B8 7F084A88 46044300 */ add.s $f12, $f8, $f4 +/* 0B95BC 7F084A8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B95C0 7F084A90 44815000 */ mtc1 $at, $f10 +/* 0B95C4 7F084A94 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B95C8 7F084A98 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B95CC 7F084A9C 46005403 */ div.s $f16, $f10, $f0 +/* 0B95D0 7F084AA0 8E280000 */ lw $t0, ($s1) +/* 0B95D4 7F084AA4 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B95D8 7F084AA8 46101082 */ mul.s $f2, $f2, $f16 +/* 0B95DC 7F084AAC 00000000 */ nop +/* 0B95E0 7F084AB0 46107382 */ mul.s $f14, $f14, $f16 +/* 0B95E4 7F084AB4 46001307 */ neg.s $f12, $f2 +/* 0B95E8 7F084AB8 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B95EC 7F084ABC E7AE0324 */ swc1 $f14, 0x324($sp) +/* 0B95F0 7F084AC0 C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B95F4 7F084AC4 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B95F8 7F084AC8 C7A40048 */ lwc1 $f4, 0x48($sp) +/* 0B95FC 7F084ACC C508048C */ lwc1 $f8, 0x48c($t0) +/* 0B9600 7F084AD0 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9604 7F084AD4 E7A80044 */ swc1 $f8, 0x44($sp) +/* 0B9608 7F084AD8 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B960C 7F084ADC C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B9610 7F084AE0 460C3202 */ mul.s $f8, $f6, $f12 +/* 0B9614 7F084AE4 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9618 7F084AE8 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B961C 7F084AEC 46044480 */ add.s $f18, $f8, $f4 +/* 0B9620 7F084AF0 4614903C */ c.lt.s $f18, $f20 +/* 0B9624 7F084AF4 00000000 */ nop +/* 0B9628 7F084AF8 45000006 */ bc1f .L7F084B14 +/* 0B962C 7F084AFC 00000000 */ nop +/* 0B9630 7F084B00 46007287 */ neg.s $f10, $f14 +/* 0B9634 7F084B04 46006187 */ neg.s $f6, $f12 +/* 0B9638 7F084B08 46009487 */ neg.s $f18, $f18 +/* 0B963C 7F084B0C E7AA0324 */ swc1 $f10, 0x324($sp) +/* 0B9640 7F084B10 E7A60320 */ swc1 $f6, 0x320($sp) +.L7F084B14: +/* 0B9644 7F084B14 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B9648 7F084B18 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B964C 7F084B1C C7A60320 */ lwc1 $f6, 0x320($sp) +/* 0B9650 7F084B20 46044281 */ sub.s $f10, $f8, $f4 +/* 0B9654 7F084B24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9658 7F084B28 46065202 */ mul.s $f8, $f10, $f6 +/* 0B965C 7F084B2C C7AA0348 */ lwc1 $f10, 0x348($sp) +/* 0B9660 7F084B30 460A2181 */ sub.s $f6, $f4, $f10 +/* 0B9664 7F084B34 C7A40324 */ lwc1 $f4, 0x324($sp) +/* 0B9668 7F084B38 46043282 */ mul.s $f10, $f6, $f4 +/* 0B966C 7F084B3C 460A4000 */ add.s $f0, $f8, $f10 +/* 0B9670 7F084B40 4612003C */ c.lt.s $f0, $f18 +/* 0B9674 7F084B44 00000000 */ nop +/* 0B9678 7F084B48 45020004 */ bc1fl .L7F084B5C +/* 0B967C 7F084B4C C7A40368 */ lwc1 $f4, 0x368($sp) +/* 0B9680 7F084B50 46009181 */ sub.s $f6, $f18, $f0 +/* 0B9684 7F084B54 E7A6031C */ swc1 $f6, 0x31c($sp) +/* 0B9688 7F084B58 C7A40368 */ lwc1 $f4, 0x368($sp) +.L7F084B5C: +/* 0B968C 7F084B5C C7A80374 */ lwc1 $f8, 0x374($sp) +/* 0B9690 7F084B60 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B9694 7F084B64 C7A6037C */ lwc1 $f6, 0x37c($sp) +/* 0B9698 7F084B68 46082081 */ sub.s $f2, $f4, $f8 +/* 0B969C 7F084B6C 46065381 */ sub.s $f14, $f10, $f6 +/* 0B96A0 7F084B70 46021102 */ mul.s $f4, $f2, $f2 +/* 0B96A4 7F084B74 E7A20338 */ swc1 $f2, 0x338($sp) +/* 0B96A8 7F084B78 460E7202 */ mul.s $f8, $f14, $f14 +/* 0B96AC 7F084B7C E7AE0334 */ swc1 $f14, 0x334($sp) +/* 0B96B0 7F084B80 0C007DF8 */ jal sqrtf +/* 0B96B4 7F084B84 46082300 */ add.s $f12, $f4, $f8 +/* 0B96B8 7F084B88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B96BC 7F084B8C 44815000 */ mtc1 $at, $f10 +/* 0B96C0 7F084B90 C7A20338 */ lwc1 $f2, 0x338($sp) +/* 0B96C4 7F084B94 C7AE0334 */ lwc1 $f14, 0x334($sp) +/* 0B96C8 7F084B98 46005403 */ div.s $f16, $f10, $f0 +/* 0B96CC 7F084B9C 8E280000 */ lw $t0, ($s1) +/* 0B96D0 7F084BA0 C7AA0370 */ lwc1 $f10, 0x370($sp) +/* 0B96D4 7F084BA4 46101082 */ mul.s $f2, $f2, $f16 +/* 0B96D8 7F084BA8 00000000 */ nop +/* 0B96DC 7F084BAC 46107382 */ mul.s $f14, $f14, $f16 +/* 0B96E0 7F084BB0 46001307 */ neg.s $f12, $f2 +/* 0B96E4 7F084BB4 E7AC0308 */ swc1 $f12, 0x308($sp) +/* 0B96E8 7F084BB8 E7AE030C */ swc1 $f14, 0x30c($sp) +/* 0B96EC 7F084BBC C5060494 */ lwc1 $f6, 0x494($t0) +/* 0B96F0 7F084BC0 E7A60048 */ swc1 $f6, 0x48($sp) +/* 0B96F4 7F084BC4 C7A80048 */ lwc1 $f8, 0x48($sp) +/* 0B96F8 7F084BC8 C504048C */ lwc1 $f4, 0x48c($t0) +/* 0B96FC 7F084BCC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9700 7F084BD0 E7A40044 */ swc1 $f4, 0x44($sp) +/* 0B9704 7F084BD4 C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0B9708 7F084BD8 C7AA0368 */ lwc1 $f10, 0x368($sp) +/* 0B970C 7F084BDC 460C3102 */ mul.s $f4, $f6, $f12 +/* 0B9710 7F084BE0 460A4181 */ sub.s $f6, $f8, $f10 +/* 0B9714 7F084BE4 460E3202 */ mul.s $f8, $f6, $f14 +/* 0B9718 7F084BE8 46082480 */ add.s $f18, $f4, $f8 +/* 0B971C 7F084BEC 4614903C */ c.lt.s $f18, $f20 +/* 0B9720 7F084BF0 00000000 */ nop +/* 0B9724 7F084BF4 45000006 */ bc1f .L7F084C10 +/* 0B9728 7F084BF8 00000000 */ nop +/* 0B972C 7F084BFC 46007407 */ neg.s $f16, $f14 +/* 0B9730 7F084C00 46006287 */ neg.s $f10, $f12 +/* 0B9734 7F084C04 46009487 */ neg.s $f18, $f18 +/* 0B9738 7F084C08 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 0B973C 7F084C0C E7B0030C */ swc1 $f16, 0x30c($sp) +.L7F084C10: +/* 0B9740 7F084C10 C7A60048 */ lwc1 $f6, 0x48($sp) +/* 0B9744 7F084C14 C7A40350 */ lwc1 $f4, 0x350($sp) +/* 0B9748 7F084C18 C7AC0308 */ lwc1 $f12, 0x308($sp) +/* 0B974C 7F084C1C C7B0030C */ lwc1 $f16, 0x30c($sp) +/* 0B9750 7F084C20 46043201 */ sub.s $f8, $f6, $f4 +/* 0B9754 7F084C24 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 0B9758 7F084C28 460C4282 */ mul.s $f10, $f8, $f12 +/* 0B975C 7F084C2C C7A80348 */ lwc1 $f8, 0x348($sp) +/* 0B9760 7F084C30 46082201 */ sub.s $f8, $f4, $f8 +/* 0B9764 7F084C34 46104202 */ mul.s $f8, $f8, $f16 +/* 0B9768 7F084C38 46085000 */ add.s $f0, $f10, $f8 +/* 0B976C 7F084C3C C7AA0344 */ lwc1 $f10, 0x344($sp) +/* 0B9770 7F084C40 460A3201 */ sub.s $f8, $f6, $f10 +/* 0B9774 7F084C44 C7AA033C */ lwc1 $f10, 0x33c($sp) +/* 0B9778 7F084C48 460C4182 */ mul.s $f6, $f8, $f12 +/* 0B977C 7F084C4C 460A2201 */ sub.s $f8, $f4, $f10 +/* 0B9780 7F084C50 46104102 */ mul.s $f4, $f8, $f16 +/* 0B9784 7F084C54 46043080 */ add.s $f2, $f6, $f4 +/* 0B9788 7F084C58 4600103C */ c.lt.s $f2, $f0 +/* 0B978C 7F084C5C 00000000 */ nop +/* 0B9790 7F084C60 45020003 */ bc1fl .L7F084C70 +/* 0B9794 7F084C64 4612003C */ c.lt.s $f0, $f18 +/* 0B9798 7F084C68 46001006 */ mov.s $f0, $f2 +/* 0B979C 7F084C6C 4612003C */ c.lt.s $f0, $f18 +.L7F084C70: +/* 0B97A0 7F084C70 00000000 */ nop +/* 0B97A4 7F084C74 45020004 */ bc1fl .L7F084C88 +/* 0B97A8 7F084C78 C7A20304 */ lwc1 $f2, 0x304($sp) +/* 0B97AC 7F084C7C 46009081 */ sub.s $f2, $f18, $f0 +/* 0B97B0 7F084C80 E7A20304 */ swc1 $f2, 0x304($sp) +/* 0B97B4 7F084C84 C7A20304 */ lwc1 $f2, 0x304($sp) +.L7F084C88: +/* 0B97B8 7F084C88 C7AA031C */ lwc1 $f10, 0x31c($sp) +/* 0B97BC 7F084C8C 4602A03E */ c.le.s $f20, $f2 +/* 0B97C0 7F084C90 00000000 */ nop +/* 0B97C4 7F084C94 4502000D */ bc1fl .L7F084CCC +/* 0B97C8 7F084C98 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97CC 7F084C9C 460A103C */ c.lt.s $f2, $f10 +/* 0B97D0 7F084CA0 00000000 */ nop +/* 0B97D4 7F084CA4 45030006 */ bc1tl .L7F084CC0 +/* 0B97D8 7F084CA8 E7B00324 */ swc1 $f16, 0x324($sp) +/* 0B97DC 7F084CAC 4614503C */ c.lt.s $f10, $f20 +/* 0B97E0 7F084CB0 00000000 */ nop +/* 0B97E4 7F084CB4 45020005 */ bc1fl .L7F084CCC +/* 0B97E8 7F084CB8 C7A0031C */ lwc1 $f0, 0x31c($sp) +/* 0B97EC 7F084CBC E7B00324 */ swc1 $f16, 0x324($sp) +.L7F084CC0: +/* 0B97F0 7F084CC0 E7AC0320 */ swc1 $f12, 0x320($sp) +/* 0B97F4 7F084CC4 E7A2031C */ swc1 $f2, 0x31c($sp) +/* 0B97F8 7F084CC8 C7A0031C */ lwc1 $f0, 0x31c($sp) +.L7F084CCC: +/* 0B97FC 7F084CCC C7A80324 */ lwc1 $f8, 0x324($sp) +/* 0B9800 7F084CD0 4600A03E */ c.le.s $f20, $f0 +/* 0B9804 7F084CD4 00000000 */ nop +/* 0B9808 7F084CD8 45020022 */ bc1fl .L7F084D64 +/* 0B980C 7F084CDC E7B40358 */ swc1 $f20, 0x358($sp) +/* 0B9810 7F084CE0 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9814 7F084CE4 3C018005 */ lui $at, %hi(D_80055178) +/* 0B9818 7F084CE8 C4245178 */ lwc1 $f4, %lo(D_80055178)($at) +/* 0B981C 7F084CEC C7A80320 */ lwc1 $f8, 0x320($sp) +/* 0B9820 7F084CF0 3C018005 */ lui $at, %hi(D_8005517C) +/* 0B9824 7F084CF4 27A403AC */ addiu $a0, $sp, 0x3ac +/* 0B9828 7F084CF8 24050001 */ li $a1, 1 +/* 0B982C 7F084CFC 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9830 7F084D00 C424517C */ lwc1 $f4, %lo(D_8005517C)($at) +/* 0B9834 7F084D04 46080182 */ mul.s $f6, $f0, $f8 +/* 0B9838 7F084D08 E7AA03AC */ swc1 $f10, 0x3ac($sp) +/* 0B983C 7F084D0C 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9840 7F084D10 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9844 7F084D14 E7AA03B4 */ swc1 $f10, 0x3b4($sp) +/* 0B9848 7F084D18 8E280000 */ lw $t0, ($s1) +/* 0B984C 7F084D1C E7B403AC */ swc1 $f20, 0x3ac($sp) +/* 0B9850 7F084D20 E7B403B4 */ swc1 $f20, 0x3b4($sp) +/* 0B9854 7F084D24 27AE0368 */ addiu $t6, $sp, 0x368 +/* 0B9858 7F084D28 8D050488 */ lw $a1, 0x488($t0) +/* 0B985C 7F084D2C AFAE0010 */ sw $t6, 0x10($sp) +/* 0B9860 7F084D30 8FA6035C */ lw $a2, 0x35c($sp) +/* 0B9864 7F084D34 02003825 */ move $a3, $s0 +/* 0B9868 7F084D38 0FC1F2B2 */ jal sub_GAME_7F07CAC8 +/* 0B986C 7F084D3C 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9870 7F084D40 10400004 */ beqz $v0, .L7F084D54 +/* 0B9874 7F084D44 C7A8035C */ lwc1 $f8, 0x35c($sp) +/* 0B9878 7F084D48 3C018003 */ lui $at, %hi(D_80036464) +/* 0B987C 7F084D4C 10000002 */ b .L7F084D58 +/* 0B9880 7F084D50 E4286464 */ swc1 $f8, %lo(D_80036464)($at) +.L7F084D54: +/* 0B9884 7F084D54 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D58: +/* 0B9888 7F084D58 10000002 */ b .L7F084D64 +/* 0B988C 7F084D5C 8E280000 */ lw $t0, ($s1) +/* 0B9890 7F084D60 E7B40358 */ swc1 $f20, 0x358($sp) +.L7F084D64: +/* 0B9894 7F084D64 3C018005 */ lui $at, %hi(D_80055180) +/* 0B9898 7F084D68 C42E5180 */ lwc1 $f14, %lo(D_80055180)($at) +/* 0B989C 7F084D6C 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B98A0 7F084D70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B98A4 7F084D74 3C018003 */ lui $at, %hi(D_80036488) +/* 0B98A8 7F084D78 C4246488 */ lwc1 $f4, %lo(D_80036488)($at) +/* 0B98AC 7F084D7C C4660000 */ lwc1 $f6, ($v1) +/* 0B98B0 7F084D80 3C078003 */ lui $a3, %hi(D_80036474) +/* 0B98B4 7F084D84 24E76474 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x6474 +/* 0B98B8 7F084D88 46043280 */ add.s $f10, $f6, $f4 +/* 0B98BC 7F084D8C C4EC0000 */ lwc1 $f12, ($a3) +/* 0B98C0 7F084D90 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B98C4 7F084D94 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B98C8 7F084D98 E46A0000 */ swc1 $f10, ($v1) +/* 0B98CC 7F084D9C C4600000 */ lwc1 $f0, ($v1) +/* 0B98D0 7F084DA0 44815000 */ mtc1 $at, $f10 +/* 0B98D4 7F084DA4 46006406 */ mov.s $f16, $f12 +/* 0B98D8 7F084DA8 4600703E */ c.le.s $f14, $f0 +/* 0B98DC 7F084DAC 00000000 */ nop +/* 0B98E0 7F084DB0 45020005 */ bc1fl .L7F084DC8 +/* 0B98E4 7F084DB4 4614003C */ c.lt.s $f0, $f20 +/* 0B98E8 7F084DB8 460E0201 */ sub.s $f8, $f0, $f14 +/* 0B98EC 7F084DBC E4680000 */ swc1 $f8, ($v1) +/* 0B98F0 7F084DC0 C4600000 */ lwc1 $f0, ($v1) +/* 0B98F4 7F084DC4 4614003C */ c.lt.s $f0, $f20 +.L7F084DC8: +/* 0B98F8 7F084DC8 00000000 */ nop +/* 0B98FC 7F084DCC 45020005 */ bc1fl .L7F084DE4 +/* 0B9900 7F084DD0 C504014C */ lwc1 $f4, 0x14c($t0) +/* 0B9904 7F084DD4 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9908 7F084DD8 E4660000 */ swc1 $f6, ($v1) +/* 0B990C 7F084DDC C4600000 */ lwc1 $f0, ($v1) +/* 0B9910 7F084DE0 C504014C */ lwc1 $f4, 0x14c($t0) +.L7F084DE4: +/* 0B9914 7F084DE4 3C018005 */ lui $at, %hi(D_80055184) +/* 0B9918 7F084DE8 C4265184 */ lwc1 $f6, %lo(D_80055184)($at) +/* 0B991C 7F084DEC 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9920 7F084DF0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9924 7F084DF4 44815000 */ mtc1 $at, $f10 +/* 0B9928 7F084DF8 3C018005 */ lui $at, %hi(D_80055188) +/* 0B992C 7F084DFC 46064102 */ mul.s $f4, $f8, $f6 +/* 0B9930 7F084E00 00000000 */ nop +/* 0B9934 7F084E04 460A2202 */ mul.s $f8, $f4, $f10 +/* 0B9938 7F084E08 46004080 */ add.s $f2, $f8, $f0 +/* 0B993C 7F084E0C 4614103C */ c.lt.s $f2, $f20 +/* 0B9940 7F084E10 00000000 */ nop +/* 0B9944 7F084E14 45000002 */ bc1f .L7F084E20 +/* 0B9948 7F084E18 00000000 */ nop +/* 0B994C 7F084E1C 460E1080 */ add.s $f2, $f2, $f14 +.L7F084E20: +/* 0B9950 7F084E20 4602703E */ c.le.s $f14, $f2 +/* 0B9954 7F084E24 00000000 */ nop +/* 0B9958 7F084E28 45020003 */ bc1fl .L7F084E38 +/* 0B995C 7F084E2C 460C1001 */ sub.s $f0, $f2, $f12 +/* 0B9960 7F084E30 460E1081 */ sub.s $f2, $f2, $f14 +/* 0B9964 7F084E34 460C1001 */ sub.s $f0, $f2, $f12 +.L7F084E38: +/* 0B9968 7F084E38 C4265188 */ lwc1 $f6, %lo(D_80055188)($at) +/* 0B996C 7F084E3C 3C018005 */ lui $at, %hi(D_80055190) +/* 0B9970 7F084E40 4600303E */ c.le.s $f6, $f0 +/* 0B9974 7F084E44 00000000 */ nop +/* 0B9978 7F084E48 45000005 */ bc1f .L7F084E60 +/* 0B997C 7F084E4C 00000000 */ nop +/* 0B9980 7F084E50 3C018005 */ lui $at, %hi(D_8005518C) +/* 0B9984 7F084E54 C424518C */ lwc1 $f4, %lo(D_8005518C)($at) +/* 0B9988 7F084E58 10000009 */ b .L7F084E80 +/* 0B998C 7F084E5C 46041081 */ sub.s $f2, $f2, $f4 +.L7F084E60: +/* 0B9990 7F084E60 C42A5190 */ lwc1 $f10, %lo(D_80055190)($at) +/* 0B9994 7F084E64 3C018005 */ lui $at, %hi(D_80055194) +/* 0B9998 7F084E68 460A003C */ c.lt.s $f0, $f10 +/* 0B999C 7F084E6C 00000000 */ nop +/* 0B99A0 7F084E70 45000003 */ bc1f .L7F084E80 +/* 0B99A4 7F084E74 00000000 */ nop +/* 0B99A8 7F084E78 C4285194 */ lwc1 $f8, %lo(D_80055194)($at) +/* 0B99AC 7F084E7C 46081080 */ add.s $f2, $f2, $f8 +.L7F084E80: +/* 0B99B0 7F084E80 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B99B4 7F084E84 00001025 */ move $v0, $zero +/* 0B99B8 7F084E88 3C018005 */ lui $at, %hi(D_80055198) +/* 0B99BC 7F084E8C 18800013 */ blez $a0, .L7F084EDC +/* 0B99C0 7F084E90 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B99C4 7F084E94 C42E5198 */ lwc1 $f14, %lo(D_80055198)($at) +/* 0B99C8 7F084E98 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B99CC 7F084E9C C60C0000 */ lwc1 $f12, ($s0) +/* 0B99D0 7F084EA0 24420001 */ addiu $v0, $v0, 1 +/* 0B99D4 7F084EA4 0044082A */ slt $at, $v0, $a0 +/* 0B99D8 7F084EA8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99DC 7F084EAC 5020000A */ beql $at, $zero, .L7F084ED8 +/* 0B99E0 7F084EB0 46029300 */ add.s $f12, $f18, $f2 +/* 0B99E4 7F084EB4 46029300 */ add.s $f12, $f18, $f2 +.L7F084EB8: +/* 0B99E8 7F084EB8 24420001 */ addiu $v0, $v0, 1 +/* 0B99EC 7F084EBC 0044082A */ slt $at, $v0, $a0 +/* 0B99F0 7F084EC0 E60C0000 */ swc1 $f12, ($s0) +/* 0B99F4 7F084EC4 C60C0000 */ lwc1 $f12, ($s0) +/* 0B99F8 7F084EC8 460C7482 */ mul.s $f18, $f14, $f12 +/* 0B99FC 7F084ECC 5420FFFA */ bnezl $at, .L7F084EB8 +/* 0B9A00 7F084ED0 46029300 */ add.s $f12, $f18, $f2 +/* 0B9A04 7F084ED4 46029300 */ add.s $f12, $f18, $f2 +.L7F084ED8: +/* 0B9A08 7F084ED8 E60C0000 */ swc1 $f12, ($s0) +.L7F084EDC: +/* 0B9A0C 7F084EDC 3C108003 */ lui $s0, %hi(D_80036478) +/* 0B9A10 7F084EE0 26106478 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x6478 +/* 0B9A14 7F084EE4 3C018005 */ lui $at, %hi(D_8005519C) +/* 0B9A18 7F084EE8 C420519C */ lwc1 $f0, %lo(D_8005519C)($at) +/* 0B9A1C 7F084EEC C6080000 */ lwc1 $f8, ($s0) +/* 0B9A20 7F084EF0 3C018005 */ lui $at, %hi(D_800551A0) +/* 0B9A24 7F084EF4 C42251A0 */ lwc1 $f2, %lo(D_800551A0)($at) +/* 0B9A28 7F084EF8 46004182 */ mul.s $f6, $f8, $f0 +/* 0B9A2C 7F084EFC 2504048C */ addiu $a0, $t0, 0x48c +/* 0B9A30 7F084F00 3C068003 */ lui $a2, %hi(D_80036464) +/* 0B9A34 7F084F04 E4E60000 */ swc1 $f6, ($a3) +/* 0B9A38 7F084F08 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A3C 7F084F0C 460C103E */ c.le.s $f2, $f12 +/* 0B9A40 7F084F10 00000000 */ nop +/* 0B9A44 7F084F14 45020007 */ bc1fl .L7F084F34 +/* 0B9A48 7F084F18 4614603C */ c.lt.s $f12, $f20 +/* 0B9A4C 7F084F1C 46026101 */ sub.s $f4, $f12, $f2 +/* 0B9A50 7F084F20 E4E40000 */ swc1 $f4, ($a3) +/* 0B9A54 7F084F24 C4EC0000 */ lwc1 $f12, ($a3) +/* 0B9A58 7F084F28 46006283 */ div.s $f10, $f12, $f0 +/* 0B9A5C 7F084F2C E60A0000 */ swc1 $f10, ($s0) +/* 0B9A60 7F084F30 4614603C */ c.lt.s $f12, $f20 +.L7F084F34: +/* 0B9A64 7F084F34 00000000 */ nop +/* 0B9A68 7F084F38 45020007 */ bc1fl .L7F084F58 +/* 0B9A6C 7F084F3C 8D050488 */ lw $a1, 0x488($t0) +/* 0B9A70 7F084F40 46026200 */ add.s $f8, $f12, $f2 +/* 0B9A74 7F084F44 E4E80000 */ swc1 $f8, ($a3) +/* 0B9A78 7F084F48 C4E60000 */ lwc1 $f6, ($a3) +/* 0B9A7C 7F084F4C 46003103 */ div.s $f4, $f6, $f0 +/* 0B9A80 7F084F50 E6040000 */ swc1 $f4, ($s0) +/* 0B9A84 7F084F54 8D050488 */ lw $a1, 0x488($t0) +.L7F084F58: +/* 0B9A88 7F084F58 E7B00354 */ swc1 $f16, 0x354($sp) +/* 0B9A8C 7F084F5C 0FC1F36A */ jal sub_GAME_7F07CDA8 +/* 0B9A90 7F084F60 8CC66464 */ lw $a2, %lo(D_80036464)($a2) +/* 0B9A94 7F084F64 3C038003 */ lui $v1, %hi(D_80036484) +/* 0B9A98 7F084F68 3C018005 */ lui $at, %hi(D_800551A8) +/* 0B9A9C 7F084F6C C42E51A8 */ lwc1 $f14, %lo(D_800551A8)($at) +/* 0B9AA0 7F084F70 24636484 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x6484 +/* 0B9AA4 7F084F74 14400009 */ bnez $v0, .L7F084F9C +/* 0B9AA8 7F084F78 C7B00354 */ lwc1 $f16, 0x354($sp) +/* 0B9AAC 7F084F7C 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9AB0 7F084F80 E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 0B9AB4 7F084F84 C42A6474 */ lwc1 $f10, %lo(D_80036474)($at) +/* 0B9AB8 7F084F88 3C018005 */ lui $at, %hi(D_800551AC) +/* 0B9ABC 7F084F8C C42851AC */ lwc1 $f8, %lo(D_800551AC)($at) +/* 0B9AC0 7F084F90 E4700000 */ swc1 $f16, ($v1) +/* 0B9AC4 7F084F94 46085183 */ div.s $f6, $f10, $f8 +/* 0B9AC8 7F084F98 E6060000 */ swc1 $f6, ($s0) +.L7F084F9C: +/* 0B9ACC 7F084F9C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9AD0 7F084FA0 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9AD4 7F084FA4 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9AD8 7F084FA8 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9ADC 7F084FAC 1060002F */ beqz $v1, .L7F08506C +/* 0B9AE0 7F084FB0 27B002B4 */ addiu $s0, $sp, 0x2b4 +/* 0B9AE4 7F084FB4 8C6F0004 */ lw $t7, 4($v1) +/* 0B9AE8 7F084FB8 C4440000 */ lwc1 $f4, ($v0) +/* 0B9AEC 7F084FBC C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9AF0 7F084FC0 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9AF4 7F084FC4 C7AC0358 */ lwc1 $f12, 0x358($sp) +/* 0B9AF8 7F084FC8 02002825 */ move $a1, $s0 +/* 0B9AFC 7F084FCC AFAF0300 */ sw $t7, 0x300($sp) +/* 0B9B00 7F084FD0 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B04 7F084FD4 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B08 7F084FD8 E7AA02FC */ swc1 $f10, 0x2fc($sp) +/* 0B9B0C 7F084FDC 02002025 */ move $a0, $s0 +/* 0B9B10 7F084FE0 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B14 7F084FE4 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B18 7F084FE8 0FC1F1ED */ jal sub_GAME_7F07C7B4 +/* 0B9B1C 7F084FEC 00000000 */ nop +/* 0B9B20 7F084FF0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9B24 7F084FF4 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9B28 7F084FF8 C4480000 */ lwc1 $f8, ($v0) +/* 0B9B2C 7F084FFC C7A602F4 */ lwc1 $f6, 0x2f4($sp) +/* 0B9B30 7F085000 C44A0008 */ lwc1 $f10, 8($v0) +/* 0B9B34 7F085004 3C018005 */ lui $at, %hi(D_800551BC) +/* 0B9B38 7F085008 46064101 */ sub.s $f4, $f8, $f6 +/* 0B9B3C 7F08500C C7A802FC */ lwc1 $f8, 0x2fc($sp) +/* 0B9B40 7F085010 E7B402F8 */ swc1 $f20, 0x2f8($sp) +/* 0B9B44 7F085014 02002825 */ move $a1, $s0 +/* 0B9B48 7F085018 E7A402F4 */ swc1 $f4, 0x2f4($sp) +/* 0B9B4C 7F08501C 46085181 */ sub.s $f6, $f10, $f8 +/* 0B9B50 7F085020 C42451BC */ lwc1 $f4, %lo(D_800551BC)($at) +/* 0B9B54 7F085024 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9B58 7F085028 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9B5C 7F08502C E7A602FC */ swc1 $f6, 0x2fc($sp) +/* 0B9B60 7F085030 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9B64 7F085034 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9B68 7F085038 8FAB0300 */ lw $t3, 0x300($sp) +/* 0B9B6C 7F08503C 02002825 */ move $a1, $s0 +/* 0B9B70 7F085040 8D780014 */ lw $t8, 0x14($t3) +/* 0B9B74 7F085044 0FC1629F */ jal matrix_scalar_multiply +/* 0B9B78 7F085048 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 0B9B7C 7F08504C 02002025 */ move $a0, $s0 +/* 0B9B80 7F085050 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9B84 7F085054 27A502F4 */ addiu $a1, $sp, 0x2f4 +/* 0B9B88 7F085058 27A402F4 */ addiu $a0, $sp, 0x2f4 +/* 0B9B8C 7F08505C 0FC1F658 */ jal sub_GAME_7F07D960 +/* 0B9B90 7F085060 24050001 */ li $a1, 1 +/* 0B9B94 7F085064 3C018005 */ lui $at, %hi(D_800551CC) +/* 0B9B98 7F085068 C42E51CC */ lwc1 $f14, %lo(D_800551CC)($at) +.L7F08506C: +/* 0B9B9C 7F08506C 3C048005 */ lui $a0, %hi(clock_timer) +/* 0B9BA0 7F085070 8C848374 */ lw $a0, %lo(clock_timer)($a0) +/* 0B9BA4 7F085074 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9BA8 7F085078 C42C6474 */ lwc1 $f12, %lo(D_80036474)($at) +/* 0B9BAC 7F08507C 5880001B */ blezl $a0, .L7F0850EC +/* 0B9BB0 7F085080 3C0143B4 */ lui $at, 0x43b4 +/* 0B9BB4 7F085084 18800018 */ blez $a0, .L7F0850E8 +/* 0B9BB8 7F085088 00001025 */ move $v0, $zero +/* 0B9BBC 7F08508C 3C018003 */ lui $at, %hi(D_80036488) +/* 0B9BC0 7F085090 C4286488 */ lwc1 $f8, %lo(D_80036488)($at) +/* 0B9BC4 7F085094 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9BC8 7F085098 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9BCC 7F08509C 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9BD0 7F0850A0 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9BD4 7F0850A4 46064003 */ div.s $f0, $f8, $f6 +/* 0B9BD8 7F0850A8 C4700000 */ lwc1 $f16, ($v1) +/* 0B9BDC 7F0850AC 24420001 */ addiu $v0, $v0, 1 +/* 0B9BE0 7F0850B0 0044082A */ slt $at, $v0, $a0 +/* 0B9BE4 7F0850B4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9BE8 7F0850B8 5020000A */ beql $at, $zero, .L7F0850E4 +/* 0B9BEC 7F0850BC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9BF0 7F0850C0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850C4: +/* 0B9BF4 7F0850C4 24420001 */ addiu $v0, $v0, 1 +/* 0B9BF8 7F0850C8 0044082A */ slt $at, $v0, $a0 +/* 0B9BFC 7F0850CC E4700000 */ swc1 $f16, ($v1) +/* 0B9C00 7F0850D0 C4700000 */ lwc1 $f16, ($v1) +/* 0B9C04 7F0850D4 46107482 */ mul.s $f18, $f14, $f16 +/* 0B9C08 7F0850D8 5420FFFA */ bnezl $at, .L7F0850C4 +/* 0B9C0C 7F0850DC 46009400 */ add.s $f16, $f18, $f0 +/* 0B9C10 7F0850E0 46009400 */ add.s $f16, $f18, $f0 +.L7F0850E4: +/* 0B9C14 7F0850E4 E4700000 */ swc1 $f16, ($v1) +.L7F0850E8: +/* 0B9C18 7F0850E8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F0850EC: +/* 0B9C1C 7F0850EC 44817000 */ mtc1 $at, $f14 +/* 0B9C20 7F0850F0 3C038003 */ lui $v1, %hi(D_8003647C) +/* 0B9C24 7F0850F4 2463647C */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x647c +/* 0B9C28 7F0850F8 3C018005 */ lui $at, %hi(D_800551D0) +/* 0B9C2C 7F0850FC C42451D0 */ lwc1 $f4, %lo(D_800551D0)($at) +/* 0B9C30 7F085100 C4660000 */ lwc1 $f6, ($v1) +/* 0B9C34 7F085104 8E280000 */ lw $t0, ($s1) +/* 0B9C38 7F085108 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9C3C 7F08510C 46043082 */ mul.s $f2, $f6, $f4 +/* 0B9C40 7F085110 44814000 */ mtc1 $at, $f8 +/* 0B9C44 7F085114 C50A014C */ lwc1 $f10, 0x14c($t0) +/* 0B9C48 7F085118 3C018005 */ lui $at, %hi(D_800551D4) +/* 0B9C4C 7F08511C C42451D4 */ lwc1 $f4, %lo(D_800551D4)($at) +/* 0B9C50 7F085120 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C54 7F085124 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C58 7F085128 44814000 */ mtc1 $at, $f8 +/* 0B9C5C 7F08512C 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9C60 7F085130 46043282 */ mul.s $f10, $f6, $f4 +/* 0B9C64 7F085134 C4246464 */ lwc1 $f4, %lo(D_80036464)($at) +/* 0B9C68 7F085138 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0B9C6C 7F08513C 46085182 */ mul.s $f6, $f10, $f8 +/* 0B9C70 7F085140 460C2280 */ add.s $f10, $f4, $f12 +/* 0B9C74 7F085144 44812000 */ mtc1 $at, $f4 +/* 0B9C78 7F085148 3C018005 */ lui $at, %hi(D_800551D8) +/* 0B9C7C 7F08514C 46065200 */ add.s $f8, $f10, $f6 +/* 0B9C80 7F085150 46041282 */ mul.s $f10, $f2, $f4 +/* 0B9C84 7F085154 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9C88 7F085158 C42851D8 */ lwc1 $f8, %lo(D_800551D8)($at) +/* 0B9C8C 7F08515C 460E3102 */ mul.s $f4, $f6, $f14 +/* 0B9C90 7F085160 46082283 */ div.s $f10, $f4, $f8 +/* 0B9C94 7F085164 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0B9C98 7F085168 8E280000 */ lw $t0, ($s1) +/* 0B9C9C 7F08516C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CA0 7F085170 4614003C */ c.lt.s $f0, $f20 +/* 0B9CA4 7F085174 00000000 */ nop +/* 0B9CA8 7F085178 4502000A */ bc1fl .L7F0851A4 +/* 0B9CAC 7F08517C 4600703E */ c.le.s $f14, $f0 +/* 0B9CB0 7F085180 460E0180 */ add.s $f6, $f0, $f14 +.L7F085184: +/* 0B9CB4 7F085184 E5060148 */ swc1 $f6, 0x148($t0) +/* 0B9CB8 7F085188 8E280000 */ lw $t0, ($s1) +/* 0B9CBC 7F08518C C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CC0 7F085190 4614003C */ c.lt.s $f0, $f20 +/* 0B9CC4 7F085194 00000000 */ nop +/* 0B9CC8 7F085198 4503FFFA */ bc1tl .L7F085184 +/* 0B9CCC 7F08519C 460E0180 */ add.s $f6, $f0, $f14 +/* 0B9CD0 7F0851A0 4600703E */ c.le.s $f14, $f0 +.L7F0851A4: +/* 0B9CD4 7F0851A4 00000000 */ nop +/* 0B9CD8 7F0851A8 45000009 */ bc1f .L7F0851D0 +/* 0B9CDC 7F0851AC 00000000 */ nop +/* 0B9CE0 7F0851B0 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851B4: +/* 0B9CE4 7F0851B4 E5040148 */ swc1 $f4, 0x148($t0) +/* 0B9CE8 7F0851B8 8E280000 */ lw $t0, ($s1) +/* 0B9CEC 7F0851BC C5000148 */ lwc1 $f0, 0x148($t0) +/* 0B9CF0 7F0851C0 4600703E */ c.le.s $f14, $f0 +/* 0B9CF4 7F0851C4 00000000 */ nop +/* 0B9CF8 7F0851C8 4503FFFA */ bc1tl .L7F0851B4 +/* 0B9CFC 7F0851CC 460E0101 */ sub.s $f4, $f0, $f14 +.L7F0851D0: +/* 0B9D00 7F0851D0 10000022 */ b .L7F08525C +/* 0B9D04 7F0851D4 00000000 */ nop +.L7F0851D8: +/* 0B9D08 7F0851D8 C508014C */ lwc1 $f8, 0x14c($t0) +/* 0B9D0C 7F0851DC C52A0000 */ lwc1 $f10, ($t1) +/* 0B9D10 7F0851E0 3C014060 */ li $at, 0x40600000 # 3.500000 +/* 0B9D14 7F0851E4 44812000 */ mtc1 $at, $f4 +/* 0B9D18 7F0851E8 460A4182 */ mul.s $f6, $f8, $f10 +/* 0B9D1C 7F0851EC C50A0148 */ lwc1 $f10, 0x148($t0) +/* 0B9D20 7F0851F0 3C0143B4 */ lui $at, 0x43b4 +/* 0B9D24 7F0851F4 46043202 */ mul.s $f8, $f6, $f4 +/* 0B9D28 7F0851F8 46085000 */ add.s $f0, $f10, $f8 +/* 0B9D2C 7F0851FC 4614003C */ c.lt.s $f0, $f20 +/* 0B9D30 7F085200 00000000 */ nop +/* 0B9D34 7F085204 45020009 */ bc1fl .L7F08522C +/* 0B9D38 7F085208 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9D3C 7F08520C 44817000 */ mtc1 $at, $f14 +/* 0B9D40 7F085210 00000000 */ nop +/* 0B9D44 7F085214 460E0000 */ add.s $f0, $f0, $f14 +.L7F085218: +/* 0B9D48 7F085218 4614003C */ c.lt.s $f0, $f20 +/* 0B9D4C 7F08521C 00000000 */ nop +/* 0B9D50 7F085220 4503FFFD */ bc1tl .L7F085218 +/* 0B9D54 7F085224 460E0000 */ add.s $f0, $f0, $f14 +/* 0B9D58 7F085228 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +.L7F08522C: +/* 0B9D5C 7F08522C 44817000 */ mtc1 $at, $f14 +/* 0B9D60 7F085230 00000000 */ nop +/* 0B9D64 7F085234 4600703E */ c.le.s $f14, $f0 +/* 0B9D68 7F085238 00000000 */ nop +/* 0B9D6C 7F08523C 45020007 */ bc1fl .L7F08525C +/* 0B9D70 7F085240 E5000148 */ swc1 $f0, 0x148($t0) +/* 0B9D74 7F085244 460E0001 */ sub.s $f0, $f0, $f14 +.L7F085248: +/* 0B9D78 7F085248 4600703E */ c.le.s $f14, $f0 +/* 0B9D7C 7F08524C 00000000 */ nop +/* 0B9D80 7F085250 4503FFFD */ bc1tl .L7F085248 +/* 0B9D84 7F085254 460E0001 */ sub.s $f0, $f0, $f14 +/* 0B9D88 7F085258 E5000148 */ swc1 $f0, 0x148($t0) +.L7F08525C: +/* 0B9D8C 7F08525C 0FC205E4 */ jal sub_GAME_7F081790 +/* 0B9D90 7F085260 00000000 */ nop +/* 0B9D94 7F085264 0FC1E67C */ jal currentPlayerGetCrouchPos +/* 0B9D98 7F085268 E7B402AC */ swc1 $f20, 0x2ac($sp) +/* 0B9D9C 7F08526C 14400004 */ bnez $v0, .L7F085280 +/* 0B9DA0 7F085270 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0B9DA4 7F085274 44813000 */ mtc1 $at, $f6 +/* 0B9DA8 7F085278 1000000B */ b .L7F0852A8 +/* 0B9DAC 7F08527C E7A602AC */ swc1 $f6, 0x2ac($sp) +.L7F085280: +/* 0B9DB0 7F085280 0FC1E67C */ jal currentPlayerGetCrouchPos +/* 0B9DB4 7F085284 00000000 */ nop +/* 0B9DB8 7F085288 24010001 */ li $at, 1 +/* 0B9DBC 7F08528C 14410004 */ bne $v0, $at, .L7F0852A0 +/* 0B9DC0 7F085290 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 0B9DC4 7F085294 44812000 */ mtc1 $at, $f4 +/* 0B9DC8 7F085298 10000003 */ b .L7F0852A8 +/* 0B9DCC 7F08529C E7A402AC */ swc1 $f4, 0x2ac($sp) +.L7F0852A0: +/* 0B9DD0 7F0852A0 0FC1E67C */ jal currentPlayerGetCrouchPos +/* 0B9DD4 7F0852A4 00000000 */ nop +.L7F0852A8: +/* 0B9DD8 7F0852A8 8E280000 */ lw $t0, ($s1) +/* 0B9DDC 7F0852AC C7AA02AC */ lwc1 $f10, 0x2ac($sp) +/* 0B9DE0 7F0852B0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9DE4 7F0852B4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9DE8 7F0852B8 250400A0 */ addiu $a0, $t0, 0xa0 +/* 0B9DEC 7F0852BC 250600A4 */ addiu $a2, $t0, 0xa4 +/* 0B9DF0 7F0852C0 46005032 */ c.eq.s $f10, $f0 +/* 0B9DF4 7F0852C4 00000000 */ nop +/* 0B9DF8 7F0852C8 4503000C */ bc1tl .L7F0852FC +/* 0B9DFC 7F0852CC C7A602AC */ lwc1 $f6, 0x2ac($sp) +/* 0B9E00 7F0852D0 44810000 */ mtc1 $at, $f0 +/* 0B9E04 7F0852D4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0B9E08 7F0852D8 44814000 */ mtc1 $at, $f8 +/* 0B9E0C 7F0852DC 44055000 */ mfc1 $a1, $f10 +/* 0B9E10 7F0852E0 44070000 */ mfc1 $a3, $f0 +/* 0B9E14 7F0852E4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0B9E18 7F0852E8 0FC10BC6 */ jal sub_GAME_7F042F18 +/* 0B9E1C 7F0852EC E7A80014 */ swc1 $f8, 0x14($sp) +/* 0B9E20 7F0852F0 8E280000 */ lw $t0, ($s1) +/* 0B9E24 7F0852F4 C50000A0 */ lwc1 $f0, 0xa0($t0) +/* 0B9E28 7F0852F8 C7A602AC */ lwc1 $f6, 0x2ac($sp) +.L7F0852FC: +/* 0B9E2C 7F0852FC 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0B9E30 7F085300 3C0C8003 */ lui $t4, %hi(in_tank_flag) +/* 0B9E34 7F085304 46003032 */ c.eq.s $f6, $f0 +/* 0B9E38 7F085308 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0B9E3C 7F08530C 45000002 */ bc1f .L7F085318 +/* 0B9E40 7F085310 00000000 */ nop +/* 0B9E44 7F085314 E51400A4 */ swc1 $f20, 0xa4($t0) +.L7F085318: +/* 0B9E48 7F085318 8D8C6448 */ lw $t4, %lo(in_tank_flag)($t4) +/* 0B9E4C 7F08531C 24010001 */ li $at, 1 +/* 0B9E50 7F085320 15810209 */ bne $t4, $at, .L7F085B48 +/* 0B9E54 7F085324 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) +/* 0B9E58 7F085328 8C4299B8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) +/* 0B9E5C 7F08532C 3C038003 */ lui $v1, %hi(ptr_playerstank) +/* 0B9E60 7F085330 24010001 */ li $at, 1 +/* 0B9E64 7F085334 144000BF */ bnez $v0, .L7F085634 +/* 0B9E68 7F085338 00000000 */ nop +/* 0B9E6C 7F08533C 8C636450 */ lw $v1, %lo(ptr_playerstank)($v1) +/* 0B9E70 7F085340 3C018005 */ lui $at, %hi(D_800551DC) +/* 0B9E74 7F085344 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9E78 7F085348 106000AD */ beqz $v1, .L7F085600 +/* 0B9E7C 7F08534C 00000000 */ nop +/* 0B9E80 7F085350 C42451DC */ lwc1 $f4, %lo(D_800551DC)($at) +/* 0B9E84 7F085354 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9E88 7F085358 C42A6464 */ lwc1 $f10, %lo(D_80036464)($at) +/* 0B9E8C 7F08535C 8C700004 */ lw $s0, 4($v1) +/* 0B9E90 7F085360 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0B9E94 7F085364 460A2301 */ sub.s $f12, $f4, $f10 +/* 0B9E98 7F085368 8E190014 */ lw $t9, 0x14($s0) +/* 0B9E9C 7F08536C 27A50268 */ addiu $a1, $sp, 0x268 +/* 0B9EA0 7F085370 0FC1629F */ jal matrix_scalar_multiply +/* 0B9EA4 7F085374 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 0B9EA8 7F085378 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) +/* 0B9EAC 7F08537C 244299A8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6658 +/* 0B9EB0 7F085380 C4480000 */ lwc1 $f8, ($v0) +/* 0B9EB4 7F085384 C4460004 */ lwc1 $f6, 4($v0) +/* 0B9EB8 7F085388 C4440008 */ lwc1 $f4, 8($v0) +/* 0B9EBC 7F08538C 27A40268 */ addiu $a0, $sp, 0x268 +/* 0B9EC0 7F085390 27A5025C */ addiu $a1, $sp, 0x25c +/* 0B9EC4 7F085394 E7A8025C */ swc1 $f8, 0x25c($sp) +/* 0B9EC8 7F085398 E7A60260 */ swc1 $f6, 0x260($sp) +/* 0B9ECC 7F08539C 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place +/* 0B9ED0 7F0853A0 E7A40264 */ swc1 $f4, 0x264($sp) +/* 0B9ED4 7F0853A4 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0B9ED8 7F0853A8 C6080058 */ lwc1 $f8, 0x58($s0) +/* 0B9EDC 7F0853AC C7A40260 */ lwc1 $f4, 0x260($sp) +/* 0B9EE0 7F0853B0 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 +/* 0B9EE4 7F0853B4 46085180 */ add.s $f6, $f10, $f8 +/* 0B9EE8 7F0853B8 44810000 */ mtc1 $at, $f0 +/* 0B9EEC 7F0853BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9EF0 7F0853C0 44817000 */ mtc1 $at, $f14 +/* 0B9EF4 7F0853C4 E7A6025C */ swc1 $f6, 0x25c($sp) +/* 0B9EF8 7F0853C8 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 0B9EFC 7F0853CC C7A60264 */ lwc1 $f6, 0x264($sp) +/* 0B9F00 7F0853D0 3C018003 */ lui $at, %hi(D_80036464) +/* 0B9F04 7F0853D4 460A2200 */ add.s $f8, $f4, $f10 +/* 0B9F08 7F0853D8 8E2A0000 */ lw $t2, ($s1) +/* 0B9F0C 7F0853DC E7A80260 */ swc1 $f8, 0x260($sp) +/* 0B9F10 7F0853E0 C6040060 */ lwc1 $f4, 0x60($s0) +/* 0B9F14 7F0853E4 C4286464 */ lwc1 $f8, %lo(D_80036464)($at) +/* 0B9F18 7F0853E8 3C018003 */ lui $at, %hi(D_80036474) +/* 0B9F1C 7F0853EC 46043280 */ add.s $f10, $f6, $f4 +/* 0B9F20 7F0853F0 C4266474 */ lwc1 $f6, %lo(D_80036474)($at) +/* 0B9F24 7F0853F4 3C018005 */ lui $at, %hi(D_800551E0) +/* 0B9F28 7F0853F8 46064100 */ add.s $f4, $f8, $f6 +/* 0B9F2C 7F0853FC E7AA0264 */ swc1 $f10, 0x264($sp) +/* 0B9F30 7F085400 C5420158 */ lwc1 $f2, 0x158($t2) +/* 0B9F34 7F085404 C42851E0 */ lwc1 $f8, %lo(D_800551E0)($at) +/* 0B9F38 7F085408 460E2282 */ mul.s $f10, $f4, $f14 +/* 0B9F3C 7F08540C 4600103C */ c.lt.s $f2, $f0 +/* 0B9F40 7F085410 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9F44 7F085414 44819000 */ mtc1 $at, $f18 +/* 0B9F48 7F085418 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0B9F4C 7F08541C 45000002 */ bc1f .L7F085428 +/* 0B9F50 7F085420 46085403 */ div.s $f16, $f10, $f8 +/* 0B9F54 7F085424 46000086 */ mov.s $f2, $f0 +.L7F085428: +/* 0B9F58 7F085428 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 0B9F5C 7F08542C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0B9F60 7F085430 44812000 */ mtc1 $at, $f4 +/* 0B9F64 7F085434 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0B9F68 7F085438 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0B9F6C 7F08543C 46043283 */ div.s $f10, $f6, $f4 +/* 0B9F70 7F085440 C6080000 */ lwc1 $f8, ($s0) +/* 0B9F74 7F085444 3C018005 */ lui $at, %hi(D_800551E4) +/* 0B9F78 7F085448 460A4180 */ add.s $f6, $f8, $f10 +/* 0B9F7C 7F08544C E6060000 */ swc1 $f6, ($s0) +/* 0B9F80 7F085450 C6000000 */ lwc1 $f0, ($s0) +/* 0B9F84 7F085454 4600903E */ c.le.s $f18, $f0 +/* 0B9F88 7F085458 00000000 */ nop +/* 0B9F8C 7F08545C 45000003 */ bc1f .L7F08546C +/* 0B9F90 7F085460 00000000 */ nop +/* 0B9F94 7F085464 E6120000 */ swc1 $f18, ($s0) +/* 0B9F98 7F085468 C6000000 */ lwc1 $f0, ($s0) +.L7F08546C: +/* 0B9F9C 7F08546C C42451E4 */ lwc1 $f4, %lo(D_800551E4)($at) +/* 0B9FA0 7F085470 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FA4 7F085474 44815000 */ mtc1 $at, $f10 +/* 0B9FA8 7F085478 46040202 */ mul.s $f8, $f0, $f4 +/* 0B9FAC 7F08547C E7A20254 */ swc1 $f2, 0x254($sp) +/* 0B9FB0 7F085480 E7B00258 */ swc1 $f16, 0x258($sp) +/* 0B9FB4 7F085484 460A4302 */ mul.s $f12, $f8, $f10 +/* 0B9FB8 7F085488 0FC15FA8 */ jal cosf +/* 0B9FBC 7F08548C 00000000 */ nop +/* 0B9FC0 7F085490 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0B9FC4 7F085494 44817000 */ mtc1 $at, $f14 +/* 0B9FC8 7F085498 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FCC 7F08549C 44813000 */ mtc1 $at, $f6 +/* 0B9FD0 7F0854A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0B9FD4 7F0854A4 44814000 */ mtc1 $at, $f8 +/* 0B9FD8 7F0854A8 46060100 */ add.s $f4, $f0, $f6 +/* 0B9FDC 7F0854AC 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) +/* 0B9FE0 7F0854B0 244299C0 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6640 +/* 0B9FE4 7F0854B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0B9FE8 7F0854B8 46082282 */ mul.s $f10, $f4, $f8 +/* 0B9FEC 7F0854BC 44813000 */ mtc1 $at, $f6 +/* 0B9FF0 7F0854C0 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 0B9FF4 7F0854C4 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) +/* 0B9FF8 7F0854C8 8E2D0000 */ lw $t5, ($s1) +/* 0B9FFC 7F0854CC C7B00258 */ lwc1 $f16, 0x258($sp) +/* 0BA000 7F0854D0 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) +/* 0BA004 7F0854D4 E44A0000 */ swc1 $f10, ($v0) +/* 0BA008 7F0854D8 C4420000 */ lwc1 $f2, ($v0) +/* 0BA00C 7F0854DC 246399D0 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x6630 +/* 0BA010 7F0854E0 46023101 */ sub.s $f4, $f6, $f2 +/* 0BA014 7F0854E4 C42699C8 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) +/* 0BA018 7F0854E8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) +/* 0BA01C 7F0854EC 46082282 */ mul.s $f10, $f4, $f8 +/* 0BA020 7F0854F0 00000000 */ nop +/* 0BA024 7F0854F4 46061102 */ mul.s $f4, $f2, $f6 +/* 0BA028 7F0854F8 460A2200 */ add.s $f8, $f4, $f10 +/* 0BA02C 7F0854FC E5A80158 */ swc1 $f8, 0x158($t5) +/* 0BA030 7F085500 C43299C4 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) +/* 0BA034 7F085504 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BA038 7F085508 44813000 */ mtc1 $at, $f6 +/* 0BA03C 7F08550C 46128301 */ sub.s $f12, $f16, $f18 +/* 0BA040 7F085510 3C01C334 */ li $at, 0xC3340000 # -180.000000 +/* 0BA044 7F085514 44812000 */ mtc1 $at, $f4 +/* 0BA048 7F085518 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA04C 7F08551C 460C303C */ c.lt.s $f6, $f12 +/* 0BA050 7F085520 44814000 */ mtc1 $at, $f8 +/* 0BA054 7F085524 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA058 7F085528 45000002 */ bc1f .L7F085534 +/* 0BA05C 7F08552C 00000000 */ nop +/* 0BA060 7F085530 460E8401 */ sub.s $f16, $f16, $f14 +.L7F085534: +/* 0BA064 7F085534 4604603C */ c.lt.s $f12, $f4 +/* 0BA068 7F085538 00000000 */ nop +/* 0BA06C 7F08553C 45020003 */ bc1fl .L7F08554C +/* 0BA070 7F085540 C4420000 */ lwc1 $f2, ($v0) +/* 0BA074 7F085544 460E8400 */ add.s $f16, $f16, $f14 +/* 0BA078 7F085548 C4420000 */ lwc1 $f2, ($v0) +.L7F08554C: +/* 0BA07C 7F08554C 8E2E0000 */ lw $t6, ($s1) +/* 0BA080 7F085550 46024181 */ sub.s $f6, $f8, $f2 +/* 0BA084 7F085554 46121282 */ mul.s $f10, $f2, $f18 +/* 0BA088 7F085558 00000000 */ nop +/* 0BA08C 7F08555C 46103102 */ mul.s $f4, $f6, $f16 +/* 0BA090 7F085560 46045200 */ add.s $f8, $f10, $f4 +/* 0BA094 7F085564 44812000 */ mtc1 $at, $f4 +/* 0BA098 7F085568 E5C80148 */ swc1 $f8, 0x148($t6) +/* 0BA09C 7F08556C 8E280000 */ lw $t0, ($s1) +/* 0BA0A0 7F085570 C5000148 */ lwc1 $f0, 0x148($t0) +/* 0BA0A4 7F085574 4600703E */ c.le.s $f14, $f0 +/* 0BA0A8 7F085578 00000000 */ nop +/* 0BA0AC 7F08557C 45000005 */ bc1f .L7F085594 +/* 0BA0B0 7F085580 00000000 */ nop +/* 0BA0B4 7F085584 460E0181 */ sub.s $f6, $f0, $f14 +/* 0BA0B8 7F085588 E5060148 */ swc1 $f6, 0x148($t0) +/* 0BA0BC 7F08558C 8E280000 */ lw $t0, ($s1) +/* 0BA0C0 7F085590 C5000148 */ lwc1 $f0, 0x148($t0) +.L7F085594: +/* 0BA0C4 7F085594 4614003C */ c.lt.s $f0, $f20 +/* 0BA0C8 7F085598 00000000 */ nop +/* 0BA0CC 7F08559C 45020005 */ bc1fl .L7F0855B4 +/* 0BA0D0 7F0855A0 C4420000 */ lwc1 $f2, ($v0) +/* 0BA0D4 7F0855A4 460E0280 */ add.s $f10, $f0, $f14 +/* 0BA0D8 7F0855A8 E50A0148 */ swc1 $f10, 0x148($t0) +/* 0BA0DC 7F0855AC 8E280000 */ lw $t0, ($s1) +/* 0BA0E0 7F0855B0 C4420000 */ lwc1 $f2, ($v0) +.L7F0855B4: +/* 0BA0E4 7F0855B4 C4680000 */ lwc1 $f8, ($v1) +/* 0BA0E8 7F0855B8 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 0BA0EC 7F0855BC 46022001 */ sub.s $f0, $f4, $f2 +/* 0BA0F0 7F0855C0 46081182 */ mul.s $f6, $f2, $f8 +/* 0BA0F4 7F0855C4 00000000 */ nop +/* 0BA0F8 7F0855C8 460A0102 */ mul.s $f4, $f0, $f10 +/* 0BA0FC 7F0855CC C50A048C */ lwc1 $f10, 0x48c($t0) +/* 0BA100 7F0855D0 E7B403B0 */ swc1 $f20, 0x3b0($sp) +/* 0BA104 7F0855D4 46043200 */ add.s $f8, $f6, $f4 +/* 0BA108 7F0855D8 C4640008 */ lwc1 $f4, 8($v1) +/* 0BA10C 7F0855DC 460A4181 */ sub.s $f6, $f8, $f10 +/* 0BA110 7F0855E0 46041202 */ mul.s $f8, $f2, $f4 +/* 0BA114 7F0855E4 C7AA0264 */ lwc1 $f10, 0x264($sp) +/* 0BA118 7F0855E8 E7A603AC */ swc1 $f6, 0x3ac($sp) +/* 0BA11C 7F0855EC 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BA120 7F0855F0 C50A0494 */ lwc1 $f10, 0x494($t0) +/* 0BA124 7F0855F4 46064100 */ add.s $f4, $f8, $f6 +/* 0BA128 7F0855F8 460A2201 */ sub.s $f8, $f4, $f10 +/* 0BA12C 7F0855FC E7A803B4 */ swc1 $f8, 0x3b4($sp) +.L7F085600: +/* 0BA130 7F085600 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) +/* 0BA134 7F085604 261099BC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6644 +/* 0BA138 7F085608 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BA13C 7F08560C 44812000 */ mtc1 $at, $f4 +/* 0BA140 7F085610 C6060000 */ lwc1 $f6, ($s0) +/* 0BA144 7F085614 8E280000 */ lw $t0, ($s1) +/* 0BA148 7F085618 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA14C 7F08561C 4606203E */ c.le.s $f4, $f6 +/* 0BA150 7F085620 240F0001 */ li $t7, 1 +/* 0BA154 7F085624 450200EF */ bc1fl .L7F0859E4 +/* 0BA158 7F085628 3C013F40 */ lui $at, %hi(0x3F3F99B8) # $at, 0x3f40 +/* 0BA15C 7F08562C 100000EC */ b .L7F0859E0 +/* 0BA160 7F085630 AC2F99B8 */ sw $t7, %lo(dword_CODE_bss_800799B8)($at) +.L7F085634: +/* 0BA164 7F085634 1441001A */ bne $v0, $at, .L7F0856A0 +/* 0BA168 7F085638 3C108003 */ lui $s0, %hi(SFX_80036458) +/* 0BA16C 7F08563C 240B0002 */ li $t3, 2 +/* 0BA170 7F085640 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) +/* 0BA174 7F085644 26106458 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6458 +/* 0BA178 7F085648 AC2B99B8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) +/* 0BA17C 7F08564C 8E180000 */ lw $t8, ($s0) +/* 0BA180 7F085650 5700000A */ bnezl $t8, .L7F08567C +/* 0BA184 7F085654 8E040000 */ lw $a0, ($s0) +/* 0BA188 7F085658 0FC2FF01 */ jal get_controls_locked_flag +/* 0BA18C 7F08565C 00000000 */ nop +/* 0BA190 7F085660 14400005 */ bnez $v0, .L7F085678 /* 0BA194 7F085664 3C048006 */ lui $a0, %hi(ptr_sfx_buf) /* 0BA198 7F085668 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) /* 0BA19C 7F08566C 24050042 */ li $a1, 66 @@ -21275,2553 +29224,6 @@ glabel MoveBond ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.late_rodata -glabel D_8005516C -.word 0x3d888889 /*0.06666667*/ -glabel D_80055170 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80055174 -.word 0x3c8efa35 /*0.017453292*/ -glabel D_80055178 -.word 0x3f8147ae /*1.01*/ -glabel D_8005517C -.word 0x3f8147ae /*1.01*/ -glabel D_80055180 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80055184 -.word 0x3c8efa35 /*0.017453292*/ -glabel D_80055188 -.word 0x40490fdb /*3.1415927*/ -glabel D_8005518C -.word 0x40c90fdb /*6.2831855*/ -glabel D_80055190 -.word 0xc0490fdb /*-3.1415927*/ -glabel D_80055194 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80055198 -.word 0x3f6b851f /*0.92000002*/ -glabel D_8005519C -.word 0x3da3d708 /*0.079999983*/ -glabel D_800551A0 -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551A4 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551A8 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551AC -.word 0x3da3d708 /*0.079999983*/ -glabel D_800551B0 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551B4 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551B8 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551BC -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551C0 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551C4 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551C8 -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551CC -.word 0x3f6b851f /*0.92000002*/ -glabel D_800551D0 -.word 0x3da3d708 /*0.079999983*/ -glabel D_800551D4 -.word 0x3c8efa35 /*0.017453292*/ -glabel D_800551D8 -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551DC -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551E0 -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551E4 -.word 0x40c90fdb /*6.2831855*/ -glabel D_800551E8 -.word 0x3e99999a /*0.30000001*/ -glabel D_800551EC -.word 0x3e19999a /*0.15000001*/ -glabel D_800551F0 -.word 0x469c4000 /*20000.0*/ -glabel D_800551F4 -.word 0x3f666666 /*0.89999998*/ -glabel D_800551F8 -.word 0x46477c00 /*12767.0*/ -glabel D_800551FC -.word 0x469c4000 /*20000.0*/ -glabel D_80055200 -.word 0x3f666666 /*0.89999998*/ -glabel D_80055204 -.word 0x45f2b800 /*7767.0*/ -glabel D_80055208 -.word 0x3f666666 /*0.89999998*/ -glabel D_8005520C -.word 0x46c35000 /*25000.0;*/ -glabel D_80055210 -.word 0x3e32b8c3 /*0.17453294*/ -glabel D_80055214 -.word 0x3edf66f3 /*0.43633232*/ -glabel D_80055218 -.word 0xbdb2b8c3 /*-0.087266468*/ -glabel D_8005521C -.word 0x3f70a3d7 /*0.94*/ -glabel D_80055220 -.word 0x3d75c290 /*0.060000002*/ -glabel D_80055224 -.word 0x4528c000 /*2700.0*/ -glabel D_80055228 -.word 0x40c90fdb /*6.2831855*/ -glabel D_8005522C -.word 0x40c90fdb /*6.2831855*/ -glabel D_80055230 -.word 0x3f19999a /*0.60000002*/ -glabel D_80055234 -.word 0x3f4ccccd /*0.80000001*/ -glabel D_80055238 -.word 0x3dcccccd /*0.1*/ -glabel D_8005523C -.word 0x4528c000 /*2700.0*/ -glabel D_80055240 -.word 0x3f947ae1 /*1.16*/ -glabel D_80055244 -.word 0x3f8147ae /*1.01*/ -glabel D_80055248 -.word 0x3f7d7721 /*0.99009901*/ -glabel D_8005524C -.word 0x3f333333 /*0.69999999*/ -glabel D_80055250 -.word 0x3f99999a /*1.2*/ -glabel D_80055254 -.word 0x3c8efa35 /*0.017453292*/ -glabel D_80055258 -.word 0x40c90fdb /*6.2831855*/ -glabel D_8005525C -.word 0x3f547ae1 /*0.82999998*/ -glabel D_80055260 -.word 0x3e2e147c /*0.17000002*/ -.text -glabel MoveBond -/* 0B9868 7F084CF8 27BDFC48 */ addiu $sp, $sp, -0x3b8 -/* 0B986C 7F084CFC 3C198003 */ lui $t9, %hi(D_800367F4) # $t9, 0x8003 -/* 0B9870 7F084D00 AFBF002C */ sw $ra, 0x2c($sp) -/* 0B9874 7F084D04 AFB10028 */ sw $s1, 0x28($sp) -/* 0B9878 7F084D08 AFB00024 */ sw $s0, 0x24($sp) -/* 0B987C 7F084D0C F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0B9880 7F084D10 AFA403B8 */ sw $a0, 0x3b8($sp) -/* 0B9884 7F084D14 AFA503BC */ sw $a1, 0x3bc($sp) -/* 0B9888 7F084D18 AFA603C0 */ sw $a2, 0x3c0($sp) -/* 0B988C 7F084D1C AFA703C4 */ sw $a3, 0x3c4($sp) -/* 0B9890 7F084D20 27396834 */ addiu $t9, %lo(D_800367F4) # addiu $t9, $t9, 0x6834 -/* 0B9894 7F084D24 8F210000 */ lw $at, ($t9) -/* 0B9898 7F084D28 27AA03AC */ addiu $t2, $sp, 0x3ac -/* 0B989C 7F084D2C 8F2C0004 */ lw $t4, 4($t9) -/* 0B98A0 7F084D30 AD410000 */ sw $at, ($t2) -/* 0B98A4 7F084D34 8F210008 */ lw $at, 8($t9) -/* 0B98A8 7F084D38 4480A000 */ mtc1 $zero, $f20 -/* 0B98AC 7F084D3C 00048600 */ sll $s0, $a0, 0x18 -/* 0B98B0 7F084D40 AD410008 */ sw $at, 8($t2) -/* 0B98B4 7F084D44 00107603 */ sra $t6, $s0, 0x18 -/* 0B98B8 7F084D48 AD4C0004 */ sw $t4, 4($t2) -/* 0B98BC 7F084D4C 29C10064 */ slti $at, $t6, 0x64 -/* 0B98C0 7F084D50 01C08025 */ move $s0, $t6 -/* 0B98C4 7F084D54 AFA00394 */ sw $zero, 0x394($sp) -/* 0B98C8 7F084D58 E7B40398 */ swc1 $f20, 0x398($sp) -/* 0B98CC 7F084D5C 10200004 */ beqz $at, .Ljp7F084D70 -/* 0B98D0 7F084D60 E7B40390 */ swc1 $f20, 0x390($sp) -/* 0B98D4 7F084D64 29C1FF9D */ slti $at, $t6, -0x63 -/* 0B98D8 7F084D68 50200004 */ beql $at, $zero, .Ljp7F084D7C -/* 0B98DC 7F084D6C 83AB03BF */ lb $t3, 0x3bf($sp) -.Ljp7F084D70: -/* 0B98E0 7F084D70 0FC1B297 */ jal return_null -/* 0B98E4 7F084D74 00000000 */ nop -/* 0B98E8 7F084D78 83AB03BF */ lb $t3, 0x3bf($sp) -.Ljp7F084D7C: -/* 0B98EC 7F084D7C 29610064 */ slti $at, $t3, 0x64 -/* 0B98F0 7F084D80 10200003 */ beqz $at, .Ljp7F084D90 -/* 0B98F4 7F084D84 2961FF9D */ slti $at, $t3, -0x63 -/* 0B98F8 7F084D88 10200003 */ beqz $at, .Ljp7F084D98 -/* 0B98FC 7F084D8C 00000000 */ nop -.Ljp7F084D90: -/* 0B9900 7F084D90 0FC1B297 */ jal return_null -/* 0B9904 7F084D94 00000000 */ nop -.Ljp7F084D98: -/* 0B9908 7F084D98 3C038003 */ lui $v1, %hi(camera_80036424) # $v1, 0x8003 -/* 0B990C 7F084D9C 24636464 */ addiu $v1, %lo(camera_80036424) # addiu $v1, $v1, 0x6464 -/* 0B9910 7F084DA0 8C620000 */ lw $v0, ($v1) -/* 0B9914 7F084DA4 18400015 */ blez $v0, .Ljp7F084DFC -/* 0B9918 7F084DA8 244D0001 */ addiu $t5, $v0, 1 -/* 0B991C 7F084DAC 29A10004 */ slti $at, $t5, 4 -/* 0B9920 7F084DB0 14200012 */ bnez $at, .Ljp7F084DFC -/* 0B9924 7F084DB4 AC6D0000 */ sw $t5, ($v1) -/* 0B9928 7F084DB8 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 -/* 0B992C 7F084DBC 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 -/* 0B9930 7F084DC0 8E380000 */ lw $t8, ($s1) -/* 0B9934 7F084DC4 AC600000 */ sw $zero, ($v1) -/* 0B9938 7F084DC8 24040001 */ li $a0, 1 -/* 0B993C 7F084DCC AF002A54 */ sw $zero, 0x2a54($t8) -/* 0B9940 7F084DD0 8E2F0000 */ lw $t7, ($s1) -/* 0B9944 7F084DD4 0FC177BC */ jal get_item_in_hand -/* 0B9948 7F084DD8 ADE02A50 */ sw $zero, 0x2a50($t7) -/* 0B994C 7F084DDC 24040001 */ li $a0, 1 -/* 0B9950 7F084DE0 0FC1781D */ jal remove_hands_item -/* 0B9954 7F084DE4 00402825 */ move $a1, $v0 -/* 0B9958 7F084DE8 0FC177BC */ jal get_item_in_hand -/* 0B995C 7F084DEC 00002025 */ move $a0, $zero -/* 0B9960 7F084DF0 00002025 */ move $a0, $zero -/* 0B9964 7F084DF4 0FC1781D */ jal remove_hands_item -/* 0B9968 7F084DF8 00402825 */ move $a1, $v0 -.Ljp7F084DFC: -/* 0B996C 7F084DFC 3C118008 */ lui $s1, %hi(pPlayer) # $s1, 0x8008 -/* 0B9970 7F084E00 2631A120 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5ee0 -/* 0B9974 7F084E04 0FC1E810 */ jal currentPlayerSetField00 -/* 0B9978 7F084E08 00002025 */ move $a0, $zero -/* 0B997C 7F084E0C 0FC21176 */ jal sub_GAME_7F083FC8 -/* 0B9980 7F084E10 00000000 */ nop -/* 0B9984 7F084E14 0FC21284 */ jal sub_GAME_7F084360 -/* 0B9988 7F084E18 00000000 */ nop -/* 0B998C 7F084E1C 00102600 */ sll $a0, $s0, 0x18 -/* 0B9990 7F084E20 00045603 */ sra $t2, $a0, 0x18 -/* 0B9994 7F084E24 01402025 */ move $a0, $t2 -/* 0B9998 7F084E28 83A503BF */ lb $a1, 0x3bf($sp) -/* 0B999C 7F084E2C 97A603C2 */ lhu $a2, 0x3c2($sp) -/* 0B99A0 7F084E30 0FC207E1 */ jal controller_gameplay_interaction -/* 0B99A4 7F084E34 97A703C6 */ lhu $a3, 0x3c6($sp) -/* 0B99A8 7F084E38 0FC3021B */ jal get_controls_locked_flag -/* 0B99AC 7F084E3C 00000000 */ nop -/* 0B99B0 7F084E40 50400004 */ beql $v0, $zero, .Ljp7F084E54 -/* 0B99B4 7F084E44 8E390000 */ lw $t9, ($s1) -/* 0B99B8 7F084E48 0FC1FC3F */ jal sub_GAME_7F07EAF0 -/* 0B99BC 7F084E4C 00000000 */ nop -/* 0B99C0 7F084E50 8E390000 */ lw $t9, ($s1) -.Ljp7F084E54: -/* 0B99C4 7F084E54 8F2C01C8 */ lw $t4, 0x1c8($t9) -/* 0B99C8 7F084E58 11800003 */ beqz $t4, .Ljp7F084E68 -/* 0B99CC 7F084E5C 00000000 */ nop -/* 0B99D0 7F084E60 0FC1FC98 */ jal sub_GAME_7F07EC54 -/* 0B99D4 7F084E64 00000000 */ nop -.Ljp7F084E68: -/* 0B99D8 7F084E68 3C0B8003 */ lui $t3, %hi(in_tank_flag) # $t3, 0x8003 -/* 0B99DC 7F084E6C 8D6B6488 */ lw $t3, %lo(in_tank_flag)($t3) -/* 0B99E0 7F084E70 1560006E */ bnez $t3, .Ljp7F08502C -/* 0B99E4 7F084E74 00000000 */ nop -/* 0B99E8 7F084E78 0FC1E7F8 */ jal currentPlayerGetCrouchPos -/* 0B99EC 7F084E7C 00000000 */ nop -/* 0B99F0 7F084E80 5440000D */ bnezl $v0, .Ljp7F084EB8 -/* 0B99F4 7F084E84 8E280000 */ lw $t0, ($s1) -/* 0B99F8 7F084E88 8E280000 */ lw $t0, ($s1) -/* 0B99FC 7F084E8C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0B9A00 7F084E90 44815000 */ mtc1 $at, $f10 -/* 0B9A04 7F084E94 C5040174 */ lwc1 $f4, 0x174($t0) -/* 0B9A08 7F084E98 460A2182 */ mul.s $f6, $f4, $f10 -/* 0B9A0C 7F084E9C 44812000 */ mtc1 $at, $f4 -/* 0B9A10 7F084EA0 E5060174 */ swc1 $f6, 0x174($t0) -/* 0B9A14 7F084EA4 8E280000 */ lw $t0, ($s1) -/* 0B9A18 7F084EA8 C508016C */ lwc1 $f8, 0x16c($t0) -/* 0B9A1C 7F084EAC 46044282 */ mul.s $f10, $f8, $f4 -/* 0B9A20 7F084EB0 E50A016C */ swc1 $f10, 0x16c($t0) -/* 0B9A24 7F084EB4 8E280000 */ lw $t0, ($s1) -.Ljp7F084EB8: -/* 0B9A28 7F084EB8 C5120180 */ lwc1 $f18, 0x180($t0) -/* 0B9A2C 7F084EBC 4612A032 */ c.eq.s $f20, $f18 -/* 0B9A30 7F084EC0 00000000 */ nop -/* 0B9A34 7F084EC4 45020007 */ bc1fl .Ljp7F084EE4 -/* 0B9A38 7F084EC8 C5000188 */ lwc1 $f0, 0x188($t0) -/* 0B9A3C 7F084ECC C5060188 */ lwc1 $f6, 0x188($t0) -/* 0B9A40 7F084ED0 4606A032 */ c.eq.s $f20, $f6 -/* 0B9A44 7F084ED4 00000000 */ nop -/* 0B9A48 7F084ED8 45010054 */ bc1t .Ljp7F08502C -/* 0B9A4C 7F084EDC 00000000 */ nop -/* 0B9A50 7F084EE0 C5000188 */ lwc1 $f0, 0x188($t0) -.Ljp7F084EE4: -/* 0B9A54 7F084EE4 C5020150 */ lwc1 $f2, 0x150($t0) -/* 0B9A58 7F084EE8 C5100154 */ lwc1 $f16, 0x154($t0) -/* 0B9A5C 7F084EEC 46009387 */ neg.s $f14, $f18 -/* 0B9A60 7F084EF0 46020202 */ mul.s $f8, $f0, $f2 -/* 0B9A64 7F084EF4 00000000 */ nop -/* 0B9A68 7F084EF8 46107102 */ mul.s $f4, $f14, $f16 -/* 0B9A6C 7F084EFC 46044280 */ add.s $f10, $f8, $f4 -/* 0B9A70 7F084F00 46027182 */ mul.s $f6, $f14, $f2 -/* 0B9A74 7F084F04 00000000 */ nop -/* 0B9A78 7F084F08 46100202 */ mul.s $f8, $f0, $f16 -/* 0B9A7C 7F084F0C E7AA038C */ swc1 $f10, 0x38c($sp) -/* 0B9A80 7F084F10 46000282 */ mul.s $f10, $f0, $f0 -/* 0B9A84 7F084F14 46083101 */ sub.s $f4, $f6, $f8 -/* 0B9A88 7F084F18 46129182 */ mul.s $f6, $f18, $f18 -/* 0B9A8C 7F084F1C E7A40388 */ swc1 $f4, 0x388($sp) -/* 0B9A90 7F084F20 0C007E08 */ jal sqrtf -/* 0B9A94 7F084F24 46065300 */ add.s $f12, $f10, $f6 -/* 0B9A98 7F084F28 8E280000 */ lw $t0, ($s1) -/* 0B9A9C 7F084F2C C7A4038C */ lwc1 $f4, 0x38c($sp) -/* 0B9AA0 7F084F30 3C018005 */ lui $at, %hi(D_8005516C) # $at, 0x8005 -/* 0B9AA4 7F084F34 C5080174 */ lwc1 $f8, 0x174($t0) -/* 0B9AA8 7F084F38 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 -/* 0B9AAC 7F084F3C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c -/* 0B9AB0 7F084F40 46044280 */ add.s $f10, $f8, $f4 -/* 0B9AB4 7F084F44 00001825 */ move $v1, $zero -/* 0B9AB8 7F084F48 2404000C */ li $a0, 12 -/* 0B9ABC 7F084F4C E50A0174 */ swc1 $f10, 0x174($t0) -/* 0B9AC0 7F084F50 8E280000 */ lw $t0, ($s1) -/* 0B9AC4 7F084F54 C7A80388 */ lwc1 $f8, 0x388($sp) -/* 0B9AC8 7F084F58 C506016C */ lwc1 $f6, 0x16c($t0) -/* 0B9ACC 7F084F5C 46083100 */ add.s $f4, $f6, $f8 -/* 0B9AD0 7F084F60 E504016C */ swc1 $f4, 0x16c($t0) -/* 0B9AD4 7F084F64 C42C519C */ lwc1 $f12, %lo(D_8005516C)($at) -/* 0B9AD8 7F084F68 8E2D0000 */ lw $t5, ($s1) -.Ljp7F084F6C: -/* 0B9ADC 7F084F6C 01A31021 */ addu $v0, $t5, $v1 -/* 0B9AE0 7F084F70 C4420180 */ lwc1 $f2, 0x180($v0) -/* 0B9AE4 7F084F74 4602A032 */ c.eq.s $f20, $f2 -/* 0B9AE8 7F084F78 00000000 */ nop -/* 0B9AEC 7F084F7C 45030029 */ bc1tl .Ljp7F085024 -/* 0B9AF0 7F084F80 24630004 */ addiu $v1, $v1, 4 -/* 0B9AF4 7F084F84 4602A03C */ c.lt.s $f20, $f2 -/* 0B9AF8 7F084F88 00000000 */ nop -/* 0B9AFC 7F084F8C 45020012 */ bc1fl .Ljp7F084FD8 -/* 0B9B00 7F084F90 4614103C */ c.lt.s $f2, $f20 -/* 0B9B04 7F084F94 C52A0000 */ lwc1 $f10, ($t1) -/* 0B9B08 7F084F98 460A6182 */ mul.s $f6, $f12, $f10 -/* 0B9B0C 7F084F9C 00000000 */ nop -/* 0B9B10 7F084FA0 46023202 */ mul.s $f8, $f6, $f2 -/* 0B9B14 7F084FA4 46004103 */ div.s $f4, $f8, $f0 -/* 0B9B18 7F084FA8 46041281 */ sub.s $f10, $f2, $f4 -/* 0B9B1C 7F084FAC E44A0180 */ swc1 $f10, 0x180($v0) -/* 0B9B20 7F084FB0 8E2E0000 */ lw $t6, ($s1) -/* 0B9B24 7F084FB4 01C31021 */ addu $v0, $t6, $v1 -/* 0B9B28 7F084FB8 C4460180 */ lwc1 $f6, 0x180($v0) -/* 0B9B2C 7F084FBC 4614303C */ c.lt.s $f6, $f20 -/* 0B9B30 7F084FC0 00000000 */ nop -/* 0B9B34 7F084FC4 45000016 */ bc1f .Ljp7F085020 -/* 0B9B38 7F084FC8 00000000 */ nop -/* 0B9B3C 7F084FCC 10000014 */ b .Ljp7F085020 -/* 0B9B40 7F084FD0 E4540180 */ swc1 $f20, 0x180($v0) -/* 0B9B44 7F084FD4 4614103C */ c.lt.s $f2, $f20 -.Ljp7F084FD8: -/* 0B9B48 7F084FD8 00000000 */ nop -/* 0B9B4C 7F084FDC 45020011 */ bc1fl .Ljp7F085024 -/* 0B9B50 7F084FE0 24630004 */ addiu $v1, $v1, 4 -/* 0B9B54 7F084FE4 C5280000 */ lwc1 $f8, ($t1) -/* 0B9B58 7F084FE8 46086102 */ mul.s $f4, $f12, $f8 -/* 0B9B5C 7F084FEC 00000000 */ nop -/* 0B9B60 7F084FF0 46022282 */ mul.s $f10, $f4, $f2 -/* 0B9B64 7F084FF4 46005183 */ div.s $f6, $f10, $f0 -/* 0B9B68 7F084FF8 46061201 */ sub.s $f8, $f2, $f6 -/* 0B9B6C 7F084FFC E4480180 */ swc1 $f8, 0x180($v0) -/* 0B9B70 7F085000 8E380000 */ lw $t8, ($s1) -/* 0B9B74 7F085004 03031021 */ addu $v0, $t8, $v1 -/* 0B9B78 7F085008 C4440180 */ lwc1 $f4, 0x180($v0) -/* 0B9B7C 7F08500C 4604A03C */ c.lt.s $f20, $f4 -/* 0B9B80 7F085010 00000000 */ nop -/* 0B9B84 7F085014 45000002 */ bc1f .Ljp7F085020 -/* 0B9B88 7F085018 00000000 */ nop -/* 0B9B8C 7F08501C E4540180 */ swc1 $f20, 0x180($v0) -.Ljp7F085020: -/* 0B9B90 7F085020 24630004 */ addiu $v1, $v1, 4 -.Ljp7F085024: -/* 0B9B94 7F085024 5464FFD1 */ bnel $v1, $a0, .Ljp7F084F6C -/* 0B9B98 7F085028 8E2D0000 */ lw $t5, ($s1) -.Ljp7F08502C: -/* 0B9B9C 7F08502C 3C0F8003 */ lui $t7, %hi(in_tank_flag) # $t7, 0x8003 -/* 0B9BA0 7F085030 8DEF6488 */ lw $t7, %lo(in_tank_flag)($t7) -/* 0B9BA4 7F085034 3C098005 */ lui $t1, %hi(global_timer_delta) # $t1, 0x8005 -/* 0B9BA8 7F085038 24010001 */ li $at, 1 -/* 0B9BAC 7F08503C 252983B4 */ addiu $t1, %lo(global_timer_delta) # addiu $t1, $t1, -0x7c4c -/* 0B9BB0 7F085040 15E10211 */ bne $t7, $at, .Ljp7F085888 -/* 0B9BB4 7F085044 8E280000 */ lw $t0, ($s1) -/* 0B9BB8 7F085048 C50A014C */ lwc1 $f10, 0x14c($t0) -/* 0B9BBC 7F08504C C5260000 */ lwc1 $f6, ($t1) -/* 0B9BC0 7F085050 3C018005 */ lui $at, %hi(D_80055170) # $at, 0x8005 -/* 0B9BC4 7F085054 C42C51A0 */ lwc1 $f12, %lo(D_80055170)($at) -/* 0B9BC8 7F085058 46065202 */ mul.s $f8, $f10, $f6 -/* 0B9BCC 7F08505C 3C018005 */ lui $at, %hi(D_80055174) # $at, 0x8005 -/* 0B9BD0 7F085060 C42451A4 */ lwc1 $f4, %lo(D_80055174)($at) -/* 0B9BD4 7F085064 3C014060 */ li $at, 0x40600000 # 3.500000 -/* 0B9BD8 7F085068 44813000 */ mtc1 $at, $f6 -/* 0B9BDC 7F08506C 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0B9BE0 7F085070 27B00374 */ addiu $s0, $sp, 0x374 -/* 0B9BE4 7F085074 46044282 */ mul.s $f10, $f8, $f4 -/* 0B9BE8 7F085078 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) -/* 0B9BEC 7F08507C 02003825 */ move $a3, $s0 -/* 0B9BF0 7F085080 2504048C */ addiu $a0, $t0, 0x48c -/* 0B9BF4 7F085084 27AA0368 */ addiu $t2, $sp, 0x368 -/* 0B9BF8 7F085088 46065082 */ mul.s $f2, $f10, $f6 -/* 0B9BFC 7F08508C 46024000 */ add.s $f0, $f8, $f2 -/* 0B9C00 7F085090 4600603E */ c.le.s $f12, $f0 -/* 0B9C04 7F085094 00000000 */ nop -/* 0B9C08 7F085098 45020003 */ bc1fl .Ljp7F0850A8 -/* 0B9C0C 7F08509C 4614003C */ c.lt.s $f0, $f20 -/* 0B9C10 7F0850A0 460C0001 */ sub.s $f0, $f0, $f12 -/* 0B9C14 7F0850A4 4614003C */ c.lt.s $f0, $f20 -.Ljp7F0850A8: -/* 0B9C18 7F0850A8 00000000 */ nop -/* 0B9C1C 7F0850AC 45020003 */ bc1fl .Ljp7F0850BC -/* 0B9C20 7F0850B0 8D050488 */ lw $a1, 0x488($t0) -/* 0B9C24 7F0850B4 460C0000 */ add.s $f0, $f0, $f12 -/* 0B9C28 7F0850B8 8D050488 */ lw $a1, 0x488($t0) -.Ljp7F0850BC: -/* 0B9C2C 7F0850BC 44060000 */ mfc1 $a2, $f0 -/* 0B9C30 7F0850C0 E7A20358 */ swc1 $f2, 0x358($sp) -/* 0B9C34 7F0850C4 E7A0035C */ swc1 $f0, 0x35c($sp) -/* 0B9C38 7F0850C8 0FC1F43B */ jal sub_GAME_7F07CAC8 -/* 0B9C3C 7F0850CC AFAA0010 */ sw $t2, 0x10($sp) -/* 0B9C40 7F0850D0 50400007 */ beql $v0, $zero, .Ljp7F0850F0 -/* 0B9C44 7F0850D4 3C01BF80 */ lui $at, 0xbf80 -/* 0B9C48 7F0850D8 C7A4035C */ lwc1 $f4, 0x35c($sp) -/* 0B9C4C 7F0850DC 3C018003 */ li $at, 0x80030000 # -0.000000 -/* 0B9C50 7F0850E0 E42464A4 */ swc1 $f4, %lo(D_80036464)($at) -/* 0B9C54 7F0850E4 100000CB */ b .Ljp7F085414 -/* 0B9C58 7F0850E8 8E280000 */ lw $t0, ($s1) -/* 0B9C5C 7F0850EC 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -.Ljp7F0850F0: -/* 0B9C60 7F0850F0 44815000 */ mtc1 $at, $f10 -/* 0B9C64 7F0850F4 44813000 */ mtc1 $at, $f6 -/* 0B9C68 7F0850F8 27A40348 */ addiu $a0, $sp, 0x348 -/* 0B9C6C 7F0850FC 27A5033C */ addiu $a1, $sp, 0x33c -/* 0B9C70 7F085100 E7AA031C */ swc1 $f10, 0x31c($sp) -/* 0B9C74 7F085104 0FC2CD18 */ jal getCollisionEdge_maybe -/* 0B9C78 7F085108 E7A60304 */ swc1 $f6, 0x304($sp) -/* 0B9C7C 7F08510C C7A8033C */ lwc1 $f8, 0x33c($sp) -/* 0B9C80 7F085110 C7A40348 */ lwc1 $f4, 0x348($sp) -/* 0B9C84 7F085114 C7AA0344 */ lwc1 $f10, 0x344($sp) -/* 0B9C88 7F085118 C7A60350 */ lwc1 $f6, 0x350($sp) -/* 0B9C8C 7F08511C 46044081 */ sub.s $f2, $f8, $f4 -/* 0B9C90 7F085120 46065381 */ sub.s $f14, $f10, $f6 -/* 0B9C94 7F085124 46021202 */ mul.s $f8, $f2, $f2 -/* 0B9C98 7F085128 E7A20338 */ swc1 $f2, 0x338($sp) -/* 0B9C9C 7F08512C 460E7102 */ mul.s $f4, $f14, $f14 -/* 0B9CA0 7F085130 E7AE0334 */ swc1 $f14, 0x334($sp) -/* 0B9CA4 7F085134 0C007E08 */ jal sqrtf -/* 0B9CA8 7F085138 46044300 */ add.s $f12, $f8, $f4 -/* 0B9CAC 7F08513C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0B9CB0 7F085140 44815000 */ mtc1 $at, $f10 -/* 0B9CB4 7F085144 C7A20338 */ lwc1 $f2, 0x338($sp) -/* 0B9CB8 7F085148 C7AE0334 */ lwc1 $f14, 0x334($sp) -/* 0B9CBC 7F08514C 46005403 */ div.s $f16, $f10, $f0 -/* 0B9CC0 7F085150 8E280000 */ lw $t0, ($s1) -/* 0B9CC4 7F085154 C7AA0370 */ lwc1 $f10, 0x370($sp) -/* 0B9CC8 7F085158 46101082 */ mul.s $f2, $f2, $f16 -/* 0B9CCC 7F08515C 00000000 */ nop -/* 0B9CD0 7F085160 46107382 */ mul.s $f14, $f14, $f16 -/* 0B9CD4 7F085164 46001307 */ neg.s $f12, $f2 -/* 0B9CD8 7F085168 E7AC0320 */ swc1 $f12, 0x320($sp) -/* 0B9CDC 7F08516C E7AE0324 */ swc1 $f14, 0x324($sp) -/* 0B9CE0 7F085170 C5060494 */ lwc1 $f6, 0x494($t0) -/* 0B9CE4 7F085174 E7A60048 */ swc1 $f6, 0x48($sp) -/* 0B9CE8 7F085178 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 0B9CEC 7F08517C C508048C */ lwc1 $f8, 0x48c($t0) -/* 0B9CF0 7F085180 460A2181 */ sub.s $f6, $f4, $f10 -/* 0B9CF4 7F085184 E7A80044 */ swc1 $f8, 0x44($sp) -/* 0B9CF8 7F085188 C7A40044 */ lwc1 $f4, 0x44($sp) -/* 0B9CFC 7F08518C C7AA0368 */ lwc1 $f10, 0x368($sp) -/* 0B9D00 7F085190 460C3202 */ mul.s $f8, $f6, $f12 -/* 0B9D04 7F085194 460A2181 */ sub.s $f6, $f4, $f10 -/* 0B9D08 7F085198 460E3102 */ mul.s $f4, $f6, $f14 -/* 0B9D0C 7F08519C 46044480 */ add.s $f18, $f8, $f4 -/* 0B9D10 7F0851A0 4614903C */ c.lt.s $f18, $f20 -/* 0B9D14 7F0851A4 00000000 */ nop -/* 0B9D18 7F0851A8 45000006 */ bc1f .Ljp7F0851C4 -/* 0B9D1C 7F0851AC 00000000 */ nop -/* 0B9D20 7F0851B0 46007287 */ neg.s $f10, $f14 -/* 0B9D24 7F0851B4 46006187 */ neg.s $f6, $f12 -/* 0B9D28 7F0851B8 46009487 */ neg.s $f18, $f18 -/* 0B9D2C 7F0851BC E7AA0324 */ swc1 $f10, 0x324($sp) -/* 0B9D30 7F0851C0 E7A60320 */ swc1 $f6, 0x320($sp) -.Ljp7F0851C4: -/* 0B9D34 7F0851C4 C7A80048 */ lwc1 $f8, 0x48($sp) -/* 0B9D38 7F0851C8 C7A40350 */ lwc1 $f4, 0x350($sp) -/* 0B9D3C 7F0851CC C7A60320 */ lwc1 $f6, 0x320($sp) -/* 0B9D40 7F0851D0 46044281 */ sub.s $f10, $f8, $f4 -/* 0B9D44 7F0851D4 C7A40044 */ lwc1 $f4, 0x44($sp) -/* 0B9D48 7F0851D8 46065202 */ mul.s $f8, $f10, $f6 -/* 0B9D4C 7F0851DC C7AA0348 */ lwc1 $f10, 0x348($sp) -/* 0B9D50 7F0851E0 460A2181 */ sub.s $f6, $f4, $f10 -/* 0B9D54 7F0851E4 C7A40324 */ lwc1 $f4, 0x324($sp) -/* 0B9D58 7F0851E8 46043282 */ mul.s $f10, $f6, $f4 -/* 0B9D5C 7F0851EC 460A4000 */ add.s $f0, $f8, $f10 -/* 0B9D60 7F0851F0 4612003C */ c.lt.s $f0, $f18 -/* 0B9D64 7F0851F4 00000000 */ nop -/* 0B9D68 7F0851F8 45020004 */ bc1fl .Ljp7F08520C -/* 0B9D6C 7F0851FC C7A40368 */ lwc1 $f4, 0x368($sp) -/* 0B9D70 7F085200 46009181 */ sub.s $f6, $f18, $f0 -/* 0B9D74 7F085204 E7A6031C */ swc1 $f6, 0x31c($sp) -/* 0B9D78 7F085208 C7A40368 */ lwc1 $f4, 0x368($sp) -.Ljp7F08520C: -/* 0B9D7C 7F08520C C7A80374 */ lwc1 $f8, 0x374($sp) -/* 0B9D80 7F085210 C7AA0370 */ lwc1 $f10, 0x370($sp) -/* 0B9D84 7F085214 C7A6037C */ lwc1 $f6, 0x37c($sp) -/* 0B9D88 7F085218 46082081 */ sub.s $f2, $f4, $f8 -/* 0B9D8C 7F08521C 46065381 */ sub.s $f14, $f10, $f6 -/* 0B9D90 7F085220 46021102 */ mul.s $f4, $f2, $f2 -/* 0B9D94 7F085224 E7A20338 */ swc1 $f2, 0x338($sp) -/* 0B9D98 7F085228 460E7202 */ mul.s $f8, $f14, $f14 -/* 0B9D9C 7F08522C E7AE0334 */ swc1 $f14, 0x334($sp) -/* 0B9DA0 7F085230 0C007E08 */ jal sqrtf -/* 0B9DA4 7F085234 46082300 */ add.s $f12, $f4, $f8 -/* 0B9DA8 7F085238 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0B9DAC 7F08523C 44815000 */ mtc1 $at, $f10 -/* 0B9DB0 7F085240 C7A20338 */ lwc1 $f2, 0x338($sp) -/* 0B9DB4 7F085244 C7AE0334 */ lwc1 $f14, 0x334($sp) -/* 0B9DB8 7F085248 46005403 */ div.s $f16, $f10, $f0 -/* 0B9DBC 7F08524C 8E280000 */ lw $t0, ($s1) -/* 0B9DC0 7F085250 C7AA0370 */ lwc1 $f10, 0x370($sp) -/* 0B9DC4 7F085254 46101082 */ mul.s $f2, $f2, $f16 -/* 0B9DC8 7F085258 00000000 */ nop -/* 0B9DCC 7F08525C 46107382 */ mul.s $f14, $f14, $f16 -/* 0B9DD0 7F085260 46001307 */ neg.s $f12, $f2 -/* 0B9DD4 7F085264 E7AC0308 */ swc1 $f12, 0x308($sp) -/* 0B9DD8 7F085268 E7AE030C */ swc1 $f14, 0x30c($sp) -/* 0B9DDC 7F08526C C5060494 */ lwc1 $f6, 0x494($t0) -/* 0B9DE0 7F085270 E7A60048 */ swc1 $f6, 0x48($sp) -/* 0B9DE4 7F085274 C7A80048 */ lwc1 $f8, 0x48($sp) -/* 0B9DE8 7F085278 C504048C */ lwc1 $f4, 0x48c($t0) -/* 0B9DEC 7F08527C 460A4181 */ sub.s $f6, $f8, $f10 -/* 0B9DF0 7F085280 E7A40044 */ swc1 $f4, 0x44($sp) -/* 0B9DF4 7F085284 C7A80044 */ lwc1 $f8, 0x44($sp) -/* 0B9DF8 7F085288 C7AA0368 */ lwc1 $f10, 0x368($sp) -/* 0B9DFC 7F08528C 460C3102 */ mul.s $f4, $f6, $f12 -/* 0B9E00 7F085290 460A4181 */ sub.s $f6, $f8, $f10 -/* 0B9E04 7F085294 460E3202 */ mul.s $f8, $f6, $f14 -/* 0B9E08 7F085298 46082480 */ add.s $f18, $f4, $f8 -/* 0B9E0C 7F08529C 4614903C */ c.lt.s $f18, $f20 -/* 0B9E10 7F0852A0 00000000 */ nop -/* 0B9E14 7F0852A4 45000006 */ bc1f .Ljp7F0852C0 -/* 0B9E18 7F0852A8 00000000 */ nop -/* 0B9E1C 7F0852AC 46007407 */ neg.s $f16, $f14 -/* 0B9E20 7F0852B0 46006287 */ neg.s $f10, $f12 -/* 0B9E24 7F0852B4 46009487 */ neg.s $f18, $f18 -/* 0B9E28 7F0852B8 E7AA0308 */ swc1 $f10, 0x308($sp) -/* 0B9E2C 7F0852BC E7B0030C */ swc1 $f16, 0x30c($sp) -.Ljp7F0852C0: -/* 0B9E30 7F0852C0 C7A60048 */ lwc1 $f6, 0x48($sp) -/* 0B9E34 7F0852C4 C7A40350 */ lwc1 $f4, 0x350($sp) -/* 0B9E38 7F0852C8 C7AC0308 */ lwc1 $f12, 0x308($sp) -/* 0B9E3C 7F0852CC C7B0030C */ lwc1 $f16, 0x30c($sp) -/* 0B9E40 7F0852D0 46043201 */ sub.s $f8, $f6, $f4 -/* 0B9E44 7F0852D4 C7A40044 */ lwc1 $f4, 0x44($sp) -/* 0B9E48 7F0852D8 460C4282 */ mul.s $f10, $f8, $f12 -/* 0B9E4C 7F0852DC C7A80348 */ lwc1 $f8, 0x348($sp) -/* 0B9E50 7F0852E0 46082201 */ sub.s $f8, $f4, $f8 -/* 0B9E54 7F0852E4 46104202 */ mul.s $f8, $f8, $f16 -/* 0B9E58 7F0852E8 46085000 */ add.s $f0, $f10, $f8 -/* 0B9E5C 7F0852EC C7AA0344 */ lwc1 $f10, 0x344($sp) -/* 0B9E60 7F0852F0 460A3201 */ sub.s $f8, $f6, $f10 -/* 0B9E64 7F0852F4 C7AA033C */ lwc1 $f10, 0x33c($sp) -/* 0B9E68 7F0852F8 460C4182 */ mul.s $f6, $f8, $f12 -/* 0B9E6C 7F0852FC 460A2201 */ sub.s $f8, $f4, $f10 -/* 0B9E70 7F085300 46104102 */ mul.s $f4, $f8, $f16 -/* 0B9E74 7F085304 46043080 */ add.s $f2, $f6, $f4 -/* 0B9E78 7F085308 4600103C */ c.lt.s $f2, $f0 -/* 0B9E7C 7F08530C 00000000 */ nop -/* 0B9E80 7F085310 45020003 */ bc1fl .Ljp7F085320 -/* 0B9E84 7F085314 4612003C */ c.lt.s $f0, $f18 -/* 0B9E88 7F085318 46001006 */ mov.s $f0, $f2 -/* 0B9E8C 7F08531C 4612003C */ c.lt.s $f0, $f18 -.Ljp7F085320: -/* 0B9E90 7F085320 00000000 */ nop -/* 0B9E94 7F085324 45020004 */ bc1fl .Ljp7F085338 -/* 0B9E98 7F085328 C7A20304 */ lwc1 $f2, 0x304($sp) -/* 0B9E9C 7F08532C 46009081 */ sub.s $f2, $f18, $f0 -/* 0B9EA0 7F085330 E7A20304 */ swc1 $f2, 0x304($sp) -/* 0B9EA4 7F085334 C7A20304 */ lwc1 $f2, 0x304($sp) -.Ljp7F085338: -/* 0B9EA8 7F085338 C7AA031C */ lwc1 $f10, 0x31c($sp) -/* 0B9EAC 7F08533C 4602A03E */ c.le.s $f20, $f2 -/* 0B9EB0 7F085340 00000000 */ nop -/* 0B9EB4 7F085344 4502000D */ bc1fl .Ljp7F08537C -/* 0B9EB8 7F085348 C7A0031C */ lwc1 $f0, 0x31c($sp) -/* 0B9EBC 7F08534C 460A103C */ c.lt.s $f2, $f10 -/* 0B9EC0 7F085350 00000000 */ nop -/* 0B9EC4 7F085354 45030006 */ bc1tl .Ljp7F085370 -/* 0B9EC8 7F085358 E7B00324 */ swc1 $f16, 0x324($sp) -/* 0B9ECC 7F08535C 4614503C */ c.lt.s $f10, $f20 -/* 0B9ED0 7F085360 00000000 */ nop -/* 0B9ED4 7F085364 45020005 */ bc1fl .Ljp7F08537C -/* 0B9ED8 7F085368 C7A0031C */ lwc1 $f0, 0x31c($sp) -/* 0B9EDC 7F08536C E7B00324 */ swc1 $f16, 0x324($sp) -.Ljp7F085370: -/* 0B9EE0 7F085370 E7AC0320 */ swc1 $f12, 0x320($sp) -/* 0B9EE4 7F085374 E7A2031C */ swc1 $f2, 0x31c($sp) -/* 0B9EE8 7F085378 C7A0031C */ lwc1 $f0, 0x31c($sp) -.Ljp7F08537C: -/* 0B9EEC 7F08537C C7A80324 */ lwc1 $f8, 0x324($sp) -/* 0B9EF0 7F085380 4600A03E */ c.le.s $f20, $f0 -/* 0B9EF4 7F085384 00000000 */ nop -/* 0B9EF8 7F085388 45020022 */ bc1fl .Ljp7F085414 -/* 0B9EFC 7F08538C E7B40358 */ swc1 $f20, 0x358($sp) -/* 0B9F00 7F085390 46080182 */ mul.s $f6, $f0, $f8 -/* 0B9F04 7F085394 3C018005 */ lui $at, %hi(D_80055178) # $at, 0x8005 -/* 0B9F08 7F085398 C42451A8 */ lwc1 $f4, %lo(D_80055178)($at) -/* 0B9F0C 7F08539C C7A80320 */ lwc1 $f8, 0x320($sp) -/* 0B9F10 7F0853A0 3C018005 */ lui $at, %hi(D_8005517C) # $at, 0x8005 -/* 0B9F14 7F0853A4 27A403AC */ addiu $a0, $sp, 0x3ac -/* 0B9F18 7F0853A8 24050001 */ li $a1, 1 -/* 0B9F1C 7F0853AC 46043282 */ mul.s $f10, $f6, $f4 -/* 0B9F20 7F0853B0 C42451AC */ lwc1 $f4, %lo(D_8005517C)($at) -/* 0B9F24 7F0853B4 46080182 */ mul.s $f6, $f0, $f8 -/* 0B9F28 7F0853B8 E7AA03AC */ swc1 $f10, 0x3ac($sp) -/* 0B9F2C 7F0853BC 46043282 */ mul.s $f10, $f6, $f4 -/* 0B9F30 7F0853C0 0FC1F7E1 */ jal sub_GAME_7F07D960 -/* 0B9F34 7F0853C4 E7AA03B4 */ swc1 $f10, 0x3b4($sp) -/* 0B9F38 7F0853C8 8E280000 */ lw $t0, ($s1) -/* 0B9F3C 7F0853CC E7B403AC */ swc1 $f20, 0x3ac($sp) -/* 0B9F40 7F0853D0 E7B403B4 */ swc1 $f20, 0x3b4($sp) -/* 0B9F44 7F0853D4 27B90368 */ addiu $t9, $sp, 0x368 -/* 0B9F48 7F0853D8 8D050488 */ lw $a1, 0x488($t0) -/* 0B9F4C 7F0853DC AFB90010 */ sw $t9, 0x10($sp) -/* 0B9F50 7F0853E0 8FA6035C */ lw $a2, 0x35c($sp) -/* 0B9F54 7F0853E4 02003825 */ move $a3, $s0 -/* 0B9F58 7F0853E8 0FC1F43B */ jal sub_GAME_7F07CAC8 -/* 0B9F5C 7F0853EC 2504048C */ addiu $a0, $t0, 0x48c -/* 0B9F60 7F0853F0 10400004 */ beqz $v0, .Ljp7F085404 -/* 0B9F64 7F0853F4 C7A8035C */ lwc1 $f8, 0x35c($sp) -/* 0B9F68 7F0853F8 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0B9F6C 7F0853FC 10000002 */ b .Ljp7F085408 -/* 0B9F70 7F085400 E42864A4 */ swc1 $f8, %lo(D_80036464)($at) -.Ljp7F085404: -/* 0B9F74 7F085404 E7B40358 */ swc1 $f20, 0x358($sp) -.Ljp7F085408: -/* 0B9F78 7F085408 10000002 */ b .Ljp7F085414 -/* 0B9F7C 7F08540C 8E280000 */ lw $t0, ($s1) -/* 0B9F80 7F085410 E7B40358 */ swc1 $f20, 0x358($sp) -.Ljp7F085414: -/* 0B9F84 7F085414 3C018005 */ lui $at, %hi(D_80055180) # $at, 0x8005 -/* 0B9F88 7F085418 C42E51B0 */ lwc1 $f14, %lo(D_80055180)($at) -/* 0B9F8C 7F08541C 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 -/* 0B9F90 7F085420 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 -/* 0B9F94 7F085424 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 -/* 0B9F98 7F085428 C42464C8 */ lwc1 $f4, %lo(D_80036488)($at) -/* 0B9F9C 7F08542C C4660000 */ lwc1 $f6, ($v1) -/* 0B9FA0 7F085430 3C078003 */ lui $a3, %hi(D_80036474) # $a3, 0x8003 -/* 0B9FA4 7F085434 24E764B4 */ addiu $a3, %lo(D_80036474) # addiu $a3, $a3, 0x64b4 -/* 0B9FA8 7F085438 46043280 */ add.s $f10, $f6, $f4 -/* 0B9FAC 7F08543C C4EC0000 */ lwc1 $f12, ($a3) -/* 0B9FB0 7F085440 3C014060 */ li $at, 0x40600000 # 3.500000 -/* 0B9FB4 7F085444 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 -/* 0B9FB8 7F085448 E46A0000 */ swc1 $f10, ($v1) -/* 0B9FBC 7F08544C C4600000 */ lwc1 $f0, ($v1) -/* 0B9FC0 7F085450 44815000 */ mtc1 $at, $f10 -/* 0B9FC4 7F085454 46006406 */ mov.s $f16, $f12 -/* 0B9FC8 7F085458 4600703E */ c.le.s $f14, $f0 -/* 0B9FCC 7F08545C 00000000 */ nop -/* 0B9FD0 7F085460 45020005 */ bc1fl .Ljp7F085478 -/* 0B9FD4 7F085464 4614003C */ c.lt.s $f0, $f20 -/* 0B9FD8 7F085468 460E0201 */ sub.s $f8, $f0, $f14 -/* 0B9FDC 7F08546C E4680000 */ swc1 $f8, ($v1) -/* 0B9FE0 7F085470 C4600000 */ lwc1 $f0, ($v1) -/* 0B9FE4 7F085474 4614003C */ c.lt.s $f0, $f20 -.Ljp7F085478: -/* 0B9FE8 7F085478 00000000 */ nop -/* 0B9FEC 7F08547C 45020005 */ bc1fl .Ljp7F085494 -/* 0B9FF0 7F085480 C504014C */ lwc1 $f4, 0x14c($t0) -/* 0B9FF4 7F085484 460E0180 */ add.s $f6, $f0, $f14 -/* 0B9FF8 7F085488 E4660000 */ swc1 $f6, ($v1) -/* 0B9FFC 7F08548C C4600000 */ lwc1 $f0, ($v1) -/* 0BA000 7F085490 C504014C */ lwc1 $f4, 0x14c($t0) -.Ljp7F085494: -/* 0BA004 7F085494 3C018005 */ lui $at, %hi(D_80055184) # $at, 0x8005 -/* 0BA008 7F085498 C42651B4 */ lwc1 $f6, %lo(D_80055184)($at) -/* 0BA00C 7F08549C 460A2202 */ mul.s $f8, $f4, $f10 -/* 0BA010 7F0854A0 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0BA014 7F0854A4 44815000 */ mtc1 $at, $f10 -/* 0BA018 7F0854A8 3C018005 */ lui $at, %hi(D_80055188) # $at, 0x8005 -/* 0BA01C 7F0854AC 46064102 */ mul.s $f4, $f8, $f6 -/* 0BA020 7F0854B0 00000000 */ nop -/* 0BA024 7F0854B4 460A2202 */ mul.s $f8, $f4, $f10 -/* 0BA028 7F0854B8 46004080 */ add.s $f2, $f8, $f0 -/* 0BA02C 7F0854BC 4614103C */ c.lt.s $f2, $f20 -/* 0BA030 7F0854C0 00000000 */ nop -/* 0BA034 7F0854C4 45000002 */ bc1f .Ljp7F0854D0 -/* 0BA038 7F0854C8 00000000 */ nop -/* 0BA03C 7F0854CC 460E1080 */ add.s $f2, $f2, $f14 -.Ljp7F0854D0: -/* 0BA040 7F0854D0 4602703E */ c.le.s $f14, $f2 -/* 0BA044 7F0854D4 00000000 */ nop -/* 0BA048 7F0854D8 45020003 */ bc1fl .Ljp7F0854E8 -/* 0BA04C 7F0854DC 460C1001 */ sub.s $f0, $f2, $f12 -/* 0BA050 7F0854E0 460E1081 */ sub.s $f2, $f2, $f14 -/* 0BA054 7F0854E4 460C1001 */ sub.s $f0, $f2, $f12 -.Ljp7F0854E8: -/* 0BA058 7F0854E8 C42651B8 */ lwc1 $f6, %lo(D_80055188)($at) -/* 0BA05C 7F0854EC 3C018005 */ lui $at, %hi(D_80055190) -/* 0BA060 7F0854F0 4600303E */ c.le.s $f6, $f0 -/* 0BA064 7F0854F4 00000000 */ nop -/* 0BA068 7F0854F8 45000005 */ bc1f .Ljp7F085510 -/* 0BA06C 7F0854FC 00000000 */ nop -/* 0BA070 7F085500 3C018005 */ lui $at, %hi(D_8005518C) # $at, 0x8005 -/* 0BA074 7F085504 C42451BC */ lwc1 $f4, %lo(D_8005518C)($at) -/* 0BA078 7F085508 10000009 */ b .Ljp7F085530 -/* 0BA07C 7F08550C 46041081 */ sub.s $f2, $f2, $f4 -.Ljp7F085510: -/* 0BA080 7F085510 C42A51C0 */ lwc1 $f10, %lo(D_80055190)($at) -/* 0BA084 7F085514 3C018005 */ lui $at, %hi(D_80055194) # $at, 0x8005 -/* 0BA088 7F085518 460A003C */ c.lt.s $f0, $f10 -/* 0BA08C 7F08551C 00000000 */ nop -/* 0BA090 7F085520 45000003 */ bc1f .Ljp7F085530 -/* 0BA094 7F085524 00000000 */ nop -/* 0BA098 7F085528 C42851C4 */ lwc1 $f8, %lo(D_80055194)($at) -/* 0BA09C 7F08552C 46081080 */ add.s $f2, $f2, $f8 -.Ljp7F085530: -/* 0BA0A0 7F085530 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) -/* 0BA0A4 7F085534 00001025 */ move $v0, $zero -/* 0BA0A8 7F085538 3C018005 */ lui $at, %hi(D_80055198) # $at, 0x8005 -/* 0BA0AC 7F08553C 18800013 */ blez $a0, .Ljp7F08558C -/* 0BA0B0 7F085540 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 -/* 0BA0B4 7F085544 C42E51C8 */ lwc1 $f14, %lo(D_80055198)($at) -/* 0BA0B8 7F085548 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 -/* 0BA0BC 7F08554C C60C0000 */ lwc1 $f12, ($s0) -/* 0BA0C0 7F085550 24420001 */ addiu $v0, $v0, 1 -/* 0BA0C4 7F085554 0044082A */ slt $at, $v0, $a0 -/* 0BA0C8 7F085558 460C7482 */ mul.s $f18, $f14, $f12 -/* 0BA0CC 7F08555C 5020000A */ beql $at, $zero, .Ljp7F085588 -/* 0BA0D0 7F085560 46029300 */ add.s $f12, $f18, $f2 -/* 0BA0D4 7F085564 46029300 */ add.s $f12, $f18, $f2 -.Ljp7F085568: -/* 0BA0D8 7F085568 24420001 */ addiu $v0, $v0, 1 -/* 0BA0DC 7F08556C 0044082A */ slt $at, $v0, $a0 -/* 0BA0E0 7F085570 E60C0000 */ swc1 $f12, ($s0) -/* 0BA0E4 7F085574 C60C0000 */ lwc1 $f12, ($s0) -/* 0BA0E8 7F085578 460C7482 */ mul.s $f18, $f14, $f12 -/* 0BA0EC 7F08557C 5420FFFA */ bnezl $at, .Ljp7F085568 -/* 0BA0F0 7F085580 46029300 */ add.s $f12, $f18, $f2 -/* 0BA0F4 7F085584 46029300 */ add.s $f12, $f18, $f2 -.Ljp7F085588: -/* 0BA0F8 7F085588 E60C0000 */ swc1 $f12, ($s0) -.Ljp7F08558C: -/* 0BA0FC 7F08558C 3C108003 */ lui $s0, %hi(D_80036478) # $s0, 0x8003 -/* 0BA100 7F085590 261064B8 */ addiu $s0, %lo(D_80036478) # addiu $s0, $s0, 0x64b8 -/* 0BA104 7F085594 3C018005 */ lui $at, %hi(D_8005519C) # $at, 0x8005 -/* 0BA108 7F085598 C42051CC */ lwc1 $f0, %lo(D_8005519C)($at) -/* 0BA10C 7F08559C C6080000 */ lwc1 $f8, ($s0) -/* 0BA110 7F0855A0 3C018005 */ lui $at, %hi(D_800551A0) # $at, 0x8005 -/* 0BA114 7F0855A4 C42251D0 */ lwc1 $f2, %lo(D_800551A0)($at) -/* 0BA118 7F0855A8 46004182 */ mul.s $f6, $f8, $f0 -/* 0BA11C 7F0855AC 2504048C */ addiu $a0, $t0, 0x48c -/* 0BA120 7F0855B0 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 -/* 0BA124 7F0855B4 E4E60000 */ swc1 $f6, ($a3) -/* 0BA128 7F0855B8 C4EC0000 */ lwc1 $f12, ($a3) -/* 0BA12C 7F0855BC 460C103E */ c.le.s $f2, $f12 -/* 0BA130 7F0855C0 00000000 */ nop -/* 0BA134 7F0855C4 45020007 */ bc1fl .Ljp7F0855E4 -/* 0BA138 7F0855C8 4614603C */ c.lt.s $f12, $f20 -/* 0BA13C 7F0855CC 46026101 */ sub.s $f4, $f12, $f2 -/* 0BA140 7F0855D0 E4E40000 */ swc1 $f4, ($a3) -/* 0BA144 7F0855D4 C4EC0000 */ lwc1 $f12, ($a3) -/* 0BA148 7F0855D8 46006283 */ div.s $f10, $f12, $f0 -/* 0BA14C 7F0855DC E60A0000 */ swc1 $f10, ($s0) -/* 0BA150 7F0855E0 4614603C */ c.lt.s $f12, $f20 -.Ljp7F0855E4: -/* 0BA154 7F0855E4 00000000 */ nop -/* 0BA158 7F0855E8 45020007 */ bc1fl .Ljp7F085608 -/* 0BA15C 7F0855EC 8D050488 */ lw $a1, 0x488($t0) -/* 0BA160 7F0855F0 46026200 */ add.s $f8, $f12, $f2 -/* 0BA164 7F0855F4 E4E80000 */ swc1 $f8, ($a3) -/* 0BA168 7F0855F8 C4E60000 */ lwc1 $f6, ($a3) -/* 0BA16C 7F0855FC 46003103 */ div.s $f4, $f6, $f0 -/* 0BA170 7F085600 E6040000 */ swc1 $f4, ($s0) -/* 0BA174 7F085604 8D050488 */ lw $a1, 0x488($t0) -.Ljp7F085608: -/* 0BA178 7F085608 E7B00354 */ swc1 $f16, 0x354($sp) -/* 0BA17C 7F08560C 0FC1F4F3 */ jal sub_GAME_7F07CDA8 -/* 0BA180 7F085610 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) -/* 0BA184 7F085614 3C038003 */ lui $v1, %hi(D_80036484) # $v1, 0x8003 -/* 0BA188 7F085618 3C018005 */ lui $at, %hi(D_800551A8) # $at, 0x8005 -/* 0BA18C 7F08561C C42E51D8 */ lwc1 $f14, %lo(D_800551A8)($at) -/* 0BA190 7F085620 246364C4 */ addiu $v1, %lo(D_80036484) # addiu $v1, $v1, 0x64c4 -/* 0BA194 7F085624 14400009 */ bnez $v0, .Ljp7F08564C -/* 0BA198 7F085628 C7B00354 */ lwc1 $f16, 0x354($sp) -/* 0BA19C 7F08562C 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 -/* 0BA1A0 7F085630 E43064B4 */ swc1 $f16, %lo(D_80036474)($at) -/* 0BA1A4 7F085634 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) -/* 0BA1A8 7F085638 3C018005 */ lui $at, %hi(D_800551AC) # $at, 0x8005 -/* 0BA1AC 7F08563C C42851DC */ lwc1 $f8, %lo(D_800551AC)($at) -/* 0BA1B0 7F085640 E4700000 */ swc1 $f16, ($v1) -/* 0BA1B4 7F085644 46085183 */ div.s $f6, $f10, $f8 -/* 0BA1B8 7F085648 E6060000 */ swc1 $f6, ($s0) -.Ljp7F08564C: -/* 0BA1BC 7F08564C 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 -/* 0BA1C0 7F085650 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) -/* 0BA1C4 7F085654 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 -/* 0BA1C8 7F085658 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 -/* 0BA1CC 7F08565C 1060002F */ beqz $v1, .Ljp7F08571C -/* 0BA1D0 7F085660 27B002B4 */ addiu $s0, $sp, 0x2b4 -/* 0BA1D4 7F085664 8C6C0004 */ lw $t4, 4($v1) -/* 0BA1D8 7F085668 C4440000 */ lwc1 $f4, ($v0) -/* 0BA1DC 7F08566C C44A0008 */ lwc1 $f10, 8($v0) -/* 0BA1E0 7F085670 E7B402F8 */ swc1 $f20, 0x2f8($sp) -/* 0BA1E4 7F085674 C7AC0358 */ lwc1 $f12, 0x358($sp) -/* 0BA1E8 7F085678 02002825 */ move $a1, $s0 -/* 0BA1EC 7F08567C AFAC0300 */ sw $t4, 0x300($sp) -/* 0BA1F0 7F085680 E7A402F4 */ swc1 $f4, 0x2f4($sp) -/* 0BA1F4 7F085684 0FC162C7 */ jal matrix_4x4_set_rotation_around_y -/* 0BA1F8 7F085688 E7AA02FC */ swc1 $f10, 0x2fc($sp) -/* 0BA1FC 7F08568C 02002025 */ move $a0, $s0 -/* 0BA200 7F085690 0FC1623E */ jal matrix_4x4_rotate_vector_in_place -/* 0BA204 7F085694 27A502F4 */ addiu $a1, $sp, 0x2f4 -/* 0BA208 7F085698 0FC1F376 */ jal sub_GAME_7F07C7B4 -/* 0BA20C 7F08569C 00000000 */ nop -/* 0BA210 7F0856A0 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 -/* 0BA214 7F0856A4 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 -/* 0BA218 7F0856A8 C4480000 */ lwc1 $f8, ($v0) -/* 0BA21C 7F0856AC C7A602F4 */ lwc1 $f6, 0x2f4($sp) -/* 0BA220 7F0856B0 C44A0008 */ lwc1 $f10, 8($v0) -/* 0BA224 7F0856B4 3C018005 */ lui $at, %hi(D_800551BC) # $at, 0x8005 -/* 0BA228 7F0856B8 46064101 */ sub.s $f4, $f8, $f6 -/* 0BA22C 7F0856BC C7A802FC */ lwc1 $f8, 0x2fc($sp) -/* 0BA230 7F0856C0 E7B402F8 */ swc1 $f20, 0x2f8($sp) -/* 0BA234 7F0856C4 02002825 */ move $a1, $s0 -/* 0BA238 7F0856C8 E7A402F4 */ swc1 $f4, 0x2f4($sp) -/* 0BA23C 7F0856CC 46085181 */ sub.s $f6, $f10, $f8 -/* 0BA240 7F0856D0 C42451EC */ lwc1 $f4, %lo(D_800551BC)($at) -/* 0BA244 7F0856D4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BA248 7F0856D8 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) -/* 0BA24C 7F0856DC E7A602FC */ swc1 $f6, 0x2fc($sp) -/* 0BA250 7F0856E0 0FC162C7 */ jal matrix_4x4_set_rotation_around_y -/* 0BA254 7F0856E4 460A2301 */ sub.s $f12, $f4, $f10 -/* 0BA258 7F0856E8 8FAB0300 */ lw $t3, 0x300($sp) -/* 0BA25C 7F0856EC 02002825 */ move $a1, $s0 -/* 0BA260 7F0856F0 8D6D0014 */ lw $t5, 0x14($t3) -/* 0BA264 7F0856F4 0FC163E7 */ jal matrix_scalar_multiply -/* 0BA268 7F0856F8 C5AC0014 */ lwc1 $f12, 0x14($t5) -/* 0BA26C 7F0856FC 02002025 */ move $a0, $s0 -/* 0BA270 7F085700 0FC1623E */ jal matrix_4x4_rotate_vector_in_place -/* 0BA274 7F085704 27A502F4 */ addiu $a1, $sp, 0x2f4 -/* 0BA278 7F085708 27A402F4 */ addiu $a0, $sp, 0x2f4 -/* 0BA27C 7F08570C 0FC1F7E1 */ jal sub_GAME_7F07D960 -/* 0BA280 7F085710 24050001 */ li $a1, 1 -/* 0BA284 7F085714 3C018005 */ lui $at, %hi(D_800551CC) # $at, 0x8005 -/* 0BA288 7F085718 C42E51FC */ lwc1 $f14, %lo(D_800551CC)($at) -.Ljp7F08571C: -/* 0BA28C 7F08571C 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 -/* 0BA290 7F085720 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) -/* 0BA294 7F085724 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 -/* 0BA298 7F085728 C42C64B4 */ lwc1 $f12, %lo(D_80036474)($at) -/* 0BA29C 7F08572C 5880001B */ blezl $a0, .Ljp7F08579C -/* 0BA2A0 7F085730 3C0143B4 */ lui $at, 0x43b4 -/* 0BA2A4 7F085734 18800018 */ blez $a0, .Ljp7F085798 -/* 0BA2A8 7F085738 00001025 */ move $v0, $zero -/* 0BA2AC 7F08573C 3C018003 */ lui $at, %hi(D_80036488) # $at, 0x8003 -/* 0BA2B0 7F085740 C42864C8 */ lwc1 $f8, %lo(D_80036488)($at) -/* 0BA2B4 7F085744 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BA2B8 7F085748 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) -/* 0BA2BC 7F08574C 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 -/* 0BA2C0 7F085750 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc -/* 0BA2C4 7F085754 46064003 */ div.s $f0, $f8, $f6 -/* 0BA2C8 7F085758 C4700000 */ lwc1 $f16, ($v1) -/* 0BA2CC 7F08575C 24420001 */ addiu $v0, $v0, 1 -/* 0BA2D0 7F085760 0044082A */ slt $at, $v0, $a0 -/* 0BA2D4 7F085764 46107482 */ mul.s $f18, $f14, $f16 -/* 0BA2D8 7F085768 5020000A */ beql $at, $zero, .Ljp7F085794 -/* 0BA2DC 7F08576C 46009400 */ add.s $f16, $f18, $f0 -/* 0BA2E0 7F085770 46009400 */ add.s $f16, $f18, $f0 -.Ljp7F085774: -/* 0BA2E4 7F085774 24420001 */ addiu $v0, $v0, 1 -/* 0BA2E8 7F085778 0044082A */ slt $at, $v0, $a0 -/* 0BA2EC 7F08577C E4700000 */ swc1 $f16, ($v1) -/* 0BA2F0 7F085780 C4700000 */ lwc1 $f16, ($v1) -/* 0BA2F4 7F085784 46107482 */ mul.s $f18, $f14, $f16 -/* 0BA2F8 7F085788 5420FFFA */ bnezl $at, .Ljp7F085774 -/* 0BA2FC 7F08578C 46009400 */ add.s $f16, $f18, $f0 -/* 0BA300 7F085790 46009400 */ add.s $f16, $f18, $f0 -.Ljp7F085794: -/* 0BA304 7F085794 E4700000 */ swc1 $f16, ($v1) -.Ljp7F085798: -/* 0BA308 7F085798 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -.Ljp7F08579C: -/* 0BA30C 7F08579C 44817000 */ mtc1 $at, $f14 -/* 0BA310 7F0857A0 3C038003 */ lui $v1, %hi(D_8003647C) # $v1, 0x8003 -/* 0BA314 7F0857A4 246364BC */ addiu $v1, %lo(D_8003647C) # addiu $v1, $v1, 0x64bc -/* 0BA318 7F0857A8 3C018005 */ lui $at, %hi(D_800551D0) # $at, 0x8005 -/* 0BA31C 7F0857AC C4245200 */ lwc1 $f4, %lo(D_800551D0)($at) -/* 0BA320 7F0857B0 C4660000 */ lwc1 $f6, ($v1) -/* 0BA324 7F0857B4 8E280000 */ lw $t0, ($s1) -/* 0BA328 7F0857B8 3C014060 */ li $at, 0x40600000 # 3.500000 -/* 0BA32C 7F0857BC 46043082 */ mul.s $f2, $f6, $f4 -/* 0BA330 7F0857C0 44814000 */ mtc1 $at, $f8 -/* 0BA334 7F0857C4 C50A014C */ lwc1 $f10, 0x14c($t0) -/* 0BA338 7F0857C8 3C018005 */ lui $at, %hi(D_800551D4) # $at, 0x8005 -/* 0BA33C 7F0857CC C4245204 */ lwc1 $f4, %lo(D_800551D4)($at) -/* 0BA340 7F0857D0 46085182 */ mul.s $f6, $f10, $f8 -/* 0BA344 7F0857D4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0BA348 7F0857D8 44814000 */ mtc1 $at, $f8 -/* 0BA34C 7F0857DC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BA350 7F0857E0 46043282 */ mul.s $f10, $f6, $f4 -/* 0BA354 7F0857E4 C42464A4 */ lwc1 $f4, %lo(D_80036464)($at) -/* 0BA358 7F0857E8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0BA35C 7F0857EC 46085182 */ mul.s $f6, $f10, $f8 -/* 0BA360 7F0857F0 460C2280 */ add.s $f10, $f4, $f12 -/* 0BA364 7F0857F4 44812000 */ mtc1 $at, $f4 -/* 0BA368 7F0857F8 3C018005 */ lui $at, %hi(D_800551D8) # $at, 0x8005 -/* 0BA36C 7F0857FC 46065200 */ add.s $f8, $f10, $f6 -/* 0BA370 7F085800 46041282 */ mul.s $f10, $f2, $f4 -/* 0BA374 7F085804 460A4180 */ add.s $f6, $f8, $f10 -/* 0BA378 7F085808 C4285208 */ lwc1 $f8, %lo(D_800551D8)($at) -/* 0BA37C 7F08580C 460E3102 */ mul.s $f4, $f6, $f14 -/* 0BA380 7F085810 46082283 */ div.s $f10, $f4, $f8 -/* 0BA384 7F085814 E50A0148 */ swc1 $f10, 0x148($t0) -/* 0BA388 7F085818 8E280000 */ lw $t0, ($s1) -/* 0BA38C 7F08581C C5000148 */ lwc1 $f0, 0x148($t0) -/* 0BA390 7F085820 4614003C */ c.lt.s $f0, $f20 -/* 0BA394 7F085824 00000000 */ nop -/* 0BA398 7F085828 4502000A */ bc1fl .Ljp7F085854 -/* 0BA39C 7F08582C 4600703E */ c.le.s $f14, $f0 -/* 0BA3A0 7F085830 460E0180 */ add.s $f6, $f0, $f14 -.Ljp7F085834: -/* 0BA3A4 7F085834 E5060148 */ swc1 $f6, 0x148($t0) -/* 0BA3A8 7F085838 8E280000 */ lw $t0, ($s1) -/* 0BA3AC 7F08583C C5000148 */ lwc1 $f0, 0x148($t0) -/* 0BA3B0 7F085840 4614003C */ c.lt.s $f0, $f20 -/* 0BA3B4 7F085844 00000000 */ nop -/* 0BA3B8 7F085848 4503FFFA */ bc1tl .Ljp7F085834 -/* 0BA3BC 7F08584C 460E0180 */ add.s $f6, $f0, $f14 -/* 0BA3C0 7F085850 4600703E */ c.le.s $f14, $f0 -.Ljp7F085854: -/* 0BA3C4 7F085854 00000000 */ nop -/* 0BA3C8 7F085858 45000009 */ bc1f .Ljp7F085880 -/* 0BA3CC 7F08585C 00000000 */ nop -/* 0BA3D0 7F085860 460E0101 */ sub.s $f4, $f0, $f14 -.Ljp7F085864: -/* 0BA3D4 7F085864 E5040148 */ swc1 $f4, 0x148($t0) -/* 0BA3D8 7F085868 8E280000 */ lw $t0, ($s1) -/* 0BA3DC 7F08586C C5000148 */ lwc1 $f0, 0x148($t0) -/* 0BA3E0 7F085870 4600703E */ c.le.s $f14, $f0 -/* 0BA3E4 7F085874 00000000 */ nop -/* 0BA3E8 7F085878 4503FFFA */ bc1tl .Ljp7F085864 -/* 0BA3EC 7F08587C 460E0101 */ sub.s $f4, $f0, $f14 -.Ljp7F085880: -/* 0BA3F0 7F085880 10000022 */ b .Ljp7F08590C -/* 0BA3F4 7F085884 00000000 */ nop -.Ljp7F085888: -/* 0BA3F8 7F085888 C508014C */ lwc1 $f8, 0x14c($t0) -/* 0BA3FC 7F08588C C52A0000 */ lwc1 $f10, ($t1) -/* 0BA400 7F085890 3C014060 */ li $at, 0x40600000 # 3.500000 -/* 0BA404 7F085894 44812000 */ mtc1 $at, $f4 -/* 0BA408 7F085898 460A4182 */ mul.s $f6, $f8, $f10 -/* 0BA40C 7F08589C C50A0148 */ lwc1 $f10, 0x148($t0) -/* 0BA410 7F0858A0 3C0143B4 */ lui $at, 0x43b4 -/* 0BA414 7F0858A4 46043202 */ mul.s $f8, $f6, $f4 -/* 0BA418 7F0858A8 46085000 */ add.s $f0, $f10, $f8 -/* 0BA41C 7F0858AC 4614003C */ c.lt.s $f0, $f20 -/* 0BA420 7F0858B0 00000000 */ nop -/* 0BA424 7F0858B4 45020009 */ bc1fl .Ljp7F0858DC -/* 0BA428 7F0858B8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0BA42C 7F0858BC 44817000 */ mtc1 $at, $f14 -/* 0BA430 7F0858C0 00000000 */ nop -/* 0BA434 7F0858C4 460E0000 */ add.s $f0, $f0, $f14 -.Ljp7F0858C8: -/* 0BA438 7F0858C8 4614003C */ c.lt.s $f0, $f20 -/* 0BA43C 7F0858CC 00000000 */ nop -/* 0BA440 7F0858D0 4503FFFD */ bc1tl .Ljp7F0858C8 -/* 0BA444 7F0858D4 460E0000 */ add.s $f0, $f0, $f14 -/* 0BA448 7F0858D8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -.Ljp7F0858DC: -/* 0BA44C 7F0858DC 44817000 */ mtc1 $at, $f14 -/* 0BA450 7F0858E0 00000000 */ nop -/* 0BA454 7F0858E4 4600703E */ c.le.s $f14, $f0 -/* 0BA458 7F0858E8 00000000 */ nop -/* 0BA45C 7F0858EC 45020007 */ bc1fl .Ljp7F08590C -/* 0BA460 7F0858F0 E5000148 */ swc1 $f0, 0x148($t0) -/* 0BA464 7F0858F4 460E0001 */ sub.s $f0, $f0, $f14 -.Ljp7F0858F8: -/* 0BA468 7F0858F8 4600703E */ c.le.s $f14, $f0 -/* 0BA46C 7F0858FC 00000000 */ nop -/* 0BA470 7F085900 4503FFFD */ bc1tl .Ljp7F0858F8 -/* 0BA474 7F085904 460E0001 */ sub.s $f0, $f0, $f14 -/* 0BA478 7F085908 E5000148 */ swc1 $f0, 0x148($t0) -.Ljp7F08590C: -/* 0BA47C 7F08590C 0FC20768 */ jal sub_GAME_7F081790 -/* 0BA480 7F085910 00000000 */ nop -/* 0BA484 7F085914 0FC1E7F8 */ jal currentPlayerGetCrouchPos -/* 0BA488 7F085918 E7B402AC */ swc1 $f20, 0x2ac($sp) -/* 0BA48C 7F08591C 14400004 */ bnez $v0, .Ljp7F085930 -/* 0BA490 7F085920 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 -/* 0BA494 7F085924 44813000 */ mtc1 $at, $f6 -/* 0BA498 7F085928 1000000B */ b .Ljp7F085958 -/* 0BA49C 7F08592C E7A602AC */ swc1 $f6, 0x2ac($sp) -.Ljp7F085930: -/* 0BA4A0 7F085930 0FC1E7F8 */ jal currentPlayerGetCrouchPos -/* 0BA4A4 7F085934 00000000 */ nop -/* 0BA4A8 7F085938 24010001 */ li $at, 1 -/* 0BA4AC 7F08593C 14410004 */ bne $v0, $at, .Ljp7F085950 -/* 0BA4B0 7F085940 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 0BA4B4 7F085944 44812000 */ mtc1 $at, $f4 -/* 0BA4B8 7F085948 10000003 */ b .Ljp7F085958 -/* 0BA4BC 7F08594C E7A402AC */ swc1 $f4, 0x2ac($sp) -.Ljp7F085950: -/* 0BA4C0 7F085950 0FC1E7F8 */ jal currentPlayerGetCrouchPos -/* 0BA4C4 7F085954 00000000 */ nop -.Ljp7F085958: -/* 0BA4C8 7F085958 8E280000 */ lw $t0, ($s1) -/* 0BA4CC 7F08595C C7AA02AC */ lwc1 $f10, 0x2ac($sp) -/* 0BA4D0 7F085960 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0BA4D4 7F085964 C50000A0 */ lwc1 $f0, 0xa0($t0) -/* 0BA4D8 7F085968 250400A0 */ addiu $a0, $t0, 0xa0 -/* 0BA4DC 7F08596C 250600A4 */ addiu $a2, $t0, 0xa4 -/* 0BA4E0 7F085970 46005032 */ c.eq.s $f10, $f0 -/* 0BA4E4 7F085974 00000000 */ nop -/* 0BA4E8 7F085978 4503000C */ bc1tl .Ljp7F0859AC -/* 0BA4EC 7F08597C C7A602AC */ lwc1 $f6, 0x2ac($sp) -/* 0BA4F0 7F085980 44810000 */ mtc1 $at, $f0 -/* 0BA4F4 7F085984 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 0BA4F8 7F085988 44814000 */ mtc1 $at, $f8 -/* 0BA4FC 7F08598C 44055000 */ mfc1 $a1, $f10 -/* 0BA500 7F085990 44070000 */ mfc1 $a3, $f0 -/* 0BA504 7F085994 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0BA508 7F085998 0FC10C86 */ jal sub_GAME_7F042F18 -/* 0BA50C 7F08599C E7A80014 */ swc1 $f8, 0x14($sp) -/* 0BA510 7F0859A0 8E280000 */ lw $t0, ($s1) -/* 0BA514 7F0859A4 C50000A0 */ lwc1 $f0, 0xa0($t0) -/* 0BA518 7F0859A8 C7A602AC */ lwc1 $f6, 0x2ac($sp) -.Ljp7F0859AC: -/* 0BA51C 7F0859AC 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 -/* 0BA520 7F0859B0 3C0E8003 */ lui $t6, %hi(in_tank_flag) # $t6, 0x8003 -/* 0BA524 7F0859B4 46003032 */ c.eq.s $f6, $f0 -/* 0BA528 7F0859B8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 -/* 0BA52C 7F0859BC 45000002 */ bc1f .Ljp7F0859C8 -/* 0BA530 7F0859C0 00000000 */ nop -/* 0BA534 7F0859C4 E51400A4 */ swc1 $f20, 0xa4($t0) -.Ljp7F0859C8: -/* 0BA538 7F0859C8 8DCE6488 */ lw $t6, %lo(in_tank_flag)($t6) -/* 0BA53C 7F0859CC 24010001 */ li $at, 1 -/* 0BA540 7F0859D0 15C10209 */ bne $t6, $at, .Ljp7F0861F8 -/* 0BA544 7F0859D4 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B8) # $v0, 0x8008 -/* 0BA548 7F0859D8 8C4299F8 */ lw $v0, %lo(dword_CODE_bss_800799B8)($v0) -/* 0BA54C 7F0859DC 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 -/* 0BA550 7F0859E0 24010001 */ li $at, 1 -/* 0BA554 7F0859E4 144000BF */ bnez $v0, .Ljp7F085CE4 -/* 0BA558 7F0859E8 00000000 */ nop -/* 0BA55C 7F0859EC 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) -/* 0BA560 7F0859F0 3C018005 */ lui $at, %hi(D_800551DC) # $at, 0x8005 -/* 0BA564 7F0859F4 27A50268 */ addiu $a1, $sp, 0x268 -/* 0BA568 7F0859F8 106000AD */ beqz $v1, .Ljp7F085CB0 -/* 0BA56C 7F0859FC 00000000 */ nop -/* 0BA570 7F085A00 C424520C */ lwc1 $f4, %lo(D_800551DC)($at) -/* 0BA574 7F085A04 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BA578 7F085A08 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) -/* 0BA57C 7F085A0C 8C700004 */ lw $s0, 4($v1) -/* 0BA580 7F085A10 0FC162C7 */ jal matrix_4x4_set_rotation_around_y -/* 0BA584 7F085A14 460A2301 */ sub.s $f12, $f4, $f10 -/* 0BA588 7F085A18 8E180014 */ lw $t8, 0x14($s0) -/* 0BA58C 7F085A1C 27A50268 */ addiu $a1, $sp, 0x268 -/* 0BA590 7F085A20 0FC163E7 */ jal matrix_scalar_multiply -/* 0BA594 7F085A24 C70C0014 */ lwc1 $f12, 0x14($t8) -/* 0BA598 7F085A28 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799A8) # $v0, 0x8008 -/* 0BA59C 7F085A2C 244299E8 */ addiu $v0, %lo(flt_CODE_bss_800799A8) # addiu $v0, $v0, -0x6618 -/* 0BA5A0 7F085A30 C4480000 */ lwc1 $f8, ($v0) -/* 0BA5A4 7F085A34 C4460004 */ lwc1 $f6, 4($v0) -/* 0BA5A8 7F085A38 C4440008 */ lwc1 $f4, 8($v0) -/* 0BA5AC 7F085A3C 27A40268 */ addiu $a0, $sp, 0x268 -/* 0BA5B0 7F085A40 27A5025C */ addiu $a1, $sp, 0x25c -/* 0BA5B4 7F085A44 E7A8025C */ swc1 $f8, 0x25c($sp) -/* 0BA5B8 7F085A48 E7A60260 */ swc1 $f6, 0x260($sp) -/* 0BA5BC 7F085A4C 0FC1623E */ jal matrix_4x4_rotate_vector_in_place -/* 0BA5C0 7F085A50 E7A40264 */ swc1 $f4, 0x264($sp) -/* 0BA5C4 7F085A54 C7AA025C */ lwc1 $f10, 0x25c($sp) -/* 0BA5C8 7F085A58 C6080058 */ lwc1 $f8, 0x58($s0) -/* 0BA5CC 7F085A5C C7A40260 */ lwc1 $f4, 0x260($sp) -/* 0BA5D0 7F085A60 3C01C1A0 */ li $at, 0xC1A00000 # -20.000000 -/* 0BA5D4 7F085A64 46085180 */ add.s $f6, $f10, $f8 -/* 0BA5D8 7F085A68 44810000 */ mtc1 $at, $f0 -/* 0BA5DC 7F085A6C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0BA5E0 7F085A70 44817000 */ mtc1 $at, $f14 -/* 0BA5E4 7F085A74 E7A6025C */ swc1 $f6, 0x25c($sp) -/* 0BA5E8 7F085A78 C60A005C */ lwc1 $f10, 0x5c($s0) -/* 0BA5EC 7F085A7C C7A60264 */ lwc1 $f6, 0x264($sp) -/* 0BA5F0 7F085A80 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BA5F4 7F085A84 460A2200 */ add.s $f8, $f4, $f10 -/* 0BA5F8 7F085A88 8E2F0000 */ lw $t7, ($s1) -/* 0BA5FC 7F085A8C E7A80260 */ swc1 $f8, 0x260($sp) -/* 0BA600 7F085A90 C6040060 */ lwc1 $f4, 0x60($s0) -/* 0BA604 7F085A94 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) -/* 0BA608 7F085A98 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 -/* 0BA60C 7F085A9C 46043280 */ add.s $f10, $f6, $f4 -/* 0BA610 7F085AA0 C42664B4 */ lwc1 $f6, %lo(D_80036474)($at) -/* 0BA614 7F085AA4 3C018005 */ lui $at, %hi(D_800551E0) # $at, 0x8005 -/* 0BA618 7F085AA8 46064100 */ add.s $f4, $f8, $f6 -/* 0BA61C 7F085AAC E7AA0264 */ swc1 $f10, 0x264($sp) -/* 0BA620 7F085AB0 C5E20158 */ lwc1 $f2, 0x158($t7) -/* 0BA624 7F085AB4 C4285210 */ lwc1 $f8, %lo(D_800551E0)($at) -/* 0BA628 7F085AB8 460E2282 */ mul.s $f10, $f4, $f14 -/* 0BA62C 7F085ABC 4600103C */ c.lt.s $f2, $f0 -/* 0BA630 7F085AC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA634 7F085AC4 44819000 */ mtc1 $at, $f18 -/* 0BA638 7F085AC8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BA63C 7F085ACC 45000002 */ bc1f .Ljp7F085AD8 -/* 0BA640 7F085AD0 46085403 */ div.s $f16, $f10, $f8 -/* 0BA644 7F085AD4 46000086 */ mov.s $f2, $f0 -.Ljp7F085AD8: -/* 0BA648 7F085AD8 C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) -/* 0BA64C 7F085ADC 3C014234 */ li $at, 0x42340000 # 45.000000 -/* 0BA650 7F085AE0 44812000 */ mtc1 $at, $f4 -/* 0BA654 7F085AE4 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 -/* 0BA658 7F085AE8 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 -/* 0BA65C 7F085AEC 46043283 */ div.s $f10, $f6, $f4 -/* 0BA660 7F085AF0 C6080000 */ lwc1 $f8, ($s0) -/* 0BA664 7F085AF4 3C018005 */ lui $at, %hi(D_800551E4) # $at, 0x8005 -/* 0BA668 7F085AF8 460A4180 */ add.s $f6, $f8, $f10 -/* 0BA66C 7F085AFC E6060000 */ swc1 $f6, ($s0) -/* 0BA670 7F085B00 C6000000 */ lwc1 $f0, ($s0) -/* 0BA674 7F085B04 4600903E */ c.le.s $f18, $f0 -/* 0BA678 7F085B08 00000000 */ nop -/* 0BA67C 7F085B0C 45000003 */ bc1f .Ljp7F085B1C -/* 0BA680 7F085B10 00000000 */ nop -/* 0BA684 7F085B14 E6120000 */ swc1 $f18, ($s0) -/* 0BA688 7F085B18 C6000000 */ lwc1 $f0, ($s0) -.Ljp7F085B1C: -/* 0BA68C 7F085B1C C4245214 */ lwc1 $f4, %lo(D_800551E4)($at) -/* 0BA690 7F085B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0BA694 7F085B24 44815000 */ mtc1 $at, $f10 -/* 0BA698 7F085B28 46040202 */ mul.s $f8, $f0, $f4 -/* 0BA69C 7F085B2C E7A20254 */ swc1 $f2, 0x254($sp) -/* 0BA6A0 7F085B30 E7B00258 */ swc1 $f16, 0x258($sp) -/* 0BA6A4 7F085B34 460A4302 */ mul.s $f12, $f8, $f10 -/* 0BA6A8 7F085B38 0FC160F0 */ jal cosf -/* 0BA6AC 7F085B3C 00000000 */ nop -/* 0BA6B0 7F085B40 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0BA6B4 7F085B44 44817000 */ mtc1 $at, $f14 -/* 0BA6B8 7F085B48 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA6BC 7F085B4C 44813000 */ mtc1 $at, $f6 -/* 0BA6C0 7F085B50 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0BA6C4 7F085B54 44814000 */ mtc1 $at, $f8 -/* 0BA6C8 7F085B58 46060100 */ add.s $f4, $f0, $f6 -/* 0BA6CC 7F085B5C 3C028008 */ lui $v0, %hi(flt_CODE_bss_800799C0) # $v0, 0x8008 -/* 0BA6D0 7F085B60 24429A00 */ addiu $v0, %lo(flt_CODE_bss_800799C0) # addiu $v0, $v0, -0x6600 -/* 0BA6D4 7F085B64 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA6D8 7F085B68 46082282 */ mul.s $f10, $f4, $f8 -/* 0BA6DC 7F085B6C 44813000 */ mtc1 $at, $f6 -/* 0BA6E0 7F085B70 C7A80254 */ lwc1 $f8, 0x254($sp) -/* 0BA6E4 7F085B74 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C8) # $at, 0x8008 -/* 0BA6E8 7F085B78 8E2A0000 */ lw $t2, ($s1) -/* 0BA6EC 7F085B7C C7B00258 */ lwc1 $f16, 0x258($sp) -/* 0BA6F0 7F085B80 3C038008 */ lui $v1, %hi(flt_CODE_bss_800799D0) # $v1, 0x8008 -/* 0BA6F4 7F085B84 E44A0000 */ swc1 $f10, ($v0) -/* 0BA6F8 7F085B88 C4420000 */ lwc1 $f2, ($v0) -/* 0BA6FC 7F085B8C 24639A10 */ addiu $v1, %lo(flt_CODE_bss_800799D0) # addiu $v1, $v1, -0x65f0 -/* 0BA700 7F085B90 46023101 */ sub.s $f4, $f6, $f2 -/* 0BA704 7F085B94 C4269A08 */ lwc1 $f6, %lo(flt_CODE_bss_800799C8)($at) -/* 0BA708 7F085B98 3C018008 */ lui $at, %hi(flt_CODE_bss_800799C4) # $at, 0x8008 -/* 0BA70C 7F085B9C 46082282 */ mul.s $f10, $f4, $f8 -/* 0BA710 7F085BA0 00000000 */ nop -/* 0BA714 7F085BA4 46061102 */ mul.s $f4, $f2, $f6 -/* 0BA718 7F085BA8 460A2200 */ add.s $f8, $f4, $f10 -/* 0BA71C 7F085BAC E5480158 */ swc1 $f8, 0x158($t2) -/* 0BA720 7F085BB0 C4329A04 */ lwc1 $f18, %lo(flt_CODE_bss_800799C4)($at) -/* 0BA724 7F085BB4 3C014334 */ li $at, 0x43340000 # 180.000000 -/* 0BA728 7F085BB8 44813000 */ mtc1 $at, $f6 -/* 0BA72C 7F085BBC 46128301 */ sub.s $f12, $f16, $f18 -/* 0BA730 7F085BC0 3C01C334 */ li $at, 0xC3340000 # -180.000000 -/* 0BA734 7F085BC4 44812000 */ mtc1 $at, $f4 -/* 0BA738 7F085BC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA73C 7F085BCC 460C303C */ c.lt.s $f6, $f12 -/* 0BA740 7F085BD0 44814000 */ mtc1 $at, $f8 -/* 0BA744 7F085BD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA748 7F085BD8 45000002 */ bc1f .Ljp7F085BE4 -/* 0BA74C 7F085BDC 00000000 */ nop -/* 0BA750 7F085BE0 460E8401 */ sub.s $f16, $f16, $f14 -.Ljp7F085BE4: -/* 0BA754 7F085BE4 4604603C */ c.lt.s $f12, $f4 -/* 0BA758 7F085BE8 00000000 */ nop -/* 0BA75C 7F085BEC 45020003 */ bc1fl .Ljp7F085BFC -/* 0BA760 7F085BF0 C4420000 */ lwc1 $f2, ($v0) -/* 0BA764 7F085BF4 460E8400 */ add.s $f16, $f16, $f14 -/* 0BA768 7F085BF8 C4420000 */ lwc1 $f2, ($v0) -.Ljp7F085BFC: -/* 0BA76C 7F085BFC 8E390000 */ lw $t9, ($s1) -/* 0BA770 7F085C00 46024181 */ sub.s $f6, $f8, $f2 -/* 0BA774 7F085C04 46121282 */ mul.s $f10, $f2, $f18 -/* 0BA778 7F085C08 00000000 */ nop -/* 0BA77C 7F085C0C 46103102 */ mul.s $f4, $f6, $f16 -/* 0BA780 7F085C10 46045200 */ add.s $f8, $f10, $f4 -/* 0BA784 7F085C14 44812000 */ mtc1 $at, $f4 -/* 0BA788 7F085C18 E7280148 */ swc1 $f8, 0x148($t9) -/* 0BA78C 7F085C1C 8E280000 */ lw $t0, ($s1) -/* 0BA790 7F085C20 C5000148 */ lwc1 $f0, 0x148($t0) -/* 0BA794 7F085C24 4600703E */ c.le.s $f14, $f0 -/* 0BA798 7F085C28 00000000 */ nop -/* 0BA79C 7F085C2C 45000005 */ bc1f .Ljp7F085C44 -/* 0BA7A0 7F085C30 00000000 */ nop -/* 0BA7A4 7F085C34 460E0181 */ sub.s $f6, $f0, $f14 -/* 0BA7A8 7F085C38 E5060148 */ swc1 $f6, 0x148($t0) -/* 0BA7AC 7F085C3C 8E280000 */ lw $t0, ($s1) -/* 0BA7B0 7F085C40 C5000148 */ lwc1 $f0, 0x148($t0) -.Ljp7F085C44: -/* 0BA7B4 7F085C44 4614003C */ c.lt.s $f0, $f20 -/* 0BA7B8 7F085C48 00000000 */ nop -/* 0BA7BC 7F085C4C 45020005 */ bc1fl .Ljp7F085C64 -/* 0BA7C0 7F085C50 C4420000 */ lwc1 $f2, ($v0) -/* 0BA7C4 7F085C54 460E0280 */ add.s $f10, $f0, $f14 -/* 0BA7C8 7F085C58 E50A0148 */ swc1 $f10, 0x148($t0) -/* 0BA7CC 7F085C5C 8E280000 */ lw $t0, ($s1) -/* 0BA7D0 7F085C60 C4420000 */ lwc1 $f2, ($v0) -.Ljp7F085C64: -/* 0BA7D4 7F085C64 C4680000 */ lwc1 $f8, ($v1) -/* 0BA7D8 7F085C68 C7AA025C */ lwc1 $f10, 0x25c($sp) -/* 0BA7DC 7F085C6C 46022001 */ sub.s $f0, $f4, $f2 -/* 0BA7E0 7F085C70 46081182 */ mul.s $f6, $f2, $f8 -/* 0BA7E4 7F085C74 00000000 */ nop -/* 0BA7E8 7F085C78 460A0102 */ mul.s $f4, $f0, $f10 -/* 0BA7EC 7F085C7C C50A048C */ lwc1 $f10, 0x48c($t0) -/* 0BA7F0 7F085C80 E7B403B0 */ swc1 $f20, 0x3b0($sp) -/* 0BA7F4 7F085C84 46043200 */ add.s $f8, $f6, $f4 -/* 0BA7F8 7F085C88 C4640008 */ lwc1 $f4, 8($v1) -/* 0BA7FC 7F085C8C 460A4181 */ sub.s $f6, $f8, $f10 -/* 0BA800 7F085C90 46041202 */ mul.s $f8, $f2, $f4 -/* 0BA804 7F085C94 C7AA0264 */ lwc1 $f10, 0x264($sp) -/* 0BA808 7F085C98 E7A603AC */ swc1 $f6, 0x3ac($sp) -/* 0BA80C 7F085C9C 460A0182 */ mul.s $f6, $f0, $f10 -/* 0BA810 7F085CA0 C50A0494 */ lwc1 $f10, 0x494($t0) -/* 0BA814 7F085CA4 46064100 */ add.s $f4, $f8, $f6 -/* 0BA818 7F085CA8 460A2201 */ sub.s $f8, $f4, $f10 -/* 0BA81C 7F085CAC E7A803B4 */ swc1 $f8, 0x3b4($sp) -.Ljp7F085CB0: -/* 0BA820 7F085CB0 3C108008 */ lui $s0, %hi(flt_CODE_bss_800799BC) # $s0, 0x8008 -/* 0BA824 7F085CB4 261099FC */ addiu $s0, %lo(flt_CODE_bss_800799BC) # addiu $s0, $s0, -0x6604 -/* 0BA828 7F085CB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA82C 7F085CBC 44812000 */ mtc1 $at, $f4 -/* 0BA830 7F085CC0 C6060000 */ lwc1 $f6, ($s0) -/* 0BA834 7F085CC4 8E280000 */ lw $t0, ($s1) -/* 0BA838 7F085CC8 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) -/* 0BA83C 7F085CCC 4606203E */ c.le.s $f4, $f6 -/* 0BA840 7F085CD0 240C0001 */ li $t4, 1 -/* 0BA844 7F085CD4 450200EF */ bc1fl .Ljp7F086094 -/* 0BA848 7F085CD8 3C013F40 */ lui $at, %hi(0x3F3F99F8) # $at, 0x3f40 -/* 0BA84C 7F085CDC 100000EC */ b .Ljp7F086090 -/* 0BA850 7F085CE0 AC2C99F8 */ sw $t4, %lo(dword_CODE_bss_800799B8)($at) -.Ljp7F085CE4: -/* 0BA854 7F085CE4 1441001A */ bne $v0, $at, .Ljp7F085D50 -/* 0BA858 7F085CE8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 -/* 0BA85C 7F085CEC 240B0002 */ li $t3, 2 -/* 0BA860 7F085CF0 3C018008 */ lui $at, %hi(dword_CODE_bss_800799B8) # $at, 0x8008 -/* 0BA864 7F085CF4 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 -/* 0BA868 7F085CF8 AC2B99F8 */ sw $t3, %lo(dword_CODE_bss_800799B8)($at) -/* 0BA86C 7F085CFC 8E0D0000 */ lw $t5, ($s0) -/* 0BA870 7F085D00 55A0000A */ bnezl $t5, .Ljp7F085D2C -/* 0BA874 7F085D04 8E040000 */ lw $a0, ($s0) -/* 0BA878 7F085D08 0FC3021B */ jal get_controls_locked_flag -/* 0BA87C 7F085D0C 00000000 */ nop -/* 0BA880 7F085D10 14400005 */ bnez $v0, .Ljp7F085D28 -/* 0BA884 7F085D14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BA888 7F085D18 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BA88C 7F085D1C 24050042 */ li $a1, 66 -/* 0BA890 7F085D20 0C002386 */ jal play_sfx_a1 -/* 0BA894 7F085D24 02003025 */ move $a2, $s0 -.Ljp7F085D28: -/* 0BA898 7F085D28 8E040000 */ lw $a0, ($s0) -.Ljp7F085D2C: -/* 0BA89C 7F085D2C 24050008 */ li $a1, 8 -/* 0BA8A0 7F085D30 0C002465 */ jal sfx_c_70009184 -/* 0BA8A4 7F085D34 240661A8 */ li $a2, 25000 -/* 0BA8A8 7F085D38 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 -/* 0BA8AC 7F085D3C 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c -/* 0BA8B0 7F085D40 240E61A8 */ li $t6, 25000 -/* 0BA8B4 7F085D44 AC4E0000 */ sw $t6, ($v0) -/* 0BA8B8 7F085D48 100000D1 */ b .Ljp7F086090 -/* 0BA8BC 7F085D4C 8E280000 */ lw $t0, ($s1) -.Ljp7F085D50: -/* 0BA8C0 7F085D50 8E280000 */ lw $t0, ($s1) -/* 0BA8C4 7F085D54 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 0BA8C8 7F085D58 44814000 */ mtc1 $at, $f8 -/* 0BA8CC 7F085D5C C50A0174 */ lwc1 $f10, 0x174($t0) -/* 0BA8D0 7F085D60 3C018005 */ lui $at, %hi(D_800551E8) # $at, 0x8005 -/* 0BA8D4 7F085D64 C4245218 */ lwc1 $f4, %lo(D_800551E8)($at) -/* 0BA8D8 7F085D68 46085003 */ div.s $f0, $f10, $f8 -/* 0BA8DC 7F085D6C C506014C */ lwc1 $f6, 0x14c($t0) -/* 0BA8E0 7F085D70 46043083 */ div.s $f2, $f6, $f4 -/* 0BA8E4 7F085D74 4614003C */ c.lt.s $f0, $f20 -/* 0BA8E8 7F085D78 00000000 */ nop -/* 0BA8EC 7F085D7C 45020003 */ bc1fl .Ljp7F085D8C -/* 0BA8F0 7F085D80 4614103C */ c.lt.s $f2, $f20 -/* 0BA8F4 7F085D84 46000007 */ neg.s $f0, $f0 -/* 0BA8F8 7F085D88 4614103C */ c.lt.s $f2, $f20 -.Ljp7F085D8C: -/* 0BA8FC 7F085D8C 00000000 */ nop -/* 0BA900 7F085D90 45020003 */ bc1fl .Ljp7F085DA0 -/* 0BA904 7F085D94 4602003C */ c.lt.s $f0, $f2 -/* 0BA908 7F085D98 46001087 */ neg.s $f2, $f2 -/* 0BA90C 7F085D9C 4602003C */ c.lt.s $f0, $f2 -.Ljp7F085DA0: -/* 0BA910 7F085DA0 46000306 */ mov.s $f12, $f0 -/* 0BA914 7F085DA4 45020003 */ bc1fl .Ljp7F085DB4 -/* 0BA918 7F085DA8 460CA03C */ c.lt.s $f20, $f12 -/* 0BA91C 7F085DAC 46001306 */ mov.s $f12, $f2 -/* 0BA920 7F085DB0 460CA03C */ c.lt.s $f20, $f12 -.Ljp7F085DB4: -/* 0BA924 7F085DB4 00000000 */ nop -/* 0BA928 7F085DB8 45000043 */ bc1f .Ljp7F085EC8 -/* 0BA92C 7F085DBC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA930 7F085DC0 44815000 */ mtc1 $at, $f10 -/* 0BA934 7F085DC4 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 -/* 0BA938 7F085DC8 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 -/* 0BA93C 7F085DCC 460C503C */ c.lt.s $f10, $f12 -/* 0BA940 7F085DD0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BA944 7F085DD4 45020004 */ bc1fl .Ljp7F085DE8 -/* 0BA948 7F085DD8 8E180004 */ lw $t8, 4($s0) -/* 0BA94C 7F085DDC 44816000 */ mtc1 $at, $f12 -/* 0BA950 7F085DE0 00000000 */ nop -/* 0BA954 7F085DE4 8E180004 */ lw $t8, 4($s0) -.Ljp7F085DE8: -/* 0BA958 7F085DE8 5700000E */ bnezl $t8, .Ljp7F085E24 -/* 0BA95C 7F085DEC 8E040004 */ lw $a0, 4($s0) -/* 0BA960 7F085DF0 0FC3021B */ jal get_controls_locked_flag -/* 0BA964 7F085DF4 E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BA968 7F085DF8 14400009 */ bnez $v0, .Ljp7F085E20 -/* 0BA96C 7F085DFC C7AC0244 */ lwc1 $f12, 0x244($sp) -/* 0BA970 7F085E00 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BA974 7F085E04 3C068003 */ lui $a2, %hi(SFX_8003645C) # $a2, 0x8003 -/* 0BA978 7F085E08 24C6649C */ addiu $a2, %lo(SFX_8003645C) # addiu $a2, $a2, 0x649c -/* 0BA97C 7F085E0C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BA980 7F085E10 2405003E */ li $a1, 62 -/* 0BA984 7F085E14 0C002386 */ jal play_sfx_a1 -/* 0BA988 7F085E18 E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BA98C 7F085E1C C7AC0244 */ lwc1 $f12, 0x244($sp) -.Ljp7F085E20: -/* 0BA990 7F085E20 8E040004 */ lw $a0, 4($s0) -.Ljp7F085E24: -/* 0BA994 7F085E24 3C018005 */ lui $at, %hi(D_800551EC) # $at, 0x8005 -/* 0BA998 7F085E28 24050008 */ li $a1, 8 -/* 0BA99C 7F085E2C 50800034 */ beql $a0, $zero, .Ljp7F085F00 -/* 0BA9A0 7F085E30 8E190000 */ lw $t9, ($s0) -/* 0BA9A4 7F085E34 C420521C */ lwc1 $f0, %lo(D_800551EC)($at) -/* 0BA9A8 7F085E38 24067FFF */ li $a2, 32767 -/* 0BA9AC 7F085E3C 3C018005 */ lui $at, 0x8005 -/* 0BA9B0 7F085E40 4600603C */ c.lt.s $f12, $f0 -/* 0BA9B4 7F085E44 00000000 */ nop -/* 0BA9B8 7F085E48 45000009 */ bc1f .Ljp7F085E70 -/* 0BA9BC 7F085E4C 00000000 */ nop -/* 0BA9C0 7F085E50 3C018005 */ lui $at, %hi(D_800551F0) # $at, 0x8005 -/* 0BA9C4 7F085E54 C4285220 */ lwc1 $f8, %lo(D_800551F0)($at) -/* 0BA9C8 7F085E58 46086182 */ mul.s $f6, $f12, $f8 -/* 0BA9CC 7F085E5C 46003103 */ div.s $f4, $f6, $f0 -/* 0BA9D0 7F085E60 4600228D */ trunc.w.s $f10, $f4 -/* 0BA9D4 7F085E64 44065000 */ mfc1 $a2, $f10 -/* 0BA9D8 7F085E68 10000013 */ b .Ljp7F085EB8 -/* 0BA9DC 7F085E6C 00000000 */ nop -.Ljp7F085E70: -/* 0BA9E0 7F085E70 C4285224 */ lwc1 $f8, %lo(D_800551F4)($at) -/* 0BA9E4 7F085E74 3C018005 */ lui $at, %hi(D_800551F4) # $at, 0x8005 -/* 0BA9E8 7F085E78 4608603C */ c.lt.s $f12, $f8 -/* 0BA9EC 7F085E7C 00000000 */ nop -/* 0BA9F0 7F085E80 4500000D */ bc1f .Ljp7F085EB8 -/* 0BA9F4 7F085E84 00000000 */ nop -/* 0BA9F8 7F085E88 46006181 */ sub.s $f6, $f12, $f0 -/* 0BA9FC 7F085E8C C4245228 */ lwc1 $f4, %lo(D_800551F8)($at) -/* 0BAA00 7F085E90 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 0BAA04 7F085E94 44814000 */ mtc1 $at, $f8 -/* 0BAA08 7F085E98 46043282 */ mul.s $f10, $f6, $f4 -/* 0BAA0C 7F085E9C 3C018005 */ lui $at, %hi(D_800551FC) # $at, 0x8005 -/* 0BAA10 7F085EA0 C424522C */ lwc1 $f4, %lo(D_800551FC)($at) -/* 0BAA14 7F085EA4 46085183 */ div.s $f6, $f10, $f8 -/* 0BAA18 7F085EA8 46043280 */ add.s $f10, $f6, $f4 -/* 0BAA1C 7F085EAC 4600520D */ trunc.w.s $f8, $f10 -/* 0BAA20 7F085EB0 44064000 */ mfc1 $a2, $f8 -/* 0BAA24 7F085EB4 00000000 */ nop -.Ljp7F085EB8: -/* 0BAA28 7F085EB8 0C002465 */ jal sfx_c_70009184 -/* 0BAA2C 7F085EBC E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BAA30 7F085EC0 1000000E */ b .Ljp7F085EFC -/* 0BAA34 7F085EC4 C7AC0244 */ lwc1 $f12, 0x244($sp) -.Ljp7F085EC8: -/* 0BAA38 7F085EC8 3C108003 */ lui $s0, %hi(SFX_80036458) # $s0, 0x8003 -/* 0BAA3C 7F085ECC 26106498 */ addiu $s0, %lo(SFX_80036458) # addiu $s0, $s0, 0x6498 -/* 0BAA40 7F085ED0 8E040004 */ lw $a0, 4($s0) -/* 0BAA44 7F085ED4 5080000A */ beql $a0, $zero, .Ljp7F085F00 -/* 0BAA48 7F085ED8 8E190000 */ lw $t9, ($s0) -/* 0BAA4C 7F085EDC 0C002380 */ jal sfxGetArg0Unk3F -/* 0BAA50 7F085EE0 E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BAA54 7F085EE4 10400005 */ beqz $v0, .Ljp7F085EFC -/* 0BAA58 7F085EE8 C7AC0244 */ lwc1 $f12, 0x244($sp) -/* 0BAA5C 7F085EEC 8E040004 */ lw $a0, 4($s0) -/* 0BAA60 7F085EF0 0C00240C */ jal sfxDeactivate -/* 0BAA64 7F085EF4 E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BAA68 7F085EF8 C7AC0244 */ lwc1 $f12, 0x244($sp) -.Ljp7F085EFC: -/* 0BAA6C 7F085EFC 8E190000 */ lw $t9, ($s0) -.Ljp7F085F00: -/* 0BAA70 7F085F00 5720000D */ bnezl $t9, .Ljp7F085F38 -/* 0BAA74 7F085F04 8E040000 */ lw $a0, ($s0) -/* 0BAA78 7F085F08 0FC3021B */ jal get_controls_locked_flag -/* 0BAA7C 7F085F0C E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BAA80 7F085F10 14400008 */ bnez $v0, .Ljp7F085F34 -/* 0BAA84 7F085F14 C7AC0244 */ lwc1 $f12, 0x244($sp) -/* 0BAA88 7F085F18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BAA8C 7F085F1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BAA90 7F085F20 24050041 */ li $a1, 65 -/* 0BAA94 7F085F24 02003025 */ move $a2, $s0 -/* 0BAA98 7F085F28 0C002386 */ jal play_sfx_a1 -/* 0BAA9C 7F085F2C E7AC0244 */ swc1 $f12, 0x244($sp) -/* 0BAAA0 7F085F30 C7AC0244 */ lwc1 $f12, 0x244($sp) -.Ljp7F085F34: -/* 0BAAA4 7F085F34 8E040000 */ lw $a0, ($s0) -.Ljp7F085F38: -/* 0BAAA8 7F085F38 1080001A */ beqz $a0, .Ljp7F085FA4 -/* 0BAAAC 7F085F3C 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 -/* 0BAAB0 7F085F40 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c -/* 0BAAB4 7F085F44 240C7FFF */ li $t4, 32767 -/* 0BAAB8 7F085F48 AC4C0000 */ sw $t4, ($v0) -/* 0BAABC 7F085F4C 3C018005 */ lui $at, %hi(D_80055200) # $at, 0x8005 -/* 0BAAC0 7F085F50 C4265230 */ lwc1 $f6, %lo(D_80055200)($at) -/* 0BAAC4 7F085F54 3C018005 */ lui $at, %hi(D_80055204) # $at, 0x8005 -/* 0BAAC8 7F085F58 24050008 */ li $a1, 8 -/* 0BAACC 7F085F5C 4606603C */ c.lt.s $f12, $f6 -/* 0BAAD0 7F085F60 00000000 */ nop -/* 0BAAD4 7F085F64 4500000D */ bc1f .Ljp7F085F9C -/* 0BAAD8 7F085F68 00000000 */ nop -/* 0BAADC 7F085F6C C4245234 */ lwc1 $f4, %lo(D_80055204)($at) -/* 0BAAE0 7F085F70 3C018005 */ lui $at, %hi(D_80055208) # $at, 0x8005 -/* 0BAAE4 7F085F74 C4285238 */ lwc1 $f8, %lo(D_80055208)($at) -/* 0BAAE8 7F085F78 46046282 */ mul.s $f10, $f12, $f4 -/* 0BAAEC 7F085F7C 3C018005 */ lui $at, %hi(D_8005520C) # $at, 0x8005 -/* 0BAAF0 7F085F80 C424523C */ lwc1 $f4, %lo(D_8005520C)($at) -/* 0BAAF4 7F085F84 46085183 */ div.s $f6, $f10, $f8 -/* 0BAAF8 7F085F88 46043280 */ add.s $f10, $f6, $f4 -/* 0BAAFC 7F085F8C 4600520D */ trunc.w.s $f8, $f10 -/* 0BAB00 7F085F90 440D4000 */ mfc1 $t5, $f8 -/* 0BAB04 7F085F94 00000000 */ nop -/* 0BAB08 7F085F98 AC4D0000 */ sw $t5, ($v0) -.Ljp7F085F9C: -/* 0BAB0C 7F085F9C 0C002465 */ jal sfx_c_70009184 -/* 0BAB10 7F085FA0 8C460000 */ lw $a2, ($v0) -.Ljp7F085FA4: -/* 0BAB14 7F085FA4 0FC177BC */ jal get_item_in_hand -/* 0BAB18 7F085FA8 00002025 */ move $a0, $zero -/* 0BAB1C 7F085FAC 24010020 */ li $at, 32 -/* 0BAB20 7F085FB0 14410007 */ bne $v0, $at, .Ljp7F085FD0 -/* 0BAB24 7F085FB4 3C048005 */ lui $a0, %hi(clock_timer) # $a0, 0x8005 -/* 0BAB28 7F085FB8 8E280000 */ lw $t0, ($s1) -/* 0BAB2C 7F085FBC 3C018005 */ lui $at, %hi(D_80055210) # $at, 0x8005 -/* 0BAB30 7F085FC0 C4265240 */ lwc1 $f6, %lo(D_80055210)($at) -/* 0BAB34 7F085FC4 C5022A08 */ lwc1 $f2, 0x2a08($t0) -/* 0BAB38 7F085FC8 10000004 */ b .Ljp7F085FDC -/* 0BAB3C 7F085FCC 46061080 */ add.s $f2, $f2, $f6 -.Ljp7F085FD0: -/* 0BAB40 7F085FD0 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 -/* 0BAB44 7F085FD4 C42264AC */ lwc1 $f2, %lo(D_8003646C)($at) -/* 0BAB48 7F085FD8 8E280000 */ lw $t0, ($s1) -.Ljp7F085FDC: -/* 0BAB4C 7F085FDC 3C018005 */ lui $at, %hi(D_80055214) # $at, 0x8005 -/* 0BAB50 7F085FE0 C4205244 */ lwc1 $f0, %lo(D_80055214)($at) -/* 0BAB54 7F085FE4 3C018005 */ lui $at, %hi(D_80055218) # $at, 0x8005 -/* 0BAB58 7F085FE8 4602003C */ c.lt.s $f0, $f2 -/* 0BAB5C 7F085FEC 00000000 */ nop -/* 0BAB60 7F085FF0 45000002 */ bc1f .Ljp7F085FFC -/* 0BAB64 7F085FF4 00000000 */ nop -/* 0BAB68 7F085FF8 46000086 */ mov.s $f2, $f0 -.Ljp7F085FFC: -/* 0BAB6C 7F085FFC C4205248 */ lwc1 $f0, %lo(D_80055218)($at) -/* 0BAB70 7F086000 4600103C */ c.lt.s $f2, $f0 -/* 0BAB74 7F086004 00000000 */ nop -/* 0BAB78 7F086008 45000002 */ bc1f .Ljp7F086014 -/* 0BAB7C 7F08600C 00000000 */ nop -/* 0BAB80 7F086010 46000086 */ mov.s $f2, $f0 -.Ljp7F086014: -/* 0BAB84 7F086014 8C8483A4 */ lw $a0, %lo(clock_timer)($a0) -/* 0BAB88 7F086018 00001025 */ move $v0, $zero -/* 0BAB8C 7F08601C 18800014 */ blez $a0, .Ljp7F086070 -/* 0BAB90 7F086020 3C018005 */ lui $at, %hi(D_8005521C) # $at, 0x8005 -/* 0BAB94 7F086024 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 -/* 0BAB98 7F086028 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 -/* 0BAB9C 7F08602C C420524C */ lwc1 $f0, %lo(D_8005521C)($at) -/* 0BABA0 7F086030 C4700000 */ lwc1 $f16, ($v1) -/* 0BABA4 7F086034 24420001 */ addiu $v0, $v0, 1 -/* 0BABA8 7F086038 0044082A */ slt $at, $v0, $a0 -/* 0BABAC 7F08603C 46100482 */ mul.s $f18, $f0, $f16 -/* 0BABB0 7F086040 5020000A */ beql $at, $zero, .Ljp7F08606C -/* 0BABB4 7F086044 46029400 */ add.s $f16, $f18, $f2 -/* 0BABB8 7F086048 46029400 */ add.s $f16, $f18, $f2 -.Ljp7F08604C: -/* 0BABBC 7F08604C 24420001 */ addiu $v0, $v0, 1 -/* 0BABC0 7F086050 0044082A */ slt $at, $v0, $a0 -/* 0BABC4 7F086054 E4700000 */ swc1 $f16, ($v1) -/* 0BABC8 7F086058 C4700000 */ lwc1 $f16, ($v1) -/* 0BABCC 7F08605C 46100482 */ mul.s $f18, $f0, $f16 -/* 0BABD0 7F086060 5420FFFA */ bnezl $at, .Ljp7F08604C -/* 0BABD4 7F086064 46029400 */ add.s $f16, $f18, $f2 -/* 0BABD8 7F086068 46029400 */ add.s $f16, $f18, $f2 -.Ljp7F08606C: -/* 0BABDC 7F08606C E4700000 */ swc1 $f16, ($v1) -.Ljp7F086070: -/* 0BABE0 7F086070 3C038003 */ lui $v1, %hi(D_80036470) # $v1, 0x8003 -/* 0BABE4 7F086074 246364B0 */ addiu $v1, %lo(D_80036470) # addiu $v1, $v1, 0x64b0 -/* 0BABE8 7F086078 3C018005 */ lui $at, %hi(D_80055220) # $at, 0x8005 -/* 0BABEC 7F08607C C4245250 */ lwc1 $f4, %lo(D_80055220)($at) -/* 0BABF0 7F086080 C4660000 */ lwc1 $f6, ($v1) -/* 0BABF4 7F086084 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 -/* 0BABF8 7F086088 46043282 */ mul.s $f10, $f6, $f4 -/* 0BABFC 7F08608C E42A64AC */ swc1 $f10, %lo(D_8003646C)($at) -.Ljp7F086090: -/* 0BAC00 7F086090 3C013F40 */ li $at, 0x3F400000 # 0.750000 -.Ljp7F086094: -/* 0BAC04 7F086094 44810000 */ mtc1 $at, $f0 -/* 0BAC08 7F086098 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BAC0C 7F08609C C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) -/* 0BAC10 7F0860A0 3C018005 */ lui $at, %hi(D_80055224) # $at, 0x8005 -/* 0BAC14 7F0860A4 C4245254 */ lwc1 $f4, %lo(D_80055224)($at) -/* 0BAC18 7F0860A8 46080182 */ mul.s $f6, $f0, $f8 -/* 0BAC1C 7F0860AC C508019C */ lwc1 $f8, 0x19c($t0) -/* 0BAC20 7F0860B0 4406A000 */ mfc1 $a2, $f20 -/* 0BAC24 7F0860B4 4600A306 */ mov.s $f12, $f20 -/* 0BAC28 7F0860B8 46043283 */ div.s $f10, $f6, $f4 -/* 0BAC2C 7F0860BC 460A4181 */ sub.s $f6, $f8, $f10 -/* 0BAC30 7F0860C0 E506019C */ swc1 $f6, 0x19c($t0) -/* 0BAC34 7F0860C4 8E280000 */ lw $t0, ($s1) -/* 0BAC38 7F0860C8 C504019C */ lwc1 $f4, 0x19c($t0) -/* 0BAC3C 7F0860CC 4614203C */ c.lt.s $f4, $f20 -/* 0BAC40 7F0860D0 00000000 */ nop -/* 0BAC44 7F0860D4 45000002 */ bc1f .Ljp7F0860E0 -/* 0BAC48 7F0860D8 00000000 */ nop -/* 0BAC4C 7F0860DC E514019C */ swc1 $f20, 0x19c($t0) -.Ljp7F0860E0: -/* 0BAC50 7F0860E0 0FC20451 */ jal sub_GAME_7F080B34 -/* 0BAC54 7F0860E4 4600A386 */ mov.s $f14, $f20 -/* 0BAC58 7F0860E8 3C018005 */ lui $at, %hi(D_80055228) # $at, 0x8005 -/* 0BAC5C 7F0860EC C4285258 */ lwc1 $f8, %lo(D_80055228)($at) -/* 0BAC60 7F0860F0 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BAC64 7F0860F4 C42A64A4 */ lwc1 $f10, %lo(D_80036464)($at) -/* 0BAC68 7F0860F8 0FC160F3 */ jal sinf -/* 0BAC6C 7F0860FC 460A4301 */ sub.s $f12, $f8, $f10 -/* 0BAC70 7F086100 8E2E0000 */ lw $t6, ($s1) -/* 0BAC74 7F086104 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BAC78 7F086108 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) -/* 0BAC7C 7F08610C C5C60174 */ lwc1 $f6, 0x174($t6) -/* 0BAC80 7F086110 3C018005 */ lui $at, %hi(D_8005522C) # $at, 0x8005 -/* 0BAC84 7F086114 46003102 */ mul.s $f4, $f6, $f0 -/* 0BAC88 7F086118 C7A603AC */ lwc1 $f6, 0x3ac($sp) -/* 0BAC8C 7F08611C 46082282 */ mul.s $f10, $f4, $f8 -/* 0BAC90 7F086120 C428525C */ lwc1 $f8, %lo(D_8005522C)($at) -/* 0BAC94 7F086124 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BAC98 7F086128 460A3100 */ add.s $f4, $f6, $f10 -/* 0BAC9C 7F08612C C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) -/* 0BACA0 7F086130 E7A403AC */ swc1 $f4, 0x3ac($sp) -/* 0BACA4 7F086134 0FC160F0 */ jal cosf -/* 0BACA8 7F086138 46064301 */ sub.s $f12, $f8, $f6 -/* 0BACAC 7F08613C 8E380000 */ lw $t8, ($s1) -/* 0BACB0 7F086140 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BACB4 7F086144 C42883B4 */ lwc1 $f8, %lo(global_timer_delta)($at) -/* 0BACB8 7F086148 C70A0174 */ lwc1 $f10, 0x174($t8) -/* 0BACBC 7F08614C 27A403AC */ addiu $a0, $sp, 0x3ac -/* 0BACC0 7F086150 24050001 */ li $a1, 1 -/* 0BACC4 7F086154 46005102 */ mul.s $f4, $f10, $f0 -/* 0BACC8 7F086158 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) -/* 0BACCC 7F08615C 46082182 */ mul.s $f6, $f4, $f8 -/* 0BACD0 7F086160 46065100 */ add.s $f4, $f10, $f6 -/* 0BACD4 7F086164 0FC1F7E1 */ jal sub_GAME_7F07D960 -/* 0BACD8 7F086168 E7A403B4 */ swc1 $f4, 0x3b4($sp) -/* 0BACDC 7F08616C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 -/* 0BACE0 7F086170 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) -/* 0BACE4 7F086174 24010002 */ li $at, 2 -/* 0BACE8 7F086178 3C0A8005 */ lui $t2, %hi(clock_timer) # $t2, 0x8005 -/* 0BACEC 7F08617C 55E10238 */ bnel $t7, $at, .Ljp7F086A60 -/* 0BACF0 7F086180 8E280000 */ lw $t0, ($s1) -/* 0BACF4 7F086184 8D4A83A4 */ lw $t2, %lo(clock_timer)($t2) -/* 0BACF8 7F086188 59400235 */ blezl $t2, .Ljp7F086A60 -/* 0BACFC 7F08618C 8E280000 */ lw $t0, ($s1) -/* 0BAD00 7F086190 8E280000 */ lw $t0, ($s1) -/* 0BAD04 7F086194 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BAD08 7F086198 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) -/* 0BAD0C 7F08619C C508048C */ lwc1 $f8, 0x48c($t0) -/* 0BAD10 7F0861A0 C50A0408 */ lwc1 $f10, 0x408($t0) -/* 0BAD14 7F0861A4 C5040494 */ lwc1 $f4, 0x494($t0) -/* 0BAD18 7F0861A8 460A4181 */ sub.s $f6, $f8, $f10 -/* 0BAD1C 7F0861AC C5080410 */ lwc1 $f8, 0x410($t0) -/* 0BAD20 7F0861B0 46082281 */ sub.s $f10, $f4, $f8 -/* 0BAD24 7F0861B4 460E3003 */ div.s $f0, $f6, $f14 -/* 0BAD28 7F0861B8 460E5083 */ div.s $f2, $f10, $f14 -/* 0BAD2C 7F0861BC 46000182 */ mul.s $f6, $f0, $f0 -/* 0BAD30 7F0861C0 00000000 */ nop -/* 0BAD34 7F0861C4 46021102 */ mul.s $f4, $f2, $f2 -/* 0BAD38 7F0861C8 0C007E08 */ jal sqrtf -/* 0BAD3C 7F0861CC 46043300 */ add.s $f12, $f6, $f4 -/* 0BAD40 7F0861D0 8E280000 */ lw $t0, ($s1) -/* 0BAD44 7F0861D4 46000086 */ mov.s $f2, $f0 -/* 0BAD48 7F0861D8 C5080174 */ lwc1 $f8, 0x174($t0) -/* 0BAD4C 7F0861DC 4614403C */ c.lt.s $f8, $f20 -/* 0BAD50 7F0861E0 00000000 */ nop -/* 0BAD54 7F0861E4 45000002 */ bc1f .Ljp7F0861F0 -/* 0BAD58 7F0861E8 00000000 */ nop -/* 0BAD5C 7F0861EC 46000087 */ neg.s $f2, $f0 -.Ljp7F0861F0: -/* 0BAD60 7F0861F0 1000021A */ b .Ljp7F086A5C -/* 0BAD64 7F0861F4 E5020174 */ swc1 $f2, 0x174($t0) -.Ljp7F0861F8: -/* 0BAD68 7F0861F8 8E040000 */ lw $a0, ($s0) -/* 0BAD6C 7F0861FC 5080001A */ beql $a0, $zero, .Ljp7F086268 -/* 0BAD70 7F086200 8E040004 */ lw $a0, 4($s0) -/* 0BAD74 7F086204 0C002380 */ jal sfxGetArg0Unk3F -/* 0BAD78 7F086208 00000000 */ nop -/* 0BAD7C 7F08620C 10400015 */ beqz $v0, .Ljp7F086264 -/* 0BAD80 7F086210 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 0BAD84 7F086214 44815000 */ mtc1 $at, $f10 -/* 0BAD88 7F086218 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BAD8C 7F08621C C42683B4 */ lwc1 $f6, %lo(global_timer_delta)($at) -/* 0BAD90 7F086220 3C028008 */ lui $v0, %hi(dword_CODE_bss_800799B4) # $v0, 0x8008 -/* 0BAD94 7F086224 244299F4 */ addiu $v0, %lo(dword_CODE_bss_800799B4) # addiu $v0, $v0, -0x660c -/* 0BAD98 7F086228 46065102 */ mul.s $f4, $f10, $f6 -/* 0BAD9C 7F08622C 8C4B0000 */ lw $t3, ($v0) -/* 0BADA0 7F086230 24050008 */ li $a1, 8 -/* 0BADA4 7F086234 4600220D */ trunc.w.s $f8, $f4 -/* 0BADA8 7F086238 440C4000 */ mfc1 $t4, $f8 -/* 0BADAC 7F08623C 00000000 */ nop -/* 0BADB0 7F086240 016C3023 */ subu $a2, $t3, $t4 -/* 0BADB4 7F086244 18C00005 */ blez $a2, .Ljp7F08625C -/* 0BADB8 7F086248 AC460000 */ sw $a2, ($v0) -/* 0BADBC 7F08624C 0C002465 */ jal sfx_c_70009184 -/* 0BADC0 7F086250 8E040000 */ lw $a0, ($s0) -/* 0BADC4 7F086254 10000004 */ b .Ljp7F086268 -/* 0BADC8 7F086258 8E040004 */ lw $a0, 4($s0) -.Ljp7F08625C: -/* 0BADCC 7F08625C 0C00240C */ jal sfxDeactivate -/* 0BADD0 7F086260 8E040000 */ lw $a0, ($s0) -.Ljp7F086264: -/* 0BADD4 7F086264 8E040004 */ lw $a0, 4($s0) -.Ljp7F086268: -/* 0BADD8 7F086268 10800007 */ beqz $a0, .Ljp7F086288 -/* 0BADDC 7F08626C 00000000 */ nop -/* 0BADE0 7F086270 0C002380 */ jal sfxGetArg0Unk3F -/* 0BADE4 7F086274 00000000 */ nop -/* 0BADE8 7F086278 10400003 */ beqz $v0, .Ljp7F086288 -/* 0BADEC 7F08627C 00000000 */ nop -/* 0BADF0 7F086280 0C00240C */ jal sfxDeactivate -/* 0BADF4 7F086284 8E040004 */ lw $a0, 4($s0) -.Ljp7F086288: -/* 0BADF8 7F086288 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BADFC 7F08628C C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) -/* 0BAE00 7F086290 3C018003 */ lui $at, %hi(D_80036AF4) # $at, 0x8003 -/* 0BAE04 7F086294 C42A6B24 */ lwc1 $f10, %lo(D_80036AF4)($at) -/* 0BAE08 7F086298 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0BAE0C 7F08629C 44813000 */ mtc1 $at, $f6 -/* 0BAE10 7F0862A0 8E280000 */ lw $t0, ($s1) -/* 0BAE14 7F0862A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0BAE18 7F0862A8 46065102 */ mul.s $f4, $f10, $f6 -/* 0BAE1C 7F0862AC C508016C */ lwc1 $f8, 0x16c($t0) -/* 0BAE20 7F0862B0 E7A8004C */ swc1 $f8, 0x4c($sp) -/* 0BAE24 7F0862B4 C7AA004C */ lwc1 $f10, 0x4c($sp) -/* 0BAE28 7F0862B8 460E2302 */ mul.s $f12, $f4, $f14 -/* 0BAE2C 7F0862BC 00000000 */ nop -/* 0BAE30 7F0862C0 460C5182 */ mul.s $f6, $f10, $f12 -/* 0BAE34 7F0862C4 E7A603A0 */ swc1 $f6, 0x3a0($sp) -/* 0BAE38 7F0862C8 C5001274 */ lwc1 $f0, 0x1274($t0) -/* 0BAE3C 7F0862CC C50404A0 */ lwc1 $f4, 0x4a0($t0) -/* 0BAE40 7F0862D0 C5061278 */ lwc1 $f6, 0x1278($t0) -/* 0BAE44 7F0862D4 46000207 */ neg.s $f8, $f0 -/* 0BAE48 7F0862D8 C50A0498 */ lwc1 $f10, 0x498($t0) -/* 0BAE4C 7F0862DC 46082402 */ mul.s $f16, $f4, $f8 -/* 0BAE50 7F0862E0 46068101 */ sub.s $f4, $f16, $f6 -/* 0BAE54 7F0862E4 46005482 */ mul.s $f18, $f10, $f0 -/* 0BAE58 7F0862E8 E7A40220 */ swc1 $f4, 0x220($sp) -/* 0BAE5C 7F0862EC C508127C */ lwc1 $f8, 0x127c($t0) -/* 0BAE60 7F0862F0 C7A60220 */ lwc1 $f6, 0x220($sp) -/* 0BAE64 7F0862F4 46089281 */ sub.s $f10, $f18, $f8 -/* 0BAE68 7F0862F8 46063102 */ mul.s $f4, $f6, $f6 -/* 0BAE6C 7F0862FC E7AA021C */ swc1 $f10, 0x21c($sp) -/* 0BAE70 7F086300 C7A8021C */ lwc1 $f8, 0x21c($sp) -/* 0BAE74 7F086304 46084282 */ mul.s $f10, $f8, $f8 -/* 0BAE78 7F086308 460A2080 */ add.s $f2, $f4, $f10 -/* 0BAE7C 7F08630C 44812000 */ mtc1 $at, $f4 -/* 0BAE80 7F086310 00000000 */ nop -/* 0BAE84 7F086314 4602203E */ c.le.s $f4, $f2 -/* 0BAE88 7F086318 E7A20218 */ swc1 $f2, 0x218($sp) -/* 0BAE8C 7F08631C 45000008 */ bc1f .Ljp7F086340 -/* 0BAE90 7F086320 00000000 */ nop -/* 0BAE94 7F086324 3C018005 */ lui $at, %hi(D_80055230) # $at, 0x8005 -/* 0BAE98 7F086328 C4205260 */ lwc1 $f0, %lo(D_80055230)($at) -/* 0BAE9C 7F08632C 46003282 */ mul.s $f10, $f6, $f0 -/* 0BAEA0 7F086330 00000000 */ nop -/* 0BAEA4 7F086334 46004102 */ mul.s $f4, $f8, $f0 -/* 0BAEA8 7F086338 E7AA0220 */ swc1 $f10, 0x220($sp) -/* 0BAEAC 7F08633C E7A4021C */ swc1 $f4, 0x21c($sp) -.Ljp7F086340: -/* 0BAEB0 7F086340 3C018005 */ lui $at, %hi(D_80055234) # $at, 0x8005 -/* 0BAEB4 7F086344 C4305264 */ lwc1 $f16, %lo(D_80055234)($at) -/* 0BAEB8 7F086348 C7A6004C */ lwc1 $f6, 0x4c($sp) -/* 0BAEBC 7F08634C C50A014C */ lwc1 $f10, 0x14c($t0) -/* 0BAEC0 7F086350 C5020174 */ lwc1 $f2, 0x174($t0) -/* 0BAEC4 7F086354 46103002 */ mul.s $f0, $f6, $f16 -/* 0BAEC8 7F086358 4614003C */ c.lt.s $f0, $f20 -/* 0BAECC 7F08635C 46105302 */ mul.s $f12, $f10, $f16 -/* 0BAED0 7F086360 45020003 */ bc1fl .Ljp7F086370 -/* 0BAED4 7F086364 4614103C */ c.lt.s $f2, $f20 -/* 0BAED8 7F086368 46000007 */ neg.s $f0, $f0 -/* 0BAEDC 7F08636C 4614103C */ c.lt.s $f2, $f20 -.Ljp7F086370: -/* 0BAEE0 7F086370 3C018005 */ lui $at, %hi(D_80055238) # $at, 0x8005 -/* 0BAEE4 7F086374 45020003 */ bc1fl .Ljp7F086384 -/* 0BAEE8 7F086378 4614603C */ c.lt.s $f12, $f20 -/* 0BAEEC 7F08637C 46001087 */ neg.s $f2, $f2 -/* 0BAEF0 7F086380 4614603C */ c.lt.s $f12, $f20 -.Ljp7F086384: -/* 0BAEF4 7F086384 00000000 */ nop -/* 0BAEF8 7F086388 45020003 */ bc1fl .Ljp7F086398 -/* 0BAEFC 7F08638C 4600103C */ c.lt.s $f2, $f0 -/* 0BAF00 7F086390 46006307 */ neg.s $f12, $f12 -/* 0BAF04 7F086394 4600103C */ c.lt.s $f2, $f0 -.Ljp7F086398: -/* 0BAF08 7F086398 E7A20398 */ swc1 $f2, 0x398($sp) -/* 0BAF0C 7F08639C 45020003 */ bc1fl .Ljp7F0863AC -/* 0BAF10 7F0863A0 C7A80398 */ lwc1 $f8, 0x398($sp) -/* 0BAF14 7F0863A4 E7A00398 */ swc1 $f0, 0x398($sp) -/* 0BAF18 7F0863A8 C7A80398 */ lwc1 $f8, 0x398($sp) -.Ljp7F0863AC: -/* 0BAF1C 7F0863AC 460C403C */ c.lt.s $f8, $f12 -/* 0BAF20 7F0863B0 00000000 */ nop -/* 0BAF24 7F0863B4 45020003 */ bc1fl .Ljp7F0863C4 -/* 0BAF28 7F0863B8 C7A40218 */ lwc1 $f4, 0x218($sp) -/* 0BAF2C 7F0863BC E7AC0398 */ swc1 $f12, 0x398($sp) -/* 0BAF30 7F0863C0 C7A40218 */ lwc1 $f4, 0x218($sp) -.Ljp7F0863C4: -/* 0BAF34 7F0863C4 C4265268 */ lwc1 $f6, %lo(D_80055238)($at) -/* 0BAF38 7F0863C8 3C013F40 */ li $at, 0x3F400000 # 0.750000 -/* 0BAF3C 7F0863CC 44810000 */ mtc1 $at, $f0 -/* 0BAF40 7F0863D0 4604303E */ c.le.s $f6, $f4 -/* 0BAF44 7F0863D4 00000000 */ nop -/* 0BAF48 7F0863D8 45020008 */ bc1fl .Ljp7F0863FC -/* 0BAF4C 7F0863DC C7A80398 */ lwc1 $f8, 0x398($sp) -/* 0BAF50 7F0863E0 C7AA0398 */ lwc1 $f10, 0x398($sp) -/* 0BAF54 7F0863E4 4610503C */ c.lt.s $f10, $f16 -/* 0BAF58 7F0863E8 00000000 */ nop -/* 0BAF5C 7F0863EC 45020003 */ bc1fl .Ljp7F0863FC -/* 0BAF60 7F0863F0 C7A80398 */ lwc1 $f8, 0x398($sp) -/* 0BAF64 7F0863F4 E7B00398 */ swc1 $f16, 0x398($sp) -/* 0BAF68 7F0863F8 C7A80398 */ lwc1 $f8, 0x398($sp) -.Ljp7F0863FC: -/* 0BAF6C 7F0863FC 4608003E */ c.le.s $f0, $f8 -/* 0BAF70 7F086400 00000000 */ nop -/* 0BAF74 7F086404 4502000B */ bc1fl .Ljp7F086434 -/* 0BAF78 7F086408 C7AA0398 */ lwc1 $f10, 0x398($sp) -/* 0BAF7C 7F08640C 46004101 */ sub.s $f4, $f8, $f0 -/* 0BAF80 7F086410 3C014461 */ li $at, 0x44610000 # 900.000000 -/* 0BAF84 7F086414 44815000 */ mtc1 $at, $f10 -/* 0BAF88 7F086418 460E2182 */ mul.s $f6, $f4, $f14 -/* 0BAF8C 7F08641C C504019C */ lwc1 $f4, 0x19c($t0) -/* 0BAF90 7F086420 460A3203 */ div.s $f8, $f6, $f10 -/* 0BAF94 7F086424 46082180 */ add.s $f6, $f4, $f8 -/* 0BAF98 7F086428 1000000A */ b .Ljp7F086454 -/* 0BAF9C 7F08642C E506019C */ swc1 $f6, 0x19c($t0) -/* 0BAFA0 7F086430 C7AA0398 */ lwc1 $f10, 0x398($sp) -.Ljp7F086434: -/* 0BAFA4 7F086434 3C018005 */ lui $at, %hi(D_8005523C) # $at, 0x8005 -/* 0BAFA8 7F086438 C426526C */ lwc1 $f6, %lo(D_8005523C)($at) -/* 0BAFAC 7F08643C 460A0101 */ sub.s $f4, $f0, $f10 -/* 0BAFB0 7F086440 460E2202 */ mul.s $f8, $f4, $f14 -/* 0BAFB4 7F086444 C504019C */ lwc1 $f4, 0x19c($t0) -/* 0BAFB8 7F086448 46064283 */ div.s $f10, $f8, $f6 -/* 0BAFBC 7F08644C 460A2201 */ sub.s $f8, $f4, $f10 -/* 0BAFC0 7F086450 E508019C */ swc1 $f8, 0x19c($t0) -.Ljp7F086454: -/* 0BAFC4 7F086454 8E280000 */ lw $t0, ($s1) -/* 0BAFC8 7F086458 C500019C */ lwc1 $f0, 0x19c($t0) -/* 0BAFCC 7F08645C 4614003C */ c.lt.s $f0, $f20 -/* 0BAFD0 7F086460 00000000 */ nop -/* 0BAFD4 7F086464 45020005 */ bc1fl .Ljp7F08647C -/* 0BAFD8 7F086468 3C013F80 */ lui $at, 0x3f80 -/* 0BAFDC 7F08646C E514019C */ swc1 $f20, 0x19c($t0) -/* 0BAFE0 7F086470 1000000C */ b .Ljp7F0864A4 -/* 0BAFE4 7F086474 8E280000 */ lw $t0, ($s1) -/* 0BAFE8 7F086478 3C013F80 */ li $at, 0x3F800000 # 1.000000 -.Ljp7F08647C: -/* 0BAFEC 7F08647C 44813000 */ mtc1 $at, $f6 -/* 0BAFF0 7F086480 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BAFF4 7F086484 4600303C */ c.lt.s $f6, $f0 -/* 0BAFF8 7F086488 00000000 */ nop -/* 0BAFFC 7F08648C 45020006 */ bc1fl .Ljp7F0864A8 -/* 0BB000 7F086490 C7AC0398 */ lwc1 $f12, 0x398($sp) -/* 0BB004 7F086494 44812000 */ mtc1 $at, $f4 -/* 0BB008 7F086498 00000000 */ nop -/* 0BB00C 7F08649C E504019C */ swc1 $f4, 0x19c($t0) -/* 0BB010 7F0864A0 8E280000 */ lw $t0, ($s1) -.Ljp7F0864A4: -/* 0BB014 7F0864A4 C7AC0398 */ lwc1 $f12, 0x398($sp) -.Ljp7F0864A8: -/* 0BB018 7F0864A8 C50E0174 */ lwc1 $f14, 0x174($t0) -/* 0BB01C 7F0864AC 0FC20451 */ jal sub_GAME_7F080B34 -/* 0BB020 7F0864B0 8FA603A0 */ lw $a2, 0x3a0($sp) -/* 0BB024 7F0864B4 8E280000 */ lw $t0, ($s1) -/* 0BB028 7F0864B8 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BB02C 7F0864BC C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) -/* 0BB030 7F0864C0 C5020504 */ lwc1 $f2, 0x504($t0) -/* 0BB034 7F0864C4 C50A0498 */ lwc1 $f10, 0x498($t0) -/* 0BB038 7F0864C8 C50004FC */ lwc1 $f0, 0x4fc($t0) -/* 0BB03C 7F0864CC C50604A0 */ lwc1 $f6, 0x4a0($t0) -/* 0BB040 7F0864D0 460A1202 */ mul.s $f8, $f2, $f10 -/* 0BB044 7F0864D4 00000000 */ nop -/* 0BB048 7F0864D8 46060102 */ mul.s $f4, $f0, $f6 -/* 0BB04C 7F0864DC 46044281 */ sub.s $f10, $f8, $f4 -/* 0BB050 7F0864E0 C7A803AC */ lwc1 $f8, 0x3ac($sp) -/* 0BB054 7F0864E4 460E5182 */ mul.s $f6, $f10, $f14 -/* 0BB058 7F0864E8 46064100 */ add.s $f4, $f8, $f6 -/* 0BB05C 7F0864EC E7A403AC */ swc1 $f4, 0x3ac($sp) -/* 0BB060 7F0864F0 C50A04A0 */ lwc1 $f10, 0x4a0($t0) -/* 0BB064 7F0864F4 C5060498 */ lwc1 $f6, 0x498($t0) -/* 0BB068 7F0864F8 460A1202 */ mul.s $f8, $f2, $f10 -/* 0BB06C 7F0864FC 00000000 */ nop -/* 0BB070 7F086500 46060282 */ mul.s $f10, $f0, $f6 -/* 0BB074 7F086504 460A4180 */ add.s $f6, $f8, $f10 -/* 0BB078 7F086508 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) -/* 0BB07C 7F08650C 460E3202 */ mul.s $f8, $f6, $f14 -/* 0BB080 7F086510 46085180 */ add.s $f6, $f10, $f8 -/* 0BB084 7F086514 C7AA0220 */ lwc1 $f10, 0x220($sp) -/* 0BB088 7F086518 460A2200 */ add.s $f8, $f4, $f10 -/* 0BB08C 7F08651C C7A4021C */ lwc1 $f4, 0x21c($sp) -/* 0BB090 7F086520 E7A603B4 */ swc1 $f6, 0x3b4($sp) -/* 0BB094 7F086524 46043280 */ add.s $f10, $f6, $f4 -/* 0BB098 7F086528 E7A803AC */ swc1 $f8, 0x3ac($sp) -/* 0BB09C 7F08652C E7AA03B4 */ swc1 $f10, 0x3b4($sp) -/* 0BB0A0 7F086530 C508048C */ lwc1 $f8, 0x48c($t0) -/* 0BB0A4 7F086534 E7A80208 */ swc1 $f8, 0x208($sp) -/* 0BB0A8 7F086538 C5060494 */ lwc1 $f6, 0x494($t0) -/* 0BB0AC 7F08653C E7A60204 */ swc1 $f6, 0x204($sp) -/* 0BB0B0 7F086540 8D0E0488 */ lw $t6, 0x488($t0) -/* 0BB0B4 7F086544 0FC246BE */ jal get_debug_fast_bond_flag -/* 0BB0B8 7F086548 AFAE0200 */ sw $t6, 0x200($sp) -/* 0BB0BC 7F08654C 50400021 */ beql $v0, $zero, .Ljp7F0865D4 -/* 0BB0C0 7F086550 8E380000 */ lw $t8, ($s1) -/* 0BB0C4 7F086554 8E280000 */ lw $t0, ($s1) -/* 0BB0C8 7F086558 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0BB0CC 7F08655C 44810000 */ mtc1 $at, $f0 -/* 0BB0D0 7F086560 C5040498 */ lwc1 $f4, 0x498($t0) -/* 0BB0D4 7F086564 C50A0174 */ lwc1 $f10, 0x174($t0) -/* 0BB0D8 7F086568 C50604A0 */ lwc1 $f6, 0x4a0($t0) -/* 0BB0DC 7F08656C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0BB0E0 7F086570 460A2202 */ mul.s $f8, $f4, $f10 -/* 0BB0E4 7F086574 C504016C */ lwc1 $f4, 0x16c($t0) -/* 0BB0E8 7F086578 C42E83B4 */ lwc1 $f14, %lo(global_timer_delta)($at) -/* 0BB0EC 7F08657C 46043282 */ mul.s $f10, $f6, $f4 -/* 0BB0F0 7F086580 460A4181 */ sub.s $f6, $f8, $f10 -/* 0BB0F4 7F086584 C7AA03AC */ lwc1 $f10, 0x3ac($sp) -/* 0BB0F8 7F086588 460E3102 */ mul.s $f4, $f6, $f14 -/* 0BB0FC 7F08658C 00000000 */ nop -/* 0BB100 7F086590 46002202 */ mul.s $f8, $f4, $f0 -/* 0BB104 7F086594 46085180 */ add.s $f6, $f10, $f8 -/* 0BB108 7F086598 E7A603AC */ swc1 $f6, 0x3ac($sp) -/* 0BB10C 7F08659C C50A0174 */ lwc1 $f10, 0x174($t0) -/* 0BB110 7F0865A0 C50404A0 */ lwc1 $f4, 0x4a0($t0) -/* 0BB114 7F0865A4 C5060498 */ lwc1 $f6, 0x498($t0) -/* 0BB118 7F0865A8 460A2202 */ mul.s $f8, $f4, $f10 -/* 0BB11C 7F0865AC C504016C */ lwc1 $f4, 0x16c($t0) -/* 0BB120 7F0865B0 46043282 */ mul.s $f10, $f6, $f4 -/* 0BB124 7F0865B4 460A4180 */ add.s $f6, $f8, $f10 -/* 0BB128 7F0865B8 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) -/* 0BB12C 7F0865BC 460E3102 */ mul.s $f4, $f6, $f14 -/* 0BB130 7F0865C0 00000000 */ nop -/* 0BB134 7F0865C4 46002202 */ mul.s $f8, $f4, $f0 -/* 0BB138 7F0865C8 46085180 */ add.s $f6, $f10, $f8 -/* 0BB13C 7F0865CC E7A603B4 */ swc1 $f6, 0x3b4($sp) -/* 0BB140 7F0865D0 8E380000 */ lw $t8, ($s1) -.Ljp7F0865D4: -/* 0BB144 7F0865D4 27A403AC */ addiu $a0, $sp, 0x3ac -/* 0BB148 7F0865D8 00002825 */ move $a1, $zero -/* 0BB14C 7F0865DC C7041274 */ lwc1 $f4, 0x1274($t8) -/* 0BB150 7F0865E0 4604A032 */ c.eq.s $f20, $f4 -/* 0BB154 7F0865E4 00000000 */ nop -/* 0BB158 7F0865E8 45000002 */ bc1f .Ljp7F0865F4 -/* 0BB15C 7F0865EC 00000000 */ nop -/* 0BB160 7F0865F0 24050001 */ li $a1, 1 -.Ljp7F0865F4: -/* 0BB164 7F0865F4 0FC1F7E1 */ jal sub_GAME_7F07D960 -/* 0BB168 7F0865F8 00000000 */ nop -/* 0BB16C 7F0865FC 8E2F0000 */ lw $t7, ($s1) -/* 0BB170 7F086600 3C018005 */ lui $at, %hi(D_80055240) # $at, 0x8005 -/* 0BB174 7F086604 C4285270 */ lwc1 $f8, %lo(D_80055240)($at) -/* 0BB178 7F086608 C5EA04B0 */ lwc1 $f10, 0x4b0($t7) -/* 0BB17C 7F08660C 27B001B4 */ addiu $s0, $sp, 0x1b4 -/* 0BB180 7F086610 AFB00010 */ sw $s0, 0x10($sp) -/* 0BB184 7F086614 46085182 */ mul.s $f6, $f10, $f8 -/* 0BB188 7F086618 27A40200 */ addiu $a0, $sp, 0x200 -/* 0BB18C 7F08661C 8FA50208 */ lw $a1, 0x208($sp) -/* 0BB190 7F086620 8FA60204 */ lw $a2, 0x204($sp) -/* 0BB194 7F086624 44073000 */ mfc1 $a3, $f6 -/* 0BB198 7F086628 0FC2CBB1 */ jal sub_GAME_7F0B2314 -/* 0BB19C 7F08662C 00000000 */ nop -/* 0BB1A0 7F086630 0FC2CBD5 */ jal sub_GAME_7F0B23A4 -/* 0BB1A4 7F086634 02002025 */ move $a0, $s0 -/* 0BB1A8 7F086638 10400002 */ beqz $v0, .Ljp7F086644 -/* 0BB1AC 7F08663C 240A0001 */ li $t2, 1 -/* 0BB1B0 7F086640 AFAA0394 */ sw $t2, 0x394($sp) -.Ljp7F086644: -/* 0BB1B4 7F086644 8E280000 */ lw $t0, ($s1) -/* 0BB1B8 7F086648 3C018005 */ lui $at, %hi(D_80055244) # $at, 0x8005 -/* 0BB1BC 7F08664C C42A5274 */ lwc1 $f10, %lo(D_80055244)($at) -/* 0BB1C0 7F086650 C50404B0 */ lwc1 $f4, 0x4b0($t0) -/* 0BB1C4 7F086654 8D05048C */ lw $a1, 0x48c($t0) -/* 0BB1C8 7F086658 8D060494 */ lw $a2, 0x494($t0) -/* 0BB1CC 7F08665C 460A2202 */ mul.s $f8, $f4, $f10 -/* 0BB1D0 7F086660 AFB00010 */ sw $s0, 0x10($sp) -/* 0BB1D4 7F086664 25040488 */ addiu $a0, $t0, 0x488 -/* 0BB1D8 7F086668 44074000 */ mfc1 $a3, $f8 -/* 0BB1DC 7F08666C 0FC2CBB1 */ jal sub_GAME_7F0B2314 -/* 0BB1E0 7F086670 00000000 */ nop -/* 0BB1E4 7F086674 0FC2CBD5 */ jal sub_GAME_7F0B23A4 -/* 0BB1E8 7F086678 02002025 */ move $a0, $s0 -/* 0BB1EC 7F08667C 10400002 */ beqz $v0, .Ljp7F086688 -/* 0BB1F0 7F086680 24190001 */ li $t9, 1 -/* 0BB1F4 7F086684 AFB90394 */ sw $t9, 0x394($sp) -.Ljp7F086688: -/* 0BB1F8 7F086688 8E280000 */ lw $t0, ($s1) -/* 0BB1FC 7F08668C 8D05048C */ lw $a1, 0x48c($t0) -/* 0BB200 7F086690 8D060494 */ lw $a2, 0x494($t0) -/* 0BB204 7F086694 8D0704B0 */ lw $a3, 0x4b0($t0) -/* 0BB208 7F086698 AFB00010 */ sw $s0, 0x10($sp) -/* 0BB20C 7F08669C 0FC2CBB1 */ jal sub_GAME_7F0B2314 -/* 0BB210 7F0866A0 25040488 */ addiu $a0, $t0, 0x488 -/* 0BB214 7F0866A4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 -/* 0BB218 7F0866A8 02002025 */ move $a0, $s0 -/* 0BB21C 7F0866AC 1440000D */ bnez $v0, .Ljp7F0866E4 -/* 0BB220 7F0866B0 00000000 */ nop -/* 0BB224 7F0866B4 8E2B0000 */ lw $t3, ($s1) -/* 0BB228 7F0866B8 3C018005 */ lui $at, %hi(D_80055248) # $at, 0x8005 -/* 0BB22C 7F0866BC C4245278 */ lwc1 $f4, %lo(D_80055248)($at) -/* 0BB230 7F0866C0 C56604B0 */ lwc1 $f6, 0x4b0($t3) -/* 0BB234 7F0866C4 AFB00010 */ sw $s0, 0x10($sp) -/* 0BB238 7F0866C8 27A40200 */ addiu $a0, $sp, 0x200 -/* 0BB23C 7F0866CC 46043282 */ mul.s $f10, $f6, $f4 -/* 0BB240 7F0866D0 8FA50208 */ lw $a1, 0x208($sp) -/* 0BB244 7F0866D4 8FA60204 */ lw $a2, 0x204($sp) -/* 0BB248 7F0866D8 44075000 */ mfc1 $a3, $f10 -/* 0BB24C 7F0866DC 0FC2CBB1 */ jal sub_GAME_7F0B2314 -/* 0BB250 7F0866E0 00000000 */ nop -.Ljp7F0866E4: -/* 0BB254 7F0866E4 0FC2CBD5 */ jal sub_GAME_7F0B23A4 -/* 0BB258 7F0866E8 02002025 */ move $a0, $s0 -/* 0BB25C 7F0866EC 104000B8 */ beqz $v0, .Ljp7F0869D0 -/* 0BB260 7F0866F0 240C0001 */ li $t4, 1 -/* 0BB264 7F0866F4 AFAC0394 */ sw $t4, 0x394($sp) -/* 0BB268 7F0866F8 27A40174 */ addiu $a0, $sp, 0x174 -/* 0BB26C 7F0866FC 27A50170 */ addiu $a1, $sp, 0x170 -/* 0BB270 7F086700 0FC2CBF4 */ jal sub_GAME_7F0B2420 -/* 0BB274 7F086704 27A60184 */ addiu $a2, $sp, 0x184 -/* 0BB278 7F086708 8E2D0000 */ lw $t5, ($s1) -/* 0BB27C 7F08670C C7A801A0 */ lwc1 $f8, 0x1a0($sp) -/* 0BB280 7F086710 C5A60074 */ lwc1 $f6, 0x74($t5) -/* 0BB284 7F086714 4608303E */ c.le.s $f6, $f8 -/* 0BB288 7F086718 C7A80198 */ lwc1 $f8, 0x198($sp) -/* 0BB28C 7F08671C C7A6018C */ lwc1 $f6, 0x18c($sp) -/* 0BB290 7F086720 450200AC */ bc1fl .Ljp7F0869D4 -/* 0BB294 7F086724 8E280000 */ lw $t0, ($s1) -/* 0BB298 7F086728 C7A40184 */ lwc1 $f4, 0x184($sp) -/* 0BB29C 7F08672C C7AA0190 */ lwc1 $f10, 0x190($sp) -/* 0BB2A0 7F086730 46064381 */ sub.s $f14, $f8, $f6 -/* 0BB2A4 7F086734 460A2081 */ sub.s $f2, $f4, $f10 -/* 0BB2A8 7F086738 460E7102 */ mul.s $f4, $f14, $f14 -/* 0BB2AC 7F08673C E7AE016C */ swc1 $f14, 0x16c($sp) -/* 0BB2B0 7F086740 46021282 */ mul.s $f10, $f2, $f2 -/* 0BB2B4 7F086744 E7A20168 */ swc1 $f2, 0x168($sp) -/* 0BB2B8 7F086748 0C007E08 */ jal sqrtf -/* 0BB2BC 7F08674C 460A2300 */ add.s $f12, $f4, $f10 -/* 0BB2C0 7F086750 C7A20168 */ lwc1 $f2, 0x168($sp) -/* 0BB2C4 7F086754 C7AE016C */ lwc1 $f14, 0x16c($sp) -/* 0BB2C8 7F086758 C7A80204 */ lwc1 $f8, 0x204($sp) -/* 0BB2CC 7F08675C 46001083 */ div.s $f2, $f2, $f0 -/* 0BB2D0 7F086760 C7A6018C */ lwc1 $f6, 0x18c($sp) -/* 0BB2D4 7F086764 E7A80030 */ swc1 $f8, 0x30($sp) -/* 0BB2D8 7F086768 46064101 */ sub.s $f4, $f8, $f6 -/* 0BB2DC 7F08676C C7A80184 */ lwc1 $f8, 0x184($sp) -/* 0BB2E0 7F086770 E7A60034 */ swc1 $f6, 0x34($sp) -/* 0BB2E4 7F086774 46007383 */ div.s $f14, $f14, $f0 -/* 0BB2E8 7F086778 46022282 */ mul.s $f10, $f4, $f2 -/* 0BB2EC 7F08677C C7A40208 */ lwc1 $f4, 0x208($sp) -/* 0BB2F0 7F086780 46082181 */ sub.s $f6, $f4, $f8 -/* 0BB2F4 7F086784 460E3182 */ mul.s $f6, $f6, $f14 -/* 0BB2F8 7F086788 46065300 */ add.s $f12, $f10, $f6 -/* 0BB2FC 7F08678C C7A60030 */ lwc1 $f6, 0x30($sp) -/* 0BB300 7F086790 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) -/* 0BB304 7F086794 E7AC0050 */ swc1 $f12, 0x50($sp) -/* 0BB308 7F086798 460A3180 */ add.s $f6, $f6, $f10 -/* 0BB30C 7F08679C C7AA0034 */ lwc1 $f10, 0x34($sp) -/* 0BB310 7F0867A0 460A3181 */ sub.s $f6, $f6, $f10 -/* 0BB314 7F0867A4 46023282 */ mul.s $f10, $f6, $f2 -/* 0BB318 7F0867A8 C7A603AC */ lwc1 $f6, 0x3ac($sp) -/* 0BB31C 7F0867AC 46062100 */ add.s $f4, $f4, $f6 -/* 0BB320 7F0867B0 46082181 */ sub.s $f6, $f4, $f8 -/* 0BB324 7F0867B4 460E3102 */ mul.s $f4, $f6, $f14 -/* 0BB328 7F0867B8 46045480 */ add.s $f18, $f10, $f4 -/* 0BB32C 7F0867BC C7A403B4 */ lwc1 $f4, 0x3b4($sp) -/* 0BB330 7F0867C0 46126202 */ mul.s $f8, $f12, $f18 -/* 0BB334 7F0867C4 46009406 */ mov.s $f16, $f18 -/* 0BB338 7F0867C8 4614403E */ c.le.s $f8, $f20 -/* 0BB33C 7F0867CC 46042202 */ mul.s $f8, $f4, $f4 -/* 0BB340 7F0867D0 45020004 */ bc1fl .Ljp7F0867E4 -/* 0BB344 7F0867D4 4614903C */ c.lt.s $f18, $f20 -/* 0BB348 7F0867D8 1000001F */ b .Ljp7F086858 -/* 0BB34C 7F0867DC 4600A386 */ mov.s $f14, $f20 -/* 0BB350 7F0867E0 4614903C */ c.lt.s $f18, $f20 -.Ljp7F0867E4: -/* 0BB354 7F0867E4 00000000 */ nop -/* 0BB358 7F0867E8 45020005 */ bc1fl .Ljp7F086800 -/* 0BB35C 7F0867EC 4610603E */ c.le.s $f12, $f16 -/* 0BB360 7F0867F0 C7AC0050 */ lwc1 $f12, 0x50($sp) -/* 0BB364 7F0867F4 46009407 */ neg.s $f16, $f18 -/* 0BB368 7F0867F8 46006307 */ neg.s $f12, $f12 -/* 0BB36C 7F0867FC 4610603E */ c.le.s $f12, $f16 -.Ljp7F086800: -/* 0BB370 7F086800 00000000 */ nop -/* 0BB374 7F086804 45020004 */ bc1fl .Ljp7F086818 -/* 0BB378 7F086808 8E2E0000 */ lw $t6, ($s1) -/* 0BB37C 7F08680C 10000012 */ b .Ljp7F086858 -/* 0BB380 7F086810 4600A386 */ mov.s $f14, $f20 -/* 0BB384 7F086814 8E2E0000 */ lw $t6, ($s1) -.Ljp7F086818: -/* 0BB388 7F086818 C5C004B0 */ lwc1 $f0, 0x4b0($t6) -/* 0BB38C 7F08681C 4610003C */ c.lt.s $f0, $f16 -/* 0BB390 7F086820 00000000 */ nop -/* 0BB394 7F086824 45020004 */ bc1fl .Ljp7F086838 -/* 0BB398 7F086828 4600603C */ c.lt.s $f12, $f0 -/* 0BB39C 7F08682C 1000000A */ b .Ljp7F086858 -/* 0BB3A0 7F086830 4600A386 */ mov.s $f14, $f20 -/* 0BB3A4 7F086834 4600603C */ c.lt.s $f12, $f0 -.Ljp7F086838: -/* 0BB3A8 7F086838 00000000 */ nop -/* 0BB3AC 7F08683C 45020004 */ bc1fl .Ljp7F086850 -/* 0BB3B0 7F086840 46006181 */ sub.s $f6, $f12, $f0 -/* 0BB3B4 7F086844 10000004 */ b .Ljp7F086858 -/* 0BB3B8 7F086848 4600A386 */ mov.s $f14, $f20 -/* 0BB3BC 7F08684C 46006181 */ sub.s $f6, $f12, $f0 -.Ljp7F086850: -/* 0BB3C0 7F086850 46106281 */ sub.s $f10, $f12, $f16 -/* 0BB3C4 7F086854 460A3383 */ div.s $f14, $f6, $f10 -.Ljp7F086858: -/* 0BB3C8 7F086858 C7A603AC */ lwc1 $f6, 0x3ac($sp) -/* 0BB3CC 7F08685C E7AE0180 */ swc1 $f14, 0x180($sp) -/* 0BB3D0 7F086860 46063282 */ mul.s $f10, $f6, $f6 -/* 0BB3D4 7F086864 0C007E08 */ jal sqrtf -/* 0BB3D8 7F086868 460A4300 */ add.s $f12, $f8, $f10 -/* 0BB3DC 7F08686C 4600A03C */ c.lt.s $f20, $f0 -/* 0BB3E0 7F086870 C7AE0180 */ lwc1 $f14, 0x180($sp) -/* 0BB3E4 7F086874 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BB3E8 7F086878 4502001B */ bc1fl .Ljp7F0868E8 -/* 0BB3EC 7F08687C C7A6019C */ lwc1 $f6, 0x19c($sp) -/* 0BB3F0 7F086880 44812000 */ mtc1 $at, $f4 -/* 0BB3F4 7F086884 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0BB3F8 7F086888 44814000 */ mtc1 $at, $f8 -/* 0BB3FC 7F08688C 460E2181 */ sub.s $f6, $f4, $f14 -/* 0BB400 7F086890 8E380000 */ lw $t8, ($s1) -/* 0BB404 7F086894 C7A401A0 */ lwc1 $f4, 0x1a0($sp) -/* 0BB408 7F086898 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0BB40C 7F08689C 46003082 */ mul.s $f2, $f6, $f0 -/* 0BB410 7F0868A0 00000000 */ nop -/* 0BB414 7F0868A4 46081302 */ mul.s $f12, $f2, $f8 -/* 0BB418 7F0868A8 E7AC0390 */ swc1 $f12, 0x390($sp) -/* 0BB41C 7F0868AC C7120074 */ lwc1 $f18, 0x74($t8) -/* 0BB420 7F0868B0 460C9280 */ add.s $f10, $f18, $f12 -/* 0BB424 7F0868B4 460A203E */ c.le.s $f4, $f10 -/* 0BB428 7F0868B8 00000000 */ nop -/* 0BB42C 7F0868BC 45000009 */ bc1f .Ljp7F0868E4 -/* 0BB430 7F0868C0 00000000 */ nop -/* 0BB434 7F0868C4 46122181 */ sub.s $f6, $f4, $f18 -/* 0BB438 7F0868C8 44814000 */ mtc1 $at, $f8 -/* 0BB43C 7F0868CC 00000000 */ nop -/* 0BB440 7F0868D0 46083283 */ div.s $f10, $f6, $f8 -/* 0BB444 7F0868D4 E7A60390 */ swc1 $f6, 0x390($sp) -/* 0BB448 7F0868D8 460A1401 */ sub.s $f16, $f2, $f10 -/* 0BB44C 7F0868DC 46008103 */ div.s $f4, $f16, $f0 -/* 0BB450 7F0868E0 46047380 */ add.s $f14, $f14, $f4 -.Ljp7F0868E4: -/* 0BB454 7F0868E4 C7A6019C */ lwc1 $f6, 0x19c($sp) -.Ljp7F0868E8: -/* 0BB458 7F0868E8 C7A80184 */ lwc1 $f8, 0x184($sp) -/* 0BB45C 7F0868EC C7AA01A4 */ lwc1 $f10, 0x1a4($sp) -/* 0BB460 7F0868F0 C7A4018C */ lwc1 $f4, 0x18c($sp) -/* 0BB464 7F0868F4 46083301 */ sub.s $f12, $f6, $f8 -/* 0BB468 7F0868F8 C7A601A8 */ lwc1 $f6, 0x1a8($sp) -/* 0BB46C 7F0868FC 8E280000 */ lw $t0, ($s1) -/* 0BB470 7F086900 46045401 */ sub.s $f16, $f10, $f4 -/* 0BB474 7F086904 C7AA01B0 */ lwc1 $f10, 0x1b0($sp) -/* 0BB478 7F086908 46083481 */ sub.s $f18, $f6, $f8 -/* 0BB47C 7F08690C 46045181 */ sub.s $f6, $f10, $f4 -/* 0BB480 7F086910 46129202 */ mul.s $f8, $f18, $f18 -/* 0BB484 7F086914 00000000 */ nop -/* 0BB488 7F086918 46063282 */ mul.s $f10, $f6, $f6 -/* 0BB48C 7F08691C E7A60048 */ swc1 $f6, 0x48($sp) -/* 0BB490 7F086920 460A4100 */ add.s $f4, $f8, $f10 -/* 0BB494 7F086924 460C6202 */ mul.s $f8, $f12, $f12 -/* 0BB498 7F086928 00000000 */ nop -/* 0BB49C 7F08692C 46108282 */ mul.s $f10, $f16, $f16 -/* 0BB4A0 7F086930 460A4200 */ add.s $f8, $f8, $f10 -/* 0BB4A4 7F086934 C7AA01A0 */ lwc1 $f10, 0x1a0($sp) -/* 0BB4A8 7F086938 4608203C */ c.lt.s $f4, $f8 -/* 0BB4AC 7F08693C C7A40188 */ lwc1 $f4, 0x188($sp) -/* 0BB4B0 7F086940 45000003 */ bc1f .Ljp7F086950 -/* 0BB4B4 7F086944 46045201 */ sub.s $f8, $f10, $f4 -/* 0BB4B8 7F086948 46009306 */ mov.s $f12, $f18 -/* 0BB4BC 7F08694C 46003406 */ mov.s $f16, $f6 -.Ljp7F086950: -/* 0BB4C0 7F086950 C7A60390 */ lwc1 $f6, 0x390($sp) -/* 0BB4C4 7F086954 C7A403AC */ lwc1 $f4, 0x3ac($sp) -/* 0BB4C8 7F086958 27A403AC */ addiu $a0, $sp, 0x3ac -/* 0BB4CC 7F08695C 46083003 */ div.s $f0, $f6, $f8 -/* 0BB4D0 7F086960 00002825 */ move $a1, $zero -/* 0BB4D4 7F086964 460C0282 */ mul.s $f10, $f0, $f12 -/* 0BB4D8 7F086968 00000000 */ nop -/* 0BB4DC 7F08696C 460E2182 */ mul.s $f6, $f4, $f14 -/* 0BB4E0 7F086970 46065200 */ add.s $f8, $f10, $f6 -/* 0BB4E4 7F086974 46100102 */ mul.s $f4, $f0, $f16 -/* 0BB4E8 7F086978 C7AA03B4 */ lwc1 $f10, 0x3b4($sp) -/* 0BB4EC 7F08697C E7A803AC */ swc1 $f8, 0x3ac($sp) -/* 0BB4F0 7F086980 460E5182 */ mul.s $f6, $f10, $f14 -/* 0BB4F4 7F086984 C7AA0208 */ lwc1 $f10, 0x208($sp) -/* 0BB4F8 7F086988 46062200 */ add.s $f8, $f4, $f6 -/* 0BB4FC 7F08698C E7A803B4 */ swc1 $f8, 0x3b4($sp) -/* 0BB500 7F086990 E50A048C */ swc1 $f10, 0x48c($t0) -/* 0BB504 7F086994 8E2F0000 */ lw $t7, ($s1) -/* 0BB508 7F086998 C7A40204 */ lwc1 $f4, 0x204($sp) -/* 0BB50C 7F08699C E5E40494 */ swc1 $f4, 0x494($t7) -/* 0BB510 7F0869A0 8E390000 */ lw $t9, ($s1) -/* 0BB514 7F0869A4 8FAA0200 */ lw $t2, 0x200($sp) -/* 0BB518 7F0869A8 AF2A0488 */ sw $t2, 0x488($t9) -/* 0BB51C 7F0869AC 8E2B0000 */ lw $t3, ($s1) -/* 0BB520 7F0869B0 C5661274 */ lwc1 $f6, 0x1274($t3) -/* 0BB524 7F0869B4 4606A032 */ c.eq.s $f20, $f6 -/* 0BB528 7F0869B8 00000000 */ nop -/* 0BB52C 7F0869BC 45000002 */ bc1f .Ljp7F0869C8 -/* 0BB530 7F0869C0 00000000 */ nop -/* 0BB534 7F0869C4 24050001 */ li $a1, 1 -.Ljp7F0869C8: -/* 0BB538 7F0869C8 0FC1F7E1 */ jal sub_GAME_7F07D960 -/* 0BB53C 7F0869CC 00000000 */ nop -.Ljp7F0869D0: -/* 0BB540 7F0869D0 8E280000 */ lw $t0, ($s1) -.Ljp7F0869D4: -/* 0BB544 7F0869D4 C7AA0208 */ lwc1 $f10, 0x208($sp) -/* 0BB548 7F0869D8 C7A60204 */ lwc1 $f6, 0x204($sp) -/* 0BB54C 7F0869DC C508048C */ lwc1 $f8, 0x48c($t0) -/* 0BB550 7F0869E0 C5040494 */ lwc1 $f4, 0x494($t0) -/* 0BB554 7F0869E4 460A4081 */ sub.s $f2, $f8, $f10 -/* 0BB558 7F0869E8 C7A803B4 */ lwc1 $f8, 0x3b4($sp) -/* 0BB55C 7F0869EC 46062381 */ sub.s $f14, $f4, $f6 -/* 0BB560 7F0869F0 46084282 */ mul.s $f10, $f8, $f8 -/* 0BB564 7F0869F4 C7A403AC */ lwc1 $f4, 0x3ac($sp) -/* 0BB568 7F0869F8 46042182 */ mul.s $f6, $f4, $f4 -/* 0BB56C 7F0869FC 46065000 */ add.s $f0, $f10, $f6 -/* 0BB570 7F086A00 46140032 */ c.eq.s $f0, $f20 -/* 0BB574 7F086A04 46000306 */ mov.s $f12, $f0 -/* 0BB578 7F086A08 45010006 */ bc1t .Ljp7F086A24 -/* 0BB57C 7F086A0C 00000000 */ nop -/* 0BB580 7F086A10 46021202 */ mul.s $f8, $f2, $f2 -/* 0BB584 7F086A14 00000000 */ nop -/* 0BB588 7F086A18 460E7102 */ mul.s $f4, $f14, $f14 -/* 0BB58C 7F086A1C 46044280 */ add.s $f10, $f8, $f4 -/* 0BB590 7F086A20 46005303 */ div.s $f12, $f10, $f0 -.Ljp7F086A24: -/* 0BB594 7F086A24 0C007E08 */ jal sqrtf -/* 0BB598 7F086A28 00000000 */ nop -/* 0BB59C 7F086A2C C7A80220 */ lwc1 $f8, 0x220($sp) -/* 0BB5A0 7F086A30 8E280000 */ lw $t0, ($s1) -/* 0BB5A4 7F086A34 46080102 */ mul.s $f4, $f0, $f8 -/* 0BB5A8 7F086A38 C5061278 */ lwc1 $f6, 0x1278($t0) -/* 0BB5AC 7F086A3C 46043280 */ add.s $f10, $f6, $f4 -/* 0BB5B0 7F086A40 E50A1278 */ swc1 $f10, 0x1278($t0) -/* 0BB5B4 7F086A44 C7A6021C */ lwc1 $f6, 0x21c($sp) -/* 0BB5B8 7F086A48 8E280000 */ lw $t0, ($s1) -/* 0BB5BC 7F086A4C 46060102 */ mul.s $f4, $f0, $f6 -/* 0BB5C0 7F086A50 C508127C */ lwc1 $f8, 0x127c($t0) -/* 0BB5C4 7F086A54 46044280 */ add.s $f10, $f8, $f4 -/* 0BB5C8 7F086A58 E50A127C */ swc1 $f10, 0x127c($t0) -.Ljp7F086A5C: -/* 0BB5CC 7F086A5C 8E280000 */ lw $t0, ($s1) -.Ljp7F086A60: -/* 0BB5D0 7F086A60 3C018005 */ lui $at, %hi(D_8005524C) -/* 0BB5D4 7F086A64 C428527C */ lwc1 $f8, %lo(D_8005524C)($at) -/* 0BB5D8 7F086A68 C5060160 */ lwc1 $f6, 0x160($t0) -/* 0BB5DC 7F086A6C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 0BB5E0 7F086A70 C50A00A4 */ lwc1 $f10, 0xa4($t0) -/* 0BB5E4 7F086A74 46083103 */ div.s $f4, $f6, $f8 -/* 0BB5E8 7F086A78 44813000 */ mtc1 $at, $f6 -/* 0BB5EC 7F086A7C C514014C */ lwc1 $f20, 0x14c($t0) -/* 0BB5F0 7F086A80 46065203 */ div.s $f8, $f10, $f6 -/* 0BB5F4 7F086A84 46082080 */ add.s $f2, $f4, $f8 -/* 0BB5F8 7F086A88 0FC23D76 */ jal sub_GAME_7F08EAF8 -/* 0BB5FC 7F086A8C E7A20144 */ swc1 $f2, 0x144($sp) -/* 0BB600 7F086A90 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BB604 7F086A94 44817000 */ mtc1 $at, $f14 -/* 0BB608 7F086A98 C7A20144 */ lwc1 $f2, 0x144($sp) -/* 0BB60C 7F086A9C 4407A000 */ mfc1 $a3, $f20 -/* 0BB610 7F086AA0 46000306 */ mov.s $f12, $f0 -/* 0BB614 7F086AA4 4602703C */ c.lt.s $f14, $f2 -/* 0BB618 7F086AA8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 0BB61C 7F086AAC 45020004 */ bc1fl .Ljp7F086AC0 -/* 0BB620 7F086AB0 44817000 */ mtc1 $at, $f14 -/* 0BB624 7F086AB4 10000008 */ b .Ljp7F086AD8 -/* 0BB628 7F086AB8 46007086 */ mov.s $f2, $f14 -/* 0BB62C 7F086ABC 44817000 */ mtc1 $at, $f14 -.Ljp7F086AC0: -/* 0BB630 7F086AC0 00000000 */ nop -/* 0BB634 7F086AC4 460E103C */ c.lt.s $f2, $f14 -/* 0BB638 7F086AC8 00000000 */ nop -/* 0BB63C 7F086ACC 45020003 */ bc1fl .Ljp7F086ADC -/* 0BB640 7F086AD0 8E2C0000 */ lw $t4, ($s1) -/* 0BB644 7F086AD4 46007086 */ mov.s $f2, $f14 -.Ljp7F086AD8: -/* 0BB648 7F086AD8 8E2C0000 */ lw $t4, ($s1) -.Ljp7F086ADC: -/* 0BB64C 7F086ADC 24010001 */ li $at, 1 -/* 0BB650 7F086AE0 44061000 */ mfc1 $a2, $f2 -/* 0BB654 7F086AE4 8D8D04E8 */ lw $t5, 0x4e8($t4) -/* 0BB658 7F086AE8 15A10004 */ bne $t5, $at, .Ljp7F086AFC -/* 0BB65C 7F086AEC 3C018005 */ lui $at, %hi(D_80055250) # $at, 0x8005 -/* 0BB660 7F086AF0 C42A5280 */ lwc1 $f10, %lo(D_80055250)($at) -/* 0BB664 7F086AF4 460A0302 */ mul.s $f12, $f0, $f10 -/* 0BB668 7F086AF8 00000000 */ nop -.Ljp7F086AFC: -/* 0BB66C 7F086AFC 0FC17981 */ jal sub_GAME_7F05E0E4 -/* 0BB670 7F086B00 C7AE0398 */ lwc1 $f14, 0x398($sp) -/* 0BB674 7F086B04 8E2E0000 */ lw $t6, ($s1) -/* 0BB678 7F086B08 3C018005 */ lui $at, %hi(D_80055254) # $at, 0x8005 -/* 0BB67C 7F086B0C C4245284 */ lwc1 $f4, %lo(D_80055254)($at) -/* 0BB680 7F086B10 C5C6015C */ lwc1 $f6, 0x15c($t6) -/* 0BB684 7F086B14 46043302 */ mul.s $f12, $f6, $f4 -/* 0BB688 7F086B18 0FC17AC4 */ jal sub_GAME_7F05E5F0 -/* 0BB68C 7F086B1C 00000000 */ nop -/* 0BB690 7F086B20 3C038003 */ lui $v1, %hi(ptr_playerstank) # $v1, 0x8003 -/* 0BB694 7F086B24 8C636490 */ lw $v1, %lo(ptr_playerstank)($v1) -/* 0BB698 7F086B28 3C188003 */ lui $t8, %hi(in_tank_flag) # $t8, 0x8003 -/* 0BB69C 7F086B2C 50600135 */ beql $v1, $zero, .Ljp7F087004 -/* 0BB6A0 7F086B30 8FA40394 */ lw $a0, 0x394($sp) -/* 0BB6A4 7F086B34 8F186488 */ lw $t8, %lo(in_tank_flag)($t8) -/* 0BB6A8 7F086B38 24010001 */ li $at, 1 -/* 0BB6AC 7F086B3C 3C0F8008 */ lui $t7, %hi(dword_CODE_bss_800799B8) # $t7, 0x8008 -/* 0BB6B0 7F086B40 57010130 */ bnel $t8, $at, .Ljp7F087004 -/* 0BB6B4 7F086B44 8FA40394 */ lw $a0, 0x394($sp) -/* 0BB6B8 7F086B48 8DEF99F8 */ lw $t7, %lo(dword_CODE_bss_800799B8)($t7) -/* 0BB6BC 7F086B4C 24010002 */ li $at, 2 -/* 0BB6C0 7F086B50 55E1012C */ bnel $t7, $at, .Ljp7F087004 -/* 0BB6C4 7F086B54 8FA40394 */ lw $a0, 0x394($sp) -/* 0BB6C8 7F086B58 8C620004 */ lw $v0, 4($v1) -/* 0BB6CC 7F086B5C 00002025 */ move $a0, $zero -/* 0BB6D0 7F086B60 AFA20138 */ sw $v0, 0x138($sp) -/* 0BB6D4 7F086B64 8C4A0014 */ lw $t2, 0x14($v0) -/* 0BB6D8 7F086B68 00408025 */ move $s0, $v0 -/* 0BB6DC 7F086B6C 8D590008 */ lw $t9, 8($t2) -/* 0BB6E0 7F086B70 8F2B0008 */ lw $t3, 8($t9) -/* 0BB6E4 7F086B74 8D6C0014 */ lw $t4, 0x14($t3) -/* 0BB6E8 7F086B78 8D8D0004 */ lw $t5, 4($t4) -/* 0BB6EC 7F086B7C 0FC177BC */ jal get_item_in_hand -/* 0BB6F0 7F086B80 AFAD0130 */ sw $t5, 0x130($sp) -/* 0BB6F4 7F086B84 38430020 */ xori $v1, $v0, 0x20 -/* 0BB6F8 7F086B88 2C640001 */ sltiu $a0, $v1, 1 -/* 0BB6FC 7F086B8C 50800005 */ beql $a0, $zero, .Ljp7F086BA4 -/* 0BB700 7F086B90 AE0400C4 */ sw $a0, 0xc4($s0) -/* 0BB704 7F086B94 0FC1786A */ jal get_hands_firing_status -/* 0BB708 7F086B98 00002025 */ move $a0, $zero -/* 0BB70C 7F086B9C 0002202B */ sltu $a0, $zero, $v0 -/* 0BB710 7F086BA0 AE0400C4 */ sw $a0, 0xc4($s0) -.Ljp7F086BA4: -/* 0BB714 7F086BA4 3C018003 */ lui $at, %hi(D_8003646C) # $at, 0x8003 -/* 0BB718 7F086BA8 C42864AC */ lwc1 $f8, %lo(D_8003646C)($at) -/* 0BB71C 7F086BAC 3C018003 */ lui $at, %hi(D_80036474) # $at, 0x8003 -/* 0BB720 7F086BB0 27A500F0 */ addiu $a1, $sp, 0xf0 -/* 0BB724 7F086BB4 E60800C8 */ swc1 $f8, 0xc8($s0) -/* 0BB728 7F086BB8 C42A64B4 */ lwc1 $f10, %lo(D_80036474)($at) -/* 0BB72C 7F086BBC 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BB730 7F086BC0 E60A00CC */ swc1 $f10, 0xcc($s0) -/* 0BB734 7F086BC4 C42664A4 */ lwc1 $f6, %lo(D_80036464)($at) -/* 0BB738 7F086BC8 3C018005 */ lui $at, %hi(D_80055258) # $at, 0x8005 -/* 0BB73C 7F086BCC E60600DC */ swc1 $f6, 0xdc($s0) -/* 0BB740 7F086BD0 C4245288 */ lwc1 $f4, %lo(D_80055258)($at) -/* 0BB744 7F086BD4 3C018003 */ lui $at, %hi(D_80036464) # $at, 0x8003 -/* 0BB748 7F086BD8 C42864A4 */ lwc1 $f8, %lo(D_80036464)($at) -/* 0BB74C 7F086BDC 0FC162C7 */ jal matrix_4x4_set_rotation_around_y -/* 0BB750 7F086BE0 46082301 */ sub.s $f12, $f4, $f8 -/* 0BB754 7F086BE4 8FAE0138 */ lw $t6, 0x138($sp) -/* 0BB758 7F086BE8 27A500F0 */ addiu $a1, $sp, 0xf0 -/* 0BB75C 7F086BEC 8DD80014 */ lw $t8, 0x14($t6) -/* 0BB760 7F086BF0 0FC163E7 */ jal matrix_scalar_multiply -/* 0BB764 7F086BF4 C70C0014 */ lwc1 $f12, 0x14($t8) -/* 0BB768 7F086BF8 3C018008 */ lui $at, %hi(flt_CODE_bss_800799AC) # $at, 0x8008 -/* 0BB76C 7F086BFC C42A99E8 */ lwc1 $f10, %lo(flt_CODE_bss_800799A8)($at) -/* 0BB770 7F086C00 C42499EC */ lwc1 $f4, %lo(flt_CODE_bss_800799AC)($at) -/* 0BB774 7F086C04 3C018008 */ lui $at, %hi(flt_CODE_bss_800799B0) # $at, 0x8008 -/* 0BB778 7F086C08 46005187 */ neg.s $f6, $f10 -/* 0BB77C 7F086C0C C42A99F0 */ lwc1 $f10, %lo(flt_CODE_bss_800799B0)($at) -/* 0BB780 7F086C10 E7A600E4 */ swc1 $f6, 0xe4($sp) -/* 0BB784 7F086C14 46002207 */ neg.s $f8, $f4 -/* 0BB788 7F086C18 46005187 */ neg.s $f6, $f10 -/* 0BB78C 7F086C1C E7A800E8 */ swc1 $f8, 0xe8($sp) -/* 0BB790 7F086C20 E7A600EC */ swc1 $f6, 0xec($sp) -/* 0BB794 7F086C24 27A400F0 */ addiu $a0, $sp, 0xf0 -/* 0BB798 7F086C28 0FC1623E */ jal matrix_4x4_rotate_vector_in_place -/* 0BB79C 7F086C2C 27A500E4 */ addiu $a1, $sp, 0xe4 -/* 0BB7A0 7F086C30 8E280000 */ lw $t0, ($s1) -/* 0BB7A4 7F086C34 C7A400E4 */ lwc1 $f4, 0xe4($sp) -/* 0BB7A8 7F086C38 C7A600EC */ lwc1 $f6, 0xec($sp) -/* 0BB7AC 7F086C3C C508048C */ lwc1 $f8, 0x48c($t0) -/* 0BB7B0 7F086C40 8FA20138 */ lw $v0, 0x138($sp) -/* 0BB7B4 7F086C44 46082280 */ add.s $f10, $f4, $f8 -/* 0BB7B8 7F086C48 E7AA00E4 */ swc1 $f10, 0xe4($sp) -/* 0BB7BC 7F086C4C C5040494 */ lwc1 $f4, 0x494($t0) -/* 0BB7C0 7F086C50 46043200 */ add.s $f8, $f6, $f4 -/* 0BB7C4 7F086C54 E7A800EC */ swc1 $f8, 0xec($sp) -/* 0BB7C8 7F086C58 8D0F0488 */ lw $t7, 0x488($t0) -/* 0BB7CC 7F086C5C 8C4A0010 */ lw $t2, 0x10($v0) -/* 0BB7D0 7F086C60 AD4F0014 */ sw $t7, 0x14($t2) -/* 0BB7D4 7F086C64 8E280000 */ lw $t0, ($s1) -/* 0BB7D8 7F086C68 C7AA00EC */ lwc1 $f10, 0xec($sp) -/* 0BB7DC 7F086C6C 8C440010 */ lw $a0, 0x10($v0) -/* 0BB7E0 7F086C70 8D05048C */ lw $a1, 0x48c($t0) -/* 0BB7E4 7F086C74 8D060494 */ lw $a2, 0x494($t0) -/* 0BB7E8 7F086C78 8FA700E4 */ lw $a3, 0xe4($sp) -/* 0BB7EC 7F086C7C E7AA0010 */ swc1 $f10, 0x10($sp) -/* 0BB7F0 7F086C80 0FC2C5E5 */ jal sub_GAME_7F0B0BE4 -/* 0BB7F4 7F086C84 24840014 */ addiu $a0, $a0, 0x14 -/* 0BB7F8 7F086C88 8FB90138 */ lw $t9, 0x138($sp) -/* 0BB7FC 7F086C8C 8FA500E4 */ lw $a1, 0xe4($sp) -/* 0BB800 7F086C90 8FA600EC */ lw $a2, 0xec($sp) -/* 0BB804 7F086C94 8F2B0010 */ lw $t3, 0x10($t9) -/* 0BB808 7F086C98 0FC2CD48 */ jal sub_GAME_7F0B2970 -/* 0BB80C 7F086C9C 8D640014 */ lw $a0, 0x14($t3) -/* 0BB810 7F086CA0 3C038005 */ lui $v1, %hi(clock_timer) # $v1, 0x8005 -/* 0BB814 7F086CA4 246383A4 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c5c -/* 0BB818 7F086CA8 E60000D4 */ swc1 $f0, 0xd4($s0) -/* 0BB81C 7F086CAC 8C6C0000 */ lw $t4, ($v1) -/* 0BB820 7F086CB0 00001025 */ move $v0, $zero -/* 0BB824 7F086CB4 3C018005 */ lui $at, %hi(D_8005525C) # $at, 0x8005 -/* 0BB828 7F086CB8 1980000C */ blez $t4, .Ljp7F086CEC -/* 0BB82C 7F086CBC 00000000 */ nop -/* 0BB830 7F086CC0 C60200D4 */ lwc1 $f2, 0xd4($s0) -/* 0BB834 7F086CC4 C420528C */ lwc1 $f0, %lo(D_8005525C)($at) -/* 0BB838 7F086CC8 C60600D0 */ lwc1 $f6, 0xd0($s0) -.Ljp7F086CCC: -/* 0BB83C 7F086CCC 24420001 */ addiu $v0, $v0, 1 -/* 0BB840 7F086CD0 46003102 */ mul.s $f4, $f6, $f0 -/* 0BB844 7F086CD4 46022200 */ add.s $f8, $f4, $f2 -/* 0BB848 7F086CD8 E60800D0 */ swc1 $f8, 0xd0($s0) -/* 0BB84C 7F086CDC 8C6D0000 */ lw $t5, ($v1) -/* 0BB850 7F086CE0 004D082A */ slt $at, $v0, $t5 -/* 0BB854 7F086CE4 5420FFF9 */ bnezl $at, .Ljp7F086CCC -/* 0BB858 7F086CE8 C60600D0 */ lwc1 $f6, 0xd0($s0) -.Ljp7F086CEC: -/* 0BB85C 7F086CEC 3C018005 */ lui $at, %hi(D_80055260) # $at, 0x8005 -/* 0BB860 7F086CF0 C4265290 */ lwc1 $f6, %lo(D_80055260)($at) -/* 0BB864 7F086CF4 C60A00D0 */ lwc1 $f10, 0xd0($s0) -/* 0BB868 7F086CF8 8FA40130 */ lw $a0, 0x130($sp) -/* 0BB86C 7F086CFC 46065502 */ mul.s $f20, $f10, $f6 -/* 0BB870 7F086D00 0FC0FAD9 */ jal sub_GAME_7F03E864 -/* 0BB874 7F086D04 00000000 */ nop -/* 0BB878 7F086D08 8FA20138 */ lw $v0, 0x138($sp) -/* 0BB87C 7F086D0C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0BB880 7F086D10 44813000 */ mtc1 $at, $f6 -/* 0BB884 7F086D14 8C4E0014 */ lw $t6, 0x14($v0) -/* 0BB888 7F086D18 27A400F0 */ addiu $a0, $sp, 0xf0 -/* 0BB88C 7F086D1C 24450018 */ addiu $a1, $v0, 0x18 -/* 0BB890 7F086D20 C5C40014 */ lwc1 $f4, 0x14($t6) -/* 0BB894 7F086D24 46040202 */ mul.s $f8, $f0, $f4 -/* 0BB898 7F086D28 4608A281 */ sub.s $f10, $f20, $f8 -/* 0BB89C 7F086D2C 46065100 */ add.s $f4, $f10, $f6 -/* 0BB8A0 7F086D30 0FC16150 */ jal matrix_4x4_copy -/* 0BB8A4 7F086D34 E7A400E8 */ swc1 $f4, 0xe8($sp) -/* 0BB8A8 7F086D38 8FA40138 */ lw $a0, 0x138($sp) -/* 0BB8AC 7F086D3C C7A000E4 */ lwc1 $f0, 0xe4($sp) -/* 0BB8B0 7F086D40 8C980010 */ lw $t8, 0x10($a0) -/* 0BB8B4 7F086D44 E7000008 */ swc1 $f0, 8($t8) -/* 0BB8B8 7F086D48 E4800058 */ swc1 $f0, 0x58($a0) -/* 0BB8BC 7F086D4C C7A000E8 */ lwc1 $f0, 0xe8($sp) -/* 0BB8C0 7F086D50 8C8F0010 */ lw $t7, 0x10($a0) -/* 0BB8C4 7F086D54 E5E0000C */ swc1 $f0, 0xc($t7) -/* 0BB8C8 7F086D58 E480005C */ swc1 $f0, 0x5c($a0) -/* 0BB8CC 7F086D5C C7A000EC */ lwc1 $f0, 0xec($sp) -/* 0BB8D0 7F086D60 8C8A0010 */ lw $t2, 0x10($a0) -/* 0BB8D4 7F086D64 E5400010 */ swc1 $f0, 0x10($t2) -/* 0BB8D8 7F086D68 0FC15C68 */ jal sub_GAME_7F056CA0 -/* 0BB8DC 7F086D6C E4800060 */ swc1 $f0, 0x60($a0) -/* 0BB8E0 7F086D70 0FC101E1 */ jal sub_GAME_7F040484 -/* 0BB8E4 7F086D74 8FA40138 */ lw $a0, 0x138($sp) -/* 0BB8E8 7F086D78 8E250000 */ lw $a1, ($s1) -/* 0BB8EC 7F086D7C 3C068003 */ lui $a2, %hi(D_80036464) # $a2, 0x8003 -/* 0BB8F0 7F086D80 8CC664A4 */ lw $a2, %lo(D_80036464)($a2) -/* 0BB8F4 7F086D84 27A400B4 */ addiu $a0, $sp, 0xb4 -/* 0BB8F8 7F086D88 0FC1F3AB */ jal sub_GAME_7F07C888 -/* 0BB8FC 7F086D8C 24A5048C */ addiu $a1, $a1, 0x48c -/* 0BB900 7F086D90 8FB90138 */ lw $t9, 0x138($sp) -/* 0BB904 7F086D94 27B00094 */ addiu $s0, $sp, 0x94 -/* 0BB908 7F086D98 02002825 */ move $a1, $s0 -/* 0BB90C 7F086D9C 0FC0F3A3 */ jal sub_GAME_7F03CB8C -/* 0BB910 7F086DA0 8F240010 */ lw $a0, 0x10($t9) -/* 0BB914 7F086DA4 0FC0F9BF */ jal sub_GAME_7F03E3FC -/* 0BB918 7F086DA8 02002025 */ move $a0, $s0 -/* 0BB91C 7F086DAC 3C0B8007 */ lui $t3, %hi(ptr_list_object_lookup_indices) # $t3, 0x8007 -/* 0BB920 7F086DB0 8D6B9C70 */ lw $t3, %lo(ptr_list_object_lookup_indices)($t3) -/* 0BB924 7F086DB4 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 0BB928 7F086DB8 AFAB008C */ sw $t3, 0x8c($sp) -/* 0BB92C 7F086DBC 85620000 */ lh $v0, ($t3) -/* 0BB930 7F086DC0 04420090 */ bltzl $v0, .Ljp7F087004 -/* 0BB934 7F086DC4 8FA40394 */ lw $a0, 0x394($sp) -/* 0BB938 7F086DC8 4481A000 */ mtc1 $at, $f20 -/* 0BB93C 7F086DCC 00000000 */ nop -/* 0BB940 7F086DD0 8FAE0138 */ lw $t6, 0x138($sp) -.Ljp7F086DD4: -/* 0BB944 7F086DD4 00026080 */ sll $t4, $v0, 2 -/* 0BB948 7F086DD8 01826023 */ subu $t4, $t4, $v0 -/* 0BB94C 7F086DDC 000C6080 */ sll $t4, $t4, 2 -/* 0BB950 7F086DE0 8DD80010 */ lw $t8, 0x10($t6) -/* 0BB954 7F086DE4 01826021 */ addu $t4, $t4, $v0 -/* 0BB958 7F086DE8 3C0D8007 */ lui $t5, %hi(pos_data_entry) # $t5, 0x8007 -/* 0BB95C 7F086DEC 25AD9C78 */ addiu $t5, %lo(pos_data_entry) # addiu $t5, $t5, -0x6388 -/* 0BB960 7F086DF0 000C6080 */ sll $t4, $t4, 2 -/* 0BB964 7F086DF4 018D8021 */ addu $s0, $t4, $t5 -/* 0BB968 7F086DF8 5218007C */ beql $s0, $t8, .Ljp7F086FEC -/* 0BB96C 7F086DFC 8FAC008C */ lw $t4, 0x8c($sp) -/* 0BB970 7F086E00 92020000 */ lbu $v0, ($s0) -/* 0BB974 7F086E04 24010003 */ li $at, 3 -/* 0BB978 7F086E08 240F0001 */ li $t7, 1 -/* 0BB97C 7F086E0C 1441005A */ bne $v0, $at, .Ljp7F086F78 -/* 0BB980 7F086E10 02002025 */ move $a0, $s0 -/* 0BB984 7F086E14 AFAF007C */ sw $t7, 0x7c($sp) -/* 0BB988 7F086E18 8E030004 */ lw $v1, 4($s0) -/* 0BB98C 7F086E1C 27A50080 */ addiu $a1, $sp, 0x80 -/* 0BB990 7F086E20 27A60088 */ addiu $a2, $sp, 0x88 -/* 0BB994 7F086E24 27A70084 */ addiu $a3, $sp, 0x84 -/* 0BB998 7F086E28 0FC0F4A2 */ jal sub_GAME_7F03CF88 -/* 0BB99C 7F086E2C AFA3006C */ sw $v1, 0x6c($sp) -/* 0BB9A0 7F086E30 26040008 */ addiu $a0, $s0, 8 -/* 0BB9A4 7F086E34 AFA40050 */ sw $a0, 0x50($sp) -/* 0BB9A8 7F086E38 27A500B4 */ addiu $a1, $sp, 0xb4 -/* 0BB9AC 7F086E3C 0FC0F3F6 */ jal sub_GAME_7F03CCD8 -/* 0BB9B0 7F086E40 24060004 */ li $a2, 4 -/* 0BB9B4 7F086E44 10400031 */ beqz $v0, .Ljp7F086F0C -/* 0BB9B8 7F086E48 8FA3006C */ lw $v1, 0x6c($sp) -/* 0BB9BC 7F086E4C AFA0007C */ sw $zero, 0x7c($sp) -/* 0BB9C0 7F086E50 806A0007 */ lb $t2, 7($v1) -/* 0BB9C4 7F086E54 24010004 */ li $at, 4 -/* 0BB9C8 7F086E58 5541002D */ bnel $t2, $at, .Ljp7F086F10 -/* 0BB9CC 7F086E5C 8FAF007C */ lw $t7, 0x7c($sp) -/* 0BB9D0 7F086E60 8C790014 */ lw $t9, 0x14($v1) -/* 0BB9D4 7F086E64 001959C0 */ sll $t3, $t9, 7 -/* 0BB9D8 7F086E68 05620029 */ bltzl $t3, .Ljp7F086F10 -/* 0BB9DC 7F086E6C 8FAF007C */ lw $t7, 0x7c($sp) -/* 0BB9E0 7F086E70 0FC3021B */ jal get_controls_locked_flag -/* 0BB9E4 7F086E74 AFA3006C */ sw $v1, 0x6c($sp) -/* 0BB9E8 7F086E78 14400024 */ bnez $v0, .Ljp7F086F0C -/* 0BB9EC 7F086E7C 8FA3006C */ lw $v1, 0x6c($sp) -/* 0BB9F0 7F086E80 8C6C0014 */ lw $t4, 0x14($v1) -/* 0BB9F4 7F086E84 3C010100 */ lui $at, 0x100 -/* 0BB9F8 7F086E88 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 -/* 0BB9FC 7F086E8C 01816825 */ or $t5, $t4, $at -/* 0BBA00 7F086E90 AC6D0014 */ sw $t5, 0x14($v1) -/* 0BBA04 7F086E94 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) -/* 0BBA08 7F086E98 24010003 */ li $at, 3 -/* 0BBA0C 7F086E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BBA10 7F086EA0 0041001A */ div $zero, $v0, $at -/* 0BBA14 7F086EA4 00001010 */ mfhi $v0 -/* 0BBA18 7F086EA8 28410002 */ slti $at, $v0, 2 -/* 0BBA1C 7F086EAC 1020000E */ beqz $at, .Ljp7F086EE8 -/* 0BBA20 7F086EB0 240500B7 */ li $a1, 183 -/* 0BBA24 7F086EB4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BBA28 7F086EB8 0C002386 */ jal play_sfx_a1 -/* 0BBA2C 7F086EBC 00003025 */ move $a2, $zero -/* 0BBA30 7F086EC0 00402025 */ move $a0, $v0 -/* 0BBA34 7F086EC4 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 0BBA38 7F086EC8 8FA50050 */ lw $a1, 0x50($sp) -/* 0BBA3C 7F086ECC 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 -/* 0BBA40 7F086ED0 8C4283B0 */ lw $v0, %lo(D_80048380)($v0) -/* 0BBA44 7F086ED4 24010003 */ li $at, 3 -/* 0BBA48 7F086ED8 0041001A */ div $zero, $v0, $at -/* 0BBA4C 7F086EDC 00001010 */ mfhi $v0 -/* 0BBA50 7F086EE0 00000000 */ nop -/* 0BBA54 7F086EE4 00000000 */ nop -.Ljp7F086EE8: -/* 0BBA58 7F086EE8 18400008 */ blez $v0, .Ljp7F086F0C -/* 0BBA5C 7F086EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BBA60 7F086EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BBA64 7F086EF4 240500D5 */ li $a1, 213 -/* 0BBA68 7F086EF8 0C002386 */ jal play_sfx_a1 -/* 0BBA6C 7F086EFC 00003025 */ move $a2, $zero -/* 0BBA70 7F086F00 00402025 */ move $a0, $v0 -/* 0BBA74 7F086F04 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 0BBA78 7F086F08 8FA50050 */ lw $a1, 0x50($sp) -.Ljp7F086F0C: -/* 0BBA7C 7F086F0C 8FAF007C */ lw $t7, 0x7c($sp) -.Ljp7F086F10: -/* 0BBA80 7F086F10 8FA40050 */ lw $a0, 0x50($sp) -/* 0BBA84 7F086F14 8FA50080 */ lw $a1, 0x80($sp) -/* 0BBA88 7F086F18 11E00006 */ beqz $t7, .Ljp7F086F34 -/* 0BBA8C 7F086F1C 27A600B4 */ addiu $a2, $sp, 0xb4 -/* 0BBA90 7F086F20 0FC112BB */ jal sub_GAME_7F044718 -/* 0BBA94 7F086F24 24070004 */ li $a3, 4 -/* 0BBA98 7F086F28 50400003 */ beql $v0, $zero, .Ljp7F086F38 -/* 0BBA9C 7F086F2C 8FAA007C */ lw $t2, 0x7c($sp) -/* 0BBAA0 7F086F30 AFA0007C */ sw $zero, 0x7c($sp) -.Ljp7F086F34: -/* 0BBAA4 7F086F34 8FAA007C */ lw $t2, 0x7c($sp) -.Ljp7F086F38: -/* 0BBAA8 7F086F38 8FB90138 */ lw $t9, 0x138($sp) -/* 0BBAAC 7F086F3C 5540002B */ bnezl $t2, .Ljp7F086FEC -/* 0BBAB0 7F086F40 8FAC008C */ lw $t4, 0x8c($sp) -/* 0BBAB4 7F086F44 C7280058 */ lwc1 $f8, 0x58($t9) -/* 0BBAB8 7F086F48 4406A000 */ mfc1 $a2, $f20 -/* 0BBABC 7F086F4C 27A50070 */ addiu $a1, $sp, 0x70 -/* 0BBAC0 7F086F50 E7A80070 */ swc1 $f8, 0x70($sp) -/* 0BBAC4 7F086F54 C60A000C */ lwc1 $f10, 0xc($s0) -/* 0BBAC8 7F086F58 24070001 */ li $a3, 1 -/* 0BBACC 7F086F5C E7AA0074 */ swc1 $f10, 0x74($sp) -/* 0BBAD0 7F086F60 C7260060 */ lwc1 $f6, 0x60($t9) -/* 0BBAD4 7F086F64 E7A60078 */ swc1 $f6, 0x78($sp) -/* 0BBAD8 7F086F68 0FC09EC3 */ jal sub_GAME_7F027804 -/* 0BBADC 7F086F6C 8E040004 */ lw $a0, 4($s0) -/* 0BBAE0 7F086F70 1000001E */ b .Ljp7F086FEC -/* 0BBAE4 7F086F74 8FAC008C */ lw $t4, 0x8c($sp) -.Ljp7F086F78: -/* 0BBAE8 7F086F78 24010001 */ li $at, 1 -/* 0BBAEC 7F086F7C 1441001A */ bne $v0, $at, .Ljp7F086FE8 -/* 0BBAF0 7F086F80 02002025 */ move $a0, $s0 -/* 0BBAF4 7F086F84 27A50064 */ addiu $a1, $sp, 0x64 -/* 0BBAF8 7F086F88 0FC0F3EC */ jal sub_GAME_7F03CCB0 -/* 0BBAFC 7F086F8C 27A60060 */ addiu $a2, $sp, 0x60 -/* 0BBB00 7F086F90 8FA50060 */ lw $a1, 0x60($sp) -/* 0BBB04 7F086F94 8FA40064 */ lw $a0, 0x64($sp) -/* 0BBB08 7F086F98 27A600B4 */ addiu $a2, $sp, 0xb4 -/* 0BBB0C 7F086F9C 58A00013 */ blezl $a1, .Ljp7F086FEC -/* 0BBB10 7F086FA0 8FAC008C */ lw $t4, 0x8c($sp) -/* 0BBB14 7F086FA4 0FC11268 */ jal sub_GAME_7F0446B8 -/* 0BBB18 7F086FA8 24070004 */ li $a3, 4 -/* 0BBB1C 7F086FAC 5040000F */ beql $v0, $zero, .Ljp7F086FEC -/* 0BBB20 7F086FB0 8FAC008C */ lw $t4, 0x8c($sp) -/* 0BBB24 7F086FB4 0FC26F3C */ jal get_cur_playernum -/* 0BBB28 7F086FB8 00000000 */ nop -/* 0BBB2C 7F086FBC 8E060004 */ lw $a2, 4($s0) -/* 0BBB30 7F086FC0 3C05461C */ lui $a1, (0x461C4000 >> 16) # lui $a1, 0x461c -/* 0BBB34 7F086FC4 34A54000 */ ori $a1, (0x461C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 -/* 0BBB38 7F086FC8 AFA20010 */ sw $v0, 0x10($sp) -/* 0BBB3C 7F086FCC 02002025 */ move $a0, $s0 -/* 0BBB40 7F086FD0 24070020 */ li $a3, 32 -/* 0BBB44 7F086FD4 0FC138C0 */ jal sub_GAME_7F04DEFC -/* 0BBB48 7F086FD8 24C60058 */ addiu $a2, $a2, 0x58 -/* 0BBB4C 7F086FDC 240B005A */ li $t3, 90 -/* 0BBB50 7F086FE0 3C018003 */ lui $at, %hi(D_80036490) # $at, 0x8003 -/* 0BBB54 7F086FE4 AC2B64D0 */ sw $t3, %lo(D_80036490)($at) -.Ljp7F086FE8: -/* 0BBB58 7F086FE8 8FAC008C */ lw $t4, 0x8c($sp) -.Ljp7F086FEC: -/* 0BBB5C 7F086FEC 258D0002 */ addiu $t5, $t4, 2 -/* 0BBB60 7F086FF0 AFAD008C */ sw $t5, 0x8c($sp) -/* 0BBB64 7F086FF4 85A20000 */ lh $v0, ($t5) -/* 0BBB68 7F086FF8 0443FF76 */ bgezl $v0, .Ljp7F086DD4 -/* 0BBB6C 7F086FFC 8FAE0138 */ lw $t6, 0x138($sp) -/* 0BBB70 7F087000 8FA40394 */ lw $a0, 0x394($sp) -.Ljp7F087004: -/* 0BBB74 7F087004 0FC20502 */ jal sub_GAME_7F080DF8 -/* 0BBB78 7F087008 8FA50390 */ lw $a1, 0x390($sp) -/* 0BBB7C 7F08700C 0FC206A2 */ jal sub_GAME_7F081478 -/* 0BBB80 7F087010 00000000 */ nop -/* 0BBB84 7F087014 0FC22A35 */ jal sub_GAME_7F08A19C -/* 0BBB88 7F087018 00000000 */ nop -/* 0BBB8C 7F08701C 0FC24697 */ jal get_debug_man_pos_flag -/* 0BBB90 7F087020 00000000 */ nop -/* 0BBB94 7F087024 50400008 */ beql $v0, $zero, .Ljp7F087048 -/* 0BBB98 7F087028 8FBF002C */ lw $ra, 0x2c($sp) -/* 0BBB9C 7F08702C 8E280000 */ lw $t0, ($s1) -/* 0BBBA0 7F087030 27A7005C */ addiu $a3, $sp, 0x5c -/* 0BBBA4 7F087034 8D040488 */ lw $a0, 0x488($t0) -/* 0BBBA8 7F087038 8D05048C */ lw $a1, 0x48c($t0) -/* 0BBBAC 7F08703C 0FC2CDF7 */ jal copy_tile_RGB_as_24bit -/* 0BBBB0 7F087040 8D060494 */ lw $a2, 0x494($t0) -/* 0BBBB4 7F087044 8FBF002C */ lw $ra, 0x2c($sp) -.Ljp7F087048: -/* 0BBBB8 7F087048 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0BBBBC 7F08704C 8FB00024 */ lw $s0, 0x24($sp) -/* 0BBBC0 7F087050 8FB10028 */ lw $s1, 0x28($sp) -/* 0BBBC4 7F087054 03E00008 */ jr $ra -/* 0BBBC8 7F087058 27BD03B8 */ addiu $sp, $sp, 0x3b8 - -) -#endif #endif @@ -24362,7 +29764,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBAE8 7F086FB8 AFA60028 */ sw $a2, 0x28($sp) /* 0BBAEC 7F086FBC 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0BBAF0 7F086FC0 44816000 */ mtc1 $at, $f12 -/* 0BBAF4 7F086FC4 0C001151 */ jal setvideo_far +/* 0BBAF4 7F086FC4 0C001151 */ jal viSetFovY /* 0BBAF8 7F086FC8 00000000 */ nop /* 0BBAFC 7F086FCC 3C038003 */ lui $v1, %hi(camera_80036430) /* 0BBB00 7F086FD0 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 @@ -24374,7 +29776,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBB18 7F086FE8 8DCE6428 */ lw $t6, %lo(resolution)($t6) /* 0BBB1C 7F086FEC 51C0000E */ beql $t6, $zero, .L7F087028 /* 0BBB20 7F086FF0 8C790000 */ lw $t9, ($v1) -/* 0BBB24 7F086FF4 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB24 7F086FF4 0C000F07 */ jal viGetFrameBuf2 /* 0BBB28 7F086FF8 00000000 */ nop /* 0BBB2C 7F086FFC 3C0F803E */ lui $t7, %hi(cfb_16+0x25800) # $t7, 0x803e /* 0BBB30 7F087000 25EFA800 */ addiu $t7, %lo(cfb_16+0x25800) # addiu $t7, $t7, -0x5800 @@ -24400,7 +29802,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBB74 7F087044 28410004 */ slti $at, $v0, 4 /* 0BBB78 7F087048 5420000D */ bnezl $at, .L7F087080 /* 0BBB7C 7F08704C 8C6A0000 */ lw $t2, ($v1) -/* 0BBB80 7F087050 0C000F07 */ jal get_video_settings2_frameb +/* 0BBB80 7F087050 0C000F07 */ jal viGetFrameBuf2 /* 0BBB84 7F087054 00000000 */ nop /* 0BBB88 7F087058 3C09803B */ lui $t1, %hi(cfb_16) # $t1, 0x803b /* 0BBB8C 7F08705C 25295000 */ addiu $t1, %lo(cfb_16) # addiu $t1, $t1, 0x5000 @@ -24421,13 +29823,13 @@ glabel possibly_reset_viewport_options_for_player /* 0BBBBC 7F08708C 8D8C642C */ lw $t4, %lo(camera_8003642C)($t4) /* 0BBBC0 7F087090 11800009 */ beqz $t4, .L7F0870B8 /* 0BBBC4 7F087094 00000000 */ nop -/* 0BBBC8 7F087098 0C000F07 */ jal get_video_settings2_frameb +/* 0BBBC8 7F087098 0C000F07 */ jal viGetFrameBuf2 /* 0BBBCC 7F08709C 00000000 */ nop /* 0BBBD0 7F0870A0 3C0D803E */ lui $t5, %hi(cfb_16+0x25800) # $t5, 0x803e /* 0BBBD4 7F0870A4 25ADA800 */ addiu $t5, %lo(cfb_16+0x25800) # addiu $t5, $t5, -0x5800 /* 0BBBD8 7F0870A8 144D0003 */ bne $v0, $t5, .L7F0870B8 /* 0BBBDC 7F0870AC 3C048003 */ lui $a0, %hi(resolution) -/* 0BBBE0 7F0870B0 0C000F0F */ jal set_video2buf_frameb +/* 0BBBE0 7F0870B0 0C000F0F */ jal viSetFrameBuf2 /* 0BBBE4 7F0870B4 8C846428 */ lw $a0, %lo(resolution)($a0) .L7F0870B8: /* 0BBBE8 7F0870B8 0FC293B8 */ jal get_screen_ratio @@ -24471,7 +29873,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBC80 7F087150 46082182 */ mul.s $f6, $f4, $f8 /* 0BBC84 7F087154 00000000 */ nop /* 0BBC88 7F087158 46103302 */ mul.s $f12, $f6, $f16 -/* 0BBC8C 7F08715C 0C001164 */ jal set_page_aspect +/* 0BBC8C 7F08715C 0C001164 */ jal viSetAspect /* 0BBC90 7F087160 00000000 */ nop /* 0BBC94 7F087164 10000017 */ b .L7F0871C4 /* 0BBC98 7F087168 00000000 */ nop @@ -24496,7 +29898,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBCE0 7F0871B0 44993000 */ mtc1 $t9, $f6 /* 0BBCE4 7F0871B4 46805120 */ cvt.s.w $f4, $f10 /* 0BBCE8 7F0871B8 46803420 */ cvt.s.w $f16, $f6 -/* 0BBCEC 7F0871BC 0C001164 */ jal set_page_aspect +/* 0BBCEC 7F0871BC 0C001164 */ jal viSetAspect /* 0BBCF0 7F0871C0 46048303 */ div.s $f12, $f16, $f4 .L7F0871C4: /* 0BBCF4 7F0871C4 0FC21B10 */ jal get_curplayer_viewport_width @@ -24520,7 +29922,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBD3C 7F08720C 00022C00 */ sll $a1, $v0, 0x10 /* 0BBD40 7F087210 00054403 */ sra $t0, $a1, 0x10 /* 0BBD44 7F087214 01002825 */ move $a1, $t0 -/* 0BBD48 7F087218 0C0010FE */ jal set_video2_text_clip_size +/* 0BBD48 7F087218 0C0010FE */ jal viSetXY /* 0BBD4C 7F08721C 87A4001C */ lh $a0, 0x1c($sp) /* 0BBD50 7F087220 0FC21AFE */ jal getWidth320or440 /* 0BBD54 7F087224 00000000 */ nop @@ -24529,7 +29931,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBD60 7F087230 00022C00 */ sll $a1, $v0, 0x10 /* 0BBD64 7F087234 00054C03 */ sra $t1, $a1, 0x10 /* 0BBD68 7F087238 01202825 */ move $a1, $t1 -/* 0BBD6C 7F08723C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BBD6C 7F08723C 0C0010ED */ jal viSetBuf /* 0BBD70 7F087240 87A4001C */ lh $a0, 0x1c($sp) /* 0BBD74 7F087244 0FC21B10 */ jal get_curplayer_viewport_width /* 0BBD78 7F087248 00000000 */ nop @@ -24538,7 +29940,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBD84 7F087254 00022C00 */ sll $a1, $v0, 0x10 /* 0BBD88 7F087258 00055403 */ sra $t2, $a1, 0x10 /* 0BBD8C 7F08725C 01402825 */ move $a1, $t2 -/* 0BBD90 7F087260 0C00110F */ jal set_video2_width_height +/* 0BBD90 7F087260 0C00110F */ jal viSetViewSize /* 0BBD94 7F087264 87A4001C */ lh $a0, 0x1c($sp) /* 0BBD98 7F087268 0FC21B31 */ jal get_curplayer_viewport_ulx /* 0BBD9C 7F08726C 00000000 */ nop @@ -24547,7 +29949,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BBDA8 7F087278 00022C00 */ sll $a1, $v0, 0x10 /* 0BBDAC 7F08727C 00055C03 */ sra $t3, $a1, 0x10 /* 0BBDB0 7F087280 01602825 */ move $a1, $t3 -/* 0BBDB4 7F087284 0C00112F */ jal set_video2_ulx_uly +/* 0BBDB4 7F087284 0C00112F */ jal viSetViewPosition /* 0BBDB8 7F087288 87A4001C */ lh $a0, 0x1c($sp) /* 0BBDBC 7F08728C 0FC2022F */ jal currentPlayerUpdateColourScreenProperties /* 0BBDC0 7F087290 00000000 */ nop @@ -24754,7 +30156,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC0B4 7F087584 2B210003 */ slti $at, $t9, 3 /* 0BC0B8 7F087588 14200003 */ bnez $at, .L7F087598 /* 0BC0BC 7F08758C 00000000 */ nop -/* 0BC0C0 7F087590 0C001A4C */ jal run_title_stage +/* 0BC0C0 7F087590 0C001A4C */ jal bossRunTitleStage /* 0BC0C4 7F087594 00000000 */ nop .L7F087598: /* 0BC0C8 7F087598 3C088003 */ lui $t0, %hi(cameramode) @@ -24766,7 +30168,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC0E0 7F0875B0 00000000 */ nop /* 0BC0E4 7F0875B4 10400003 */ beqz $v0, .L7F0875C4 /* 0BC0E8 7F0875B8 00000000 */ nop -/* 0BC0EC 7F0875BC 0C001A4C */ jal run_title_stage +/* 0BC0EC 7F0875BC 0C001A4C */ jal bossRunTitleStage /* 0BC0F0 7F0875C0 00000000 */ nop .L7F0875C4: /* 0BC0F4 7F0875C4 3C0A8008 */ lui $t2, %hi(pPlayer) @@ -24799,7 +30201,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC1F4 7F087684 AFA60028 */ sw $a2, 0x28($sp) /* 0BC1F8 7F087688 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0BC1FC 7F08768C 44816000 */ mtc1 $at, $f12 -/* 0BC200 7F087690 0C001151 */ jal setvideo_far +/* 0BC200 7F087690 0C001151 */ jal viSetFovY /* 0BC204 7F087694 00000000 */ nop /* 0BC208 7F087698 3C038003 */ lui $v1, %hi(camera_80036430) # $v1, 0x8003 /* 0BC20C 7F08769C 24636470 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6470 @@ -24811,7 +30213,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC224 7F0876B4 8DCE6468 */ lw $t6, %lo(resolution)($t6) /* 0BC228 7F0876B8 51C0000E */ beql $t6, $zero, .Ljp7F0876F4 /* 0BC22C 7F0876BC 8C790000 */ lw $t9, ($v1) -/* 0BC230 7F0876C0 0C000F07 */ jal get_video_settings2_frameb +/* 0BC230 7F0876C0 0C000F07 */ jal viGetFrameBuf2 /* 0BC234 7F0876C4 00000000 */ nop /* 0BC238 7F0876C8 3C0F803E */ lui $t7, %hi(cfb_16+0x25800) # $t7, 0x803e /* 0BC23C 7F0876CC 25EFA800 */ addiu $t7, %lo(cfb_16+0x25800) # addiu $t7, $t7, -0x5800 @@ -24837,7 +30239,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC280 7F087710 28410004 */ slti $at, $v0, 4 /* 0BC284 7F087714 5420000D */ bnezl $at, .Ljp7F08774C /* 0BC288 7F087718 8C6A0000 */ lw $t2, ($v1) -/* 0BC28C 7F08771C 0C000F07 */ jal get_video_settings2_frameb +/* 0BC28C 7F08771C 0C000F07 */ jal viGetFrameBuf2 /* 0BC290 7F087720 00000000 */ nop /* 0BC294 7F087724 3C09803B */ lui $t1, %hi(cfb_16) # $t1, 0x803b /* 0BC298 7F087728 25295000 */ addiu $t1, %lo(cfb_16) # addiu $t1, $t1, 0x5000 @@ -24858,13 +30260,13 @@ glabel possibly_reset_viewport_options_for_player /* 0BC2C8 7F087758 8D8C646C */ lw $t4, %lo(camera_8003642C)($t4) /* 0BC2CC 7F08775C 11800009 */ beqz $t4, .Ljp7F087784 /* 0BC2D0 7F087760 00000000 */ nop -/* 0BC2D4 7F087764 0C000F07 */ jal get_video_settings2_frameb +/* 0BC2D4 7F087764 0C000F07 */ jal viGetFrameBuf2 /* 0BC2D8 7F087768 00000000 */ nop /* 0BC2DC 7F08776C 3C0D803E */ lui $t5, %hi(cfb_16+0x25800) # $t5, 0x803e /* 0BC2E0 7F087770 25ADA800 */ addiu $t5, %lo(cfb_16+0x25800) # addiu $t5, $t5, -0x5800 /* 0BC2E4 7F087774 144D0003 */ bne $v0, $t5, .Ljp7F087784 /* 0BC2E8 7F087778 3C048003 */ lui $a0, %hi(resolution) # $a0, 0x8003 -/* 0BC2EC 7F08777C 0C000F0F */ jal set_video2buf_frameb +/* 0BC2EC 7F08777C 0C000F0F */ jal viSetFrameBuf2 /* 0BC2F0 7F087780 8C846468 */ lw $a0, %lo(resolution)($a0) .Ljp7F087784: /* 0BC2F4 7F087784 0FC296A0 */ jal get_screen_ratio @@ -24908,7 +30310,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC38C 7F08781C 46082182 */ mul.s $f6, $f4, $f8 /* 0BC390 7F087820 00000000 */ nop /* 0BC394 7F087824 46103302 */ mul.s $f12, $f6, $f16 -/* 0BC398 7F087828 0C001164 */ jal set_page_aspect +/* 0BC398 7F087828 0C001164 */ jal viSetAspect /* 0BC39C 7F08782C 00000000 */ nop /* 0BC3A0 7F087830 10000017 */ b .Ljp7F087890 /* 0BC3A4 7F087834 00000000 */ nop @@ -24933,7 +30335,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC3EC 7F08787C 44993000 */ mtc1 $t9, $f6 /* 0BC3F0 7F087880 46805120 */ cvt.s.w $f4, $f10 /* 0BC3F4 7F087884 46803420 */ cvt.s.w $f16, $f6 -/* 0BC3F8 7F087888 0C001164 */ jal set_page_aspect +/* 0BC3F8 7F087888 0C001164 */ jal viSetAspect /* 0BC3FC 7F08788C 46048303 */ div.s $f12, $f16, $f4 .Ljp7F087890: /* 0BC400 7F087890 0FC21CC3 */ jal get_curplayer_viewport_width @@ -24957,7 +30359,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC448 7F0878D8 00022C00 */ sll $a1, $v0, 0x10 /* 0BC44C 7F0878DC 00054403 */ sra $t0, $a1, 0x10 /* 0BC450 7F0878E0 01002825 */ move $a1, $t0 -/* 0BC454 7F0878E4 0C0010FE */ jal set_video2_text_clip_size +/* 0BC454 7F0878E4 0C0010FE */ jal viSetXY /* 0BC458 7F0878E8 87A4001C */ lh $a0, 0x1c($sp) /* 0BC45C 7F0878EC 0FC21CB1 */ jal getWidth320or440 /* 0BC460 7F0878F0 00000000 */ nop @@ -24966,7 +30368,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC46C 7F0878FC 00022C00 */ sll $a1, $v0, 0x10 /* 0BC470 7F087900 00054C03 */ sra $t1, $a1, 0x10 /* 0BC474 7F087904 01202825 */ move $a1, $t1 -/* 0BC478 7F087908 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 0BC478 7F087908 0C0010ED */ jal viSetBuf /* 0BC47C 7F08790C 87A4001C */ lh $a0, 0x1c($sp) /* 0BC480 7F087910 0FC21CC3 */ jal get_curplayer_viewport_width /* 0BC484 7F087914 00000000 */ nop @@ -24975,7 +30377,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC490 7F087920 00022C00 */ sll $a1, $v0, 0x10 /* 0BC494 7F087924 00055403 */ sra $t2, $a1, 0x10 /* 0BC498 7F087928 01402825 */ move $a1, $t2 -/* 0BC49C 7F08792C 0C00110F */ jal set_video2_width_height +/* 0BC49C 7F08792C 0C00110F */ jal viSetViewSize /* 0BC4A0 7F087930 87A4001C */ lh $a0, 0x1c($sp) /* 0BC4A4 7F087934 0FC21CE4 */ jal get_curplayer_viewport_ulx /* 0BC4A8 7F087938 00000000 */ nop @@ -24984,7 +30386,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC4B4 7F087944 00022C00 */ sll $a1, $v0, 0x10 /* 0BC4B8 7F087948 00055C03 */ sra $t3, $a1, 0x10 /* 0BC4BC 7F08794C 01602825 */ move $a1, $t3 -/* 0BC4C0 7F087950 0C00112F */ jal set_video2_ulx_uly +/* 0BC4C0 7F087950 0C00112F */ jal viSetViewPosition /* 0BC4C4 7F087954 87A4001C */ lh $a0, 0x1c($sp) /* 0BC4C8 7F087958 0FC203B3 */ jal currentPlayerUpdateColourScreenProperties /* 0BC4CC 7F08795C 00000000 */ nop @@ -25191,7 +30593,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC7C0 7F087C50 29C10003 */ slti $at, $t6, 3 /* 0BC7C4 7F087C54 14200003 */ bnez $at, .Ljp7F087C64 /* 0BC7C8 7F087C58 00000000 */ nop -/* 0BC7CC 7F087C5C 0C001A4C */ jal run_title_stage +/* 0BC7CC 7F087C5C 0C001A4C */ jal bossRunTitleStage /* 0BC7D0 7F087C60 00000000 */ nop .Ljp7F087C64: /* 0BC7D4 7F087C64 3C0F8003 */ lui $t7, %hi(cameramode) # $t7, 0x8003 @@ -25203,7 +30605,7 @@ glabel possibly_reset_viewport_options_for_player /* 0BC7EC 7F087C7C 00000000 */ nop /* 0BC7F0 7F087C80 10400003 */ beqz $v0, .Ljp7F087C90 /* 0BC7F4 7F087C84 00000000 */ nop -/* 0BC7F8 7F087C88 0C001A4C */ jal run_title_stage +/* 0BC7F8 7F087C88 0C001A4C */ jal bossRunTitleStage /* 0BC7FC 7F087C8C 00000000 */ nop .Ljp7F087C90: /* 0BC800 7F087C90 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 @@ -25217,6 +30619,443 @@ glabel possibly_reset_viewport_options_for_player ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80055264 +.word 0x3fe38e39 /*1.7777778*/ +glabel D_80055268 +.word 0x3fe38e39 /*1.7777778*/ +.text +glabel possibly_reset_viewport_options_for_player +/* 0BBACC 7F086F9C 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0BBAD0 7F086FA0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAD4 7F086FA4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BBAD8 7F086FA8 44816000 */ mtc1 $at, $f12 +/* 0BBADC 7F086FAC AFA40020 */ sw $a0, 0x20($sp) +/* 0BBAE0 7F086FB0 AFA50024 */ sw $a1, 0x24($sp) +/* 0BBAE4 7F086FB4 0FC26C85 */ jal set_cur_player_fovy +/* 0BBAE8 7F086FB8 AFA60028 */ sw $a2, 0x28($sp) +/* 0BBAEC 7F086FBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBAF0 7F086FC0 44816000 */ mtc1 $at, $f12 +/* 0BBAF4 7F086FC4 0C001151 */ jal viSetFovY +/* 0BBAF8 7F086FC8 00000000 */ nop +/* 0BBAFC 7F086FCC 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB00 7F086FD0 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB04 7F086FD4 8C620000 */ lw $v0, ($v1) +/* 0BBB08 7F086FD8 10400016 */ beqz $v0, .L7F087034 +/* 0BBB0C 7F086FDC 28410004 */ slti $at, $v0, 4 +/* 0BBB10 7F086FE0 14200010 */ bnez $at, .L7F087024 +/* 0BBB14 7F086FE4 3C0E8003 */ lui $t6, %hi(resolution) +/* 0BBB18 7F086FE8 8DCE6428 */ lw $t6, %lo(resolution)($t6) +/* 0BBB1C 7F086FEC 51C0000E */ beql $t6, $zero, .L7F087028 +/* 0BBB20 7F086FF0 8C790000 */ lw $t9, ($v1) +/* 0BBB24 7F086FF4 0C000F07 */ jal viGetFrameBuf2 +/* 0BBB28 7F086FF8 00000000 */ nop +/* 0BBB2C 7F086FFC 3C0F803E */ lui $t7, %hi(cfb_16+0x25800) # $t7, 0x803e +/* 0BBB30 7F087000 25EFA800 */ addiu $t7, %lo(cfb_16+0x25800) # addiu $t7, $t7, -0x5800 +/* 0BBB34 7F087004 3C038003 */ lui $v1, %hi(camera_80036430) +/* 0BBB38 7F087008 144F0006 */ bne $v0, $t7, .L7F087024 +/* 0BBB3C 7F08700C 24636430 */ addiu $v1, %lo(camera_80036430) # addiu $v1, $v1, 0x6430 +/* 0BBB40 7F087010 24180001 */ li $t8, 1 +/* 0BBB44 7F087014 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBB48 7F087018 AC38642C */ sw $t8, %lo(camera_8003642C)($at) +/* 0BBB4C 7F08701C 1000001A */ b .L7F087088 +/* 0BBB50 7F087020 AC600000 */ sw $zero, ($v1) +.L7F087024: +/* 0BBB54 7F087024 8C790000 */ lw $t9, ($v1) +.L7F087028: +/* 0BBB58 7F087028 27280001 */ addiu $t0, $t9, 1 +/* 0BBB5C 7F08702C 10000016 */ b .L7F087088 +/* 0BBB60 7F087030 AC680000 */ sw $t0, ($v1) +.L7F087034: +/* 0BBB64 7F087034 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB68 7F087038 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB6C 7F08703C 8C620000 */ lw $v0, ($v1) +/* 0BBB70 7F087040 10400011 */ beqz $v0, .L7F087088 +/* 0BBB74 7F087044 28410004 */ slti $at, $v0, 4 +/* 0BBB78 7F087048 5420000D */ bnezl $at, .L7F087080 +/* 0BBB7C 7F08704C 8C6A0000 */ lw $t2, ($v1) +/* 0BBB80 7F087050 0C000F07 */ jal viGetFrameBuf2 +/* 0BBB84 7F087054 00000000 */ nop +/* 0BBB88 7F087058 3C09803B */ lui $t1, %hi(cfb_16) # $t1, 0x803b +/* 0BBB8C 7F08705C 25295000 */ addiu $t1, %lo(cfb_16) # addiu $t1, $t1, 0x5000 +/* 0BBB90 7F087060 3C038003 */ lui $v1, %hi(camera_80036434) +/* 0BBB94 7F087064 14490005 */ bne $v0, $t1, .L7F08707C +/* 0BBB98 7F087068 24636434 */ addiu $v1, %lo(camera_80036434) # addiu $v1, $v1, 0x6434 +/* 0BBB9C 7F08706C 3C018003 */ lui $at, %hi(camera_8003642C) +/* 0BBBA0 7F087070 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 0BBBA4 7F087074 10000004 */ b .L7F087088 +/* 0BBBA8 7F087078 AC600000 */ sw $zero, ($v1) +.L7F08707C: +/* 0BBBAC 7F08707C 8C6A0000 */ lw $t2, ($v1) +.L7F087080: +/* 0BBBB0 7F087080 254B0001 */ addiu $t3, $t2, 1 +/* 0BBBB4 7F087084 AC6B0000 */ sw $t3, ($v1) +.L7F087088: +/* 0BBBB8 7F087088 3C0C8003 */ lui $t4, %hi(camera_8003642C) +/* 0BBBBC 7F08708C 8D8C642C */ lw $t4, %lo(camera_8003642C)($t4) +/* 0BBBC0 7F087090 11800009 */ beqz $t4, .L7F0870B8 +/* 0BBBC4 7F087094 00000000 */ nop +/* 0BBBC8 7F087098 0C000F07 */ jal viGetFrameBuf2 +/* 0BBBCC 7F08709C 00000000 */ nop +/* 0BBBD0 7F0870A0 3C0D803E */ lui $t5, %hi(cfb_16+0x25800) # $t5, 0x803e +/* 0BBBD4 7F0870A4 25ADA800 */ addiu $t5, %lo(cfb_16+0x25800) # addiu $t5, $t5, -0x5800 +/* 0BBBD8 7F0870A8 144D0003 */ bne $v0, $t5, .L7F0870B8 +/* 0BBBDC 7F0870AC 3C048003 */ lui $a0, %hi(resolution) +/* 0BBBE0 7F0870B0 0C000F0F */ jal viSetFrameBuf2 +/* 0BBBE4 7F0870B4 8C846428 */ lw $a0, %lo(resolution)($a0) +.L7F0870B8: +/* 0BBBE8 7F0870B8 0FC293B8 */ jal get_screen_ratio +/* 0BBBEC 7F0870BC 00000000 */ nop +/* 0BBBF0 7F0870C0 24010001 */ li $at, 1 +/* 0BBBF4 7F0870C4 14410029 */ bne $v0, $at, .L7F08716C +/* 0BBBF8 7F0870C8 00000000 */ nop +/* 0BBBFC 7F0870CC 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC00 7F0870D0 00000000 */ nop +/* 0BBC04 7F0870D4 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC08 7F0870D8 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC0C 7F0870DC 87AE001C */ lh $t6, 0x1c($sp) +/* 0BBC10 7F0870E0 44824000 */ mtc1 $v0, $f8 +/* 0BBC14 7F0870E4 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC18 7F0870E8 448E2000 */ mtc1 $t6, $f4 +/* 0BBC1C 7F0870EC 468042A0 */ cvt.s.w $f10, $f8 +/* 0BBC20 7F0870F0 44819000 */ mtc1 $at, $f18 +/* 0BBC24 7F0870F4 3C018005 */ lui $at, %hi(D_80055264) +/* 0BBC28 7F0870F8 C4285264 */ lwc1 $f8, %lo(D_80055264)($at) +/* 0BBC2C 7F0870FC 468021A0 */ cvt.s.w $f6, $f4 +/* 0BBC30 7F087100 460A3403 */ div.s $f16, $f6, $f10 +/* 0BBC34 7F087104 46128102 */ mul.s $f4, $f16, $f18 +/* 0BBC38 7F087108 00000000 */ nop +/* 0BBC3C 7F08710C 46082302 */ mul.s $f12, $f4, $f8 +/* 0BBC40 7F087110 0FC26C89 */ jal set_cur_player_aspect +/* 0BBC44 7F087114 00000000 */ nop +/* 0BBC48 7F087118 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBC4C 7F08711C 00000000 */ nop +/* 0BBC50 7F087120 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBC54 7F087124 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBC58 7F087128 87AF001C */ lh $t7, 0x1c($sp) +/* 0BBC5C 7F08712C 44828000 */ mtc1 $v0, $f16 +/* 0BBC60 7F087130 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0BBC64 7F087134 448F3000 */ mtc1 $t7, $f6 +/* 0BBC68 7F087138 468084A0 */ cvt.s.w $f18, $f16 +/* 0BBC6C 7F08713C 44814000 */ mtc1 $at, $f8 +/* 0BBC70 7F087140 3C018005 */ lui $at, %hi(D_80055268) +/* 0BBC74 7F087144 C4305268 */ lwc1 $f16, %lo(D_80055268)($at) +/* 0BBC78 7F087148 468032A0 */ cvt.s.w $f10, $f6 +/* 0BBC7C 7F08714C 46125103 */ div.s $f4, $f10, $f18 +/* 0BBC80 7F087150 46082182 */ mul.s $f6, $f4, $f8 +/* 0BBC84 7F087154 00000000 */ nop +/* 0BBC88 7F087158 46103302 */ mul.s $f12, $f6, $f16 +/* 0BBC8C 7F08715C 0C001164 */ jal viSetAspect +/* 0BBC90 7F087160 00000000 */ nop +/* 0BBC94 7F087164 10000017 */ b .L7F0871C4 +/* 0BBC98 7F087168 00000000 */ nop +.L7F08716C: +/* 0BBC9C 7F08716C 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCA0 7F087170 00000000 */ nop +/* 0BBCA4 7F087174 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCA8 7F087178 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCAC 7F08717C 87B8001C */ lh $t8, 0x1c($sp) +/* 0BBCB0 7F087180 44822000 */ mtc1 $v0, $f4 +/* 0BBCB4 7F087184 44985000 */ mtc1 $t8, $f10 +/* 0BBCB8 7F087188 46802220 */ cvt.s.w $f8, $f4 +/* 0BBCBC 7F08718C 468054A0 */ cvt.s.w $f18, $f10 +/* 0BBCC0 7F087190 0FC26C89 */ jal set_cur_player_aspect +/* 0BBCC4 7F087194 46089303 */ div.s $f12, $f18, $f8 +/* 0BBCC8 7F087198 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCCC 7F08719C 00000000 */ nop +/* 0BBCD0 7F0871A0 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBCD4 7F0871A4 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBCD8 7F0871A8 87B9001C */ lh $t9, 0x1c($sp) +/* 0BBCDC 7F0871AC 44825000 */ mtc1 $v0, $f10 +/* 0BBCE0 7F0871B0 44993000 */ mtc1 $t9, $f6 +/* 0BBCE4 7F0871B4 46805120 */ cvt.s.w $f4, $f10 +/* 0BBCE8 7F0871B8 46803420 */ cvt.s.w $f16, $f6 +/* 0BBCEC 7F0871BC 0C001164 */ jal viSetAspect +/* 0BBCF0 7F0871C0 46048303 */ div.s $f12, $f16, $f4 +.L7F0871C4: +/* 0BBCF4 7F0871C4 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBCF8 7F0871C8 00000000 */ nop +/* 0BBCFC 7F0871CC 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD00 7F0871D0 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD04 7F0871D4 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD08 7F0871D8 0FC26C77 */ jal set_cur_player_screen_size +/* 0BBD0C 7F0871DC 00402825 */ move $a1, $v0 +/* 0BBD10 7F0871E0 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD14 7F0871E4 00000000 */ nop +/* 0BBD18 7F0871E8 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBD1C 7F0871EC A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD20 7F0871F0 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD24 7F0871F4 0FC26C7E */ jal set_cur_player_viewport_size +/* 0BBD28 7F0871F8 00402825 */ move $a1, $v0 +/* 0BBD2C 7F0871FC 0FC21AFE */ jal getWidth320or440 +/* 0BBD30 7F087200 00000000 */ nop +/* 0BBD34 7F087204 0FC21B07 */ jal getHeight330or240 +/* 0BBD38 7F087208 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD3C 7F08720C 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD40 7F087210 00054403 */ sra $t0, $a1, 0x10 +/* 0BBD44 7F087214 01002825 */ move $a1, $t0 +/* 0BBD48 7F087218 0C0010FE */ jal viSetXY +/* 0BBD4C 7F08721C 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD50 7F087220 0FC21AFE */ jal getWidth320or440 +/* 0BBD54 7F087224 00000000 */ nop +/* 0BBD58 7F087228 0FC21B07 */ jal getHeight330or240 +/* 0BBD5C 7F08722C A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD60 7F087230 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD64 7F087234 00054C03 */ sra $t1, $a1, 0x10 +/* 0BBD68 7F087238 01202825 */ move $a1, $t1 +/* 0BBD6C 7F08723C 0C0010ED */ jal viSetBuf +/* 0BBD70 7F087240 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD74 7F087244 0FC21B10 */ jal get_curplayer_viewport_width +/* 0BBD78 7F087248 00000000 */ nop +/* 0BBD7C 7F08724C 0FC21B49 */ jal get_curplayer_viewport_height +/* 0BBD80 7F087250 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBD84 7F087254 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBD88 7F087258 00055403 */ sra $t2, $a1, 0x10 +/* 0BBD8C 7F08725C 01402825 */ move $a1, $t2 +/* 0BBD90 7F087260 0C00110F */ jal viSetViewSize +/* 0BBD94 7F087264 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBD98 7F087268 0FC21B31 */ jal get_curplayer_viewport_ulx +/* 0BBD9C 7F08726C 00000000 */ nop +/* 0BBDA0 7F087270 0FC21B8E */ jal get_curplayer_viewport_uly +/* 0BBDA4 7F087274 A7A2001C */ sh $v0, 0x1c($sp) +/* 0BBDA8 7F087278 00022C00 */ sll $a1, $v0, 0x10 +/* 0BBDAC 7F08727C 00055C03 */ sra $t3, $a1, 0x10 +/* 0BBDB0 7F087280 01602825 */ move $a1, $t3 +/* 0BBDB4 7F087284 0C00112F */ jal viSetViewPosition +/* 0BBDB8 7F087288 87A4001C */ lh $a0, 0x1c($sp) +/* 0BBDBC 7F08728C 0FC2022F */ jal currentPlayerUpdateColourScreenProperties +/* 0BBDC0 7F087290 00000000 */ nop +/* 0BBDC4 7F087294 0FC202A0 */ jal currentPlayerTickChrFade +/* 0BBDC8 7F087298 00000000 */ nop +/* 0BBDCC 7F08729C 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDD0 7F0872A0 00000000 */ nop +/* 0BBDD4 7F0872A4 0FC1F15C */ jal set_BONDdata_autoaim_y +/* 0BBDD8 7F0872A8 00402025 */ move $a0, $v0 +/* 0BBDDC 7F0872AC 0FC29394 */ jal cur_player_get_autoaim +/* 0BBDE0 7F0872B0 00000000 */ nop +/* 0BBDE4 7F0872B4 0FC1F196 */ jal set_BONDdata_autoaim_x +/* 0BBDE8 7F0872B8 00402025 */ move $a0, $v0 +/* 0BBDEC 7F0872BC 0FC2939A */ jal cur_player_get_lookahead +/* 0BBDF0 7F0872C0 00000000 */ nop +/* 0BBDF4 7F0872C4 0FC1F154 */ jal set_BONDdata_lookahead_setting +/* 0BBDF8 7F0872C8 00402025 */ move $a0, $v0 +/* 0BBDFC 7F0872CC 0FC293AC */ jal cur_player_get_ammo_onscreen_setting +/* 0BBE00 7F0872D0 00000000 */ nop +/* 0BBE04 7F0872D4 24040001 */ li $a0, 1 +/* 0BBE08 7F0872D8 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 0BBE0C 7F0872DC 00402825 */ move $a1, $v0 +/* 0BBE10 7F0872E0 0FC26919 */ jal getPlayerCount +/* 0BBE14 7F0872E4 00000000 */ nop +/* 0BBE18 7F0872E8 24010001 */ li $at, 1 +/* 0BBE1C 7F0872EC 14410006 */ bne $v0, $at, .L7F087308 +/* 0BBE20 7F0872F0 00000000 */ nop +/* 0BBE24 7F0872F4 0FC293A6 */ jal cur_player_get_sight_onscreen_control +/* 0BBE28 7F0872F8 00000000 */ nop +/* 0BBE2C 7F0872FC 0002282B */ sltu $a1, $zero, $v0 +/* 0BBE30 7F087300 14A0000B */ bnez $a1, .L7F087330 +/* 0BBE34 7F087304 00000000 */ nop +.L7F087308: +/* 0BBE38 7F087308 0FC26919 */ jal getPlayerCount +/* 0BBE3C 7F08730C 00000000 */ nop +/* 0BBE40 7F087310 28430002 */ slti $v1, $v0, 2 +/* 0BBE44 7F087314 38650001 */ xori $a1, $v1, 1 +/* 0BBE48 7F087318 10A00005 */ beqz $a1, .L7F087330 +/* 0BBE4C 7F08731C 3C0C8008 */ lui $t4, %hi(pPlayersPerm) +/* 0BBE50 7F087320 8D8CA0B4 */ lw $t4, %lo(pPlayersPerm)($t4) +/* 0BBE54 7F087324 9185006B */ lbu $a1, 0x6b($t4) +/* 0BBE58 7F087328 0005682B */ sltu $t5, $zero, $a1 +/* 0BBE5C 7F08732C 01A02825 */ move $a1, $t5 +.L7F087330: +/* 0BBE60 7F087330 0FC1A96A */ jal set_unset_bitflags +/* 0BBE64 7F087334 24040001 */ li $a0, 1 +/* 0BBE68 7F087338 3C028003 */ lui $v0, %hi(cameramode) +/* 0BBE6C 7F08733C 8C426494 */ lw $v0, %lo(cameramode)($v0) +/* 0BBE70 7F087340 24010004 */ li $at, 4 +/* 0BBE74 7F087344 10400008 */ beqz $v0, .L7F087368 +/* 0BBE78 7F087348 00000000 */ nop +/* 0BBE7C 7F08734C 14410003 */ bne $v0, $at, .L7F08735C +/* 0BBE80 7F087350 3C0E8003 */ lui $t6, %hi(D_800364B0) +/* 0BBE84 7F087354 8DCE64B0 */ lw $t6, %lo(D_800364B0)($t6) +/* 0BBE88 7F087358 15C00003 */ bnez $t6, .L7F087368 +.L7F08735C: +/* 0BBE8C 7F08735C 2401000A */ li $at, 10 +/* 0BBE90 7F087360 14410014 */ bne $v0, $at, .L7F0873B4 +/* 0BBE94 7F087364 83A40023 */ lb $a0, 0x23($sp) +.L7F087368: +/* 0BBE98 7F087368 0FC26C54 */ jal get_cur_playernum +/* 0BBE9C 7F08736C 00000000 */ nop +/* 0BBEA0 7F087370 14400008 */ bnez $v0, .L7F087394 +/* 0BBEA4 7F087374 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BBEA8 7F087378 3C028008 */ lui $v0, %hi(mission_timer) +/* 0BBEAC 7F08737C 24429A20 */ addiu $v0, %lo(mission_timer) # addiu $v0, $v0, -0x65e0 +/* 0BBEB0 7F087380 3C188005 */ lui $t8, %hi(clock_timer) +/* 0BBEB4 7F087384 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 0BBEB8 7F087388 8C4F0000 */ lw $t7, ($v0) +/* 0BBEBC 7F08738C 01F8C821 */ addu $t9, $t7, $t8 +/* 0BBEC0 7F087390 AC590000 */ sw $t9, ($v0) +.L7F087394: +/* 0BBEC4 7F087394 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BBEC8 7F087398 83A40023 */ lb $a0, 0x23($sp) +/* 0BBECC 7F08739C 83A50027 */ lb $a1, 0x27($sp) +/* 0BBED0 7F0873A0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBED4 7F0873A4 0FC21192 */ jal MoveBond +/* 0BBED8 7F0873A8 950703B4 */ lhu $a3, 0x3b4($t0) +/* 0BBEDC 7F0873AC 10000007 */ b .L7F0873CC +/* 0BBEE0 7F0873B0 00000000 */ nop +.L7F0873B4: +/* 0BBEE4 7F0873B4 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BBEE8 7F0873B8 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BBEEC 7F0873BC 83A50027 */ lb $a1, 0x27($sp) +/* 0BBEF0 7F0873C0 97A6002A */ lhu $a2, 0x2a($sp) +/* 0BBEF4 7F0873C4 0FC21A64 */ jal sub_GAME_7F086990 +/* 0BBEF8 7F0873C8 952703B4 */ lhu $a3, 0x3b4($t1) +.L7F0873CC: +/* 0BBEFC 7F0873CC 3C028008 */ lui $v0, %hi(watch_time_0) +/* 0BBF00 7F0873D0 24429A24 */ addiu $v0, %lo(watch_time_0) # addiu $v0, $v0, -0x65dc +/* 0BBF04 7F0873D4 3C0B8005 */ lui $t3, %hi(D_80048498) +/* 0BBF08 7F0873D8 8D6B8498 */ lw $t3, %lo(D_80048498)($t3) +/* 0BBF0C 7F0873DC 8C4A0000 */ lw $t2, ($v0) +/* 0BBF10 7F0873E0 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 0BBF14 7F0873E4 014B6021 */ addu $t4, $t2, $t3 +/* 0BBF18 7F0873E8 AC4C0000 */ sw $t4, ($v0) +/* 0BBF1C 7F0873EC 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 0BBF20 7F0873F0 11A00046 */ beqz $t5, .L7F08750C +/* 0BBF24 7F0873F4 00000000 */ nop +/* 0BBF28 7F0873F8 0FC2FF01 */ jal get_controls_locked_flag +/* 0BBF2C 7F0873FC 00000000 */ nop +/* 0BBF30 7F087400 1440002F */ bnez $v0, .L7F0874C0 +/* 0BBF34 7F087404 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BBF38 7F087408 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BBF3C 7F08740C 97AE002A */ lhu $t6, 0x2a($sp) +/* 0BBF40 7F087410 240A0002 */ li $t2, 2 +/* 0BBF44 7F087414 95F803B4 */ lhu $t8, 0x3b4($t7) +/* 0BBF48 7F087418 3C018003 */ lui $at, %hi(stop_time_flag) +/* 0BBF4C 7F08741C 0300C827 */ not $t9, $t8 +/* 0BBF50 7F087420 01D94024 */ and $t0, $t6, $t9 +/* 0BBF54 7F087424 3109F030 */ andi $t1, $t0, 0xf030 +/* 0BBF58 7F087428 11200025 */ beqz $t1, .L7F0874C0 +/* 0BBF5C 7F08742C 00000000 */ nop +/* 0BBF60 7F087430 0FC20223 */ jal currentPlayerIsFadeComplete +/* 0BBF64 7F087434 AC2A64A0 */ sw $t2, %lo(stop_time_flag)($at) +/* 0BBF68 7F087438 10400015 */ beqz $v0, .L7F087490 +/* 0BBF6C 7F08743C 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BBF70 7F087440 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BBF74 7F087444 44800000 */ mtc1 $zero, $f0 +/* 0BBF78 7F087448 00002025 */ move $a0, $zero +/* 0BBF7C 7F08744C C57203DC */ lwc1 $f18, 0x3dc($t3) +/* 0BBF80 7F087450 00002825 */ move $a1, $zero +/* 0BBF84 7F087454 46120032 */ c.eq.s $f0, $f18 +/* 0BBF88 7F087458 00000000 */ nop +/* 0BBF8C 7F08745C 45000018 */ bc1f .L7F0874C0 +/* 0BBF90 7F087460 00000000 */ nop +/* 0BBF94 7F087464 44070000 */ mfc1 $a3, $f0 +/* 0BBF98 7F087468 0FC201EC */ jal currentPlayerSetFadeColour +/* 0BBF9C 7F08746C 00003025 */ move $a2, $zero +/* 0BBFA0 7F087470 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BBFA4 7F087474 44816000 */ mtc1 $at, $f12 +/* 0BBFA8 7F087478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFAC 7F08747C 44817000 */ mtc1 $at, $f14 +/* 0BBFB0 7F087480 0FC20216 */ jal currentPlayerSetFadeFrac +/* 0BBFB4 7F087484 00000000 */ nop +/* 0BBFB8 7F087488 1000000D */ b .L7F0874C0 +/* 0BBFBC 7F08748C 00000000 */ nop +.L7F087490: +/* 0BBFC0 7F087490 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BBFC4 7F087494 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BBFC8 7F087498 44800000 */ mtc1 $zero, $f0 +/* 0BBFCC 7F08749C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BBFD0 7F0874A0 C4480404 */ lwc1 $f8, 0x404($v0) +/* 0BBFD4 7F0874A4 46080032 */ c.eq.s $f0, $f8 +/* 0BBFD8 7F0874A8 00000000 */ nop +/* 0BBFDC 7F0874AC 45000004 */ bc1f .L7F0874C0 +/* 0BBFE0 7F0874B0 00000000 */ nop +/* 0BBFE4 7F0874B4 44817000 */ mtc1 $at, $f14 +/* 0BBFE8 7F0874B8 0FC20216 */ jal currentPlayerSetFadeFrac +/* 0BBFEC 7F0874BC C44C03E0 */ lwc1 $f12, 0x3e0($v0) +.L7F0874C0: +/* 0BBFF0 7F0874C0 3C0C8003 */ lui $t4, %hi(stop_time_flag) +/* 0BBFF4 7F0874C4 8D8C64A0 */ lw $t4, %lo(stop_time_flag)($t4) +/* 0BBFF8 7F0874C8 24010002 */ li $at, 2 +/* 0BBFFC 7F0874CC 1581000F */ bne $t4, $at, .L7F08750C +/* 0BC000 7F0874D0 00000000 */ nop +/* 0BC004 7F0874D4 0FC20223 */ jal currentPlayerIsFadeComplete +/* 0BC008 7F0874D8 00000000 */ nop +/* 0BC00C 7F0874DC 1040000B */ beqz $v0, .L7F08750C +/* 0BC010 7F0874E0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0BC014 7F0874E4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0BC018 7F0874E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BC01C 7F0874EC 44813000 */ mtc1 $at, $f6 +/* 0BC020 7F0874F0 C5AA03DC */ lwc1 $f10, 0x3dc($t5) +/* 0BC024 7F0874F4 460A3032 */ c.eq.s $f6, $f10 +/* 0BC028 7F0874F8 00000000 */ nop +/* 0BC02C 7F0874FC 45000003 */ bc1f .L7F08750C +/* 0BC030 7F087500 00000000 */ nop +/* 0BC034 7F087504 0C001A5A */ jal return_to_title_from_level_end +/* 0BC038 7F087508 00000000 */ nop +.L7F08750C: +/* 0BC03C 7F08750C 3C0F8003 */ lui $t7, %hi(enable_move_after_cinema) +/* 0BC040 7F087510 8DEF6498 */ lw $t7, %lo(enable_move_after_cinema)($t7) +/* 0BC044 7F087514 11E00003 */ beqz $t7, .L7F087524 +/* 0BC048 7F087518 00000000 */ nop +/* 0BC04C 7F08751C 0FC1EC69 */ jal sub_GAME_7F07B1A4 +/* 0BC050 7F087520 00000000 */ nop +.L7F087524: +/* 0BC054 7F087524 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC058 7F087528 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC05C 7F08752C 8C5800D8 */ lw $t8, 0xd8($v0) +/* 0BC060 7F087530 13000019 */ beqz $t8, .L7F087598 +/* 0BC064 7F087534 00000000 */ nop +/* 0BC068 7F087538 8C430424 */ lw $v1, 0x424($v0) +/* 0BC06C 7F08753C 24040001 */ li $a0, 1 +/* 0BC070 7F087540 14600009 */ bnez $v1, .L7F087568 +/* 0BC074 7F087544 00000000 */ nop +/* 0BC078 7F087548 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC07C 7F08754C 00002825 */ move $a1, $zero +/* 0BC080 7F087550 00002025 */ move $a0, $zero +/* 0BC084 7F087554 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 0BC088 7F087558 00002825 */ move $a1, $zero +/* 0BC08C 7F08755C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC090 7F087560 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC094 7F087564 8C430424 */ lw $v1, 0x424($v0) +.L7F087568: +/* 0BC098 7F087568 1060000B */ beqz $v1, .L7F087598 +/* 0BC09C 7F08756C 00000000 */ nop +/* 0BC0A0 7F087570 8C4E0428 */ lw $t6, 0x428($v0) +/* 0BC0A4 7F087574 3C198003 */ lui $t9, %hi(D_80036510) +/* 0BC0A8 7F087578 11C00007 */ beqz $t6, .L7F087598 +/* 0BC0AC 7F08757C 00000000 */ nop +/* 0BC0B0 7F087580 8F396510 */ lw $t9, %lo(D_80036510)($t9) +/* 0BC0B4 7F087584 2B210003 */ slti $at, $t9, 3 +/* 0BC0B8 7F087588 14200003 */ bnez $at, .L7F087598 +/* 0BC0BC 7F08758C 00000000 */ nop +/* 0BC0C0 7F087590 0C001A4C */ jal bossRunTitleStage +/* 0BC0C4 7F087594 00000000 */ nop +.L7F087598: +/* 0BC0C8 7F087598 3C088003 */ lui $t0, %hi(cameramode) +/* 0BC0CC 7F08759C 8D086494 */ lw $t0, %lo(cameramode)($t0) +/* 0BC0D0 7F0875A0 2401000A */ li $at, 10 +/* 0BC0D4 7F0875A4 15010007 */ bne $t0, $at, .L7F0875C4 +/* 0BC0D8 7F0875A8 00000000 */ nop +/* 0BC0DC 7F0875AC 0FC20223 */ jal currentPlayerIsFadeComplete +/* 0BC0E0 7F0875B0 00000000 */ nop +/* 0BC0E4 7F0875B4 10400003 */ beqz $v0, .L7F0875C4 +/* 0BC0E8 7F0875B8 00000000 */ nop +/* 0BC0EC 7F0875BC 0C001A4C */ jal bossRunTitleStage +/* 0BC0F0 7F0875C0 00000000 */ nop +.L7F0875C4: +/* 0BC0F4 7F0875C4 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BC0F8 7F0875C8 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BC0FC 7F0875CC 97A9002A */ lhu $t1, 0x2a($sp) +/* 0BC100 7F0875D0 A54903B4 */ sh $t1, 0x3b4($t2) +/* 0BC104 7F0875D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BC108 7F0875D8 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0BC10C 7F0875DC 03E00008 */ jr $ra +/* 0BC110 7F0875E0 00000000 */ nop +) +#endif + #endif @@ -25303,11 +31142,11 @@ void sub_GAME_7F0876C4(void *arg0, void *arg1, void *arg2) { // Node 0 sub_GAME_7F0875E4(get_cur_players_room()); - pPlayer->field_5C = sub_GAME_7F0BD6E0(); - pPlayer->field_60 = sub_GAME_7F0BD6E0(); - pPlayer->field_64 = sub_GAME_7F0BD6E0(); - pPlayer->field_68 = sub_GAME_7F0BD6E0(); - sp104 = sub_GAME_7F0BD6F8(2); + pPlayer->field_5C = dynAllocateMatrix(); + pPlayer->field_60 = dynAllocateMatrix(); + pPlayer->field_64 = dynAllocateMatrix(); + pPlayer->field_68 = dynAllocateMatrix(); + sp104 = dynAllocate7F0BD6F8(2); temp_f10 = ((*arg0 - pPlayer->current_model_xpos) * D_800364CC); spAC = temp_f10; temp_f6 = ((arg0->unk4 - pPlayer->current_model_ypos) * D_800364CC); @@ -25322,7 +31161,7 @@ void sub_GAME_7F0876C4(void *arg0, void *arg1, void *arg2) { guLookAtReflect(&sp108, sp104, spAC, spB0, spB4, temp_f16, spBC, spC0, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); matrix_4x4_7F059424(pPlayer->field_64, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); matrix_4x4_7F059708(pPlayer->field_68, *arg0, arg0->unk4, arg0->unk8, (f32) *arg1, (f32) arg1->unk4, (f32) arg1->unk8, (f32) *arg2, (f32) arg2->unk4, (f32) arg2->unk8); - temp_s0 = sub_GAME_7F0BD6E0(); + temp_s0 = dynAllocateMatrix(); matrix_4x4_multiply(currentPlayerGetProjectionMatrixF(), &spC4, &sp60); phi_a1 = &sp60; loop_1: @@ -25390,22 +31229,22 @@ glabel sub_GAME_7F0876C4 /* 0BC214 7F0876E4 AFA40148 */ sw $a0, 0x148($sp) /* 0BC218 7F0876E8 0FC21D79 */ jal sub_GAME_7F0875E4 /* 0BC21C 7F0876EC 00402025 */ move $a0, $v0 -/* 0BC220 7F0876F0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC220 7F0876F0 0FC2F5B8 */ jal dynAllocateMatrix /* 0BC224 7F0876F4 00000000 */ nop /* 0BC228 7F0876F8 3C128008 */ lui $s2, %hi(pPlayer) /* 0BC22C 7F0876FC 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 /* 0BC230 7F087700 8E4E0000 */ lw $t6, ($s2) -/* 0BC234 7F087704 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC234 7F087704 0FC2F5B8 */ jal dynAllocateMatrix /* 0BC238 7F087708 ADC2005C */ sw $v0, 0x5c($t6) /* 0BC23C 7F08770C 8E4F0000 */ lw $t7, ($s2) -/* 0BC240 7F087710 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC240 7F087710 0FC2F5B8 */ jal dynAllocateMatrix /* 0BC244 7F087714 ADE20060 */ sw $v0, 0x60($t7) /* 0BC248 7F087718 8E580000 */ lw $t8, ($s2) -/* 0BC24C 7F08771C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC24C 7F08771C 0FC2F5B8 */ jal dynAllocateMatrix /* 0BC250 7F087720 AF020064 */ sw $v0, 0x64($t8) /* 0BC254 7F087724 8E590000 */ lw $t9, ($s2) /* 0BC258 7F087728 24040002 */ li $a0, 2 -/* 0BC25C 7F08772C 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 0BC25C 7F08772C 0FC2F5BE */ jal dynAllocate7F0BD6F8 /* 0BC260 7F087730 AF220068 */ sw $v0, 0x68($t9) /* 0BC264 7F087734 8FA80148 */ lw $t0, 0x148($sp) /* 0BC268 7F087738 8E430000 */ lw $v1, ($s2) @@ -25510,7 +31349,7 @@ glabel sub_GAME_7F0876C4 /* 0BC3F4 7F0878C4 C6280008 */ lwc1 $f8, 8($s1) /* 0BC3F8 7F0878C8 0FC165C2 */ jal matrix_4x4_7F059708 /* 0BC3FC 7F0878CC E7A80024 */ swc1 $f8, 0x24($sp) -/* 0BC400 7F0878D0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BC400 7F0878D0 0FC2F5B8 */ jal dynAllocateMatrix /* 0BC404 7F0878D4 00000000 */ nop /* 0BC408 7F0878D8 0FC1E0F9 */ jal currentPlayerGetProjectionMatrixF /* 0BC40C 7F0878DC 00408025 */ move $s0, $v0 @@ -25658,7 +31497,7 @@ s32 sub_GAME_7F087A08(s32 arg0) { { // Node 4 sp58 = temp_v1; - video_related_9(0, temp_a0, temp_a1, &sp4C); + viSet800232B4(0, temp_a0, temp_a1, &sp4C); } // Node 5 sp74 = (f32) temp_v1->unk2C; @@ -25765,7 +31604,7 @@ glabel sub_GAME_7F087A08 /* 0BC604 7F087AD4 8FA30058 */ lw $v1, 0x58($sp) /* 0BC608 7F087AD8 44806000 */ mtc1 $zero, $f12 .L7F087ADC: -/* 0BC60C 7F087ADC 0C000EC1 */ jal video_related_9 +/* 0BC60C 7F087ADC 0C000EC1 */ jal viSet800232B4 /* 0BC610 7F087AE0 AFA30058 */ sw $v1, 0x58($sp) /* 0BC614 7F087AE4 8FA30058 */ lw $v1, 0x58($sp) .L7F087AE8: @@ -26240,7 +32079,7 @@ glabel sub_GAME_7F087E74 /* 0BCA44 7F087F14 8D45000C */ lw $a1, 0xc($t2) /* 0BCA48 7F087F18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode /* 0BCA4C 7F087F1C 24840230 */ addiu $a0, $a0, 0x230 -/* 0BCA50 7F087F20 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BCA50 7F087F20 0FC2F5B8 */ jal dynAllocateMatrix /* 0BCA54 7F087F24 AFA20158 */ sw $v0, 0x158($sp) /* 0BCA58 7F087F28 3C014120 */ li $at, 0x41200000 # 10.000000 /* 0BCA5C 7F087F2C 44812000 */ mtc1 $at, $f4 @@ -26332,7 +32171,7 @@ glabel sub_GAME_7F087E74 /* 0BCBB4 7F088084 8FB90160 */ lw $t9, 0x160($sp) /* 0BCBB8 7F088088 8724000E */ lh $a0, 0xe($t9) /* 0BCBBC 7F08808C 0004C180 */ sll $t8, $a0, 6 -/* 0BCBC0 7F088090 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0BCBC0 7F088090 0FC2F5C5 */ jal dynAllocate /* 0BCBC4 7F088094 03002025 */ move $a0, $t8 /* 0BCBC8 7F088098 3C048008 */ lui $a0, %hi(pPlayer) /* 0BCBCC 7F08809C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) @@ -26659,7 +32498,7 @@ glabel sub_GAME_7F087E74 /* 0BD090 7F088560 8F2B0008 */ lw $t3, 8($t9) /* 0BD094 7F088564 8D780008 */ lw $t8, 8($t3) /* 0BD098 7F088568 8F0C0004 */ lw $t4, 4($t8) -/* 0BD09C 7F08856C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD09C 7F08856C 0FC2F5B8 */ jal dynAllocateMatrix /* 0BD0A0 7F088570 AFAC008C */ sw $t4, 0x8c($sp) /* 0BD0A4 7F088574 AFA20048 */ sw $v0, 0x48($sp) /* 0BD0A8 7F088578 8FA4008C */ lw $a0, 0x8c($sp) @@ -26761,7 +32600,7 @@ glabel sub_GAME_7F087E74 /* 0BD150 7F0885E0 8D45000C */ lw $a1, 0xc($t2) /* 0BD154 7F0885E4 0FC1B363 */ jal extract_id_from_object_structure_microcode /* 0BD158 7F0885E8 24840230 */ addiu $a0, $a0, 0x230 -/* 0BD15C 7F0885EC 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD15C 7F0885EC 0FC2F8A4 */ jal dynAllocateMatrix /* 0BD160 7F0885F0 AFA20158 */ sw $v0, 0x158($sp) /* 0BD164 7F0885F4 3C014120 */ li $at, 0x41200000 # 10.000000 /* 0BD168 7F0885F8 44812000 */ mtc1 $at, $f4 @@ -26853,7 +32692,7 @@ glabel sub_GAME_7F087E74 /* 0BD2C0 7F088750 8FB90160 */ lw $t9, 0x160($sp) /* 0BD2C4 7F088754 8724000E */ lh $a0, 0xe($t9) /* 0BD2C8 7F088758 0004C180 */ sll $t8, $a0, 6 -/* 0BD2CC 7F08875C 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0BD2CC 7F08875C 0FC2F8B1 */ jal dynAllocate /* 0BD2D0 7F088760 03002025 */ move $a0, $t8 /* 0BD2D4 7F088764 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 /* 0BD2D8 7F088768 8C84A120 */ lw $a0, %lo(pPlayer)($a0) @@ -27182,7 +33021,7 @@ glabel sub_GAME_7F087E74 /* 0BD7A4 7F088C34 8F190008 */ lw $t9, 8($t8) /* 0BD7A8 7F088C38 8F2E0008 */ lw $t6, 8($t9) /* 0BD7AC 7F088C3C 8DCD0004 */ lw $t5, 4($t6) -/* 0BD7B0 7F088C40 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0BD7B0 7F088C40 0FC2F8A4 */ jal dynAllocateMatrix /* 0BD7B4 7F088C44 AFAD008C */ sw $t5, 0x8c($sp) /* 0BD7B8 7F088C48 AFA20048 */ sw $v0, 0x48($sp) /* 0BD7BC 7F088C4C 8FA4008C */ lw $a0, 0x8c($sp) @@ -27231,6 +33070,528 @@ glabel sub_GAME_7F087E74 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_8005527C +.word 0x3c8efa35 /*0.017453292*/ +glabel D_80055280 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F087E74 +/* 0BC9A4 7F087E74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BC9A8 7F087E78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BC9AC 7F087E7C 27BDFE08 */ addiu $sp, $sp, -0x1f8 +/* 0BC9B0 7F087E80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0BC9B4 7F087E84 AFA401F8 */ sw $a0, 0x1f8($sp) +/* 0BC9B8 7F087E88 8C4E01C8 */ lw $t6, 0x1c8($v0) +/* 0BC9BC 7F087E8C 51C001DE */ beql $t6, $zero, .L7F088608 +/* 0BC9C0 7F087E90 8FBF002C */ lw $ra, 0x2c($sp) +/* 0BC9C4 7F087E94 8C4F0200 */ lw $t7, 0x200($v0) +/* 0BC9C8 7F087E98 3C198003 */ lui $t9, %hi(D_8003683C) +/* 0BC9CC 7F087E9C 2739683C */ addiu $t9, %lo(D_8003683C) # addiu $t9, $t9, 0x683c +/* 0BC9D0 7F087EA0 11E001D8 */ beqz $t7, .L7F088604 +/* 0BC9D4 7F087EA4 27B801B8 */ addiu $t8, $sp, 0x1b8 +/* 0BC9D8 7F087EA8 272B003C */ addiu $t3, $t9, 0x3c +.L7F087EAC: +/* 0BC9DC 7F087EAC 8F210000 */ lw $at, ($t9) +/* 0BC9E0 7F087EB0 2739000C */ addiu $t9, $t9, 0xc +/* 0BC9E4 7F087EB4 2718000C */ addiu $t8, $t8, 0xc +/* 0BC9E8 7F087EB8 AF01FFF4 */ sw $at, -0xc($t8) +/* 0BC9EC 7F087EBC 8F21FFF8 */ lw $at, -8($t9) +/* 0BC9F0 7F087EC0 AF01FFF8 */ sw $at, -8($t8) +/* 0BC9F4 7F087EC4 8F21FFFC */ lw $at, -4($t9) +/* 0BC9F8 7F087EC8 172BFFF8 */ bne $t9, $t3, .L7F087EAC +/* 0BC9FC 7F087ECC AF01FFFC */ sw $at, -4($t8) +/* 0BCA00 7F087ED0 8F210000 */ lw $at, ($t9) +/* 0BCA04 7F087ED4 3C0D8003 */ lui $t5, %hi(D_8003687C) +/* 0BCA08 7F087ED8 25AD687C */ addiu $t5, %lo(D_8003687C) # addiu $t5, $t5, 0x687c +/* 0BCA0C 7F087EDC AF010000 */ sw $at, ($t8) +/* 0BCA10 7F087EE0 8DA10000 */ lw $at, ($t5) +/* 0BCA14 7F087EE4 27AC016C */ addiu $t4, $sp, 0x16c +/* 0BCA18 7F087EE8 8DAF0004 */ lw $t7, 4($t5) +/* 0BCA1C 7F087EEC AD810000 */ sw $at, ($t4) +/* 0BCA20 7F087EF0 8DA10008 */ lw $at, 8($t5) +/* 0BCA24 7F087EF4 24040001 */ li $a0, 1 +/* 0BCA28 7F087EF8 AD8F0004 */ sw $t7, 4($t4) +/* 0BCA2C 7F087EFC 0FC173C6 */ jal get_ptr_itemheader_in_hand +/* 0BCA30 7F087F00 AD810008 */ sw $at, 8($t4) +/* 0BCA34 7F087F04 AFA20160 */ sw $v0, 0x160($sp) +/* 0BCA38 7F087F08 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCA3C 7F087F0C 8C4A0008 */ lw $t2, 8($v0) +/* 0BCA40 7F087F10 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCA44 7F087F14 8D45000C */ lw $a1, 0xc($t2) +/* 0BCA48 7F087F18 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 0BCA4C 7F087F1C 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCA50 7F087F20 0FC2F5B8 */ jal dynAllocateMatrix +/* 0BCA54 7F087F24 AFA20158 */ sw $v0, 0x158($sp) +/* 0BCA58 7F087F28 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0BCA5C 7F087F2C 44812000 */ mtc1 $at, $f4 +/* 0BCA60 7F087F30 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0BCA64 7F087F34 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 0BCA68 7F087F38 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0BCA6C 7F087F3C 44813000 */ mtc1 $at, $f6 +/* 0BCA70 7F087F40 AFA20154 */ sw $v0, 0x154($sp) +/* 0BCA74 7F087F44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCA78 7F087F48 44814000 */ mtc1 $at, $f8 +/* 0BCA7C 7F087F4C 8D6611C4 */ lw $a2, 0x11c4($t3) +/* 0BCA80 7F087F50 3C073FBA */ lui $a3, (0x3FBA2E8C >> 16) # lui $a3, 0x3fba +/* 0BCA84 7F087F54 34E72E8C */ ori $a3, (0x3FBA2E8C & 0xFFFF) # ori $a3, $a3, 0x2e8c +/* 0BCA88 7F087F58 00402025 */ move $a0, $v0 +/* 0BCA8C 7F087F5C 27A50152 */ addiu $a1, $sp, 0x152 +/* 0BCA90 7F087F60 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0BCA94 7F087F64 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0BCA98 7F087F68 0C003FAC */ jal guPerspective +/* 0BCA9C 7F087F6C E7A80018 */ swc1 $f8, 0x18($sp) +/* 0BCAA0 7F087F70 8FA301F8 */ lw $v1, 0x1f8($sp) +/* 0BCAA4 7F087F74 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 +/* 0BCAA8 7F087F78 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 0BCAAC 7F087F7C AC790000 */ sw $t9, ($v1) +/* 0BCAB0 7F087F80 8FB80154 */ lw $t8, 0x154($sp) +/* 0BCAB4 7F087F84 3C01C140 */ li $at, 0xC1400000 # -12.000000 +/* 0BCAB8 7F087F88 44810000 */ mtc1 $at, $f0 +/* 0BCABC 7F087F8C 3C018000 */ lui $at, 0x8000 +/* 0BCAC0 7F087F90 3C0CBC00 */ lui $t4, (0xBC00000E >> 16) # lui $t4, 0xbc00 +/* 0BCAC4 7F087F94 03017021 */ addu $t6, $t8, $at +/* 0BCAC8 7F087F98 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe +/* 0BCACC 7F087F9C AC6E0004 */ sw $t6, 4($v1) +/* 0BCAD0 7F087FA0 24670008 */ addiu $a3, $v1, 8 +/* 0BCAD4 7F087FA4 ACEC0000 */ sw $t4, ($a3) +/* 0BCAD8 7F087FA8 97AD0152 */ lhu $t5, 0x152($sp) +/* 0BCADC 7F087FAC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BCAE0 7F087FB0 2508A0B0 */ addiu $t0, %lo(pPlayer) # addiu $t0, $t0, -0x5f50 +/* 0BCAE4 7F087FB4 ACED0004 */ sw $t5, 4($a3) +/* 0BCAE8 7F087FB8 8D0F0000 */ lw $t7, ($t0) +/* 0BCAEC 7F087FBC 8FAB0158 */ lw $t3, 0x158($sp) +/* 0BCAF0 7F087FC0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BCAF4 7F087FC4 8DEA01CC */ lw $t2, 0x1cc($t7) +/* 0BCAF8 7F087FC8 24E90008 */ addiu $t1, $a3, 8 +/* 0BCAFC 7F087FCC 27A4016C */ addiu $a0, $sp, 0x16c +/* 0BCB00 7F087FD0 AD6A0000 */ sw $t2, ($t3) +/* 0BCB04 7F087FD4 8D020000 */ lw $v0, ($t0) +/* 0BCB08 7F087FD8 27A60178 */ addiu $a2, $sp, 0x178 +/* 0BCB0C 7F087FDC C444054C */ lwc1 $f4, 0x54c($v0) +/* 0BCB10 7F087FE0 C44A0498 */ lwc1 $f10, 0x498($v0) +/* 0BCB14 7F087FE4 46002180 */ add.s $f6, $f4, $f0 +/* 0BCB18 7F087FE8 C4440544 */ lwc1 $f4, 0x544($v0) +/* 0BCB1C 7F087FEC 46065202 */ mul.s $f8, $f10, $f6 +/* 0BCB20 7F087FF0 C44A04A0 */ lwc1 $f10, 0x4a0($v0) +/* 0BCB24 7F087FF4 46005187 */ neg.s $f6, $f10 +/* 0BCB28 7F087FF8 46062282 */ mul.s $f10, $f4, $f6 +/* 0BCB2C 7F087FFC C444048C */ lwc1 $f4, 0x48c($v0) +/* 0BCB30 7F088000 460A2180 */ add.s $f6, $f4, $f10 +/* 0BCB34 7F088004 46064100 */ add.s $f4, $f8, $f6 +/* 0BCB38 7F088008 E7A4016C */ swc1 $f4, 0x16c($sp) +/* 0BCB3C 7F08800C C4480490 */ lwc1 $f8, 0x490($v0) +/* 0BCB40 7F088010 C44A0548 */ lwc1 $f10, 0x548($v0) +/* 0BCB44 7F088014 46085180 */ add.s $f6, $f10, $f8 +/* 0BCB48 7F088018 E7A60170 */ swc1 $f6, 0x170($sp) +/* 0BCB4C 7F08801C C44A054C */ lwc1 $f10, 0x54c($v0) +/* 0BCB50 7F088020 C44404A0 */ lwc1 $f4, 0x4a0($v0) +/* 0BCB54 7F088024 46005200 */ add.s $f8, $f10, $f0 +/* 0BCB58 7F088028 C44A0544 */ lwc1 $f10, 0x544($v0) +/* 0BCB5C 7F08802C 46082182 */ mul.s $f6, $f4, $f8 +/* 0BCB60 7F088030 C4440498 */ lwc1 $f4, 0x498($v0) +/* 0BCB64 7F088034 46045202 */ mul.s $f8, $f10, $f4 +/* 0BCB68 7F088038 C44A0494 */ lwc1 $f10, 0x494($v0) +/* 0BCB6C 7F08803C 46085100 */ add.s $f4, $f10, $f8 +/* 0BCB70 7F088040 44814000 */ mtc1 $at, $f8 +/* 0BCB74 7F088044 3C018005 */ lui $at, %hi(D_8005527C) +/* 0BCB78 7F088048 46043280 */ add.s $f10, $f6, $f4 +/* 0BCB7C 7F08804C E7AA0174 */ swc1 $f10, 0x174($sp) +/* 0BCB80 7F088050 C4460148 */ lwc1 $f6, 0x148($v0) +/* 0BCB84 7F088054 C42A527C */ lwc1 $f10, %lo(D_8005527C)($at) +/* 0BCB88 7F088058 AFA901F8 */ sw $t1, 0x1f8($sp) +/* 0BCB8C 7F08805C 46064101 */ sub.s $f4, $f8, $f6 +/* 0BCB90 7F088060 460A2202 */ mul.s $f8, $f4, $f10 +/* 0BCB94 7F088064 44054000 */ mfc1 $a1, $f8 +/* 0BCB98 7F088068 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCB9C 7F08806C 00000000 */ nop +/* 0BCBA0 7F088070 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 0BCBA4 7F088074 00000000 */ nop +/* 0BCBA8 7F088078 00402025 */ move $a0, $v0 +/* 0BCBAC 7F08807C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0BCBB0 7F088080 27A50178 */ addiu $a1, $sp, 0x178 +/* 0BCBB4 7F088084 8FB90160 */ lw $t9, 0x160($sp) +/* 0BCBB8 7F088088 8724000E */ lh $a0, 0xe($t9) +/* 0BCBBC 7F08808C 0004C180 */ sll $t8, $a0, 6 +/* 0BCBC0 7F088090 0FC2F5C5 */ jal dynAllocate +/* 0BCBC4 7F088094 03002025 */ move $a0, $t8 +/* 0BCBC8 7F088098 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BCBCC 7F08809C 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BCBD0 7F0880A0 AFA20164 */ sw $v0, 0x164($sp) +/* 0BCBD4 7F0880A4 8FA50160 */ lw $a1, 0x160($sp) +/* 0BCBD8 7F0880A8 24060004 */ li $a2, 4 +/* 0BCBDC 7F0880AC 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 0BCBE0 7F0880B0 24840230 */ addiu $a0, $a0, 0x230 +/* 0BCBE4 7F0880B4 3C058008 */ lui $a1, %hi(pPlayer) +/* 0BCBE8 7F0880B8 8FAC0164 */ lw $t4, 0x164($sp) +/* 0BCBEC 7F0880BC 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) +/* 0BCBF0 7F0880C0 27AE0178 */ addiu $t6, $sp, 0x178 +/* 0BCBF4 7F0880C4 AFAE01B8 */ sw $t6, 0x1b8($sp) +/* 0BCBF8 7F0880C8 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BCBFC 7F0880CC AFAC01C8 */ sw $t4, 0x1c8($sp) +/* 0BCC00 7F0880D0 0FC1BCBE */ jal subcalcmatrices +/* 0BCC04 7F0880D4 24A50230 */ addiu $a1, $a1, 0x230 +/* 0BCC08 7F0880D8 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BCC0C 7F0880DC 3C0B8008 */ lui $t3, %hi(watch_time_0) +/* 0BCC10 7F0880E0 8D6B9A24 */ lw $t3, %lo(watch_time_0)($t3) +/* 0BCC14 7F0880E4 8DAF0008 */ lw $t7, 8($t5) +/* 0BCC18 7F0880E8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BCC1C 7F0880EC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BCC20 7F0880F0 8DEA0000 */ lw $t2, ($t7) +/* 0BCC24 7F0880F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BCC28 7F0880F8 44810000 */ mtc1 $at, $f0 +/* 0BCC2C 7F0880FC 8D430004 */ lw $v1, 4($t2) +/* 0BCC30 7F088100 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 0BCC34 7F088104 AFAB0090 */ sw $t3, 0x90($sp) +/* 0BCC38 7F088108 44812000 */ mtc1 $at, $f4 +/* 0BCC3C 7F08810C C4460258 */ lwc1 $f6, 0x258($v0) +/* 0BCC40 7F088110 46043383 */ div.s $f14, $f6, $f4 +/* 0BCC44 7F088114 460E003C */ c.lt.s $f0, $f14 +/* 0BCC48 7F088118 00000000 */ nop +/* 0BCC4C 7F08811C 45020003 */ bc1fl .L7F08812C +/* 0BCC50 7F088120 C46A0000 */ lwc1 $f10, ($v1) +/* 0BCC54 7F088124 46000386 */ mov.s $f14, $f0 +/* 0BCC58 7F088128 C46A0000 */ lwc1 $f10, ($v1) +.L7F08812C: +/* 0BCC5C 7F08812C C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC60 7F088130 C44401D4 */ lwc1 $f4, 0x1d4($v0) +/* 0BCC64 7F088134 8FA80164 */ lw $t0, 0x164($sp) +/* 0BCC68 7F088138 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCC6C 7F08813C 44808000 */ mtc1 $zero, $f16 +/* 0BCC70 7F088140 C5000030 */ lwc1 $f0, 0x30($t0) +/* 0BCC74 7F088144 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCC78 7F088148 44058000 */ mfc1 $a1, $f16 +/* 0BCC7C 7F08814C 44068000 */ mfc1 $a2, $f16 +/* 0BCC80 7F088150 44078000 */ mfc1 $a3, $f16 +/* 0BCC84 7F088154 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCC88 7F088158 46005201 */ sub.s $f8, $f10, $f0 +/* 0BCC8C 7F08815C 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCC90 7F088160 46002180 */ add.s $f6, $f4, $f0 +/* 0BCC94 7F088164 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 0BCC98 7F088168 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCC9C 7F08816C C46A0008 */ lwc1 $f10, 8($v1) +/* 0BCCA0 7F088170 C44601D8 */ lwc1 $f6, 0x1d8($v0) +/* 0BCCA4 7F088174 C5020034 */ lwc1 $f2, 0x34($t0) +/* 0BCCA8 7F088178 46085102 */ mul.s $f4, $f10, $f8 +/* 0BCCAC 7F08817C 46043280 */ add.s $f10, $f6, $f4 +/* 0BCCB0 7F088180 46025201 */ sub.s $f8, $f10, $f2 +/* 0BCCB4 7F088184 460E4182 */ mul.s $f6, $f8, $f14 +/* 0BCCB8 7F088188 46023100 */ add.s $f4, $f6, $f2 +/* 0BCCBC 7F08818C E7A400B8 */ swc1 $f4, 0xb8($sp) +/* 0BCCC0 7F088190 C4480244 */ lwc1 $f8, 0x244($v0) +/* 0BCCC4 7F088194 C46A0004 */ lwc1 $f10, 4($v1) +/* 0BCCC8 7F088198 C44401DC */ lwc1 $f4, 0x1dc($v0) +/* 0BCCCC 7F08819C C50C0038 */ lwc1 $f12, 0x38($t0) +/* 0BCCD0 7F0881A0 46085182 */ mul.s $f6, $f10, $f8 +/* 0BCCD4 7F0881A4 46062281 */ sub.s $f10, $f4, $f6 +/* 0BCCD8 7F0881A8 460C5201 */ sub.s $f8, $f10, $f12 +/* 0BCCDC 7F0881AC 460E4102 */ mul.s $f4, $f8, $f14 +/* 0BCCE0 7F0881B0 460C2180 */ add.s $f6, $f4, $f12 +/* 0BCCE4 7F0881B4 E7A600BC */ swc1 $f6, 0xbc($sp) +/* 0BCCE8 7F0881B8 C44A01E0 */ lwc1 $f10, 0x1e0($v0) +/* 0BCCEC 7F0881BC E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0BCCF0 7F0881C0 C44801E4 */ lwc1 $f8, 0x1e4($v0) +/* 0BCCF4 7F0881C4 E7A80014 */ swc1 $f8, 0x14($sp) +/* 0BCCF8 7F0881C8 C44401E8 */ lwc1 $f4, 0x1e8($v0) +/* 0BCCFC 7F0881CC E7A40018 */ swc1 $f4, 0x18($sp) +/* 0BCD00 7F0881D0 C44601EC */ lwc1 $f6, 0x1ec($v0) +/* 0BCD04 7F0881D4 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 0BCD08 7F0881D8 C44A01F0 */ lwc1 $f10, 0x1f0($v0) +/* 0BCD0C 7F0881DC E7AA0020 */ swc1 $f10, 0x20($sp) +/* 0BCD10 7F0881E0 C44801F4 */ lwc1 $f8, 0x1f4($v0) +/* 0BCD14 7F0881E4 E7AE0168 */ swc1 $f14, 0x168($sp) +/* 0BCD18 7F0881E8 0FC16642 */ jal matrix_4x4_7F059908 +/* 0BCD1C 7F0881EC E7A80024 */ swc1 $f8, 0x24($sp) +/* 0BCD20 7F0881F0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCD24 7F0881F4 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD28 7F0881F8 27A500FC */ addiu $a1, $sp, 0xfc +/* 0BCD2C 7F0881FC 27A40108 */ addiu $a0, $sp, 0x108 +/* 0BCD30 7F088200 0FC16218 */ jal matrix_4x4_get_rotation_around_xyz +/* 0BCD34 7F088204 27A500F0 */ addiu $a1, $sp, 0xf0 +/* 0BCD38 7F088208 27A400FC */ addiu $a0, $sp, 0xfc +/* 0BCD3C 7F08820C 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD40 7F088210 27A500E0 */ addiu $a1, $sp, 0xe0 +/* 0BCD44 7F088214 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 0BCD48 7F088218 0FC16CFD */ jal quaternion_set_rotation_around_xyzf +/* 0BCD4C 7F08821C 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD50 7F088220 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD54 7F088224 0FC16F84 */ jal quaternion_ensure_shortest_path +/* 0BCD58 7F088228 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD5C 7F08822C 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 0BCD60 7F088230 27A500D0 */ addiu $a1, $sp, 0xd0 +/* 0BCD64 7F088234 8FA60168 */ lw $a2, 0x168($sp) +/* 0BCD68 7F088238 0FC16E82 */ jal quaternion_slerp +/* 0BCD6C 7F08823C 27A700C0 */ addiu $a3, $sp, 0xc0 +/* 0BCD70 7F088240 27A400C0 */ addiu $a0, $sp, 0xc0 +/* 0BCD74 7F088244 0FC16D8A */ jal quaternion_to_matrix +/* 0BCD78 7F088248 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD7C 7F08824C 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BCD80 7F088250 0FC16266 */ jal matrix_4x4_set_position +/* 0BCD84 7F088254 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD88 7F088258 3C198008 */ lui $t9, %hi(pPlayer) +/* 0BCD8C 7F08825C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0BCD90 7F088260 8FA50164 */ lw $a1, 0x164($sp) +/* 0BCD94 7F088264 0FC1629F */ jal matrix_scalar_multiply +/* 0BCD98 7F088268 C72C0244 */ lwc1 $f12, 0x244($t9) +/* 0BCD9C 7F08826C 2403003C */ li $v1, 60 +/* 0BCDA0 7F088270 8FA40090 */ lw $a0, 0x90($sp) +/* 0BCDA4 7F088274 3C018005 */ lui $at, %hi(D_80055280) +/* 0BCDA8 7F088278 C4225280 */ lwc1 $f2, %lo(D_80055280)($at) +/* 0BCDAC 7F08827C 0083001A */ div $zero, $a0, $v1 +/* 0BCDB0 7F088280 0000C010 */ mfhi $t8 +/* 0BCDB4 7F088284 00001012 */ mflo $v0 +/* 0BCDB8 7F088288 44982000 */ mtc1 $t8, $f4 +/* 0BCDBC 7F08828C 44808000 */ mtc1 $zero, $f16 +/* 0BCDC0 7F088290 0043001A */ div $zero, $v0, $v1 +/* 0BCDC4 7F088294 00007010 */ mfhi $t6 +/* 0BCDC8 7F088298 00006012 */ mflo $t4 +/* 0BCDCC 7F08829C 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCDD0 7F0882A0 14600002 */ bnez $v1, .L7F0882AC +/* 0BCDD4 7F0882A4 00000000 */ nop +/* 0BCDD8 7F0882A8 0007000D */ break 7 +.L7F0882AC: +/* 0BCDDC 7F0882AC 2401FFFF */ li $at, -1 +/* 0BCDE0 7F0882B0 14610004 */ bne $v1, $at, .L7F0882C4 +/* 0BCDE4 7F0882B4 3C018000 */ lui $at, 0x8000 +/* 0BCDE8 7F0882B8 14810002 */ bne $a0, $at, .L7F0882C4 +/* 0BCDEC 7F0882BC 00000000 */ nop +/* 0BCDF0 7F0882C0 0006000D */ break 6 +.L7F0882C4: +/* 0BCDF4 7F0882C4 0183001A */ div $zero, $t4, $v1 +/* 0BCDF8 7F0882C8 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCDFC 7F0882CC 44815000 */ mtc1 $at, $f10 +/* 0BCE00 7F0882D0 448E2000 */ mtc1 $t6, $f4 +/* 0BCE04 7F0882D4 00006810 */ mfhi $t5 +/* 0BCE08 7F0882D8 460A3203 */ div.s $f8, $f6, $f10 +/* 0BCE0C 7F0882DC 14600002 */ bnez $v1, .L7F0882E8 +/* 0BCE10 7F0882E0 00000000 */ nop +/* 0BCE14 7F0882E4 0007000D */ break 7 +.L7F0882E8: +/* 0BCE18 7F0882E8 2401FFFF */ li $at, -1 +/* 0BCE1C 7F0882EC 14610004 */ bne $v1, $at, .L7F088300 +/* 0BCE20 7F0882F0 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE24 7F0882F4 14410002 */ bne $v0, $at, .L7F088300 +/* 0BCE28 7F0882F8 00000000 */ nop +/* 0BCE2C 7F0882FC 0006000D */ break 6 +.L7F088300: +/* 0BCE30 7F088300 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE34 7F088304 8FAB0160 */ lw $t3, 0x160($sp) +/* 0BCE38 7F088308 468021A0 */ cvt.s.w $f6, $f4 +/* 0BCE3C 7F08830C 46083280 */ add.s $f10, $f6, $f8 +/* 0BCE40 7F088310 44814000 */ mtc1 $at, $f8 +/* 0BCE44 7F088314 46005107 */ neg.s $f4, $f10 +/* 0BCE48 7F088318 448D5000 */ mtc1 $t5, $f10 +/* 0BCE4C 7F08831C 46022182 */ mul.s $f6, $f4, $f2 +/* 0BCE50 7F088320 46805120 */ cvt.s.w $f4, $f10 +/* 0BCE54 7F088324 46083483 */ div.s $f18, $f6, $f8 +/* 0BCE58 7F088328 46002187 */ neg.s $f6, $f4 +/* 0BCE5C 7F08832C 46023202 */ mul.s $f8, $f6, $f2 +/* 0BCE60 7F088330 4610903C */ c.lt.s $f18, $f16 +/* 0BCE64 7F088334 46009306 */ mov.s $f12, $f18 +/* 0BCE68 7F088338 14600002 */ bnez $v1, .L7F088344 +/* 0BCE6C 7F08833C 00000000 */ nop +/* 0BCE70 7F088340 0007000D */ break 7 +.L7F088344: +/* 0BCE74 7F088344 2401FFFF */ li $at, -1 +/* 0BCE78 7F088348 14610004 */ bne $v1, $at, .L7F08835C +/* 0BCE7C 7F08834C 3C018000 */ li $at, 0x80000000 # -0.000000 +/* 0BCE80 7F088350 15810002 */ bne $t4, $at, .L7F08835C +/* 0BCE84 7F088354 00000000 */ nop +/* 0BCE88 7F088358 0006000D */ break 6 +.L7F08835C: +/* 0BCE8C 7F08835C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0BCE90 7F088360 44815000 */ mtc1 $at, $f10 +/* 0BCE94 7F088364 44813000 */ mtc1 $at, $f6 +/* 0BCE98 7F088368 24010E10 */ li $at, 3600 +/* 0BCE9C 7F08836C 0041001A */ div $zero, $v0, $at +/* 0BCEA0 7F088370 00007812 */ mflo $t7 +/* 0BCEA4 7F088374 2401000C */ li $at, 12 +/* 0BCEA8 7F088378 460A4103 */ div.s $f4, $f8, $f10 +/* 0BCEAC 7F08837C 01E1001A */ div $zero, $t7, $at +/* 0BCEB0 7F088380 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEB4 7F088384 00005010 */ mfhi $t2 +/* 0BCEB8 7F088388 448A3000 */ mtc1 $t2, $f6 +/* 0BCEBC 7F08838C 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0BCEC0 7F088390 46082280 */ add.s $f10, $f4, $f8 +/* 0BCEC4 7F088394 46803120 */ cvt.s.w $f4, $f6 +/* 0BCEC8 7F088398 E7AA0040 */ swc1 $f10, 0x40($sp) +/* 0BCECC 7F08839C 46005386 */ mov.s $f14, $f10 +/* 0BCED0 7F0883A0 46002207 */ neg.s $f8, $f4 +/* 0BCED4 7F0883A4 44812000 */ mtc1 $at, $f4 +/* 0BCED8 7F0883A8 46024182 */ mul.s $f6, $f8, $f2 +/* 0BCEDC 7F0883AC 46043203 */ div.s $f8, $f6, $f4 +/* 0BCEE0 7F0883B0 44813000 */ mtc1 $at, $f6 +/* 0BCEE4 7F0883B4 3C014434 */ li $at, 0x44340000 # 720.000000 +/* 0BCEE8 7F0883B8 46065103 */ div.s $f4, $f10, $f6 +/* 0BCEEC 7F0883BC 44813000 */ mtc1 $at, $f6 +/* 0BCEF0 7F0883C0 46044280 */ add.s $f10, $f8, $f4 +/* 0BCEF4 7F0883C4 46069203 */ div.s $f8, $f18, $f6 +/* 0BCEF8 7F0883C8 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0BCEFC 7F0883CC 46085100 */ add.s $f4, $f10, $f8 +/* 0BCF00 7F0883D0 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BCF04 7F0883D4 46002006 */ mov.s $f0, $f4 +/* 0BCF08 7F0883D8 45000006 */ bc1f .L7F0883F4 +/* 0BCF0C 7F0883DC C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 0BCF10 7F0883E0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883E4: +/* 0BCF14 7F0883E4 4610603C */ c.lt.s $f12, $f16 +/* 0BCF18 7F0883E8 00000000 */ nop +/* 0BCF1C 7F0883EC 4503FFFD */ bc1tl .L7F0883E4 +/* 0BCF20 7F0883F0 46026300 */ add.s $f12, $f12, $f2 +.L7F0883F4: +/* 0BCF24 7F0883F4 4610303C */ c.lt.s $f6, $f16 +/* 0BCF28 7F0883F8 00000000 */ nop +/* 0BCF2C 7F0883FC 45020007 */ bc1fl .L7F08841C +/* 0BCF30 7F088400 4610503C */ c.lt.s $f10, $f16 +/* 0BCF34 7F088404 46027380 */ add.s $f14, $f14, $f2 +.L7F088408: +/* 0BCF38 7F088408 4610703C */ c.lt.s $f14, $f16 +/* 0BCF3C 7F08840C 00000000 */ nop +/* 0BCF40 7F088410 4503FFFD */ bc1tl .L7F088408 +/* 0BCF44 7F088414 46027380 */ add.s $f14, $f14, $f2 +/* 0BCF48 7F088418 4610503C */ c.lt.s $f10, $f16 +.L7F08841C: +/* 0BCF4C 7F08841C 00000000 */ nop +/* 0BCF50 7F088420 45020007 */ bc1fl .L7F088440 +/* 0BCF54 7F088424 8D790008 */ lw $t9, 8($t3) +/* 0BCF58 7F088428 46020000 */ add.s $f0, $f0, $f2 +.L7F08842C: +/* 0BCF5C 7F08842C 4610003C */ c.lt.s $f0, $f16 +/* 0BCF60 7F088430 00000000 */ nop +/* 0BCF64 7F088434 4503FFFD */ bc1tl .L7F08842C +/* 0BCF68 7F088438 46020000 */ add.s $f0, $f0, $f2 +/* 0BCF6C 7F08843C 8D790008 */ lw $t9, 8($t3) +.L7F088440: +/* 0BCF70 7F088440 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCF74 7F088444 44050000 */ mfc1 $a1, $f0 +/* 0BCF78 7F088448 8F380000 */ lw $t8, ($t9) +/* 0BCF7C 7F08844C 24C60040 */ addiu $a2, $a2, 0x40 +/* 0BCF80 7F088450 8F040004 */ lw $a0, 4($t8) +/* 0BCF84 7F088454 E7AE0098 */ swc1 $f14, 0x98($sp) +/* 0BCF88 7F088458 E7AC009C */ swc1 $f12, 0x9c($sp) +/* 0BCF8C 7F08845C 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCF90 7F088460 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCF94 7F088464 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCF98 7F088468 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCF9C 7F08846C 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFA0 7F088470 8FAE0160 */ lw $t6, 0x160($sp) +/* 0BCFA4 7F088474 C7AE0098 */ lwc1 $f14, 0x98($sp) +/* 0BCFA8 7F088478 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFAC 7F08847C 8DCC0008 */ lw $t4, 8($t6) +/* 0BCFB0 7F088480 44057000 */ mfc1 $a1, $f14 +/* 0BCFB4 7F088484 24C60080 */ addiu $a2, $a2, 0x80 +/* 0BCFB8 7F088488 8D8D0004 */ lw $t5, 4($t4) +/* 0BCFBC 7F08848C 8DA40004 */ lw $a0, 4($t5) +/* 0BCFC0 7F088490 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFC4 7F088494 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFC8 7F088498 8FA50040 */ lw $a1, 0x40($sp) +/* 0BCFCC 7F08849C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BCFD0 7F0884A0 8FA40164 */ lw $a0, 0x164($sp) +/* 0BCFD4 7F0884A4 8FAF0160 */ lw $t7, 0x160($sp) +/* 0BCFD8 7F0884A8 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 0BCFDC 7F0884AC 8FA60164 */ lw $a2, 0x164($sp) +/* 0BCFE0 7F0884B0 8DEA0008 */ lw $t2, 8($t7) +/* 0BCFE4 7F0884B4 44056000 */ mfc1 $a1, $f12 +/* 0BCFE8 7F0884B8 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 0BCFEC 7F0884BC 8D4B0008 */ lw $t3, 8($t2) +/* 0BCFF0 7F0884C0 8D640004 */ lw $a0, 4($t3) +/* 0BCFF4 7F0884C4 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 0BCFF8 7F0884C8 AFA60040 */ sw $a2, 0x40($sp) +/* 0BCFFC 7F0884CC 8FA50040 */ lw $a1, 0x40($sp) +/* 0BD000 7F0884D0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD004 7F0884D4 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD008 7F0884D8 8FB801F8 */ lw $t8, 0x1f8($sp) +/* 0BD00C 7F0884DC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BD010 7F0884E0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BD014 7F0884E4 24190003 */ li $t9, 3 +/* 0BD018 7F0884E8 240E0004 */ li $t6, 4 +/* 0BD01C 7F0884EC AFB901C0 */ sw $t9, 0x1c0($sp) +/* 0BD020 7F0884F0 AFA001BC */ sw $zero, 0x1bc($sp) +/* 0BD024 7F0884F4 AFAE01E8 */ sw $t6, 0x1e8($sp) +/* 0BD028 7F0884F8 AFB801C4 */ sw $t8, 0x1c4($sp) +/* 0BD02C 7F0884FC 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BD030 7F088500 24010005 */ li $at, 5 +/* 0BD034 7F088504 27A401B8 */ addiu $a0, $sp, 0x1b8 +/* 0BD038 7F088508 10610002 */ beq $v1, $at, .L7F088514 +/* 0BD03C 7F08850C 2401000C */ li $at, 12 +/* 0BD040 7F088510 14610003 */ bne $v1, $at, .L7F088520 +.L7F088514: +/* 0BD044 7F088514 240C00CD */ li $t4, 205 +/* 0BD048 7F088518 1000000C */ b .L7F08854C +/* 0BD04C 7F08851C AFAC01EC */ sw $t4, 0x1ec($sp) +.L7F088520: +/* 0BD050 7F088520 904F0FDC */ lbu $t7, 0xfdc($v0) +/* 0BD054 7F088524 904D0FDF */ lbu $t5, 0xfdf($v0) +/* 0BD058 7F088528 90590FDD */ lbu $t9, 0xfdd($v0) +/* 0BD05C 7F08852C 904C0FDE */ lbu $t4, 0xfde($v0) +/* 0BD060 7F088530 000F5600 */ sll $t2, $t7, 0x18 +/* 0BD064 7F088534 01AA5825 */ or $t3, $t5, $t2 +/* 0BD068 7F088538 0019C400 */ sll $t8, $t9, 0x10 +/* 0BD06C 7F08853C 01787025 */ or $t6, $t3, $t8 +/* 0BD070 7F088540 000C7A00 */ sll $t7, $t4, 8 +/* 0BD074 7F088544 01CF6825 */ or $t5, $t6, $t7 +/* 0BD078 7F088548 AFAD01EC */ sw $t5, 0x1ec($sp) +.L7F08854C: +/* 0BD07C 7F08854C 0FC1D1A1 */ jal subdraw +/* 0BD080 7F088550 24450230 */ addiu $a1, $v0, 0x230 +/* 0BD084 7F088554 8FAA01C4 */ lw $t2, 0x1c4($sp) +/* 0BD088 7F088558 8FB90160 */ lw $t9, 0x160($sp) +/* 0BD08C 7F08855C AFAA01F8 */ sw $t2, 0x1f8($sp) +/* 0BD090 7F088560 8F2B0008 */ lw $t3, 8($t9) +/* 0BD094 7F088564 8D780008 */ lw $t8, 8($t3) +/* 0BD098 7F088568 8F0C0004 */ lw $t4, 4($t8) +/* 0BD09C 7F08856C 0FC2F5B8 */ jal dynAllocateMatrix +/* 0BD0A0 7F088570 AFAC008C */ sw $t4, 0x8c($sp) +/* 0BD0A4 7F088574 AFA20048 */ sw $v0, 0x48($sp) +/* 0BD0A8 7F088578 8FA4008C */ lw $a0, 0x8c($sp) +/* 0BD0AC 7F08857C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0BD0B0 7F088580 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0B4 7F088584 8FA40164 */ lw $a0, 0x164($sp) +/* 0BD0B8 7F088588 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0BD0BC 7F08858C 27A5004C */ addiu $a1, $sp, 0x4c +/* 0BD0C0 7F088590 0FC16319 */ jal matrix_4x4_7F058C64 +/* 0BD0C4 7F088594 00000000 */ nop +/* 0BD0C8 7F088598 27A4004C */ addiu $a0, $sp, 0x4c +/* 0BD0CC 7F08859C 0FC16327 */ jal sub_GAME_7F058C9C +/* 0BD0D0 7F0885A0 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD0D4 7F0885A4 0FC16322 */ jal matrix_4x4_7F058C88 +/* 0BD0D8 7F0885A8 00000000 */ nop +/* 0BD0DC 7F0885AC 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0BD0E0 7F0885B0 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0BD0E4 7F0885B4 8FA401F8 */ lw $a0, 0x1f8($sp) +/* 0BD0E8 7F0885B8 8DC301C8 */ lw $v1, 0x1c8($t6) +/* 0BD0EC 7F0885BC 38660005 */ xori $a2, $v1, 5 +/* 0BD0F0 7F0885C0 2CC60001 */ sltiu $a2, $a2, 1 +/* 0BD0F4 7F0885C4 14C00003 */ bnez $a2, .L7F0885D4 +/* 0BD0F8 7F0885C8 00000000 */ nop +/* 0BD0FC 7F0885CC 3866000C */ xori $a2, $v1, 0xc +/* 0BD100 7F0885D0 2CC60001 */ sltiu $a2, $a2, 1 +.L7F0885D4: +/* 0BD104 7F0885D4 0FC2B28A */ jal sub_GAME_7F0ACA28 +/* 0BD108 7F0885D8 8FA50048 */ lw $a1, 0x48($sp) +/* 0BD10C 7F0885DC 0FC16319 */ jal matrix_4x4_7F058C64 +/* 0BD110 7F0885E0 AFA201F8 */ sw $v0, 0x1f8($sp) +/* 0BD114 7F0885E4 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BD118 7F0885E8 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BD11C 7F0885EC 8FAD0160 */ lw $t5, 0x160($sp) +/* 0BD120 7F0885F0 8DE4023C */ lw $a0, 0x23c($t7) +/* 0BD124 7F0885F4 0FC22F52 */ jal sub_GAME_7F08BD48 +/* 0BD128 7F0885F8 85A5000E */ lh $a1, 0xe($t5) +/* 0BD12C 7F0885FC 0FC16322 */ jal matrix_4x4_7F058C88 +/* 0BD130 7F088600 00000000 */ nop +.L7F088604: +/* 0BD134 7F088604 8FBF002C */ lw $ra, 0x2c($sp) +.L7F088608: +/* 0BD138 7F088608 8FA201F8 */ lw $v0, 0x1f8($sp) +/* 0BD13C 7F08860C 27BD01F8 */ addiu $sp, $sp, 0x1f8 +/* 0BD140 7F088610 03E00008 */ jr $ra +/* 0BD144 7F088614 00000000 */ nop +) +#endif + + #endif @@ -27257,8 +33618,8 @@ s32 sub_GAME_7F088618(void *arg0) { sub_GAME_7F0A3330((pPlayer + 0x19f8), (pPlayer + 0x800012b8), 0x2e); sub_GAME_7F0A2F30((pPlayer + 0x1598), 0x2e, -1, pPlayer->apparenthealth); sub_GAME_7F0A3330((pPlayer + 0x2128), (pPlayer + 0x80001598), 0x2e); - spBC = sub_GAME_7F0BD6E0(); - temp_ret = sub_GAME_7F0BD6E0(); + spBC = dynAllocateMatrix(); + temp_ret = dynAllocateMatrix(); spB8 = temp_ret; guOrtho(temp_ret, (-800.0f * D_800364CC), (800.0f * D_800364CC), (-600.0f * D_800364CC), (f32) (600.0f * D_800364CC), -100.0f, 1000.0f, 1.0f); *arg0 = 0x1030040; @@ -27338,9 +33699,9 @@ glabel sub_GAME_7F088618 /* 0BD1C4 7F088694 02212821 */ addu $a1, $s1, $at /* 0BD1C8 7F088698 0FC28CCC */ jal sub_GAME_7F0A3330 /* 0BD1CC 7F08869C 26242128 */ addiu $a0, $s1, 0x2128 -/* 0BD1D0 7F0886A0 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1D0 7F0886A0 0FC2F5B8 */ jal dynAllocateMatrix /* 0BD1D4 7F0886A4 00000000 */ nop -/* 0BD1D8 7F0886A8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0BD1D8 7F0886A8 0FC2F5B8 */ jal dynAllocateMatrix /* 0BD1DC 7F0886AC AFA200BC */ sw $v0, 0xbc($sp) /* 0BD1E0 7F0886B0 3C018003 */ lui $at, %hi(D_800364CC) /* 0BD1E4 7F0886B4 C42064CC */ lwc1 $f0, %lo(D_800364CC)($at) @@ -27595,7 +33956,7 @@ glabel mp_respawn_handler /* 0BD534 7F088A04 46004280 */ add.s $f10, $f8, $f0 /* 0BD538 7F088A08 E7AA0050 */ swc1 $f10, 0x50($sp) /* 0BD53C 7F088A0C E4400070 */ swc1 $f0, 0x70($v0) -/* 0BD540 7F088A10 0C002914 */ jal get_random_value +/* 0BD540 7F088A10 0C002914 */ jal randomGetNext /* 0BD544 7F088A14 E7A0003C */ swc1 $f0, 0x3c($sp) /* 0BD548 7F088A18 44828000 */ mtc1 $v0, $f16 /* 0BD54C 7F088A1C 3C018005 */ lui $at, %hi(D_80055284) @@ -27817,7 +34178,7 @@ glabel sub_GAME_7F088CD8 /* 0BD828 7F088CF8 AFB30044 */ sw $s3, 0x44($sp) /* 0BD82C 7F088CFC AFB20040 */ sw $s2, 0x40($sp) /* 0BD830 7F088D00 AFB1003C */ sw $s1, 0x3c($sp) -/* 0BD834 7F088D04 0C001A57 */ jal get_stage_num +/* 0BD834 7F088D04 0C001A57 */ jal bossGetStageNum /* 0BD838 7F088D08 AFB00038 */ sw $s0, 0x38($sp) /* 0BD83C 7F088D0C 24010036 */ li $at, 54 /* 0BD840 7F088D10 14410130 */ bne $v0, $at, .L7F0891D4 @@ -28006,11 +34367,11 @@ glabel sub_GAME_7F088CD8 /* 0BDAD8 7F088FA8 AFA500AC */ sw $a1, 0xac($sp) /* 0BDADC 7F088FAC 0FC2B405 */ jal microcode_constructor_related_to_menus /* 0BDAE0 7F088FB0 24C6FFFF */ addiu $a2, $a2, -1 -/* 0BDAE4 7F088FB4 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDAE4 7F088FB4 0C001107 */ jal viGetX /* 0BDAE8 7F088FB8 0040A825 */ move $s5, $v0 /* 0BDAEC 7F088FBC 00028400 */ sll $s0, $v0, 0x10 /* 0BDAF0 7F088FC0 00107C03 */ sra $t7, $s0, 0x10 -/* 0BDAF4 7F088FC4 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDAF4 7F088FC4 0C00110B */ jal viGetY /* 0BDAF8 7F088FC8 01E08025 */ move $s0, $t7 /* 0BDAFC 7F088FCC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) /* 0BDB00 7F088FD0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) @@ -28108,11 +34469,11 @@ glabel sub_GAME_7F088CD8 /* 0BDC58 7F089128 AFA500AC */ sw $a1, 0xac($sp) /* 0BDC5C 7F08912C 0FC2B405 */ jal microcode_constructor_related_to_menus /* 0BDC60 7F089130 24C6FFFF */ addiu $a2, $a2, -1 -/* 0BDC64 7F089134 0C001107 */ jal get_video2_settings_txtClipW +/* 0BDC64 7F089134 0C001107 */ jal viGetX /* 0BDC68 7F089138 0040A825 */ move $s5, $v0 /* 0BDC6C 7F08913C 00028400 */ sll $s0, $v0, 0x10 /* 0BDC70 7F089140 00107C03 */ sra $t7, $s0, 0x10 -/* 0BDC74 7F089144 0C00110B */ jal get_video2_settings_txtClipH +/* 0BDC74 7F089144 0C00110B */ jal viGetY /* 0BDC78 7F089148 01E08025 */ move $s0, $t7 /* 0BDC7C 7F08914C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) /* 0BDC80 7F089150 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) @@ -28329,14 +34690,14 @@ glabel maybe_mp_interface /* 0BDF64 7F089434 00002025 */ move $a0, $zero /* 0BDF68 7F089438 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0BDF6C 7F08943C 00000000 */ nop -/* 0BDF70 7F089440 0C001C0F */ jal musicTrack1Vol +/* 0BDF70 7F089440 0C001C0F */ jal musicTrack1ApplySeqpVol /* 0BDF74 7F089444 3044FFFF */ andi $a0, $v0, 0xffff -/* 0BDF78 7F089448 3C018002 */ lui $at, %hi(music1_playing) -/* 0BDF7C 7F08944C AC20434C */ sw $zero, %lo(music1_playing)($at) -/* 0BDF80 7F089450 0C001CF1 */ jal musicTrack2Vol +/* 0BDF78 7F089448 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) +/* 0BDF7C 7F08944C AC20434C */ sw $zero, %lo(g_musicXTrack1Fade)($at) +/* 0BDF80 7F089450 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0BDF84 7F089454 00002025 */ move $a0, $zero -/* 0BDF88 7F089458 3C018002 */ lui $at, %hi(music2_playing) -/* 0BDF8C 7F08945C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0BDF88 7F089458 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0BDF8C 7F08945C AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0BDF90 7F089460 0C001B9F */ jal musicTrack1Play /* 0BDF94 7F089464 2404001B */ li $a0, 27 /* 0BDF98 7F089468 10000003 */ b .L7F089478 @@ -28469,7 +34830,7 @@ glabel maybe_mp_interface /* 0BE164 7F089634 00022600 */ sll $a0, $v0, 0x18 /* 0BE168 7F089638 00046E03 */ sra $t5, $a0, 0x18 /* 0BE16C 7F08963C 01A02025 */ move $a0, $t5 -/* 0BE170 7F089640 0C0030C3 */ jal get_controller_buttons_held +/* 0BE170 7F089640 0C0030C3 */ jal joyGetButtons /* 0BE174 7F089644 3405B000 */ li $a1, 45056 /* 0BE178 7F089648 10400003 */ beqz $v0, .L7F089658 /* 0BE17C 7F08964C 00000000 */ nop @@ -28776,7 +35137,7 @@ GLOBAL_ASM( glabel sub_GAME_7F0898E8 /* 0BE418 7F0898E8 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0BE41C 7F0898EC AFBF0014 */ sw $ra, 0x14($sp) -/* 0BE420 7F0898F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0BE420 7F0898F0 0C00307F */ jal joyGetStickY /* 0BE424 7F0898F4 00002025 */ move $a0, $zero /* 0BE428 7F0898F8 000270C0 */ sll $t6, $v0, 3 /* 0BE42C 7F0898FC 25C20280 */ addiu $v0, $t6, 0x280 @@ -28874,7 +35235,7 @@ glabel record_damage_kills /* 0BE544 7F089A14 0FC26C54 */ jal get_cur_playernum /* 0BE548 7F089A18 00000000 */ nop /* 0BE54C 7F089A1C 00402025 */ move $a0, $v0 -/* 0BE550 7F089A20 0C003215 */ jal controller_7000C854 +/* 0BE550 7F089A20 0C003215 */ jal joyRumblePakStart /* 0BE554 7F089A24 3C053E80 */ lui $a1, 0x3e80 /* 0BE558 7F089A28 0FC29370 */ jal cur_player_get_control_type /* 0BE55C 7F089A2C 00000000 */ nop @@ -28887,7 +35248,747 @@ glabel record_damage_kills /* 0BE578 7F089A48 AFA2001C */ sw $v0, 0x1c($sp) /* 0BE57C 7F089A4C 8FAC001C */ lw $t4, 0x1c($sp) /* 0BE580 7F089A50 3C053E80 */ lui $a1, 0x3e80 -/* 0BE584 7F089A54 0C003215 */ jal controller_7000C854 +/* 0BE584 7F089A54 0C003215 */ jal joyRumblePakStart +/* 0BE588 7F089A58 004C2021 */ addu $a0, $v0, $t4 +.L7F089A5C: +/* 0BE58C 7F089A5C 0FC26919 */ jal getPlayerCount +/* 0BE590 7F089A60 00000000 */ nop +/* 0BE594 7F089A64 28410002 */ slti $at, $v0, 2 +/* 0BE598 7F089A68 14200010 */ bnez $at, .L7F089AAC +/* 0BE59C 7F089A6C 00000000 */ nop +/* 0BE5A0 7F089A70 0FC051D6 */ jal get_scenario +/* 0BE5A4 7F089A74 00000000 */ nop +/* 0BE5A8 7F089A78 24010004 */ li $at, 4 +/* 0BE5AC 7F089A7C 1441000B */ bne $v0, $at, .L7F089AAC +/* 0BE5B0 7F089A80 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5B4 7F089A84 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5B8 7F089A88 C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BE5BC 7F089A8C C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BE5C0 7F089A90 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE5C4 7F089A94 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BE5C8 7F089A98 46049182 */ mul.s $f6, $f18, $f4 +/* 0BE5CC 7F089A9C 00000000 */ nop +/* 0BE5D0 7F089AA0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE5D4 7F089AA4 46103480 */ add.s $f18, $f6, $f16 +/* 0BE5D8 7F089AA8 E7B2003C */ swc1 $f18, 0x3c($sp) +.L7F089AAC: +/* 0BE5DC 7F089AAC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE5E0 7F089AB0 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE5E4 7F089AB4 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BE5E8 7F089AB8 55A000E1 */ bnezl $t5, .L7F089E40 +/* 0BE5EC 7F089ABC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE5F0 7F089AC0 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BE5F4 7F089AC4 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) +/* 0BE5F8 7F089AC8 55C000DD */ bnezl $t6, .L7F089E40 +/* 0BE5FC 7F089ACC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE600 7F089AD0 8DEF64B4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BE604 7F089AD4 55E000DA */ bnezl $t7, .L7F089E40 +/* 0BE608 7F089AD8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE60C 7F089ADC 8C5800F4 */ lw $t8, 0xf4($v0) +/* 0BE610 7F089AE0 0702000B */ bltzl $t8, .L7F089B10 +/* 0BE614 7F089AE4 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BE618 7F089AE8 0FC26919 */ jal getPlayerCount +/* 0BE61C 7F089AEC 00000000 */ nop +/* 0BE620 7F089AF0 28410002 */ slti $at, $v0, 2 +/* 0BE624 7F089AF4 142000D1 */ bnez $at, .L7F089E3C +/* 0BE628 7F089AF8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE62C 7F089AFC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE630 7F089B00 8C5900F4 */ lw $t9, 0xf4($v0) +/* 0BE634 7F089B04 572000CE */ bnezl $t9, .L7F089E40 +/* 0BE638 7F089B08 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE63C 7F089B0C 8C4301C8 */ lw $v1, 0x1c8($v0) +.L7F089B10: +/* 0BE640 7F089B10 24010005 */ li $at, 5 +/* 0BE644 7F089B14 106100C9 */ beq $v1, $at, .L7F089E3C +/* 0BE648 7F089B18 2401000C */ li $at, 12 +/* 0BE64C 7F089B1C 506100C8 */ beql $v1, $at, .L7F089E40 +/* 0BE650 7F089B20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE654 7F089B24 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE658 7F089B28 E44400E4 */ swc1 $f4, 0xe4($v0) +/* 0BE65C 7F089B2C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE660 7F089B30 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE664 7F089B34 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BE668 7F089B38 0FC26919 */ jal getPlayerCount +/* 0BE66C 7F089B3C E44800E8 */ swc1 $f8, 0xe8($v0) +/* 0BE670 7F089B40 28410002 */ slti $at, $v0, 2 +/* 0BE674 7F089B44 54200035 */ bnezl $at, .L7F089C1C +/* 0BE678 7F089B48 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE67C 7F089B4C 0FC26C54 */ jal get_cur_playernum +/* 0BE680 7F089B50 00000000 */ nop +/* 0BE684 7F089B54 AFA20038 */ sw $v0, 0x38($sp) +/* 0BE688 7F089B58 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BE68C 7F089B5C 0FC16A8C */ jal atan2f +/* 0BE690 7F089B60 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BE694 7F089B64 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BE698 7F089B68 44815000 */ mtc1 $at, $f10 +/* 0BE69C 7F089B6C 3C018005 */ lui $at, %hi(pi_800552B0) +/* 0BE6A0 7F089B70 C43052B0 */ lwc1 $f16, %lo(pi_800552B0)($at) +/* 0BE6A4 7F089B74 460A0182 */ mul.s $f6, $f0, $f10 +/* 0BE6A8 7F089B78 8FA80038 */ lw $t0, 0x38($sp) +/* 0BE6AC 7F089B7C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BE6B0 7F089B80 3C0A8008 */ lui $t2, %hi(players) +/* 0BE6B4 7F089B84 00084880 */ sll $t1, $t0, 2 +/* 0BE6B8 7F089B88 44812000 */ mtc1 $at, $f4 +/* 0BE6BC 7F089B8C 01495021 */ addu $t2, $t2, $t1 +/* 0BE6C0 7F089B90 46103483 */ div.s $f18, $f6, $f16 +/* 0BE6C4 7F089B94 8D4A9EE0 */ lw $t2, %lo(players)($t2) +/* 0BE6C8 7F089B98 44806000 */ mtc1 $zero, $f12 +/* 0BE6CC 7F089B9C 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE6D0 7F089BA0 C54A0148 */ lwc1 $f10, 0x148($t2) +/* 0BE6D4 7F089BA4 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BE6D8 7F089BA8 000B60C0 */ sll $t4, $t3, 3 +/* 0BE6DC 7F089BAC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0BE6E0 7F089BB0 018B6023 */ subu $t4, $t4, $t3 +/* 0BE6E4 7F089BB4 44813000 */ mtc1 $at, $f6 +/* 0BE6E8 7F089BB8 000C6100 */ sll $t4, $t4, 4 +/* 0BE6EC 7F089BBC 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0BE6F0 7F089BC0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BE6F4 7F089BC4 018D1021 */ addu $v0, $t4, $t5 +/* 0BE6F8 7F089BC8 46122201 */ sub.s $f8, $f4, $f18 +/* 0BE6FC 7F089BCC 46085081 */ sub.s $f2, $f10, $f8 +/* 0BE700 7F089BD0 460C103C */ c.lt.s $f2, $f12 +/* 0BE704 7F089BD4 00000000 */ nop +/* 0BE708 7F089BD8 45020003 */ bc1fl .L7F089BE8 +/* 0BE70C 7F089BDC 4606103C */ c.lt.s $f2, $f6 +/* 0BE710 7F089BE0 46001087 */ neg.s $f2, $f2 +/* 0BE714 7F089BE4 4606103C */ c.lt.s $f2, $f6 +.L7F089BE8: +/* 0BE718 7F089BE8 00000000 */ nop +/* 0BE71C 7F089BEC 45030008 */ bc1tl .L7F089C10 +/* 0BE720 7F089BF0 8C4E003C */ lw $t6, 0x3c($v0) +/* 0BE724 7F089BF4 44818000 */ mtc1 $at, $f16 +/* 0BE728 7F089BF8 00000000 */ nop +/* 0BE72C 7F089BFC 4602803C */ c.lt.s $f16, $f2 +/* 0BE730 7F089C00 00000000 */ nop +/* 0BE734 7F089C04 45020005 */ bc1fl .L7F089C1C +/* 0BE738 7F089C08 8FA30050 */ lw $v1, 0x50($sp) +/* 0BE73C 7F089C0C 8C4E003C */ lw $t6, 0x3c($v0) +.L7F089C10: +/* 0BE740 7F089C10 25CF0001 */ addiu $t7, $t6, 1 +/* 0BE744 7F089C14 AC4F003C */ sw $t7, 0x3c($v0) +/* 0BE748 7F089C18 8FA30050 */ lw $v1, 0x50($sp) +.L7F089C1C: +/* 0BE74C 7F089C1C 44806000 */ mtc1 $zero, $f12 +/* 0BE750 7F089C20 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE754 7F089C24 10600010 */ beqz $v1, .L7F089C68 +/* 0BE758 7F089C28 00000000 */ nop +/* 0BE75C 7F089C2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE760 7F089C30 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE764 7F089C34 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BE768 7F089C38 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BE76C 7F089C3C 46020102 */ mul.s $f4, $f0, $f2 +/* 0BE770 7F089C40 4604903E */ c.le.s $f18, $f4 +/* 0BE774 7F089C44 00000000 */ nop +/* 0BE778 7F089C48 45000007 */ bc1f .L7F089C68 +/* 0BE77C 7F089C4C 00000000 */ nop +/* 0BE780 7F089C50 46029283 */ div.s $f10, $f18, $f2 +/* 0BE784 7F089C54 460A0201 */ sub.s $f8, $f0, $f10 +/* 0BE788 7F089C58 E44800E0 */ swc1 $f8, 0xe0($v0) +/* 0BE78C 7F089C5C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE790 7F089C60 1000005D */ b .L7F089DD8 +/* 0BE794 7F089C64 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089C68: +/* 0BE798 7F089C68 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE79C 7F089C6C 1060000F */ beqz $v1, .L7F089CAC +/* 0BE7A0 7F089C70 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7A4 7F089C74 C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0BE7A8 7F089C78 C4502A40 */ lwc1 $f16, 0x2a40($v0) +/* 0BE7AC 7F089C7C C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0BE7B0 7F089C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BE7B4 7F089C84 46103103 */ div.s $f4, $f6, $f16 +/* 0BE7B8 7F089C88 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BE7BC 7F089C8C 44814000 */ mtc1 $at, $f8 +/* 0BE7C0 7F089C90 46049281 */ sub.s $f10, $f18, $f4 +/* 0BE7C4 7F089C94 E7AA003C */ swc1 $f10, 0x3c($sp) +/* 0BE7C8 7F089C98 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BE7CC 7F089C9C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BE7D0 7F089CA0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7D4 7F089CA4 E7082A40 */ swc1 $f8, 0x2a40($t8) +/* 0BE7D8 7F089CA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089CAC: +/* 0BE7DC 7F089CAC C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BE7E0 7F089CB0 C4502A3C */ lwc1 $f16, 0x2a3c($v0) +/* 0BE7E4 7F089CB4 C44400DC */ lwc1 $f4, 0xdc($v0) +/* 0BE7E8 7F089CB8 46103483 */ div.s $f18, $f6, $f16 +/* 0BE7EC 7F089CBC 46122281 */ sub.s $f10, $f4, $f18 +/* 0BE7F0 7F089CC0 E44A00DC */ swc1 $f10, 0xdc($v0) +/* 0BE7F4 7F089CC4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE7F8 7F089CC8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE7FC 7F089CCC C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0BE800 7F089CD0 460C403E */ c.le.s $f8, $f12 +/* 0BE804 7F089CD4 00000000 */ nop +/* 0BE808 7F089CD8 45020040 */ bc1fl .L7F089DDC +/* 0BE80C 7F089CDC 8C4B00F4 */ lw $t3, 0xf4($v0) +/* 0BE810 7F089CE0 0FC26919 */ jal getPlayerCount +/* 0BE814 7F089CE4 00000000 */ nop +/* 0BE818 7F089CE8 28410002 */ slti $at, $v0, 2 +/* 0BE81C 7F089CEC 14200036 */ bnez $at, .L7F089DC8 +/* 0BE820 7F089CF0 00000000 */ nop +/* 0BE824 7F089CF4 0FC26C54 */ jal get_cur_playernum +/* 0BE828 7F089CF8 00000000 */ nop +/* 0BE82C 7F089CFC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BE830 7F089D00 0FC051D6 */ jal get_scenario +/* 0BE834 7F089D04 AFA00028 */ sw $zero, 0x28($sp) +/* 0BE838 7F089D08 24010003 */ li $at, 3 +/* 0BE83C 7F089D0C 54410007 */ bnel $v0, $at, .L7F089D2C +/* 0BE840 7F089D10 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BE844 7F089D14 0FC233F0 */ jal checkforgoldengun +/* 0BE848 7F089D18 00000000 */ nop +/* 0BE84C 7F089D1C 10400002 */ beqz $v0, .L7F089D28 +/* 0BE850 7F089D20 24190001 */ li $t9, 1 +/* 0BE854 7F089D24 AFB90028 */ sw $t9, 0x28($sp) +.L7F089D28: +/* 0BE858 7F089D28 8FA8002C */ lw $t0, 0x2c($sp) +.L7F089D2C: +/* 0BE85C 7F089D2C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BE860 7F089D30 11090005 */ beq $t0, $t1, .L7F089D48 +/* 0BE864 7F089D34 00000000 */ nop +/* 0BE868 7F089D38 0FC159DF */ jal drop_inventory +/* 0BE86C 7F089D3C 00000000 */ nop +/* 0BE870 7F089D40 0FC1AA57 */ jal increment_num_deaths +/* 0BE874 7F089D44 00000000 */ nop +.L7F089D48: +/* 0BE878 7F089D48 0FC26C43 */ jal set_cur_player +/* 0BE87C 7F089D4C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BE880 7F089D50 8FAA002C */ lw $t2, 0x2c($sp) +/* 0BE884 7F089D54 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BE888 7F089D58 154B0005 */ bne $t2, $t3, .L7F089D70 +/* 0BE88C 7F089D5C 00000000 */ nop +/* 0BE890 7F089D60 0FC1AA86 */ jal increment_num_suicides_display_MP +/* 0BE894 7F089D64 00000000 */ nop +/* 0BE898 7F089D68 10000008 */ b .L7F089D8C +/* 0BE89C 7F089D6C 00000000 */ nop +.L7F089D70: +/* 0BE8A0 7F089D70 0FC1A9E0 */ jal increment_num_kills_display_text_in_MP +/* 0BE8A4 7F089D74 00000000 */ nop +/* 0BE8A8 7F089D78 8FAC0028 */ lw $t4, 0x28($sp) +/* 0BE8AC 7F089D7C 11800003 */ beqz $t4, .L7F089D8C +/* 0BE8B0 7F089D80 00000000 */ nop +/* 0BE8B4 7F089D84 0FC1AA4D */ jal increment_num_times_killed_MwtGC +/* 0BE8B8 7F089D88 00000000 */ nop +.L7F089D8C: +/* 0BE8BC 7F089D8C 0FC26C43 */ jal set_cur_player +/* 0BE8C0 7F089D90 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BE8C4 7F089D94 8FAD004C */ lw $t5, 0x4c($sp) +/* 0BE8C8 7F089D98 8FAF002C */ lw $t7, 0x2c($sp) +/* 0BE8CC 7F089D9C 3C088008 */ lui $t0, %hi(player1_player_data) +/* 0BE8D0 7F089DA0 000D70C0 */ sll $t6, $t5, 3 +/* 0BE8D4 7F089DA4 01CD7023 */ subu $t6, $t6, $t5 +/* 0BE8D8 7F089DA8 000E7100 */ sll $t6, $t6, 4 +/* 0BE8DC 7F089DAC 000FC080 */ sll $t8, $t7, 2 +/* 0BE8E0 7F089DB0 01D8C821 */ addu $t9, $t6, $t8 +/* 0BE8E4 7F089DB4 25089EF0 */ addiu $t0, %lo(player1_player_data) # addiu $t0, $t0, -0x6110 +/* 0BE8E8 7F089DB8 03281021 */ addu $v0, $t9, $t0 +/* 0BE8EC 7F089DBC 8C490024 */ lw $t1, 0x24($v0) +/* 0BE8F0 7F089DC0 252A0001 */ addiu $t2, $t1, 1 +/* 0BE8F4 7F089DC4 AC4A0024 */ sw $t2, 0x24($v0) +.L7F089DC8: +/* 0BE8F8 7F089DC8 0FC225EA */ jal kill_current_player +/* 0BE8FC 7F089DCC 00000000 */ nop +/* 0BE900 7F089DD0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE904 7F089DD4 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089DD8: +/* 0BE908 7F089DD8 8C4B00F4 */ lw $t3, 0xf4($v0) +.L7F089DDC: +/* 0BE90C 7F089DDC C7A60044 */ lwc1 $f6, 0x44($sp) +/* 0BE910 7F089DE0 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0BE914 7F089DE4 0561000E */ bgez $t3, .L7F089E20 +/* 0BE918 7F089DE8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0BE91C 7F089DEC 46063400 */ add.s $f16, $f6, $f6 +/* 0BE920 7F089DF0 C4440180 */ lwc1 $f4, 0x180($v0) +/* 0BE924 7F089DF4 46102480 */ add.s $f18, $f4, $f16 +/* 0BE928 7F089DF8 E4520180 */ swc1 $f18, 0x180($v0) +/* 0BE92C 7F089DFC C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0BE930 7F089E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE934 7F089E04 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE938 7F089E08 460A5200 */ add.s $f8, $f10, $f10 +/* 0BE93C 7F089E0C C4460188 */ lwc1 $f6, 0x188($v0) +/* 0BE940 7F089E10 46083100 */ add.s $f4, $f6, $f8 +/* 0BE944 7F089E14 E4440188 */ swc1 $f4, 0x188($v0) +/* 0BE948 7F089E18 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE94C 7F089E1C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +.L7F089E20: +/* 0BE950 7F089E20 AC4000F4 */ sw $zero, 0xf4($v0) +/* 0BE954 7F089E24 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0BE958 7F089E28 24050044 */ li $a1, 68 +/* 0BE95C 7F089E2C 00003025 */ move $a2, $zero +/* 0BE960 7F089E30 AD8000F8 */ sw $zero, 0xf8($t4) +/* 0BE964 7F089E34 0C002382 */ jal play_sfx_a1 +/* 0BE968 7F089E38 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +.L7F089E3C: +/* 0BE96C 7F089E3C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F089E40: +/* 0BE970 7F089E40 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BE974 7F089E44 03E00008 */ jr $ra +/* 0BE978 7F089E48 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BEB60 7F089FF0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BEB64 7F089FF4 3C0E8008 */ lui $t6, %hi(pPlayersPerm) # $t6, 0x8008 +/* 0BEB68 7F089FF8 8DCEA124 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BEB6C 7F089FFC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEB70 7F08A000 E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BEB74 7F08A004 AFA60048 */ sw $a2, 0x48($sp) +/* 0BEB78 7F08A008 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BEB7C 7F08A00C C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BEB80 7F08A010 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0BEB84 7F08A014 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEB88 7F08A018 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BEB8C 7F08A01C E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BEB90 7F08A020 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BEB94 7F08A024 13000013 */ beqz $t8, .Ljp7F08A074 +/* 0BEB98 7F08A028 00000000 */ nop +/* 0BEB9C 7F08A02C 0FC22A8D */ jal get_BONDdata_watch_armor +/* 0BEBA0 7F08A030 00000000 */ nop +/* 0BEBA4 7F08A034 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBA8 7F08A038 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBAC 7F08A03C 44070000 */ mfc1 $a3, $f0 +/* 0BEBB0 7F08A040 2405002E */ li $a1, 46 +/* 0BEBB4 7F08A044 24060001 */ li $a2, 1 +/* 0BEBB8 7F08A048 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBBC 7F08A04C 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BEBC0 7F08A050 0FC22A89 */ jal get_BONDdata_watch_health +/* 0BEBC4 7F08A054 00000000 */ nop +/* 0BEBC8 7F08A058 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 +/* 0BEBCC 7F08A05C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) +/* 0BEBD0 7F08A060 44070000 */ mfc1 $a3, $f0 +/* 0BEBD4 7F08A064 2405002E */ li $a1, 46 +/* 0BEBD8 7F08A068 2406FFFF */ li $a2, -1 +/* 0BEBDC 7F08A06C 0FC28EB4 */ jal sub_GAME_7F0A2F30 +/* 0BEBE0 7F08A070 24841598 */ addiu $a0, $a0, 0x1598 +.Ljp7F08A074: +/* 0BEBE4 7F08A074 0FC26C01 */ jal getPlayerCount +/* 0BEBE8 7F08A078 00000000 */ nop +/* 0BEBEC 7F08A07C 28410002 */ slti $at, $v0, 2 +/* 0BEBF0 7F08A080 14200007 */ bnez $at, .Ljp7F08A0A0 +/* 0BEBF4 7F08A084 3C198009 */ lui $t9, %hi(stop_play_flag) # $t9, 0x8009 +/* 0BEBF8 7F08A088 8F39C770 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BEBFC 7F08A08C 3C088009 */ lui $t0, %hi(is_gameover_flag) # $t0, 0x8009 +/* 0BEC00 7F08A090 5720012D */ bnezl $t9, .Ljp7F08A548 +/* 0BEC04 7F08A094 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BEC08 7F08A098 8D08C774 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BEC0C 7F08A09C 15000129 */ bnez $t0, .Ljp7F08A544 +.Ljp7F08A0A0: +/* 0BEC10 7F08A0A0 3C098003 */ lui $t1, %hi(in_tank_flag) # $t1, 0x8003 +/* 0BEC14 7F08A0A4 8D296488 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BEC18 7F08A0A8 24010001 */ li $at, 1 +/* 0BEC1C 7F08A0AC C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEC20 7F08A0B0 15210006 */ bne $t1, $at, .Ljp7F08A0CC +/* 0BEC24 7F08A0B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEC28 7F08A0B8 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BEC2C 7F08A0BC 44815000 */ mtc1 $at, $f10 +/* 0BEC30 7F08A0C0 00000000 */ nop +/* 0BEC34 7F08A0C4 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BEC38 7F08A0C8 E7B0003C */ swc1 $f16, 0x3c($sp) +.Ljp7F08A0CC: +/* 0BEC3C 7F08A0CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEC40 7F08A0D0 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BEC44 7F08A0D4 15400016 */ bnez $t2, .Ljp7F08A130 +/* 0BEC48 7F08A0D8 00000000 */ nop +/* 0BEC4C 7F08A0DC 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BEC50 7F08A0E0 15600013 */ bnez $t3, .Ljp7F08A130 +/* 0BEC54 7F08A0E4 00000000 */ nop +/* 0BEC58 7F08A0E8 0FC26F3C */ jal get_cur_playernum +/* 0BEC5C 7F08A0EC 00000000 */ nop +/* 0BEC60 7F08A0F0 00402025 */ move $a0, $v0 +/* 0BEC64 7F08A0F4 0C00322E */ jal joyRumblePakStart +/* 0BEC68 7F08A0F8 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC6C 7F08A0FC 0FC29658 */ jal cur_player_get_control_type +/* 0BEC70 7F08A100 00000000 */ nop +/* 0BEC74 7F08A104 28410004 */ slti $at, $v0, 4 +/* 0BEC78 7F08A108 14200009 */ bnez $at, .Ljp7F08A130 +/* 0BEC7C 7F08A10C 00000000 */ nop +/* 0BEC80 7F08A110 0FC26F3C */ jal get_cur_playernum +/* 0BEC84 7F08A114 00000000 */ nop +/* 0BEC88 7F08A118 0FC26C01 */ jal getPlayerCount +/* 0BEC8C 7F08A11C AFA2001C */ sw $v0, 0x1c($sp) +/* 0BEC90 7F08A120 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BEC94 7F08A124 3C053E80 */ lui $a1, 0x3e80 +/* 0BEC98 7F08A128 0C00322E */ jal joyRumblePakStart +/* 0BEC9C 7F08A12C 004C2021 */ addu $a0, $v0, $t4 +.Ljp7F08A130: +/* 0BECA0 7F08A130 0FC26C01 */ jal getPlayerCount +/* 0BECA4 7F08A134 00000000 */ nop +/* 0BECA8 7F08A138 28410002 */ slti $at, $v0, 2 +/* 0BECAC 7F08A13C 14200010 */ bnez $at, .Ljp7F08A180 +/* 0BECB0 7F08A140 00000000 */ nop +/* 0BECB4 7F08A144 0FC05202 */ jal get_scenario +/* 0BECB8 7F08A148 00000000 */ nop +/* 0BECBC 7F08A14C 24010004 */ li $at, 4 +/* 0BECC0 7F08A150 1441000B */ bne $v0, $at, .Ljp7F08A180 +/* 0BECC4 7F08A154 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECC8 7F08A158 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECCC 7F08A15C C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BECD0 7F08A160 C4442A3C */ lwc1 $f4, 0x2a3c($v0) +/* 0BECD4 7F08A164 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BECD8 7F08A168 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BECDC 7F08A16C 46049182 */ mul.s $f6, $f18, $f4 +/* 0BECE0 7F08A170 00000000 */ nop +/* 0BECE4 7F08A174 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BECE8 7F08A178 46103480 */ add.s $f18, $f6, $f16 +/* 0BECEC 7F08A17C E7B2003C */ swc1 $f18, 0x3c($sp) +.Ljp7F08A180: +/* 0BECF0 7F08A180 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BECF4 7F08A184 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BECF8 7F08A188 904D12B6 */ lbu $t5, 0x12b6($v0) +/* 0BECFC 7F08A18C 55A000EE */ bnezl $t5, .Ljp7F08A548 +/* 0BED00 7F08A190 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED04 7F08A194 8C4E00D8 */ lw $t6, 0xd8($v0) +/* 0BED08 7F08A198 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 0BED0C 7F08A19C 55C000EA */ bnezl $t6, .Ljp7F08A548 +/* 0BED10 7F08A1A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED14 7F08A1A4 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 0BED18 7F08A1A8 55E000E7 */ bnezl $t7, .Ljp7F08A548 +/* 0BED1C 7F08A1AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED20 7F08A1B0 C44400F4 */ lwc1 $f4, 0xf4($v0) +/* 0BED24 7F08A1B4 44804000 */ mtc1 $zero, $f8 +/* 0BED28 7F08A1B8 00000000 */ nop +/* 0BED2C 7F08A1BC 4608203C */ c.lt.s $f4, $f8 +/* 0BED30 7F08A1C0 00000000 */ nop +/* 0BED34 7F08A1C4 4503000E */ bc1tl .Ljp7F08A200 +/* 0BED38 7F08A1C8 8C4301C8 */ lw $v1, 0x1c8($v0) +/* 0BED3C 7F08A1CC 0FC26C01 */ jal getPlayerCount +/* 0BED40 7F08A1D0 00000000 */ nop +/* 0BED44 7F08A1D4 28410002 */ slti $at, $v0, 2 +/* 0BED48 7F08A1D8 142000DA */ bnez $at, .Ljp7F08A544 +/* 0BED4C 7F08A1DC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED50 7F08A1E0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED54 7F08A1E4 44805000 */ mtc1 $zero, $f10 +/* 0BED58 7F08A1E8 C44600F4 */ lwc1 $f6, 0xf4($v0) +/* 0BED5C 7F08A1EC 46065032 */ c.eq.s $f10, $f6 +/* 0BED60 7F08A1F0 00000000 */ nop +/* 0BED64 7F08A1F4 450200D4 */ bc1fl .Ljp7F08A548 +/* 0BED68 7F08A1F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED6C 7F08A1FC 8C4301C8 */ lw $v1, 0x1c8($v0) +.Ljp7F08A200: +/* 0BED70 7F08A200 24010005 */ li $at, 5 +/* 0BED74 7F08A204 106100CF */ beq $v1, $at, .Ljp7F08A544 +/* 0BED78 7F08A208 2401000C */ li $at, 12 +/* 0BED7C 7F08A20C 506100CE */ beql $v1, $at, .Ljp7F08A548 +/* 0BED80 7F08A210 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BED84 7F08A214 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BED88 7F08A218 E45000E4 */ swc1 $f16, 0xe4($v0) +/* 0BED8C 7F08A21C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BED90 7F08A220 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BED94 7F08A224 C45200E0 */ lwc1 $f18, 0xe0($v0) +/* 0BED98 7F08A228 0FC26C01 */ jal getPlayerCount +/* 0BED9C 7F08A22C E45200E8 */ swc1 $f18, 0xe8($v0) +/* 0BEDA0 7F08A230 28410002 */ slti $at, $v0, 2 +/* 0BEDA4 7F08A234 54200035 */ bnezl $at, .Ljp7F08A30C +/* 0BEDA8 7F08A238 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEDAC 7F08A23C 0FC26F3C */ jal get_cur_playernum +/* 0BEDB0 7F08A240 00000000 */ nop +/* 0BEDB4 7F08A244 AFA20038 */ sw $v0, 0x38($sp) +/* 0BEDB8 7F08A248 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 0BEDBC 7F08A24C 0FC16BD4 */ jal atan2f +/* 0BEDC0 7F08A250 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 0BEDC4 7F08A254 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BEDC8 7F08A258 44812000 */ mtc1 $at, $f4 +/* 0BEDCC 7F08A25C 3C018005 */ lui $at, %hi(pi_800552B0) # $at, 0x8005 +/* 0BEDD0 7F08A260 C42A52E0 */ lwc1 $f10, %lo(pi_800552B0)($at) +/* 0BEDD4 7F08A264 46040202 */ mul.s $f8, $f0, $f4 +/* 0BEDD8 7F08A268 8FB80038 */ lw $t8, 0x38($sp) +/* 0BEDDC 7F08A26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0BEDE0 7F08A270 3C088008 */ lui $t0, %hi(players) +/* 0BEDE4 7F08A274 0018C880 */ sll $t9, $t8, 2 +/* 0BEDE8 7F08A278 44818000 */ mtc1 $at, $f16 +/* 0BEDEC 7F08A27C 01194021 */ addu $t0, $t0, $t9 +/* 0BEDF0 7F08A280 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEDF4 7F08A284 8D089F50 */ lw $t0, %lo(players)($t0) +/* 0BEDF8 7F08A288 44806000 */ mtc1 $zero, $f12 +/* 0BEDFC 7F08A28C 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEE00 7F08A290 C5040148 */ lwc1 $f4, 0x148($t0) +/* 0BEE04 7F08A294 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0BEE08 7F08A298 000950C0 */ sll $t2, $t1, 3 +/* 0BEE0C 7F08A29C 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 +/* 0BEE10 7F08A2A0 01495023 */ subu $t2, $t2, $t1 +/* 0BEE14 7F08A2A4 44814000 */ mtc1 $at, $f8 +/* 0BEE18 7F08A2A8 000A5100 */ sll $t2, $t2, 4 +/* 0BEE1C 7F08A2AC 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 +/* 0BEE20 7F08A2B0 3C014387 */ li $at, 0x43870000 # 270.000000 +/* 0BEE24 7F08A2B4 014B1021 */ addu $v0, $t2, $t3 +/* 0BEE28 7F08A2B8 46068481 */ sub.s $f18, $f16, $f6 +/* 0BEE2C 7F08A2BC 46122081 */ sub.s $f2, $f4, $f18 +/* 0BEE30 7F08A2C0 460C103C */ c.lt.s $f2, $f12 +/* 0BEE34 7F08A2C4 00000000 */ nop +/* 0BEE38 7F08A2C8 45020003 */ bc1fl .Ljp7F08A2D8 +/* 0BEE3C 7F08A2CC 4608103C */ c.lt.s $f2, $f8 +/* 0BEE40 7F08A2D0 46001087 */ neg.s $f2, $f2 +/* 0BEE44 7F08A2D4 4608103C */ c.lt.s $f2, $f8 +.Ljp7F08A2D8: +/* 0BEE48 7F08A2D8 00000000 */ nop +/* 0BEE4C 7F08A2DC 45030008 */ bc1tl .Ljp7F08A300 +/* 0BEE50 7F08A2E0 8C4C003C */ lw $t4, 0x3c($v0) +/* 0BEE54 7F08A2E4 44815000 */ mtc1 $at, $f10 +/* 0BEE58 7F08A2E8 00000000 */ nop +/* 0BEE5C 7F08A2EC 4602503C */ c.lt.s $f10, $f2 +/* 0BEE60 7F08A2F0 00000000 */ nop +/* 0BEE64 7F08A2F4 45020005 */ bc1fl .Ljp7F08A30C +/* 0BEE68 7F08A2F8 8FA30050 */ lw $v1, 0x50($sp) +/* 0BEE6C 7F08A2FC 8C4C003C */ lw $t4, 0x3c($v0) +.Ljp7F08A300: +/* 0BEE70 7F08A300 258D0001 */ addiu $t5, $t4, 1 +/* 0BEE74 7F08A304 AC4D003C */ sw $t5, 0x3c($v0) +/* 0BEE78 7F08A308 8FA30050 */ lw $v1, 0x50($sp) +.Ljp7F08A30C: +/* 0BEE7C 7F08A30C 44806000 */ mtc1 $zero, $f12 +/* 0BEE80 7F08A310 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEE84 7F08A314 10600010 */ beqz $v1, .Ljp7F08A358 +/* 0BEE88 7F08A318 00000000 */ nop +/* 0BEE8C 7F08A31C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEE90 7F08A320 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEE94 7F08A324 C44000E0 */ lwc1 $f0, 0xe0($v0) +/* 0BEE98 7F08A328 C4422A40 */ lwc1 $f2, 0x2a40($v0) +/* 0BEE9C 7F08A32C 46020402 */ mul.s $f16, $f0, $f2 +/* 0BEEA0 7F08A330 4610303E */ c.le.s $f6, $f16 +/* 0BEEA4 7F08A334 00000000 */ nop +/* 0BEEA8 7F08A338 45000007 */ bc1f .Ljp7F08A358 +/* 0BEEAC 7F08A33C 00000000 */ nop +/* 0BEEB0 7F08A340 46023103 */ div.s $f4, $f6, $f2 +/* 0BEEB4 7F08A344 46040481 */ sub.s $f18, $f0, $f4 +/* 0BEEB8 7F08A348 E45200E0 */ swc1 $f18, 0xe0($v0) +/* 0BEEBC 7F08A34C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEEC0 7F08A350 1000005E */ b .Ljp7F08A4CC +/* 0BEEC4 7F08A354 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A358: +/* 0BEEC8 7F08A358 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEECC 7F08A35C 1060000F */ beqz $v1, .Ljp7F08A39C +/* 0BEED0 7F08A360 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEED4 7F08A364 C44800E0 */ lwc1 $f8, 0xe0($v0) +/* 0BEED8 7F08A368 C44A2A40 */ lwc1 $f10, 0x2a40($v0) +/* 0BEEDC 7F08A36C C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 0BEEE0 7F08A370 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0BEEE4 7F08A374 460A4403 */ div.s $f16, $f8, $f10 +/* 0BEEE8 7F08A378 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 0BEEEC 7F08A37C 44819000 */ mtc1 $at, $f18 +/* 0BEEF0 7F08A380 46103101 */ sub.s $f4, $f6, $f16 +/* 0BEEF4 7F08A384 E7A4003C */ swc1 $f4, 0x3c($sp) +/* 0BEEF8 7F08A388 E44C00E0 */ swc1 $f12, 0xe0($v0) +/* 0BEEFC 7F08A38C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 0BEF00 7F08A390 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF04 7F08A394 E5D22A40 */ swc1 $f18, 0x2a40($t6) +/* 0BEF08 7F08A398 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A39C: +/* 0BEF0C 7F08A39C C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BEF10 7F08A3A0 C44A2A3C */ lwc1 $f10, 0x2a3c($v0) +/* 0BEF14 7F08A3A4 C45000DC */ lwc1 $f16, 0xdc($v0) +/* 0BEF18 7F08A3A8 460A4183 */ div.s $f6, $f8, $f10 +/* 0BEF1C 7F08A3AC 46068101 */ sub.s $f4, $f16, $f6 +/* 0BEF20 7F08A3B0 E44400DC */ swc1 $f4, 0xdc($v0) +/* 0BEF24 7F08A3B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BEF28 7F08A3B8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BEF2C 7F08A3BC C45200DC */ lwc1 $f18, 0xdc($v0) +/* 0BEF30 7F08A3C0 460C903E */ c.le.s $f18, $f12 +/* 0BEF34 7F08A3C4 00000000 */ nop +/* 0BEF38 7F08A3C8 45020041 */ bc1fl .Ljp7F08A4D0 +/* 0BEF3C 7F08A3CC C44800F4 */ lwc1 $f8, 0xf4($v0) +/* 0BEF40 7F08A3D0 0FC26C01 */ jal getPlayerCount +/* 0BEF44 7F08A3D4 00000000 */ nop +/* 0BEF48 7F08A3D8 28410002 */ slti $at, $v0, 2 +/* 0BEF4C 7F08A3DC 14200036 */ bnez $at, .Ljp7F08A4B8 +/* 0BEF50 7F08A3E0 00000000 */ nop +/* 0BEF54 7F08A3E4 0FC26F3C */ jal get_cur_playernum +/* 0BEF58 7F08A3E8 00000000 */ nop +/* 0BEF5C 7F08A3EC AFA2002C */ sw $v0, 0x2c($sp) +/* 0BEF60 7F08A3F0 0FC05202 */ jal get_scenario +/* 0BEF64 7F08A3F4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BEF68 7F08A3F8 24010003 */ li $at, 3 +/* 0BEF6C 7F08A3FC 14410006 */ bne $v0, $at, .Ljp7F08A418 +/* 0BEF70 7F08A400 00000000 */ nop +/* 0BEF74 7F08A404 0FC23649 */ jal checkforgoldengun +/* 0BEF78 7F08A408 00000000 */ nop +/* 0BEF7C 7F08A40C 10400002 */ beqz $v0, .Ljp7F08A418 +/* 0BEF80 7F08A410 240F0001 */ li $t7, 1 +/* 0BEF84 7F08A414 AFAF0028 */ sw $t7, 0x28($sp) +.Ljp7F08A418: +/* 0BEF88 7F08A418 0FC15B1E */ jal drop_inventory +/* 0BEF8C 7F08A41C 00000000 */ nop +/* 0BEF90 7F08A420 8FB8002C */ lw $t8, 0x2c($sp) +/* 0BEF94 7F08A424 8FB9004C */ lw $t9, 0x4c($sp) +/* 0BEF98 7F08A428 13190003 */ beq $t8, $t9, .Ljp7F08A438 +/* 0BEF9C 7F08A42C 00000000 */ nop +/* 0BEFA0 7F08A430 0FC1ABD2 */ jal increment_num_deaths +/* 0BEFA4 7F08A434 00000000 */ nop +.Ljp7F08A438: +/* 0BEFA8 7F08A438 0FC26F2B */ jal set_cur_player +/* 0BEFAC 7F08A43C 8FA4004C */ lw $a0, 0x4c($sp) +/* 0BEFB0 7F08A440 8FA8002C */ lw $t0, 0x2c($sp) +/* 0BEFB4 7F08A444 8FA9004C */ lw $t1, 0x4c($sp) +/* 0BEFB8 7F08A448 15090005 */ bne $t0, $t1, .Ljp7F08A460 +/* 0BEFBC 7F08A44C 00000000 */ nop +/* 0BEFC0 7F08A450 0FC1AC01 */ jal increment_num_suicides_display_MP +/* 0BEFC4 7F08A454 00000000 */ nop +/* 0BEFC8 7F08A458 10000008 */ b .Ljp7F08A47C +/* 0BEFCC 7F08A45C 00000000 */ nop +.Ljp7F08A460: +/* 0BEFD0 7F08A460 0FC1AB5B */ jal increment_num_kills_display_text_in_MP +/* 0BEFD4 7F08A464 00000000 */ nop +/* 0BEFD8 7F08A468 8FAA0028 */ lw $t2, 0x28($sp) +/* 0BEFDC 7F08A46C 11400003 */ beqz $t2, .Ljp7F08A47C +/* 0BEFE0 7F08A470 00000000 */ nop +/* 0BEFE4 7F08A474 0FC1ABC8 */ jal increment_num_times_killed_MwtGC +/* 0BEFE8 7F08A478 00000000 */ nop +.Ljp7F08A47C: +/* 0BEFEC 7F08A47C 0FC26F2B */ jal set_cur_player +/* 0BEFF0 7F08A480 8FA4002C */ lw $a0, 0x2c($sp) +/* 0BEFF4 7F08A484 8FAB004C */ lw $t3, 0x4c($sp) +/* 0BEFF8 7F08A488 8FAD002C */ lw $t5, 0x2c($sp) +/* 0BEFFC 7F08A48C 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 +/* 0BF000 7F08A490 000B60C0 */ sll $t4, $t3, 3 +/* 0BF004 7F08A494 018B6023 */ subu $t4, $t4, $t3 +/* 0BF008 7F08A498 000C6100 */ sll $t4, $t4, 4 +/* 0BF00C 7F08A49C 000D7080 */ sll $t6, $t5, 2 +/* 0BF010 7F08A4A0 018E7821 */ addu $t7, $t4, $t6 +/* 0BF014 7F08A4A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 +/* 0BF018 7F08A4A8 01F81021 */ addu $v0, $t7, $t8 +/* 0BF01C 7F08A4AC 8C590024 */ lw $t9, 0x24($v0) +/* 0BF020 7F08A4B0 27280001 */ addiu $t0, $t9, 1 +/* 0BF024 7F08A4B4 AC480024 */ sw $t0, 0x24($v0) +.Ljp7F08A4B8: +/* 0BF028 7F08A4B8 0FC2279F */ jal kill_current_player +/* 0BF02C 7F08A4BC 00000000 */ nop +/* 0BF030 7F08A4C0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF034 7F08A4C4 44806000 */ mtc1 $zero, $f12 +/* 0BF038 7F08A4C8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +.Ljp7F08A4CC: +/* 0BF03C 7F08A4CC C44800F4 */ lwc1 $f8, 0xf4($v0) +.Ljp7F08A4D0: +/* 0BF040 7F08A4D0 C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 0BF044 7F08A4D4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 +/* 0BF048 7F08A4D8 460C403C */ c.lt.s $f8, $f12 +/* 0BF04C 7F08A4DC 00000000 */ nop +/* 0BF050 7F08A4E0 4502000F */ bc1fl .Ljp7F08A520 +/* 0BF054 7F08A4E4 E44C00F4 */ swc1 $f12, 0xf4($v0) +/* 0BF058 7F08A4E8 460A5400 */ add.s $f16, $f10, $f10 +/* 0BF05C 7F08A4EC C4460180 */ lwc1 $f6, 0x180($v0) +/* 0BF060 7F08A4F0 46103100 */ add.s $f4, $f6, $f16 +/* 0BF064 7F08A4F4 E4440180 */ swc1 $f4, 0x180($v0) +/* 0BF068 7F08A4F8 C7B20048 */ lwc1 $f18, 0x48($sp) +/* 0BF06C 7F08A4FC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF070 7F08A500 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF074 7F08A504 46129200 */ add.s $f8, $f18, $f18 +/* 0BF078 7F08A508 C44A0188 */ lwc1 $f10, 0x188($v0) +/* 0BF07C 7F08A50C 46085180 */ add.s $f6, $f10, $f8 +/* 0BF080 7F08A510 E4460188 */ swc1 $f6, 0x188($v0) +/* 0BF084 7F08A514 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0BF088 7F08A518 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF08C 7F08A51C E44C00F4 */ swc1 $f12, 0xf4($v0) +.Ljp7F08A520: +/* 0BF090 7F08A520 8D29A120 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF094 7F08A524 0FC3021B */ jal get_controls_locked_flag +/* 0BF098 7F08A528 E52C00F8 */ swc1 $f12, 0xf8($t1) +/* 0BF09C 7F08A52C 14400005 */ bnez $v0, .Ljp7F08A544 +/* 0BF0A0 7F08A530 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0BF0A4 7F08A534 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0BF0A8 7F08A538 24050044 */ li $a1, 68 +/* 0BF0AC 7F08A53C 0C002386 */ jal play_sfx_a1 +/* 0BF0B0 7F08A540 00003025 */ move $a2, $zero +.Ljp7F08A544: +/* 0BF0B4 7F08A544 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F08A548: +/* 0BF0B8 7F08A548 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0BF0BC 7F08A54C 03E00008 */ jr $ra +/* 0BF0C0 7F08A550 00000000 */ nop +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel pi_800552B0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel record_damage_kills +/* 0BE44C 7F08991C 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0BE450 7F089920 3C0E8008 */ lui $t6, %hi(pPlayersPerm) +/* 0BE454 7F089924 8DCEA0B4 */ lw $t6, %lo(pPlayersPerm)($t6) +/* 0BE458 7F089928 AFBF0014 */ sw $ra, 0x14($sp) +/* 0BE45C 7F08992C E7AE0044 */ swc1 $f14, 0x44($sp) +/* 0BE460 7F089930 AFA60048 */ sw $a2, 0x48($sp) +/* 0BE464 7F089934 AFA7004C */ sw $a3, 0x4c($sp) +/* 0BE468 7F089938 C5C4005C */ lwc1 $f4, 0x5c($t6) +/* 0BE46C 7F08993C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BE470 7F089940 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BE474 7F089944 460C2182 */ mul.s $f6, $f4, $f12 +/* 0BE478 7F089948 E7A6003C */ swc1 $f6, 0x3c($sp) +/* 0BE47C 7F08994C 8DF801C8 */ lw $t8, 0x1c8($t7) +/* 0BE480 7F089950 13000013 */ beqz $t8, .L7F0899A0 +/* 0BE484 7F089954 00000000 */ nop +/* 0BE488 7F089958 0FC228BF */ jal get_BONDdata_watch_armor +/* 0BE48C 7F08995C 00000000 */ nop +/* 0BE490 7F089960 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE494 7F089964 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE498 7F089968 44070000 */ mfc1 $a3, $f0 +/* 0BE49C 7F08996C 2405002E */ li $a1, 46 +/* 0BE4A0 7F089970 24060001 */ li $a2, 1 +/* 0BE4A4 7F089974 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4A8 7F089978 248412B8 */ addiu $a0, $a0, 0x12b8 +/* 0BE4AC 7F08997C 0FC228BB */ jal get_BONDdata_watch_health +/* 0BE4B0 7F089980 00000000 */ nop +/* 0BE4B4 7F089984 3C048008 */ lui $a0, %hi(pPlayer) +/* 0BE4B8 7F089988 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 0BE4BC 7F08998C 44070000 */ mfc1 $a3, $f0 +/* 0BE4C0 7F089990 2405002E */ li $a1, 46 +/* 0BE4C4 7F089994 2406FFFF */ li $a2, -1 +/* 0BE4C8 7F089998 0FC28BCC */ jal sub_GAME_7F0A2F30 +/* 0BE4CC 7F08999C 24841598 */ addiu $a0, $a0, 0x1598 +.L7F0899A0: +/* 0BE4D0 7F0899A0 0FC26919 */ jal getPlayerCount +/* 0BE4D4 7F0899A4 00000000 */ nop +/* 0BE4D8 7F0899A8 28410002 */ slti $at, $v0, 2 +/* 0BE4DC 7F0899AC 14200007 */ bnez $at, .L7F0899CC +/* 0BE4E0 7F0899B0 3C198009 */ lui $t9, %hi(stop_play_flag) +/* 0BE4E4 7F0899B4 8F39C700 */ lw $t9, %lo(stop_play_flag)($t9) +/* 0BE4E8 7F0899B8 3C088009 */ lui $t0, %hi(is_gameover_flag) +/* 0BE4EC 7F0899BC 57200120 */ bnezl $t9, .L7F089E40 +/* 0BE4F0 7F0899C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BE4F4 7F0899C4 8D08C704 */ lw $t0, %lo(is_gameover_flag)($t0) +/* 0BE4F8 7F0899C8 1500011C */ bnez $t0, .L7F089E3C +.L7F0899CC: +/* 0BE4FC 7F0899CC 3C098003 */ lui $t1, %hi(in_tank_flag) +/* 0BE500 7F0899D0 8D296448 */ lw $t1, %lo(in_tank_flag)($t1) +/* 0BE504 7F0899D4 24010001 */ li $at, 1 +/* 0BE508 7F0899D8 C7A8003C */ lwc1 $f8, 0x3c($sp) +/* 0BE50C 7F0899DC 15210006 */ bne $t1, $at, .L7F0899F8 +/* 0BE510 7F0899E0 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BE514 7F0899E4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0BE518 7F0899E8 44815000 */ mtc1 $at, $f10 +/* 0BE51C 7F0899EC 00000000 */ nop +/* 0BE520 7F0899F0 460A4402 */ mul.s $f16, $f8, $f10 +/* 0BE524 7F0899F4 E7B0003C */ swc1 $f16, 0x3c($sp) +.L7F0899F8: +/* 0BE528 7F0899F8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BE52C 7F0899FC 8C4A00D8 */ lw $t2, 0xd8($v0) +/* 0BE530 7F089A00 15400016 */ bnez $t2, .L7F089A5C +/* 0BE534 7F089A04 00000000 */ nop +/* 0BE538 7F089A08 904B12B6 */ lbu $t3, 0x12b6($v0) +/* 0BE53C 7F089A0C 15600013 */ bnez $t3, .L7F089A5C +/* 0BE540 7F089A10 00000000 */ nop +/* 0BE544 7F089A14 0FC26C54 */ jal get_cur_playernum +/* 0BE548 7F089A18 00000000 */ nop +/* 0BE54C 7F089A1C 00402025 */ move $a0, $v0 +/* 0BE550 7F089A20 0C003215 */ jal joyRumblePakStart +/* 0BE554 7F089A24 3C053E80 */ lui $a1, 0x3e80 +/* 0BE558 7F089A28 0FC29370 */ jal cur_player_get_control_type +/* 0BE55C 7F089A2C 00000000 */ nop +/* 0BE560 7F089A30 28410004 */ slti $at, $v0, 4 +/* 0BE564 7F089A34 14200009 */ bnez $at, .L7F089A5C +/* 0BE568 7F089A38 00000000 */ nop +/* 0BE56C 7F089A3C 0FC26C54 */ jal get_cur_playernum +/* 0BE570 7F089A40 00000000 */ nop +/* 0BE574 7F089A44 0FC26919 */ jal getPlayerCount +/* 0BE578 7F089A48 AFA2001C */ sw $v0, 0x1c($sp) +/* 0BE57C 7F089A4C 8FAC001C */ lw $t4, 0x1c($sp) +/* 0BE580 7F089A50 3C053E80 */ lui $a1, 0x3e80 +/* 0BE584 7F089A54 0C003215 */ jal joyRumblePakStart /* 0BE588 7F089A58 004C2021 */ addu $a0, $v0, $t4 .L7F089A5C: /* 0BE58C 7F089A5C 0FC26919 */ jal getPlayerCount @@ -29163,381 +36264,6 @@ glabel record_damage_kills ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.late_rodata -glabel pi_800552B0 -.word 0x40490fdb /*3.1415927*/ -.text -glabel record_damage_kills -/* 0BEB60 7F089FF0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0BEB64 7F089FF4 3C0E8008 */ lui $t6, %hi(pPlayersPerm) # $t6, 0x8008 -/* 0BEB68 7F089FF8 8DCEA124 */ lw $t6, %lo(pPlayersPerm)($t6) -/* 0BEB6C 7F089FFC AFBF0014 */ sw $ra, 0x14($sp) -/* 0BEB70 7F08A000 E7AE0044 */ swc1 $f14, 0x44($sp) -/* 0BEB74 7F08A004 AFA60048 */ sw $a2, 0x48($sp) -/* 0BEB78 7F08A008 AFA7004C */ sw $a3, 0x4c($sp) -/* 0BEB7C 7F08A00C C5C4005C */ lwc1 $f4, 0x5c($t6) -/* 0BEB80 7F08A010 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 0BEB84 7F08A014 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 0BEB88 7F08A018 460C2182 */ mul.s $f6, $f4, $f12 -/* 0BEB8C 7F08A01C E7A6003C */ swc1 $f6, 0x3c($sp) -/* 0BEB90 7F08A020 8DF801C8 */ lw $t8, 0x1c8($t7) -/* 0BEB94 7F08A024 13000013 */ beqz $t8, .Ljp7F08A074 -/* 0BEB98 7F08A028 00000000 */ nop -/* 0BEB9C 7F08A02C 0FC22A8D */ jal get_BONDdata_watch_armor -/* 0BEBA0 7F08A030 00000000 */ nop -/* 0BEBA4 7F08A034 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 -/* 0BEBA8 7F08A038 8C84A120 */ lw $a0, %lo(pPlayer)($a0) -/* 0BEBAC 7F08A03C 44070000 */ mfc1 $a3, $f0 -/* 0BEBB0 7F08A040 2405002E */ li $a1, 46 -/* 0BEBB4 7F08A044 24060001 */ li $a2, 1 -/* 0BEBB8 7F08A048 0FC28EB4 */ jal sub_GAME_7F0A2F30 -/* 0BEBBC 7F08A04C 248412B8 */ addiu $a0, $a0, 0x12b8 -/* 0BEBC0 7F08A050 0FC22A89 */ jal get_BONDdata_watch_health -/* 0BEBC4 7F08A054 00000000 */ nop -/* 0BEBC8 7F08A058 3C048008 */ lui $a0, %hi(pPlayer) # $a0, 0x8008 -/* 0BEBCC 7F08A05C 8C84A120 */ lw $a0, %lo(pPlayer)($a0) -/* 0BEBD0 7F08A060 44070000 */ mfc1 $a3, $f0 -/* 0BEBD4 7F08A064 2405002E */ li $a1, 46 -/* 0BEBD8 7F08A068 2406FFFF */ li $a2, -1 -/* 0BEBDC 7F08A06C 0FC28EB4 */ jal sub_GAME_7F0A2F30 -/* 0BEBE0 7F08A070 24841598 */ addiu $a0, $a0, 0x1598 -.Ljp7F08A074: -/* 0BEBE4 7F08A074 0FC26C01 */ jal getPlayerCount -/* 0BEBE8 7F08A078 00000000 */ nop -/* 0BEBEC 7F08A07C 28410002 */ slti $at, $v0, 2 -/* 0BEBF0 7F08A080 14200007 */ bnez $at, .Ljp7F08A0A0 -/* 0BEBF4 7F08A084 3C198009 */ lui $t9, %hi(stop_play_flag) # $t9, 0x8009 -/* 0BEBF8 7F08A088 8F39C770 */ lw $t9, %lo(stop_play_flag)($t9) -/* 0BEBFC 7F08A08C 3C088009 */ lui $t0, %hi(is_gameover_flag) # $t0, 0x8009 -/* 0BEC00 7F08A090 5720012D */ bnezl $t9, .Ljp7F08A548 -/* 0BEC04 7F08A094 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BEC08 7F08A098 8D08C774 */ lw $t0, %lo(is_gameover_flag)($t0) -/* 0BEC0C 7F08A09C 15000129 */ bnez $t0, .Ljp7F08A544 -.Ljp7F08A0A0: -/* 0BEC10 7F08A0A0 3C098003 */ lui $t1, %hi(in_tank_flag) # $t1, 0x8003 -/* 0BEC14 7F08A0A4 8D296488 */ lw $t1, %lo(in_tank_flag)($t1) -/* 0BEC18 7F08A0A8 24010001 */ li $at, 1 -/* 0BEC1C 7F08A0AC C7A8003C */ lwc1 $f8, 0x3c($sp) -/* 0BEC20 7F08A0B0 15210006 */ bne $t1, $at, .Ljp7F08A0CC -/* 0BEC24 7F08A0B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEC28 7F08A0B8 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0BEC2C 7F08A0BC 44815000 */ mtc1 $at, $f10 -/* 0BEC30 7F08A0C0 00000000 */ nop -/* 0BEC34 7F08A0C4 460A4402 */ mul.s $f16, $f8, $f10 -/* 0BEC38 7F08A0C8 E7B0003C */ swc1 $f16, 0x3c($sp) -.Ljp7F08A0CC: -/* 0BEC3C 7F08A0CC 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BEC40 7F08A0D0 8C4A00D8 */ lw $t2, 0xd8($v0) -/* 0BEC44 7F08A0D4 15400016 */ bnez $t2, .Ljp7F08A130 -/* 0BEC48 7F08A0D8 00000000 */ nop -/* 0BEC4C 7F08A0DC 904B12B6 */ lbu $t3, 0x12b6($v0) -/* 0BEC50 7F08A0E0 15600013 */ bnez $t3, .Ljp7F08A130 -/* 0BEC54 7F08A0E4 00000000 */ nop -/* 0BEC58 7F08A0E8 0FC26F3C */ jal get_cur_playernum -/* 0BEC5C 7F08A0EC 00000000 */ nop -/* 0BEC60 7F08A0F0 00402025 */ move $a0, $v0 -/* 0BEC64 7F08A0F4 0C00322E */ jal controller_7000C854 -/* 0BEC68 7F08A0F8 3C053E80 */ lui $a1, 0x3e80 -/* 0BEC6C 7F08A0FC 0FC29658 */ jal cur_player_get_control_type -/* 0BEC70 7F08A100 00000000 */ nop -/* 0BEC74 7F08A104 28410004 */ slti $at, $v0, 4 -/* 0BEC78 7F08A108 14200009 */ bnez $at, .Ljp7F08A130 -/* 0BEC7C 7F08A10C 00000000 */ nop -/* 0BEC80 7F08A110 0FC26F3C */ jal get_cur_playernum -/* 0BEC84 7F08A114 00000000 */ nop -/* 0BEC88 7F08A118 0FC26C01 */ jal getPlayerCount -/* 0BEC8C 7F08A11C AFA2001C */ sw $v0, 0x1c($sp) -/* 0BEC90 7F08A120 8FAC001C */ lw $t4, 0x1c($sp) -/* 0BEC94 7F08A124 3C053E80 */ lui $a1, 0x3e80 -/* 0BEC98 7F08A128 0C00322E */ jal controller_7000C854 -/* 0BEC9C 7F08A12C 004C2021 */ addu $a0, $v0, $t4 -.Ljp7F08A130: -/* 0BECA0 7F08A130 0FC26C01 */ jal getPlayerCount -/* 0BECA4 7F08A134 00000000 */ nop -/* 0BECA8 7F08A138 28410002 */ slti $at, $v0, 2 -/* 0BECAC 7F08A13C 14200010 */ bnez $at, .Ljp7F08A180 -/* 0BECB0 7F08A140 00000000 */ nop -/* 0BECB4 7F08A144 0FC05202 */ jal get_scenario -/* 0BECB8 7F08A148 00000000 */ nop -/* 0BECBC 7F08A14C 24010004 */ li $at, 4 -/* 0BECC0 7F08A150 1441000B */ bne $v0, $at, .Ljp7F08A180 -/* 0BECC4 7F08A154 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BECC8 7F08A158 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BECCC 7F08A15C C45200DC */ lwc1 $f18, 0xdc($v0) -/* 0BECD0 7F08A160 C4442A3C */ lwc1 $f4, 0x2a3c($v0) -/* 0BECD4 7F08A164 C44800E0 */ lwc1 $f8, 0xe0($v0) -/* 0BECD8 7F08A168 C44A2A40 */ lwc1 $f10, 0x2a40($v0) -/* 0BECDC 7F08A16C 46049182 */ mul.s $f6, $f18, $f4 -/* 0BECE0 7F08A170 00000000 */ nop -/* 0BECE4 7F08A174 460A4402 */ mul.s $f16, $f8, $f10 -/* 0BECE8 7F08A178 46103480 */ add.s $f18, $f6, $f16 -/* 0BECEC 7F08A17C E7B2003C */ swc1 $f18, 0x3c($sp) -.Ljp7F08A180: -/* 0BECF0 7F08A180 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BECF4 7F08A184 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BECF8 7F08A188 904D12B6 */ lbu $t5, 0x12b6($v0) -/* 0BECFC 7F08A18C 55A000EE */ bnezl $t5, .Ljp7F08A548 -/* 0BED00 7F08A190 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BED04 7F08A194 8C4E00D8 */ lw $t6, 0xd8($v0) -/* 0BED08 7F08A198 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 -/* 0BED0C 7F08A19C 55C000EA */ bnezl $t6, .Ljp7F08A548 -/* 0BED10 7F08A1A0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BED14 7F08A1A4 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) -/* 0BED18 7F08A1A8 55E000E7 */ bnezl $t7, .Ljp7F08A548 -/* 0BED1C 7F08A1AC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BED20 7F08A1B0 C44400F4 */ lwc1 $f4, 0xf4($v0) -/* 0BED24 7F08A1B4 44804000 */ mtc1 $zero, $f8 -/* 0BED28 7F08A1B8 00000000 */ nop -/* 0BED2C 7F08A1BC 4608203C */ c.lt.s $f4, $f8 -/* 0BED30 7F08A1C0 00000000 */ nop -/* 0BED34 7F08A1C4 4503000E */ bc1tl .Ljp7F08A200 -/* 0BED38 7F08A1C8 8C4301C8 */ lw $v1, 0x1c8($v0) -/* 0BED3C 7F08A1CC 0FC26C01 */ jal getPlayerCount -/* 0BED40 7F08A1D0 00000000 */ nop -/* 0BED44 7F08A1D4 28410002 */ slti $at, $v0, 2 -/* 0BED48 7F08A1D8 142000DA */ bnez $at, .Ljp7F08A544 -/* 0BED4C 7F08A1DC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BED50 7F08A1E0 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BED54 7F08A1E4 44805000 */ mtc1 $zero, $f10 -/* 0BED58 7F08A1E8 C44600F4 */ lwc1 $f6, 0xf4($v0) -/* 0BED5C 7F08A1EC 46065032 */ c.eq.s $f10, $f6 -/* 0BED60 7F08A1F0 00000000 */ nop -/* 0BED64 7F08A1F4 450200D4 */ bc1fl .Ljp7F08A548 -/* 0BED68 7F08A1F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BED6C 7F08A1FC 8C4301C8 */ lw $v1, 0x1c8($v0) -.Ljp7F08A200: -/* 0BED70 7F08A200 24010005 */ li $at, 5 -/* 0BED74 7F08A204 106100CF */ beq $v1, $at, .Ljp7F08A544 -/* 0BED78 7F08A208 2401000C */ li $at, 12 -/* 0BED7C 7F08A20C 506100CE */ beql $v1, $at, .Ljp7F08A548 -/* 0BED80 7F08A210 8FBF0014 */ lw $ra, 0x14($sp) -/* 0BED84 7F08A214 C45000DC */ lwc1 $f16, 0xdc($v0) -/* 0BED88 7F08A218 E45000E4 */ swc1 $f16, 0xe4($v0) -/* 0BED8C 7F08A21C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BED90 7F08A220 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BED94 7F08A224 C45200E0 */ lwc1 $f18, 0xe0($v0) -/* 0BED98 7F08A228 0FC26C01 */ jal getPlayerCount -/* 0BED9C 7F08A22C E45200E8 */ swc1 $f18, 0xe8($v0) -/* 0BEDA0 7F08A230 28410002 */ slti $at, $v0, 2 -/* 0BEDA4 7F08A234 54200035 */ bnezl $at, .Ljp7F08A30C -/* 0BEDA8 7F08A238 8FA30050 */ lw $v1, 0x50($sp) -/* 0BEDAC 7F08A23C 0FC26F3C */ jal get_cur_playernum -/* 0BEDB0 7F08A240 00000000 */ nop -/* 0BEDB4 7F08A244 AFA20038 */ sw $v0, 0x38($sp) -/* 0BEDB8 7F08A248 C7AC0044 */ lwc1 $f12, 0x44($sp) -/* 0BEDBC 7F08A24C 0FC16BD4 */ jal atan2f -/* 0BEDC0 7F08A250 C7AE0048 */ lwc1 $f14, 0x48($sp) -/* 0BEDC4 7F08A254 3C014334 */ li $at, 0x43340000 # 180.000000 -/* 0BEDC8 7F08A258 44812000 */ mtc1 $at, $f4 -/* 0BEDCC 7F08A25C 3C018005 */ lui $at, %hi(pi_800552B0) # $at, 0x8005 -/* 0BEDD0 7F08A260 C42A52E0 */ lwc1 $f10, %lo(pi_800552B0)($at) -/* 0BEDD4 7F08A264 46040202 */ mul.s $f8, $f0, $f4 -/* 0BEDD8 7F08A268 8FB80038 */ lw $t8, 0x38($sp) -/* 0BEDDC 7F08A26C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0BEDE0 7F08A270 3C088008 */ lui $t0, %hi(players) -/* 0BEDE4 7F08A274 0018C880 */ sll $t9, $t8, 2 -/* 0BEDE8 7F08A278 44818000 */ mtc1 $at, $f16 -/* 0BEDEC 7F08A27C 01194021 */ addu $t0, $t0, $t9 -/* 0BEDF0 7F08A280 460A4183 */ div.s $f6, $f8, $f10 -/* 0BEDF4 7F08A284 8D089F50 */ lw $t0, %lo(players)($t0) -/* 0BEDF8 7F08A288 44806000 */ mtc1 $zero, $f12 -/* 0BEDFC 7F08A28C 8FA9004C */ lw $t1, 0x4c($sp) -/* 0BEE00 7F08A290 C5040148 */ lwc1 $f4, 0x148($t0) -/* 0BEE04 7F08A294 3C0142B4 */ li $at, 0x42B40000 # 90.000000 -/* 0BEE08 7F08A298 000950C0 */ sll $t2, $t1, 3 -/* 0BEE0C 7F08A29C 3C0B8008 */ lui $t3, %hi(player1_player_data) # $t3, 0x8008 -/* 0BEE10 7F08A2A0 01495023 */ subu $t2, $t2, $t1 -/* 0BEE14 7F08A2A4 44814000 */ mtc1 $at, $f8 -/* 0BEE18 7F08A2A8 000A5100 */ sll $t2, $t2, 4 -/* 0BEE1C 7F08A2AC 256B9F60 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x60a0 -/* 0BEE20 7F08A2B0 3C014387 */ li $at, 0x43870000 # 270.000000 -/* 0BEE24 7F08A2B4 014B1021 */ addu $v0, $t2, $t3 -/* 0BEE28 7F08A2B8 46068481 */ sub.s $f18, $f16, $f6 -/* 0BEE2C 7F08A2BC 46122081 */ sub.s $f2, $f4, $f18 -/* 0BEE30 7F08A2C0 460C103C */ c.lt.s $f2, $f12 -/* 0BEE34 7F08A2C4 00000000 */ nop -/* 0BEE38 7F08A2C8 45020003 */ bc1fl .Ljp7F08A2D8 -/* 0BEE3C 7F08A2CC 4608103C */ c.lt.s $f2, $f8 -/* 0BEE40 7F08A2D0 46001087 */ neg.s $f2, $f2 -/* 0BEE44 7F08A2D4 4608103C */ c.lt.s $f2, $f8 -.Ljp7F08A2D8: -/* 0BEE48 7F08A2D8 00000000 */ nop -/* 0BEE4C 7F08A2DC 45030008 */ bc1tl .Ljp7F08A300 -/* 0BEE50 7F08A2E0 8C4C003C */ lw $t4, 0x3c($v0) -/* 0BEE54 7F08A2E4 44815000 */ mtc1 $at, $f10 -/* 0BEE58 7F08A2E8 00000000 */ nop -/* 0BEE5C 7F08A2EC 4602503C */ c.lt.s $f10, $f2 -/* 0BEE60 7F08A2F0 00000000 */ nop -/* 0BEE64 7F08A2F4 45020005 */ bc1fl .Ljp7F08A30C -/* 0BEE68 7F08A2F8 8FA30050 */ lw $v1, 0x50($sp) -/* 0BEE6C 7F08A2FC 8C4C003C */ lw $t4, 0x3c($v0) -.Ljp7F08A300: -/* 0BEE70 7F08A300 258D0001 */ addiu $t5, $t4, 1 -/* 0BEE74 7F08A304 AC4D003C */ sw $t5, 0x3c($v0) -/* 0BEE78 7F08A308 8FA30050 */ lw $v1, 0x50($sp) -.Ljp7F08A30C: -/* 0BEE7C 7F08A30C 44806000 */ mtc1 $zero, $f12 -/* 0BEE80 7F08A310 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEE84 7F08A314 10600010 */ beqz $v1, .Ljp7F08A358 -/* 0BEE88 7F08A318 00000000 */ nop -/* 0BEE8C 7F08A31C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BEE90 7F08A320 C7A6003C */ lwc1 $f6, 0x3c($sp) -/* 0BEE94 7F08A324 C44000E0 */ lwc1 $f0, 0xe0($v0) -/* 0BEE98 7F08A328 C4422A40 */ lwc1 $f2, 0x2a40($v0) -/* 0BEE9C 7F08A32C 46020402 */ mul.s $f16, $f0, $f2 -/* 0BEEA0 7F08A330 4610303E */ c.le.s $f6, $f16 -/* 0BEEA4 7F08A334 00000000 */ nop -/* 0BEEA8 7F08A338 45000007 */ bc1f .Ljp7F08A358 -/* 0BEEAC 7F08A33C 00000000 */ nop -/* 0BEEB0 7F08A340 46023103 */ div.s $f4, $f6, $f2 -/* 0BEEB4 7F08A344 46040481 */ sub.s $f18, $f0, $f4 -/* 0BEEB8 7F08A348 E45200E0 */ swc1 $f18, 0xe0($v0) -/* 0BEEBC 7F08A34C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEEC0 7F08A350 1000005E */ b .Ljp7F08A4CC -/* 0BEEC4 7F08A354 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -.Ljp7F08A358: -/* 0BEEC8 7F08A358 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEECC 7F08A35C 1060000F */ beqz $v1, .Ljp7F08A39C -/* 0BEED0 7F08A360 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BEED4 7F08A364 C44800E0 */ lwc1 $f8, 0xe0($v0) -/* 0BEED8 7F08A368 C44A2A40 */ lwc1 $f10, 0x2a40($v0) -/* 0BEEDC 7F08A36C C7A6003C */ lwc1 $f6, 0x3c($sp) -/* 0BEEE0 7F08A370 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0BEEE4 7F08A374 460A4403 */ div.s $f16, $f8, $f10 -/* 0BEEE8 7F08A378 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 0BEEEC 7F08A37C 44819000 */ mtc1 $at, $f18 -/* 0BEEF0 7F08A380 46103101 */ sub.s $f4, $f6, $f16 -/* 0BEEF4 7F08A384 E7A4003C */ swc1 $f4, 0x3c($sp) -/* 0BEEF8 7F08A388 E44C00E0 */ swc1 $f12, 0xe0($v0) -/* 0BEEFC 7F08A38C 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 0BEF00 7F08A390 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEF04 7F08A394 E5D22A40 */ swc1 $f18, 0x2a40($t6) -/* 0BEF08 7F08A398 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -.Ljp7F08A39C: -/* 0BEF0C 7F08A39C C7A8003C */ lwc1 $f8, 0x3c($sp) -/* 0BEF10 7F08A3A0 C44A2A3C */ lwc1 $f10, 0x2a3c($v0) -/* 0BEF14 7F08A3A4 C45000DC */ lwc1 $f16, 0xdc($v0) -/* 0BEF18 7F08A3A8 460A4183 */ div.s $f6, $f8, $f10 -/* 0BEF1C 7F08A3AC 46068101 */ sub.s $f4, $f16, $f6 -/* 0BEF20 7F08A3B0 E44400DC */ swc1 $f4, 0xdc($v0) -/* 0BEF24 7F08A3B4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BEF28 7F08A3B8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BEF2C 7F08A3BC C45200DC */ lwc1 $f18, 0xdc($v0) -/* 0BEF30 7F08A3C0 460C903E */ c.le.s $f18, $f12 -/* 0BEF34 7F08A3C4 00000000 */ nop -/* 0BEF38 7F08A3C8 45020041 */ bc1fl .Ljp7F08A4D0 -/* 0BEF3C 7F08A3CC C44800F4 */ lwc1 $f8, 0xf4($v0) -/* 0BEF40 7F08A3D0 0FC26C01 */ jal getPlayerCount -/* 0BEF44 7F08A3D4 00000000 */ nop -/* 0BEF48 7F08A3D8 28410002 */ slti $at, $v0, 2 -/* 0BEF4C 7F08A3DC 14200036 */ bnez $at, .Ljp7F08A4B8 -/* 0BEF50 7F08A3E0 00000000 */ nop -/* 0BEF54 7F08A3E4 0FC26F3C */ jal get_cur_playernum -/* 0BEF58 7F08A3E8 00000000 */ nop -/* 0BEF5C 7F08A3EC AFA2002C */ sw $v0, 0x2c($sp) -/* 0BEF60 7F08A3F0 0FC05202 */ jal get_scenario -/* 0BEF64 7F08A3F4 AFA00028 */ sw $zero, 0x28($sp) -/* 0BEF68 7F08A3F8 24010003 */ li $at, 3 -/* 0BEF6C 7F08A3FC 14410006 */ bne $v0, $at, .Ljp7F08A418 -/* 0BEF70 7F08A400 00000000 */ nop -/* 0BEF74 7F08A404 0FC23649 */ jal checkforgoldengun -/* 0BEF78 7F08A408 00000000 */ nop -/* 0BEF7C 7F08A40C 10400002 */ beqz $v0, .Ljp7F08A418 -/* 0BEF80 7F08A410 240F0001 */ li $t7, 1 -/* 0BEF84 7F08A414 AFAF0028 */ sw $t7, 0x28($sp) -.Ljp7F08A418: -/* 0BEF88 7F08A418 0FC15B1E */ jal drop_inventory -/* 0BEF8C 7F08A41C 00000000 */ nop -/* 0BEF90 7F08A420 8FB8002C */ lw $t8, 0x2c($sp) -/* 0BEF94 7F08A424 8FB9004C */ lw $t9, 0x4c($sp) -/* 0BEF98 7F08A428 13190003 */ beq $t8, $t9, .Ljp7F08A438 -/* 0BEF9C 7F08A42C 00000000 */ nop -/* 0BEFA0 7F08A430 0FC1ABD2 */ jal increment_num_deaths -/* 0BEFA4 7F08A434 00000000 */ nop -.Ljp7F08A438: -/* 0BEFA8 7F08A438 0FC26F2B */ jal set_cur_player -/* 0BEFAC 7F08A43C 8FA4004C */ lw $a0, 0x4c($sp) -/* 0BEFB0 7F08A440 8FA8002C */ lw $t0, 0x2c($sp) -/* 0BEFB4 7F08A444 8FA9004C */ lw $t1, 0x4c($sp) -/* 0BEFB8 7F08A448 15090005 */ bne $t0, $t1, .Ljp7F08A460 -/* 0BEFBC 7F08A44C 00000000 */ nop -/* 0BEFC0 7F08A450 0FC1AC01 */ jal increment_num_suicides_display_MP -/* 0BEFC4 7F08A454 00000000 */ nop -/* 0BEFC8 7F08A458 10000008 */ b .Ljp7F08A47C -/* 0BEFCC 7F08A45C 00000000 */ nop -.Ljp7F08A460: -/* 0BEFD0 7F08A460 0FC1AB5B */ jal increment_num_kills_display_text_in_MP -/* 0BEFD4 7F08A464 00000000 */ nop -/* 0BEFD8 7F08A468 8FAA0028 */ lw $t2, 0x28($sp) -/* 0BEFDC 7F08A46C 11400003 */ beqz $t2, .Ljp7F08A47C -/* 0BEFE0 7F08A470 00000000 */ nop -/* 0BEFE4 7F08A474 0FC1ABC8 */ jal increment_num_times_killed_MwtGC -/* 0BEFE8 7F08A478 00000000 */ nop -.Ljp7F08A47C: -/* 0BEFEC 7F08A47C 0FC26F2B */ jal set_cur_player -/* 0BEFF0 7F08A480 8FA4002C */ lw $a0, 0x2c($sp) -/* 0BEFF4 7F08A484 8FAB004C */ lw $t3, 0x4c($sp) -/* 0BEFF8 7F08A488 8FAD002C */ lw $t5, 0x2c($sp) -/* 0BEFFC 7F08A48C 3C188008 */ lui $t8, %hi(player1_player_data) # $t8, 0x8008 -/* 0BF000 7F08A490 000B60C0 */ sll $t4, $t3, 3 -/* 0BF004 7F08A494 018B6023 */ subu $t4, $t4, $t3 -/* 0BF008 7F08A498 000C6100 */ sll $t4, $t4, 4 -/* 0BF00C 7F08A49C 000D7080 */ sll $t6, $t5, 2 -/* 0BF010 7F08A4A0 018E7821 */ addu $t7, $t4, $t6 -/* 0BF014 7F08A4A4 27189F60 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x60a0 -/* 0BF018 7F08A4A8 01F81021 */ addu $v0, $t7, $t8 -/* 0BF01C 7F08A4AC 8C590024 */ lw $t9, 0x24($v0) -/* 0BF020 7F08A4B0 27280001 */ addiu $t0, $t9, 1 -/* 0BF024 7F08A4B4 AC480024 */ sw $t0, 0x24($v0) -.Ljp7F08A4B8: -/* 0BF028 7F08A4B8 0FC2279F */ jal kill_current_player -/* 0BF02C 7F08A4BC 00000000 */ nop -/* 0BF030 7F08A4C0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BF034 7F08A4C4 44806000 */ mtc1 $zero, $f12 -/* 0BF038 7F08A4C8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -.Ljp7F08A4CC: -/* 0BF03C 7F08A4CC C44800F4 */ lwc1 $f8, 0xf4($v0) -.Ljp7F08A4D0: -/* 0BF040 7F08A4D0 C7AA0044 */ lwc1 $f10, 0x44($sp) -/* 0BF044 7F08A4D4 3C098008 */ lui $t1, %hi(pPlayer) # $t1, 0x8008 -/* 0BF048 7F08A4D8 460C403C */ c.lt.s $f8, $f12 -/* 0BF04C 7F08A4DC 00000000 */ nop -/* 0BF050 7F08A4E0 4502000F */ bc1fl .Ljp7F08A520 -/* 0BF054 7F08A4E4 E44C00F4 */ swc1 $f12, 0xf4($v0) -/* 0BF058 7F08A4E8 460A5400 */ add.s $f16, $f10, $f10 -/* 0BF05C 7F08A4EC C4460180 */ lwc1 $f6, 0x180($v0) -/* 0BF060 7F08A4F0 46103100 */ add.s $f4, $f6, $f16 -/* 0BF064 7F08A4F4 E4440180 */ swc1 $f4, 0x180($v0) -/* 0BF068 7F08A4F8 C7B20048 */ lwc1 $f18, 0x48($sp) -/* 0BF06C 7F08A4FC 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BF070 7F08A500 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BF074 7F08A504 46129200 */ add.s $f8, $f18, $f18 -/* 0BF078 7F08A508 C44A0188 */ lwc1 $f10, 0x188($v0) -/* 0BF07C 7F08A50C 46085180 */ add.s $f6, $f10, $f8 -/* 0BF080 7F08A510 E4460188 */ swc1 $f6, 0x188($v0) -/* 0BF084 7F08A514 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0BF088 7F08A518 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0BF08C 7F08A51C E44C00F4 */ swc1 $f12, 0xf4($v0) -.Ljp7F08A520: -/* 0BF090 7F08A520 8D29A120 */ lw $t1, %lo(pPlayer)($t1) -/* 0BF094 7F08A524 0FC3021B */ jal get_controls_locked_flag -/* 0BF098 7F08A528 E52C00F8 */ swc1 $f12, 0xf8($t1) -/* 0BF09C 7F08A52C 14400005 */ bnez $v0, .Ljp7F08A544 -/* 0BF0A0 7F08A530 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0BF0A4 7F08A534 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0BF0A8 7F08A538 24050044 */ li $a1, 68 -/* 0BF0AC 7F08A53C 0C002386 */ jal play_sfx_a1 -/* 0BF0B0 7F08A540 00003025 */ move $a2, $zero -.Ljp7F08A544: -/* 0BF0B4 7F08A544 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F08A548: -/* 0BF0B8 7F08A548 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0BF0BC 7F08A54C 03E00008 */ jr $ra -/* 0BF0C0 7F08A550 00000000 */ nop -) -#endif #endif @@ -29579,7 +36305,7 @@ glabel sub_GAME_7F089E4C -#ifdef VERSION_US +#ifndef VERSION_JP int check_if_bond_is_invincible(void) { return (pPlayer->damageshowtime < 0) ^ 1; } @@ -29606,7 +36332,7 @@ glabel check_if_bond_is_invincible #endif -#ifdef VERSION_US +#ifndef VERSION_JP int check_if_healthbar_timer_greater_than_0(void) { return (0 < pPlayer->healthshowtime); } @@ -30111,6 +36837,34 @@ glabel reset_intro_camera_message_dialogs_for_BONDdata ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel reset_intro_camera_message_dialogs_for_BONDdata +/* 0BEE60 7F08A330 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BEE64 7F08A334 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0BEE68 7F08A338 8C4E0000 */ lw $t6, ($v0) +/* 0BEE6C 7F08A33C 240FFFFF */ li $t7, -1 +/* 0BEE70 7F08A340 3C018003 */ lui $at, %hi(display_statusbar) +/* 0BEE74 7F08A344 ADC011D8 */ sw $zero, 0x11d8($t6) +/* 0BEE78 7F08A348 8C580000 */ lw $t8, ($v0) +/* 0BEE7C 7F08A34C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0BEE80 7F08A350 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) +/* 0BEE84 7F08A354 AF0F11DC */ sw $t7, 0x11dc($t8) +/* 0BEE88 7F08A358 AC20689C */ sw $zero, %lo(display_statusbar)($at) +/* 0BEE8C 7F08A35C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0BEE90 7F08A360 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BEE94 7F08A364 AC206898 */ sw $zero, %lo(status_bar_text_buffer_index)($at) +/* 0BEE98 7F08A368 3C018003 */ lui $at, %hi(copy_1stfonttable) +/* 0BEE9C 7F08A36C 8D080EB0 */ lw $t0, %lo(ptrSecondFontTableSmall)($t0) +/* 0BEEA0 7F08A370 AC3968A0 */ sw $t9, %lo(copy_1stfonttable)($at) +/* 0BEEA4 7F08A374 3C018003 */ lui $at, %hi(copy_2ndfonttable) +/* 0BEEA8 7F08A378 03E00008 */ jr $ra +/* 0BEEAC 7F08A37C AC2868A4 */ sw $t0, %lo(copy_2ndfonttable)($at) +) +#endif + + #endif @@ -30157,7 +36911,7 @@ glabel set_flags_in_BONDdata_stationary_intro_cam -#ifdef VERSION_US +#ifndef VERSION_JP void setFontTables(s32 arg0, s32 arg1) { copy_2ndfonttable = arg0; @@ -30205,7 +36959,7 @@ glabel display_string_in_lower_left_corner /* 0BEF5C 7F08A42C 030FC021 */ addu $t8, $t8, $t7 /* 0BEF60 7F08A430 03192021 */ addu $a0, $t8, $t9 /* 0BEF64 7F08A434 AFA40018 */ sw $a0, 0x18($sp) -/* 0BEF68 7F08A438 0C0029E8 */ jal something_with_strings +/* 0BEF68 7F08A438 0C0029E8 */ jal strncpy /* 0BEF6C 7F08A43C 24060064 */ li $a2, 100 /* 0BEF70 7F08A440 3C078003 */ lui $a3, %hi(display_statusbar) /* 0BEF74 7F08A444 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c @@ -30229,7 +36983,7 @@ glabel display_string_in_lower_left_corner /* 0BEFB8 7F08A488 AFA20020 */ sw $v0, 0x20($sp) /* 0BEFBC 7F08A48C 014B2021 */ addu $a0, $t2, $t3 /* 0BEFC0 7F08A490 8FA50028 */ lw $a1, 0x28($sp) -/* 0BEFC4 7F08A494 0C0029E8 */ jal something_with_strings +/* 0BEFC4 7F08A494 0C0029E8 */ jal strncpy /* 0BEFC8 7F08A498 24060064 */ li $a2, 100 /* 0BEFCC 7F08A49C 8FAC0020 */ lw $t4, 0x20($sp) /* 0BEFD0 7F08A4A0 3C0F8008 */ lui $t7, %hi(pPlayer) @@ -30292,7 +37046,7 @@ glabel display_string_in_lower_left_corner /* 0BF6AC 7F08AB3C 03192021 */ addu $a0, $t8, $t9 /* 0BF6B0 7F08AB40 AFA40018 */ sw $a0, 0x18($sp) /* 0BF6B4 7F08AB44 AFAF0024 */ sw $t7, 0x24($sp) -/* 0BF6B8 7F08AB48 0C0029EC */ jal something_with_strings +/* 0BF6B8 7F08AB48 0C0029EC */ jal strncpy /* 0BF6BC 7F08AB4C 24060064 */ li $a2, 100 /* 0BF6C0 7F08AB50 8FA70024 */ lw $a3, 0x24($sp) /* 0BF6C4 7F08AB54 8FA40018 */ lw $a0, 0x18($sp) @@ -30326,7 +37080,7 @@ glabel display_string_in_lower_left_corner /* 0BF730 7F08ABC0 01AE2021 */ addu $a0, $t5, $t6 /* 0BF734 7F08ABC4 8FA50028 */ lw $a1, 0x28($sp) /* 0BF738 7F08ABC8 24060064 */ li $a2, 100 -/* 0BF73C 7F08ABCC 0C0029EC */ jal something_with_strings +/* 0BF73C 7F08ABCC 0C0029EC */ jal strncpy /* 0BF740 7F08ABD0 AFA20020 */ sw $v0, 0x20($sp) /* 0BF744 7F08ABD4 8FA70020 */ lw $a3, 0x20($sp) /* 0BF748 7F08ABD8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+0x64) #dword_CODE_bss_80079A28 @@ -30358,6 +37112,85 @@ glabel display_string_in_lower_left_corner /* 0BF7AC 7F08AC3C 00000000 */ nop ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel display_string_in_lower_left_corner +/* 0BEEF8 7F08A3C8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0BEEFC 7F08A3CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0BEF00 7F08A3D0 0FC26919 */ jal getPlayerCount +/* 0BEF04 7F08A3D4 AFA40028 */ sw $a0, 0x28($sp) +/* 0BEF08 7F08A3D8 24010001 */ li $at, 1 +/* 0BEF0C 7F08A3DC 14410020 */ bne $v0, $at, .L7F08A460 +/* 0BEF10 7F08A3E0 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF14 7F08A3E4 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF18 7F08A3E8 8CE30000 */ lw $v1, ($a3) +/* 0BEF1C 7F08A3EC 3C198008 */ lui $t9, %hi(dword_CODE_bss_80079A28) +/* 0BEF20 7F08A3F0 3C0E8003 */ lui $t6, %hi(status_bar_text_buffer_index) +/* 0BEF24 7F08A3F4 28610005 */ slti $at, $v1, 5 +/* 0BEF28 7F08A3F8 10200036 */ beqz $at, .L7F08A4D4 +/* 0BEF2C 7F08A3FC 27399A28 */ addiu $t9, %lo(dword_CODE_bss_80079A28) # addiu $t9, $t9, -0x65d8 +/* 0BEF30 7F08A400 8DCE6898 */ lw $t6, %lo(status_bar_text_buffer_index)($t6) +/* 0BEF34 7F08A404 24010005 */ li $at, 5 +/* 0BEF38 7F08A408 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEF3C 7F08A40C 01C31021 */ addu $v0, $t6, $v1 +/* 0BEF40 7F08A410 0041001A */ div $zero, $v0, $at +/* 0BEF44 7F08A414 00007810 */ mfhi $t7 +/* 0BEF48 7F08A418 000FC080 */ sll $t8, $t7, 2 +/* 0BEF4C 7F08A41C 030FC023 */ subu $t8, $t8, $t7 +/* 0BEF50 7F08A420 0018C0C0 */ sll $t8, $t8, 3 +/* 0BEF54 7F08A424 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF58 7F08A428 0018C080 */ sll $t8, $t8, 2 +/* 0BEF5C 7F08A42C 030FC021 */ addu $t8, $t8, $t7 +/* 0BEF60 7F08A430 03192021 */ addu $a0, $t8, $t9 +/* 0BEF64 7F08A434 AFA40018 */ sw $a0, 0x18($sp) +/* 0BEF68 7F08A438 0C0029E8 */ jal strncpy +/* 0BEF6C 7F08A43C 24060064 */ li $a2, 100 +/* 0BEF70 7F08A440 3C078003 */ lui $a3, %hi(display_statusbar) +/* 0BEF74 7F08A444 24E7689C */ addiu $a3, %lo(display_statusbar) # addiu $a3, $a3, 0x689c +/* 0BEF78 7F08A448 8CE80000 */ lw $t0, ($a3) +/* 0BEF7C 7F08A44C 8FA40018 */ lw $a0, 0x18($sp) +/* 0BEF80 7F08A450 25090001 */ addiu $t1, $t0, 1 +/* 0BEF84 7F08A454 ACE90000 */ sw $t1, ($a3) +/* 0BEF88 7F08A458 1000001E */ b .L7F08A4D4 +/* 0BEF8C 7F08A45C A0800064 */ sb $zero, 0x64($a0) +.L7F08A460: +/* 0BEF90 7F08A460 0FC26C54 */ jal get_cur_playernum +/* 0BEF94 7F08A464 00000000 */ nop +/* 0BEF98 7F08A468 00025080 */ sll $t2, $v0, 2 +/* 0BEF9C 7F08A46C 01425023 */ subu $t2, $t2, $v0 +/* 0BEFA0 7F08A470 000A50C0 */ sll $t2, $t2, 3 +/* 0BEFA4 7F08A474 01425021 */ addu $t2, $t2, $v0 +/* 0BEFA8 7F08A478 000A5080 */ sll $t2, $t2, 2 +/* 0BEFAC 7F08A47C 3C0B8008 */ lui $t3, %hi(dword_CODE_bss_80079A28) +/* 0BEFB0 7F08A480 256B9A28 */ addiu $t3, %lo(dword_CODE_bss_80079A28) # addiu $t3, $t3, -0x65d8 +/* 0BEFB4 7F08A484 01425021 */ addu $t2, $t2, $v0 +/* 0BEFB8 7F08A488 AFA20020 */ sw $v0, 0x20($sp) +/* 0BEFBC 7F08A48C 014B2021 */ addu $a0, $t2, $t3 +/* 0BEFC0 7F08A490 8FA50028 */ lw $a1, 0x28($sp) +/* 0BEFC4 7F08A494 0C0029E8 */ jal strncpy +/* 0BEFC8 7F08A498 24060064 */ li $a2, 100 +/* 0BEFCC 7F08A49C 8FAC0020 */ lw $t4, 0x20($sp) +/* 0BEFD0 7F08A4A0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0BEFD4 7F08A4A4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0BEFD8 7F08A4A8 000C6880 */ sll $t5, $t4, 2 +/* 0BEFDC 7F08A4AC 01AC6823 */ subu $t5, $t5, $t4 +/* 0BEFE0 7F08A4B0 000D68C0 */ sll $t5, $t5, 3 +/* 0BEFE4 7F08A4B4 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFE8 7F08A4B8 000D6880 */ sll $t5, $t5, 2 +/* 0BEFEC 7F08A4BC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A28+100) +/* 0BEFF0 7F08A4C0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BEFF4 7F08A4C4 002D0821 */ addu $at, $at, $t5 +/* 0BEFF8 7F08A4C8 A0209A8C */ sb $zero, %lo(dword_CODE_bss_80079A28+100)($at) +/* 0BEFFC 7F08A4CC 240E0078 */ li $t6, 120 +/* 0BF000 7F08A4D0 ADEE11DC */ sw $t6, 0x11dc($t7) +.L7F08A4D4: +/* 0BF004 7F08A4D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0BF008 7F08A4D8 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0BF00C 7F08A4DC 03E00008 */ jr $ra +/* 0BF010 7F08A4E0 00000000 */ nop +) +#endif #endif @@ -30627,9 +37460,9 @@ glabel sub_GAME_7F08A5FC /* 0BF378 7F08A848 27A60054 */ addiu $a2, $sp, 0x54 /* 0BF37C 7F08A84C 0FC2B3D3 */ jal draw_blackbox_to_screen /* 0BF380 7F08A850 27A70050 */ addiu $a3, $sp, 0x50 -/* 0BF384 7F08A854 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF384 7F08A854 0C001107 */ jal viGetX /* 0BF388 7F08A858 AFA20060 */ sw $v0, 0x60($sp) -/* 0BF38C 7F08A85C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF38C 7F08A85C 0C00110B */ jal viGetY /* 0BF390 7F08A860 A7A2003C */ sh $v0, 0x3c($sp) /* 0BF394 7F08A864 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) /* 0BF398 7F08A868 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) @@ -30857,9 +37690,9 @@ glabel sub_GAME_7F08A5FC /* 0BFB88 7F08B018 27A60054 */ addiu $a2, $sp, 0x54 /* 0BFB8C 7F08B01C 0FC2B6BF */ jal draw_blackbox_to_screen /* 0BFB90 7F08B020 27A70050 */ addiu $a3, $sp, 0x50 -/* 0BFB94 7F08B024 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFB94 7F08B024 0C001107 */ jal viGetX /* 0BFB98 7F08B028 AFA20060 */ sw $v0, 0x60($sp) -/* 0BFB9C 7F08B02C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFB9C 7F08B02C 0C00110B */ jal viGetY /* 0BFBA0 7F08B030 A7A2003C */ sh $v0, 0x3c($sp) /* 0BFBA4 7F08B034 3C038003 */ lui $v1, %hi(status_bar_text_buffer_index) # $v1, 0x8003 /* 0BFBA8 7F08B038 8C6368D8 */ lw $v1, %lo(status_bar_text_buffer_index)($v1) @@ -30907,6 +37740,217 @@ glabel sub_GAME_7F08A5FC ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08A5FC +/* 0BF12C 7F08A5FC 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF130 7F08A600 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF134 7F08A604 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0BF138 7F08A608 AFBF0034 */ sw $ra, 0x34($sp) +/* 0BF13C 7F08A60C AFA40060 */ sw $a0, 0x60($sp) +/* 0BF140 7F08A610 8C4E11D8 */ lw $t6, 0x11d8($v0) +/* 0BF144 7F08A614 55C000B6 */ bnezl $t6, .L7F08A8F0 +/* 0BF148 7F08A618 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF14C 7F08A61C 8C4F11DC */ lw $t7, 0x11dc($v0) +/* 0BF150 7F08A620 05E200B3 */ bltzl $t7, .L7F08A8F0 +/* 0BF154 7F08A624 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF158 7F08A628 8C5829C4 */ lw $t8, 0x29c4($v0) +/* 0BF15C 7F08A62C 570000B0 */ bnezl $t8, .L7F08A8F0 +/* 0BF160 7F08A630 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF164 7F08A634 0FC26919 */ jal getPlayerCount +/* 0BF168 7F08A638 AFA0005C */ sw $zero, 0x5c($sp) +/* 0BF16C 7F08A63C 24010001 */ li $at, 1 +/* 0BF170 7F08A640 14410010 */ bne $v0, $at, .L7F08A684 +/* 0BF174 7F08A644 8FA3005C */ lw $v1, 0x5c($sp) +/* 0BF178 7F08A648 3C198003 */ lui $t9, %hi(status_bar_text_buffer_index) +/* 0BF17C 7F08A64C 8F396898 */ lw $t9, %lo(status_bar_text_buffer_index)($t9) +/* 0BF180 7F08A650 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079A28) +/* 0BF184 7F08A654 00194080 */ sll $t0, $t9, 2 +/* 0BF188 7F08A658 01194023 */ subu $t0, $t0, $t9 +/* 0BF18C 7F08A65C 000840C0 */ sll $t0, $t0, 3 +/* 0BF190 7F08A660 01194021 */ addu $t0, $t0, $t9 +/* 0BF194 7F08A664 00084080 */ sll $t0, $t0, 2 +/* 0BF198 7F08A668 01194021 */ addu $t0, $t0, $t9 +/* 0BF19C 7F08A66C 01284821 */ addu $t1, $t1, $t0 +/* 0BF1A0 7F08A670 91299A28 */ lbu $t1, %lo(dword_CODE_bss_80079A28)($t1) +/* 0BF1A4 7F08A674 1120000D */ beqz $t1, .L7F08A6AC +/* 0BF1A8 7F08A678 00000000 */ nop +/* 0BF1AC 7F08A67C 1000000B */ b .L7F08A6AC +/* 0BF1B0 7F08A680 24030001 */ li $v1, 1 +.L7F08A684: +/* 0BF1B4 7F08A684 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF1B8 7F08A688 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF1BC 7F08A68C 8D4B11DC */ lw $t3, 0x11dc($t2) +/* 0BF1C0 7F08A690 05600006 */ bltz $t3, .L7F08A6AC +/* 0BF1C4 7F08A694 00000000 */ nop +/* 0BF1C8 7F08A698 0FC26C54 */ jal get_cur_playernum +/* 0BF1CC 7F08A69C 00000000 */ nop +/* 0BF1D0 7F08A6A0 3C018003 */ lui $at, %hi(status_bar_text_buffer_index) +/* 0BF1D4 7F08A6A4 AC226898 */ sw $v0, %lo(status_bar_text_buffer_index)($at) +/* 0BF1D8 7F08A6A8 24030001 */ li $v1, 1 +.L7F08A6AC: +/* 0BF1DC 7F08A6AC 50600090 */ beql $v1, $zero, .L7F08A8F0 +/* 0BF1E0 7F08A6B0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0BF1E4 7F08A6B4 0FC2B366 */ jal microcode_constructor +/* 0BF1E8 7F08A6B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF1EC 7F08A6BC 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF1F0 7F08A6C0 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF1F4 7F08A6C4 3C0F8003 */ lui $t7, %hi(copy_1stfonttable) +/* 0BF1F8 7F08A6C8 8DEF68A0 */ lw $t7, %lo(copy_1stfonttable)($t7) +/* 0BF1FC 7F08A6CC 000C6880 */ sll $t5, $t4, 2 +/* 0BF200 7F08A6D0 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF204 7F08A6D4 000D68C0 */ sll $t5, $t5, 3 +/* 0BF208 7F08A6D8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF20C 7F08A6DC 000D6880 */ sll $t5, $t5, 2 +/* 0BF210 7F08A6E0 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF214 7F08A6E4 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF218 7F08A6E8 3C078003 */ lui $a3, %hi(copy_2ndfonttable) +/* 0BF21C 7F08A6EC 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF220 7F08A6F0 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF224 7F08A6F4 AFA00044 */ sw $zero, 0x44($sp) +/* 0BF228 7F08A6F8 AFA00048 */ sw $zero, 0x48($sp) +/* 0BF22C 7F08A6FC 01AE3021 */ addu $a2, $t5, $t6 +/* 0BF230 7F08A700 8CE768A4 */ lw $a3, %lo(copy_2ndfonttable)($a3) +/* 0BF234 7F08A704 27A40048 */ addiu $a0, $sp, 0x48 +/* 0BF238 7F08A708 27A50044 */ addiu $a1, $sp, 0x44 +/* 0BF23C 7F08A70C AFA00014 */ sw $zero, 0x14($sp) +/* 0BF240 7F08A710 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF244 7F08A714 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF248 7F08A718 0FC26919 */ jal getPlayerCount +/* 0BF24C 7F08A71C 00000000 */ nop +/* 0BF250 7F08A720 28410003 */ slti $at, $v0, 3 +/* 0BF254 7F08A724 10200005 */ beqz $at, .L7F08A73C +/* 0BF258 7F08A728 00000000 */ nop +/* 0BF25C 7F08A72C 0C001145 */ jal viGetViewLeft +/* 0BF260 7F08A730 00000000 */ nop +/* 0BF264 7F08A734 1000000D */ b .L7F08A76C +/* 0BF268 7F08A738 2443001E */ addiu $v1, $v0, 0x1e +.L7F08A73C: +/* 0BF26C 7F08A73C 0FC26C54 */ jal get_cur_playernum +/* 0BF270 7F08A740 00000000 */ nop +/* 0BF274 7F08A744 30580001 */ andi $t8, $v0, 1 +/* 0BF278 7F08A748 13000005 */ beqz $t8, .L7F08A760 +/* 0BF27C 7F08A74C 00000000 */ nop +/* 0BF280 7F08A750 0C001145 */ jal viGetViewLeft +/* 0BF284 7F08A754 00000000 */ nop +/* 0BF288 7F08A758 10000004 */ b .L7F08A76C +/* 0BF28C 7F08A75C 2443000A */ addiu $v1, $v0, 0xa +.L7F08A760: +/* 0BF290 7F08A760 0C001145 */ jal viGetViewLeft +/* 0BF294 7F08A764 00000000 */ nop +/* 0BF298 7F08A768 2443001E */ addiu $v1, $v0, 0x1e +.L7F08A76C: +/* 0BF29C 7F08A76C 8FB90044 */ lw $t9, 0x44($sp) +/* 0BF2A0 7F08A770 AFA30058 */ sw $v1, 0x58($sp) +/* 0BF2A4 7F08A774 00794021 */ addu $t0, $v1, $t9 +/* 0BF2A8 7F08A778 0FC26919 */ jal getPlayerCount +/* 0BF2AC 7F08A77C AFA80050 */ sw $t0, 0x50($sp) +/* 0BF2B0 7F08A780 28410003 */ slti $at, $v0, 3 +/* 0BF2B4 7F08A784 10200024 */ beqz $at, .L7F08A818 +/* 0BF2B8 7F08A788 00000000 */ nop +/* 0BF2BC 7F08A78C 0FC17674 */ jal get_item_in_hand +/* 0BF2C0 7F08A790 24040001 */ li $a0, 1 +/* 0BF2C4 7F08A794 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0BF2C8 7F08A798 00402025 */ move $a0, $v0 +/* 0BF2CC 7F08A79C 1440000E */ bnez $v0, .L7F08A7D8 +/* 0BF2D0 7F08A7A0 00000000 */ nop +/* 0BF2D4 7F08A7A4 0FC15867 */ jal is_clock_drawn_onscreen +/* 0BF2D8 7F08A7A8 00000000 */ nop +/* 0BF2DC 7F08A7AC 1440000A */ bnez $v0, .L7F08A7D8 +/* 0BF2E0 7F08A7B0 00000000 */ nop +/* 0BF2E4 7F08A7B4 0C001149 */ jal viGetViewTop +/* 0BF2E8 7F08A7B8 00000000 */ nop +/* 0BF2EC 7F08A7BC 0C00112B */ jal viGetViewHeight +/* 0BF2F0 7F08A7C0 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BF2F4 7F08A7C4 87A9003E */ lh $t1, 0x3e($sp) +/* 0BF2F8 7F08A7C8 00495021 */ addu $t2, $v0, $t1 +/* 0BF2FC 7F08A7CC 254BFFF4 */ addiu $t3, $t2, -0xc +/* 0BF300 7F08A7D0 10000009 */ b .L7F08A7F8 +/* 0BF304 7F08A7D4 AFAB004C */ sw $t3, 0x4c($sp) +.L7F08A7D8: +/* 0BF308 7F08A7D8 0C001149 */ jal viGetViewTop +/* 0BF30C 7F08A7DC 00000000 */ nop +/* 0BF310 7F08A7E0 0C00112B */ jal viGetViewHeight +/* 0BF314 7F08A7E4 A7A2003E */ sh $v0, 0x3e($sp) +/* 0BF318 7F08A7E8 87AC003E */ lh $t4, 0x3e($sp) +/* 0BF31C 7F08A7EC 004C6821 */ addu $t5, $v0, $t4 +/* 0BF320 7F08A7F0 25AEFFD8 */ addiu $t6, $t5, -0x28 +/* 0BF324 7F08A7F4 AFAE004C */ sw $t6, 0x4c($sp) +.L7F08A7F8: +/* 0BF328 7F08A7F8 0FC26C54 */ jal get_cur_playernum +/* 0BF32C 7F08A7FC 00000000 */ nop +/* 0BF330 7F08A800 24010001 */ li $at, 1 +/* 0BF334 7F08A804 14410008 */ bne $v0, $at, .L7F08A828 +/* 0BF338 7F08A808 8FAF004C */ lw $t7, 0x4c($sp) +/* 0BF33C 7F08A80C 25F8FFF8 */ addiu $t8, $t7, -8 +/* 0BF340 7F08A810 10000005 */ b .L7F08A828 +/* 0BF344 7F08A814 AFB8004C */ sw $t8, 0x4c($sp) +.L7F08A818: +/* 0BF348 7F08A818 0C001149 */ jal viGetViewTop +/* 0BF34C 7F08A81C 00000000 */ nop +/* 0BF350 7F08A820 24590010 */ addiu $t9, $v0, 0x10 +/* 0BF354 7F08A824 AFB9004C */ sw $t9, 0x4c($sp) +.L7F08A828: +/* 0BF358 7F08A828 8FA8004C */ lw $t0, 0x4c($sp) +/* 0BF35C 7F08A82C 8FA90048 */ lw $t1, 0x48($sp) +/* 0BF360 7F08A830 27AB004C */ addiu $t3, $sp, 0x4c +/* 0BF364 7F08A834 AFAB0010 */ sw $t3, 0x10($sp) +/* 0BF368 7F08A838 01095023 */ subu $t2, $t0, $t1 +/* 0BF36C 7F08A83C AFAA0054 */ sw $t2, 0x54($sp) +/* 0BF370 7F08A840 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF374 7F08A844 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BF378 7F08A848 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BF37C 7F08A84C 0FC2B3D3 */ jal draw_blackbox_to_screen +/* 0BF380 7F08A850 27A70050 */ addiu $a3, $sp, 0x50 +/* 0BF384 7F08A854 0C001107 */ jal viGetX +/* 0BF388 7F08A858 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF38C 7F08A85C 0C00110B */ jal viGetY +/* 0BF390 7F08A860 A7A2003C */ sh $v0, 0x3c($sp) +/* 0BF394 7F08A864 3C0C8003 */ lui $t4, %hi(status_bar_text_buffer_index) +/* 0BF398 7F08A868 8D8C6898 */ lw $t4, %lo(status_bar_text_buffer_index)($t4) +/* 0BF39C 7F08A86C 3C0F8003 */ lui $t7, %hi(copy_2ndfonttable) +/* 0BF3A0 7F08A870 3C188003 */ lui $t8, %hi(copy_1stfonttable) +/* 0BF3A4 7F08A874 000C6880 */ sll $t5, $t4, 2 +/* 0BF3A8 7F08A878 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF3AC 7F08A87C 000D68C0 */ sll $t5, $t5, 3 +/* 0BF3B0 7F08A880 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3B4 7F08A884 8F1868A0 */ lw $t8, %lo(copy_1stfonttable)($t8) +/* 0BF3B8 7F08A888 8DEF68A4 */ lw $t7, %lo(copy_2ndfonttable)($t7) +/* 0BF3BC 7F08A88C 87A9003C */ lh $t1, 0x3c($sp) +/* 0BF3C0 7F08A890 000D6880 */ sll $t5, $t5, 2 +/* 0BF3C4 7F08A894 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079A28) +/* 0BF3C8 7F08A898 3C086464 */ lui $t0, (0x646464FF >> 16) # lui $t0, 0x6464 +/* 0BF3CC 7F08A89C 350864FF */ ori $t0, (0x646464FF & 0xFFFF) # ori $t0, $t0, 0x64ff +/* 0BF3D0 7F08A8A0 25CE9A28 */ addiu $t6, %lo(dword_CODE_bss_80079A28) # addiu $t6, $t6, -0x65d8 +/* 0BF3D4 7F08A8A4 2419FFFF */ li $t9, -1 +/* 0BF3D8 7F08A8A8 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF3DC 7F08A8AC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF3E0 7F08A8B0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF3E4 7F08A8B4 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF3E8 7F08A8B8 8FA40060 */ lw $a0, 0x60($sp) +/* 0BF3EC 7F08A8BC 27A50058 */ addiu $a1, $sp, 0x58 +/* 0BF3F0 7F08A8C0 27A60054 */ addiu $a2, $sp, 0x54 +/* 0BF3F4 7F08A8C4 AFA20024 */ sw $v0, 0x24($sp) +/* 0BF3F8 7F08A8C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF3FC 7F08A8CC AFA0002C */ sw $zero, 0x2c($sp) +/* 0BF400 7F08A8D0 AFB80014 */ sw $t8, 0x14($sp) +/* 0BF404 7F08A8D4 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF408 7F08A8D8 0FC2B9BB */ jal jp_text_write_stuff +/* 0BF40C 7F08A8DC AFA90020 */ sw $t1, 0x20($sp) +/* 0BF410 7F08A8E0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF414 7F08A8E4 00402025 */ move $a0, $v0 +/* 0BF418 7F08A8E8 AFA20060 */ sw $v0, 0x60($sp) +/* 0BF41C 7F08A8EC 8FBF0034 */ lw $ra, 0x34($sp) +.L7F08A8F0: +/* 0BF420 7F08A8F0 8FA20060 */ lw $v0, 0x60($sp) +/* 0BF424 7F08A8F4 27BD0060 */ addiu $sp, $sp, 0x60 +/* 0BF428 7F08A8F8 03E00008 */ jr $ra +/* 0BF42C 7F08A8FC 00000000 */ nop +) +#endif + + #endif @@ -30967,7 +38011,7 @@ glabel display_string_at_top_of_screen /* 0BF4E8 7F08A9B8 030FC023 */ subu $t8, $t8, $t7 /* 0BF4EC 7F08A9BC 03192021 */ addu $a0, $t8, $t9 /* 0BF4F0 7F08A9C0 AFA4001C */ sw $a0, 0x1c($sp) -/* 0BF4F4 7F08A9C4 0C0029E8 */ jal something_with_strings +/* 0BF4F4 7F08A9C4 0C0029E8 */ jal strncpy /* 0BF4F8 7F08A9C8 24060096 */ li $a2, 150 /* 0BF4FC 7F08A9CC 3C078003 */ lui $a3, %hi(display_upper_text_window) /* 0BF500 7F08A9D0 24E768AC */ addiu $a3, %lo(display_upper_text_window) # addiu $a3, $a3, 0x68ac @@ -31217,7 +38261,7 @@ glabel sub_GAME_7F08AAE8 .L7F08AC54: /* 0BF784 7F08AC54 AFA300E0 */ sw $v1, 0xe0($sp) /* 0BF788 7F08AC58 00684821 */ addu $t1, $v1, $t0 -/* 0BF78C 7F08AC5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF78C 7F08AC5C 0C001107 */ jal viGetX /* 0BF790 7F08AC60 AFA900DC */ sw $t1, 0xdc($sp) /* 0BF794 7F08AC64 8FA300E0 */ lw $v1, 0xe0($sp) /* 0BF798 7F08AC68 8FAA00DC */ lw $t2, 0xdc($sp) @@ -31229,9 +38273,9 @@ glabel sub_GAME_7F08AAE8 /* 0BF7B0 7F08AC80 2466FFFE */ addiu $a2, $v1, -2 /* 0BF7B4 7F08AC84 0FC2B405 */ jal microcode_constructor_related_to_menus /* 0BF7B8 7F08AC88 AFAA0010 */ sw $t2, 0x10($sp) -/* 0BF7BC 7F08AC8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF7BC 7F08AC8C 0C001107 */ jal viGetX /* 0BF7C0 7F08AC90 00408025 */ move $s0, $v0 -/* 0BF7C4 7F08AC94 0C00110B */ jal get_video2_settings_txtClipH +/* 0BF7C4 7F08AC94 0C00110B */ jal viGetY /* 0BF7C8 7F08AC98 A7A20048 */ sh $v0, 0x48($sp) /* 0BF7CC 7F08AC9C 3C0C8003 */ lui $t4, %hi(upper_text_buffer_index) /* 0BF7D0 7F08ACA0 8D8C68A8 */ lw $t4, %lo(upper_text_buffer_index)($t4) @@ -31369,7 +38413,7 @@ glabel sub_GAME_7F08AAE8 /* 0BF9DC 7F08AEAC AFA6007C */ sw $a2, 0x7c($sp) /* 0BF9E0 7F08AEB0 0FC2B366 */ jal microcode_constructor /* 0BF9E4 7F08AEB4 02002025 */ move $a0, $s0 -/* 0BF9E8 7F08AEB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BF9E8 7F08AEB8 0C001107 */ jal viGetX /* 0BF9EC 7F08AEBC 00408025 */ move $s0, $v0 /* 0BF9F0 7F08AEC0 8FB90074 */ lw $t9, 0x74($sp) /* 0BF9F4 7F08AEC4 24090064 */ li $t1, 100 @@ -31381,9 +38425,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFA0C 7F08AEDC 00002825 */ move $a1, $zero /* 0BFA10 7F08AEE0 0FC2B405 */ jal microcode_constructor_related_to_menus /* 0BFA14 7F08AEE4 00403825 */ move $a3, $v0 -/* 0BFA18 7F08AEE8 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA18 7F08AEE8 0C001107 */ jal viGetX /* 0BFA1C 7F08AEEC 00408025 */ move $s0, $v0 -/* 0BFA20 7F08AEF0 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA20 7F08AEF0 0C00110B */ jal viGetY /* 0BFA24 7F08AEF4 A7A20048 */ sh $v0, 0x48($sp) /* 0BFA28 7F08AEF8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) /* 0BFA2C 7F08AEFC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) @@ -31406,9 +38450,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFA70 7F08AF40 0C001145 */ jal viGetViewLeft /* 0BFA74 7F08AF44 00408025 */ move $s0, $v0 /* 0BFA78 7F08AF48 244C0057 */ addiu $t4, $v0, 0x57 -/* 0BFA7C 7F08AF4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFA7C 7F08AF4C 0C001107 */ jal viGetX /* 0BFA80 7F08AF50 AFAC0080 */ sw $t4, 0x80($sp) -/* 0BFA84 7F08AF54 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFA84 7F08AF54 0C00110B */ jal viGetY /* 0BFA88 7F08AF58 A7A20048 */ sh $v0, 0x48($sp) /* 0BFA8C 7F08AF5C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0BFA90 7F08AF60 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -31431,9 +38475,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFAD4 7F08AFA4 0C001145 */ jal viGetViewLeft /* 0BFAD8 7F08AFA8 00408025 */ move $s0, $v0 /* 0BFADC 7F08AFAC 2449008D */ addiu $t1, $v0, 0x8d -/* 0BFAE0 7F08AFB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFAE0 7F08AFB0 0C001107 */ jal viGetX /* 0BFAE4 7F08AFB4 AFA90080 */ sw $t1, 0x80($sp) -/* 0BFAE8 7F08AFB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFAE8 7F08AFB8 0C00110B */ jal viGetY /* 0BFAEC 7F08AFBC A7A20048 */ sh $v0, 0x48($sp) /* 0BFAF0 7F08AFC0 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) /* 0BFAF4 7F08AFC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) @@ -31456,9 +38500,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFB38 7F08B008 0C001145 */ jal viGetViewLeft /* 0BFB3C 7F08B00C 00408025 */ move $s0, $v0 /* 0BFB40 7F08B010 244C00C3 */ addiu $t4, $v0, 0xc3 -/* 0BFB44 7F08B014 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFB44 7F08B014 0C001107 */ jal viGetX /* 0BFB48 7F08B018 AFAC0080 */ sw $t4, 0x80($sp) -/* 0BFB4C 7F08B01C 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFB4C 7F08B01C 0C00110B */ jal viGetY /* 0BFB50 7F08B020 A7A20048 */ sh $v0, 0x48($sp) /* 0BFB54 7F08B024 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0BFB58 7F08B028 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -31481,9 +38525,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFB9C 7F08B06C 0C001145 */ jal viGetViewLeft /* 0BFBA0 7F08B070 00408025 */ move $s0, $v0 /* 0BFBA4 7F08B074 244900F9 */ addiu $t1, $v0, 0xf9 -/* 0BFBA8 7F08B078 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFBA8 7F08B078 0C001107 */ jal viGetX /* 0BFBAC 7F08B07C AFA90080 */ sw $t1, 0x80($sp) -/* 0BFBB0 7F08B080 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFBB0 7F08B080 0C00110B */ jal viGetY /* 0BFBB4 7F08B084 A7A20048 */ sh $v0, 0x48($sp) /* 0BFBB8 7F08B088 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) /* 0BFBBC 7F08B08C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) @@ -31619,7 +38663,7 @@ glabel sub_GAME_7F08AAE8 .Ljp7F08B430: /* 0BFFA0 7F08B430 AFA300E0 */ sw $v1, 0xe0($sp) /* 0BFFA4 7F08B434 00684821 */ addu $t1, $v1, $t0 -/* 0BFFA8 7F08B438 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFA8 7F08B438 0C001107 */ jal viGetX /* 0BFFAC 7F08B43C AFA900DC */ sw $t1, 0xdc($sp) /* 0BFFB0 7F08B440 8FA300E0 */ lw $v1, 0xe0($sp) /* 0BFFB4 7F08B444 8FAA00DC */ lw $t2, 0xdc($sp) @@ -31636,9 +38680,9 @@ glabel sub_GAME_7F08AAE8 /* 0BFFE0 7F08B470 00408025 */ move $s0, $v0 /* 0BFFE4 7F08B474 11800026 */ beqz $t4, .Ljp7F08B510 /* 0BFFE8 7F08B478 00000000 */ nop -/* 0BFFEC 7F08B47C 0C001107 */ jal get_video2_settings_txtClipW +/* 0BFFEC 7F08B47C 0C001107 */ jal viGetX /* 0BFFF0 7F08B480 00000000 */ nop -/* 0BFFF4 7F08B484 0C00110B */ jal get_video2_settings_txtClipH +/* 0BFFF4 7F08B484 0C00110B */ jal viGetY /* 0BFFF8 7F08B488 A7A20048 */ sh $v0, 0x48($sp) /* 0BFFFC 7F08B48C 3C0D8003 */ lui $t5, %hi(upper_text_buffer_index) # $t5, 0x8003 /* 0C0000 7F08B490 8DAD68E0 */ lw $t5, %lo(upper_text_buffer_index)($t5) @@ -31674,9 +38718,9 @@ glabel sub_GAME_7F08AAE8 /* 0C0078 7F08B508 10000022 */ b .Ljp7F08B594 /* 0C007C 7F08B50C 00408025 */ move $s0, $v0 .Ljp7F08B510: -/* 0C0080 7F08B510 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0080 7F08B510 0C001107 */ jal viGetX /* 0C0084 7F08B514 00000000 */ nop -/* 0C0088 7F08B518 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0088 7F08B518 0C00110B */ jal viGetY /* 0C008C 7F08B51C A7A20048 */ sh $v0, 0x48($sp) /* 0C0090 7F08B520 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) # $t3, 0x8003 /* 0C0094 7F08B524 8D6B68E0 */ lw $t3, %lo(upper_text_buffer_index)($t3) @@ -31816,7 +38860,7 @@ glabel sub_GAME_7F08AAE8 /* 0C02A4 7F08B734 AFA6007C */ sw $a2, 0x7c($sp) /* 0C02A8 7F08B738 0FC2B652 */ jal microcode_constructor /* 0C02AC 7F08B73C 02002025 */ move $a0, $s0 -/* 0C02B0 7F08B740 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02B0 7F08B740 0C001107 */ jal viGetX /* 0C02B4 7F08B744 00408025 */ move $s0, $v0 /* 0C02B8 7F08B748 8FB80074 */ lw $t8, 0x74($sp) /* 0C02BC 7F08B74C 24080064 */ li $t0, 100 @@ -31828,9 +38872,9 @@ glabel sub_GAME_7F08AAE8 /* 0C02D4 7F08B764 00002825 */ move $a1, $zero /* 0C02D8 7F08B768 0FC2B6F1 */ jal microcode_constructor_related_to_menus /* 0C02DC 7F08B76C 00403825 */ move $a3, $v0 -/* 0C02E0 7F08B770 0C001107 */ jal get_video2_settings_txtClipW +/* 0C02E0 7F08B770 0C001107 */ jal viGetX /* 0C02E4 7F08B774 00408025 */ move $s0, $v0 -/* 0C02E8 7F08B778 0C00110B */ jal get_video2_settings_txtClipH +/* 0C02E8 7F08B778 0C00110B */ jal viGetY /* 0C02EC 7F08B77C A7A20048 */ sh $v0, 0x48($sp) /* 0C02F0 7F08B780 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 /* 0C02F4 7F08B784 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -31853,9 +38897,9 @@ glabel sub_GAME_7F08AAE8 /* 0C0338 7F08B7C8 0C001145 */ jal viGetViewLeft /* 0C033C 7F08B7CC 00408025 */ move $s0, $v0 /* 0C0340 7F08B7D0 244B0057 */ addiu $t3, $v0, 0x57 -/* 0C0344 7F08B7D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0344 7F08B7D4 0C001107 */ jal viGetX /* 0C0348 7F08B7D8 AFAB0080 */ sw $t3, 0x80($sp) -/* 0C034C 7F08B7DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0C034C 7F08B7DC 0C00110B */ jal viGetY /* 0C0350 7F08B7E0 A7A20048 */ sh $v0, 0x48($sp) /* 0C0354 7F08B7E4 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 /* 0C0358 7F08B7E8 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -31878,9 +38922,9 @@ glabel sub_GAME_7F08AAE8 /* 0C039C 7F08B82C 0C001145 */ jal viGetViewLeft /* 0C03A0 7F08B830 00408025 */ move $s0, $v0 /* 0C03A4 7F08B834 2448008D */ addiu $t0, $v0, 0x8d -/* 0C03A8 7F08B838 0C001107 */ jal get_video2_settings_txtClipW +/* 0C03A8 7F08B838 0C001107 */ jal viGetX /* 0C03AC 7F08B83C AFA80080 */ sw $t0, 0x80($sp) -/* 0C03B0 7F08B840 0C00110B */ jal get_video2_settings_txtClipH +/* 0C03B0 7F08B840 0C00110B */ jal viGetY /* 0C03B4 7F08B844 A7A20048 */ sh $v0, 0x48($sp) /* 0C03B8 7F08B848 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 /* 0C03BC 7F08B84C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -31903,9 +38947,9 @@ glabel sub_GAME_7F08AAE8 /* 0C0400 7F08B890 0C001145 */ jal viGetViewLeft /* 0C0404 7F08B894 00408025 */ move $s0, $v0 /* 0C0408 7F08B898 244B00C3 */ addiu $t3, $v0, 0xc3 -/* 0C040C 7F08B89C 0C001107 */ jal get_video2_settings_txtClipW +/* 0C040C 7F08B89C 0C001107 */ jal viGetX /* 0C0410 7F08B8A0 AFAB0080 */ sw $t3, 0x80($sp) -/* 0C0414 7F08B8A4 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0414 7F08B8A4 0C00110B */ jal viGetY /* 0C0418 7F08B8A8 A7A20048 */ sh $v0, 0x48($sp) /* 0C041C 7F08B8AC 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 /* 0C0420 7F08B8B0 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -31928,9 +38972,9 @@ glabel sub_GAME_7F08AAE8 /* 0C0464 7F08B8F4 0C001145 */ jal viGetViewLeft /* 0C0468 7F08B8F8 00408025 */ move $s0, $v0 /* 0C046C 7F08B8FC 244800F9 */ addiu $t0, $v0, 0xf9 -/* 0C0470 7F08B900 0C001107 */ jal get_video2_settings_txtClipW +/* 0C0470 7F08B900 0C001107 */ jal viGetX /* 0C0474 7F08B904 AFA80080 */ sw $t0, 0x80($sp) -/* 0C0478 7F08B908 0C00110B */ jal get_video2_settings_txtClipH +/* 0C0478 7F08B908 0C00110B */ jal viGetY /* 0C047C 7F08B90C A7A20048 */ sh $v0, 0x48($sp) /* 0C0480 7F08B910 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) # $t1, 0x8004 /* 0C0484 7F08B914 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -31962,6 +39006,409 @@ glabel sub_GAME_7F08AAE8 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_800552BC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F08AAE8 +/* 0BF618 7F08AAE8 3C0E8003 */ lui $t6, %hi(D_800368B4) +/* 0BF61C 7F08AAEC 8DCE68B4 */ lw $t6, %lo(D_800368B4)($t6) +/* 0BF620 7F08AAF0 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 0BF624 7F08AAF4 AFB00038 */ sw $s0, 0x38($sp) +/* 0BF628 7F08AAF8 00808025 */ move $s0, $a0 +/* 0BF62C 7F08AAFC 15C00087 */ bnez $t6, .L7F08AD1C +/* 0BF630 7F08AB00 AFBF003C */ sw $ra, 0x3c($sp) +/* 0BF634 7F08AB04 3C0F8003 */ lui $t7, %hi(upper_text_window_timer) +/* 0BF638 7F08AB08 8DEF68B0 */ lw $t7, %lo(upper_text_window_timer)($t7) +/* 0BF63C 7F08AB0C 3C188003 */ lui $t8, %hi(upper_text_buffer_index) +/* 0BF640 7F08AB10 05E00082 */ bltz $t7, .L7F08AD1C +/* 0BF644 7F08AB14 00000000 */ nop +/* 0BF648 7F08AB18 8F1868A8 */ lw $t8, %lo(upper_text_buffer_index)($t8) +/* 0BF64C 7F08AB1C 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C70) +/* 0BF650 7F08AB20 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF654 7F08AB24 0018C880 */ sll $t9, $t8, 2 +/* 0BF658 7F08AB28 0338C821 */ addu $t9, $t9, $t8 +/* 0BF65C 7F08AB2C 0019C880 */ sll $t9, $t9, 2 +/* 0BF660 7F08AB30 0338C823 */ subu $t9, $t9, $t8 +/* 0BF664 7F08AB34 0019C8C0 */ sll $t9, $t9, 3 +/* 0BF668 7F08AB38 0338C823 */ subu $t9, $t9, $t8 +/* 0BF66C 7F08AB3C 01194021 */ addu $t0, $t0, $t9 +/* 0BF670 7F08AB40 91089C70 */ lbu $t0, %lo(dword_CODE_bss_80079C70)($t0) +/* 0BF674 7F08AB44 11000075 */ beqz $t0, .L7F08AD1C +/* 0BF678 7F08AB48 00000000 */ nop +/* 0BF67C 7F08AB4C 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF680 7F08AB50 8D2A29C4 */ lw $t2, 0x29c4($t1) +/* 0BF684 7F08AB54 15400071 */ bnez $t2, .L7F08AD1C +/* 0BF688 7F08AB58 00000000 */ nop +/* 0BF68C 7F08AB5C 0FC2B366 */ jal microcode_constructor +/* 0BF690 7F08AB60 00000000 */ nop +/* 0BF694 7F08AB64 3C0B8003 */ lui $t3, %hi(upper_text_buffer_index) +/* 0BF698 7F08AB68 8D6B68A8 */ lw $t3, %lo(upper_text_buffer_index)($t3) +/* 0BF69C 7F08AB6C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) +/* 0BF6A0 7F08AB70 8DCE0EB4 */ lw $t6, %lo(ptrFirstFontTableLarge)($t6) +/* 0BF6A4 7F08AB74 000B6080 */ sll $t4, $t3, 2 +/* 0BF6A8 7F08AB78 018B6021 */ addu $t4, $t4, $t3 +/* 0BF6AC 7F08AB7C 000C6080 */ sll $t4, $t4, 2 +/* 0BF6B0 7F08AB80 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6B4 7F08AB84 000C60C0 */ sll $t4, $t4, 3 +/* 0BF6B8 7F08AB88 3C0D8008 */ lui $t5, %hi(dword_CODE_bss_80079C70) +/* 0BF6BC 7F08AB8C 25AD9C70 */ addiu $t5, %lo(dword_CODE_bss_80079C70) # addiu $t5, $t5, -0x6390 +/* 0BF6C0 7F08AB90 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 0BF6C4 7F08AB94 018B6023 */ subu $t4, $t4, $t3 +/* 0BF6C8 7F08AB98 00408025 */ move $s0, $v0 +/* 0BF6CC 7F08AB9C AFA000D4 */ sw $zero, 0xd4($sp) +/* 0BF6D0 7F08ABA0 AFA000D8 */ sw $zero, 0xd8($sp) +/* 0BF6D4 7F08ABA4 018D3021 */ addu $a2, $t4, $t5 +/* 0BF6D8 7F08ABA8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 0BF6DC 7F08ABAC 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 0BF6E0 7F08ABB0 27A500D4 */ addiu $a1, $sp, 0xd4 +/* 0BF6E4 7F08ABB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0BF6E8 7F08ABB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0BF6EC 7F08ABBC AFAE0010 */ sw $t6, 0x10($sp) +/* 0BF6F0 7F08ABC0 3C0F8003 */ lui $t7, %hi(camera_8003642C) +/* 0BF6F4 7F08ABC4 8DEF642C */ lw $t7, %lo(camera_8003642C)($t7) +/* 0BF6F8 7F08ABC8 11E0001B */ beqz $t7, .L7F08AC38 +/* 0BF6FC 7F08ABCC 00000000 */ nop +/* 0BF700 7F08ABD0 0C001145 */ jal viGetViewLeft +/* 0BF704 7F08ABD4 00000000 */ nop +/* 0BF708 7F08ABD8 24580046 */ addiu $t8, $v0, 0x46 +/* 0BF70C 7F08ABDC 0C001149 */ jal viGetViewTop +/* 0BF710 7F08ABE0 AFB800E4 */ sw $t8, 0xe4($sp) +/* 0BF714 7F08ABE4 00401825 */ move $v1, $v0 +/* 0BF718 7F08ABE8 24630020 */ addiu $v1, $v1, 0x20 +/* 0BF71C 7F08ABEC 2404000B */ li $a0, 11 +/* 0BF720 7F08ABF0 0064001A */ div $zero, $v1, $a0 +/* 0BF724 7F08ABF4 14800002 */ bnez $a0, .L7F08AC00 +/* 0BF728 7F08ABF8 00000000 */ nop +/* 0BF72C 7F08ABFC 0007000D */ break 7 +.L7F08AC00: +/* 0BF730 7F08AC00 2401FFFF */ li $at, -1 +/* 0BF734 7F08AC04 14810004 */ bne $a0, $at, .L7F08AC18 +/* 0BF738 7F08AC08 3C018000 */ lui $at, 0x8000 +/* 0BF73C 7F08AC0C 14610002 */ bne $v1, $at, .L7F08AC18 +/* 0BF740 7F08AC10 00000000 */ nop +/* 0BF744 7F08AC14 0006000D */ break 6 +.L7F08AC18: +/* 0BF748 7F08AC18 00001812 */ mflo $v1 +/* 0BF74C 7F08AC1C 00000000 */ nop +/* 0BF750 7F08AC20 00000000 */ nop +/* 0BF754 7F08AC24 00640019 */ multu $v1, $a0 +/* 0BF758 7F08AC28 00001812 */ mflo $v1 +/* 0BF75C 7F08AC2C 2463FFFE */ addiu $v1, $v1, -2 +/* 0BF760 7F08AC30 10000008 */ b .L7F08AC54 +/* 0BF764 7F08AC34 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC38: +/* 0BF768 7F08AC38 0C001145 */ jal viGetViewLeft +/* 0BF76C 7F08AC3C 00000000 */ nop +/* 0BF770 7F08AC40 2459001E */ addiu $t9, $v0, 0x1e +/* 0BF774 7F08AC44 0C001149 */ jal viGetViewTop +/* 0BF778 7F08AC48 AFB900E4 */ sw $t9, 0xe4($sp) +/* 0BF77C 7F08AC4C 2443000D */ addiu $v1, $v0, 0xd +/* 0BF780 7F08AC50 8FA800D8 */ lw $t0, 0xd8($sp) +.L7F08AC54: +/* 0BF784 7F08AC54 AFA300E0 */ sw $v1, 0xe0($sp) +/* 0BF788 7F08AC58 00684821 */ addu $t1, $v1, $t0 +/* 0BF78C 7F08AC5C 0C001107 */ jal viGetX +/* 0BF790 7F08AC60 AFA900DC */ sw $t1, 0xdc($sp) +/* 0BF794 7F08AC64 8FA300E0 */ lw $v1, 0xe0($sp) +/* 0BF798 7F08AC68 8FAA00DC */ lw $t2, 0xdc($sp) +/* 0BF79C 7F08AC6C 240B0064 */ li $t3, 100 +/* 0BF7A0 7F08AC70 AFAB0014 */ sw $t3, 0x14($sp) +/* 0BF7A4 7F08AC74 02002025 */ move $a0, $s0 +/* 0BF7A8 7F08AC78 00002825 */ move $a1, $zero +/* 0BF7AC 7F08AC7C 00403825 */ move $a3, $v0 +/* 0BF7B0 7F08AC80 2466FFFE */ addiu $a2, $v1, -2 +/* 0BF7B4 7F08AC84 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BF7B8 7F08AC88 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BF7BC 7F08AC8C 0C001107 */ jal viGetX +/* 0BF7C0 7F08AC90 00408025 */ move $s0, $v0 +/* 0BF7C4 7F08AC94 0C00110B */ jal viGetY +/* 0BF7C8 7F08AC98 A7A20048 */ sh $v0, 0x48($sp) +/* 0BF7CC 7F08AC9C 3C0C8003 */ lui $t4, %hi(upper_text_buffer_index) +/* 0BF7D0 7F08ACA0 8D8C68A8 */ lw $t4, %lo(upper_text_buffer_index)($t4) +/* 0BF7D4 7F08ACA4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) +/* 0BF7D8 7F08ACA8 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) +/* 0BF7DC 7F08ACAC 000C6880 */ sll $t5, $t4, 2 +/* 0BF7E0 7F08ACB0 01AC6821 */ addu $t5, $t5, $t4 +/* 0BF7E4 7F08ACB4 000D6880 */ sll $t5, $t5, 2 +/* 0BF7E8 7F08ACB8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF7EC 7F08ACBC 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) +/* 0BF7F0 7F08ACC0 8DEF0EB8 */ lw $t7, %lo(ptrSecondFontTableLarge)($t7) +/* 0BF7F4 7F08ACC4 87A80048 */ lh $t0, 0x48($sp) +/* 0BF7F8 7F08ACC8 000D68C0 */ sll $t5, $t5, 3 +/* 0BF7FC 7F08ACCC 3C0E8008 */ lui $t6, %hi(dword_CODE_bss_80079C70) +/* 0BF800 7F08ACD0 25CE9C70 */ addiu $t6, %lo(dword_CODE_bss_80079C70) # addiu $t6, $t6, -0x6390 +/* 0BF804 7F08ACD4 2419FFFF */ li $t9, -1 +/* 0BF808 7F08ACD8 01AC6823 */ subu $t5, $t5, $t4 +/* 0BF80C 7F08ACDC 01AE3821 */ addu $a3, $t5, $t6 +/* 0BF810 7F08ACE0 AFB90018 */ sw $t9, 0x18($sp) +/* 0BF814 7F08ACE4 02002025 */ move $a0, $s0 +/* 0BF818 7F08ACE8 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 0BF81C 7F08ACEC 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 0BF820 7F08ACF0 AFA20020 */ sw $v0, 0x20($sp) +/* 0BF824 7F08ACF4 AFA00024 */ sw $zero, 0x24($sp) +/* 0BF828 7F08ACF8 AFA00028 */ sw $zero, 0x28($sp) +/* 0BF82C 7F08ACFC AFB80014 */ sw $t8, 0x14($sp) +/* 0BF830 7F08AD00 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BF834 7F08AD04 0FC2B6AF */ jal en_text_write_stuff +/* 0BF838 7F08AD08 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BF83C 7F08AD0C 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BF840 7F08AD10 00402025 */ move $a0, $v0 +/* 0BF844 7F08AD14 100000F1 */ b .L7F08B0DC +/* 0BF848 7F08AD18 00408025 */ move $s0, $v0 +.L7F08AD1C: +/* 0BF84C 7F08AD1C 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0BF850 7F08AD20 00000000 */ nop +/* 0BF854 7F08AD24 104000ED */ beqz $v0, .L7F08B0DC +/* 0BF858 7F08AD28 3C028008 */ lui $v0, %hi(pPlayer) +/* 0BF85C 7F08AD2C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0BF860 7F08AD30 C4400498 */ lwc1 $f0, 0x498($v0) +/* 0BF864 7F08AD34 C44E04A0 */ lwc1 $f14, 0x4a0($v0) +/* 0BF868 7F08AD38 0FC16A8C */ jal atan2f +/* 0BF86C 7F08AD3C 46000307 */ neg.s $f12, $f0 +/* 0BF870 7F08AD40 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 0BF874 7F08AD44 44812000 */ mtc1 $at, $f4 +/* 0BF878 7F08AD48 3C018005 */ lui $at, %hi(D_800552BC) +/* 0BF87C 7F08AD4C C42852BC */ lwc1 $f8, %lo(D_800552BC)($at) +/* 0BF880 7F08AD50 46040182 */ mul.s $f6, $f0, $f4 +/* 0BF884 7F08AD54 3C0C8003 */ lui $t4, %hi(D_800368B8) +/* 0BF888 7F08AD58 258C68B8 */ addiu $t4, %lo(D_800368B8) # addiu $t4, $t4, 0x68b8 +/* 0BF88C 7F08AD5C 27AB004C */ addiu $t3, $sp, 0x4c +/* 0BF890 7F08AD60 3C188008 */ lui $t8, %hi(pPlayer) +/* 0BF894 7F08AD64 46083283 */ div.s $f10, $f6, $f8 +/* 0BF898 7F08AD68 4600540D */ trunc.w.s $f16, $f10 +/* 0BF89C 7F08AD6C 440A8000 */ mfc1 $t2, $f16 +/* 0BF8A0 7F08AD70 00000000 */ nop +/* 0BF8A4 7F08AD74 AFAA0068 */ sw $t2, 0x68($sp) +/* 0BF8A8 7F08AD78 8D810000 */ lw $at, ($t4) +/* 0BF8AC 7F08AD7C 8D8F0004 */ lw $t7, 4($t4) +/* 0BF8B0 7F08AD80 AD610000 */ sw $at, ($t3) +/* 0BF8B4 7F08AD84 8D810008 */ lw $at, 8($t4) +/* 0BF8B8 7F08AD88 AD6F0004 */ sw $t7, 4($t3) +/* 0BF8BC 7F08AD8C 8D8F000C */ lw $t7, 0xc($t4) +/* 0BF8C0 7F08AD90 AD610008 */ sw $at, 8($t3) +/* 0BF8C4 7F08AD94 8D810010 */ lw $at, 0x10($t4) +/* 0BF8C8 7F08AD98 AD6F000C */ sw $t7, 0xc($t3) +/* 0BF8CC 7F08AD9C 8D8F0014 */ lw $t7, 0x14($t4) +/* 0BF8D0 7F08ADA0 AD610010 */ sw $at, 0x10($t3) +/* 0BF8D4 7F08ADA4 9981001A */ lwr $at, 0x1a($t4) +/* 0BF8D8 7F08ADA8 AD6F0014 */ sw $t7, 0x14($t3) +/* 0BF8DC 7F08ADAC B961001A */ swr $at, 0x1a($t3) +/* 0BF8E0 7F08ADB0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0BF8E4 7F08ADB4 8F190488 */ lw $t9, 0x488($t8) +/* 0BF8E8 7F08ADB8 0FC2D778 */ jal sub_GAME_7F0B5DE0 +/* 0BF8EC 7F08ADBC 93240003 */ lbu $a0, 3($t9) +/* 0BF8F0 7F08ADC0 3C058005 */ lui $a1, %hi(a8s) +/* 0BF8F4 7F08ADC4 24A54FC0 */ addiu $a1, %lo(a8s) # addiu $a1, $a1, 0x4fc0 +/* 0BF8F8 7F08ADC8 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0BF8FC 7F08ADCC 0C002B25 */ jal sprintf +/* 0BF900 7F08ADD0 00403025 */ move $a2, $v0 +/* 0BF904 7F08ADD4 3C088008 */ lui $t0, %hi(pPlayer) +/* 0BF908 7F08ADD8 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0BF90C 7F08ADDC 3C058005 */ lui $a1, %hi(aX4_0f) +/* 0BF910 7F08ADE0 24A54FC4 */ addiu $a1, %lo(aX4_0f) # addiu $a1, $a1, 0x4fc4 +/* 0BF914 7F08ADE4 C512048C */ lwc1 $f18, 0x48c($t0) +/* 0BF918 7F08ADE8 27A400B4 */ addiu $a0, $sp, 0xb4 +/* 0BF91C 7F08ADEC 46009121 */ cvt.d.s $f4, $f18 +/* 0BF920 7F08ADF0 44072000 */ mfc1 $a3, $f4 +/* 0BF924 7F08ADF4 44062800 */ mfc1 $a2, $f5 +/* 0BF928 7F08ADF8 0C002B25 */ jal sprintf +/* 0BF92C 7F08ADFC 00000000 */ nop +/* 0BF930 7F08AE00 3C098008 */ lui $t1, %hi(pPlayer) +/* 0BF934 7F08AE04 8D29A0B0 */ lw $t1, %lo(pPlayer)($t1) +/* 0BF938 7F08AE08 3C058005 */ lui $a1, %hi(aY4_0f) +/* 0BF93C 7F08AE0C 24A54FCC */ addiu $a1, %lo(aY4_0f) # addiu $a1, $a1, 0x4fcc +/* 0BF940 7F08AE10 C5260490 */ lwc1 $f6, 0x490($t1) +/* 0BF944 7F08AE14 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0BF948 7F08AE18 46003221 */ cvt.d.s $f8, $f6 +/* 0BF94C 7F08AE1C 44074000 */ mfc1 $a3, $f8 +/* 0BF950 7F08AE20 44064800 */ mfc1 $a2, $f9 +/* 0BF954 7F08AE24 0C002B25 */ jal sprintf +/* 0BF958 7F08AE28 00000000 */ nop +/* 0BF95C 7F08AE2C 3C0A8008 */ lui $t2, %hi(pPlayer) +/* 0BF960 7F08AE30 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) +/* 0BF964 7F08AE34 3C058005 */ lui $a1, %hi(aZ4_0f) +/* 0BF968 7F08AE38 24A54FD4 */ addiu $a1, %lo(aZ4_0f) # addiu $a1, $a1, 0x4fd4 +/* 0BF96C 7F08AE3C C54A0494 */ lwc1 $f10, 0x494($t2) +/* 0BF970 7F08AE40 27A40094 */ addiu $a0, $sp, 0x94 +/* 0BF974 7F08AE44 46005421 */ cvt.d.s $f16, $f10 +/* 0BF978 7F08AE48 44078000 */ mfc1 $a3, $f16 +/* 0BF97C 7F08AE4C 44068800 */ mfc1 $a2, $f17 +/* 0BF980 7F08AE50 0C002B25 */ jal sprintf +/* 0BF984 7F08AE54 00000000 */ nop +/* 0BF988 7F08AE58 8FA70068 */ lw $a3, 0x68($sp) +/* 0BF98C 7F08AE5C 2401002D */ li $at, 45 +/* 0BF990 7F08AE60 3C058005 */ lui $a1, %hi(aS3d) +/* 0BF994 7F08AE64 24EE0016 */ addiu $t6, $a3, 0x16 +/* 0BF998 7F08AE68 01C1001A */ div $zero, $t6, $at +/* 0BF99C 7F08AE6C 00006812 */ mflo $t5 +/* 0BF9A0 7F08AE70 000D5880 */ sll $t3, $t5, 2 +/* 0BF9A4 7F08AE74 016D5823 */ subu $t3, $t3, $t5 +/* 0BF9A8 7F08AE78 27AC004C */ addiu $t4, $sp, 0x4c +/* 0BF9AC 7F08AE7C 016C3021 */ addu $a2, $t3, $t4 +/* 0BF9B0 7F08AE80 24A54FDC */ addiu $a1, %lo(aS3d) # addiu $a1, $a1, 0x4fdc +/* 0BF9B4 7F08AE84 0C002B25 */ jal sprintf +/* 0BF9B8 7F08AE88 27A40084 */ addiu $a0, $sp, 0x84 +/* 0BF9BC 7F08AE8C 0C001145 */ jal viGetViewLeft +/* 0BF9C0 7F08AE90 00000000 */ nop +/* 0BF9C4 7F08AE94 244F0011 */ addiu $t7, $v0, 0x11 +/* 0BF9C8 7F08AE98 0C001149 */ jal viGetViewTop +/* 0BF9CC 7F08AE9C AFAF0080 */ sw $t7, 0x80($sp) +/* 0BF9D0 7F08AEA0 24460011 */ addiu $a2, $v0, 0x11 +/* 0BF9D4 7F08AEA4 24D8000A */ addiu $t8, $a2, 0xa +/* 0BF9D8 7F08AEA8 AFB80074 */ sw $t8, 0x74($sp) +/* 0BF9DC 7F08AEAC AFA6007C */ sw $a2, 0x7c($sp) +/* 0BF9E0 7F08AEB0 0FC2B366 */ jal microcode_constructor +/* 0BF9E4 7F08AEB4 02002025 */ move $a0, $s0 +/* 0BF9E8 7F08AEB8 0C001107 */ jal viGetX +/* 0BF9EC 7F08AEBC 00408025 */ move $s0, $v0 +/* 0BF9F0 7F08AEC0 8FB90074 */ lw $t9, 0x74($sp) +/* 0BF9F4 7F08AEC4 24090064 */ li $t1, 100 +/* 0BF9F8 7F08AEC8 AFA90014 */ sw $t1, 0x14($sp) +/* 0BF9FC 7F08AECC 27280001 */ addiu $t0, $t9, 1 +/* 0BFA00 7F08AED0 AFA80010 */ sw $t0, 0x10($sp) +/* 0BFA04 7F08AED4 8FA6007C */ lw $a2, 0x7c($sp) +/* 0BFA08 7F08AED8 02002025 */ move $a0, $s0 +/* 0BFA0C 7F08AEDC 00002825 */ move $a1, $zero +/* 0BFA10 7F08AEE0 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0BFA14 7F08AEE4 00403825 */ move $a3, $v0 +/* 0BFA18 7F08AEE8 0C001107 */ jal viGetX +/* 0BFA1C 7F08AEEC 00408025 */ move $s0, $v0 +/* 0BFA20 7F08AEF0 0C00110B */ jal viGetY +/* 0BFA24 7F08AEF4 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA28 7F08AEF8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFA2C 7F08AEFC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFA30 7F08AF00 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFA34 7F08AF04 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFA38 7F08AF08 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFA3C 7F08AF0C 240DFFFF */ li $t5, -1 +/* 0BFA40 7F08AF10 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFA44 7F08AF14 02002025 */ move $a0, $s0 +/* 0BFA48 7F08AF18 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFA4C 7F08AF1C 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFA50 7F08AF20 27A700C4 */ addiu $a3, $sp, 0xc4 +/* 0BFA54 7F08AF24 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFA58 7F08AF28 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFA5C 7F08AF2C AFA00028 */ sw $zero, 0x28($sp) +/* 0BFA60 7F08AF30 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFA64 7F08AF34 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFA68 7F08AF38 0FC2B6AF */ jal en_text_write_stuff +/* 0BFA6C 7F08AF3C AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFA70 7F08AF40 0C001145 */ jal viGetViewLeft +/* 0BFA74 7F08AF44 00408025 */ move $s0, $v0 +/* 0BFA78 7F08AF48 244C0057 */ addiu $t4, $v0, 0x57 +/* 0BFA7C 7F08AF4C 0C001107 */ jal viGetX +/* 0BFA80 7F08AF50 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFA84 7F08AF54 0C00110B */ jal viGetY +/* 0BFA88 7F08AF58 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFA8C 7F08AF5C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFA90 7F08AF60 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFA94 7F08AF64 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFA98 7F08AF68 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFA9C 7F08AF6C 87A80048 */ lh $t0, 0x48($sp) +/* 0BFAA0 7F08AF70 2419FFFF */ li $t9, -1 +/* 0BFAA4 7F08AF74 AFB90018 */ sw $t9, 0x18($sp) +/* 0BFAA8 7F08AF78 02002025 */ move $a0, $s0 +/* 0BFAAC 7F08AF7C 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFAB0 7F08AF80 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFAB4 7F08AF84 27A700B4 */ addiu $a3, $sp, 0xb4 +/* 0BFAB8 7F08AF88 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFABC 7F08AF8C AFA00024 */ sw $zero, 0x24($sp) +/* 0BFAC0 7F08AF90 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFAC4 7F08AF94 AFB80014 */ sw $t8, 0x14($sp) +/* 0BFAC8 7F08AF98 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFACC 7F08AF9C 0FC2B6AF */ jal en_text_write_stuff +/* 0BFAD0 7F08AFA0 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFAD4 7F08AFA4 0C001145 */ jal viGetViewLeft +/* 0BFAD8 7F08AFA8 00408025 */ move $s0, $v0 +/* 0BFADC 7F08AFAC 2449008D */ addiu $t1, $v0, 0x8d +/* 0BFAE0 7F08AFB0 0C001107 */ jal viGetX +/* 0BFAE4 7F08AFB4 AFA90080 */ sw $t1, 0x80($sp) +/* 0BFAE8 7F08AFB8 0C00110B */ jal viGetY +/* 0BFAEC 7F08AFBC A7A20048 */ sh $v0, 0x48($sp) +/* 0BFAF0 7F08AFC0 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFAF4 7F08AFC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFAF8 7F08AFC8 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFAFC 7F08AFCC 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFB00 7F08AFD0 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFB04 7F08AFD4 240DFFFF */ li $t5, -1 +/* 0BFB08 7F08AFD8 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFB0C 7F08AFDC 02002025 */ move $a0, $s0 +/* 0BFB10 7F08AFE0 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB14 7F08AFE4 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB18 7F08AFE8 27A700A4 */ addiu $a3, $sp, 0xa4 +/* 0BFB1C 7F08AFEC AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB20 7F08AFF0 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB24 7F08AFF4 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB28 7F08AFF8 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFB2C 7F08AFFC AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFB30 7F08B000 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB34 7F08B004 AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFB38 7F08B008 0C001145 */ jal viGetViewLeft +/* 0BFB3C 7F08B00C 00408025 */ move $s0, $v0 +/* 0BFB40 7F08B010 244C00C3 */ addiu $t4, $v0, 0xc3 +/* 0BFB44 7F08B014 0C001107 */ jal viGetX +/* 0BFB48 7F08B018 AFAC0080 */ sw $t4, 0x80($sp) +/* 0BFB4C 7F08B01C 0C00110B */ jal viGetY +/* 0BFB50 7F08B020 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFB54 7F08B024 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0BFB58 7F08B028 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0BFB5C 7F08B02C 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0BFB60 7F08B030 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0BFB64 7F08B034 87A80048 */ lh $t0, 0x48($sp) +/* 0BFB68 7F08B038 2419FFFF */ li $t9, -1 +/* 0BFB6C 7F08B03C AFB90018 */ sw $t9, 0x18($sp) +/* 0BFB70 7F08B040 02002025 */ move $a0, $s0 +/* 0BFB74 7F08B044 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFB78 7F08B048 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFB7C 7F08B04C 27A70094 */ addiu $a3, $sp, 0x94 +/* 0BFB80 7F08B050 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFB84 7F08B054 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFB88 7F08B058 AFA00028 */ sw $zero, 0x28($sp) +/* 0BFB8C 7F08B05C AFB80014 */ sw $t8, 0x14($sp) +/* 0BFB90 7F08B060 AFAF0010 */ sw $t7, 0x10($sp) +/* 0BFB94 7F08B064 0FC2B6AF */ jal en_text_write_stuff +/* 0BFB98 7F08B068 AFA8001C */ sw $t0, 0x1c($sp) +/* 0BFB9C 7F08B06C 0C001145 */ jal viGetViewLeft +/* 0BFBA0 7F08B070 00408025 */ move $s0, $v0 +/* 0BFBA4 7F08B074 244900F9 */ addiu $t1, $v0, 0xf9 +/* 0BFBA8 7F08B078 0C001107 */ jal viGetX +/* 0BFBAC 7F08B07C AFA90080 */ sw $t1, 0x80($sp) +/* 0BFBB0 7F08B080 0C00110B */ jal viGetY +/* 0BFBB4 7F08B084 A7A20048 */ sh $v0, 0x48($sp) +/* 0BFBB8 7F08B088 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0BFBBC 7F08B08C 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0BFBC0 7F08B090 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0BFBC4 7F08B094 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0BFBC8 7F08B098 87AB0048 */ lh $t3, 0x48($sp) +/* 0BFBCC 7F08B09C 240DFFFF */ li $t5, -1 +/* 0BFBD0 7F08B0A0 AFAD0018 */ sw $t5, 0x18($sp) +/* 0BFBD4 7F08B0A4 02002025 */ move $a0, $s0 +/* 0BFBD8 7F08B0A8 27A50080 */ addiu $a1, $sp, 0x80 +/* 0BFBDC 7F08B0AC 27A6007C */ addiu $a2, $sp, 0x7c +/* 0BFBE0 7F08B0B0 27A70084 */ addiu $a3, $sp, 0x84 +/* 0BFBE4 7F08B0B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0BFBE8 7F08B0B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0BFBEC 7F08B0BC AFA00028 */ sw $zero, 0x28($sp) +/* 0BFBF0 7F08B0C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0BFBF4 7F08B0C4 AFAA0010 */ sw $t2, 0x10($sp) +/* 0BFBF8 7F08B0C8 0FC2B6AF */ jal en_text_write_stuff +/* 0BFBFC 7F08B0CC AFAB001C */ sw $t3, 0x1c($sp) +/* 0BFC00 7F08B0D0 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0BFC04 7F08B0D4 00402025 */ move $a0, $v0 +/* 0BFC08 7F08B0D8 00408025 */ move $s0, $v0 +.L7F08B0DC: +/* 0BFC0C 7F08B0DC 8FBF003C */ lw $ra, 0x3c($sp) +/* 0BFC10 7F08B0E0 02001025 */ move $v0, $s0 +/* 0BFC14 7F08B0E4 8FB00038 */ lw $s0, 0x38($sp) +/* 0BFC18 7F08B0E8 03E00008 */ jr $ra +/* 0BFC1C 7F08B0EC 27BD00E8 */ addiu $sp, $sp, 0xe8 +) +#endif + + #endif @@ -32201,7 +39648,7 @@ glabel sub_GAME_7F08B0F0 /* 0BFF40 7F08B410 10000017 */ b .L7F08B470 /* 0BFF44 7F08B414 AFA6009C */ sw $a2, 0x9c($sp) .L7F08B418: -/* 0BFF48 7F08B418 0C002914 */ jal get_random_value +/* 0BFF48 7F08B418 0C002914 */ jal randomGetNext /* 0BFF4C 7F08B41C E7A20094 */ swc1 $f2, 0x94($sp) /* 0BFF50 7F08B420 3C0C8003 */ lui $t4, %hi(D_8003650C) /* 0BFF54 7F08B424 8D8C650C */ lw $t4, %lo(D_8003650C)($t4) diff --git a/src/game/bond.h b/src/game/bond.h index e4ffb08..2d9e4bb 100644 --- a/src/game/bond.h +++ b/src/game/bond.h @@ -782,10 +782,27 @@ struct player s32 field_7C8; s32 field_7CC; Vp viewports[2]; + + /** + * Offset 0x7f0. + */ s16 viewx; + + /** + * Offset 0x7f2. + */ s16 viewy; + + /** + * Offset 0x7f4. + */ s16 viewleft; + + /** + * Offset 0x7f6. + */ s16 viewtop; + s32 hand_invisible[2]; s32 hand_item[2]; u8 *ptr_hand_weapon_buffer[2]; @@ -921,10 +938,9 @@ struct player s32 ammo_total_unknown2; s32 ammo_total_tank; s32 ammo_total_mp_token; - s32 bloodcnt; - s32 field_11AC; - s32 field_11B0; - s32 field_11B4; + u8 *field_11A8; + u8 *field_11AC; + u8 *field_11B0[2]; s32 field_11B8; f32 zoomintime; f32 zoomintimemax; diff --git a/src/game/bondinv.c b/src/game/bondinv.c index c9a9cfd..631d5a5 100644 --- a/src/game/bondinv.c +++ b/src/game/bondinv.c @@ -1036,6 +1036,204 @@ glabel sub_GAME_7F08C86C ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08C86C +/* 0C139C 7F08C86C 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C13A0 7F08C870 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C13A4 7F08C874 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C13A8 7F08C878 AFBF0024 */ sw $ra, 0x24($sp) +/* 0C13AC 7F08C87C AFB30020 */ sw $s3, 0x20($sp) +/* 0C13B0 7F08C880 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C13B4 7F08C884 AFB10018 */ sw $s1, 0x18($sp) +/* 0C13B8 7F08C888 AFB00014 */ sw $s0, 0x14($sp) +/* 0C13BC 7F08C88C AFA40028 */ sw $a0, 0x28($sp) +/* 0C13C0 7F08C890 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C13C4 7F08C894 8C7011E0 */ lw $s0, 0x11e0($v1) +/* 0C13C8 7F08C898 00C09025 */ move $s2, $a2 +/* 0C13CC 7F08C89C 8C910000 */ lw $s1, ($a0) +/* 0C13D0 7F08C8A0 1200003D */ beqz $s0, .L7F08C998 +/* 0C13D4 7F08C8A4 8CB30000 */ lw $s3, ($a1) +/* 0C13D8 7F08C8A8 8E020000 */ lw $v0, ($s0) +.L7F08C8AC: +/* 0C13DC 7F08C8AC 24010001 */ li $at, 1 +/* 0C13E0 7F08C8B0 54410013 */ bnel $v0, $at, .L7F08C900 +/* 0C13E4 7F08C8B4 24010003 */ li $at, 3 +/* 0C13E8 7F08C8B8 8E040004 */ lw $a0, 4($s0) +/* 0C13EC 7F08C8BC 28810021 */ slti $at, $a0, 0x21 +/* 0C13F0 7F08C8C0 10200029 */ beqz $at, .L7F08C968 +/* 0C13F4 7F08C8C4 0224082A */ slt $at, $s1, $a0 +/* 0C13F8 7F08C8C8 10200027 */ beqz $at, .L7F08C968 +/* 0C13FC 7F08C8CC 00000000 */ nop +/* 0C1400 7F08C8D0 52400008 */ beql $s2, $zero, .L7F08C8F4 +/* 0C1404 7F08C8D4 00808825 */ move $s1, $a0 +/* 0C1408 7F08C8D8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C140C 7F08C8DC 00000000 */ nop +/* 0C1410 7F08C8E0 10400021 */ beqz $v0, .L7F08C968 +/* 0C1414 7F08C8E4 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1418 7F08C8E8 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C141C 7F08C8EC 8E040004 */ lw $a0, 4($s0) +/* 0C1420 7F08C8F0 00808825 */ move $s1, $a0 +.L7F08C8F4: +/* 0C1424 7F08C8F4 10000028 */ b .L7F08C998 +/* 0C1428 7F08C8F8 00009825 */ move $s3, $zero +/* 0C142C 7F08C8FC 24010003 */ li $at, 3 +.L7F08C900: +/* 0C1430 7F08C900 14410019 */ bne $v0, $at, .L7F08C968 +/* 0C1434 7F08C904 00000000 */ nop +/* 0C1438 7F08C908 8E040004 */ lw $a0, 4($s0) +/* 0C143C 7F08C90C 0224082A */ slt $at, $s1, $a0 +/* 0C1440 7F08C910 14200007 */ bnez $at, .L7F08C930 +/* 0C1444 7F08C914 00000000 */ nop +/* 0C1448 7F08C918 16240013 */ bne $s1, $a0, .L7F08C968 +/* 0C144C 7F08C91C 00000000 */ nop +/* 0C1450 7F08C920 8E180008 */ lw $t8, 8($s0) +/* 0C1454 7F08C924 0278082A */ slt $at, $s3, $t8 +/* 0C1458 7F08C928 1020000F */ beqz $at, .L7F08C968 +/* 0C145C 7F08C92C 00000000 */ nop +.L7F08C930: +/* 0C1460 7F08C930 12400008 */ beqz $s2, .L7F08C954 +/* 0C1464 7F08C934 00000000 */ nop +/* 0C1468 7F08C938 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C146C 7F08C93C 00000000 */ nop +/* 0C1470 7F08C940 14400004 */ bnez $v0, .L7F08C954 +/* 0C1474 7F08C944 00000000 */ nop +/* 0C1478 7F08C948 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C147C 7F08C94C 8E040008 */ lw $a0, 8($s0) +/* 0C1480 7F08C950 10400005 */ beqz $v0, .L7F08C968 +.L7F08C954: +/* 0C1484 7F08C954 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1488 7F08C958 8E110004 */ lw $s1, 4($s0) +/* 0C148C 7F08C95C 8E130008 */ lw $s3, 8($s0) +/* 0C1490 7F08C960 1000000D */ b .L7F08C998 +/* 0C1494 7F08C964 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08C968: +/* 0C1498 7F08C968 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C149C 7F08C96C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C14A0 7F08C970 8E10000C */ lw $s0, 0xc($s0) +/* 0C14A4 7F08C974 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C14A8 7F08C978 16190005 */ bne $s0, $t9, .L7F08C990 +/* 0C14AC 7F08C97C 00000000 */ nop +/* 0C14B0 7F08C980 56400006 */ bnezl $s2, .L7F08C99C +/* 0C14B4 7F08C984 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C14B8 7F08C988 2411FFFF */ li $s1, -1 +/* 0C14BC 7F08C98C 2413FFFF */ li $s3, -1 +.L7F08C990: +/* 0C14C0 7F08C990 5600FFC6 */ bnezl $s0, .L7F08C8AC +/* 0C14C4 7F08C994 8E020000 */ lw $v0, ($s0) +.L7F08C998: +/* 0C14C8 7F08C998 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08C99C: +/* 0C14CC 7F08C99C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C14D0 7F08C9A0 51000051 */ beql $t0, $zero, .L7F08CAE8 +/* 0C14D4 7F08C9A4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C14D8 7F08C9A8 0FC26919 */ jal getPlayerCount +/* 0C14DC 7F08C9AC 8D300000 */ lw $s0, ($t1) +/* 0C14E0 7F08C9B0 24010001 */ li $at, 1 +/* 0C14E4 7F08C9B4 5441001E */ bnel $v0, $at, .L7F08CA30 +/* 0C14E8 7F08C9B8 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C14EC 7F08C9BC 8FAA0028 */ lw $t2, 0x28($sp) +/* 0C14F0 7F08C9C0 3C050010 */ lui $a1, 0x10 +/* 0C14F4 7F08C9C4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C14F8 7F08C9C8 8D440000 */ lw $a0, ($t2) +/* 0C14FC 7F08C9CC 50400018 */ beql $v0, $zero, .L7F08CA30 +/* 0C1500 7F08C9D0 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1504 7F08C9D4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C1508 7F08C9D8 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C150C 7F08C9DC 8D640000 */ lw $a0, ($t3) +/* 0C1510 7F08C9E0 8D8D0000 */ lw $t5, ($t4) +/* 0C1514 7F08C9E4 01A4082A */ slt $at, $t5, $a0 +/* 0C1518 7F08C9E8 50200011 */ beql $at, $zero, .L7F08CA30 +/* 0C151C 7F08C9EC 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1520 7F08C9F0 12400007 */ beqz $s2, .L7F08CA10 +/* 0C1524 7F08C9F4 00000000 */ nop +/* 0C1528 7F08C9F8 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C152C 7F08C9FC 00000000 */ nop +/* 0C1530 7F08CA00 5040000B */ beql $v0, $zero, .L7F08CA30 +/* 0C1534 7F08CA04 8FAF0028 */ lw $t7, 0x28($sp) +/* 0C1538 7F08CA08 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C153C 7F08CA0C 8DC40000 */ lw $a0, ($t6) +.L7F08CA10: +/* 0C1540 7F08CA10 16240003 */ bne $s1, $a0, .L7F08CA20 +/* 0C1544 7F08CA14 0093082A */ slt $at, $a0, $s3 +/* 0C1548 7F08CA18 50200005 */ beql $at, $zero, .L7F08CA30 +/* 0C154C 7F08CA1C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA20: +/* 0C1550 7F08CA20 00808825 */ move $s1, $a0 +/* 0C1554 7F08CA24 1000002F */ b .L7F08CAE4 +/* 0C1558 7F08CA28 00809825 */ move $s3, $a0 +/* 0C155C 7F08CA2C 8FAF0028 */ lw $t7, 0x28($sp) +.L7F08CA30: +/* 0C1560 7F08CA30 24030021 */ li $v1, 33 +/* 0C1564 7F08CA34 8DF80000 */ lw $t8, ($t7) +/* 0C1568 7F08CA38 16380005 */ bne $s1, $t8, .L7F08CA50 +/* 0C156C 7F08CA3C 00000000 */ nop +/* 0C1570 7F08CA40 8FB9002C */ lw $t9, 0x2c($sp) +/* 0C1574 7F08CA44 8F280000 */ lw $t0, ($t9) +/* 0C1578 7F08CA48 56680027 */ bnel $s3, $t0, .L7F08CAE8 +/* 0C157C 7F08CA4C 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CA50: +/* 0C1580 7F08CA50 26090001 */ addiu $t1, $s0, 1 +.L7F08CA54: +/* 0C1584 7F08CA54 0123001A */ div $zero, $t1, $v1 +/* 0C1588 7F08CA58 00008010 */ mfhi $s0 +/* 0C158C 7F08CA5C 260A0001 */ addiu $t2, $s0, 1 +/* 0C1590 7F08CA60 14600002 */ bnez $v1, .L7F08CA6C +/* 0C1594 7F08CA64 00000000 */ nop +/* 0C1598 7F08CA68 0007000D */ break 7 +.L7F08CA6C: +/* 0C159C 7F08CA6C 2401FFFF */ li $at, -1 +/* 0C15A0 7F08CA70 14610004 */ bne $v1, $at, .L7F08CA84 +/* 0C15A4 7F08CA74 3C018000 */ lui $at, 0x8000 +/* 0C15A8 7F08CA78 15210002 */ bne $t1, $at, .L7F08CA84 +/* 0C15AC 7F08CA7C 00000000 */ nop +/* 0C15B0 7F08CA80 0006000D */ break 6 +.L7F08CA84: +/* 0C15B4 7F08CA84 1600000C */ bnez $s0, .L7F08CAB8 +/* 0C15B8 7F08CA88 00000000 */ nop +/* 0C15BC 7F08CA8C 0143001A */ div $zero, $t2, $v1 +/* 0C15C0 7F08CA90 00008010 */ mfhi $s0 +/* 0C15C4 7F08CA94 14600002 */ bnez $v1, .L7F08CAA0 +/* 0C15C8 7F08CA98 00000000 */ nop +/* 0C15CC 7F08CA9C 0007000D */ break 7 +.L7F08CAA0: +/* 0C15D0 7F08CAA0 2401FFFF */ li $at, -1 +/* 0C15D4 7F08CAA4 14610004 */ bne $v1, $at, .L7F08CAB8 +/* 0C15D8 7F08CAA8 3C018000 */ lui $at, 0x8000 +/* 0C15DC 7F08CAAC 15410002 */ bne $t2, $at, .L7F08CAB8 +/* 0C15E0 7F08CAB0 00000000 */ nop +/* 0C15E4 7F08CAB4 0006000D */ break 6 +.L7F08CAB8: +/* 0C15E8 7F08CAB8 52400006 */ beql $s2, $zero, .L7F08CAD4 +/* 0C15EC 7F08CABC 02008825 */ move $s1, $s0 +/* 0C15F0 7F08CAC0 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C15F4 7F08CAC4 02002025 */ move $a0, $s0 +/* 0C15F8 7F08CAC8 10400004 */ beqz $v0, .L7F08CADC +/* 0C15FC 7F08CACC 24030021 */ li $v1, 33 +/* 0C1600 7F08CAD0 02008825 */ move $s1, $s0 +.L7F08CAD4: +/* 0C1604 7F08CAD4 10000003 */ b .L7F08CAE4 +/* 0C1608 7F08CAD8 00009825 */ move $s3, $zero +.L7F08CADC: +/* 0C160C 7F08CADC 5611FFDD */ bnel $s0, $s1, .L7F08CA54 +/* 0C1610 7F08CAE0 26090001 */ addiu $t1, $s0, 1 +.L7F08CAE4: +/* 0C1614 7F08CAE4 8FAB0028 */ lw $t3, 0x28($sp) +.L7F08CAE8: +/* 0C1618 7F08CAE8 AD710000 */ sw $s1, ($t3) +/* 0C161C 7F08CAEC 8FAC002C */ lw $t4, 0x2c($sp) +/* 0C1620 7F08CAF0 AD930000 */ sw $s3, ($t4) +/* 0C1624 7F08CAF4 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1628 7F08CAF8 8FB30020 */ lw $s3, 0x20($sp) +/* 0C162C 7F08CAFC 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1630 7F08CB00 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1634 7F08CB04 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1638 7F08CB08 03E00008 */ jr $ra +/* 0C163C 7F08CB0C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + #endif @@ -1566,6 +1764,258 @@ glabel sub_GAME_7F08CB10 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08CB10 +/* 0C1640 7F08CB10 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0C1644 7F08CB14 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1648 7F08CB18 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C164C 7F08CB1C AFBF0024 */ sw $ra, 0x24($sp) +/* 0C1650 7F08CB20 AFB30020 */ sw $s3, 0x20($sp) +/* 0C1654 7F08CB24 AFB2001C */ sw $s2, 0x1c($sp) +/* 0C1658 7F08CB28 AFB10018 */ sw $s1, 0x18($sp) +/* 0C165C 7F08CB2C AFB00014 */ sw $s0, 0x14($sp) +/* 0C1660 7F08CB30 AFA40028 */ sw $a0, 0x28($sp) +/* 0C1664 7F08CB34 AFA5002C */ sw $a1, 0x2c($sp) +/* 0C1668 7F08CB38 8C6211E0 */ lw $v0, 0x11e0($v1) +/* 0C166C 7F08CB3C 00C09025 */ move $s2, $a2 +/* 0C1670 7F08CB40 8C910000 */ lw $s1, ($a0) +/* 0C1674 7F08CB44 00807025 */ move $t6, $a0 +/* 0C1678 7F08CB48 8CB30000 */ lw $s3, ($a1) +/* 0C167C 7F08CB4C 10400042 */ beqz $v0, .L7F08CC58 +/* 0C1680 7F08CB50 00A07825 */ move $t7, $a1 +/* 0C1684 7F08CB54 8C500010 */ lw $s0, 0x10($v0) +.L7F08CB58: +/* 0C1688 7F08CB58 8E020000 */ lw $v0, ($s0) +/* 0C168C 7F08CB5C 24010001 */ li $at, 1 +/* 0C1690 7F08CB60 54410018 */ bnel $v0, $at, .L7F08CBC4 +/* 0C1694 7F08CB64 24010003 */ li $at, 3 +/* 0C1698 7F08CB68 8E040004 */ lw $a0, 4($s0) +/* 0C169C 7F08CB6C 28810021 */ slti $at, $a0, 0x21 +/* 0C16A0 7F08CB70 1020002E */ beqz $at, .L7F08CC2C +/* 0C16A4 7F08CB74 00000000 */ nop +/* 0C16A8 7F08CB78 0091082A */ slt $at, $a0, $s1 +/* 0C16AC 7F08CB7C 14200005 */ bnez $at, .L7F08CB94 +/* 0C16B0 7F08CB80 00000000 */ nop +/* 0C16B4 7F08CB84 16240029 */ bne $s1, $a0, .L7F08CC2C +/* 0C16B8 7F08CB88 00000000 */ nop +/* 0C16BC 7F08CB8C 1A600027 */ blez $s3, .L7F08CC2C +/* 0C16C0 7F08CB90 00000000 */ nop +.L7F08CB94: +/* 0C16C4 7F08CB94 52400008 */ beql $s2, $zero, .L7F08CBB8 +/* 0C16C8 7F08CB98 00808825 */ move $s1, $a0 +/* 0C16CC 7F08CB9C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C16D0 7F08CBA0 00000000 */ nop +/* 0C16D4 7F08CBA4 10400021 */ beqz $v0, .L7F08CC2C +/* 0C16D8 7F08CBA8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C16DC 7F08CBAC 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C16E0 7F08CBB0 8E040004 */ lw $a0, 4($s0) +/* 0C16E4 7F08CBB4 00808825 */ move $s1, $a0 +.L7F08CBB8: +/* 0C16E8 7F08CBB8 10000027 */ b .L7F08CC58 +/* 0C16EC 7F08CBBC 00009825 */ move $s3, $zero +/* 0C16F0 7F08CBC0 24010003 */ li $at, 3 +.L7F08CBC4: +/* 0C16F4 7F08CBC4 14410019 */ bne $v0, $at, .L7F08CC2C +/* 0C16F8 7F08CBC8 00000000 */ nop +/* 0C16FC 7F08CBCC 8E040004 */ lw $a0, 4($s0) +/* 0C1700 7F08CBD0 0091082A */ slt $at, $a0, $s1 +/* 0C1704 7F08CBD4 14200007 */ bnez $at, .L7F08CBF4 +/* 0C1708 7F08CBD8 00000000 */ nop +/* 0C170C 7F08CBDC 16240013 */ bne $s1, $a0, .L7F08CC2C +/* 0C1710 7F08CBE0 00000000 */ nop +/* 0C1714 7F08CBE4 8E180008 */ lw $t8, 8($s0) +/* 0C1718 7F08CBE8 0313082A */ slt $at, $t8, $s3 +/* 0C171C 7F08CBEC 1020000F */ beqz $at, .L7F08CC2C +/* 0C1720 7F08CBF0 00000000 */ nop +.L7F08CBF4: +/* 0C1724 7F08CBF4 12400008 */ beqz $s2, .L7F08CC18 +/* 0C1728 7F08CBF8 00000000 */ nop +/* 0C172C 7F08CBFC 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1730 7F08CC00 00000000 */ nop +/* 0C1734 7F08CC04 14400004 */ bnez $v0, .L7F08CC18 +/* 0C1738 7F08CC08 00000000 */ nop +/* 0C173C 7F08CC0C 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C1740 7F08CC10 8E040008 */ lw $a0, 8($s0) +/* 0C1744 7F08CC14 10400005 */ beqz $v0, .L7F08CC2C +.L7F08CC18: +/* 0C1748 7F08CC18 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C174C 7F08CC1C 8E110004 */ lw $s1, 4($s0) +/* 0C1750 7F08CC20 8E130008 */ lw $s3, 8($s0) +/* 0C1754 7F08CC24 1000000C */ b .L7F08CC58 +/* 0C1758 7F08CC28 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F08CC2C: +/* 0C175C 7F08CC2C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0C1760 7F08CC30 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0C1764 7F08CC34 8C7911E0 */ lw $t9, 0x11e0($v1) +/* 0C1768 7F08CC38 16190005 */ bne $s0, $t9, .L7F08CC50 +/* 0C176C 7F08CC3C 00000000 */ nop +/* 0C1770 7F08CC40 56400006 */ bnezl $s2, .L7F08CC5C +/* 0C1774 7F08CC44 8C6811EC */ lw $t0, 0x11ec($v1) +/* 0C1778 7F08CC48 241103E8 */ li $s1, 1000 +/* 0C177C 7F08CC4C 241303E8 */ li $s3, 1000 +.L7F08CC50: +/* 0C1780 7F08CC50 1000FFC1 */ b .L7F08CB58 +/* 0C1784 7F08CC54 8E100010 */ lw $s0, 0x10($s0) +.L7F08CC58: +/* 0C1788 7F08CC58 8C6811EC */ lw $t0, 0x11ec($v1) +.L7F08CC5C: +/* 0C178C 7F08CC5C 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C1790 7F08CC60 51000079 */ beql $t0, $zero, .L7F08CE48 +/* 0C1794 7F08CC64 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1798 7F08CC68 8D4B0000 */ lw $t3, ($t2) +/* 0C179C 7F08CC6C 8FA90028 */ lw $t1, 0x28($sp) +/* 0C17A0 7F08CC70 24030021 */ li $v1, 33 +/* 0C17A4 7F08CC74 1560001B */ bnez $t3, .L7F08CCE4 +/* 0C17A8 7F08CC78 8D300000 */ lw $s0, ($t1) +/* 0C17AC 7F08CC7C 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C17B0 7F08CC80 0183001A */ div $zero, $t4, $v1 +/* 0C17B4 7F08CC84 00008010 */ mfhi $s0 +/* 0C17B8 7F08CC88 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C17BC 7F08CC8C 14600002 */ bnez $v1, .L7F08CC98 +/* 0C17C0 7F08CC90 00000000 */ nop +/* 0C17C4 7F08CC94 0007000D */ break 7 +.L7F08CC98: +/* 0C17C8 7F08CC98 2401FFFF */ li $at, -1 +/* 0C17CC 7F08CC9C 14610004 */ bne $v1, $at, .L7F08CCB0 +/* 0C17D0 7F08CCA0 3C018000 */ lui $at, 0x8000 +/* 0C17D4 7F08CCA4 15810002 */ bne $t4, $at, .L7F08CCB0 +/* 0C17D8 7F08CCA8 00000000 */ nop +/* 0C17DC 7F08CCAC 0006000D */ break 6 +.L7F08CCB0: +/* 0C17E0 7F08CCB0 1600000C */ bnez $s0, .L7F08CCE4 +/* 0C17E4 7F08CCB4 00000000 */ nop +/* 0C17E8 7F08CCB8 01A3001A */ div $zero, $t5, $v1 +/* 0C17EC 7F08CCBC 00008010 */ mfhi $s0 +/* 0C17F0 7F08CCC0 14600002 */ bnez $v1, .L7F08CCCC +/* 0C17F4 7F08CCC4 00000000 */ nop +/* 0C17F8 7F08CCC8 0007000D */ break 7 +.L7F08CCCC: +/* 0C17FC 7F08CCCC 2401FFFF */ li $at, -1 +/* 0C1800 7F08CCD0 14610004 */ bne $v1, $at, .L7F08CCE4 +/* 0C1804 7F08CCD4 3C018000 */ lui $at, 0x8000 +/* 0C1808 7F08CCD8 15A10002 */ bne $t5, $at, .L7F08CCE4 +/* 0C180C 7F08CCDC 00000000 */ nop +/* 0C1810 7F08CCE0 0006000D */ break 6 +.L7F08CCE4: +/* 0C1814 7F08CCE4 1611001E */ bne $s0, $s1, .L7F08CD60 +/* 0C1818 7F08CCE8 00000000 */ nop +/* 0C181C 7F08CCEC 0FC26919 */ jal getPlayerCount +/* 0C1820 7F08CCF0 00000000 */ nop +/* 0C1824 7F08CCF4 24010001 */ li $at, 1 +/* 0C1828 7F08CCF8 14410052 */ bne $v0, $at, .L7F08CE44 +/* 0C182C 7F08CCFC 02002025 */ move $a0, $s0 +/* 0C1830 7F08CD00 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C1834 7F08CD04 3C050010 */ lui $a1, 0x10 +/* 0C1838 7F08CD08 5040004F */ beql $v0, $zero, .L7F08CE48 +/* 0C183C 7F08CD0C 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1840 7F08CD10 52400006 */ beql $s2, $zero, .L7F08CD2C +/* 0C1844 7F08CD14 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1848 7F08CD18 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C184C 7F08CD1C 02002025 */ move $a0, $s0 +/* 0C1850 7F08CD20 50400049 */ beql $v0, $zero, .L7F08CE48 +/* 0C1854 7F08CD24 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1858 7F08CD28 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CD2C: +/* 0C185C 7F08CD2C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0C1860 7F08CD30 8DCF0000 */ lw $t7, ($t6) +/* 0C1864 7F08CD34 560F0005 */ bnel $s0, $t7, .L7F08CD4C +/* 0C1868 7F08CD38 0270082A */ slt $at, $s3, $s0 +/* 0C186C 7F08CD3C 8F190000 */ lw $t9, ($t8) +/* 0C1870 7F08CD40 0219082A */ slt $at, $s0, $t9 +/* 0C1874 7F08CD44 1020003F */ beqz $at, .L7F08CE44 +/* 0C1878 7F08CD48 0270082A */ slt $at, $s3, $s0 +.L7F08CD4C: +/* 0C187C 7F08CD4C 5020003E */ beql $at, $zero, .L7F08CE48 +/* 0C1880 7F08CD50 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C1884 7F08CD54 02008825 */ move $s1, $s0 +/* 0C1888 7F08CD58 1000003A */ b .L7F08CE44 +/* 0C188C 7F08CD5C 02009825 */ move $s3, $s0 +.L7F08CD60: +/* 0C1890 7F08CD60 12400005 */ beqz $s2, .L7F08CD78 +/* 0C1894 7F08CD64 00000000 */ nop +/* 0C1898 7F08CD68 0FC17817 */ jal bondwalkItemHasAmmo +/* 0C189C 7F08CD6C 02002025 */ move $a0, $s0 +/* 0C18A0 7F08CD70 10400018 */ beqz $v0, .L7F08CDD4 +/* 0C18A4 7F08CD74 24030021 */ li $v1, 33 +.L7F08CD78: +/* 0C18A8 7F08CD78 0FC26919 */ jal getPlayerCount +/* 0C18AC 7F08CD7C 00000000 */ nop +/* 0C18B0 7F08CD80 24010001 */ li $at, 1 +/* 0C18B4 7F08CD84 14410010 */ bne $v0, $at, .L7F08CDC8 +/* 0C18B8 7F08CD88 02002025 */ move $a0, $s0 +/* 0C18BC 7F08CD8C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0C18C0 7F08CD90 3C050010 */ lui $a1, 0x10 +/* 0C18C4 7F08CD94 1040000C */ beqz $v0, .L7F08CDC8 +/* 0C18C8 7F08CD98 8FA80028 */ lw $t0, 0x28($sp) +/* 0C18CC 7F08CD9C 8D090000 */ lw $t1, ($t0) +/* 0C18D0 7F08CDA0 8FAA002C */ lw $t2, 0x2c($sp) +/* 0C18D4 7F08CDA4 02008825 */ move $s1, $s0 +/* 0C18D8 7F08CDA8 16090005 */ bne $s0, $t1, .L7F08CDC0 +/* 0C18DC 7F08CDAC 00000000 */ nop +/* 0C18E0 7F08CDB0 8D4B0000 */ lw $t3, ($t2) +/* 0C18E4 7F08CDB4 020B082A */ slt $at, $s0, $t3 +/* 0C18E8 7F08CDB8 50200004 */ beql $at, $zero, .L7F08CDCC +/* 0C18EC 7F08CDBC 02008825 */ move $s1, $s0 +.L7F08CDC0: +/* 0C18F0 7F08CDC0 10000020 */ b .L7F08CE44 +/* 0C18F4 7F08CDC4 02009825 */ move $s3, $s0 +.L7F08CDC8: +/* 0C18F8 7F08CDC8 02008825 */ move $s1, $s0 +.L7F08CDCC: +/* 0C18FC 7F08CDCC 1000001D */ b .L7F08CE44 +/* 0C1900 7F08CDD0 00009825 */ move $s3, $zero +.L7F08CDD4: +/* 0C1904 7F08CDD4 260C0020 */ addiu $t4, $s0, 0x20 +/* 0C1908 7F08CDD8 0183001A */ div $zero, $t4, $v1 +/* 0C190C 7F08CDDC 00008010 */ mfhi $s0 +/* 0C1910 7F08CDE0 14600002 */ bnez $v1, .L7F08CDEC +/* 0C1914 7F08CDE4 00000000 */ nop +/* 0C1918 7F08CDE8 0007000D */ break 7 +.L7F08CDEC: +/* 0C191C 7F08CDEC 2401FFFF */ li $at, -1 +/* 0C1920 7F08CDF0 14610004 */ bne $v1, $at, .L7F08CE04 +/* 0C1924 7F08CDF4 3C018000 */ lui $at, 0x8000 +/* 0C1928 7F08CDF8 15810002 */ bne $t4, $at, .L7F08CE04 +/* 0C192C 7F08CDFC 00000000 */ nop +/* 0C1930 7F08CE00 0006000D */ break 6 +.L7F08CE04: +/* 0C1934 7F08CE04 1600FFB7 */ bnez $s0, .L7F08CCE4 +/* 0C1938 7F08CE08 00000000 */ nop +/* 0C193C 7F08CE0C 260D0020 */ addiu $t5, $s0, 0x20 +/* 0C1940 7F08CE10 01A3001A */ div $zero, $t5, $v1 +/* 0C1944 7F08CE14 00008010 */ mfhi $s0 +/* 0C1948 7F08CE18 14600002 */ bnez $v1, .L7F08CE24 +/* 0C194C 7F08CE1C 00000000 */ nop +/* 0C1950 7F08CE20 0007000D */ break 7 +.L7F08CE24: +/* 0C1954 7F08CE24 2401FFFF */ li $at, -1 +/* 0C1958 7F08CE28 14610004 */ bne $v1, $at, .L7F08CE3C +/* 0C195C 7F08CE2C 3C018000 */ lui $at, 0x8000 +/* 0C1960 7F08CE30 15A10002 */ bne $t5, $at, .L7F08CE3C +/* 0C1964 7F08CE34 00000000 */ nop +/* 0C1968 7F08CE38 0006000D */ break 6 +.L7F08CE3C: +/* 0C196C 7F08CE3C 1000FFA9 */ b .L7F08CCE4 +/* 0C1970 7F08CE40 00000000 */ nop +.L7F08CE44: +/* 0C1974 7F08CE44 8FAE0028 */ lw $t6, 0x28($sp) +.L7F08CE48: +/* 0C1978 7F08CE48 ADD10000 */ sw $s1, ($t6) +/* 0C197C 7F08CE4C 8FAF002C */ lw $t7, 0x2c($sp) +/* 0C1980 7F08CE50 ADF30000 */ sw $s3, ($t7) +/* 0C1984 7F08CE54 8FBF0024 */ lw $ra, 0x24($sp) +/* 0C1988 7F08CE58 8FB30020 */ lw $s3, 0x20($sp) +/* 0C198C 7F08CE5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 0C1990 7F08CE60 8FB10018 */ lw $s1, 0x18($sp) +/* 0C1994 7F08CE64 8FB00014 */ lw $s0, 0x14($sp) +/* 0C1998 7F08CE68 03E00008 */ jr $ra +/* 0C199C 7F08CE6C 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + #endif @@ -1630,7 +2080,7 @@ glabel sub_GAME_7F08CE70 #ifdef NONMATCHING //NOT MATCHING YET -> Wrong Register values -void sub_GAME_7F08CF0C(void) { +void checkHasGEKey(void) { InvItem *item = pPlayer->ptr_inventory_first_in_cycle; @@ -1638,7 +2088,7 @@ void sub_GAME_7F08CF0C(void) { if (item->type == 2 ) { struct prop *temp_a0 = item->type_inv_item.type_prop.prop; - if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == 0xF8) { + if (item->type_inv_item.type_prop.prop->type == 4 && temp_a0->obj->type == PROJECTILES_TYPE_GE_KEY) { return TRUE; } } @@ -1656,7 +2106,7 @@ void sub_GAME_7F08CF0C(void) { #else GLOBAL_ASM( .text -glabel sub_GAME_7F08CF0C +glabel checkHasGEKey /* 0C1A3C 7F08CF0C 3C0E8008 */ lui $t6, %hi(pPlayer) /* 0C1A40 7F08CF10 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) /* 0C1A44 7F08CF14 240800F8 */ li $t0, 248 @@ -1930,6 +2380,73 @@ glabel count_total_items_in_inventory ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel count_total_items_in_inventory +/* 0C1B68 7F08D038 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1B6C 7F08D03C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1B70 7F08D040 00001825 */ move $v1, $zero +/* 0C1B74 7F08D044 3C0B0004 */ lui $t3, 4 +/* 0C1B78 7F08D048 8C4411EC */ lw $a0, 0x11ec($v0) +/* 0C1B7C 7F08D04C 240A0001 */ li $t2, 1 +/* 0C1B80 7F08D050 24090004 */ li $t1, 4 +/* 0C1B84 7F08D054 10800002 */ beqz $a0, .L7F08D060 +/* 0C1B88 7F08D058 24080002 */ li $t0, 2 +/* 0C1B8C 7F08D05C 24030020 */ li $v1, 32 +.L7F08D060: +/* 0C1B90 7F08D060 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1B94 7F08D064 10C00026 */ beqz $a2, .L7F08D100 +/* 0C1B98 7F08D068 00C02825 */ move $a1, $a2 +/* 0C1B9C 7F08D06C 8CA20000 */ lw $v0, ($a1) +.L7F08D070: +/* 0C1BA0 7F08D070 15020015 */ bne $t0, $v0, .L7F08D0C8 +/* 0C1BA4 7F08D074 00000000 */ nop +/* 0C1BA8 7F08D078 8CA20004 */ lw $v0, 4($a1) +/* 0C1BAC 7F08D07C 90470000 */ lbu $a3, ($v0) +/* 0C1BB0 7F08D080 15270008 */ bne $t1, $a3, .L7F08D0A4 +/* 0C1BB4 7F08D084 00000000 */ nop +/* 0C1BB8 7F08D088 8C470004 */ lw $a3, 4($v0) +/* 0C1BBC 7F08D08C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1BC0 7F08D090 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1BC4 7F08D094 51E00016 */ beql $t7, $zero, .L7F08D0F0 +/* 0C1BC8 7F08D098 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BCC 7F08D09C 10000013 */ b .L7F08D0EC +/* 0C1BD0 7F08D0A0 24630001 */ addiu $v1, $v1, 1 +.L7F08D0A4: +/* 0C1BD4 7F08D0A4 55470012 */ bnel $t2, $a3, .L7F08D0F0 +/* 0C1BD8 7F08D0A8 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BDC 7F08D0AC 8C580004 */ lw $t8, 4($v0) +/* 0C1BE0 7F08D0B0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1BE4 7F08D0B4 032B6024 */ and $t4, $t9, $t3 +/* 0C1BE8 7F08D0B8 5580000D */ bnezl $t4, .L7F08D0F0 +/* 0C1BEC 7F08D0BC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1BF0 7F08D0C0 1000000A */ b .L7F08D0EC +/* 0C1BF4 7F08D0C4 24630001 */ addiu $v1, $v1, 1 +.L7F08D0C8: +/* 0C1BF8 7F08D0C8 55420009 */ bnel $t2, $v0, .L7F08D0F0 +/* 0C1BFC 7F08D0CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C00 7F08D0D0 50800006 */ beql $a0, $zero, .L7F08D0EC +/* 0C1C04 7F08D0D4 24630001 */ addiu $v1, $v1, 1 +/* 0C1C08 7F08D0D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1C0C 7F08D0DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1C10 7F08D0E0 54200003 */ bnezl $at, .L7F08D0F0 +/* 0C1C14 7F08D0E4 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1C18 7F08D0E8 24630001 */ addiu $v1, $v1, 1 +.L7F08D0EC: +/* 0C1C1C 7F08D0EC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D0F0: +/* 0C1C20 7F08D0F0 10A60003 */ beq $a1, $a2, .L7F08D100 +/* 0C1C24 7F08D0F4 00000000 */ nop +/* 0C1C28 7F08D0F8 54A0FFDD */ bnezl $a1, .L7F08D070 +/* 0C1C2C 7F08D0FC 8CA20000 */ lw $v0, ($a1) +.L7F08D100: +/* 0C1C30 7F08D100 03E00008 */ jr $ra +/* 0C1C34 7F08D104 00601025 */ move $v0, $v1 +) +#endif + + #endif @@ -2138,6 +2655,99 @@ glabel sub_GAME_7F08D108 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D108 +/* 0C1C38 7F08D108 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C1C3C 7F08D10C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C1C40 7F08D110 28810020 */ slti $at, $a0, 0x20 +/* 0C1C44 7F08D114 8C4311EC */ lw $v1, 0x11ec($v0) +/* 0C1C48 7F08D118 50600006 */ beql $v1, $zero, .L7F08D134 +/* 0C1C4C 7F08D11C 8C4611E0 */ lw $a2, 0x11e0($v0) +/* 0C1C50 7F08D120 10200003 */ beqz $at, .L7F08D130 +/* 0C1C54 7F08D124 2484FFE0 */ addiu $a0, $a0, -0x20 +/* 0C1C58 7F08D128 03E00008 */ jr $ra +/* 0C1C5C 7F08D12C 00001025 */ move $v0, $zero + +.L7F08D130: +/* 0C1C60 7F08D130 8C4611E0 */ lw $a2, 0x11e0($v0) +.L7F08D134: +/* 0C1C64 7F08D134 3C0B0004 */ lui $t3, 4 +/* 0C1C68 7F08D138 240A0001 */ li $t2, 1 +/* 0C1C6C 7F08D13C 10C00034 */ beqz $a2, .L7F08D210 +/* 0C1C70 7F08D140 00C02825 */ move $a1, $a2 +/* 0C1C74 7F08D144 24090004 */ li $t1, 4 +/* 0C1C78 7F08D148 24080002 */ li $t0, 2 +/* 0C1C7C 7F08D14C 8CA20000 */ lw $v0, ($a1) +.L7F08D150: +/* 0C1C80 7F08D150 1502001D */ bne $t0, $v0, .L7F08D1C8 +/* 0C1C84 7F08D154 00000000 */ nop +/* 0C1C88 7F08D158 8CA20004 */ lw $v0, 4($a1) +/* 0C1C8C 7F08D15C 90470000 */ lbu $a3, ($v0) +/* 0C1C90 7F08D160 1527000C */ bne $t1, $a3, .L7F08D194 +/* 0C1C94 7F08D164 00000000 */ nop +/* 0C1C98 7F08D168 8C470004 */ lw $a3, 4($v0) +/* 0C1C9C 7F08D16C 8CEE0064 */ lw $t6, 0x64($a3) +/* 0C1CA0 7F08D170 31CF0400 */ andi $t7, $t6, 0x400 +/* 0C1CA4 7F08D174 51E00022 */ beql $t7, $zero, .L7F08D200 +/* 0C1CA8 7F08D178 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CAC 7F08D17C 14800003 */ bnez $a0, .L7F08D18C +/* 0C1CB0 7F08D180 00000000 */ nop +/* 0C1CB4 7F08D184 03E00008 */ jr $ra +/* 0C1CB8 7F08D188 00A01025 */ move $v0, $a1 + +.L7F08D18C: +/* 0C1CBC 7F08D18C 1000001B */ b .L7F08D1FC +/* 0C1CC0 7F08D190 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D194: +/* 0C1CC4 7F08D194 5547001A */ bnel $t2, $a3, .L7F08D200 +/* 0C1CC8 7F08D198 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CCC 7F08D19C 8C580004 */ lw $t8, 4($v0) +/* 0C1CD0 7F08D1A0 8F19000C */ lw $t9, 0xc($t8) +/* 0C1CD4 7F08D1A4 032B6024 */ and $t4, $t9, $t3 +/* 0C1CD8 7F08D1A8 55800015 */ bnezl $t4, .L7F08D200 +/* 0C1CDC 7F08D1AC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1CE0 7F08D1B0 14800003 */ bnez $a0, .L7F08D1C0 +/* 0C1CE4 7F08D1B4 00000000 */ nop +/* 0C1CE8 7F08D1B8 03E00008 */ jr $ra +/* 0C1CEC 7F08D1BC 00A01025 */ move $v0, $a1 + +.L7F08D1C0: +/* 0C1CF0 7F08D1C0 1000000E */ b .L7F08D1FC +/* 0C1CF4 7F08D1C4 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1C8: +/* 0C1CF8 7F08D1C8 5542000D */ bnel $t2, $v0, .L7F08D200 +/* 0C1CFC 7F08D1CC 8CA5000C */ lw $a1, 0xc($a1) +/* 0C1D00 7F08D1D0 10600005 */ beqz $v1, .L7F08D1E8 +/* 0C1D04 7F08D1D4 00000000 */ nop +/* 0C1D08 7F08D1D8 8CAD0004 */ lw $t5, 4($a1) +/* 0C1D0C 7F08D1DC 29A10021 */ slti $at, $t5, 0x21 +/* 0C1D10 7F08D1E0 54200007 */ bnezl $at, .L7F08D200 +/* 0C1D14 7F08D1E4 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D1E8: +/* 0C1D18 7F08D1E8 54800004 */ bnezl $a0, .L7F08D1FC +/* 0C1D1C 7F08D1EC 2484FFFF */ addiu $a0, $a0, -1 +/* 0C1D20 7F08D1F0 03E00008 */ jr $ra +/* 0C1D24 7F08D1F4 00A01025 */ move $v0, $a1 + +/* 0C1D28 7F08D1F8 2484FFFF */ addiu $a0, $a0, -1 +.L7F08D1FC: +/* 0C1D2C 7F08D1FC 8CA5000C */ lw $a1, 0xc($a1) +.L7F08D200: +/* 0C1D30 7F08D200 50A60004 */ beql $a1, $a2, .L7F08D214 +/* 0C1D34 7F08D204 00001025 */ move $v0, $zero +/* 0C1D38 7F08D208 54A0FFD1 */ bnezl $a1, .L7F08D150 +/* 0C1D3C 7F08D20C 8CA20000 */ lw $v0, ($a1) +.L7F08D210: +/* 0C1D40 7F08D210 00001025 */ move $v0, $zero +.L7F08D214: +/* 0C1D44 7F08D214 03E00008 */ jr $ra +/* 0C1D48 7F08D218 00000000 */ nop +) +#endif + + #endif textoverride *get_textoverride_by_obj(ObjectRecord *obj) { @@ -2173,7 +2783,7 @@ textoverride *get_textoverride_by_weaponum(ITEM_IDS weaponnum) { } -#ifdef VERSION_US +#ifndef VERSION_JP s32 get_weaponnum_by_inv_index(s32 index) { textoverride *override; @@ -2441,6 +3051,80 @@ glabel sub_GAME_7F08D340 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D340 +/* 0C1E70 7F08D340 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1E74 7F08D344 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1E78 7F08D348 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1E7C 7F08D34C AFA40020 */ sw $a0, 0x20($sp) +/* 0C1E80 7F08D350 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1E84 7F08D354 00401825 */ move $v1, $v0 +/* 0C1E88 7F08D358 10400024 */ beqz $v0, .L7F08D3EC +/* 0C1E8C 7F08D35C 00003025 */ move $a2, $zero +/* 0C1E90 7F08D360 8C440000 */ lw $a0, ($v0) +/* 0C1E94 7F08D364 24010002 */ li $at, 2 +/* 0C1E98 7F08D368 54810012 */ bnel $a0, $at, .L7F08D3B4 +/* 0C1E9C 7F08D36C 24010001 */ li $at, 1 +/* 0C1EA0 7F08D370 8C420004 */ lw $v0, 4($v0) +/* 0C1EA4 7F08D374 8C440004 */ lw $a0, 4($v0) +/* 0C1EA8 7F08D378 0FC23487 */ jal get_textoverride_by_obj +/* 0C1EAC 7F08D37C AFA00018 */ sw $zero, 0x18($sp) +/* 0C1EB0 7F08D380 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1EB4 7F08D384 10400025 */ beqz $v0, .L7F08D41C +/* 0C1EB8 7F08D388 00401825 */ move $v1, $v0 +/* 0C1EBC 7F08D38C 8C4E0014 */ lw $t6, 0x14($v0) +/* 0C1EC0 7F08D390 11C00005 */ beqz $t6, .L7F08D3A8 +/* 0C1EC4 7F08D394 00000000 */ nop +/* 0C1EC8 7F08D398 0FC30776 */ jal get_textptr_for_textID +/* 0C1ECC 7F08D39C 8C640014 */ lw $a0, 0x14($v1) +/* 0C1ED0 7F08D3A0 10000021 */ b .L7F08D428 +/* 0C1ED4 7F08D3A4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3A8: +/* 0C1ED8 7F08D3A8 1000001C */ b .L7F08D41C +/* 0C1EDC 7F08D3AC 8C460008 */ lw $a2, 8($v0) +/* 0C1EE0 7F08D3B0 24010001 */ li $at, 1 +.L7F08D3B4: +/* 0C1EE4 7F08D3B4 14810019 */ bne $a0, $at, .L7F08D41C +/* 0C1EE8 7F08D3B8 00000000 */ nop +/* 0C1EEC 7F08D3BC 8C640004 */ lw $a0, 4($v1) +/* 0C1EF0 7F08D3C0 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1EF4 7F08D3C4 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1EF8 7F08D3C8 10400014 */ beqz $v0, .L7F08D41C +/* 0C1EFC 7F08D3CC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1F00 7F08D3D0 8C4F0014 */ lw $t7, 0x14($v0) +/* 0C1F04 7F08D3D4 11E00011 */ beqz $t7, .L7F08D41C +/* 0C1F08 7F08D3D8 00000000 */ nop +/* 0C1F0C 7F08D3DC 0FC30776 */ jal get_textptr_for_textID +/* 0C1F10 7F08D3E0 8C440014 */ lw $a0, 0x14($v0) +/* 0C1F14 7F08D3E4 10000010 */ b .L7F08D428 +/* 0C1F18 7F08D3E8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D3EC: +/* 0C1F1C 7F08D3EC 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C1F20 7F08D3F0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C1F24 7F08D3F4 28A10020 */ slti $at, $a1, 0x20 +/* 0C1F28 7F08D3F8 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C1F2C 7F08D3FC 13200007 */ beqz $t9, .L7F08D41C +/* 0C1F30 7F08D400 00000000 */ nop +/* 0C1F34 7F08D404 10200005 */ beqz $at, .L7F08D41C +/* 0C1F38 7F08D408 00000000 */ nop +/* 0C1F3C 7F08D40C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F40 7F08D410 24A40001 */ addiu $a0, $a1, 1 +/* 0C1F44 7F08D414 10000004 */ b .L7F08D428 +/* 0C1F48 7F08D418 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D41C: +/* 0C1F4C 7F08D41C 0FC19C2A */ jal get_ptr_short_watch_text_for_item +/* 0C1F50 7F08D420 00C02025 */ move $a0, $a2 +/* 0C1F54 7F08D424 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D428: +/* 0C1F58 7F08D428 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C1F5C 7F08D42C 03E00008 */ jr $ra +/* 0C1F60 7F08D430 00000000 */ nop +) +#endif + + #endif @@ -2614,6 +3298,79 @@ glabel sub_GAME_7F08D434 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D434 +/* 0C1F64 7F08D434 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C1F68 7F08D438 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C1F6C 7F08D43C 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C1F70 7F08D440 AFA40020 */ sw $a0, 0x20($sp) +/* 0C1F74 7F08D444 8FA50020 */ lw $a1, 0x20($sp) +/* 0C1F78 7F08D448 00401825 */ move $v1, $v0 +/* 0C1F7C 7F08D44C 10400024 */ beqz $v0, .L7F08D4E0 +/* 0C1F80 7F08D450 00003025 */ move $a2, $zero +/* 0C1F84 7F08D454 8C440000 */ lw $a0, ($v0) +/* 0C1F88 7F08D458 24010002 */ li $at, 2 +/* 0C1F8C 7F08D45C 54810012 */ bnel $a0, $at, .L7F08D4A8 +/* 0C1F90 7F08D460 24010001 */ li $at, 1 +/* 0C1F94 7F08D464 8C420004 */ lw $v0, 4($v0) +/* 0C1F98 7F08D468 8C440004 */ lw $a0, 4($v0) +/* 0C1F9C 7F08D46C 0FC23487 */ jal get_textoverride_by_obj +/* 0C1FA0 7F08D470 AFA00018 */ sw $zero, 0x18($sp) +/* 0C1FA4 7F08D474 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FA8 7F08D478 10400025 */ beqz $v0, .L7F08D510 +/* 0C1FAC 7F08D47C 00401825 */ move $v1, $v0 +/* 0C1FB0 7F08D480 8C4E0018 */ lw $t6, 0x18($v0) +/* 0C1FB4 7F08D484 11C00005 */ beqz $t6, .L7F08D49C +/* 0C1FB8 7F08D488 00000000 */ nop +/* 0C1FBC 7F08D48C 0FC30776 */ jal get_textptr_for_textID +/* 0C1FC0 7F08D490 8C640018 */ lw $a0, 0x18($v1) +/* 0C1FC4 7F08D494 10000021 */ b .L7F08D51C +/* 0C1FC8 7F08D498 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D49C: +/* 0C1FCC 7F08D49C 1000001C */ b .L7F08D510 +/* 0C1FD0 7F08D4A0 8C460008 */ lw $a2, 8($v0) +/* 0C1FD4 7F08D4A4 24010001 */ li $at, 1 +.L7F08D4A8: +/* 0C1FD8 7F08D4A8 14810019 */ bne $a0, $at, .L7F08D510 +/* 0C1FDC 7F08D4AC 00000000 */ nop +/* 0C1FE0 7F08D4B0 8C640004 */ lw $a0, 4($v1) +/* 0C1FE4 7F08D4B4 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C1FE8 7F08D4B8 AFA40018 */ sw $a0, 0x18($sp) +/* 0C1FEC 7F08D4BC 10400014 */ beqz $v0, .L7F08D510 +/* 0C1FF0 7F08D4C0 8FA60018 */ lw $a2, 0x18($sp) +/* 0C1FF4 7F08D4C4 8C4F0018 */ lw $t7, 0x18($v0) +/* 0C1FF8 7F08D4C8 11E00011 */ beqz $t7, .L7F08D510 +/* 0C1FFC 7F08D4CC 00000000 */ nop +/* 0C2000 7F08D4D0 0FC30776 */ jal get_textptr_for_textID +/* 0C2004 7F08D4D4 8C440018 */ lw $a0, 0x18($v0) +/* 0C2008 7F08D4D8 10000010 */ b .L7F08D51C +/* 0C200C 7F08D4DC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D4E0: +/* 0C2010 7F08D4E0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C2014 7F08D4E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C2018 7F08D4E8 28A10020 */ slti $at, $a1, 0x20 +/* 0C201C 7F08D4EC 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C2020 7F08D4F0 13200007 */ beqz $t9, .L7F08D510 +/* 0C2024 7F08D4F4 00000000 */ nop +/* 0C2028 7F08D4F8 10200005 */ beqz $at, .L7F08D510 +/* 0C202C 7F08D4FC 00000000 */ nop +/* 0C2030 7F08D500 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2034 7F08D504 24A40001 */ addiu $a0, $a1, 1 +/* 0C2038 7F08D508 10000004 */ b .L7F08D51C +/* 0C203C 7F08D50C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D510: +/* 0C2040 7F08D510 0FC19C37 */ jal get_ptr_long_watch_text_for_item +/* 0C2044 7F08D514 00C02025 */ move $a0, $a2 +/* 0C2048 7F08D518 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D51C: +/* 0C204C 7F08D51C 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C2050 7F08D520 03E00008 */ jr $ra +/* 0C2054 7F08D524 00000000 */ nop +) +#endif + #endif @@ -2821,6 +3578,80 @@ glabel sub_GAME_7F08D5C8 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D5C8 +/* 0C20F8 7F08D5C8 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C20FC 7F08D5CC AFBF0014 */ sw $ra, 0x14($sp) +/* 0C2100 7F08D5D0 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C2104 7F08D5D4 AFA40020 */ sw $a0, 0x20($sp) +/* 0C2108 7F08D5D8 8FA50020 */ lw $a1, 0x20($sp) +/* 0C210C 7F08D5DC 00401825 */ move $v1, $v0 +/* 0C2110 7F08D5E0 10400024 */ beqz $v0, .L7F08D674 +/* 0C2114 7F08D5E4 00003025 */ move $a2, $zero +/* 0C2118 7F08D5E8 8C440000 */ lw $a0, ($v0) +/* 0C211C 7F08D5EC 24010002 */ li $at, 2 +/* 0C2120 7F08D5F0 54810012 */ bnel $a0, $at, .L7F08D63C +/* 0C2124 7F08D5F4 24010001 */ li $at, 1 +/* 0C2128 7F08D5F8 8C420004 */ lw $v0, 4($v0) +/* 0C212C 7F08D5FC 8C440004 */ lw $a0, 4($v0) +/* 0C2130 7F08D600 0FC23487 */ jal get_textoverride_by_obj +/* 0C2134 7F08D604 AFA00018 */ sw $zero, 0x18($sp) +/* 0C2138 7F08D608 8FA60018 */ lw $a2, 0x18($sp) +/* 0C213C 7F08D60C 10400025 */ beqz $v0, .L7F08D6A4 +/* 0C2140 7F08D610 00401825 */ move $v1, $v0 +/* 0C2144 7F08D614 8C4E000C */ lw $t6, 0xc($v0) +/* 0C2148 7F08D618 11C00005 */ beqz $t6, .L7F08D630 +/* 0C214C 7F08D61C 00000000 */ nop +/* 0C2150 7F08D620 0FC30776 */ jal get_textptr_for_textID +/* 0C2154 7F08D624 8C64000C */ lw $a0, 0xc($v1) +/* 0C2158 7F08D628 10000021 */ b .L7F08D6B0 +/* 0C215C 7F08D62C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D630: +/* 0C2160 7F08D630 1000001C */ b .L7F08D6A4 +/* 0C2164 7F08D634 8C460008 */ lw $a2, 8($v0) +/* 0C2168 7F08D638 24010001 */ li $at, 1 +.L7F08D63C: +/* 0C216C 7F08D63C 14810019 */ bne $a0, $at, .L7F08D6A4 +/* 0C2170 7F08D640 00000000 */ nop +/* 0C2174 7F08D644 8C640004 */ lw $a0, 4($v1) +/* 0C2178 7F08D648 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C217C 7F08D64C AFA40018 */ sw $a0, 0x18($sp) +/* 0C2180 7F08D650 10400014 */ beqz $v0, .L7F08D6A4 +/* 0C2184 7F08D654 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2188 7F08D658 8C4F000C */ lw $t7, 0xc($v0) +/* 0C218C 7F08D65C 11E00011 */ beqz $t7, .L7F08D6A4 +/* 0C2190 7F08D660 00000000 */ nop +/* 0C2194 7F08D664 0FC30776 */ jal get_textptr_for_textID +/* 0C2198 7F08D668 8C44000C */ lw $a0, 0xc($v0) +/* 0C219C 7F08D66C 10000010 */ b .L7F08D6B0 +/* 0C21A0 7F08D670 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D674: +/* 0C21A4 7F08D674 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C21A8 7F08D678 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C21AC 7F08D67C 28A10020 */ slti $at, $a1, 0x20 +/* 0C21B0 7F08D680 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C21B4 7F08D684 13200007 */ beqz $t9, .L7F08D6A4 +/* 0C21B8 7F08D688 00000000 */ nop +/* 0C21BC 7F08D68C 10200005 */ beqz $at, .L7F08D6A4 +/* 0C21C0 7F08D690 00000000 */ nop +/* 0C21C4 7F08D694 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21C8 7F08D698 24A40001 */ addiu $a0, $a1, 1 +/* 0C21CC 7F08D69C 10000004 */ b .L7F08D6B0 +/* 0C21D0 7F08D6A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6A4: +/* 0C21D4 7F08D6A4 0FC19C10 */ jal get_ptr_first_title_line_item +/* 0C21D8 7F08D6A8 00C02025 */ move $a0, $a2 +/* 0C21DC 7F08D6AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D6B0: +/* 0C21E0 7F08D6B0 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C21E4 7F08D6B4 03E00008 */ jr $ra +/* 0C21E8 7F08D6B8 00000000 */ nop +) +#endif + + #endif @@ -2994,6 +3825,81 @@ glabel sub_GAME_7F08D6BC /* 0C2E04 7F08E294 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F08D6BC +/* 0C21EC 7F08D6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C21F0 7F08D6C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C21F4 7F08D6C4 0FC23442 */ jal sub_GAME_7F08D108 +/* 0C21F8 7F08D6C8 AFA40020 */ sw $a0, 0x20($sp) +/* 0C21FC 7F08D6CC 8FA50020 */ lw $a1, 0x20($sp) +/* 0C2200 7F08D6D0 00401825 */ move $v1, $v0 +/* 0C2204 7F08D6D4 10400024 */ beqz $v0, .L7F08D768 +/* 0C2208 7F08D6D8 00003025 */ move $a2, $zero +/* 0C220C 7F08D6DC 8C440000 */ lw $a0, ($v0) +/* 0C2210 7F08D6E0 24010002 */ li $at, 2 +/* 0C2214 7F08D6E4 54810012 */ bnel $a0, $at, .L7F08D730 +/* 0C2218 7F08D6E8 24010001 */ li $at, 1 +/* 0C221C 7F08D6EC 8C420004 */ lw $v0, 4($v0) +/* 0C2220 7F08D6F0 8C440004 */ lw $a0, 4($v0) +/* 0C2224 7F08D6F4 0FC23487 */ jal get_textoverride_by_obj +/* 0C2228 7F08D6F8 AFA00018 */ sw $zero, 0x18($sp) +/* 0C222C 7F08D6FC 8FA60018 */ lw $a2, 0x18($sp) +/* 0C2230 7F08D700 10400025 */ beqz $v0, .L7F08D798 +/* 0C2234 7F08D704 00401825 */ move $v1, $v0 +/* 0C2238 7F08D708 8C4E0010 */ lw $t6, 0x10($v0) +/* 0C223C 7F08D70C 11C00005 */ beqz $t6, .L7F08D724 +/* 0C2240 7F08D710 00000000 */ nop +/* 0C2244 7F08D714 0FC30776 */ jal get_textptr_for_textID +/* 0C2248 7F08D718 8C640010 */ lw $a0, 0x10($v1) +/* 0C224C 7F08D71C 10000021 */ b .L7F08D7A4 +/* 0C2250 7F08D720 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D724: +/* 0C2254 7F08D724 1000001C */ b .L7F08D798 +/* 0C2258 7F08D728 8C460008 */ lw $a2, 8($v0) +/* 0C225C 7F08D72C 24010001 */ li $at, 1 +.L7F08D730: +/* 0C2260 7F08D730 14810019 */ bne $a0, $at, .L7F08D798 +/* 0C2264 7F08D734 00000000 */ nop +/* 0C2268 7F08D738 8C640004 */ lw $a0, 4($v1) +/* 0C226C 7F08D73C 0FC23497 */ jal get_textoverride_by_weaponum +/* 0C2270 7F08D740 AFA40018 */ sw $a0, 0x18($sp) +/* 0C2274 7F08D744 10400014 */ beqz $v0, .L7F08D798 +/* 0C2278 7F08D748 8FA60018 */ lw $a2, 0x18($sp) +/* 0C227C 7F08D74C 8C4F0010 */ lw $t7, 0x10($v0) +/* 0C2280 7F08D750 11E00011 */ beqz $t7, .L7F08D798 +/* 0C2284 7F08D754 00000000 */ nop +/* 0C2288 7F08D758 0FC30776 */ jal get_textptr_for_textID +/* 0C228C 7F08D75C 8C440010 */ lw $a0, 0x10($v0) +/* 0C2290 7F08D760 10000010 */ b .L7F08D7A4 +/* 0C2294 7F08D764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D768: +/* 0C2298 7F08D768 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C229C 7F08D76C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C22A0 7F08D770 28A10020 */ slti $at, $a1, 0x20 +/* 0C22A4 7F08D774 8F1911EC */ lw $t9, 0x11ec($t8) +/* 0C22A8 7F08D778 13200007 */ beqz $t9, .L7F08D798 +/* 0C22AC 7F08D77C 00000000 */ nop +/* 0C22B0 7F08D780 10200005 */ beqz $at, .L7F08D798 +/* 0C22B4 7F08D784 00000000 */ nop +/* 0C22B8 7F08D788 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22BC 7F08D78C 24A40001 */ addiu $a0, $a1, 1 +/* 0C22C0 7F08D790 10000004 */ b .L7F08D7A4 +/* 0C22C4 7F08D794 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D798: +/* 0C22C8 7F08D798 0FC19C1D */ jal get_ptr_second_title_line_item +/* 0C22CC 7F08D79C 00C02025 */ move $a0, $a2 +/* 0C22D0 7F08D7A0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F08D7A4: +/* 0C22D4 7F08D7A4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C22D8 7F08D7A8 03E00008 */ jr $ra +/* 0C22DC 7F08D7AC 00000000 */ nop +) +#endif + + #endif diff --git a/src/game/bondwalk.c b/src/game/bondwalk.c index dce201b..10f7fbc 100644 --- a/src/game/bondwalk.c +++ b/src/game/bondwalk.c @@ -18,9 +18,7 @@ s32 dword_CODE_bss_80075DB8; s32 dword_CODE_bss_80075DBC; s32 dword_CODE_bss_80075DC0; s32 dword_CODE_bss_80075DC4; -char dword_CODE_bss_80075DC8[0x9C]; -s32 dword_CODE_bss_80075E64; -char dword_CODE_bss_80075E68[0xBE0]; +char dword_CODE_bss_80075DC8[20][160]; s32 dword_CODE_bss_80076A48; @@ -92,197 +90,197 @@ struct ejected_cart ejected_cartridge[] = { #define SCALEVAL_LAUNCHER 0.9048 #endif //D:80032494 -struct weapon_stats default_weaponstats = { +struct WeaponStats default_weaponstats = { 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0, 0x110 }; //D:80032504 -struct weapon_stats GfistZ_stats = { +struct WeaponStats GfistZ_stats = { 1.0, 11.0, -50.0, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 4.0,0.0, 0x64D91 }; //D:80032574 -struct weapon_stats GknifeZ_stats = { +struct WeaponStats GknifeZ_stats = { 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0,4.0, 0.0, 0x160D91 }; //D:800325E4 -struct weapon_stats GthrowknifeZ_stats = { +struct WeaponStats GthrowknifeZ_stats = { 1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0xA, 1, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0,2.0, 4.0, 1.0, 0x560D83 }; //D:80032654 -struct weapon_stats GwppkZ_stats = { +struct WeaponStats GwppkZ_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 1.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 }; //D:800326C4 -struct weapon_stats GwppksilZ_stats = { +struct WeaponStats GwppksilZ_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x2E, &GcartridgeZ_struct, 1.0, 3.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 1.5, 5.0, 29.999998, 0.0, 5.0, 1.0, 2.0, 4.0, 0.0, 0x170FB9 }; //D:80032734 -struct weapon_stats Gtt33Z_stats = { +struct WeaponStats Gtt33Z_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 8, 0xFF, 0x10, 1, 0, 0x70, &GcartridgeZ_struct, 1.0, 6.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 5.0, 10.0, 59.999996, 2.0, 16.0, 3.0, 2.0, 4.0, 0.0, 0x170FB9 }; //D:800327A4 -struct weapon_stats GskorpianZ_stats = { +struct WeaponStats GskorpianZ_stats = { 2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, 1, 0x14, 0x03, 0x00, 1, 0xB, 0x6A, &GcartridgeZ_struct, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x170B79 }; //D:80032814 -struct weapon_stats Gak47Z_stats = { +struct WeaponStats Gak47Z_stats = { 2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, 3, 0x1E, 0x03, 0x00, 1, 4, 0x6D, &GcartrifleZ_struct, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0, 0x171A7C }; //D:80032884 -struct weapon_stats GuziZ_stats = { +struct WeaponStats GuziZ_stats = { 3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, 1, 0x20, 0x02, 0x00, 1, 4, 0x6E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171B79 }; //D:800328F4 -struct weapon_stats Gmp5kZ_stats = { +struct WeaponStats Gmp5kZ_stats = { 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x75, &GcartridgeZ_struct, 1.0, 7.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 }; //D:80032964 -struct weapon_stats Gmp5ksilZ_stats = { +struct WeaponStats Gmp5ksilZ_stats = { 2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x2E, &GcartridgeZ_struct, 1.0, 9.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x171A79 }; //D:800329D4 -struct weapon_stats GspectreZ_stats = { +struct WeaponStats GspectreZ_stats = { 2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, 1, 0x32, 0x03, 0x00, 1, 4, 0x6D, &GcartridgeZ_struct, 1.4, 12.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79 }; //D:80032A44 -struct weapon_stats Gm16Z_stats = { +struct WeaponStats Gm16Z_stats = { 6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, 3, 0x1E, 0x02, 0x00, 2, 5, 0x71, &GcartblueZ_struct, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A7C }; //D:80032AB4 -struct weapon_stats Gfnp90Z_stats = { +struct WeaponStats Gfnp90Z_stats = { 4.0, 12.5, -25.299999, -32.5, 3.0, 8.0, 15.0, 1, 0x50, 0x02, 0x00, 3, 2, 0xFD, &GcartridgeZ_struct, 1.8, 6.0, 0.0, SCALEVAL_P90, 0.87, 1.0, 0x4080003, 3.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A78 }; //D:80032B24 -struct weapon_stats GshotgunZ_stats = { +struct WeaponStats GshotgunZ_stats = { 4.0, 11.0, -20.6, -19.5, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x79, &GcartshellZ_struct, 0.40000001, 20.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 9.0, 10.0, 0.0, 2.0, 25.0, 4.0, 2.0, 4.0, 5.0, 0x170AF9 }; //D:80032B94 -struct weapon_stats GautoshotZ_stats = { +struct WeaponStats GautoshotZ_stats = { 4.0, 12.0, -24.1, -19.0, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x74, NULL, 0.60000002, 16.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 4.5, 3.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 5.0, 0x170AF9 }; //D:80032C04 -struct weapon_stats GsniperrifleZ_stats = { +struct WeaponStats GsniperrifleZ_stats = { 6.0, 11.0, -20.700001, -31.5, 3.0, 3.0, 8.5, 3, 8, 0xFF, 0x10, 1, 0, 0x2E, &GcartblueZ_struct, 1.0, 0.0, 15.0, SCALEVAL_AK47, 0.91000003, 0.25, 0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x178A70 }; //D:80032C74 -struct weapon_stats GrugerZ_stats = { +struct WeaponStats GrugerZ_stats = { 2.0, 12.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xC, 6, 0xFF, 0x14, 0xA, 0, 0x6F, NULL, 2.0, 0.0, 0.0, SCALEVAL_RUGER, 0.86000001, 1.0, 0x81000FF, 12.0, 35.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 6.0, 0x170FB9 }; //D:80032CE4 -struct weapon_stats GgoldengunZ_stats = { +struct WeaponStats GgoldengunZ_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xD, 1, 0xFF, 0x00, 1, 0, 0x75, NULL, 100.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x40800FF, 5.0, 10.0, 0.0, 1.0, 9.0, 1.5, 2.0, 4.0, 0.0, 0x170F99 }; //D:80032D54 -struct weapon_stats GsilverwppkZ_stats = { +struct WeaponStats GsilverwppkZ_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 0xA, 0, 0x6B, &GcartridgeZ_struct, 2.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 }; //D:80032DC4 -struct weapon_stats GgoldwppkZ_stats = { +struct WeaponStats GgoldwppkZ_stats = { 1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &GcartridgeZ_struct, 100.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300,3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9 }; //D:80032E34 -struct weapon_stats GlaserZ_stats = { +struct WeaponStats GlaserZ_stats = { 1.0, 11.0, -19.5, -28.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 2, 0, 0xE4, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0x6000606, 0.0, 0.0, 0.0, 2.0, 16.0, 2.0, 2.0, 4.0, 2.0, 0x170B99 }; //D:80032EA4 -struct weapon_stats GwatchlaserZ_stats = { +struct WeaponStats GwatchlaserZ_stats = { 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0x18, 0x3E8, 0xFF, 0x00, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPIAN, 0.88999999, 1.0, 0xFF, 0.0, 0.0, 0.0, 1.0, 4.0, 0.2, 1.0, 4.0, 0.0, 0x600F91 }; //D:80032F14 -struct weapon_stats GgrenadelaunchZ_stats = { +struct WeaponStats GgrenadelaunchZ_stats = { 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0xB, 6, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x120AF1 }; //D:80032F84 -struct weapon_stats GrocketlaunchZ_stats = { +struct WeaponStats GrocketlaunchZ_stats = { 1.0, 10.5, -22.200001, -14.5, 3.0, 3.0, 8.5, 6, 1, 0xFF, 0x14, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 0.5, 0xFF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0,2.0, 4.0, 0.0, 0x120FF1 }; //D:80032FF4 -struct weapon_stats GgrenadeZ_stats = { +struct WeaponStats GgrenadeZ_stats = { 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 5, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0, 0.0, 0x422982 }; //D:80033064 -struct weapon_stats GtimedmineZ_stats = { +struct WeaponStats GtimedmineZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 9, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 }; //D:800330D4 -struct weapon_stats GproximitymineZ_stats = { +struct WeaponStats GproximitymineZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 8, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 }; //D:80033144 -struct weapon_stats GremotemineZ_stats = { +struct WeaponStats GremotemineZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 7, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82 }; //D:800331B4 -struct weapon_stats GtriggerZ_stats = { +struct WeaponStats GtriggerZ_stats = { 1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0,0.0, 0x890 }; //D:80033224 -struct weapon_stats GtaserZ_stats = { +struct WeaponStats GtaserZ_stats = { 1.0, 16.0, -16.700001, -22.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0x64, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 2.0, 10.0, 2.0, 2.0, 4.0, 0.0, 0x620F70 }; //D:80033294 -struct weapon_stats GtankZ_stats = { +struct WeaponStats GtankZ_stats = { 1.0, 8.0, -19.200001, -11.5, 3.0, 3.0, 8.5, 0x1C, 1, 0xFF, 0x14, 1, 0, 0xB, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x780078FF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0, 2.0, 4.0, 0.0, 0x76781 }; //D:80033304 -struct weapon_stats GbombcaseZ_stats = { +struct WeaponStats GbombcaseZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x10, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x402D82 }; //D:80033374 -struct weapon_stats GplastiqueZ_stats = { +struct WeaponStats GplastiqueZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x17, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x422D82 }; //D:800333E4 -struct weapon_stats GflarepistolZ_stats = { +struct WeaponStats GflarepistolZ_stats = { 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x11, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 }; //D:80033454 -struct weapon_stats GpitongunZ_stats = { +struct WeaponStats GpitongunZ_stats = { 1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x12, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1 }; //D:800334C4 -struct weapon_stats GbugZ_stats = { +struct WeaponStats GbugZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x14, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 }; //D:80033534 -struct weapon_stats GmicrocameraZ_stats = { +struct WeaponStats GmicrocameraZ_stats = { 1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x15, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982 }; //D:800335A4 -struct weapon_stats GwatchmagnetattractZ_stats = { +struct WeaponStats GwatchmagnetattractZ_stats = { 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x19, 0xA, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 0.0, 0x602980 }; //D:80033614 -struct weapon_stats GgoldeneyekeyZ_stats = { +struct WeaponStats GgoldeneyekeyZ_stats = { 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x16, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x482982 }; //D:80033684 -struct weapon_stats GcameraZ_stats = { +struct WeaponStats GcameraZ_stats = { 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0xF4, NULL, 1.0, 0.0, 20.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0xA990 }; //D:800336F4 -struct weapon_stats Csuit_lf_handz_stats = { +struct WeaponStats Csuit_lf_handz_stats = { 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 }; //D:80033764 -struct weapon_stats GjoypadZ_stats = { +struct WeaponStats GjoypadZ_stats = { 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 }; //D:800337D4 -struct weapon_stats stru_D_800337D4 = { +struct WeaponStats stru_D_800337D4 = { 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 6, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 }; //D:80033844 -struct weapon_stats stru_D_80033844 = { +struct WeaponStats stru_D_80033844 = { 1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0xB, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110 }; //D:800338B4 -struct weapon_stats stru_D_800338B4 = { +struct WeaponStats stru_D_800338B4 = { 1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x1D, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x82182 }; @@ -1211,7 +1209,7 @@ glabel sub_GAME_7F05C6FC -struct weapon_stats *get_ptr_item_statistics(int item) { +struct WeaponStats *get_ptr_item_statistics(int item) { if (gitem_structs[item].has_no_model == 0) { /* weapon has model, return stats struct */ return gitem_structs[item].item_weapon_stats; } @@ -1352,7 +1350,7 @@ glabel unknown_takes_playerhand /* 091560 7F05CA30 258CFFFC */ addiu $t4, $t4, -4 .L7F05CA34: /* 091564 7F05CA34 ACAC0000 */ sw $t4, ($a1) -/* 091568 7F05CA38 0C002914 */ jal get_random_value +/* 091568 7F05CA38 0C002914 */ jal randomGetNext /* 09156C 7F05CA3C AC6C0A08 */ sw $t4, 0xa08($v1) /* 091570 7F05CA40 44822000 */ mtc1 $v0, $f4 /* 091574 7F05CA44 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -1386,7 +1384,7 @@ glabel unknown_takes_playerhand /* 0915E0 7F05CAB0 46144182 */ mul.s $f6, $f8, $f20 /* 0915E4 7F05CAB4 00004012 */ mflo $t0 /* 0915E8 7F05CAB8 03084821 */ addu $t1, $t8, $t0 -/* 0915EC 7F05CABC 0C002914 */ jal get_random_value +/* 0915EC 7F05CABC 0C002914 */ jal randomGetNext /* 0915F0 7F05CAC0 E52609A8 */ swc1 $f6, 0x9a8($t1) /* 0915F4 7F05CAC4 44825000 */ mtc1 $v0, $f10 /* 0915F8 7F05CAC8 04410005 */ bgez $v0, .L7F05CAE0 @@ -1433,7 +1431,7 @@ glabel unknown_takes_playerhand /* 091698 7F05CB68 03384021 */ addu $t0, $t9, $t8 /* 09169C 7F05CB6C 00005012 */ mflo $t2 /* 0916A0 7F05CB70 010A5821 */ addu $t3, $t0, $t2 -/* 0916A4 7F05CB74 0C002914 */ jal get_random_value +/* 0916A4 7F05CB74 0C002914 */ jal randomGetNext /* 0916A8 7F05CB78 E56409B0 */ swc1 $f4, 0x9b0($t3) /* 0916AC 7F05CB7C 44824000 */ mtc1 $v0, $f8 /* 0916B0 7F05CB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1480,7 +1478,7 @@ glabel unknown_takes_playerhand /* 091750 7F05CC20 01285021 */ addu $t2, $t1, $t0 /* 091754 7F05CC24 00006812 */ mflo $t5 /* 091758 7F05CC28 014D6021 */ addu $t4, $t2, $t5 -/* 09175C 7F05CC2C 0C002914 */ jal get_random_value +/* 09175C 7F05CC2C 0C002914 */ jal randomGetNext /* 091760 7F05CC30 E59209DC */ swc1 $f18, 0x9dc($t4) /* 091764 7F05CC34 44828000 */ mtc1 $v0, $f16 /* 091768 7F05CC38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1511,7 +1509,7 @@ glabel unknown_takes_playerhand /* 0917C8 7F05CC98 46144102 */ mul.s $f4, $f8, $f20 /* 0917CC 7F05CC9C 00004812 */ mflo $t1 /* 0917D0 7F05CCA0 03294021 */ addu $t0, $t9, $t1 -/* 0917D4 7F05CCA4 0C002914 */ jal get_random_value +/* 0917D4 7F05CCA4 0C002914 */ jal randomGetNext /* 0917D8 7F05CCA8 E50409E0 */ swc1 $f4, 0x9e0($t0) /* 0917DC 7F05CCAC 44825000 */ mtc1 $v0, $f10 /* 0917E0 7F05CCB0 001150C0 */ sll $t2, $s1, 3 @@ -1541,7 +1539,7 @@ glabel unknown_takes_playerhand /* 09183C 7F05CD0C 00007812 */ mflo $t7 /* 091840 7F05CD10 016A6821 */ addu $t5, $t3, $t2 /* 091844 7F05CD14 01AF7021 */ addu $t6, $t5, $t7 -/* 091848 7F05CD18 0C002914 */ jal get_random_value +/* 091848 7F05CD18 0C002914 */ jal randomGetNext /* 09184C 7F05CD1C E5D20978 */ swc1 $f18, 0x978($t6) /* 091850 7F05CD20 8E780000 */ lw $t8, ($s3) /* 091854 7F05CD24 44828000 */ mtc1 $v0, $f16 @@ -1563,7 +1561,7 @@ glabel unknown_takes_playerhand /* 091890 7F05CD60 46128102 */ mul.s $f4, $f16, $f18 /* 091894 7F05CD64 00004812 */ mflo $t1 /* 091898 7F05CD68 00694021 */ addu $t0, $v1, $t1 -/* 09189C 7F05CD6C 0C002914 */ jal get_random_value +/* 09189C 7F05CD6C 0C002914 */ jal randomGetNext /* 0918A0 7F05CD70 E504097C */ swc1 $f4, 0x97c($t0) /* 0918A4 7F05CD74 44824000 */ mtc1 $v0, $f8 /* 0918A8 7F05CD78 001150C0 */ sll $t2, $s1, 3 @@ -2696,11 +2694,11 @@ f32 sub_GAME_7F05DCE8(HANDEDNESS hand) if (hand == RIGHT_HAND) { - ret = get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->pos_x; + ret = get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->PosX; } else { - ret = -get_ptr_item_statistics(get_item_in_hand_or_watch_menu(LEFT_HAND))->pos_x; + ret = -get_ptr_item_statistics(get_item_in_hand_or_watch_menu(LEFT_HAND))->PosX; } return ret; @@ -2713,7 +2711,7 @@ f32 get_item_in_hand_zoom(void) { if (get_item_in_hand_or_watch_menu(RIGHT_HAND) == ITEM_CAMERA) { return pPlayer->camera_zoom; } - return get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->zoom; + return get_ptr_item_statistics(get_item_in_hand_or_watch_menu(RIGHT_HAND))->Zoom; } void camera_sniper_zoom_in(f32 zoom) @@ -2754,37 +2752,37 @@ void camera_sniper_zoom_out(f32 zoom) } } -f32 bondwalkGetItemDestructionAmount(ITEM_IDS item) +f32 bondwalkItemGetDestructionAmount(ITEM_IDS item) { - return get_ptr_item_statistics(item)->destruction_amount; + return get_ptr_item_statistics(item)->DestructionAmount; } -f32 bondwalkGetItemField68(ITEM_IDS item) +f32 bondwalkItemGetForceOfImpact(ITEM_IDS item) { - return get_ptr_item_statistics(item)->field_68; + return get_ptr_item_statistics(item)->ForceOfImpact; } -s8 get_automatic_firing_rate(ITEM_IDS item) { - return get_ptr_item_statistics(item)->automatic_firing_rate; +s8 bondwalkItemGetAutomaticFiringRate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->AutomaticFiringRate; } -u8 get_sound_trigger_rate(ITEM_IDS item) { - return get_ptr_item_statistics(item)->sound_trigger_rate; +u8 bondwalkItemGetSoundTriggerRate(ITEM_IDS item) { + return get_ptr_item_statistics(item)->SoundTriggerRate; } u16 bondwalkItemGetSound(ITEM_IDS item) { - return get_ptr_item_statistics(item)->sound; + return get_ptr_item_statistics(item)->Sound; } -u8 bondwalkItemGetShootThroughFlag(ITEM_IDS item) +u8 bondwalkItemGetObjectsShootThrough(ITEM_IDS item) { - return get_ptr_item_statistics(item)->objects_shoot_through; + return get_ptr_item_statistics(item)->ObjectsShootThrough; } @@ -2803,7 +2801,7 @@ s32 bondwalkItemHasAmmo(ITEM_IDS item) u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask) { - return ((get_ptr_item_statistics(item)->bitflags & mask) != 0); + return ((get_ptr_item_statistics(item)->BitFlags & mask) != 0); } @@ -3053,7 +3051,7 @@ glabel sub_GAME_7F05E0E4 /* 092EF0 7F05E3C0 45020019 */ bc1fl .L7F05E428 /* 092EF4 7F05E3C4 C4601070 */ lwc1 $f0, 0x1070($v1) /* 092EF8 7F05E3C8 44809000 */ mtc1 $zero, $f18 -/* 092EFC 7F05E3CC 0C002914 */ jal get_random_value +/* 092EFC 7F05E3CC 0C002914 */ jal randomGetNext /* 092F00 7F05E3D0 E4721074 */ swc1 $f18, 0x1074($v1) /* 092F04 7F05E3D4 44823000 */ mtc1 $v0, $f6 /* 092F08 7F05E3D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -3963,7 +3961,7 @@ glabel sub_GAME_7F05EE24 /* 093B5C 7F05F02C 3C018005 */ lui $at, %hi(D_80053C90) /* 093B60 7F05F030 240F003C */ li $t7, 60 /* 093B64 7F05F034 8C4B0000 */ lw $t3, ($v0) -/* 093B68 7F05F038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 093B68 7F05F038 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 093B6C 7F05F03C 24050004 */ li $a1, 4 /* 093B70 7F05F040 356C0002 */ ori $t4, $t3, 2 /* 093B74 7F05F044 AC4C0000 */ sw $t4, ($v0) @@ -3978,7 +3976,7 @@ glabel sub_GAME_7F05EE24 /* 093B98 7F05F068 8E18006C */ lw $t8, 0x6c($s0) /* 093B9C 7F05F06C AF0F00BC */ sw $t7, 0xbc($t8) /* 093BA0 7F05F070 0C002382 */ jal play_sfx_a1 -/* 093BA4 7F05F074 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 093BA4 7F05F074 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 093BA8 7F05F078 10400003 */ beqz $v0, .L7F05F088 /* 093BAC 7F05F07C 00402025 */ move $a0, $v0 /* 093BB0 7F05F080 0FC14E84 */ jal sub_GAME_7F053A10 @@ -4116,7 +4114,7 @@ glabel sub_GAME_7F05F09C /* 093D54 7F05F224 E7A0006C */ swc1 $f0, 0x6c($sp) /* 093D58 7F05F228 0FC1601A */ jal matrix_4x4_multiply_in_place /* 093D5C 7F05F22C E7A00070 */ swc1 $f0, 0x70($sp) -/* 093D60 7F05F230 0C002914 */ jal get_random_value +/* 093D60 7F05F230 0C002914 */ jal randomGetNext /* 093D64 7F05F234 00000000 */ nop /* 093D68 7F05F238 44824000 */ mtc1 $v0, $f8 /* 093D6C 7F05F23C 27A400EC */ addiu $a0, $sp, 0xec @@ -4545,7 +4543,7 @@ generate_temp_default: /* 09420C 7F05F6DC 3C018005 */ lui $at, %hi(D_80053DC8) /* 094210 7F05F6E0 240B003C */ li $t3, 60 /* 094214 7F05F6E4 8C480000 */ lw $t0, ($v0) -/* 094218 7F05F6E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094218 7F05F6E8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 09421C 7F05F6EC 24050004 */ li $a1, 4 /* 094220 7F05F6F0 35090002 */ ori $t1, $t0, 2 /* 094224 7F05F6F4 AC490000 */ sw $t1, ($v0) @@ -4556,7 +4554,7 @@ generate_temp_default: /* 094238 7F05F708 8E0C006C */ lw $t4, 0x6c($s0) /* 09423C 7F05F70C AD8B00BC */ sw $t3, 0xbc($t4) /* 094240 7F05F710 0C002382 */ jal play_sfx_a1 -/* 094244 7F05F714 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094244 7F05F714 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 094248 7F05F718 10400003 */ beqz $v0, .L7F05F728 /* 09424C 7F05F71C 00402025 */ move $a0, $v0 /* 094250 7F05F720 0FC14E84 */ jal sub_GAME_7F053A10 @@ -4783,7 +4781,7 @@ glabel sub_GAME_7F05F928 /* 09451C 7F05F9EC 8E280008 */ lw $t0, 8($s1) /* 094520 7F05F9F0 8504000E */ lh $a0, 0xe($t0) /* 094524 7F05F9F4 00044980 */ sll $t1, $a0, 6 -/* 094528 7F05F9F8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 094528 7F05F9F8 0FC2F5C5 */ jal dynAllocate /* 09452C 7F05F9FC 01202025 */ move $a0, $t1 /* 094530 7F05FA00 AE22000C */ sw $v0, 0xc($s1) /* 094534 7F05FA04 26040018 */ addiu $a0, $s0, 0x18 @@ -5199,23 +5197,23 @@ glabel sub_GAME_7F05FB64 /* 094A9C 7F05FF6C 8C8D006C */ lw $t5, 0x6c($a0) /* 094AA0 7F05FF70 ADAC00BC */ sw $t4, 0xbc($t5) /* 094AA4 7F05FF74 8C82006C */ lw $v0, 0x6c($a0) -/* 094AA8 7F05FF78 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AA8 7F05FF78 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 094AAC 7F05FF7C 8C4E0098 */ lw $t6, 0x98($v0) /* 094AB0 7F05FF80 24460098 */ addiu $a2, $v0, 0x98 /* 094AB4 7F05FF84 55C00006 */ bnezl $t6, .L7F05FFA0 /* 094AB8 7F05FF88 8C4F009C */ lw $t7, 0x9c($v0) /* 094ABC 7F05FF8C 0C002382 */ jal play_sfx_a1 -/* 094AC0 7F05FF90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094AC0 7F05FF90 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 094AC4 7F05FF94 10000009 */ b .L7F05FFBC /* 094AC8 7F05FF98 8FBF001C */ lw $ra, 0x1c($sp) /* 094ACC 7F05FF9C 8C4F009C */ lw $t7, 0x9c($v0) .L7F05FFA0: -/* 094AD0 7F05FFA0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 094AD0 7F05FFA0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 094AD4 7F05FFA4 24050001 */ li $a1, 1 /* 094AD8 7F05FFA8 15E00003 */ bnez $t7, .L7F05FFB8 /* 094ADC 7F05FFAC 2446009C */ addiu $a2, $v0, 0x9c /* 094AE0 7F05FFB0 0C002382 */ jal play_sfx_a1 -/* 094AE4 7F05FFB4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 094AE4 7F05FFB4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) .L7F05FFB8: /* 094AE8 7F05FFB8 8FBF001C */ lw $ra, 0x1c($sp) .L7F05FFBC: @@ -5784,7 +5782,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095218 7F0606E8 24050040 */ li $a1, 64 /* 09521C 7F0606EC 10400016 */ beqz $v0, .L7F060748 /* 095220 7F0606F0 00000000 */ nop -/* 095224 7F0606F4 0C002914 */ jal get_random_value +/* 095224 7F0606F4 0C002914 */ jal randomGetNext /* 095228 7F0606F8 00000000 */ nop /* 09522C 7F0606FC 44822000 */ mtc1 $v0, $f4 /* 095230 7F060700 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -5807,7 +5805,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095270 7F060740 46089180 */ add.s $f6, $f18, $f8 /* 095274 7F060744 E7A60194 */ swc1 $f6, 0x194($sp) .L7F060748: -/* 095278 7F060748 0C002914 */ jal get_random_value +/* 095278 7F060748 0C002914 */ jal randomGetNext /* 09527C 7F06074C 00000000 */ nop /* 095280 7F060750 44825000 */ mtc1 $v0, $f10 /* 095284 7F060754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -5828,7 +5826,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0952BC 7F06078C 46064282 */ mul.s $f10, $f8, $f6 /* 0952C0 7F060790 460A2401 */ sub.s $f16, $f4, $f10 /* 0952C4 7F060794 46109200 */ add.s $f8, $f18, $f16 -/* 0952C8 7F060798 0C002914 */ jal get_random_value +/* 0952C8 7F060798 0C002914 */ jal randomGetNext /* 0952CC 7F06079C E7A80198 */ swc1 $f8, 0x198($sp) /* 0952D0 7F0607A0 44823000 */ mtc1 $v0, $f6 /* 0952D4 7F0607A4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -6176,7 +6174,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0957F0 7F060CC0 AFA201A0 */ sw $v0, 0x1a0($sp) /* 0957F4 7F060CC4 0004C180 */ sll $t8, $a0, 6 /* 0957F8 7F060CC8 03002025 */ move $a0, $t8 -/* 0957FC 7F060CCC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0957FC 7F060CCC 0FC2F5C5 */ jal dynAllocate /* 095800 7F060CD0 AFA00100 */ sw $zero, 0x100($sp) /* 095804 7F060CD4 8FB901A0 */ lw $t9, 0x1a0($sp) /* 095808 7F060CD8 AFA202A4 */ sw $v0, 0x2a4($sp) @@ -6392,7 +6390,7 @@ glabel handles_firing_or_throwing_weapon_in_hand .L7F060FE8: /* 095B18 7F060FE8 53200142 */ beql $t9, $zero, .L7F0614F4 /* 095B1C 7F060FEC C6100260 */ lwc1 $f16, 0x260($s0) -/* 095B20 7F060FF0 0C002914 */ jal get_random_value +/* 095B20 7F060FF0 0C002914 */ jal randomGetNext /* 095B24 7F060FF4 00000000 */ nop /* 095B28 7F060FF8 44829000 */ mtc1 $v0, $f18 /* 095B2C 7F060FFC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -6420,7 +6418,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095B80 7F061050 E7B0007C */ swc1 $f16, 0x7c($sp) /* 095B84 7F061054 10400018 */ beqz $v0, .L7F0610B8 /* 095B88 7F061058 8FA40108 */ lw $a0, 0x108($sp) -/* 095B8C 7F06105C 0C002914 */ jal get_random_value +/* 095B8C 7F06105C 0C002914 */ jal randomGetNext /* 095B90 7F061060 00000000 */ nop /* 095B94 7F061064 44823000 */ mtc1 $v0, $f6 /* 095B98 7F061068 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -6529,7 +6527,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095D24 7F0611F4 C7B0025C */ lwc1 $f16, 0x25c($sp) /* 095D28 7F0611F8 46044480 */ add.s $f18, $f8, $f4 /* 095D2C 7F0611FC 46128280 */ add.s $f10, $f16, $f18 -/* 095D30 7F061200 0C002914 */ jal get_random_value +/* 095D30 7F061200 0C002914 */ jal randomGetNext /* 095D34 7F061204 E7AA008C */ swc1 $f10, 0x8c($sp) /* 095D38 7F061208 44823000 */ mtc1 $v0, $f6 /* 095D3C 7F06120C 27A401E4 */ addiu $a0, $sp, 0x1e4 @@ -6656,7 +6654,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095F18 7F0613E8 460A2482 */ mul.s $f18, $f4, $f10 /* 095F1C 7F0613EC 46083400 */ add.s $f16, $f6, $f8 /* 095F20 7F0613F0 E7B0008C */ swc1 $f16, 0x8c($sp) -/* 095F24 7F0613F4 0C002914 */ jal get_random_value +/* 095F24 7F0613F4 0C002914 */ jal randomGetNext /* 095F28 7F0613F8 E7B20038 */ swc1 $f18, 0x38($sp) /* 095F2C 7F0613FC 44823000 */ mtc1 $v0, $f6 /* 095F30 7F061400 27A401E4 */ addiu $a0, $sp, 0x1e4 @@ -7568,7 +7566,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095778 7F060C08 24050040 */ li $a1, 64 /* 09577C 7F060C0C 10400016 */ beqz $v0, .Ljp7F060C68 /* 095780 7F060C10 00000000 */ nop -/* 095784 7F060C14 0C002918 */ jal get_random_value +/* 095784 7F060C14 0C002918 */ jal randomGetNext /* 095788 7F060C18 00000000 */ nop /* 09578C 7F060C1C 44822000 */ mtc1 $v0, $f4 /* 095790 7F060C20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -7591,7 +7589,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0957D0 7F060C60 46089180 */ add.s $f6, $f18, $f8 /* 0957D4 7F060C64 E7A60194 */ swc1 $f6, 0x194($sp) .Ljp7F060C68: -/* 0957D8 7F060C68 0C002918 */ jal get_random_value +/* 0957D8 7F060C68 0C002918 */ jal randomGetNext /* 0957DC 7F060C6C 00000000 */ nop /* 0957E0 7F060C70 44825000 */ mtc1 $v0, $f10 /* 0957E4 7F060C74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -7612,7 +7610,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 09581C 7F060CAC 46064282 */ mul.s $f10, $f8, $f6 /* 095820 7F060CB0 460A2401 */ sub.s $f16, $f4, $f10 /* 095824 7F060CB4 46109200 */ add.s $f8, $f18, $f16 -/* 095828 7F060CB8 0C002918 */ jal get_random_value +/* 095828 7F060CB8 0C002918 */ jal randomGetNext /* 09582C 7F060CBC E7A80198 */ swc1 $f8, 0x198($sp) /* 095830 7F060CC0 44823000 */ mtc1 $v0, $f6 /* 095834 7F060CC4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -7960,7 +7958,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 095D50 7F0611E0 AFA201A0 */ sw $v0, 0x1a0($sp) /* 095D54 7F0611E4 0004C180 */ sll $t8, $a0, 6 /* 095D58 7F0611E8 03002025 */ move $a0, $t8 -/* 095D5C 7F0611EC 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 095D5C 7F0611EC 0FC2F8B1 */ jal dynAllocate /* 095D60 7F0611F0 AFA00100 */ sw $zero, 0x100($sp) /* 095D64 7F0611F4 8FB901A0 */ lw $t9, 0x1a0($sp) /* 095D68 7F0611F8 AFA202A4 */ sw $v0, 0x2a4($sp) @@ -8176,7 +8174,7 @@ glabel handles_firing_or_throwing_weapon_in_hand .Ljp7F061508: /* 096078 7F061508 53200142 */ beql $t9, $zero, .Ljp7F061A14 /* 09607C 7F06150C C6100260 */ lwc1 $f16, 0x260($s0) -/* 096080 7F061510 0C002918 */ jal get_random_value +/* 096080 7F061510 0C002918 */ jal randomGetNext /* 096084 7F061514 00000000 */ nop /* 096088 7F061518 44829000 */ mtc1 $v0, $f18 /* 09608C 7F06151C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -8204,7 +8202,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 0960E0 7F061570 E7B0007C */ swc1 $f16, 0x7c($sp) /* 0960E4 7F061574 10400018 */ beqz $v0, .Ljp7F0615D8 /* 0960E8 7F061578 8FA40108 */ lw $a0, 0x108($sp) -/* 0960EC 7F06157C 0C002918 */ jal get_random_value +/* 0960EC 7F06157C 0C002918 */ jal randomGetNext /* 0960F0 7F061580 00000000 */ nop /* 0960F4 7F061584 44823000 */ mtc1 $v0, $f6 /* 0960F8 7F061588 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -8313,7 +8311,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 096284 7F061714 C7B0025C */ lwc1 $f16, 0x25c($sp) /* 096288 7F061718 46044480 */ add.s $f18, $f8, $f4 /* 09628C 7F06171C 46128280 */ add.s $f10, $f16, $f18 -/* 096290 7F061720 0C002918 */ jal get_random_value +/* 096290 7F061720 0C002918 */ jal randomGetNext /* 096294 7F061724 E7AA008C */ swc1 $f10, 0x8c($sp) /* 096298 7F061728 44823000 */ mtc1 $v0, $f6 /* 09629C 7F06172C 27A401E4 */ addiu $a0, $sp, 0x1e4 @@ -8440,7 +8438,7 @@ glabel handles_firing_or_throwing_weapon_in_hand /* 096478 7F061908 460A2482 */ mul.s $f18, $f4, $f10 /* 09647C 7F06190C 46083400 */ add.s $f16, $f6, $f8 /* 096480 7F061910 E7B0008C */ swc1 $f16, 0x8c($sp) -/* 096484 7F061914 0C002918 */ jal get_random_value +/* 096484 7F061914 0C002918 */ jal randomGetNext /* 096488 7F061918 E7B20038 */ swc1 $f18, 0x38($sp) /* 09648C 7F06191C 44823000 */ mtc1 $v0, $f6 /* 096490 7F061920 27A401E4 */ addiu $a0, $sp, 0x1e4 @@ -8806,6 +8804,1791 @@ weapon_bullet_type_shotgun_mine: ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80053DE0 +.word 0x3f733333 /*0.94999999*/ +glabel D_80053DE4 +.word 0x3d4cccd0 /*0.050000012*/ +glabel D_80053DE8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DEC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF0 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DF4 +.word 0x3e99999a /*0.30000001*/ +glabel D_80053DF8 +.word 0x3f19999a /*0.60000002*/ +glabel D_80053DFC +.word 0x3e99999a /*0.30000001*/ +glabel D_80053E00 +.word 0x41de6666 /*27.799999*/ +glabel D_80053E04 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E0C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E10 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E14 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E18 +.word 0x3f060a92 /*0.52359879*/ +glabel D_80053E1C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E24 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E28 +.word 0x3dccccce /*0.10000001*/ +glabel D_80053E2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E30 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80053E34 +.word 0x40c90fdb /*6.2831855*/ + +/*D:80053E38*/ +glabel jpt_weapon_bullet_type +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_shotgun_mine +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_pistol +.word weapon_bullet_type_none +.word weapon_bullet_type_none + +.text +glabel handles_firing_or_throwing_weapon_in_hand +/* 094AF8 7F05FFC8 27BDFD58 */ addiu $sp, $sp, -0x2a8 +/* 094AFC 7F05FFCC 3C0F8003 */ lui $t7, %hi(D_80035C40) +/* 094B00 7F05FFD0 AFBF0034 */ sw $ra, 0x34($sp) +/* 094B04 7F05FFD4 AFB00030 */ sw $s0, 0x30($sp) +/* 094B08 7F05FFD8 25EF5C40 */ addiu $t7, %lo(D_80035C40) # addiu $t7, $t7, 0x5c40 +/* 094B0C 7F05FFDC 8DE10000 */ lw $at, ($t7) +/* 094B10 7F05FFE0 27AE0194 */ addiu $t6, $sp, 0x194 +/* 094B14 7F05FFE4 8DED0004 */ lw $t5, 4($t7) +/* 094B18 7F05FFE8 ADC10000 */ sw $at, ($t6) +/* 094B1C 7F05FFEC 8DE10008 */ lw $at, 8($t7) +/* 094B20 7F05FFF0 0004C0C0 */ sll $t8, $a0, 3 +/* 094B24 7F05FFF4 0304C023 */ subu $t8, $t8, $a0 +/* 094B28 7F05FFF8 0018C080 */ sll $t8, $t8, 2 +/* 094B2C 7F05FFFC 0304C021 */ addu $t8, $t8, $a0 +/* 094B30 7F060000 3C198008 */ lui $t9, %hi(pPlayer) +/* 094B34 7F060004 ADCD0004 */ sw $t5, 4($t6) +/* 094B38 7F060008 ADC10008 */ sw $at, 8($t6) +/* 094B3C 7F06000C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 094B40 7F060010 0018C080 */ sll $t8, $t8, 2 +/* 094B44 7F060014 0304C021 */ addu $t8, $t8, $a0 +/* 094B48 7F060018 0018C0C0 */ sll $t8, $t8, 3 +/* 094B4C 7F06001C 03388021 */ addu $s0, $t9, $t8 +/* 094B50 7F060020 AFA0010C */ sw $zero, 0x10c($sp) +/* 094B54 7F060024 AFA00108 */ sw $zero, 0x108($sp) +/* 094B58 7F060028 26100870 */ addiu $s0, $s0, 0x870 +/* 094B5C 7F06002C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B60 7F060030 AFA402A8 */ sw $a0, 0x2a8($sp) +/* 094B64 7F060034 AFA200FC */ sw $v0, 0xfc($sp) +/* 094B68 7F060038 0FC1722D */ jal get_ptr_item_statistics +/* 094B6C 7F06003C 00402025 */ move $a0, $v0 +/* 094B70 7F060040 8FAE02A8 */ lw $t6, 0x2a8($sp) +/* 094B74 7F060044 AFA200F8 */ sw $v0, 0xf8($sp) +/* 094B78 7F060048 15C0002D */ bnez $t6, .L7F060100 +/* 094B7C 7F06004C 00000000 */ nop +/* 094B80 7F060050 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094B84 7F060054 24040001 */ li $a0, 1 +/* 094B88 7F060058 00402025 */ move $a0, $v0 +/* 094B8C 7F06005C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094B90 7F060060 24050800 */ li $a1, 2048 +/* 094B94 7F060064 10400015 */ beqz $v0, .L7F0600BC +/* 094B98 7F060068 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094B9C 7F06006C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094BA0 7F060070 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BA4 7F060074 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BA8 7F060078 44813000 */ mtc1 $at, $f6 +/* 094BAC 7F06007C 46000100 */ add.s $f4, $f0, $f0 +/* 094BB0 7F060080 C60A01C4 */ lwc1 $f10, 0x1c4($s0) +/* 094BB4 7F060084 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BB8 7F060088 44819000 */ mtc1 $at, $f18 +/* 094BBC 7F06008C 46062203 */ div.s $f8, $f4, $f6 +/* 094BC0 7F060090 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 094BC4 7F060094 46085400 */ add.s $f16, $f10, $f8 +/* 094BC8 7F060098 E61001C4 */ swc1 $f16, 0x1c4($s0) +/* 094BCC 7F06009C C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094BD0 7F0600A0 4604903C */ c.lt.s $f18, $f4 +/* 094BD4 7F0600A4 00000000 */ nop +/* 094BD8 7F0600A8 4500003F */ bc1f .L7F0601A8 +/* 094BDC 7F0600AC 00000000 */ nop +/* 094BE0 7F0600B0 44813000 */ mtc1 $at, $f6 +/* 094BE4 7F0600B4 1000003C */ b .L7F0601A8 +/* 094BE8 7F0600B8 E60601C4 */ swc1 $f6, 0x1c4($s0) +.L7F0600BC: +/* 094BEC 7F0600BC C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094BF0 7F0600C0 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094BF4 7F0600C4 44814000 */ mtc1 $at, $f8 +/* 094BF8 7F0600C8 46000280 */ add.s $f10, $f0, $f0 +/* 094BFC 7F0600CC C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094C00 7F0600D0 46085403 */ div.s $f16, $f10, $f8 +/* 094C04 7F0600D4 44805000 */ mtc1 $zero, $f10 +/* 094C08 7F0600D8 46109101 */ sub.s $f4, $f18, $f16 +/* 094C0C 7F0600DC E60401C4 */ swc1 $f4, 0x1c4($s0) +/* 094C10 7F0600E0 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C14 7F0600E4 460A303C */ c.lt.s $f6, $f10 +/* 094C18 7F0600E8 00000000 */ nop +/* 094C1C 7F0600EC 4500002E */ bc1f .L7F0601A8 +/* 094C20 7F0600F0 00000000 */ nop +/* 094C24 7F0600F4 44804000 */ mtc1 $zero, $f8 +/* 094C28 7F0600F8 1000002B */ b .L7F0601A8 +/* 094C2C 7F0600FC E60801C4 */ swc1 $f8, 0x1c4($s0) +.L7F060100: +/* 094C30 7F060100 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 094C34 7F060104 00002025 */ move $a0, $zero +/* 094C38 7F060108 00402025 */ move $a0, $v0 +/* 094C3C 7F06010C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 094C40 7F060110 24050800 */ li $a1, 2048 +/* 094C44 7F060114 10400013 */ beqz $v0, .L7F060164 +/* 094C48 7F060118 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C4C 7F06011C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 094C50 7F060120 44811000 */ mtc1 $at, $f2 +/* 094C54 7F060124 3C018005 */ lui $at, %hi(global_timer_delta) +/* 094C58 7F060128 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C5C 7F06012C 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C60 7F060130 44818000 */ mtc1 $at, $f16 +/* 094C64 7F060134 46000480 */ add.s $f18, $f0, $f0 +/* 094C68 7F060138 C60601C4 */ lwc1 $f6, 0x1c4($s0) +/* 094C6C 7F06013C 46109103 */ div.s $f4, $f18, $f16 +/* 094C70 7F060140 46043281 */ sub.s $f10, $f6, $f4 +/* 094C74 7F060144 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094C78 7F060148 C60801C4 */ lwc1 $f8, 0x1c4($s0) +/* 094C7C 7F06014C 4602403C */ c.lt.s $f8, $f2 +/* 094C80 7F060150 00000000 */ nop +/* 094C84 7F060154 45000014 */ bc1f .L7F0601A8 +/* 094C88 7F060158 00000000 */ nop +/* 094C8C 7F06015C 10000012 */ b .L7F0601A8 +/* 094C90 7F060160 E60201C4 */ swc1 $f2, 0x1c4($s0) +.L7F060164: +/* 094C94 7F060164 C4208378 */ lwc1 $f0, %lo(global_timer_delta)($at) +/* 094C98 7F060168 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 094C9C 7F06016C 44818000 */ mtc1 $at, $f16 +/* 094CA0 7F060170 46000480 */ add.s $f18, $f0, $f0 +/* 094CA4 7F060174 C60401C4 */ lwc1 $f4, 0x1c4($s0) +/* 094CA8 7F060178 44804000 */ mtc1 $zero, $f8 +/* 094CAC 7F06017C 46109183 */ div.s $f6, $f18, $f16 +/* 094CB0 7F060180 46062280 */ add.s $f10, $f4, $f6 +/* 094CB4 7F060184 E60A01C4 */ swc1 $f10, 0x1c4($s0) +/* 094CB8 7F060188 C61201C4 */ lwc1 $f18, 0x1c4($s0) +/* 094CBC 7F06018C 4612403C */ c.lt.s $f8, $f18 +/* 094CC0 7F060190 00000000 */ nop +/* 094CC4 7F060194 45000004 */ bc1f .L7F0601A8 +/* 094CC8 7F060198 00000000 */ nop +/* 094CCC 7F06019C 44808000 */ mtc1 $zero, $f16 +/* 094CD0 7F0601A0 00000000 */ nop +/* 094CD4 7F0601A4 E61001C4 */ swc1 $f16, 0x1c4($s0) +.L7F0601A8: +/* 094CD8 7F0601A8 3C0F8003 */ lui $t7, %hi(D_80035C4C) +/* 094CDC 7F0601AC 25EF5C4C */ addiu $t7, %lo(D_80035C4C) # addiu $t7, $t7, 0x5c4c +/* 094CE0 7F0601B0 8DE10000 */ lw $at, ($t7) +/* 094CE4 7F0601B4 27AC00E0 */ addiu $t4, $sp, 0xe0 +/* 094CE8 7F0601B8 3C0E8003 */ lui $t6, %hi(D_80035C58) +/* 094CEC 7F0601BC AD810000 */ sw $at, ($t4) +/* 094CF0 7F0601C0 8DF90004 */ lw $t9, 4($t7) +/* 094CF4 7F0601C4 25CE5C58 */ addiu $t6, %lo(D_80035C58) # addiu $t6, $t6, 0x5c58 +/* 094CF8 7F0601C8 27B800D4 */ addiu $t8, $sp, 0xd4 +/* 094CFC 7F0601CC AD990004 */ sw $t9, 4($t4) +/* 094D00 7F0601D0 8DE10008 */ lw $at, 8($t7) +/* 094D04 7F0601D4 3C0D8003 */ lui $t5, %hi(D_80035C64) +/* 094D08 7F0601D8 25AD5C64 */ addiu $t5, %lo(D_80035C64) # addiu $t5, $t5, 0x5c64 +/* 094D0C 7F0601DC AD810008 */ sw $at, 8($t4) +/* 094D10 7F0601E0 8DC10000 */ lw $at, ($t6) +/* 094D14 7F0601E4 8DCF0004 */ lw $t7, 4($t6) +/* 094D18 7F0601E8 27B900C8 */ addiu $t9, $sp, 0xc8 +/* 094D1C 7F0601EC AF010000 */ sw $at, ($t8) +/* 094D20 7F0601F0 8DC10008 */ lw $at, 8($t6) +/* 094D24 7F0601F4 AF0F0004 */ sw $t7, 4($t8) +/* 094D28 7F0601F8 2403000C */ li $v1, 12 +/* 094D2C 7F0601FC AF010008 */ sw $at, 8($t8) +/* 094D30 7F060200 8DA10000 */ lw $at, ($t5) +/* 094D34 7F060204 8DAE0004 */ lw $t6, 4($t5) +/* 094D38 7F060208 AF210000 */ sw $at, ($t9) +/* 094D3C 7F06020C 8DA10008 */ lw $at, 8($t5) +/* 094D40 7F060210 AF2E0004 */ sw $t6, 4($t9) +/* 094D44 7F060214 AF210008 */ sw $at, 8($t9) +/* 094D48 7F060218 8E020198 */ lw $v0, 0x198($s0) +/* 094D4C 7F06021C C604019C */ lwc1 $f4, 0x19c($s0) +/* 094D50 7F060220 AFAC0014 */ sw $t4, 0x14($sp) +/* 094D54 7F060224 244F0003 */ addiu $t7, $v0, 3 +/* 094D58 7F060228 05E10004 */ bgez $t7, .L7F06023C +/* 094D5C 7F06022C 31F80003 */ andi $t8, $t7, 3 +/* 094D60 7F060230 13000002 */ beqz $t8, .L7F06023C +/* 094D64 7F060234 00000000 */ nop +/* 094D68 7F060238 2718FFFC */ addiu $t8, $t8, -4 +.L7F06023C: +/* 094D6C 7F06023C 03030019 */ multu $t8, $v1 +/* 094D70 7F060240 244E0001 */ addiu $t6, $v0, 1 +/* 094D74 7F060244 E7A40010 */ swc1 $f4, 0x10($sp) +/* 094D78 7F060248 0000C812 */ mflo $t9 +/* 094D7C 7F06024C 02194021 */ addu $t0, $s0, $t9 +/* 094D80 7F060250 24590002 */ addiu $t9, $v0, 2 +/* 094D84 7F060254 00430019 */ multu $v0, $v1 +/* 094D88 7F060258 25040108 */ addiu $a0, $t0, 0x108 +/* 094D8C 7F06025C AFA80044 */ sw $t0, 0x44($sp) +/* 094D90 7F060260 00006812 */ mflo $t5 +/* 094D94 7F060264 020D4821 */ addu $t1, $s0, $t5 +/* 094D98 7F060268 25250108 */ addiu $a1, $t1, 0x108 +/* 094D9C 7F06026C 05C10004 */ bgez $t6, .L7F060280 +/* 094DA0 7F060270 31CF0003 */ andi $t7, $t6, 3 +/* 094DA4 7F060274 11E00002 */ beqz $t7, .L7F060280 +/* 094DA8 7F060278 00000000 */ nop +/* 094DAC 7F06027C 25EFFFFC */ addiu $t7, $t7, -4 +.L7F060280: +/* 094DB0 7F060280 01E30019 */ multu $t7, $v1 +/* 094DB4 7F060284 AFA90040 */ sw $t1, 0x40($sp) +/* 094DB8 7F060288 0000C012 */ mflo $t8 +/* 094DBC 7F06028C 02185021 */ addu $t2, $s0, $t8 +/* 094DC0 7F060290 25460108 */ addiu $a2, $t2, 0x108 +/* 094DC4 7F060294 07210004 */ bgez $t9, .L7F0602A8 +/* 094DC8 7F060298 332D0003 */ andi $t5, $t9, 3 +/* 094DCC 7F06029C 11A00002 */ beqz $t5, .L7F0602A8 +/* 094DD0 7F0602A0 00000000 */ nop +/* 094DD4 7F0602A4 25ADFFFC */ addiu $t5, $t5, -4 +.L7F0602A8: +/* 094DD8 7F0602A8 01A30019 */ multu $t5, $v1 +/* 094DDC 7F0602AC AFAA003C */ sw $t2, 0x3c($sp) +/* 094DE0 7F0602B0 00007012 */ mflo $t6 +/* 094DE4 7F0602B4 020E5821 */ addu $t3, $s0, $t6 +/* 094DE8 7F0602B8 25670108 */ addiu $a3, $t3, 0x108 +/* 094DEC 7F0602BC 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094DF0 7F0602C0 AFAB0038 */ sw $t3, 0x38($sp) +/* 094DF4 7F0602C4 8FA40044 */ lw $a0, 0x44($sp) +/* 094DF8 7F0602C8 8FA50040 */ lw $a1, 0x40($sp) +/* 094DFC 7F0602CC 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E00 7F0602D0 8FA70038 */ lw $a3, 0x38($sp) +/* 094E04 7F0602D4 C606019C */ lwc1 $f6, 0x19c($s0) +/* 094E08 7F0602D8 27AF00D4 */ addiu $t7, $sp, 0xd4 +/* 094E0C 7F0602DC AFAF0014 */ sw $t7, 0x14($sp) +/* 094E10 7F0602E0 24840138 */ addiu $a0, $a0, 0x138 +/* 094E14 7F0602E4 24A50138 */ addiu $a1, $a1, 0x138 +/* 094E18 7F0602E8 24C60138 */ addiu $a2, $a2, 0x138 +/* 094E1C 7F0602EC 24E70138 */ addiu $a3, $a3, 0x138 +/* 094E20 7F0602F0 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E24 7F0602F4 E7A60010 */ swc1 $f6, 0x10($sp) +/* 094E28 7F0602F8 8FA40044 */ lw $a0, 0x44($sp) +/* 094E2C 7F0602FC 8FA50040 */ lw $a1, 0x40($sp) +/* 094E30 7F060300 8FA6003C */ lw $a2, 0x3c($sp) +/* 094E34 7F060304 8FA70038 */ lw $a3, 0x38($sp) +/* 094E38 7F060308 C60A019C */ lwc1 $f10, 0x19c($s0) +/* 094E3C 7F06030C 27B800C8 */ addiu $t8, $sp, 0xc8 +/* 094E40 7F060310 AFB80014 */ sw $t8, 0x14($sp) +/* 094E44 7F060314 24840168 */ addiu $a0, $a0, 0x168 +/* 094E48 7F060318 24A50168 */ addiu $a1, $a1, 0x168 +/* 094E4C 7F06031C 24C60168 */ addiu $a2, $a2, 0x168 +/* 094E50 7F060320 24E70168 */ addiu $a3, $a3, 0x168 +/* 094E54 7F060324 0FC16BBF */ jal sub_GAME_7F05AEFC +/* 094E58 7F060328 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 094E5C 7F06032C 3C028008 */ lui $v0, %hi(pPlayer) +/* 094E60 7F060330 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 094E64 7F060334 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094E68 7F060338 C7A400E4 */ lwc1 $f4, 0xe4($sp) +/* 094E6C 7F06033C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E70 7F060340 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094E74 7F060344 46124402 */ mul.s $f16, $f8, $f18 +/* 094E78 7F060348 C7A800E8 */ lwc1 $f8, 0xe8($sp) +/* 094E7C 7F06034C E7B000E0 */ swc1 $f16, 0xe0($sp) +/* 094E80 7F060350 C4460FC0 */ lwc1 $f6, 0xfc0($v0) +/* 094E84 7F060354 46062282 */ mul.s $f10, $f4, $f6 +/* 094E88 7F060358 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 094E8C 7F06035C C4520FC0 */ lwc1 $f18, 0xfc0($v0) +/* 094E90 7F060360 46124102 */ mul.s $f4, $f8, $f18 +/* 094E94 7F060364 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 094E98 7F060368 C60601AC */ lwc1 $f6, 0x1ac($s0) +/* 094E9C 7F06036C 46068200 */ add.s $f8, $f16, $f6 +/* 094EA0 7F060370 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 094EA4 7F060374 C61201B0 */ lwc1 $f18, 0x1b0($s0) +/* 094EA8 7F060378 46125100 */ add.s $f4, $f10, $f18 +/* 094EAC 7F06037C 0FC1772E */ jal sub_GAME_7F05DCB8 +/* 094EB0 7F060380 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 094EB4 7F060384 C7B000E0 */ lwc1 $f16, 0xe0($sp) +/* 094EB8 7F060388 3C028005 */ lui $v0, %hi(clock_timer) +/* 094EBC 7F06038C 24428374 */ addiu $v0, %lo(clock_timer) # addiu $v0, $v0, -0x7c8c +/* 094EC0 7F060390 46008180 */ add.s $f6, $f16, $f0 +/* 094EC4 7F060394 8C590000 */ lw $t9, ($v0) +/* 094EC8 7F060398 00001825 */ move $v1, $zero +/* 094ECC 7F06039C 1B200035 */ blez $t9, .L7F060474 +/* 094ED0 7F0603A0 E7A600E0 */ swc1 $f6, 0xe0($sp) +/* 094ED4 7F0603A4 3C018005 */ lui $at, %hi(D_80053DE0) +/* 094ED8 7F0603A8 C4203DE0 */ lwc1 $f0, %lo(D_80053DE0)($at) +/* 094EDC 7F0603AC C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F0603B0: +/* 094EE0 7F0603B0 C7A800E0 */ lwc1 $f8, 0xe0($sp) +/* 094EE4 7F0603B4 C60600E8 */ lwc1 $f6, 0xe8($s0) +/* 094EE8 7F0603B8 460A0482 */ mul.s $f18, $f0, $f10 +/* 094EEC 7F0603BC 24630001 */ addiu $v1, $v1, 1 +/* 094EF0 7F0603C0 46060282 */ mul.s $f10, $f0, $f6 +/* 094EF4 7F0603C4 46124100 */ add.s $f4, $f8, $f18 +/* 094EF8 7F0603C8 E60400E4 */ swc1 $f4, 0xe4($s0) +/* 094EFC 7F0603CC C7B000E4 */ lwc1 $f16, 0xe4($sp) +/* 094F00 7F0603D0 C60400EC */ lwc1 $f4, 0xec($s0) +/* 094F04 7F0603D4 460A8200 */ add.s $f8, $f16, $f10 +/* 094F08 7F0603D8 46040182 */ mul.s $f6, $f0, $f4 +/* 094F0C 7F0603DC E60800E8 */ swc1 $f8, 0xe8($s0) +/* 094F10 7F0603E0 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 094F14 7F0603E4 C60800F0 */ lwc1 $f8, 0xf0($s0) +/* 094F18 7F0603E8 46069400 */ add.s $f16, $f18, $f6 +/* 094F1C 7F0603EC 46080102 */ mul.s $f4, $f0, $f8 +/* 094F20 7F0603F0 E61000EC */ swc1 $f16, 0xec($s0) +/* 094F24 7F0603F4 C7AA00D4 */ lwc1 $f10, 0xd4($sp) +/* 094F28 7F0603F8 C61000F4 */ lwc1 $f16, 0xf4($s0) +/* 094F2C 7F0603FC 46045480 */ add.s $f18, $f10, $f4 +/* 094F30 7F060400 46100202 */ mul.s $f8, $f0, $f16 +/* 094F34 7F060404 E61200F0 */ swc1 $f18, 0xf0($s0) +/* 094F38 7F060408 C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 094F3C 7F06040C C61200F8 */ lwc1 $f18, 0xf8($s0) +/* 094F40 7F060410 46083280 */ add.s $f10, $f6, $f8 +/* 094F44 7F060414 46120402 */ mul.s $f16, $f0, $f18 +/* 094F48 7F060418 E60A00F4 */ swc1 $f10, 0xf4($s0) +/* 094F4C 7F06041C C7A400DC */ lwc1 $f4, 0xdc($sp) +/* 094F50 7F060420 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094F54 7F060424 46102180 */ add.s $f6, $f4, $f16 +/* 094F58 7F060428 460A0482 */ mul.s $f18, $f0, $f10 +/* 094F5C 7F06042C E60600F8 */ swc1 $f6, 0xf8($s0) +/* 094F60 7F060430 C7A800C8 */ lwc1 $f8, 0xc8($sp) +/* 094F64 7F060434 C6060100 */ lwc1 $f6, 0x100($s0) +/* 094F68 7F060438 46124100 */ add.s $f4, $f8, $f18 +/* 094F6C 7F06043C 46060282 */ mul.s $f10, $f0, $f6 +/* 094F70 7F060440 E60400FC */ swc1 $f4, 0xfc($s0) +/* 094F74 7F060444 C7B000CC */ lwc1 $f16, 0xcc($sp) +/* 094F78 7F060448 C6040104 */ lwc1 $f4, 0x104($s0) +/* 094F7C 7F06044C 460A8200 */ add.s $f8, $f16, $f10 +/* 094F80 7F060450 46040182 */ mul.s $f6, $f0, $f4 +/* 094F84 7F060454 E6080100 */ swc1 $f8, 0x100($s0) +/* 094F88 7F060458 C7B200D0 */ lwc1 $f18, 0xd0($sp) +/* 094F8C 7F06045C 46069400 */ add.s $f16, $f18, $f6 +/* 094F90 7F060460 E6100104 */ swc1 $f16, 0x104($s0) +/* 094F94 7F060464 8C4D0000 */ lw $t5, ($v0) +/* 094F98 7F060468 006D082A */ slt $at, $v1, $t5 +/* 094F9C 7F06046C 5420FFD0 */ bnezl $at, .L7F0603B0 +/* 094FA0 7F060470 C60A00E4 */ lwc1 $f10, 0xe4($s0) +.L7F060474: +/* 094FA4 7F060474 3C018005 */ lui $at, %hi(D_80053DE4) +/* 094FA8 7F060478 C4203DE4 */ lwc1 $f0, %lo(D_80053DE4)($at) +/* 094FAC 7F06047C C60A00E4 */ lwc1 $f10, 0xe4($s0) +/* 094FB0 7F060480 C60400E8 */ lwc1 $f4, 0xe8($s0) +/* 094FB4 7F060484 C60600EC */ lwc1 $f6, 0xec($s0) +/* 094FB8 7F060488 46005202 */ mul.s $f8, $f10, $f0 +/* 094FBC 7F06048C C60A00F0 */ lwc1 $f10, 0xf0($s0) +/* 094FC0 7F060490 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 094FC4 7F060494 46002482 */ mul.s $f18, $f4, $f0 +/* 094FC8 7F060498 C60400F4 */ lwc1 $f4, 0xf4($s0) +/* 094FCC 7F06049C 46003402 */ mul.s $f16, $f6, $f0 +/* 094FD0 7F0604A0 E60800C0 */ swc1 $f8, 0xc0($s0) +/* 094FD4 7F0604A4 C60600F8 */ lwc1 $f6, 0xf8($s0) +/* 094FD8 7F0604A8 46005202 */ mul.s $f8, $f10, $f0 +/* 094FDC 7F0604AC E61200C4 */ swc1 $f18, 0xc4($s0) +/* 094FE0 7F0604B0 C60A00FC */ lwc1 $f10, 0xfc($s0) +/* 094FE4 7F0604B4 46002482 */ mul.s $f18, $f4, $f0 +/* 094FE8 7F0604B8 E61000C8 */ swc1 $f16, 0xc8($s0) +/* 094FEC 7F0604BC C6040100 */ lwc1 $f4, 0x100($s0) +/* 094FF0 7F0604C0 46003402 */ mul.s $f16, $f6, $f0 +/* 094FF4 7F0604C4 E60800CC */ swc1 $f8, 0xcc($s0) +/* 094FF8 7F0604C8 C6060104 */ lwc1 $f6, 0x104($s0) +/* 094FFC 7F0604CC 46005202 */ mul.s $f8, $f10, $f0 +/* 095000 7F0604D0 E61200D0 */ swc1 $f18, 0xd0($s0) +/* 095004 7F0604D4 46002482 */ mul.s $f18, $f4, $f0 +/* 095008 7F0604D8 E61000D4 */ swc1 $f16, 0xd4($s0) +/* 09500C 7F0604DC 46003402 */ mul.s $f16, $f6, $f0 +/* 095010 7F0604E0 E60800D8 */ swc1 $f8, 0xd8($s0) +/* 095014 7F0604E4 E61200DC */ swc1 $f18, 0xdc($s0) +/* 095018 7F0604E8 14800009 */ bnez $a0, .L7F060510 +/* 09501C 7F0604EC E61000E0 */ swc1 $f16, 0xe0($s0) +/* 095020 7F0604F0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095024 7F0604F4 00000000 */ nop +/* 095028 7F0604F8 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 09502C 7F0604FC C60A01B8 */ lwc1 $f10, 0x1b8($s0) +/* 095030 7F060500 46080100 */ add.s $f4, $f0, $f8 +/* 095034 7F060504 46045480 */ add.s $f18, $f10, $f4 +/* 095038 7F060508 10000008 */ b .L7F06052C +/* 09503C 7F06050C E7B20194 */ swc1 $f18, 0x194($sp) +.L7F060510: +/* 095040 7F060510 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 095044 7F060514 00000000 */ nop +/* 095048 7F060518 C60600C0 */ lwc1 $f6, 0xc0($s0) +/* 09504C 7F06051C C60801B8 */ lwc1 $f8, 0x1b8($s0) +/* 095050 7F060520 46060400 */ add.s $f16, $f0, $f6 +/* 095054 7F060524 46088281 */ sub.s $f10, $f16, $f8 +/* 095058 7F060528 E7AA0194 */ swc1 $f10, 0x194($sp) +.L7F06052C: +/* 09505C 7F06052C 8FAE00F8 */ lw $t6, 0xf8($sp) +/* 095060 7F060530 C61200C4 */ lwc1 $f18, 0xc4($s0) +/* 095064 7F060534 C61001BC */ lwc1 $f16, 0x1bc($s0) +/* 095068 7F060538 C5C40008 */ lwc1 $f4, 8($t6) +/* 09506C 7F06053C 8FA400FC */ lw $a0, 0xfc($sp) +/* 095070 7F060540 24010019 */ li $at, 25 +/* 095074 7F060544 46122180 */ add.s $f6, $f4, $f18 +/* 095078 7F060548 46068200 */ add.s $f8, $f16, $f6 +/* 09507C 7F06054C E7A80198 */ swc1 $f8, 0x198($sp) +/* 095080 7F060550 C60400C8 */ lwc1 $f4, 0xc8($s0) +/* 095084 7F060554 C5CA000C */ lwc1 $f10, 0xc($t6) +/* 095088 7F060558 C61001C0 */ lwc1 $f16, 0x1c0($s0) +/* 09508C 7F06055C 46045480 */ add.s $f18, $f10, $f4 +/* 095090 7F060560 46128180 */ add.s $f6, $f16, $f18 +/* 095094 7F060564 10810005 */ beq $a0, $at, .L7F06057C +/* 095098 7F060568 E7A6019C */ swc1 $f6, 0x19c($sp) +/* 09509C 7F06056C 2401001E */ li $at, 30 +/* 0950A0 7F060570 10810002 */ beq $a0, $at, .L7F06057C +/* 0950A4 7F060574 24010017 */ li $at, 23 +/* 0950A8 7F060578 14810028 */ bne $a0, $at, .L7F06061C +.L7F06057C: +/* 0950AC 7F06057C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0950B0 7F060580 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0950B4 7F060584 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0950B8 7F060588 44810000 */ mtc1 $at, $f0 +/* 0950BC 7F06058C C44A00A0 */ lwc1 $f10, 0xa0($v0) +/* 0950C0 7F060590 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 0950C4 7F060594 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 0950C8 7F060598 46005103 */ div.s $f4, $f10, $f0 +/* 0950CC 7F06059C 44819000 */ mtc1 $at, $f18 +/* 0950D0 7F0605A0 24010019 */ li $at, 25 +/* 0950D4 7F0605A4 46044400 */ add.s $f16, $f8, $f4 +/* 0950D8 7F0605A8 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0950DC 7F0605AC E7B00198 */ swc1 $f16, 0x198($sp) +/* 0950E0 7F0605B0 C44600A0 */ lwc1 $f6, 0xa0($v0) +/* 0950E4 7F0605B4 46069282 */ mul.s $f10, $f18, $f6 +/* 0950E8 7F0605B8 46005203 */ div.s $f8, $f10, $f0 +/* 0950EC 7F0605BC 46082400 */ add.s $f16, $f4, $f8 +/* 0950F0 7F0605C0 14810014 */ bne $a0, $at, .L7F060614 +/* 0950F4 7F0605C4 E7B0019C */ swc1 $f16, 0x19c($sp) +/* 0950F8 7F0605C8 0FC293B2 */ jal cur_player_get_screen_setting +/* 0950FC 7F0605CC 00000000 */ nop +/* 095100 7F0605D0 24010001 */ li $at, 1 +/* 095104 7F0605D4 5041000B */ beql $v0, $at, .L7F060604 +/* 095108 7F0605D8 3C014040 */ lui $at, 0x4040 +/* 09510C 7F0605DC 0FC293B2 */ jal cur_player_get_screen_setting +/* 095110 7F0605E0 00000000 */ nop +/* 095114 7F0605E4 24010002 */ li $at, 2 +/* 095118 7F0605E8 50410006 */ beql $v0, $at, .L7F060604 +/* 09511C 7F0605EC 3C014040 */ lui $at, 0x4040 +/* 095120 7F0605F0 0FC293B8 */ jal get_screen_ratio +/* 095124 7F0605F4 00000000 */ nop +/* 095128 7F0605F8 24010001 */ li $at, 1 +/* 09512C 7F0605FC 14410005 */ bne $v0, $at, .L7F060614 +/* 095130 7F060600 3C014040 */ li $at, 0x40400000 # 3.000000 +.L7F060604: +/* 095134 7F060604 44813000 */ mtc1 $at, $f6 +/* 095138 7F060608 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 09513C 7F06060C 46069281 */ sub.s $f10, $f18, $f6 +/* 095140 7F060610 E7AA0198 */ swc1 $f10, 0x198($sp) +.L7F060614: +/* 095144 7F060614 1000002C */ b .L7F0606C8 +/* 095148 7F060618 8FA400FC */ lw $a0, 0xfc($sp) +.L7F06061C: +/* 09514C 7F06061C 2401001F */ li $at, 31 +/* 095150 7F060620 14810016 */ bne $a0, $at, .L7F06067C +/* 095154 7F060624 3C028008 */ lui $v0, %hi(pPlayer) +/* 095158 7F060628 3C028008 */ lui $v0, %hi(pPlayer) +/* 09515C 7F06062C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 095160 7F060630 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 095164 7F060634 44810000 */ mtc1 $at, $f0 +/* 095168 7F060638 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 09516C 7F06063C 44812000 */ mtc1 $at, $f4 +/* 095170 7F060640 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095174 7F060644 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095178 7F060648 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 09517C 7F06064C 46082402 */ mul.s $f16, $f4, $f8 +/* 095180 7F060650 44812000 */ mtc1 $at, $f4 +/* 095184 7F060654 46008483 */ div.s $f18, $f16, $f0 +/* 095188 7F060658 46123280 */ add.s $f10, $f6, $f18 +/* 09518C 7F06065C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 095190 7F060660 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 095194 7F060664 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 095198 7F060668 46082402 */ mul.s $f16, $f4, $f8 +/* 09519C 7F06066C 46008183 */ div.s $f6, $f16, $f0 +/* 0951A0 7F060670 46069280 */ add.s $f10, $f18, $f6 +/* 0951A4 7F060674 10000014 */ b .L7F0606C8 +/* 0951A8 7F060678 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F06067C: +/* 0951AC 7F06067C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0951B0 7F060680 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000 +/* 0951B4 7F060684 44810000 */ mtc1 $at, $f0 +/* 0951B8 7F060688 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 0951BC 7F06068C 44812000 */ mtc1 $at, $f4 +/* 0951C0 7F060690 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951C4 7F060694 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 0951C8 7F060698 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0951CC 7F06069C 46082402 */ mul.s $f16, $f4, $f8 +/* 0951D0 7F0606A0 44812000 */ mtc1 $at, $f4 +/* 0951D4 7F0606A4 46008483 */ div.s $f18, $f16, $f0 +/* 0951D8 7F0606A8 46123280 */ add.s $f10, $f6, $f18 +/* 0951DC 7F0606AC C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0951E0 7F0606B0 E7AA0198 */ swc1 $f10, 0x198($sp) +/* 0951E4 7F0606B4 C44800A0 */ lwc1 $f8, 0xa0($v0) +/* 0951E8 7F0606B8 46082402 */ mul.s $f16, $f4, $f8 +/* 0951EC 7F0606BC 46008183 */ div.s $f6, $f16, $f0 +/* 0951F0 7F0606C0 46069280 */ add.s $f10, $f18, $f6 +/* 0951F4 7F0606C4 E7AA019C */ swc1 $f10, 0x19c($sp) +.L7F0606C8: +/* 0951F8 7F0606C8 820F000C */ lb $t7, 0xc($s0) +/* 0951FC 7F0606CC 11E00047 */ beqz $t7, .L7F0607EC +/* 095200 7F0606D0 00000000 */ nop +/* 095204 7F0606D4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095208 7F0606D8 24050020 */ li $a1, 32 +/* 09520C 7F0606DC 10400043 */ beqz $v0, .L7F0607EC +/* 095210 7F0606E0 8FA400FC */ lw $a0, 0xfc($sp) +/* 095214 7F0606E4 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095218 7F0606E8 24050040 */ li $a1, 64 +/* 09521C 7F0606EC 10400016 */ beqz $v0, .L7F060748 +/* 095220 7F0606F0 00000000 */ nop +/* 095224 7F0606F4 0C002914 */ jal randomGetNext +/* 095228 7F0606F8 00000000 */ nop +/* 09522C 7F0606FC 44822000 */ mtc1 $v0, $f4 +/* 095230 7F060700 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095234 7F060704 04410004 */ bgez $v0, .L7F060718 +/* 095238 7F060708 46802220 */ cvt.s.w $f8, $f4 +/* 09523C 7F06070C 44818000 */ mtc1 $at, $f16 +/* 095240 7F060710 00000000 */ nop +/* 095244 7F060714 46104200 */ add.s $f8, $f8, $f16 +.L7F060718: +/* 095248 7F060718 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 09524C 7F06071C 44819000 */ mtc1 $at, $f18 +/* 095250 7F060720 3C018005 */ lui $at, %hi(D_80053DE8) +/* 095254 7F060724 C42A3DE8 */ lwc1 $f10, %lo(D_80053DE8)($at) +/* 095258 7F060728 46124182 */ mul.s $f6, $f8, $f18 +/* 09525C 7F06072C 3C018005 */ lui $at, %hi(D_80053DEC) +/* 095260 7F060730 C4303DEC */ lwc1 $f16, %lo(D_80053DEC)($at) +/* 095264 7F060734 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095268 7F060738 460A3102 */ mul.s $f4, $f6, $f10 +/* 09526C 7F06073C 46048201 */ sub.s $f8, $f16, $f4 +/* 095270 7F060740 46089180 */ add.s $f6, $f18, $f8 +/* 095274 7F060744 E7A60194 */ swc1 $f6, 0x194($sp) +.L7F060748: +/* 095278 7F060748 0C002914 */ jal randomGetNext +/* 09527C 7F06074C 00000000 */ nop +/* 095280 7F060750 44825000 */ mtc1 $v0, $f10 +/* 095284 7F060754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095288 7F060758 04410004 */ bgez $v0, .L7F06076C +/* 09528C 7F06075C 46805420 */ cvt.s.w $f16, $f10 +/* 095290 7F060760 44812000 */ mtc1 $at, $f4 +/* 095294 7F060764 00000000 */ nop +/* 095298 7F060768 46048400 */ add.s $f16, $f16, $f4 +.L7F06076C: +/* 09529C 7F06076C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952A0 7F060770 44819000 */ mtc1 $at, $f18 +/* 0952A4 7F060774 3C018005 */ lui $at, %hi(D_80053DF0) +/* 0952A8 7F060778 C4263DF0 */ lwc1 $f6, %lo(D_80053DF0)($at) +/* 0952AC 7F06077C 46128202 */ mul.s $f8, $f16, $f18 +/* 0952B0 7F060780 3C018005 */ lui $at, %hi(D_80053DF4) +/* 0952B4 7F060784 C4243DF4 */ lwc1 $f4, %lo(D_80053DF4)($at) +/* 0952B8 7F060788 C7B20198 */ lwc1 $f18, 0x198($sp) +/* 0952BC 7F06078C 46064282 */ mul.s $f10, $f8, $f6 +/* 0952C0 7F060790 460A2401 */ sub.s $f16, $f4, $f10 +/* 0952C4 7F060794 46109200 */ add.s $f8, $f18, $f16 +/* 0952C8 7F060798 0C002914 */ jal randomGetNext +/* 0952CC 7F06079C E7A80198 */ swc1 $f8, 0x198($sp) +/* 0952D0 7F0607A0 44823000 */ mtc1 $v0, $f6 +/* 0952D4 7F0607A4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0952D8 7F0607A8 04410004 */ bgez $v0, .L7F0607BC +/* 0952DC 7F0607AC 46803120 */ cvt.s.w $f4, $f6 +/* 0952E0 7F0607B0 44815000 */ mtc1 $at, $f10 +/* 0952E4 7F0607B4 00000000 */ nop +/* 0952E8 7F0607B8 460A2100 */ add.s $f4, $f4, $f10 +.L7F0607BC: +/* 0952EC 7F0607BC 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0952F0 7F0607C0 44819000 */ mtc1 $at, $f18 +/* 0952F4 7F0607C4 3C018005 */ lui $at, %hi(D_80053DF8) +/* 0952F8 7F0607C8 C4283DF8 */ lwc1 $f8, %lo(D_80053DF8)($at) +/* 0952FC 7F0607CC 46122402 */ mul.s $f16, $f4, $f18 +/* 095300 7F0607D0 3C018005 */ lui $at, %hi(D_80053DFC) +/* 095304 7F0607D4 C42A3DFC */ lwc1 $f10, %lo(D_80053DFC)($at) +/* 095308 7F0607D8 C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 09530C 7F0607DC 46088182 */ mul.s $f6, $f16, $f8 +/* 095310 7F0607E0 46065101 */ sub.s $f4, $f10, $f6 +/* 095314 7F0607E4 46049400 */ add.s $f16, $f18, $f4 +/* 095318 7F0607E8 E7B0019C */ swc1 $f16, 0x19c($sp) +.L7F0607EC: +/* 09531C 7F0607EC 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095320 7F0607F0 00000000 */ nop +/* 095324 7F0607F4 0FC1E129 */ jal getPlayer_c_screenwidth +/* 095328 7F0607F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09532C 7F0607FC 0FC1E131 */ jal getPlayer_c_screenleft +/* 095330 7F060800 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095334 7F060804 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095338 7F060808 3C188008 */ lui $t8, %hi(pPlayer) +/* 09533C 7F06080C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095340 7F060810 44811000 */ mtc1 $at, $f2 +/* 095344 7F060814 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 095348 7F060818 C7080FFC */ lwc1 $f8, 0xffc($t8) +/* 09534C 7F06081C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095350 7F060820 46023482 */ mul.s $f18, $f6, $f2 +/* 095354 7F060824 46004281 */ sub.s $f10, $f8, $f0 +/* 095358 7F060828 C7300018 */ lwc1 $f16, 0x18($t9) +/* 09535C 7F06082C C7A60048 */ lwc1 $f6, 0x48($sp) +/* 095360 7F060830 46125101 */ sub.s $f4, $f10, $f18 +/* 095364 7F060834 46102202 */ mul.s $f8, $f4, $f16 +/* 095368 7F060838 C7A40194 */ lwc1 $f4, 0x194($sp) +/* 09536C 7F06083C 46023282 */ mul.s $f10, $f6, $f2 +/* 095370 7F060840 460A4483 */ div.s $f18, $f8, $f10 +/* 095374 7F060844 46122400 */ add.s $f16, $f4, $f18 +/* 095378 7F060848 0FC1E135 */ jal getPlayer_c_screentop +/* 09537C 7F06084C E7B00194 */ swc1 $f16, 0x194($sp) +/* 095380 7F060850 0FC1E12D */ jal getPlayer_c_screenheight +/* 095384 7F060854 E7A00050 */ swc1 $f0, 0x50($sp) +/* 095388 7F060858 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09538C 7F06085C 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095390 7F060860 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 095394 7F060864 44813000 */ mtc1 $at, $f6 +/* 095398 7F060868 C7A40050 */ lwc1 $f4, 0x50($sp) +/* 09539C 7F06086C C5AA1000 */ lwc1 $f10, 0x1000($t5) +/* 0953A0 7F060870 46060202 */ mul.s $f8, $f0, $f6 +/* 0953A4 7F060874 46045481 */ sub.s $f18, $f10, $f4 +/* 0953A8 7F060878 4612403C */ c.lt.s $f8, $f18 +/* 0953AC 7F06087C 00000000 */ nop +/* 0953B0 7F060880 4500001A */ bc1f .L7F0608EC +/* 0953B4 7F060884 00000000 */ nop +/* 0953B8 7F060888 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953BC 7F06088C 00000000 */ nop +/* 0953C0 7F060890 0FC1E12D */ jal getPlayer_c_screenheight +/* 0953C4 7F060894 E7A00048 */ swc1 $f0, 0x48($sp) +/* 0953C8 7F060898 0FC1E135 */ jal getPlayer_c_screentop +/* 0953CC 7F06089C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0953D0 7F0608A0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0953D4 7F0608A4 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0953D8 7F0608A8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0953DC 7F0608AC 44811000 */ mtc1 $at, $f2 +/* 0953E0 7F0608B0 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 0953E4 7F0608B4 C5D01000 */ lwc1 $f16, 0x1000($t6) +/* 0953E8 7F0608B8 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 0953EC 7F0608BC 46025102 */ mul.s $f4, $f10, $f2 +/* 0953F0 7F0608C0 46008181 */ sub.s $f6, $f16, $f0 +/* 0953F4 7F0608C4 C5F20014 */ lwc1 $f18, 0x14($t7) +/* 0953F8 7F0608C8 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 0953FC 7F0608CC 46043201 */ sub.s $f8, $f6, $f4 +/* 095400 7F0608D0 46124402 */ mul.s $f16, $f8, $f18 +/* 095404 7F0608D4 C7A80198 */ lwc1 $f8, 0x198($sp) +/* 095408 7F0608D8 46025182 */ mul.s $f6, $f10, $f2 +/* 09540C 7F0608DC 46068103 */ div.s $f4, $f16, $f6 +/* 095410 7F0608E0 46044481 */ sub.s $f18, $f8, $f4 +/* 095414 7F0608E4 1000001A */ b .L7F060950 +/* 095418 7F0608E8 E7B20198 */ swc1 $f18, 0x198($sp) +.L7F0608EC: +/* 09541C 7F0608EC 0FC1E12D */ jal getPlayer_c_screenheight +/* 095420 7F0608F0 00000000 */ nop +/* 095424 7F0608F4 0FC1E12D */ jal getPlayer_c_screenheight +/* 095428 7F0608F8 E7A00048 */ swc1 $f0, 0x48($sp) +/* 09542C 7F0608FC 0FC1E135 */ jal getPlayer_c_screentop +/* 095430 7F060900 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 095434 7F060904 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 095438 7F060908 3C188008 */ lui $t8, %hi(pPlayer) +/* 09543C 7F06090C 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 095440 7F060910 44818000 */ mtc1 $at, $f16 +/* 095444 7F060914 C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 095448 7F060918 C7081000 */ lwc1 $f8, 0x1000($t8) +/* 09544C 7F06091C 8FB900F8 */ lw $t9, 0xf8($sp) +/* 095450 7F060920 46105182 */ mul.s $f6, $f10, $f16 +/* 095454 7F060924 46004101 */ sub.s $f4, $f8, $f0 +/* 095458 7F060928 C72A0010 */ lwc1 $f10, 0x10($t9) +/* 09545C 7F06092C C7A80048 */ lwc1 $f8, 0x48($sp) +/* 095460 7F060930 46062481 */ sub.s $f18, $f4, $f6 +/* 095464 7F060934 44812000 */ mtc1 $at, $f4 +/* 095468 7F060938 460A9402 */ mul.s $f16, $f18, $f10 +/* 09546C 7F06093C C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095470 7F060940 46044182 */ mul.s $f6, $f8, $f4 +/* 095474 7F060944 46068483 */ div.s $f18, $f16, $f6 +/* 095478 7F060948 46125201 */ sub.s $f8, $f10, $f18 +/* 09547C 7F06094C E7A80198 */ swc1 $f8, 0x198($sp) +.L7F060950: +/* 095480 7F060950 0FC17185 */ jal sub_GAME_7F05C614 +/* 095484 7F060954 00000000 */ nop +/* 095488 7F060958 0FC15FF4 */ jal matrix_4x4_set_identity +/* 09548C 7F06095C 27A40154 */ addiu $a0, $sp, 0x154 +/* 095490 7F060960 8FA200FC */ lw $v0, 0xfc($sp) +/* 095494 7F060964 2401001E */ li $at, 30 +/* 095498 7F060968 10410002 */ beq $v0, $at, .L7F060974 +/* 09549C 7F06096C 24010017 */ li $at, 23 +/* 0954A0 7F060970 14410010 */ bne $v0, $at, .L7F0609B4 +.L7F060974: +/* 0954A4 7F060974 3C0D8003 */ lui $t5, %hi(D_80035C70) +/* 0954A8 7F060978 25AD5C70 */ addiu $t5, %lo(D_80035C70) # addiu $t5, $t5, 0x5c70 +/* 0954AC 7F06097C 8DA10000 */ lw $at, ($t5) +/* 0954B0 7F060980 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0954B4 7F060984 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0954B8 7F060988 AC810000 */ sw $at, ($a0) +/* 0954BC 7F06098C 8DAF0004 */ lw $t7, 4($t5) +/* 0954C0 7F060990 AC8F0004 */ sw $t7, 4($a0) +/* 0954C4 7F060994 8DA10008 */ lw $at, 8($t5) +/* 0954C8 7F060998 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 0954CC 7F06099C AC810008 */ sw $at, 8($a0) +/* 0954D0 7F0609A0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0954D4 7F0609A4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0954D8 7F0609A8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0954DC 7F0609AC 10000039 */ b .L7F060A94 +/* 0954E0 7F0609B0 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609B4: +/* 0954E4 7F0609B4 2401001F */ li $at, 31 +/* 0954E8 7F0609B8 14410010 */ bne $v0, $at, .L7F0609FC +/* 0954EC 7F0609BC 3C188003 */ lui $t8, %hi(D_80035C7C) +/* 0954F0 7F0609C0 27185C7C */ addiu $t8, %lo(D_80035C7C) # addiu $t8, $t8, 0x5c7c +/* 0954F4 7F0609C4 8F010000 */ lw $at, ($t8) +/* 0954F8 7F0609C8 27A400AC */ addiu $a0, $sp, 0xac +/* 0954FC 7F0609CC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095500 7F0609D0 AC810000 */ sw $at, ($a0) +/* 095504 7F0609D4 8F0E0004 */ lw $t6, 4($t8) +/* 095508 7F0609D8 AC8E0004 */ sw $t6, 4($a0) +/* 09550C 7F0609DC 8F010008 */ lw $at, 8($t8) +/* 095510 7F0609E0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095514 7F0609E4 AC810008 */ sw $at, 8($a0) +/* 095518 7F0609E8 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09551C 7F0609EC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095520 7F0609F0 27A50154 */ addiu $a1, $sp, 0x154 +/* 095524 7F0609F4 10000027 */ b .L7F060A94 +/* 095528 7F0609F8 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F0609FC: +/* 09552C 7F0609FC 24010001 */ li $at, 1 +/* 095530 7F060A00 14410023 */ bne $v0, $at, .L7F060A90 +/* 095534 7F060A04 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 095538 7F060A08 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09553C 7F060A0C 24010011 */ li $at, 17 +/* 095540 7F060A10 3C198003 */ lui $t9, %hi(D_80035C88) +/* 095544 7F060A14 8DAF2A38 */ lw $t7, 0x2a38($t5) +/* 095548 7F060A18 27395C88 */ addiu $t9, %lo(D_80035C88) # addiu $t9, $t9, 0x5c88 +/* 09554C 7F060A1C 55E1001D */ bnel $t7, $at, .L7F060A94 +/* 095550 7F060A20 8E0D00BC */ lw $t5, 0xbc($s0) +/* 095554 7F060A24 8F210000 */ lw $at, ($t9) +/* 095558 7F060A28 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09555C 7F060A2C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095560 7F060A30 AC810000 */ sw $at, ($a0) +/* 095564 7F060A34 8F2E0004 */ lw $t6, 4($t9) +/* 095568 7F060A38 AC8E0004 */ sw $t6, 4($a0) +/* 09556C 7F060A3C 8F210008 */ lw $at, 8($t9) +/* 095570 7F060A40 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz +/* 095574 7F060A44 AC810008 */ sw $at, 8($a0) +/* 095578 7F060A48 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09557C 7F060A4C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095580 7F060A50 27A50154 */ addiu $a1, $sp, 0x154 +/* 095584 7F060A54 3C01C020 */ li $at, 0xC0200000 # -2.500000 +/* 095588 7F060A58 44818000 */ mtc1 $at, $f16 +/* 09558C 7F060A5C C7A40194 */ lwc1 $f4, 0x194($sp) +/* 095590 7F060A60 3C018005 */ lui $at, %hi(D_80053E00) +/* 095594 7F060A64 C4323E00 */ lwc1 $f18, %lo(D_80053E00)($at) +/* 095598 7F060A68 46102180 */ add.s $f6, $f4, $f16 +/* 09559C 7F060A6C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0955A0 7F060A70 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 0955A4 7F060A74 44818000 */ mtc1 $at, $f16 +/* 0955A8 7F060A78 C7A4019C */ lwc1 $f4, 0x19c($sp) +/* 0955AC 7F060A7C E7A60194 */ swc1 $f6, 0x194($sp) +/* 0955B0 7F060A80 46125200 */ add.s $f8, $f10, $f18 +/* 0955B4 7F060A84 46102180 */ add.s $f6, $f4, $f16 +/* 0955B8 7F060A88 E7A80198 */ swc1 $f8, 0x198($sp) +/* 0955BC 7F060A8C E7A6019C */ swc1 $f6, 0x19c($sp) +.L7F060A90: +/* 0955C0 7F060A90 8E0D00BC */ lw $t5, 0xbc($s0) +.L7F060A94: +/* 0955C4 7F060A94 51A00017 */ beql $t5, $zero, .L7F060AF4 +/* 0955C8 7F060A98 44802000 */ mtc1 $zero, $f4 +/* 0955CC 7F060A9C C7AA0194 */ lwc1 $f10, 0x194($sp) +/* 0955D0 7F060AA0 C61200AC */ lwc1 $f18, 0xac($s0) +/* 0955D4 7F060AA4 C7A40198 */ lwc1 $f4, 0x198($sp) +/* 0955D8 7F060AA8 2604007C */ addiu $a0, $s0, 0x7c +/* 0955DC 7F060AAC 46125200 */ add.s $f8, $f10, $f18 +/* 0955E0 7F060AB0 C7AA019C */ lwc1 $f10, 0x19c($sp) +/* 0955E4 7F060AB4 27A50154 */ addiu $a1, $sp, 0x154 +/* 0955E8 7F060AB8 E7A80194 */ swc1 $f8, 0x194($sp) +/* 0955EC 7F060ABC C61000B0 */ lwc1 $f16, 0xb0($s0) +/* 0955F0 7F060AC0 46102180 */ add.s $f6, $f4, $f16 +/* 0955F4 7F060AC4 E7A60198 */ swc1 $f6, 0x198($sp) +/* 0955F8 7F060AC8 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 0955FC 7F060ACC 46125200 */ add.s $f8, $f10, $f18 +/* 095600 7F060AD0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095604 7F060AD4 E7A8019C */ swc1 $f8, 0x19c($sp) +/* 095608 7F060AD8 44800000 */ mtc1 $zero, $f0 +/* 09560C 7F060ADC 00000000 */ nop +/* 095610 7F060AE0 E7A00184 */ swc1 $f0, 0x184($sp) +/* 095614 7F060AE4 E7A00188 */ swc1 $f0, 0x188($sp) +/* 095618 7F060AE8 1000000A */ b .L7F060B14 +/* 09561C 7F060AEC E7A0018C */ swc1 $f0, 0x18c($sp) +/* 095620 7F060AF0 44802000 */ mtc1 $zero, $f4 +.L7F060AF4: +/* 095624 7F060AF4 44808000 */ mtc1 $zero, $f16 +/* 095628 7F060AF8 44803000 */ mtc1 $zero, $f6 +/* 09562C 7F060AFC 44805000 */ mtc1 $zero, $f10 +/* 095630 7F060B00 44800000 */ mtc1 $zero, $f0 +/* 095634 7F060B04 E6040078 */ swc1 $f4, 0x78($s0) +/* 095638 7F060B08 E610006C */ swc1 $f16, 0x6c($s0) +/* 09563C 7F060B0C E6060070 */ swc1 $f6, 0x70($s0) +/* 095640 7F060B10 E60A0074 */ swc1 $f10, 0x74($s0) +.L7F060B14: +/* 095644 7F060B14 C61200CC */ lwc1 $f18, 0xcc($s0) +/* 095648 7F060B18 44050000 */ mfc1 $a1, $f0 +/* 09564C 7F060B1C 44060000 */ mfc1 $a2, $f0 +/* 095650 7F060B20 E7B20010 */ swc1 $f18, 0x10($sp) +/* 095654 7F060B24 C60800D0 */ lwc1 $f8, 0xd0($s0) +/* 095658 7F060B28 44070000 */ mfc1 $a3, $f0 +/* 09565C 7F060B2C 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 095660 7F060B30 E7A80014 */ swc1 $f8, 0x14($sp) +/* 095664 7F060B34 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 095668 7F060B38 E7A40018 */ swc1 $f4, 0x18($sp) +/* 09566C 7F060B3C C61000D8 */ lwc1 $f16, 0xd8($s0) +/* 095670 7F060B40 E7B0001C */ swc1 $f16, 0x1c($sp) +/* 095674 7F060B44 C60600DC */ lwc1 $f6, 0xdc($s0) +/* 095678 7F060B48 E7A60020 */ swc1 $f6, 0x20($sp) +/* 09567C 7F060B4C C60A00E0 */ lwc1 $f10, 0xe0($s0) +/* 095680 7F060B50 0FC16642 */ jal matrix_4x4_7F059908 +/* 095684 7F060B54 E7AA0024 */ swc1 $f10, 0x24($sp) +/* 095688 7F060B58 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 09568C 7F060B5C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 095690 7F060B60 27A50154 */ addiu $a1, $sp, 0x154 +/* 095694 7F060B64 C7B20194 */ lwc1 $f18, 0x194($sp) +/* 095698 7F060B68 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 09569C 7F060B6C C7B00198 */ lwc1 $f16, 0x198($sp) +/* 0956A0 7F060B70 C60601CC */ lwc1 $f6, 0x1cc($s0) +/* 0956A4 7F060B74 46089101 */ sub.s $f4, $f18, $f8 +/* 0956A8 7F060B78 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 0956AC 7F060B7C C7B2019C */ lwc1 $f18, 0x19c($sp) +/* 0956B0 7F060B80 46068281 */ sub.s $f10, $f16, $f6 +/* 0956B4 7F060B84 44062000 */ mfc1 $a2, $f4 +/* 0956B8 7F060B88 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956BC 7F060B8C 46089101 */ sub.s $f4, $f18, $f8 +/* 0956C0 7F060B90 44075000 */ mfc1 $a3, $f10 +/* 0956C4 7F060B94 24050000 */ li $a1, 0 +/* 0956C8 7F060B98 0FC1673A */ jal matrix_4x4_align +/* 0956CC 7F060B9C E7A40010 */ swc1 $f4, 0x10($sp) +/* 0956D0 7F060BA0 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0956D4 7F060BA4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0956D8 7F060BA8 27A50154 */ addiu $a1, $sp, 0x154 +/* 0956DC 7F060BAC 27A40154 */ addiu $a0, $sp, 0x154 +/* 0956E0 7F060BB0 0FC16008 */ jal matrix_4x4_copy +/* 0956E4 7F060BB4 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956E8 7F060BB8 27A40194 */ addiu $a0, $sp, 0x194 +/* 0956EC 7F060BBC 0FC16266 */ jal matrix_4x4_set_position +/* 0956F0 7F060BC0 27A50264 */ addiu $a1, $sp, 0x264 +/* 0956F4 7F060BC4 26050228 */ addiu $a1, $s0, 0x228 +/* 0956F8 7F060BC8 AFA50044 */ sw $a1, 0x44($sp) +/* 0956FC 7F060BCC 0FC16008 */ jal matrix_4x4_copy +/* 095700 7F060BD0 27A40264 */ addiu $a0, $sp, 0x264 +/* 095704 7F060BD4 26040268 */ addiu $a0, $s0, 0x268 +/* 095708 7F060BD8 AFA40040 */ sw $a0, 0x40($sp) +/* 09570C 7F060BDC 0FC16008 */ jal matrix_4x4_copy +/* 095710 7F060BE0 260502A8 */ addiu $a1, $s0, 0x2a8 +/* 095714 7F060BE4 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 095718 7F060BE8 00000000 */ nop +/* 09571C 7F060BEC 00402025 */ move $a0, $v0 +/* 095720 7F060BF0 8FA50044 */ lw $a1, 0x44($sp) +/* 095724 7F060BF4 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 095728 7F060BF8 8FA60040 */ lw $a2, 0x40($sp) +/* 09572C 7F060BFC 240F0001 */ li $t7, 1 +/* 095730 7F060C00 A20F000F */ sb $t7, 0xf($s0) +/* 095734 7F060C04 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 095738 7F060C08 8FA400FC */ lw $a0, 0xfc($sp) +/* 09573C 7F060C0C 10400017 */ beqz $v0, .L7F060C6C +/* 095740 7F060C10 8FA400FC */ lw $a0, 0xfc($sp) +/* 095744 7F060C14 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095748 7F060C18 24050800 */ li $a1, 2048 +/* 09574C 7F060C1C 10400013 */ beqz $v0, .L7F060C6C +/* 095750 7F060C20 8FA400FC */ lw $a0, 0xfc($sp) +/* 095754 7F060C24 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095758 7F060C28 24052000 */ li $a1, 8192 +/* 09575C 7F060C2C 54400010 */ bnezl $v0, .L7F060C70 +/* 095760 7F060C30 A200000F */ sb $zero, 0xf($s0) +/* 095764 7F060C34 8E020024 */ lw $v0, 0x24($s0) +/* 095768 7F060C38 24010006 */ li $at, 6 +/* 09576C 7F060C3C 1041000B */ beq $v0, $at, .L7F060C6C +/* 095770 7F060C40 24010007 */ li $at, 7 +/* 095774 7F060C44 5041000A */ beql $v0, $at, .L7F060C70 +/* 095778 7F060C48 A200000F */ sb $zero, 0xf($s0) +/* 09577C 7F060C4C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 095780 7F060C50 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095784 7F060C54 50400006 */ beql $v0, $zero, .L7F060C70 +/* 095788 7F060C58 A200000F */ sb $zero, 0xf($s0) +/* 09578C 7F060C5C 0FC173C0 */ jal get_itemtype_in_hand +/* 095790 7F060C60 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 095794 7F060C64 54400003 */ bnezl $v0, .L7F060C74 +/* 095798 7F060C68 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C6C: +/* 09579C 7F060C6C A200000F */ sb $zero, 0xf($s0) +.L7F060C70: +/* 0957A0 7F060C70 8E18002C */ lw $t8, 0x2c($s0) +.L7F060C74: +/* 0957A4 7F060C74 8FA400FC */ lw $a0, 0xfc($sp) +/* 0957A8 7F060C78 5F000007 */ bgtzl $t8, .L7F060C98 +/* 0957AC 7F060C7C 8219000F */ lb $t9, 0xf($s0) +/* 0957B0 7F060C80 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0957B4 7F060C84 24050002 */ li $a1, 2 +/* 0957B8 7F060C88 50400003 */ beql $v0, $zero, .L7F060C98 +/* 0957BC 7F060C8C 8219000F */ lb $t9, 0xf($s0) +/* 0957C0 7F060C90 A200000F */ sb $zero, 0xf($s0) +/* 0957C4 7F060C94 8219000F */ lb $t9, 0xf($s0) +.L7F060C98: +/* 0957C8 7F060C98 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 0957CC 7F060C9C 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0957D0 7F060CA0 532002CD */ beql $t9, $zero, .L7F0617D8 +/* 0957D4 7F060CA4 8FAF00FC */ lw $t7, 0xfc($sp) +/* 0957D8 7F060CA8 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 0957DC 7F060CAC 000D7940 */ sll $t7, $t5, 5 +/* 0957E0 7F060CB0 00001825 */ move $v1, $zero +/* 0957E4 7F060CB4 01CF1021 */ addu $v0, $t6, $t7 +/* 0957E8 7F060CB8 8444081E */ lh $a0, 0x81e($v0) +/* 0957EC 7F060CBC 24420810 */ addiu $v0, $v0, 0x810 +/* 0957F0 7F060CC0 AFA201A0 */ sw $v0, 0x1a0($sp) +/* 0957F4 7F060CC4 0004C180 */ sll $t8, $a0, 6 +/* 0957F8 7F060CC8 03002025 */ move $a0, $t8 +/* 0957FC 7F060CCC 0FC2F5C5 */ jal dynAllocate +/* 095800 7F060CD0 AFA00100 */ sw $zero, 0x100($sp) +/* 095804 7F060CD4 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095808 7F060CD8 AFA202A4 */ sw $v0, 0x2a4($sp) +/* 09580C 7F060CDC 8FA30100 */ lw $v1, 0x100($sp) +/* 095810 7F060CE0 872D000E */ lh $t5, 0xe($t9) +/* 095814 7F060CE4 19A0000D */ blez $t5, .L7F060D1C +/* 095818 7F060CE8 00402025 */ move $a0, $v0 +/* 09581C 7F060CEC AFA30100 */ sw $v1, 0x100($sp) +.L7F060CF0: +/* 095820 7F060CF0 0FC15FF4 */ jal matrix_4x4_set_identity +/* 095824 7F060CF4 AFA40044 */ sw $a0, 0x44($sp) +/* 095828 7F060CF8 8FAE01A0 */ lw $t6, 0x1a0($sp) +/* 09582C 7F060CFC 8FA30100 */ lw $v1, 0x100($sp) +/* 095830 7F060D00 8FA40044 */ lw $a0, 0x44($sp) +/* 095834 7F060D04 85CF000E */ lh $t7, 0xe($t6) +/* 095838 7F060D08 24630001 */ addiu $v1, $v1, 1 +/* 09583C 7F060D0C 24840040 */ addiu $a0, $a0, 0x40 +/* 095840 7F060D10 006F082A */ slt $at, $v1, $t7 +/* 095844 7F060D14 5420FFF6 */ bnezl $at, .L7F060CF0 +/* 095848 7F060D18 AFA30100 */ sw $v1, 0x100($sp) +.L7F060D1C: +/* 09584C 7F060D1C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 095850 7F060D20 8FA401A0 */ lw $a0, 0x1a0($sp) +/* 095854 7F060D24 260402F8 */ addiu $a0, $s0, 0x2f8 +/* 095858 7F060D28 8FA501A0 */ lw $a1, 0x1a0($sp) +/* 09585C 7F060D2C AFA40044 */ sw $a0, 0x44($sp) +/* 095860 7F060D30 0FC1D7DA */ jal sub_GAME_7F075F68 +/* 095864 7F060D34 26060318 */ addiu $a2, $s0, 0x318 +/* 095868 7F060D38 8FA40044 */ lw $a0, 0x44($sp) +/* 09586C 7F060D3C 0FC17A5E */ jal sub_GAME_7F05E978 +/* 095870 7F060D40 24050001 */ li $a1, 1 +/* 095874 7F060D44 8FA40044 */ lw $a0, 0x44($sp) +/* 095878 7F060D48 0FC17AA5 */ jal sub_GAME_7F05EA94 +/* 09587C 7F060D4C 8205000E */ lb $a1, 0xe($s0) +/* 095880 7F060D50 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095884 7F060D54 8F020008 */ lw $v0, 8($t8) +/* 095888 7F060D58 8C440004 */ lw $a0, 4($v0) +/* 09588C 7F060D5C 50800008 */ beql $a0, $zero, .L7F060D80 +/* 095890 7F060D60 8C43000C */ lw $v1, 0xc($v0) +/* 095894 7F060D64 8C830004 */ lw $v1, 4($a0) +/* 095898 7F060D68 94790004 */ lhu $t9, 4($v1) +/* 09589C 7F060D6C 00196880 */ sll $t5, $t9, 2 +/* 0958A0 7F060D70 020D7021 */ addu $t6, $s0, $t5 +/* 0958A4 7F060D74 25CF0318 */ addiu $t7, $t6, 0x318 +/* 0958A8 7F060D78 AFAF010C */ sw $t7, 0x10c($sp) +/* 0958AC 7F060D7C 8C43000C */ lw $v1, 0xc($v0) +.L7F060D80: +/* 0958B0 7F060D80 50600004 */ beql $v1, $zero, .L7F060D94 +/* 0958B4 7F060D84 8FB902A4 */ lw $t9, 0x2a4($sp) +/* 0958B8 7F060D88 8C780004 */ lw $t8, 4($v1) +/* 0958BC 7F060D8C AFB80108 */ sw $t8, 0x108($sp) +/* 0958C0 7F060D90 8FB902A4 */ lw $t9, 0x2a4($sp) +.L7F060D94: +/* 0958C4 7F060D94 24050400 */ li $a1, 1024 +/* 0958C8 7F060D98 AE190304 */ sw $t9, 0x304($s0) +/* 0958CC 7F060D9C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 0958D0 7F060DA0 8FA400FC */ lw $a0, 0xfc($sp) +/* 0958D4 7F060DA4 10400008 */ beqz $v0, .L7F060DC8 +/* 0958D8 7F060DA8 00000000 */ nop +/* 0958DC 7F060DAC 8FAD02A8 */ lw $t5, 0x2a8($sp) +/* 0958E0 7F060DB0 24010001 */ li $at, 1 +/* 0958E4 7F060DB4 15A10004 */ bne $t5, $at, .L7F060DC8 +/* 0958E8 7F060DB8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0958EC 7F060DBC 44816000 */ mtc1 $at, $f12 +/* 0958F0 7F060DC0 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 0958F4 7F060DC4 27A50264 */ addiu $a1, $sp, 0x264 +.L7F060DC8: +/* 0958F8 7F060DC8 3C018005 */ lui $at, %hi(D_80053E04) +/* 0958FC 7F060DCC C42C3E04 */ lwc1 $f12, %lo(D_80053E04)($at) +/* 095900 7F060DD0 0FC1629F */ jal matrix_scalar_multiply +/* 095904 7F060DD4 27A50264 */ addiu $a1, $sp, 0x264 +/* 095908 7F060DD8 27A40264 */ addiu $a0, $sp, 0x264 +/* 09590C 7F060DDC 0FC16008 */ jal matrix_4x4_copy +/* 095910 7F060DE0 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095914 7F060DE4 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095918 7F060DE8 3C0E8004 */ lui $t6, %hi(weapon_gun_revolver) +/* 09591C 7F060DEC 25CEC76C */ addiu $t6, %lo(weapon_gun_revolver) # addiu $t6, $t6, -0x3894 +/* 095920 7F060DF0 8DF80004 */ lw $t8, 4($t7) +/* 095924 7F060DF4 55D80078 */ bnel $t6, $t8, .L7F060FD8 +/* 095928 7F060DF8 8FA2010C */ lw $v0, 0x10c($sp) +/* 09592C 7F060DFC 8DE20008 */ lw $v0, 8($t7) +/* 095930 7F060E00 8FB900FC */ lw $t9, 0xfc($sp) +/* 095934 7F060E04 24010012 */ li $at, 18 +/* 095938 7F060E08 8C430010 */ lw $v1, 0x10($v0) +/* 09593C 7F060E0C 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095940 7F060E10 50600041 */ beql $v1, $zero, .L7F060F18 +/* 095944 7F060E14 8C430014 */ lw $v1, 0x14($v0) +/* 095948 7F060E18 44806000 */ mtc1 $zero, $f12 +/* 09594C 7F060E1C 17210021 */ bne $t9, $at, .L7F060EA4 +/* 095950 7F060E20 8C640004 */ lw $a0, 4($v1) +/* 095954 7F060E24 8E0D0024 */ lw $t5, 0x24($s0) +/* 095958 7F060E28 24010001 */ li $at, 1 +/* 09595C 7F060E2C 55A10012 */ bnel $t5, $at, .L7F060E78 +/* 095960 7F060E30 8E18002C */ lw $t8, 0x2c($s0) +/* 095964 7F060E34 8E18002C */ lw $t8, 0x2c($s0) +/* 095968 7F060E38 8E0E0020 */ lw $t6, 0x20($s0) +/* 09596C 7F060E3C 3C018005 */ lui $at, %hi(D_80053E08) +/* 095970 7F060E40 00187880 */ sll $t7, $t8, 2 +/* 095974 7F060E44 01F87823 */ subu $t7, $t7, $t8 +/* 095978 7F060E48 000F7840 */ sll $t7, $t7, 1 +/* 09597C 7F060E4C 01CFC823 */ subu $t9, $t6, $t7 +/* 095980 7F060E50 272D001E */ addiu $t5, $t9, 0x1e +/* 095984 7F060E54 448D8000 */ mtc1 $t5, $f16 +/* 095988 7F060E58 C42A3E08 */ lwc1 $f10, %lo(D_80053E08)($at) +/* 09598C 7F060E5C 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095990 7F060E60 468081A0 */ cvt.s.w $f6, $f16 +/* 095994 7F060E64 44814000 */ mtc1 $at, $f8 +/* 095998 7F060E68 460A3482 */ mul.s $f18, $f6, $f10 +/* 09599C 7F060E6C 1000001D */ b .L7F060EE4 +/* 0959A0 7F060E70 46089303 */ div.s $f12, $f18, $f8 +/* 0959A4 7F060E74 8E18002C */ lw $t8, 0x2c($s0) +.L7F060E78: +/* 0959A8 7F060E78 240E0006 */ li $t6, 6 +/* 0959AC 7F060E7C 3C018005 */ lui $at, %hi(D_80053E0C) +/* 0959B0 7F060E80 01D87823 */ subu $t7, $t6, $t8 +/* 0959B4 7F060E84 448F2000 */ mtc1 $t7, $f4 +/* 0959B8 7F060E88 C4263E0C */ lwc1 $f6, %lo(D_80053E0C)($at) +/* 0959BC 7F060E8C 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 0959C0 7F060E90 46802420 */ cvt.s.w $f16, $f4 +/* 0959C4 7F060E94 44819000 */ mtc1 $at, $f18 +/* 0959C8 7F060E98 46068282 */ mul.s $f10, $f16, $f6 +/* 0959CC 7F060E9C 10000011 */ b .L7F060EE4 +/* 0959D0 7F060EA0 46125303 */ div.s $f12, $f10, $f18 +.L7F060EA4: +/* 0959D4 7F060EA4 8E190024 */ lw $t9, 0x24($s0) +/* 0959D8 7F060EA8 24010001 */ li $at, 1 +/* 0959DC 7F060EAC 1721000D */ bne $t9, $at, .L7F060EE4 +/* 0959E0 7F060EB0 00000000 */ nop +/* 0959E4 7F060EB4 8E020020 */ lw $v0, 0x20($s0) +/* 0959E8 7F060EB8 28410006 */ slti $at, $v0, 6 +/* 0959EC 7F060EBC 10200009 */ beqz $at, .L7F060EE4 +/* 0959F0 7F060EC0 00000000 */ nop +/* 0959F4 7F060EC4 44824000 */ mtc1 $v0, $f8 +/* 0959F8 7F060EC8 3C018005 */ lui $at, %hi(D_80053E10) +/* 0959FC 7F060ECC C4303E10 */ lwc1 $f16, %lo(D_80053E10)($at) +/* 095A00 7F060ED0 46804120 */ cvt.s.w $f4, $f8 +/* 095A04 7F060ED4 3C014210 */ li $at, 0x42100000 # 36.000000 +/* 095A08 7F060ED8 44815000 */ mtc1 $at, $f10 +/* 095A0C 7F060EDC 46102182 */ mul.s $f6, $f4, $f16 +/* 095A10 7F060EE0 460A3303 */ div.s $f12, $f6, $f10 +.L7F060EE4: +/* 095A14 7F060EE4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095A18 7F060EE8 AFA4009C */ sw $a0, 0x9c($sp) +/* 095A1C 7F060EEC 8FA4009C */ lw $a0, 0x9c($sp) +/* 095A20 7F060EF0 0FC16266 */ jal matrix_4x4_set_position +/* 095A24 7F060EF4 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A28 7F060EF8 8FA602A4 */ lw $a2, 0x2a4($sp) +/* 095A2C 7F060EFC 27A40264 */ addiu $a0, $sp, 0x264 +/* 095A30 7F060F00 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A34 7F060F04 0FC16032 */ jal matrix_4x4_multiply +/* 095A38 7F060F08 24C600C0 */ addiu $a2, $a2, 0xc0 +/* 095A3C 7F060F0C 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 095A40 7F060F10 8DA20008 */ lw $v0, 8($t5) +/* 095A44 7F060F14 8C430014 */ lw $v1, 0x14($v0) +.L7F060F18: +/* 095A48 7F060F18 5060002F */ beql $v1, $zero, .L7F060FD8 +/* 095A4C 7F060F1C 8FA2010C */ lw $v0, 0x10c($sp) +/* 095A50 7F060F20 8E0E0024 */ lw $t6, 0x24($s0) +/* 095A54 7F060F24 24010001 */ li $at, 1 +/* 095A58 7F060F28 8C640004 */ lw $a0, 4($v1) +/* 095A5C 7F060F2C 15C10022 */ bne $t6, $at, .L7F060FB8 +/* 095A60 7F060F30 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095A64 7F060F34 8E020020 */ lw $v0, 0x20($s0) +/* 095A68 7F060F38 24180006 */ li $t8, 6 +/* 095A6C 7F060F3C 28410003 */ slti $at, $v0, 3 +/* 095A70 7F060F40 1020000C */ beqz $at, .L7F060F74 +/* 095A74 7F060F44 03027823 */ subu $t7, $t8, $v0 +/* 095A78 7F060F48 44829000 */ mtc1 $v0, $f18 +/* 095A7C 7F060F4C 3C018005 */ lui $at, %hi(D_80053E14) +/* 095A80 7F060F50 C4303E14 */ lwc1 $f16, %lo(D_80053E14)($at) +/* 095A84 7F060F54 46809220 */ cvt.s.w $f8, $f18 +/* 095A88 7F060F58 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095A8C 7F060F5C 44815000 */ mtc1 $at, $f10 +/* 095A90 7F060F60 46004107 */ neg.s $f4, $f8 +/* 095A94 7F060F64 46102002 */ mul.s $f0, $f4, $f16 +/* 095A98 7F060F68 46000180 */ add.s $f6, $f0, $f0 +/* 095A9C 7F060F6C 1000000B */ b .L7F060F9C +/* 095AA0 7F060F70 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F74: +/* 095AA4 7F060F74 448F9000 */ mtc1 $t7, $f18 +/* 095AA8 7F060F78 3C018005 */ lui $at, %hi(D_80053E18) +/* 095AAC 7F060F7C C4303E18 */ lwc1 $f16, %lo(D_80053E18)($at) +/* 095AB0 7F060F80 46809220 */ cvt.s.w $f8, $f18 +/* 095AB4 7F060F84 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 095AB8 7F060F88 44815000 */ mtc1 $at, $f10 +/* 095ABC 7F060F8C 46004107 */ neg.s $f4, $f8 +/* 095AC0 7F060F90 46102002 */ mul.s $f0, $f4, $f16 +/* 095AC4 7F060F94 46000180 */ add.s $f6, $f0, $f0 +/* 095AC8 7F060F98 460A3303 */ div.s $f12, $f6, $f10 +.L7F060F9C: +/* 095ACC 7F060F9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 095AD0 7F060FA0 AFA40094 */ sw $a0, 0x94($sp) +/* 095AD4 7F060FA4 8FA40094 */ lw $a0, 0x94($sp) +/* 095AD8 7F060FA8 0FC16266 */ jal matrix_4x4_set_position +/* 095ADC 7F060FAC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AE0 7F060FB0 10000004 */ b .L7F060FC4 +/* 095AE4 7F060FB4 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FB8: +/* 095AE8 7F060FB8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095AEC 7F060FBC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AF0 7F060FC0 8FA602A4 */ lw $a2, 0x2a4($sp) +.L7F060FC4: +/* 095AF4 7F060FC4 27A40264 */ addiu $a0, $sp, 0x264 +/* 095AF8 7F060FC8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 095AFC 7F060FCC 0FC16032 */ jal matrix_4x4_multiply +/* 095B00 7F060FD0 24C60100 */ addiu $a2, $a2, 0x100 +/* 095B04 7F060FD4 8FA2010C */ lw $v0, 0x10c($sp) +.L7F060FD8: +/* 095B08 7F060FD8 50400003 */ beql $v0, $zero, .L7F060FE8 +/* 095B0C 7F060FDC 8FB90108 */ lw $t9, 0x108($sp) +/* 095B10 7F060FE0 AC400000 */ sw $zero, ($v0) +/* 095B14 7F060FE4 8FB90108 */ lw $t9, 0x108($sp) +.L7F060FE8: +/* 095B18 7F060FE8 53200142 */ beql $t9, $zero, .L7F0614F4 +/* 095B1C 7F060FEC C6100260 */ lwc1 $f16, 0x260($s0) +/* 095B20 7F060FF0 0C002914 */ jal randomGetNext +/* 095B24 7F060FF4 00000000 */ nop +/* 095B28 7F060FF8 44829000 */ mtc1 $v0, $f18 +/* 095B2C 7F060FFC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B30 7F061000 04410004 */ bgez $v0, .L7F061014 +/* 095B34 7F061004 46809220 */ cvt.s.w $f8, $f18 +/* 095B38 7F061008 44812000 */ mtc1 $at, $f4 +/* 095B3C 7F06100C 00000000 */ nop +/* 095B40 7F061010 46044200 */ add.s $f8, $f8, $f4 +.L7F061014: +/* 095B44 7F061014 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095B48 7F061018 44818000 */ mtc1 $at, $f16 +/* 095B4C 7F06101C 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 095B50 7F061020 44815000 */ mtc1 $at, $f10 +/* 095B54 7F061024 46104182 */ mul.s $f6, $f8, $f16 +/* 095B58 7F061028 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 095B5C 7F06102C 44812000 */ mtc1 $at, $f4 +/* 095B60 7F061030 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 095B64 7F061034 8FA400FC */ lw $a0, 0xfc($sp) +/* 095B68 7F061038 24050001 */ li $a1, 1 +/* 095B6C 7F06103C 460A3482 */ mul.s $f18, $f6, $f10 +/* 095B70 7F061040 46049200 */ add.s $f8, $f18, $f4 +/* 095B74 7F061044 E7A80080 */ swc1 $f8, 0x80($sp) +/* 095B78 7F061048 C5B00000 */ lwc1 $f16, ($t5) +/* 095B7C 7F06104C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 095B80 7F061050 E7B0007C */ swc1 $f16, 0x7c($sp) +/* 095B84 7F061054 10400018 */ beqz $v0, .L7F0610B8 +/* 095B88 7F061058 8FA40108 */ lw $a0, 0x108($sp) +/* 095B8C 7F06105C 0C002914 */ jal randomGetNext +/* 095B90 7F061060 00000000 */ nop +/* 095B94 7F061064 44823000 */ mtc1 $v0, $f6 +/* 095B98 7F061068 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095B9C 7F06106C 04410004 */ bgez $v0, .L7F061080 +/* 095BA0 7F061070 468032A0 */ cvt.s.w $f10, $f6 +/* 095BA4 7F061074 44819000 */ mtc1 $at, $f18 +/* 095BA8 7F061078 00000000 */ nop +/* 095BAC 7F06107C 46125280 */ add.s $f10, $f10, $f18 +.L7F061080: +/* 095BB0 7F061080 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095BB4 7F061084 44812000 */ mtc1 $at, $f4 +/* 095BB8 7F061088 3C018005 */ lui $at, %hi(D_80053E1C) +/* 095BBC 7F06108C C4303E1C */ lwc1 $f16, %lo(D_80053E1C)($at) +/* 095BC0 7F061090 46045202 */ mul.s $f8, $f10, $f4 +/* 095BC4 7F061094 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BC8 7F061098 46104302 */ mul.s $f12, $f8, $f16 +/* 095BCC 7F06109C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 095BD0 7F0610A0 00000000 */ nop +/* 095BD4 7F0610A4 8FA40108 */ lw $a0, 0x108($sp) +/* 095BD8 7F0610A8 0FC16266 */ jal matrix_4x4_set_position +/* 095BDC 7F0610AC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BE0 7F0610B0 10000004 */ b .L7F0610C4 +/* 095BE4 7F0610B4 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610B8: +/* 095BE8 7F0610B8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 095BEC 7F0610BC 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BF0 7F0610C0 C7AC0080 */ lwc1 $f12, 0x80($sp) +.L7F0610C4: +/* 095BF4 7F0610C4 0FC1629F */ jal matrix_scalar_multiply +/* 095BF8 7F0610C8 27A50224 */ addiu $a1, $sp, 0x224 +/* 095BFC 7F0610CC C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095C00 7F0610D0 0FC16285 */ jal matrix_column_3_scalar_multiply +/* 095C04 7F0610D4 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C08 7F0610D8 27A40264 */ addiu $a0, $sp, 0x264 +/* 095C0C 7F0610DC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095C10 7F0610E0 27A50224 */ addiu $a1, $sp, 0x224 +/* 095C14 7F0610E4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095C18 7F0610E8 27A40224 */ addiu $a0, $sp, 0x224 +/* 095C1C 7F0610EC 0FC16008 */ jal matrix_4x4_copy +/* 095C20 7F0610F0 24A50040 */ addiu $a1, $a1, 0x40 +/* 095C24 7F0610F4 C7A60254 */ lwc1 $f6, 0x254($sp) +/* 095C28 7F0610F8 E60602E8 */ swc1 $f6, 0x2e8($s0) +/* 095C2C 7F0610FC C7B20258 */ lwc1 $f18, 0x258($sp) +/* 095C30 7F061100 E61202EC */ swc1 $f18, 0x2ec($s0) +/* 095C34 7F061104 C7AA025C */ lwc1 $f10, 0x25c($sp) +/* 095C38 7F061108 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 095C3C 7F06110C E60A02F0 */ swc1 $f10, 0x2f0($s0) +/* 095C40 7F061110 00402025 */ move $a0, $v0 +/* 095C44 7F061114 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 095C48 7F061118 260502E8 */ addiu $a1, $s0, 0x2e8 +/* 095C4C 7F06111C C7A4025C */ lwc1 $f4, 0x25c($sp) +/* 095C50 7F061120 820E000D */ lb $t6, 0xd($s0) +/* 095C54 7F061124 46002207 */ neg.s $f8, $f4 +/* 095C58 7F061128 11C000EE */ beqz $t6, .L7F0614E4 +/* 095C5C 7F06112C E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 095C60 7F061130 8FB8010C */ lw $t8, 0x10c($sp) +/* 095C64 7F061134 240F0001 */ li $t7, 1 +/* 095C68 7F061138 53000003 */ beql $t8, $zero, .L7F061148 +/* 095C6C 7F06113C 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 095C70 7F061140 AF0F0000 */ sw $t7, ($t8) +/* 095C74 7F061144 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F061148: +/* 095C78 7F061148 8F2D0008 */ lw $t5, 8($t9) +/* 095C7C 7F06114C 8DA30008 */ lw $v1, 8($t5) +/* 095C80 7F061150 5060006D */ beql $v1, $zero, .L7F061308 +/* 095C84 7F061154 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 095C88 7F061158 8C620004 */ lw $v0, 4($v1) +/* 095C8C 7F06115C C7A60224 */ lwc1 $f6, 0x224($sp) +/* 095C90 7F061160 C7A40234 */ lwc1 $f4, 0x234($sp) +/* 095C94 7F061164 C4500000 */ lwc1 $f16, ($v0) +/* 095C98 7F061168 C44A0004 */ lwc1 $f10, 4($v0) +/* 095C9C 7F06116C 46068482 */ mul.s $f18, $f16, $f6 +/* 095CA0 7F061170 C4460008 */ lwc1 $f6, 8($v0) +/* 095CA4 7F061174 46045202 */ mul.s $f8, $f10, $f4 +/* 095CA8 7F061178 C7AA0244 */ lwc1 $f10, 0x244($sp) +/* 095CAC 7F06117C 460A3102 */ mul.s $f4, $f6, $f10 +/* 095CB0 7F061180 46089400 */ add.s $f16, $f18, $f8 +/* 095CB4 7F061184 C7A80254 */ lwc1 $f8, 0x254($sp) +/* 095CB8 7F061188 46048480 */ add.s $f18, $f16, $f4 +/* 095CBC 7F06118C C7B00228 */ lwc1 $f16, 0x228($sp) +/* 095CC0 7F061190 46124180 */ add.s $f6, $f8, $f18 +/* 095CC4 7F061194 C7B20238 */ lwc1 $f18, 0x238($sp) +/* 095CC8 7F061198 E7A60084 */ swc1 $f6, 0x84($sp) +/* 095CCC 7F06119C C44A0000 */ lwc1 $f10, ($v0) +/* 095CD0 7F0611A0 C4480004 */ lwc1 $f8, 4($v0) +/* 095CD4 7F0611A4 46105102 */ mul.s $f4, $f10, $f16 +/* 095CD8 7F0611A8 C4500008 */ lwc1 $f16, 8($v0) +/* 095CDC 7F0611AC 46124182 */ mul.s $f6, $f8, $f18 +/* 095CE0 7F0611B0 C7A80248 */ lwc1 $f8, 0x248($sp) +/* 095CE4 7F0611B4 46088482 */ mul.s $f18, $f16, $f8 +/* 095CE8 7F0611B8 46062280 */ add.s $f10, $f4, $f6 +/* 095CEC 7F0611BC C7A60258 */ lwc1 $f6, 0x258($sp) +/* 095CF0 7F0611C0 46125100 */ add.s $f4, $f10, $f18 +/* 095CF4 7F0611C4 C7AA022C */ lwc1 $f10, 0x22c($sp) +/* 095CF8 7F0611C8 46043400 */ add.s $f16, $f6, $f4 +/* 095CFC 7F0611CC C7A4023C */ lwc1 $f4, 0x23c($sp) +/* 095D00 7F0611D0 E7B00088 */ swc1 $f16, 0x88($sp) +/* 095D04 7F0611D4 C4480000 */ lwc1 $f8, ($v0) +/* 095D08 7F0611D8 C4460004 */ lwc1 $f6, 4($v0) +/* 095D0C 7F0611DC 460A4482 */ mul.s $f18, $f8, $f10 +/* 095D10 7F0611E0 C44A0008 */ lwc1 $f10, 8($v0) +/* 095D14 7F0611E4 46043402 */ mul.s $f16, $f6, $f4 +/* 095D18 7F0611E8 C7A6024C */ lwc1 $f6, 0x24c($sp) +/* 095D1C 7F0611EC 46065102 */ mul.s $f4, $f10, $f6 +/* 095D20 7F0611F0 46109200 */ add.s $f8, $f18, $f16 +/* 095D24 7F0611F4 C7B0025C */ lwc1 $f16, 0x25c($sp) +/* 095D28 7F0611F8 46044480 */ add.s $f18, $f8, $f4 +/* 095D2C 7F0611FC 46128280 */ add.s $f10, $f16, $f18 +/* 095D30 7F061200 0C002914 */ jal randomGetNext +/* 095D34 7F061204 E7AA008C */ swc1 $f10, 0x8c($sp) +/* 095D38 7F061208 44823000 */ mtc1 $v0, $f6 +/* 095D3C 7F06120C 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095D40 7F061210 04410005 */ bgez $v0, .L7F061228 +/* 095D44 7F061214 46803220 */ cvt.s.w $f8, $f6 +/* 095D48 7F061218 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095D4C 7F06121C 44812000 */ mtc1 $at, $f4 +/* 095D50 7F061220 00000000 */ nop +/* 095D54 7F061224 46044200 */ add.s $f8, $f8, $f4 +.L7F061228: +/* 095D58 7F061228 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095D5C 7F06122C 44818000 */ mtc1 $at, $f16 +/* 095D60 7F061230 3C018005 */ lui $at, %hi(D_80053E20) +/* 095D64 7F061234 C42A3E20 */ lwc1 $f10, %lo(D_80053E20)($at) +/* 095D68 7F061238 46104482 */ mul.s $f18, $f8, $f16 +/* 095D6C 7F06123C C7B00088 */ lwc1 $f16, 0x88($sp) +/* 095D70 7F061240 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 095D74 7F061244 46002207 */ neg.s $f8, $f4 +/* 095D78 7F061248 460A9182 */ mul.s $f6, $f18, $f10 +/* 095D7C 7F06124C C7AA008C */ lwc1 $f10, 0x8c($sp) +/* 095D80 7F061250 46008487 */ neg.s $f18, $f16 +/* 095D84 7F061254 44064000 */ mfc1 $a2, $f8 +/* 095D88 7F061258 44079000 */ mfc1 $a3, $f18 +/* 095D8C 7F06125C 44053000 */ mfc1 $a1, $f6 +/* 095D90 7F061260 46005187 */ neg.s $f6, $f10 +/* 095D94 7F061264 0FC1673A */ jal matrix_4x4_align +/* 095D98 7F061268 E7A60010 */ swc1 $f6, 0x10($sp) +/* 095D9C 7F06126C 3C018005 */ lui $at, %hi(D_80053E24) +/* 095DA0 7F061270 C4243E24 */ lwc1 $f4, %lo(D_80053E24)($at) +/* 095DA4 7F061274 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 095DA8 7F061278 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095DAC 7F06127C 46082302 */ mul.s $f12, $f4, $f8 +/* 095DB0 7F061280 0FC1629F */ jal matrix_scalar_multiply +/* 095DB4 7F061284 00000000 */ nop +/* 095DB8 7F061288 C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095DBC 7F06128C C61201C8 */ lwc1 $f18, 0x1c8($s0) +/* 095DC0 7F061290 C7A60198 */ lwc1 $f6, 0x198($sp) +/* 095DC4 7F061294 C60401CC */ lwc1 $f4, 0x1cc($s0) +/* 095DC8 7F061298 46128281 */ sub.s $f10, $f16, $f18 +/* 095DCC 7F06129C C61201D0 */ lwc1 $f18, 0x1d0($s0) +/* 095DD0 7F0612A0 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095DD4 7F0612A4 46043201 */ sub.s $f8, $f6, $f4 +/* 095DD8 7F0612A8 44065000 */ mfc1 $a2, $f10 +/* 095DDC 7F0612AC 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DE0 7F0612B0 46128281 */ sub.s $f10, $f16, $f18 +/* 095DE4 7F0612B4 44074000 */ mfc1 $a3, $f8 +/* 095DE8 7F0612B8 24050000 */ li $a1, 0 +/* 095DEC 7F0612BC 0FC166D6 */ jal matrix_4x4_7F059B58 +/* 095DF0 7F0612C0 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 095DF4 7F0612C4 27A40114 */ addiu $a0, $sp, 0x114 +/* 095DF8 7F0612C8 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095DFC 7F0612CC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E00 7F0612D0 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095E04 7F0612D4 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095E08 7F0612D8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E0C 7F0612DC 27A40154 */ addiu $a0, $sp, 0x154 +/* 095E10 7F0612E0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095E14 7F0612E4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E18 7F0612E8 27A40084 */ addiu $a0, $sp, 0x84 +/* 095E1C 7F0612EC 0FC16266 */ jal matrix_4x4_set_position +/* 095E20 7F0612F0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095E24 7F0612F4 8FA502A4 */ lw $a1, 0x2a4($sp) +/* 095E28 7F0612F8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095E2C 7F0612FC 0FC16008 */ jal matrix_4x4_copy +/* 095E30 7F061300 24A50080 */ addiu $a1, $a1, 0x80 +/* 095E34 7F061304 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061308: +/* 095E38 7F061308 3C0E8004 */ lui $t6, %hi(weapon_gun_kf7) +/* 095E3C 7F06130C 25CEC7AC */ addiu $t6, %lo(weapon_gun_kf7) # addiu $t6, $t6, -0x3854 +/* 095E40 7F061310 8DF80004 */ lw $t8, 4($t7) +/* 095E44 7F061314 55D80074 */ bnel $t6, $t8, .L7F0614E8 +/* 095E48 7F061318 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E4C 7F06131C 8DF90008 */ lw $t9, 8($t7) +/* 095E50 7F061320 8F230010 */ lw $v1, 0x10($t9) +/* 095E54 7F061324 50600070 */ beql $v1, $zero, .L7F0614E8 +/* 095E58 7F061328 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 095E5C 7F06132C 8C620004 */ lw $v0, 4($v1) +/* 095E60 7F061330 C7A40224 */ lwc1 $f4, 0x224($sp) +/* 095E64 7F061334 C7B20234 */ lwc1 $f18, 0x234($sp) +/* 095E68 7F061338 C4460000 */ lwc1 $f6, ($v0) +/* 095E6C 7F06133C C4500004 */ lwc1 $f16, 4($v0) +/* 095E70 7F061340 3C018005 */ lui $at, %hi(D_80053E28) +/* 095E74 7F061344 46043202 */ mul.s $f8, $f6, $f4 +/* 095E78 7F061348 C4440008 */ lwc1 $f4, 8($v0) +/* 095E7C 7F06134C 8FAD02A4 */ lw $t5, 0x2a4($sp) +/* 095E80 7F061350 46128282 */ mul.s $f10, $f16, $f18 +/* 095E84 7F061354 C7B00244 */ lwc1 $f16, 0x244($sp) +/* 095E88 7F061358 25AE00C0 */ addiu $t6, $t5, 0xc0 +/* 095E8C 7F06135C 46102482 */ mul.s $f18, $f4, $f16 +/* 095E90 7F061360 460A4180 */ add.s $f6, $f8, $f10 +/* 095E94 7F061364 C7AA0254 */ lwc1 $f10, 0x254($sp) +/* 095E98 7F061368 46123200 */ add.s $f8, $f6, $f18 +/* 095E9C 7F06136C C7A60228 */ lwc1 $f6, 0x228($sp) +/* 095EA0 7F061370 46085100 */ add.s $f4, $f10, $f8 +/* 095EA4 7F061374 C7A80238 */ lwc1 $f8, 0x238($sp) +/* 095EA8 7F061378 E7A40084 */ swc1 $f4, 0x84($sp) +/* 095EAC 7F06137C C4500000 */ lwc1 $f16, ($v0) +/* 095EB0 7F061380 C44A0004 */ lwc1 $f10, 4($v0) +/* 095EB4 7F061384 46068482 */ mul.s $f18, $f16, $f6 +/* 095EB8 7F061388 C4460008 */ lwc1 $f6, 8($v0) +/* 095EBC 7F06138C 46085102 */ mul.s $f4, $f10, $f8 +/* 095EC0 7F061390 C7AA0248 */ lwc1 $f10, 0x248($sp) +/* 095EC4 7F061394 460A3202 */ mul.s $f8, $f6, $f10 +/* 095EC8 7F061398 46049400 */ add.s $f16, $f18, $f4 +/* 095ECC 7F06139C C7A40258 */ lwc1 $f4, 0x258($sp) +/* 095ED0 7F0613A0 46088480 */ add.s $f18, $f16, $f8 +/* 095ED4 7F0613A4 C7B0022C */ lwc1 $f16, 0x22c($sp) +/* 095ED8 7F0613A8 46122180 */ add.s $f6, $f4, $f18 +/* 095EDC 7F0613AC C7B2023C */ lwc1 $f18, 0x23c($sp) +/* 095EE0 7F0613B0 E7A60088 */ swc1 $f6, 0x88($sp) +/* 095EE4 7F0613B4 C44A0000 */ lwc1 $f10, ($v0) +/* 095EE8 7F0613B8 C4440004 */ lwc1 $f4, 4($v0) +/* 095EEC 7F0613BC 46105202 */ mul.s $f8, $f10, $f16 +/* 095EF0 7F0613C0 C4500008 */ lwc1 $f16, 8($v0) +/* 095EF4 7F0613C4 AFAE0040 */ sw $t6, 0x40($sp) +/* 095EF8 7F0613C8 46122182 */ mul.s $f6, $f4, $f18 +/* 095EFC 7F0613CC C7A4024C */ lwc1 $f4, 0x24c($sp) +/* 095F00 7F0613D0 46048482 */ mul.s $f18, $f16, $f4 +/* 095F04 7F0613D4 C4243E28 */ lwc1 $f4, %lo(D_80053E28)($at) +/* 095F08 7F0613D8 46064280 */ add.s $f10, $f8, $f6 +/* 095F0C 7F0613DC C7A6025C */ lwc1 $f6, 0x25c($sp) +/* 095F10 7F0613E0 46125200 */ add.s $f8, $f10, $f18 +/* 095F14 7F0613E4 C7AA0080 */ lwc1 $f10, 0x80($sp) +/* 095F18 7F0613E8 460A2482 */ mul.s $f18, $f4, $f10 +/* 095F1C 7F0613EC 46083400 */ add.s $f16, $f6, $f8 +/* 095F20 7F0613F0 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 095F24 7F0613F4 0C002914 */ jal randomGetNext +/* 095F28 7F0613F8 E7B20038 */ swc1 $f18, 0x38($sp) +/* 095F2C 7F0613FC 44823000 */ mtc1 $v0, $f6 +/* 095F30 7F061400 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 095F34 7F061404 04410005 */ bgez $v0, .L7F06141C +/* 095F38 7F061408 46803220 */ cvt.s.w $f8, $f6 +/* 095F3C 7F06140C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 095F40 7F061410 44818000 */ mtc1 $at, $f16 +/* 095F44 7F061414 00000000 */ nop +/* 095F48 7F061418 46104200 */ add.s $f8, $f8, $f16 +.L7F06141C: +/* 095F4C 7F06141C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 095F50 7F061420 44812000 */ mtc1 $at, $f4 +/* 095F54 7F061424 3C018005 */ lui $at, %hi(D_80053E2C) +/* 095F58 7F061428 C4323E2C */ lwc1 $f18, %lo(D_80053E2C)($at) +/* 095F5C 7F06142C 46044282 */ mul.s $f10, $f8, $f4 +/* 095F60 7F061430 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 095F64 7F061434 C7B00084 */ lwc1 $f16, 0x84($sp) +/* 095F68 7F061438 46008207 */ neg.s $f8, $f16 +/* 095F6C 7F06143C 46125182 */ mul.s $f6, $f10, $f18 +/* 095F70 7F061440 C7B2008C */ lwc1 $f18, 0x8c($sp) +/* 095F74 7F061444 46002287 */ neg.s $f10, $f4 +/* 095F78 7F061448 44064000 */ mfc1 $a2, $f8 +/* 095F7C 7F06144C 44075000 */ mfc1 $a3, $f10 +/* 095F80 7F061450 44053000 */ mfc1 $a1, $f6 +/* 095F84 7F061454 46009187 */ neg.s $f6, $f18 +/* 095F88 7F061458 0FC1673A */ jal matrix_4x4_align +/* 095F8C 7F06145C E7A60010 */ swc1 $f6, 0x10($sp) +/* 095F90 7F061460 C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 095F94 7F061464 0FC1629F */ jal matrix_scalar_multiply +/* 095F98 7F061468 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095F9C 7F06146C C7B00194 */ lwc1 $f16, 0x194($sp) +/* 095FA0 7F061470 C60801C8 */ lwc1 $f8, 0x1c8($s0) +/* 095FA4 7F061474 C7AA0198 */ lwc1 $f10, 0x198($sp) +/* 095FA8 7F061478 C61201CC */ lwc1 $f18, 0x1cc($s0) +/* 095FAC 7F06147C 46088101 */ sub.s $f4, $f16, $f8 +/* 095FB0 7F061480 C60801D0 */ lwc1 $f8, 0x1d0($s0) +/* 095FB4 7F061484 C7B0019C */ lwc1 $f16, 0x19c($sp) +/* 095FB8 7F061488 46125181 */ sub.s $f6, $f10, $f18 +/* 095FBC 7F06148C 44062000 */ mfc1 $a2, $f4 +/* 095FC0 7F061490 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FC4 7F061494 46088101 */ sub.s $f4, $f16, $f8 +/* 095FC8 7F061498 44073000 */ mfc1 $a3, $f6 +/* 095FCC 7F06149C 24050000 */ li $a1, 0 +/* 095FD0 7F0614A0 0FC166D6 */ jal matrix_4x4_7F059B58 +/* 095FD4 7F0614A4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 095FD8 7F0614A8 27A40114 */ addiu $a0, $sp, 0x114 +/* 095FDC 7F0614AC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FE0 7F0614B0 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FE4 7F0614B4 C7AC007C */ lwc1 $f12, 0x7c($sp) +/* 095FE8 7F0614B8 0FC162E0 */ jal matrix_row_3_scalar_multiply +/* 095FEC 7F0614BC 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FF0 7F0614C0 27A40154 */ addiu $a0, $sp, 0x154 +/* 095FF4 7F0614C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 095FF8 7F0614C8 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 095FFC 7F0614CC 27A40084 */ addiu $a0, $sp, 0x84 +/* 096000 7F0614D0 0FC16266 */ jal matrix_4x4_set_position +/* 096004 7F0614D4 27A501E4 */ addiu $a1, $sp, 0x1e4 +/* 096008 7F0614D8 27A401E4 */ addiu $a0, $sp, 0x1e4 +/* 09600C 7F0614DC 0FC16008 */ jal matrix_4x4_copy +/* 096010 7F0614E0 8FA50040 */ lw $a1, 0x40($sp) +.L7F0614E4: +/* 096014 7F0614E4 8FB801A0 */ lw $t8, 0x1a0($sp) +.L7F0614E8: +/* 096018 7F0614E8 1000000C */ b .L7F06151C +/* 09601C 7F0614EC 8F020008 */ lw $v0, 8($t8) +/* 096020 7F0614F0 C6100260 */ lwc1 $f16, 0x260($s0) +.L7F0614F4: +/* 096024 7F0614F4 C60A0298 */ lwc1 $f10, 0x298($s0) +/* 096028 7F0614F8 C612029C */ lwc1 $f18, 0x29c($s0) +/* 09602C 7F0614FC C60602A0 */ lwc1 $f6, 0x2a0($s0) +/* 096030 7F061500 46008207 */ neg.s $f8, $f16 +/* 096034 7F061504 E60A02E8 */ swc1 $f10, 0x2e8($s0) +/* 096038 7F061508 E60802F4 */ swc1 $f8, 0x2f4($s0) +/* 09603C 7F06150C E61202EC */ swc1 $f18, 0x2ec($s0) +/* 096040 7F061510 E60602F0 */ swc1 $f6, 0x2f0($s0) +/* 096044 7F061514 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096048 7F061518 8DE20008 */ lw $v0, 8($t7) +.L7F06151C: +/* 09604C 7F06151C 8C440018 */ lw $a0, 0x18($v0) +/* 096050 7F061520 50800043 */ beql $a0, $zero, .L7F061630 +/* 096054 7F061524 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096058 7F061528 8C990004 */ lw $t9, 4($a0) +/* 09605C 7F06152C 00002825 */ move $a1, $zero +/* 096060 7F061530 0FC1B15C */ jal sub_GAME_7F06C570 +/* 096064 7F061534 AFB90070 */ sw $t9, 0x70($sp) +/* 096068 7F061538 AFA2006C */ sw $v0, 0x6c($sp) +/* 09606C 7F06153C 8E050010 */ lw $a1, 0x10($s0) +/* 096070 7F061540 0FC179AD */ jal sub_GAME_7F05E6B4 +/* 096074 7F061544 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096078 7F061548 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 09607C 7F06154C 8FA40070 */ lw $a0, 0x70($sp) +/* 096080 7F061550 27A601A4 */ addiu $a2, $sp, 0x1a4 +/* 096084 7F061554 85AE000C */ lh $t6, 0xc($t5) +/* 096088 7F061558 29C1001D */ slti $at, $t6, 0x1d +/* 09608C 7F06155C 1420002A */ bnez $at, .L7F061608 +/* 096090 7F061560 00000000 */ nop +/* 096094 7F061564 8DB80008 */ lw $t8, 8($t5) +/* 096098 7F061568 8F030070 */ lw $v1, 0x70($t8) +/* 09609C 7F06156C 10600026 */ beqz $v1, .L7F061608 +/* 0960A0 7F061570 00000000 */ nop +/* 0960A4 7F061574 8C620004 */ lw $v0, 4($v1) +/* 0960A8 7F061578 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0960AC 7F06157C 0FC17999 */ jal get_value_if_watch_is_on_hand_or_not +/* 0960B0 7F061580 AFA20068 */ sw $v0, 0x68($sp) +/* 0960B4 7F061584 3C018005 */ lui $at, %hi(D_80053E30) +/* 0960B8 7F061588 C42A3E30 */ lwc1 $f10, %lo(D_80053E30)($at) +/* 0960BC 7F06158C C6040214 */ lwc1 $f4, 0x214($s0) +/* 0960C0 7F061590 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0960C4 7F061594 44818000 */ mtc1 $at, $f16 +/* 0960C8 7F061598 460A2480 */ add.s $f18, $f4, $f10 +/* 0960CC 7F06159C 3C018005 */ lui $at, %hi(D_80053E34) +/* 0960D0 7F0615A0 C4243E34 */ lwc1 $f4, %lo(D_80053E34)($at) +/* 0960D4 7F0615A4 8FA20068 */ lw $v0, 0x68($sp) +/* 0960D8 7F0615A8 46009181 */ sub.s $f6, $f18, $f0 +/* 0960DC 7F0615AC 27A401A4 */ addiu $a0, $sp, 0x1a4 +/* 0960E0 7F0615B0 C4520000 */ lwc1 $f18, ($v0) +/* 0960E4 7F0615B4 46103202 */ mul.s $f8, $f6, $f16 +/* 0960E8 7F0615B8 C446000C */ lwc1 $f6, 0xc($v0) +/* 0960EC 7F0615BC 46069401 */ sub.s $f16, $f18, $f6 +/* 0960F0 7F0615C0 C4460014 */ lwc1 $f6, 0x14($v0) +/* 0960F4 7F0615C4 C4520008 */ lwc1 $f18, 8($v0) +/* 0960F8 7F0615C8 46044283 */ div.s $f10, $f8, $f4 +/* 0960FC 7F0615CC C4440010 */ lwc1 $f4, 0x10($v0) +/* 096100 7F0615D0 C4480004 */ lwc1 $f8, 4($v0) +/* 096104 7F0615D4 44068000 */ mfc1 $a2, $f16 +/* 096108 7F0615D8 46069401 */ sub.s $f16, $f18, $f6 +/* 09610C 7F0615DC E7B00010 */ swc1 $f16, 0x10($sp) +/* 096110 7F0615E0 44055000 */ mfc1 $a1, $f10 +/* 096114 7F0615E4 46044281 */ sub.s $f10, $f8, $f4 +/* 096118 7F0615E8 44075000 */ mfc1 $a3, $f10 +/* 09611C 7F0615EC 0C005DC8 */ jal guRotateF +/* 096120 7F0615F0 00000000 */ nop +/* 096124 7F0615F4 8FA40070 */ lw $a0, 0x70($sp) +/* 096128 7F0615F8 0FC16266 */ jal matrix_4x4_set_position +/* 09612C 7F0615FC 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096130 7F061600 10000004 */ b .L7F061614 +/* 096134 7F061604 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061608: +/* 096138 7F061608 0FC16134 */ jal matrix_4x4_set_position_and_rotation_around_y +/* 09613C 7F06160C 8E050214 */ lw $a1, 0x214($s0) +/* 096140 7F061610 8FAF006C */ lw $t7, 0x6c($sp) +.L7F061614: +/* 096144 7F061614 8FAE02A4 */ lw $t6, 0x2a4($sp) +/* 096148 7F061618 27A40264 */ addiu $a0, $sp, 0x264 +/* 09614C 7F06161C 000FC980 */ sll $t9, $t7, 6 +/* 096150 7F061620 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 096154 7F061624 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 096158 7F061628 032E3021 */ addu $a2, $t9, $t6 +/* 09615C 7F06162C 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061630: +/* 096160 7F061630 8FA40044 */ lw $a0, 0x44($sp) +/* 096164 7F061634 85B8000C */ lh $t8, 0xc($t5) +/* 096168 7F061638 01A02825 */ move $a1, $t5 +/* 09616C 7F06163C 2B01001E */ slti $at, $t8, 0x1e +/* 096170 7F061640 54200004 */ bnezl $at, .L7F061654 +/* 096174 7F061644 8FAF01A0 */ lw $t7, 0x1a0($sp) +/* 096178 7F061648 0FC21F05 */ jal seems_to_load_cuff_microcode +/* 09617C 7F06164C 2406001D */ li $a2, 29 +/* 096180 7F061650 8FAF01A0 */ lw $t7, 0x1a0($sp) +.L7F061654: +/* 096184 7F061654 8DF90008 */ lw $t9, 8($t7) +/* 096188 7F061658 8F24001C */ lw $a0, 0x1c($t9) +/* 09618C 7F06165C 50800017 */ beql $a0, $zero, .L7F0616BC +/* 096190 7F061660 8FB901A0 */ lw $t9, 0x1a0($sp) +/* 096194 7F061664 8C8E0004 */ lw $t6, 4($a0) +/* 096198 7F061668 00002825 */ move $a1, $zero +/* 09619C 7F06166C 0FC1B15C */ jal sub_GAME_7F06C570 +/* 0961A0 7F061670 AFAE0064 */ sw $t6, 0x64($sp) +/* 0961A4 7F061674 AFA20060 */ sw $v0, 0x60($sp) +/* 0961A8 7F061678 0FC17A0F */ jal sub_GAME_7F05E83C +/* 0961AC 7F06167C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0961B0 7F061680 8FA40064 */ lw $a0, 0x64($sp) +/* 0961B4 7F061684 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0961B8 7F061688 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961BC 7F06168C C7A801DC */ lwc1 $f8, 0x1dc($sp) +/* 0961C0 7F061690 C6040218 */ lwc1 $f4, 0x218($s0) +/* 0961C4 7F061694 8FB80060 */ lw $t8, 0x60($sp) +/* 0961C8 7F061698 8FAF02A4 */ lw $t7, 0x2a4($sp) +/* 0961CC 7F06169C 46044281 */ sub.s $f10, $f8, $f4 +/* 0961D0 7F0616A0 00186980 */ sll $t5, $t8, 6 +/* 0961D4 7F0616A4 27A40264 */ addiu $a0, $sp, 0x264 +/* 0961D8 7F0616A8 27A501A4 */ addiu $a1, $sp, 0x1a4 +/* 0961DC 7F0616AC E7AA01DC */ swc1 $f10, 0x1dc($sp) +/* 0961E0 7F0616B0 0FC16032 */ jal matrix_4x4_multiply +/* 0961E4 7F0616B4 01AF3021 */ addu $a2, $t5, $t7 +/* 0961E8 7F0616B8 8FB901A0 */ lw $t9, 0x1a0($sp) +.L7F0616BC: +/* 0961EC 7F0616BC 00001825 */ move $v1, $zero +/* 0961F0 7F0616C0 00003025 */ move $a2, $zero +/* 0961F4 7F0616C4 872E000C */ lh $t6, 0xc($t9) +/* 0961F8 7F0616C8 24070005 */ li $a3, 5 +/* 0961FC 7F0616CC 29C10013 */ slti $at, $t6, 0x13 +/* 096200 7F0616D0 1420002A */ bnez $at, .L7F06177C +/* 096204 7F0616D4 00000000 */ nop +.L7F0616D8: +/* 096208 7F0616D8 8FB801A0 */ lw $t8, 0x1a0($sp) +/* 09620C 7F0616DC 8FA40044 */ lw $a0, 0x44($sp) +/* 096210 7F0616E0 8F0D0008 */ lw $t5, 8($t8) +/* 096214 7F0616E4 01A67821 */ addu $t7, $t5, $a2 +/* 096218 7F0616E8 8DE50048 */ lw $a1, 0x48($t7) +/* 09621C 7F0616EC 50A0000E */ beql $a1, $zero, .L7F061728 +/* 096220 7F0616F0 8FAD01A0 */ lw $t5, 0x1a0($sp) +/* 096224 7F0616F4 AFA3005C */ sw $v1, 0x5c($sp) +/* 096228 7F0616F8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 09622C 7F0616FC AFA60040 */ sw $a2, 0x40($sp) +/* 096230 7F061700 8FA3005C */ lw $v1, 0x5c($sp) +/* 096234 7F061704 8FA60040 */ lw $a2, 0x40($sp) +/* 096238 7F061708 10400006 */ beqz $v0, .L7F061724 +/* 09623C 7F06170C 24070005 */ li $a3, 5 +/* 096240 7F061710 8E190034 */ lw $t9, 0x34($s0) +/* 096244 7F061714 00E37023 */ subu $t6, $a3, $v1 +/* 096248 7F061718 032EC02A */ slt $t8, $t9, $t6 +/* 09624C 7F06171C 3B180001 */ xori $t8, $t8, 1 +/* 096250 7F061720 AC580000 */ sw $t8, ($v0) +.L7F061724: +/* 096254 7F061724 8FAD01A0 */ lw $t5, 0x1a0($sp) +.L7F061728: +/* 096258 7F061728 8FA40044 */ lw $a0, 0x44($sp) +/* 09625C 7F06172C 8DAF0008 */ lw $t7, 8($t5) +/* 096260 7F061730 01E6C821 */ addu $t9, $t7, $a2 +/* 096264 7F061734 8F25005C */ lw $a1, 0x5c($t9) +/* 096268 7F061738 50A0000E */ beql $a1, $zero, .L7F061774 +/* 09626C 7F06173C 24630001 */ addiu $v1, $v1, 1 +/* 096270 7F061740 AFA3005C */ sw $v1, 0x5c($sp) +/* 096274 7F061744 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 096278 7F061748 AFA60040 */ sw $a2, 0x40($sp) +/* 09627C 7F06174C 8FA3005C */ lw $v1, 0x5c($sp) +/* 096280 7F061750 8FA60040 */ lw $a2, 0x40($sp) +/* 096284 7F061754 10400006 */ beqz $v0, .L7F061770 +/* 096288 7F061758 24070005 */ li $a3, 5 +/* 09628C 7F06175C 8E0E0034 */ lw $t6, 0x34($s0) +/* 096290 7F061760 00E3C023 */ subu $t8, $a3, $v1 +/* 096294 7F061764 01D8682A */ slt $t5, $t6, $t8 +/* 096298 7F061768 39AD0001 */ xori $t5, $t5, 1 +/* 09629C 7F06176C AC4D0000 */ sw $t5, ($v0) +.L7F061770: +/* 0962A0 7F061770 24630001 */ addiu $v1, $v1, 1 +.L7F061774: +/* 0962A4 7F061774 1467FFD8 */ bne $v1, $a3, .L7F0616D8 +/* 0962A8 7F061778 24C60004 */ addiu $a2, $a2, 4 +.L7F06177C: +/* 0962AC 7F06177C 0FC1BBF1 */ jal sub_GAME_7F06EFC4 +/* 0962B0 7F061780 8FA40044 */ lw $a0, 0x44($sp) +/* 0962B4 7F061784 820F000C */ lb $t7, 0xc($s0) +/* 0962B8 7F061788 8FB900FC */ lw $t9, 0xfc($sp) +/* 0962BC 7F06178C 11E00011 */ beqz $t7, .L7F0617D4 +/* 0962C0 7F061790 272EFFFC */ addiu $t6, $t9, -4 +/* 0962C4 7F061794 2DC10014 */ sltiu $at, $t6, 0x14 +/* 0962C8 7F061798 1020000E */ beqz $at, .L7F0617D4 +/* 0962CC 7F06179C 000E7080 */ sll $t6, $t6, 2 +/* 0962D0 7F0617A0 3C018005 */ lui $at, %hi(jpt_weapon_bullet_type) +/* 0962D4 7F0617A4 002E0821 */ addu $at, $at, $t6 +/* 0962D8 7F0617A8 8C2E3E38 */ lw $t6, %lo(jpt_weapon_bullet_type)($at) +/* 0962DC 7F0617AC 01C00008 */ jr $t6 +/* 0962E0 7F0617B0 00000000 */ nop +weapon_bullet_type_pistol: +/* 0962E4 7F0617B4 0FC186FD */ jal sub_GAME_7F061BF4 +/* 0962E8 7F0617B8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0962EC 7F0617BC 8E180030 */ lw $t8, 0x30($s0) +/* 0962F0 7F0617C0 270D0001 */ addiu $t5, $t8, 1 +/* 0962F4 7F0617C4 10000003 */ b .L7F0617D4 +/* 0962F8 7F0617C8 AE0D0030 */ sw $t5, 0x30($s0) +weapon_bullet_type_none: +/* 0962FC 7F0617CC 0FC186FD */ jal sub_GAME_7F061BF4 +/* 096300 7F0617D0 8FA402A8 */ lw $a0, 0x2a8($sp) +weapon_bullet_type_shotgun_mine: +.L7F0617D4: +/* 096304 7F0617D4 8FAF00FC */ lw $t7, 0xfc($sp) +.L7F0617D8: +/* 096308 7F0617D8 24010019 */ li $at, 25 +/* 09630C 7F0617DC 55E10004 */ bnel $t7, $at, .L7F0617F0 +/* 096310 7F0617E0 8219000C */ lb $t9, 0xc($s0) +/* 096314 7F0617E4 0FC17E4A */ jal sub_GAME_7F05F928 +/* 096318 7F0617E8 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09631C 7F0617EC 8219000C */ lb $t9, 0xc($s0) +.L7F0617F0: +/* 096320 7F0617F0 3C048008 */ lui $a0, %hi(pPlayer) +/* 096324 7F0617F4 53200046 */ beql $t9, $zero, .L7F061910 +/* 096328 7F0617F8 8FBF0034 */ lw $ra, 0x34($sp) +/* 09632C 7F0617FC 0FC225DE */ jal sub_GAME_7F089778 +/* 096330 7F061800 8C84A0B0 */ lw $a0, %lo(pPlayer)($a0) +/* 096334 7F061804 44050000 */ mfc1 $a1, $f0 +/* 096338 7F061808 0FC1A142 */ jal sub_GAME_7F068508 +/* 09633C 7F06180C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096340 7F061810 8FAE00FC */ lw $t6, 0xfc($sp) +/* 096344 7F061814 24010018 */ li $at, 24 +/* 096348 7F061818 8FB800FC */ lw $t8, 0xfc($sp) +/* 09634C 7F06181C 55C10006 */ bnel $t6, $at, .L7F061838 +/* 096350 7F061820 2401001A */ li $at, 26 +/* 096354 7F061824 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096358 7F061828 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09635C 7F06182C 10000038 */ b .L7F061910 +/* 096360 7F061830 8FBF0034 */ lw $ra, 0x34($sp) +/* 096364 7F061834 2401001A */ li $at, 26 +.L7F061838: +/* 096368 7F061838 17010005 */ bne $t8, $at, .L7F061850 +/* 09636C 7F06183C 8FAD00FC */ lw $t5, 0xfc($sp) +/* 096370 7F061840 0FC17B89 */ jal sub_GAME_7F05EE24 +/* 096374 7F061844 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096378 7F061848 10000031 */ b .L7F061910 +/* 09637C 7F06184C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061850: +/* 096380 7F061850 24010019 */ li $at, 25 +/* 096384 7F061854 15A10005 */ bne $t5, $at, .L7F06186C +/* 096388 7F061858 8FAF00FC */ lw $t7, 0xfc($sp) +/* 09638C 7F06185C 0FC17ED9 */ jal sub_GAME_7F05FB64 +/* 096390 7F061860 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096394 7F061864 1000002A */ b .L7F061910 +/* 096398 7F061868 8FBF0034 */ lw $ra, 0x34($sp) +.L7F06186C: +/* 09639C 7F06186C 24010003 */ li $at, 3 +/* 0963A0 7F061870 15E10005 */ bne $t7, $at, .L7F061888 +/* 0963A4 7F061874 8FB900FC */ lw $t9, 0xfc($sp) +/* 0963A8 7F061878 0FC17C27 */ jal sub_GAME_7F05F09C +/* 0963AC 7F06187C 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 0963B0 7F061880 10000023 */ b .L7F061910 +/* 0963B4 7F061884 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061888: +/* 0963B8 7F061888 2401001D */ li $at, 29 +/* 0963BC 7F06188C 1321000F */ beq $t9, $at, .L7F0618CC +/* 0963C0 7F061890 2401001C */ li $at, 28 +/* 0963C4 7F061894 1321000D */ beq $t9, $at, .L7F0618CC +/* 0963C8 7F061898 2401001B */ li $at, 27 +/* 0963CC 7F06189C 1321000B */ beq $t9, $at, .L7F0618CC +/* 0963D0 7F0618A0 24010021 */ li $at, 33 +/* 0963D4 7F0618A4 13210009 */ beq $t9, $at, .L7F0618CC +/* 0963D8 7F0618A8 2401002F */ li $at, 47 +/* 0963DC 7F0618AC 13210007 */ beq $t9, $at, .L7F0618CC +/* 0963E0 7F0618B0 24010030 */ li $at, 48 +/* 0963E4 7F0618B4 13210005 */ beq $t9, $at, .L7F0618CC +/* 0963E8 7F0618B8 2401003D */ li $at, 61 +/* 0963EC 7F0618BC 13210003 */ beq $t9, $at, .L7F0618CC +/* 0963F0 7F0618C0 24010022 */ li $at, 34 +/* 0963F4 7F0618C4 17210005 */ bne $t9, $at, .L7F0618DC +/* 0963F8 7F0618C8 8FAE00FC */ lw $t6, 0xfc($sp) +.L7F0618CC: +/* 0963FC 7F0618CC 0FC17CD6 */ jal generate_player_thrown_object +/* 096400 7F0618D0 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096404 7F0618D4 1000000E */ b .L7F061910 +/* 096408 7F0618D8 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618DC: +/* 09640C 7F0618DC 24010023 */ li $at, 35 +/* 096410 7F0618E0 15C10005 */ bne $t6, $at, .L7F0618F8 +/* 096414 7F0618E4 8FB800FC */ lw $t8, 0xfc($sp) +/* 096418 7F0618E8 0FC17DCF */ jal sub_GAME_7F05F73C +/* 09641C 7F0618EC 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 096420 7F0618F0 10000007 */ b .L7F061910 +/* 096424 7F0618F4 8FBF0034 */ lw $ra, 0x34($sp) +.L7F0618F8: +/* 096428 7F0618F8 24010024 */ li $at, 36 +/* 09642C 7F0618FC 57010004 */ bnel $t8, $at, .L7F061910 +/* 096430 7F061900 8FBF0034 */ lw $ra, 0x34($sp) +/* 096434 7F061904 0FC17DCF */ jal sub_GAME_7F05F73C +/* 096438 7F061908 8FA402A8 */ lw $a0, 0x2a8($sp) +/* 09643C 7F06190C 8FBF0034 */ lw $ra, 0x34($sp) +.L7F061910: +/* 096440 7F061910 8FB00030 */ lw $s0, 0x30($sp) +/* 096444 7F061914 27BD02A8 */ addiu $sp, $sp, 0x2a8 +/* 096448 7F061918 03E00008 */ jr $ra +/* 09644C 7F06191C 00000000 */ nop +) +#endif + #endif @@ -8943,7 +10726,7 @@ glabel sub_GAME_7F061948 /* 0965E0 7F061AB0 E4820024 */ swc1 $f2, 0x24($a0) /* 0965E4 7F061AB4 AFA40020 */ sw $a0, 0x20($sp) .L7F061AB8: -/* 0965E8 7F061AB8 0C002914 */ jal get_random_value +/* 0965E8 7F061AB8 0C002914 */ jal randomGetNext /* 0965EC 7F061ABC E7AC001C */ swc1 $f12, 0x1c($sp) /* 0965F0 7F061AC0 44825000 */ mtc1 $v0, $f10 /* 0965F4 7F061AC4 8FA40020 */ lw $a0, 0x20($sp) @@ -8995,7 +10778,7 @@ glabel sub_GAME_7F061948 /* 09669C 7F061B6C 00000000 */ nop /* 0966A0 7F061B70 E4820024 */ swc1 $f2, 0x24($a0) .L7F061B74: -/* 0966A4 7F061B74 0C002914 */ jal get_random_value +/* 0966A4 7F061B74 0C002914 */ jal randomGetNext /* 0966A8 7F061B78 AFA40020 */ sw $a0, 0x20($sp) /* 0966AC 7F061B7C 44825000 */ mtc1 $v0, $f10 /* 0966B0 7F061B80 8FA40020 */ lw $a0, 0x20($sp) @@ -9295,13 +11078,13 @@ glabel sub_GAME_7F061E18 /* 096A58 7F061F28 8DADD0D4 */ lw $t5, %lo(flareimage4)($t5) /* 096A5C 7F061F2C E7A000E8 */ swc1 $f0, 0xe8($sp) /* 096A60 7F061F30 E7A600F4 */ swc1 $f6, 0xf4($sp) -/* 096A64 7F061F34 0C002914 */ jal get_random_value +/* 096A64 7F061F34 0C002914 */ jal randomGetNext /* 096A68 7F061F38 AFAD00B0 */ sw $t5, 0xb0($sp) /* 096A6C 7F061F3C 24010032 */ li $at, 50 /* 096A70 7F061F40 0041001B */ divu $zero, $v0, $at /* 096A74 7F061F44 00005810 */ mfhi $t3 /* 096A78 7F061F48 25790096 */ addiu $t9, $t3, 0x96 -/* 096A7C 7F061F4C 0C002914 */ jal get_random_value +/* 096A7C 7F061F4C 0C002914 */ jal randomGetNext /* 096A80 7F061F50 A3B90117 */ sb $t9, 0x117($sp) /* 096A84 7F061F54 24010005 */ li $at, 5 /* 096A88 7F061F58 0041001B */ divu $zero, $v0, $at @@ -9309,7 +11092,7 @@ glabel sub_GAME_7F061E18 /* 096A90 7F061F60 C7A000E8 */ lwc1 $f0, 0xe8($sp) /* 096A94 7F061F64 55C00011 */ bnezl $t6, .L7F061FAC /* 096A98 7F061F68 C6240004 */ lwc1 $f4, 4($s1) -/* 096A9C 7F061F6C 0C002914 */ jal get_random_value +/* 096A9C 7F061F6C 0C002914 */ jal randomGetNext /* 096AA0 7F061F70 E7A000E8 */ swc1 $f0, 0xe8($sp) /* 096AA4 7F061F74 24010064 */ li $at, 100 /* 096AA8 7F061F78 0041001B */ divu $zero, $v0, $at @@ -9493,16 +11276,16 @@ glabel sub_GAME_7F061E18 /* 096D48 7F062218 822A0001 */ lb $t2, 1($s1) /* 096D4C 7F06221C 15410005 */ bne $t2, $at, .L7F062234 /* 096D50 7F062220 00000000 */ nop -/* 096D54 7F062224 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D54 7F062224 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 096D58 7F062228 24040008 */ li $a0, 8 /* 096D5C 7F06222C 10000004 */ b .L7F062240 /* 096D60 7F062230 00408025 */ move $s0, $v0 .L7F062234: -/* 096D64 7F062234 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 096D64 7F062234 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 096D68 7F062238 24040004 */ li $a0, 4 /* 096D6C 7F06223C 00408025 */ move $s0, $v0 .L7F062240: -/* 096D70 7F062240 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 096D70 7F062240 0FC2F5B8 */ jal dynAllocateMatrix /* 096D74 7F062244 00000000 */ nop /* 096D78 7F062248 AFA20158 */ sw $v0, 0x158($sp) /* 096D7C 7F06224C 27A400FC */ addiu $a0, $sp, 0xfc @@ -10104,7 +11887,7 @@ glabel sub_GAME_7F062B00 /* 09766C 7F062B3C 10000019 */ b .L7F062BA4 /* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) .L7F062B44: -/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 097674 7F062B44 0C002914 */ jal randomGetNext /* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) /* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 /* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) @@ -10173,7 +11956,7 @@ glabel sub_GAME_7F062B00 /* 09766C 7F062B3C 10000019 */ b .L7F062BA4 /* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) .L7F062B44: -/* 097674 7F062B44 0C002914 */ jal get_random_value +/* 097674 7F062B44 0C002914 */ jal randomGetNext /* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) /* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 /* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) @@ -10220,6 +12003,76 @@ glabel sub_GAME_7F062B00 /* 097710 7F062BE0 00000000 */ nop ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F062B00 +/* 097630 7F062B00 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 097634 7F062B04 AFBF0014 */ sw $ra, 0x14($sp) +/* 097638 7F062B08 808E0000 */ lb $t6, ($a0) +/* 09763C 7F062B0C 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 097640 7F062B10 05C20031 */ bltzl $t6, .L7F062BD8 +/* 097644 7F062B14 8FBF0014 */ lw $ra, 0x14($sp) +/* 097648 7F062B18 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 09764C 7F062B1C 29E10003 */ slti $at, $t7, 3 +/* 097650 7F062B20 10200008 */ beqz $at, .L7F062B44 +/* 097654 7F062B24 3C018005 */ lui $at, %hi(global_timer_delta) +/* 097658 7F062B28 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 09765C 7F062B2C C4840020 */ lwc1 $f4, 0x20($a0) +/* 097660 7F062B30 C48A0028 */ lwc1 $f10, 0x28($a0) +/* 097664 7F062B34 46062202 */ mul.s $f8, $f4, $f6 +/* 097668 7F062B38 46085400 */ add.s $f16, $f10, $f8 +/* 09766C 7F062B3C 10000019 */ b .L7F062BA4 +/* 097670 7F062B40 E4900028 */ swc1 $f16, 0x28($a0) +.L7F062B44: +/* 097674 7F062B44 0C002914 */ jal randomGetNext +/* 097678 7F062B48 AFA40018 */ sw $a0, 0x18($sp) +/* 09767C 7F062B4C 44829000 */ mtc1 $v0, $f18 +/* 097680 7F062B50 8FA40018 */ lw $a0, 0x18($sp) +/* 097684 7F062B54 04410005 */ bgez $v0, .L7F062B6C +/* 097688 7F062B58 46809120 */ cvt.s.w $f4, $f18 +/* 09768C 7F062B5C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 097690 7F062B60 44813000 */ mtc1 $at, $f6 +/* 097694 7F062B64 00000000 */ nop +/* 097698 7F062B68 46062100 */ add.s $f4, $f4, $f6 +.L7F062B6C: +/* 09769C 7F062B6C 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0976A0 7F062B70 44815000 */ mtc1 $at, $f10 +/* 0976A4 7F062B74 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0976A8 7F062B78 44818000 */ mtc1 $at, $f16 +/* 0976AC 7F062B7C 460A2202 */ mul.s $f8, $f4, $f10 +/* 0976B0 7F062B80 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0976B4 7F062B84 44813000 */ mtc1 $at, $f6 +/* 0976B8 7F062B88 C48A0020 */ lwc1 $f10, 0x20($a0) +/* 0976BC 7F062B8C 46104482 */ mul.s $f18, $f8, $f16 +/* 0976C0 7F062B90 C4900028 */ lwc1 $f16, 0x28($a0) +/* 0976C4 7F062B94 46123100 */ add.s $f4, $f6, $f18 +/* 0976C8 7F062B98 46045202 */ mul.s $f8, $f10, $f4 +/* 0976CC 7F062B9C 46088180 */ add.s $f6, $f16, $f8 +/* 0976D0 7F062BA0 E4860028 */ swc1 $f6, 0x28($a0) +.L7F062BA4: +/* 0976D4 7F062BA4 C4920028 */ lwc1 $f18, 0x28($a0) +/* 0976D8 7F062BA8 C48A001C */ lwc1 $f10, 0x1c($a0) +/* 0976DC 7F062BAC 2418FFFF */ li $t8, -1 +/* 0976E0 7F062BB0 4612503E */ c.le.s $f10, $f18 +/* 0976E4 7F062BB4 00000000 */ nop +/* 0976E8 7F062BB8 45020004 */ bc1fl .L7F062BCC +/* 0976EC 7F062BBC 80990000 */ lb $t9, ($a0) +/* 0976F0 7F062BC0 10000004 */ b .L7F062BD4 +/* 0976F4 7F062BC4 A0980000 */ sb $t8, ($a0) +/* 0976F8 7F062BC8 80990000 */ lb $t9, ($a0) +.L7F062BCC: +/* 0976FC 7F062BCC 27280001 */ addiu $t0, $t9, 1 +/* 097700 7F062BD0 A0880000 */ sb $t0, ($a0) +.L7F062BD4: +/* 097704 7F062BD4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F062BD8: +/* 097708 7F062BD8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09770C 7F062BDC 03E00008 */ jr $ra +/* 097710 7F062BE0 00000000 */ nop +) +#endif + #endif @@ -10482,7 +12335,7 @@ glabel sub_GAME_7F062BE4 /* 097AB8 7F062F88 358C000E */ ori $t4, (0xBC00000E & 0xFFFF) # ori $t4, $t4, 0xe /* 097ABC 7F062F8C 02008825 */ move $s1, $s0 /* 097AC0 7F062F90 AE2C0000 */ sw $t4, ($s1) -/* 097AC4 7F062F94 0C000F13 */ jal get_80060824 +/* 097AC4 7F062F94 0C000F13 */ jal viGetPerspNorm /* 097AC8 7F062F98 26100008 */ addiu $s0, $s0, 8 /* 097ACC 7F062F9C 24010017 */ li $at, 23 /* 097AD0 7F062FA0 16810006 */ bne $s4, $at, .L7F062FBC @@ -10587,7 +12440,7 @@ glabel set_enviro_fog_for_items_in_solo_watch_menu /* 097C04 7F0630D4 8FA20198 */ lw $v0, 0x198($sp) /* 097C08 7F0630D8 8644000E */ lh $a0, 0xe($s2) /* 097C0C 7F0630DC 00044980 */ sll $t1, $a0, 6 -/* 097C10 7F0630E0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 097C10 7F0630E0 0FC2F5C5 */ jal dynAllocate /* 097C14 7F0630E4 01202025 */ move $a0, $t1 /* 097C18 7F0630E8 864A000E */ lh $t2, 0xe($s2) /* 097C1C 7F0630EC 00408025 */ move $s0, $v0 @@ -11068,7 +12921,7 @@ glabel sub_GAME_7F06359C /* 098190 7F063660 24420810 */ addiu $v0, $v0, 0x810 /* 098194 7F063664 AFA203D8 */ sw $v0, 0x3d8($sp) /* 098198 7F063668 00044980 */ sll $t1, $a0, 6 -/* 09819C 7F06366C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09819C 7F06366C 0FC2F5C5 */ jal dynAllocate /* 0981A0 7F063670 01202025 */ move $a0, $t1 /* 0981A4 7F063674 0040B825 */ move $s7, $v0 /* 0981A8 7F063678 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded @@ -11095,7 +12948,7 @@ glabel sub_GAME_7F06359C /* 0981F8 7F0636C8 8F380000 */ lw $t8, ($t9) /* 0981FC 7F0636CC 1621002B */ bne $s1, $at, .L7F06377C /* 098200 7F0636D0 8F100004 */ lw $s0, 4($t8) -/* 098204 7F0636D4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 098204 7F0636D4 0C00303B */ jal joyGetStickX /* 098208 7F0636D8 82840000 */ lb $a0, ($s4) /* 09820C 7F0636DC 44822000 */ mtc1 $v0, $f4 /* 098210 7F0636E0 3C018005 */ lui $at, %hi(D_80053ED4) @@ -11112,7 +12965,7 @@ glabel sub_GAME_7F06359C /* 09823C 7F06370C 46128102 */ mul.s $f4, $f16, $f18 /* 098240 7F063710 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 098244 7F063714 46062303 */ div.s $f12, $f4, $f6 -/* 098248 7F063718 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 098248 7F063718 0C00307F */ jal joyGetStickY /* 09824C 7F06371C 82840000 */ lb $a0, ($s4) /* 098250 7F063720 44824000 */ mtc1 $v0, $f8 /* 098254 7F063724 3C018005 */ lui $at, %hi(D_80053EDC) @@ -11216,7 +13069,7 @@ glabel sub_GAME_7F06359C .L7F063894: /* 0983C4 7F063894 8724000E */ lh $a0, 0xe($t9) /* 0983C8 7F063898 0004C180 */ sll $t8, $a0, 6 -/* 0983CC 7F06389C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0983CC 7F06389C 0FC2F5C5 */ jal dynAllocate /* 0983D0 7F0638A0 03002025 */ move $a0, $t8 /* 0983D4 7F0638A4 3C018005 */ lui $at, %hi(D_80053EE4) /* 0983D8 7F0638A8 C4363EE4 */ lwc1 $f22, %lo(D_80053EE4)($at) @@ -11285,7 +13138,7 @@ glabel sub_GAME_7F06359C /* 0984D0 7F0639A0 8FC10060 */ lw $at, 0x60($fp) /* 0984D4 7F0639A4 0FC16259 */ jal matrix_4x4_set_identity_and_position /* 0984D8 7F0639A8 AC810008 */ sw $at, 8($a0) -/* 0984DC 7F0639AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0984DC 7F0639AC 0C00303B */ jal joyGetStickX /* 0984E0 7F0639B0 82840000 */ lb $a0, ($s4) /* 0984E4 7F0639B4 44822000 */ mtc1 $v0, $f4 /* 0984E8 7F0639B8 3C018005 */ lui $at, %hi(D_80053EE8) @@ -11302,7 +13155,7 @@ glabel sub_GAME_7F06359C /* 098514 7F0639E4 46128102 */ mul.s $f4, $f16, $f18 /* 098518 7F0639E8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z /* 09851C 7F0639EC 46062303 */ div.s $f12, $f4, $f6 -/* 098520 7F0639F0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 098520 7F0639F0 0C00307F */ jal joyGetStickY /* 098524 7F0639F4 82840000 */ lb $a0, ($s4) /* 098528 7F0639F8 44824000 */ mtc1 $v0, $f8 /* 09852C 7F0639FC 3C018005 */ lui $at, %hi(D_80053EF0) @@ -11355,7 +13208,7 @@ glabel sub_GAME_7F06359C /* 0985E4 7F063AB4 ADB80004 */ sw $t8, 4($t5) /* 0985E8 7F063AB8 8FC100CC */ lw $at, 0xcc($fp) /* 0985EC 7F063ABC ADA10008 */ sw $at, 8($t5) -/* 0985F0 7F063AC0 0C0030C3 */ jal get_controller_buttons_held +/* 0985F0 7F063AC0 0C0030C3 */ jal joyGetButtons /* 0985F4 7F063AC4 82840000 */ lb $a0, ($s4) /* 0985F8 7F063AC8 10400004 */ beqz $v0, .L7F063ADC /* 0985FC 7F063ACC 3C018005 */ lui $at, %hi(D_80053EF8) @@ -11402,7 +13255,7 @@ glabel sub_GAME_7F06359C /* 098698 7F063B68 AD8D0004 */ sw $t5, 4($t4) /* 09869C 7F063B6C 8FC10078 */ lw $at, 0x78($fp) /* 0986A0 7F063B70 AD810008 */ sw $at, 8($t4) -/* 0986A4 7F063B74 0C0030C3 */ jal get_controller_buttons_held +/* 0986A4 7F063B74 0C0030C3 */ jal joyGetButtons /* 0986A8 7F063B78 82840000 */ lb $a0, ($s4) /* 0986AC 7F063B7C 10400004 */ beqz $v0, .L7F063B90 /* 0986B0 7F063B80 4600B306 */ mov.s $f12, $f22 @@ -11447,7 +13300,7 @@ glabel sub_GAME_7F06359C /* 098744 7F063C14 AD4C0004 */ sw $t4, 4($t2) /* 098748 7F063C18 8FC10084 */ lw $at, 0x84($fp) /* 09874C 7F063C1C AD410008 */ sw $at, 8($t2) -/* 098750 7F063C20 0C0030C3 */ jal get_controller_buttons_held +/* 098750 7F063C20 0C0030C3 */ jal joyGetButtons /* 098754 7F063C24 82840000 */ lb $a0, ($s4) /* 098758 7F063C28 10400004 */ beqz $v0, .L7F063C3C /* 09875C 7F063C2C 4600B306 */ mov.s $f12, $f22 @@ -11492,7 +13345,7 @@ glabel sub_GAME_7F06359C /* 0987F0 7F063CC0 AD6A0004 */ sw $t2, 4($t3) /* 0987F4 7F063CC4 8FC10090 */ lw $at, 0x90($fp) /* 0987F8 7F063CC8 AD610008 */ sw $at, 8($t3) -/* 0987FC 7F063CCC 0C0030C3 */ jal get_controller_buttons_held +/* 0987FC 7F063CCC 0C0030C3 */ jal joyGetButtons /* 098800 7F063CD0 82840000 */ lb $a0, ($s4) /* 098804 7F063CD4 10400004 */ beqz $v0, .L7F063CE8 /* 098808 7F063CD8 4600B306 */ mov.s $f12, $f22 @@ -11537,7 +13390,7 @@ glabel sub_GAME_7F06359C /* 09889C 7F063D6C AD2B0004 */ sw $t3, 4($t1) /* 0988A0 7F063D70 8FC1009C */ lw $at, 0x9c($fp) /* 0988A4 7F063D74 AD210008 */ sw $at, 8($t1) -/* 0988A8 7F063D78 0C0030C3 */ jal get_controller_buttons_held +/* 0988A8 7F063D78 0C0030C3 */ jal joyGetButtons /* 0988AC 7F063D7C 82840000 */ lb $a0, ($s4) /* 0988B0 7F063D80 10400004 */ beqz $v0, .L7F063D94 /* 0988B4 7F063D84 4600B306 */ mov.s $f12, $f22 @@ -11582,7 +13435,7 @@ glabel sub_GAME_7F06359C /* 098948 7F063E18 ADC90004 */ sw $t1, 4($t6) /* 09894C 7F063E1C 8FC100B4 */ lw $at, 0xb4($fp) /* 098950 7F063E20 ADC10008 */ sw $at, 8($t6) -/* 098954 7F063E24 0C0030C3 */ jal get_controller_buttons_held +/* 098954 7F063E24 0C0030C3 */ jal joyGetButtons /* 098958 7F063E28 82840000 */ lb $a0, ($s4) /* 09895C 7F063E2C 10400004 */ beqz $v0, .L7F063E40 /* 098960 7F063E30 4600B306 */ mov.s $f12, $f22 @@ -11627,7 +13480,7 @@ glabel sub_GAME_7F06359C /* 0989F4 7F063EC4 ADEE0004 */ sw $t6, 4($t7) /* 0989F8 7F063EC8 8FC100A8 */ lw $at, 0xa8($fp) /* 0989FC 7F063ECC ADE10008 */ sw $at, 8($t7) -/* 098A00 7F063ED0 0C0030C3 */ jal get_controller_buttons_held +/* 098A00 7F063ED0 0C0030C3 */ jal joyGetButtons /* 098A04 7F063ED4 82840000 */ lb $a0, ($s4) /* 098A08 7F063ED8 10400004 */ beqz $v0, .L7F063EEC /* 098A0C 7F063EDC 4600B306 */ mov.s $f12, $f22 @@ -11672,7 +13525,7 @@ glabel sub_GAME_7F06359C /* 098AA0 7F063F70 AD0F0004 */ sw $t7, 4($t0) /* 098AA4 7F063F74 8FC100C0 */ lw $at, 0xc0($fp) /* 098AA8 7F063F78 AD010008 */ sw $at, 8($t0) -/* 098AAC 7F063F7C 0C0030C3 */ jal get_controller_buttons_held +/* 098AAC 7F063F7C 0C0030C3 */ jal joyGetButtons /* 098AB0 7F063F80 82840000 */ lb $a0, ($s4) /* 098AB4 7F063F84 10400004 */ beqz $v0, .L7F063F98 /* 098AB8 7F063F88 3C018005 */ lui $at, %hi(D_80053F00) @@ -11721,7 +13574,7 @@ glabel sub_GAME_7F06359C /* 098B5C 7F06402C 0FC15FF4 */ jal matrix_4x4_set_identity /* 098B60 7F064030 AF010008 */ sw $at, 8($t8) /* 098B64 7F064034 82840000 */ lb $a0, ($s4) -/* 098B68 7F064038 0C0030C3 */ jal get_controller_buttons_held +/* 098B68 7F064038 0C0030C3 */ jal joyGetButtons /* 098B6C 7F06403C 24050800 */ li $a1, 2048 /* 098B70 7F064040 10400007 */ beqz $v0, .L7F064060 /* 098B74 7F064044 24050400 */ li $a1, 1024 @@ -11732,7 +13585,7 @@ glabel sub_GAME_7F06359C /* 098B88 7F064058 10000009 */ b .L7F064080 /* 098B8C 7F06405C 82840000 */ lb $a0, ($s4) .L7F064060: -/* 098B90 7F064060 0C0030C3 */ jal get_controller_buttons_held +/* 098B90 7F064060 0C0030C3 */ jal joyGetButtons /* 098B94 7F064064 82840000 */ lb $a0, ($s4) /* 098B98 7F064068 10400004 */ beqz $v0, .L7F06407C /* 098B9C 7F06406C 3C018005 */ lui $at, %hi(D_80053F0C) @@ -11742,7 +13595,7 @@ glabel sub_GAME_7F06359C .L7F06407C: /* 098BAC 7F06407C 82840000 */ lb $a0, ($s4) .L7F064080: -/* 098BB0 7F064080 0C0030C3 */ jal get_controller_buttons_held +/* 098BB0 7F064080 0C0030C3 */ jal joyGetButtons /* 098BB4 7F064084 24050200 */ li $a1, 512 /* 098BB8 7F064088 10400007 */ beqz $v0, .L7F0640A8 /* 098BBC 7F06408C 24050100 */ li $a1, 256 @@ -11753,7 +13606,7 @@ glabel sub_GAME_7F06359C /* 098BD0 7F0640A0 10000009 */ b .L7F0640C8 /* 098BD4 7F0640A4 27A400B4 */ addiu $a0, $sp, 0xb4 .L7F0640A8: -/* 098BD8 7F0640A8 0C0030C3 */ jal get_controller_buttons_held +/* 098BD8 7F0640A8 0C0030C3 */ jal joyGetButtons /* 098BDC 7F0640AC 82840000 */ lb $a0, ($s4) /* 098BE0 7F0640B0 10400004 */ beqz $v0, .L7F0640C4 /* 098BE4 7F0640B4 3C018005 */ lui $at, %hi(D_80053F14) @@ -11804,7 +13657,7 @@ glabel sub_GAME_7F06359C /* 098C8C 7F06415C ADB80004 */ sw $t8, 4($t5) /* 098C90 7F064160 8FC10054 */ lw $at, 0x54($fp) /* 098C94 7F064164 ADA10008 */ sw $at, 8($t5) -/* 098C98 7F064168 0C0030C3 */ jal get_controller_buttons_held +/* 098C98 7F064168 0C0030C3 */ jal joyGetButtons /* 098C9C 7F06416C 82840000 */ lb $a0, ($s4) /* 098CA0 7F064170 10400004 */ beqz $v0, .L7F064184 /* 098CA4 7F064174 4600B306 */ mov.s $f12, $f22 @@ -11850,7 +13703,7 @@ glabel sub_GAME_7F06359C /* 098D3C 7F06420C AD8D0004 */ sw $t5, 4($t4) /* 098D40 7F064210 8FC100D8 */ lw $at, 0xd8($fp) /* 098D44 7F064214 AD810008 */ sw $at, 8($t4) -/* 098D48 7F064218 0C0030C3 */ jal get_controller_buttons_held +/* 098D48 7F064218 0C0030C3 */ jal joyGetButtons /* 098D4C 7F06421C 82840000 */ lb $a0, ($s4) /* 098D50 7F064220 10400004 */ beqz $v0, .L7F064234 /* 098D54 7F064224 3C018005 */ lui $at, %hi(D_80053F1C) @@ -12063,9 +13916,438 @@ glabel recall_joy2_hits_edit_detail_edit_flag /* 098F64 7F064434 AFA40024 */ sw $a0, 0x24($sp) /* 098F68 7F064438 0FC14E79 */ jal sub_GAME_7F0539E4 /* 098F6C 7F06443C AFA70070 */ sw $a3, 0x70($sp) -/* 098F70 7F064440 0C002914 */ jal get_random_value +/* 098F70 7F064440 0C002914 */ jal randomGetNext /* 098F74 7F064444 AFA2006C */ sw $v0, 0x6c($sp) -/* 098F78 7F064448 0C002914 */ jal get_random_value +/* 098F78 7F064448 0C002914 */ jal randomGetNext +/* 098F7C 7F06444C AFA20068 */ sw $v0, 0x68($sp) +/* 098F80 7F064450 8FAE0078 */ lw $t6, 0x78($sp) +/* 098F84 7F064454 3C018005 */ lui $at, %hi(D_800483C4) +/* 098F88 7F064458 AFA20064 */ sw $v0, 0x64($sp) +/* 098F8C 7F06445C 0FC243EB */ jal get_debug_joy2hitsedit_flag +/* 098F90 7F064460 AC2E83C4 */ sw $t6, %lo(D_800483C4)($at) +/* 098F94 7F064464 14400004 */ bnez $v0, .L7F064478 +/* 098F98 7F064468 8FA70070 */ lw $a3, 0x70($sp) +/* 098F9C 7F06446C 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 098FA0 7F064470 AFA70070 */ sw $a3, 0x70($sp) +/* 098FA4 7F064474 8FA70070 */ lw $a3, 0x70($sp) +.L7F064478: +/* 098FA8 7F064478 2401001D */ li $at, 29 +/* 098FAC 7F06447C 10E100A4 */ beq $a3, $at, .L7F064710 +/* 098FB0 7F064480 2401001C */ li $at, 28 +/* 098FB4 7F064484 10E100A2 */ beq $a3, $at, .L7F064710 +/* 098FB8 7F064488 2401001B */ li $at, 27 +/* 098FBC 7F06448C 10E100A0 */ beq $a3, $at, .L7F064710 +/* 098FC0 7F064490 24010021 */ li $at, 33 +/* 098FC4 7F064494 10E1009E */ beq $a3, $at, .L7F064710 +/* 098FC8 7F064498 2401002F */ li $at, 47 +/* 098FCC 7F06449C 10E1009C */ beq $a3, $at, .L7F064710 +/* 098FD0 7F0644A0 24010030 */ li $at, 48 +/* 098FD4 7F0644A4 10E1009A */ beq $a3, $at, .L7F064710 +/* 098FD8 7F0644A8 24010022 */ li $at, 34 +/* 098FDC 7F0644AC 10E10098 */ beq $a3, $at, .L7F064710 +/* 098FE0 7F0644B0 24010017 */ li $at, 23 +/* 098FE4 7F0644B4 10E10096 */ beq $a3, $at, .L7F064710 +/* 098FE8 7F0644B8 2401003C */ li $at, 60 +/* 098FEC 7F0644BC 50E10095 */ beql $a3, $at, .L7F064714 +/* 098FF0 7F0644C0 8FBF0014 */ lw $ra, 0x14($sp) +/* 098FF4 7F0644C4 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 098FF8 7F0644C8 AFA70070 */ sw $a3, 0x70($sp) +/* 098FFC 7F0644CC 8FA70070 */ lw $a3, 0x70($sp) +/* 099000 7F0644D0 10400068 */ beqz $v0, .L7F064674 +/* 099004 7F0644D4 00403025 */ move $a2, $v0 +/* 099008 7F0644D8 8FAF0074 */ lw $t7, 0x74($sp) +/* 09900C 7F0644DC 24010003 */ li $at, 3 +/* 099010 7F0644E0 91E20000 */ lbu $v0, ($t7) +/* 099014 7F0644E4 1041002F */ beq $v0, $at, .L7F0645A4 +/* 099018 7F0644E8 24010006 */ li $at, 6 +/* 09901C 7F0644EC 1041002D */ beq $v0, $at, .L7F0645A4 +/* 099020 7F0644F0 24010016 */ li $at, 22 +/* 099024 7F0644F4 14E10008 */ bne $a3, $at, .L7F064518 +/* 099028 7F0644F8 27A20038 */ addiu $v0, $sp, 0x38 +/* 09902C 7F0644FC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099030 7F064500 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099034 7F064504 2405005B */ li $a1, 91 +/* 099038 7F064508 0C002382 */ jal play_sfx_a1 +/* 09903C 7F06450C AFA60060 */ sw $a2, 0x60($sp) +/* 099040 7F064510 1000001C */ b .L7F064584 +/* 099044 7F064514 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064518: +/* 099048 7F064518 3C188003 */ lui $t8, %hi(D_80035E04) +/* 09904C 7F06451C 27185E04 */ addiu $t8, %lo(D_80035E04) # addiu $t8, $t8, 0x5e04 +/* 099050 7F064520 27090024 */ addiu $t1, $t8, 0x24 +/* 099054 7F064524 00405025 */ move $t2, $v0 +.L7F064528: +/* 099058 7F064528 8F010000 */ lw $at, ($t8) +/* 09905C 7F06452C 2718000C */ addiu $t8, $t8, 0xc +/* 099060 7F064530 254A000C */ addiu $t2, $t2, 0xc +/* 099064 7F064534 AD41FFF4 */ sw $at, -0xc($t2) +/* 099068 7F064538 8F01FFF8 */ lw $at, -8($t8) +/* 09906C 7F06453C AD41FFF8 */ sw $at, -8($t2) +/* 099070 7F064540 8F01FFFC */ lw $at, -4($t8) +/* 099074 7F064544 1709FFF8 */ bne $t8, $t1, .L7F064528 +/* 099078 7F064548 AD41FFFC */ sw $at, -4($t2) +/* 09907C 7F06454C 8F010000 */ lw $at, ($t8) +/* 099080 7F064550 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099084 7F064554 AD410000 */ sw $at, ($t2) +/* 099088 7F064558 8FAB0068 */ lw $t3, 0x68($sp) +/* 09908C 7F06455C 24010014 */ li $at, 20 +/* 099090 7F064560 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099094 7F064564 0161001B */ divu $zero, $t3, $at +/* 099098 7F064568 00006010 */ mfhi $t4 +/* 09909C 7F06456C 000C6840 */ sll $t5, $t4, 1 +/* 0990A0 7F064570 004D7021 */ addu $t6, $v0, $t5 +/* 0990A4 7F064574 85C50000 */ lh $a1, ($t6) +/* 0990A8 7F064578 0C002382 */ jal play_sfx_a1 +/* 0990AC 7F06457C AFA60060 */ sw $a2, 0x60($sp) +/* 0990B0 7F064580 8FAF0060 */ lw $t7, 0x60($sp) +.L7F064584: +/* 0990B4 7F064584 24050008 */ li $a1, 8 +/* 0990B8 7F064588 8DE40000 */ lw $a0, ($t7) +/* 0990BC 7F06458C 10800039 */ beqz $a0, .L7F064674 +/* 0990C0 7F064590 00000000 */ nop +/* 0990C4 7F064594 0C002461 */ jal sfx_c_70009184 +/* 0990C8 7F064598 8FA6006C */ lw $a2, 0x6c($sp) +/* 0990CC 7F06459C 10000035 */ b .L7F064674 +/* 0990D0 7F0645A0 00000000 */ nop +.L7F0645A4: +/* 0990D4 7F0645A4 24010002 */ li $at, 2 +/* 0990D8 7F0645A8 14E10007 */ bne $a3, $at, .L7F0645C8 +/* 0990DC 7F0645AC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0990E0 7F0645B0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0990E4 7F0645B4 2405004A */ li $a1, 74 +/* 0990E8 7F0645B8 0C002382 */ jal play_sfx_a1 +/* 0990EC 7F0645BC AFA60060 */ sw $a2, 0x60($sp) +/* 0990F0 7F0645C0 10000026 */ b .L7F06465C +/* 0990F4 7F0645C4 8FAB0060 */ lw $t3, 0x60($sp) +.L7F0645C8: +/* 0990F8 7F0645C8 24010001 */ li $at, 1 +/* 0990FC 7F0645CC 14E10015 */ bne $a3, $at, .L7F064624 +/* 099100 7F0645D0 3C0D8003 */ lui $t5, %hi(D_80035E34) +/* 099104 7F0645D4 3C088003 */ lui $t0, %hi(D_80035E2C) +/* 099108 7F0645D8 25085E2C */ addiu $t0, %lo(D_80035E2C) # addiu $t0, $t0, 0x5e2c +/* 09910C 7F0645DC 8D010000 */ lw $at, ($t0) +/* 099110 7F0645E0 27A20030 */ addiu $v0, $sp, 0x30 +/* 099114 7F0645E4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099118 7F0645E8 AC410000 */ sw $at, ($v0) +/* 09911C 7F0645EC 95010004 */ lhu $at, 4($t0) +/* 099120 7F0645F0 A4410004 */ sh $at, 4($v0) +/* 099124 7F0645F4 8FB80068 */ lw $t8, 0x68($sp) +/* 099128 7F0645F8 24010003 */ li $at, 3 +/* 09912C 7F0645FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099130 7F064600 0301001B */ divu $zero, $t8, $at +/* 099134 7F064604 00005010 */ mfhi $t2 +/* 099138 7F064608 000A5840 */ sll $t3, $t2, 1 +/* 09913C 7F06460C 004B6021 */ addu $t4, $v0, $t3 +/* 099140 7F064610 85850000 */ lh $a1, ($t4) +/* 099144 7F064614 0C002382 */ jal play_sfx_a1 +/* 099148 7F064618 AFA60060 */ sw $a2, 0x60($sp) +/* 09914C 7F06461C 1000000F */ b .L7F06465C +/* 099150 7F064620 8FAB0060 */ lw $t3, 0x60($sp) +.L7F064624: +/* 099154 7F064624 25AD5E34 */ addiu $t5, %lo(D_80035E34) # addiu $t5, $t5, 0x5e34 +/* 099158 7F064628 8DA10000 */ lw $at, ($t5) +/* 09915C 7F06462C 27A2002C */ addiu $v0, $sp, 0x2c +/* 099160 7F064630 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099164 7F064634 AC410000 */ sw $at, ($v0) +/* 099168 7F064638 8FA80068 */ lw $t0, 0x68($sp) +/* 09916C 7F06463C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099170 7F064640 31090001 */ andi $t1, $t0, 1 +/* 099174 7F064644 0009C040 */ sll $t8, $t1, 1 +/* 099178 7F064648 00585021 */ addu $t2, $v0, $t8 +/* 09917C 7F06464C 85450000 */ lh $a1, ($t2) +/* 099180 7F064650 0C002382 */ jal play_sfx_a1 +/* 099184 7F064654 AFA60060 */ sw $a2, 0x60($sp) +/* 099188 7F064658 8FAB0060 */ lw $t3, 0x60($sp) +.L7F06465C: +/* 09918C 7F06465C 24050008 */ li $a1, 8 +/* 099190 7F064660 8D640000 */ lw $a0, ($t3) +/* 099194 7F064664 10800003 */ beqz $a0, .L7F064674 +/* 099198 7F064668 00000000 */ nop +/* 09919C 7F06466C 0C002461 */ jal sfx_c_70009184 +/* 0991A0 7F064670 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064674: +/* 0991A4 7F064674 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0991A8 7F064678 00000000 */ nop +/* 0991AC 7F06467C 10400024 */ beqz $v0, .L7F064710 +/* 0991B0 7F064680 AFA20060 */ sw $v0, 0x60($sp) +/* 0991B4 7F064684 8FAC0078 */ lw $t4, 0x78($sp) +/* 0991B8 7F064688 3C0E8005 */ lui $t6, %hi(image_entries) +/* 0991BC 7F06468C 05800020 */ bltz $t4, .L7F064710 +/* 0991C0 7F064690 000C78C0 */ sll $t7, $t4, 3 +/* 0991C4 7F064694 01CF7021 */ addu $t6, $t6, $t7 +/* 0991C8 7F064698 8DCE9300 */ lw $t6, %lo(image_entries)($t6) +/* 0991CC 7F06469C 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 0991D0 7F0646A0 000E6F02 */ srl $t5, $t6, 0x1c +/* 0991D4 7F0646A4 000DC880 */ sll $t9, $t5, 2 +/* 0991D8 7F0646A8 00591021 */ addu $v0, $v0, $t9 +/* 0991DC 7F0646AC 8C42E86C */ lw $v0, %lo(D_8004E86C)($v0) +/* 0991E0 7F0646B0 50400018 */ beql $v0, $zero, .L7F064714 +/* 0991E4 7F0646B4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0991E8 7F0646B8 84470008 */ lh $a3, 8($v0) +/* 0991EC 7F0646BC 8FA80064 */ lw $t0, 0x64($sp) +/* 0991F0 7F0646C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0991F4 7F0646C4 18E0000C */ blez $a3, .L7F0646F8 +/* 0991F8 7F0646C8 8FA60060 */ lw $a2, 0x60($sp) +/* 0991FC 7F0646CC 0107001B */ divu $zero, $t0, $a3 +/* 099200 7F0646D0 8C490000 */ lw $t1, ($v0) +/* 099204 7F0646D4 00001810 */ mfhi $v1 +/* 099208 7F0646D8 0003C040 */ sll $t8, $v1, 1 +/* 09920C 7F0646DC 14E00002 */ bnez $a3, .L7F0646E8 +/* 099210 7F0646E0 00000000 */ nop +/* 099214 7F0646E4 0007000D */ break 7 +.L7F0646E8: +/* 099218 7F0646E8 01385021 */ addu $t2, $t1, $t8 +/* 09921C 7F0646EC 85450000 */ lh $a1, ($t2) +/* 099220 7F0646F0 0C002382 */ jal play_sfx_a1 +/* 099224 7F0646F4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +.L7F0646F8: +/* 099228 7F0646F8 8FAB0060 */ lw $t3, 0x60($sp) +/* 09922C 7F0646FC 8D640000 */ lw $a0, ($t3) +/* 099230 7F064700 50800004 */ beql $a0, $zero, .L7F064714 +/* 099234 7F064704 8FBF0014 */ lw $ra, 0x14($sp) +/* 099238 7F064708 0FC14E84 */ jal sub_GAME_7F053A10 +/* 09923C 7F06470C 8FA50024 */ lw $a1, 0x24($sp) +.L7F064710: +/* 099240 7F064710 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064714: +/* 099244 7F064714 27BD0070 */ addiu $sp, $sp, 0x70 +/* 099248 7F064718 03E00008 */ jr $ra +/* 09924C 7F06471C 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_detail_edit_flag +/* 0994B8 7F064948 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0994BC 7F06494C 00803825 */ move $a3, $a0 +/* 0994C0 7F064950 AFBF0014 */ sw $ra, 0x14($sp) +/* 0994C4 7F064954 24A40008 */ addiu $a0, $a1, 8 +/* 0994C8 7F064958 AFA50074 */ sw $a1, 0x74($sp) +/* 0994CC 7F06495C AFA60078 */ sw $a2, 0x78($sp) +/* 0994D0 7F064960 AFA40024 */ sw $a0, 0x24($sp) +/* 0994D4 7F064964 0FC14FB8 */ jal sub_GAME_7F0539E4 +/* 0994D8 7F064968 AFA70070 */ sw $a3, 0x70($sp) +/* 0994DC 7F06496C 0C002918 */ jal randomGetNext +/* 0994E0 7F064970 AFA2006C */ sw $v0, 0x6c($sp) +/* 0994E4 7F064974 0C002918 */ jal randomGetNext +/* 0994E8 7F064978 AFA20068 */ sw $v0, 0x68($sp) +/* 0994EC 7F06497C 8FAE0078 */ lw $t6, 0x78($sp) +/* 0994F0 7F064980 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 0994F4 7F064984 AFA20064 */ sw $v0, 0x64($sp) +/* 0994F8 7F064988 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 0994FC 7F06498C AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099500 7F064990 14400004 */ bnez $v0, .L7F0649A4 +/* 099504 7F064994 8FA70070 */ lw $a3, 0x70($sp) +/* 099508 7F064998 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 09950C 7F06499C AFA70070 */ sw $a3, 0x70($sp) +/* 099510 7F0649A0 8FA70070 */ lw $a3, 0x70($sp) +.L7F0649A4: +/* 099514 7F0649A4 2401001D */ li $at, 29 +/* 099518 7F0649A8 10E100A7 */ beq $a3, $at, .L7F064C48 +/* 09951C 7F0649AC 2401001C */ li $at, 28 +/* 099520 7F0649B0 10E100A5 */ beq $a3, $at, .L7F064C48 +/* 099524 7F0649B4 2401001B */ li $at, 27 +/* 099528 7F0649B8 10E100A3 */ beq $a3, $at, .L7F064C48 +/* 09952C 7F0649BC 24010021 */ li $at, 33 +/* 099530 7F0649C0 10E100A1 */ beq $a3, $at, .L7F064C48 +/* 099534 7F0649C4 2401002F */ li $at, 47 +/* 099538 7F0649C8 10E1009F */ beq $a3, $at, .L7F064C48 +/* 09953C 7F0649CC 24010030 */ li $at, 48 +/* 099540 7F0649D0 10E1009D */ beq $a3, $at, .L7F064C48 +/* 099544 7F0649D4 24010022 */ li $at, 34 +/* 099548 7F0649D8 10E1009B */ beq $a3, $at, .L7F064C48 +/* 09954C 7F0649DC 24010017 */ li $at, 23 +/* 099550 7F0649E0 10E10099 */ beq $a3, $at, .L7F064C48 +/* 099554 7F0649E4 2401003C */ li $at, 60 +/* 099558 7F0649E8 10E10097 */ beq $a3, $at, .L7F064C48 +/* 09955C 7F0649EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099560 7F0649F0 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099564 7F0649F4 59E00095 */ blezl $t7, .L7F064C4C +/* 099568 7F0649F8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09956C 7F0649FC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099570 7F064A00 AFA70070 */ sw $a3, 0x70($sp) +/* 099574 7F064A04 8FA70070 */ lw $a3, 0x70($sp) +/* 099578 7F064A08 10400068 */ beqz $v0, .L7F064BAC +/* 09957C 7F064A0C 00403025 */ move $a2, $v0 +/* 099580 7F064A10 8FB80074 */ lw $t8, 0x74($sp) +/* 099584 7F064A14 24010003 */ li $at, 3 +/* 099588 7F064A18 93020000 */ lbu $v0, ($t8) +/* 09958C 7F064A1C 1041002F */ beq $v0, $at, .L7F064ADC +/* 099590 7F064A20 24010006 */ li $at, 6 +/* 099594 7F064A24 1041002D */ beq $v0, $at, .L7F064ADC +/* 099598 7F064A28 24010016 */ li $at, 22 +/* 09959C 7F064A2C 14E10008 */ bne $a3, $at, .L7F064A50 +/* 0995A0 7F064A30 27A20038 */ addiu $v0, $sp, 0x38 +/* 0995A4 7F064A34 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0995A8 7F064A38 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0995AC 7F064A3C 2405005B */ li $a1, 91 +/* 0995B0 7F064A40 0C002386 */ jal play_sfx_a1 +/* 0995B4 7F064A44 AFA60060 */ sw $a2, 0x60($sp) +/* 0995B8 7F064A48 1000001C */ b .L7F064ABC +/* 0995BC 7F064A4C 8FB80060 */ lw $t8, 0x60($sp) +.L7F064A50: +/* 0995C0 7F064A50 3C198003 */ lui $t9, %hi(D_80035E04) # $t9, 0x8003 +/* 0995C4 7F064A54 27395E44 */ addiu $t9, %lo(D_80035E04) # addiu $t9, $t9, 0x5e44 +/* 0995C8 7F064A58 272A0024 */ addiu $t2, $t9, 0x24 +/* 0995CC 7F064A5C 00405825 */ move $t3, $v0 +.L7F064A60: +/* 0995D0 7F064A60 8F210000 */ lw $at, ($t9) +/* 0995D4 7F064A64 2739000C */ addiu $t9, $t9, 0xc +/* 0995D8 7F064A68 256B000C */ addiu $t3, $t3, 0xc +/* 0995DC 7F064A6C AD61FFF4 */ sw $at, -0xc($t3) +/* 0995E0 7F064A70 8F21FFF8 */ lw $at, -8($t9) +/* 0995E4 7F064A74 AD61FFF8 */ sw $at, -8($t3) +/* 0995E8 7F064A78 8F21FFFC */ lw $at, -4($t9) +/* 0995EC 7F064A7C 172AFFF8 */ bne $t9, $t2, .L7F064A60 +/* 0995F0 7F064A80 AD61FFFC */ sw $at, -4($t3) +/* 0995F4 7F064A84 8F210000 */ lw $at, ($t9) +/* 0995F8 7F064A88 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0995FC 7F064A8C AD610000 */ sw $at, ($t3) +/* 099600 7F064A90 8FAC0068 */ lw $t4, 0x68($sp) +/* 099604 7F064A94 24010014 */ li $at, 20 +/* 099608 7F064A98 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09960C 7F064A9C 0181001B */ divu $zero, $t4, $at +/* 099610 7F064AA0 00006810 */ mfhi $t5 +/* 099614 7F064AA4 000D7040 */ sll $t6, $t5, 1 +/* 099618 7F064AA8 004E7821 */ addu $t7, $v0, $t6 +/* 09961C 7F064AAC 85E50000 */ lh $a1, ($t7) +/* 099620 7F064AB0 0C002386 */ jal play_sfx_a1 +/* 099624 7F064AB4 AFA60060 */ sw $a2, 0x60($sp) +/* 099628 7F064AB8 8FB80060 */ lw $t8, 0x60($sp) +.L7F064ABC: +/* 09962C 7F064ABC 24050008 */ li $a1, 8 +/* 099630 7F064AC0 8F040000 */ lw $a0, ($t8) +/* 099634 7F064AC4 10800039 */ beqz $a0, .L7F064BAC +/* 099638 7F064AC8 00000000 */ nop +/* 09963C 7F064ACC 0C002465 */ jal sfx_c_70009184 +/* 099640 7F064AD0 8FA6006C */ lw $a2, 0x6c($sp) +/* 099644 7F064AD4 10000035 */ b .L7F064BAC +/* 099648 7F064AD8 00000000 */ nop +.L7F064ADC: +/* 09964C 7F064ADC 24010002 */ li $at, 2 +/* 099650 7F064AE0 14E10007 */ bne $a3, $at, .L7F064B00 +/* 099654 7F064AE4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 099658 7F064AE8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09965C 7F064AEC 2405004A */ li $a1, 74 +/* 099660 7F064AF0 0C002386 */ jal play_sfx_a1 +/* 099664 7F064AF4 AFA60060 */ sw $a2, 0x60($sp) +/* 099668 7F064AF8 10000026 */ b .L7F064B94 +/* 09966C 7F064AFC 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B00: +/* 099670 7F064B00 24010001 */ li $at, 1 +/* 099674 7F064B04 14E10015 */ bne $a3, $at, .L7F064B5C +/* 099678 7F064B08 3C0E8003 */ lui $t6, %hi(D_80035E34) # $t6, 0x8003 +/* 09967C 7F064B0C 3C098003 */ lui $t1, %hi(D_80035E2C) # $t1, 0x8003 +/* 099680 7F064B10 25295E6C */ addiu $t1, %lo(D_80035E2C) # addiu $t1, $t1, 0x5e6c +/* 099684 7F064B14 8D210000 */ lw $at, ($t1) +/* 099688 7F064B18 27A20030 */ addiu $v0, $sp, 0x30 +/* 09968C 7F064B1C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 099690 7F064B20 AC410000 */ sw $at, ($v0) +/* 099694 7F064B24 95210004 */ lhu $at, 4($t1) +/* 099698 7F064B28 A4410004 */ sh $at, 4($v0) +/* 09969C 7F064B2C 8FB90068 */ lw $t9, 0x68($sp) +/* 0996A0 7F064B30 24010003 */ li $at, 3 +/* 0996A4 7F064B34 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0996A8 7F064B38 0321001B */ divu $zero, $t9, $at +/* 0996AC 7F064B3C 00005810 */ mfhi $t3 +/* 0996B0 7F064B40 000B6040 */ sll $t4, $t3, 1 +/* 0996B4 7F064B44 004C6821 */ addu $t5, $v0, $t4 +/* 0996B8 7F064B48 85A50000 */ lh $a1, ($t5) +/* 0996BC 7F064B4C 0C002386 */ jal play_sfx_a1 +/* 0996C0 7F064B50 AFA60060 */ sw $a2, 0x60($sp) +/* 0996C4 7F064B54 1000000F */ b .L7F064B94 +/* 0996C8 7F064B58 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B5C: +/* 0996CC 7F064B5C 25CE5E74 */ addiu $t6, %lo(D_80035E34) # addiu $t6, $t6, 0x5e74 +/* 0996D0 7F064B60 8DC10000 */ lw $at, ($t6) +/* 0996D4 7F064B64 27A2002C */ addiu $v0, $sp, 0x2c +/* 0996D8 7F064B68 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0996DC 7F064B6C AC410000 */ sw $at, ($v0) +/* 0996E0 7F064B70 8FA90068 */ lw $t1, 0x68($sp) +/* 0996E4 7F064B74 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0996E8 7F064B78 312A0001 */ andi $t2, $t1, 1 +/* 0996EC 7F064B7C 000AC840 */ sll $t9, $t2, 1 +/* 0996F0 7F064B80 00595821 */ addu $t3, $v0, $t9 +/* 0996F4 7F064B84 85650000 */ lh $a1, ($t3) +/* 0996F8 7F064B88 0C002386 */ jal play_sfx_a1 +/* 0996FC 7F064B8C AFA60060 */ sw $a2, 0x60($sp) +/* 099700 7F064B90 8FAC0060 */ lw $t4, 0x60($sp) +.L7F064B94: +/* 099704 7F064B94 24050008 */ li $a1, 8 +/* 099708 7F064B98 8D840000 */ lw $a0, ($t4) +/* 09970C 7F064B9C 10800003 */ beqz $a0, .L7F064BAC +/* 099710 7F064BA0 00000000 */ nop +/* 099714 7F064BA4 0C002465 */ jal sfx_c_70009184 +/* 099718 7F064BA8 8FA6006C */ lw $a2, 0x6c($sp) +.L7F064BAC: +/* 09971C 7F064BAC 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099720 7F064BB0 00000000 */ nop +/* 099724 7F064BB4 10400024 */ beqz $v0, .L7F064C48 +/* 099728 7F064BB8 AFA20060 */ sw $v0, 0x60($sp) +/* 09972C 7F064BBC 8FAD0078 */ lw $t5, 0x78($sp) +/* 099730 7F064BC0 3C0F8005 */ lui $t7, %hi(image_entries) +/* 099734 7F064BC4 05A00020 */ bltz $t5, .L7F064C48 +/* 099738 7F064BC8 000DC0C0 */ sll $t8, $t5, 3 +/* 09973C 7F064BCC 01F87821 */ addu $t7, $t7, $t8 +/* 099740 7F064BD0 8DEF9330 */ lw $t7, %lo(image_entries)($t7) +/* 099744 7F064BD4 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 099748 7F064BD8 000F7702 */ srl $t6, $t7, 0x1c +/* 09974C 7F064BDC 000E4080 */ sll $t0, $t6, 2 +/* 099750 7F064BE0 00481021 */ addu $v0, $v0, $t0 +/* 099754 7F064BE4 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 099758 7F064BE8 50400018 */ beql $v0, $zero, .L7F064C4C +/* 09975C 7F064BEC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099760 7F064BF0 84470008 */ lh $a3, 8($v0) +/* 099764 7F064BF4 8FA90064 */ lw $t1, 0x64($sp) +/* 099768 7F064BF8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09976C 7F064BFC 18E0000C */ blez $a3, .L7F064C30 +/* 099770 7F064C00 8FA60060 */ lw $a2, 0x60($sp) +/* 099774 7F064C04 0127001B */ divu $zero, $t1, $a3 +/* 099778 7F064C08 8C4A0000 */ lw $t2, ($v0) +/* 09977C 7F064C0C 00001810 */ mfhi $v1 +/* 099780 7F064C10 0003C840 */ sll $t9, $v1, 1 +/* 099784 7F064C14 14E00002 */ bnez $a3, .L7F064C20 +/* 099788 7F064C18 00000000 */ nop +/* 09978C 7F064C1C 0007000D */ break 7 +.L7F064C20: +/* 099790 7F064C20 01595821 */ addu $t3, $t2, $t9 +/* 099794 7F064C24 85650000 */ lh $a1, ($t3) +/* 099798 7F064C28 0C002386 */ jal play_sfx_a1 +/* 09979C 7F064C2C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +.L7F064C30: +/* 0997A0 7F064C30 8FAC0060 */ lw $t4, 0x60($sp) +/* 0997A4 7F064C34 8D840000 */ lw $a0, ($t4) +/* 0997A8 7F064C38 50800004 */ beql $a0, $zero, .L7F064C4C +/* 0997AC 7F064C3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0997B0 7F064C40 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0997B4 7F064C44 8FA50024 */ lw $a1, 0x24($sp) +.L7F064C48: +/* 0997B8 7F064C48 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064C4C: +/* 0997BC 7F064C4C 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0997C0 7F064C50 03E00008 */ jr $ra +/* 0997C4 7F064C54 00000000 */ nop +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_detail_edit_flag +/* 098F4C 7F06441C 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 098F50 7F064420 00803825 */ move $a3, $a0 +/* 098F54 7F064424 AFBF0014 */ sw $ra, 0x14($sp) +/* 098F58 7F064428 24A40008 */ addiu $a0, $a1, 8 +/* 098F5C 7F06442C AFA50074 */ sw $a1, 0x74($sp) +/* 098F60 7F064430 AFA60078 */ sw $a2, 0x78($sp) +/* 098F64 7F064434 AFA40024 */ sw $a0, 0x24($sp) +/* 098F68 7F064438 0FC14E79 */ jal sub_GAME_7F0539E4 +/* 098F6C 7F06443C AFA70070 */ sw $a3, 0x70($sp) +/* 098F70 7F064440 0C002914 */ jal randomGetNext +/* 098F74 7F064444 AFA2006C */ sw $v0, 0x6c($sp) +/* 098F78 7F064448 0C002914 */ jal randomGetNext /* 098F7C 7F06444C AFA20068 */ sw $v0, 0x68($sp) /* 098F80 7F064450 8FAE0078 */ lw $t6, 0x78($sp) /* 098F84 7F064454 3C018005 */ lui $at, %hi(D_800483C4) @@ -12263,221 +14545,6 @@ glabel recall_joy2_hits_edit_detail_edit_flag ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel recall_joy2_hits_edit_detail_edit_flag -/* 0994B8 7F064948 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0994BC 7F06494C 00803825 */ move $a3, $a0 -/* 0994C0 7F064950 AFBF0014 */ sw $ra, 0x14($sp) -/* 0994C4 7F064954 24A40008 */ addiu $a0, $a1, 8 -/* 0994C8 7F064958 AFA50074 */ sw $a1, 0x74($sp) -/* 0994CC 7F06495C AFA60078 */ sw $a2, 0x78($sp) -/* 0994D0 7F064960 AFA40024 */ sw $a0, 0x24($sp) -/* 0994D4 7F064964 0FC14FB8 */ jal sub_GAME_7F0539E4 -/* 0994D8 7F064968 AFA70070 */ sw $a3, 0x70($sp) -/* 0994DC 7F06496C 0C002918 */ jal get_random_value -/* 0994E0 7F064970 AFA2006C */ sw $v0, 0x6c($sp) -/* 0994E4 7F064974 0C002918 */ jal get_random_value -/* 0994E8 7F064978 AFA20068 */ sw $v0, 0x68($sp) -/* 0994EC 7F06497C 8FAE0078 */ lw $t6, 0x78($sp) -/* 0994F0 7F064980 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 -/* 0994F4 7F064984 AFA20064 */ sw $v0, 0x64($sp) -/* 0994F8 7F064988 0FC246A3 */ jal get_debug_joy2hitsedit_flag -/* 0994FC 7F06498C AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) -/* 099500 7F064990 14400004 */ bnez $v0, .L7F0649A4 -/* 099504 7F064994 8FA70070 */ lw $a3, 0x70($sp) -/* 099508 7F064998 0FC246A6 */ jal get_debug_joy2detailedit_flag -/* 09950C 7F06499C AFA70070 */ sw $a3, 0x70($sp) -/* 099510 7F0649A0 8FA70070 */ lw $a3, 0x70($sp) -.L7F0649A4: -/* 099514 7F0649A4 2401001D */ li $at, 29 -/* 099518 7F0649A8 10E100A7 */ beq $a3, $at, .L7F064C48 -/* 09951C 7F0649AC 2401001C */ li $at, 28 -/* 099520 7F0649B0 10E100A5 */ beq $a3, $at, .L7F064C48 -/* 099524 7F0649B4 2401001B */ li $at, 27 -/* 099528 7F0649B8 10E100A3 */ beq $a3, $at, .L7F064C48 -/* 09952C 7F0649BC 24010021 */ li $at, 33 -/* 099530 7F0649C0 10E100A1 */ beq $a3, $at, .L7F064C48 -/* 099534 7F0649C4 2401002F */ li $at, 47 -/* 099538 7F0649C8 10E1009F */ beq $a3, $at, .L7F064C48 -/* 09953C 7F0649CC 24010030 */ li $at, 48 -/* 099540 7F0649D0 10E1009D */ beq $a3, $at, .L7F064C48 -/* 099544 7F0649D4 24010022 */ li $at, 34 -/* 099548 7F0649D8 10E1009B */ beq $a3, $at, .L7F064C48 -/* 09954C 7F0649DC 24010017 */ li $at, 23 -/* 099550 7F0649E0 10E10099 */ beq $a3, $at, .L7F064C48 -/* 099554 7F0649E4 2401003C */ li $at, 60 -/* 099558 7F0649E8 10E10097 */ beq $a3, $at, .L7F064C48 -/* 09955C 7F0649EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 -/* 099560 7F0649F0 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) -/* 099564 7F0649F4 59E00095 */ blezl $t7, .L7F064C4C -/* 099568 7F0649F8 8FBF0014 */ lw $ra, 0x14($sp) -/* 09956C 7F0649FC 0FC19233 */ jal sub_GAME_7F0643A0 -/* 099570 7F064A00 AFA70070 */ sw $a3, 0x70($sp) -/* 099574 7F064A04 8FA70070 */ lw $a3, 0x70($sp) -/* 099578 7F064A08 10400068 */ beqz $v0, .L7F064BAC -/* 09957C 7F064A0C 00403025 */ move $a2, $v0 -/* 099580 7F064A10 8FB80074 */ lw $t8, 0x74($sp) -/* 099584 7F064A14 24010003 */ li $at, 3 -/* 099588 7F064A18 93020000 */ lbu $v0, ($t8) -/* 09958C 7F064A1C 1041002F */ beq $v0, $at, .L7F064ADC -/* 099590 7F064A20 24010006 */ li $at, 6 -/* 099594 7F064A24 1041002D */ beq $v0, $at, .L7F064ADC -/* 099598 7F064A28 24010016 */ li $at, 22 -/* 09959C 7F064A2C 14E10008 */ bne $a3, $at, .L7F064A50 -/* 0995A0 7F064A30 27A20038 */ addiu $v0, $sp, 0x38 -/* 0995A4 7F064A34 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0995A8 7F064A38 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0995AC 7F064A3C 2405005B */ li $a1, 91 -/* 0995B0 7F064A40 0C002386 */ jal play_sfx_a1 -/* 0995B4 7F064A44 AFA60060 */ sw $a2, 0x60($sp) -/* 0995B8 7F064A48 1000001C */ b .L7F064ABC -/* 0995BC 7F064A4C 8FB80060 */ lw $t8, 0x60($sp) -.L7F064A50: -/* 0995C0 7F064A50 3C198003 */ lui $t9, %hi(D_80035E04) # $t9, 0x8003 -/* 0995C4 7F064A54 27395E44 */ addiu $t9, %lo(D_80035E04) # addiu $t9, $t9, 0x5e44 -/* 0995C8 7F064A58 272A0024 */ addiu $t2, $t9, 0x24 -/* 0995CC 7F064A5C 00405825 */ move $t3, $v0 -.L7F064A60: -/* 0995D0 7F064A60 8F210000 */ lw $at, ($t9) -/* 0995D4 7F064A64 2739000C */ addiu $t9, $t9, 0xc -/* 0995D8 7F064A68 256B000C */ addiu $t3, $t3, 0xc -/* 0995DC 7F064A6C AD61FFF4 */ sw $at, -0xc($t3) -/* 0995E0 7F064A70 8F21FFF8 */ lw $at, -8($t9) -/* 0995E4 7F064A74 AD61FFF8 */ sw $at, -8($t3) -/* 0995E8 7F064A78 8F21FFFC */ lw $at, -4($t9) -/* 0995EC 7F064A7C 172AFFF8 */ bne $t9, $t2, .L7F064A60 -/* 0995F0 7F064A80 AD61FFFC */ sw $at, -4($t3) -/* 0995F4 7F064A84 8F210000 */ lw $at, ($t9) -/* 0995F8 7F064A88 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0995FC 7F064A8C AD610000 */ sw $at, ($t3) -/* 099600 7F064A90 8FAC0068 */ lw $t4, 0x68($sp) -/* 099604 7F064A94 24010014 */ li $at, 20 -/* 099608 7F064A98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09960C 7F064A9C 0181001B */ divu $zero, $t4, $at -/* 099610 7F064AA0 00006810 */ mfhi $t5 -/* 099614 7F064AA4 000D7040 */ sll $t6, $t5, 1 -/* 099618 7F064AA8 004E7821 */ addu $t7, $v0, $t6 -/* 09961C 7F064AAC 85E50000 */ lh $a1, ($t7) -/* 099620 7F064AB0 0C002386 */ jal play_sfx_a1 -/* 099624 7F064AB4 AFA60060 */ sw $a2, 0x60($sp) -/* 099628 7F064AB8 8FB80060 */ lw $t8, 0x60($sp) -.L7F064ABC: -/* 09962C 7F064ABC 24050008 */ li $a1, 8 -/* 099630 7F064AC0 8F040000 */ lw $a0, ($t8) -/* 099634 7F064AC4 10800039 */ beqz $a0, .L7F064BAC -/* 099638 7F064AC8 00000000 */ nop -/* 09963C 7F064ACC 0C002465 */ jal sfx_c_70009184 -/* 099640 7F064AD0 8FA6006C */ lw $a2, 0x6c($sp) -/* 099644 7F064AD4 10000035 */ b .L7F064BAC -/* 099648 7F064AD8 00000000 */ nop -.L7F064ADC: -/* 09964C 7F064ADC 24010002 */ li $at, 2 -/* 099650 7F064AE0 14E10007 */ bne $a3, $at, .L7F064B00 -/* 099654 7F064AE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 099658 7F064AE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09965C 7F064AEC 2405004A */ li $a1, 74 -/* 099660 7F064AF0 0C002386 */ jal play_sfx_a1 -/* 099664 7F064AF4 AFA60060 */ sw $a2, 0x60($sp) -/* 099668 7F064AF8 10000026 */ b .L7F064B94 -/* 09966C 7F064AFC 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064B00: -/* 099670 7F064B00 24010001 */ li $at, 1 -/* 099674 7F064B04 14E10015 */ bne $a3, $at, .L7F064B5C -/* 099678 7F064B08 3C0E8003 */ lui $t6, %hi(D_80035E34) # $t6, 0x8003 -/* 09967C 7F064B0C 3C098003 */ lui $t1, %hi(D_80035E2C) # $t1, 0x8003 -/* 099680 7F064B10 25295E6C */ addiu $t1, %lo(D_80035E2C) # addiu $t1, $t1, 0x5e6c -/* 099684 7F064B14 8D210000 */ lw $at, ($t1) -/* 099688 7F064B18 27A20030 */ addiu $v0, $sp, 0x30 -/* 09968C 7F064B1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 099690 7F064B20 AC410000 */ sw $at, ($v0) -/* 099694 7F064B24 95210004 */ lhu $at, 4($t1) -/* 099698 7F064B28 A4410004 */ sh $at, 4($v0) -/* 09969C 7F064B2C 8FB90068 */ lw $t9, 0x68($sp) -/* 0996A0 7F064B30 24010003 */ li $at, 3 -/* 0996A4 7F064B34 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0996A8 7F064B38 0321001B */ divu $zero, $t9, $at -/* 0996AC 7F064B3C 00005810 */ mfhi $t3 -/* 0996B0 7F064B40 000B6040 */ sll $t4, $t3, 1 -/* 0996B4 7F064B44 004C6821 */ addu $t5, $v0, $t4 -/* 0996B8 7F064B48 85A50000 */ lh $a1, ($t5) -/* 0996BC 7F064B4C 0C002386 */ jal play_sfx_a1 -/* 0996C0 7F064B50 AFA60060 */ sw $a2, 0x60($sp) -/* 0996C4 7F064B54 1000000F */ b .L7F064B94 -/* 0996C8 7F064B58 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064B5C: -/* 0996CC 7F064B5C 25CE5E74 */ addiu $t6, %lo(D_80035E34) # addiu $t6, $t6, 0x5e74 -/* 0996D0 7F064B60 8DC10000 */ lw $at, ($t6) -/* 0996D4 7F064B64 27A2002C */ addiu $v0, $sp, 0x2c -/* 0996D8 7F064B68 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0996DC 7F064B6C AC410000 */ sw $at, ($v0) -/* 0996E0 7F064B70 8FA90068 */ lw $t1, 0x68($sp) -/* 0996E4 7F064B74 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0996E8 7F064B78 312A0001 */ andi $t2, $t1, 1 -/* 0996EC 7F064B7C 000AC840 */ sll $t9, $t2, 1 -/* 0996F0 7F064B80 00595821 */ addu $t3, $v0, $t9 -/* 0996F4 7F064B84 85650000 */ lh $a1, ($t3) -/* 0996F8 7F064B88 0C002386 */ jal play_sfx_a1 -/* 0996FC 7F064B8C AFA60060 */ sw $a2, 0x60($sp) -/* 099700 7F064B90 8FAC0060 */ lw $t4, 0x60($sp) -.L7F064B94: -/* 099704 7F064B94 24050008 */ li $a1, 8 -/* 099708 7F064B98 8D840000 */ lw $a0, ($t4) -/* 09970C 7F064B9C 10800003 */ beqz $a0, .L7F064BAC -/* 099710 7F064BA0 00000000 */ nop -/* 099714 7F064BA4 0C002465 */ jal sfx_c_70009184 -/* 099718 7F064BA8 8FA6006C */ lw $a2, 0x6c($sp) -.L7F064BAC: -/* 09971C 7F064BAC 0FC19233 */ jal sub_GAME_7F0643A0 -/* 099720 7F064BB0 00000000 */ nop -/* 099724 7F064BB4 10400024 */ beqz $v0, .L7F064C48 -/* 099728 7F064BB8 AFA20060 */ sw $v0, 0x60($sp) -/* 09972C 7F064BBC 8FAD0078 */ lw $t5, 0x78($sp) -/* 099730 7F064BC0 3C0F8005 */ lui $t7, %hi(image_entries) -/* 099734 7F064BC4 05A00020 */ bltz $t5, .L7F064C48 -/* 099738 7F064BC8 000DC0C0 */ sll $t8, $t5, 3 -/* 09973C 7F064BCC 01F87821 */ addu $t7, $t7, $t8 -/* 099740 7F064BD0 8DEF9330 */ lw $t7, %lo(image_entries)($t7) -/* 099744 7F064BD4 3C028005 */ lui $v0, %hi(D_8004E86C) -/* 099748 7F064BD8 000F7702 */ srl $t6, $t7, 0x1c -/* 09974C 7F064BDC 000E4080 */ sll $t0, $t6, 2 -/* 099750 7F064BE0 00481021 */ addu $v0, $v0, $t0 -/* 099754 7F064BE4 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) -/* 099758 7F064BE8 50400018 */ beql $v0, $zero, .L7F064C4C -/* 09975C 7F064BEC 8FBF0014 */ lw $ra, 0x14($sp) -/* 099760 7F064BF0 84470008 */ lh $a3, 8($v0) -/* 099764 7F064BF4 8FA90064 */ lw $t1, 0x64($sp) -/* 099768 7F064BF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09976C 7F064BFC 18E0000C */ blez $a3, .L7F064C30 -/* 099770 7F064C00 8FA60060 */ lw $a2, 0x60($sp) -/* 099774 7F064C04 0127001B */ divu $zero, $t1, $a3 -/* 099778 7F064C08 8C4A0000 */ lw $t2, ($v0) -/* 09977C 7F064C0C 00001810 */ mfhi $v1 -/* 099780 7F064C10 0003C840 */ sll $t9, $v1, 1 -/* 099784 7F064C14 14E00002 */ bnez $a3, .L7F064C20 -/* 099788 7F064C18 00000000 */ nop -/* 09978C 7F064C1C 0007000D */ break 7 -.L7F064C20: -/* 099790 7F064C20 01595821 */ addu $t3, $t2, $t9 -/* 099794 7F064C24 85650000 */ lh $a1, ($t3) -/* 099798 7F064C28 0C002386 */ jal play_sfx_a1 -/* 09979C 7F064C2C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -.L7F064C30: -/* 0997A0 7F064C30 8FAC0060 */ lw $t4, 0x60($sp) -/* 0997A4 7F064C34 8D840000 */ lw $a0, ($t4) -/* 0997A8 7F064C38 50800004 */ beql $a0, $zero, .L7F064C4C -/* 0997AC 7F064C3C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0997B0 7F064C40 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 0997B4 7F064C44 8FA50024 */ lw $a1, 0x24($sp) -.L7F064C48: -/* 0997B8 7F064C48 8FBF0014 */ lw $ra, 0x14($sp) -.L7F064C4C: -/* 0997BC 7F064C4C 27BD0070 */ addiu $sp, $sp, 0x70 -/* 0997C0 7F064C50 03E00008 */ jr $ra -/* 0997C4 7F064C54 00000000 */ nop -) -#endif #endif @@ -12498,8 +14565,8 @@ glabel sub_GAME_7F064720 /* 09925C 7F06472C AFA40020 */ sw $a0, 0x20($sp) /* 099260 7F064730 1040000C */ beqz $v0, .L7F064764 /* 099264 7F064734 00403025 */ move $a2, $v0 -/* 099268 7F064738 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099268 7F064738 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 099270 7F064740 24050046 */ li $a1, 70 /* 099274 7F064744 0C002382 */ jal play_sfx_a1 /* 099278 7F064748 AFA2001C */ sw $v0, 0x1c($sp) @@ -12532,8 +14599,8 @@ glabel sub_GAME_7F064720 /* 0997E4 7F064C74 00000000 */ nop /* 0997E8 7F064C78 1040000C */ beqz $v0, .L7F064CAC /* 0997EC 7F064C7C 00403025 */ move $a2, $v0 -/* 0997F0 7F064C80 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0997F4 7F064C84 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0997F0 7F064C80 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0997F4 7F064C84 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0997F8 7F064C88 24050046 */ li $a1, 70 /* 0997FC 7F064C8C 0C002386 */ jal play_sfx_a1 /* 099800 7F064C90 AFA2001C */ sw $v0, 0x1c($sp) @@ -12552,6 +14619,37 @@ glabel sub_GAME_7F064720 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F064720 +/* 099250 7F064720 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 099254 7F064724 AFBF0014 */ sw $ra, 0x14($sp) +/* 099258 7F064728 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 09925C 7F06472C AFA40020 */ sw $a0, 0x20($sp) +/* 099260 7F064730 1040000C */ beqz $v0, .L7F064764 +/* 099264 7F064734 00403025 */ move $a2, $v0 +/* 099268 7F064738 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09926C 7F06473C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099270 7F064740 24050046 */ li $a1, 70 +/* 099274 7F064744 0C002382 */ jal play_sfx_a1 +/* 099278 7F064748 AFA2001C */ sw $v0, 0x1c($sp) +/* 09927C 7F06474C 8FA6001C */ lw $a2, 0x1c($sp) +/* 099280 7F064750 8CC40000 */ lw $a0, ($a2) +/* 099284 7F064754 50800004 */ beql $a0, $zero, .L7F064768 +/* 099288 7F064758 8FBF0014 */ lw $ra, 0x14($sp) +/* 09928C 7F06475C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099290 7F064760 8FA50020 */ lw $a1, 0x20($sp) +.L7F064764: +/* 099294 7F064764 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064768: +/* 099298 7F064768 27BD0020 */ addiu $sp, $sp, 0x20 +/* 09929C 7F06476C 03E00008 */ jr $ra +/* 0992A0 7F064770 00000000 */ nop +) +#endif + + #endif @@ -12570,9 +14668,267 @@ glabel recall_joy2_hits_edit_flag /* 0992A8 7F064778 AFBF0014 */ sw $ra, 0x14($sp) /* 0992AC 7F06477C AFA40080 */ sw $a0, 0x80($sp) /* 0992B0 7F064780 AFA50084 */ sw $a1, 0x84($sp) -/* 0992B4 7F064784 0C002914 */ jal get_random_value +/* 0992B4 7F064784 0C002914 */ jal randomGetNext /* 0992B8 7F064788 AFA60088 */ sw $a2, 0x88($sp) -/* 0992BC 7F06478C 0C002914 */ jal get_random_value +/* 0992BC 7F06478C 0C002914 */ jal randomGetNext +/* 0992C0 7F064790 AFA20078 */ sw $v0, 0x78($sp) +/* 0992C4 7F064794 8FAE0088 */ lw $t6, 0x88($sp) +/* 0992C8 7F064798 3C018005 */ lui $at, %hi(D_800483C4) +/* 0992CC 7F06479C AFA20074 */ sw $v0, 0x74($sp) +/* 0992D0 7F0647A0 0FC243EB */ jal get_debug_joy2hitsedit_flag +/* 0992D4 7F0647A4 AC2E83C4 */ sw $t6, %lo(D_800483C4)($at) +/* 0992D8 7F0647A8 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0992DC 7F0647AC 00000000 */ nop +/* 0992E0 7F0647B0 10400035 */ beqz $v0, .L7F064888 +/* 0992E4 7F0647B4 00403025 */ move $a2, $v0 +/* 0992E8 7F0647B8 8FA20080 */ lw $v0, 0x80($sp) +/* 0992EC 7F0647BC 24010017 */ li $at, 23 +/* 0992F0 7F0647C0 1041002C */ beq $v0, $at, .L7F064874 +/* 0992F4 7F0647C4 24010016 */ li $at, 22 +/* 0992F8 7F0647C8 14410011 */ bne $v0, $at, .L7F064810 +/* 0992FC 7F0647CC 3C0C8003 */ lui $t4, %hi(D_80035E3C) +/* 099300 7F0647D0 3C0F8003 */ lui $t7, %hi(D_80035E38) +/* 099304 7F0647D4 25EF5E38 */ addiu $t7, %lo(D_80035E38) # addiu $t7, $t7, 0x5e38 +/* 099308 7F0647D8 8DE10000 */ lw $at, ($t7) +/* 09930C 7F0647DC 27A20070 */ addiu $v0, $sp, 0x70 +/* 099310 7F0647E0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099314 7F0647E4 AC410000 */ sw $at, ($v0) +/* 099318 7F0647E8 8FA80078 */ lw $t0, 0x78($sp) +/* 09931C 7F0647EC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099320 7F0647F0 31090001 */ andi $t1, $t0, 1 +/* 099324 7F0647F4 00095040 */ sll $t2, $t1, 1 +/* 099328 7F0647F8 004A5821 */ addu $t3, $v0, $t2 +/* 09932C 7F0647FC 85650000 */ lh $a1, ($t3) +/* 099330 7F064800 0C002382 */ jal play_sfx_a1 +/* 099334 7F064804 AFA6007C */ sw $a2, 0x7c($sp) +/* 099338 7F064808 1000001A */ b .L7F064874 +/* 09933C 7F06480C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064810: +/* 099340 7F064810 27A20028 */ addiu $v0, $sp, 0x28 +/* 099344 7F064814 258C5E3C */ addiu $t4, %lo(D_80035E3C) # addiu $t4, $t4, 0x5e3c +/* 099348 7F064818 25980048 */ addiu $t8, $t4, 0x48 +/* 09934C 7F06481C 00407825 */ move $t7, $v0 +.L7F064820: +/* 099350 7F064820 8D810000 */ lw $at, ($t4) +/* 099354 7F064824 258C000C */ addiu $t4, $t4, 0xc +/* 099358 7F064828 25EF000C */ addiu $t7, $t7, 0xc +/* 09935C 7F06482C ADE1FFF4 */ sw $at, -0xc($t7) +/* 099360 7F064830 8D81FFF8 */ lw $at, -8($t4) +/* 099364 7F064834 ADE1FFF8 */ sw $at, -8($t7) +/* 099368 7F064838 8D81FFFC */ lw $at, -4($t4) +/* 09936C 7F06483C 1598FFF8 */ bne $t4, $t8, .L7F064820 +/* 099370 7F064840 ADE1FFFC */ sw $at, -4($t7) +/* 099374 7F064844 8FB90078 */ lw $t9, 0x78($sp) +/* 099378 7F064848 24010024 */ li $at, 36 +/* 09937C 7F06484C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099380 7F064850 0321001B */ divu $zero, $t9, $at +/* 099384 7F064854 00004010 */ mfhi $t0 +/* 099388 7F064858 00084840 */ sll $t1, $t0, 1 +/* 09938C 7F06485C 00495021 */ addu $t2, $v0, $t1 +/* 099390 7F064860 85450000 */ lh $a1, ($t2) +/* 099394 7F064864 AFA6007C */ sw $a2, 0x7c($sp) +/* 099398 7F064868 0C002382 */ jal play_sfx_a1 +/* 09939C 7F06486C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0993A0 7F064870 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064874: +/* 0993A4 7F064874 8CC40000 */ lw $a0, ($a2) +/* 0993A8 7F064878 10800003 */ beqz $a0, .L7F064888 +/* 0993AC 7F06487C 00000000 */ nop +/* 0993B0 7F064880 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0993B4 7F064884 8FA50084 */ lw $a1, 0x84($sp) +.L7F064888: +/* 0993B8 7F064888 0FC190E8 */ jal sub_GAME_7F0643A0 +/* 0993BC 7F06488C 00000000 */ nop +/* 0993C0 7F064890 10400024 */ beqz $v0, .L7F064924 +/* 0993C4 7F064894 00403025 */ move $a2, $v0 +/* 0993C8 7F064898 8FAB0088 */ lw $t3, 0x88($sp) +/* 0993CC 7F06489C 3C0D8005 */ lui $t5, %hi(image_entries) +/* 0993D0 7F0648A0 05600020 */ bltz $t3, .L7F064924 +/* 0993D4 7F0648A4 000B70C0 */ sll $t6, $t3, 3 +/* 0993D8 7F0648A8 01AE6821 */ addu $t5, $t5, $t6 +/* 0993DC 7F0648AC 8DAD9300 */ lw $t5, %lo(image_entries)($t5) +/* 0993E0 7F0648B0 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 0993E4 7F0648B4 000DC702 */ srl $t8, $t5, 0x1c +/* 0993E8 7F0648B8 00186080 */ sll $t4, $t8, 2 +/* 0993EC 7F0648BC 004C1021 */ addu $v0, $v0, $t4 +/* 0993F0 7F0648C0 8C42E86C */ lw $v0, %lo(D_8004E86C)($v0) +/* 0993F4 7F0648C4 84470008 */ lh $a3, 8($v0) +/* 0993F8 7F0648C8 58E00017 */ blezl $a3, .L7F064928 +/* 0993FC 7F0648CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099400 7F0648D0 1040000F */ beqz $v0, .L7F064910 +/* 099404 7F0648D4 8FAF0074 */ lw $t7, 0x74($sp) +/* 099408 7F0648D8 01E7001B */ divu $zero, $t7, $a3 +/* 09940C 7F0648DC 8C590000 */ lw $t9, ($v0) +/* 099410 7F0648E0 00001810 */ mfhi $v1 +/* 099414 7F0648E4 00034040 */ sll $t0, $v1, 1 +/* 099418 7F0648E8 03284821 */ addu $t1, $t9, $t0 +/* 09941C 7F0648EC 14E00002 */ bnez $a3, .L7F0648F8 +/* 099420 7F0648F0 00000000 */ nop +/* 099424 7F0648F4 0007000D */ break 7 +.L7F0648F8: +/* 099428 7F0648F8 85250000 */ lh $a1, ($t1) +/* 09942C 7F0648FC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099430 7F064900 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099434 7F064904 0C002382 */ jal play_sfx_a1 +/* 099438 7F064908 AFA6007C */ sw $a2, 0x7c($sp) +/* 09943C 7F06490C 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064910: +/* 099440 7F064910 8CC40000 */ lw $a0, ($a2) +/* 099444 7F064914 50800004 */ beql $a0, $zero, .L7F064928 +/* 099448 7F064918 8FBF0014 */ lw $ra, 0x14($sp) +/* 09944C 7F06491C 0FC14E84 */ jal sub_GAME_7F053A10 +/* 099450 7F064920 8FA50084 */ lw $a1, 0x84($sp) +.L7F064924: +/* 099454 7F064924 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064928: +/* 099458 7F064928 27BD0080 */ addiu $sp, $sp, 0x80 +/* 09945C 7F06492C 03E00008 */ jr $ra +/* 099460 7F064930 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_flag +/* 09982C 7F064CBC 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 099830 7F064CC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 099834 7F064CC4 AFA40080 */ sw $a0, 0x80($sp) +/* 099838 7F064CC8 AFA50084 */ sw $a1, 0x84($sp) +/* 09983C 7F064CCC 0C002918 */ jal randomGetNext +/* 099840 7F064CD0 AFA60088 */ sw $a2, 0x88($sp) +/* 099844 7F064CD4 0C002918 */ jal randomGetNext +/* 099848 7F064CD8 AFA20078 */ sw $v0, 0x78($sp) +/* 09984C 7F064CDC 8FAE0088 */ lw $t6, 0x88($sp) +/* 099850 7F064CE0 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 +/* 099854 7F064CE4 AFA20074 */ sw $v0, 0x74($sp) +/* 099858 7F064CE8 0FC246A3 */ jal get_debug_joy2hitsedit_flag +/* 09985C 7F064CEC AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) +/* 099860 7F064CF0 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 099864 7F064CF4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 099868 7F064CF8 59E00061 */ blezl $t7, .L7F064E80 +/* 09986C 7F064CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 099870 7F064D00 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099874 7F064D04 00000000 */ nop +/* 099878 7F064D08 10400035 */ beqz $v0, .L7F064DE0 +/* 09987C 7F064D0C 00403025 */ move $a2, $v0 +/* 099880 7F064D10 8FA20080 */ lw $v0, 0x80($sp) +/* 099884 7F064D14 24010017 */ li $at, 23 +/* 099888 7F064D18 1041002C */ beq $v0, $at, .L7F064DCC +/* 09988C 7F064D1C 24010016 */ li $at, 22 +/* 099890 7F064D20 14410011 */ bne $v0, $at, .L7F064D68 +/* 099894 7F064D24 3C0D8003 */ lui $t5, %hi(D_80035E3C) # $t5, 0x8003 +/* 099898 7F064D28 3C188003 */ lui $t8, %hi(D_80035E38) # $t8, 0x8003 +/* 09989C 7F064D2C 27185E78 */ addiu $t8, %lo(D_80035E38) # addiu $t8, $t8, 0x5e78 +/* 0998A0 7F064D30 8F010000 */ lw $at, ($t8) +/* 0998A4 7F064D34 27A20070 */ addiu $v0, $sp, 0x70 +/* 0998A8 7F064D38 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0998AC 7F064D3C AC410000 */ sw $at, ($v0) +/* 0998B0 7F064D40 8FA90078 */ lw $t1, 0x78($sp) +/* 0998B4 7F064D44 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0998B8 7F064D48 312A0001 */ andi $t2, $t1, 1 +/* 0998BC 7F064D4C 000A5840 */ sll $t3, $t2, 1 +/* 0998C0 7F064D50 004B6021 */ addu $t4, $v0, $t3 +/* 0998C4 7F064D54 85850000 */ lh $a1, ($t4) +/* 0998C8 7F064D58 0C002386 */ jal play_sfx_a1 +/* 0998CC 7F064D5C AFA6007C */ sw $a2, 0x7c($sp) +/* 0998D0 7F064D60 1000001A */ b .L7F064DCC +/* 0998D4 7F064D64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064D68: +/* 0998D8 7F064D68 27A20028 */ addiu $v0, $sp, 0x28 +/* 0998DC 7F064D6C 25AD5E7C */ addiu $t5, %lo(D_80035E3C) # addiu $t5, $t5, 0x5e7c +/* 0998E0 7F064D70 25B90048 */ addiu $t9, $t5, 0x48 +/* 0998E4 7F064D74 0040C025 */ move $t8, $v0 +.L7F064D78: +/* 0998E8 7F064D78 8DA10000 */ lw $at, ($t5) +/* 0998EC 7F064D7C 25AD000C */ addiu $t5, $t5, 0xc +/* 0998F0 7F064D80 2718000C */ addiu $t8, $t8, 0xc +/* 0998F4 7F064D84 AF01FFF4 */ sw $at, -0xc($t8) +/* 0998F8 7F064D88 8DA1FFF8 */ lw $at, -8($t5) +/* 0998FC 7F064D8C AF01FFF8 */ sw $at, -8($t8) +/* 099900 7F064D90 8DA1FFFC */ lw $at, -4($t5) +/* 099904 7F064D94 15B9FFF8 */ bne $t5, $t9, .L7F064D78 +/* 099908 7F064D98 AF01FFFC */ sw $at, -4($t8) +/* 09990C 7F064D9C 8FA80078 */ lw $t0, 0x78($sp) +/* 099910 7F064DA0 24010024 */ li $at, 36 +/* 099914 7F064DA4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 099918 7F064DA8 0101001B */ divu $zero, $t0, $at +/* 09991C 7F064DAC 00004810 */ mfhi $t1 +/* 099920 7F064DB0 00095040 */ sll $t2, $t1, 1 +/* 099924 7F064DB4 004A5821 */ addu $t3, $v0, $t2 +/* 099928 7F064DB8 85650000 */ lh $a1, ($t3) +/* 09992C 7F064DBC AFA6007C */ sw $a2, 0x7c($sp) +/* 099930 7F064DC0 0C002386 */ jal play_sfx_a1 +/* 099934 7F064DC4 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099938 7F064DC8 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064DCC: +/* 09993C 7F064DCC 8CC40000 */ lw $a0, ($a2) +/* 099940 7F064DD0 10800003 */ beqz $a0, .L7F064DE0 +/* 099944 7F064DD4 00000000 */ nop +/* 099948 7F064DD8 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 09994C 7F064DDC 8FA50084 */ lw $a1, 0x84($sp) +.L7F064DE0: +/* 099950 7F064DE0 0FC19233 */ jal sub_GAME_7F0643A0 +/* 099954 7F064DE4 00000000 */ nop +/* 099958 7F064DE8 10400024 */ beqz $v0, .L7F064E7C +/* 09995C 7F064DEC 00403025 */ move $a2, $v0 +/* 099960 7F064DF0 8FAC0088 */ lw $t4, 0x88($sp) +/* 099964 7F064DF4 3C0E8005 */ lui $t6, %hi(image_entries) +/* 099968 7F064DF8 05800020 */ bltz $t4, .L7F064E7C +/* 09996C 7F064DFC 000C78C0 */ sll $t7, $t4, 3 +/* 099970 7F064E00 01CF7021 */ addu $t6, $t6, $t7 +/* 099974 7F064E04 8DCE9330 */ lw $t6, %lo(image_entries)($t6) +/* 099978 7F064E08 3C028005 */ lui $v0, %hi(D_8004E86C) +/* 09997C 7F064E0C 000ECF02 */ srl $t9, $t6, 0x1c +/* 099980 7F064E10 00196880 */ sll $t5, $t9, 2 +/* 099984 7F064E14 004D1021 */ addu $v0, $v0, $t5 +/* 099988 7F064E18 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) +/* 09998C 7F064E1C 84470008 */ lh $a3, 8($v0) +/* 099990 7F064E20 58E00017 */ blezl $a3, .L7F064E80 +/* 099994 7F064E24 8FBF0014 */ lw $ra, 0x14($sp) +/* 099998 7F064E28 1040000F */ beqz $v0, .L7F064E68 +/* 09999C 7F064E2C 8FB80074 */ lw $t8, 0x74($sp) +/* 0999A0 7F064E30 0307001B */ divu $zero, $t8, $a3 +/* 0999A4 7F064E34 8C480000 */ lw $t0, ($v0) +/* 0999A8 7F064E38 00001810 */ mfhi $v1 +/* 0999AC 7F064E3C 00034840 */ sll $t1, $v1, 1 +/* 0999B0 7F064E40 01095021 */ addu $t2, $t0, $t1 +/* 0999B4 7F064E44 14E00002 */ bnez $a3, .L7F064E50 +/* 0999B8 7F064E48 00000000 */ nop +/* 0999BC 7F064E4C 0007000D */ break 7 +.L7F064E50: +/* 0999C0 7F064E50 85450000 */ lh $a1, ($t2) +/* 0999C4 7F064E54 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0999C8 7F064E58 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0999CC 7F064E5C 0C002386 */ jal play_sfx_a1 +/* 0999D0 7F064E60 AFA6007C */ sw $a2, 0x7c($sp) +/* 0999D4 7F064E64 8FA6007C */ lw $a2, 0x7c($sp) +.L7F064E68: +/* 0999D8 7F064E68 8CC40000 */ lw $a0, ($a2) +/* 0999DC 7F064E6C 50800004 */ beql $a0, $zero, .L7F064E80 +/* 0999E0 7F064E70 8FBF0014 */ lw $ra, 0x14($sp) +/* 0999E4 7F064E74 0FC14FC3 */ jal sub_GAME_7F053A10 +/* 0999E8 7F064E78 8FA50084 */ lw $a1, 0x84($sp) +.L7F064E7C: +/* 0999EC 7F064E7C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F064E80: +/* 0999F0 7F064E80 27BD0080 */ addiu $sp, $sp, 0x80 +/* 0999F4 7F064E84 03E00008 */ jr $ra +/* 0999F8 7F064E88 00000000 */ nop +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel recall_joy2_hits_edit_flag +/* 0992A4 7F064774 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 0992A8 7F064778 AFBF0014 */ sw $ra, 0x14($sp) +/* 0992AC 7F06477C AFA40080 */ sw $a0, 0x80($sp) +/* 0992B0 7F064780 AFA50084 */ sw $a1, 0x84($sp) +/* 0992B4 7F064784 0C002914 */ jal randomGetNext +/* 0992B8 7F064788 AFA60088 */ sw $a2, 0x88($sp) +/* 0992BC 7F06478C 0C002914 */ jal randomGetNext /* 0992C0 7F064790 AFA20078 */ sw $v0, 0x78($sp) /* 0992C4 7F064794 8FAE0088 */ lw $t6, 0x88($sp) /* 0992C8 7F064798 3C018005 */ lui $at, %hi(D_800483C4) @@ -12689,137 +15045,6 @@ glabel recall_joy2_hits_edit_flag ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel recall_joy2_hits_edit_flag -/* 09982C 7F064CBC 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 099830 7F064CC0 AFBF0014 */ sw $ra, 0x14($sp) -/* 099834 7F064CC4 AFA40080 */ sw $a0, 0x80($sp) -/* 099838 7F064CC8 AFA50084 */ sw $a1, 0x84($sp) -/* 09983C 7F064CCC 0C002918 */ jal get_random_value -/* 099840 7F064CD0 AFA60088 */ sw $a2, 0x88($sp) -/* 099844 7F064CD4 0C002918 */ jal get_random_value -/* 099848 7F064CD8 AFA20078 */ sw $v0, 0x78($sp) -/* 09984C 7F064CDC 8FAE0088 */ lw $t6, 0x88($sp) -/* 099850 7F064CE0 3C018005 */ lui $at, %hi(D_800483C4) # $at, 0x8005 -/* 099854 7F064CE4 AFA20074 */ sw $v0, 0x74($sp) -/* 099858 7F064CE8 0FC246A3 */ jal get_debug_joy2hitsedit_flag -/* 09985C 7F064CEC AC2E83F8 */ sw $t6, %lo(D_800483C4)($at) -/* 099860 7F064CF0 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 -/* 099864 7F064CF4 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) -/* 099868 7F064CF8 59E00061 */ blezl $t7, .L7F064E80 -/* 09986C 7F064CFC 8FBF0014 */ lw $ra, 0x14($sp) -/* 099870 7F064D00 0FC19233 */ jal sub_GAME_7F0643A0 -/* 099874 7F064D04 00000000 */ nop -/* 099878 7F064D08 10400035 */ beqz $v0, .L7F064DE0 -/* 09987C 7F064D0C 00403025 */ move $a2, $v0 -/* 099880 7F064D10 8FA20080 */ lw $v0, 0x80($sp) -/* 099884 7F064D14 24010017 */ li $at, 23 -/* 099888 7F064D18 1041002C */ beq $v0, $at, .L7F064DCC -/* 09988C 7F064D1C 24010016 */ li $at, 22 -/* 099890 7F064D20 14410011 */ bne $v0, $at, .L7F064D68 -/* 099894 7F064D24 3C0D8003 */ lui $t5, %hi(D_80035E3C) # $t5, 0x8003 -/* 099898 7F064D28 3C188003 */ lui $t8, %hi(D_80035E38) # $t8, 0x8003 -/* 09989C 7F064D2C 27185E78 */ addiu $t8, %lo(D_80035E38) # addiu $t8, $t8, 0x5e78 -/* 0998A0 7F064D30 8F010000 */ lw $at, ($t8) -/* 0998A4 7F064D34 27A20070 */ addiu $v0, $sp, 0x70 -/* 0998A8 7F064D38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0998AC 7F064D3C AC410000 */ sw $at, ($v0) -/* 0998B0 7F064D40 8FA90078 */ lw $t1, 0x78($sp) -/* 0998B4 7F064D44 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0998B8 7F064D48 312A0001 */ andi $t2, $t1, 1 -/* 0998BC 7F064D4C 000A5840 */ sll $t3, $t2, 1 -/* 0998C0 7F064D50 004B6021 */ addu $t4, $v0, $t3 -/* 0998C4 7F064D54 85850000 */ lh $a1, ($t4) -/* 0998C8 7F064D58 0C002386 */ jal play_sfx_a1 -/* 0998CC 7F064D5C AFA6007C */ sw $a2, 0x7c($sp) -/* 0998D0 7F064D60 1000001A */ b .L7F064DCC -/* 0998D4 7F064D64 8FA6007C */ lw $a2, 0x7c($sp) -.L7F064D68: -/* 0998D8 7F064D68 27A20028 */ addiu $v0, $sp, 0x28 -/* 0998DC 7F064D6C 25AD5E7C */ addiu $t5, %lo(D_80035E3C) # addiu $t5, $t5, 0x5e7c -/* 0998E0 7F064D70 25B90048 */ addiu $t9, $t5, 0x48 -/* 0998E4 7F064D74 0040C025 */ move $t8, $v0 -.L7F064D78: -/* 0998E8 7F064D78 8DA10000 */ lw $at, ($t5) -/* 0998EC 7F064D7C 25AD000C */ addiu $t5, $t5, 0xc -/* 0998F0 7F064D80 2718000C */ addiu $t8, $t8, 0xc -/* 0998F4 7F064D84 AF01FFF4 */ sw $at, -0xc($t8) -/* 0998F8 7F064D88 8DA1FFF8 */ lw $at, -8($t5) -/* 0998FC 7F064D8C AF01FFF8 */ sw $at, -8($t8) -/* 099900 7F064D90 8DA1FFFC */ lw $at, -4($t5) -/* 099904 7F064D94 15B9FFF8 */ bne $t5, $t9, .L7F064D78 -/* 099908 7F064D98 AF01FFFC */ sw $at, -4($t8) -/* 09990C 7F064D9C 8FA80078 */ lw $t0, 0x78($sp) -/* 099910 7F064DA0 24010024 */ li $at, 36 -/* 099914 7F064DA4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 099918 7F064DA8 0101001B */ divu $zero, $t0, $at -/* 09991C 7F064DAC 00004810 */ mfhi $t1 -/* 099920 7F064DB0 00095040 */ sll $t2, $t1, 1 -/* 099924 7F064DB4 004A5821 */ addu $t3, $v0, $t2 -/* 099928 7F064DB8 85650000 */ lh $a1, ($t3) -/* 09992C 7F064DBC AFA6007C */ sw $a2, 0x7c($sp) -/* 099930 7F064DC0 0C002386 */ jal play_sfx_a1 -/* 099934 7F064DC4 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 099938 7F064DC8 8FA6007C */ lw $a2, 0x7c($sp) -.L7F064DCC: -/* 09993C 7F064DCC 8CC40000 */ lw $a0, ($a2) -/* 099940 7F064DD0 10800003 */ beqz $a0, .L7F064DE0 -/* 099944 7F064DD4 00000000 */ nop -/* 099948 7F064DD8 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 09994C 7F064DDC 8FA50084 */ lw $a1, 0x84($sp) -.L7F064DE0: -/* 099950 7F064DE0 0FC19233 */ jal sub_GAME_7F0643A0 -/* 099954 7F064DE4 00000000 */ nop -/* 099958 7F064DE8 10400024 */ beqz $v0, .L7F064E7C -/* 09995C 7F064DEC 00403025 */ move $a2, $v0 -/* 099960 7F064DF0 8FAC0088 */ lw $t4, 0x88($sp) -/* 099964 7F064DF4 3C0E8005 */ lui $t6, %hi(image_entries) -/* 099968 7F064DF8 05800020 */ bltz $t4, .L7F064E7C -/* 09996C 7F064DFC 000C78C0 */ sll $t7, $t4, 3 -/* 099970 7F064E00 01CF7021 */ addu $t6, $t6, $t7 -/* 099974 7F064E04 8DCE9330 */ lw $t6, %lo(image_entries)($t6) -/* 099978 7F064E08 3C028005 */ lui $v0, %hi(D_8004E86C) -/* 09997C 7F064E0C 000ECF02 */ srl $t9, $t6, 0x1c -/* 099980 7F064E10 00196880 */ sll $t5, $t9, 2 -/* 099984 7F064E14 004D1021 */ addu $v0, $v0, $t5 -/* 099988 7F064E18 8C42E89C */ lw $v0, %lo(D_8004E86C)($v0) -/* 09998C 7F064E1C 84470008 */ lh $a3, 8($v0) -/* 099990 7F064E20 58E00017 */ blezl $a3, .L7F064E80 -/* 099994 7F064E24 8FBF0014 */ lw $ra, 0x14($sp) -/* 099998 7F064E28 1040000F */ beqz $v0, .L7F064E68 -/* 09999C 7F064E2C 8FB80074 */ lw $t8, 0x74($sp) -/* 0999A0 7F064E30 0307001B */ divu $zero, $t8, $a3 -/* 0999A4 7F064E34 8C480000 */ lw $t0, ($v0) -/* 0999A8 7F064E38 00001810 */ mfhi $v1 -/* 0999AC 7F064E3C 00034840 */ sll $t1, $v1, 1 -/* 0999B0 7F064E40 01095021 */ addu $t2, $t0, $t1 -/* 0999B4 7F064E44 14E00002 */ bnez $a3, .L7F064E50 -/* 0999B8 7F064E48 00000000 */ nop -/* 0999BC 7F064E4C 0007000D */ break 7 -.L7F064E50: -/* 0999C0 7F064E50 85450000 */ lh $a1, ($t2) -/* 0999C4 7F064E54 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0999C8 7F064E58 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0999CC 7F064E5C 0C002386 */ jal play_sfx_a1 -/* 0999D0 7F064E60 AFA6007C */ sw $a2, 0x7c($sp) -/* 0999D4 7F064E64 8FA6007C */ lw $a2, 0x7c($sp) -.L7F064E68: -/* 0999D8 7F064E68 8CC40000 */ lw $a0, ($a2) -/* 0999DC 7F064E6C 50800004 */ beql $a0, $zero, .L7F064E80 -/* 0999E0 7F064E70 8FBF0014 */ lw $ra, 0x14($sp) -/* 0999E4 7F064E74 0FC14FC3 */ jal sub_GAME_7F053A10 -/* 0999E8 7F064E78 8FA50084 */ lw $a1, 0x84($sp) -.L7F064E7C: -/* 0999EC 7F064E7C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F064E80: -/* 0999F0 7F064E80 27BD0080 */ addiu $sp, $sp, 0x80 -/* 0999F4 7F064E84 03E00008 */ jr $ra -/* 0999F8 7F064E88 00000000 */ nop -) -#endif - #endif @@ -12848,15 +15073,15 @@ glabel sub_GAME_7F064934 /* 099490 7F064960 ADC10000 */ sw $at, ($t6) /* 099494 7F064964 95E10008 */ lhu $at, 8($t7) /* 099498 7F064968 ADD90004 */ sw $t9, 4($t6) -/* 09949C 7F06496C 0C002914 */ jal get_random_value +/* 09949C 7F06496C 0C002914 */ jal randomGetNext /* 0994A0 7F064970 A5C10008 */ sh $at, 8($t6) /* 0994A4 7F064974 24010005 */ li $at, 5 /* 0994A8 7F064978 0041001B */ divu $zero, $v0, $at /* 0994AC 7F06497C 00004010 */ mfhi $t0 /* 0994B0 7F064980 00084840 */ sll $t1, $t0, 1 /* 0994B4 7F064984 03A92821 */ addu $a1, $sp, $t1 -/* 0994B8 7F064988 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0994BC 7F06498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0994B8 7F064988 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0994BC 7F06498C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0994C0 7F064990 84A5001C */ lh $a1, 0x1c($a1) /* 0994C4 7F064994 0C002382 */ jal play_sfx_a1 /* 0994C8 7F064998 00003025 */ move $a2, $zero @@ -12889,15 +15114,15 @@ glabel sub_GAME_7F064934 /* 099A34 7F064EC4 ADE10000 */ sw $at, ($t7) /* 099A38 7F064EC8 97010008 */ lhu $at, 8($t8) /* 099A3C 7F064ECC ADE80004 */ sw $t0, 4($t7) -/* 099A40 7F064ED0 0C002918 */ jal get_random_value +/* 099A40 7F064ED0 0C002918 */ jal randomGetNext /* 099A44 7F064ED4 A5E10008 */ sh $at, 8($t7) /* 099A48 7F064ED8 24010005 */ li $at, 5 /* 099A4C 7F064EDC 0041001B */ divu $zero, $v0, $at /* 099A50 7F064EE0 00004810 */ mfhi $t1 /* 099A54 7F064EE4 00095040 */ sll $t2, $t1, 1 /* 099A58 7F064EE8 03AA2821 */ addu $a1, $sp, $t2 -/* 099A5C 7F064EEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 099A60 7F064EF0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 099A5C 7F064EEC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 099A60 7F064EF0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 099A64 7F064EF4 84A5001C */ lh $a1, 0x1c($a1) /* 099A68 7F064EF8 0C002386 */ jal play_sfx_a1 /* 099A6C 7F064EFC 00003025 */ move $a2, $zero @@ -13604,7 +15829,7 @@ Weapon_function_throwable_item: /* 0999A4 7F064E74 10000049 */ b .L7F064F9C /* 0999A8 7F064E78 AE00001C */ sw $zero, 0x1c($s0) Weapon_function_hunting_knife: -/* 0999AC 7F064E7C 0C002914 */ jal get_random_value +/* 0999AC 7F064E7C 0C002914 */ jal randomGetNext /* 0999B0 7F064E80 00000000 */ nop /* 0999B4 7F064E84 30590001 */ andi $t9, $v0, 1 /* 0999B8 7F064E88 17200004 */ bnez $t9, .L7F064E9C @@ -13637,7 +15862,7 @@ Weapon_function_grenades: /* 099A14 7F064EE4 1000002D */ b .L7F064F9C /* 099A18 7F064EE8 AE000020 */ sw $zero, 0x20($s0) Weapon_function_slapper: -/* 099A1C 7F064EEC 0C002914 */ jal get_random_value +/* 099A1C 7F064EEC 0C002914 */ jal randomGetNext /* 099A20 7F064EF0 00000000 */ nop /* 099A24 7F064EF4 304B0001 */ andi $t3, $v0, 1 /* 099A28 7F064EF8 15600004 */ bnez $t3, .L7F064F0C @@ -13798,7 +16023,7 @@ Weapon_shooting_machinegun: /* 099C40 7F065110 51E0002B */ beql $t7, $zero, .L7F0651C0 /* 099C44 7F065114 240E0003 */ li $t6, 3 .L7F065118: -/* 099C48 7F065118 0FC177F3 */ jal get_automatic_firing_rate +/* 099C48 7F065118 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 099C4C 7F06511C 02202025 */ move $a0, $s1 /* 099C50 7F065120 8E0E001C */ lw $t6, 0x1c($s0) /* 099C54 7F065124 01C2001A */ div $zero, $t6, $v0 @@ -13917,7 +16142,7 @@ Weapon_shooting_throwable: /* 099DD8 7F0652A8 00000000 */ nop /* 099DDC 7F0652AC 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc /* 099DE0 7F0652B0 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd -/* 099DE4 7F0652B4 0C003215 */ jal controller_7000C854 +/* 099DE4 7F0652B4 0C003215 */ jal joyRumblePakStart /* 099DE8 7F0652B8 00402025 */ move $a0, $v0 /* 099DEC 7F0652BC 0FC29370 */ jal cur_player_get_control_type /* 099DF0 7F0652C0 00000000 */ nop @@ -13931,7 +16156,7 @@ Weapon_shooting_throwable: /* 099E10 7F0652E0 8FAE0048 */ lw $t6, 0x48($sp) /* 099E14 7F0652E4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc /* 099E18 7F0652E8 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd -/* 099E1C 7F0652EC 0C003215 */ jal controller_7000C854 +/* 099E1C 7F0652EC 0C003215 */ jal joyRumblePakStart /* 099E20 7F0652F0 004E2021 */ addu $a0, $v0, $t6 /* 099E24 7F0652F4 8E18002C */ lw $t8, 0x2c($s0) .L7F0652F8: @@ -13946,7 +16171,7 @@ Weapon_shooting_throwable: /* 099E44 7F065314 02202025 */ move $a0, $s1 /* 099E48 7F065318 55A1008C */ bnel $t5, $at, .L7F06554C /* 099E4C 7F06531C 8E0B0024 */ lw $t3, 0x24($s0) -/* 099E50 7F065320 0FC177FC */ jal get_sound_trigger_rate +/* 099E50 7F065320 0FC177FC */ jal bondwalkItemGetSoundTriggerRate /* 099E54 7F065324 AFA001B4 */ sw $zero, 0x1b4($sp) /* 099E58 7F065328 18400017 */ blez $v0, .L7F065388 /* 099E5C 7F06532C 3C0F8008 */ lui $t7, %hi(pPlayer) @@ -13963,7 +16188,5698 @@ Weapon_shooting_throwable: /* 099E88 7F065358 0182082A */ slt $at, $t4, $v0 /* 099E8C 7F06535C 1020000F */ beqz $at, .L7F06539C /* 099E90 7F065360 00000000 */ nop -/* 099E94 7F065364 0FC177FC */ jal get_sound_trigger_rate +/* 099E94 7F065364 0FC177FC */ jal bondwalkItemGetSoundTriggerRate +/* 099E98 7F065368 02202025 */ move $a0, $s1 +/* 099E9C 7F06536C 3C0D8005 */ lui $t5, %hi(global_timer) +/* 099EA0 7F065370 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 099EA4 7F065374 240F0001 */ li $t7, 1 +/* 099EA8 7F065378 004D7021 */ addu $t6, $v0, $t5 +/* 099EAC 7F06537C AE0E01DC */ sw $t6, 0x1dc($s0) +/* 099EB0 7F065380 10000006 */ b .L7F06539C +/* 099EB4 7F065384 AFAF01B4 */ sw $t7, 0x1b4($sp) +.L7F065388: +/* 099EB8 7F065388 8218000C */ lb $t8, 0xc($s0) +/* 099EBC 7F06538C 24190001 */ li $t9, 1 +/* 099EC0 7F065390 13000002 */ beqz $t8, .L7F06539C +/* 099EC4 7F065394 00000000 */ nop +/* 099EC8 7F065398 AFB901B4 */ sw $t9, 0x1b4($sp) +.L7F06539C: +/* 099ECC 7F06539C 0FC26919 */ jal getPlayerCount +/* 099ED0 7F0653A0 00000000 */ nop +/* 099ED4 7F0653A4 24010001 */ li $at, 1 +/* 099ED8 7F0653A8 5041000A */ beql $v0, $at, .L7F0653D4 +/* 099EDC 7F0653AC 8FAD01B4 */ lw $t5, 0x1b4($sp) +/* 099EE0 7F0653B0 0FC31820 */ jal checkGamePaused +/* 099EE4 7F0653B4 00000000 */ nop +/* 099EE8 7F0653B8 14400063 */ bnez $v0, .L7F065548 +/* 099EEC 7F0653BC 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099EF0 7F0653C0 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099EF4 7F0653C4 8D6C29C4 */ lw $t4, 0x29c4($t3) +/* 099EF8 7F0653C8 55800060 */ bnezl $t4, .L7F06554C +/* 099EFC 7F0653CC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099F00 7F0653D0 8FAD01B4 */ lw $t5, 0x1b4($sp) +.L7F0653D4: +/* 099F04 7F0653D4 51A00035 */ beql $t5, $zero, .L7F0654AC +/* 099F08 7F0653D8 24010017 */ li $at, 23 +/* 099F0C 7F0653DC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F10 7F0653E0 50800008 */ beql $a0, $zero, .L7F065404 +/* 099F14 7F0653E4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F18 7F0653E8 0C00237C */ jal sfxGetArg0Unk3F +/* 099F1C 7F0653EC 00000000 */ nop +/* 099F20 7F0653F0 50400004 */ beql $v0, $zero, .L7F065404 +/* 099F24 7F0653F4 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 099F28 7F0653F8 0C002408 */ jal sfxDeactivate +/* 099F2C 7F0653FC 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 099F30 7F065400 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065404: +/* 099F34 7F065404 10800007 */ beqz $a0, .L7F065424 +/* 099F38 7F065408 00000000 */ nop +/* 099F3C 7F06540C 0C00237C */ jal sfxGetArg0Unk3F +/* 099F40 7F065410 00000000 */ nop +/* 099F44 7F065414 10400003 */ beqz $v0, .L7F065424 +/* 099F48 7F065418 00000000 */ nop +/* 099F4C 7F06541C 0C002408 */ jal sfxDeactivate +/* 099F50 7F065420 8E0401D8 */ lw $a0, 0x1d8($s0) +.L7F065424: +/* 099F54 7F065424 0FC17805 */ jal bondwalkItemGetSound +/* 099F58 7F065428 02202025 */ move $a0, $s1 +/* 099F5C 7F06542C 5040001F */ beql $v0, $zero, .L7F0654AC +/* 099F60 7F065430 24010017 */ li $at, 23 +/* 099F64 7F065434 8E0E01D4 */ lw $t6, 0x1d4($s0) +/* 099F68 7F065438 55C0000D */ bnezl $t6, .L7F065470 +/* 099F6C 7F06543C 8E1801D8 */ lw $t8, 0x1d8($s0) +/* 099F70 7F065440 0FC17805 */ jal bondwalkItemGetSound +/* 099F74 7F065444 02202025 */ move $a0, $s1 +/* 099F78 7F065448 00022C00 */ sll $a1, $v0, 0x10 +/* 099F7C 7F06544C 00057C03 */ sra $t7, $a1, 0x10 +/* 099F80 7F065450 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099F84 7F065454 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099F88 7F065458 01E02825 */ move $a1, $t7 +/* 099F8C 7F06545C 0C002382 */ jal play_sfx_a1 +/* 099F90 7F065460 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 099F94 7F065464 1000000D */ b .L7F06549C +/* 099F98 7F065468 00000000 */ nop +/* 099F9C 7F06546C 8E1801D8 */ lw $t8, 0x1d8($s0) +.L7F065470: +/* 099FA0 7F065470 1700000A */ bnez $t8, .L7F06549C +/* 099FA4 7F065474 00000000 */ nop +/* 099FA8 7F065478 0FC17805 */ jal bondwalkItemGetSound +/* 099FAC 7F06547C 02202025 */ move $a0, $s1 +/* 099FB0 7F065480 00022C00 */ sll $a1, $v0, 0x10 +/* 099FB4 7F065484 0005CC03 */ sra $t9, $a1, 0x10 +/* 099FB8 7F065488 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 099FBC 7F06548C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 099FC0 7F065490 03202825 */ move $a1, $t9 +/* 099FC4 7F065494 0C002382 */ jal play_sfx_a1 +/* 099FC8 7F065498 260601D8 */ addiu $a2, $s0, 0x1d8 +.L7F06549C: +/* 099FCC 7F06549C 3C0B8005 */ lui $t3, %hi(global_timer) +/* 099FD0 7F0654A0 8D6B837C */ lw $t3, %lo(global_timer)($t3) +/* 099FD4 7F0654A4 AE0B01E0 */ sw $t3, 0x1e0($s0) +/* 099FD8 7F0654A8 24010017 */ li $at, 23 +.L7F0654AC: +/* 099FDC 7F0654AC 16210026 */ bne $s1, $at, .L7F065548 +/* 099FE0 7F0654B0 3C0C8003 */ lui $t4, %hi(D_80035E90) +/* 099FE4 7F0654B4 8D8C5E90 */ lw $t4, %lo(D_80035E90)($t4) +/* 099FE8 7F0654B8 0C002914 */ jal randomGetNext +/* 099FEC 7F0654BC AFAC01B0 */ sw $t4, 0x1b0($sp) +/* 099FF0 7F0654C0 304D0001 */ andi $t5, $v0, 1 +/* 099FF4 7F0654C4 000D7040 */ sll $t6, $t5, 1 +/* 099FF8 7F0654C8 03AE2821 */ addu $a1, $sp, $t6 +/* 099FFC 7F0654CC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A000 7F0654D0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A004 7F0654D4 84A501B0 */ lh $a1, 0x1b0($a1) +/* 09A008 7F0654D8 0C002382 */ jal play_sfx_a1 +/* 09A00C 7F0654DC 00003025 */ move $a2, $zero +/* 09A010 7F0654E0 1000001A */ b .L7F06554C +/* 09A014 7F0654E4 8E0B0024 */ lw $t3, 0x24($s0) +.L7F0654E8: +/* 09A018 7F0654E8 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A01C 7F0654EC 24180003 */ li $t8, 3 +/* 09A020 7F0654F0 2419000D */ li $t9, 13 +/* 09A024 7F0654F4 59E00006 */ blezl $t7, .L7F065510 +/* 09A028 7F0654F8 AE190024 */ sw $t9, 0x24($s0) +/* 09A02C 7F0654FC AE180024 */ sw $t8, 0x24($s0) +/* 09A030 7F065500 AE000020 */ sw $zero, 0x20($s0) +/* 09A034 7F065504 10000010 */ b .L7F065548 +/* 09A038 7F065508 AE00001C */ sw $zero, 0x1c($s0) +/* 09A03C 7F06550C AE190024 */ sw $t9, 0x24($s0) +.L7F065510: +/* 09A040 7F065510 AE000020 */ sw $zero, 0x20($s0) +/* 09A044 7F065514 0FC26919 */ jal getPlayerCount +/* 09A048 7F065518 AE00001C */ sw $zero, 0x1c($s0) +/* 09A04C 7F06551C 24010001 */ li $at, 1 +/* 09A050 7F065520 10410004 */ beq $v0, $at, .L7F065534 +/* 09A054 7F065524 00000000 */ nop +/* 09A058 7F065528 0FC31820 */ jal checkGamePaused +/* 09A05C 7F06552C 00000000 */ nop +/* 09A060 7F065530 14400005 */ bnez $v0, .L7F065548 +.L7F065534: +/* 09A064 7F065534 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A068 7F065538 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A06C 7F06553C 24050059 */ li $a1, 89 +/* 09A070 7F065540 0C002382 */ jal play_sfx_a1 +/* 09A074 7F065544 00003025 */ move $a2, $zero +.L7F065548: +/* 09A078 7F065548 8E0B0024 */ lw $t3, 0x24($s0) +.L7F06554C: +/* 09A07C 7F06554C 24010003 */ li $at, 3 +/* 09A080 7F065550 156100D5 */ bne $t3, $at, .L7F0658A8 +/* 09A084 7F065554 2401001F */ li $at, 31 +/* 09A088 7F065558 16210013 */ bne $s1, $at, .L7F0655A8 +/* 09A08C 7F06555C 00000000 */ nop +/* 09A090 7F065560 8E0C0020 */ lw $t4, 0x20($s0) +/* 09A094 7F065564 3C048003 */ lui $a0, %hi(D_80035B68) +/* 09A098 7F065568 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 09A09C 7F06556C 448C4000 */ mtc1 $t4, $f8 +/* 09A0A0 7F065570 2606007C */ addiu $a2, $s0, 0x7c +/* 09A0A4 7F065574 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09A0A8 7F065578 46804020 */ cvt.s.w $f0, $f8 +/* 09A0AC 7F06557C 44050000 */ mfc1 $a1, $f0 +/* 09A0B0 7F065580 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09A0B4 7F065584 00000000 */ nop +/* 09A0B8 7F065588 10400003 */ beqz $v0, .L7F065598 +/* 09A0BC 7F06558C 240D0001 */ li $t5, 1 +/* 09A0C0 7F065590 100000C5 */ b .L7F0658A8 +/* 09A0C4 7F065594 AE0D00BC */ sw $t5, 0xbc($s0) +.L7F065598: +/* 09A0C8 7F065598 AE000024 */ sw $zero, 0x24($s0) +/* 09A0CC 7F06559C AE000020 */ sw $zero, 0x20($s0) +/* 09A0D0 7F0655A0 100000C1 */ b .L7F0658A8 +/* 09A0D4 7F0655A4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0655A8: +/* 09A0D8 7F0655A8 0FC1722D */ jal get_ptr_item_statistics +/* 09A0DC 7F0655AC 02202025 */ move $a0, $s1 +/* 09A0E0 7F0655B0 8E050018 */ lw $a1, 0x18($s0) +/* 09A0E4 7F0655B4 00405025 */ move $t2, $v0 +/* 09A0E8 7F0655B8 80470044 */ lb $a3, 0x44($v0) +/* 09A0EC 7F0655BC 10A00006 */ beqz $a1, .L7F0655D8 +/* 09A0F0 7F0655C0 80490045 */ lb $t1, 0x45($v0) +/* 09A0F4 7F0655C4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A0F8 7F0655C8 00E97821 */ addu $t7, $a3, $t1 +/* 09A0FC 7F0655CC 01CF082A */ slt $at, $t6, $t7 +/* 09A100 7F0655D0 5020000C */ beql $at, $zero, .L7F065604 +/* 09A104 7F0655D4 AE000024 */ sw $zero, 0x24($s0) +.L7F0655D8: +/* 09A108 7F0655D8 80440023 */ lb $a0, 0x23($v0) +/* 09A10C 7F0655DC 8E030020 */ lw $v1, 0x20($s0) +/* 09A110 7F0655E0 00E94021 */ addu $t0, $a3, $t1 +/* 09A114 7F0655E4 0480000A */ bltz $a0, .L7F065610 +/* 09A118 7F0655E8 00000000 */ nop +/* 09A11C 7F0655EC 14A00008 */ bnez $a1, .L7F065610 +/* 09A120 7F0655F0 0104C021 */ addu $t8, $t0, $a0 +/* 09A124 7F0655F4 0078082A */ slt $at, $v1, $t8 +/* 09A128 7F0655F8 14200005 */ bnez $at, .L7F065610 +/* 09A12C 7F0655FC 00000000 */ nop +/* 09A130 7F065600 AE000024 */ sw $zero, 0x24($s0) +.L7F065604: +/* 09A134 7F065604 AE000020 */ sw $zero, 0x20($s0) +/* 09A138 7F065608 100000A7 */ b .L7F0658A8 +/* 09A13C 7F06560C AE00001C */ sw $zero, 0x1c($s0) +.L7F065610: +/* 09A140 7F065610 50A00017 */ beql $a1, $zero, .L7F065670 +/* 09A144 7F065614 0068082A */ slt $at, $v1, $t0 +/* 09A148 7F065618 8E190010 */ lw $t9, 0x10($s0) +/* 09A14C 7F06561C 53200014 */ beql $t9, $zero, .L7F065670 +/* 09A150 7F065620 0068082A */ slt $at, $v1, $t0 +/* 09A154 7F065624 80460046 */ lb $a2, 0x46($v0) +/* 09A158 7F065628 0066082A */ slt $at, $v1, $a2 +/* 09A15C 7F06562C 54200010 */ bnezl $at, .L7F065670 +/* 09A160 7F065630 0068082A */ slt $at, $v1, $t0 +/* 09A164 7F065634 80440047 */ lb $a0, 0x47($v0) +/* 09A168 7F065638 0480000C */ bltz $a0, .L7F06566C +/* 09A16C 7F06563C 00642821 */ addu $a1, $v1, $a0 +/* 09A170 7F065640 00A8082A */ slt $at, $a1, $t0 +/* 09A174 7F065644 10200009 */ beqz $at, .L7F06566C +/* 09A178 7F065648 00A6082A */ slt $at, $a1, $a2 +/* 09A17C 7F06564C 14200007 */ bnez $at, .L7F06566C +/* 09A180 7F065650 240B0004 */ li $t3, 4 +/* 09A184 7F065654 AE0B0024 */ sw $t3, 0x24($s0) +/* 09A188 7F065658 AE000020 */ sw $zero, 0x20($s0) +/* 09A18C 7F06565C AE00001C */ sw $zero, 0x1c($s0) +/* 09A190 7F065660 804C0047 */ lb $t4, 0x47($v0) +/* 09A194 7F065664 10000090 */ b .L7F0658A8 +/* 09A198 7F065668 AE0C0038 */ sw $t4, 0x38($s0) +.L7F06566C: +/* 09A19C 7F06566C 0068082A */ slt $at, $v1, $t0 +.L7F065670: +/* 09A1A0 7F065670 1020008D */ beqz $at, .L7F0658A8 +/* 09A1A4 7F065674 260D007C */ addiu $t5, $s0, 0x7c +/* 09A1A8 7F065678 C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A1AC 7F06567C C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A1B0 7F065680 1460000A */ bnez $v1, .L7F0656AC +/* 09A1B4 7F065684 AFAD0030 */ sw $t5, 0x30($sp) +/* 09A1B8 7F065688 C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A1BC 7F06568C C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A1C0 7F065690 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A1C4 7F065694 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A1C8 7F065698 8E030020 */ lw $v1, 0x20($s0) +/* 09A1CC 7F06569C E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A1D0 7F0656A0 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A1D4 7F0656A4 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A1D8 7F0656A8 E6080054 */ swc1 $f8, 0x54($s0) +.L7F0656AC: +/* 09A1DC 7F0656AC 0067082A */ slt $at, $v1, $a3 +/* 09A1E0 7F0656B0 1020002B */ beqz $at, .L7F065760 +/* 09A1E4 7F0656B4 3C018005 */ lui $at, %hi(D_80054170) +/* 09A1E8 7F0656B8 C42C4170 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A1EC 7F0656BC 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A1F0 7F0656C0 44812000 */ mtc1 $at, $f4 +/* 09A1F4 7F0656C4 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A1F8 7F0656C8 46045183 */ div.s $f6, $f10, $f4 +/* 09A1FC 7F0656CC 46066201 */ sub.s $f8, $f12, $f6 +/* 09A200 7F0656D0 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A204 7F0656D4 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A208 7F0656D8 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A20C 7F0656DC AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A210 7F0656E0 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A214 7F0656E4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A218 7F0656E8 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A21C 7F0656EC C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A220 7F0656F0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A224 7F0656F4 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A228 7F0656F8 44817000 */ mtc1 $at, $f14 +/* 09A22C 7F0656FC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A230 7F065700 44805000 */ mtc1 $zero, $f10 +/* 09A234 7F065704 46022182 */ mul.s $f6, $f4, $f2 +/* 09A238 7F065708 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A23C 7F06570C E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A240 7F065710 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A244 7F065714 3C018005 */ lui $at, %hi(D_80054174) +/* 09A248 7F065718 460E3203 */ div.s $f8, $f6, $f14 +/* 09A24C 7F06571C C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A250 7F065720 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A254 7F065724 C544000C */ lwc1 $f4, 0xc($t2) +/* 09A258 7F065728 46062201 */ sub.s $f8, $f4, $f6 +/* 09A25C 7F06572C 448E3000 */ mtc1 $t6, $f6 +/* 09A260 7F065730 46024282 */ mul.s $f10, $f8, $f2 +/* 09A264 7F065734 46803220 */ cvt.s.w $f8, $f6 +/* 09A268 7F065738 44873000 */ mtc1 $a3, $f6 +/* 09A26C 7F06573C 460E5103 */ div.s $f4, $f10, $f14 +/* 09A270 7F065740 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A274 7F065744 C42A4174 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A278 7F065748 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A27C 7F06574C 46803220 */ cvt.s.w $f8, $f6 +/* 09A280 7F065750 0FC15FAB */ jal sinf +/* 09A284 7F065754 46082303 */ div.s $f12, $f4, $f8 +/* 09A288 7F065758 10000032 */ b .L7F065824 +/* 09A28C 7F06575C 46000086 */ mov.s $f2, $f0 +.L7F065760: +/* 09A290 7F065760 3C018005 */ lui $at, %hi(D_80054178) +/* 09A294 7F065764 C42C4178 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A298 7F065768 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A29C 7F06576C 44813000 */ mtc1 $at, $f6 +/* 09A2A0 7F065770 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A2A4 7F065774 46065103 */ div.s $f4, $f10, $f6 +/* 09A2A8 7F065778 46046201 */ sub.s $f8, $f12, $f4 +/* 09A2AC 7F06577C E6080068 */ swc1 $f8, 0x68($s0) +/* 09A2B0 7F065780 E7A20198 */ swc1 $f2, 0x198($sp) +/* 09A2B4 7F065784 AFAA01A8 */ sw $t2, 0x1a8($sp) +/* 09A2B8 7F065788 AFA901A0 */ sw $t1, 0x1a0($sp) +/* 09A2BC 7F06578C AFA701A4 */ sw $a3, 0x1a4($sp) +/* 09A2C0 7F065790 0FC1773A */ jal sub_GAME_7F05DCE8 +/* 09A2C4 7F065794 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A2C8 7F065798 C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A2CC 7F06579C C7A20198 */ lwc1 $f2, 0x198($sp) +/* 09A2D0 7F0657A0 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A2D4 7F0657A4 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A2D8 7F0657A8 44817000 */ mtc1 $at, $f14 +/* 09A2DC 7F0657AC 8FAA01A8 */ lw $t2, 0x1a8($sp) +/* 09A2E0 7F0657B0 44805000 */ mtc1 $zero, $f10 +/* 09A2E4 7F0657B4 46023102 */ mul.s $f4, $f6, $f2 +/* 09A2E8 7F0657B8 8FA701A4 */ lw $a3, 0x1a4($sp) +/* 09A2EC 7F0657BC 8FA901A0 */ lw $t1, 0x1a0($sp) +/* 09A2F0 7F0657C0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A2F4 7F0657C4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A2F8 7F0657C8 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A2FC 7F0657CC 460E2203 */ div.s $f8, $f4, $f14 +/* 09A300 7F0657D0 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A304 7F0657D4 01E7C023 */ subu $t8, $t7, $a3 +/* 09A308 7F0657D8 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A30C 7F0657DC C546000C */ lwc1 $f6, 0xc($t2) +/* 09A310 7F0657E0 46043201 */ sub.s $f8, $f6, $f4 +/* 09A314 7F0657E4 44982000 */ mtc1 $t8, $f4 +/* 09A318 7F0657E8 46024282 */ mul.s $f10, $f8, $f2 +/* 09A31C 7F0657EC 46802220 */ cvt.s.w $f8, $f4 +/* 09A320 7F0657F0 44892000 */ mtc1 $t1, $f4 +/* 09A324 7F0657F4 460E5183 */ div.s $f6, $f10, $f14 +/* 09A328 7F0657F8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A32C 7F0657FC C42A417C */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A330 7F065800 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A334 7F065804 46802220 */ cvt.s.w $f8, $f4 +/* 09A338 7F065808 0FC15FA8 */ jal cosf +/* 09A33C 7F06580C 46083303 */ div.s $f12, $f6, $f8 +/* 09A340 7F065810 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A344 7F065814 44815000 */ mtc1 $at, $f10 +/* 09A348 7F065818 44813000 */ mtc1 $at, $f6 +/* 09A34C 7F06581C 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A350 7F065820 46062080 */ add.s $f2, $f4, $f6 +.L7F065824: +/* 09A354 7F065824 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A358 7F065828 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A35C 7F06582C 44061000 */ mfc1 $a2, $f2 +/* 09A360 7F065830 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A364 7F065834 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09A368 7F065838 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A36C 7F06583C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A370 7F065840 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09A374 7F065844 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A378 7F065848 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A37C 7F06584C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A380 7F065850 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A384 7F065854 24190001 */ li $t9, 1 +/* 09A388 7F065858 46025102 */ mul.s $f4, $f10, $f2 +/* 09A38C 7F06585C 46104281 */ sub.s $f10, $f8, $f16 +/* 09A390 7F065860 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A394 7F065864 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A398 7F065868 AE1900BC */ sw $t9, 0xbc($s0) +/* 09A39C 7F06586C 46000306 */ mov.s $f12, $f0 +/* 09A3A0 7F065870 460E2180 */ add.s $f6, $f4, $f14 +/* 09A3A4 7F065874 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3A8 7F065878 46124281 */ sub.s $f10, $f8, $f18 +/* 09A3AC 7F06587C E606006C */ swc1 $f6, 0x6c($s0) +/* 09A3B0 7F065880 46102180 */ add.s $f6, $f4, $f16 +/* 09A3B4 7F065884 46025102 */ mul.s $f4, $f10, $f2 +/* 09A3B8 7F065888 E6060070 */ swc1 $f6, 0x70($s0) +/* 09A3BC 7F06588C 46122180 */ add.s $f6, $f4, $f18 +/* 09A3C0 7F065890 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A3C4 7F065894 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A3C8 7F065898 8FA50030 */ lw $a1, 0x30($sp) +/* 09A3CC 7F06589C 2604006C */ addiu $a0, $s0, 0x6c +/* 09A3D0 7F0658A0 0FC16266 */ jal matrix_4x4_set_position +/* 09A3D4 7F0658A4 8FA50030 */ lw $a1, 0x30($sp) +.L7F0658A8: +/* 09A3D8 7F0658A8 8E020024 */ lw $v0, 0x24($s0) +/* 09A3DC 7F0658AC 24010004 */ li $at, 4 +/* 09A3E0 7F0658B0 54410053 */ bnel $v0, $at, .L7F065A00 +/* 09A3E4 7F0658B4 2401000D */ li $at, 13 +/* 09A3E8 7F0658B8 8E030020 */ lw $v1, 0x20($s0) +/* 09A3EC 7F0658BC 54600013 */ bnezl $v1, .L7F06590C +/* 09A3F0 7F0658C0 8E020038 */ lw $v0, 0x38($s0) +/* 09A3F4 7F0658C4 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A3F8 7F0658C8 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A3FC 7F0658CC C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A400 7F0658D0 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A404 7F0658D4 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A408 7F0658D8 E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A40C 7F0658DC E6040050 */ swc1 $f4, 0x50($s0) +/* 09A410 7F0658E0 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A414 7F0658E4 44804000 */ mtc1 $zero, $f8 +/* 09A418 7F0658E8 44805000 */ mtc1 $zero, $f10 +/* 09A41C 7F0658EC 44802000 */ mtc1 $zero, $f4 +/* 09A420 7F0658F0 44803000 */ mtc1 $zero, $f6 +/* 09A424 7F0658F4 8E030020 */ lw $v1, 0x20($s0) +/* 09A428 7F0658F8 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A42C 7F0658FC E60A005C */ swc1 $f10, 0x5c($s0) +/* 09A430 7F065900 E6040060 */ swc1 $f4, 0x60($s0) +/* 09A434 7F065904 E6060064 */ swc1 $f6, 0x64($s0) +/* 09A438 7F065908 8E020038 */ lw $v0, 0x38($s0) +.L7F06590C: +/* 09A43C 7F06590C 0062082A */ slt $at, $v1, $v0 +/* 09A440 7F065910 10200036 */ beqz $at, .L7F0659EC +/* 09A444 7F065914 00435823 */ subu $t3, $v0, $v1 +/* 09A448 7F065918 448B4000 */ mtc1 $t3, $f8 +/* 09A44C 7F06591C 3C018005 */ lui $at, %hi(D_80054180) +/* 09A450 7F065920 C4244180 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09A454 7F065924 468042A0 */ cvt.s.w $f10, $f8 +/* 09A458 7F065928 44824000 */ mtc1 $v0, $f8 +/* 09A45C 7F06592C 260C007C */ addiu $t4, $s0, 0x7c +/* 09A460 7F065930 260D006C */ addiu $t5, $s0, 0x6c +/* 09A464 7F065934 AFAD0034 */ sw $t5, 0x34($sp) +/* 09A468 7F065938 AFAC0030 */ sw $t4, 0x30($sp) +/* 09A46C 7F06593C 46045182 */ mul.s $f6, $f10, $f4 +/* 09A470 7F065940 468042A0 */ cvt.s.w $f10, $f8 +/* 09A474 7F065944 0FC15FA8 */ jal cosf +/* 09A478 7F065948 460A3303 */ div.s $f12, $f6, $f10 +/* 09A47C 7F06594C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A480 7F065950 44818000 */ mtc1 $at, $f16 +/* 09A484 7F065954 00000000 */ nop +/* 09A488 7F065958 46100102 */ mul.s $f4, $f0, $f16 +/* 09A48C 7F06595C 46102080 */ add.s $f2, $f4, $f16 +/* 09A490 7F065960 E7A2018C */ swc1 $f2, 0x18c($sp) +/* 09A494 7F065964 44061000 */ mfc1 $a2, $f2 +/* 09A498 7F065968 C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A49C 7F06596C 0FC1B433 */ jal sub_GAME_7F06D0CC +/* 09A4A0 7F065970 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A4A4 7F065974 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A4A8 7F065978 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A4AC 7F06597C C7A2018C */ lwc1 $f2, 0x18c($sp) +/* 09A4B0 7F065980 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A4B4 7F065984 460E4181 */ sub.s $f6, $f8, $f14 +/* 09A4B8 7F065988 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A4BC 7F06598C C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A4C0 7F065990 240E0001 */ li $t6, 1 +/* 09A4C4 7F065994 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4C8 7F065998 46104181 */ sub.s $f6, $f8, $f16 +/* 09A4CC 7F06599C C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A4D0 7F0659A0 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A4D4 7F0659A4 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A4D8 7F0659A8 46000306 */ mov.s $f12, $f0 +/* 09A4DC 7F0659AC 460E5100 */ add.s $f4, $f10, $f14 +/* 09A4E0 7F0659B0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4E4 7F0659B4 46124181 */ sub.s $f6, $f8, $f18 +/* 09A4E8 7F0659B8 E604006C */ swc1 $f4, 0x6c($s0) +/* 09A4EC 7F0659BC 46105100 */ add.s $f4, $f10, $f16 +/* 09A4F0 7F0659C0 46023282 */ mul.s $f10, $f6, $f2 +/* 09A4F4 7F0659C4 E6040070 */ swc1 $f4, 0x70($s0) +/* 09A4F8 7F0659C8 46125100 */ add.s $f4, $f10, $f18 +/* 09A4FC 7F0659CC E6040074 */ swc1 $f4, 0x74($s0) +/* 09A500 7F0659D0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A504 7F0659D4 8FA50030 */ lw $a1, 0x30($sp) +/* 09A508 7F0659D8 8FA40034 */ lw $a0, 0x34($sp) +/* 09A50C 7F0659DC 0FC16266 */ jal matrix_4x4_set_position +/* 09A510 7F0659E0 8FA50030 */ lw $a1, 0x30($sp) +/* 09A514 7F0659E4 10000005 */ b .L7F0659FC +/* 09A518 7F0659E8 8E020024 */ lw $v0, 0x24($s0) +.L7F0659EC: +/* 09A51C 7F0659EC AE000024 */ sw $zero, 0x24($s0) +/* 09A520 7F0659F0 AE000020 */ sw $zero, 0x20($s0) +/* 09A524 7F0659F4 AE00001C */ sw $zero, 0x1c($s0) +/* 09A528 7F0659F8 00001025 */ move $v0, $zero +.L7F0659FC: +/* 09A52C 7F0659FC 2401000D */ li $at, 13 +.L7F065A00: +/* 09A530 7F065A00 54410013 */ bnel $v0, $at, .L7F065A50 +/* 09A534 7F065A04 8E020024 */ lw $v0, 0x24($s0) +/* 09A538 7F065A08 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A53C 7F065A0C 55E00004 */ bnezl $t7, .L7F065A20 +/* 09A540 7F065A10 8E050018 */ lw $a1, 0x18($s0) +/* 09A544 7F065A14 0FC17A02 */ jal sub_GAME_7F05E808 +/* 09A548 7F065A18 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A54C 7F065A1C 8E050018 */ lw $a1, 0x18($s0) +.L7F065A20: +/* 09A550 7F065A20 54A00008 */ bnezl $a1, .L7F065A44 +/* 09A554 7F065A24 AE000024 */ sw $zero, 0x24($s0) +/* 09A558 7F065A28 54A00009 */ bnezl $a1, .L7F065A50 +/* 09A55C 7F065A2C 8E020024 */ lw $v0, 0x24($s0) +/* 09A560 7F065A30 8E180020 */ lw $t8, 0x20($s0) +/* 09A564 7F065A34 2B010014 */ slti $at, $t8, 0x14 +/* 09A568 7F065A38 54200005 */ bnezl $at, .L7F065A50 +/* 09A56C 7F065A3C 8E020024 */ lw $v0, 0x24($s0) +/* 09A570 7F065A40 AE000024 */ sw $zero, 0x24($s0) +.L7F065A44: +/* 09A574 7F065A44 AE000020 */ sw $zero, 0x20($s0) +/* 09A578 7F065A48 AE00001C */ sw $zero, 0x1c($s0) +/* 09A57C 7F065A4C 8E020024 */ lw $v0, 0x24($s0) +.L7F065A50: +/* 09A580 7F065A50 24050005 */ li $a1, 5 +/* 09A584 7F065A54 24040010 */ li $a0, 16 +/* 09A588 7F065A58 54A2005E */ bnel $a1, $v0, .L7F065BD4 +/* 09A58C 7F065A5C 24060006 */ li $a2, 6 +/* 09A590 7F065A60 0FC26919 */ jal getPlayerCount +/* 09A594 7F065A64 AFA40188 */ sw $a0, 0x188($sp) +/* 09A598 7F065A68 28410002 */ slti $at, $v0, 2 +/* 09A59C 7F065A6C 14200002 */ bnez $at, .L7F065A78 +/* 09A5A0 7F065A70 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5A4 7F065A74 2404000C */ li $a0, 12 +.L7F065A78: +/* 09A5A8 7F065A78 8E19001C */ lw $t9, 0x1c($s0) +/* 09A5AC 7F065A7C 5720000C */ bnezl $t9, .L7F065AB0 +/* 09A5B0 7F065A80 8E030020 */ lw $v1, 0x20($s0) +/* 09A5B4 7F065A84 0FC26919 */ jal getPlayerCount +/* 09A5B8 7F065A88 AFA40188 */ sw $a0, 0x188($sp) +/* 09A5BC 7F065A8C 24010001 */ li $at, 1 +/* 09A5C0 7F065A90 14410004 */ bne $v0, $at, .L7F065AA4 +/* 09A5C4 7F065A94 8FA40188 */ lw $a0, 0x188($sp) +/* 09A5C8 7F065A98 240B0011 */ li $t3, 17 +/* 09A5CC 7F065A9C 10000003 */ b .L7F065AAC +/* 09A5D0 7F065AA0 AE0B0040 */ sw $t3, 0x40($s0) +.L7F065AA4: +/* 09A5D4 7F065AA4 240C000D */ li $t4, 13 +/* 09A5D8 7F065AA8 AE0C0040 */ sw $t4, 0x40($s0) +.L7F065AAC: +/* 09A5DC 7F065AAC 8E030020 */ lw $v1, 0x20($s0) +.L7F065AB0: +/* 09A5E0 7F065AB0 0064082A */ slt $at, $v1, $a0 +/* 09A5E4 7F065AB4 54200026 */ bnezl $at, .L7F065B50 +/* 09A5E8 7F065AB8 44834000 */ mtc1 $v1, $f8 +/* 09A5EC 7F065ABC 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09A5F0 7F065AC0 02202025 */ move $a0, $s1 +/* 09A5F4 7F065AC4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A5F8 7F065AC8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A5FC 7F065ACC 00027080 */ sll $t6, $v0, 2 +/* 09A600 7F065AD0 8E18002C */ lw $t8, 0x2c($s0) +/* 09A604 7F065AD4 01AE1821 */ addu $v1, $t5, $t6 +/* 09A608 7F065AD8 8C6F1130 */ lw $t7, 0x1130($v1) +/* 09A60C 7F065ADC 01F8C821 */ addu $t9, $t7, $t8 +/* 09A610 7F065AE0 AC791130 */ sw $t9, 0x1130($v1) +/* 09A614 7F065AE4 0FC26919 */ jal getPlayerCount +/* 09A618 7F065AE8 AE00002C */ sw $zero, 0x2c($s0) +/* 09A61C 7F065AEC 28410002 */ slti $at, $v0, 2 +/* 09A620 7F065AF0 14200003 */ bnez $at, .L7F065B00 +/* 09A624 7F065AF4 00000000 */ nop +/* 09A628 7F065AF8 0FC26CDA */ jal sub_GAME_7F09B368 +/* 09A62C 7F065AFC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065B00: +/* 09A630 7F065B00 0FC17EC0 */ jal sub_GAME_7F05FB00 +/* 09A634 7F065B04 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A638 7F065B08 240B0006 */ li $t3, 6 +/* 09A63C 7F065B0C AE0B0024 */ sw $t3, 0x24($s0) +/* 09A640 7F065B10 0FC230F0 */ jal check_if_item_available +/* 09A644 7F065B14 24040011 */ li $a0, 17 +/* 09A648 7F065B18 10400006 */ beqz $v0, .L7F065B34 +/* 09A64C 7F065B1C 24050005 */ li $a1, 5 +/* 09A650 7F065B20 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A654 7F065B24 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A658 7F065B28 240C0011 */ li $t4, 17 +/* 09A65C 7F065B2C 10000005 */ b .L7F065B44 +/* 09A660 7F065B30 ADAC2A38 */ sw $t4, 0x2a38($t5) +.L7F065B34: +/* 09A664 7F065B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A668 7F065B38 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A66C 7F065B3C 240E0001 */ li $t6, 1 +/* 09A670 7F065B40 ADEE2A38 */ sw $t6, 0x2a38($t7) +.L7F065B44: +/* 09A674 7F065B44 10000022 */ b .L7F065BD0 +/* 09A678 7F065B48 8E020024 */ lw $v0, 0x24($s0) +/* 09A67C 7F065B4C 44834000 */ mtc1 $v1, $f8 +.L7F065B50: +/* 09A680 7F065B50 3C018005 */ lui $at, %hi(D_80054184) +/* 09A684 7F065B54 C42A4184 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09A688 7F065B58 468041A0 */ cvt.s.w $f6, $f8 +/* 09A68C 7F065B5C 44844000 */ mtc1 $a0, $f8 +/* 09A690 7F065B60 24180001 */ li $t8, 1 +/* 09A694 7F065B64 AE1800BC */ sw $t8, 0xbc($s0) +/* 09A698 7F065B68 2605007C */ addiu $a1, $s0, 0x7c +/* 09A69C 7F065B6C 460A3102 */ mul.s $f4, $f6, $f10 +/* 09A6A0 7F065B70 468041A0 */ cvt.s.w $f6, $f8 +/* 09A6A4 7F065B74 46062303 */ div.s $f12, $f4, $f6 +/* 09A6A8 7F065B78 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A6AC 7F065B7C E7AC0184 */ swc1 $f12, 0x184($sp) +/* 09A6B0 7F065B80 44805000 */ mtc1 $zero, $f10 +/* 09A6B4 7F065B84 00000000 */ nop +/* 09A6B8 7F065B88 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09A6BC 7F065B8C 0FC15FA8 */ jal cosf +/* 09A6C0 7F065B90 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6C4 7F065B94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A6C8 7F065B98 44814000 */ mtc1 $at, $f8 +/* 09A6CC 7F065B9C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A6D0 7F065BA0 44813000 */ mtc1 $at, $f6 +/* 09A6D4 7F065BA4 46004101 */ sub.s $f4, $f8, $f0 +/* 09A6D8 7F065BA8 46062282 */ mul.s $f10, $f4, $f6 +/* 09A6DC 7F065BAC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09A6E0 7F065BB0 0FC15FAB */ jal sinf +/* 09A6E4 7F065BB4 C7AC0184 */ lwc1 $f12, 0x184($sp) +/* 09A6E8 7F065BB8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A6EC 7F065BBC 44814000 */ mtc1 $at, $f8 +/* 09A6F0 7F065BC0 8E020024 */ lw $v0, 0x24($s0) +/* 09A6F4 7F065BC4 24050005 */ li $a1, 5 +/* 09A6F8 7F065BC8 46080102 */ mul.s $f4, $f0, $f8 +/* 09A6FC 7F065BCC E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F065BD0: +/* 09A700 7F065BD0 24060006 */ li $a2, 6 +.L7F065BD4: +/* 09A704 7F065BD4 10C20003 */ beq $a2, $v0, .L7F065BE4 +/* 09A708 7F065BD8 24010007 */ li $at, 7 +/* 09A70C 7F065BDC 54410066 */ bnel $v0, $at, .L7F065D78 +/* 09A710 7F065BE0 24010008 */ li $at, 8 +.L7F065BE4: +/* 09A714 7F065BE4 8E190044 */ lw $t9, 0x44($s0) +/* 09A718 7F065BE8 13200006 */ beqz $t9, .L7F065C04 +/* 09A71C 7F065BEC 00000000 */ nop +/* 09A720 7F065BF0 8E0B0020 */ lw $t3, 0x20($s0) +/* 09A724 7F065BF4 8E0C0040 */ lw $t4, 0x40($s0) +/* 09A728 7F065BF8 016C082A */ slt $at, $t3, $t4 +/* 09A72C 7F065BFC 5420003E */ bnezl $at, .L7F065CF8 +/* 09A730 7F065C00 8E020024 */ lw $v0, 0x24($s0) +.L7F065C04: +/* 09A734 7F065C04 14C20034 */ bne $a2, $v0, .L7F065CD8 +/* 09A738 7F065C08 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 09A73C 7F065C0C 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 09A740 7F065C10 8FAE0038 */ lw $t6, 0x38($sp) +/* 09A744 7F065C14 01AE1823 */ subu $v1, $t5, $t6 +/* 09A748 7F065C18 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09A74C 7F065C1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09A750 7F065C20 50C20025 */ beql $a2, $v0, .L7F065CB8 +/* 09A754 7F065C24 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A758 7F065C28 50A20023 */ beql $a1, $v0, .L7F065CB8 +/* 09A75C 7F065C2C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A760 7F065C30 8C640028 */ lw $a0, 0x28($v1) +/* 09A764 7F065C34 2401000E */ li $at, 14 +/* 09A768 7F065C38 50A4001F */ beql $a1, $a0, .L7F065CB8 +/* 09A76C 7F065C3C 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A770 7F065C40 1041001C */ beq $v0, $at, .L7F065CB4 +/* 09A774 7F065C44 2401000F */ li $at, 15 +/* 09A778 7F065C48 1041001A */ beq $v0, $at, .L7F065CB4 +/* 09A77C 7F065C4C 24010010 */ li $at, 16 +/* 09A780 7F065C50 10410018 */ beq $v0, $at, .L7F065CB4 +/* 09A784 7F065C54 2401000E */ li $at, 14 +/* 09A788 7F065C58 10810016 */ beq $a0, $at, .L7F065CB4 +/* 09A78C 7F065C5C 8FAF01D0 */ lw $t7, 0x1d0($sp) +/* 09A790 7F065C60 15E0000C */ bnez $t7, .L7F065C94 +/* 09A794 7F065C64 00000000 */ nop +/* 09A798 7F065C68 0FC17674 */ jal get_item_in_hand +/* 09A79C 7F065C6C 24040001 */ li $a0, 1 +/* 09A7A0 7F065C70 8E04003C */ lw $a0, 0x3c($s0) +/* 09A7A4 7F065C74 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7A8 7F065C78 00402825 */ move $a1, $v0 +/* 09A7AC 7F065C7C 1440000D */ bnez $v0, .L7F065CB4 +/* 09A7B0 7F065C80 24040001 */ li $a0, 1 +/* 09A7B4 7F065C84 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 09A7B8 7F065C88 00002825 */ move $a1, $zero +/* 09A7BC 7F065C8C 1000000A */ b .L7F065CB8 +/* 09A7C0 7F065C90 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065C94: +/* 09A7C4 7F065C94 0FC17674 */ jal get_item_in_hand +/* 09A7C8 7F065C98 00002025 */ move $a0, $zero +/* 09A7CC 7F065C9C 00402025 */ move $a0, $v0 +/* 09A7D0 7F065CA0 0FC23103 */ jal check_if_item_for_hand_available +/* 09A7D4 7F065CA4 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7D8 7F065CA8 54400003 */ bnezl $v0, .L7F065CB8 +/* 09A7DC 7F065CAC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7E0 7F065CB0 AE00003C */ sw $zero, 0x3c($s0) +.L7F065CB4: +/* 09A7E4 7F065CB4 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065CB8: +/* 09A7E8 7F065CB8 0FC176D5 */ jal remove_hands_item +/* 09A7EC 7F065CBC 8E05003C */ lw $a1, 0x3c($s0) +/* 09A7F0 7F065CC0 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09A7F4 7F065CC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A7F8 7F065CC8 24180007 */ li $t8, 7 +/* 09A7FC 7F065CCC 00408825 */ move $s1, $v0 +/* 09A800 7F065CD0 10000008 */ b .L7F065CF4 +/* 09A804 7F065CD4 AE180024 */ sw $t8, 0x24($s0) +.L7F065CD8: +/* 09A808 7F065CD8 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A80C 7F065CDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A810 7F065CE0 10400004 */ beqz $v0, .L7F065CF4 +/* 09A814 7F065CE4 24190008 */ li $t9, 8 +/* 09A818 7F065CE8 AE190024 */ sw $t9, 0x24($s0) +/* 09A81C 7F065CEC AE000020 */ sw $zero, 0x20($s0) +/* 09A820 7F065CF0 AE00001C */ sw $zero, 0x1c($s0) +.L7F065CF4: +/* 09A824 7F065CF4 8E020024 */ lw $v0, 0x24($s0) +.L7F065CF8: +/* 09A828 7F065CF8 24060006 */ li $a2, 6 +/* 09A82C 7F065CFC 24010007 */ li $at, 7 +/* 09A830 7F065D00 10C20003 */ beq $a2, $v0, .L7F065D10 +/* 09A834 7F065D04 240B0001 */ li $t3, 1 +/* 09A838 7F065D08 5441001B */ bnel $v0, $at, .L7F065D78 +/* 09A83C 7F065D0C 24010008 */ li $at, 8 +.L7F065D10: +/* 09A840 7F065D10 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09A844 7F065D14 3C018005 */ lui $at, %hi(D_80054188) +/* 09A848 7F065D18 C42C4188 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09A84C 7F065D1C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09A850 7F065D20 2605007C */ addiu $a1, $s0, 0x7c +/* 09A854 7F065D24 44803000 */ mtc1 $zero, $f6 +/* 09A858 7F065D28 3C018005 */ lui $at, %hi(D_8005418C) +/* 09A85C 7F065D2C E60600AC */ swc1 $f6, 0xac($s0) +/* 09A860 7F065D30 0FC15FA8 */ jal cosf +/* 09A864 7F065D34 C42C418C */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09A868 7F065D38 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09A86C 7F065D3C 44815000 */ mtc1 $at, $f10 +/* 09A870 7F065D40 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09A874 7F065D44 44812000 */ mtc1 $at, $f4 +/* 09A878 7F065D48 46005201 */ sub.s $f8, $f10, $f0 +/* 09A87C 7F065D4C 3C018005 */ lui $at, %hi(D_80054190) +/* 09A880 7F065D50 46044182 */ mul.s $f6, $f8, $f4 +/* 09A884 7F065D54 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09A888 7F065D58 0FC15FAB */ jal sinf +/* 09A88C 7F065D5C C42C4190 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09A890 7F065D60 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09A894 7F065D64 44815000 */ mtc1 $at, $f10 +/* 09A898 7F065D68 8E020024 */ lw $v0, 0x24($s0) +/* 09A89C 7F065D6C 460A0202 */ mul.s $f8, $f0, $f10 +/* 09A8A0 7F065D70 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09A8A4 7F065D74 24010008 */ li $at, 8 +.L7F065D78: +/* 09A8A8 7F065D78 14410088 */ bne $v0, $at, .L7F065F9C +/* 09A8AC 7F065D7C 240C0017 */ li $t4, 23 +/* 09A8B0 7F065D80 0FC26919 */ jal getPlayerCount +/* 09A8B4 7F065D84 AFAC0178 */ sw $t4, 0x178($sp) +/* 09A8B8 7F065D88 28410002 */ slti $at, $v0, 2 +/* 09A8BC 7F065D8C 14200002 */ bnez $at, .L7F065D98 +/* 09A8C0 7F065D90 240D000C */ li $t5, 12 +/* 09A8C4 7F065D94 AFAD0178 */ sw $t5, 0x178($sp) +.L7F065D98: +/* 09A8C8 7F065D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09A8CC 7F065D9C 55C00048 */ bnezl $t6, .L7F065EC0 +/* 09A8D0 7F065DA0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A8D4 7F065DA4 0FC26919 */ jal getPlayerCount +/* 09A8D8 7F065DA8 00000000 */ nop +/* 09A8DC 7F065DAC 28410002 */ slti $at, $v0, 2 +/* 09A8E0 7F065DB0 14200003 */ bnez $at, .L7F065DC0 +/* 09A8E4 7F065DB4 00000000 */ nop +/* 09A8E8 7F065DB8 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09A8EC 7F065DBC 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F065DC0: +/* 09A8F0 7F065DC0 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09A8F4 7F065DC4 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A8F8 7F065DC8 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09A8FC 7F065DCC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09A900 7F065DD0 3C188005 */ lui $t8, %hi(clock_timer) +/* 09A904 7F065DD4 3C198008 */ lui $t9, %hi(pPlayer) +/* 09A908 7F065DD8 ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09A90C 7F065DDC 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 09A910 7F065DE0 5B000037 */ blezl $t8, .L7F065EC0 +/* 09A914 7F065DE4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A918 7F065DE8 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09A91C 7F065DEC 24010001 */ li $at, 1 +/* 09A920 7F065DF0 8F2B0000 */ lw $t3, ($t9) +/* 09A924 7F065DF4 51610032 */ beql $t3, $at, .L7F065EC0 +/* 09A928 7F065DF8 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A92C 7F065DFC 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09A930 7F065E00 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09A934 7F065E04 1040002D */ beqz $v0, .L7F065EBC +/* 09A938 7F065E08 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 09A93C 7F065E0C 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 09A940 7F065E10 2A21003E */ slti $at, $s1, 0x3e +/* 09A944 7F065E14 5580002A */ bnezl $t4, .L7F065EC0 +/* 09A948 7F065E18 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A94C 7F065E1C 14200005 */ bnez $at, .L7F065E34 +/* 09A950 7F065E20 24010058 */ li $at, 88 +/* 09A954 7F065E24 52210026 */ beql $s1, $at, .L7F065EC0 +/* 09A958 7F065E28 8E0E0020 */ lw $t6, 0x20($s0) +/* 09A95C 7F065E2C 1000001E */ b .L7F065EA8 +/* 09A960 7F065E30 00000000 */ nop +.L7F065E34: +/* 09A964 7F065E34 2E21003E */ sltiu $at, $s1, 0x3e +/* 09A968 7F065E38 1020001B */ beqz $at, .L7F065EA8 +/* 09A96C 7F065E3C 00116880 */ sll $t5, $s1, 2 +/* 09A970 7F065E40 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09A974 7F065E44 002D0821 */ addu $at, $at, $t5 +/* 09A978 7F065E48 8C2D4194 */ lw $t5, %lo(jpt_80054194)($at) +/* 09A97C 7F065E4C 01A00008 */ jr $t5 +/* 09A980 7F065E50 00000000 */ nop +weapon_playsfx_F2: +/* 09A984 7F065E54 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A988 7F065E58 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A98C 7F065E5C 240500F2 */ li $a1, 242 +/* 09A990 7F065E60 0C002382 */ jal play_sfx_a1 +/* 09A994 7F065E64 00003025 */ move $a2, $zero +/* 09A998 7F065E68 10000015 */ b .L7F065EC0 +/* 09A99C 7F065E6C 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_knife: +/* 09A9A0 7F065E70 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A9A4 7F065E74 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A9A8 7F065E78 240500E9 */ li $a1, 233 +/* 09A9AC 7F065E7C 0C002382 */ jal play_sfx_a1 +/* 09A9B0 7F065E80 00003025 */ move $a2, $zero +/* 09A9B4 7F065E84 1000000E */ b .L7F065EC0 +/* 09A9B8 7F065E88 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_mine: +/* 09A9BC 7F065E8C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A9C0 7F065E90 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A9C4 7F065E94 240500EB */ li $a1, 235 +/* 09A9C8 7F065E98 0C002382 */ jal play_sfx_a1 +/* 09A9CC 7F065E9C 00003025 */ move $a2, $zero +/* 09A9D0 7F065EA0 10000007 */ b .L7F065EC0 +/* 09A9D4 7F065EA4 8E0E0020 */ lw $t6, 0x20($s0) +weapon_playsfx_gun: +.L7F065EA8: +/* 09A9D8 7F065EA8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09A9DC 7F065EAC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A9E0 7F065EB0 240500E8 */ li $a1, 232 +/* 09A9E4 7F065EB4 0C002382 */ jal play_sfx_a1 +/* 09A9E8 7F065EB8 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +.L7F065EBC: +/* 09A9EC 7F065EBC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F065EC0: +/* 09A9F0 7F065EC0 8FAF0178 */ lw $t7, 0x178($sp) +/* 09A9F4 7F065EC4 01CF082A */ slt $at, $t6, $t7 +/* 09A9F8 7F065EC8 5020000E */ beql $at, $zero, .L7F065F04 +/* 09A9FC 7F065ECC AE000024 */ sw $zero, 0x24($s0) +/* 09AA00 7F065ED0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AA04 7F065ED4 02202025 */ move $a0, $s1 +/* 09AA08 7F065ED8 10400009 */ beqz $v0, .L7F065F00 +/* 09AA0C 7F065EDC 02202025 */ move $a0, $s1 +/* 09AA10 7F065EE0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA14 7F065EE4 24050800 */ li $a1, 2048 +/* 09AA18 7F065EE8 10400005 */ beqz $v0, .L7F065F00 +/* 09AA1C 7F065EEC 02202025 */ move $a0, $s1 +/* 09AA20 7F065EF0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AA24 7F065EF4 24052000 */ li $a1, 8192 +/* 09AA28 7F065EF8 10400006 */ beqz $v0, .L7F065F14 +/* 09AA2C 7F065EFC 8FB80178 */ lw $t8, 0x178($sp) +.L7F065F00: +/* 09AA30 7F065F00 AE000024 */ sw $zero, 0x24($s0) +.L7F065F04: +/* 09AA34 7F065F04 AE000020 */ sw $zero, 0x20($s0) +/* 09AA38 7F065F08 AE00001C */ sw $zero, 0x1c($s0) +/* 09AA3C 7F065F0C 10000023 */ b .L7F065F9C +/* 09AA40 7F065F10 00001025 */ move $v0, $zero +.L7F065F14: +/* 09AA44 7F065F14 8E190020 */ lw $t9, 0x20($s0) +/* 09AA48 7F065F18 3C018005 */ lui $at, %hi(D_8005428C) +/* 09AA4C 7F065F1C C42A428C */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09AA50 7F065F20 03195823 */ subu $t3, $t8, $t9 +/* 09AA54 7F065F24 448B2000 */ mtc1 $t3, $f4 +/* 09AA58 7F065F28 240C0001 */ li $t4, 1 +/* 09AA5C 7F065F2C AE0C00BC */ sw $t4, 0xbc($s0) +/* 09AA60 7F065F30 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA64 7F065F34 44982000 */ mtc1 $t8, $f4 +/* 09AA68 7F065F38 2605007C */ addiu $a1, $s0, 0x7c +/* 09AA6C 7F065F3C 460A3202 */ mul.s $f8, $f6, $f10 +/* 09AA70 7F065F40 468021A0 */ cvt.s.w $f6, $f4 +/* 09AA74 7F065F44 46064303 */ div.s $f12, $f8, $f6 +/* 09AA78 7F065F48 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AA7C 7F065F4C E7AC0174 */ swc1 $f12, 0x174($sp) +/* 09AA80 7F065F50 44805000 */ mtc1 $zero, $f10 +/* 09AA84 7F065F54 00000000 */ nop +/* 09AA88 7F065F58 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09AA8C 7F065F5C 0FC15FA8 */ jal cosf +/* 09AA90 7F065F60 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AA94 7F065F64 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AA98 7F065F68 44812000 */ mtc1 $at, $f4 +/* 09AA9C 7F065F6C 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AAA0 7F065F70 44813000 */ mtc1 $at, $f6 +/* 09AAA4 7F065F74 46002201 */ sub.s $f8, $f4, $f0 +/* 09AAA8 7F065F78 46064282 */ mul.s $f10, $f8, $f6 +/* 09AAAC 7F065F7C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09AAB0 7F065F80 0FC15FAB */ jal sinf +/* 09AAB4 7F065F84 C7AC0174 */ lwc1 $f12, 0x174($sp) +/* 09AAB8 7F065F88 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AABC 7F065F8C 44812000 */ mtc1 $at, $f4 +/* 09AAC0 7F065F90 8E020024 */ lw $v0, 0x24($s0) +/* 09AAC4 7F065F94 46040202 */ mul.s $f8, $f0, $f4 +/* 09AAC8 7F065F98 E60800B4 */ swc1 $f8, 0xb4($s0) +.L7F065F9C: +/* 09AACC 7F065F9C 24010009 */ li $at, 9 +/* 09AAD0 7F065FA0 54410018 */ bnel $v0, $at, .L7F066004 +/* 09AAD4 7F065FA4 2401000A */ li $at, 10 +/* 09AAD8 7F065FA8 0FC1722D */ jal get_ptr_item_statistics +/* 09AADC 7F065FAC 02202025 */ move $a0, $s1 +/* 09AAE0 7F065FB0 8E0D002C */ lw $t5, 0x2c($s0) +/* 09AAE4 7F065FB4 844E0020 */ lh $t6, 0x20($v0) +/* 09AAE8 7F065FB8 02202025 */ move $a0, $s1 +/* 09AAEC 7F065FBC 01AE082A */ slt $at, $t5, $t6 +/* 09AAF0 7F065FC0 14200005 */ bnez $at, .L7F065FD8 +/* 09AAF4 7F065FC4 00000000 */ nop +/* 09AAF8 7F065FC8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AAFC 7F065FCC 3C050020 */ lui $a1, 0x20 +/* 09AB00 7F065FD0 50400008 */ beql $v0, $zero, .L7F065FF4 +/* 09AB04 7F065FD4 AE000024 */ sw $zero, 0x24($s0) +.L7F065FD8: +/* 09AB08 7F065FD8 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 09AB0C 7F065FDC 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AB10 7F065FE0 18400003 */ blez $v0, .L7F065FF0 +/* 09AB14 7F065FE4 2402000A */ li $v0, 10 +/* 09AB18 7F065FE8 10000005 */ b .L7F066000 +/* 09AB1C 7F065FEC AE020024 */ sw $v0, 0x24($s0) +.L7F065FF0: +/* 09AB20 7F065FF0 AE000024 */ sw $zero, 0x24($s0) +.L7F065FF4: +/* 09AB24 7F065FF4 AE000020 */ sw $zero, 0x20($s0) +/* 09AB28 7F065FF8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB2C 7F065FFC 00001025 */ move $v0, $zero +.L7F066000: +/* 09AB30 7F066000 2401000A */ li $at, 10 +.L7F066004: +/* 09AB34 7F066004 54410048 */ bnel $v0, $at, .L7F066128 +/* 09AB38 7F066008 2401000B */ li $at, 11 +/* 09AB3C 7F06600C 8E030020 */ lw $v1, 0x20($s0) +/* 09AB40 7F066010 2402000B */ li $v0, 11 +/* 09AB44 7F066014 24180011 */ li $t8, 17 +/* 09AB48 7F066018 28610010 */ slti $at, $v1, 0x10 +/* 09AB4C 7F06601C 50200005 */ beql $at, $zero, .L7F066034 +/* 09AB50 7F066020 AE020024 */ sw $v0, 0x24($s0) +/* 09AB54 7F066024 8219000F */ lb $t9, 0xf($s0) +/* 09AB58 7F066028 57200007 */ bnezl $t9, .L7F066048 +/* 09AB5C 7F06602C 44833000 */ mtc1 $v1, $f6 +/* 09AB60 7F066030 AE020024 */ sw $v0, 0x24($s0) +.L7F066034: +/* 09AB64 7F066034 AE180040 */ sw $t8, 0x40($s0) +/* 09AB68 7F066038 AE000020 */ sw $zero, 0x20($s0) +/* 09AB6C 7F06603C 10000039 */ b .L7F066124 +/* 09AB70 7F066040 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB74 7F066044 44833000 */ mtc1 $v1, $f6 +.L7F066048: +/* 09AB78 7F066048 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AB7C 7F06604C 44811000 */ mtc1 $at, $f2 +/* 09AB80 7F066050 468032A0 */ cvt.s.w $f10, $f6 +/* 09AB84 7F066054 3C018005 */ lui $at, %hi(D_80054290) +/* 09AB88 7F066058 C4244290 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09AB8C 7F06605C 240C0001 */ li $t4, 1 +/* 09AB90 7F066060 2605007C */ addiu $a1, $s0, 0x7c +/* 09AB94 7F066064 46045202 */ mul.s $f8, $f10, $f4 +/* 09AB98 7F066068 46024183 */ div.s $f6, $f8, $f2 +/* 09AB9C 7F06606C E7A60128 */ swc1 $f6, 0x128($sp) +/* 09ABA0 7F066070 AE0C00BC */ sw $t4, 0xbc($s0) +/* 09ABA4 7F066074 8FAD01D0 */ lw $t5, 0x1d0($sp) +/* 09ABA8 7F066078 55A00009 */ bnezl $t5, .L7F0660A0 +/* 09ABAC 7F06607C 44802000 */ mtc1 $zero, $f4 +/* 09ABB0 7F066080 44805000 */ mtc1 $zero, $f10 +/* 09ABB4 7F066084 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABB8 7F066088 46025303 */ div.s $f12, $f10, $f2 +/* 09ABBC 7F06608C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABC0 7F066090 E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09ABC4 7F066094 10000008 */ b .L7F0660B8 +/* 09ABC8 7F066098 C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09ABCC 7F06609C 44802000 */ mtc1 $zero, $f4 +.L7F0660A0: +/* 09ABD0 7F0660A0 AFA50030 */ sw $a1, 0x30($sp) +/* 09ABD4 7F0660A4 46022003 */ div.s $f0, $f4, $f2 +/* 09ABD8 7F0660A8 46000307 */ neg.s $f12, $f0 +/* 09ABDC 7F0660AC 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09ABE0 7F0660B0 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09ABE4 7F0660B4 C7AC0128 */ lwc1 $f12, 0x128($sp) +.L7F0660B8: +/* 09ABE8 7F0660B8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09ABEC 7F0660BC 27A5012C */ addiu $a1, $sp, 0x12c +/* 09ABF0 7F0660C0 27A4012C */ addiu $a0, $sp, 0x12c +/* 09ABF4 7F0660C4 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09ABF8 7F0660C8 8FA50030 */ lw $a1, 0x30($sp) +/* 09ABFC 7F0660CC 0FC15FAB */ jal sinf +/* 09AC00 7F0660D0 C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AC04 7F0660D4 44804000 */ mtc1 $zero, $f8 +/* 09AC08 7F0660D8 02202025 */ move $a0, $s1 +/* 09AC0C 7F0660DC 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AC10 7F0660E0 E60800AC */ swc1 $f8, 0xac($s0) +/* 09AC14 7F0660E4 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AC18 7F0660E8 0FC15FA8 */ jal cosf +/* 09AC1C 7F0660EC C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC20 7F0660F0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AC24 7F0660F4 44813000 */ mtc1 $at, $f6 +/* 09AC28 7F0660F8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 09AC2C 7F0660FC 46003281 */ sub.s $f10, $f6, $f0 +/* 09AC30 7F066100 46045202 */ mul.s $f8, $f10, $f4 +/* 09AC34 7F066104 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09AC38 7F066108 0FC15FAB */ jal sinf +/* 09AC3C 7F06610C C7AC0128 */ lwc1 $f12, 0x128($sp) +/* 09AC40 7F066110 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AC44 7F066114 44813000 */ mtc1 $at, $f6 +/* 09AC48 7F066118 8E020024 */ lw $v0, 0x24($s0) +/* 09AC4C 7F06611C 46060282 */ mul.s $f10, $f0, $f6 +/* 09AC50 7F066120 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F066124: +/* 09AC54 7F066124 2401000B */ li $at, 11 +.L7F066128: +/* 09AC58 7F066128 54410063 */ bnel $v0, $at, .L7F0662B8 +/* 09AC5C 7F06612C 2401000C */ li $at, 12 +/* 09AC60 7F066130 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AC64 7F066134 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 09AC68 7F066138 55C00022 */ bnezl $t6, .L7F0661C4 +/* 09AC6C 7F06613C 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC70 7F066140 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC74 7F066144 24010001 */ li $at, 1 +/* 09AC78 7F066148 8DF90000 */ lw $t9, ($t7) +/* 09AC7C 7F06614C 5321001D */ beql $t9, $at, .L7F0661C4 +/* 09AC80 7F066150 8E0C0020 */ lw $t4, 0x20($s0) +/* 09AC84 7F066154 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09AC88 7F066158 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AC8C 7F06615C 10400018 */ beqz $v0, .L7F0661C0 +/* 09AC90 7F066160 3C0B8003 */ lui $t3, %hi(disable_player_pickups_flag) +/* 09AC94 7F066164 8D6B64B4 */ lw $t3, %lo(disable_player_pickups_flag)($t3) +/* 09AC98 7F066168 2A21003E */ slti $at, $s1, 0x3e +/* 09AC9C 7F06616C 55600015 */ bnezl $t3, .L7F0661C4 +/* 09ACA0 7F066170 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACA4 7F066174 14200005 */ bnez $at, .L7F06618C +/* 09ACA8 7F066178 24010058 */ li $at, 88 +/* 09ACAC 7F06617C 52210011 */ beql $s1, $at, .L7F0661C4 +/* 09ACB0 7F066180 8E0C0020 */ lw $t4, 0x20($s0) +/* 09ACB4 7F066184 10000009 */ b .L7F0661AC +/* 09ACB8 7F066188 00000000 */ nop +.L7F06618C: +/* 09ACBC 7F06618C 2E21003E */ sltiu $at, $s1, 0x3e +/* 09ACC0 7F066190 10200006 */ beqz $at, .L7F0661AC +/* 09ACC4 7F066194 0011C080 */ sll $t8, $s1, 2 +/* 09ACC8 7F066198 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09ACCC 7F06619C 00380821 */ addu $at, $at, $t8 +/* 09ACD0 7F0661A0 8C384294 */ lw $t8, %lo(jpt_80054294)($at) +/* 09ACD4 7F0661A4 03000008 */ jr $t8 +/* 09ACD8 7F0661A8 00000000 */ nop +weapon_reload_gun_sfx: +.L7F0661AC: +/* 09ACDC 7F0661AC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09ACE0 7F0661B0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09ACE4 7F0661B4 24050032 */ li $a1, 50 +/* 09ACE8 7F0661B8 0C002382 */ jal play_sfx_a1 +/* 09ACEC 7F0661BC 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +.L7F0661C0: +/* 09ACF0 7F0661C0 8E0C0020 */ lw $t4, 0x20($s0) +.L7F0661C4: +/* 09ACF4 7F0661C4 8E0D0040 */ lw $t5, 0x40($s0) +/* 09ACF8 7F0661C8 24190001 */ li $t9, 1 +/* 09ACFC 7F0661CC 018D082A */ slt $at, $t4, $t5 +/* 09AD00 7F0661D0 5420000B */ bnezl $at, .L7F066200 +/* 09AD04 7F0661D4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD08 7F0661D8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AD0C 7F0661DC 2402000C */ li $v0, 12 +/* 09AD10 7F0661E0 29C10002 */ slti $at, $t6, 2 +/* 09AD14 7F0661E4 54200006 */ bnezl $at, .L7F066200 +/* 09AD18 7F0661E8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09AD1C 7F0661EC AE020024 */ sw $v0, 0x24($s0) +/* 09AD20 7F0661F0 AE000020 */ sw $zero, 0x20($s0) +/* 09AD24 7F0661F4 1000002F */ b .L7F0662B4 +/* 09AD28 7F0661F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09AD2C 7F0661FC AE1900BC */ sw $t9, 0xbc($s0) +.L7F066200: +/* 09AD30 7F066200 8FAB01D0 */ lw $t3, 0x1d0($sp) +/* 09AD34 7F066204 2605007C */ addiu $a1, $s0, 0x7c +/* 09AD38 7F066208 55600007 */ bnezl $t3, .L7F066228 +/* 09AD3C 7F06620C 44806000 */ mtc1 $zero, $f12 +/* 09AD40 7F066210 44806000 */ mtc1 $zero, $f12 +/* 09AD44 7F066214 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD48 7F066218 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD4C 7F06621C 10000005 */ b .L7F066234 +/* 09AD50 7F066220 00000000 */ nop +/* 09AD54 7F066224 44806000 */ mtc1 $zero, $f12 +.L7F066228: +/* 09AD58 7F066228 AFA50030 */ sw $a1, 0x30($sp) +/* 09AD5C 7F06622C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AD60 7F066230 46006307 */ neg.s $f12, $f12 +.L7F066234: +/* 09AD64 7F066234 3C018005 */ lui $at, %hi(D_8005438C) +/* 09AD68 7F066238 C42C438C */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09AD6C 7F06623C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AD70 7F066240 27A500E4 */ addiu $a1, $sp, 0xe4 +/* 09AD74 7F066244 27A400E4 */ addiu $a0, $sp, 0xe4 +/* 09AD78 7F066248 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AD7C 7F06624C 8FA50030 */ lw $a1, 0x30($sp) +/* 09AD80 7F066250 44806000 */ mtc1 $zero, $f12 +/* 09AD84 7F066254 0FC15FAB */ jal sinf +/* 09AD88 7F066258 00000000 */ nop +/* 09AD8C 7F06625C 44802000 */ mtc1 $zero, $f4 +/* 09AD90 7F066260 02202025 */ move $a0, $s1 +/* 09AD94 7F066264 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AD98 7F066268 E60400AC */ swc1 $f4, 0xac($s0) +/* 09AD9C 7F06626C 3C018005 */ lui $at, %hi(D_80054390) +/* 09ADA0 7F066270 C42C4390 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09ADA4 7F066274 0FC15FA8 */ jal cosf +/* 09ADA8 7F066278 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09ADAC 7F06627C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ADB0 7F066280 44814000 */ mtc1 $at, $f8 +/* 09ADB4 7F066284 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 09ADB8 7F066288 3C018005 */ lui $at, %hi(D_80054394) +/* 09ADBC 7F06628C 46004181 */ sub.s $f6, $f8, $f0 +/* 09ADC0 7F066290 460A3102 */ mul.s $f4, $f6, $f10 +/* 09ADC4 7F066294 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09ADC8 7F066298 0FC15FAB */ jal sinf +/* 09ADCC 7F06629C C42C4394 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09ADD0 7F0662A0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ADD4 7F0662A4 44814000 */ mtc1 $at, $f8 +/* 09ADD8 7F0662A8 8E020024 */ lw $v0, 0x24($s0) +/* 09ADDC 7F0662AC 46080182 */ mul.s $f6, $f0, $f8 +/* 09ADE0 7F0662B0 E60600B4 */ swc1 $f6, 0xb4($s0) +.L7F0662B4: +/* 09ADE4 7F0662B4 2401000C */ li $at, 12 +.L7F0662B8: +/* 09ADE8 7F0662B8 5441005A */ bnel $v0, $at, .L7F066424 +/* 09ADEC 7F0662BC 2401000E */ li $at, 14 +/* 09ADF0 7F0662C0 8E18001C */ lw $t8, 0x1c($s0) +/* 09ADF4 7F0662C4 57000007 */ bnezl $t8, .L7F0662E4 +/* 09ADF8 7F0662C8 8E0D0020 */ lw $t5, 0x20($s0) +/* 09ADFC 7F0662CC 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09AE00 7F0662D0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09AE04 7F0662D4 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09AE08 7F0662D8 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09AE0C 7F0662DC AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09AE10 7F0662E0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0662E4: +/* 09AE14 7F0662E4 29A10017 */ slti $at, $t5, 0x17 +/* 09AE18 7F0662E8 5020000E */ beql $at, $zero, .L7F066324 +/* 09AE1C 7F0662EC AE000024 */ sw $zero, 0x24($s0) +/* 09AE20 7F0662F0 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09AE24 7F0662F4 02202025 */ move $a0, $s1 +/* 09AE28 7F0662F8 10400009 */ beqz $v0, .L7F066320 +/* 09AE2C 7F0662FC 02202025 */ move $a0, $s1 +/* 09AE30 7F066300 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE34 7F066304 24050800 */ li $a1, 2048 +/* 09AE38 7F066308 10400005 */ beqz $v0, .L7F066320 +/* 09AE3C 7F06630C 02202025 */ move $a0, $s1 +/* 09AE40 7F066310 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09AE44 7F066314 24052000 */ li $a1, 8192 +/* 09AE48 7F066318 50400007 */ beql $v0, $zero, .L7F066338 +/* 09AE4C 7F06631C 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066320: +/* 09AE50 7F066320 AE000024 */ sw $zero, 0x24($s0) +.L7F066324: +/* 09AE54 7F066324 AE000020 */ sw $zero, 0x20($s0) +/* 09AE58 7F066328 AE00001C */ sw $zero, 0x1c($s0) +/* 09AE5C 7F06632C 1000003C */ b .L7F066420 +/* 09AE60 7F066330 00001025 */ move $v0, $zero +/* 09AE64 7F066334 8E0E0020 */ lw $t6, 0x20($s0) +.L7F066338: +/* 09AE68 7F066338 240F0017 */ li $t7, 23 +/* 09AE6C 7F06633C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09AE70 7F066340 01EEC823 */ subu $t9, $t7, $t6 +/* 09AE74 7F066344 44995000 */ mtc1 $t9, $f10 +/* 09AE78 7F066348 44811000 */ mtc1 $at, $f2 +/* 09AE7C 7F06634C 3C018005 */ lui $at, %hi(D_80054398) +/* 09AE80 7F066350 46805120 */ cvt.s.w $f4, $f10 +/* 09AE84 7F066354 C4284398 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09AE88 7F066358 240B0001 */ li $t3, 1 +/* 09AE8C 7F06635C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE90 7F066360 46082182 */ mul.s $f6, $f4, $f8 +/* 09AE94 7F066364 46023283 */ div.s $f10, $f6, $f2 +/* 09AE98 7F066368 E7AA0098 */ swc1 $f10, 0x98($sp) +/* 09AE9C 7F06636C AE0B00BC */ sw $t3, 0xbc($s0) +/* 09AEA0 7F066370 8FB801D0 */ lw $t8, 0x1d0($sp) +/* 09AEA4 7F066374 57000009 */ bnezl $t8, .L7F06639C +/* 09AEA8 7F066378 44804000 */ mtc1 $zero, $f8 +/* 09AEAC 7F06637C 44802000 */ mtc1 $zero, $f4 +/* 09AEB0 7F066380 AFA50030 */ sw $a1, 0x30($sp) +/* 09AEB4 7F066384 46022303 */ div.s $f12, $f4, $f2 +/* 09AEB8 7F066388 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEBC 7F06638C E7AC003C */ swc1 $f12, 0x3c($sp) +/* 09AEC0 7F066390 10000008 */ b .L7F0663B4 +/* 09AEC4 7F066394 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AEC8 7F066398 44804000 */ mtc1 $zero, $f8 +.L7F06639C: +/* 09AECC 7F06639C AFA50030 */ sw $a1, 0x30($sp) +/* 09AED0 7F0663A0 46024003 */ div.s $f0, $f8, $f2 +/* 09AED4 7F0663A4 46000307 */ neg.s $f12, $f0 +/* 09AED8 7F0663A8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 09AEDC 7F0663AC E7A0003C */ swc1 $f0, 0x3c($sp) +/* 09AEE0 7F0663B0 C7AC0098 */ lwc1 $f12, 0x98($sp) +.L7F0663B4: +/* 09AEE4 7F0663B4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AEE8 7F0663B8 27A5009C */ addiu $a1, $sp, 0x9c +/* 09AEEC 7F0663BC 27A4009C */ addiu $a0, $sp, 0x9c +/* 09AEF0 7F0663C0 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 09AEF4 7F0663C4 8FA50030 */ lw $a1, 0x30($sp) +/* 09AEF8 7F0663C8 0FC15FAB */ jal sinf +/* 09AEFC 7F0663CC C7AC003C */ lwc1 $f12, 0x3c($sp) +/* 09AF00 7F0663D0 44803000 */ mtc1 $zero, $f6 +/* 09AF04 7F0663D4 02202025 */ move $a0, $s1 +/* 09AF08 7F0663D8 0FC1926B */ jal sub_GAME_7F0649AC +/* 09AF0C 7F0663DC E60600AC */ swc1 $f6, 0xac($s0) +/* 09AF10 7F0663E0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09AF14 7F0663E4 0FC15FA8 */ jal cosf +/* 09AF18 7F0663E8 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF1C 7F0663EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AF20 7F0663F0 44815000 */ mtc1 $at, $f10 +/* 09AF24 7F0663F4 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 09AF28 7F0663F8 46005101 */ sub.s $f4, $f10, $f0 +/* 09AF2C 7F0663FC 46082182 */ mul.s $f6, $f4, $f8 +/* 09AF30 7F066400 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AF34 7F066404 0FC15FAB */ jal sinf +/* 09AF38 7F066408 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09AF3C 7F06640C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AF40 7F066410 44815000 */ mtc1 $at, $f10 +/* 09AF44 7F066414 8E020024 */ lw $v0, 0x24($s0) +/* 09AF48 7F066418 460A0102 */ mul.s $f4, $f0, $f10 +/* 09AF4C 7F06641C E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F066420: +/* 09AF50 7F066420 2401000E */ li $at, 14 +.L7F066424: +/* 09AF54 7F066424 5441002E */ bnel $v0, $at, .L7F0664E0 +/* 09AF58 7F066428 2401000F */ li $at, 15 +/* 09AF5C 7F06642C 8E030020 */ lw $v1, 0x20($s0) +/* 09AF60 7F066430 2402000F */ li $v0, 15 +/* 09AF64 7F066434 28610010 */ slti $at, $v1, 0x10 +/* 09AF68 7F066438 50200005 */ beql $at, $zero, .L7F066450 +/* 09AF6C 7F06643C AE020024 */ sw $v0, 0x24($s0) +/* 09AF70 7F066440 820C000F */ lb $t4, 0xf($s0) +/* 09AF74 7F066444 55800006 */ bnezl $t4, .L7F066460 +/* 09AF78 7F066448 44834000 */ mtc1 $v1, $f8 +/* 09AF7C 7F06644C AE020024 */ sw $v0, 0x24($s0) +.L7F066450: +/* 09AF80 7F066450 AE000020 */ sw $zero, 0x20($s0) +/* 09AF84 7F066454 10000021 */ b .L7F0664DC +/* 09AF88 7F066458 AE00001C */ sw $zero, 0x1c($s0) +/* 09AF8C 7F06645C 44834000 */ mtc1 $v1, $f8 +.L7F066460: +/* 09AF90 7F066460 3C018005 */ lui $at, %hi(D_8005439C) +/* 09AF94 7F066464 C42A439C */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09AF98 7F066468 468041A0 */ cvt.s.w $f6, $f8 +/* 09AF9C 7F06646C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09AFA0 7F066470 44814000 */ mtc1 $at, $f8 +/* 09AFA4 7F066474 240F0001 */ li $t7, 1 +/* 09AFA8 7F066478 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AFAC 7F06647C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AFB0 7F066480 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AFB4 7F066484 46082303 */ div.s $f12, $f4, $f8 +/* 09AFB8 7F066488 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09AFBC 7F06648C E7AC0094 */ swc1 $f12, 0x94($sp) +/* 09AFC0 7F066490 44803000 */ mtc1 $zero, $f6 +/* 09AFC4 7F066494 00000000 */ nop +/* 09AFC8 7F066498 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AFCC 7F06649C 0FC15FA8 */ jal cosf +/* 09AFD0 7F0664A0 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFD4 7F0664A4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AFD8 7F0664A8 44815000 */ mtc1 $at, $f10 +/* 09AFDC 7F0664AC 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AFE0 7F0664B0 44814000 */ mtc1 $at, $f8 +/* 09AFE4 7F0664B4 46005101 */ sub.s $f4, $f10, $f0 +/* 09AFE8 7F0664B8 46082182 */ mul.s $f6, $f4, $f8 +/* 09AFEC 7F0664BC E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AFF0 7F0664C0 0FC15FAB */ jal sinf +/* 09AFF4 7F0664C4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 09AFF8 7F0664C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AFFC 7F0664CC 44815000 */ mtc1 $at, $f10 +/* 09B000 7F0664D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B004 7F0664D4 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B008 7F0664D8 E60400B4 */ swc1 $f4, 0xb4($s0) +.L7F0664DC: +/* 09B00C 7F0664DC 2401000F */ li $at, 15 +.L7F0664E0: +/* 09B010 7F0664E0 54410031 */ bnel $v0, $at, .L7F0665A8 +/* 09B014 7F0664E4 24010010 */ li $at, 16 +/* 09B018 7F0664E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B01C 7F0664EC 51C00006 */ beql $t6, $zero, .L7F066508 +/* 09B020 7F0664F0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B024 7F0664F4 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B028 7F0664F8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B02C 7F0664FC 14400007 */ bnez $v0, .L7F06651C +/* 09B030 7F066500 00000000 */ nop +/* 09B034 7F066504 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F066508: +/* 09B038 7F066508 0FC176A3 */ jal sub_GAME_7F05DA8C +/* 09B03C 7F06650C 8E05003C */ lw $a1, 0x3c($s0) +/* 09B040 7F066510 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 09B044 7F066514 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B048 7F066518 00408825 */ move $s1, $v0 +.L7F06651C: +/* 09B04C 7F06651C 0FC173AF */ jal sub_GAME_7F05CEBC +/* 09B050 7F066520 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B054 7F066524 10400006 */ beqz $v0, .L7F066540 +/* 09B058 7F066528 240B0001 */ li $t3, 1 +/* 09B05C 7F06652C 24020010 */ li $v0, 16 +/* 09B060 7F066530 AE020024 */ sw $v0, 0x24($s0) +/* 09B064 7F066534 AE000020 */ sw $zero, 0x20($s0) +/* 09B068 7F066538 1000001A */ b .L7F0665A4 +/* 09B06C 7F06653C AE00001C */ sw $zero, 0x1c($s0) +.L7F066540: +/* 09B070 7F066540 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B074 7F066544 3C018005 */ lui $at, %hi(D_800543A0) +/* 09B078 7F066548 C42C43A0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B07C 7F06654C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B080 7F066550 2605007C */ addiu $a1, $s0, 0x7c +/* 09B084 7F066554 44804000 */ mtc1 $zero, $f8 +/* 09B088 7F066558 3C018005 */ lui $at, %hi(D_800543A4) +/* 09B08C 7F06655C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B090 7F066560 0FC15FA8 */ jal cosf +/* 09B094 7F066564 C42C43A4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B098 7F066568 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B09C 7F06656C 44813000 */ mtc1 $at, $f6 +/* 09B0A0 7F066570 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B0A4 7F066574 44812000 */ mtc1 $at, $f4 +/* 09B0A8 7F066578 46003281 */ sub.s $f10, $f6, $f0 +/* 09B0AC 7F06657C 3C018005 */ lui $at, %hi(D_800543A8) +/* 09B0B0 7F066580 46045202 */ mul.s $f8, $f10, $f4 +/* 09B0B4 7F066584 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B0B8 7F066588 0FC15FAB */ jal sinf +/* 09B0BC 7F06658C C42C43A8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B0C0 7F066590 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0C4 7F066594 44813000 */ mtc1 $at, $f6 +/* 09B0C8 7F066598 8E020024 */ lw $v0, 0x24($s0) +/* 09B0CC 7F06659C 46060282 */ mul.s $f10, $f0, $f6 +/* 09B0D0 7F0665A0 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0665A4: +/* 09B0D4 7F0665A4 24010010 */ li $at, 16 +.L7F0665A8: +/* 09B0D8 7F0665A8 5441004C */ bnel $v0, $at, .L7F0666DC +/* 09B0DC 7F0665AC 24010011 */ li $at, 17 +/* 09B0E0 7F0665B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B0E4 7F0665B4 2A210021 */ slti $at, $s1, 0x21 +/* 09B0E8 7F0665B8 57000010 */ bnezl $t8, .L7F0665FC +/* 09B0EC 7F0665BC 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F0 7F0665C0 5020000E */ beql $at, $zero, .L7F0665FC +/* 09B0F4 7F0665C4 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B0F8 7F0665C8 0FC26919 */ jal getPlayerCount +/* 09B0FC 7F0665CC 00000000 */ nop +/* 09B100 7F0665D0 28410002 */ slti $at, $v0, 2 +/* 09B104 7F0665D4 14200003 */ bnez $at, .L7F0665E4 +/* 09B108 7F0665D8 00000000 */ nop +/* 09B10C 7F0665DC 0FC26CE6 */ jal sub_GAME_7F09B398 +/* 09B110 7F0665E0 8FA401D0 */ lw $a0, 0x1d0($sp) +.L7F0665E4: +/* 09B114 7F0665E4 0FC19276 */ jal sub_GAME_7F0649D8 +/* 09B118 7F0665E8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 09B11C 7F0665EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 09B120 7F0665F0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 09B124 7F0665F4 AD800FC8 */ sw $zero, 0xfc8($t4) +/* 09B128 7F0665F8 8E0D0020 */ lw $t5, 0x20($s0) +.L7F0665FC: +/* 09B12C 7F0665FC 29A10017 */ slti $at, $t5, 0x17 +/* 09B130 7F066600 5020000E */ beql $at, $zero, .L7F06663C +/* 09B134 7F066604 AE000024 */ sw $zero, 0x24($s0) +/* 09B138 7F066608 0FC17412 */ jal get_ptr_weapon_model_header_line +/* 09B13C 7F06660C 02202025 */ move $a0, $s1 +/* 09B140 7F066610 10400009 */ beqz $v0, .L7F066638 +/* 09B144 7F066614 02202025 */ move $a0, $s1 +/* 09B148 7F066618 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B14C 7F06661C 24050800 */ li $a1, 2048 +/* 09B150 7F066620 10400005 */ beqz $v0, .L7F066638 +/* 09B154 7F066624 02202025 */ move $a0, $s1 +/* 09B158 7F066628 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B15C 7F06662C 24052000 */ li $a1, 8192 +/* 09B160 7F066630 50400007 */ beql $v0, $zero, .L7F066650 +/* 09B164 7F066634 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066638: +/* 09B168 7F066638 AE000024 */ sw $zero, 0x24($s0) +.L7F06663C: +/* 09B16C 7F06663C AE000020 */ sw $zero, 0x20($s0) +/* 09B170 7F066640 AE00001C */ sw $zero, 0x1c($s0) +/* 09B174 7F066644 10000024 */ b .L7F0666D8 +/* 09B178 7F066648 00001025 */ move $v0, $zero +/* 09B17C 7F06664C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066650: +/* 09B180 7F066650 240E0017 */ li $t6, 23 +/* 09B184 7F066654 3C018005 */ lui $at, %hi(D_800543AC) +/* 09B188 7F066658 01CFC823 */ subu $t9, $t6, $t7 +/* 09B18C 7F06665C 44992000 */ mtc1 $t9, $f4 +/* 09B190 7F066660 C42643AC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B194 7F066664 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B198 7F066668 46802220 */ cvt.s.w $f8, $f4 +/* 09B19C 7F06666C 44812000 */ mtc1 $at, $f4 +/* 09B1A0 7F066670 240B0001 */ li $t3, 1 +/* 09B1A4 7F066674 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B1A8 7F066678 2605007C */ addiu $a1, $s0, 0x7c +/* 09B1AC 7F06667C 46064282 */ mul.s $f10, $f8, $f6 +/* 09B1B0 7F066680 46045303 */ div.s $f12, $f10, $f4 +/* 09B1B4 7F066684 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 09B1B8 7F066688 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 09B1BC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B1C0 7F066690 00000000 */ nop +/* 09B1C4 7F066694 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B1C8 7F066698 0FC15FA8 */ jal cosf +/* 09B1CC 7F06669C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1D0 7F0666A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B1D4 7F0666A4 44813000 */ mtc1 $at, $f6 +/* 09B1D8 7F0666A8 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B1DC 7F0666AC 44812000 */ mtc1 $at, $f4 +/* 09B1E0 7F0666B0 46003281 */ sub.s $f10, $f6, $f0 +/* 09B1E4 7F0666B4 46045202 */ mul.s $f8, $f10, $f4 +/* 09B1E8 7F0666B8 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B1EC 7F0666BC 0FC15FAB */ jal sinf +/* 09B1F0 7F0666C0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 09B1F4 7F0666C4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B1F8 7F0666C8 44813000 */ mtc1 $at, $f6 +/* 09B1FC 7F0666CC 8E020024 */ lw $v0, 0x24($s0) +/* 09B200 7F0666D0 46060282 */ mul.s $f10, $f0, $f6 +/* 09B204 7F0666D4 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L7F0666D8: +/* 09B208 7F0666D8 24010011 */ li $at, 17 +.L7F0666DC: +/* 09B20C 7F0666DC 1041000B */ beq $v0, $at, .L7F06670C +/* 09B210 7F0666E0 24010012 */ li $at, 18 +/* 09B214 7F0666E4 10410009 */ beq $v0, $at, .L7F06670C +/* 09B218 7F0666E8 24040013 */ li $a0, 19 +/* 09B21C 7F0666EC 10820007 */ beq $a0, $v0, .L7F06670C +/* 09B220 7F0666F0 24010014 */ li $at, 20 +/* 09B224 7F0666F4 10410005 */ beq $v0, $at, .L7F06670C +/* 09B228 7F0666F8 24010015 */ li $at, 21 +/* 09B22C 7F0666FC 10410003 */ beq $v0, $at, .L7F06670C +/* 09B230 7F066700 24010016 */ li $at, 22 +/* 09B234 7F066704 54410056 */ bnel $v0, $at, .L7F066860 +/* 09B238 7F066708 2401001E */ li $at, 30 +.L7F06670C: +/* 09B23C 7F06670C 8E030020 */ lw $v1, 0x20($s0) +/* 09B240 7F066710 2618007C */ addiu $t8, $s0, 0x7c +/* 09B244 7F066714 24010011 */ li $at, 17 +/* 09B248 7F066718 44832000 */ mtc1 $v1, $f4 +/* 09B24C 7F06671C 24040013 */ li $a0, 19 +/* 09B250 7F066720 AFB80030 */ sw $t8, 0x30($sp) +/* 09B254 7F066724 46802220 */ cvt.s.w $f8, $f4 +/* 09B258 7F066728 10410003 */ beq $v0, $at, .L7F066738 +/* 09B25C 7F06672C E7A80088 */ swc1 $f8, 0x88($sp) +/* 09B260 7F066730 24010014 */ li $at, 20 +/* 09B264 7F066734 1441001E */ bne $v0, $at, .L7F0667B0 +.L7F066738: +/* 09B268 7F066738 28610010 */ slti $at, $v1, 0x10 +/* 09B26C 7F06673C 1420001C */ bnez $at, .L7F0667B0 +/* 09B270 7F066740 3C0D8003 */ lui $t5, %hi(D_80035E94) +/* 09B274 7F066744 25AD5E94 */ addiu $t5, %lo(D_80035E94) # addiu $t5, $t5, 0x5e94 +/* 09B278 7F066748 8DA10000 */ lw $at, ($t5) +/* 09B27C 7F06674C 27AC007C */ addiu $t4, $sp, 0x7c +/* 09B280 7F066750 AD810000 */ sw $at, ($t4) +/* 09B284 7F066754 95A10004 */ lhu $at, 4($t5) +/* 09B288 7F066758 0C002914 */ jal randomGetNext +/* 09B28C 7F06675C A5810004 */ sh $at, 4($t4) +/* 09B290 7F066760 24010003 */ li $at, 3 +/* 09B294 7F066764 0041001B */ divu $zero, $v0, $at +/* 09B298 7F066768 0000C810 */ mfhi $t9 +/* 09B29C 7F06676C 00195840 */ sll $t3, $t9, 1 +/* 09B2A0 7F066770 03AB2821 */ addu $a1, $sp, $t3 +/* 09B2A4 7F066774 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09B2A8 7F066778 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09B2AC 7F06677C 84A5007C */ lh $a1, 0x7c($a1) +/* 09B2B0 7F066780 0C002382 */ jal play_sfx_a1 +/* 09B2B4 7F066784 00003025 */ move $a2, $zero +/* 09B2B8 7F066788 8E180024 */ lw $t8, 0x24($s0) +/* 09B2BC 7F06678C 24010011 */ li $at, 17 +/* 09B2C0 7F066790 24020015 */ li $v0, 21 +/* 09B2C4 7F066794 17010005 */ bne $t8, $at, .L7F0667AC +/* 09B2C8 7F066798 24040013 */ li $a0, 19 +/* 09B2CC 7F06679C 24020012 */ li $v0, 18 +/* 09B2D0 7F0667A0 AE020024 */ sw $v0, 0x24($s0) +/* 09B2D4 7F0667A4 10000002 */ b .L7F0667B0 +/* 09B2D8 7F0667A8 24040013 */ li $a0, 19 +.L7F0667AC: +/* 09B2DC 7F0667AC AE020024 */ sw $v0, 0x24($s0) +.L7F0667B0: +/* 09B2E0 7F0667B0 10820012 */ beq $a0, $v0, .L7F0667FC +/* 09B2E4 7F0667B4 24010016 */ li $at, 22 +/* 09B2E8 7F0667B8 50410011 */ beql $v0, $at, .L7F066800 +/* 09B2EC 7F0667BC 24010011 */ li $at, 17 +/* 09B2F0 7F0667C0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B2F4 7F0667C4 240F0001 */ li $t7, 1 +/* 09B2F8 7F0667C8 29A10018 */ slti $at, $t5, 0x18 +/* 09B2FC 7F0667CC 1420000B */ bnez $at, .L7F0667FC +/* 09B300 7F0667D0 24010011 */ li $at, 17 +/* 09B304 7F0667D4 10410004 */ beq $v0, $at, .L7F0667E8 +/* 09B308 7F0667D8 A20F000C */ sb $t7, 0xc($s0) +/* 09B30C 7F0667DC 24010012 */ li $at, 18 +/* 09B310 7F0667E0 54410005 */ bnel $v0, $at, .L7F0667F8 +/* 09B314 7F0667E4 24020016 */ li $v0, 22 +.L7F0667E8: +/* 09B318 7F0667E8 AE040024 */ sw $a0, 0x24($s0) +/* 09B31C 7F0667EC 10000003 */ b .L7F0667FC +/* 09B320 7F0667F0 00801025 */ move $v0, $a0 +/* 09B324 7F0667F4 24020016 */ li $v0, 22 +.L7F0667F8: +/* 09B328 7F0667F8 AE020024 */ sw $v0, 0x24($s0) +.L7F0667FC: +/* 09B32C 7F0667FC 24010011 */ li $at, 17 +.L7F066800: +/* 09B330 7F066800 10410005 */ beq $v0, $at, .L7F066818 +/* 09B334 7F066804 8FA50088 */ lw $a1, 0x88($sp) +/* 09B338 7F066808 24010012 */ li $at, 18 +/* 09B33C 7F06680C 10410002 */ beq $v0, $at, .L7F066818 +/* 09B340 7F066810 00000000 */ nop +/* 09B344 7F066814 14820003 */ bne $a0, $v0, .L7F066824 +.L7F066818: +/* 09B348 7F066818 3C048003 */ lui $a0, %hi(D_80034CA4) +/* 09B34C 7F06681C 10000003 */ b .L7F06682C +/* 09B350 7F066820 24844CA4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ca4 +.L7F066824: +/* 09B354 7F066824 3C048003 */ lui $a0, %hi(D_80034E0C) +/* 09B358 7F066828 24844E0C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e0c +.L7F06682C: +/* 09B35C 7F06682C 8FA60030 */ lw $a2, 0x30($sp) +/* 09B360 7F066830 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B364 7F066834 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B368 7F066838 10400004 */ beqz $v0, .L7F06684C +/* 09B36C 7F06683C 240B0001 */ li $t3, 1 +/* 09B370 7F066840 AE0B00BC */ sw $t3, 0xbc($s0) +/* 09B374 7F066844 10000005 */ b .L7F06685C +/* 09B378 7F066848 8E020024 */ lw $v0, 0x24($s0) +.L7F06684C: +/* 09B37C 7F06684C AE000024 */ sw $zero, 0x24($s0) +/* 09B380 7F066850 AE000020 */ sw $zero, 0x20($s0) +/* 09B384 7F066854 AE00001C */ sw $zero, 0x1c($s0) +/* 09B388 7F066858 00001025 */ move $v0, $zero +.L7F06685C: +/* 09B38C 7F06685C 2401001E */ li $at, 30 +.L7F066860: +/* 09B390 7F066860 10410007 */ beq $v0, $at, .L7F066880 +/* 09B394 7F066864 2405001F */ li $a1, 31 +/* 09B398 7F066868 10A20005 */ beq $a1, $v0, .L7F066880 +/* 09B39C 7F06686C 24010020 */ li $at, 32 +/* 09B3A0 7F066870 10410003 */ beq $v0, $at, .L7F066880 +/* 09B3A4 7F066874 24040021 */ li $a0, 33 +/* 09B3A8 7F066878 54820041 */ bnel $a0, $v0, .L7F066980 +/* 09B3AC 7F06687C 2401001A */ li $at, 26 +.L7F066880: +/* 09B3B0 7F066880 8E030020 */ lw $v1, 0x20($s0) +/* 09B3B4 7F066884 2401001E */ li $at, 30 +/* 09B3B8 7F066888 24040021 */ li $a0, 33 +/* 09B3BC 7F06688C 44833000 */ mtc1 $v1, $f6 +/* 09B3C0 7F066890 2405001F */ li $a1, 31 +/* 09B3C4 7F066894 2606007C */ addiu $a2, $s0, 0x7c +/* 09B3C8 7F066898 10410003 */ beq $v0, $at, .L7F0668A8 +/* 09B3CC 7F06689C 46803020 */ cvt.s.w $f0, $f6 +/* 09B3D0 7F0668A0 14A20014 */ bne $a1, $v0, .L7F0668F4 +/* 09B3D4 7F0668A4 24010020 */ li $at, 32 +.L7F0668A8: +/* 09B3D8 7F0668A8 3C188008 */ lui $t8, %hi(pPlayer) +/* 09B3DC 7F0668AC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09B3E0 7F0668B0 24010011 */ li $at, 17 +/* 09B3E4 7F0668B4 3C0C8003 */ lui $t4, %hi(D_80035778) +/* 09B3E8 7F0668B8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09B3EC 7F0668BC 3C0D8003 */ lui $t5, %hi(D_800354A8) +/* 09B3F0 7F0668C0 258C5778 */ addiu $t4, %lo(D_80035778) # addiu $t4, $t4, 0x5778 +/* 09B3F4 7F0668C4 15C10003 */ bne $t6, $at, .L7F0668D4 +/* 09B3F8 7F0668C8 25AD54A8 */ addiu $t5, %lo(D_800354A8) # addiu $t5, $t5, 0x54a8 +/* 09B3FC 7F0668CC 10000002 */ b .L7F0668D8 +/* 09B400 7F0668D0 AFAC0074 */ sw $t4, 0x74($sp) +.L7F0668D4: +/* 09B404 7F0668D4 AFAD0074 */ sw $t5, 0x74($sp) +.L7F0668D8: +/* 09B408 7F0668D8 10A2001B */ beq $a1, $v0, .L7F066948 +/* 09B40C 7F0668DC 2861001E */ slti $at, $v1, 0x1e +/* 09B410 7F0668E0 14200019 */ bnez $at, .L7F066948 +/* 09B414 7F0668E4 240F0001 */ li $t7, 1 +/* 09B418 7F0668E8 A20F000C */ sb $t7, 0xc($s0) +/* 09B41C 7F0668EC 10000016 */ b .L7F066948 +/* 09B420 7F0668F0 AE050024 */ sw $a1, 0x24($s0) +.L7F0668F4: +/* 09B424 7F0668F4 10410003 */ beq $v0, $at, .L7F066904 +/* 09B428 7F0668F8 3C198008 */ lui $t9, %hi(pPlayer) +/* 09B42C 7F0668FC 54820013 */ bnel $a0, $v0, .L7F06694C +/* 09B430 7F066900 44050000 */ mfc1 $a1, $f0 +.L7F066904: +/* 09B434 7F066904 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 09B438 7F066908 24010011 */ li $at, 17 +/* 09B43C 7F06690C 3C188003 */ lui $t8, %hi(D_80035904) +/* 09B440 7F066910 8F2B2A38 */ lw $t3, 0x2a38($t9) +/* 09B444 7F066914 3C0E8003 */ lui $t6, %hi(D_80035610) +/* 09B448 7F066918 27185904 */ addiu $t8, %lo(D_80035904) # addiu $t8, $t8, 0x5904 +/* 09B44C 7F06691C 15610003 */ bne $t3, $at, .L7F06692C +/* 09B450 7F066920 25CE5610 */ addiu $t6, %lo(D_80035610) # addiu $t6, $t6, 0x5610 +/* 09B454 7F066924 10000002 */ b .L7F066930 +/* 09B458 7F066928 AFB80074 */ sw $t8, 0x74($sp) +.L7F06692C: +/* 09B45C 7F06692C AFAE0074 */ sw $t6, 0x74($sp) +.L7F066930: +/* 09B460 7F066930 10820005 */ beq $a0, $v0, .L7F066948 +/* 09B464 7F066934 2861001E */ slti $at, $v1, 0x1e +/* 09B468 7F066938 14200003 */ bnez $at, .L7F066948 +/* 09B46C 7F06693C 240C0001 */ li $t4, 1 +/* 09B470 7F066940 A20C000C */ sb $t4, 0xc($s0) +/* 09B474 7F066944 AE040024 */ sw $a0, 0x24($s0) +.L7F066948: +/* 09B478 7F066948 44050000 */ mfc1 $a1, $f0 +.L7F06694C: +/* 09B47C 7F06694C 8FA40074 */ lw $a0, 0x74($sp) +/* 09B480 7F066950 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B484 7F066954 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B488 7F066958 10400004 */ beqz $v0, .L7F06696C +/* 09B48C 7F06695C 240D0001 */ li $t5, 1 +/* 09B490 7F066960 AE0D00BC */ sw $t5, 0xbc($s0) +/* 09B494 7F066964 10000005 */ b .L7F06697C +/* 09B498 7F066968 8E020024 */ lw $v0, 0x24($s0) +.L7F06696C: +/* 09B49C 7F06696C AE000024 */ sw $zero, 0x24($s0) +/* 09B4A0 7F066970 AE000020 */ sw $zero, 0x20($s0) +/* 09B4A4 7F066974 AE00001C */ sw $zero, 0x1c($s0) +/* 09B4A8 7F066978 00001025 */ move $v0, $zero +.L7F06697C: +/* 09B4AC 7F06697C 2401001A */ li $at, 26 +.L7F066980: +/* 09B4B0 7F066980 54410023 */ bnel $v0, $at, .L7F066A10 +/* 09B4B4 7F066984 2401001B */ li $at, 27 +/* 09B4B8 7F066988 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B4BC 7F06698C 00001025 */ move $v0, $zero +/* 09B4C0 7F066990 59E0001C */ blezl $t7, .L7F066A04 +/* 09B4C4 7F066994 AE000024 */ sw $zero, 0x24($s0) +/* 09B4C8 7F066998 8E190020 */ lw $t9, 0x20($s0) +/* 09B4CC 7F06699C 3C048003 */ lui $a0, %hi(D_80035124) +/* 09B4D0 7F0669A0 24845124 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5124 +/* 09B4D4 7F0669A4 44995000 */ mtc1 $t9, $f10 +/* 09B4D8 7F0669A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B4DC 7F0669AC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B4E0 7F0669B0 46805020 */ cvt.s.w $f0, $f10 +/* 09B4E4 7F0669B4 44050000 */ mfc1 $a1, $f0 +/* 09B4E8 7F0669B8 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B4EC 7F0669BC 00000000 */ nop +/* 09B4F0 7F0669C0 10400004 */ beqz $v0, .L7F0669D4 +/* 09B4F4 7F0669C4 24180001 */ li $t8, 1 +/* 09B4F8 7F0669C8 240B0001 */ li $t3, 1 +/* 09B4FC 7F0669CC 1000000A */ b .L7F0669F8 +/* 09B500 7F0669D0 AE0B00BC */ sw $t3, 0xbc($s0) +.L7F0669D4: +/* 09B504 7F0669D4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B508 7F0669D8 240D001B */ li $t5, 27 +/* 09B50C 7F0669DC A200000E */ sb $zero, 0xe($s0) +/* 09B510 7F0669E0 25CCFFFF */ addiu $t4, $t6, -1 +/* 09B514 7F0669E4 A218000C */ sb $t8, 0xc($s0) +/* 09B518 7F0669E8 AE0C002C */ sw $t4, 0x2c($s0) +/* 09B51C 7F0669EC AE0D0024 */ sw $t5, 0x24($s0) +/* 09B520 7F0669F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B524 7F0669F4 AE00001C */ sw $zero, 0x1c($s0) +.L7F0669F8: +/* 09B528 7F0669F8 10000004 */ b .L7F066A0C +/* 09B52C 7F0669FC 8E020024 */ lw $v0, 0x24($s0) +/* 09B530 7F066A00 AE000024 */ sw $zero, 0x24($s0) +.L7F066A04: +/* 09B534 7F066A04 AE000020 */ sw $zero, 0x20($s0) +/* 09B538 7F066A08 AE00001C */ sw $zero, 0x1c($s0) +.L7F066A0C: +/* 09B53C 7F066A0C 2401001B */ li $at, 27 +.L7F066A10: +/* 09B540 7F066A10 54410017 */ bnel $v0, $at, .L7F066A70 +/* 09B544 7F066A14 24010017 */ li $at, 23 +/* 09B548 7F066A18 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B54C 7F066A1C 3C048003 */ lui $a0, %hi(D_800351FC) +/* 09B550 7F066A20 248451FC */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x51fc +/* 09B554 7F066A24 448F2000 */ mtc1 $t7, $f4 +/* 09B558 7F066A28 2606007C */ addiu $a2, $s0, 0x7c +/* 09B55C 7F066A2C 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B560 7F066A30 46802020 */ cvt.s.w $f0, $f4 +/* 09B564 7F066A34 44050000 */ mfc1 $a1, $f0 +/* 09B568 7F066A38 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B56C 7F066A3C 00000000 */ nop +/* 09B570 7F066A40 10400005 */ beqz $v0, .L7F066A58 +/* 09B574 7F066A44 240B0001 */ li $t3, 1 +/* 09B578 7F066A48 24190001 */ li $t9, 1 +/* 09B57C 7F066A4C AE1900BC */ sw $t9, 0xbc($s0) +/* 09B580 7F066A50 10000006 */ b .L7F066A6C +/* 09B584 7F066A54 8E020024 */ lw $v0, 0x24($s0) +.L7F066A58: +/* 09B588 7F066A58 A20B000E */ sb $t3, 0xe($s0) +/* 09B58C 7F066A5C AE000024 */ sw $zero, 0x24($s0) +/* 09B590 7F066A60 AE000020 */ sw $zero, 0x20($s0) +/* 09B594 7F066A64 AE00001C */ sw $zero, 0x1c($s0) +/* 09B598 7F066A68 00001025 */ move $v0, $zero +.L7F066A6C: +/* 09B59C 7F066A6C 24010017 */ li $at, 23 +.L7F066A70: +/* 09B5A0 7F066A70 5441002C */ bnel $v0, $at, .L7F066B24 +/* 09B5A4 7F066A74 24010018 */ li $at, 24 +/* 09B5A8 7F066A78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B5AC 7F066A7C 00001025 */ move $v0, $zero +/* 09B5B0 7F066A80 5B000025 */ blezl $t8, .L7F066B18 +/* 09B5B4 7F066A84 AE000024 */ sw $zero, 0x24($s0) +/* 09B5B8 7F066A88 8E0E0018 */ lw $t6, 0x18($s0) +/* 09B5BC 7F066A8C 240C0018 */ li $t4, 24 +/* 09B5C0 7F066A90 51C00004 */ beql $t6, $zero, .L7F066AA4 +/* 09B5C4 7F066A94 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B5C8 7F066A98 1000001C */ b .L7F066B0C +/* 09B5CC 7F066A9C AE0C0024 */ sw $t4, 0x24($s0) +/* 09B5D0 7F066AA0 8E0D0020 */ lw $t5, 0x20($s0) +.L7F066AA4: +/* 09B5D4 7F066AA4 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B5D8 7F066AA8 2606007C */ addiu $a2, $s0, 0x7c +/* 09B5DC 7F066AAC 448D4000 */ mtc1 $t5, $f8 +/* 09B5E0 7F066AB0 AFA60030 */ sw $a2, 0x30($sp) +/* 09B5E4 7F066AB4 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B5E8 7F066AB8 46804020 */ cvt.s.w $f0, $f8 +/* 09B5EC 7F066ABC 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B5F0 7F066AC0 44050000 */ mfc1 $a1, $f0 +/* 09B5F4 7F066AC4 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B5F8 7F066AC8 00000000 */ nop +/* 09B5FC 7F066ACC 10400004 */ beqz $v0, .L7F066AE0 +/* 09B600 7F066AD0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B604 7F066AD4 240F0001 */ li $t7, 1 +/* 09B608 7F066AD8 1000000C */ b .L7F066B0C +/* 09B60C 7F066ADC AE0F00BC */ sw $t7, 0xbc($s0) +.L7F066AE0: +/* 09B610 7F066AE0 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B614 7F066AE4 24050000 */ li $a1, 0 +/* 09B618 7F066AE8 8FA60030 */ lw $a2, 0x30($sp) +/* 09B61C 7F066AEC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B620 7F066AF0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B624 7F066AF4 10400004 */ beqz $v0, .L7F066B08 +/* 09B628 7F066AF8 240B0018 */ li $t3, 24 +/* 09B62C 7F066AFC 24190001 */ li $t9, 1 +/* 09B630 7F066B00 10000002 */ b .L7F066B0C +/* 09B634 7F066B04 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066B08: +/* 09B638 7F066B08 AE0B0024 */ sw $t3, 0x24($s0) +.L7F066B0C: +/* 09B63C 7F066B0C 10000004 */ b .L7F066B20 +/* 09B640 7F066B10 8E020024 */ lw $v0, 0x24($s0) +/* 09B644 7F066B14 AE000024 */ sw $zero, 0x24($s0) +.L7F066B18: +/* 09B648 7F066B18 AE000020 */ sw $zero, 0x20($s0) +/* 09B64C 7F066B1C AE00001C */ sw $zero, 0x1c($s0) +.L7F066B20: +/* 09B650 7F066B20 24010018 */ li $at, 24 +.L7F066B24: +/* 09B654 7F066B24 54410023 */ bnel $v0, $at, .L7F066BB4 +/* 09B658 7F066B28 24010019 */ li $at, 25 +/* 09B65C 7F066B2C 8E18002C */ lw $t8, 0x2c($s0) +/* 09B660 7F066B30 00001025 */ move $v0, $zero +/* 09B664 7F066B34 5B00001C */ blezl $t8, .L7F066BA8 +/* 09B668 7F066B38 AE000024 */ sw $zero, 0x24($s0) +/* 09B66C 7F066B3C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B670 7F066B40 3C048003 */ lui $a0, %hi(D_80034F74) +/* 09B674 7F066B44 24844F74 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4f74 +/* 09B678 7F066B48 448E3000 */ mtc1 $t6, $f6 +/* 09B67C 7F066B4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B680 7F066B50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B684 7F066B54 46803020 */ cvt.s.w $f0, $f6 +/* 09B688 7F066B58 44050000 */ mfc1 $a1, $f0 +/* 09B68C 7F066B5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B690 7F066B60 00000000 */ nop +/* 09B694 7F066B64 10400004 */ beqz $v0, .L7F066B78 +/* 09B698 7F066B68 240D0001 */ li $t5, 1 +/* 09B69C 7F066B6C 240C0001 */ li $t4, 1 +/* 09B6A0 7F066B70 1000000A */ b .L7F066B9C +/* 09B6A4 7F066B74 AE0C00BC */ sw $t4, 0xbc($s0) +.L7F066B78: +/* 09B6A8 7F066B78 8E0F002C */ lw $t7, 0x2c($s0) +/* 09B6AC 7F066B7C 240B0019 */ li $t3, 25 +/* 09B6B0 7F066B80 A200000E */ sb $zero, 0xe($s0) +/* 09B6B4 7F066B84 25F9FFFF */ addiu $t9, $t7, -1 +/* 09B6B8 7F066B88 A20D000C */ sb $t5, 0xc($s0) +/* 09B6BC 7F066B8C AE19002C */ sw $t9, 0x2c($s0) +/* 09B6C0 7F066B90 AE0B0024 */ sw $t3, 0x24($s0) +/* 09B6C4 7F066B94 AE000020 */ sw $zero, 0x20($s0) +/* 09B6C8 7F066B98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066B9C: +/* 09B6CC 7F066B9C 10000004 */ b .L7F066BB0 +/* 09B6D0 7F066BA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B6D4 7F066BA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066BA8: +/* 09B6D8 7F066BA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B6DC 7F066BAC AE00001C */ sw $zero, 0x1c($s0) +.L7F066BB0: +/* 09B6E0 7F066BB0 24010019 */ li $at, 25 +.L7F066BB4: +/* 09B6E4 7F066BB4 54410017 */ bnel $v0, $at, .L7F066C14 +/* 09B6E8 7F066BB8 2401001C */ li $at, 28 +/* 09B6EC 7F066BBC 8E180020 */ lw $t8, 0x20($s0) +/* 09B6F0 7F066BC0 3C048003 */ lui $a0, %hi(D_8003504C) +/* 09B6F4 7F066BC4 2484504C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x504c +/* 09B6F8 7F066BC8 44985000 */ mtc1 $t8, $f10 +/* 09B6FC 7F066BCC 2606007C */ addiu $a2, $s0, 0x7c +/* 09B700 7F066BD0 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B704 7F066BD4 46805020 */ cvt.s.w $f0, $f10 +/* 09B708 7F066BD8 44050000 */ mfc1 $a1, $f0 +/* 09B70C 7F066BDC 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B710 7F066BE0 00000000 */ nop +/* 09B714 7F066BE4 10400005 */ beqz $v0, .L7F066BFC +/* 09B718 7F066BE8 240C0001 */ li $t4, 1 +/* 09B71C 7F066BEC 240E0001 */ li $t6, 1 +/* 09B720 7F066BF0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B724 7F066BF4 10000006 */ b .L7F066C10 +/* 09B728 7F066BF8 8E020024 */ lw $v0, 0x24($s0) +.L7F066BFC: +/* 09B72C 7F066BFC A20C000E */ sb $t4, 0xe($s0) +/* 09B730 7F066C00 AE000024 */ sw $zero, 0x24($s0) +/* 09B734 7F066C04 AE000020 */ sw $zero, 0x20($s0) +/* 09B738 7F066C08 AE00001C */ sw $zero, 0x1c($s0) +/* 09B73C 7F066C0C 00001025 */ move $v0, $zero +.L7F066C10: +/* 09B740 7F066C10 2401001C */ li $at, 28 +.L7F066C14: +/* 09B744 7F066C14 54410028 */ bnel $v0, $at, .L7F066CB8 +/* 09B748 7F066C18 2401001D */ li $at, 29 +/* 09B74C 7F066C1C 8E0D002C */ lw $t5, 0x2c($s0) +/* 09B750 7F066C20 02202025 */ move $a0, $s1 +/* 09B754 7F066C24 5DA00006 */ bgtzl $t5, .L7F066C40 +/* 09B758 7F066C28 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B75C 7F066C2C 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09B760 7F066C30 24050010 */ li $a1, 16 +/* 09B764 7F066C34 5040001C */ beql $v0, $zero, .L7F066CA8 +/* 09B768 7F066C38 AE000024 */ sw $zero, 0x24($s0) +/* 09B76C 7F066C3C 8E0F0020 */ lw $t7, 0x20($s0) +.L7F066C40: +/* 09B770 7F066C40 3C048003 */ lui $a0, %hi(D_800352D4) +/* 09B774 7F066C44 248452D4 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x52d4 +/* 09B778 7F066C48 448F2000 */ mtc1 $t7, $f4 +/* 09B77C 7F066C4C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B780 7F066C50 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B784 7F066C54 46802020 */ cvt.s.w $f0, $f4 +/* 09B788 7F066C58 44050000 */ mfc1 $a1, $f0 +/* 09B78C 7F066C5C 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B790 7F066C60 00000000 */ nop +/* 09B794 7F066C64 10400004 */ beqz $v0, .L7F066C78 +/* 09B798 7F066C68 240B0001 */ li $t3, 1 +/* 09B79C 7F066C6C 24190001 */ li $t9, 1 +/* 09B7A0 7F066C70 1000000A */ b .L7F066C9C +/* 09B7A4 7F066C74 AE1900BC */ sw $t9, 0xbc($s0) +.L7F066C78: +/* 09B7A8 7F066C78 8E18002C */ lw $t8, 0x2c($s0) +/* 09B7AC 7F066C7C 240C001D */ li $t4, 29 +/* 09B7B0 7F066C80 A200000E */ sb $zero, 0xe($s0) +/* 09B7B4 7F066C84 270EFFFF */ addiu $t6, $t8, -1 +/* 09B7B8 7F066C88 A20B000C */ sb $t3, 0xc($s0) +/* 09B7BC 7F066C8C AE0E002C */ sw $t6, 0x2c($s0) +/* 09B7C0 7F066C90 AE0C0024 */ sw $t4, 0x24($s0) +/* 09B7C4 7F066C94 AE000020 */ sw $zero, 0x20($s0) +/* 09B7C8 7F066C98 AE00001C */ sw $zero, 0x1c($s0) +.L7F066C9C: +/* 09B7CC 7F066C9C 10000005 */ b .L7F066CB4 +/* 09B7D0 7F066CA0 8E020024 */ lw $v0, 0x24($s0) +/* 09B7D4 7F066CA4 AE000024 */ sw $zero, 0x24($s0) +.L7F066CA8: +/* 09B7D8 7F066CA8 AE000020 */ sw $zero, 0x20($s0) +/* 09B7DC 7F066CAC AE00001C */ sw $zero, 0x1c($s0) +/* 09B7E0 7F066CB0 00001025 */ move $v0, $zero +.L7F066CB4: +/* 09B7E4 7F066CB4 2401001D */ li $at, 29 +.L7F066CB8: +/* 09B7E8 7F066CB8 54410017 */ bnel $v0, $at, .L7F066D18 +/* 09B7EC 7F066CBC 24010024 */ li $at, 36 +/* 09B7F0 7F066CC0 8E0D0020 */ lw $t5, 0x20($s0) +/* 09B7F4 7F066CC4 3C048003 */ lui $a0, %hi(D_800353AC) +/* 09B7F8 7F066CC8 248453AC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ac +/* 09B7FC 7F066CCC 448D4000 */ mtc1 $t5, $f8 +/* 09B800 7F066CD0 2606007C */ addiu $a2, $s0, 0x7c +/* 09B804 7F066CD4 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 09B808 7F066CD8 46804020 */ cvt.s.w $f0, $f8 +/* 09B80C 7F066CDC 44050000 */ mfc1 $a1, $f0 +/* 09B810 7F066CE0 0FC171BF */ jal sub_GAME_7F05C6FC +/* 09B814 7F066CE4 00000000 */ nop +/* 09B818 7F066CE8 10400005 */ beqz $v0, .L7F066D00 +/* 09B81C 7F066CEC 24190001 */ li $t9, 1 +/* 09B820 7F066CF0 240F0001 */ li $t7, 1 +/* 09B824 7F066CF4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B828 7F066CF8 10000006 */ b .L7F066D14 +/* 09B82C 7F066CFC 8E020024 */ lw $v0, 0x24($s0) +.L7F066D00: +/* 09B830 7F066D00 A219000E */ sb $t9, 0xe($s0) +/* 09B834 7F066D04 AE000024 */ sw $zero, 0x24($s0) +/* 09B838 7F066D08 AE000020 */ sw $zero, 0x20($s0) +/* 09B83C 7F066D0C AE00001C */ sw $zero, 0x1c($s0) +/* 09B840 7F066D10 00001025 */ move $v0, $zero +.L7F066D14: +/* 09B844 7F066D14 24010024 */ li $at, 36 +.L7F066D18: +/* 09B848 7F066D18 1441004D */ bne $v0, $at, .L7F066E50 +/* 09B84C 7F066D1C 2401002E */ li $at, 46 +/* 09B850 7F066D20 56210009 */ bnel $s1, $at, .L7F066D48 +/* 09B854 7F066D24 2401002C */ li $at, 44 +/* 09B858 7F066D28 8E0B001C */ lw $t3, 0x1c($s0) +/* 09B85C 7F066D2C 15600003 */ bnez $t3, .L7F066D3C +/* 09B860 7F066D30 00000000 */ nop +/* 09B864 7F066D34 0FC19B99 */ jal analyzeGEKey +/* 09B868 7F066D38 00000000 */ nop +.L7F066D3C: +/* 09B86C 7F066D3C 1000003F */ b .L7F066E3C +/* 09B870 7F066D40 8E050018 */ lw $a1, 0x18($s0) +/* 09B874 7F066D44 2401002C */ li $at, 44 +.L7F066D48: +/* 09B878 7F066D48 56210009 */ bnel $s1, $at, .L7F066D70 +/* 09B87C 7F066D4C 24010027 */ li $at, 39 +/* 09B880 7F066D50 8E18001C */ lw $t8, 0x1c($s0) +/* 09B884 7F066D54 17000003 */ bnez $t8, .L7F066D64 +/* 09B888 7F066D58 00000000 */ nop +/* 09B88C 7F066D5C 0FC19BC2 */ jal sub_GAME_7F066F08 +/* 09B890 7F066D60 00000000 */ nop +.L7F066D64: +/* 09B894 7F066D64 10000035 */ b .L7F066E3C +/* 09B898 7F066D68 8E050018 */ lw $a1, 0x18($s0) +/* 09B89C 7F066D6C 24010027 */ li $at, 39 +.L7F066D70: +/* 09B8A0 7F066D70 12210009 */ beq $s1, $at, .L7F066D98 +/* 09B8A4 7F066D74 24010037 */ li $at, 55 +/* 09B8A8 7F066D78 12210007 */ beq $s1, $at, .L7F066D98 +/* 09B8AC 7F066D7C 24010026 */ li $at, 38 +/* 09B8B0 7F066D80 12210005 */ beq $s1, $at, .L7F066D98 +/* 09B8B4 7F066D84 24010032 */ li $at, 50 +/* 09B8B8 7F066D88 12210003 */ beq $s1, $at, .L7F066D98 +/* 09B8BC 7F066D8C 24010049 */ li $at, 73 +/* 09B8C0 7F066D90 5621000F */ bnel $s1, $at, .L7F066DD0 +/* 09B8C4 7F066D94 24010033 */ li $at, 51 +.L7F066D98: +/* 09B8C8 7F066D98 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B8CC 7F066D9C 15C00009 */ bnez $t6, .L7F066DC4 +/* 09B8D0 7F066DA0 00000000 */ nop +/* 09B8D4 7F066DA4 0FC0F0FF */ jal sub_GAME_7F03C3FC +/* 09B8D8 7F066DA8 00000000 */ nop +/* 09B8DC 7F066DAC 10400005 */ beqz $v0, .L7F066DC4 +/* 09B8E0 7F066DB0 00000000 */ nop +/* 09B8E4 7F066DB4 8C430004 */ lw $v1, 4($v0) +/* 09B8E8 7F066DB8 906C0002 */ lbu $t4, 2($v1) +/* 09B8EC 7F066DBC 358D0040 */ ori $t5, $t4, 0x40 +/* 09B8F0 7F066DC0 A06D0002 */ sb $t5, 2($v1) +.L7F066DC4: +/* 09B8F4 7F066DC4 1000001D */ b .L7F066E3C +/* 09B8F8 7F066DC8 8E050018 */ lw $a1, 0x18($s0) +/* 09B8FC 7F066DCC 24010033 */ li $at, 51 +.L7F066DD0: +/* 09B900 7F066DD0 1221001A */ beq $s1, $at, .L7F066E3C +/* 09B904 7F066DD4 8E050018 */ lw $a1, 0x18($s0) +/* 09B908 7F066DD8 24010034 */ li $at, 52 +/* 09B90C 7F066DDC 12210017 */ beq $s1, $at, .L7F066E3C +/* 09B910 7F066DE0 2401003A */ li $at, 58 +/* 09B914 7F066DE4 12210015 */ beq $s1, $at, .L7F066E3C +/* 09B918 7F066DE8 2401003B */ li $at, 59 +/* 09B91C 7F066DEC 12210013 */ beq $s1, $at, .L7F066E3C +/* 09B920 7F066DF0 24010051 */ li $at, 81 +/* 09B924 7F066DF4 12210011 */ beq $s1, $at, .L7F066E3C +/* 09B928 7F066DF8 24010052 */ li $at, 82 +/* 09B92C 7F066DFC 1221000F */ beq $s1, $at, .L7F066E3C +/* 09B930 7F066E00 24010053 */ li $at, 83 +/* 09B934 7F066E04 1221000D */ beq $s1, $at, .L7F066E3C +/* 09B938 7F066E08 2401002D */ li $at, 45 +/* 09B93C 7F066E0C 1221000B */ beq $s1, $at, .L7F066E3C +/* 09B940 7F066E10 24010029 */ li $at, 41 +/* 09B944 7F066E14 12210009 */ beq $s1, $at, .L7F066E3C +/* 09B948 7F066E18 2401002A */ li $at, 42 +/* 09B94C 7F066E1C 12210007 */ beq $s1, $at, .L7F066E3C +/* 09B950 7F066E20 24010035 */ li $at, 53 +/* 09B954 7F066E24 12210005 */ beq $s1, $at, .L7F066E3C +/* 09B958 7F066E28 24010036 */ li $at, 54 +/* 09B95C 7F066E2C 12210003 */ beq $s1, $at, .L7F066E3C +/* 09B960 7F066E30 24010025 */ li $at, 37 +/* 09B964 7F066E34 12210001 */ beq $s1, $at, .L7F066E3C +/* 09B968 7F066E38 00000000 */ nop +.L7F066E3C: +/* 09B96C 7F066E3C 50A00005 */ beql $a1, $zero, .L7F066E54 +/* 09B970 7F066E40 8FBF0024 */ lw $ra, 0x24($sp) +/* 09B974 7F066E44 AE000024 */ sw $zero, 0x24($s0) +/* 09B978 7F066E48 AE000020 */ sw $zero, 0x20($s0) +/* 09B97C 7F066E4C AE00001C */ sw $zero, 0x1c($s0) +.L7F066E50: +/* 09B980 7F066E50 8FBF0024 */ lw $ra, 0x24($sp) +.L7F066E54: +/* 09B984 7F066E54 8FB0001C */ lw $s0, 0x1c($sp) +/* 09B988 7F066E58 8FB10020 */ lw $s1, 0x20($sp) +/* 09B98C 7F066E5C 03E00008 */ jr $ra +/* 09B990 7F066E60 27BD01D0 */ addiu $sp, $sp, 0x1d0 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( + .late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099BFC 7F06508C 000410C0 */ sll $v0, $a0, 3 +/* 099C00 7F065090 00441023 */ subu $v0, $v0, $a0 +/* 099C04 7F065094 00021080 */ sll $v0, $v0, 2 +/* 099C08 7F065098 27BDFE20 */ addiu $sp, $sp, -0x1e0 +/* 099C0C 7F06509C 00441021 */ addu $v0, $v0, $a0 +/* 099C10 7F0650A0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 099C14 7F0650A4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 099C18 7F0650A8 00021080 */ sll $v0, $v0, 2 +/* 099C1C 7F0650AC 00441021 */ addu $v0, $v0, $a0 +/* 099C20 7F0650B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 099C24 7F0650B4 000210C0 */ sll $v0, $v0, 3 +/* 099C28 7F0650B8 AFBF0024 */ sw $ra, 0x24($sp) +/* 099C2C 7F0650BC 01C28021 */ addu $s0, $t6, $v0 +/* 099C30 7F0650C0 AFB10020 */ sw $s1, 0x20($sp) +/* 099C34 7F0650C4 AFA501E4 */ sw $a1, 0x1e4($sp) +/* 099C38 7F0650C8 26100870 */ addiu $s0, $s0, 0x870 +/* 099C3C 7F0650CC AFA2003C */ sw $v0, 0x3c($sp) +/* 099C40 7F0650D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099C44 7F0650D4 AFA401E0 */ sw $a0, 0x1e0($sp) +/* 099C48 7F0650D8 00408825 */ move $s1, $v0 +/* 099C4C 7F0650DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099C50 7F0650E0 00402025 */ move $a0, $v0 +/* 099C54 7F0650E4 8FA301E4 */ lw $v1, 0x1e4($sp) +/* 099C58 7F0650E8 8E0F0010 */ lw $t7, 0x10($s0) +/* 099C5C 7F0650EC 00403025 */ move $a2, $v0 +/* 099C60 7F0650F0 AE030010 */ sw $v1, 0x10($s0) +/* 099C64 7F0650F4 14600003 */ bnez $v1, .Ljp7F065104 +/* 099C68 7F0650F8 AE0F0014 */ sw $t7, 0x14($s0) +/* 099C6C 7F0650FC 24180001 */ li $t8, 1 +/* 099C70 7F065100 AE180018 */ sw $t8, 0x18($s0) +.Ljp7F065104: +/* 099C74 7F065104 A200000C */ sb $zero, 0xc($s0) +/* 099C78 7F065108 A200000D */ sb $zero, 0xd($s0) +/* 099C7C 7F06510C 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 099C80 7F065110 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 099C84 7F065114 58400008 */ blezl $v0, .Ljp7F065138 +/* 099C88 7F065118 8E190024 */ lw $t9, 0x24($s0) +/* 099C8C 7F06511C 8E190020 */ lw $t9, 0x20($s0) +/* 099C90 7F065120 8E0F001C */ lw $t7, 0x1c($s0) +/* 099C94 7F065124 03227021 */ addu $t6, $t9, $v0 +/* 099C98 7F065128 25F80001 */ addiu $t8, $t7, 1 +/* 099C9C 7F06512C AE0E0020 */ sw $t6, 0x20($s0) +/* 099CA0 7F065130 AE18001C */ sw $t8, 0x1c($s0) +/* 099CA4 7F065134 8E190024 */ lw $t9, 0x24($s0) +.Ljp7F065138: +/* 099CA8 7F065138 AE0000BC */ sw $zero, 0xbc($s0) +/* 099CAC 7F06513C 1720007D */ bnez $t9, .Ljp7F065334 +/* 099CB0 7F065140 24010016 */ li $at, 22 +/* 099CB4 7F065144 56210006 */ bnel $s1, $at, .Ljp7F065160 +/* 099CB8 7F065148 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CBC 7F06514C 8E0E0018 */ lw $t6, 0x18($s0) +/* 099CC0 7F065150 51C00003 */ beql $t6, $zero, .Ljp7F065160 +/* 099CC4 7F065154 8E0F0010 */ lw $t7, 0x10($s0) +/* 099CC8 7F065158 AE000030 */ sw $zero, 0x30($s0) +/* 099CCC 7F06515C 8E0F0010 */ lw $t7, 0x10($s0) +.Ljp7F065160: +/* 099CD0 7F065160 51E00017 */ beql $t7, $zero, .Ljp7F0651C0 +/* 099CD4 7F065164 8E020028 */ lw $v0, 0x28($s0) +/* 099CD8 7F065168 12200014 */ beqz $s1, .Ljp7F0651BC +/* 099CDC 7F06516C 02202025 */ move $a0, $s1 +/* 099CE0 7F065170 24050010 */ li $a1, 16 +/* 099CE4 7F065174 0FC17975 */ jal bondwalkItemCheckBitflags +/* 099CE8 7F065178 AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099CEC 7F06517C 14400003 */ bnez $v0, .Ljp7F06518C +/* 099CF0 7F065180 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099CF4 7F065184 8E18002C */ lw $t8, 0x2c($s0) +/* 099CF8 7F065188 1B00000C */ blez $t8, .Ljp7F0651BC +.Ljp7F06518C: +/* 099CFC 7F06518C 24010016 */ li $at, 22 +/* 099D00 7F065190 16210005 */ bne $s1, $at, .Ljp7F0651A8 +/* 099D04 7F065194 240E0001 */ li $t6, 1 +/* 099D08 7F065198 8E190030 */ lw $t9, 0x30($s0) +/* 099D0C 7F06519C 2B2100C8 */ slti $at, $t9, 0xc8 +/* 099D10 7F0651A0 50200007 */ beql $at, $zero, .Ljp7F0651C0 +/* 099D14 7F0651A4 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651A8: +/* 099D18 7F0651A8 AE0E0024 */ sw $t6, 0x24($s0) +/* 099D1C 7F0651AC AE000020 */ sw $zero, 0x20($s0) +/* 099D20 7F0651B0 AE00001C */ sw $zero, 0x1c($s0) +/* 099D24 7F0651B4 10000007 */ b .Ljp7F0651D4 +/* 099D28 7F0651B8 AE000018 */ sw $zero, 0x18($s0) +.Ljp7F0651BC: +/* 099D2C 7F0651BC 8E020028 */ lw $v0, 0x28($s0) +.Ljp7F0651C0: +/* 099D30 7F0651C0 50400005 */ beql $v0, $zero, .Ljp7F0651D8 +/* 099D34 7F0651C4 8E0F0024 */ lw $t7, 0x24($s0) +/* 099D38 7F0651C8 AE020024 */ sw $v0, 0x24($s0) +/* 099D3C 7F0651CC AE000020 */ sw $zero, 0x20($s0) +/* 099D40 7F0651D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0651D4: +/* 099D44 7F0651D4 8E0F0024 */ lw $t7, 0x24($s0) +.Ljp7F0651D8: +/* 099D48 7F0651D8 AE000028 */ sw $zero, 0x28($s0) +/* 099D4C 7F0651DC 55E00056 */ bnezl $t7, .Ljp7F065338 +/* 099D50 7F0651E0 8E020024 */ lw $v0, 0x24($s0) +/* 099D54 7F0651E4 8E18002C */ lw $t8, 0x2c($s0) +/* 099D58 7F0651E8 57000053 */ bnezl $t8, .Ljp7F065338 +/* 099D5C 7F0651EC 8E020024 */ lw $v0, 0x24($s0) +/* 099D60 7F0651F0 50C00051 */ beql $a2, $zero, .Ljp7F065338 +/* 099D64 7F0651F4 8E020024 */ lw $v0, 0x24($s0) +/* 099D68 7F0651F8 0FC3021B */ jal get_controls_locked_flag +/* 099D6C 7F0651FC AFA601D4 */ sw $a2, 0x1d4($sp) +/* 099D70 7F065200 1440004C */ bnez $v0, .Ljp7F065334 +/* 099D74 7F065204 8FA601D4 */ lw $a2, 0x1d4($sp) +/* 099D78 7F065208 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 099D7C 7F06520C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 099D80 7F065210 3C0E8003 */ lui $t6, %hi(D_80032458) # $t6, 0x8003 +/* 099D84 7F065214 8C5929C4 */ lw $t9, 0x29c4($v0) +/* 099D88 7F065218 57200047 */ bnezl $t9, .Ljp7F065338 +/* 099D8C 7F06521C 8E020024 */ lw $v0, 0x24($s0) +/* 099D90 7F065220 8DCE2498 */ lw $t6, %lo(D_80032458)($t6) +/* 099D94 7F065224 24010001 */ li $at, 1 +/* 099D98 7F065228 11C00009 */ beqz $t6, .Ljp7F065250 +/* 099D9C 7F06522C 00000000 */ nop +/* 099DA0 7F065230 14C10007 */ bne $a2, $at, .Ljp7F065250 +/* 099DA4 7F065234 00067880 */ sll $t7, $a2, 2 +/* 099DA8 7F065238 004F1821 */ addu $v1, $v0, $t7 +/* 099DAC 7F06523C 8C781130 */ lw $t8, 0x1130($v1) +/* 099DB0 7F065240 24190001 */ li $t9, 1 +/* 099DB4 7F065244 1F000002 */ bgtz $t8, .Ljp7F065250 +/* 099DB8 7F065248 00000000 */ nop +/* 099DBC 7F06524C AC791130 */ sw $t9, 0x1130($v1) +.Ljp7F065250: +/* 099DC0 7F065250 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099DC4 7F065254 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 099DC8 7F065258 18400006 */ blez $v0, .Ljp7F065274 +/* 099DCC 7F06525C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099DD0 7F065260 240E0009 */ li $t6, 9 +/* 099DD4 7F065264 AE0E0024 */ sw $t6, 0x24($s0) +/* 099DD8 7F065268 AE000020 */ sw $zero, 0x20($s0) +/* 099DDC 7F06526C 10000031 */ b .Ljp7F065334 +/* 099DE0 7F065270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065274: +/* 099DE4 7F065274 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099DE8 7F065278 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 099DEC 7F06527C 240E0001 */ li $t6, 1 +/* 099DF0 7F065280 8DF80FC8 */ lw $t8, 0xfc8($t7) +/* 099DF4 7F065284 01D92023 */ subu $a0, $t6, $t9 +/* 099DF8 7F065288 5300002B */ beql $t8, $zero, .Ljp7F065338 +/* 099DFC 7F06528C 8E020024 */ lw $v0, 0x24($s0) +/* 099E00 7F065290 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 099E04 7F065294 AFA40040 */ sw $a0, 0x40($sp) +/* 099E08 7F065298 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 099E0C 7F06529C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 099E10 7F0652A0 8FB8003C */ lw $t8, 0x3c($sp) +/* 099E14 7F0652A4 00402025 */ move $a0, $v0 +/* 099E18 7F0652A8 01F81823 */ subu $v1, $t7, $t8 +/* 099E1C 7F0652AC 8C6E0C3C */ lw $t6, 0xc3c($v1) +/* 099E20 7F0652B0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099E24 7F0652B4 55C00020 */ bnezl $t6, .Ljp7F065338 +/* 099E28 7F0652B8 8E020024 */ lw $v0, 0x24($s0) +/* 099E2C 7F0652BC 8C790028 */ lw $t9, 0x28($v1) +/* 099E30 7F0652C0 5720001D */ bnezl $t9, .Ljp7F065338 +/* 099E34 7F0652C4 8E020024 */ lw $v0, 0x24($s0) +/* 099E38 7F0652C8 1040000D */ beqz $v0, .Ljp7F065300 +/* 099E3C 7F0652CC 00000000 */ nop +/* 099E40 7F0652D0 8C6F002C */ lw $t7, 0x2c($v1) +/* 099E44 7F0652D4 55E00018 */ bnezl $t7, .Ljp7F065338 +/* 099E48 7F0652D8 8E020024 */ lw $v0, 0x24($s0) +/* 099E4C 7F0652DC 0FC1A686 */ jal get_ammo_type_for_weapon +/* 099E50 7F0652E0 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E54 7F0652E4 10400013 */ beqz $v0, .Ljp7F065334 +/* 099E58 7F0652E8 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E5C 7F0652EC 8FA40040 */ lw $a0, 0x40($sp) +/* 099E60 7F0652F0 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 099E64 7F0652F4 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E68 7F0652F8 1C40000E */ bgtz $v0, .Ljp7F065334 +/* 099E6C 7F0652FC 8FA301CC */ lw $v1, 0x1cc($sp) +.Ljp7F065300: +/* 099E70 7F065300 0FC17748 */ jal autoadvance_on_deplete_all_ammo +/* 099E74 7F065304 AFA301CC */ sw $v1, 0x1cc($sp) +/* 099E78 7F065308 8FA301CC */ lw $v1, 0x1cc($sp) +/* 099E7C 7F06530C 8E180028 */ lw $t8, 0x28($s0) +/* 099E80 7F065310 AE00001C */ sw $zero, 0x1c($s0) +/* 099E84 7F065314 AE000020 */ sw $zero, 0x20($s0) +/* 099E88 7F065318 AE000028 */ sw $zero, 0x28($s0) +/* 099E8C 7F06531C AE180024 */ sw $t8, 0x24($s0) +/* 099E90 7F065320 8C6E0028 */ lw $t6, 0x28($v1) +/* 099E94 7F065324 AC60001C */ sw $zero, 0x1c($v1) +/* 099E98 7F065328 AC600020 */ sw $zero, 0x20($v1) +/* 099E9C 7F06532C AC600028 */ sw $zero, 0x28($v1) +/* 099EA0 7F065330 AC6E0024 */ sw $t6, 0x24($v1) +.Ljp7F065334: +/* 099EA4 7F065334 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065338: +/* 099EA8 7F065338 24010001 */ li $at, 1 +/* 099EAC 7F06533C 1441007E */ bne $v0, $at, .Ljp7F065538 +/* 099EB0 7F065340 2639FFFF */ addiu $t9, $s1, -1 +/* 099EB4 7F065344 2F210058 */ sltiu $at, $t9, 0x58 +/* 099EB8 7F065348 10200076 */ beqz $at, Weapon_function_collectible +/* 099EBC 7F06534C 0019C880 */ sll $t9, $t9, 2 +/* 099EC0 7F065350 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 099EC4 7F065354 00390821 */ addu $at, $at, $t9 +/* 099EC8 7F065358 8C393F54 */ lw $t9, %lo(jpt_80053F24)($at) +/* 099ECC 7F06535C 03200008 */ jr $t9 +/* 099ED0 7F065360 00000000 */ nop +Weapon_function_magnum: +/* 099ED4 7F065364 8E0F0020 */ lw $t7, 0x20($s0) +/* 099ED8 7F065368 24180002 */ li $t8, 2 +/* 099EDC 7F06536C 29E10006 */ slti $at, $t7, 6 +/* 099EE0 7F065370 54200070 */ bnezl $at, .Ljp7F065534 +/* 099EE4 7F065374 AE000398 */ sw $zero, 0x398($s0) +/* 099EE8 7F065378 AE180024 */ sw $t8, 0x24($s0) +/* 099EEC 7F06537C AE000020 */ sw $zero, 0x20($s0) +/* 099EF0 7F065380 1000006B */ b .Ljp7F065530 +/* 099EF4 7F065384 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099EF8 7F065388 8E0E001C */ lw $t6, 0x1c($s0) +/* 099EFC 7F06538C 00002025 */ move $a0, $zero +/* 099F00 7F065390 00002825 */ move $a1, $zero +/* 099F04 7F065394 15C00005 */ bnez $t6, .Ljp7F0653AC +/* 099F08 7F065398 00003025 */ move $a2, $zero +/* 099F0C 7F06539C 0FC20370 */ jal currentPlayerSetFadeColour +/* 099F10 7F0653A0 3C073F80 */ lui $a3, 0x3f80 +/* 099F14 7F0653A4 10000063 */ b .Ljp7F065534 +/* 099F18 7F0653A8 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F0653AC: +/* 099F1C 7F0653AC 8E190020 */ lw $t9, 0x20($s0) +/* 099F20 7F0653B0 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099F24 7F0653B4 00002825 */ move $a1, $zero +/* 099F28 7F0653B8 1B20005D */ blez $t9, .Ljp7F065530 +/* 099F2C 7F0653BC 00003025 */ move $a2, $zero +/* 099F30 7F0653C0 44802000 */ mtc1 $zero, $f4 +/* 099F34 7F0653C4 44816000 */ mtc1 $at, $f12 +/* 099F38 7F0653C8 00003825 */ move $a3, $zero +/* 099F3C 7F0653CC 0FC2037C */ jal currentPlayerAdjustFade +/* 099F40 7F0653D0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 099F44 7F0653D4 240F0002 */ li $t7, 2 +/* 099F48 7F0653D8 AE0F0024 */ sw $t7, 0x24($s0) +/* 099F4C 7F0653DC AE000020 */ sw $zero, 0x20($s0) +/* 099F50 7F0653E0 10000053 */ b .Ljp7F065530 +/* 099F54 7F0653E4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099F58 7F0653E8 24180002 */ li $t8, 2 +/* 099F5C 7F0653EC AE180024 */ sw $t8, 0x24($s0) +/* 099F60 7F0653F0 AE000020 */ sw $zero, 0x20($s0) +/* 099F64 7F0653F4 1000004E */ b .Ljp7F065530 +/* 099F68 7F0653F8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099F6C 7F0653FC 240E001C */ li $t6, 28 +/* 099F70 7F065400 AE0E0024 */ sw $t6, 0x24($s0) +/* 099F74 7F065404 AE000020 */ sw $zero, 0x20($s0) +/* 099F78 7F065408 10000049 */ b .Ljp7F065530 +/* 099F7C 7F06540C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 099F80 7F065410 0C002918 */ jal randomGetNext +/* 099F84 7F065414 00000000 */ nop +/* 099F88 7F065418 30590001 */ andi $t9, $v0, 1 +/* 099F8C 7F06541C 17200004 */ bnez $t9, .Ljp7F065430 +/* 099F90 7F065420 24180014 */ li $t8, 20 +/* 099F94 7F065424 240F0011 */ li $t7, 17 +/* 099F98 7F065428 10000002 */ b .Ljp7F065434 +/* 099F9C 7F06542C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065430: +/* 099FA0 7F065430 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F065434: +/* 099FA4 7F065434 AE000020 */ sw $zero, 0x20($s0) +/* 099FA8 7F065438 1000003D */ b .Ljp7F065530 +/* 099FAC 7F06543C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 099FB0 7F065440 8E0E0018 */ lw $t6, 0x18($s0) +/* 099FB4 7F065444 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 099FB8 7F065448 55C00006 */ bnezl $t6, .Ljp7F065464 +/* 099FBC 7F06544C 8E0F0020 */ lw $t7, 0x20($s0) +/* 099FC0 7F065450 8E190020 */ lw $t9, 0x20($s0) +/* 099FC4 7F065454 2B2100F0 */ slti $at, $t9, 0xf0 +/* 099FC8 7F065458 54200036 */ bnezl $at, .Ljp7F065534 +/* 099FCC 7F06545C AE000398 */ sw $zero, 0x398($s0) +/* 099FD0 7F065460 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F065464: +/* 099FD4 7F065464 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 099FD8 7F065468 240E001A */ li $t6, 26 +/* 099FDC 7F06546C AF0F105C */ sw $t7, 0x105c($t8) +/* 099FE0 7F065470 AE0E0024 */ sw $t6, 0x24($s0) +/* 099FE4 7F065474 AE00001C */ sw $zero, 0x1c($s0) +/* 099FE8 7F065478 1000002D */ b .Ljp7F065530 +/* 099FEC 7F06547C AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099FF0 7F065480 0C002918 */ jal randomGetNext +/* 099FF4 7F065484 00000000 */ nop +/* 099FF8 7F065488 30590001 */ andi $t9, $v0, 1 +/* 099FFC 7F06548C 17200004 */ bnez $t9, .Ljp7F0654A0 +/* 09A000 7F065490 24180020 */ li $t8, 32 +/* 09A004 7F065494 240F001E */ li $t7, 30 +/* 09A008 7F065498 10000002 */ b .Ljp7F0654A4 +/* 09A00C 7F06549C AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0654A0: +/* 09A010 7F0654A0 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F0654A4: +/* 09A014 7F0654A4 AE000020 */ sw $zero, 0x20($s0) +/* 09A018 7F0654A8 10000021 */ b .Ljp7F065530 +/* 09A01C 7F0654AC AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 09A020 7F0654B0 240E0017 */ li $t6, 23 +/* 09A024 7F0654B4 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A028 7F0654B8 AE000020 */ sw $zero, 0x20($s0) +/* 09A02C 7F0654BC 1000001C */ b .Ljp7F065530 +/* 09A030 7F0654C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 09A034 7F0654C4 8E190020 */ lw $t9, 0x20($s0) +/* 09A038 7F0654C8 3C048003 */ lui $a0, %hi(D_80035A90) # $a0, 0x8003 +/* 09A03C 7F0654CC 24845AD0 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5ad0 +/* 09A040 7F0654D0 44993000 */ mtc1 $t9, $f6 +/* 09A044 7F0654D4 2606007C */ addiu $a2, $s0, 0x7c +/* 09A048 7F0654D8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A04C 7F0654DC 46803020 */ cvt.s.w $f0, $f6 +/* 09A050 7F0654E0 44050000 */ mfc1 $a1, $f0 +/* 09A054 7F0654E4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A058 7F0654E8 00000000 */ nop +/* 09A05C 7F0654EC 10400004 */ beqz $v0, .Ljp7F065500 +/* 09A060 7F0654F0 24180002 */ li $t8, 2 +/* 09A064 7F0654F4 240F0001 */ li $t7, 1 +/* 09A068 7F0654F8 1000000D */ b .Ljp7F065530 +/* 09A06C 7F0654FC AE0F00BC */ sw $t7, 0xbc($s0) +.Ljp7F065500: +/* 09A070 7F065500 AE180024 */ sw $t8, 0x24($s0) +/* 09A074 7F065504 AE000020 */ sw $zero, 0x20($s0) +/* 09A078 7F065508 10000009 */ b .Ljp7F065530 +/* 09A07C 7F06550C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 09A080 7F065510 240E0024 */ li $t6, 36 +/* 09A084 7F065514 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A088 7F065518 AE000020 */ sw $zero, 0x20($s0) +/* 09A08C 7F06551C 10000004 */ b .Ljp7F065530 +/* 09A090 7F065520 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +/* 09A094 7F065524 AE000024 */ sw $zero, 0x24($s0) +/* 09A098 7F065528 AE000020 */ sw $zero, 0x20($s0) +/* 09A09C 7F06552C AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065530: +/* 09A0A0 7F065530 AE000398 */ sw $zero, 0x398($s0) +.Ljp7F065534: +/* 09A0A4 7F065534 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065538: +/* 09A0A8 7F065538 24010002 */ li $at, 2 +/* 09A0AC 7F06553C 5441016C */ bnel $v0, $at, .Ljp7F065AF0 +/* 09A0B0 7F065540 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A0B4 7F065544 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09A0B8 7F065548 02202025 */ move $a0, $s1 +/* 09A0BC 7F06554C 10400003 */ beqz $v0, .Ljp7F06555C +/* 09A0C0 7F065550 262FFFFE */ addiu $t7, $s1, -2 +/* 09A0C4 7F065554 8E19002C */ lw $t9, 0x2c($s0) +/* 09A0C8 7F065558 1B200148 */ blez $t9, .Ljp7F065A7C +.Ljp7F06555C: +/* 09A0CC 7F06555C 2DE1003B */ sltiu $at, $t7, 0x3b +/* 09A0D0 7F065560 102000AF */ beqz $at, Weapon_shooting_throwable +/* 09A0D4 7F065564 000F7880 */ sll $t7, $t7, 2 +/* 09A0D8 7F065568 3C018005 */ lui $at, %hi(jpt_80054084) +/* 09A0DC 7F06556C 002F0821 */ addu $at, $at, $t7 +/* 09A0E0 7F065570 8C2F40B4 */ lw $t7, %lo(jpt_80054084)($at) +/* 09A0E4 7F065574 01E00008 */ jr $t7 +/* 09A0E8 7F065578 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 09A0EC 7F06557C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A0F0 7F065580 240F0003 */ li $t7, 3 +/* 09A0F4 7F065584 5700000D */ bnezl $t8, .Ljp7F0655BC +/* 09A0F8 7F065588 AE0F0024 */ sw $t7, 0x24($s0) +/* 09A0FC 7F06558C 0FC3021B */ jal get_controls_locked_flag +/* 09A100 7F065590 00000000 */ nop +/* 09A104 7F065594 2C450001 */ sltiu $a1, $v0, 1 +/* 09A108 7F065598 10A00005 */ beqz $a1, .Ljp7F0655B0 +/* 09A10C 7F06559C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A110 7F0655A0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A114 7F0655A4 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 09A118 7F0655A8 2CB90001 */ sltiu $t9, $a1, 1 +/* 09A11C 7F0655AC 03202825 */ move $a1, $t9 +.Ljp7F0655B0: +/* 09A120 7F0655B0 1000009B */ b Weapon_shooting_throwable +/* 09A124 7F0655B4 A205000C */ sb $a1, 0xc($s0) +/* 09A128 7F0655B8 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0655BC: +/* 09A12C 7F0655BC AE000020 */ sw $zero, 0x20($s0) +/* 09A130 7F0655C0 10000097 */ b Weapon_shooting_throwable +/* 09A134 7F0655C4 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 09A138 7F0655C8 8E18001C */ lw $t8, 0x1c($s0) +/* 09A13C 7F0655CC 24190003 */ li $t9, 3 +/* 09A140 7F0655D0 5700001E */ bnezl $t8, .Ljp7F06564C +/* 09A144 7F0655D4 AE190024 */ sw $t9, 0x24($s0) +/* 09A148 7F0655D8 0FC26C01 */ jal getPlayerCount +/* 09A14C 7F0655DC 00000000 */ nop +/* 09A150 7F0655E0 24010001 */ li $at, 1 +/* 09A154 7F0655E4 50410009 */ beql $v0, $at, .Ljp7F06560C +/* 09A158 7F0655E8 240F0001 */ li $t7, 1 +/* 09A15C 7F0655EC 0FC31B59 */ jal checkGamePaused +/* 09A160 7F0655F0 00000000 */ nop +/* 09A164 7F0655F4 14400006 */ bnez $v0, .Ljp7F065610 +/* 09A168 7F0655F8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A16C 7F0655FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A170 7F065600 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A174 7F065604 17200002 */ bnez $t9, .Ljp7F065610 +/* 09A178 7F065608 240F0001 */ li $t7, 1 +.Ljp7F06560C: +/* 09A17C 7F06560C A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065610: +/* 09A180 7F065610 0FC3021B */ jal get_controls_locked_flag +/* 09A184 7F065614 00000000 */ nop +/* 09A188 7F065618 2C450001 */ sltiu $a1, $v0, 1 +/* 09A18C 7F06561C 10A00005 */ beqz $a1, .Ljp7F065634 +/* 09A190 7F065620 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A194 7F065624 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A198 7F065628 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A19C 7F06562C 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A1A0 7F065630 01C02825 */ move $a1, $t6 +.Ljp7F065634: +/* 09A1A4 7F065634 A205000C */ sb $a1, 0xc($s0) +/* 09A1A8 7F065638 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09A1AC 7F06563C 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A1B0 7F065640 10000078 */ b .Ljp7F065824 +/* 09A1B4 7F065644 820F000C */ lb $t7, 0xc($s0) +/* 09A1B8 7F065648 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F06564C: +/* 09A1BC 7F06564C AE000020 */ sw $zero, 0x20($s0) +/* 09A1C0 7F065650 10000073 */ b Weapon_shooting_throwable +/* 09A1C4 7F065654 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 09A1C8 7F065658 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A1CC 7F06565C 11E00013 */ beqz $t7, .Ljp7F0656AC +/* 09A1D0 7F065660 00000000 */ nop +/* 09A1D4 7F065664 8E180010 */ lw $t8, 0x10($s0) +/* 09A1D8 7F065668 02202025 */ move $a0, $s1 +/* 09A1DC 7F06566C 1700000F */ bnez $t8, .Ljp7F0656AC +/* 09A1E0 7F065670 00000000 */ nop +/* 09A1E4 7F065674 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09A1E8 7F065678 24050004 */ li $a1, 4 +/* 09A1EC 7F06567C 50400035 */ beql $v0, $zero, .Ljp7F065754 +/* 09A1F0 7F065680 24190003 */ li $t9, 3 +/* 09A1F4 7F065684 0FC1F301 */ jal get_BONDdata_is_aiming +/* 09A1F8 7F065688 00000000 */ nop +/* 09A1FC 7F06568C 54400031 */ bnezl $v0, .Ljp7F065754 +/* 09A200 7F065690 24190003 */ li $t9, 3 +/* 09A204 7F065694 8E0E0398 */ lw $t6, 0x398($s0) +/* 09A208 7F065698 24010003 */ li $at, 3 +/* 09A20C 7F06569C 01C1001A */ div $zero, $t6, $at +/* 09A210 7F0656A0 0000C810 */ mfhi $t9 +/* 09A214 7F0656A4 5320002B */ beql $t9, $zero, .Ljp7F065754 +/* 09A218 7F0656A8 24190003 */ li $t9, 3 +.Ljp7F0656AC: +/* 09A21C 7F0656AC 0FC1793B */ jal bondwalkItemGetAutomaticFiringRate +/* 09A220 7F0656B0 02202025 */ move $a0, $s1 +/* 09A224 7F0656B4 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A228 7F0656B8 01E2001A */ div $zero, $t7, $v0 +/* 09A22C 7F0656BC 0000C010 */ mfhi $t8 +/* 09A230 7F0656C0 14400002 */ bnez $v0, .Ljp7F0656CC +/* 09A234 7F0656C4 00000000 */ nop +/* 09A238 7F0656C8 0007000D */ break 7 +.Ljp7F0656CC: +/* 09A23C 7F0656CC 2401FFFF */ li $at, -1 +/* 09A240 7F0656D0 14410004 */ bne $v0, $at, .Ljp7F0656E4 +/* 09A244 7F0656D4 3C018000 */ lui $at, 0x8000 +/* 09A248 7F0656D8 15E10002 */ bne $t7, $at, .Ljp7F0656E4 +/* 09A24C 7F0656DC 00000000 */ nop +/* 09A250 7F0656E0 0006000D */ break 6 +.Ljp7F0656E4: +/* 09A254 7F0656E4 5700004F */ bnezl $t8, .Ljp7F065824 +/* 09A258 7F0656E8 820F000C */ lb $t7, 0xc($s0) +/* 09A25C 7F0656EC 0FC26C01 */ jal getPlayerCount +/* 09A260 7F0656F0 00000000 */ nop +/* 09A264 7F0656F4 24010001 */ li $at, 1 +/* 09A268 7F0656F8 50410009 */ beql $v0, $at, .Ljp7F065720 +/* 09A26C 7F0656FC 240F0001 */ li $t7, 1 +/* 09A270 7F065700 0FC31B59 */ jal checkGamePaused +/* 09A274 7F065704 00000000 */ nop +/* 09A278 7F065708 14400006 */ bnez $v0, .Ljp7F065724 +/* 09A27C 7F06570C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A280 7F065710 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A284 7F065714 8DD929C4 */ lw $t9, 0x29c4($t6) +/* 09A288 7F065718 17200002 */ bnez $t9, .Ljp7F065724 +/* 09A28C 7F06571C 240F0001 */ li $t7, 1 +.Ljp7F065720: +/* 09A290 7F065720 A20F000D */ sb $t7, 0xd($s0) +.Ljp7F065724: +/* 09A294 7F065724 0FC3021B */ jal get_controls_locked_flag +/* 09A298 7F065728 00000000 */ nop +/* 09A29C 7F06572C 2C450001 */ sltiu $a1, $v0, 1 +/* 09A2A0 7F065730 10A00005 */ beqz $a1, .Ljp7F065748 +/* 09A2A4 7F065734 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A2A8 7F065738 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A2AC 7F06573C 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A2B0 7F065740 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A2B4 7F065744 01C02825 */ move $a1, $t6 +.Ljp7F065748: +/* 09A2B8 7F065748 10000035 */ b Weapon_shooting_throwable +/* 09A2BC 7F06574C A205000C */ sb $a1, 0xc($s0) +/* 09A2C0 7F065750 24190003 */ li $t9, 3 +.Ljp7F065754: +/* 09A2C4 7F065754 AE190024 */ sw $t9, 0x24($s0) +/* 09A2C8 7F065758 AE000020 */ sw $zero, 0x20($s0) +/* 09A2CC 7F06575C 10000030 */ b Weapon_shooting_throwable +/* 09A2D0 7F065760 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 09A2D4 7F065764 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A2D8 7F065768 51E00006 */ beql $t7, $zero, .Ljp7F065784 +/* 09A2DC 7F06576C A200000C */ sb $zero, 0xc($s0) +/* 09A2E0 7F065770 8E180010 */ lw $t8, 0x10($s0) +/* 09A2E4 7F065774 24190003 */ li $t9, 3 +/* 09A2E8 7F065778 53000006 */ beql $t8, $zero, .Ljp7F065794 +/* 09A2EC 7F06577C AE190024 */ sw $t9, 0x24($s0) +/* 09A2F0 7F065780 A200000C */ sb $zero, 0xc($s0) +.Ljp7F065784: +/* 09A2F4 7F065784 820E000C */ lb $t6, 0xc($s0) +/* 09A2F8 7F065788 10000025 */ b Weapon_shooting_throwable +/* 09A2FC 7F06578C A20E000D */ sb $t6, 0xd($s0) +/* 09A300 7F065790 AE190024 */ sw $t9, 0x24($s0) +.Ljp7F065794: +/* 09A304 7F065794 AE000020 */ sw $zero, 0x20($s0) +/* 09A308 7F065798 10000021 */ b Weapon_shooting_throwable +/* 09A30C 7F06579C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 09A310 7F0657A0 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A314 7F0657A4 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A318 7F0657A8 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A31C 7F0657AC 11E00004 */ beqz $t7, .Ljp7F0657C0 +/* 09A320 7F0657B0 24050000 */ li $a1, 0 +/* 09A324 7F0657B4 8E180010 */ lw $t8, 0x10($s0) +/* 09A328 7F0657B8 24190003 */ li $t9, 3 +/* 09A32C 7F0657BC 13000015 */ beqz $t8, .Ljp7F065814 +.Ljp7F0657C0: +/* 09A330 7F0657C0 2606007C */ addiu $a2, $s0, 0x7c +/* 09A334 7F0657C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A338 7F0657C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A33C 7F0657CC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09A340 7F0657D0 A200000C */ sb $zero, 0xc($s0) +/* 09A344 7F0657D4 8219000C */ lb $t9, 0xc($s0) +/* 09A348 7F0657D8 240E0001 */ li $t6, 1 +/* 09A34C 7F0657DC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A350 7F0657E0 15E0000F */ bnez $t7, Weapon_shooting_throwable +/* 09A354 7F0657E4 A219000D */ sb $t9, 0xd($s0) +/* 09A358 7F0657E8 0FC3021B */ jal get_controls_locked_flag +/* 09A35C 7F0657EC 00000000 */ nop +/* 09A360 7F0657F0 2C450001 */ sltiu $a1, $v0, 1 +/* 09A364 7F0657F4 10A00005 */ beqz $a1, .Ljp7F06580C +/* 09A368 7F0657F8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09A36C 7F0657FC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09A370 7F065800 8F0529C4 */ lw $a1, 0x29c4($t8) +/* 09A374 7F065804 2CAE0001 */ sltiu $t6, $a1, 1 +/* 09A378 7F065808 01C02825 */ move $a1, $t6 +.Ljp7F06580C: +/* 09A37C 7F06580C 10000004 */ b Weapon_shooting_throwable +/* 09A380 7F065810 A205000C */ sb $a1, 0xc($s0) +.Ljp7F065814: +/* 09A384 7F065814 AE190024 */ sw $t9, 0x24($s0) +/* 09A388 7F065818 AE000020 */ sw $zero, 0x20($s0) +/* 09A38C 7F06581C AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +/* 09A390 7F065820 820F000C */ lb $t7, 0xc($s0) +.Ljp7F065824: +/* 09A394 7F065824 24010028 */ li $at, 40 +/* 09A398 7F065828 51E0001E */ beql $t7, $zero, .Ljp7F0658A4 +/* 09A39C 7F06582C 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A3A0 7F065830 52210016 */ beql $s1, $at, .Ljp7F06588C +/* 09A3A4 7F065834 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3A8 7F065838 0FC26F3C */ jal get_cur_playernum +/* 09A3AC 7F06583C 00000000 */ nop +/* 09A3B0 7F065840 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3B4 7F065844 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3B8 7F065848 0C00322E */ jal joyRumblePakStart +/* 09A3BC 7F06584C 00402025 */ move $a0, $v0 +/* 09A3C0 7F065850 0FC29658 */ jal cur_player_get_control_type +/* 09A3C4 7F065854 00000000 */ nop +/* 09A3C8 7F065858 28410004 */ slti $at, $v0, 4 +/* 09A3CC 7F06585C 5420000B */ bnezl $at, .Ljp7F06588C +/* 09A3D0 7F065860 8E0E002C */ lw $t6, 0x2c($s0) +/* 09A3D4 7F065864 0FC26F3C */ jal get_cur_playernum +/* 09A3D8 7F065868 00000000 */ nop +/* 09A3DC 7F06586C 0FC26C01 */ jal getPlayerCount +/* 09A3E0 7F065870 AFA2004C */ sw $v0, 0x4c($sp) +/* 09A3E4 7F065874 8FB8004C */ lw $t8, 0x4c($sp) +/* 09A3E8 7F065878 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 09A3EC 7F06587C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 09A3F0 7F065880 0C00322E */ jal joyRumblePakStart +/* 09A3F4 7F065884 00582021 */ addu $a0, $v0, $t8 +/* 09A3F8 7F065888 8E0E002C */ lw $t6, 0x2c($s0) +.Ljp7F06588C: +/* 09A3FC 7F06588C 8E0F0398 */ lw $t7, 0x398($s0) +/* 09A400 7F065890 25D9FFFF */ addiu $t9, $t6, -1 +/* 09A404 7F065894 25F80001 */ addiu $t8, $t7, 1 +/* 09A408 7F065898 AE19002C */ sw $t9, 0x2c($s0) +/* 09A40C 7F06589C AE180398 */ sw $t8, 0x398($s0) +/* 09A410 7F0658A0 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F0658A4: +/* 09A414 7F0658A4 24010002 */ li $at, 2 +/* 09A418 7F0658A8 02202025 */ move $a0, $s1 +/* 09A41C 7F0658AC 55C10090 */ bnel $t6, $at, .Ljp7F065AF0 +/* 09A420 7F0658B0 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A424 7F0658B4 0FC17944 */ jal bondwalkItemGetSoundTriggerRate +/* 09A428 7F0658B8 AFA001C4 */ sw $zero, 0x1c4($sp) +/* 09A42C 7F0658BC 18400017 */ blez $v0, .Ljp7F06591C +/* 09A430 7F0658C0 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A434 7F0658C4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09A438 7F0658C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A43C 7F0658CC 3C028005 */ lui $v0, %hi(global_timer) # $v0, 0x8005 +/* 09A440 7F0658D0 000FC023 */ negu $t8, $t7 +/* 09A444 7F0658D4 03387021 */ addu $t6, $t9, $t8 +/* 09A448 7F0658D8 8DCF0DF8 */ lw $t7, 0xdf8($t6) +/* 09A44C 7F0658DC 8C4283AC */ lw $v0, %lo(global_timer)($v0) +/* 09A450 7F0658E0 104F0013 */ beq $v0, $t7, .Ljp7F065930 +/* 09A454 7F0658E4 00000000 */ nop +/* 09A458 7F0658E8 8E1901DC */ lw $t9, 0x1dc($s0) +/* 09A45C 7F0658EC 0322082A */ slt $at, $t9, $v0 +/* 09A460 7F0658F0 1020000F */ beqz $at, .Ljp7F065930 +/* 09A464 7F0658F4 00000000 */ nop +/* 09A468 7F0658F8 0FC17944 */ jal bondwalkItemGetSoundTriggerRate +/* 09A46C 7F0658FC 02202025 */ move $a0, $s1 +/* 09A470 7F065900 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A474 7F065904 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A478 7F065908 240F0001 */ li $t7, 1 +/* 09A47C 7F06590C 00587021 */ addu $t6, $v0, $t8 +/* 09A480 7F065910 AE0E01DC */ sw $t6, 0x1dc($s0) +/* 09A484 7F065914 10000006 */ b .Ljp7F065930 +/* 09A488 7F065918 AFAF01C4 */ sw $t7, 0x1c4($sp) +.Ljp7F06591C: +/* 09A48C 7F06591C 8219000C */ lb $t9, 0xc($s0) +/* 09A490 7F065920 24180001 */ li $t8, 1 +/* 09A494 7F065924 13200002 */ beqz $t9, .Ljp7F065930 +/* 09A498 7F065928 00000000 */ nop +/* 09A49C 7F06592C AFB801C4 */ sw $t8, 0x1c4($sp) +.Ljp7F065930: +/* 09A4A0 7F065930 0FC26C01 */ jal getPlayerCount +/* 09A4A4 7F065934 00000000 */ nop +/* 09A4A8 7F065938 24010001 */ li $at, 1 +/* 09A4AC 7F06593C 5041000A */ beql $v0, $at, .Ljp7F065968 +/* 09A4B0 7F065940 8FB901C4 */ lw $t9, 0x1c4($sp) +/* 09A4B4 7F065944 0FC31B59 */ jal checkGamePaused +/* 09A4B8 7F065948 00000000 */ nop +/* 09A4BC 7F06594C 14400067 */ bnez $v0, .Ljp7F065AEC +/* 09A4C0 7F065950 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09A4C4 7F065954 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09A4C8 7F065958 8DCF29C4 */ lw $t7, 0x29c4($t6) +/* 09A4CC 7F06595C 55E00064 */ bnezl $t7, .Ljp7F065AF0 +/* 09A4D0 7F065960 8E0E0024 */ lw $t6, 0x24($s0) +/* 09A4D4 7F065964 8FB901C4 */ lw $t9, 0x1c4($sp) +.Ljp7F065968: +/* 09A4D8 7F065968 53200035 */ beql $t9, $zero, .Ljp7F065A40 +/* 09A4DC 7F06596C 24010017 */ li $at, 23 +/* 09A4E0 7F065970 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A4E4 7F065974 50800008 */ beql $a0, $zero, .Ljp7F065998 +/* 09A4E8 7F065978 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4EC 7F06597C 0C002380 */ jal sfxGetArg0Unk3F +/* 09A4F0 7F065980 00000000 */ nop +/* 09A4F4 7F065984 50400004 */ beql $v0, $zero, .Ljp7F065998 +/* 09A4F8 7F065988 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 09A4FC 7F06598C 0C00240C */ jal sfxDeactivate +/* 09A500 7F065990 8E0401D4 */ lw $a0, 0x1d4($s0) +/* 09A504 7F065994 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F065998: +/* 09A508 7F065998 10800007 */ beqz $a0, .Ljp7F0659B8 +/* 09A50C 7F06599C 00000000 */ nop +/* 09A510 7F0659A0 0C002380 */ jal sfxGetArg0Unk3F +/* 09A514 7F0659A4 00000000 */ nop +/* 09A518 7F0659A8 10400003 */ beqz $v0, .Ljp7F0659B8 +/* 09A51C 7F0659AC 00000000 */ nop +/* 09A520 7F0659B0 0C00240C */ jal sfxDeactivate +/* 09A524 7F0659B4 8E0401D8 */ lw $a0, 0x1d8($s0) +.Ljp7F0659B8: +/* 09A528 7F0659B8 0FC1794D */ jal bondwalkItemGetSound +/* 09A52C 7F0659BC 02202025 */ move $a0, $s1 +/* 09A530 7F0659C0 5040001F */ beql $v0, $zero, .Ljp7F065A40 +/* 09A534 7F0659C4 24010017 */ li $at, 23 +/* 09A538 7F0659C8 8E1801D4 */ lw $t8, 0x1d4($s0) +/* 09A53C 7F0659CC 5700000D */ bnezl $t8, .Ljp7F065A04 +/* 09A540 7F0659D0 8E0F01D8 */ lw $t7, 0x1d8($s0) +/* 09A544 7F0659D4 0FC1794D */ jal bondwalkItemGetSound +/* 09A548 7F0659D8 02202025 */ move $a0, $s1 +/* 09A54C 7F0659DC 00022C00 */ sll $a1, $v0, 0x10 +/* 09A550 7F0659E0 00057403 */ sra $t6, $a1, 0x10 +/* 09A554 7F0659E4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09A558 7F0659E8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A55C 7F0659EC 01C02825 */ move $a1, $t6 +/* 09A560 7F0659F0 0C002386 */ jal play_sfx_a1 +/* 09A564 7F0659F4 260601D4 */ addiu $a2, $s0, 0x1d4 +/* 09A568 7F0659F8 1000000D */ b .Ljp7F065A30 +/* 09A56C 7F0659FC 00000000 */ nop +/* 09A570 7F065A00 8E0F01D8 */ lw $t7, 0x1d8($s0) +.Ljp7F065A04: +/* 09A574 7F065A04 15E0000A */ bnez $t7, .Ljp7F065A30 +/* 09A578 7F065A08 00000000 */ nop +/* 09A57C 7F065A0C 0FC1794D */ jal bondwalkItemGetSound +/* 09A580 7F065A10 02202025 */ move $a0, $s1 +/* 09A584 7F065A14 00022C00 */ sll $a1, $v0, 0x10 +/* 09A588 7F065A18 0005CC03 */ sra $t9, $a1, 0x10 +/* 09A58C 7F065A1C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09A590 7F065A20 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A594 7F065A24 03202825 */ move $a1, $t9 +/* 09A598 7F065A28 0C002386 */ jal play_sfx_a1 +/* 09A59C 7F065A2C 260601D8 */ addiu $a2, $s0, 0x1d8 +.Ljp7F065A30: +/* 09A5A0 7F065A30 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 +/* 09A5A4 7F065A34 8F1883AC */ lw $t8, %lo(global_timer)($t8) +/* 09A5A8 7F065A38 AE1801E0 */ sw $t8, 0x1e0($s0) +/* 09A5AC 7F065A3C 24010017 */ li $at, 23 +.Ljp7F065A40: +/* 09A5B0 7F065A40 1621002A */ bne $s1, $at, .Ljp7F065AEC +/* 09A5B4 7F065A44 3C0E8003 */ lui $t6, %hi(D_80035E90) # $t6, 0x8003 +/* 09A5B8 7F065A48 8DCE5ED0 */ lw $t6, %lo(D_80035E90)($t6) +/* 09A5BC 7F065A4C 0C002918 */ jal randomGetNext +/* 09A5C0 7F065A50 AFAE01C0 */ sw $t6, 0x1c0($sp) +/* 09A5C4 7F065A54 304F0001 */ andi $t7, $v0, 1 +/* 09A5C8 7F065A58 000FC840 */ sll $t9, $t7, 1 +/* 09A5CC 7F065A5C 03B92821 */ addu $a1, $sp, $t9 +/* 09A5D0 7F065A60 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09A5D4 7F065A64 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A5D8 7F065A68 84A501C0 */ lh $a1, 0x1c0($a1) +/* 09A5DC 7F065A6C 0C002386 */ jal play_sfx_a1 +/* 09A5E0 7F065A70 00003025 */ move $a2, $zero +/* 09A5E4 7F065A74 1000001E */ b .Ljp7F065AF0 +/* 09A5E8 7F065A78 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065A7C: +/* 09A5EC 7F065A7C 8E18001C */ lw $t8, 0x1c($s0) +/* 09A5F0 7F065A80 240E0003 */ li $t6, 3 +/* 09A5F4 7F065A84 240F000D */ li $t7, 13 +/* 09A5F8 7F065A88 5B000006 */ blezl $t8, .Ljp7F065AA4 +/* 09A5FC 7F065A8C AE0F0024 */ sw $t7, 0x24($s0) +/* 09A600 7F065A90 AE0E0024 */ sw $t6, 0x24($s0) +/* 09A604 7F065A94 AE000020 */ sw $zero, 0x20($s0) +/* 09A608 7F065A98 10000014 */ b .Ljp7F065AEC +/* 09A60C 7F065A9C AE00001C */ sw $zero, 0x1c($s0) +/* 09A610 7F065AA0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F065AA4: +/* 09A614 7F065AA4 AE000020 */ sw $zero, 0x20($s0) +/* 09A618 7F065AA8 0FC26C01 */ jal getPlayerCount +/* 09A61C 7F065AAC AE00001C */ sw $zero, 0x1c($s0) +/* 09A620 7F065AB0 24010001 */ li $at, 1 +/* 09A624 7F065AB4 10410008 */ beq $v0, $at, .Ljp7F065AD8 +/* 09A628 7F065AB8 00000000 */ nop +/* 09A62C 7F065ABC 0FC31B59 */ jal checkGamePaused +/* 09A630 7F065AC0 00000000 */ nop +/* 09A634 7F065AC4 14400009 */ bnez $v0, .Ljp7F065AEC +/* 09A638 7F065AC8 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09A63C 7F065ACC 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09A640 7F065AD0 8F3829C4 */ lw $t8, 0x29c4($t9) +/* 09A644 7F065AD4 17000005 */ bnez $t8, .Ljp7F065AEC +.Ljp7F065AD8: +/* 09A648 7F065AD8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09A64C 7F065ADC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09A650 7F065AE0 24050059 */ li $a1, 89 +/* 09A654 7F065AE4 0C002386 */ jal play_sfx_a1 +/* 09A658 7F065AE8 00003025 */ move $a2, $zero +.Ljp7F065AEC: +/* 09A65C 7F065AEC 8E0E0024 */ lw $t6, 0x24($s0) +.Ljp7F065AF0: +/* 09A660 7F065AF0 24010003 */ li $at, 3 +/* 09A664 7F065AF4 15C100D5 */ bne $t6, $at, .Ljp7F065E4C +/* 09A668 7F065AF8 2401001F */ li $at, 31 +/* 09A66C 7F065AFC 16210013 */ bne $s1, $at, .Ljp7F065B4C +/* 09A670 7F065B00 00000000 */ nop +/* 09A674 7F065B04 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A678 7F065B08 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 +/* 09A67C 7F065B0C 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 +/* 09A680 7F065B10 448F4000 */ mtc1 $t7, $f8 +/* 09A684 7F065B14 2606007C */ addiu $a2, $s0, 0x7c +/* 09A688 7F065B18 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09A68C 7F065B1C 46804020 */ cvt.s.w $f0, $f8 +/* 09A690 7F065B20 44050000 */ mfc1 $a1, $f0 +/* 09A694 7F065B24 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09A698 7F065B28 00000000 */ nop +/* 09A69C 7F065B2C 10400003 */ beqz $v0, .Ljp7F065B3C +/* 09A6A0 7F065B30 24190001 */ li $t9, 1 +/* 09A6A4 7F065B34 100000C5 */ b .Ljp7F065E4C +/* 09A6A8 7F065B38 AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F065B3C: +/* 09A6AC 7F065B3C AE000024 */ sw $zero, 0x24($s0) +/* 09A6B0 7F065B40 AE000020 */ sw $zero, 0x20($s0) +/* 09A6B4 7F065B44 100000C1 */ b .Ljp7F065E4C +/* 09A6B8 7F065B48 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065B4C: +/* 09A6BC 7F065B4C 0FC17375 */ jal get_ptr_item_statistics +/* 09A6C0 7F065B50 02202025 */ move $a0, $s1 +/* 09A6C4 7F065B54 8E050018 */ lw $a1, 0x18($s0) +/* 09A6C8 7F065B58 804A0047 */ lb $t2, 0x47($v0) +/* 09A6CC 7F065B5C 80440023 */ lb $a0, 0x23($v0) +/* 09A6D0 7F065B60 00406825 */ move $t5, $v0 +/* 09A6D4 7F065B64 80460044 */ lb $a2, 0x44($v0) +/* 09A6D8 7F065B68 804B0045 */ lb $t3, 0x45($v0) +/* 09A6DC 7F065B6C 80480046 */ lb $t0, 0x46($v0) +/* 09A6E0 7F065B70 01404825 */ move $t1, $t2 +/* 09A6E4 7F065B74 10A00006 */ beqz $a1, .Ljp7F065B90 +/* 09A6E8 7F065B78 00806025 */ move $t4, $a0 +/* 09A6EC 7F065B7C 8E180020 */ lw $t8, 0x20($s0) +/* 09A6F0 7F065B80 00CB7021 */ addu $t6, $a2, $t3 +/* 09A6F4 7F065B84 030E082A */ slt $at, $t8, $t6 +/* 09A6F8 7F065B88 5020000A */ beql $at, $zero, .Ljp7F065BB4 +/* 09A6FC 7F065B8C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065B90: +/* 09A700 7F065B90 8E030020 */ lw $v1, 0x20($s0) +/* 09A704 7F065B94 0480000A */ bltz $a0, .Ljp7F065BC0 +/* 09A708 7F065B98 00CB3821 */ addu $a3, $a2, $t3 +/* 09A70C 7F065B9C 14A00008 */ bnez $a1, .Ljp7F065BC0 +/* 09A710 7F065BA0 00EC7821 */ addu $t7, $a3, $t4 +/* 09A714 7F065BA4 006F082A */ slt $at, $v1, $t7 +/* 09A718 7F065BA8 14200005 */ bnez $at, .Ljp7F065BC0 +/* 09A71C 7F065BAC 00000000 */ nop +/* 09A720 7F065BB0 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065BB4: +/* 09A724 7F065BB4 AE000020 */ sw $zero, 0x20($s0) +/* 09A728 7F065BB8 100000A4 */ b .Ljp7F065E4C +/* 09A72C 7F065BBC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F065BC0: +/* 09A730 7F065BC0 50A00014 */ beql $a1, $zero, .Ljp7F065C14 +/* 09A734 7F065BC4 0067082A */ slt $at, $v1, $a3 +/* 09A738 7F065BC8 8E190010 */ lw $t9, 0x10($s0) +/* 09A73C 7F065BCC 0068082A */ slt $at, $v1, $t0 +/* 09A740 7F065BD0 53200010 */ beql $t9, $zero, .Ljp7F065C14 +/* 09A744 7F065BD4 0067082A */ slt $at, $v1, $a3 +/* 09A748 7F065BD8 5420000E */ bnezl $at, .Ljp7F065C14 +/* 09A74C 7F065BDC 0067082A */ slt $at, $v1, $a3 +/* 09A750 7F065BE0 0540000B */ bltz $t2, .Ljp7F065C10 +/* 09A754 7F065BE4 00692021 */ addu $a0, $v1, $t1 +/* 09A758 7F065BE8 0087082A */ slt $at, $a0, $a3 +/* 09A75C 7F065BEC 10200008 */ beqz $at, .Ljp7F065C10 +/* 09A760 7F065BF0 0088082A */ slt $at, $a0, $t0 +/* 09A764 7F065BF4 14200006 */ bnez $at, .Ljp7F065C10 +/* 09A768 7F065BF8 24180004 */ li $t8, 4 +/* 09A76C 7F065BFC AE180024 */ sw $t8, 0x24($s0) +/* 09A770 7F065C00 AE000020 */ sw $zero, 0x20($s0) +/* 09A774 7F065C04 AE00001C */ sw $zero, 0x1c($s0) +/* 09A778 7F065C08 10000090 */ b .Ljp7F065E4C +/* 09A77C 7F065C0C AE090038 */ sw $t1, 0x38($s0) +.Ljp7F065C10: +/* 09A780 7F065C10 0067082A */ slt $at, $v1, $a3 +.Ljp7F065C14: +/* 09A784 7F065C14 1020008D */ beqz $at, .Ljp7F065E4C +/* 09A788 7F065C18 260E007C */ addiu $t6, $s0, 0x7c +/* 09A78C 7F065C1C C4420048 */ lwc1 $f2, 0x48($v0) +/* 09A790 7F065C20 C440004C */ lwc1 $f0, 0x4c($v0) +/* 09A794 7F065C24 1460000A */ bnez $v1, .Ljp7F065C50 +/* 09A798 7F065C28 AFAE0034 */ sw $t6, 0x34($sp) +/* 09A79C 7F065C2C C60A0078 */ lwc1 $f10, 0x78($s0) +/* 09A7A0 7F065C30 C604006C */ lwc1 $f4, 0x6c($s0) +/* 09A7A4 7F065C34 C6060070 */ lwc1 $f6, 0x70($s0) +/* 09A7A8 7F065C38 C6080074 */ lwc1 $f8, 0x74($s0) +/* 09A7AC 7F065C3C 8E030020 */ lw $v1, 0x20($s0) +/* 09A7B0 7F065C40 E60A0058 */ swc1 $f10, 0x58($s0) +/* 09A7B4 7F065C44 E604004C */ swc1 $f4, 0x4c($s0) +/* 09A7B8 7F065C48 E6060050 */ swc1 $f6, 0x50($s0) +/* 09A7BC 7F065C4C E6080054 */ swc1 $f8, 0x54($s0) +.Ljp7F065C50: +/* 09A7C0 7F065C50 0066082A */ slt $at, $v1, $a2 +/* 09A7C4 7F065C54 1020002B */ beqz $at, .Ljp7F065D04 +/* 09A7C8 7F065C58 3C018005 */ lui $at, %hi(D_80054170) # $at, 0x8005 +/* 09A7CC 7F065C5C C42C41A0 */ lwc1 $f12, %lo(D_80054170)($at) +/* 09A7D0 7F065C60 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A7D4 7F065C64 44812000 */ mtc1 $at, $f4 +/* 09A7D8 7F065C68 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A7DC 7F065C6C 46045183 */ div.s $f6, $f10, $f4 +/* 09A7E0 7F065C70 46066201 */ sub.s $f8, $f12, $f6 +/* 09A7E4 7F065C74 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A7E8 7F065C78 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A7EC 7F065C7C AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A7F0 7F065C80 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A7F4 7F065C84 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A7F8 7F065C88 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A7FC 7F065C8C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A800 7F065C90 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A804 7F065C94 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A808 7F065C98 460A0101 */ sub.s $f4, $f0, $f10 +/* 09A80C 7F065C9C 44817000 */ mtc1 $at, $f14 +/* 09A810 7F065CA0 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A814 7F065CA4 44805000 */ mtc1 $zero, $f10 +/* 09A818 7F065CA8 46022182 */ mul.s $f6, $f4, $f2 +/* 09A81C 7F065CAC 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A820 7F065CB0 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A824 7F065CB4 8E0F0020 */ lw $t7, 0x20($s0) +/* 09A828 7F065CB8 3C018005 */ lui $at, %hi(D_80054174) # $at, 0x8005 +/* 09A82C 7F065CBC 460E3203 */ div.s $f8, $f6, $f14 +/* 09A830 7F065CC0 C60601D0 */ lwc1 $f6, 0x1d0($s0) +/* 09A834 7F065CC4 E608005C */ swc1 $f8, 0x5c($s0) +/* 09A838 7F065CC8 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 09A83C 7F065CCC 46062201 */ sub.s $f8, $f4, $f6 +/* 09A840 7F065CD0 448F3000 */ mtc1 $t7, $f6 +/* 09A844 7F065CD4 46024282 */ mul.s $f10, $f8, $f2 +/* 09A848 7F065CD8 46803220 */ cvt.s.w $f8, $f6 +/* 09A84C 7F065CDC 44863000 */ mtc1 $a2, $f6 +/* 09A850 7F065CE0 460E5103 */ div.s $f4, $f10, $f14 +/* 09A854 7F065CE4 E6040064 */ swc1 $f4, 0x64($s0) +/* 09A858 7F065CE8 C42A41A4 */ lwc1 $f10, %lo(D_80054174)($at) +/* 09A85C 7F065CEC 460A4102 */ mul.s $f4, $f8, $f10 +/* 09A860 7F065CF0 46803220 */ cvt.s.w $f8, $f6 +/* 09A864 7F065CF4 0FC160F3 */ jal sinf +/* 09A868 7F065CF8 46082303 */ div.s $f12, $f4, $f8 +/* 09A86C 7F065CFC 10000032 */ b .Ljp7F065DC8 +/* 09A870 7F065D00 46000086 */ mov.s $f2, $f0 +.Ljp7F065D04: +/* 09A874 7F065D04 3C018005 */ lui $at, %hi(D_80054178) # $at, 0x8005 +/* 09A878 7F065D08 C42C41A8 */ lwc1 $f12, %lo(D_80054178)($at) +/* 09A87C 7F065D0C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 09A880 7F065D10 44813000 */ mtc1 $at, $f6 +/* 09A884 7F065D14 460C0282 */ mul.s $f10, $f0, $f12 +/* 09A888 7F065D18 46065103 */ div.s $f4, $f10, $f6 +/* 09A88C 7F065D1C 46046201 */ sub.s $f8, $f12, $f4 +/* 09A890 7F065D20 E6080068 */ swc1 $f8, 0x68($s0) +/* 09A894 7F065D24 E7A2019C */ swc1 $f2, 0x19c($sp) +/* 09A898 7F065D28 AFAD01B8 */ sw $t5, 0x1b8($sp) +/* 09A89C 7F065D2C AFAB01B0 */ sw $t3, 0x1b0($sp) +/* 09A8A0 7F065D30 AFA601B4 */ sw $a2, 0x1b4($sp) +/* 09A8A4 7F065D34 0FC17882 */ jal sub_GAME_7F05DCE8 +/* 09A8A8 7F065D38 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09A8AC 7F065D3C C60A01C8 */ lwc1 $f10, 0x1c8($s0) +/* 09A8B0 7F065D40 C7A2019C */ lwc1 $f2, 0x19c($sp) +/* 09A8B4 7F065D44 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 09A8B8 7F065D48 460A0181 */ sub.s $f6, $f0, $f10 +/* 09A8BC 7F065D4C 44817000 */ mtc1 $at, $f14 +/* 09A8C0 7F065D50 8FAD01B8 */ lw $t5, 0x1b8($sp) +/* 09A8C4 7F065D54 44805000 */ mtc1 $zero, $f10 +/* 09A8C8 7F065D58 46023102 */ mul.s $f4, $f6, $f2 +/* 09A8CC 7F065D5C 8FA601B4 */ lw $a2, 0x1b4($sp) +/* 09A8D0 7F065D60 8FAB01B0 */ lw $t3, 0x1b0($sp) +/* 09A8D4 7F065D64 E60A0060 */ swc1 $f10, 0x60($s0) +/* 09A8D8 7F065D68 8E190020 */ lw $t9, 0x20($s0) +/* 09A8DC 7F065D6C 3C018005 */ lui $at, %hi(D_8005417C) +/* 09A8E0 7F065D70 460E2203 */ div.s $f8, $f4, $f14 +/* 09A8E4 7F065D74 C60401D0 */ lwc1 $f4, 0x1d0($s0) +/* 09A8E8 7F065D78 0326C023 */ subu $t8, $t9, $a2 +/* 09A8EC 7F065D7C E608005C */ swc1 $f8, 0x5c($s0) +/* 09A8F0 7F065D80 C5A6000C */ lwc1 $f6, 0xc($t5) +/* 09A8F4 7F065D84 46043201 */ sub.s $f8, $f6, $f4 +/* 09A8F8 7F065D88 44982000 */ mtc1 $t8, $f4 +/* 09A8FC 7F065D8C 46024282 */ mul.s $f10, $f8, $f2 +/* 09A900 7F065D90 46802220 */ cvt.s.w $f8, $f4 +/* 09A904 7F065D94 448B2000 */ mtc1 $t3, $f4 +/* 09A908 7F065D98 460E5183 */ div.s $f6, $f10, $f14 +/* 09A90C 7F065D9C E6060064 */ swc1 $f6, 0x64($s0) +/* 09A910 7F065DA0 C42A41AC */ lwc1 $f10, %lo(D_8005417C)($at) +/* 09A914 7F065DA4 460A4182 */ mul.s $f6, $f8, $f10 +/* 09A918 7F065DA8 46802220 */ cvt.s.w $f8, $f4 +/* 09A91C 7F065DAC 0FC160F0 */ jal cosf +/* 09A920 7F065DB0 46083303 */ div.s $f12, $f6, $f8 +/* 09A924 7F065DB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09A928 7F065DB8 44815000 */ mtc1 $at, $f10 +/* 09A92C 7F065DBC 44813000 */ mtc1 $at, $f6 +/* 09A930 7F065DC0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09A934 7F065DC4 46062080 */ add.s $f2, $f4, $f6 +.Ljp7F065DC8: +/* 09A938 7F065DC8 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09A93C 7F065DCC C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09A940 7F065DD0 44061000 */ mfc1 $a2, $f2 +/* 09A944 7F065DD4 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09A948 7F065DD8 E7A20194 */ swc1 $f2, 0x194($sp) +/* 09A94C 7F065DDC C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09A950 7F065DE0 C608005C */ lwc1 $f8, 0x5c($s0) +/* 09A954 7F065DE4 C7A20194 */ lwc1 $f2, 0x194($sp) +/* 09A958 7F065DE8 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09A95C 7F065DEC 460E4281 */ sub.s $f10, $f8, $f14 +/* 09A960 7F065DF0 C6080060 */ lwc1 $f8, 0x60($s0) +/* 09A964 7F065DF4 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09A968 7F065DF8 240E0001 */ li $t6, 1 +/* 09A96C 7F065DFC 46025102 */ mul.s $f4, $f10, $f2 +/* 09A970 7F065E00 46104281 */ sub.s $f10, $f8, $f16 +/* 09A974 7F065E04 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09A978 7F065E08 E6000078 */ swc1 $f0, 0x78($s0) +/* 09A97C 7F065E0C AE0E00BC */ sw $t6, 0xbc($s0) +/* 09A980 7F065E10 46000306 */ mov.s $f12, $f0 +/* 09A984 7F065E14 460E2180 */ add.s $f6, $f4, $f14 +/* 09A988 7F065E18 46025102 */ mul.s $f4, $f10, $f2 +/* 09A98C 7F065E1C 46124281 */ sub.s $f10, $f8, $f18 +/* 09A990 7F065E20 E606006C */ swc1 $f6, 0x6c($s0) +/* 09A994 7F065E24 46102180 */ add.s $f6, $f4, $f16 +/* 09A998 7F065E28 46025102 */ mul.s $f4, $f10, $f2 +/* 09A99C 7F065E2C E6060070 */ swc1 $f6, 0x70($s0) +/* 09A9A0 7F065E30 46122180 */ add.s $f6, $f4, $f18 +/* 09A9A4 7F065E34 E6060074 */ swc1 $f6, 0x74($s0) +/* 09A9A8 7F065E38 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09A9AC 7F065E3C 8FA50034 */ lw $a1, 0x34($sp) +/* 09A9B0 7F065E40 2604006C */ addiu $a0, $s0, 0x6c +/* 09A9B4 7F065E44 0FC163AE */ jal matrix_4x4_set_position +/* 09A9B8 7F065E48 8FA50034 */ lw $a1, 0x34($sp) +.Ljp7F065E4C: +/* 09A9BC 7F065E4C 8E020024 */ lw $v0, 0x24($s0) +/* 09A9C0 7F065E50 24010004 */ li $at, 4 +/* 09A9C4 7F065E54 54410053 */ bnel $v0, $at, .Ljp7F065FA4 +/* 09A9C8 7F065E58 2401000D */ li $at, 13 +/* 09A9CC 7F065E5C 8E030020 */ lw $v1, 0x20($s0) +/* 09A9D0 7F065E60 54600013 */ bnezl $v1, .Ljp7F065EB0 +/* 09A9D4 7F065E64 8E020038 */ lw $v0, 0x38($s0) +/* 09A9D8 7F065E68 C6080078 */ lwc1 $f8, 0x78($s0) +/* 09A9DC 7F065E6C C60A006C */ lwc1 $f10, 0x6c($s0) +/* 09A9E0 7F065E70 C6040070 */ lwc1 $f4, 0x70($s0) +/* 09A9E4 7F065E74 C6060074 */ lwc1 $f6, 0x74($s0) +/* 09A9E8 7F065E78 E6080058 */ swc1 $f8, 0x58($s0) +/* 09A9EC 7F065E7C E60A004C */ swc1 $f10, 0x4c($s0) +/* 09A9F0 7F065E80 E6040050 */ swc1 $f4, 0x50($s0) +/* 09A9F4 7F065E84 E6060054 */ swc1 $f6, 0x54($s0) +/* 09A9F8 7F065E88 44804000 */ mtc1 $zero, $f8 +/* 09A9FC 7F065E8C 44805000 */ mtc1 $zero, $f10 +/* 09AA00 7F065E90 44802000 */ mtc1 $zero, $f4 +/* 09AA04 7F065E94 44803000 */ mtc1 $zero, $f6 +/* 09AA08 7F065E98 8E030020 */ lw $v1, 0x20($s0) +/* 09AA0C 7F065E9C E6080068 */ swc1 $f8, 0x68($s0) +/* 09AA10 7F065EA0 E60A005C */ swc1 $f10, 0x5c($s0) +/* 09AA14 7F065EA4 E6040060 */ swc1 $f4, 0x60($s0) +/* 09AA18 7F065EA8 E6060064 */ swc1 $f6, 0x64($s0) +/* 09AA1C 7F065EAC 8E020038 */ lw $v0, 0x38($s0) +.Ljp7F065EB0: +/* 09AA20 7F065EB0 0062082A */ slt $at, $v1, $v0 +/* 09AA24 7F065EB4 10200036 */ beqz $at, .Ljp7F065F90 +/* 09AA28 7F065EB8 00437823 */ subu $t7, $v0, $v1 +/* 09AA2C 7F065EBC 448F4000 */ mtc1 $t7, $f8 +/* 09AA30 7F065EC0 3C018005 */ lui $at, %hi(D_80054180) # $at, 0x8005 +/* 09AA34 7F065EC4 C42441B0 */ lwc1 $f4, %lo(D_80054180)($at) +/* 09AA38 7F065EC8 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA3C 7F065ECC 44824000 */ mtc1 $v0, $f8 +/* 09AA40 7F065ED0 2619007C */ addiu $t9, $s0, 0x7c +/* 09AA44 7F065ED4 2618006C */ addiu $t8, $s0, 0x6c +/* 09AA48 7F065ED8 AFB80038 */ sw $t8, 0x38($sp) +/* 09AA4C 7F065EDC AFB90034 */ sw $t9, 0x34($sp) +/* 09AA50 7F065EE0 46045182 */ mul.s $f6, $f10, $f4 +/* 09AA54 7F065EE4 468042A0 */ cvt.s.w $f10, $f8 +/* 09AA58 7F065EE8 0FC160F0 */ jal cosf +/* 09AA5C 7F065EEC 460A3303 */ div.s $f12, $f6, $f10 +/* 09AA60 7F065EF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09AA64 7F065EF4 44818000 */ mtc1 $at, $f16 +/* 09AA68 7F065EF8 00000000 */ nop +/* 09AA6C 7F065EFC 46100102 */ mul.s $f4, $f0, $f16 +/* 09AA70 7F065F00 46102080 */ add.s $f2, $f4, $f16 +/* 09AA74 7F065F04 E7A20190 */ swc1 $f2, 0x190($sp) +/* 09AA78 7F065F08 44061000 */ mfc1 $a2, $f2 +/* 09AA7C 7F065F0C C60E0068 */ lwc1 $f14, 0x68($s0) +/* 09AA80 7F065F10 0FC1B5AF */ jal sub_GAME_7F06D0CC +/* 09AA84 7F065F14 C60C0058 */ lwc1 $f12, 0x58($s0) +/* 09AA88 7F065F18 C60E004C */ lwc1 $f14, 0x4c($s0) +/* 09AA8C 7F065F1C C608005C */ lwc1 $f8, 0x5c($s0) +/* 09AA90 7F065F20 C7A20190 */ lwc1 $f2, 0x190($sp) +/* 09AA94 7F065F24 C6100050 */ lwc1 $f16, 0x50($s0) +/* 09AA98 7F065F28 460E4181 */ sub.s $f6, $f8, $f14 +/* 09AA9C 7F065F2C C6080060 */ lwc1 $f8, 0x60($s0) +/* 09AAA0 7F065F30 C6120054 */ lwc1 $f18, 0x54($s0) +/* 09AAA4 7F065F34 240E0001 */ li $t6, 1 +/* 09AAA8 7F065F38 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAAC 7F065F3C 46104181 */ sub.s $f6, $f8, $f16 +/* 09AAB0 7F065F40 C6080064 */ lwc1 $f8, 0x64($s0) +/* 09AAB4 7F065F44 E6000078 */ swc1 $f0, 0x78($s0) +/* 09AAB8 7F065F48 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AABC 7F065F4C 46000306 */ mov.s $f12, $f0 +/* 09AAC0 7F065F50 460E5100 */ add.s $f4, $f10, $f14 +/* 09AAC4 7F065F54 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAC8 7F065F58 46124181 */ sub.s $f6, $f8, $f18 +/* 09AACC 7F065F5C E604006C */ swc1 $f4, 0x6c($s0) +/* 09AAD0 7F065F60 46105100 */ add.s $f4, $f10, $f16 +/* 09AAD4 7F065F64 46023282 */ mul.s $f10, $f6, $f2 +/* 09AAD8 7F065F68 E6040070 */ swc1 $f4, 0x70($s0) +/* 09AADC 7F065F6C 46125100 */ add.s $f4, $f10, $f18 +/* 09AAE0 7F065F70 E6040074 */ swc1 $f4, 0x74($s0) +/* 09AAE4 7F065F74 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AAE8 7F065F78 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAEC 7F065F7C 8FA40038 */ lw $a0, 0x38($sp) +/* 09AAF0 7F065F80 0FC163AE */ jal matrix_4x4_set_position +/* 09AAF4 7F065F84 8FA50034 */ lw $a1, 0x34($sp) +/* 09AAF8 7F065F88 10000005 */ b .Ljp7F065FA0 +/* 09AAFC 7F065F8C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065F90: +/* 09AB00 7F065F90 AE000024 */ sw $zero, 0x24($s0) +/* 09AB04 7F065F94 AE000020 */ sw $zero, 0x20($s0) +/* 09AB08 7F065F98 AE00001C */ sw $zero, 0x1c($s0) +/* 09AB0C 7F065F9C 00001025 */ move $v0, $zero +.Ljp7F065FA0: +/* 09AB10 7F065FA0 2401000D */ li $at, 13 +.Ljp7F065FA4: +/* 09AB14 7F065FA4 54410013 */ bnel $v0, $at, .Ljp7F065FF4 +/* 09AB18 7F065FA8 8E020024 */ lw $v0, 0x24($s0) +/* 09AB1C 7F065FAC 8E0F001C */ lw $t7, 0x1c($s0) +/* 09AB20 7F065FB0 55E00004 */ bnezl $t7, .Ljp7F065FC4 +/* 09AB24 7F065FB4 8E050018 */ lw $a1, 0x18($s0) +/* 09AB28 7F065FB8 0FC17B4A */ jal sub_GAME_7F05E808 +/* 09AB2C 7F065FBC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AB30 7F065FC0 8E050018 */ lw $a1, 0x18($s0) +.Ljp7F065FC4: +/* 09AB34 7F065FC4 54A00008 */ bnezl $a1, .Ljp7F065FE8 +/* 09AB38 7F065FC8 AE000024 */ sw $zero, 0x24($s0) +/* 09AB3C 7F065FCC 54A00009 */ bnezl $a1, .Ljp7F065FF4 +/* 09AB40 7F065FD0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB44 7F065FD4 8E190020 */ lw $t9, 0x20($s0) +/* 09AB48 7F065FD8 2B210014 */ slti $at, $t9, 0x14 +/* 09AB4C 7F065FDC 54200005 */ bnezl $at, .Ljp7F065FF4 +/* 09AB50 7F065FE0 8E020024 */ lw $v0, 0x24($s0) +/* 09AB54 7F065FE4 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F065FE8: +/* 09AB58 7F065FE8 AE000020 */ sw $zero, 0x20($s0) +/* 09AB5C 7F065FEC AE00001C */ sw $zero, 0x1c($s0) +/* 09AB60 7F065FF0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F065FF4: +/* 09AB64 7F065FF4 24050005 */ li $a1, 5 +/* 09AB68 7F065FF8 24040010 */ li $a0, 16 +/* 09AB6C 7F065FFC 54A2005E */ bnel $a1, $v0, .Ljp7F066178 +/* 09AB70 7F066000 24060006 */ li $a2, 6 +/* 09AB74 7F066004 0FC26C01 */ jal getPlayerCount +/* 09AB78 7F066008 AFA4018C */ sw $a0, 0x18c($sp) +/* 09AB7C 7F06600C 28410002 */ slti $at, $v0, 2 +/* 09AB80 7F066010 14200002 */ bnez $at, .Ljp7F06601C +/* 09AB84 7F066014 8FA4018C */ lw $a0, 0x18c($sp) +/* 09AB88 7F066018 2404000C */ li $a0, 12 +.Ljp7F06601C: +/* 09AB8C 7F06601C 8E18001C */ lw $t8, 0x1c($s0) +/* 09AB90 7F066020 5700000C */ bnezl $t8, .Ljp7F066054 +/* 09AB94 7F066024 8E030020 */ lw $v1, 0x20($s0) +/* 09AB98 7F066028 0FC26C01 */ jal getPlayerCount +/* 09AB9C 7F06602C AFA4018C */ sw $a0, 0x18c($sp) +/* 09ABA0 7F066030 24010001 */ li $at, 1 +/* 09ABA4 7F066034 14410004 */ bne $v0, $at, .Ljp7F066048 +/* 09ABA8 7F066038 8FA4018C */ lw $a0, 0x18c($sp) +/* 09ABAC 7F06603C 240E0011 */ li $t6, 17 +/* 09ABB0 7F066040 10000003 */ b .Ljp7F066050 +/* 09ABB4 7F066044 AE0E0040 */ sw $t6, 0x40($s0) +.Ljp7F066048: +/* 09ABB8 7F066048 240F000D */ li $t7, 13 +/* 09ABBC 7F06604C AE0F0040 */ sw $t7, 0x40($s0) +.Ljp7F066050: +/* 09ABC0 7F066050 8E030020 */ lw $v1, 0x20($s0) +.Ljp7F066054: +/* 09ABC4 7F066054 0064082A */ slt $at, $v1, $a0 +/* 09ABC8 7F066058 54200026 */ bnezl $at, .Ljp7F0660F4 +/* 09ABCC 7F06605C 44834000 */ mtc1 $v1, $f8 +/* 09ABD0 7F066060 0FC1A686 */ jal get_ammo_type_for_weapon +/* 09ABD4 7F066064 02202025 */ move $a0, $s1 +/* 09ABD8 7F066068 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09ABDC 7F06606C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09ABE0 7F066070 0002C080 */ sll $t8, $v0, 2 +/* 09ABE4 7F066074 8E0F002C */ lw $t7, 0x2c($s0) +/* 09ABE8 7F066078 03381821 */ addu $v1, $t9, $t8 +/* 09ABEC 7F06607C 8C6E1130 */ lw $t6, 0x1130($v1) +/* 09ABF0 7F066080 01CFC821 */ addu $t9, $t6, $t7 +/* 09ABF4 7F066084 AC791130 */ sw $t9, 0x1130($v1) +/* 09ABF8 7F066088 0FC26C01 */ jal getPlayerCount +/* 09ABFC 7F06608C AE00002C */ sw $zero, 0x2c($s0) +/* 09AC00 7F066090 28410002 */ slti $at, $v0, 2 +/* 09AC04 7F066094 14200003 */ bnez $at, .Ljp7F0660A4 +/* 09AC08 7F066098 00000000 */ nop +/* 09AC0C 7F06609C 0FC26FC2 */ jal sub_GAME_7F09B368 +/* 09AC10 7F0660A0 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F0660A4: +/* 09AC14 7F0660A4 0FC18008 */ jal sub_GAME_7F05FB00 +/* 09AC18 7F0660A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AC1C 7F0660AC 24180006 */ li $t8, 6 +/* 09AC20 7F0660B0 AE180024 */ sw $t8, 0x24($s0) +/* 09AC24 7F0660B4 0FC23314 */ jal check_if_item_available +/* 09AC28 7F0660B8 24040011 */ li $a0, 17 +/* 09AC2C 7F0660BC 10400006 */ beqz $v0, .Ljp7F0660D8 +/* 09AC30 7F0660C0 24050005 */ li $a1, 5 +/* 09AC34 7F0660C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AC38 7F0660C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AC3C 7F0660CC 240E0011 */ li $t6, 17 +/* 09AC40 7F0660D0 10000005 */ b .Ljp7F0660E8 +/* 09AC44 7F0660D4 ADEE2A38 */ sw $t6, 0x2a38($t7) +.Ljp7F0660D8: +/* 09AC48 7F0660D8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AC4C 7F0660DC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AC50 7F0660E0 24190001 */ li $t9, 1 +/* 09AC54 7F0660E4 AF192A38 */ sw $t9, 0x2a38($t8) +.Ljp7F0660E8: +/* 09AC58 7F0660E8 10000022 */ b .Ljp7F066174 +/* 09AC5C 7F0660EC 8E020024 */ lw $v0, 0x24($s0) +/* 09AC60 7F0660F0 44834000 */ mtc1 $v1, $f8 +.Ljp7F0660F4: +/* 09AC64 7F0660F4 3C018005 */ lui $at, %hi(D_80054184) # $at, 0x8005 +/* 09AC68 7F0660F8 C42A41B4 */ lwc1 $f10, %lo(D_80054184)($at) +/* 09AC6C 7F0660FC 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC70 7F066100 44844000 */ mtc1 $a0, $f8 +/* 09AC74 7F066104 240E0001 */ li $t6, 1 +/* 09AC78 7F066108 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09AC7C 7F06610C 2605007C */ addiu $a1, $s0, 0x7c +/* 09AC80 7F066110 460A3102 */ mul.s $f4, $f6, $f10 +/* 09AC84 7F066114 468041A0 */ cvt.s.w $f6, $f8 +/* 09AC88 7F066118 46062303 */ div.s $f12, $f4, $f6 +/* 09AC8C 7F06611C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AC90 7F066120 E7AC0188 */ swc1 $f12, 0x188($sp) +/* 09AC94 7F066124 44805000 */ mtc1 $zero, $f10 +/* 09AC98 7F066128 00000000 */ nop +/* 09AC9C 7F06612C E60A00AC */ swc1 $f10, 0xac($s0) +/* 09ACA0 7F066130 0FC160F0 */ jal cosf +/* 09ACA4 7F066134 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACA8 7F066138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09ACAC 7F06613C 44814000 */ mtc1 $at, $f8 +/* 09ACB0 7F066140 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09ACB4 7F066144 44813000 */ mtc1 $at, $f6 +/* 09ACB8 7F066148 46004101 */ sub.s $f4, $f8, $f0 +/* 09ACBC 7F06614C 46062282 */ mul.s $f10, $f4, $f6 +/* 09ACC0 7F066150 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09ACC4 7F066154 0FC160F3 */ jal sinf +/* 09ACC8 7F066158 C7AC0188 */ lwc1 $f12, 0x188($sp) +/* 09ACCC 7F06615C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09ACD0 7F066160 44814000 */ mtc1 $at, $f8 +/* 09ACD4 7F066164 8E020024 */ lw $v0, 0x24($s0) +/* 09ACD8 7F066168 24050005 */ li $a1, 5 +/* 09ACDC 7F06616C 46080102 */ mul.s $f4, $f0, $f8 +/* 09ACE0 7F066170 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066174: +/* 09ACE4 7F066174 24060006 */ li $a2, 6 +.Ljp7F066178: +/* 09ACE8 7F066178 10C20003 */ beq $a2, $v0, .Ljp7F066188 +/* 09ACEC 7F06617C 24010007 */ li $at, 7 +/* 09ACF0 7F066180 54410066 */ bnel $v0, $at, .Ljp7F06631C +/* 09ACF4 7F066184 24010008 */ li $at, 8 +.Ljp7F066188: +/* 09ACF8 7F066188 8E0F0044 */ lw $t7, 0x44($s0) +/* 09ACFC 7F06618C 11E00006 */ beqz $t7, .Ljp7F0661A8 +/* 09AD00 7F066190 00000000 */ nop +/* 09AD04 7F066194 8E190020 */ lw $t9, 0x20($s0) +/* 09AD08 7F066198 8E180040 */ lw $t8, 0x40($s0) +/* 09AD0C 7F06619C 0338082A */ slt $at, $t9, $t8 +/* 09AD10 7F0661A0 5420003E */ bnezl $at, .Ljp7F06629C +/* 09AD14 7F0661A4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0661A8: +/* 09AD18 7F0661A8 14C20034 */ bne $a2, $v0, .Ljp7F06627C +/* 09AD1C 7F0661AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 +/* 09AD20 7F0661B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) +/* 09AD24 7F0661B4 8FAF003C */ lw $t7, 0x3c($sp) +/* 09AD28 7F0661B8 01CF1823 */ subu $v1, $t6, $t7 +/* 09AD2C 7F0661BC 8C620C3C */ lw $v0, 0xc3c($v1) +/* 09AD30 7F0661C0 24630C18 */ addiu $v1, $v1, 0xc18 +/* 09AD34 7F0661C4 50C20025 */ beql $a2, $v0, .Ljp7F06625C +/* 09AD38 7F0661C8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD3C 7F0661CC 50A20023 */ beql $a1, $v0, .Ljp7F06625C +/* 09AD40 7F0661D0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD44 7F0661D4 8C640028 */ lw $a0, 0x28($v1) +/* 09AD48 7F0661D8 2401000E */ li $at, 14 +/* 09AD4C 7F0661DC 50A4001F */ beql $a1, $a0, .Ljp7F06625C +/* 09AD50 7F0661E0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AD54 7F0661E4 1041001C */ beq $v0, $at, .Ljp7F066258 +/* 09AD58 7F0661E8 2401000F */ li $at, 15 +/* 09AD5C 7F0661EC 1041001A */ beq $v0, $at, .Ljp7F066258 +/* 09AD60 7F0661F0 24010010 */ li $at, 16 +/* 09AD64 7F0661F4 10410018 */ beq $v0, $at, .Ljp7F066258 +/* 09AD68 7F0661F8 2401000E */ li $at, 14 +/* 09AD6C 7F0661FC 10810016 */ beq $a0, $at, .Ljp7F066258 +/* 09AD70 7F066200 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09AD74 7F066204 1720000C */ bnez $t9, .Ljp7F066238 +/* 09AD78 7F066208 00000000 */ nop +/* 09AD7C 7F06620C 0FC177BC */ jal get_item_in_hand +/* 09AD80 7F066210 24040001 */ li $a0, 1 +/* 09AD84 7F066214 8E04003C */ lw $a0, 0x3c($s0) +/* 09AD88 7F066218 0FC2332D */ jal check_if_item_for_hand_available +/* 09AD8C 7F06621C 00402825 */ move $a1, $v0 +/* 09AD90 7F066220 1440000D */ bnez $v0, .Ljp7F066258 +/* 09AD94 7F066224 24040001 */ li $a0, 1 +/* 09AD98 7F066228 0FC1778D */ jal draw_item_in_hand_has_more_ammo +/* 09AD9C 7F06622C 00002825 */ move $a1, $zero +/* 09ADA0 7F066230 1000000A */ b .Ljp7F06625C +/* 09ADA4 7F066234 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066238: +/* 09ADA8 7F066238 0FC177BC */ jal get_item_in_hand +/* 09ADAC 7F06623C 00002025 */ move $a0, $zero +/* 09ADB0 7F066240 00402025 */ move $a0, $v0 +/* 09ADB4 7F066244 0FC2332D */ jal check_if_item_for_hand_available +/* 09ADB8 7F066248 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADBC 7F06624C 54400003 */ bnezl $v0, .Ljp7F06625C +/* 09ADC0 7F066250 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADC4 7F066254 AE00003C */ sw $zero, 0x3c($s0) +.Ljp7F066258: +/* 09ADC8 7F066258 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F06625C: +/* 09ADCC 7F06625C 0FC1781D */ jal remove_hands_item +/* 09ADD0 7F066260 8E05003C */ lw $a1, 0x3c($s0) +/* 09ADD4 7F066264 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09ADD8 7F066268 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADDC 7F06626C 24180007 */ li $t8, 7 +/* 09ADE0 7F066270 00408825 */ move $s1, $v0 +/* 09ADE4 7F066274 10000008 */ b .Ljp7F066298 +/* 09ADE8 7F066278 AE180024 */ sw $t8, 0x24($s0) +.Ljp7F06627C: +/* 09ADEC 7F06627C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09ADF0 7F066280 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09ADF4 7F066284 10400004 */ beqz $v0, .Ljp7F066298 +/* 09ADF8 7F066288 240E0008 */ li $t6, 8 +/* 09ADFC 7F06628C AE0E0024 */ sw $t6, 0x24($s0) +/* 09AE00 7F066290 AE000020 */ sw $zero, 0x20($s0) +/* 09AE04 7F066294 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066298: +/* 09AE08 7F066298 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F06629C: +/* 09AE0C 7F06629C 24060006 */ li $a2, 6 +/* 09AE10 7F0662A0 24010007 */ li $at, 7 +/* 09AE14 7F0662A4 10C20003 */ beq $a2, $v0, .Ljp7F0662B4 +/* 09AE18 7F0662A8 240F0001 */ li $t7, 1 +/* 09AE1C 7F0662AC 5441001B */ bnel $v0, $at, .Ljp7F06631C +/* 09AE20 7F0662B0 24010008 */ li $at, 8 +.Ljp7F0662B4: +/* 09AE24 7F0662B4 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09AE28 7F0662B8 3C018005 */ lui $at, %hi(D_80054188) # $at, 0x8005 +/* 09AE2C 7F0662BC C42C41B8 */ lwc1 $f12, %lo(D_80054188)($at) +/* 09AE30 7F0662C0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09AE34 7F0662C4 2605007C */ addiu $a1, $s0, 0x7c +/* 09AE38 7F0662C8 44803000 */ mtc1 $zero, $f6 +/* 09AE3C 7F0662CC 3C018005 */ lui $at, %hi(D_8005418C) # $at, 0x8005 +/* 09AE40 7F0662D0 E60600AC */ swc1 $f6, 0xac($s0) +/* 09AE44 7F0662D4 0FC160F0 */ jal cosf +/* 09AE48 7F0662D8 C42C41BC */ lwc1 $f12, %lo(D_8005418C)($at) +/* 09AE4C 7F0662DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09AE50 7F0662E0 44815000 */ mtc1 $at, $f10 +/* 09AE54 7F0662E4 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09AE58 7F0662E8 44812000 */ mtc1 $at, $f4 +/* 09AE5C 7F0662EC 46005201 */ sub.s $f8, $f10, $f0 +/* 09AE60 7F0662F0 3C018005 */ lui $at, %hi(D_80054190) # $at, 0x8005 +/* 09AE64 7F0662F4 46044182 */ mul.s $f6, $f8, $f4 +/* 09AE68 7F0662F8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09AE6C 7F0662FC 0FC160F3 */ jal sinf +/* 09AE70 7F066300 C42C41C0 */ lwc1 $f12, %lo(D_80054190)($at) +/* 09AE74 7F066304 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09AE78 7F066308 44815000 */ mtc1 $at, $f10 +/* 09AE7C 7F06630C 8E020024 */ lw $v0, 0x24($s0) +/* 09AE80 7F066310 460A0202 */ mul.s $f8, $f0, $f10 +/* 09AE84 7F066314 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 09AE88 7F066318 24010008 */ li $at, 8 +.Ljp7F06631C: +/* 09AE8C 7F06631C 1441008D */ bne $v0, $at, .Ljp7F066554 +/* 09AE90 7F066320 24190017 */ li $t9, 23 +/* 09AE94 7F066324 0FC26C01 */ jal getPlayerCount +/* 09AE98 7F066328 AFB9017C */ sw $t9, 0x17c($sp) +/* 09AE9C 7F06632C 28410002 */ slti $at, $v0, 2 +/* 09AEA0 7F066330 14200002 */ bnez $at, .Ljp7F06633C +/* 09AEA4 7F066334 2418000C */ li $t8, 12 +/* 09AEA8 7F066338 AFB8017C */ sw $t8, 0x17c($sp) +.Ljp7F06633C: +/* 09AEAC 7F06633C 8E0E001C */ lw $t6, 0x1c($s0) +/* 09AEB0 7F066340 55C0004D */ bnezl $t6, .Ljp7F066478 +/* 09AEB4 7F066344 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEB8 7F066348 0FC26C01 */ jal getPlayerCount +/* 09AEBC 7F06634C 00000000 */ nop +/* 09AEC0 7F066350 28410002 */ slti $at, $v0, 2 +/* 09AEC4 7F066354 14200003 */ bnez $at, .Ljp7F066364 +/* 09AEC8 7F066358 00000000 */ nop +/* 09AECC 7F06635C 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09AED0 7F066360 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066364: +/* 09AED4 7F066364 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09AED8 7F066368 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AEDC 7F06636C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09AEE0 7F066370 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09AEE4 7F066374 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 09AEE8 7F066378 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09AEEC 7F06637C ADE00FC8 */ sw $zero, 0xfc8($t7) +/* 09AEF0 7F066380 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 09AEF4 7F066384 5B20003C */ blezl $t9, .Ljp7F066478 +/* 09AEF8 7F066388 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AEFC 7F06638C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09AF00 7F066390 24010001 */ li $at, 1 +/* 09AF04 7F066394 8F0E0000 */ lw $t6, ($t8) +/* 09AF08 7F066398 51C10037 */ beql $t6, $at, .Ljp7F066478 +/* 09AF0C 7F06639C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF10 7F0663A0 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09AF14 7F0663A4 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09AF18 7F0663A8 10400032 */ beqz $v0, weapon_switchstyle_NONE +/* 09AF1C 7F0663AC 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 +/* 09AF20 7F0663B0 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) +/* 09AF24 7F0663B4 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09AF28 7F0663B8 55E0002F */ bnezl $t7, .Ljp7F066478 +/* 09AF2C 7F0663BC 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF30 7F0663C0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09AF34 7F0663C4 2A21003E */ slti $at, $s1, 0x3e +/* 09AF38 7F0663C8 8F3800D8 */ lw $t8, 0xd8($t9) +/* 09AF3C 7F0663CC 5700002A */ bnezl $t8, .Ljp7F066478 +/* 09AF40 7F0663D0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF44 7F0663D4 14200005 */ bnez $at, .Ljp7F0663EC +/* 09AF48 7F0663D8 24010058 */ li $at, 88 +/* 09AF4C 7F0663DC 52210026 */ beql $s1, $at, .Ljp7F066478 +/* 09AF50 7F0663E0 8E0F0020 */ lw $t7, 0x20($s0) +/* 09AF54 7F0663E4 1000001E */ b weapon_playsfx_gun +/* 09AF58 7F0663E8 00000000 */ nop +.Ljp7F0663EC: +/* 09AF5C 7F0663EC 2E21003E */ sltiu $at, $s1, 0x3e +/* 09AF60 7F0663F0 1020001B */ beqz $at, weapon_playsfx_gun +/* 09AF64 7F0663F4 00117080 */ sll $t6, $s1, 2 +/* 09AF68 7F0663F8 3C018005 */ lui $at, %hi(jpt_80054194) +/* 09AF6C 7F0663FC 002E0821 */ addu $at, $at, $t6 +/* 09AF70 7F066400 8C2E41C4 */ lw $t6, %lo(jpt_80054194)($at) +/* 09AF74 7F066404 01C00008 */ jr $t6 +/* 09AF78 7F066408 00000000 */ nop +weapon_playsfx_F2: +/* 09AF7C 7F06640C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09AF80 7F066410 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09AF84 7F066414 240500F2 */ li $a1, 242 +/* 09AF88 7F066418 0C002386 */ jal play_sfx_a1 +/* 09AF8C 7F06641C 00003025 */ move $a2, $zero +/* 09AF90 7F066420 10000015 */ b .Ljp7F066478 +/* 09AF94 7F066424 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_knife: +/* 09AF98 7F066428 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09AF9C 7F06642C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09AFA0 7F066430 240500E9 */ li $a1, 233 +/* 09AFA4 7F066434 0C002386 */ jal play_sfx_a1 +/* 09AFA8 7F066438 00003025 */ move $a2, $zero +/* 09AFAC 7F06643C 1000000E */ b .Ljp7F066478 +/* 09AFB0 7F066440 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_mine: +/* 09AFB4 7F066444 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09AFB8 7F066448 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09AFBC 7F06644C 240500EB */ li $a1, 235 +/* 09AFC0 7F066450 0C002386 */ jal play_sfx_a1 +/* 09AFC4 7F066454 00003025 */ move $a2, $zero +/* 09AFC8 7F066458 10000007 */ b .Ljp7F066478 +/* 09AFCC 7F06645C 8E0F0020 */ lw $t7, 0x20($s0) +weapon_playsfx_gun: +/* 09AFD0 7F066460 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09AFD4 7F066464 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09AFD8 7F066468 240500E8 */ li $a1, 232 +/* 09AFDC 7F06646C 0C002386 */ jal play_sfx_a1 +/* 09AFE0 7F066470 00003025 */ move $a2, $zero +weapon_switchstyle_NONE: +/* 09AFE4 7F066474 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066478: +/* 09AFE8 7F066478 8FB9017C */ lw $t9, 0x17c($sp) +/* 09AFEC 7F06647C 01F9082A */ slt $at, $t7, $t9 +/* 09AFF0 7F066480 5020000E */ beql $at, $zero, .Ljp7F0664BC +/* 09AFF4 7F066484 AE000024 */ sw $zero, 0x24($s0) +/* 09AFF8 7F066488 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09AFFC 7F06648C 02202025 */ move $a0, $s1 +/* 09B000 7F066490 10400009 */ beqz $v0, .Ljp7F0664B8 +/* 09B004 7F066494 02202025 */ move $a0, $s1 +/* 09B008 7F066498 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B00C 7F06649C 24050800 */ li $a1, 2048 +/* 09B010 7F0664A0 10400005 */ beqz $v0, .Ljp7F0664B8 +/* 09B014 7F0664A4 02202025 */ move $a0, $s1 +/* 09B018 7F0664A8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B01C 7F0664AC 24052000 */ li $a1, 8192 +/* 09B020 7F0664B0 10400006 */ beqz $v0, .Ljp7F0664CC +/* 09B024 7F0664B4 8FB8017C */ lw $t8, 0x17c($sp) +.Ljp7F0664B8: +/* 09B028 7F0664B8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0664BC: +/* 09B02C 7F0664BC AE000020 */ sw $zero, 0x20($s0) +/* 09B030 7F0664C0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B034 7F0664C4 10000023 */ b .Ljp7F066554 +/* 09B038 7F0664C8 00001025 */ move $v0, $zero +.Ljp7F0664CC: +/* 09B03C 7F0664CC 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B040 7F0664D0 3C018005 */ lui $at, %hi(D_8005428C) # $at, 0x8005 +/* 09B044 7F0664D4 C42A42BC */ lwc1 $f10, %lo(D_8005428C)($at) +/* 09B048 7F0664D8 030E7823 */ subu $t7, $t8, $t6 +/* 09B04C 7F0664DC 448F2000 */ mtc1 $t7, $f4 +/* 09B050 7F0664E0 24190001 */ li $t9, 1 +/* 09B054 7F0664E4 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B058 7F0664E8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B05C 7F0664EC 44982000 */ mtc1 $t8, $f4 +/* 09B060 7F0664F0 2605007C */ addiu $a1, $s0, 0x7c +/* 09B064 7F0664F4 460A3202 */ mul.s $f8, $f6, $f10 +/* 09B068 7F0664F8 468021A0 */ cvt.s.w $f6, $f4 +/* 09B06C 7F0664FC 46064303 */ div.s $f12, $f8, $f6 +/* 09B070 7F066500 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B074 7F066504 E7AC0178 */ swc1 $f12, 0x178($sp) +/* 09B078 7F066508 44805000 */ mtc1 $zero, $f10 +/* 09B07C 7F06650C 00000000 */ nop +/* 09B080 7F066510 E60A00AC */ swc1 $f10, 0xac($s0) +/* 09B084 7F066514 0FC160F0 */ jal cosf +/* 09B088 7F066518 C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B08C 7F06651C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B090 7F066520 44812000 */ mtc1 $at, $f4 +/* 09B094 7F066524 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B098 7F066528 44813000 */ mtc1 $at, $f6 +/* 09B09C 7F06652C 46002201 */ sub.s $f8, $f4, $f0 +/* 09B0A0 7F066530 46064282 */ mul.s $f10, $f8, $f6 +/* 09B0A4 7F066534 E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 09B0A8 7F066538 0FC160F3 */ jal sinf +/* 09B0AC 7F06653C C7AC0178 */ lwc1 $f12, 0x178($sp) +/* 09B0B0 7F066540 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B0B4 7F066544 44812000 */ mtc1 $at, $f4 +/* 09B0B8 7F066548 8E020024 */ lw $v0, 0x24($s0) +/* 09B0BC 7F06654C 46040202 */ mul.s $f8, $f0, $f4 +/* 09B0C0 7F066550 E60800B4 */ swc1 $f8, 0xb4($s0) +.Ljp7F066554: +/* 09B0C4 7F066554 24010009 */ li $at, 9 +/* 09B0C8 7F066558 54410018 */ bnel $v0, $at, .Ljp7F0665BC +/* 09B0CC 7F06655C 2401000A */ li $at, 10 +/* 09B0D0 7F066560 0FC17375 */ jal get_ptr_item_statistics +/* 09B0D4 7F066564 02202025 */ move $a0, $s1 +/* 09B0D8 7F066568 8E0E002C */ lw $t6, 0x2c($s0) +/* 09B0DC 7F06656C 844F0020 */ lh $t7, 0x20($v0) +/* 09B0E0 7F066570 02202025 */ move $a0, $s1 +/* 09B0E4 7F066574 01CF082A */ slt $at, $t6, $t7 +/* 09B0E8 7F066578 14200005 */ bnez $at, .Ljp7F066590 +/* 09B0EC 7F06657C 00000000 */ nop +/* 09B0F0 7F066580 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B0F4 7F066584 3C050020 */ lui $a1, 0x20 +/* 09B0F8 7F066588 50400008 */ beql $v0, $zero, .Ljp7F0665AC +/* 09B0FC 7F06658C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066590: +/* 09B100 7F066590 0FC1A658 */ jal get_ammo_in_hands_weapon +/* 09B104 7F066594 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B108 7F066598 18400003 */ blez $v0, .Ljp7F0665A8 +/* 09B10C 7F06659C 2402000A */ li $v0, 10 +/* 09B110 7F0665A0 10000005 */ b .Ljp7F0665B8 +/* 09B114 7F0665A4 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665A8: +/* 09B118 7F0665A8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0665AC: +/* 09B11C 7F0665AC AE000020 */ sw $zero, 0x20($s0) +/* 09B120 7F0665B0 AE00001C */ sw $zero, 0x1c($s0) +/* 09B124 7F0665B4 00001025 */ move $v0, $zero +.Ljp7F0665B8: +/* 09B128 7F0665B8 2401000A */ li $at, 10 +.Ljp7F0665BC: +/* 09B12C 7F0665BC 54410048 */ bnel $v0, $at, .Ljp7F0666E0 +/* 09B130 7F0665C0 2401000B */ li $at, 11 +/* 09B134 7F0665C4 8E030020 */ lw $v1, 0x20($s0) +/* 09B138 7F0665C8 2402000B */ li $v0, 11 +/* 09B13C 7F0665CC 240F0011 */ li $t7, 17 +/* 09B140 7F0665D0 28610010 */ slti $at, $v1, 0x10 +/* 09B144 7F0665D4 50200005 */ beql $at, $zero, .Ljp7F0665EC +/* 09B148 7F0665D8 AE020024 */ sw $v0, 0x24($s0) +/* 09B14C 7F0665DC 8219000F */ lb $t9, 0xf($s0) +/* 09B150 7F0665E0 57200007 */ bnezl $t9, .Ljp7F066600 +/* 09B154 7F0665E4 44833000 */ mtc1 $v1, $f6 +/* 09B158 7F0665E8 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F0665EC: +/* 09B15C 7F0665EC AE0F0040 */ sw $t7, 0x40($s0) +/* 09B160 7F0665F0 AE000020 */ sw $zero, 0x20($s0) +/* 09B164 7F0665F4 10000039 */ b .Ljp7F0666DC +/* 09B168 7F0665F8 AE00001C */ sw $zero, 0x1c($s0) +/* 09B16C 7F0665FC 44833000 */ mtc1 $v1, $f6 +.Ljp7F066600: +/* 09B170 7F066600 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B174 7F066604 44811000 */ mtc1 $at, $f2 +/* 09B178 7F066608 468032A0 */ cvt.s.w $f10, $f6 +/* 09B17C 7F06660C 3C018005 */ lui $at, %hi(D_80054290) # $at, 0x8005 +/* 09B180 7F066610 C42442C0 */ lwc1 $f4, %lo(D_80054290)($at) +/* 09B184 7F066614 24180001 */ li $t8, 1 +/* 09B188 7F066618 2605007C */ addiu $a1, $s0, 0x7c +/* 09B18C 7F06661C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B190 7F066620 46024183 */ div.s $f6, $f8, $f2 +/* 09B194 7F066624 E7A6012C */ swc1 $f6, 0x12c($sp) +/* 09B198 7F066628 AE1800BC */ sw $t8, 0xbc($s0) +/* 09B19C 7F06662C 8FB901E0 */ lw $t9, 0x1e0($sp) +/* 09B1A0 7F066630 57200009 */ bnezl $t9, .Ljp7F066658 +/* 09B1A4 7F066634 44802000 */ mtc1 $zero, $f4 +/* 09B1A8 7F066638 44805000 */ mtc1 $zero, $f10 +/* 09B1AC 7F06663C AFA50034 */ sw $a1, 0x34($sp) +/* 09B1B0 7F066640 46025303 */ div.s $f12, $f10, $f2 +/* 09B1B4 7F066644 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1B8 7F066648 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B1BC 7F06664C 10000008 */ b .Ljp7F066670 +/* 09B1C0 7F066650 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B1C4 7F066654 44802000 */ mtc1 $zero, $f4 +.Ljp7F066658: +/* 09B1C8 7F066658 AFA50034 */ sw $a1, 0x34($sp) +/* 09B1CC 7F06665C 46022003 */ div.s $f0, $f4, $f2 +/* 09B1D0 7F066660 46000307 */ neg.s $f12, $f0 +/* 09B1D4 7F066664 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B1D8 7F066668 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B1DC 7F06666C C7AC012C */ lwc1 $f12, 0x12c($sp) +.Ljp7F066670: +/* 09B1E0 7F066670 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B1E4 7F066674 27A50130 */ addiu $a1, $sp, 0x130 +/* 09B1E8 7F066678 27A40130 */ addiu $a0, $sp, 0x130 +/* 09B1EC 7F06667C 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B1F0 7F066680 8FA50034 */ lw $a1, 0x34($sp) +/* 09B1F4 7F066684 0FC160F3 */ jal sinf +/* 09B1F8 7F066688 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B1FC 7F06668C 44804000 */ mtc1 $zero, $f8 +/* 09B200 7F066690 02202025 */ move $a0, $s1 +/* 09B204 7F066694 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B208 7F066698 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B20C 7F06669C E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B210 7F0666A0 0FC160F0 */ jal cosf +/* 09B214 7F0666A4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B218 7F0666A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B21C 7F0666AC 44813000 */ mtc1 $at, $f6 +/* 09B220 7F0666B0 C7A40044 */ lwc1 $f4, 0x44($sp) +/* 09B224 7F0666B4 46003281 */ sub.s $f10, $f6, $f0 +/* 09B228 7F0666B8 46045202 */ mul.s $f8, $f10, $f4 +/* 09B22C 7F0666BC E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B230 7F0666C0 0FC160F3 */ jal sinf +/* 09B234 7F0666C4 C7AC012C */ lwc1 $f12, 0x12c($sp) +/* 09B238 7F0666C8 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B23C 7F0666CC 44813000 */ mtc1 $at, $f6 +/* 09B240 7F0666D0 8E020024 */ lw $v0, 0x24($s0) +/* 09B244 7F0666D4 46060282 */ mul.s $f10, $f0, $f6 +/* 09B248 7F0666D8 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F0666DC: +/* 09B24C 7F0666DC 2401000B */ li $at, 11 +.Ljp7F0666E0: +/* 09B250 7F0666E0 5441006B */ bnel $v0, $at, .Ljp7F066890 +/* 09B254 7F0666E4 2401000C */ li $at, 12 +/* 09B258 7F0666E8 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B25C 7F0666EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 09B260 7F0666F0 55C0002B */ bnezl $t6, .Ljp7F0667A0 +/* 09B264 7F0666F4 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B268 7F0666F8 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 09B26C 7F0666FC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B270 7F066700 59E00027 */ blezl $t7, .Ljp7F0667A0 +/* 09B274 7F066704 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B278 7F066708 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B27C 7F06670C 24010001 */ li $at, 1 +/* 09B280 7F066710 8F190000 */ lw $t9, ($t8) +/* 09B284 7F066714 53210022 */ beql $t9, $at, .Ljp7F0667A0 +/* 09B288 7F066718 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B28C 7F06671C 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B290 7F066720 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B294 7F066724 1040001D */ beqz $v0, weapon_reload_none_sfx +/* 09B298 7F066728 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) # $t6, 0x8003 +/* 09B29C 7F06672C 8DCE64F4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) +/* 09B2A0 7F066730 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 09B2A4 7F066734 55C0001A */ bnezl $t6, .Ljp7F0667A0 +/* 09B2A8 7F066738 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2AC 7F06673C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 09B2B0 7F066740 2A21003E */ slti $at, $s1, 0x3e +/* 09B2B4 7F066744 8DF800D8 */ lw $t8, 0xd8($t7) +/* 09B2B8 7F066748 57000015 */ bnezl $t8, .Ljp7F0667A0 +/* 09B2BC 7F06674C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2C0 7F066750 14200005 */ bnez $at, .Ljp7F066768 +/* 09B2C4 7F066754 24010058 */ li $at, 88 +/* 09B2C8 7F066758 52210011 */ beql $s1, $at, .Ljp7F0667A0 +/* 09B2CC 7F06675C 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B2D0 7F066760 10000009 */ b weapon_reload_gun_sfx +/* 09B2D4 7F066764 00000000 */ nop +.Ljp7F066768: +/* 09B2D8 7F066768 2E21003E */ sltiu $at, $s1, 0x3e +/* 09B2DC 7F06676C 10200006 */ beqz $at, weapon_reload_gun_sfx +/* 09B2E0 7F066770 0011C880 */ sll $t9, $s1, 2 +/* 09B2E4 7F066774 3C018005 */ lui $at, %hi(jpt_80054294) +/* 09B2E8 7F066778 00390821 */ addu $at, $at, $t9 +/* 09B2EC 7F06677C 8C3942C4 */ lw $t9, %lo(jpt_80054294)($at) +/* 09B2F0 7F066780 03200008 */ jr $t9 +/* 09B2F4 7F066784 00000000 */ nop +weapon_reload_gun_sfx: +/* 09B2F8 7F066788 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09B2FC 7F06678C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09B300 7F066790 24050032 */ li $a1, 50 +/* 09B304 7F066794 0C002386 */ jal play_sfx_a1 +/* 09B308 7F066798 00003025 */ move $a2, $zero +weapon_reload_none_sfx: +/* 09B30C 7F06679C 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0667A0: +/* 09B310 7F0667A0 8E0F0040 */ lw $t7, 0x40($s0) +/* 09B314 7F0667A4 01CF082A */ slt $at, $t6, $t7 +/* 09B318 7F0667A8 1420000A */ bnez $at, .Ljp7F0667D4 +/* 09B31C 7F0667AC 240E0001 */ li $t6, 1 +/* 09B320 7F0667B0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B324 7F0667B4 2402000C */ li $v0, 12 +/* 09B328 7F0667B8 2B010002 */ slti $at, $t8, 2 +/* 09B32C 7F0667BC 54200006 */ bnezl $at, .Ljp7F0667D8 +/* 09B330 7F0667C0 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B334 7F0667C4 AE020024 */ sw $v0, 0x24($s0) +/* 09B338 7F0667C8 AE000020 */ sw $zero, 0x20($s0) +/* 09B33C 7F0667CC 1000002F */ b .Ljp7F06688C +/* 09B340 7F0667D0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0667D4: +/* 09B344 7F0667D4 AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0667D8: +/* 09B348 7F0667D8 8FAF01E0 */ lw $t7, 0x1e0($sp) +/* 09B34C 7F0667DC 2605007C */ addiu $a1, $s0, 0x7c +/* 09B350 7F0667E0 55E00007 */ bnezl $t7, .Ljp7F066800 +/* 09B354 7F0667E4 44806000 */ mtc1 $zero, $f12 +/* 09B358 7F0667E8 44806000 */ mtc1 $zero, $f12 +/* 09B35C 7F0667EC 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B360 7F0667F0 AFA50034 */ sw $a1, 0x34($sp) +/* 09B364 7F0667F4 10000005 */ b .Ljp7F06680C +/* 09B368 7F0667F8 00000000 */ nop +/* 09B36C 7F0667FC 44806000 */ mtc1 $zero, $f12 +.Ljp7F066800: +/* 09B370 7F066800 AFA50034 */ sw $a1, 0x34($sp) +/* 09B374 7F066804 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B378 7F066808 46006307 */ neg.s $f12, $f12 +.Ljp7F06680C: +/* 09B37C 7F06680C 3C018005 */ lui $at, %hi(D_8005438C) # $at, 0x8005 +/* 09B380 7F066810 C42C43BC */ lwc1 $f12, %lo(D_8005438C)($at) +/* 09B384 7F066814 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B388 7F066818 27A500E8 */ addiu $a1, $sp, 0xe8 +/* 09B38C 7F06681C 27A400E8 */ addiu $a0, $sp, 0xe8 +/* 09B390 7F066820 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B394 7F066824 8FA50034 */ lw $a1, 0x34($sp) +/* 09B398 7F066828 44806000 */ mtc1 $zero, $f12 +/* 09B39C 7F06682C 0FC160F3 */ jal sinf +/* 09B3A0 7F066830 00000000 */ nop +/* 09B3A4 7F066834 44802000 */ mtc1 $zero, $f4 +/* 09B3A8 7F066838 02202025 */ move $a0, $s1 +/* 09B3AC 7F06683C 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B3B0 7F066840 E60400AC */ swc1 $f4, 0xac($s0) +/* 09B3B4 7F066844 3C018005 */ lui $at, %hi(D_80054390) # $at, 0x8005 +/* 09B3B8 7F066848 C42C43C0 */ lwc1 $f12, %lo(D_80054390)($at) +/* 09B3BC 7F06684C 0FC160F0 */ jal cosf +/* 09B3C0 7F066850 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B3C4 7F066854 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B3C8 7F066858 44814000 */ mtc1 $at, $f8 +/* 09B3CC 7F06685C C7AA0044 */ lwc1 $f10, 0x44($sp) +/* 09B3D0 7F066860 3C018005 */ lui $at, %hi(D_80054394) # $at, 0x8005 +/* 09B3D4 7F066864 46004181 */ sub.s $f6, $f8, $f0 +/* 09B3D8 7F066868 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B3DC 7F06686C E60400B0 */ swc1 $f4, 0xb0($s0) +/* 09B3E0 7F066870 0FC160F3 */ jal sinf +/* 09B3E4 7F066874 C42C43C4 */ lwc1 $f12, %lo(D_80054394)($at) +/* 09B3E8 7F066878 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B3EC 7F06687C 44814000 */ mtc1 $at, $f8 +/* 09B3F0 7F066880 8E020024 */ lw $v0, 0x24($s0) +/* 09B3F4 7F066884 46080182 */ mul.s $f6, $f0, $f8 +/* 09B3F8 7F066888 E60600B4 */ swc1 $f6, 0xb4($s0) +.Ljp7F06688C: +/* 09B3FC 7F06688C 2401000C */ li $at, 12 +.Ljp7F066890: +/* 09B400 7F066890 5441005A */ bnel $v0, $at, .Ljp7F0669FC +/* 09B404 7F066894 2401000E */ li $at, 14 +/* 09B408 7F066898 8E18001C */ lw $t8, 0x1c($s0) +/* 09B40C 7F06689C 57000007 */ bnezl $t8, .Ljp7F0668BC +/* 09B410 7F0668A0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09B414 7F0668A4 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B418 7F0668A8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B41C 7F0668AC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B420 7F0668B0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B424 7F0668B4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 09B428 7F0668B8 8E0E0020 */ lw $t6, 0x20($s0) +.Ljp7F0668BC: +/* 09B42C 7F0668BC 29C10017 */ slti $at, $t6, 0x17 +/* 09B430 7F0668C0 5020000E */ beql $at, $zero, .Ljp7F0668FC +/* 09B434 7F0668C4 AE000024 */ sw $zero, 0x24($s0) +/* 09B438 7F0668C8 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B43C 7F0668CC 02202025 */ move $a0, $s1 +/* 09B440 7F0668D0 10400009 */ beqz $v0, .Ljp7F0668F8 +/* 09B444 7F0668D4 02202025 */ move $a0, $s1 +/* 09B448 7F0668D8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B44C 7F0668DC 24050800 */ li $a1, 2048 +/* 09B450 7F0668E0 10400005 */ beqz $v0, .Ljp7F0668F8 +/* 09B454 7F0668E4 02202025 */ move $a0, $s1 +/* 09B458 7F0668E8 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B45C 7F0668EC 24052000 */ li $a1, 8192 +/* 09B460 7F0668F0 50400007 */ beql $v0, $zero, .Ljp7F066910 +/* 09B464 7F0668F4 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F0668F8: +/* 09B468 7F0668F8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0668FC: +/* 09B46C 7F0668FC AE000020 */ sw $zero, 0x20($s0) +/* 09B470 7F066900 AE00001C */ sw $zero, 0x1c($s0) +/* 09B474 7F066904 1000003C */ b .Ljp7F0669F8 +/* 09B478 7F066908 00001025 */ move $v0, $zero +/* 09B47C 7F06690C 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066910: +/* 09B480 7F066910 24180017 */ li $t8, 23 +/* 09B484 7F066914 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B488 7F066918 030FC823 */ subu $t9, $t8, $t7 +/* 09B48C 7F06691C 44995000 */ mtc1 $t9, $f10 +/* 09B490 7F066920 44811000 */ mtc1 $at, $f2 +/* 09B494 7F066924 3C018005 */ lui $at, %hi(D_80054398) # $at, 0x8005 +/* 09B498 7F066928 46805120 */ cvt.s.w $f4, $f10 +/* 09B49C 7F06692C C42843C8 */ lwc1 $f8, %lo(D_80054398)($at) +/* 09B4A0 7F066930 240E0001 */ li $t6, 1 +/* 09B4A4 7F066934 2605007C */ addiu $a1, $s0, 0x7c +/* 09B4A8 7F066938 46082182 */ mul.s $f6, $f4, $f8 +/* 09B4AC 7F06693C 46023283 */ div.s $f10, $f6, $f2 +/* 09B4B0 7F066940 E7AA009C */ swc1 $f10, 0x9c($sp) +/* 09B4B4 7F066944 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B4B8 7F066948 8FB801E0 */ lw $t8, 0x1e0($sp) +/* 09B4BC 7F06694C 57000009 */ bnezl $t8, .Ljp7F066974 +/* 09B4C0 7F066950 44804000 */ mtc1 $zero, $f8 +/* 09B4C4 7F066954 44802000 */ mtc1 $zero, $f4 +/* 09B4C8 7F066958 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4CC 7F06695C 46022303 */ div.s $f12, $f4, $f2 +/* 09B4D0 7F066960 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4D4 7F066964 E7AC0040 */ swc1 $f12, 0x40($sp) +/* 09B4D8 7F066968 10000008 */ b .Ljp7F06698C +/* 09B4DC 7F06696C C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B4E0 7F066970 44804000 */ mtc1 $zero, $f8 +.Ljp7F066974: +/* 09B4E4 7F066974 AFA50034 */ sw $a1, 0x34($sp) +/* 09B4E8 7F066978 46024003 */ div.s $f0, $f8, $f2 +/* 09B4EC 7F06697C 46000307 */ neg.s $f12, $f0 +/* 09B4F0 7F066980 0FC162EA */ jal matrix_4x4_set_rotation_around_z +/* 09B4F4 7F066984 E7A00040 */ swc1 $f0, 0x40($sp) +/* 09B4F8 7F066988 C7AC009C */ lwc1 $f12, 0x9c($sp) +.Ljp7F06698C: +/* 09B4FC 7F06698C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B500 7F066990 27A500A0 */ addiu $a1, $sp, 0xa0 +/* 09B504 7F066994 27A400A0 */ addiu $a0, $sp, 0xa0 +/* 09B508 7F066998 0FC16162 */ jal matrix_4x4_multiply_in_place +/* 09B50C 7F06699C 8FA50034 */ lw $a1, 0x34($sp) +/* 09B510 7F0669A0 0FC160F3 */ jal sinf +/* 09B514 7F0669A4 C7AC0040 */ lwc1 $f12, 0x40($sp) +/* 09B518 7F0669A8 44803000 */ mtc1 $zero, $f6 +/* 09B51C 7F0669AC 02202025 */ move $a0, $s1 +/* 09B520 7F0669B0 0FC193C4 */ jal sub_GAME_7F0649AC +/* 09B524 7F0669B4 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B528 7F0669B8 E7A00044 */ swc1 $f0, 0x44($sp) +/* 09B52C 7F0669BC 0FC160F0 */ jal cosf +/* 09B530 7F0669C0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B534 7F0669C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B538 7F0669C8 44815000 */ mtc1 $at, $f10 +/* 09B53C 7F0669CC C7A80044 */ lwc1 $f8, 0x44($sp) +/* 09B540 7F0669D0 46005101 */ sub.s $f4, $f10, $f0 +/* 09B544 7F0669D4 46082182 */ mul.s $f6, $f4, $f8 +/* 09B548 7F0669D8 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B54C 7F0669DC 0FC160F3 */ jal sinf +/* 09B550 7F0669E0 C7AC009C */ lwc1 $f12, 0x9c($sp) +/* 09B554 7F0669E4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B558 7F0669E8 44815000 */ mtc1 $at, $f10 +/* 09B55C 7F0669EC 8E020024 */ lw $v0, 0x24($s0) +/* 09B560 7F0669F0 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B564 7F0669F4 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F0669F8: +/* 09B568 7F0669F8 2401000E */ li $at, 14 +.Ljp7F0669FC: +/* 09B56C 7F0669FC 5441002E */ bnel $v0, $at, .Ljp7F066AB8 +/* 09B570 7F066A00 2401000F */ li $at, 15 +/* 09B574 7F066A04 8E030020 */ lw $v1, 0x20($s0) +/* 09B578 7F066A08 2402000F */ li $v0, 15 +/* 09B57C 7F066A0C 28610010 */ slti $at, $v1, 0x10 +/* 09B580 7F066A10 50200005 */ beql $at, $zero, .Ljp7F066A28 +/* 09B584 7F066A14 AE020024 */ sw $v0, 0x24($s0) +/* 09B588 7F066A18 820F000F */ lb $t7, 0xf($s0) +/* 09B58C 7F066A1C 55E00006 */ bnezl $t7, .Ljp7F066A38 +/* 09B590 7F066A20 44834000 */ mtc1 $v1, $f8 +/* 09B594 7F066A24 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066A28: +/* 09B598 7F066A28 AE000020 */ sw $zero, 0x20($s0) +/* 09B59C 7F066A2C 10000021 */ b .Ljp7F066AB4 +/* 09B5A0 7F066A30 AE00001C */ sw $zero, 0x1c($s0) +/* 09B5A4 7F066A34 44834000 */ mtc1 $v1, $f8 +.Ljp7F066A38: +/* 09B5A8 7F066A38 3C018005 */ lui $at, %hi(D_8005439C) # $at, 0x8005 +/* 09B5AC 7F066A3C C42A43CC */ lwc1 $f10, %lo(D_8005439C)($at) +/* 09B5B0 7F066A40 468041A0 */ cvt.s.w $f6, $f8 +/* 09B5B4 7F066A44 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 09B5B8 7F066A48 44814000 */ mtc1 $at, $f8 +/* 09B5BC 7F066A4C 240E0001 */ li $t6, 1 +/* 09B5C0 7F066A50 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09B5C4 7F066A54 2605007C */ addiu $a1, $s0, 0x7c +/* 09B5C8 7F066A58 460A3102 */ mul.s $f4, $f6, $f10 +/* 09B5CC 7F066A5C 46082303 */ div.s $f12, $f4, $f8 +/* 09B5D0 7F066A60 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B5D4 7F066A64 E7AC0098 */ swc1 $f12, 0x98($sp) +/* 09B5D8 7F066A68 44803000 */ mtc1 $zero, $f6 +/* 09B5DC 7F066A6C 00000000 */ nop +/* 09B5E0 7F066A70 E60600AC */ swc1 $f6, 0xac($s0) +/* 09B5E4 7F066A74 0FC160F0 */ jal cosf +/* 09B5E8 7F066A78 C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B5EC 7F066A7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B5F0 7F066A80 44815000 */ mtc1 $at, $f10 +/* 09B5F4 7F066A84 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B5F8 7F066A88 44814000 */ mtc1 $at, $f8 +/* 09B5FC 7F066A8C 46005101 */ sub.s $f4, $f10, $f0 +/* 09B600 7F066A90 46082182 */ mul.s $f6, $f4, $f8 +/* 09B604 7F066A94 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 09B608 7F066A98 0FC160F3 */ jal sinf +/* 09B60C 7F066A9C C7AC0098 */ lwc1 $f12, 0x98($sp) +/* 09B610 7F066AA0 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B614 7F066AA4 44815000 */ mtc1 $at, $f10 +/* 09B618 7F066AA8 8E020024 */ lw $v0, 0x24($s0) +/* 09B61C 7F066AAC 460A0102 */ mul.s $f4, $f0, $f10 +/* 09B620 7F066AB0 E60400B4 */ swc1 $f4, 0xb4($s0) +.Ljp7F066AB4: +/* 09B624 7F066AB4 2401000F */ li $at, 15 +.Ljp7F066AB8: +/* 09B628 7F066AB8 54410031 */ bnel $v0, $at, .Ljp7F066B80 +/* 09B62C 7F066ABC 24010010 */ li $at, 16 +/* 09B630 7F066AC0 8E18001C */ lw $t8, 0x1c($s0) +/* 09B634 7F066AC4 53000006 */ beql $t8, $zero, .Ljp7F066AE0 +/* 09B638 7F066AC8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B63C 7F066ACC 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B640 7F066AD0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B644 7F066AD4 14400007 */ bnez $v0, .Ljp7F066AF4 +/* 09B648 7F066AD8 00000000 */ nop +/* 09B64C 7F066ADC 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066AE0: +/* 09B650 7F066AE0 0FC177EB */ jal sub_GAME_7F05DA8C +/* 09B654 7F066AE4 8E05003C */ lw $a1, 0x3c($s0) +/* 09B658 7F066AE8 0FC177D9 */ jal get_item_in_hand_or_watch_menu +/* 09B65C 7F066AEC 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B660 7F066AF0 00408825 */ move $s1, $v0 +.Ljp7F066AF4: +/* 09B664 7F066AF4 0FC174F7 */ jal sub_GAME_7F05CEBC +/* 09B668 7F066AF8 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B66C 7F066AFC 10400006 */ beqz $v0, .Ljp7F066B18 +/* 09B670 7F066B00 24190001 */ li $t9, 1 +/* 09B674 7F066B04 24020010 */ li $v0, 16 +/* 09B678 7F066B08 AE020024 */ sw $v0, 0x24($s0) +/* 09B67C 7F066B0C AE000020 */ sw $zero, 0x20($s0) +/* 09B680 7F066B10 1000001A */ b .Ljp7F066B7C +/* 09B684 7F066B14 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066B18: +/* 09B688 7F066B18 AE1900BC */ sw $t9, 0xbc($s0) +/* 09B68C 7F066B1C 3C018005 */ lui $at, %hi(D_800543A0) # $at, 0x8005 +/* 09B690 7F066B20 C42C43D0 */ lwc1 $f12, %lo(D_800543A0)($at) +/* 09B694 7F066B24 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B698 7F066B28 2605007C */ addiu $a1, $s0, 0x7c +/* 09B69C 7F066B2C 44804000 */ mtc1 $zero, $f8 +/* 09B6A0 7F066B30 3C018005 */ lui $at, %hi(D_800543A4) # $at, 0x8005 +/* 09B6A4 7F066B34 E60800AC */ swc1 $f8, 0xac($s0) +/* 09B6A8 7F066B38 0FC160F0 */ jal cosf +/* 09B6AC 7F066B3C C42C43D4 */ lwc1 $f12, %lo(D_800543A4)($at) +/* 09B6B0 7F066B40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B6B4 7F066B44 44813000 */ mtc1 $at, $f6 +/* 09B6B8 7F066B48 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B6BC 7F066B4C 44812000 */ mtc1 $at, $f4 +/* 09B6C0 7F066B50 46003281 */ sub.s $f10, $f6, $f0 +/* 09B6C4 7F066B54 3C018005 */ lui $at, %hi(D_800543A8) # $at, 0x8005 +/* 09B6C8 7F066B58 46045202 */ mul.s $f8, $f10, $f4 +/* 09B6CC 7F066B5C E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B6D0 7F066B60 0FC160F3 */ jal sinf +/* 09B6D4 7F066B64 C42C43D8 */ lwc1 $f12, %lo(D_800543A8)($at) +/* 09B6D8 7F066B68 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B6DC 7F066B6C 44813000 */ mtc1 $at, $f6 +/* 09B6E0 7F066B70 8E020024 */ lw $v0, 0x24($s0) +/* 09B6E4 7F066B74 46060282 */ mul.s $f10, $f0, $f6 +/* 09B6E8 7F066B78 E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066B7C: +/* 09B6EC 7F066B7C 24010010 */ li $at, 16 +.Ljp7F066B80: +/* 09B6F0 7F066B80 5441004C */ bnel $v0, $at, .Ljp7F066CB4 +/* 09B6F4 7F066B84 24010011 */ li $at, 17 +/* 09B6F8 7F066B88 8E0E001C */ lw $t6, 0x1c($s0) +/* 09B6FC 7F066B8C 2A210021 */ slti $at, $s1, 0x21 +/* 09B700 7F066B90 55C00010 */ bnezl $t6, .Ljp7F066BD4 +/* 09B704 7F066B94 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B708 7F066B98 5020000E */ beql $at, $zero, .Ljp7F066BD4 +/* 09B70C 7F066B9C 8E0F0020 */ lw $t7, 0x20($s0) +/* 09B710 7F066BA0 0FC26C01 */ jal getPlayerCount +/* 09B714 7F066BA4 00000000 */ nop +/* 09B718 7F066BA8 28410002 */ slti $at, $v0, 2 +/* 09B71C 7F066BAC 14200003 */ bnez $at, .Ljp7F066BBC +/* 09B720 7F066BB0 00000000 */ nop +/* 09B724 7F066BB4 0FC26FCE */ jal sub_GAME_7F09B398 +/* 09B728 7F066BB8 8FA401E0 */ lw $a0, 0x1e0($sp) +.Ljp7F066BBC: +/* 09B72C 7F066BBC 0FC193CF */ jal sub_GAME_7F0649D8 +/* 09B730 7F066BC0 8FA401E0 */ lw $a0, 0x1e0($sp) +/* 09B734 7F066BC4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09B738 7F066BC8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09B73C 7F066BCC AF000FC8 */ sw $zero, 0xfc8($t8) +/* 09B740 7F066BD0 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F066BD4: +/* 09B744 7F066BD4 29E10017 */ slti $at, $t7, 0x17 +/* 09B748 7F066BD8 5020000E */ beql $at, $zero, .Ljp7F066C14 +/* 09B74C 7F066BDC AE000024 */ sw $zero, 0x24($s0) +/* 09B750 7F066BE0 0FC1755A */ jal get_ptr_weapon_model_header_line +/* 09B754 7F066BE4 02202025 */ move $a0, $s1 +/* 09B758 7F066BE8 10400009 */ beqz $v0, .Ljp7F066C10 +/* 09B75C 7F066BEC 02202025 */ move $a0, $s1 +/* 09B760 7F066BF0 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B764 7F066BF4 24050800 */ li $a1, 2048 +/* 09B768 7F066BF8 10400005 */ beqz $v0, .Ljp7F066C10 +/* 09B76C 7F066BFC 02202025 */ move $a0, $s1 +/* 09B770 7F066C00 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09B774 7F066C04 24052000 */ li $a1, 8192 +/* 09B778 7F066C08 50400007 */ beql $v0, $zero, .Ljp7F066C28 +/* 09B77C 7F066C0C 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C10: +/* 09B780 7F066C10 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066C14: +/* 09B784 7F066C14 AE000020 */ sw $zero, 0x20($s0) +/* 09B788 7F066C18 AE00001C */ sw $zero, 0x1c($s0) +/* 09B78C 7F066C1C 10000024 */ b .Ljp7F066CB0 +/* 09B790 7F066C20 00001025 */ move $v0, $zero +/* 09B794 7F066C24 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F066C28: +/* 09B798 7F066C28 240E0017 */ li $t6, 23 +/* 09B79C 7F066C2C 3C018005 */ lui $at, %hi(D_800543AC) # $at, 0x8005 +/* 09B7A0 7F066C30 01D9C023 */ subu $t8, $t6, $t9 +/* 09B7A4 7F066C34 44982000 */ mtc1 $t8, $f4 +/* 09B7A8 7F066C38 C42643DC */ lwc1 $f6, %lo(D_800543AC)($at) +/* 09B7AC 7F066C3C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 +/* 09B7B0 7F066C40 46802220 */ cvt.s.w $f8, $f4 +/* 09B7B4 7F066C44 44812000 */ mtc1 $at, $f4 +/* 09B7B8 7F066C48 240F0001 */ li $t7, 1 +/* 09B7BC 7F066C4C AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B7C0 7F066C50 2605007C */ addiu $a1, $s0, 0x7c +/* 09B7C4 7F066C54 46064282 */ mul.s $f10, $f8, $f6 +/* 09B7C8 7F066C58 46045303 */ div.s $f12, $f10, $f4 +/* 09B7CC 7F066C5C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x +/* 09B7D0 7F066C60 E7AC0090 */ swc1 $f12, 0x90($sp) +/* 09B7D4 7F066C64 44804000 */ mtc1 $zero, $f8 +/* 09B7D8 7F066C68 00000000 */ nop +/* 09B7DC 7F066C6C E60800AC */ swc1 $f8, 0xac($s0) +/* 09B7E0 7F066C70 0FC160F0 */ jal cosf +/* 09B7E4 7F066C74 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B7E8 7F066C78 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09B7EC 7F066C7C 44813000 */ mtc1 $at, $f6 +/* 09B7F0 7F066C80 3C01C270 */ li $at, 0xC2700000 # -60.000000 +/* 09B7F4 7F066C84 44812000 */ mtc1 $at, $f4 +/* 09B7F8 7F066C88 46003281 */ sub.s $f10, $f6, $f0 +/* 09B7FC 7F066C8C 46045202 */ mul.s $f8, $f10, $f4 +/* 09B800 7F066C90 E60800B0 */ swc1 $f8, 0xb0($s0) +/* 09B804 7F066C94 0FC160F3 */ jal sinf +/* 09B808 7F066C98 C7AC0090 */ lwc1 $f12, 0x90($sp) +/* 09B80C 7F066C9C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 09B810 7F066CA0 44813000 */ mtc1 $at, $f6 +/* 09B814 7F066CA4 8E020024 */ lw $v0, 0x24($s0) +/* 09B818 7F066CA8 46060282 */ mul.s $f10, $f0, $f6 +/* 09B81C 7F066CAC E60A00B4 */ swc1 $f10, 0xb4($s0) +.Ljp7F066CB0: +/* 09B820 7F066CB0 24010011 */ li $at, 17 +.Ljp7F066CB4: +/* 09B824 7F066CB4 1041000B */ beq $v0, $at, .Ljp7F066CE4 +/* 09B828 7F066CB8 24010012 */ li $at, 18 +/* 09B82C 7F066CBC 10410009 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B830 7F066CC0 24040013 */ li $a0, 19 +/* 09B834 7F066CC4 10820007 */ beq $a0, $v0, .Ljp7F066CE4 +/* 09B838 7F066CC8 24010014 */ li $at, 20 +/* 09B83C 7F066CCC 10410005 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B840 7F066CD0 24010015 */ li $at, 21 +/* 09B844 7F066CD4 10410003 */ beq $v0, $at, .Ljp7F066CE4 +/* 09B848 7F066CD8 24010016 */ li $at, 22 +/* 09B84C 7F066CDC 54410056 */ bnel $v0, $at, .Ljp7F066E38 +/* 09B850 7F066CE0 2401001E */ li $at, 30 +.Ljp7F066CE4: +/* 09B854 7F066CE4 8E030020 */ lw $v1, 0x20($s0) +/* 09B858 7F066CE8 260E007C */ addiu $t6, $s0, 0x7c +/* 09B85C 7F066CEC 24010011 */ li $at, 17 +/* 09B860 7F066CF0 44832000 */ mtc1 $v1, $f4 +/* 09B864 7F066CF4 24040013 */ li $a0, 19 +/* 09B868 7F066CF8 AFAE0034 */ sw $t6, 0x34($sp) +/* 09B86C 7F066CFC 46802220 */ cvt.s.w $f8, $f4 +/* 09B870 7F066D00 10410003 */ beq $v0, $at, .Ljp7F066D10 +/* 09B874 7F066D04 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 09B878 7F066D08 24010014 */ li $at, 20 +/* 09B87C 7F066D0C 1441001E */ bne $v0, $at, .Ljp7F066D88 +.Ljp7F066D10: +/* 09B880 7F066D10 28610010 */ slti $at, $v1, 0x10 +/* 09B884 7F066D14 1420001C */ bnez $at, .Ljp7F066D88 +/* 09B888 7F066D18 3C188003 */ lui $t8, %hi(D_80035E94) # $t8, 0x8003 +/* 09B88C 7F066D1C 27185ED4 */ addiu $t8, %lo(D_80035E94) # addiu $t8, $t8, 0x5ed4 +/* 09B890 7F066D20 8F010000 */ lw $at, ($t8) +/* 09B894 7F066D24 27B90080 */ addiu $t9, $sp, 0x80 +/* 09B898 7F066D28 AF210000 */ sw $at, ($t9) +/* 09B89C 7F066D2C 97010004 */ lhu $at, 4($t8) +/* 09B8A0 7F066D30 0C002918 */ jal randomGetNext +/* 09B8A4 7F066D34 A7210004 */ sh $at, 4($t9) +/* 09B8A8 7F066D38 24010003 */ li $at, 3 +/* 09B8AC 7F066D3C 0041001B */ divu $zero, $v0, $at +/* 09B8B0 7F066D40 00007810 */ mfhi $t7 +/* 09B8B4 7F066D44 000FC840 */ sll $t9, $t7, 1 +/* 09B8B8 7F066D48 03B92821 */ addu $a1, $sp, $t9 +/* 09B8BC 7F066D4C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 09B8C0 7F066D50 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 09B8C4 7F066D54 84A50080 */ lh $a1, 0x80($a1) +/* 09B8C8 7F066D58 0C002386 */ jal play_sfx_a1 +/* 09B8CC 7F066D5C 00003025 */ move $a2, $zero +/* 09B8D0 7F066D60 8E180024 */ lw $t8, 0x24($s0) +/* 09B8D4 7F066D64 24010011 */ li $at, 17 +/* 09B8D8 7F066D68 24020015 */ li $v0, 21 +/* 09B8DC 7F066D6C 17010005 */ bne $t8, $at, .Ljp7F066D84 +/* 09B8E0 7F066D70 24040013 */ li $a0, 19 +/* 09B8E4 7F066D74 24020012 */ li $v0, 18 +/* 09B8E8 7F066D78 AE020024 */ sw $v0, 0x24($s0) +/* 09B8EC 7F066D7C 10000002 */ b .Ljp7F066D88 +/* 09B8F0 7F066D80 24040013 */ li $a0, 19 +.Ljp7F066D84: +/* 09B8F4 7F066D84 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066D88: +/* 09B8F8 7F066D88 10820012 */ beq $a0, $v0, .Ljp7F066DD4 +/* 09B8FC 7F066D8C 24010016 */ li $at, 22 +/* 09B900 7F066D90 50410011 */ beql $v0, $at, .Ljp7F066DD8 +/* 09B904 7F066D94 24010011 */ li $at, 17 +/* 09B908 7F066D98 8E190020 */ lw $t9, 0x20($s0) +/* 09B90C 7F066D9C 24180001 */ li $t8, 1 +/* 09B910 7F066DA0 2B210018 */ slti $at, $t9, 0x18 +/* 09B914 7F066DA4 1420000B */ bnez $at, .Ljp7F066DD4 +/* 09B918 7F066DA8 24010011 */ li $at, 17 +/* 09B91C 7F066DAC 10410004 */ beq $v0, $at, .Ljp7F066DC0 +/* 09B920 7F066DB0 A218000C */ sb $t8, 0xc($s0) +/* 09B924 7F066DB4 24010012 */ li $at, 18 +/* 09B928 7F066DB8 54410005 */ bnel $v0, $at, .Ljp7F066DD0 +/* 09B92C 7F066DBC 24020016 */ li $v0, 22 +.Ljp7F066DC0: +/* 09B930 7F066DC0 AE040024 */ sw $a0, 0x24($s0) +/* 09B934 7F066DC4 10000003 */ b .Ljp7F066DD4 +/* 09B938 7F066DC8 00801025 */ move $v0, $a0 +/* 09B93C 7F066DCC 24020016 */ li $v0, 22 +.Ljp7F066DD0: +/* 09B940 7F066DD0 AE020024 */ sw $v0, 0x24($s0) +.Ljp7F066DD4: +/* 09B944 7F066DD4 24010011 */ li $at, 17 +.Ljp7F066DD8: +/* 09B948 7F066DD8 10410005 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B94C 7F066DDC 8FA5008C */ lw $a1, 0x8c($sp) +/* 09B950 7F066DE0 24010012 */ li $at, 18 +/* 09B954 7F066DE4 10410002 */ beq $v0, $at, .Ljp7F066DF0 +/* 09B958 7F066DE8 00000000 */ nop +/* 09B95C 7F066DEC 14820003 */ bne $a0, $v0, .Ljp7F066DFC +.Ljp7F066DF0: +/* 09B960 7F066DF0 3C048003 */ lui $a0, %hi(D_80034CA4) # $a0, 0x8003 +/* 09B964 7F066DF4 10000003 */ b .Ljp7F066E04 +/* 09B968 7F066DF8 24844CE4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ce4 +.Ljp7F066DFC: +/* 09B96C 7F066DFC 3C048003 */ lui $a0, %hi(D_80034E0C) # $a0, 0x8003 +/* 09B970 7F066E00 24844E4C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e4c +.Ljp7F066E04: +/* 09B974 7F066E04 8FA60034 */ lw $a2, 0x34($sp) +/* 09B978 7F066E08 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09B97C 7F066E0C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09B980 7F066E10 10400004 */ beqz $v0, .Ljp7F066E24 +/* 09B984 7F066E14 240F0001 */ li $t7, 1 +/* 09B988 7F066E18 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09B98C 7F066E1C 10000005 */ b .Ljp7F066E34 +/* 09B990 7F066E20 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066E24: +/* 09B994 7F066E24 AE000024 */ sw $zero, 0x24($s0) +/* 09B998 7F066E28 AE000020 */ sw $zero, 0x20($s0) +/* 09B99C 7F066E2C AE00001C */ sw $zero, 0x1c($s0) +/* 09B9A0 7F066E30 00001025 */ move $v0, $zero +.Ljp7F066E34: +/* 09B9A4 7F066E34 2401001E */ li $at, 30 +.Ljp7F066E38: +/* 09B9A8 7F066E38 10410007 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9AC 7F066E3C 2405001F */ li $a1, 31 +/* 09B9B0 7F066E40 10A20005 */ beq $a1, $v0, .Ljp7F066E58 +/* 09B9B4 7F066E44 24010020 */ li $at, 32 +/* 09B9B8 7F066E48 10410003 */ beq $v0, $at, .Ljp7F066E58 +/* 09B9BC 7F066E4C 24040021 */ li $a0, 33 +/* 09B9C0 7F066E50 54820041 */ bnel $a0, $v0, .Ljp7F066F58 +/* 09B9C4 7F066E54 2401001A */ li $at, 26 +.Ljp7F066E58: +/* 09B9C8 7F066E58 8E030020 */ lw $v1, 0x20($s0) +/* 09B9CC 7F066E5C 2401001E */ li $at, 30 +/* 09B9D0 7F066E60 24040021 */ li $a0, 33 +/* 09B9D4 7F066E64 44833000 */ mtc1 $v1, $f6 +/* 09B9D8 7F066E68 2405001F */ li $a1, 31 +/* 09B9DC 7F066E6C 2606007C */ addiu $a2, $s0, 0x7c +/* 09B9E0 7F066E70 10410003 */ beq $v0, $at, .Ljp7F066E80 +/* 09B9E4 7F066E74 46803020 */ cvt.s.w $f0, $f6 +/* 09B9E8 7F066E78 14A20014 */ bne $a1, $v0, .Ljp7F066ECC +/* 09B9EC 7F066E7C 24010020 */ li $at, 32 +.Ljp7F066E80: +/* 09B9F0 7F066E80 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 +/* 09B9F4 7F066E84 8F39A120 */ lw $t9, %lo(pPlayer)($t9) +/* 09B9F8 7F066E88 24010011 */ li $at, 17 +/* 09B9FC 7F066E8C 3C0E8003 */ lui $t6, %hi(D_80035778) # $t6, 0x8003 +/* 09BA00 7F066E90 8F382A38 */ lw $t8, 0x2a38($t9) +/* 09BA04 7F066E94 3C0F8003 */ lui $t7, %hi(D_800354A8) # $t7, 0x8003 +/* 09BA08 7F066E98 25CE57B8 */ addiu $t6, %lo(D_80035778) # addiu $t6, $t6, 0x57b8 +/* 09BA0C 7F066E9C 17010003 */ bne $t8, $at, .Ljp7F066EAC +/* 09BA10 7F066EA0 25EF54E8 */ addiu $t7, %lo(D_800354A8) # addiu $t7, $t7, 0x54e8 +/* 09BA14 7F066EA4 10000002 */ b .Ljp7F066EB0 +/* 09BA18 7F066EA8 AFAE0078 */ sw $t6, 0x78($sp) +.Ljp7F066EAC: +/* 09BA1C 7F066EAC AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066EB0: +/* 09BA20 7F066EB0 10A2001B */ beq $a1, $v0, .Ljp7F066F20 +/* 09BA24 7F066EB4 2861001E */ slti $at, $v1, 0x1e +/* 09BA28 7F066EB8 14200019 */ bnez $at, .Ljp7F066F20 +/* 09BA2C 7F066EBC 24190001 */ li $t9, 1 +/* 09BA30 7F066EC0 A219000C */ sb $t9, 0xc($s0) +/* 09BA34 7F066EC4 10000016 */ b .Ljp7F066F20 +/* 09BA38 7F066EC8 AE050024 */ sw $a1, 0x24($s0) +.Ljp7F066ECC: +/* 09BA3C 7F066ECC 10410003 */ beq $v0, $at, .Ljp7F066EDC +/* 09BA40 7F066ED0 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 09BA44 7F066ED4 54820013 */ bnel $a0, $v0, .Ljp7F066F24 +/* 09BA48 7F066ED8 44050000 */ mfc1 $a1, $f0 +.Ljp7F066EDC: +/* 09BA4C 7F066EDC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 09BA50 7F066EE0 24010011 */ li $at, 17 +/* 09BA54 7F066EE4 3C0F8003 */ lui $t7, %hi(D_80035904) # $t7, 0x8003 +/* 09BA58 7F066EE8 8F0E2A38 */ lw $t6, 0x2a38($t8) +/* 09BA5C 7F066EEC 3C198003 */ lui $t9, %hi(D_80035610) # $t9, 0x8003 +/* 09BA60 7F066EF0 25EF5944 */ addiu $t7, %lo(D_80035904) # addiu $t7, $t7, 0x5944 +/* 09BA64 7F066EF4 15C10003 */ bne $t6, $at, .Ljp7F066F04 +/* 09BA68 7F066EF8 27395650 */ addiu $t9, %lo(D_80035610) # addiu $t9, $t9, 0x5650 +/* 09BA6C 7F066EFC 10000002 */ b .Ljp7F066F08 +/* 09BA70 7F066F00 AFAF0078 */ sw $t7, 0x78($sp) +.Ljp7F066F04: +/* 09BA74 7F066F04 AFB90078 */ sw $t9, 0x78($sp) +.Ljp7F066F08: +/* 09BA78 7F066F08 10820005 */ beq $a0, $v0, .Ljp7F066F20 +/* 09BA7C 7F066F0C 2861001E */ slti $at, $v1, 0x1e +/* 09BA80 7F066F10 14200003 */ bnez $at, .Ljp7F066F20 +/* 09BA84 7F066F14 24180001 */ li $t8, 1 +/* 09BA88 7F066F18 A218000C */ sb $t8, 0xc($s0) +/* 09BA8C 7F066F1C AE040024 */ sw $a0, 0x24($s0) +.Ljp7F066F20: +/* 09BA90 7F066F20 44050000 */ mfc1 $a1, $f0 +.Ljp7F066F24: +/* 09BA94 7F066F24 8FA40078 */ lw $a0, 0x78($sp) +/* 09BA98 7F066F28 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BA9C 7F066F2C 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAA0 7F066F30 10400004 */ beqz $v0, .Ljp7F066F44 +/* 09BAA4 7F066F34 240E0001 */ li $t6, 1 +/* 09BAA8 7F066F38 AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BAAC 7F066F3C 10000005 */ b .Ljp7F066F54 +/* 09BAB0 7F066F40 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F066F44: +/* 09BAB4 7F066F44 AE000024 */ sw $zero, 0x24($s0) +/* 09BAB8 7F066F48 AE000020 */ sw $zero, 0x20($s0) +/* 09BABC 7F066F4C AE00001C */ sw $zero, 0x1c($s0) +/* 09BAC0 7F066F50 00001025 */ move $v0, $zero +.Ljp7F066F54: +/* 09BAC4 7F066F54 2401001A */ li $at, 26 +.Ljp7F066F58: +/* 09BAC8 7F066F58 54410023 */ bnel $v0, $at, .Ljp7F066FE8 +/* 09BACC 7F066F5C 2401001B */ li $at, 27 +/* 09BAD0 7F066F60 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BAD4 7F066F64 00001025 */ move $v0, $zero +/* 09BAD8 7F066F68 59E0001C */ blezl $t7, .Ljp7F066FDC +/* 09BADC 7F066F6C AE000024 */ sw $zero, 0x24($s0) +/* 09BAE0 7F066F70 8E190020 */ lw $t9, 0x20($s0) +/* 09BAE4 7F066F74 3C048003 */ lui $a0, %hi(D_80035124) # $a0, 0x8003 +/* 09BAE8 7F066F78 24845164 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5164 +/* 09BAEC 7F066F7C 44995000 */ mtc1 $t9, $f10 +/* 09BAF0 7F066F80 2606007C */ addiu $a2, $s0, 0x7c +/* 09BAF4 7F066F84 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BAF8 7F066F88 46805020 */ cvt.s.w $f0, $f10 +/* 09BAFC 7F066F8C 44050000 */ mfc1 $a1, $f0 +/* 09BB00 7F066F90 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB04 7F066F94 00000000 */ nop +/* 09BB08 7F066F98 10400004 */ beqz $v0, .Ljp7F066FAC +/* 09BB0C 7F066F9C 240E0001 */ li $t6, 1 +/* 09BB10 7F066FA0 24180001 */ li $t8, 1 +/* 09BB14 7F066FA4 1000000A */ b .Ljp7F066FD0 +/* 09BB18 7F066FA8 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F066FAC: +/* 09BB1C 7F066FAC 8E0F002C */ lw $t7, 0x2c($s0) +/* 09BB20 7F066FB0 2418001B */ li $t8, 27 +/* 09BB24 7F066FB4 A200000E */ sb $zero, 0xe($s0) +/* 09BB28 7F066FB8 25F9FFFF */ addiu $t9, $t7, -1 +/* 09BB2C 7F066FBC A20E000C */ sb $t6, 0xc($s0) +/* 09BB30 7F066FC0 AE19002C */ sw $t9, 0x2c($s0) +/* 09BB34 7F066FC4 AE180024 */ sw $t8, 0x24($s0) +/* 09BB38 7F066FC8 AE000020 */ sw $zero, 0x20($s0) +/* 09BB3C 7F066FCC AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FD0: +/* 09BB40 7F066FD0 10000004 */ b .Ljp7F066FE4 +/* 09BB44 7F066FD4 8E020024 */ lw $v0, 0x24($s0) +/* 09BB48 7F066FD8 AE000024 */ sw $zero, 0x24($s0) +.Ljp7F066FDC: +/* 09BB4C 7F066FDC AE000020 */ sw $zero, 0x20($s0) +/* 09BB50 7F066FE0 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F066FE4: +/* 09BB54 7F066FE4 2401001B */ li $at, 27 +.Ljp7F066FE8: +/* 09BB58 7F066FE8 54410017 */ bnel $v0, $at, .Ljp7F067048 +/* 09BB5C 7F066FEC 24010017 */ li $at, 23 +/* 09BB60 7F066FF0 8E0E0020 */ lw $t6, 0x20($s0) +/* 09BB64 7F066FF4 3C048003 */ lui $a0, %hi(D_800351FC) # $a0, 0x8003 +/* 09BB68 7F066FF8 2484523C */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x523c +/* 09BB6C 7F066FFC 448E2000 */ mtc1 $t6, $f4 +/* 09BB70 7F067000 2606007C */ addiu $a2, $s0, 0x7c +/* 09BB74 7F067004 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BB78 7F067008 46802020 */ cvt.s.w $f0, $f4 +/* 09BB7C 7F06700C 44050000 */ mfc1 $a1, $f0 +/* 09BB80 7F067010 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BB84 7F067014 00000000 */ nop +/* 09BB88 7F067018 10400005 */ beqz $v0, .Ljp7F067030 +/* 09BB8C 7F06701C 24190001 */ li $t9, 1 +/* 09BB90 7F067020 240F0001 */ li $t7, 1 +/* 09BB94 7F067024 AE0F00BC */ sw $t7, 0xbc($s0) +/* 09BB98 7F067028 10000006 */ b .Ljp7F067044 +/* 09BB9C 7F06702C 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F067030: +/* 09BBA0 7F067030 A219000E */ sb $t9, 0xe($s0) +/* 09BBA4 7F067034 AE000024 */ sw $zero, 0x24($s0) +/* 09BBA8 7F067038 AE000020 */ sw $zero, 0x20($s0) +/* 09BBAC 7F06703C AE00001C */ sw $zero, 0x1c($s0) +/* 09BBB0 7F067040 00001025 */ move $v0, $zero +.Ljp7F067044: +/* 09BBB4 7F067044 24010017 */ li $at, 23 +.Ljp7F067048: +/* 09BBB8 7F067048 5441002C */ bnel $v0, $at, .Ljp7F0670FC +/* 09BBBC 7F06704C 24010018 */ li $at, 24 +/* 09BBC0 7F067050 8E18002C */ lw $t8, 0x2c($s0) +/* 09BBC4 7F067054 00001025 */ move $v0, $zero +/* 09BBC8 7F067058 5B000025 */ blezl $t8, .Ljp7F0670F0 +/* 09BBCC 7F06705C AE000024 */ sw $zero, 0x24($s0) +/* 09BBD0 7F067060 8E0E0018 */ lw $t6, 0x18($s0) +/* 09BBD4 7F067064 240F0018 */ li $t7, 24 +/* 09BBD8 7F067068 51C00004 */ beql $t6, $zero, .Ljp7F06707C +/* 09BBDC 7F06706C 8E190020 */ lw $t9, 0x20($s0) +/* 09BBE0 7F067070 1000001C */ b .Ljp7F0670E4 +/* 09BBE4 7F067074 AE0F0024 */ sw $t7, 0x24($s0) +/* 09BBE8 7F067078 8E190020 */ lw $t9, 0x20($s0) +.Ljp7F06707C: +/* 09BBEC 7F06707C 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BBF0 7F067080 2606007C */ addiu $a2, $s0, 0x7c +/* 09BBF4 7F067084 44994000 */ mtc1 $t9, $f8 +/* 09BBF8 7F067088 AFA60034 */ sw $a2, 0x34($sp) +/* 09BBFC 7F06708C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC00 7F067090 46804020 */ cvt.s.w $f0, $f8 +/* 09BC04 7F067094 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC08 7F067098 44050000 */ mfc1 $a1, $f0 +/* 09BC0C 7F06709C 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC10 7F0670A0 00000000 */ nop +/* 09BC14 7F0670A4 10400004 */ beqz $v0, .Ljp7F0670B8 +/* 09BC18 7F0670A8 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BC1C 7F0670AC 24180001 */ li $t8, 1 +/* 09BC20 7F0670B0 1000000C */ b .Ljp7F0670E4 +/* 09BC24 7F0670B4 AE1800BC */ sw $t8, 0xbc($s0) +.Ljp7F0670B8: +/* 09BC28 7F0670B8 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BC2C 7F0670BC 24050000 */ li $a1, 0 +/* 09BC30 7F0670C0 8FA60034 */ lw $a2, 0x34($sp) +/* 09BC34 7F0670C4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BC38 7F0670C8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC3C 7F0670CC 10400004 */ beqz $v0, .Ljp7F0670E0 +/* 09BC40 7F0670D0 240F0018 */ li $t7, 24 +/* 09BC44 7F0670D4 240E0001 */ li $t6, 1 +/* 09BC48 7F0670D8 10000002 */ b .Ljp7F0670E4 +/* 09BC4C 7F0670DC AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F0670E0: +/* 09BC50 7F0670E0 AE0F0024 */ sw $t7, 0x24($s0) +.Ljp7F0670E4: +/* 09BC54 7F0670E4 10000004 */ b .Ljp7F0670F8 +/* 09BC58 7F0670E8 8E020024 */ lw $v0, 0x24($s0) +/* 09BC5C 7F0670EC AE000024 */ sw $zero, 0x24($s0) +.Ljp7F0670F0: +/* 09BC60 7F0670F0 AE000020 */ sw $zero, 0x20($s0) +/* 09BC64 7F0670F4 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F0670F8: +/* 09BC68 7F0670F8 24010018 */ li $at, 24 +.Ljp7F0670FC: +/* 09BC6C 7F0670FC 54410023 */ bnel $v0, $at, .Ljp7F06718C +/* 09BC70 7F067100 24010019 */ li $at, 25 +/* 09BC74 7F067104 8E19002C */ lw $t9, 0x2c($s0) +/* 09BC78 7F067108 00001025 */ move $v0, $zero +/* 09BC7C 7F06710C 5B20001C */ blezl $t9, .Ljp7F067180 +/* 09BC80 7F067110 AE000024 */ sw $zero, 0x24($s0) +/* 09BC84 7F067114 8E180020 */ lw $t8, 0x20($s0) +/* 09BC88 7F067118 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 +/* 09BC8C 7F06711C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 +/* 09BC90 7F067120 44983000 */ mtc1 $t8, $f6 +/* 09BC94 7F067124 2606007C */ addiu $a2, $s0, 0x7c +/* 09BC98 7F067128 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BC9C 7F06712C 46803020 */ cvt.s.w $f0, $f6 +/* 09BCA0 7F067130 44050000 */ mfc1 $a1, $f0 +/* 09BCA4 7F067134 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BCA8 7F067138 00000000 */ nop +/* 09BCAC 7F06713C 10400004 */ beqz $v0, .Ljp7F067150 +/* 09BCB0 7F067140 240F0001 */ li $t7, 1 +/* 09BCB4 7F067144 240E0001 */ li $t6, 1 +/* 09BCB8 7F067148 1000000A */ b .Ljp7F067174 +/* 09BCBC 7F06714C AE0E00BC */ sw $t6, 0xbc($s0) +.Ljp7F067150: +/* 09BCC0 7F067150 8E19002C */ lw $t9, 0x2c($s0) +/* 09BCC4 7F067154 240E0019 */ li $t6, 25 +/* 09BCC8 7F067158 A200000E */ sb $zero, 0xe($s0) +/* 09BCCC 7F06715C 2738FFFF */ addiu $t8, $t9, -1 +/* 09BCD0 7F067160 A20F000C */ sb $t7, 0xc($s0) +/* 09BCD4 7F067164 AE18002C */ sw $t8, 0x2c($s0) +/* 09BCD8 7F067168 AE0E0024 */ sw $t6, 0x24($s0) +/* 09BCDC 7F06716C AE000020 */ sw $zero, 0x20($s0) +/* 09BCE0 7F067170 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067174: +/* 09BCE4 7F067174 10000004 */ b .Ljp7F067188 +/* 09BCE8 7F067178 8E020024 */ lw $v0, 0x24($s0) +/* 09BCEC 7F06717C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067180: +/* 09BCF0 7F067180 AE000020 */ sw $zero, 0x20($s0) +/* 09BCF4 7F067184 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067188: +/* 09BCF8 7F067188 24010019 */ li $at, 25 +.Ljp7F06718C: +/* 09BCFC 7F06718C 54410017 */ bnel $v0, $at, .Ljp7F0671EC +/* 09BD00 7F067190 2401001C */ li $at, 28 +/* 09BD04 7F067194 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD08 7F067198 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 +/* 09BD0C 7F06719C 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c +/* 09BD10 7F0671A0 448F5000 */ mtc1 $t7, $f10 +/* 09BD14 7F0671A4 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD18 7F0671A8 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD1C 7F0671AC 46805020 */ cvt.s.w $f0, $f10 +/* 09BD20 7F0671B0 44050000 */ mfc1 $a1, $f0 +/* 09BD24 7F0671B4 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BD28 7F0671B8 00000000 */ nop +/* 09BD2C 7F0671BC 10400005 */ beqz $v0, .Ljp7F0671D4 +/* 09BD30 7F0671C0 24180001 */ li $t8, 1 +/* 09BD34 7F0671C4 24190001 */ li $t9, 1 +/* 09BD38 7F0671C8 AE1900BC */ sw $t9, 0xbc($s0) +/* 09BD3C 7F0671CC 10000006 */ b .Ljp7F0671E8 +/* 09BD40 7F0671D0 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0671D4: +/* 09BD44 7F0671D4 A218000E */ sb $t8, 0xe($s0) +/* 09BD48 7F0671D8 AE000024 */ sw $zero, 0x24($s0) +/* 09BD4C 7F0671DC AE000020 */ sw $zero, 0x20($s0) +/* 09BD50 7F0671E0 AE00001C */ sw $zero, 0x1c($s0) +/* 09BD54 7F0671E4 00001025 */ move $v0, $zero +.Ljp7F0671E8: +/* 09BD58 7F0671E8 2401001C */ li $at, 28 +.Ljp7F0671EC: +/* 09BD5C 7F0671EC 54410028 */ bnel $v0, $at, .Ljp7F067290 +/* 09BD60 7F0671F0 2401001D */ li $at, 29 +/* 09BD64 7F0671F4 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BD68 7F0671F8 02202025 */ move $a0, $s1 +/* 09BD6C 7F0671FC 5DC00006 */ bgtzl $t6, .Ljp7F067218 +/* 09BD70 7F067200 8E0F0020 */ lw $t7, 0x20($s0) +/* 09BD74 7F067204 0FC17975 */ jal bondwalkItemCheckBitflags +/* 09BD78 7F067208 24050010 */ li $a1, 16 +/* 09BD7C 7F06720C 5040001C */ beql $v0, $zero, .Ljp7F067280 +/* 09BD80 7F067210 AE000024 */ sw $zero, 0x24($s0) +/* 09BD84 7F067214 8E0F0020 */ lw $t7, 0x20($s0) +.Ljp7F067218: +/* 09BD88 7F067218 3C048003 */ lui $a0, %hi(D_800352D4) # $a0, 0x8003 +/* 09BD8C 7F06721C 24845314 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x5314 +/* 09BD90 7F067220 448F2000 */ mtc1 $t7, $f4 +/* 09BD94 7F067224 2606007C */ addiu $a2, $s0, 0x7c +/* 09BD98 7F067228 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BD9C 7F06722C 46802020 */ cvt.s.w $f0, $f4 +/* 09BDA0 7F067230 44050000 */ mfc1 $a1, $f0 +/* 09BDA4 7F067234 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BDA8 7F067238 00000000 */ nop +/* 09BDAC 7F06723C 10400004 */ beqz $v0, .Ljp7F067250 +/* 09BDB0 7F067240 24180001 */ li $t8, 1 +/* 09BDB4 7F067244 24190001 */ li $t9, 1 +/* 09BDB8 7F067248 1000000A */ b .Ljp7F067274 +/* 09BDBC 7F06724C AE1900BC */ sw $t9, 0xbc($s0) +.Ljp7F067250: +/* 09BDC0 7F067250 8E0E002C */ lw $t6, 0x2c($s0) +/* 09BDC4 7F067254 2419001D */ li $t9, 29 +/* 09BDC8 7F067258 A200000E */ sb $zero, 0xe($s0) +/* 09BDCC 7F06725C 25CFFFFF */ addiu $t7, $t6, -1 +/* 09BDD0 7F067260 A218000C */ sb $t8, 0xc($s0) +/* 09BDD4 7F067264 AE0F002C */ sw $t7, 0x2c($s0) +/* 09BDD8 7F067268 AE190024 */ sw $t9, 0x24($s0) +/* 09BDDC 7F06726C AE000020 */ sw $zero, 0x20($s0) +/* 09BDE0 7F067270 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067274: +/* 09BDE4 7F067274 10000005 */ b .Ljp7F06728C +/* 09BDE8 7F067278 8E020024 */ lw $v0, 0x24($s0) +/* 09BDEC 7F06727C AE000024 */ sw $zero, 0x24($s0) +.Ljp7F067280: +/* 09BDF0 7F067280 AE000020 */ sw $zero, 0x20($s0) +/* 09BDF4 7F067284 AE00001C */ sw $zero, 0x1c($s0) +/* 09BDF8 7F067288 00001025 */ move $v0, $zero +.Ljp7F06728C: +/* 09BDFC 7F06728C 2401001D */ li $at, 29 +.Ljp7F067290: +/* 09BE00 7F067290 54410017 */ bnel $v0, $at, .Ljp7F0672F0 +/* 09BE04 7F067294 24010024 */ li $at, 36 +/* 09BE08 7F067298 8E180020 */ lw $t8, 0x20($s0) +/* 09BE0C 7F06729C 3C048003 */ lui $a0, %hi(D_800353AC) # $a0, 0x8003 +/* 09BE10 7F0672A0 248453EC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ec +/* 09BE14 7F0672A4 44984000 */ mtc1 $t8, $f8 +/* 09BE18 7F0672A8 2606007C */ addiu $a2, $s0, 0x7c +/* 09BE1C 7F0672AC 8FA701E0 */ lw $a3, 0x1e0($sp) +/* 09BE20 7F0672B0 46804020 */ cvt.s.w $f0, $f8 +/* 09BE24 7F0672B4 44050000 */ mfc1 $a1, $f0 +/* 09BE28 7F0672B8 0FC17307 */ jal sub_GAME_7F05C6FC +/* 09BE2C 7F0672BC 00000000 */ nop +/* 09BE30 7F0672C0 10400005 */ beqz $v0, .Ljp7F0672D8 +/* 09BE34 7F0672C4 240F0001 */ li $t7, 1 +/* 09BE38 7F0672C8 240E0001 */ li $t6, 1 +/* 09BE3C 7F0672CC AE0E00BC */ sw $t6, 0xbc($s0) +/* 09BE40 7F0672D0 10000006 */ b .Ljp7F0672EC +/* 09BE44 7F0672D4 8E020024 */ lw $v0, 0x24($s0) +.Ljp7F0672D8: +/* 09BE48 7F0672D8 A20F000E */ sb $t7, 0xe($s0) +/* 09BE4C 7F0672DC AE000024 */ sw $zero, 0x24($s0) +/* 09BE50 7F0672E0 AE000020 */ sw $zero, 0x20($s0) +/* 09BE54 7F0672E4 AE00001C */ sw $zero, 0x1c($s0) +/* 09BE58 7F0672E8 00001025 */ move $v0, $zero +.Ljp7F0672EC: +/* 09BE5C 7F0672EC 24010024 */ li $at, 36 +.Ljp7F0672F0: +/* 09BE60 7F0672F0 1441004D */ bne $v0, $at, .Ljp7F067428 +/* 09BE64 7F0672F4 2401002E */ li $at, 46 +/* 09BE68 7F0672F8 56210009 */ bnel $s1, $at, .Ljp7F067320 +/* 09BE6C 7F0672FC 2401002C */ li $at, 44 +/* 09BE70 7F067300 8E19001C */ lw $t9, 0x1c($s0) +/* 09BE74 7F067304 17200003 */ bnez $t9, .Ljp7F067314 +/* 09BE78 7F067308 00000000 */ nop +/* 09BE7C 7F06730C 0FC19D0F */ jal analyzeGEKey +/* 09BE80 7F067310 00000000 */ nop +.Ljp7F067314: +/* 09BE84 7F067314 1000003F */ b .Ljp7F067414 +/* 09BE88 7F067318 8E050018 */ lw $a1, 0x18($s0) +/* 09BE8C 7F06731C 2401002C */ li $at, 44 +.Ljp7F067320: +/* 09BE90 7F067320 56210009 */ bnel $s1, $at, .Ljp7F067348 +/* 09BE94 7F067324 24010027 */ li $at, 39 +/* 09BE98 7F067328 8E18001C */ lw $t8, 0x1c($s0) +/* 09BE9C 7F06732C 17000003 */ bnez $t8, .Ljp7F06733C +/* 09BEA0 7F067330 00000000 */ nop +/* 09BEA4 7F067334 0FC19D38 */ jal sub_GAME_7F066F08 +/* 09BEA8 7F067338 00000000 */ nop +.Ljp7F06733C: +/* 09BEAC 7F06733C 10000035 */ b .Ljp7F067414 +/* 09BEB0 7F067340 8E050018 */ lw $a1, 0x18($s0) +/* 09BEB4 7F067344 24010027 */ li $at, 39 +.Ljp7F067348: +/* 09BEB8 7F067348 12210009 */ beq $s1, $at, .Ljp7F067370 +/* 09BEBC 7F06734C 24010037 */ li $at, 55 +/* 09BEC0 7F067350 12210007 */ beq $s1, $at, .Ljp7F067370 +/* 09BEC4 7F067354 24010026 */ li $at, 38 +/* 09BEC8 7F067358 12210005 */ beq $s1, $at, .Ljp7F067370 +/* 09BECC 7F06735C 24010032 */ li $at, 50 +/* 09BED0 7F067360 12210003 */ beq $s1, $at, .Ljp7F067370 +/* 09BED4 7F067364 24010049 */ li $at, 73 +/* 09BED8 7F067368 5621000F */ bnel $s1, $at, .Ljp7F0673A8 +/* 09BEDC 7F06736C 24010033 */ li $at, 51 +.Ljp7F067370: +/* 09BEE0 7F067370 8E0E001C */ lw $t6, 0x1c($s0) +/* 09BEE4 7F067374 15C00009 */ bnez $t6, .Ljp7F06739C +/* 09BEE8 7F067378 00000000 */ nop +/* 09BEEC 7F06737C 0FC0F1BF */ jal sub_GAME_7F03C3FC +/* 09BEF0 7F067380 00000000 */ nop +/* 09BEF4 7F067384 10400005 */ beqz $v0, .Ljp7F06739C +/* 09BEF8 7F067388 00000000 */ nop +/* 09BEFC 7F06738C 8C430004 */ lw $v1, 4($v0) +/* 09BF00 7F067390 906F0002 */ lbu $t7, 2($v1) +/* 09BF04 7F067394 35F90040 */ ori $t9, $t7, 0x40 +/* 09BF08 7F067398 A0790002 */ sb $t9, 2($v1) +.Ljp7F06739C: +/* 09BF0C 7F06739C 1000001D */ b .Ljp7F067414 +/* 09BF10 7F0673A0 8E050018 */ lw $a1, 0x18($s0) +/* 09BF14 7F0673A4 24010033 */ li $at, 51 +.Ljp7F0673A8: +/* 09BF18 7F0673A8 1221001A */ beq $s1, $at, .Ljp7F067414 +/* 09BF1C 7F0673AC 8E050018 */ lw $a1, 0x18($s0) +/* 09BF20 7F0673B0 24010034 */ li $at, 52 +/* 09BF24 7F0673B4 12210017 */ beq $s1, $at, .Ljp7F067414 +/* 09BF28 7F0673B8 2401003A */ li $at, 58 +/* 09BF2C 7F0673BC 12210015 */ beq $s1, $at, .Ljp7F067414 +/* 09BF30 7F0673C0 2401003B */ li $at, 59 +/* 09BF34 7F0673C4 12210013 */ beq $s1, $at, .Ljp7F067414 +/* 09BF38 7F0673C8 24010051 */ li $at, 81 +/* 09BF3C 7F0673CC 12210011 */ beq $s1, $at, .Ljp7F067414 +/* 09BF40 7F0673D0 24010052 */ li $at, 82 +/* 09BF44 7F0673D4 1221000F */ beq $s1, $at, .Ljp7F067414 +/* 09BF48 7F0673D8 24010053 */ li $at, 83 +/* 09BF4C 7F0673DC 1221000D */ beq $s1, $at, .Ljp7F067414 +/* 09BF50 7F0673E0 2401002D */ li $at, 45 +/* 09BF54 7F0673E4 1221000B */ beq $s1, $at, .Ljp7F067414 +/* 09BF58 7F0673E8 24010029 */ li $at, 41 +/* 09BF5C 7F0673EC 12210009 */ beq $s1, $at, .Ljp7F067414 +/* 09BF60 7F0673F0 2401002A */ li $at, 42 +/* 09BF64 7F0673F4 12210007 */ beq $s1, $at, .Ljp7F067414 +/* 09BF68 7F0673F8 24010035 */ li $at, 53 +/* 09BF6C 7F0673FC 12210005 */ beq $s1, $at, .Ljp7F067414 +/* 09BF70 7F067400 24010036 */ li $at, 54 +/* 09BF74 7F067404 12210003 */ beq $s1, $at, .Ljp7F067414 +/* 09BF78 7F067408 24010025 */ li $at, 37 +/* 09BF7C 7F06740C 12210001 */ beq $s1, $at, .Ljp7F067414 +/* 09BF80 7F067410 00000000 */ nop +.Ljp7F067414: +/* 09BF84 7F067414 50A00005 */ beql $a1, $zero, .Ljp7F06742C +/* 09BF88 7F067418 8FBF0024 */ lw $ra, 0x24($sp) +/* 09BF8C 7F06741C AE000024 */ sw $zero, 0x24($s0) +/* 09BF90 7F067420 AE000020 */ sw $zero, 0x20($s0) +/* 09BF94 7F067424 AE00001C */ sw $zero, 0x1c($s0) +.Ljp7F067428: +/* 09BF98 7F067428 8FBF0024 */ lw $ra, 0x24($sp) +.Ljp7F06742C: +/* 09BF9C 7F06742C 8FB0001C */ lw $s0, 0x1c($sp) +/* 09BFA0 7F067430 8FB10020 */ lw $s1, 0x20($sp) +/* 09BFA4 7F067434 03E00008 */ jr $ra +/* 09BFA8 7F067438 27BD01E0 */ addiu $sp, $sp, 0x1e0 +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:80053F24*/ +glabel jpt_80053F24 +.word Weapon_function_slapper +.word Weapon_function_hunting_knife +.word Weapon_function_throwing_knife +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_magnum +.word Weapon_function_guns +.word Weapon_function_grenades +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_tazer +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_guns +.word Weapon_function_guns +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_camera +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_throwable_item +.word Weapon_function_throwable_item +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_guns +.word Weapon_function_throwable_item +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_key +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible +.word Weapon_function_collectible + +/*D:80054084*/ +glabel jpt_80054084 +.word Weapon_shooting_noammo +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_machinegun +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_tazer +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_pistol +.word Weapon_shooting_pistol +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_throwable +.word Weapon_shooting_watch_magnet + +glabel D_80054170 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80054174 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054178 +.word 0x40c90fdb /*6.2831855*/ +glabel D_8005417C +.word 0x40490fdb /*3.1415927*/ +glabel D_80054180 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80054184 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054188 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005418C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054190 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054194*/ +glabel jpt_80054194 +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_knife +.word weapon_playsfx_knife +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_F2 +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_playsfx_mine +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_playsfx_gun +.word weapon_switchstyle_NONE +.word weapon_switchstyle_NONE + +glabel D_8005428C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054290 +.word 0x3f32b8c3 /*0.69813174*/ + +/*D:80054294*/ +glabel jpt_80054294 +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_gun_sfx +.word weapon_reload_none_sfx +.word weapon_reload_none_sfx + +glabel D_8005438C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054390 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054394 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_80054398 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_8005439C +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A0 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A4 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543A8 +.word 0x3f32b8c3 /*0.69813174*/ +glabel D_800543AC +.word 0x3f32b8c3 /*0.69813174*/ + +.text +glabel handle_weapon_id_values_possibly_1st_person_animation +/* 099658 7F064B28 000410C0 */ sll $v0, $a0, 3 +/* 09965C 7F064B2C 00441023 */ subu $v0, $v0, $a0 +/* 099660 7F064B30 00021080 */ sll $v0, $v0, 2 +/* 099664 7F064B34 27BDFE30 */ addiu $sp, $sp, -0x1d0 +/* 099668 7F064B38 00441021 */ addu $v0, $v0, $a0 +/* 09966C 7F064B3C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099670 7F064B40 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099674 7F064B44 00021080 */ sll $v0, $v0, 2 +/* 099678 7F064B48 00441021 */ addu $v0, $v0, $a0 +/* 09967C 7F064B4C AFB0001C */ sw $s0, 0x1c($sp) +/* 099680 7F064B50 000210C0 */ sll $v0, $v0, 3 +/* 099684 7F064B54 AFBF0024 */ sw $ra, 0x24($sp) +/* 099688 7F064B58 01C28021 */ addu $s0, $t6, $v0 +/* 09968C 7F064B5C AFB10020 */ sw $s1, 0x20($sp) +/* 099690 7F064B60 AFA501D4 */ sw $a1, 0x1d4($sp) +/* 099694 7F064B64 26100870 */ addiu $s0, $s0, 0x870 +/* 099698 7F064B68 AFA20038 */ sw $v0, 0x38($sp) +/* 09969C 7F064B6C 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 0996A0 7F064B70 AFA401D0 */ sw $a0, 0x1d0($sp) +/* 0996A4 7F064B74 00408825 */ move $s1, $v0 +/* 0996A8 7F064B78 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0996AC 7F064B7C 00402025 */ move $a0, $v0 +/* 0996B0 7F064B80 8FA301D4 */ lw $v1, 0x1d4($sp) +/* 0996B4 7F064B84 8E0F0010 */ lw $t7, 0x10($s0) +/* 0996B8 7F064B88 00403025 */ move $a2, $v0 +/* 0996BC 7F064B8C AE030010 */ sw $v1, 0x10($s0) +/* 0996C0 7F064B90 14600003 */ bnez $v1, .L7F064BA0 +/* 0996C4 7F064B94 AE0F0014 */ sw $t7, 0x14($s0) +/* 0996C8 7F064B98 24180001 */ li $t8, 1 +/* 0996CC 7F064B9C AE180018 */ sw $t8, 0x18($s0) +.L7F064BA0: +/* 0996D0 7F064BA0 A200000C */ sb $zero, 0xc($s0) +/* 0996D4 7F064BA4 A200000D */ sb $zero, 0xd($s0) +/* 0996D8 7F064BA8 3C028005 */ lui $v0, %hi(clock_timer) +/* 0996DC 7F064BAC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0996E0 7F064BB0 58400008 */ blezl $v0, .L7F064BD4 +/* 0996E4 7F064BB4 8E0E0024 */ lw $t6, 0x24($s0) +/* 0996E8 7F064BB8 8E190020 */ lw $t9, 0x20($s0) +/* 0996EC 7F064BBC 8E0C001C */ lw $t4, 0x1c($s0) +/* 0996F0 7F064BC0 03225821 */ addu $t3, $t9, $v0 +/* 0996F4 7F064BC4 258D0001 */ addiu $t5, $t4, 1 +/* 0996F8 7F064BC8 AE0B0020 */ sw $t3, 0x20($s0) +/* 0996FC 7F064BCC AE0D001C */ sw $t5, 0x1c($s0) +/* 099700 7F064BD0 8E0E0024 */ lw $t6, 0x24($s0) +.L7F064BD4: +/* 099704 7F064BD4 AE0000BC */ sw $zero, 0xbc($s0) +/* 099708 7F064BD8 55C00072 */ bnezl $t6, .L7F064DA4 +/* 09970C 7F064BDC 8E020024 */ lw $v0, 0x24($s0) +/* 099710 7F064BE0 8E0F0010 */ lw $t7, 0x10($s0) +/* 099714 7F064BE4 51E00011 */ beql $t7, $zero, .L7F064C2C +/* 099718 7F064BE8 8E020028 */ lw $v0, 0x28($s0) +/* 09971C 7F064BEC 1220000E */ beqz $s1, .L7F064C28 +/* 099720 7F064BF0 02202025 */ move $a0, $s1 +/* 099724 7F064BF4 24050010 */ li $a1, 16 +/* 099728 7F064BF8 0FC1782D */ jal bondwalkItemCheckBitflags +/* 09972C 7F064BFC AFA601C4 */ sw $a2, 0x1c4($sp) +/* 099730 7F064C00 14400003 */ bnez $v0, .L7F064C10 +/* 099734 7F064C04 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 099738 7F064C08 8E18002C */ lw $t8, 0x2c($s0) +/* 09973C 7F064C0C 1B000006 */ blez $t8, .L7F064C28 +.L7F064C10: +/* 099740 7F064C10 24190001 */ li $t9, 1 +/* 099744 7F064C14 AE190024 */ sw $t9, 0x24($s0) +/* 099748 7F064C18 AE000020 */ sw $zero, 0x20($s0) +/* 09974C 7F064C1C AE00001C */ sw $zero, 0x1c($s0) +/* 099750 7F064C20 10000007 */ b .L7F064C40 +/* 099754 7F064C24 AE000018 */ sw $zero, 0x18($s0) +.L7F064C28: +/* 099758 7F064C28 8E020028 */ lw $v0, 0x28($s0) +.L7F064C2C: +/* 09975C 7F064C2C 50400005 */ beql $v0, $zero, .L7F064C44 +/* 099760 7F064C30 8E0B0024 */ lw $t3, 0x24($s0) +/* 099764 7F064C34 AE020024 */ sw $v0, 0x24($s0) +/* 099768 7F064C38 AE000020 */ sw $zero, 0x20($s0) +/* 09976C 7F064C3C AE00001C */ sw $zero, 0x1c($s0) +.L7F064C40: +/* 099770 7F064C40 8E0B0024 */ lw $t3, 0x24($s0) +.L7F064C44: +/* 099774 7F064C44 AE000028 */ sw $zero, 0x28($s0) +/* 099778 7F064C48 55600056 */ bnezl $t3, .L7F064DA4 +/* 09977C 7F064C4C 8E020024 */ lw $v0, 0x24($s0) +/* 099780 7F064C50 8E0C002C */ lw $t4, 0x2c($s0) +/* 099784 7F064C54 55800053 */ bnezl $t4, .L7F064DA4 +/* 099788 7F064C58 8E020024 */ lw $v0, 0x24($s0) +/* 09978C 7F064C5C 50C00051 */ beql $a2, $zero, .L7F064DA4 +/* 099790 7F064C60 8E020024 */ lw $v0, 0x24($s0) +/* 099794 7F064C64 0FC2FF01 */ jal get_controls_locked_flag +/* 099798 7F064C68 AFA601C4 */ sw $a2, 0x1c4($sp) +/* 09979C 7F064C6C 1440004C */ bnez $v0, .L7F064DA0 +/* 0997A0 7F064C70 8FA601C4 */ lw $a2, 0x1c4($sp) +/* 0997A4 7F064C74 3C028008 */ lui $v0, %hi(pPlayer) +/* 0997A8 7F064C78 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0997AC 7F064C7C 3C0E8003 */ lui $t6, %hi(D_80032458) +/* 0997B0 7F064C80 8C4D29C4 */ lw $t5, 0x29c4($v0) +/* 0997B4 7F064C84 55A00047 */ bnezl $t5, .L7F064DA4 +/* 0997B8 7F064C88 8E020024 */ lw $v0, 0x24($s0) +/* 0997BC 7F064C8C 8DCE2458 */ lw $t6, %lo(D_80032458)($t6) +/* 0997C0 7F064C90 24010001 */ li $at, 1 +/* 0997C4 7F064C94 11C00009 */ beqz $t6, .L7F064CBC +/* 0997C8 7F064C98 00000000 */ nop +/* 0997CC 7F064C9C 14C10007 */ bne $a2, $at, .L7F064CBC +/* 0997D0 7F064CA0 00067880 */ sll $t7, $a2, 2 +/* 0997D4 7F064CA4 004F1821 */ addu $v1, $v0, $t7 +/* 0997D8 7F064CA8 8C781130 */ lw $t8, 0x1130($v1) +/* 0997DC 7F064CAC 24190001 */ li $t9, 1 +/* 0997E0 7F064CB0 1F000002 */ bgtz $t8, .L7F064CBC +/* 0997E4 7F064CB4 00000000 */ nop +/* 0997E8 7F064CB8 AC791130 */ sw $t9, 0x1130($v1) +.L7F064CBC: +/* 0997EC 7F064CBC 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 0997F0 7F064CC0 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 0997F4 7F064CC4 18400006 */ blez $v0, .L7F064CE0 +/* 0997F8 7F064CC8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0997FC 7F064CCC 240B0009 */ li $t3, 9 +/* 099800 7F064CD0 AE0B0024 */ sw $t3, 0x24($s0) +/* 099804 7F064CD4 AE000020 */ sw $zero, 0x20($s0) +/* 099808 7F064CD8 10000031 */ b .L7F064DA0 +/* 09980C 7F064CDC AE00001C */ sw $zero, 0x1c($s0) +.L7F064CE0: +/* 099810 7F064CE0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099814 7F064CE4 8FAE01D0 */ lw $t6, 0x1d0($sp) +/* 099818 7F064CE8 240F0001 */ li $t7, 1 +/* 09981C 7F064CEC 8D8D0FC8 */ lw $t5, 0xfc8($t4) +/* 099820 7F064CF0 01EE2023 */ subu $a0, $t7, $t6 +/* 099824 7F064CF4 51A0002B */ beql $t5, $zero, .L7F064DA4 +/* 099828 7F064CF8 8E020024 */ lw $v0, 0x24($s0) +/* 09982C 7F064CFC 0FC17691 */ jal get_item_in_hand_or_watch_menu +/* 099830 7F064D00 AFA4003C */ sw $a0, 0x3c($sp) +/* 099834 7F064D04 3C188008 */ lui $t8, %hi(pPlayer) +/* 099838 7F064D08 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09983C 7F064D0C 8FB90038 */ lw $t9, 0x38($sp) +/* 099840 7F064D10 00402025 */ move $a0, $v0 +/* 099844 7F064D14 03191823 */ subu $v1, $t8, $t9 +/* 099848 7F064D18 8C6B0C3C */ lw $t3, 0xc3c($v1) +/* 09984C 7F064D1C 24630C18 */ addiu $v1, $v1, 0xc18 +/* 099850 7F064D20 55600020 */ bnezl $t3, .L7F064DA4 +/* 099854 7F064D24 8E020024 */ lw $v0, 0x24($s0) +/* 099858 7F064D28 8C6C0028 */ lw $t4, 0x28($v1) +/* 09985C 7F064D2C 5580001D */ bnezl $t4, .L7F064DA4 +/* 099860 7F064D30 8E020024 */ lw $v0, 0x24($s0) +/* 099864 7F064D34 1040000D */ beqz $v0, .L7F064D6C +/* 099868 7F064D38 00000000 */ nop +/* 09986C 7F064D3C 8C6D002C */ lw $t5, 0x2c($v1) +/* 099870 7F064D40 55A00018 */ bnezl $t5, .L7F064DA4 +/* 099874 7F064D44 8E020024 */ lw $v0, 0x24($s0) +/* 099878 7F064D48 0FC1A50B */ jal get_ammo_type_for_weapon +/* 09987C 7F064D4C AFA301BC */ sw $v1, 0x1bc($sp) +/* 099880 7F064D50 10400013 */ beqz $v0, .L7F064DA0 +/* 099884 7F064D54 8FA301BC */ lw $v1, 0x1bc($sp) +/* 099888 7F064D58 8FA4003C */ lw $a0, 0x3c($sp) +/* 09988C 7F064D5C 0FC1A4DD */ jal get_ammo_in_hands_weapon +/* 099890 7F064D60 AFA301BC */ sw $v1, 0x1bc($sp) +/* 099894 7F064D64 1C40000E */ bgtz $v0, .L7F064DA0 +/* 099898 7F064D68 8FA301BC */ lw $v1, 0x1bc($sp) +.L7F064D6C: +/* 09989C 7F064D6C 0FC17600 */ jal autoadvance_on_deplete_all_ammo +/* 0998A0 7F064D70 AFA301BC */ sw $v1, 0x1bc($sp) +/* 0998A4 7F064D74 8FA301BC */ lw $v1, 0x1bc($sp) +/* 0998A8 7F064D78 8E0F0028 */ lw $t7, 0x28($s0) +/* 0998AC 7F064D7C AE00001C */ sw $zero, 0x1c($s0) +/* 0998B0 7F064D80 AE000020 */ sw $zero, 0x20($s0) +/* 0998B4 7F064D84 AE000028 */ sw $zero, 0x28($s0) +/* 0998B8 7F064D88 AE0F0024 */ sw $t7, 0x24($s0) +/* 0998BC 7F064D8C 8C6E0028 */ lw $t6, 0x28($v1) +/* 0998C0 7F064D90 AC60001C */ sw $zero, 0x1c($v1) +/* 0998C4 7F064D94 AC600020 */ sw $zero, 0x20($v1) +/* 0998C8 7F064D98 AC600028 */ sw $zero, 0x28($v1) +/* 0998CC 7F064D9C AC6E0024 */ sw $t6, 0x24($v1) +.L7F064DA0: +/* 0998D0 7F064DA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064DA4: +/* 0998D4 7F064DA4 24010001 */ li $at, 1 +/* 0998D8 7F064DA8 1441007E */ bne $v0, $at, .L7F064FA4 +/* 0998DC 7F064DAC 2638FFFF */ addiu $t8, $s1, -1 +/* 0998E0 7F064DB0 2F010058 */ sltiu $at, $t8, 0x58 +/* 0998E4 7F064DB4 10200076 */ beqz $at, .L7F064F90 +/* 0998E8 7F064DB8 0018C080 */ sll $t8, $t8, 2 +/* 0998EC 7F064DBC 3C018005 */ lui $at, %hi(jpt_80053F24) +/* 0998F0 7F064DC0 00380821 */ addu $at, $at, $t8 +/* 0998F4 7F064DC4 8C383F24 */ lw $t8, %lo(jpt_80053F24)($at) +/* 0998F8 7F064DC8 03000008 */ jr $t8 +/* 0998FC 7F064DCC 00000000 */ nop +Weapon_function_magnum: +/* 099900 7F064DD0 8E190020 */ lw $t9, 0x20($s0) +/* 099904 7F064DD4 240B0002 */ li $t3, 2 +/* 099908 7F064DD8 2B210006 */ slti $at, $t9, 6 +/* 09990C 7F064DDC 54200070 */ bnezl $at, .L7F064FA0 +/* 099910 7F064DE0 AE000398 */ sw $zero, 0x398($s0) +/* 099914 7F064DE4 AE0B0024 */ sw $t3, 0x24($s0) +/* 099918 7F064DE8 AE000020 */ sw $zero, 0x20($s0) +/* 09991C 7F064DEC 1000006B */ b .L7F064F9C +/* 099920 7F064DF0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_camera: +/* 099924 7F064DF4 8E0C001C */ lw $t4, 0x1c($s0) +/* 099928 7F064DF8 00002025 */ move $a0, $zero +/* 09992C 7F064DFC 00002825 */ move $a1, $zero +/* 099930 7F064E00 15800005 */ bnez $t4, .L7F064E18 +/* 099934 7F064E04 00003025 */ move $a2, $zero +/* 099938 7F064E08 0FC201EC */ jal currentPlayerSetFadeColour +/* 09993C 7F064E0C 3C073F80 */ lui $a3, 0x3f80 +/* 099940 7F064E10 10000063 */ b .L7F064FA0 +/* 099944 7F064E14 AE000398 */ sw $zero, 0x398($s0) +.L7F064E18: +/* 099948 7F064E18 8E0D0020 */ lw $t5, 0x20($s0) +/* 09994C 7F064E1C 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 099950 7F064E20 00002825 */ move $a1, $zero +/* 099954 7F064E24 19A0005D */ blez $t5, .L7F064F9C +/* 099958 7F064E28 00003025 */ move $a2, $zero +/* 09995C 7F064E2C 44802000 */ mtc1 $zero, $f4 +/* 099960 7F064E30 44816000 */ mtc1 $at, $f12 +/* 099964 7F064E34 00003825 */ move $a3, $zero +/* 099968 7F064E38 0FC201F8 */ jal currentPlayerAdjustFade +/* 09996C 7F064E3C E7A40010 */ swc1 $f4, 0x10($sp) +/* 099970 7F064E40 240F0002 */ li $t7, 2 +/* 099974 7F064E44 AE0F0024 */ sw $t7, 0x24($s0) +/* 099978 7F064E48 AE000020 */ sw $zero, 0x20($s0) +/* 09997C 7F064E4C 10000053 */ b .L7F064F9C +/* 099980 7F064E50 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_guns: +/* 099984 7F064E54 240E0002 */ li $t6, 2 +/* 099988 7F064E58 AE0E0024 */ sw $t6, 0x24($s0) +/* 09998C 7F064E5C AE000020 */ sw $zero, 0x20($s0) +/* 099990 7F064E60 1000004E */ b .L7F064F9C +/* 099994 7F064E64 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwable_item: +/* 099998 7F064E68 2418001C */ li $t8, 28 +/* 09999C 7F064E6C AE180024 */ sw $t8, 0x24($s0) +/* 0999A0 7F064E70 AE000020 */ sw $zero, 0x20($s0) +/* 0999A4 7F064E74 10000049 */ b .L7F064F9C +/* 0999A8 7F064E78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_hunting_knife: +/* 0999AC 7F064E7C 0C002914 */ jal randomGetNext +/* 0999B0 7F064E80 00000000 */ nop +/* 0999B4 7F064E84 30590001 */ andi $t9, $v0, 1 +/* 0999B8 7F064E88 17200004 */ bnez $t9, .L7F064E9C +/* 0999BC 7F064E8C 240C0014 */ li $t4, 20 +/* 0999C0 7F064E90 240B0011 */ li $t3, 17 +/* 0999C4 7F064E94 10000002 */ b .L7F064EA0 +/* 0999C8 7F064E98 AE0B0024 */ sw $t3, 0x24($s0) +.L7F064E9C: +/* 0999CC 7F064E9C AE0C0024 */ sw $t4, 0x24($s0) +.L7F064EA0: +/* 0999D0 7F064EA0 AE000020 */ sw $zero, 0x20($s0) +/* 0999D4 7F064EA4 1000003D */ b .L7F064F9C +/* 0999D8 7F064EA8 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_grenades: +/* 0999DC 7F064EAC 8E0D0018 */ lw $t5, 0x18($s0) +/* 0999E0 7F064EB0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0999E4 7F064EB4 55A00006 */ bnezl $t5, .L7F064ED0 +/* 0999E8 7F064EB8 8E0E0020 */ lw $t6, 0x20($s0) +/* 0999EC 7F064EBC 8E0F0020 */ lw $t7, 0x20($s0) +/* 0999F0 7F064EC0 29E100F0 */ slti $at, $t7, 0xf0 +/* 0999F4 7F064EC4 54200036 */ bnezl $at, .L7F064FA0 +/* 0999F8 7F064EC8 AE000398 */ sw $zero, 0x398($s0) +/* 0999FC 7F064ECC 8E0E0020 */ lw $t6, 0x20($s0) +.L7F064ED0: +/* 099A00 7F064ED0 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 099A04 7F064ED4 2419001A */ li $t9, 26 +/* 099A08 7F064ED8 AF0E105C */ sw $t6, 0x105c($t8) +/* 099A0C 7F064EDC AE190024 */ sw $t9, 0x24($s0) +/* 099A10 7F064EE0 AE00001C */ sw $zero, 0x1c($s0) +/* 099A14 7F064EE4 1000002D */ b .L7F064F9C +/* 099A18 7F064EE8 AE000020 */ sw $zero, 0x20($s0) +Weapon_function_slapper: +/* 099A1C 7F064EEC 0C002914 */ jal randomGetNext +/* 099A20 7F064EF0 00000000 */ nop +/* 099A24 7F064EF4 304B0001 */ andi $t3, $v0, 1 +/* 099A28 7F064EF8 15600004 */ bnez $t3, .L7F064F0C +/* 099A2C 7F064EFC 240D0020 */ li $t5, 32 +/* 099A30 7F064F00 240C001E */ li $t4, 30 +/* 099A34 7F064F04 10000002 */ b .L7F064F10 +/* 099A38 7F064F08 AE0C0024 */ sw $t4, 0x24($s0) +.L7F064F0C: +/* 099A3C 7F064F0C AE0D0024 */ sw $t5, 0x24($s0) +.L7F064F10: +/* 099A40 7F064F10 AE000020 */ sw $zero, 0x20($s0) +/* 099A44 7F064F14 10000021 */ b .L7F064F9C +/* 099A48 7F064F18 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_throwing_knife: +/* 099A4C 7F064F1C 240F0017 */ li $t7, 23 +/* 099A50 7F064F20 AE0F0024 */ sw $t7, 0x24($s0) +/* 099A54 7F064F24 AE000020 */ sw $zero, 0x20($s0) +/* 099A58 7F064F28 1000001C */ b .L7F064F9C +/* 099A5C 7F064F2C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_tazer: +/* 099A60 7F064F30 8E0E0020 */ lw $t6, 0x20($s0) +/* 099A64 7F064F34 3C048003 */ lui $a0, %hi(D_80035A90) +/* 099A68 7F064F38 24845A90 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5a90 +/* 099A6C 7F064F3C 448E3000 */ mtc1 $t6, $f6 +/* 099A70 7F064F40 2606007C */ addiu $a2, $s0, 0x7c +/* 099A74 7F064F44 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099A78 7F064F48 46803020 */ cvt.s.w $f0, $f6 +/* 099A7C 7F064F4C 44050000 */ mfc1 $a1, $f0 +/* 099A80 7F064F50 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099A84 7F064F54 00000000 */ nop +/* 099A88 7F064F58 10400004 */ beqz $v0, .L7F064F6C +/* 099A8C 7F064F5C 24190002 */ li $t9, 2 +/* 099A90 7F064F60 24180001 */ li $t8, 1 +/* 099A94 7F064F64 1000000D */ b .L7F064F9C +/* 099A98 7F064F68 AE1800BC */ sw $t8, 0xbc($s0) +.L7F064F6C: +/* 099A9C 7F064F6C AE190024 */ sw $t9, 0x24($s0) +/* 099AA0 7F064F70 AE000020 */ sw $zero, 0x20($s0) +/* 099AA4 7F064F74 10000009 */ b .L7F064F9C +/* 099AA8 7F064F78 AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_key: +/* 099AAC 7F064F7C 240B0024 */ li $t3, 36 +/* 099AB0 7F064F80 AE0B0024 */ sw $t3, 0x24($s0) +/* 099AB4 7F064F84 AE000020 */ sw $zero, 0x20($s0) +/* 099AB8 7F064F88 10000004 */ b .L7F064F9C +/* 099ABC 7F064F8C AE00001C */ sw $zero, 0x1c($s0) +Weapon_function_collectible: +.L7F064F90: +/* 099AC0 7F064F90 AE000024 */ sw $zero, 0x24($s0) +/* 099AC4 7F064F94 AE000020 */ sw $zero, 0x20($s0) +/* 099AC8 7F064F98 AE00001C */ sw $zero, 0x1c($s0) +.L7F064F9C: +/* 099ACC 7F064F9C AE000398 */ sw $zero, 0x398($s0) +.L7F064FA0: +/* 099AD0 7F064FA0 8E020024 */ lw $v0, 0x24($s0) +.L7F064FA4: +/* 099AD4 7F064FA4 24010002 */ li $at, 2 +/* 099AD8 7F064FA8 54410168 */ bnel $v0, $at, .L7F06554C +/* 099ADC 7F064FAC 8E0B0024 */ lw $t3, 0x24($s0) +/* 099AE0 7F064FB0 0FC1A50B */ jal get_ammo_type_for_weapon +/* 099AE4 7F064FB4 02202025 */ move $a0, $s1 +/* 099AE8 7F064FB8 10400003 */ beqz $v0, .L7F064FC8 +/* 099AEC 7F064FBC 262DFFFE */ addiu $t5, $s1, -2 +/* 099AF0 7F064FC0 8E0C002C */ lw $t4, 0x2c($s0) +/* 099AF4 7F064FC4 19800148 */ blez $t4, .L7F0654E8 +.L7F064FC8: +/* 099AF8 7F064FC8 2DA1003B */ sltiu $at, $t5, 0x3b +/* 099AFC 7F064FCC 102000AF */ beqz $at, .L7F06528C +/* 099B00 7F064FD0 000D6880 */ sll $t5, $t5, 2 +/* 099B04 7F064FD4 3C018005 */ lui $at, %hi(jpt_80054084) +/* 099B08 7F064FD8 002D0821 */ addu $at, $at, $t5 +/* 099B0C 7F064FDC 8C2D4084 */ lw $t5, %lo(jpt_80054084)($at) +/* 099B10 7F064FE0 01A00008 */ jr $t5 +/* 099B14 7F064FE4 00000000 */ nop +Weapon_shooting_watch_magnet: +/* 099B18 7F064FE8 8E0F001C */ lw $t7, 0x1c($s0) +/* 099B1C 7F064FEC 24190003 */ li $t9, 3 +/* 099B20 7F064FF0 55E0000D */ bnezl $t7, .L7F065028 +/* 099B24 7F064FF4 AE190024 */ sw $t9, 0x24($s0) +/* 099B28 7F064FF8 0FC2FF01 */ jal get_controls_locked_flag +/* 099B2C 7F064FFC 00000000 */ nop +/* 099B30 7F065000 2C450001 */ sltiu $a1, $v0, 1 +/* 099B34 7F065004 10A00005 */ beqz $a1, .L7F06501C +/* 099B38 7F065008 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099B3C 7F06500C 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099B40 7F065010 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099B44 7F065014 2CB80001 */ sltiu $t8, $a1, 1 +/* 099B48 7F065018 03002825 */ move $a1, $t8 +.L7F06501C: +/* 099B4C 7F06501C 1000009B */ b .L7F06528C +/* 099B50 7F065020 A205000C */ sb $a1, 0xc($s0) +/* 099B54 7F065024 AE190024 */ sw $t9, 0x24($s0) +.L7F065028: +/* 099B58 7F065028 AE000020 */ sw $zero, 0x20($s0) +/* 099B5C 7F06502C 10000097 */ b .L7F06528C +/* 099B60 7F065030 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_pistol: +/* 099B64 7F065034 8E0B001C */ lw $t3, 0x1c($s0) +/* 099B68 7F065038 24190003 */ li $t9, 3 +/* 099B6C 7F06503C 5560001E */ bnezl $t3, .L7F0650B8 +/* 099B70 7F065040 AE190024 */ sw $t9, 0x24($s0) +/* 099B74 7F065044 0FC26919 */ jal getPlayerCount +/* 099B78 7F065048 00000000 */ nop +/* 099B7C 7F06504C 24010001 */ li $at, 1 +/* 099B80 7F065050 50410009 */ beql $v0, $at, .L7F065078 +/* 099B84 7F065054 240F0001 */ li $t7, 1 +/* 099B88 7F065058 0FC31820 */ jal checkGamePaused +/* 099B8C 7F06505C 00000000 */ nop +/* 099B90 7F065060 14400006 */ bnez $v0, .L7F06507C +/* 099B94 7F065064 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 099B98 7F065068 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 099B9C 7F06506C 8D8D29C4 */ lw $t5, 0x29c4($t4) +/* 099BA0 7F065070 15A00002 */ bnez $t5, .L7F06507C +/* 099BA4 7F065074 240F0001 */ li $t7, 1 +.L7F065078: +/* 099BA8 7F065078 A20F000D */ sb $t7, 0xd($s0) +.L7F06507C: +/* 099BAC 7F06507C 0FC2FF01 */ jal get_controls_locked_flag +/* 099BB0 7F065080 00000000 */ nop +/* 099BB4 7F065084 2C450001 */ sltiu $a1, $v0, 1 +/* 099BB8 7F065088 10A00005 */ beqz $a1, .L7F0650A0 +/* 099BBC 7F06508C 3C0E8008 */ lui $t6, %hi(pPlayer) +/* 099BC0 7F065090 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) +/* 099BC4 7F065094 8DC529C4 */ lw $a1, 0x29c4($t6) +/* 099BC8 7F065098 2CB80001 */ sltiu $t8, $a1, 1 +/* 099BCC 7F06509C 03002825 */ move $a1, $t8 +.L7F0650A0: +/* 099BD0 7F0650A0 A205000C */ sb $a1, 0xc($s0) +/* 099BD4 7F0650A4 0FC17A02 */ jal sub_GAME_7F05E808 +/* 099BD8 7F0650A8 8FA401D0 */ lw $a0, 0x1d0($sp) +/* 099BDC 7F0650AC 10000078 */ b .L7F065290 +/* 099BE0 7F0650B0 820F000C */ lb $t7, 0xc($s0) +/* 099BE4 7F0650B4 AE190024 */ sw $t9, 0x24($s0) +.L7F0650B8: +/* 099BE8 7F0650B8 AE000020 */ sw $zero, 0x20($s0) +/* 099BEC 7F0650BC 10000073 */ b .L7F06528C +/* 099BF0 7F0650C0 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_machinegun: +/* 099BF4 7F0650C4 8E0B001C */ lw $t3, 0x1c($s0) +/* 099BF8 7F0650C8 11600013 */ beqz $t3, .L7F065118 +/* 099BFC 7F0650CC 00000000 */ nop +/* 099C00 7F0650D0 8E0C0010 */ lw $t4, 0x10($s0) +/* 099C04 7F0650D4 02202025 */ move $a0, $s1 +/* 099C08 7F0650D8 1580000F */ bnez $t4, .L7F065118 +/* 099C0C 7F0650DC 00000000 */ nop +/* 099C10 7F0650E0 0FC1782D */ jal bondwalkItemCheckBitflags +/* 099C14 7F0650E4 24050004 */ li $a1, 4 +/* 099C18 7F0650E8 50400035 */ beql $v0, $zero, .L7F0651C0 +/* 099C1C 7F0650EC 240E0003 */ li $t6, 3 +/* 099C20 7F0650F0 0FC1F178 */ jal get_BONDdata_is_aiming +/* 099C24 7F0650F4 00000000 */ nop +/* 099C28 7F0650F8 54400031 */ bnezl $v0, .L7F0651C0 +/* 099C2C 7F0650FC 240E0003 */ li $t6, 3 +/* 099C30 7F065100 8E0D0398 */ lw $t5, 0x398($s0) +/* 099C34 7F065104 24010003 */ li $at, 3 +/* 099C38 7F065108 01A1001A */ div $zero, $t5, $at +/* 099C3C 7F06510C 00007810 */ mfhi $t7 +/* 099C40 7F065110 51E0002B */ beql $t7, $zero, .L7F0651C0 +/* 099C44 7F065114 240E0003 */ li $t6, 3 +.L7F065118: +/* 099C48 7F065118 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate +/* 099C4C 7F06511C 02202025 */ move $a0, $s1 +/* 099C50 7F065120 8E0E001C */ lw $t6, 0x1c($s0) +/* 099C54 7F065124 01C2001A */ div $zero, $t6, $v0 +/* 099C58 7F065128 0000C010 */ mfhi $t8 +/* 099C5C 7F06512C 14400002 */ bnez $v0, .L7F065138 +/* 099C60 7F065130 00000000 */ nop +/* 099C64 7F065134 0007000D */ break 7 +.L7F065138: +/* 099C68 7F065138 2401FFFF */ li $at, -1 +/* 099C6C 7F06513C 14410004 */ bne $v0, $at, .L7F065150 +/* 099C70 7F065140 3C018000 */ lui $at, 0x8000 +/* 099C74 7F065144 15C10002 */ bne $t6, $at, .L7F065150 +/* 099C78 7F065148 00000000 */ nop +/* 099C7C 7F06514C 0006000D */ break 6 +.L7F065150: +/* 099C80 7F065150 5700004F */ bnezl $t8, .L7F065290 +/* 099C84 7F065154 820F000C */ lb $t7, 0xc($s0) +/* 099C88 7F065158 0FC26919 */ jal getPlayerCount +/* 099C8C 7F06515C 00000000 */ nop +/* 099C90 7F065160 24010001 */ li $at, 1 +/* 099C94 7F065164 50410009 */ beql $v0, $at, .L7F06518C +/* 099C98 7F065168 240C0001 */ li $t4, 1 +/* 099C9C 7F06516C 0FC31820 */ jal checkGamePaused +/* 099CA0 7F065170 00000000 */ nop +/* 099CA4 7F065174 14400006 */ bnez $v0, .L7F065190 +/* 099CA8 7F065178 3C198008 */ lui $t9, %hi(pPlayer) +/* 099CAC 7F06517C 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 099CB0 7F065180 8F2B29C4 */ lw $t3, 0x29c4($t9) +/* 099CB4 7F065184 15600002 */ bnez $t3, .L7F065190 +/* 099CB8 7F065188 240C0001 */ li $t4, 1 +.L7F06518C: +/* 099CBC 7F06518C A20C000D */ sb $t4, 0xd($s0) +.L7F065190: +/* 099CC0 7F065190 0FC2FF01 */ jal get_controls_locked_flag +/* 099CC4 7F065194 00000000 */ nop +/* 099CC8 7F065198 2C450001 */ sltiu $a1, $v0, 1 +/* 099CCC 7F06519C 10A00005 */ beqz $a1, .L7F0651B4 +/* 099CD0 7F0651A0 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 099CD4 7F0651A4 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 099CD8 7F0651A8 8DA529C4 */ lw $a1, 0x29c4($t5) +/* 099CDC 7F0651AC 2CAF0001 */ sltiu $t7, $a1, 1 +/* 099CE0 7F0651B0 01E02825 */ move $a1, $t7 +.L7F0651B4: +/* 099CE4 7F0651B4 10000035 */ b .L7F06528C +/* 099CE8 7F0651B8 A205000C */ sb $a1, 0xc($s0) +/* 099CEC 7F0651BC 240E0003 */ li $t6, 3 +.L7F0651C0: +/* 099CF0 7F0651C0 AE0E0024 */ sw $t6, 0x24($s0) +/* 099CF4 7F0651C4 AE000020 */ sw $zero, 0x20($s0) +/* 099CF8 7F0651C8 10000030 */ b .L7F06528C +/* 099CFC 7F0651CC AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_noammo: +/* 099D00 7F0651D0 8E18001C */ lw $t8, 0x1c($s0) +/* 099D04 7F0651D4 53000006 */ beql $t8, $zero, .L7F0651F0 +/* 099D08 7F0651D8 A200000C */ sb $zero, 0xc($s0) +/* 099D0C 7F0651DC 8E190010 */ lw $t9, 0x10($s0) +/* 099D10 7F0651E0 240C0003 */ li $t4, 3 +/* 099D14 7F0651E4 53200006 */ beql $t9, $zero, .L7F065200 +/* 099D18 7F0651E8 AE0C0024 */ sw $t4, 0x24($s0) +/* 099D1C 7F0651EC A200000C */ sb $zero, 0xc($s0) +.L7F0651F0: +/* 099D20 7F0651F0 820B000C */ lb $t3, 0xc($s0) +/* 099D24 7F0651F4 10000025 */ b .L7F06528C +/* 099D28 7F0651F8 A20B000D */ sb $t3, 0xd($s0) +/* 099D2C 7F0651FC AE0C0024 */ sw $t4, 0x24($s0) +.L7F065200: +/* 099D30 7F065200 AE000020 */ sw $zero, 0x20($s0) +/* 099D34 7F065204 10000021 */ b .L7F06528C +/* 099D38 7F065208 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_tazer: +/* 099D3C 7F06520C 8E0D001C */ lw $t5, 0x1c($s0) +/* 099D40 7F065210 3C048003 */ lui $a0, %hi(D_80035B68) +/* 099D44 7F065214 24845B68 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5b68 +/* 099D48 7F065218 11A00004 */ beqz $t5, .L7F06522C +/* 099D4C 7F06521C 24050000 */ li $a1, 0 +/* 099D50 7F065220 8E0F0010 */ lw $t7, 0x10($s0) +/* 099D54 7F065224 240D0003 */ li $t5, 3 +/* 099D58 7F065228 11E00015 */ beqz $t7, .L7F065280 +.L7F06522C: +/* 099D5C 7F06522C 2606007C */ addiu $a2, $s0, 0x7c +/* 099D60 7F065230 0FC171BF */ jal sub_GAME_7F05C6FC +/* 099D64 7F065234 8FA701D0 */ lw $a3, 0x1d0($sp) +/* 099D68 7F065238 8E19001C */ lw $t9, 0x1c($s0) +/* 099D6C 7F06523C A200000C */ sb $zero, 0xc($s0) +/* 099D70 7F065240 8218000C */ lb $t8, 0xc($s0) +/* 099D74 7F065244 240E0001 */ li $t6, 1 +/* 099D78 7F065248 AE0E00BC */ sw $t6, 0xbc($s0) +/* 099D7C 7F06524C 1720000F */ bnez $t9, .L7F06528C +/* 099D80 7F065250 A218000D */ sb $t8, 0xd($s0) +/* 099D84 7F065254 0FC2FF01 */ jal get_controls_locked_flag +/* 099D88 7F065258 00000000 */ nop +/* 099D8C 7F06525C 2C450001 */ sltiu $a1, $v0, 1 +/* 099D90 7F065260 10A00005 */ beqz $a1, .L7F065278 +/* 099D94 7F065264 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 099D98 7F065268 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 099D9C 7F06526C 8D6529C4 */ lw $a1, 0x29c4($t3) +/* 099DA0 7F065270 2CAC0001 */ sltiu $t4, $a1, 1 +/* 099DA4 7F065274 01802825 */ move $a1, $t4 +.L7F065278: +/* 099DA8 7F065278 10000004 */ b .L7F06528C +/* 099DAC 7F06527C A205000C */ sb $a1, 0xc($s0) +.L7F065280: +/* 099DB0 7F065280 AE0D0024 */ sw $t5, 0x24($s0) +/* 099DB4 7F065284 AE000020 */ sw $zero, 0x20($s0) +/* 099DB8 7F065288 AE00001C */ sw $zero, 0x1c($s0) +Weapon_shooting_throwable: +.L7F06528C: +/* 099DBC 7F06528C 820F000C */ lb $t7, 0xc($s0) +.L7F065290: +/* 099DC0 7F065290 24010028 */ li $at, 40 +/* 099DC4 7F065294 51E0001E */ beql $t7, $zero, .L7F065310 +/* 099DC8 7F065298 8E0D0024 */ lw $t5, 0x24($s0) +/* 099DCC 7F06529C 52210016 */ beql $s1, $at, .L7F0652F8 +/* 099DD0 7F0652A0 8E18002C */ lw $t8, 0x2c($s0) +/* 099DD4 7F0652A4 0FC26C54 */ jal get_cur_playernum +/* 099DD8 7F0652A8 00000000 */ nop +/* 099DDC 7F0652AC 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099DE0 7F0652B0 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099DE4 7F0652B4 0C003215 */ jal joyRumblePakStart +/* 099DE8 7F0652B8 00402025 */ move $a0, $v0 +/* 099DEC 7F0652BC 0FC29370 */ jal cur_player_get_control_type +/* 099DF0 7F0652C0 00000000 */ nop +/* 099DF4 7F0652C4 28410004 */ slti $at, $v0, 4 +/* 099DF8 7F0652C8 5420000B */ bnezl $at, .L7F0652F8 +/* 099DFC 7F0652CC 8E18002C */ lw $t8, 0x2c($s0) +/* 099E00 7F0652D0 0FC26C54 */ jal get_cur_playernum +/* 099E04 7F0652D4 00000000 */ nop +/* 099E08 7F0652D8 0FC26919 */ jal getPlayerCount +/* 099E0C 7F0652DC AFA20048 */ sw $v0, 0x48($sp) +/* 099E10 7F0652E0 8FAE0048 */ lw $t6, 0x48($sp) +/* 099E14 7F0652E4 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc +/* 099E18 7F0652E8 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd +/* 099E1C 7F0652EC 0C003215 */ jal joyRumblePakStart +/* 099E20 7F0652F0 004E2021 */ addu $a0, $v0, $t6 +/* 099E24 7F0652F4 8E18002C */ lw $t8, 0x2c($s0) +.L7F0652F8: +/* 099E28 7F0652F8 8E0B0398 */ lw $t3, 0x398($s0) +/* 099E2C 7F0652FC 2719FFFF */ addiu $t9, $t8, -1 +/* 099E30 7F065300 256C0001 */ addiu $t4, $t3, 1 +/* 099E34 7F065304 AE19002C */ sw $t9, 0x2c($s0) +/* 099E38 7F065308 AE0C0398 */ sw $t4, 0x398($s0) +/* 099E3C 7F06530C 8E0D0024 */ lw $t5, 0x24($s0) +.L7F065310: +/* 099E40 7F065310 24010002 */ li $at, 2 +/* 099E44 7F065314 02202025 */ move $a0, $s1 +/* 099E48 7F065318 55A1008C */ bnel $t5, $at, .L7F06554C +/* 099E4C 7F06531C 8E0B0024 */ lw $t3, 0x24($s0) +/* 099E50 7F065320 0FC177FC */ jal bondwalkItemGetSoundTriggerRate +/* 099E54 7F065324 AFA001B4 */ sw $zero, 0x1b4($sp) +/* 099E58 7F065328 18400017 */ blez $v0, .L7F065388 +/* 099E5C 7F06532C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 099E60 7F065330 8FAE0038 */ lw $t6, 0x38($sp) +/* 099E64 7F065334 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 099E68 7F065338 3C028005 */ lui $v0, %hi(global_timer) +/* 099E6C 7F06533C 000EC023 */ negu $t8, $t6 +/* 099E70 7F065340 01F8C821 */ addu $t9, $t7, $t8 +/* 099E74 7F065344 8F2B0DF8 */ lw $t3, 0xdf8($t9) +/* 099E78 7F065348 8C42837C */ lw $v0, %lo(global_timer)($v0) +/* 099E7C 7F06534C 104B0013 */ beq $v0, $t3, .L7F06539C +/* 099E80 7F065350 00000000 */ nop +/* 099E84 7F065354 8E0C01DC */ lw $t4, 0x1dc($s0) +/* 099E88 7F065358 0182082A */ slt $at, $t4, $v0 +/* 099E8C 7F06535C 1020000F */ beqz $at, .L7F06539C +/* 099E90 7F065360 00000000 */ nop +/* 099E94 7F065364 0FC177FC */ jal bondwalkItemGetSoundTriggerRate /* 099E98 7F065368 02202025 */ move $a0, $s1 /* 099E9C 7F06536C 3C0D8005 */ lui $t5, %hi(global_timer) /* 099EA0 7F065370 8DAD837C */ lw $t5, %lo(global_timer)($t5) @@ -14056,7 +21972,7 @@ Weapon_shooting_throwable: /* 099FDC 7F0654AC 16210026 */ bne $s1, $at, .L7F065548 /* 099FE0 7F0654B0 3C0C8003 */ lui $t4, %hi(D_80035E90) /* 099FE4 7F0654B4 8D8C5E90 */ lw $t4, %lo(D_80035E90)($t4) -/* 099FE8 7F0654B8 0C002914 */ jal get_random_value +/* 099FE8 7F0654B8 0C002914 */ jal randomGetNext /* 099FEC 7F0654BC AFAC01B0 */ sw $t4, 0x1b0($sp) /* 099FF0 7F0654C0 304D0001 */ andi $t5, $v0, 1 /* 099FF4 7F0654C4 000D7040 */ sll $t6, $t5, 1 @@ -15354,7 +23270,7 @@ weapon_reload_none_sfx: /* 09B27C 7F06674C 27AC007C */ addiu $t4, $sp, 0x7c /* 09B280 7F066750 AD810000 */ sw $at, ($t4) /* 09B284 7F066754 95A10004 */ lhu $at, 4($t5) -/* 09B288 7F066758 0C002914 */ jal get_random_value +/* 09B288 7F066758 0C002914 */ jal randomGetNext /* 09B28C 7F06675C A5810004 */ sh $at, 4($t4) /* 09B290 7F066760 24010003 */ li $at, 3 /* 09B294 7F066764 0041001B */ divu $zero, $v0, $at @@ -15786,7 +23702,7 @@ weapon_reload_none_sfx: /* 09B858 7F066D28 8E0B001C */ lw $t3, 0x1c($s0) /* 09B85C 7F066D2C 15600003 */ bnez $t3, .L7F066D3C /* 09B860 7F066D30 00000000 */ nop -/* 09B864 7F066D34 0FC19B99 */ jal sub_GAME_7F066E64 +/* 09B864 7F066D34 0FC19B99 */ jal analyzeGEKey /* 09B868 7F066D38 00000000 */ nop .L7F066D3C: /* 09B86C 7F066D3C 1000003F */ b .L7F066E3C @@ -15875,2887 +23791,30 @@ weapon_reload_none_sfx: ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( - .late_rodata -/*D:80053F24*/ -glabel jpt_80053F24 -.word Weapon_function_slapper -.word Weapon_function_hunting_knife -.word Weapon_function_throwing_knife -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_magnum -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_magnum -.word Weapon_function_guns -.word Weapon_function_grenades -.word Weapon_function_throwable_item -.word Weapon_function_throwable_item -.word Weapon_function_throwable_item -.word Weapon_function_guns -.word Weapon_function_tazer -.word Weapon_function_guns -.word Weapon_function_throwable_item -.word Weapon_function_throwable_item -.word Weapon_function_guns -.word Weapon_function_guns -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_camera -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_collectible -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_throwable_item -.word Weapon_function_throwable_item -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_guns -.word Weapon_function_throwable_item -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_key -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_key -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible -.word Weapon_function_collectible - -/*D:80054084*/ -glabel jpt_80054084 -.word Weapon_shooting_noammo -.word Weapon_shooting_throwable -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_machinegun -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_pistol -.word Weapon_shooting_tazer -.word Weapon_shooting_pistol -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_pistol -.word Weapon_shooting_pistol -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_watch_magnet -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_throwable -.word Weapon_shooting_watch_magnet - -glabel D_80054170 -.word 0x40c90fdb /*6.2831855*/ -glabel D_80054174 -.word 0x3fc90fdb /*1.5707964*/ -glabel D_80054178 -.word 0x40c90fdb /*6.2831855*/ -glabel D_8005417C -.word 0x40490fdb /*3.1415927*/ -glabel D_80054180 -.word 0x3fc90fdb /*1.5707964*/ -glabel D_80054184 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054188 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_8005418C -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054190 -.word 0x3f32b8c3 /*0.69813174*/ - -/*D:80054194*/ -glabel jpt_80054194 -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_playsfx_knife -.word weapon_playsfx_knife -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_F2 -.word weapon_switchstyle_NONE -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_switchstyle_NONE -.word weapon_playsfx_mine -.word weapon_playsfx_mine -.word weapon_playsfx_mine -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_switchstyle_NONE -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_playsfx_gun -.word weapon_switchstyle_NONE -.word weapon_switchstyle_NONE - -glabel D_8005428C -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054290 -.word 0x3f32b8c3 /*0.69813174*/ - -/*D:80054294*/ -glabel jpt_80054294 -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_none_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_gun_sfx -.word weapon_reload_none_sfx -.word weapon_reload_none_sfx - -glabel D_8005438C -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054390 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054394 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_80054398 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_8005439C -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_800543A0 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_800543A4 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_800543A8 -.word 0x3f32b8c3 /*0.69813174*/ -glabel D_800543AC -.word 0x3f32b8c3 /*0.69813174*/ -.text -glabel handle_weapon_id_values_possibly_1st_person_animation -/* 099BFC 7F06508C 000410C0 */ sll $v0, $a0, 3 -/* 099C00 7F065090 00441023 */ subu $v0, $v0, $a0 -/* 099C04 7F065094 00021080 */ sll $v0, $v0, 2 -/* 099C08 7F065098 27BDFE20 */ addiu $sp, $sp, -0x1e0 -/* 099C0C 7F06509C 00441021 */ addu $v0, $v0, $a0 -/* 099C10 7F0650A0 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 099C14 7F0650A4 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 099C18 7F0650A8 00021080 */ sll $v0, $v0, 2 -/* 099C1C 7F0650AC 00441021 */ addu $v0, $v0, $a0 -/* 099C20 7F0650B0 AFB0001C */ sw $s0, 0x1c($sp) -/* 099C24 7F0650B4 000210C0 */ sll $v0, $v0, 3 -/* 099C28 7F0650B8 AFBF0024 */ sw $ra, 0x24($sp) -/* 099C2C 7F0650BC 01C28021 */ addu $s0, $t6, $v0 -/* 099C30 7F0650C0 AFB10020 */ sw $s1, 0x20($sp) -/* 099C34 7F0650C4 AFA501E4 */ sw $a1, 0x1e4($sp) -/* 099C38 7F0650C8 26100870 */ addiu $s0, $s0, 0x870 -/* 099C3C 7F0650CC AFA2003C */ sw $v0, 0x3c($sp) -/* 099C40 7F0650D0 0FC177D9 */ jal get_item_in_hand_or_watch_menu -/* 099C44 7F0650D4 AFA401E0 */ sw $a0, 0x1e0($sp) -/* 099C48 7F0650D8 00408825 */ move $s1, $v0 -/* 099C4C 7F0650DC 0FC1A686 */ jal get_ammo_type_for_weapon -/* 099C50 7F0650E0 00402025 */ move $a0, $v0 -/* 099C54 7F0650E4 8FA301E4 */ lw $v1, 0x1e4($sp) -/* 099C58 7F0650E8 8E0F0010 */ lw $t7, 0x10($s0) -/* 099C5C 7F0650EC 00403025 */ move $a2, $v0 -/* 099C60 7F0650F0 AE030010 */ sw $v1, 0x10($s0) -/* 099C64 7F0650F4 14600003 */ bnez $v1, .Ljp7F065104 -/* 099C68 7F0650F8 AE0F0014 */ sw $t7, 0x14($s0) -/* 099C6C 7F0650FC 24180001 */ li $t8, 1 -/* 099C70 7F065100 AE180018 */ sw $t8, 0x18($s0) -.Ljp7F065104: -/* 099C74 7F065104 A200000C */ sb $zero, 0xc($s0) -/* 099C78 7F065108 A200000D */ sb $zero, 0xd($s0) -/* 099C7C 7F06510C 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 -/* 099C80 7F065110 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) -/* 099C84 7F065114 58400008 */ blezl $v0, .Ljp7F065138 -/* 099C88 7F065118 8E190024 */ lw $t9, 0x24($s0) -/* 099C8C 7F06511C 8E190020 */ lw $t9, 0x20($s0) -/* 099C90 7F065120 8E0F001C */ lw $t7, 0x1c($s0) -/* 099C94 7F065124 03227021 */ addu $t6, $t9, $v0 -/* 099C98 7F065128 25F80001 */ addiu $t8, $t7, 1 -/* 099C9C 7F06512C AE0E0020 */ sw $t6, 0x20($s0) -/* 099CA0 7F065130 AE18001C */ sw $t8, 0x1c($s0) -/* 099CA4 7F065134 8E190024 */ lw $t9, 0x24($s0) -.Ljp7F065138: -/* 099CA8 7F065138 AE0000BC */ sw $zero, 0xbc($s0) -/* 099CAC 7F06513C 1720007D */ bnez $t9, .Ljp7F065334 -/* 099CB0 7F065140 24010016 */ li $at, 22 -/* 099CB4 7F065144 56210006 */ bnel $s1, $at, .Ljp7F065160 -/* 099CB8 7F065148 8E0F0010 */ lw $t7, 0x10($s0) -/* 099CBC 7F06514C 8E0E0018 */ lw $t6, 0x18($s0) -/* 099CC0 7F065150 51C00003 */ beql $t6, $zero, .Ljp7F065160 -/* 099CC4 7F065154 8E0F0010 */ lw $t7, 0x10($s0) -/* 099CC8 7F065158 AE000030 */ sw $zero, 0x30($s0) -/* 099CCC 7F06515C 8E0F0010 */ lw $t7, 0x10($s0) -.Ljp7F065160: -/* 099CD0 7F065160 51E00017 */ beql $t7, $zero, .Ljp7F0651C0 -/* 099CD4 7F065164 8E020028 */ lw $v0, 0x28($s0) -/* 099CD8 7F065168 12200014 */ beqz $s1, .Ljp7F0651BC -/* 099CDC 7F06516C 02202025 */ move $a0, $s1 -/* 099CE0 7F065170 24050010 */ li $a1, 16 -/* 099CE4 7F065174 0FC17975 */ jal bondwalkItemCheckBitflags -/* 099CE8 7F065178 AFA601D4 */ sw $a2, 0x1d4($sp) -/* 099CEC 7F06517C 14400003 */ bnez $v0, .Ljp7F06518C -/* 099CF0 7F065180 8FA601D4 */ lw $a2, 0x1d4($sp) -/* 099CF4 7F065184 8E18002C */ lw $t8, 0x2c($s0) -/* 099CF8 7F065188 1B00000C */ blez $t8, .Ljp7F0651BC -.Ljp7F06518C: -/* 099CFC 7F06518C 24010016 */ li $at, 22 -/* 099D00 7F065190 16210005 */ bne $s1, $at, .Ljp7F0651A8 -/* 099D04 7F065194 240E0001 */ li $t6, 1 -/* 099D08 7F065198 8E190030 */ lw $t9, 0x30($s0) -/* 099D0C 7F06519C 2B2100C8 */ slti $at, $t9, 0xc8 -/* 099D10 7F0651A0 50200007 */ beql $at, $zero, .Ljp7F0651C0 -/* 099D14 7F0651A4 8E020028 */ lw $v0, 0x28($s0) -.Ljp7F0651A8: -/* 099D18 7F0651A8 AE0E0024 */ sw $t6, 0x24($s0) -/* 099D1C 7F0651AC AE000020 */ sw $zero, 0x20($s0) -/* 099D20 7F0651B0 AE00001C */ sw $zero, 0x1c($s0) -/* 099D24 7F0651B4 10000007 */ b .Ljp7F0651D4 -/* 099D28 7F0651B8 AE000018 */ sw $zero, 0x18($s0) -.Ljp7F0651BC: -/* 099D2C 7F0651BC 8E020028 */ lw $v0, 0x28($s0) -.Ljp7F0651C0: -/* 099D30 7F0651C0 50400005 */ beql $v0, $zero, .Ljp7F0651D8 -/* 099D34 7F0651C4 8E0F0024 */ lw $t7, 0x24($s0) -/* 099D38 7F0651C8 AE020024 */ sw $v0, 0x24($s0) -/* 099D3C 7F0651CC AE000020 */ sw $zero, 0x20($s0) -/* 099D40 7F0651D0 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F0651D4: -/* 099D44 7F0651D4 8E0F0024 */ lw $t7, 0x24($s0) -.Ljp7F0651D8: -/* 099D48 7F0651D8 AE000028 */ sw $zero, 0x28($s0) -/* 099D4C 7F0651DC 55E00056 */ bnezl $t7, .Ljp7F065338 -/* 099D50 7F0651E0 8E020024 */ lw $v0, 0x24($s0) -/* 099D54 7F0651E4 8E18002C */ lw $t8, 0x2c($s0) -/* 099D58 7F0651E8 57000053 */ bnezl $t8, .Ljp7F065338 -/* 099D5C 7F0651EC 8E020024 */ lw $v0, 0x24($s0) -/* 099D60 7F0651F0 50C00051 */ beql $a2, $zero, .Ljp7F065338 -/* 099D64 7F0651F4 8E020024 */ lw $v0, 0x24($s0) -/* 099D68 7F0651F8 0FC3021B */ jal get_controls_locked_flag -/* 099D6C 7F0651FC AFA601D4 */ sw $a2, 0x1d4($sp) -/* 099D70 7F065200 1440004C */ bnez $v0, .Ljp7F065334 -/* 099D74 7F065204 8FA601D4 */ lw $a2, 0x1d4($sp) -/* 099D78 7F065208 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 099D7C 7F06520C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 099D80 7F065210 3C0E8003 */ lui $t6, %hi(D_80032458) # $t6, 0x8003 -/* 099D84 7F065214 8C5929C4 */ lw $t9, 0x29c4($v0) -/* 099D88 7F065218 57200047 */ bnezl $t9, .Ljp7F065338 -/* 099D8C 7F06521C 8E020024 */ lw $v0, 0x24($s0) -/* 099D90 7F065220 8DCE2498 */ lw $t6, %lo(D_80032458)($t6) -/* 099D94 7F065224 24010001 */ li $at, 1 -/* 099D98 7F065228 11C00009 */ beqz $t6, .Ljp7F065250 -/* 099D9C 7F06522C 00000000 */ nop -/* 099DA0 7F065230 14C10007 */ bne $a2, $at, .Ljp7F065250 -/* 099DA4 7F065234 00067880 */ sll $t7, $a2, 2 -/* 099DA8 7F065238 004F1821 */ addu $v1, $v0, $t7 -/* 099DAC 7F06523C 8C781130 */ lw $t8, 0x1130($v1) -/* 099DB0 7F065240 24190001 */ li $t9, 1 -/* 099DB4 7F065244 1F000002 */ bgtz $t8, .Ljp7F065250 -/* 099DB8 7F065248 00000000 */ nop -/* 099DBC 7F06524C AC791130 */ sw $t9, 0x1130($v1) -.Ljp7F065250: -/* 099DC0 7F065250 0FC1A658 */ jal get_ammo_in_hands_weapon -/* 099DC4 7F065254 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 099DC8 7F065258 18400006 */ blez $v0, .Ljp7F065274 -/* 099DCC 7F06525C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 099DD0 7F065260 240E0009 */ li $t6, 9 -/* 099DD4 7F065264 AE0E0024 */ sw $t6, 0x24($s0) -/* 099DD8 7F065268 AE000020 */ sw $zero, 0x20($s0) -/* 099DDC 7F06526C 10000031 */ b .Ljp7F065334 -/* 099DE0 7F065270 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F065274: -/* 099DE4 7F065274 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 099DE8 7F065278 8FB901E0 */ lw $t9, 0x1e0($sp) -/* 099DEC 7F06527C 240E0001 */ li $t6, 1 -/* 099DF0 7F065280 8DF80FC8 */ lw $t8, 0xfc8($t7) -/* 099DF4 7F065284 01D92023 */ subu $a0, $t6, $t9 -/* 099DF8 7F065288 5300002B */ beql $t8, $zero, .Ljp7F065338 -/* 099DFC 7F06528C 8E020024 */ lw $v0, 0x24($s0) -/* 099E00 7F065290 0FC177D9 */ jal get_item_in_hand_or_watch_menu -/* 099E04 7F065294 AFA40040 */ sw $a0, 0x40($sp) -/* 099E08 7F065298 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 099E0C 7F06529C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 099E10 7F0652A0 8FB8003C */ lw $t8, 0x3c($sp) -/* 099E14 7F0652A4 00402025 */ move $a0, $v0 -/* 099E18 7F0652A8 01F81823 */ subu $v1, $t7, $t8 -/* 099E1C 7F0652AC 8C6E0C3C */ lw $t6, 0xc3c($v1) -/* 099E20 7F0652B0 24630C18 */ addiu $v1, $v1, 0xc18 -/* 099E24 7F0652B4 55C00020 */ bnezl $t6, .Ljp7F065338 -/* 099E28 7F0652B8 8E020024 */ lw $v0, 0x24($s0) -/* 099E2C 7F0652BC 8C790028 */ lw $t9, 0x28($v1) -/* 099E30 7F0652C0 5720001D */ bnezl $t9, .Ljp7F065338 -/* 099E34 7F0652C4 8E020024 */ lw $v0, 0x24($s0) -/* 099E38 7F0652C8 1040000D */ beqz $v0, .Ljp7F065300 -/* 099E3C 7F0652CC 00000000 */ nop -/* 099E40 7F0652D0 8C6F002C */ lw $t7, 0x2c($v1) -/* 099E44 7F0652D4 55E00018 */ bnezl $t7, .Ljp7F065338 -/* 099E48 7F0652D8 8E020024 */ lw $v0, 0x24($s0) -/* 099E4C 7F0652DC 0FC1A686 */ jal get_ammo_type_for_weapon -/* 099E50 7F0652E0 AFA301CC */ sw $v1, 0x1cc($sp) -/* 099E54 7F0652E4 10400013 */ beqz $v0, .Ljp7F065334 -/* 099E58 7F0652E8 8FA301CC */ lw $v1, 0x1cc($sp) -/* 099E5C 7F0652EC 8FA40040 */ lw $a0, 0x40($sp) -/* 099E60 7F0652F0 0FC1A658 */ jal get_ammo_in_hands_weapon -/* 099E64 7F0652F4 AFA301CC */ sw $v1, 0x1cc($sp) -/* 099E68 7F0652F8 1C40000E */ bgtz $v0, .Ljp7F065334 -/* 099E6C 7F0652FC 8FA301CC */ lw $v1, 0x1cc($sp) -.Ljp7F065300: -/* 099E70 7F065300 0FC17748 */ jal autoadvance_on_deplete_all_ammo -/* 099E74 7F065304 AFA301CC */ sw $v1, 0x1cc($sp) -/* 099E78 7F065308 8FA301CC */ lw $v1, 0x1cc($sp) -/* 099E7C 7F06530C 8E180028 */ lw $t8, 0x28($s0) -/* 099E80 7F065310 AE00001C */ sw $zero, 0x1c($s0) -/* 099E84 7F065314 AE000020 */ sw $zero, 0x20($s0) -/* 099E88 7F065318 AE000028 */ sw $zero, 0x28($s0) -/* 099E8C 7F06531C AE180024 */ sw $t8, 0x24($s0) -/* 099E90 7F065320 8C6E0028 */ lw $t6, 0x28($v1) -/* 099E94 7F065324 AC60001C */ sw $zero, 0x1c($v1) -/* 099E98 7F065328 AC600020 */ sw $zero, 0x20($v1) -/* 099E9C 7F06532C AC600028 */ sw $zero, 0x28($v1) -/* 099EA0 7F065330 AC6E0024 */ sw $t6, 0x24($v1) -.Ljp7F065334: -/* 099EA4 7F065334 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F065338: -/* 099EA8 7F065338 24010001 */ li $at, 1 -/* 099EAC 7F06533C 1441007E */ bne $v0, $at, .Ljp7F065538 -/* 099EB0 7F065340 2639FFFF */ addiu $t9, $s1, -1 -/* 099EB4 7F065344 2F210058 */ sltiu $at, $t9, 0x58 -/* 099EB8 7F065348 10200076 */ beqz $at, Weapon_function_collectible -/* 099EBC 7F06534C 0019C880 */ sll $t9, $t9, 2 -/* 099EC0 7F065350 3C018005 */ lui $at, %hi(jpt_80053F24) -/* 099EC4 7F065354 00390821 */ addu $at, $at, $t9 -/* 099EC8 7F065358 8C393F54 */ lw $t9, %lo(jpt_80053F24)($at) -/* 099ECC 7F06535C 03200008 */ jr $t9 -/* 099ED0 7F065360 00000000 */ nop -Weapon_function_magnum: -/* 099ED4 7F065364 8E0F0020 */ lw $t7, 0x20($s0) -/* 099ED8 7F065368 24180002 */ li $t8, 2 -/* 099EDC 7F06536C 29E10006 */ slti $at, $t7, 6 -/* 099EE0 7F065370 54200070 */ bnezl $at, .Ljp7F065534 -/* 099EE4 7F065374 AE000398 */ sw $zero, 0x398($s0) -/* 099EE8 7F065378 AE180024 */ sw $t8, 0x24($s0) -/* 099EEC 7F06537C AE000020 */ sw $zero, 0x20($s0) -/* 099EF0 7F065380 1000006B */ b .Ljp7F065530 -/* 099EF4 7F065384 AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_camera: -/* 099EF8 7F065388 8E0E001C */ lw $t6, 0x1c($s0) -/* 099EFC 7F06538C 00002025 */ move $a0, $zero -/* 099F00 7F065390 00002825 */ move $a1, $zero -/* 099F04 7F065394 15C00005 */ bnez $t6, .Ljp7F0653AC -/* 099F08 7F065398 00003025 */ move $a2, $zero -/* 099F0C 7F06539C 0FC20370 */ jal currentPlayerSetFadeColour -/* 099F10 7F0653A0 3C073F80 */ lui $a3, 0x3f80 -/* 099F14 7F0653A4 10000063 */ b .Ljp7F065534 -/* 099F18 7F0653A8 AE000398 */ sw $zero, 0x398($s0) -.Ljp7F0653AC: -/* 099F1C 7F0653AC 8E190020 */ lw $t9, 0x20($s0) -/* 099F20 7F0653B0 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 099F24 7F0653B4 00002825 */ move $a1, $zero -/* 099F28 7F0653B8 1B20005D */ blez $t9, .Ljp7F065530 -/* 099F2C 7F0653BC 00003025 */ move $a2, $zero -/* 099F30 7F0653C0 44802000 */ mtc1 $zero, $f4 -/* 099F34 7F0653C4 44816000 */ mtc1 $at, $f12 -/* 099F38 7F0653C8 00003825 */ move $a3, $zero -/* 099F3C 7F0653CC 0FC2037C */ jal currentPlayerAdjustFade -/* 099F40 7F0653D0 E7A40010 */ swc1 $f4, 0x10($sp) -/* 099F44 7F0653D4 240F0002 */ li $t7, 2 -/* 099F48 7F0653D8 AE0F0024 */ sw $t7, 0x24($s0) -/* 099F4C 7F0653DC AE000020 */ sw $zero, 0x20($s0) -/* 099F50 7F0653E0 10000053 */ b .Ljp7F065530 -/* 099F54 7F0653E4 AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_guns: -/* 099F58 7F0653E8 24180002 */ li $t8, 2 -/* 099F5C 7F0653EC AE180024 */ sw $t8, 0x24($s0) -/* 099F60 7F0653F0 AE000020 */ sw $zero, 0x20($s0) -/* 099F64 7F0653F4 1000004E */ b .Ljp7F065530 -/* 099F68 7F0653F8 AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_throwable_item: -/* 099F6C 7F0653FC 240E001C */ li $t6, 28 -/* 099F70 7F065400 AE0E0024 */ sw $t6, 0x24($s0) -/* 099F74 7F065404 AE000020 */ sw $zero, 0x20($s0) -/* 099F78 7F065408 10000049 */ b .Ljp7F065530 -/* 099F7C 7F06540C AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_hunting_knife: -/* 099F80 7F065410 0C002918 */ jal get_random_value -/* 099F84 7F065414 00000000 */ nop -/* 099F88 7F065418 30590001 */ andi $t9, $v0, 1 -/* 099F8C 7F06541C 17200004 */ bnez $t9, .Ljp7F065430 -/* 099F90 7F065420 24180014 */ li $t8, 20 -/* 099F94 7F065424 240F0011 */ li $t7, 17 -/* 099F98 7F065428 10000002 */ b .Ljp7F065434 -/* 099F9C 7F06542C AE0F0024 */ sw $t7, 0x24($s0) -.Ljp7F065430: -/* 099FA0 7F065430 AE180024 */ sw $t8, 0x24($s0) -.Ljp7F065434: -/* 099FA4 7F065434 AE000020 */ sw $zero, 0x20($s0) -/* 099FA8 7F065438 1000003D */ b .Ljp7F065530 -/* 099FAC 7F06543C AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_grenades: -/* 099FB0 7F065440 8E0E0018 */ lw $t6, 0x18($s0) -/* 099FB4 7F065444 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 099FB8 7F065448 55C00006 */ bnezl $t6, .Ljp7F065464 -/* 099FBC 7F06544C 8E0F0020 */ lw $t7, 0x20($s0) -/* 099FC0 7F065450 8E190020 */ lw $t9, 0x20($s0) -/* 099FC4 7F065454 2B2100F0 */ slti $at, $t9, 0xf0 -/* 099FC8 7F065458 54200036 */ bnezl $at, .Ljp7F065534 -/* 099FCC 7F06545C AE000398 */ sw $zero, 0x398($s0) -/* 099FD0 7F065460 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F065464: -/* 099FD4 7F065464 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 099FD8 7F065468 240E001A */ li $t6, 26 -/* 099FDC 7F06546C AF0F105C */ sw $t7, 0x105c($t8) -/* 099FE0 7F065470 AE0E0024 */ sw $t6, 0x24($s0) -/* 099FE4 7F065474 AE00001C */ sw $zero, 0x1c($s0) -/* 099FE8 7F065478 1000002D */ b .Ljp7F065530 -/* 099FEC 7F06547C AE000020 */ sw $zero, 0x20($s0) -Weapon_function_slapper: -/* 099FF0 7F065480 0C002918 */ jal get_random_value -/* 099FF4 7F065484 00000000 */ nop -/* 099FF8 7F065488 30590001 */ andi $t9, $v0, 1 -/* 099FFC 7F06548C 17200004 */ bnez $t9, .Ljp7F0654A0 -/* 09A000 7F065490 24180020 */ li $t8, 32 -/* 09A004 7F065494 240F001E */ li $t7, 30 -/* 09A008 7F065498 10000002 */ b .Ljp7F0654A4 -/* 09A00C 7F06549C AE0F0024 */ sw $t7, 0x24($s0) -.Ljp7F0654A0: -/* 09A010 7F0654A0 AE180024 */ sw $t8, 0x24($s0) -.Ljp7F0654A4: -/* 09A014 7F0654A4 AE000020 */ sw $zero, 0x20($s0) -/* 09A018 7F0654A8 10000021 */ b .Ljp7F065530 -/* 09A01C 7F0654AC AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_throwing_knife: -/* 09A020 7F0654B0 240E0017 */ li $t6, 23 -/* 09A024 7F0654B4 AE0E0024 */ sw $t6, 0x24($s0) -/* 09A028 7F0654B8 AE000020 */ sw $zero, 0x20($s0) -/* 09A02C 7F0654BC 1000001C */ b .Ljp7F065530 -/* 09A030 7F0654C0 AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_tazer: -/* 09A034 7F0654C4 8E190020 */ lw $t9, 0x20($s0) -/* 09A038 7F0654C8 3C048003 */ lui $a0, %hi(D_80035A90) # $a0, 0x8003 -/* 09A03C 7F0654CC 24845AD0 */ addiu $a0, %lo(D_80035A90) # addiu $a0, $a0, 0x5ad0 -/* 09A040 7F0654D0 44993000 */ mtc1 $t9, $f6 -/* 09A044 7F0654D4 2606007C */ addiu $a2, $s0, 0x7c -/* 09A048 7F0654D8 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09A04C 7F0654DC 46803020 */ cvt.s.w $f0, $f6 -/* 09A050 7F0654E0 44050000 */ mfc1 $a1, $f0 -/* 09A054 7F0654E4 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09A058 7F0654E8 00000000 */ nop -/* 09A05C 7F0654EC 10400004 */ beqz $v0, .Ljp7F065500 -/* 09A060 7F0654F0 24180002 */ li $t8, 2 -/* 09A064 7F0654F4 240F0001 */ li $t7, 1 -/* 09A068 7F0654F8 1000000D */ b .Ljp7F065530 -/* 09A06C 7F0654FC AE0F00BC */ sw $t7, 0xbc($s0) -.Ljp7F065500: -/* 09A070 7F065500 AE180024 */ sw $t8, 0x24($s0) -/* 09A074 7F065504 AE000020 */ sw $zero, 0x20($s0) -/* 09A078 7F065508 10000009 */ b .Ljp7F065530 -/* 09A07C 7F06550C AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_key: -/* 09A080 7F065510 240E0024 */ li $t6, 36 -/* 09A084 7F065514 AE0E0024 */ sw $t6, 0x24($s0) -/* 09A088 7F065518 AE000020 */ sw $zero, 0x20($s0) -/* 09A08C 7F06551C 10000004 */ b .Ljp7F065530 -/* 09A090 7F065520 AE00001C */ sw $zero, 0x1c($s0) -Weapon_function_collectible: -/* 09A094 7F065524 AE000024 */ sw $zero, 0x24($s0) -/* 09A098 7F065528 AE000020 */ sw $zero, 0x20($s0) -/* 09A09C 7F06552C AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F065530: -/* 09A0A0 7F065530 AE000398 */ sw $zero, 0x398($s0) -.Ljp7F065534: -/* 09A0A4 7F065534 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F065538: -/* 09A0A8 7F065538 24010002 */ li $at, 2 -/* 09A0AC 7F06553C 5441016C */ bnel $v0, $at, .Ljp7F065AF0 -/* 09A0B0 7F065540 8E0E0024 */ lw $t6, 0x24($s0) -/* 09A0B4 7F065544 0FC1A686 */ jal get_ammo_type_for_weapon -/* 09A0B8 7F065548 02202025 */ move $a0, $s1 -/* 09A0BC 7F06554C 10400003 */ beqz $v0, .Ljp7F06555C -/* 09A0C0 7F065550 262FFFFE */ addiu $t7, $s1, -2 -/* 09A0C4 7F065554 8E19002C */ lw $t9, 0x2c($s0) -/* 09A0C8 7F065558 1B200148 */ blez $t9, .Ljp7F065A7C -.Ljp7F06555C: -/* 09A0CC 7F06555C 2DE1003B */ sltiu $at, $t7, 0x3b -/* 09A0D0 7F065560 102000AF */ beqz $at, Weapon_shooting_throwable -/* 09A0D4 7F065564 000F7880 */ sll $t7, $t7, 2 -/* 09A0D8 7F065568 3C018005 */ lui $at, %hi(jpt_80054084) -/* 09A0DC 7F06556C 002F0821 */ addu $at, $at, $t7 -/* 09A0E0 7F065570 8C2F40B4 */ lw $t7, %lo(jpt_80054084)($at) -/* 09A0E4 7F065574 01E00008 */ jr $t7 -/* 09A0E8 7F065578 00000000 */ nop -Weapon_shooting_watch_magnet: -/* 09A0EC 7F06557C 8E18001C */ lw $t8, 0x1c($s0) -/* 09A0F0 7F065580 240F0003 */ li $t7, 3 -/* 09A0F4 7F065584 5700000D */ bnezl $t8, .Ljp7F0655BC -/* 09A0F8 7F065588 AE0F0024 */ sw $t7, 0x24($s0) -/* 09A0FC 7F06558C 0FC3021B */ jal get_controls_locked_flag -/* 09A100 7F065590 00000000 */ nop -/* 09A104 7F065594 2C450001 */ sltiu $a1, $v0, 1 -/* 09A108 7F065598 10A00005 */ beqz $a1, .Ljp7F0655B0 -/* 09A10C 7F06559C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 09A110 7F0655A0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 09A114 7F0655A4 8DC529C4 */ lw $a1, 0x29c4($t6) -/* 09A118 7F0655A8 2CB90001 */ sltiu $t9, $a1, 1 -/* 09A11C 7F0655AC 03202825 */ move $a1, $t9 -.Ljp7F0655B0: -/* 09A120 7F0655B0 1000009B */ b Weapon_shooting_throwable -/* 09A124 7F0655B4 A205000C */ sb $a1, 0xc($s0) -/* 09A128 7F0655B8 AE0F0024 */ sw $t7, 0x24($s0) -.Ljp7F0655BC: -/* 09A12C 7F0655BC AE000020 */ sw $zero, 0x20($s0) -/* 09A130 7F0655C0 10000097 */ b Weapon_shooting_throwable -/* 09A134 7F0655C4 AE00001C */ sw $zero, 0x1c($s0) -Weapon_shooting_pistol: -/* 09A138 7F0655C8 8E18001C */ lw $t8, 0x1c($s0) -/* 09A13C 7F0655CC 24190003 */ li $t9, 3 -/* 09A140 7F0655D0 5700001E */ bnezl $t8, .Ljp7F06564C -/* 09A144 7F0655D4 AE190024 */ sw $t9, 0x24($s0) -/* 09A148 7F0655D8 0FC26C01 */ jal getPlayerCount -/* 09A14C 7F0655DC 00000000 */ nop -/* 09A150 7F0655E0 24010001 */ li $at, 1 -/* 09A154 7F0655E4 50410009 */ beql $v0, $at, .Ljp7F06560C -/* 09A158 7F0655E8 240F0001 */ li $t7, 1 -/* 09A15C 7F0655EC 0FC31B59 */ jal checkGamePaused -/* 09A160 7F0655F0 00000000 */ nop -/* 09A164 7F0655F4 14400006 */ bnez $v0, .Ljp7F065610 -/* 09A168 7F0655F8 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 09A16C 7F0655FC 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 09A170 7F065600 8DD929C4 */ lw $t9, 0x29c4($t6) -/* 09A174 7F065604 17200002 */ bnez $t9, .Ljp7F065610 -/* 09A178 7F065608 240F0001 */ li $t7, 1 -.Ljp7F06560C: -/* 09A17C 7F06560C A20F000D */ sb $t7, 0xd($s0) -.Ljp7F065610: -/* 09A180 7F065610 0FC3021B */ jal get_controls_locked_flag -/* 09A184 7F065614 00000000 */ nop -/* 09A188 7F065618 2C450001 */ sltiu $a1, $v0, 1 -/* 09A18C 7F06561C 10A00005 */ beqz $a1, .Ljp7F065634 -/* 09A190 7F065620 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09A194 7F065624 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09A198 7F065628 8F0529C4 */ lw $a1, 0x29c4($t8) -/* 09A19C 7F06562C 2CAE0001 */ sltiu $t6, $a1, 1 -/* 09A1A0 7F065630 01C02825 */ move $a1, $t6 -.Ljp7F065634: -/* 09A1A4 7F065634 A205000C */ sb $a1, 0xc($s0) -/* 09A1A8 7F065638 0FC17B4A */ jal sub_GAME_7F05E808 -/* 09A1AC 7F06563C 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09A1B0 7F065640 10000078 */ b .Ljp7F065824 -/* 09A1B4 7F065644 820F000C */ lb $t7, 0xc($s0) -/* 09A1B8 7F065648 AE190024 */ sw $t9, 0x24($s0) -.Ljp7F06564C: -/* 09A1BC 7F06564C AE000020 */ sw $zero, 0x20($s0) -/* 09A1C0 7F065650 10000073 */ b Weapon_shooting_throwable -/* 09A1C4 7F065654 AE00001C */ sw $zero, 0x1c($s0) -Weapon_shooting_machinegun: -/* 09A1C8 7F065658 8E0F001C */ lw $t7, 0x1c($s0) -/* 09A1CC 7F06565C 11E00013 */ beqz $t7, .Ljp7F0656AC -/* 09A1D0 7F065660 00000000 */ nop -/* 09A1D4 7F065664 8E180010 */ lw $t8, 0x10($s0) -/* 09A1D8 7F065668 02202025 */ move $a0, $s1 -/* 09A1DC 7F06566C 1700000F */ bnez $t8, .Ljp7F0656AC -/* 09A1E0 7F065670 00000000 */ nop -/* 09A1E4 7F065674 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09A1E8 7F065678 24050004 */ li $a1, 4 -/* 09A1EC 7F06567C 50400035 */ beql $v0, $zero, .Ljp7F065754 -/* 09A1F0 7F065680 24190003 */ li $t9, 3 -/* 09A1F4 7F065684 0FC1F301 */ jal get_BONDdata_is_aiming -/* 09A1F8 7F065688 00000000 */ nop -/* 09A1FC 7F06568C 54400031 */ bnezl $v0, .Ljp7F065754 -/* 09A200 7F065690 24190003 */ li $t9, 3 -/* 09A204 7F065694 8E0E0398 */ lw $t6, 0x398($s0) -/* 09A208 7F065698 24010003 */ li $at, 3 -/* 09A20C 7F06569C 01C1001A */ div $zero, $t6, $at -/* 09A210 7F0656A0 0000C810 */ mfhi $t9 -/* 09A214 7F0656A4 5320002B */ beql $t9, $zero, .Ljp7F065754 -/* 09A218 7F0656A8 24190003 */ li $t9, 3 -.Ljp7F0656AC: -/* 09A21C 7F0656AC 0FC1793B */ jal get_automatic_firing_rate -/* 09A220 7F0656B0 02202025 */ move $a0, $s1 -/* 09A224 7F0656B4 8E0F001C */ lw $t7, 0x1c($s0) -/* 09A228 7F0656B8 01E2001A */ div $zero, $t7, $v0 -/* 09A22C 7F0656BC 0000C010 */ mfhi $t8 -/* 09A230 7F0656C0 14400002 */ bnez $v0, .Ljp7F0656CC -/* 09A234 7F0656C4 00000000 */ nop -/* 09A238 7F0656C8 0007000D */ break 7 -.Ljp7F0656CC: -/* 09A23C 7F0656CC 2401FFFF */ li $at, -1 -/* 09A240 7F0656D0 14410004 */ bne $v0, $at, .Ljp7F0656E4 -/* 09A244 7F0656D4 3C018000 */ lui $at, 0x8000 -/* 09A248 7F0656D8 15E10002 */ bne $t7, $at, .Ljp7F0656E4 -/* 09A24C 7F0656DC 00000000 */ nop -/* 09A250 7F0656E0 0006000D */ break 6 -.Ljp7F0656E4: -/* 09A254 7F0656E4 5700004F */ bnezl $t8, .Ljp7F065824 -/* 09A258 7F0656E8 820F000C */ lb $t7, 0xc($s0) -/* 09A25C 7F0656EC 0FC26C01 */ jal getPlayerCount -/* 09A260 7F0656F0 00000000 */ nop -/* 09A264 7F0656F4 24010001 */ li $at, 1 -/* 09A268 7F0656F8 50410009 */ beql $v0, $at, .Ljp7F065720 -/* 09A26C 7F0656FC 240F0001 */ li $t7, 1 -/* 09A270 7F065700 0FC31B59 */ jal checkGamePaused -/* 09A274 7F065704 00000000 */ nop -/* 09A278 7F065708 14400006 */ bnez $v0, .Ljp7F065724 -/* 09A27C 7F06570C 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 09A280 7F065710 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 09A284 7F065714 8DD929C4 */ lw $t9, 0x29c4($t6) -/* 09A288 7F065718 17200002 */ bnez $t9, .Ljp7F065724 -/* 09A28C 7F06571C 240F0001 */ li $t7, 1 -.Ljp7F065720: -/* 09A290 7F065720 A20F000D */ sb $t7, 0xd($s0) -.Ljp7F065724: -/* 09A294 7F065724 0FC3021B */ jal get_controls_locked_flag -/* 09A298 7F065728 00000000 */ nop -/* 09A29C 7F06572C 2C450001 */ sltiu $a1, $v0, 1 -/* 09A2A0 7F065730 10A00005 */ beqz $a1, .Ljp7F065748 -/* 09A2A4 7F065734 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09A2A8 7F065738 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09A2AC 7F06573C 8F0529C4 */ lw $a1, 0x29c4($t8) -/* 09A2B0 7F065740 2CAE0001 */ sltiu $t6, $a1, 1 -/* 09A2B4 7F065744 01C02825 */ move $a1, $t6 -.Ljp7F065748: -/* 09A2B8 7F065748 10000035 */ b Weapon_shooting_throwable -/* 09A2BC 7F06574C A205000C */ sb $a1, 0xc($s0) -/* 09A2C0 7F065750 24190003 */ li $t9, 3 -.Ljp7F065754: -/* 09A2C4 7F065754 AE190024 */ sw $t9, 0x24($s0) -/* 09A2C8 7F065758 AE000020 */ sw $zero, 0x20($s0) -/* 09A2CC 7F06575C 10000030 */ b Weapon_shooting_throwable -/* 09A2D0 7F065760 AE00001C */ sw $zero, 0x1c($s0) -Weapon_shooting_noammo: -/* 09A2D4 7F065764 8E0F001C */ lw $t7, 0x1c($s0) -/* 09A2D8 7F065768 51E00006 */ beql $t7, $zero, .Ljp7F065784 -/* 09A2DC 7F06576C A200000C */ sb $zero, 0xc($s0) -/* 09A2E0 7F065770 8E180010 */ lw $t8, 0x10($s0) -/* 09A2E4 7F065774 24190003 */ li $t9, 3 -/* 09A2E8 7F065778 53000006 */ beql $t8, $zero, .Ljp7F065794 -/* 09A2EC 7F06577C AE190024 */ sw $t9, 0x24($s0) -/* 09A2F0 7F065780 A200000C */ sb $zero, 0xc($s0) -.Ljp7F065784: -/* 09A2F4 7F065784 820E000C */ lb $t6, 0xc($s0) -/* 09A2F8 7F065788 10000025 */ b Weapon_shooting_throwable -/* 09A2FC 7F06578C A20E000D */ sb $t6, 0xd($s0) -/* 09A300 7F065790 AE190024 */ sw $t9, 0x24($s0) -.Ljp7F065794: -/* 09A304 7F065794 AE000020 */ sw $zero, 0x20($s0) -/* 09A308 7F065798 10000021 */ b Weapon_shooting_throwable -/* 09A30C 7F06579C AE00001C */ sw $zero, 0x1c($s0) -Weapon_shooting_tazer: -/* 09A310 7F0657A0 8E0F001C */ lw $t7, 0x1c($s0) -/* 09A314 7F0657A4 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 -/* 09A318 7F0657A8 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 -/* 09A31C 7F0657AC 11E00004 */ beqz $t7, .Ljp7F0657C0 -/* 09A320 7F0657B0 24050000 */ li $a1, 0 -/* 09A324 7F0657B4 8E180010 */ lw $t8, 0x10($s0) -/* 09A328 7F0657B8 24190003 */ li $t9, 3 -/* 09A32C 7F0657BC 13000015 */ beqz $t8, .Ljp7F065814 -.Ljp7F0657C0: -/* 09A330 7F0657C0 2606007C */ addiu $a2, $s0, 0x7c -/* 09A334 7F0657C4 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09A338 7F0657C8 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09A33C 7F0657CC 8E0F001C */ lw $t7, 0x1c($s0) -/* 09A340 7F0657D0 A200000C */ sb $zero, 0xc($s0) -/* 09A344 7F0657D4 8219000C */ lb $t9, 0xc($s0) -/* 09A348 7F0657D8 240E0001 */ li $t6, 1 -/* 09A34C 7F0657DC AE0E00BC */ sw $t6, 0xbc($s0) -/* 09A350 7F0657E0 15E0000F */ bnez $t7, Weapon_shooting_throwable -/* 09A354 7F0657E4 A219000D */ sb $t9, 0xd($s0) -/* 09A358 7F0657E8 0FC3021B */ jal get_controls_locked_flag -/* 09A35C 7F0657EC 00000000 */ nop -/* 09A360 7F0657F0 2C450001 */ sltiu $a1, $v0, 1 -/* 09A364 7F0657F4 10A00005 */ beqz $a1, .Ljp7F06580C -/* 09A368 7F0657F8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09A36C 7F0657FC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09A370 7F065800 8F0529C4 */ lw $a1, 0x29c4($t8) -/* 09A374 7F065804 2CAE0001 */ sltiu $t6, $a1, 1 -/* 09A378 7F065808 01C02825 */ move $a1, $t6 -.Ljp7F06580C: -/* 09A37C 7F06580C 10000004 */ b Weapon_shooting_throwable -/* 09A380 7F065810 A205000C */ sb $a1, 0xc($s0) -.Ljp7F065814: -/* 09A384 7F065814 AE190024 */ sw $t9, 0x24($s0) -/* 09A388 7F065818 AE000020 */ sw $zero, 0x20($s0) -/* 09A38C 7F06581C AE00001C */ sw $zero, 0x1c($s0) -Weapon_shooting_throwable: -/* 09A390 7F065820 820F000C */ lb $t7, 0xc($s0) -.Ljp7F065824: -/* 09A394 7F065824 24010028 */ li $at, 40 -/* 09A398 7F065828 51E0001E */ beql $t7, $zero, .Ljp7F0658A4 -/* 09A39C 7F06582C 8E0E0024 */ lw $t6, 0x24($s0) -/* 09A3A0 7F065830 52210016 */ beql $s1, $at, .Ljp7F06588C -/* 09A3A4 7F065834 8E0E002C */ lw $t6, 0x2c($s0) -/* 09A3A8 7F065838 0FC26F3C */ jal get_cur_playernum -/* 09A3AC 7F06583C 00000000 */ nop -/* 09A3B0 7F065840 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc -/* 09A3B4 7F065844 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd -/* 09A3B8 7F065848 0C00322E */ jal controller_7000C854 -/* 09A3BC 7F06584C 00402025 */ move $a0, $v0 -/* 09A3C0 7F065850 0FC29658 */ jal cur_player_get_control_type -/* 09A3C4 7F065854 00000000 */ nop -/* 09A3C8 7F065858 28410004 */ slti $at, $v0, 4 -/* 09A3CC 7F06585C 5420000B */ bnezl $at, .Ljp7F06588C -/* 09A3D0 7F065860 8E0E002C */ lw $t6, 0x2c($s0) -/* 09A3D4 7F065864 0FC26F3C */ jal get_cur_playernum -/* 09A3D8 7F065868 00000000 */ nop -/* 09A3DC 7F06586C 0FC26C01 */ jal getPlayerCount -/* 09A3E0 7F065870 AFA2004C */ sw $v0, 0x4c($sp) -/* 09A3E4 7F065874 8FB8004C */ lw $t8, 0x4c($sp) -/* 09A3E8 7F065878 3C053DCC */ lui $a1, (0x3DCCCCCD >> 16) # lui $a1, 0x3dcc -/* 09A3EC 7F06587C 34A5CCCD */ ori $a1, (0x3DCCCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd -/* 09A3F0 7F065880 0C00322E */ jal controller_7000C854 -/* 09A3F4 7F065884 00582021 */ addu $a0, $v0, $t8 -/* 09A3F8 7F065888 8E0E002C */ lw $t6, 0x2c($s0) -.Ljp7F06588C: -/* 09A3FC 7F06588C 8E0F0398 */ lw $t7, 0x398($s0) -/* 09A400 7F065890 25D9FFFF */ addiu $t9, $t6, -1 -/* 09A404 7F065894 25F80001 */ addiu $t8, $t7, 1 -/* 09A408 7F065898 AE19002C */ sw $t9, 0x2c($s0) -/* 09A40C 7F06589C AE180398 */ sw $t8, 0x398($s0) -/* 09A410 7F0658A0 8E0E0024 */ lw $t6, 0x24($s0) -.Ljp7F0658A4: -/* 09A414 7F0658A4 24010002 */ li $at, 2 -/* 09A418 7F0658A8 02202025 */ move $a0, $s1 -/* 09A41C 7F0658AC 55C10090 */ bnel $t6, $at, .Ljp7F065AF0 -/* 09A420 7F0658B0 8E0E0024 */ lw $t6, 0x24($s0) -/* 09A424 7F0658B4 0FC17944 */ jal get_sound_trigger_rate -/* 09A428 7F0658B8 AFA001C4 */ sw $zero, 0x1c4($sp) -/* 09A42C 7F0658BC 18400017 */ blez $v0, .Ljp7F06591C -/* 09A430 7F0658C0 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09A434 7F0658C4 8FAF003C */ lw $t7, 0x3c($sp) -/* 09A438 7F0658C8 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09A43C 7F0658CC 3C028005 */ lui $v0, %hi(global_timer) # $v0, 0x8005 -/* 09A440 7F0658D0 000FC023 */ negu $t8, $t7 -/* 09A444 7F0658D4 03387021 */ addu $t6, $t9, $t8 -/* 09A448 7F0658D8 8DCF0DF8 */ lw $t7, 0xdf8($t6) -/* 09A44C 7F0658DC 8C4283AC */ lw $v0, %lo(global_timer)($v0) -/* 09A450 7F0658E0 104F0013 */ beq $v0, $t7, .Ljp7F065930 -/* 09A454 7F0658E4 00000000 */ nop -/* 09A458 7F0658E8 8E1901DC */ lw $t9, 0x1dc($s0) -/* 09A45C 7F0658EC 0322082A */ slt $at, $t9, $v0 -/* 09A460 7F0658F0 1020000F */ beqz $at, .Ljp7F065930 -/* 09A464 7F0658F4 00000000 */ nop -/* 09A468 7F0658F8 0FC17944 */ jal get_sound_trigger_rate -/* 09A46C 7F0658FC 02202025 */ move $a0, $s1 -/* 09A470 7F065900 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 -/* 09A474 7F065904 8F1883AC */ lw $t8, %lo(global_timer)($t8) -/* 09A478 7F065908 240F0001 */ li $t7, 1 -/* 09A47C 7F06590C 00587021 */ addu $t6, $v0, $t8 -/* 09A480 7F065910 AE0E01DC */ sw $t6, 0x1dc($s0) -/* 09A484 7F065914 10000006 */ b .Ljp7F065930 -/* 09A488 7F065918 AFAF01C4 */ sw $t7, 0x1c4($sp) -.Ljp7F06591C: -/* 09A48C 7F06591C 8219000C */ lb $t9, 0xc($s0) -/* 09A490 7F065920 24180001 */ li $t8, 1 -/* 09A494 7F065924 13200002 */ beqz $t9, .Ljp7F065930 -/* 09A498 7F065928 00000000 */ nop -/* 09A49C 7F06592C AFB801C4 */ sw $t8, 0x1c4($sp) -.Ljp7F065930: -/* 09A4A0 7F065930 0FC26C01 */ jal getPlayerCount -/* 09A4A4 7F065934 00000000 */ nop -/* 09A4A8 7F065938 24010001 */ li $at, 1 -/* 09A4AC 7F06593C 5041000A */ beql $v0, $at, .Ljp7F065968 -/* 09A4B0 7F065940 8FB901C4 */ lw $t9, 0x1c4($sp) -/* 09A4B4 7F065944 0FC31B59 */ jal checkGamePaused -/* 09A4B8 7F065948 00000000 */ nop -/* 09A4BC 7F06594C 14400067 */ bnez $v0, .Ljp7F065AEC -/* 09A4C0 7F065950 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 09A4C4 7F065954 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 09A4C8 7F065958 8DCF29C4 */ lw $t7, 0x29c4($t6) -/* 09A4CC 7F06595C 55E00064 */ bnezl $t7, .Ljp7F065AF0 -/* 09A4D0 7F065960 8E0E0024 */ lw $t6, 0x24($s0) -/* 09A4D4 7F065964 8FB901C4 */ lw $t9, 0x1c4($sp) -.Ljp7F065968: -/* 09A4D8 7F065968 53200035 */ beql $t9, $zero, .Ljp7F065A40 -/* 09A4DC 7F06596C 24010017 */ li $at, 23 -/* 09A4E0 7F065970 8E0401D4 */ lw $a0, 0x1d4($s0) -/* 09A4E4 7F065974 50800008 */ beql $a0, $zero, .Ljp7F065998 -/* 09A4E8 7F065978 8E0401D8 */ lw $a0, 0x1d8($s0) -/* 09A4EC 7F06597C 0C002380 */ jal sfxGetArg0Unk3F -/* 09A4F0 7F065980 00000000 */ nop -/* 09A4F4 7F065984 50400004 */ beql $v0, $zero, .Ljp7F065998 -/* 09A4F8 7F065988 8E0401D8 */ lw $a0, 0x1d8($s0) -/* 09A4FC 7F06598C 0C00240C */ jal sfxDeactivate -/* 09A500 7F065990 8E0401D4 */ lw $a0, 0x1d4($s0) -/* 09A504 7F065994 8E0401D8 */ lw $a0, 0x1d8($s0) -.Ljp7F065998: -/* 09A508 7F065998 10800007 */ beqz $a0, .Ljp7F0659B8 -/* 09A50C 7F06599C 00000000 */ nop -/* 09A510 7F0659A0 0C002380 */ jal sfxGetArg0Unk3F -/* 09A514 7F0659A4 00000000 */ nop -/* 09A518 7F0659A8 10400003 */ beqz $v0, .Ljp7F0659B8 -/* 09A51C 7F0659AC 00000000 */ nop -/* 09A520 7F0659B0 0C00240C */ jal sfxDeactivate -/* 09A524 7F0659B4 8E0401D8 */ lw $a0, 0x1d8($s0) -.Ljp7F0659B8: -/* 09A528 7F0659B8 0FC1794D */ jal bondwalkItemGetSound -/* 09A52C 7F0659BC 02202025 */ move $a0, $s1 -/* 09A530 7F0659C0 5040001F */ beql $v0, $zero, .Ljp7F065A40 -/* 09A534 7F0659C4 24010017 */ li $at, 23 -/* 09A538 7F0659C8 8E1801D4 */ lw $t8, 0x1d4($s0) -/* 09A53C 7F0659CC 5700000D */ bnezl $t8, .Ljp7F065A04 -/* 09A540 7F0659D0 8E0F01D8 */ lw $t7, 0x1d8($s0) -/* 09A544 7F0659D4 0FC1794D */ jal bondwalkItemGetSound -/* 09A548 7F0659D8 02202025 */ move $a0, $s1 -/* 09A54C 7F0659DC 00022C00 */ sll $a1, $v0, 0x10 -/* 09A550 7F0659E0 00057403 */ sra $t6, $a1, 0x10 -/* 09A554 7F0659E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09A558 7F0659E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09A55C 7F0659EC 01C02825 */ move $a1, $t6 -/* 09A560 7F0659F0 0C002386 */ jal play_sfx_a1 -/* 09A564 7F0659F4 260601D4 */ addiu $a2, $s0, 0x1d4 -/* 09A568 7F0659F8 1000000D */ b .Ljp7F065A30 -/* 09A56C 7F0659FC 00000000 */ nop -/* 09A570 7F065A00 8E0F01D8 */ lw $t7, 0x1d8($s0) -.Ljp7F065A04: -/* 09A574 7F065A04 15E0000A */ bnez $t7, .Ljp7F065A30 -/* 09A578 7F065A08 00000000 */ nop -/* 09A57C 7F065A0C 0FC1794D */ jal bondwalkItemGetSound -/* 09A580 7F065A10 02202025 */ move $a0, $s1 -/* 09A584 7F065A14 00022C00 */ sll $a1, $v0, 0x10 -/* 09A588 7F065A18 0005CC03 */ sra $t9, $a1, 0x10 -/* 09A58C 7F065A1C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09A590 7F065A20 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09A594 7F065A24 03202825 */ move $a1, $t9 -/* 09A598 7F065A28 0C002386 */ jal play_sfx_a1 -/* 09A59C 7F065A2C 260601D8 */ addiu $a2, $s0, 0x1d8 -.Ljp7F065A30: -/* 09A5A0 7F065A30 3C188005 */ lui $t8, %hi(global_timer) # $t8, 0x8005 -/* 09A5A4 7F065A34 8F1883AC */ lw $t8, %lo(global_timer)($t8) -/* 09A5A8 7F065A38 AE1801E0 */ sw $t8, 0x1e0($s0) -/* 09A5AC 7F065A3C 24010017 */ li $at, 23 -.Ljp7F065A40: -/* 09A5B0 7F065A40 1621002A */ bne $s1, $at, .Ljp7F065AEC -/* 09A5B4 7F065A44 3C0E8003 */ lui $t6, %hi(D_80035E90) # $t6, 0x8003 -/* 09A5B8 7F065A48 8DCE5ED0 */ lw $t6, %lo(D_80035E90)($t6) -/* 09A5BC 7F065A4C 0C002918 */ jal get_random_value -/* 09A5C0 7F065A50 AFAE01C0 */ sw $t6, 0x1c0($sp) -/* 09A5C4 7F065A54 304F0001 */ andi $t7, $v0, 1 -/* 09A5C8 7F065A58 000FC840 */ sll $t9, $t7, 1 -/* 09A5CC 7F065A5C 03B92821 */ addu $a1, $sp, $t9 -/* 09A5D0 7F065A60 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09A5D4 7F065A64 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09A5D8 7F065A68 84A501C0 */ lh $a1, 0x1c0($a1) -/* 09A5DC 7F065A6C 0C002386 */ jal play_sfx_a1 -/* 09A5E0 7F065A70 00003025 */ move $a2, $zero -/* 09A5E4 7F065A74 1000001E */ b .Ljp7F065AF0 -/* 09A5E8 7F065A78 8E0E0024 */ lw $t6, 0x24($s0) -.Ljp7F065A7C: -/* 09A5EC 7F065A7C 8E18001C */ lw $t8, 0x1c($s0) -/* 09A5F0 7F065A80 240E0003 */ li $t6, 3 -/* 09A5F4 7F065A84 240F000D */ li $t7, 13 -/* 09A5F8 7F065A88 5B000006 */ blezl $t8, .Ljp7F065AA4 -/* 09A5FC 7F065A8C AE0F0024 */ sw $t7, 0x24($s0) -/* 09A600 7F065A90 AE0E0024 */ sw $t6, 0x24($s0) -/* 09A604 7F065A94 AE000020 */ sw $zero, 0x20($s0) -/* 09A608 7F065A98 10000014 */ b .Ljp7F065AEC -/* 09A60C 7F065A9C AE00001C */ sw $zero, 0x1c($s0) -/* 09A610 7F065AA0 AE0F0024 */ sw $t7, 0x24($s0) -.Ljp7F065AA4: -/* 09A614 7F065AA4 AE000020 */ sw $zero, 0x20($s0) -/* 09A618 7F065AA8 0FC26C01 */ jal getPlayerCount -/* 09A61C 7F065AAC AE00001C */ sw $zero, 0x1c($s0) -/* 09A620 7F065AB0 24010001 */ li $at, 1 -/* 09A624 7F065AB4 10410008 */ beq $v0, $at, .Ljp7F065AD8 -/* 09A628 7F065AB8 00000000 */ nop -/* 09A62C 7F065ABC 0FC31B59 */ jal checkGamePaused -/* 09A630 7F065AC0 00000000 */ nop -/* 09A634 7F065AC4 14400009 */ bnez $v0, .Ljp7F065AEC -/* 09A638 7F065AC8 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09A63C 7F065ACC 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09A640 7F065AD0 8F3829C4 */ lw $t8, 0x29c4($t9) -/* 09A644 7F065AD4 17000005 */ bnez $t8, .Ljp7F065AEC -.Ljp7F065AD8: -/* 09A648 7F065AD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09A64C 7F065ADC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09A650 7F065AE0 24050059 */ li $a1, 89 -/* 09A654 7F065AE4 0C002386 */ jal play_sfx_a1 -/* 09A658 7F065AE8 00003025 */ move $a2, $zero -.Ljp7F065AEC: -/* 09A65C 7F065AEC 8E0E0024 */ lw $t6, 0x24($s0) -.Ljp7F065AF0: -/* 09A660 7F065AF0 24010003 */ li $at, 3 -/* 09A664 7F065AF4 15C100D5 */ bne $t6, $at, .Ljp7F065E4C -/* 09A668 7F065AF8 2401001F */ li $at, 31 -/* 09A66C 7F065AFC 16210013 */ bne $s1, $at, .Ljp7F065B4C -/* 09A670 7F065B00 00000000 */ nop -/* 09A674 7F065B04 8E0F0020 */ lw $t7, 0x20($s0) -/* 09A678 7F065B08 3C048003 */ lui $a0, %hi(D_80035B68) # $a0, 0x8003 -/* 09A67C 7F065B0C 24845BA8 */ addiu $a0, %lo(D_80035B68) # addiu $a0, $a0, 0x5ba8 -/* 09A680 7F065B10 448F4000 */ mtc1 $t7, $f8 -/* 09A684 7F065B14 2606007C */ addiu $a2, $s0, 0x7c -/* 09A688 7F065B18 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09A68C 7F065B1C 46804020 */ cvt.s.w $f0, $f8 -/* 09A690 7F065B20 44050000 */ mfc1 $a1, $f0 -/* 09A694 7F065B24 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09A698 7F065B28 00000000 */ nop -/* 09A69C 7F065B2C 10400003 */ beqz $v0, .Ljp7F065B3C -/* 09A6A0 7F065B30 24190001 */ li $t9, 1 -/* 09A6A4 7F065B34 100000C5 */ b .Ljp7F065E4C -/* 09A6A8 7F065B38 AE1900BC */ sw $t9, 0xbc($s0) -.Ljp7F065B3C: -/* 09A6AC 7F065B3C AE000024 */ sw $zero, 0x24($s0) -/* 09A6B0 7F065B40 AE000020 */ sw $zero, 0x20($s0) -/* 09A6B4 7F065B44 100000C1 */ b .Ljp7F065E4C -/* 09A6B8 7F065B48 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F065B4C: -/* 09A6BC 7F065B4C 0FC17375 */ jal get_ptr_item_statistics -/* 09A6C0 7F065B50 02202025 */ move $a0, $s1 -/* 09A6C4 7F065B54 8E050018 */ lw $a1, 0x18($s0) -/* 09A6C8 7F065B58 804A0047 */ lb $t2, 0x47($v0) -/* 09A6CC 7F065B5C 80440023 */ lb $a0, 0x23($v0) -/* 09A6D0 7F065B60 00406825 */ move $t5, $v0 -/* 09A6D4 7F065B64 80460044 */ lb $a2, 0x44($v0) -/* 09A6D8 7F065B68 804B0045 */ lb $t3, 0x45($v0) -/* 09A6DC 7F065B6C 80480046 */ lb $t0, 0x46($v0) -/* 09A6E0 7F065B70 01404825 */ move $t1, $t2 -/* 09A6E4 7F065B74 10A00006 */ beqz $a1, .Ljp7F065B90 -/* 09A6E8 7F065B78 00806025 */ move $t4, $a0 -/* 09A6EC 7F065B7C 8E180020 */ lw $t8, 0x20($s0) -/* 09A6F0 7F065B80 00CB7021 */ addu $t6, $a2, $t3 -/* 09A6F4 7F065B84 030E082A */ slt $at, $t8, $t6 -/* 09A6F8 7F065B88 5020000A */ beql $at, $zero, .Ljp7F065BB4 -/* 09A6FC 7F065B8C AE000024 */ sw $zero, 0x24($s0) -.Ljp7F065B90: -/* 09A700 7F065B90 8E030020 */ lw $v1, 0x20($s0) -/* 09A704 7F065B94 0480000A */ bltz $a0, .Ljp7F065BC0 -/* 09A708 7F065B98 00CB3821 */ addu $a3, $a2, $t3 -/* 09A70C 7F065B9C 14A00008 */ bnez $a1, .Ljp7F065BC0 -/* 09A710 7F065BA0 00EC7821 */ addu $t7, $a3, $t4 -/* 09A714 7F065BA4 006F082A */ slt $at, $v1, $t7 -/* 09A718 7F065BA8 14200005 */ bnez $at, .Ljp7F065BC0 -/* 09A71C 7F065BAC 00000000 */ nop -/* 09A720 7F065BB0 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F065BB4: -/* 09A724 7F065BB4 AE000020 */ sw $zero, 0x20($s0) -/* 09A728 7F065BB8 100000A4 */ b .Ljp7F065E4C -/* 09A72C 7F065BBC AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F065BC0: -/* 09A730 7F065BC0 50A00014 */ beql $a1, $zero, .Ljp7F065C14 -/* 09A734 7F065BC4 0067082A */ slt $at, $v1, $a3 -/* 09A738 7F065BC8 8E190010 */ lw $t9, 0x10($s0) -/* 09A73C 7F065BCC 0068082A */ slt $at, $v1, $t0 -/* 09A740 7F065BD0 53200010 */ beql $t9, $zero, .Ljp7F065C14 -/* 09A744 7F065BD4 0067082A */ slt $at, $v1, $a3 -/* 09A748 7F065BD8 5420000E */ bnezl $at, .Ljp7F065C14 -/* 09A74C 7F065BDC 0067082A */ slt $at, $v1, $a3 -/* 09A750 7F065BE0 0540000B */ bltz $t2, .Ljp7F065C10 -/* 09A754 7F065BE4 00692021 */ addu $a0, $v1, $t1 -/* 09A758 7F065BE8 0087082A */ slt $at, $a0, $a3 -/* 09A75C 7F065BEC 10200008 */ beqz $at, .Ljp7F065C10 -/* 09A760 7F065BF0 0088082A */ slt $at, $a0, $t0 -/* 09A764 7F065BF4 14200006 */ bnez $at, .Ljp7F065C10 -/* 09A768 7F065BF8 24180004 */ li $t8, 4 -/* 09A76C 7F065BFC AE180024 */ sw $t8, 0x24($s0) -/* 09A770 7F065C00 AE000020 */ sw $zero, 0x20($s0) -/* 09A774 7F065C04 AE00001C */ sw $zero, 0x1c($s0) -/* 09A778 7F065C08 10000090 */ b .Ljp7F065E4C -/* 09A77C 7F065C0C AE090038 */ sw $t1, 0x38($s0) -.Ljp7F065C10: -/* 09A780 7F065C10 0067082A */ slt $at, $v1, $a3 -.Ljp7F065C14: -/* 09A784 7F065C14 1020008D */ beqz $at, .Ljp7F065E4C -/* 09A788 7F065C18 260E007C */ addiu $t6, $s0, 0x7c -/* 09A78C 7F065C1C C4420048 */ lwc1 $f2, 0x48($v0) -/* 09A790 7F065C20 C440004C */ lwc1 $f0, 0x4c($v0) -/* 09A794 7F065C24 1460000A */ bnez $v1, .Ljp7F065C50 -/* 09A798 7F065C28 AFAE0034 */ sw $t6, 0x34($sp) -/* 09A79C 7F065C2C C60A0078 */ lwc1 $f10, 0x78($s0) -/* 09A7A0 7F065C30 C604006C */ lwc1 $f4, 0x6c($s0) -/* 09A7A4 7F065C34 C6060070 */ lwc1 $f6, 0x70($s0) -/* 09A7A8 7F065C38 C6080074 */ lwc1 $f8, 0x74($s0) -/* 09A7AC 7F065C3C 8E030020 */ lw $v1, 0x20($s0) -/* 09A7B0 7F065C40 E60A0058 */ swc1 $f10, 0x58($s0) -/* 09A7B4 7F065C44 E604004C */ swc1 $f4, 0x4c($s0) -/* 09A7B8 7F065C48 E6060050 */ swc1 $f6, 0x50($s0) -/* 09A7BC 7F065C4C E6080054 */ swc1 $f8, 0x54($s0) -.Ljp7F065C50: -/* 09A7C0 7F065C50 0066082A */ slt $at, $v1, $a2 -/* 09A7C4 7F065C54 1020002B */ beqz $at, .Ljp7F065D04 -/* 09A7C8 7F065C58 3C018005 */ lui $at, %hi(D_80054170) # $at, 0x8005 -/* 09A7CC 7F065C5C C42C41A0 */ lwc1 $f12, %lo(D_80054170)($at) -/* 09A7D0 7F065C60 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 09A7D4 7F065C64 44812000 */ mtc1 $at, $f4 -/* 09A7D8 7F065C68 460C0282 */ mul.s $f10, $f0, $f12 -/* 09A7DC 7F065C6C 46045183 */ div.s $f6, $f10, $f4 -/* 09A7E0 7F065C70 46066201 */ sub.s $f8, $f12, $f6 -/* 09A7E4 7F065C74 E6080068 */ swc1 $f8, 0x68($s0) -/* 09A7E8 7F065C78 E7A2019C */ swc1 $f2, 0x19c($sp) -/* 09A7EC 7F065C7C AFAD01B8 */ sw $t5, 0x1b8($sp) -/* 09A7F0 7F065C80 AFA601B4 */ sw $a2, 0x1b4($sp) -/* 09A7F4 7F065C84 0FC17882 */ jal sub_GAME_7F05DCE8 -/* 09A7F8 7F065C88 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09A7FC 7F065C8C C60A01C8 */ lwc1 $f10, 0x1c8($s0) -/* 09A800 7F065C90 C7A2019C */ lwc1 $f2, 0x19c($sp) -/* 09A804 7F065C94 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 09A808 7F065C98 460A0101 */ sub.s $f4, $f0, $f10 -/* 09A80C 7F065C9C 44817000 */ mtc1 $at, $f14 -/* 09A810 7F065CA0 8FAD01B8 */ lw $t5, 0x1b8($sp) -/* 09A814 7F065CA4 44805000 */ mtc1 $zero, $f10 -/* 09A818 7F065CA8 46022182 */ mul.s $f6, $f4, $f2 -/* 09A81C 7F065CAC 8FA601B4 */ lw $a2, 0x1b4($sp) -/* 09A820 7F065CB0 E60A0060 */ swc1 $f10, 0x60($s0) -/* 09A824 7F065CB4 8E0F0020 */ lw $t7, 0x20($s0) -/* 09A828 7F065CB8 3C018005 */ lui $at, %hi(D_80054174) # $at, 0x8005 -/* 09A82C 7F065CBC 460E3203 */ div.s $f8, $f6, $f14 -/* 09A830 7F065CC0 C60601D0 */ lwc1 $f6, 0x1d0($s0) -/* 09A834 7F065CC4 E608005C */ swc1 $f8, 0x5c($s0) -/* 09A838 7F065CC8 C5A4000C */ lwc1 $f4, 0xc($t5) -/* 09A83C 7F065CCC 46062201 */ sub.s $f8, $f4, $f6 -/* 09A840 7F065CD0 448F3000 */ mtc1 $t7, $f6 -/* 09A844 7F065CD4 46024282 */ mul.s $f10, $f8, $f2 -/* 09A848 7F065CD8 46803220 */ cvt.s.w $f8, $f6 -/* 09A84C 7F065CDC 44863000 */ mtc1 $a2, $f6 -/* 09A850 7F065CE0 460E5103 */ div.s $f4, $f10, $f14 -/* 09A854 7F065CE4 E6040064 */ swc1 $f4, 0x64($s0) -/* 09A858 7F065CE8 C42A41A4 */ lwc1 $f10, %lo(D_80054174)($at) -/* 09A85C 7F065CEC 460A4102 */ mul.s $f4, $f8, $f10 -/* 09A860 7F065CF0 46803220 */ cvt.s.w $f8, $f6 -/* 09A864 7F065CF4 0FC160F3 */ jal sinf -/* 09A868 7F065CF8 46082303 */ div.s $f12, $f4, $f8 -/* 09A86C 7F065CFC 10000032 */ b .Ljp7F065DC8 -/* 09A870 7F065D00 46000086 */ mov.s $f2, $f0 -.Ljp7F065D04: -/* 09A874 7F065D04 3C018005 */ lui $at, %hi(D_80054178) # $at, 0x8005 -/* 09A878 7F065D08 C42C41A8 */ lwc1 $f12, %lo(D_80054178)($at) -/* 09A87C 7F065D0C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 09A880 7F065D10 44813000 */ mtc1 $at, $f6 -/* 09A884 7F065D14 460C0282 */ mul.s $f10, $f0, $f12 -/* 09A888 7F065D18 46065103 */ div.s $f4, $f10, $f6 -/* 09A88C 7F065D1C 46046201 */ sub.s $f8, $f12, $f4 -/* 09A890 7F065D20 E6080068 */ swc1 $f8, 0x68($s0) -/* 09A894 7F065D24 E7A2019C */ swc1 $f2, 0x19c($sp) -/* 09A898 7F065D28 AFAD01B8 */ sw $t5, 0x1b8($sp) -/* 09A89C 7F065D2C AFAB01B0 */ sw $t3, 0x1b0($sp) -/* 09A8A0 7F065D30 AFA601B4 */ sw $a2, 0x1b4($sp) -/* 09A8A4 7F065D34 0FC17882 */ jal sub_GAME_7F05DCE8 -/* 09A8A8 7F065D38 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09A8AC 7F065D3C C60A01C8 */ lwc1 $f10, 0x1c8($s0) -/* 09A8B0 7F065D40 C7A2019C */ lwc1 $f2, 0x19c($sp) -/* 09A8B4 7F065D44 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 09A8B8 7F065D48 460A0181 */ sub.s $f6, $f0, $f10 -/* 09A8BC 7F065D4C 44817000 */ mtc1 $at, $f14 -/* 09A8C0 7F065D50 8FAD01B8 */ lw $t5, 0x1b8($sp) -/* 09A8C4 7F065D54 44805000 */ mtc1 $zero, $f10 -/* 09A8C8 7F065D58 46023102 */ mul.s $f4, $f6, $f2 -/* 09A8CC 7F065D5C 8FA601B4 */ lw $a2, 0x1b4($sp) -/* 09A8D0 7F065D60 8FAB01B0 */ lw $t3, 0x1b0($sp) -/* 09A8D4 7F065D64 E60A0060 */ swc1 $f10, 0x60($s0) -/* 09A8D8 7F065D68 8E190020 */ lw $t9, 0x20($s0) -/* 09A8DC 7F065D6C 3C018005 */ lui $at, %hi(D_8005417C) -/* 09A8E0 7F065D70 460E2203 */ div.s $f8, $f4, $f14 -/* 09A8E4 7F065D74 C60401D0 */ lwc1 $f4, 0x1d0($s0) -/* 09A8E8 7F065D78 0326C023 */ subu $t8, $t9, $a2 -/* 09A8EC 7F065D7C E608005C */ swc1 $f8, 0x5c($s0) -/* 09A8F0 7F065D80 C5A6000C */ lwc1 $f6, 0xc($t5) -/* 09A8F4 7F065D84 46043201 */ sub.s $f8, $f6, $f4 -/* 09A8F8 7F065D88 44982000 */ mtc1 $t8, $f4 -/* 09A8FC 7F065D8C 46024282 */ mul.s $f10, $f8, $f2 -/* 09A900 7F065D90 46802220 */ cvt.s.w $f8, $f4 -/* 09A904 7F065D94 448B2000 */ mtc1 $t3, $f4 -/* 09A908 7F065D98 460E5183 */ div.s $f6, $f10, $f14 -/* 09A90C 7F065D9C E6060064 */ swc1 $f6, 0x64($s0) -/* 09A910 7F065DA0 C42A41AC */ lwc1 $f10, %lo(D_8005417C)($at) -/* 09A914 7F065DA4 460A4182 */ mul.s $f6, $f8, $f10 -/* 09A918 7F065DA8 46802220 */ cvt.s.w $f8, $f4 -/* 09A91C 7F065DAC 0FC160F0 */ jal cosf -/* 09A920 7F065DB0 46083303 */ div.s $f12, $f6, $f8 -/* 09A924 7F065DB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09A928 7F065DB8 44815000 */ mtc1 $at, $f10 -/* 09A92C 7F065DBC 44813000 */ mtc1 $at, $f6 -/* 09A930 7F065DC0 460A0102 */ mul.s $f4, $f0, $f10 -/* 09A934 7F065DC4 46062080 */ add.s $f2, $f4, $f6 -.Ljp7F065DC8: -/* 09A938 7F065DC8 C60C0058 */ lwc1 $f12, 0x58($s0) -/* 09A93C 7F065DCC C60E0068 */ lwc1 $f14, 0x68($s0) -/* 09A940 7F065DD0 44061000 */ mfc1 $a2, $f2 -/* 09A944 7F065DD4 0FC1B5AF */ jal sub_GAME_7F06D0CC -/* 09A948 7F065DD8 E7A20194 */ swc1 $f2, 0x194($sp) -/* 09A94C 7F065DDC C60E004C */ lwc1 $f14, 0x4c($s0) -/* 09A950 7F065DE0 C608005C */ lwc1 $f8, 0x5c($s0) -/* 09A954 7F065DE4 C7A20194 */ lwc1 $f2, 0x194($sp) -/* 09A958 7F065DE8 C6100050 */ lwc1 $f16, 0x50($s0) -/* 09A95C 7F065DEC 460E4281 */ sub.s $f10, $f8, $f14 -/* 09A960 7F065DF0 C6080060 */ lwc1 $f8, 0x60($s0) -/* 09A964 7F065DF4 C6120054 */ lwc1 $f18, 0x54($s0) -/* 09A968 7F065DF8 240E0001 */ li $t6, 1 -/* 09A96C 7F065DFC 46025102 */ mul.s $f4, $f10, $f2 -/* 09A970 7F065E00 46104281 */ sub.s $f10, $f8, $f16 -/* 09A974 7F065E04 C6080064 */ lwc1 $f8, 0x64($s0) -/* 09A978 7F065E08 E6000078 */ swc1 $f0, 0x78($s0) -/* 09A97C 7F065E0C AE0E00BC */ sw $t6, 0xbc($s0) -/* 09A980 7F065E10 46000306 */ mov.s $f12, $f0 -/* 09A984 7F065E14 460E2180 */ add.s $f6, $f4, $f14 -/* 09A988 7F065E18 46025102 */ mul.s $f4, $f10, $f2 -/* 09A98C 7F065E1C 46124281 */ sub.s $f10, $f8, $f18 -/* 09A990 7F065E20 E606006C */ swc1 $f6, 0x6c($s0) -/* 09A994 7F065E24 46102180 */ add.s $f6, $f4, $f16 -/* 09A998 7F065E28 46025102 */ mul.s $f4, $f10, $f2 -/* 09A99C 7F065E2C E6060070 */ swc1 $f6, 0x70($s0) -/* 09A9A0 7F065E30 46122180 */ add.s $f6, $f4, $f18 -/* 09A9A4 7F065E34 E6060074 */ swc1 $f6, 0x74($s0) -/* 09A9A8 7F065E38 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09A9AC 7F065E3C 8FA50034 */ lw $a1, 0x34($sp) -/* 09A9B0 7F065E40 2604006C */ addiu $a0, $s0, 0x6c -/* 09A9B4 7F065E44 0FC163AE */ jal matrix_4x4_set_position -/* 09A9B8 7F065E48 8FA50034 */ lw $a1, 0x34($sp) -.Ljp7F065E4C: -/* 09A9BC 7F065E4C 8E020024 */ lw $v0, 0x24($s0) -/* 09A9C0 7F065E50 24010004 */ li $at, 4 -/* 09A9C4 7F065E54 54410053 */ bnel $v0, $at, .Ljp7F065FA4 -/* 09A9C8 7F065E58 2401000D */ li $at, 13 -/* 09A9CC 7F065E5C 8E030020 */ lw $v1, 0x20($s0) -/* 09A9D0 7F065E60 54600013 */ bnezl $v1, .Ljp7F065EB0 -/* 09A9D4 7F065E64 8E020038 */ lw $v0, 0x38($s0) -/* 09A9D8 7F065E68 C6080078 */ lwc1 $f8, 0x78($s0) -/* 09A9DC 7F065E6C C60A006C */ lwc1 $f10, 0x6c($s0) -/* 09A9E0 7F065E70 C6040070 */ lwc1 $f4, 0x70($s0) -/* 09A9E4 7F065E74 C6060074 */ lwc1 $f6, 0x74($s0) -/* 09A9E8 7F065E78 E6080058 */ swc1 $f8, 0x58($s0) -/* 09A9EC 7F065E7C E60A004C */ swc1 $f10, 0x4c($s0) -/* 09A9F0 7F065E80 E6040050 */ swc1 $f4, 0x50($s0) -/* 09A9F4 7F065E84 E6060054 */ swc1 $f6, 0x54($s0) -/* 09A9F8 7F065E88 44804000 */ mtc1 $zero, $f8 -/* 09A9FC 7F065E8C 44805000 */ mtc1 $zero, $f10 -/* 09AA00 7F065E90 44802000 */ mtc1 $zero, $f4 -/* 09AA04 7F065E94 44803000 */ mtc1 $zero, $f6 -/* 09AA08 7F065E98 8E030020 */ lw $v1, 0x20($s0) -/* 09AA0C 7F065E9C E6080068 */ swc1 $f8, 0x68($s0) -/* 09AA10 7F065EA0 E60A005C */ swc1 $f10, 0x5c($s0) -/* 09AA14 7F065EA4 E6040060 */ swc1 $f4, 0x60($s0) -/* 09AA18 7F065EA8 E6060064 */ swc1 $f6, 0x64($s0) -/* 09AA1C 7F065EAC 8E020038 */ lw $v0, 0x38($s0) -.Ljp7F065EB0: -/* 09AA20 7F065EB0 0062082A */ slt $at, $v1, $v0 -/* 09AA24 7F065EB4 10200036 */ beqz $at, .Ljp7F065F90 -/* 09AA28 7F065EB8 00437823 */ subu $t7, $v0, $v1 -/* 09AA2C 7F065EBC 448F4000 */ mtc1 $t7, $f8 -/* 09AA30 7F065EC0 3C018005 */ lui $at, %hi(D_80054180) # $at, 0x8005 -/* 09AA34 7F065EC4 C42441B0 */ lwc1 $f4, %lo(D_80054180)($at) -/* 09AA38 7F065EC8 468042A0 */ cvt.s.w $f10, $f8 -/* 09AA3C 7F065ECC 44824000 */ mtc1 $v0, $f8 -/* 09AA40 7F065ED0 2619007C */ addiu $t9, $s0, 0x7c -/* 09AA44 7F065ED4 2618006C */ addiu $t8, $s0, 0x6c -/* 09AA48 7F065ED8 AFB80038 */ sw $t8, 0x38($sp) -/* 09AA4C 7F065EDC AFB90034 */ sw $t9, 0x34($sp) -/* 09AA50 7F065EE0 46045182 */ mul.s $f6, $f10, $f4 -/* 09AA54 7F065EE4 468042A0 */ cvt.s.w $f10, $f8 -/* 09AA58 7F065EE8 0FC160F0 */ jal cosf -/* 09AA5C 7F065EEC 460A3303 */ div.s $f12, $f6, $f10 -/* 09AA60 7F065EF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 09AA64 7F065EF4 44818000 */ mtc1 $at, $f16 -/* 09AA68 7F065EF8 00000000 */ nop -/* 09AA6C 7F065EFC 46100102 */ mul.s $f4, $f0, $f16 -/* 09AA70 7F065F00 46102080 */ add.s $f2, $f4, $f16 -/* 09AA74 7F065F04 E7A20190 */ swc1 $f2, 0x190($sp) -/* 09AA78 7F065F08 44061000 */ mfc1 $a2, $f2 -/* 09AA7C 7F065F0C C60E0068 */ lwc1 $f14, 0x68($s0) -/* 09AA80 7F065F10 0FC1B5AF */ jal sub_GAME_7F06D0CC -/* 09AA84 7F065F14 C60C0058 */ lwc1 $f12, 0x58($s0) -/* 09AA88 7F065F18 C60E004C */ lwc1 $f14, 0x4c($s0) -/* 09AA8C 7F065F1C C608005C */ lwc1 $f8, 0x5c($s0) -/* 09AA90 7F065F20 C7A20190 */ lwc1 $f2, 0x190($sp) -/* 09AA94 7F065F24 C6100050 */ lwc1 $f16, 0x50($s0) -/* 09AA98 7F065F28 460E4181 */ sub.s $f6, $f8, $f14 -/* 09AA9C 7F065F2C C6080060 */ lwc1 $f8, 0x60($s0) -/* 09AAA0 7F065F30 C6120054 */ lwc1 $f18, 0x54($s0) -/* 09AAA4 7F065F34 240E0001 */ li $t6, 1 -/* 09AAA8 7F065F38 46023282 */ mul.s $f10, $f6, $f2 -/* 09AAAC 7F065F3C 46104181 */ sub.s $f6, $f8, $f16 -/* 09AAB0 7F065F40 C6080064 */ lwc1 $f8, 0x64($s0) -/* 09AAB4 7F065F44 E6000078 */ swc1 $f0, 0x78($s0) -/* 09AAB8 7F065F48 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09AABC 7F065F4C 46000306 */ mov.s $f12, $f0 -/* 09AAC0 7F065F50 460E5100 */ add.s $f4, $f10, $f14 -/* 09AAC4 7F065F54 46023282 */ mul.s $f10, $f6, $f2 -/* 09AAC8 7F065F58 46124181 */ sub.s $f6, $f8, $f18 -/* 09AACC 7F065F5C E604006C */ swc1 $f4, 0x6c($s0) -/* 09AAD0 7F065F60 46105100 */ add.s $f4, $f10, $f16 -/* 09AAD4 7F065F64 46023282 */ mul.s $f10, $f6, $f2 -/* 09AAD8 7F065F68 E6040070 */ swc1 $f4, 0x70($s0) -/* 09AADC 7F065F6C 46125100 */ add.s $f4, $f10, $f18 -/* 09AAE0 7F065F70 E6040074 */ swc1 $f4, 0x74($s0) -/* 09AAE4 7F065F74 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09AAE8 7F065F78 8FA50034 */ lw $a1, 0x34($sp) -/* 09AAEC 7F065F7C 8FA40038 */ lw $a0, 0x38($sp) -/* 09AAF0 7F065F80 0FC163AE */ jal matrix_4x4_set_position -/* 09AAF4 7F065F84 8FA50034 */ lw $a1, 0x34($sp) -/* 09AAF8 7F065F88 10000005 */ b .Ljp7F065FA0 -/* 09AAFC 7F065F8C 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F065F90: -/* 09AB00 7F065F90 AE000024 */ sw $zero, 0x24($s0) -/* 09AB04 7F065F94 AE000020 */ sw $zero, 0x20($s0) -/* 09AB08 7F065F98 AE00001C */ sw $zero, 0x1c($s0) -/* 09AB0C 7F065F9C 00001025 */ move $v0, $zero -.Ljp7F065FA0: -/* 09AB10 7F065FA0 2401000D */ li $at, 13 -.Ljp7F065FA4: -/* 09AB14 7F065FA4 54410013 */ bnel $v0, $at, .Ljp7F065FF4 -/* 09AB18 7F065FA8 8E020024 */ lw $v0, 0x24($s0) -/* 09AB1C 7F065FAC 8E0F001C */ lw $t7, 0x1c($s0) -/* 09AB20 7F065FB0 55E00004 */ bnezl $t7, .Ljp7F065FC4 -/* 09AB24 7F065FB4 8E050018 */ lw $a1, 0x18($s0) -/* 09AB28 7F065FB8 0FC17B4A */ jal sub_GAME_7F05E808 -/* 09AB2C 7F065FBC 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AB30 7F065FC0 8E050018 */ lw $a1, 0x18($s0) -.Ljp7F065FC4: -/* 09AB34 7F065FC4 54A00008 */ bnezl $a1, .Ljp7F065FE8 -/* 09AB38 7F065FC8 AE000024 */ sw $zero, 0x24($s0) -/* 09AB3C 7F065FCC 54A00009 */ bnezl $a1, .Ljp7F065FF4 -/* 09AB40 7F065FD0 8E020024 */ lw $v0, 0x24($s0) -/* 09AB44 7F065FD4 8E190020 */ lw $t9, 0x20($s0) -/* 09AB48 7F065FD8 2B210014 */ slti $at, $t9, 0x14 -/* 09AB4C 7F065FDC 54200005 */ bnezl $at, .Ljp7F065FF4 -/* 09AB50 7F065FE0 8E020024 */ lw $v0, 0x24($s0) -/* 09AB54 7F065FE4 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F065FE8: -/* 09AB58 7F065FE8 AE000020 */ sw $zero, 0x20($s0) -/* 09AB5C 7F065FEC AE00001C */ sw $zero, 0x1c($s0) -/* 09AB60 7F065FF0 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F065FF4: -/* 09AB64 7F065FF4 24050005 */ li $a1, 5 -/* 09AB68 7F065FF8 24040010 */ li $a0, 16 -/* 09AB6C 7F065FFC 54A2005E */ bnel $a1, $v0, .Ljp7F066178 -/* 09AB70 7F066000 24060006 */ li $a2, 6 -/* 09AB74 7F066004 0FC26C01 */ jal getPlayerCount -/* 09AB78 7F066008 AFA4018C */ sw $a0, 0x18c($sp) -/* 09AB7C 7F06600C 28410002 */ slti $at, $v0, 2 -/* 09AB80 7F066010 14200002 */ bnez $at, .Ljp7F06601C -/* 09AB84 7F066014 8FA4018C */ lw $a0, 0x18c($sp) -/* 09AB88 7F066018 2404000C */ li $a0, 12 -.Ljp7F06601C: -/* 09AB8C 7F06601C 8E18001C */ lw $t8, 0x1c($s0) -/* 09AB90 7F066020 5700000C */ bnezl $t8, .Ljp7F066054 -/* 09AB94 7F066024 8E030020 */ lw $v1, 0x20($s0) -/* 09AB98 7F066028 0FC26C01 */ jal getPlayerCount -/* 09AB9C 7F06602C AFA4018C */ sw $a0, 0x18c($sp) -/* 09ABA0 7F066030 24010001 */ li $at, 1 -/* 09ABA4 7F066034 14410004 */ bne $v0, $at, .Ljp7F066048 -/* 09ABA8 7F066038 8FA4018C */ lw $a0, 0x18c($sp) -/* 09ABAC 7F06603C 240E0011 */ li $t6, 17 -/* 09ABB0 7F066040 10000003 */ b .Ljp7F066050 -/* 09ABB4 7F066044 AE0E0040 */ sw $t6, 0x40($s0) -.Ljp7F066048: -/* 09ABB8 7F066048 240F000D */ li $t7, 13 -/* 09ABBC 7F06604C AE0F0040 */ sw $t7, 0x40($s0) -.Ljp7F066050: -/* 09ABC0 7F066050 8E030020 */ lw $v1, 0x20($s0) -.Ljp7F066054: -/* 09ABC4 7F066054 0064082A */ slt $at, $v1, $a0 -/* 09ABC8 7F066058 54200026 */ bnezl $at, .Ljp7F0660F4 -/* 09ABCC 7F06605C 44834000 */ mtc1 $v1, $f8 -/* 09ABD0 7F066060 0FC1A686 */ jal get_ammo_type_for_weapon -/* 09ABD4 7F066064 02202025 */ move $a0, $s1 -/* 09ABD8 7F066068 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09ABDC 7F06606C 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09ABE0 7F066070 0002C080 */ sll $t8, $v0, 2 -/* 09ABE4 7F066074 8E0F002C */ lw $t7, 0x2c($s0) -/* 09ABE8 7F066078 03381821 */ addu $v1, $t9, $t8 -/* 09ABEC 7F06607C 8C6E1130 */ lw $t6, 0x1130($v1) -/* 09ABF0 7F066080 01CFC821 */ addu $t9, $t6, $t7 -/* 09ABF4 7F066084 AC791130 */ sw $t9, 0x1130($v1) -/* 09ABF8 7F066088 0FC26C01 */ jal getPlayerCount -/* 09ABFC 7F06608C AE00002C */ sw $zero, 0x2c($s0) -/* 09AC00 7F066090 28410002 */ slti $at, $v0, 2 -/* 09AC04 7F066094 14200003 */ bnez $at, .Ljp7F0660A4 -/* 09AC08 7F066098 00000000 */ nop -/* 09AC0C 7F06609C 0FC26FC2 */ jal sub_GAME_7F09B368 -/* 09AC10 7F0660A0 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F0660A4: -/* 09AC14 7F0660A4 0FC18008 */ jal sub_GAME_7F05FB00 -/* 09AC18 7F0660A8 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AC1C 7F0660AC 24180006 */ li $t8, 6 -/* 09AC20 7F0660B0 AE180024 */ sw $t8, 0x24($s0) -/* 09AC24 7F0660B4 0FC23314 */ jal check_if_item_available -/* 09AC28 7F0660B8 24040011 */ li $a0, 17 -/* 09AC2C 7F0660BC 10400006 */ beqz $v0, .Ljp7F0660D8 -/* 09AC30 7F0660C0 24050005 */ li $a1, 5 -/* 09AC34 7F0660C4 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 09AC38 7F0660C8 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 09AC3C 7F0660CC 240E0011 */ li $t6, 17 -/* 09AC40 7F0660D0 10000005 */ b .Ljp7F0660E8 -/* 09AC44 7F0660D4 ADEE2A38 */ sw $t6, 0x2a38($t7) -.Ljp7F0660D8: -/* 09AC48 7F0660D8 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09AC4C 7F0660DC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09AC50 7F0660E0 24190001 */ li $t9, 1 -/* 09AC54 7F0660E4 AF192A38 */ sw $t9, 0x2a38($t8) -.Ljp7F0660E8: -/* 09AC58 7F0660E8 10000022 */ b .Ljp7F066174 -/* 09AC5C 7F0660EC 8E020024 */ lw $v0, 0x24($s0) -/* 09AC60 7F0660F0 44834000 */ mtc1 $v1, $f8 -.Ljp7F0660F4: -/* 09AC64 7F0660F4 3C018005 */ lui $at, %hi(D_80054184) # $at, 0x8005 -/* 09AC68 7F0660F8 C42A41B4 */ lwc1 $f10, %lo(D_80054184)($at) -/* 09AC6C 7F0660FC 468041A0 */ cvt.s.w $f6, $f8 -/* 09AC70 7F066100 44844000 */ mtc1 $a0, $f8 -/* 09AC74 7F066104 240E0001 */ li $t6, 1 -/* 09AC78 7F066108 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09AC7C 7F06610C 2605007C */ addiu $a1, $s0, 0x7c -/* 09AC80 7F066110 460A3102 */ mul.s $f4, $f6, $f10 -/* 09AC84 7F066114 468041A0 */ cvt.s.w $f6, $f8 -/* 09AC88 7F066118 46062303 */ div.s $f12, $f4, $f6 -/* 09AC8C 7F06611C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09AC90 7F066120 E7AC0188 */ swc1 $f12, 0x188($sp) -/* 09AC94 7F066124 44805000 */ mtc1 $zero, $f10 -/* 09AC98 7F066128 00000000 */ nop -/* 09AC9C 7F06612C E60A00AC */ swc1 $f10, 0xac($s0) -/* 09ACA0 7F066130 0FC160F0 */ jal cosf -/* 09ACA4 7F066134 C7AC0188 */ lwc1 $f12, 0x188($sp) -/* 09ACA8 7F066138 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09ACAC 7F06613C 44814000 */ mtc1 $at, $f8 -/* 09ACB0 7F066140 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09ACB4 7F066144 44813000 */ mtc1 $at, $f6 -/* 09ACB8 7F066148 46004101 */ sub.s $f4, $f8, $f0 -/* 09ACBC 7F06614C 46062282 */ mul.s $f10, $f4, $f6 -/* 09ACC0 7F066150 E60A00B0 */ swc1 $f10, 0xb0($s0) -/* 09ACC4 7F066154 0FC160F3 */ jal sinf -/* 09ACC8 7F066158 C7AC0188 */ lwc1 $f12, 0x188($sp) -/* 09ACCC 7F06615C 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09ACD0 7F066160 44814000 */ mtc1 $at, $f8 -/* 09ACD4 7F066164 8E020024 */ lw $v0, 0x24($s0) -/* 09ACD8 7F066168 24050005 */ li $a1, 5 -/* 09ACDC 7F06616C 46080102 */ mul.s $f4, $f0, $f8 -/* 09ACE0 7F066170 E60400B4 */ swc1 $f4, 0xb4($s0) -.Ljp7F066174: -/* 09ACE4 7F066174 24060006 */ li $a2, 6 -.Ljp7F066178: -/* 09ACE8 7F066178 10C20003 */ beq $a2, $v0, .Ljp7F066188 -/* 09ACEC 7F06617C 24010007 */ li $at, 7 -/* 09ACF0 7F066180 54410066 */ bnel $v0, $at, .Ljp7F06631C -/* 09ACF4 7F066184 24010008 */ li $at, 8 -.Ljp7F066188: -/* 09ACF8 7F066188 8E0F0044 */ lw $t7, 0x44($s0) -/* 09ACFC 7F06618C 11E00006 */ beqz $t7, .Ljp7F0661A8 -/* 09AD00 7F066190 00000000 */ nop -/* 09AD04 7F066194 8E190020 */ lw $t9, 0x20($s0) -/* 09AD08 7F066198 8E180040 */ lw $t8, 0x40($s0) -/* 09AD0C 7F06619C 0338082A */ slt $at, $t9, $t8 -/* 09AD10 7F0661A0 5420003E */ bnezl $at, .Ljp7F06629C -/* 09AD14 7F0661A4 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F0661A8: -/* 09AD18 7F0661A8 14C20034 */ bne $a2, $v0, .Ljp7F06627C -/* 09AD1C 7F0661AC 3C0E8008 */ lui $t6, %hi(pPlayer) # $t6, 0x8008 -/* 09AD20 7F0661B0 8DCEA120 */ lw $t6, %lo(pPlayer)($t6) -/* 09AD24 7F0661B4 8FAF003C */ lw $t7, 0x3c($sp) -/* 09AD28 7F0661B8 01CF1823 */ subu $v1, $t6, $t7 -/* 09AD2C 7F0661BC 8C620C3C */ lw $v0, 0xc3c($v1) -/* 09AD30 7F0661C0 24630C18 */ addiu $v1, $v1, 0xc18 -/* 09AD34 7F0661C4 50C20025 */ beql $a2, $v0, .Ljp7F06625C -/* 09AD38 7F0661C8 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AD3C 7F0661CC 50A20023 */ beql $a1, $v0, .Ljp7F06625C -/* 09AD40 7F0661D0 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AD44 7F0661D4 8C640028 */ lw $a0, 0x28($v1) -/* 09AD48 7F0661D8 2401000E */ li $at, 14 -/* 09AD4C 7F0661DC 50A4001F */ beql $a1, $a0, .Ljp7F06625C -/* 09AD50 7F0661E0 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AD54 7F0661E4 1041001C */ beq $v0, $at, .Ljp7F066258 -/* 09AD58 7F0661E8 2401000F */ li $at, 15 -/* 09AD5C 7F0661EC 1041001A */ beq $v0, $at, .Ljp7F066258 -/* 09AD60 7F0661F0 24010010 */ li $at, 16 -/* 09AD64 7F0661F4 10410018 */ beq $v0, $at, .Ljp7F066258 -/* 09AD68 7F0661F8 2401000E */ li $at, 14 -/* 09AD6C 7F0661FC 10810016 */ beq $a0, $at, .Ljp7F066258 -/* 09AD70 7F066200 8FB901E0 */ lw $t9, 0x1e0($sp) -/* 09AD74 7F066204 1720000C */ bnez $t9, .Ljp7F066238 -/* 09AD78 7F066208 00000000 */ nop -/* 09AD7C 7F06620C 0FC177BC */ jal get_item_in_hand -/* 09AD80 7F066210 24040001 */ li $a0, 1 -/* 09AD84 7F066214 8E04003C */ lw $a0, 0x3c($s0) -/* 09AD88 7F066218 0FC2332D */ jal check_if_item_for_hand_available -/* 09AD8C 7F06621C 00402825 */ move $a1, $v0 -/* 09AD90 7F066220 1440000D */ bnez $v0, .Ljp7F066258 -/* 09AD94 7F066224 24040001 */ li $a0, 1 -/* 09AD98 7F066228 0FC1778D */ jal draw_item_in_hand_has_more_ammo -/* 09AD9C 7F06622C 00002825 */ move $a1, $zero -/* 09ADA0 7F066230 1000000A */ b .Ljp7F06625C -/* 09ADA4 7F066234 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F066238: -/* 09ADA8 7F066238 0FC177BC */ jal get_item_in_hand -/* 09ADAC 7F06623C 00002025 */ move $a0, $zero -/* 09ADB0 7F066240 00402025 */ move $a0, $v0 -/* 09ADB4 7F066244 0FC2332D */ jal check_if_item_for_hand_available -/* 09ADB8 7F066248 8E05003C */ lw $a1, 0x3c($s0) -/* 09ADBC 7F06624C 54400003 */ bnezl $v0, .Ljp7F06625C -/* 09ADC0 7F066250 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09ADC4 7F066254 AE00003C */ sw $zero, 0x3c($s0) -.Ljp7F066258: -/* 09ADC8 7F066258 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F06625C: -/* 09ADCC 7F06625C 0FC1781D */ jal remove_hands_item -/* 09ADD0 7F066260 8E05003C */ lw $a1, 0x3c($s0) -/* 09ADD4 7F066264 0FC177D9 */ jal get_item_in_hand_or_watch_menu -/* 09ADD8 7F066268 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09ADDC 7F06626C 24180007 */ li $t8, 7 -/* 09ADE0 7F066270 00408825 */ move $s1, $v0 -/* 09ADE4 7F066274 10000008 */ b .Ljp7F066298 -/* 09ADE8 7F066278 AE180024 */ sw $t8, 0x24($s0) -.Ljp7F06627C: -/* 09ADEC 7F06627C 0FC174F7 */ jal sub_GAME_7F05CEBC -/* 09ADF0 7F066280 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09ADF4 7F066284 10400004 */ beqz $v0, .Ljp7F066298 -/* 09ADF8 7F066288 240E0008 */ li $t6, 8 -/* 09ADFC 7F06628C AE0E0024 */ sw $t6, 0x24($s0) -/* 09AE00 7F066290 AE000020 */ sw $zero, 0x20($s0) -/* 09AE04 7F066294 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F066298: -/* 09AE08 7F066298 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F06629C: -/* 09AE0C 7F06629C 24060006 */ li $a2, 6 -/* 09AE10 7F0662A0 24010007 */ li $at, 7 -/* 09AE14 7F0662A4 10C20003 */ beq $a2, $v0, .Ljp7F0662B4 -/* 09AE18 7F0662A8 240F0001 */ li $t7, 1 -/* 09AE1C 7F0662AC 5441001B */ bnel $v0, $at, .Ljp7F06631C -/* 09AE20 7F0662B0 24010008 */ li $at, 8 -.Ljp7F0662B4: -/* 09AE24 7F0662B4 AE0F00BC */ sw $t7, 0xbc($s0) -/* 09AE28 7F0662B8 3C018005 */ lui $at, %hi(D_80054188) # $at, 0x8005 -/* 09AE2C 7F0662BC C42C41B8 */ lwc1 $f12, %lo(D_80054188)($at) -/* 09AE30 7F0662C0 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09AE34 7F0662C4 2605007C */ addiu $a1, $s0, 0x7c -/* 09AE38 7F0662C8 44803000 */ mtc1 $zero, $f6 -/* 09AE3C 7F0662CC 3C018005 */ lui $at, %hi(D_8005418C) # $at, 0x8005 -/* 09AE40 7F0662D0 E60600AC */ swc1 $f6, 0xac($s0) -/* 09AE44 7F0662D4 0FC160F0 */ jal cosf -/* 09AE48 7F0662D8 C42C41BC */ lwc1 $f12, %lo(D_8005418C)($at) -/* 09AE4C 7F0662DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09AE50 7F0662E0 44815000 */ mtc1 $at, $f10 -/* 09AE54 7F0662E4 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09AE58 7F0662E8 44812000 */ mtc1 $at, $f4 -/* 09AE5C 7F0662EC 46005201 */ sub.s $f8, $f10, $f0 -/* 09AE60 7F0662F0 3C018005 */ lui $at, %hi(D_80054190) # $at, 0x8005 -/* 09AE64 7F0662F4 46044182 */ mul.s $f6, $f8, $f4 -/* 09AE68 7F0662F8 E60600B0 */ swc1 $f6, 0xb0($s0) -/* 09AE6C 7F0662FC 0FC160F3 */ jal sinf -/* 09AE70 7F066300 C42C41C0 */ lwc1 $f12, %lo(D_80054190)($at) -/* 09AE74 7F066304 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09AE78 7F066308 44815000 */ mtc1 $at, $f10 -/* 09AE7C 7F06630C 8E020024 */ lw $v0, 0x24($s0) -/* 09AE80 7F066310 460A0202 */ mul.s $f8, $f0, $f10 -/* 09AE84 7F066314 E60800B4 */ swc1 $f8, 0xb4($s0) -/* 09AE88 7F066318 24010008 */ li $at, 8 -.Ljp7F06631C: -/* 09AE8C 7F06631C 1441008D */ bne $v0, $at, .Ljp7F066554 -/* 09AE90 7F066320 24190017 */ li $t9, 23 -/* 09AE94 7F066324 0FC26C01 */ jal getPlayerCount -/* 09AE98 7F066328 AFB9017C */ sw $t9, 0x17c($sp) -/* 09AE9C 7F06632C 28410002 */ slti $at, $v0, 2 -/* 09AEA0 7F066330 14200002 */ bnez $at, .Ljp7F06633C -/* 09AEA4 7F066334 2418000C */ li $t8, 12 -/* 09AEA8 7F066338 AFB8017C */ sw $t8, 0x17c($sp) -.Ljp7F06633C: -/* 09AEAC 7F06633C 8E0E001C */ lw $t6, 0x1c($s0) -/* 09AEB0 7F066340 55C0004D */ bnezl $t6, .Ljp7F066478 -/* 09AEB4 7F066344 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AEB8 7F066348 0FC26C01 */ jal getPlayerCount -/* 09AEBC 7F06634C 00000000 */ nop -/* 09AEC0 7F066350 28410002 */ slti $at, $v0, 2 -/* 09AEC4 7F066354 14200003 */ bnez $at, .Ljp7F066364 -/* 09AEC8 7F066358 00000000 */ nop -/* 09AECC 7F06635C 0FC26FCE */ jal sub_GAME_7F09B398 -/* 09AED0 7F066360 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F066364: -/* 09AED4 7F066364 0FC193CF */ jal sub_GAME_7F0649D8 -/* 09AED8 7F066368 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AEDC 7F06636C 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 09AEE0 7F066370 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 09AEE4 7F066374 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 -/* 09AEE8 7F066378 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09AEEC 7F06637C ADE00FC8 */ sw $zero, 0xfc8($t7) -/* 09AEF0 7F066380 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) -/* 09AEF4 7F066384 5B20003C */ blezl $t9, .Ljp7F066478 -/* 09AEF8 7F066388 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AEFC 7F06638C 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09AF00 7F066390 24010001 */ li $at, 1 -/* 09AF04 7F066394 8F0E0000 */ lw $t6, ($t8) -/* 09AF08 7F066398 51C10037 */ beql $t6, $at, .Ljp7F066478 -/* 09AF0C 7F06639C 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AF10 7F0663A0 0FC174F7 */ jal sub_GAME_7F05CEBC -/* 09AF14 7F0663A4 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09AF18 7F0663A8 10400032 */ beqz $v0, weapon_switchstyle_NONE -/* 09AF1C 7F0663AC 3C0F8003 */ lui $t7, %hi(disable_player_pickups_flag) # $t7, 0x8003 -/* 09AF20 7F0663B0 8DEF64F4 */ lw $t7, %lo(disable_player_pickups_flag)($t7) -/* 09AF24 7F0663B4 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09AF28 7F0663B8 55E0002F */ bnezl $t7, .Ljp7F066478 -/* 09AF2C 7F0663BC 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AF30 7F0663C0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09AF34 7F0663C4 2A21003E */ slti $at, $s1, 0x3e -/* 09AF38 7F0663C8 8F3800D8 */ lw $t8, 0xd8($t9) -/* 09AF3C 7F0663CC 5700002A */ bnezl $t8, .Ljp7F066478 -/* 09AF40 7F0663D0 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AF44 7F0663D4 14200005 */ bnez $at, .Ljp7F0663EC -/* 09AF48 7F0663D8 24010058 */ li $at, 88 -/* 09AF4C 7F0663DC 52210026 */ beql $s1, $at, .Ljp7F066478 -/* 09AF50 7F0663E0 8E0F0020 */ lw $t7, 0x20($s0) -/* 09AF54 7F0663E4 1000001E */ b weapon_playsfx_gun -/* 09AF58 7F0663E8 00000000 */ nop -.Ljp7F0663EC: -/* 09AF5C 7F0663EC 2E21003E */ sltiu $at, $s1, 0x3e -/* 09AF60 7F0663F0 1020001B */ beqz $at, weapon_playsfx_gun -/* 09AF64 7F0663F4 00117080 */ sll $t6, $s1, 2 -/* 09AF68 7F0663F8 3C018005 */ lui $at, %hi(jpt_80054194) -/* 09AF6C 7F0663FC 002E0821 */ addu $at, $at, $t6 -/* 09AF70 7F066400 8C2E41C4 */ lw $t6, %lo(jpt_80054194)($at) -/* 09AF74 7F066404 01C00008 */ jr $t6 -/* 09AF78 7F066408 00000000 */ nop -weapon_playsfx_F2: -/* 09AF7C 7F06640C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09AF80 7F066410 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09AF84 7F066414 240500F2 */ li $a1, 242 -/* 09AF88 7F066418 0C002386 */ jal play_sfx_a1 -/* 09AF8C 7F06641C 00003025 */ move $a2, $zero -/* 09AF90 7F066420 10000015 */ b .Ljp7F066478 -/* 09AF94 7F066424 8E0F0020 */ lw $t7, 0x20($s0) -weapon_playsfx_knife: -/* 09AF98 7F066428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09AF9C 7F06642C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09AFA0 7F066430 240500E9 */ li $a1, 233 -/* 09AFA4 7F066434 0C002386 */ jal play_sfx_a1 -/* 09AFA8 7F066438 00003025 */ move $a2, $zero -/* 09AFAC 7F06643C 1000000E */ b .Ljp7F066478 -/* 09AFB0 7F066440 8E0F0020 */ lw $t7, 0x20($s0) -weapon_playsfx_mine: -/* 09AFB4 7F066444 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09AFB8 7F066448 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09AFBC 7F06644C 240500EB */ li $a1, 235 -/* 09AFC0 7F066450 0C002386 */ jal play_sfx_a1 -/* 09AFC4 7F066454 00003025 */ move $a2, $zero -/* 09AFC8 7F066458 10000007 */ b .Ljp7F066478 -/* 09AFCC 7F06645C 8E0F0020 */ lw $t7, 0x20($s0) -weapon_playsfx_gun: -/* 09AFD0 7F066460 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09AFD4 7F066464 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09AFD8 7F066468 240500E8 */ li $a1, 232 -/* 09AFDC 7F06646C 0C002386 */ jal play_sfx_a1 -/* 09AFE0 7F066470 00003025 */ move $a2, $zero -weapon_switchstyle_NONE: -/* 09AFE4 7F066474 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F066478: -/* 09AFE8 7F066478 8FB9017C */ lw $t9, 0x17c($sp) -/* 09AFEC 7F06647C 01F9082A */ slt $at, $t7, $t9 -/* 09AFF0 7F066480 5020000E */ beql $at, $zero, .Ljp7F0664BC -/* 09AFF4 7F066484 AE000024 */ sw $zero, 0x24($s0) -/* 09AFF8 7F066488 0FC1755A */ jal get_ptr_weapon_model_header_line -/* 09AFFC 7F06648C 02202025 */ move $a0, $s1 -/* 09B000 7F066490 10400009 */ beqz $v0, .Ljp7F0664B8 -/* 09B004 7F066494 02202025 */ move $a0, $s1 -/* 09B008 7F066498 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B00C 7F06649C 24050800 */ li $a1, 2048 -/* 09B010 7F0664A0 10400005 */ beqz $v0, .Ljp7F0664B8 -/* 09B014 7F0664A4 02202025 */ move $a0, $s1 -/* 09B018 7F0664A8 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B01C 7F0664AC 24052000 */ li $a1, 8192 -/* 09B020 7F0664B0 10400006 */ beqz $v0, .Ljp7F0664CC -/* 09B024 7F0664B4 8FB8017C */ lw $t8, 0x17c($sp) -.Ljp7F0664B8: -/* 09B028 7F0664B8 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F0664BC: -/* 09B02C 7F0664BC AE000020 */ sw $zero, 0x20($s0) -/* 09B030 7F0664C0 AE00001C */ sw $zero, 0x1c($s0) -/* 09B034 7F0664C4 10000023 */ b .Ljp7F066554 -/* 09B038 7F0664C8 00001025 */ move $v0, $zero -.Ljp7F0664CC: -/* 09B03C 7F0664CC 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B040 7F0664D0 3C018005 */ lui $at, %hi(D_8005428C) # $at, 0x8005 -/* 09B044 7F0664D4 C42A42BC */ lwc1 $f10, %lo(D_8005428C)($at) -/* 09B048 7F0664D8 030E7823 */ subu $t7, $t8, $t6 -/* 09B04C 7F0664DC 448F2000 */ mtc1 $t7, $f4 -/* 09B050 7F0664E0 24190001 */ li $t9, 1 -/* 09B054 7F0664E4 AE1900BC */ sw $t9, 0xbc($s0) -/* 09B058 7F0664E8 468021A0 */ cvt.s.w $f6, $f4 -/* 09B05C 7F0664EC 44982000 */ mtc1 $t8, $f4 -/* 09B060 7F0664F0 2605007C */ addiu $a1, $s0, 0x7c -/* 09B064 7F0664F4 460A3202 */ mul.s $f8, $f6, $f10 -/* 09B068 7F0664F8 468021A0 */ cvt.s.w $f6, $f4 -/* 09B06C 7F0664FC 46064303 */ div.s $f12, $f8, $f6 -/* 09B070 7F066500 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B074 7F066504 E7AC0178 */ swc1 $f12, 0x178($sp) -/* 09B078 7F066508 44805000 */ mtc1 $zero, $f10 -/* 09B07C 7F06650C 00000000 */ nop -/* 09B080 7F066510 E60A00AC */ swc1 $f10, 0xac($s0) -/* 09B084 7F066514 0FC160F0 */ jal cosf -/* 09B088 7F066518 C7AC0178 */ lwc1 $f12, 0x178($sp) -/* 09B08C 7F06651C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B090 7F066520 44812000 */ mtc1 $at, $f4 -/* 09B094 7F066524 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09B098 7F066528 44813000 */ mtc1 $at, $f6 -/* 09B09C 7F06652C 46002201 */ sub.s $f8, $f4, $f0 -/* 09B0A0 7F066530 46064282 */ mul.s $f10, $f8, $f6 -/* 09B0A4 7F066534 E60A00B0 */ swc1 $f10, 0xb0($s0) -/* 09B0A8 7F066538 0FC160F3 */ jal sinf -/* 09B0AC 7F06653C C7AC0178 */ lwc1 $f12, 0x178($sp) -/* 09B0B0 7F066540 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B0B4 7F066544 44812000 */ mtc1 $at, $f4 -/* 09B0B8 7F066548 8E020024 */ lw $v0, 0x24($s0) -/* 09B0BC 7F06654C 46040202 */ mul.s $f8, $f0, $f4 -/* 09B0C0 7F066550 E60800B4 */ swc1 $f8, 0xb4($s0) -.Ljp7F066554: -/* 09B0C4 7F066554 24010009 */ li $at, 9 -/* 09B0C8 7F066558 54410018 */ bnel $v0, $at, .Ljp7F0665BC -/* 09B0CC 7F06655C 2401000A */ li $at, 10 -/* 09B0D0 7F066560 0FC17375 */ jal get_ptr_item_statistics -/* 09B0D4 7F066564 02202025 */ move $a0, $s1 -/* 09B0D8 7F066568 8E0E002C */ lw $t6, 0x2c($s0) -/* 09B0DC 7F06656C 844F0020 */ lh $t7, 0x20($v0) -/* 09B0E0 7F066570 02202025 */ move $a0, $s1 -/* 09B0E4 7F066574 01CF082A */ slt $at, $t6, $t7 -/* 09B0E8 7F066578 14200005 */ bnez $at, .Ljp7F066590 -/* 09B0EC 7F06657C 00000000 */ nop -/* 09B0F0 7F066580 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B0F4 7F066584 3C050020 */ lui $a1, 0x20 -/* 09B0F8 7F066588 50400008 */ beql $v0, $zero, .Ljp7F0665AC -/* 09B0FC 7F06658C AE000024 */ sw $zero, 0x24($s0) -.Ljp7F066590: -/* 09B100 7F066590 0FC1A658 */ jal get_ammo_in_hands_weapon -/* 09B104 7F066594 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B108 7F066598 18400003 */ blez $v0, .Ljp7F0665A8 -/* 09B10C 7F06659C 2402000A */ li $v0, 10 -/* 09B110 7F0665A0 10000005 */ b .Ljp7F0665B8 -/* 09B114 7F0665A4 AE020024 */ sw $v0, 0x24($s0) -.Ljp7F0665A8: -/* 09B118 7F0665A8 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F0665AC: -/* 09B11C 7F0665AC AE000020 */ sw $zero, 0x20($s0) -/* 09B120 7F0665B0 AE00001C */ sw $zero, 0x1c($s0) -/* 09B124 7F0665B4 00001025 */ move $v0, $zero -.Ljp7F0665B8: -/* 09B128 7F0665B8 2401000A */ li $at, 10 -.Ljp7F0665BC: -/* 09B12C 7F0665BC 54410048 */ bnel $v0, $at, .Ljp7F0666E0 -/* 09B130 7F0665C0 2401000B */ li $at, 11 -/* 09B134 7F0665C4 8E030020 */ lw $v1, 0x20($s0) -/* 09B138 7F0665C8 2402000B */ li $v0, 11 -/* 09B13C 7F0665CC 240F0011 */ li $t7, 17 -/* 09B140 7F0665D0 28610010 */ slti $at, $v1, 0x10 -/* 09B144 7F0665D4 50200005 */ beql $at, $zero, .Ljp7F0665EC -/* 09B148 7F0665D8 AE020024 */ sw $v0, 0x24($s0) -/* 09B14C 7F0665DC 8219000F */ lb $t9, 0xf($s0) -/* 09B150 7F0665E0 57200007 */ bnezl $t9, .Ljp7F066600 -/* 09B154 7F0665E4 44833000 */ mtc1 $v1, $f6 -/* 09B158 7F0665E8 AE020024 */ sw $v0, 0x24($s0) -.Ljp7F0665EC: -/* 09B15C 7F0665EC AE0F0040 */ sw $t7, 0x40($s0) -/* 09B160 7F0665F0 AE000020 */ sw $zero, 0x20($s0) -/* 09B164 7F0665F4 10000039 */ b .Ljp7F0666DC -/* 09B168 7F0665F8 AE00001C */ sw $zero, 0x1c($s0) -/* 09B16C 7F0665FC 44833000 */ mtc1 $v1, $f6 -.Ljp7F066600: -/* 09B170 7F066600 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 09B174 7F066604 44811000 */ mtc1 $at, $f2 -/* 09B178 7F066608 468032A0 */ cvt.s.w $f10, $f6 -/* 09B17C 7F06660C 3C018005 */ lui $at, %hi(D_80054290) # $at, 0x8005 -/* 09B180 7F066610 C42442C0 */ lwc1 $f4, %lo(D_80054290)($at) -/* 09B184 7F066614 24180001 */ li $t8, 1 -/* 09B188 7F066618 2605007C */ addiu $a1, $s0, 0x7c -/* 09B18C 7F06661C 46045202 */ mul.s $f8, $f10, $f4 -/* 09B190 7F066620 46024183 */ div.s $f6, $f8, $f2 -/* 09B194 7F066624 E7A6012C */ swc1 $f6, 0x12c($sp) -/* 09B198 7F066628 AE1800BC */ sw $t8, 0xbc($s0) -/* 09B19C 7F06662C 8FB901E0 */ lw $t9, 0x1e0($sp) -/* 09B1A0 7F066630 57200009 */ bnezl $t9, .Ljp7F066658 -/* 09B1A4 7F066634 44802000 */ mtc1 $zero, $f4 -/* 09B1A8 7F066638 44805000 */ mtc1 $zero, $f10 -/* 09B1AC 7F06663C AFA50034 */ sw $a1, 0x34($sp) -/* 09B1B0 7F066640 46025303 */ div.s $f12, $f10, $f2 -/* 09B1B4 7F066644 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B1B8 7F066648 E7AC0040 */ swc1 $f12, 0x40($sp) -/* 09B1BC 7F06664C 10000008 */ b .Ljp7F066670 -/* 09B1C0 7F066650 C7AC012C */ lwc1 $f12, 0x12c($sp) -/* 09B1C4 7F066654 44802000 */ mtc1 $zero, $f4 -.Ljp7F066658: -/* 09B1C8 7F066658 AFA50034 */ sw $a1, 0x34($sp) -/* 09B1CC 7F06665C 46022003 */ div.s $f0, $f4, $f2 -/* 09B1D0 7F066660 46000307 */ neg.s $f12, $f0 -/* 09B1D4 7F066664 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B1D8 7F066668 E7A00040 */ swc1 $f0, 0x40($sp) -/* 09B1DC 7F06666C C7AC012C */ lwc1 $f12, 0x12c($sp) -.Ljp7F066670: -/* 09B1E0 7F066670 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B1E4 7F066674 27A50130 */ addiu $a1, $sp, 0x130 -/* 09B1E8 7F066678 27A40130 */ addiu $a0, $sp, 0x130 -/* 09B1EC 7F06667C 0FC16162 */ jal matrix_4x4_multiply_in_place -/* 09B1F0 7F066680 8FA50034 */ lw $a1, 0x34($sp) -/* 09B1F4 7F066684 0FC160F3 */ jal sinf -/* 09B1F8 7F066688 C7AC0040 */ lwc1 $f12, 0x40($sp) -/* 09B1FC 7F06668C 44804000 */ mtc1 $zero, $f8 -/* 09B200 7F066690 02202025 */ move $a0, $s1 -/* 09B204 7F066694 0FC193C4 */ jal sub_GAME_7F0649AC -/* 09B208 7F066698 E60800AC */ swc1 $f8, 0xac($s0) -/* 09B20C 7F06669C E7A00044 */ swc1 $f0, 0x44($sp) -/* 09B210 7F0666A0 0FC160F0 */ jal cosf -/* 09B214 7F0666A4 C7AC012C */ lwc1 $f12, 0x12c($sp) -/* 09B218 7F0666A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B21C 7F0666AC 44813000 */ mtc1 $at, $f6 -/* 09B220 7F0666B0 C7A40044 */ lwc1 $f4, 0x44($sp) -/* 09B224 7F0666B4 46003281 */ sub.s $f10, $f6, $f0 -/* 09B228 7F0666B8 46045202 */ mul.s $f8, $f10, $f4 -/* 09B22C 7F0666BC E60800B0 */ swc1 $f8, 0xb0($s0) -/* 09B230 7F0666C0 0FC160F3 */ jal sinf -/* 09B234 7F0666C4 C7AC012C */ lwc1 $f12, 0x12c($sp) -/* 09B238 7F0666C8 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B23C 7F0666CC 44813000 */ mtc1 $at, $f6 -/* 09B240 7F0666D0 8E020024 */ lw $v0, 0x24($s0) -/* 09B244 7F0666D4 46060282 */ mul.s $f10, $f0, $f6 -/* 09B248 7F0666D8 E60A00B4 */ swc1 $f10, 0xb4($s0) -.Ljp7F0666DC: -/* 09B24C 7F0666DC 2401000B */ li $at, 11 -.Ljp7F0666E0: -/* 09B250 7F0666E0 5441006B */ bnel $v0, $at, .Ljp7F066890 -/* 09B254 7F0666E4 2401000C */ li $at, 12 -/* 09B258 7F0666E8 8E0E001C */ lw $t6, 0x1c($s0) -/* 09B25C 7F0666EC 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 -/* 09B260 7F0666F0 55C0002B */ bnezl $t6, .Ljp7F0667A0 -/* 09B264 7F0666F4 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B268 7F0666F8 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) -/* 09B26C 7F0666FC 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09B270 7F066700 59E00027 */ blezl $t7, .Ljp7F0667A0 -/* 09B274 7F066704 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B278 7F066708 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09B27C 7F06670C 24010001 */ li $at, 1 -/* 09B280 7F066710 8F190000 */ lw $t9, ($t8) -/* 09B284 7F066714 53210022 */ beql $t9, $at, .Ljp7F0667A0 -/* 09B288 7F066718 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B28C 7F06671C 0FC174F7 */ jal sub_GAME_7F05CEBC -/* 09B290 7F066720 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B294 7F066724 1040001D */ beqz $v0, weapon_reload_none_sfx -/* 09B298 7F066728 3C0E8003 */ lui $t6, %hi(disable_player_pickups_flag) # $t6, 0x8003 -/* 09B29C 7F06672C 8DCE64F4 */ lw $t6, %lo(disable_player_pickups_flag)($t6) -/* 09B2A0 7F066730 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 09B2A4 7F066734 55C0001A */ bnezl $t6, .Ljp7F0667A0 -/* 09B2A8 7F066738 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B2AC 7F06673C 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 09B2B0 7F066740 2A21003E */ slti $at, $s1, 0x3e -/* 09B2B4 7F066744 8DF800D8 */ lw $t8, 0xd8($t7) -/* 09B2B8 7F066748 57000015 */ bnezl $t8, .Ljp7F0667A0 -/* 09B2BC 7F06674C 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B2C0 7F066750 14200005 */ bnez $at, .Ljp7F066768 -/* 09B2C4 7F066754 24010058 */ li $at, 88 -/* 09B2C8 7F066758 52210011 */ beql $s1, $at, .Ljp7F0667A0 -/* 09B2CC 7F06675C 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B2D0 7F066760 10000009 */ b weapon_reload_gun_sfx -/* 09B2D4 7F066764 00000000 */ nop -.Ljp7F066768: -/* 09B2D8 7F066768 2E21003E */ sltiu $at, $s1, 0x3e -/* 09B2DC 7F06676C 10200006 */ beqz $at, weapon_reload_gun_sfx -/* 09B2E0 7F066770 0011C880 */ sll $t9, $s1, 2 -/* 09B2E4 7F066774 3C018005 */ lui $at, %hi(jpt_80054294) -/* 09B2E8 7F066778 00390821 */ addu $at, $at, $t9 -/* 09B2EC 7F06677C 8C3942C4 */ lw $t9, %lo(jpt_80054294)($at) -/* 09B2F0 7F066780 03200008 */ jr $t9 -/* 09B2F4 7F066784 00000000 */ nop -weapon_reload_gun_sfx: -/* 09B2F8 7F066788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09B2FC 7F06678C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09B300 7F066790 24050032 */ li $a1, 50 -/* 09B304 7F066794 0C002386 */ jal play_sfx_a1 -/* 09B308 7F066798 00003025 */ move $a2, $zero -weapon_reload_none_sfx: -/* 09B30C 7F06679C 8E0E0020 */ lw $t6, 0x20($s0) -.Ljp7F0667A0: -/* 09B310 7F0667A0 8E0F0040 */ lw $t7, 0x40($s0) -/* 09B314 7F0667A4 01CF082A */ slt $at, $t6, $t7 -/* 09B318 7F0667A8 1420000A */ bnez $at, .Ljp7F0667D4 -/* 09B31C 7F0667AC 240E0001 */ li $t6, 1 -/* 09B320 7F0667B0 8E18001C */ lw $t8, 0x1c($s0) -/* 09B324 7F0667B4 2402000C */ li $v0, 12 -/* 09B328 7F0667B8 2B010002 */ slti $at, $t8, 2 -/* 09B32C 7F0667BC 54200006 */ bnezl $at, .Ljp7F0667D8 -/* 09B330 7F0667C0 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09B334 7F0667C4 AE020024 */ sw $v0, 0x24($s0) -/* 09B338 7F0667C8 AE000020 */ sw $zero, 0x20($s0) -/* 09B33C 7F0667CC 1000002F */ b .Ljp7F06688C -/* 09B340 7F0667D0 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F0667D4: -/* 09B344 7F0667D4 AE0E00BC */ sw $t6, 0xbc($s0) -.Ljp7F0667D8: -/* 09B348 7F0667D8 8FAF01E0 */ lw $t7, 0x1e0($sp) -/* 09B34C 7F0667DC 2605007C */ addiu $a1, $s0, 0x7c -/* 09B350 7F0667E0 55E00007 */ bnezl $t7, .Ljp7F066800 -/* 09B354 7F0667E4 44806000 */ mtc1 $zero, $f12 -/* 09B358 7F0667E8 44806000 */ mtc1 $zero, $f12 -/* 09B35C 7F0667EC 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B360 7F0667F0 AFA50034 */ sw $a1, 0x34($sp) -/* 09B364 7F0667F4 10000005 */ b .Ljp7F06680C -/* 09B368 7F0667F8 00000000 */ nop -/* 09B36C 7F0667FC 44806000 */ mtc1 $zero, $f12 -.Ljp7F066800: -/* 09B370 7F066800 AFA50034 */ sw $a1, 0x34($sp) -/* 09B374 7F066804 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B378 7F066808 46006307 */ neg.s $f12, $f12 -.Ljp7F06680C: -/* 09B37C 7F06680C 3C018005 */ lui $at, %hi(D_8005438C) # $at, 0x8005 -/* 09B380 7F066810 C42C43BC */ lwc1 $f12, %lo(D_8005438C)($at) -/* 09B384 7F066814 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B388 7F066818 27A500E8 */ addiu $a1, $sp, 0xe8 -/* 09B38C 7F06681C 27A400E8 */ addiu $a0, $sp, 0xe8 -/* 09B390 7F066820 0FC16162 */ jal matrix_4x4_multiply_in_place -/* 09B394 7F066824 8FA50034 */ lw $a1, 0x34($sp) -/* 09B398 7F066828 44806000 */ mtc1 $zero, $f12 -/* 09B39C 7F06682C 0FC160F3 */ jal sinf -/* 09B3A0 7F066830 00000000 */ nop -/* 09B3A4 7F066834 44802000 */ mtc1 $zero, $f4 -/* 09B3A8 7F066838 02202025 */ move $a0, $s1 -/* 09B3AC 7F06683C 0FC193C4 */ jal sub_GAME_7F0649AC -/* 09B3B0 7F066840 E60400AC */ swc1 $f4, 0xac($s0) -/* 09B3B4 7F066844 3C018005 */ lui $at, %hi(D_80054390) # $at, 0x8005 -/* 09B3B8 7F066848 C42C43C0 */ lwc1 $f12, %lo(D_80054390)($at) -/* 09B3BC 7F06684C 0FC160F0 */ jal cosf -/* 09B3C0 7F066850 E7A00044 */ swc1 $f0, 0x44($sp) -/* 09B3C4 7F066854 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B3C8 7F066858 44814000 */ mtc1 $at, $f8 -/* 09B3CC 7F06685C C7AA0044 */ lwc1 $f10, 0x44($sp) -/* 09B3D0 7F066860 3C018005 */ lui $at, %hi(D_80054394) # $at, 0x8005 -/* 09B3D4 7F066864 46004181 */ sub.s $f6, $f8, $f0 -/* 09B3D8 7F066868 460A3102 */ mul.s $f4, $f6, $f10 -/* 09B3DC 7F06686C E60400B0 */ swc1 $f4, 0xb0($s0) -/* 09B3E0 7F066870 0FC160F3 */ jal sinf -/* 09B3E4 7F066874 C42C43C4 */ lwc1 $f12, %lo(D_80054394)($at) -/* 09B3E8 7F066878 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B3EC 7F06687C 44814000 */ mtc1 $at, $f8 -/* 09B3F0 7F066880 8E020024 */ lw $v0, 0x24($s0) -/* 09B3F4 7F066884 46080182 */ mul.s $f6, $f0, $f8 -/* 09B3F8 7F066888 E60600B4 */ swc1 $f6, 0xb4($s0) -.Ljp7F06688C: -/* 09B3FC 7F06688C 2401000C */ li $at, 12 -.Ljp7F066890: -/* 09B400 7F066890 5441005A */ bnel $v0, $at, .Ljp7F0669FC -/* 09B404 7F066894 2401000E */ li $at, 14 -/* 09B408 7F066898 8E18001C */ lw $t8, 0x1c($s0) -/* 09B40C 7F06689C 57000007 */ bnezl $t8, .Ljp7F0668BC -/* 09B410 7F0668A0 8E0E0020 */ lw $t6, 0x20($s0) -/* 09B414 7F0668A4 0FC193CF */ jal sub_GAME_7F0649D8 -/* 09B418 7F0668A8 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B41C 7F0668AC 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09B420 7F0668B0 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09B424 7F0668B4 AF200FC8 */ sw $zero, 0xfc8($t9) -/* 09B428 7F0668B8 8E0E0020 */ lw $t6, 0x20($s0) -.Ljp7F0668BC: -/* 09B42C 7F0668BC 29C10017 */ slti $at, $t6, 0x17 -/* 09B430 7F0668C0 5020000E */ beql $at, $zero, .Ljp7F0668FC -/* 09B434 7F0668C4 AE000024 */ sw $zero, 0x24($s0) -/* 09B438 7F0668C8 0FC1755A */ jal get_ptr_weapon_model_header_line -/* 09B43C 7F0668CC 02202025 */ move $a0, $s1 -/* 09B440 7F0668D0 10400009 */ beqz $v0, .Ljp7F0668F8 -/* 09B444 7F0668D4 02202025 */ move $a0, $s1 -/* 09B448 7F0668D8 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B44C 7F0668DC 24050800 */ li $a1, 2048 -/* 09B450 7F0668E0 10400005 */ beqz $v0, .Ljp7F0668F8 -/* 09B454 7F0668E4 02202025 */ move $a0, $s1 -/* 09B458 7F0668E8 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B45C 7F0668EC 24052000 */ li $a1, 8192 -/* 09B460 7F0668F0 50400007 */ beql $v0, $zero, .Ljp7F066910 -/* 09B464 7F0668F4 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F0668F8: -/* 09B468 7F0668F8 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F0668FC: -/* 09B46C 7F0668FC AE000020 */ sw $zero, 0x20($s0) -/* 09B470 7F066900 AE00001C */ sw $zero, 0x1c($s0) -/* 09B474 7F066904 1000003C */ b .Ljp7F0669F8 -/* 09B478 7F066908 00001025 */ move $v0, $zero -/* 09B47C 7F06690C 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F066910: -/* 09B480 7F066910 24180017 */ li $t8, 23 -/* 09B484 7F066914 3C0141B8 */ li $at, 0x41B80000 # 23.000000 -/* 09B488 7F066918 030FC823 */ subu $t9, $t8, $t7 -/* 09B48C 7F06691C 44995000 */ mtc1 $t9, $f10 -/* 09B490 7F066920 44811000 */ mtc1 $at, $f2 -/* 09B494 7F066924 3C018005 */ lui $at, %hi(D_80054398) # $at, 0x8005 -/* 09B498 7F066928 46805120 */ cvt.s.w $f4, $f10 -/* 09B49C 7F06692C C42843C8 */ lwc1 $f8, %lo(D_80054398)($at) -/* 09B4A0 7F066930 240E0001 */ li $t6, 1 -/* 09B4A4 7F066934 2605007C */ addiu $a1, $s0, 0x7c -/* 09B4A8 7F066938 46082182 */ mul.s $f6, $f4, $f8 -/* 09B4AC 7F06693C 46023283 */ div.s $f10, $f6, $f2 -/* 09B4B0 7F066940 E7AA009C */ swc1 $f10, 0x9c($sp) -/* 09B4B4 7F066944 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09B4B8 7F066948 8FB801E0 */ lw $t8, 0x1e0($sp) -/* 09B4BC 7F06694C 57000009 */ bnezl $t8, .Ljp7F066974 -/* 09B4C0 7F066950 44804000 */ mtc1 $zero, $f8 -/* 09B4C4 7F066954 44802000 */ mtc1 $zero, $f4 -/* 09B4C8 7F066958 AFA50034 */ sw $a1, 0x34($sp) -/* 09B4CC 7F06695C 46022303 */ div.s $f12, $f4, $f2 -/* 09B4D0 7F066960 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B4D4 7F066964 E7AC0040 */ swc1 $f12, 0x40($sp) -/* 09B4D8 7F066968 10000008 */ b .Ljp7F06698C -/* 09B4DC 7F06696C C7AC009C */ lwc1 $f12, 0x9c($sp) -/* 09B4E0 7F066970 44804000 */ mtc1 $zero, $f8 -.Ljp7F066974: -/* 09B4E4 7F066974 AFA50034 */ sw $a1, 0x34($sp) -/* 09B4E8 7F066978 46024003 */ div.s $f0, $f8, $f2 -/* 09B4EC 7F06697C 46000307 */ neg.s $f12, $f0 -/* 09B4F0 7F066980 0FC162EA */ jal matrix_4x4_set_rotation_around_z -/* 09B4F4 7F066984 E7A00040 */ swc1 $f0, 0x40($sp) -/* 09B4F8 7F066988 C7AC009C */ lwc1 $f12, 0x9c($sp) -.Ljp7F06698C: -/* 09B4FC 7F06698C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B500 7F066990 27A500A0 */ addiu $a1, $sp, 0xa0 -/* 09B504 7F066994 27A400A0 */ addiu $a0, $sp, 0xa0 -/* 09B508 7F066998 0FC16162 */ jal matrix_4x4_multiply_in_place -/* 09B50C 7F06699C 8FA50034 */ lw $a1, 0x34($sp) -/* 09B510 7F0669A0 0FC160F3 */ jal sinf -/* 09B514 7F0669A4 C7AC0040 */ lwc1 $f12, 0x40($sp) -/* 09B518 7F0669A8 44803000 */ mtc1 $zero, $f6 -/* 09B51C 7F0669AC 02202025 */ move $a0, $s1 -/* 09B520 7F0669B0 0FC193C4 */ jal sub_GAME_7F0649AC -/* 09B524 7F0669B4 E60600AC */ swc1 $f6, 0xac($s0) -/* 09B528 7F0669B8 E7A00044 */ swc1 $f0, 0x44($sp) -/* 09B52C 7F0669BC 0FC160F0 */ jal cosf -/* 09B530 7F0669C0 C7AC009C */ lwc1 $f12, 0x9c($sp) -/* 09B534 7F0669C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B538 7F0669C8 44815000 */ mtc1 $at, $f10 -/* 09B53C 7F0669CC C7A80044 */ lwc1 $f8, 0x44($sp) -/* 09B540 7F0669D0 46005101 */ sub.s $f4, $f10, $f0 -/* 09B544 7F0669D4 46082182 */ mul.s $f6, $f4, $f8 -/* 09B548 7F0669D8 E60600B0 */ swc1 $f6, 0xb0($s0) -/* 09B54C 7F0669DC 0FC160F3 */ jal sinf -/* 09B550 7F0669E0 C7AC009C */ lwc1 $f12, 0x9c($sp) -/* 09B554 7F0669E4 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B558 7F0669E8 44815000 */ mtc1 $at, $f10 -/* 09B55C 7F0669EC 8E020024 */ lw $v0, 0x24($s0) -/* 09B560 7F0669F0 460A0102 */ mul.s $f4, $f0, $f10 -/* 09B564 7F0669F4 E60400B4 */ swc1 $f4, 0xb4($s0) -.Ljp7F0669F8: -/* 09B568 7F0669F8 2401000E */ li $at, 14 -.Ljp7F0669FC: -/* 09B56C 7F0669FC 5441002E */ bnel $v0, $at, .Ljp7F066AB8 -/* 09B570 7F066A00 2401000F */ li $at, 15 -/* 09B574 7F066A04 8E030020 */ lw $v1, 0x20($s0) -/* 09B578 7F066A08 2402000F */ li $v0, 15 -/* 09B57C 7F066A0C 28610010 */ slti $at, $v1, 0x10 -/* 09B580 7F066A10 50200005 */ beql $at, $zero, .Ljp7F066A28 -/* 09B584 7F066A14 AE020024 */ sw $v0, 0x24($s0) -/* 09B588 7F066A18 820F000F */ lb $t7, 0xf($s0) -/* 09B58C 7F066A1C 55E00006 */ bnezl $t7, .Ljp7F066A38 -/* 09B590 7F066A20 44834000 */ mtc1 $v1, $f8 -/* 09B594 7F066A24 AE020024 */ sw $v0, 0x24($s0) -.Ljp7F066A28: -/* 09B598 7F066A28 AE000020 */ sw $zero, 0x20($s0) -/* 09B59C 7F066A2C 10000021 */ b .Ljp7F066AB4 -/* 09B5A0 7F066A30 AE00001C */ sw $zero, 0x1c($s0) -/* 09B5A4 7F066A34 44834000 */ mtc1 $v1, $f8 -.Ljp7F066A38: -/* 09B5A8 7F066A38 3C018005 */ lui $at, %hi(D_8005439C) # $at, 0x8005 -/* 09B5AC 7F066A3C C42A43CC */ lwc1 $f10, %lo(D_8005439C)($at) -/* 09B5B0 7F066A40 468041A0 */ cvt.s.w $f6, $f8 -/* 09B5B4 7F066A44 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 09B5B8 7F066A48 44814000 */ mtc1 $at, $f8 -/* 09B5BC 7F066A4C 240E0001 */ li $t6, 1 -/* 09B5C0 7F066A50 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09B5C4 7F066A54 2605007C */ addiu $a1, $s0, 0x7c -/* 09B5C8 7F066A58 460A3102 */ mul.s $f4, $f6, $f10 -/* 09B5CC 7F066A5C 46082303 */ div.s $f12, $f4, $f8 -/* 09B5D0 7F066A60 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B5D4 7F066A64 E7AC0098 */ swc1 $f12, 0x98($sp) -/* 09B5D8 7F066A68 44803000 */ mtc1 $zero, $f6 -/* 09B5DC 7F066A6C 00000000 */ nop -/* 09B5E0 7F066A70 E60600AC */ swc1 $f6, 0xac($s0) -/* 09B5E4 7F066A74 0FC160F0 */ jal cosf -/* 09B5E8 7F066A78 C7AC0098 */ lwc1 $f12, 0x98($sp) -/* 09B5EC 7F066A7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B5F0 7F066A80 44815000 */ mtc1 $at, $f10 -/* 09B5F4 7F066A84 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09B5F8 7F066A88 44814000 */ mtc1 $at, $f8 -/* 09B5FC 7F066A8C 46005101 */ sub.s $f4, $f10, $f0 -/* 09B600 7F066A90 46082182 */ mul.s $f6, $f4, $f8 -/* 09B604 7F066A94 E60600B0 */ swc1 $f6, 0xb0($s0) -/* 09B608 7F066A98 0FC160F3 */ jal sinf -/* 09B60C 7F066A9C C7AC0098 */ lwc1 $f12, 0x98($sp) -/* 09B610 7F066AA0 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B614 7F066AA4 44815000 */ mtc1 $at, $f10 -/* 09B618 7F066AA8 8E020024 */ lw $v0, 0x24($s0) -/* 09B61C 7F066AAC 460A0102 */ mul.s $f4, $f0, $f10 -/* 09B620 7F066AB0 E60400B4 */ swc1 $f4, 0xb4($s0) -.Ljp7F066AB4: -/* 09B624 7F066AB4 2401000F */ li $at, 15 -.Ljp7F066AB8: -/* 09B628 7F066AB8 54410031 */ bnel $v0, $at, .Ljp7F066B80 -/* 09B62C 7F066ABC 24010010 */ li $at, 16 -/* 09B630 7F066AC0 8E18001C */ lw $t8, 0x1c($s0) -/* 09B634 7F066AC4 53000006 */ beql $t8, $zero, .Ljp7F066AE0 -/* 09B638 7F066AC8 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B63C 7F066ACC 0FC174F7 */ jal sub_GAME_7F05CEBC -/* 09B640 7F066AD0 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B644 7F066AD4 14400007 */ bnez $v0, .Ljp7F066AF4 -/* 09B648 7F066AD8 00000000 */ nop -/* 09B64C 7F066ADC 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F066AE0: -/* 09B650 7F066AE0 0FC177EB */ jal sub_GAME_7F05DA8C -/* 09B654 7F066AE4 8E05003C */ lw $a1, 0x3c($s0) -/* 09B658 7F066AE8 0FC177D9 */ jal get_item_in_hand_or_watch_menu -/* 09B65C 7F066AEC 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B660 7F066AF0 00408825 */ move $s1, $v0 -.Ljp7F066AF4: -/* 09B664 7F066AF4 0FC174F7 */ jal sub_GAME_7F05CEBC -/* 09B668 7F066AF8 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B66C 7F066AFC 10400006 */ beqz $v0, .Ljp7F066B18 -/* 09B670 7F066B00 24190001 */ li $t9, 1 -/* 09B674 7F066B04 24020010 */ li $v0, 16 -/* 09B678 7F066B08 AE020024 */ sw $v0, 0x24($s0) -/* 09B67C 7F066B0C AE000020 */ sw $zero, 0x20($s0) -/* 09B680 7F066B10 1000001A */ b .Ljp7F066B7C -/* 09B684 7F066B14 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F066B18: -/* 09B688 7F066B18 AE1900BC */ sw $t9, 0xbc($s0) -/* 09B68C 7F066B1C 3C018005 */ lui $at, %hi(D_800543A0) # $at, 0x8005 -/* 09B690 7F066B20 C42C43D0 */ lwc1 $f12, %lo(D_800543A0)($at) -/* 09B694 7F066B24 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B698 7F066B28 2605007C */ addiu $a1, $s0, 0x7c -/* 09B69C 7F066B2C 44804000 */ mtc1 $zero, $f8 -/* 09B6A0 7F066B30 3C018005 */ lui $at, %hi(D_800543A4) # $at, 0x8005 -/* 09B6A4 7F066B34 E60800AC */ swc1 $f8, 0xac($s0) -/* 09B6A8 7F066B38 0FC160F0 */ jal cosf -/* 09B6AC 7F066B3C C42C43D4 */ lwc1 $f12, %lo(D_800543A4)($at) -/* 09B6B0 7F066B40 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B6B4 7F066B44 44813000 */ mtc1 $at, $f6 -/* 09B6B8 7F066B48 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09B6BC 7F066B4C 44812000 */ mtc1 $at, $f4 -/* 09B6C0 7F066B50 46003281 */ sub.s $f10, $f6, $f0 -/* 09B6C4 7F066B54 3C018005 */ lui $at, %hi(D_800543A8) # $at, 0x8005 -/* 09B6C8 7F066B58 46045202 */ mul.s $f8, $f10, $f4 -/* 09B6CC 7F066B5C E60800B0 */ swc1 $f8, 0xb0($s0) -/* 09B6D0 7F066B60 0FC160F3 */ jal sinf -/* 09B6D4 7F066B64 C42C43D8 */ lwc1 $f12, %lo(D_800543A8)($at) -/* 09B6D8 7F066B68 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B6DC 7F066B6C 44813000 */ mtc1 $at, $f6 -/* 09B6E0 7F066B70 8E020024 */ lw $v0, 0x24($s0) -/* 09B6E4 7F066B74 46060282 */ mul.s $f10, $f0, $f6 -/* 09B6E8 7F066B78 E60A00B4 */ swc1 $f10, 0xb4($s0) -.Ljp7F066B7C: -/* 09B6EC 7F066B7C 24010010 */ li $at, 16 -.Ljp7F066B80: -/* 09B6F0 7F066B80 5441004C */ bnel $v0, $at, .Ljp7F066CB4 -/* 09B6F4 7F066B84 24010011 */ li $at, 17 -/* 09B6F8 7F066B88 8E0E001C */ lw $t6, 0x1c($s0) -/* 09B6FC 7F066B8C 2A210021 */ slti $at, $s1, 0x21 -/* 09B700 7F066B90 55C00010 */ bnezl $t6, .Ljp7F066BD4 -/* 09B704 7F066B94 8E0F0020 */ lw $t7, 0x20($s0) -/* 09B708 7F066B98 5020000E */ beql $at, $zero, .Ljp7F066BD4 -/* 09B70C 7F066B9C 8E0F0020 */ lw $t7, 0x20($s0) -/* 09B710 7F066BA0 0FC26C01 */ jal getPlayerCount -/* 09B714 7F066BA4 00000000 */ nop -/* 09B718 7F066BA8 28410002 */ slti $at, $v0, 2 -/* 09B71C 7F066BAC 14200003 */ bnez $at, .Ljp7F066BBC -/* 09B720 7F066BB0 00000000 */ nop -/* 09B724 7F066BB4 0FC26FCE */ jal sub_GAME_7F09B398 -/* 09B728 7F066BB8 8FA401E0 */ lw $a0, 0x1e0($sp) -.Ljp7F066BBC: -/* 09B72C 7F066BBC 0FC193CF */ jal sub_GAME_7F0649D8 -/* 09B730 7F066BC0 8FA401E0 */ lw $a0, 0x1e0($sp) -/* 09B734 7F066BC4 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09B738 7F066BC8 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09B73C 7F066BCC AF000FC8 */ sw $zero, 0xfc8($t8) -/* 09B740 7F066BD0 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F066BD4: -/* 09B744 7F066BD4 29E10017 */ slti $at, $t7, 0x17 -/* 09B748 7F066BD8 5020000E */ beql $at, $zero, .Ljp7F066C14 -/* 09B74C 7F066BDC AE000024 */ sw $zero, 0x24($s0) -/* 09B750 7F066BE0 0FC1755A */ jal get_ptr_weapon_model_header_line -/* 09B754 7F066BE4 02202025 */ move $a0, $s1 -/* 09B758 7F066BE8 10400009 */ beqz $v0, .Ljp7F066C10 -/* 09B75C 7F066BEC 02202025 */ move $a0, $s1 -/* 09B760 7F066BF0 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B764 7F066BF4 24050800 */ li $a1, 2048 -/* 09B768 7F066BF8 10400005 */ beqz $v0, .Ljp7F066C10 -/* 09B76C 7F066BFC 02202025 */ move $a0, $s1 -/* 09B770 7F066C00 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09B774 7F066C04 24052000 */ li $a1, 8192 -/* 09B778 7F066C08 50400007 */ beql $v0, $zero, .Ljp7F066C28 -/* 09B77C 7F066C0C 8E190020 */ lw $t9, 0x20($s0) -.Ljp7F066C10: -/* 09B780 7F066C10 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F066C14: -/* 09B784 7F066C14 AE000020 */ sw $zero, 0x20($s0) -/* 09B788 7F066C18 AE00001C */ sw $zero, 0x1c($s0) -/* 09B78C 7F066C1C 10000024 */ b .Ljp7F066CB0 -/* 09B790 7F066C20 00001025 */ move $v0, $zero -/* 09B794 7F066C24 8E190020 */ lw $t9, 0x20($s0) -.Ljp7F066C28: -/* 09B798 7F066C28 240E0017 */ li $t6, 23 -/* 09B79C 7F066C2C 3C018005 */ lui $at, %hi(D_800543AC) # $at, 0x8005 -/* 09B7A0 7F066C30 01D9C023 */ subu $t8, $t6, $t9 -/* 09B7A4 7F066C34 44982000 */ mtc1 $t8, $f4 -/* 09B7A8 7F066C38 C42643DC */ lwc1 $f6, %lo(D_800543AC)($at) -/* 09B7AC 7F066C3C 3C0141B8 */ li $at, 0x41B80000 # 23.000000 -/* 09B7B0 7F066C40 46802220 */ cvt.s.w $f8, $f4 -/* 09B7B4 7F066C44 44812000 */ mtc1 $at, $f4 -/* 09B7B8 7F066C48 240F0001 */ li $t7, 1 -/* 09B7BC 7F066C4C AE0F00BC */ sw $t7, 0xbc($s0) -/* 09B7C0 7F066C50 2605007C */ addiu $a1, $s0, 0x7c -/* 09B7C4 7F066C54 46064282 */ mul.s $f10, $f8, $f6 -/* 09B7C8 7F066C58 46045303 */ div.s $f12, $f10, $f4 -/* 09B7CC 7F066C5C 0FC162A4 */ jal matrix_4x4_set_rotation_around_x -/* 09B7D0 7F066C60 E7AC0090 */ swc1 $f12, 0x90($sp) -/* 09B7D4 7F066C64 44804000 */ mtc1 $zero, $f8 -/* 09B7D8 7F066C68 00000000 */ nop -/* 09B7DC 7F066C6C E60800AC */ swc1 $f8, 0xac($s0) -/* 09B7E0 7F066C70 0FC160F0 */ jal cosf -/* 09B7E4 7F066C74 C7AC0090 */ lwc1 $f12, 0x90($sp) -/* 09B7E8 7F066C78 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09B7EC 7F066C7C 44813000 */ mtc1 $at, $f6 -/* 09B7F0 7F066C80 3C01C270 */ li $at, 0xC2700000 # -60.000000 -/* 09B7F4 7F066C84 44812000 */ mtc1 $at, $f4 -/* 09B7F8 7F066C88 46003281 */ sub.s $f10, $f6, $f0 -/* 09B7FC 7F066C8C 46045202 */ mul.s $f8, $f10, $f4 -/* 09B800 7F066C90 E60800B0 */ swc1 $f8, 0xb0($s0) -/* 09B804 7F066C94 0FC160F3 */ jal sinf -/* 09B808 7F066C98 C7AC0090 */ lwc1 $f12, 0x90($sp) -/* 09B80C 7F066C9C 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 09B810 7F066CA0 44813000 */ mtc1 $at, $f6 -/* 09B814 7F066CA4 8E020024 */ lw $v0, 0x24($s0) -/* 09B818 7F066CA8 46060282 */ mul.s $f10, $f0, $f6 -/* 09B81C 7F066CAC E60A00B4 */ swc1 $f10, 0xb4($s0) -.Ljp7F066CB0: -/* 09B820 7F066CB0 24010011 */ li $at, 17 -.Ljp7F066CB4: -/* 09B824 7F066CB4 1041000B */ beq $v0, $at, .Ljp7F066CE4 -/* 09B828 7F066CB8 24010012 */ li $at, 18 -/* 09B82C 7F066CBC 10410009 */ beq $v0, $at, .Ljp7F066CE4 -/* 09B830 7F066CC0 24040013 */ li $a0, 19 -/* 09B834 7F066CC4 10820007 */ beq $a0, $v0, .Ljp7F066CE4 -/* 09B838 7F066CC8 24010014 */ li $at, 20 -/* 09B83C 7F066CCC 10410005 */ beq $v0, $at, .Ljp7F066CE4 -/* 09B840 7F066CD0 24010015 */ li $at, 21 -/* 09B844 7F066CD4 10410003 */ beq $v0, $at, .Ljp7F066CE4 -/* 09B848 7F066CD8 24010016 */ li $at, 22 -/* 09B84C 7F066CDC 54410056 */ bnel $v0, $at, .Ljp7F066E38 -/* 09B850 7F066CE0 2401001E */ li $at, 30 -.Ljp7F066CE4: -/* 09B854 7F066CE4 8E030020 */ lw $v1, 0x20($s0) -/* 09B858 7F066CE8 260E007C */ addiu $t6, $s0, 0x7c -/* 09B85C 7F066CEC 24010011 */ li $at, 17 -/* 09B860 7F066CF0 44832000 */ mtc1 $v1, $f4 -/* 09B864 7F066CF4 24040013 */ li $a0, 19 -/* 09B868 7F066CF8 AFAE0034 */ sw $t6, 0x34($sp) -/* 09B86C 7F066CFC 46802220 */ cvt.s.w $f8, $f4 -/* 09B870 7F066D00 10410003 */ beq $v0, $at, .Ljp7F066D10 -/* 09B874 7F066D04 E7A8008C */ swc1 $f8, 0x8c($sp) -/* 09B878 7F066D08 24010014 */ li $at, 20 -/* 09B87C 7F066D0C 1441001E */ bne $v0, $at, .Ljp7F066D88 -.Ljp7F066D10: -/* 09B880 7F066D10 28610010 */ slti $at, $v1, 0x10 -/* 09B884 7F066D14 1420001C */ bnez $at, .Ljp7F066D88 -/* 09B888 7F066D18 3C188003 */ lui $t8, %hi(D_80035E94) # $t8, 0x8003 -/* 09B88C 7F066D1C 27185ED4 */ addiu $t8, %lo(D_80035E94) # addiu $t8, $t8, 0x5ed4 -/* 09B890 7F066D20 8F010000 */ lw $at, ($t8) -/* 09B894 7F066D24 27B90080 */ addiu $t9, $sp, 0x80 -/* 09B898 7F066D28 AF210000 */ sw $at, ($t9) -/* 09B89C 7F066D2C 97010004 */ lhu $at, 4($t8) -/* 09B8A0 7F066D30 0C002918 */ jal get_random_value -/* 09B8A4 7F066D34 A7210004 */ sh $at, 4($t9) -/* 09B8A8 7F066D38 24010003 */ li $at, 3 -/* 09B8AC 7F066D3C 0041001B */ divu $zero, $v0, $at -/* 09B8B0 7F066D40 00007810 */ mfhi $t7 -/* 09B8B4 7F066D44 000FC840 */ sll $t9, $t7, 1 -/* 09B8B8 7F066D48 03B92821 */ addu $a1, $sp, $t9 -/* 09B8BC 7F066D4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 09B8C0 7F066D50 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 09B8C4 7F066D54 84A50080 */ lh $a1, 0x80($a1) -/* 09B8C8 7F066D58 0C002386 */ jal play_sfx_a1 -/* 09B8CC 7F066D5C 00003025 */ move $a2, $zero -/* 09B8D0 7F066D60 8E180024 */ lw $t8, 0x24($s0) -/* 09B8D4 7F066D64 24010011 */ li $at, 17 -/* 09B8D8 7F066D68 24020015 */ li $v0, 21 -/* 09B8DC 7F066D6C 17010005 */ bne $t8, $at, .Ljp7F066D84 -/* 09B8E0 7F066D70 24040013 */ li $a0, 19 -/* 09B8E4 7F066D74 24020012 */ li $v0, 18 -/* 09B8E8 7F066D78 AE020024 */ sw $v0, 0x24($s0) -/* 09B8EC 7F066D7C 10000002 */ b .Ljp7F066D88 -/* 09B8F0 7F066D80 24040013 */ li $a0, 19 -.Ljp7F066D84: -/* 09B8F4 7F066D84 AE020024 */ sw $v0, 0x24($s0) -.Ljp7F066D88: -/* 09B8F8 7F066D88 10820012 */ beq $a0, $v0, .Ljp7F066DD4 -/* 09B8FC 7F066D8C 24010016 */ li $at, 22 -/* 09B900 7F066D90 50410011 */ beql $v0, $at, .Ljp7F066DD8 -/* 09B904 7F066D94 24010011 */ li $at, 17 -/* 09B908 7F066D98 8E190020 */ lw $t9, 0x20($s0) -/* 09B90C 7F066D9C 24180001 */ li $t8, 1 -/* 09B910 7F066DA0 2B210018 */ slti $at, $t9, 0x18 -/* 09B914 7F066DA4 1420000B */ bnez $at, .Ljp7F066DD4 -/* 09B918 7F066DA8 24010011 */ li $at, 17 -/* 09B91C 7F066DAC 10410004 */ beq $v0, $at, .Ljp7F066DC0 -/* 09B920 7F066DB0 A218000C */ sb $t8, 0xc($s0) -/* 09B924 7F066DB4 24010012 */ li $at, 18 -/* 09B928 7F066DB8 54410005 */ bnel $v0, $at, .Ljp7F066DD0 -/* 09B92C 7F066DBC 24020016 */ li $v0, 22 -.Ljp7F066DC0: -/* 09B930 7F066DC0 AE040024 */ sw $a0, 0x24($s0) -/* 09B934 7F066DC4 10000003 */ b .Ljp7F066DD4 -/* 09B938 7F066DC8 00801025 */ move $v0, $a0 -/* 09B93C 7F066DCC 24020016 */ li $v0, 22 -.Ljp7F066DD0: -/* 09B940 7F066DD0 AE020024 */ sw $v0, 0x24($s0) -.Ljp7F066DD4: -/* 09B944 7F066DD4 24010011 */ li $at, 17 -.Ljp7F066DD8: -/* 09B948 7F066DD8 10410005 */ beq $v0, $at, .Ljp7F066DF0 -/* 09B94C 7F066DDC 8FA5008C */ lw $a1, 0x8c($sp) -/* 09B950 7F066DE0 24010012 */ li $at, 18 -/* 09B954 7F066DE4 10410002 */ beq $v0, $at, .Ljp7F066DF0 -/* 09B958 7F066DE8 00000000 */ nop -/* 09B95C 7F066DEC 14820003 */ bne $a0, $v0, .Ljp7F066DFC -.Ljp7F066DF0: -/* 09B960 7F066DF0 3C048003 */ lui $a0, %hi(D_80034CA4) # $a0, 0x8003 -/* 09B964 7F066DF4 10000003 */ b .Ljp7F066E04 -/* 09B968 7F066DF8 24844CE4 */ addiu $a0, %lo(D_80034CA4) # addiu $a0, $a0, 0x4ce4 -.Ljp7F066DFC: -/* 09B96C 7F066DFC 3C048003 */ lui $a0, %hi(D_80034E0C) # $a0, 0x8003 -/* 09B970 7F066E00 24844E4C */ addiu $a0, %lo(D_80034E0C) # addiu $a0, $a0, 0x4e4c -.Ljp7F066E04: -/* 09B974 7F066E04 8FA60034 */ lw $a2, 0x34($sp) -/* 09B978 7F066E08 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09B97C 7F066E0C 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09B980 7F066E10 10400004 */ beqz $v0, .Ljp7F066E24 -/* 09B984 7F066E14 240F0001 */ li $t7, 1 -/* 09B988 7F066E18 AE0F00BC */ sw $t7, 0xbc($s0) -/* 09B98C 7F066E1C 10000005 */ b .Ljp7F066E34 -/* 09B990 7F066E20 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F066E24: -/* 09B994 7F066E24 AE000024 */ sw $zero, 0x24($s0) -/* 09B998 7F066E28 AE000020 */ sw $zero, 0x20($s0) -/* 09B99C 7F066E2C AE00001C */ sw $zero, 0x1c($s0) -/* 09B9A0 7F066E30 00001025 */ move $v0, $zero -.Ljp7F066E34: -/* 09B9A4 7F066E34 2401001E */ li $at, 30 -.Ljp7F066E38: -/* 09B9A8 7F066E38 10410007 */ beq $v0, $at, .Ljp7F066E58 -/* 09B9AC 7F066E3C 2405001F */ li $a1, 31 -/* 09B9B0 7F066E40 10A20005 */ beq $a1, $v0, .Ljp7F066E58 -/* 09B9B4 7F066E44 24010020 */ li $at, 32 -/* 09B9B8 7F066E48 10410003 */ beq $v0, $at, .Ljp7F066E58 -/* 09B9BC 7F066E4C 24040021 */ li $a0, 33 -/* 09B9C0 7F066E50 54820041 */ bnel $a0, $v0, .Ljp7F066F58 -/* 09B9C4 7F066E54 2401001A */ li $at, 26 -.Ljp7F066E58: -/* 09B9C8 7F066E58 8E030020 */ lw $v1, 0x20($s0) -/* 09B9CC 7F066E5C 2401001E */ li $at, 30 -/* 09B9D0 7F066E60 24040021 */ li $a0, 33 -/* 09B9D4 7F066E64 44833000 */ mtc1 $v1, $f6 -/* 09B9D8 7F066E68 2405001F */ li $a1, 31 -/* 09B9DC 7F066E6C 2606007C */ addiu $a2, $s0, 0x7c -/* 09B9E0 7F066E70 10410003 */ beq $v0, $at, .Ljp7F066E80 -/* 09B9E4 7F066E74 46803020 */ cvt.s.w $f0, $f6 -/* 09B9E8 7F066E78 14A20014 */ bne $a1, $v0, .Ljp7F066ECC -/* 09B9EC 7F066E7C 24010020 */ li $at, 32 -.Ljp7F066E80: -/* 09B9F0 7F066E80 3C198008 */ lui $t9, %hi(pPlayer) # $t9, 0x8008 -/* 09B9F4 7F066E84 8F39A120 */ lw $t9, %lo(pPlayer)($t9) -/* 09B9F8 7F066E88 24010011 */ li $at, 17 -/* 09B9FC 7F066E8C 3C0E8003 */ lui $t6, %hi(D_80035778) # $t6, 0x8003 -/* 09BA00 7F066E90 8F382A38 */ lw $t8, 0x2a38($t9) -/* 09BA04 7F066E94 3C0F8003 */ lui $t7, %hi(D_800354A8) # $t7, 0x8003 -/* 09BA08 7F066E98 25CE57B8 */ addiu $t6, %lo(D_80035778) # addiu $t6, $t6, 0x57b8 -/* 09BA0C 7F066E9C 17010003 */ bne $t8, $at, .Ljp7F066EAC -/* 09BA10 7F066EA0 25EF54E8 */ addiu $t7, %lo(D_800354A8) # addiu $t7, $t7, 0x54e8 -/* 09BA14 7F066EA4 10000002 */ b .Ljp7F066EB0 -/* 09BA18 7F066EA8 AFAE0078 */ sw $t6, 0x78($sp) -.Ljp7F066EAC: -/* 09BA1C 7F066EAC AFAF0078 */ sw $t7, 0x78($sp) -.Ljp7F066EB0: -/* 09BA20 7F066EB0 10A2001B */ beq $a1, $v0, .Ljp7F066F20 -/* 09BA24 7F066EB4 2861001E */ slti $at, $v1, 0x1e -/* 09BA28 7F066EB8 14200019 */ bnez $at, .Ljp7F066F20 -/* 09BA2C 7F066EBC 24190001 */ li $t9, 1 -/* 09BA30 7F066EC0 A219000C */ sb $t9, 0xc($s0) -/* 09BA34 7F066EC4 10000016 */ b .Ljp7F066F20 -/* 09BA38 7F066EC8 AE050024 */ sw $a1, 0x24($s0) -.Ljp7F066ECC: -/* 09BA3C 7F066ECC 10410003 */ beq $v0, $at, .Ljp7F066EDC -/* 09BA40 7F066ED0 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 09BA44 7F066ED4 54820013 */ bnel $a0, $v0, .Ljp7F066F24 -/* 09BA48 7F066ED8 44050000 */ mfc1 $a1, $f0 -.Ljp7F066EDC: -/* 09BA4C 7F066EDC 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 09BA50 7F066EE0 24010011 */ li $at, 17 -/* 09BA54 7F066EE4 3C0F8003 */ lui $t7, %hi(D_80035904) # $t7, 0x8003 -/* 09BA58 7F066EE8 8F0E2A38 */ lw $t6, 0x2a38($t8) -/* 09BA5C 7F066EEC 3C198003 */ lui $t9, %hi(D_80035610) # $t9, 0x8003 -/* 09BA60 7F066EF0 25EF5944 */ addiu $t7, %lo(D_80035904) # addiu $t7, $t7, 0x5944 -/* 09BA64 7F066EF4 15C10003 */ bne $t6, $at, .Ljp7F066F04 -/* 09BA68 7F066EF8 27395650 */ addiu $t9, %lo(D_80035610) # addiu $t9, $t9, 0x5650 -/* 09BA6C 7F066EFC 10000002 */ b .Ljp7F066F08 -/* 09BA70 7F066F00 AFAF0078 */ sw $t7, 0x78($sp) -.Ljp7F066F04: -/* 09BA74 7F066F04 AFB90078 */ sw $t9, 0x78($sp) -.Ljp7F066F08: -/* 09BA78 7F066F08 10820005 */ beq $a0, $v0, .Ljp7F066F20 -/* 09BA7C 7F066F0C 2861001E */ slti $at, $v1, 0x1e -/* 09BA80 7F066F10 14200003 */ bnez $at, .Ljp7F066F20 -/* 09BA84 7F066F14 24180001 */ li $t8, 1 -/* 09BA88 7F066F18 A218000C */ sb $t8, 0xc($s0) -/* 09BA8C 7F066F1C AE040024 */ sw $a0, 0x24($s0) -.Ljp7F066F20: -/* 09BA90 7F066F20 44050000 */ mfc1 $a1, $f0 -.Ljp7F066F24: -/* 09BA94 7F066F24 8FA40078 */ lw $a0, 0x78($sp) -/* 09BA98 7F066F28 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BA9C 7F066F2C 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BAA0 7F066F30 10400004 */ beqz $v0, .Ljp7F066F44 -/* 09BAA4 7F066F34 240E0001 */ li $t6, 1 -/* 09BAA8 7F066F38 AE0E00BC */ sw $t6, 0xbc($s0) -/* 09BAAC 7F066F3C 10000005 */ b .Ljp7F066F54 -/* 09BAB0 7F066F40 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F066F44: -/* 09BAB4 7F066F44 AE000024 */ sw $zero, 0x24($s0) -/* 09BAB8 7F066F48 AE000020 */ sw $zero, 0x20($s0) -/* 09BABC 7F066F4C AE00001C */ sw $zero, 0x1c($s0) -/* 09BAC0 7F066F50 00001025 */ move $v0, $zero -.Ljp7F066F54: -/* 09BAC4 7F066F54 2401001A */ li $at, 26 -.Ljp7F066F58: -/* 09BAC8 7F066F58 54410023 */ bnel $v0, $at, .Ljp7F066FE8 -/* 09BACC 7F066F5C 2401001B */ li $at, 27 -/* 09BAD0 7F066F60 8E0F002C */ lw $t7, 0x2c($s0) -/* 09BAD4 7F066F64 00001025 */ move $v0, $zero -/* 09BAD8 7F066F68 59E0001C */ blezl $t7, .Ljp7F066FDC -/* 09BADC 7F066F6C AE000024 */ sw $zero, 0x24($s0) -/* 09BAE0 7F066F70 8E190020 */ lw $t9, 0x20($s0) -/* 09BAE4 7F066F74 3C048003 */ lui $a0, %hi(D_80035124) # $a0, 0x8003 -/* 09BAE8 7F066F78 24845164 */ addiu $a0, %lo(D_80035124) # addiu $a0, $a0, 0x5164 -/* 09BAEC 7F066F7C 44995000 */ mtc1 $t9, $f10 -/* 09BAF0 7F066F80 2606007C */ addiu $a2, $s0, 0x7c -/* 09BAF4 7F066F84 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BAF8 7F066F88 46805020 */ cvt.s.w $f0, $f10 -/* 09BAFC 7F066F8C 44050000 */ mfc1 $a1, $f0 -/* 09BB00 7F066F90 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BB04 7F066F94 00000000 */ nop -/* 09BB08 7F066F98 10400004 */ beqz $v0, .Ljp7F066FAC -/* 09BB0C 7F066F9C 240E0001 */ li $t6, 1 -/* 09BB10 7F066FA0 24180001 */ li $t8, 1 -/* 09BB14 7F066FA4 1000000A */ b .Ljp7F066FD0 -/* 09BB18 7F066FA8 AE1800BC */ sw $t8, 0xbc($s0) -.Ljp7F066FAC: -/* 09BB1C 7F066FAC 8E0F002C */ lw $t7, 0x2c($s0) -/* 09BB20 7F066FB0 2418001B */ li $t8, 27 -/* 09BB24 7F066FB4 A200000E */ sb $zero, 0xe($s0) -/* 09BB28 7F066FB8 25F9FFFF */ addiu $t9, $t7, -1 -/* 09BB2C 7F066FBC A20E000C */ sb $t6, 0xc($s0) -/* 09BB30 7F066FC0 AE19002C */ sw $t9, 0x2c($s0) -/* 09BB34 7F066FC4 AE180024 */ sw $t8, 0x24($s0) -/* 09BB38 7F066FC8 AE000020 */ sw $zero, 0x20($s0) -/* 09BB3C 7F066FCC AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F066FD0: -/* 09BB40 7F066FD0 10000004 */ b .Ljp7F066FE4 -/* 09BB44 7F066FD4 8E020024 */ lw $v0, 0x24($s0) -/* 09BB48 7F066FD8 AE000024 */ sw $zero, 0x24($s0) -.Ljp7F066FDC: -/* 09BB4C 7F066FDC AE000020 */ sw $zero, 0x20($s0) -/* 09BB50 7F066FE0 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F066FE4: -/* 09BB54 7F066FE4 2401001B */ li $at, 27 -.Ljp7F066FE8: -/* 09BB58 7F066FE8 54410017 */ bnel $v0, $at, .Ljp7F067048 -/* 09BB5C 7F066FEC 24010017 */ li $at, 23 -/* 09BB60 7F066FF0 8E0E0020 */ lw $t6, 0x20($s0) -/* 09BB64 7F066FF4 3C048003 */ lui $a0, %hi(D_800351FC) # $a0, 0x8003 -/* 09BB68 7F066FF8 2484523C */ addiu $a0, %lo(D_800351FC) # addiu $a0, $a0, 0x523c -/* 09BB6C 7F066FFC 448E2000 */ mtc1 $t6, $f4 -/* 09BB70 7F067000 2606007C */ addiu $a2, $s0, 0x7c -/* 09BB74 7F067004 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BB78 7F067008 46802020 */ cvt.s.w $f0, $f4 -/* 09BB7C 7F06700C 44050000 */ mfc1 $a1, $f0 -/* 09BB80 7F067010 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BB84 7F067014 00000000 */ nop -/* 09BB88 7F067018 10400005 */ beqz $v0, .Ljp7F067030 -/* 09BB8C 7F06701C 24190001 */ li $t9, 1 -/* 09BB90 7F067020 240F0001 */ li $t7, 1 -/* 09BB94 7F067024 AE0F00BC */ sw $t7, 0xbc($s0) -/* 09BB98 7F067028 10000006 */ b .Ljp7F067044 -/* 09BB9C 7F06702C 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F067030: -/* 09BBA0 7F067030 A219000E */ sb $t9, 0xe($s0) -/* 09BBA4 7F067034 AE000024 */ sw $zero, 0x24($s0) -/* 09BBA8 7F067038 AE000020 */ sw $zero, 0x20($s0) -/* 09BBAC 7F06703C AE00001C */ sw $zero, 0x1c($s0) -/* 09BBB0 7F067040 00001025 */ move $v0, $zero -.Ljp7F067044: -/* 09BBB4 7F067044 24010017 */ li $at, 23 -.Ljp7F067048: -/* 09BBB8 7F067048 5441002C */ bnel $v0, $at, .Ljp7F0670FC -/* 09BBBC 7F06704C 24010018 */ li $at, 24 -/* 09BBC0 7F067050 8E18002C */ lw $t8, 0x2c($s0) -/* 09BBC4 7F067054 00001025 */ move $v0, $zero -/* 09BBC8 7F067058 5B000025 */ blezl $t8, .Ljp7F0670F0 -/* 09BBCC 7F06705C AE000024 */ sw $zero, 0x24($s0) -/* 09BBD0 7F067060 8E0E0018 */ lw $t6, 0x18($s0) -/* 09BBD4 7F067064 240F0018 */ li $t7, 24 -/* 09BBD8 7F067068 51C00004 */ beql $t6, $zero, .Ljp7F06707C -/* 09BBDC 7F06706C 8E190020 */ lw $t9, 0x20($s0) -/* 09BBE0 7F067070 1000001C */ b .Ljp7F0670E4 -/* 09BBE4 7F067074 AE0F0024 */ sw $t7, 0x24($s0) -/* 09BBE8 7F067078 8E190020 */ lw $t9, 0x20($s0) -.Ljp7F06707C: -/* 09BBEC 7F06707C 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 -/* 09BBF0 7F067080 2606007C */ addiu $a2, $s0, 0x7c -/* 09BBF4 7F067084 44994000 */ mtc1 $t9, $f8 -/* 09BBF8 7F067088 AFA60034 */ sw $a2, 0x34($sp) -/* 09BBFC 7F06708C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 -/* 09BC00 7F067090 46804020 */ cvt.s.w $f0, $f8 -/* 09BC04 7F067094 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BC08 7F067098 44050000 */ mfc1 $a1, $f0 -/* 09BC0C 7F06709C 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BC10 7F0670A0 00000000 */ nop -/* 09BC14 7F0670A4 10400004 */ beqz $v0, .Ljp7F0670B8 -/* 09BC18 7F0670A8 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 -/* 09BC1C 7F0670AC 24180001 */ li $t8, 1 -/* 09BC20 7F0670B0 1000000C */ b .Ljp7F0670E4 -/* 09BC24 7F0670B4 AE1800BC */ sw $t8, 0xbc($s0) -.Ljp7F0670B8: -/* 09BC28 7F0670B8 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c -/* 09BC2C 7F0670BC 24050000 */ li $a1, 0 -/* 09BC30 7F0670C0 8FA60034 */ lw $a2, 0x34($sp) -/* 09BC34 7F0670C4 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BC38 7F0670C8 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BC3C 7F0670CC 10400004 */ beqz $v0, .Ljp7F0670E0 -/* 09BC40 7F0670D0 240F0018 */ li $t7, 24 -/* 09BC44 7F0670D4 240E0001 */ li $t6, 1 -/* 09BC48 7F0670D8 10000002 */ b .Ljp7F0670E4 -/* 09BC4C 7F0670DC AE0E00BC */ sw $t6, 0xbc($s0) -.Ljp7F0670E0: -/* 09BC50 7F0670E0 AE0F0024 */ sw $t7, 0x24($s0) -.Ljp7F0670E4: -/* 09BC54 7F0670E4 10000004 */ b .Ljp7F0670F8 -/* 09BC58 7F0670E8 8E020024 */ lw $v0, 0x24($s0) -/* 09BC5C 7F0670EC AE000024 */ sw $zero, 0x24($s0) -.Ljp7F0670F0: -/* 09BC60 7F0670F0 AE000020 */ sw $zero, 0x20($s0) -/* 09BC64 7F0670F4 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F0670F8: -/* 09BC68 7F0670F8 24010018 */ li $at, 24 -.Ljp7F0670FC: -/* 09BC6C 7F0670FC 54410023 */ bnel $v0, $at, .Ljp7F06718C -/* 09BC70 7F067100 24010019 */ li $at, 25 -/* 09BC74 7F067104 8E19002C */ lw $t9, 0x2c($s0) -/* 09BC78 7F067108 00001025 */ move $v0, $zero -/* 09BC7C 7F06710C 5B20001C */ blezl $t9, .Ljp7F067180 -/* 09BC80 7F067110 AE000024 */ sw $zero, 0x24($s0) -/* 09BC84 7F067114 8E180020 */ lw $t8, 0x20($s0) -/* 09BC88 7F067118 3C048003 */ lui $a0, %hi(D_80034F74) # $a0, 0x8003 -/* 09BC8C 7F06711C 24844FB4 */ addiu $a0, %lo(D_80034F74) # addiu $a0, $a0, 0x4fb4 -/* 09BC90 7F067120 44983000 */ mtc1 $t8, $f6 -/* 09BC94 7F067124 2606007C */ addiu $a2, $s0, 0x7c -/* 09BC98 7F067128 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BC9C 7F06712C 46803020 */ cvt.s.w $f0, $f6 -/* 09BCA0 7F067130 44050000 */ mfc1 $a1, $f0 -/* 09BCA4 7F067134 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BCA8 7F067138 00000000 */ nop -/* 09BCAC 7F06713C 10400004 */ beqz $v0, .Ljp7F067150 -/* 09BCB0 7F067140 240F0001 */ li $t7, 1 -/* 09BCB4 7F067144 240E0001 */ li $t6, 1 -/* 09BCB8 7F067148 1000000A */ b .Ljp7F067174 -/* 09BCBC 7F06714C AE0E00BC */ sw $t6, 0xbc($s0) -.Ljp7F067150: -/* 09BCC0 7F067150 8E19002C */ lw $t9, 0x2c($s0) -/* 09BCC4 7F067154 240E0019 */ li $t6, 25 -/* 09BCC8 7F067158 A200000E */ sb $zero, 0xe($s0) -/* 09BCCC 7F06715C 2738FFFF */ addiu $t8, $t9, -1 -/* 09BCD0 7F067160 A20F000C */ sb $t7, 0xc($s0) -/* 09BCD4 7F067164 AE18002C */ sw $t8, 0x2c($s0) -/* 09BCD8 7F067168 AE0E0024 */ sw $t6, 0x24($s0) -/* 09BCDC 7F06716C AE000020 */ sw $zero, 0x20($s0) -/* 09BCE0 7F067170 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F067174: -/* 09BCE4 7F067174 10000004 */ b .Ljp7F067188 -/* 09BCE8 7F067178 8E020024 */ lw $v0, 0x24($s0) -/* 09BCEC 7F06717C AE000024 */ sw $zero, 0x24($s0) -.Ljp7F067180: -/* 09BCF0 7F067180 AE000020 */ sw $zero, 0x20($s0) -/* 09BCF4 7F067184 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F067188: -/* 09BCF8 7F067188 24010019 */ li $at, 25 -.Ljp7F06718C: -/* 09BCFC 7F06718C 54410017 */ bnel $v0, $at, .Ljp7F0671EC -/* 09BD00 7F067190 2401001C */ li $at, 28 -/* 09BD04 7F067194 8E0F0020 */ lw $t7, 0x20($s0) -/* 09BD08 7F067198 3C048003 */ lui $a0, %hi(D_8003504C) # $a0, 0x8003 -/* 09BD0C 7F06719C 2484508C */ addiu $a0, %lo(D_8003504C) # addiu $a0, $a0, 0x508c -/* 09BD10 7F0671A0 448F5000 */ mtc1 $t7, $f10 -/* 09BD14 7F0671A4 2606007C */ addiu $a2, $s0, 0x7c -/* 09BD18 7F0671A8 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BD1C 7F0671AC 46805020 */ cvt.s.w $f0, $f10 -/* 09BD20 7F0671B0 44050000 */ mfc1 $a1, $f0 -/* 09BD24 7F0671B4 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BD28 7F0671B8 00000000 */ nop -/* 09BD2C 7F0671BC 10400005 */ beqz $v0, .Ljp7F0671D4 -/* 09BD30 7F0671C0 24180001 */ li $t8, 1 -/* 09BD34 7F0671C4 24190001 */ li $t9, 1 -/* 09BD38 7F0671C8 AE1900BC */ sw $t9, 0xbc($s0) -/* 09BD3C 7F0671CC 10000006 */ b .Ljp7F0671E8 -/* 09BD40 7F0671D0 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F0671D4: -/* 09BD44 7F0671D4 A218000E */ sb $t8, 0xe($s0) -/* 09BD48 7F0671D8 AE000024 */ sw $zero, 0x24($s0) -/* 09BD4C 7F0671DC AE000020 */ sw $zero, 0x20($s0) -/* 09BD50 7F0671E0 AE00001C */ sw $zero, 0x1c($s0) -/* 09BD54 7F0671E4 00001025 */ move $v0, $zero -.Ljp7F0671E8: -/* 09BD58 7F0671E8 2401001C */ li $at, 28 -.Ljp7F0671EC: -/* 09BD5C 7F0671EC 54410028 */ bnel $v0, $at, .Ljp7F067290 -/* 09BD60 7F0671F0 2401001D */ li $at, 29 -/* 09BD64 7F0671F4 8E0E002C */ lw $t6, 0x2c($s0) -/* 09BD68 7F0671F8 02202025 */ move $a0, $s1 -/* 09BD6C 7F0671FC 5DC00006 */ bgtzl $t6, .Ljp7F067218 -/* 09BD70 7F067200 8E0F0020 */ lw $t7, 0x20($s0) -/* 09BD74 7F067204 0FC17975 */ jal bondwalkItemCheckBitflags -/* 09BD78 7F067208 24050010 */ li $a1, 16 -/* 09BD7C 7F06720C 5040001C */ beql $v0, $zero, .Ljp7F067280 -/* 09BD80 7F067210 AE000024 */ sw $zero, 0x24($s0) -/* 09BD84 7F067214 8E0F0020 */ lw $t7, 0x20($s0) -.Ljp7F067218: -/* 09BD88 7F067218 3C048003 */ lui $a0, %hi(D_800352D4) # $a0, 0x8003 -/* 09BD8C 7F06721C 24845314 */ addiu $a0, %lo(D_800352D4) # addiu $a0, $a0, 0x5314 -/* 09BD90 7F067220 448F2000 */ mtc1 $t7, $f4 -/* 09BD94 7F067224 2606007C */ addiu $a2, $s0, 0x7c -/* 09BD98 7F067228 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BD9C 7F06722C 46802020 */ cvt.s.w $f0, $f4 -/* 09BDA0 7F067230 44050000 */ mfc1 $a1, $f0 -/* 09BDA4 7F067234 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BDA8 7F067238 00000000 */ nop -/* 09BDAC 7F06723C 10400004 */ beqz $v0, .Ljp7F067250 -/* 09BDB0 7F067240 24180001 */ li $t8, 1 -/* 09BDB4 7F067244 24190001 */ li $t9, 1 -/* 09BDB8 7F067248 1000000A */ b .Ljp7F067274 -/* 09BDBC 7F06724C AE1900BC */ sw $t9, 0xbc($s0) -.Ljp7F067250: -/* 09BDC0 7F067250 8E0E002C */ lw $t6, 0x2c($s0) -/* 09BDC4 7F067254 2419001D */ li $t9, 29 -/* 09BDC8 7F067258 A200000E */ sb $zero, 0xe($s0) -/* 09BDCC 7F06725C 25CFFFFF */ addiu $t7, $t6, -1 -/* 09BDD0 7F067260 A218000C */ sb $t8, 0xc($s0) -/* 09BDD4 7F067264 AE0F002C */ sw $t7, 0x2c($s0) -/* 09BDD8 7F067268 AE190024 */ sw $t9, 0x24($s0) -/* 09BDDC 7F06726C AE000020 */ sw $zero, 0x20($s0) -/* 09BDE0 7F067270 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F067274: -/* 09BDE4 7F067274 10000005 */ b .Ljp7F06728C -/* 09BDE8 7F067278 8E020024 */ lw $v0, 0x24($s0) -/* 09BDEC 7F06727C AE000024 */ sw $zero, 0x24($s0) -.Ljp7F067280: -/* 09BDF0 7F067280 AE000020 */ sw $zero, 0x20($s0) -/* 09BDF4 7F067284 AE00001C */ sw $zero, 0x1c($s0) -/* 09BDF8 7F067288 00001025 */ move $v0, $zero -.Ljp7F06728C: -/* 09BDFC 7F06728C 2401001D */ li $at, 29 -.Ljp7F067290: -/* 09BE00 7F067290 54410017 */ bnel $v0, $at, .Ljp7F0672F0 -/* 09BE04 7F067294 24010024 */ li $at, 36 -/* 09BE08 7F067298 8E180020 */ lw $t8, 0x20($s0) -/* 09BE0C 7F06729C 3C048003 */ lui $a0, %hi(D_800353AC) # $a0, 0x8003 -/* 09BE10 7F0672A0 248453EC */ addiu $a0, %lo(D_800353AC) # addiu $a0, $a0, 0x53ec -/* 09BE14 7F0672A4 44984000 */ mtc1 $t8, $f8 -/* 09BE18 7F0672A8 2606007C */ addiu $a2, $s0, 0x7c -/* 09BE1C 7F0672AC 8FA701E0 */ lw $a3, 0x1e0($sp) -/* 09BE20 7F0672B0 46804020 */ cvt.s.w $f0, $f8 -/* 09BE24 7F0672B4 44050000 */ mfc1 $a1, $f0 -/* 09BE28 7F0672B8 0FC17307 */ jal sub_GAME_7F05C6FC -/* 09BE2C 7F0672BC 00000000 */ nop -/* 09BE30 7F0672C0 10400005 */ beqz $v0, .Ljp7F0672D8 -/* 09BE34 7F0672C4 240F0001 */ li $t7, 1 -/* 09BE38 7F0672C8 240E0001 */ li $t6, 1 -/* 09BE3C 7F0672CC AE0E00BC */ sw $t6, 0xbc($s0) -/* 09BE40 7F0672D0 10000006 */ b .Ljp7F0672EC -/* 09BE44 7F0672D4 8E020024 */ lw $v0, 0x24($s0) -.Ljp7F0672D8: -/* 09BE48 7F0672D8 A20F000E */ sb $t7, 0xe($s0) -/* 09BE4C 7F0672DC AE000024 */ sw $zero, 0x24($s0) -/* 09BE50 7F0672E0 AE000020 */ sw $zero, 0x20($s0) -/* 09BE54 7F0672E4 AE00001C */ sw $zero, 0x1c($s0) -/* 09BE58 7F0672E8 00001025 */ move $v0, $zero -.Ljp7F0672EC: -/* 09BE5C 7F0672EC 24010024 */ li $at, 36 -.Ljp7F0672F0: -/* 09BE60 7F0672F0 1441004D */ bne $v0, $at, .Ljp7F067428 -/* 09BE64 7F0672F4 2401002E */ li $at, 46 -/* 09BE68 7F0672F8 56210009 */ bnel $s1, $at, .Ljp7F067320 -/* 09BE6C 7F0672FC 2401002C */ li $at, 44 -/* 09BE70 7F067300 8E19001C */ lw $t9, 0x1c($s0) -/* 09BE74 7F067304 17200003 */ bnez $t9, .Ljp7F067314 -/* 09BE78 7F067308 00000000 */ nop -/* 09BE7C 7F06730C 0FC19D0F */ jal sub_GAME_7F066E64 -/* 09BE80 7F067310 00000000 */ nop -.Ljp7F067314: -/* 09BE84 7F067314 1000003F */ b .Ljp7F067414 -/* 09BE88 7F067318 8E050018 */ lw $a1, 0x18($s0) -/* 09BE8C 7F06731C 2401002C */ li $at, 44 -.Ljp7F067320: -/* 09BE90 7F067320 56210009 */ bnel $s1, $at, .Ljp7F067348 -/* 09BE94 7F067324 24010027 */ li $at, 39 -/* 09BE98 7F067328 8E18001C */ lw $t8, 0x1c($s0) -/* 09BE9C 7F06732C 17000003 */ bnez $t8, .Ljp7F06733C -/* 09BEA0 7F067330 00000000 */ nop -/* 09BEA4 7F067334 0FC19D38 */ jal sub_GAME_7F066F08 -/* 09BEA8 7F067338 00000000 */ nop -.Ljp7F06733C: -/* 09BEAC 7F06733C 10000035 */ b .Ljp7F067414 -/* 09BEB0 7F067340 8E050018 */ lw $a1, 0x18($s0) -/* 09BEB4 7F067344 24010027 */ li $at, 39 -.Ljp7F067348: -/* 09BEB8 7F067348 12210009 */ beq $s1, $at, .Ljp7F067370 -/* 09BEBC 7F06734C 24010037 */ li $at, 55 -/* 09BEC0 7F067350 12210007 */ beq $s1, $at, .Ljp7F067370 -/* 09BEC4 7F067354 24010026 */ li $at, 38 -/* 09BEC8 7F067358 12210005 */ beq $s1, $at, .Ljp7F067370 -/* 09BECC 7F06735C 24010032 */ li $at, 50 -/* 09BED0 7F067360 12210003 */ beq $s1, $at, .Ljp7F067370 -/* 09BED4 7F067364 24010049 */ li $at, 73 -/* 09BED8 7F067368 5621000F */ bnel $s1, $at, .Ljp7F0673A8 -/* 09BEDC 7F06736C 24010033 */ li $at, 51 -.Ljp7F067370: -/* 09BEE0 7F067370 8E0E001C */ lw $t6, 0x1c($s0) -/* 09BEE4 7F067374 15C00009 */ bnez $t6, .Ljp7F06739C -/* 09BEE8 7F067378 00000000 */ nop -/* 09BEEC 7F06737C 0FC0F1BF */ jal sub_GAME_7F03C3FC -/* 09BEF0 7F067380 00000000 */ nop -/* 09BEF4 7F067384 10400005 */ beqz $v0, .Ljp7F06739C -/* 09BEF8 7F067388 00000000 */ nop -/* 09BEFC 7F06738C 8C430004 */ lw $v1, 4($v0) -/* 09BF00 7F067390 906F0002 */ lbu $t7, 2($v1) -/* 09BF04 7F067394 35F90040 */ ori $t9, $t7, 0x40 -/* 09BF08 7F067398 A0790002 */ sb $t9, 2($v1) -.Ljp7F06739C: -/* 09BF0C 7F06739C 1000001D */ b .Ljp7F067414 -/* 09BF10 7F0673A0 8E050018 */ lw $a1, 0x18($s0) -/* 09BF14 7F0673A4 24010033 */ li $at, 51 -.Ljp7F0673A8: -/* 09BF18 7F0673A8 1221001A */ beq $s1, $at, .Ljp7F067414 -/* 09BF1C 7F0673AC 8E050018 */ lw $a1, 0x18($s0) -/* 09BF20 7F0673B0 24010034 */ li $at, 52 -/* 09BF24 7F0673B4 12210017 */ beq $s1, $at, .Ljp7F067414 -/* 09BF28 7F0673B8 2401003A */ li $at, 58 -/* 09BF2C 7F0673BC 12210015 */ beq $s1, $at, .Ljp7F067414 -/* 09BF30 7F0673C0 2401003B */ li $at, 59 -/* 09BF34 7F0673C4 12210013 */ beq $s1, $at, .Ljp7F067414 -/* 09BF38 7F0673C8 24010051 */ li $at, 81 -/* 09BF3C 7F0673CC 12210011 */ beq $s1, $at, .Ljp7F067414 -/* 09BF40 7F0673D0 24010052 */ li $at, 82 -/* 09BF44 7F0673D4 1221000F */ beq $s1, $at, .Ljp7F067414 -/* 09BF48 7F0673D8 24010053 */ li $at, 83 -/* 09BF4C 7F0673DC 1221000D */ beq $s1, $at, .Ljp7F067414 -/* 09BF50 7F0673E0 2401002D */ li $at, 45 -/* 09BF54 7F0673E4 1221000B */ beq $s1, $at, .Ljp7F067414 -/* 09BF58 7F0673E8 24010029 */ li $at, 41 -/* 09BF5C 7F0673EC 12210009 */ beq $s1, $at, .Ljp7F067414 -/* 09BF60 7F0673F0 2401002A */ li $at, 42 -/* 09BF64 7F0673F4 12210007 */ beq $s1, $at, .Ljp7F067414 -/* 09BF68 7F0673F8 24010035 */ li $at, 53 -/* 09BF6C 7F0673FC 12210005 */ beq $s1, $at, .Ljp7F067414 -/* 09BF70 7F067400 24010036 */ li $at, 54 -/* 09BF74 7F067404 12210003 */ beq $s1, $at, .Ljp7F067414 -/* 09BF78 7F067408 24010025 */ li $at, 37 -/* 09BF7C 7F06740C 12210001 */ beq $s1, $at, .Ljp7F067414 -/* 09BF80 7F067410 00000000 */ nop -.Ljp7F067414: -/* 09BF84 7F067414 50A00005 */ beql $a1, $zero, .Ljp7F06742C -/* 09BF88 7F067418 8FBF0024 */ lw $ra, 0x24($sp) -/* 09BF8C 7F06741C AE000024 */ sw $zero, 0x24($s0) -/* 09BF90 7F067420 AE000020 */ sw $zero, 0x20($s0) -/* 09BF94 7F067424 AE00001C */ sw $zero, 0x1c($s0) -.Ljp7F067428: -/* 09BF98 7F067428 8FBF0024 */ lw $ra, 0x24($sp) -.Ljp7F06742C: -/* 09BF9C 7F06742C 8FB0001C */ lw $s0, 0x1c($sp) -/* 09BFA0 7F067430 8FB10020 */ lw $s1, 0x20($sp) -/* 09BFA4 7F067434 03E00008 */ jr $ra -/* 09BFA8 7F067438 27BD01E0 */ addiu $sp, $sp, 0x1e0 -) -#endif #endif -void sub_GAME_7F066E64(void) +void analyzeGEKey(void) { - if (sub_GAME_7F08CF0C()) + if (checkHasGEKey()) { #ifndef VERSION_JP - display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LGUN, 0xD8))); //Analyzing the GoldenEye key... #else - jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d8)); + jp_display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LGUN, 0xD8))); //Analyzing the GoldenEye key... #endif pPlayer->copiedgoldeneye = 1; - play_sfx_a1(ptr_sfx_buf, 0xf5, 0x0); + play_sfx_a1(g_musicSfxBufferPtr, 0xf5, 0x0); draw_item_in_hand_has_more_ammo(RIGHT_HAND, ITEM_GOLDENEYEKEY); draw_item_in_hand_has_more_ammo(LEFT_HAND, ITEM_UNARMED); } else { #ifndef VERSION_JP - display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LGUN, 0xD9))); //You do not have the GoldenEye key. #else - jp_display_string_in_lower_left_corner(get_textptr_for_textID(0x98d9)); + jp_display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LGUN, 0xD9))); //You do not have the GoldenEye key. #endif sub_GAME_7F05D690(); } @@ -18772,12 +23831,12 @@ int get_keyanalyzer_flag(void) void sub_GAME_7F066F08(void) { - add_ammo_to_inventory(AMMO_KNIFE,2,0,1); - add_ammo_to_inventory(AMMO_GRENADE,2,0,1); + add_ammo_to_inventory(AMMO_KNIFE, 2, 0, 1); + add_ammo_to_inventory(AMMO_GRENADE, 2, 0, 1); add_item_to_inventory(ITEM_SNIPERRIFLE); set_sound_effect_for_weapontype_collection(ITEM_SNIPERRIFLE); display_text_for_weapon_in_lower_left_corner(ITEM_SNIPERRIFLE); - give_cur_player_ammo(GsniperrifleZ_stats.ammotype,check_cur_player_ammo_amount_in_inventory(GsniperrifleZ_stats.ammotype) + GsniperrifleZ_stats.mag_size); + give_cur_player_ammo(GsniperrifleZ_stats.AmmoType, check_cur_player_ammo_amount_in_inventory(GsniperrifleZ_stats.AmmoType) + GsniperrifleZ_stats.MagSize); sub_GAME_7F08C61C(0x2c); draw_item_in_hand_has_more_ammo(RIGHT_HAND,ITEM_SNIPERRIFLE); draw_item_in_hand_has_more_ammo(LEFT_HAND,ITEM_UNARMED); @@ -18904,8 +23963,8 @@ void sub_GAME_7F0671A4(void) { ITEM_IDS item; ITEM_IDS item_00; - struct weapon_stats *pwVar2; - struct weapon_stats *pwVar3; + struct WeaponStats *pwVar2; + struct WeaponStats *pwVar3; float fVar4; float fVar5; @@ -19573,8 +24632,8 @@ glabel sub_GAME_7F067420 /* 09C570 7F067A40 AFA70034 */ sw $a3, 0x34($sp) /* 09C574 7F067A44 14400012 */ bnez $v0, .L7F067A90 /* 09C578 7F067A48 8FA70034 */ lw $a3, 0x34($sp) -/* 09C57C 7F067A4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 09C580 7F067A50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09C57C 7F067A4C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 09C580 7F067A50 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 09C584 7F067A54 240500F6 */ li $a1, 246 /* 09C588 7F067A58 0C002382 */ jal play_sfx_a1 /* 09C58C 7F067A5C 24E601D4 */ addiu $a2, $a3, 0x1d4 @@ -20027,6 +25086,33 @@ glabel sub_GAME_7F067FBC ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F067FBC +/* 09CAEC 7F067FBC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 09CAF0 7F067FC0 AFBF0014 */ sw $ra, 0x14($sp) +/* 09CAF4 7F067FC4 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 09CAF8 7F067FC8 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 09CAFC 7F067FCC 0FC17674 */ jal get_item_in_hand +/* 09CB00 7F067FD0 00002025 */ move $a0, $zero +/* 09CB04 7F067FD4 0FC1722D */ jal get_ptr_item_statistics +/* 09CB08 7F067FD8 00402025 */ move $a0, $v0 +/* 09CB0C 7F067FDC C4400038 */ lwc1 $f0, 0x38($v0) +/* 09CB10 7F067FE0 C442003C */ lwc1 $f2, 0x3c($v0) +/* 09CB14 7F067FE4 C7AC0018 */ lwc1 $f12, 0x18($sp) +/* 09CB18 7F067FE8 44060000 */ mfc1 $a2, $f0 +/* 09CB1C 7F067FEC 44071000 */ mfc1 $a3, $f2 +/* 09CB20 7F067FF0 0FC19EE5 */ jal caclulate_gun_crosshair_position_rotation +/* 09CB24 7F067FF4 C7AE001C */ lwc1 $f14, 0x1c($sp) +/* 09CB28 7F067FF8 8FBF0014 */ lw $ra, 0x14($sp) +/* 09CB2C 7F067FFC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 09CB30 7F068000 03E00008 */ jr $ra +/* 09CB34 7F068004 00000000 */ nop +) +#endif + + #endif void get_bullet_angle(f32* horizontal_angle, f32* vertical_angle) { @@ -20220,8 +25306,8 @@ void sub_GAME_7F0681CC(void *arg0, s32 arg1, s32 arg2) { } // Node 3 sp24 = (f32) ((120.0f * sp28) / viGetFovY()); - sp1C = get_random_value(); - temp_ret = get_random_value(); + sp1C = randomGetNext(); + temp_ret = randomGetNext(); temp_f10 = (f32) sp1C; phi_f10 = temp_f10; if (sp1C < 0) @@ -20241,8 +25327,8 @@ void sub_GAME_7F0681CC(void *arg0, s32 arg1, s32 arg2) { sp20 = (f32) ((phi_f16 * 2.3283064365386963e-10f) * ((phi_f10 * 2.3283064365386963e-10f) - 0.5f)); sp18 = getPlayer_c_screenwidth(); sp30 = (f32) (((((sp20 * sp24) * sp18) * D_800543B0) / (getPlayer_c_perspaspect() * 320.0f)) + pPlayer->unkFE8); - sp1C = get_random_value(); - temp_ret_2 = get_random_value(); + sp1C = randomGetNext(); + temp_ret_2 = randomGetNext(); temp_f8 = (f32) sp1C; phi_f8 = temp_f8; if (sp1C < 0) @@ -20319,9 +25405,9 @@ glabel sub_GAME_7F0681CC /* 09CDA4 7F068274 C7B20028 */ lwc1 $f18, 0x28($sp) /* 09CDA8 7F068278 46128102 */ mul.s $f4, $f16, $f18 /* 09CDAC 7F06827C 46002183 */ div.s $f6, $f4, $f0 -/* 09CDB0 7F068280 0C002914 */ jal get_random_value +/* 09CDB0 7F068280 0C002914 */ jal randomGetNext /* 09CDB4 7F068284 E7A60024 */ swc1 $f6, 0x24($sp) -/* 09CDB8 7F068288 0C002914 */ jal get_random_value +/* 09CDB8 7F068288 0C002914 */ jal randomGetNext /* 09CDBC 7F06828C AFA2001C */ sw $v0, 0x1c($sp) /* 09CDC0 7F068290 8FA9001C */ lw $t1, 0x1c($sp) /* 09CDC4 7F068294 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -20370,9 +25456,9 @@ glabel sub_GAME_7F0681CC /* 09CE68 7F068338 460A0402 */ mul.s $f16, $f0, $f10 /* 09CE6C 7F06833C 46104483 */ div.s $f18, $f8, $f16 /* 09CE70 7F068340 46069100 */ add.s $f4, $f18, $f6 -/* 09CE74 7F068344 0C002914 */ jal get_random_value +/* 09CE74 7F068344 0C002914 */ jal randomGetNext /* 09CE78 7F068348 E7A40030 */ swc1 $f4, 0x30($sp) -/* 09CE7C 7F06834C 0C002914 */ jal get_random_value +/* 09CE7C 7F06834C 0C002914 */ jal randomGetNext /* 09CE80 7F068350 AFA2001C */ sw $v0, 0x1c($sp) /* 09CE84 7F068354 8FAB001C */ lw $t3, 0x1c($sp) /* 09CE88 7F068358 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -20442,7 +25528,7 @@ u32 sub_GAME_7F068420(s32 arg0, void *arg1) { // Node 0 phi_v1_2 = &dword_CODE_bss_80075DC8; - if (dword_CODE_bss_80075E64 != 0) + if (dword_CODE_bss_80075DC8+0x9C != 0) { // Node 1 phi_v1 = &dword_CODE_bss_80075DC8; @@ -20493,8 +25579,8 @@ u32 sub_GAME_7F068420(s32 arg0, void *arg1) { GLOBAL_ASM( .text glabel sub_GAME_7F068420 -/* 09CF50 7F068420 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075E64) -/* 09CF54 7F068424 8DCE5E64 */ lw $t6, %lo(dword_CODE_bss_80075E64)($t6) +/* 09CF50 7F068420 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80075DC8+0x9C) +/* 09CF54 7F068424 8DCE5E64 */ lw $t6, %lo(dword_CODE_bss_80075DC8+0x9C)($t6) /* 09CF58 7F068428 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075DC8) /* 09CF5C 7F06842C 24635DC8 */ addiu $v1, %lo(dword_CODE_bss_80075DC8) # addiu $v1, $v1, 0x5dc8 /* 09CF60 7F068430 11C00009 */ beqz $t6, .L7F068458 @@ -20707,7 +25793,7 @@ glabel sub_GAME_7F068508 /* 09D1A4 7F068674 146100D3 */ bne $v1, $at, .L7F0689C4 /* 09D1A8 7F068678 00000000 */ nop .L7F06867C: -/* 09D1AC 7F06867C 0C002914 */ jal get_random_value +/* 09D1AC 7F06867C 0C002914 */ jal randomGetNext /* 09D1B0 7F068680 00000000 */ nop /* 09D1B4 7F068684 44824000 */ mtc1 $v0, $f8 /* 09D1B8 7F068688 3C018005 */ lui $at, %hi(D_800543B8) @@ -20730,7 +25816,7 @@ glabel sub_GAME_7F068508 /* 09D1F8 7F0686C8 46124282 */ mul.s $f10, $f8, $f18 /* 09D1FC 7F0686CC 46005100 */ add.s $f4, $f10, $f0 /* 09D200 7F0686D0 46002187 */ neg.s $f6, $f4 -/* 09D204 7F0686D4 0C002914 */ jal get_random_value +/* 09D204 7F0686D4 0C002914 */ jal randomGetNext /* 09D208 7F0686D8 E6060010 */ swc1 $f6, 0x10($s0) /* 09D20C 7F0686DC 44824000 */ mtc1 $v0, $f8 /* 09D210 7F0686E0 3C014020 */ li $at, 0x40200000 # 2.500000 @@ -20760,7 +25846,7 @@ glabel sub_GAME_7F068508 /* 09D26C 7F06873C 01912021 */ addu $a0, $t4, $s1 /* 09D270 7F068740 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place /* 09D274 7F068744 24840AD8 */ addiu $a0, $a0, 0xad8 -/* 09D278 7F068748 0C002914 */ jal get_random_value +/* 09D278 7F068748 0C002914 */ jal randomGetNext /* 09D27C 7F06874C 00000000 */ nop /* 09D280 7F068750 44824000 */ mtc1 $v0, $f8 /* 09D284 7F068754 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -20783,7 +25869,7 @@ glabel sub_GAME_7F068508 /* 09D2C4 7F068794 C42643C0 */ lwc1 $f6, %lo(D_800543C0)($at) /* 09D2C8 7F068798 460A9102 */ mul.s $f4, $f18, $f10 /* 09D2CC 7F06879C 46062201 */ sub.s $f8, $f4, $f6 -/* 09D2D0 7F0687A0 0C002914 */ jal get_random_value +/* 09D2D0 7F0687A0 0C002914 */ jal randomGetNext /* 09D2D4 7F0687A4 E7A80054 */ swc1 $f8, 0x54($sp) /* 09D2D8 7F0687A8 44829000 */ mtc1 $v0, $f18 /* 09D2DC 7F0687AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -20806,7 +25892,7 @@ glabel sub_GAME_7F068508 /* 09D31C 7F0687EC C42843C8 */ lwc1 $f8, %lo(D_800543C8)($at) /* 09D320 7F0687F0 460A2182 */ mul.s $f6, $f4, $f10 /* 09D324 7F0687F4 46083481 */ sub.s $f18, $f6, $f8 -/* 09D328 7F0687F8 0C002914 */ jal get_random_value +/* 09D328 7F0687F8 0C002914 */ jal randomGetNext /* 09D32C 7F0687FC E7B20058 */ swc1 $f18, 0x58($sp) /* 09D330 7F068800 44822000 */ mtc1 $v0, $f4 /* 09D334 7F068804 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -20833,7 +25919,7 @@ glabel sub_GAME_7F068508 /* 09D384 7F068854 46124101 */ sub.s $f4, $f8, $f18 /* 09D388 7F068858 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz /* 09D38C 7F06885C E7A4005C */ swc1 $f4, 0x5c($sp) -/* 09D390 7F068860 0C002914 */ jal get_random_value +/* 09D390 7F068860 0C002914 */ jal randomGetNext /* 09D394 7F068864 00000000 */ nop /* 09D398 7F068868 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 /* 09D39C 7F06886C 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 @@ -20842,7 +25928,7 @@ glabel sub_GAME_7F068508 /* 09D3A8 7F068878 00007012 */ mflo $t6 /* 09D3AC 7F06887C 000E7A83 */ sra $t7, $t6, 0xa /* 09D3B0 7F068880 01E3C021 */ addu $t8, $t7, $v1 -/* 09D3B4 7F068884 0C002914 */ jal get_random_value +/* 09D3B4 7F068884 0C002914 */ jal randomGetNext /* 09D3B8 7F068888 AFB8004C */ sw $t8, 0x4c($sp) /* 09D3BC 7F06888C 8FB9004C */ lw $t9, 0x4c($sp) /* 09D3C0 7F068890 C60C0014 */ lwc1 $f12, 0x14($s0) @@ -20925,7 +26011,7 @@ glabel sub_GAME_7F068508 /* 09D4EC 7F0689BC 100000D3 */ b .L7F068D0C /* 09D4F0 7F0689C0 E6080018 */ swc1 $f8, 0x18($s0) .L7F0689C4: -/* 09D4F4 7F0689C4 0C002914 */ jal get_random_value +/* 09D4F4 7F0689C4 0C002914 */ jal randomGetNext /* 09D4F8 7F0689C8 00000000 */ nop /* 09D4FC 7F0689CC 44825000 */ mtc1 $v0, $f10 /* 09D500 7F0689D0 3C018005 */ lui $at, %hi(D_800543DC) @@ -20948,7 +26034,7 @@ glabel sub_GAME_7F068508 /* 09D540 7F068A10 46125182 */ mul.s $f6, $f10, $f18 /* 09D544 7F068A14 46003100 */ add.s $f4, $f6, $f0 /* 09D548 7F068A18 46002207 */ neg.s $f8, $f4 -/* 09D54C 7F068A1C 0C002914 */ jal get_random_value +/* 09D54C 7F068A1C 0C002914 */ jal randomGetNext /* 09D550 7F068A20 E6080010 */ swc1 $f8, 0x10($s0) /* 09D554 7F068A24 44825000 */ mtc1 $v0, $f10 /* 09D558 7F068A28 3C018005 */ lui $at, %hi(D_800543E0) @@ -20978,7 +26064,7 @@ glabel sub_GAME_7F068508 /* 09D5B4 7F068A84 01B12021 */ addu $a0, $t5, $s1 /* 09D5B8 7F068A88 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place /* 09D5BC 7F068A8C 24840AD8 */ addiu $a0, $a0, 0xad8 -/* 09D5C0 7F068A90 0C002914 */ jal get_random_value +/* 09D5C0 7F068A90 0C002914 */ jal randomGetNext /* 09D5C4 7F068A94 00000000 */ nop /* 09D5C8 7F068A98 44825000 */ mtc1 $v0, $f10 /* 09D5CC 7F068A9C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -21001,7 +26087,7 @@ glabel sub_GAME_7F068508 /* 09D60C 7F068ADC C42843E8 */ lwc1 $f8, %lo(D_800543E8)($at) /* 09D610 7F068AE0 46069102 */ mul.s $f4, $f18, $f6 /* 09D614 7F068AE4 46082281 */ sub.s $f10, $f4, $f8 -/* 09D618 7F068AE8 0C002914 */ jal get_random_value +/* 09D618 7F068AE8 0C002914 */ jal randomGetNext /* 09D61C 7F068AEC E7AA0054 */ swc1 $f10, 0x54($sp) /* 09D620 7F068AF0 44829000 */ mtc1 $v0, $f18 /* 09D624 7F068AF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -21024,7 +26110,7 @@ glabel sub_GAME_7F068508 /* 09D664 7F068B34 C42A43F0 */ lwc1 $f10, %lo(D_800543F0)($at) /* 09D668 7F068B38 46062202 */ mul.s $f8, $f4, $f6 /* 09D66C 7F068B3C 460A4481 */ sub.s $f18, $f8, $f10 -/* 09D670 7F068B40 0C002914 */ jal get_random_value +/* 09D670 7F068B40 0C002914 */ jal randomGetNext /* 09D674 7F068B44 E7B20058 */ swc1 $f18, 0x58($sp) /* 09D678 7F068B48 44822000 */ mtc1 $v0, $f4 /* 09D67C 7F068B4C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -21051,7 +26137,7 @@ glabel sub_GAME_7F068508 /* 09D6CC 7F068B9C 46125101 */ sub.s $f4, $f10, $f18 /* 09D6D0 7F068BA0 0FC161C5 */ jal matrix_4x4_set_rotation_around_xyz /* 09D6D4 7F068BA4 E7A4005C */ swc1 $f4, 0x5c($sp) -/* 09D6D8 7F068BA8 0C002914 */ jal get_random_value +/* 09D6D8 7F068BA8 0C002914 */ jal randomGetNext /* 09D6DC 7F068BAC 00000000 */ nop /* 09D6E0 7F068BB0 3C030015 */ lui $v1, (0x00158679 >> 16) # lui $v1, 0x15 /* 09D6E4 7F068BB4 34638679 */ ori $v1, (0x00158679 & 0xFFFF) # ori $v1, $v1, 0x8679 @@ -21060,7 +26146,7 @@ glabel sub_GAME_7F068508 /* 09D6F0 7F068BC0 00007812 */ mflo $t7 /* 09D6F4 7F068BC4 000FC283 */ sra $t8, $t7, 0xa /* 09D6F8 7F068BC8 0303C821 */ addu $t9, $t8, $v1 -/* 09D6FC 7F068BCC 0C002914 */ jal get_random_value +/* 09D6FC 7F068BCC 0C002914 */ jal randomGetNext /* 09D700 7F068BD0 AFB9003C */ sw $t9, 0x3c($sp) /* 09D704 7F068BD4 8FAA003C */ lw $t2, 0x3c($sp) /* 09D708 7F068BD8 C60C0014 */ lwc1 $f12, 0x14($s0) @@ -21209,11 +26295,11 @@ glabel sub_GAME_7F068D20 /* 09D8E4 7F068DB4 106F000A */ beq $v1, $t7, .L7F068DE0 /* 09D8E8 7F068DB8 00000000 */ nop /* 09D8EC 7F068DBC 8C580C3C */ lw $t8, 0xc3c($v0) -/* 09D8F0 7F068DC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09D8F0 7F068DC0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 09D8F4 7F068DC4 2405007A */ li $a1, 122 /* 09D8F8 7F068DC8 10780005 */ beq $v1, $t8, .L7F068DE0 /* 09D8FC 7F068DCC 00000000 */ nop -/* 09D900 7F068DD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09D900 7F068DD0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 09D904 7F068DD4 0C002382 */ jal play_sfx_a1 /* 09D908 7F068DD8 AFA70028 */ sw $a3, 0x28($sp) /* 09D90C 7F068DDC 8FA70028 */ lw $a3, 0x28($sp) @@ -21311,11 +26397,11 @@ glabel sub_GAME_7F068D20 /* 09DF10 7F0693A0 1078000A */ beq $v1, $t8, .Ljp7F0693CC /* 09DF14 7F0693A4 00000000 */ nop /* 09DF18 7F0693A8 8C590C3C */ lw $t9, 0xc3c($v0) -/* 09DF1C 7F0693AC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 09DF1C 7F0693AC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 09DF20 7F0693B0 2405007A */ li $a1, 122 /* 09DF24 7F0693B4 10790005 */ beq $v1, $t9, .Ljp7F0693CC /* 09DF28 7F0693B8 00000000 */ nop -/* 09DF2C 7F0693BC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09DF2C 7F0693BC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 09DF30 7F0693C0 0C002386 */ jal play_sfx_a1 /* 09DF34 7F0693C4 AFA70028 */ sw $a3, 0x28($sp) /* 09DF38 7F0693C8 8FA70028 */ lw $a3, 0x28($sp) @@ -21361,6 +26447,104 @@ glabel sub_GAME_7F068D20 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel expended_shell_initial_gravity_modifier_all +.word 0x3e8e38e4 /*0.27777779*/ +.text +glabel sub_GAME_7F068D20 +/* 09D850 7F068D20 3C018005 */ lui $at, %hi(global_timer_delta) +/* 09D854 7F068D24 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 09D858 7F068D28 3C018005 */ lui $at, %hi(expended_shell_initial_gravity_modifier_all) +/* 09D85C 7F068D2C C4244404 */ lwc1 $f4, %lo(expended_shell_initial_gravity_modifier_all)($at) +/* 09D860 7F068D30 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 09D864 7F068D34 AFBF0024 */ sw $ra, 0x24($sp) +/* 09D868 7F068D38 46041182 */ mul.s $f6, $f2, $f4 +/* 09D86C 7F068D3C AFB30020 */ sw $s3, 0x20($sp) +/* 09D870 7F068D40 AFB2001C */ sw $s2, 0x1c($sp) +/* 09D874 7F068D44 AFB10018 */ sw $s1, 0x18($sp) +/* 09D878 7F068D48 AFB00014 */ sw $s0, 0x14($sp) +/* 09D87C 7F068D4C C4800014 */ lwc1 $f0, 0x14($a0) +/* 09D880 7F068D50 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 09D884 7F068D54 44814000 */ mtc1 $at, $f8 +/* 09D888 7F068D58 46060301 */ sub.s $f12, $f0, $f6 +/* 09D88C 7F068D5C C4840008 */ lwc1 $f4, 8($a0) +/* 09D890 7F068D60 46081282 */ mul.s $f10, $f2, $f8 +/* 09D894 7F068D64 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075DB0) +/* 09D898 7F068D68 460C0400 */ add.s $f16, $f0, $f12 +/* 09D89C 7F068D6C 00803825 */ move $a3, $a0 +/* 09D8A0 7F068D70 24C65DB0 */ addiu $a2, %lo(dword_CODE_bss_80075DB0) # addiu $a2, $a2, 0x5db0 +/* 09D8A4 7F068D74 46105482 */ mul.s $f18, $f10, $f16 +/* 09D8A8 7F068D78 C48A0000 */ lwc1 $f10, ($a0) +/* 09D8AC 7F068D7C 46122180 */ add.s $f6, $f4, $f18 +/* 09D8B0 7F068D80 E4860008 */ swc1 $f6, 8($a0) +/* 09D8B4 7F068D84 C4880008 */ lwc1 $f8, 8($a0) +/* 09D8B8 7F068D88 460A403C */ c.lt.s $f8, $f10 +/* 09D8BC 7F068D8C 00000000 */ nop +/* 09D8C0 7F068D90 45020016 */ bc1fl .L7F068DEC +/* 09D8C4 7F068D94 C4E40010 */ lwc1 $f4, 0x10($a3) +/* 09D8C8 7F068D98 8CCE0000 */ lw $t6, ($a2) +/* 09D8CC 7F068D9C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09D8D0 7F068DA0 15C0000F */ bnez $t6, .L7F068DE0 +/* 09D8D4 7F068DA4 00000000 */ nop +/* 09D8D8 7F068DA8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09D8DC 7F068DAC 24030002 */ li $v1, 2 +/* 09D8E0 7F068DB0 8C4F0894 */ lw $t7, 0x894($v0) +/* 09D8E4 7F068DB4 106F000A */ beq $v1, $t7, .L7F068DE0 +/* 09D8E8 7F068DB8 00000000 */ nop +/* 09D8EC 7F068DBC 8C580C3C */ lw $t8, 0xc3c($v0) +/* 09D8F0 7F068DC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 09D8F4 7F068DC4 2405007A */ li $a1, 122 +/* 09D8F8 7F068DC8 10780005 */ beq $v1, $t8, .L7F068DE0 +/* 09D8FC 7F068DCC 00000000 */ nop +/* 09D900 7F068DD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 09D904 7F068DD4 0C002382 */ jal play_sfx_a1 +/* 09D908 7F068DD8 AFA70028 */ sw $a3, 0x28($sp) +/* 09D90C 7F068DDC 8FA70028 */ lw $a3, 0x28($sp) +.L7F068DE0: +/* 09D910 7F068DE0 1000001B */ b .L7F068E50 +/* 09D914 7F068DE4 ACE0009C */ sw $zero, 0x9c($a3) +/* 09D918 7F068DE8 C4E40010 */ lwc1 $f4, 0x10($a3) +.L7F068DEC: +/* 09D91C 7F068DEC C4EA0018 */ lwc1 $f10, 0x18($a3) +/* 09D920 7F068DF0 C4F00004 */ lwc1 $f16, 4($a3) +/* 09D924 7F068DF4 46041482 */ mul.s $f18, $f2, $f4 +/* 09D928 7F068DF8 C4E8000C */ lwc1 $f8, 0xc($a3) +/* 09D92C 7F068DFC 3C138005 */ lui $s3, %hi(clock_timer) +/* 09D930 7F068E00 460A1102 */ mul.s $f4, $f2, $f10 +/* 09D934 7F068E04 26738374 */ addiu $s3, %lo(clock_timer) # addiu $s3, $s3, -0x7c8c +/* 09D938 7F068E08 E4EC0014 */ swc1 $f12, 0x14($a3) +/* 09D93C 7F068E0C 00008025 */ move $s0, $zero +/* 09D940 7F068E10 24F1005C */ addiu $s1, $a3, 0x5c +/* 09D944 7F068E14 46128180 */ add.s $f6, $f16, $f18 +/* 09D948 7F068E18 24F2001C */ addiu $s2, $a3, 0x1c +/* 09D94C 7F068E1C 46044400 */ add.s $f16, $f8, $f4 +/* 09D950 7F068E20 E4E60004 */ swc1 $f6, 4($a3) +/* 09D954 7F068E24 E4F0000C */ swc1 $f16, 0xc($a3) +/* 09D958 7F068E28 8E790000 */ lw $t9, ($s3) +/* 09D95C 7F068E2C 1B200008 */ blez $t9, .L7F068E50 +/* 09D960 7F068E30 02202025 */ move $a0, $s1 +.L7F068E34: +/* 09D964 7F068E34 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 09D968 7F068E38 02402825 */ move $a1, $s2 +/* 09D96C 7F068E3C 8E680000 */ lw $t0, ($s3) +/* 09D970 7F068E40 26100001 */ addiu $s0, $s0, 1 +/* 09D974 7F068E44 0208082A */ slt $at, $s0, $t0 +/* 09D978 7F068E48 5420FFFA */ bnezl $at, .L7F068E34 +/* 09D97C 7F068E4C 02202025 */ move $a0, $s1 +.L7F068E50: +/* 09D980 7F068E50 8FBF0024 */ lw $ra, 0x24($sp) +/* 09D984 7F068E54 8FB00014 */ lw $s0, 0x14($sp) +/* 09D988 7F068E58 8FB10018 */ lw $s1, 0x18($sp) +/* 09D98C 7F068E5C 8FB2001C */ lw $s2, 0x1c($sp) +/* 09D990 7F068E60 8FB30020 */ lw $s3, 0x20($sp) +/* 09D994 7F068E64 03E00008 */ jr $ra +/* 09D998 7F068E68 27BD0028 */ addiu $sp, $sp, 0x28 +) +#endif + + #endif @@ -21429,7 +26613,7 @@ glabel sub_GAME_7F068EC4 /* 09DA14 7F068EE4 8444000E */ lh $a0, 0xe($v0) /* 09DA18 7F068EE8 AFA200E0 */ sw $v0, 0xe0($sp) /* 09DA1C 7F068EEC 0004C980 */ sll $t9, $a0, 6 -/* 09DA20 7F068EF0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 09DA20 7F068EF0 0FC2F5C5 */ jal dynAllocate /* 09DA24 7F068EF4 03202025 */ move $a0, $t9 /* 09DA28 7F068EF8 3C098003 */ lui $t1, %hi(D_80035EB0) /* 09DA2C 7F068EFC 25295EB0 */ addiu $t1, %lo(D_80035EB0) # addiu $t1, $t1, 0x5eb0 @@ -22684,14 +27868,14 @@ s32 some_kind_of_display_routine(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg if (arg6 != 0) { // Node 17 - sp44 = get_video2_settings_txtClipW(); - phi_s0 = jp_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, -1, 0x646464ff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + phi_s0 = jp_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, -1, 0x646464ff, sp44, viGetY(), 0, 0); } else { // Node 18 - sp44 = get_video2_settings_txtClipW(); - phi_s0 = en_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0xff00b0, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + phi_s0 = en_text_write_stuff(temp_s0, &sp5C, &sp58, arg1, (?32) ptrSecondFontTableSmall, (?32) ptrFirstFontTableSmall, 0xff00b0, sp44, viGetY(), 0, 0); } // Node 19 return phi_s0; @@ -22795,9 +27979,9 @@ glabel some_kind_of_display_routine /* 09E6D0 7F069BA0 00408025 */ move $s0, $v0 /* 09E6D4 7F069BA4 11E0001C */ beqz $t7, .L7F069C18 /* 09E6D8 7F069BA8 00000000 */ nop -/* 09E6DC 7F069BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 09E6DC 7F069BAC 0C001107 */ jal viGetX /* 09E6E0 7F069BB0 00000000 */ nop -/* 09E6E4 7F069BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 09E6E4 7F069BB4 0C00110B */ jal viGetY /* 09E6E8 7F069BB8 A7A20044 */ sh $v0, 0x44($sp) /* 09E6EC 7F069BBC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) /* 09E6F0 7F069BC0 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -22823,9 +28007,9 @@ glabel some_kind_of_display_routine /* 09E740 7F069C10 10000019 */ b .L7F069C78 /* 09E744 7F069C14 00408025 */ move $s0, $v0 .L7F069C18: -/* 09E748 7F069C18 0C001107 */ jal get_video2_settings_txtClipW +/* 09E748 7F069C18 0C001107 */ jal viGetX /* 09E74C 7F069C1C 00000000 */ nop -/* 09E750 7F069C20 0C00110B */ jal get_video2_settings_txtClipH +/* 09E750 7F069C20 0C00110B */ jal viGetY /* 09E754 7F069C24 A7A20044 */ sh $v0, 0x44($sp) /* 09E758 7F069C28 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) /* 09E75C 7F069C2C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) @@ -24207,7 +29391,7 @@ void *increment_num_kills_display_text_in_MP(void) { { // Node 1 sp34 = get_mission_timer(); - sprintf(&sp40, &aSD, get_textptr_for_textID(0x98da), pPlayersPerm->killcount); + sprintf(&sp40, &aSD, get_textptr_for_textID(TEXT(LGUN, 0xDA)), pPlayersPerm->killcount); // kill count display_string_in_lower_left_corner(&sp40); if (pPlayersPerm->killcount >= 2) { @@ -24505,6 +29689,124 @@ glabel increment_num_kills_display_text_in_MP /* 09F450 7F06A920 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel increment_num_kills_display_text_in_MP +/* 09F2B0 7F06A780 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F2B4 7F06A784 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F2B8 7F06A788 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F2BC 7F06A78C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F2C0 7F06A790 AFB00018 */ sw $s0, 0x18($sp) +/* 09F2C4 7F06A794 8C6E001C */ lw $t6, 0x1c($v1) +/* 09F2C8 7F06A798 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F2CC 7F06A79C 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F2D0 7F06A7A0 25CF0001 */ addiu $t7, $t6, 1 +/* 09F2D4 7F06A7A4 AC6F001C */ sw $t7, 0x1c($v1) +/* 09F2D8 7F06A7A8 8E020000 */ lw $v0, ($s0) +/* 09F2DC 7F06A7AC 8C5829F8 */ lw $t8, 0x29f8($v0) +/* 09F2E0 7F06A7B0 27190001 */ addiu $t9, $t8, 1 +/* 09F2E4 7F06A7B4 0FC26919 */ jal getPlayerCount +/* 09F2E8 7F06A7B8 AC5929F8 */ sw $t9, 0x29f8($v0) +/* 09F2EC 7F06A7BC 28410002 */ slti $at, $v0, 2 +/* 09F2F0 7F06A7C0 54200054 */ bnezl $at, .L7F06A914 +/* 09F2F4 7F06A7C4 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F2F8 7F06A7C8 0FC22FEE */ jal get_mission_timer +/* 09F2FC 7F06A7CC 00000000 */ nop +/* 09F300 7F06A7D0 AFA20034 */ sw $v0, 0x34($sp) +/* 09F304 7F06A7D4 0FC30776 */ jal get_textptr_for_textID +/* 09F308 7F06A7D8 340498DA */ li $a0, 39130 +/* 09F30C 7F06A7DC 3C088008 */ lui $t0, %hi(pPlayersPerm) +/* 09F310 7F06A7E0 8D08A0B4 */ lw $t0, %lo(pPlayersPerm)($t0) +/* 09F314 7F06A7E4 3C058005 */ lui $a1, %hi(aSD) +/* 09F318 7F06A7E8 24A53BF8 */ addiu $a1, %lo(aSD) # addiu $a1, $a1, 0x3bf8 +/* 09F31C 7F06A7EC 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F320 7F06A7F0 00403025 */ move $a2, $v0 +/* 09F324 7F06A7F4 0C002B25 */ jal sprintf +/* 09F328 7F06A7F8 8D07001C */ lw $a3, 0x1c($t0) +/* 09F32C 7F06A7FC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F330 7F06A800 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F334 7F06A804 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F338 7F06A808 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F33C 7F06A80C 8C69001C */ lw $t1, 0x1c($v1) +/* 09F340 7F06A810 29210002 */ slti $at, $t1, 2 +/* 09F344 7F06A814 54200012 */ bnezl $at, .L7F06A860 +/* 09F348 7F06A818 8E020000 */ lw $v0, ($s0) +/* 09F34C 7F06A81C 8E0B0000 */ lw $t3, ($s0) +/* 09F350 7F06A820 8FAA0034 */ lw $t2, 0x34($sp) +/* 09F354 7F06A824 8C6D0048 */ lw $t5, 0x48($v1) +/* 09F358 7F06A828 8D6C29E4 */ lw $t4, 0x29e4($t3) +/* 09F35C 7F06A82C 014C1023 */ subu $v0, $t2, $t4 +/* 09F360 7F06A830 01A2082A */ slt $at, $t5, $v0 +/* 09F364 7F06A834 50200005 */ beql $at, $zero, .L7F06A84C +/* 09F368 7F06A838 8C6E0044 */ lw $t6, 0x44($v1) +/* 09F36C 7F06A83C AC620048 */ sw $v0, 0x48($v1) +/* 09F370 7F06A840 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F374 7F06A844 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F378 7F06A848 8C6E0044 */ lw $t6, 0x44($v1) +.L7F06A84C: +/* 09F37C 7F06A84C 004E082A */ slt $at, $v0, $t6 +/* 09F380 7F06A850 50200003 */ beql $at, $zero, .L7F06A860 +/* 09F384 7F06A854 8E020000 */ lw $v0, ($s0) +/* 09F388 7F06A858 AC620044 */ sw $v0, 0x44($v1) +/* 09F38C 7F06A85C 8E020000 */ lw $v0, ($s0) +.L7F06A860: +/* 09F390 7F06A860 2406FFFF */ li $a2, -1 +/* 09F394 7F06A864 24040001 */ li $a0, 1 +/* 09F398 7F06A868 8C4F29EC */ lw $t7, 0x29ec($v0) +/* 09F39C 7F06A86C AC4F29F0 */ sw $t7, 0x29f0($v0) +/* 09F3A0 7F06A870 8E020000 */ lw $v0, ($s0) +/* 09F3A4 7F06A874 8C5829E8 */ lw $t8, 0x29e8($v0) +/* 09F3A8 7F06A878 AC5829EC */ sw $t8, 0x29ec($v0) +/* 09F3AC 7F06A87C 8E020000 */ lw $v0, ($s0) +/* 09F3B0 7F06A880 8C5929E4 */ lw $t9, 0x29e4($v0) +/* 09F3B4 7F06A884 AC5929E8 */ sw $t9, 0x29e8($v0) +/* 09F3B8 7F06A888 8E090000 */ lw $t1, ($s0) +/* 09F3BC 7F06A88C 8FA80034 */ lw $t0, 0x34($sp) +/* 09F3C0 7F06A890 AD2829E4 */ sw $t0, 0x29e4($t1) +/* 09F3C4 7F06A894 8E020000 */ lw $v0, ($s0) +/* 09F3C8 7F06A898 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F3CC 7F06A89C 10C50015 */ beq $a2, $a1, .L7F06A8F4 +/* 09F3D0 7F06A8A0 00000000 */ nop +/* 09F3D4 7F06A8A4 8C4329E4 */ lw $v1, 0x29e4($v0) +/* 09F3D8 7F06A8A8 00655823 */ subu $t3, $v1, $a1 +/* 09F3DC 7F06A8AC 29610078 */ slti $at, $t3, 0x78 +/* 09F3E0 7F06A8B0 10200010 */ beqz $at, .L7F06A8F4 +/* 09F3E4 7F06A8B4 00000000 */ nop +/* 09F3E8 7F06A8B8 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F3EC 7F06A8BC 24040002 */ li $a0, 2 +/* 09F3F0 7F06A8C0 10C5000C */ beq $a2, $a1, .L7F06A8F4 +/* 09F3F4 7F06A8C4 00655023 */ subu $t2, $v1, $a1 +/* 09F3F8 7F06A8C8 29410078 */ slti $at, $t2, 0x78 +/* 09F3FC 7F06A8CC 10200009 */ beqz $at, .L7F06A8F4 +/* 09F400 7F06A8D0 00000000 */ nop +/* 09F404 7F06A8D4 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F408 7F06A8D8 24840001 */ addiu $a0, $a0, 1 +/* 09F40C 7F06A8DC 10C50005 */ beq $a2, $a1, .L7F06A8F4 +/* 09F410 7F06A8E0 00656023 */ subu $t4, $v1, $a1 +/* 09F414 7F06A8E4 29810078 */ slti $at, $t4, 0x78 +/* 09F418 7F06A8E8 10200002 */ beqz $at, .L7F06A8F4 +/* 09F41C 7F06A8EC 00000000 */ nop +/* 09F420 7F06A8F0 24840001 */ addiu $a0, $a0, 1 +.L7F06A8F4: +/* 09F424 7F06A8F4 3C038008 */ lui $v1, %hi(pPlayersPerm) +/* 09F428 7F06A8F8 8C63A0B4 */ lw $v1, %lo(pPlayersPerm)($v1) +/* 09F42C 7F06A8FC 8C6D0058 */ lw $t5, 0x58($v1) +/* 09F430 7F06A900 01A4082A */ slt $at, $t5, $a0 +/* 09F434 7F06A904 50200003 */ beql $at, $zero, .L7F06A914 +/* 09F438 7F06A908 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F43C 7F06A90C AC640058 */ sw $a0, 0x58($v1) +/* 09F440 7F06A910 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06A914: +/* 09F444 7F06A914 8FB00018 */ lw $s0, 0x18($sp) +/* 09F448 7F06A918 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F44C 7F06A91C 03E00008 */ jr $ra +/* 09F450 7F06A920 00000000 */ nop +) +#endif + + #endif s32 get_curplay_killcount(void) { @@ -24528,11 +29830,11 @@ void increment_num_deaths(void) { if (pPlayer->deathcount == 1) { - sprintf(acStack256, get_textptr_for_textID(0x98db)); + sprintf(acStack256, get_textptr_for_textID(TEXT(LGUN, 0xDB))); //died once } else { - sprintf(acStack256, &aSDS, get_textptr_for_textID(0x98dc), pPlayer->deathcount, get_textptr_for_textID(0x98dd)); + sprintf(acStack256, &aSDS, get_textptr_for_textID(TEXT(LGUN, 0xDC))), pPlayer->deathcount, get_textptr_for_textID(TEXT(LGUN, 0xDD))); //died times } display_string_in_lower_left_corner(acStack256); } @@ -24590,6 +29892,7 @@ glabel increment_num_deaths /* 09F534 7F06AA04 00000000 */ nop ) #endif + #ifdef VERSION_JP GLOBAL_ASM( .text @@ -24642,6 +29945,61 @@ glabel increment_num_deaths /* 09F534 7F06AA04 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel increment_num_deaths +/* 09F48C 7F06A95C 3C028008 */ lui $v0, %hi(pPlayer) +/* 09F490 7F06A960 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 09F494 7F06A964 27BDFED0 */ addiu $sp, $sp, -0x130 +/* 09F498 7F06A968 AFBF001C */ sw $ra, 0x1c($sp) +/* 09F49C 7F06A96C 8C4E29D8 */ lw $t6, 0x29d8($v0) +/* 09F4A0 7F06A970 25CF0001 */ addiu $t7, $t6, 1 +/* 09F4A4 7F06A974 0FC26919 */ jal getPlayerCount +/* 09F4A8 7F06A978 AC4F29D8 */ sw $t7, 0x29d8($v0) +/* 09F4AC 7F06A97C 28410002 */ slti $at, $v0, 2 +/* 09F4B0 7F06A980 1420001D */ bnez $at, .L7F06A9F8 +/* 09F4B4 7F06A984 3C188008 */ lui $t8, %hi(pPlayer) +/* 09F4B8 7F06A988 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 09F4BC 7F06A98C 24010001 */ li $at, 1 +/* 09F4C0 7F06A990 8F1929D8 */ lw $t9, 0x29d8($t8) +/* 09F4C4 7F06A994 17210008 */ bne $t9, $at, .L7F06A9B8 +/* 09F4C8 7F06A998 00000000 */ nop +/* 09F4CC 7F06A99C 0FC30776 */ jal get_textptr_for_textID +/* 09F4D0 7F06A9A0 340498DB */ li $a0, 39131 +/* 09F4D4 7F06A9A4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F4D8 7F06A9A8 0C002B25 */ jal sprintf +/* 09F4DC 7F06A9AC 00402825 */ move $a1, $v0 +/* 09F4E0 7F06A9B0 1000000F */ b .L7F06A9F0 +/* 09F4E4 7F06A9B4 00000000 */ nop +.L7F06A9B8: +/* 09F4E8 7F06A9B8 0FC30776 */ jal get_textptr_for_textID +/* 09F4EC 7F06A9BC 340498DC */ li $a0, 39132 +/* 09F4F0 7F06A9C0 AFA20028 */ sw $v0, 0x28($sp) +/* 09F4F4 7F06A9C4 0FC30776 */ jal get_textptr_for_textID +/* 09F4F8 7F06A9C8 340498DD */ li $a0, 39133 +/* 09F4FC 7F06A9CC 3C088008 */ lui $t0, %hi(pPlayer) +/* 09F500 7F06A9D0 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 09F504 7F06A9D4 3C058005 */ lui $a1, %hi(aSDS) +/* 09F508 7F06A9D8 24A53C00 */ addiu $a1, %lo(aSDS) # addiu $a1, $a1, 0x3c00 +/* 09F50C 7F06A9DC 8D0729D8 */ lw $a3, 0x29d8($t0) +/* 09F510 7F06A9E0 AFA20010 */ sw $v0, 0x10($sp) +/* 09F514 7F06A9E4 27A40030 */ addiu $a0, $sp, 0x30 +/* 09F518 7F06A9E8 0C002B25 */ jal sprintf +/* 09F51C 7F06A9EC 8FA60028 */ lw $a2, 0x28($sp) +.L7F06A9F0: +/* 09F520 7F06A9F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F524 7F06A9F4 27A40030 */ addiu $a0, $sp, 0x30 +.L7F06A9F8: +/* 09F528 7F06A9F8 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F52C 7F06A9FC 27BD0130 */ addiu $sp, $sp, 0x130 +/* 09F530 7F06AA00 03E00008 */ jr $ra +/* 09F534 7F06AA04 00000000 */ nop +) +#endif + + #endif s32 get_curplayer_numdeaths(void) { @@ -24666,7 +30024,7 @@ void *increment_num_suicides_display_MP(void) { { // Node 1 sp34 = get_mission_timer(); - sprintf(&sp40, &aSD_0, get_textptr_for_textID(0x98de), pPlayer->num_suicides); + sprintf(&sp40, &aSD_0, get_textptr_for_textID(TEXT(LGUN, 0xDE)), pPlayer->num_suicides); //suicide count display_string_in_lower_left_corner(&sp40); if (pPlayersPerm->killcount >= 2) { @@ -24844,6 +30202,7 @@ glabel increment_num_suicides_display_MP /* 09F6CC 7F06AB9C 00000000 */ nop ) #endif + #ifdef VERSION_JP GLOBAL_ASM( .text @@ -24953,6 +30312,118 @@ glabel increment_num_suicides_display_MP /* 09F6CC 7F06AB9C 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel increment_num_suicides_display_MP +/* 09F548 7F06AA18 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* 09F54C 7F06AA1C AFB00018 */ sw $s0, 0x18($sp) +/* 09F550 7F06AA20 3C108008 */ lui $s0, %hi(pPlayer) +/* 09F554 7F06AA24 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +/* 09F558 7F06AA28 8E020000 */ lw $v0, ($s0) +/* 09F55C 7F06AA2C AFBF001C */ sw $ra, 0x1c($sp) +/* 09F560 7F06AA30 8C4E29DC */ lw $t6, 0x29dc($v0) +/* 09F564 7F06AA34 25CF0001 */ addiu $t7, $t6, 1 +/* 09F568 7F06AA38 0FC26919 */ jal getPlayerCount +/* 09F56C 7F06AA3C AC4F29DC */ sw $t7, 0x29dc($v0) +/* 09F570 7F06AA40 28410002 */ slti $at, $v0, 2 +/* 09F574 7F06AA44 54200052 */ bnezl $at, .L7F06AB90 +/* 09F578 7F06AA48 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F57C 7F06AA4C 0FC22FEE */ jal get_mission_timer +/* 09F580 7F06AA50 00000000 */ nop +/* 09F584 7F06AA54 AFA20034 */ sw $v0, 0x34($sp) +/* 09F588 7F06AA58 0FC30776 */ jal get_textptr_for_textID +/* 09F58C 7F06AA5C 340498DE */ li $a0, 39134 +/* 09F590 7F06AA60 8E180000 */ lw $t8, ($s0) +/* 09F594 7F06AA64 3C058005 */ lui $a1, %hi(aSD_0) +/* 09F598 7F06AA68 24A53C0C */ addiu $a1, %lo(aSD_0) # addiu $a1, $a1, 0x3c0c +/* 09F59C 7F06AA6C 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5A0 7F06AA70 00403025 */ move $a2, $v0 +/* 09F5A4 7F06AA74 0C002B25 */ jal sprintf +/* 09F5A8 7F06AA78 8F0729DC */ lw $a3, 0x29dc($t8) +/* 09F5AC 7F06AA7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 09F5B0 7F06AA80 27A40040 */ addiu $a0, $sp, 0x40 +/* 09F5B4 7F06AA84 3C078008 */ lui $a3, %hi(pPlayersPerm) +/* 09F5B8 7F06AA88 24E7A0B4 */ addiu $a3, %lo(pPlayersPerm) # addiu $a3, $a3, -0x5f4c +/* 09F5BC 7F06AA8C 8CE20000 */ lw $v0, ($a3) +/* 09F5C0 7F06AA90 8C59001C */ lw $t9, 0x1c($v0) +/* 09F5C4 7F06AA94 2B210002 */ slti $at, $t9, 2 +/* 09F5C8 7F06AA98 54200011 */ bnezl $at, .L7F06AAE0 +/* 09F5CC 7F06AA9C 8E020000 */ lw $v0, ($s0) +/* 09F5D0 7F06AAA0 8E090000 */ lw $t1, ($s0) +/* 09F5D4 7F06AAA4 8FA80034 */ lw $t0, 0x34($sp) +/* 09F5D8 7F06AAA8 8C4B0048 */ lw $t3, 0x48($v0) +/* 09F5DC 7F06AAAC 8D2A29E4 */ lw $t2, 0x29e4($t1) +/* 09F5E0 7F06AAB0 010A1823 */ subu $v1, $t0, $t2 +/* 09F5E4 7F06AAB4 0163082A */ slt $at, $t3, $v1 +/* 09F5E8 7F06AAB8 50200004 */ beql $at, $zero, .L7F06AACC +/* 09F5EC 7F06AABC 8C4C0044 */ lw $t4, 0x44($v0) +/* 09F5F0 7F06AAC0 AC430048 */ sw $v1, 0x48($v0) +/* 09F5F4 7F06AAC4 8CE20000 */ lw $v0, ($a3) +/* 09F5F8 7F06AAC8 8C4C0044 */ lw $t4, 0x44($v0) +.L7F06AACC: +/* 09F5FC 7F06AACC 006C082A */ slt $at, $v1, $t4 +/* 09F600 7F06AAD0 50200003 */ beql $at, $zero, .L7F06AAE0 +/* 09F604 7F06AAD4 8E020000 */ lw $v0, ($s0) +/* 09F608 7F06AAD8 AC430044 */ sw $v1, 0x44($v0) +/* 09F60C 7F06AADC 8E020000 */ lw $v0, ($s0) +.L7F06AAE0: +/* 09F610 7F06AAE0 2406FFFF */ li $a2, -1 +/* 09F614 7F06AAE4 24030001 */ li $v1, 1 +/* 09F618 7F06AAE8 8C4D29EC */ lw $t5, 0x29ec($v0) +/* 09F61C 7F06AAEC AC4D29F0 */ sw $t5, 0x29f0($v0) +/* 09F620 7F06AAF0 8E020000 */ lw $v0, ($s0) +/* 09F624 7F06AAF4 8C4E29E8 */ lw $t6, 0x29e8($v0) +/* 09F628 7F06AAF8 AC4E29EC */ sw $t6, 0x29ec($v0) +/* 09F62C 7F06AAFC 8E020000 */ lw $v0, ($s0) +/* 09F630 7F06AB00 8C4F29E4 */ lw $t7, 0x29e4($v0) +/* 09F634 7F06AB04 AC4F29E8 */ sw $t7, 0x29e8($v0) +/* 09F638 7F06AB08 8E190000 */ lw $t9, ($s0) +/* 09F63C 7F06AB0C 8FB80034 */ lw $t8, 0x34($sp) +/* 09F640 7F06AB10 AF3829E4 */ sw $t8, 0x29e4($t9) +/* 09F644 7F06AB14 8E020000 */ lw $v0, ($s0) +/* 09F648 7F06AB18 8C4529E8 */ lw $a1, 0x29e8($v0) +/* 09F64C 7F06AB1C 50C50016 */ beql $a2, $a1, .L7F06AB78 +/* 09F650 7F06AB20 8CE20000 */ lw $v0, ($a3) +/* 09F654 7F06AB24 8C4429E4 */ lw $a0, 0x29e4($v0) +/* 09F658 7F06AB28 00854823 */ subu $t1, $a0, $a1 +/* 09F65C 7F06AB2C 29210078 */ slti $at, $t1, 0x78 +/* 09F660 7F06AB30 50200011 */ beql $at, $zero, .L7F06AB78 +/* 09F664 7F06AB34 8CE20000 */ lw $v0, ($a3) +/* 09F668 7F06AB38 8C4529EC */ lw $a1, 0x29ec($v0) +/* 09F66C 7F06AB3C 24030002 */ li $v1, 2 +/* 09F670 7F06AB40 10C5000C */ beq $a2, $a1, .L7F06AB74 +/* 09F674 7F06AB44 00854023 */ subu $t0, $a0, $a1 +/* 09F678 7F06AB48 29010078 */ slti $at, $t0, 0x78 +/* 09F67C 7F06AB4C 5020000A */ beql $at, $zero, .L7F06AB78 +/* 09F680 7F06AB50 8CE20000 */ lw $v0, ($a3) +/* 09F684 7F06AB54 8C4529F0 */ lw $a1, 0x29f0($v0) +/* 09F688 7F06AB58 24630001 */ addiu $v1, $v1, 1 +/* 09F68C 7F06AB5C 10C50005 */ beq $a2, $a1, .L7F06AB74 +/* 09F690 7F06AB60 00855023 */ subu $t2, $a0, $a1 +/* 09F694 7F06AB64 29410078 */ slti $at, $t2, 0x78 +/* 09F698 7F06AB68 50200003 */ beql $at, $zero, .L7F06AB78 +/* 09F69C 7F06AB6C 8CE20000 */ lw $v0, ($a3) +/* 09F6A0 7F06AB70 24630001 */ addiu $v1, $v1, 1 +.L7F06AB74: +/* 09F6A4 7F06AB74 8CE20000 */ lw $v0, ($a3) +.L7F06AB78: +/* 09F6A8 7F06AB78 8C4B0058 */ lw $t3, 0x58($v0) +/* 09F6AC 7F06AB7C 0163082A */ slt $at, $t3, $v1 +/* 09F6B0 7F06AB80 50200003 */ beql $at, $zero, .L7F06AB90 +/* 09F6B4 7F06AB84 8FBF001C */ lw $ra, 0x1c($sp) +/* 09F6B8 7F06AB88 AC430058 */ sw $v1, 0x58($v0) +/* 09F6BC 7F06AB8C 8FBF001C */ lw $ra, 0x1c($sp) +.L7F06AB90: +/* 09F6C0 7F06AB90 8FB00018 */ lw $s0, 0x18($sp) +/* 09F6C4 7F06AB94 27BD0140 */ addiu $sp, $sp, 0x140 +/* 09F6C8 7F06AB98 03E00008 */ jr $ra +/* 09F6CC 7F06AB9C 00000000 */ nop +) +#endif + + #endif diff --git a/src/game/bondwalk.h b/src/game/bondwalk.h index c4bd69e..a7afd25 100644 --- a/src/game/bondwalk.h +++ b/src/game/bondwalk.h @@ -4,40 +4,182 @@ #include "game/chrobjdata.h" #include "bondconstants.h" -struct weapon_stats +struct WeaponStats { - f32 field_0; - f32 pos_x; - f32 pos_y; - f32 pos_z; - f32 field_10; - f32 field_14; - f32 field_18; - s32 ammotype; - s16 mag_size; - u8 automatic_firing_rate; - s8 single_firing_rate; - u8 objects_shoot_through; - u8 sound_trigger_rate; - u16 sound; - struct Gitemheader * ptr_cartridge_struct; - f32 destruction_amount; - f32 inaccuracy; - f32 zoom; - f32 field_38; - f32 field_3C; - f32 sway; - s32 recoilspeed; - f32 recoil_back; - f32 recoil_up; - f32 bolt_recoil_back; - f32 loudness; - f32 loudness2; - f32 field_5C; - f32 field_60; - f32 field_64; - f32 field_68; - u32 bitflags; + /** + * Distance of gun flash from the end of the barrel. + */ + f32 MuzzleFlashExtension; + + /** + * On screen gun position, X. + */ + f32 PosX; + + /** + * On screen gun position, Y. + */ + f32 PosY; + + /** + * On screen gun position, Z. + */ + f32 PosZ; + + /** + * The amount of play the guns are given when you move forward/back. + */ + f32 PlayX; + + /** + * The amount of play the guns are given when you move side + * to side. + */ + f32 PlayY; + + /** + * The amount of play the guns are given when you move up or down. + */ + f32 PlayZ; + + /** + * Ammo type, and what ammo img is shown. + */ + s32 AmmoType; + + /** + * Number of rounds before needing to reload. + */ + s16 MagSize; + + /** + * Time between automatic shots. -1 (0xFF) for disabled. + * For reference, RC-P90=0x2, and KF7=0x3. + * (is this an enum?) + */ + u8 AutomaticFiringRate; + + /** + * Time between manual shots. + * For reference, KF7=0, while rocket launcher = 0x14. + */ + s8 SingleFiringRate; + + /** + * How many objects the bullet goes through. + */ + u8 ObjectsShootThrough; + + /** + * Sound trigger rate. + */ + u8 SoundTriggerRate; + + /** + * Sound effect played when gun is shot. There are 261 sound effects, or 0 - 105h. + */ + u16 Sound; + + /** + * Comment from long ago: + * Location of address that displays the bullet shells flying from the guns, and runs + * the ping sound of the casings hitting the ground. This value is either 00000000 for + * no bullet casings (laser, knife, grenade, so on) or 8003CB60, the location of pointers + * that point to code possibly, I haven't explored the area a lot near that address + * (8003CB60) + */ + struct Gitemheader * ptr_cartridge_struct; + + /** + * Amount of destruction or power each bullet packs. + * For reference, KF7=1.0, while golden gun = 100.0. + */ + f32 DestructionAmount; + + /** + * Amount of inaccuracy the gun has. + * For reference, KF7=10.0, sniper rifle = 0.0. + */ + f32 Inaccuracy; + + /** + * Amount of zoom the gun has. Just setting this value doesn't give the option of + * zooming in and out, that is somewhere else. + * For reference, KF7=30.0, sniper rifle = 15.0. + */ + f32 Zoom; + + /** + * Speed of red cross-hair. + */ + f32 CrosshairSpeed; + + /** + * Weapon Aim/Lock-On Speed. + */ + f32 AimLockSpeed; + + /** + * Hand stabilization. A low value will keep the hands still while a high value will + * cause bonds arms to twirl around in circles and turn every which way. + */ + f32 Sway; + + /** + * Recoil speed. + */ + s32 RecoilSpeed; + + /** + * How far back bonds hands pull back when the gun is fired. + */ + f32 RecoilBack; + + /** + * Amount of recoil the gun has. + */ + f32 RecoilUp; + + /** + * How far back the bolt slides when the gun is fired. + */ + f32 BoltRecoilBack; + + /** + * The minimum amount of sound an enemy can hear from this weapon. + */ + f32 LoudnessMin; + + /** + * The maximum amount of sound an enemy can hear from this weapon. + */ + f32 LoudnessMax; + + /** + * Amount of noise increased with each shot fired. + * ("Noise" is the value used to determine if a guard should be alerted). + */ + f32 NoiseIncreasePerShot; + + /** + * Unknown (field 0x60). + */ + f32 field_60; + + /** + * Unknown (field 0x64). + */ + f32 field_64; + + /** + * Force of impact. + */ + f32 ForceOfImpact; + + /** + * + */ + u32 BitFlags; }; struct gitem_data_struct @@ -45,7 +187,7 @@ struct gitem_data_struct struct Gitemheader * item_header; char * item_file_name; s32 has_no_model; - struct weapon_stats * item_weapon_stats; + struct WeaponStats * item_weapon_stats; u16 upper_watch_text; u16 lower_watch_text; f32 watch_pos_x; @@ -65,7 +207,10 @@ struct ejected_cart { char * text; }; -f32 bondwalkGetItemField68(ITEM_IDS item); + +extern char dword_CODE_bss_80075DC8[20][160]; + +f32 bondwalkItemGetForceOfImpact(ITEM_IDS item); u32 bondwalkItemCheckBitflags(ITEM_IDS item, u32 mask); void bondwalkFireBothHands(void); diff --git a/src/game/cheat_buttons.c b/src/game/cheat_buttons.c index 86566c6..59b6577 100644 --- a/src/game/cheat_buttons.c +++ b/src/game/cheat_buttons.c @@ -393,14 +393,14 @@ glabel cheat_buttons_mp_related /* 0C647C 7F09194C 00022600 */ sll $a0, $v0, 0x18 /* 0C6480 7F091950 00047603 */ sra $t6, $a0, 0x18 /* 0C6484 7F091954 01C02025 */ move $a0, $t6 -/* 0C6488 7F091958 0C0030C3 */ jal get_controller_buttons_held +/* 0C6488 7F091958 0C0030C3 */ jal joyGetButtons /* 0C648C 7F09195C 3405FFFF */ li $a1, 65535 /* 0C6490 7F091960 0FC26C54 */ jal get_cur_playernum /* 0C6494 7F091964 A7A20026 */ sh $v0, 0x26($sp) /* 0C6498 7F091968 00022600 */ sll $a0, $v0, 0x18 /* 0C649C 7F09196C 00047E03 */ sra $t7, $a0, 0x18 /* 0C64A0 7F091970 01E02025 */ move $a0, $t7 -/* 0C64A4 7F091974 0C0030EB */ jal get_controller_buttons_pressed +/* 0C64A4 7F091974 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0C64A8 7F091978 3405FFFF */ li $a1, 65535 /* 0C64AC 7F09197C 97A30026 */ lhu $v1, 0x26($sp) /* 0C64B0 7F091980 30780030 */ andi $t8, $v1, 0x30 @@ -654,19 +654,19 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case CHEAT_INVINCIBILITY: if (get_bondata_invincible_flag() == 0) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb00f)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x0F))); //invincibility on set_bondata_invincible_flag(1); } break; case CHEAT_ALLGUNS: if (get_BONDdata_allguns_flag() == 0) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb010)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x10)))); //all guns on set_BONDdata_allguns_flag(1); } break; case CHEAT_MAXAMMO: - display_string_in_lower_left_corner(get_textptr_for_textID(0xb011)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x11)))); //maximum ammo set_max_ammo_for_cur_player(); break; case CHEAT_REMOVE_INVINCIBILITY: @@ -687,7 +687,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) } while (local_10 != numplayers); } if (bVar2) { - play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + play_sfx_a1(g_musicSfxBufferPtr,0x9f,(ALSndPlayer *)0x0); } } break; @@ -697,7 +697,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case cheats_cheat_2x_health: if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb012)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x12)))); //super 2x health pPlayer->bondhealth = 1.00000000; pPlayer->actual_health = 2.00000000; } @@ -705,7 +705,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case cheats_cheat_2x_armor: if ((pPlayer->actual_armor == 1.00000000) || (pPlayer->bondarmour < 1.00000000)) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb013)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x13))); //super x2 armor pPlayer->bondarmour = 1.00000000; pPlayer->actual_armor = 2.00000000; } @@ -713,15 +713,15 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case cheats_cheat_invisibility: if (get_invisible_to_guards_flag() != 0) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb014)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x14))); //invisibility on set_invisible_to_guards_flag(0); } break; case cheats_cheat_infinite_ammo: - display_string_in_lower_left_corner(get_textptr_for_textID(0xb016)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x16))); //infinite ammo on break; case cheats_cheat_dk_mode: - display_string_in_lower_left_corner(get_textptr_for_textID(0xb017)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x17))); //dk mode on set_DKMode(1); break; case cheats_cheat_extra_weapons: @@ -732,14 +732,14 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) give_cur_player_ammo(AMMO_9MM, get_max_ammo_for_type(AMMO_9MM)); if (0 < (add_item_to_inventory(ITEM_RUGER) + add_item_to_inventory(ITEM_LASER) + add_item_to_inventory(ITEM_GOLDENGUN) + add_item_to_inventory(ITEM_SILVERWPPK) + add_item_to_inventory(ITEM_GOLDWPPK))) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb018)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x18))); //extra weapons } } break; case cheats_cheat_tiny_bond: if ((numplayers == PLAYER2) && (pPlayersPerm->player_perspective_height == 1.00000000)) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb019)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x19))); //tiny bond on pPlayersPerm->player_perspective_height = 0.50000000; if (pPlayer->ptr_char_objectinstance != 0) { @@ -748,12 +748,12 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) } break; case cheats_cheat_paintball: - display_string_in_lower_left_corner(get_textptr_for_textID(0xb01a)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x1A))); //paintball mod on break; case cheats_cheat_10x_health: if ((pPlayer->actual_health == 1.00000000) || (pPlayer->bondhealth < 1.00000000)) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb01b)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x1B))); pPlayer->bondhealth = 1.00000000; pPlayer->actual_health = 10.00000000; } @@ -797,7 +797,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case cheats_cheat_fast: if (get_debug_fast_bond_flag() == FALSE) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb01d)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x1D))); //fast mode on set_debug_fast_bond_flag(TRUE); } break; @@ -810,14 +810,14 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case cheats_debug_fast_ani: if (get_animation_rate() < 4.00000000) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb034)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x34))); //fast motion animation_speed_related(4.00000000); } break; case cheats_debug_slow_ani: if (0.25000000 < get_animation_rate()) { - display_string_in_lower_left_corner(get_textptr_for_textID(0xb032)); + display_string_in_lower_left_corner(get_textptr_for_textID(TEXT(LMISC, 0x32))); //slow motion animation_speed_related(0.25000000); } break; @@ -883,7 +883,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) case UNLOCK_CHEATS: if ((-1 < selected_folder_num) && (selected_folder_num < 4)) { proc_7F01E760(selected_folder_num,cheat + ~cheats_debug_2x_laser); - play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + play_sfx_a1(g_musicSfxBufferPtr,0x9f,(ALSndPlayer *)0x0); } break; case UNUSED_37: @@ -921,7 +921,7 @@ void handle_cheats_turned_on(CHEAT_IDS cheat) if (SVar11 == amount + SP_STAGE_FACILITY) { unlock_stage_in_folder_on_difficulty (selected_folder_num,(longlong)(int)(cheat + ~UNUSED_37),0,99999999); - play_sfx_a1(ptr_sfx_buf,0x9f,(ALSndPlayer *)0x0); + play_sfx_a1(g_musicSfxBufferPtr,0x9f,(ALSndPlayer *)0x0); } } } @@ -1128,6 +1128,1448 @@ cheats_cheat_deactivate_invincibility: /* 0C6830 7F091D00 AFAC0030 */ sw $t4, 0x30($sp) .L7F091D04: /* 0C6834 7F091D04 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C6838 7F091D08 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0C683C 7F091D0C 2405009F */ li $a1, 159 +/* 0C6840 7F091D10 11C001C5 */ beqz $t6, .L7F092428 +/* 0C6844 7F091D14 00003025 */ move $a2, $zero +/* 0C6848 7F091D18 0C002382 */ jal play_sfx_a1 +/* 0C684C 7F091D1C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C6850 7F091D20 100001C2 */ b .L7F09242C +/* 0C6854 7F091D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C6858 7F091D28 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C685C 7F091D2C 24040001 */ li $a0, 1 +/* 0C6860 7F091D30 100001BE */ b .L7F09242C +/* 0C6864 7F091D34 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C6868 7F091D38 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C686C 7F091D3C 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6870 7F091D40 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6874 7F091D44 44812000 */ mtc1 $at, $f4 +/* 0C6878 7F091D48 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C687C 7F091D4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6880 7F091D50 46062032 */ c.eq.s $f4, $f6 +/* 0C6884 7F091D54 00000000 */ nop +/* 0C6888 7F091D58 45010008 */ bc1t .L7F091D7C +/* 0C688C 7F091D5C 00000000 */ nop +/* 0C6890 7F091D60 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C6894 7F091D64 44815000 */ mtc1 $at, $f10 +/* 0C6898 7F091D68 00000000 */ nop +/* 0C689C 7F091D6C 460A403C */ c.lt.s $f8, $f10 +/* 0C68A0 7F091D70 00000000 */ nop +/* 0C68A4 7F091D74 450201AD */ bc1fl .L7F09242C +/* 0C68A8 7F091D78 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091D7C: +/* 0C68AC 7F091D7C 0FC30776 */ jal get_textptr_for_textID +/* 0C68B0 7F091D80 3404B012 */ li $a0, 45074 +/* 0C68B4 7F091D84 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C68B8 7F091D88 00402025 */ move $a0, $v0 +/* 0C68BC 7F091D8C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68C0 7F091D90 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 0C68C4 7F091D94 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 0C68C8 7F091D98 44818000 */ mtc1 $at, $f16 +/* 0C68CC 7F091D9C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C68D0 7F091DA0 3C188008 */ lui $t8, %hi(pPlayer) +/* 0C68D4 7F091DA4 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C68D8 7F091DA8 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0C68DC 7F091DAC 44819000 */ mtc1 $at, $f18 +/* 0C68E0 7F091DB0 1000019D */ b .L7F092428 +/* 0C68E4 7F091DB4 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C68E8 7F091DB8 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C68EC 7F091DBC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C68F0 7F091DC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C68F4 7F091DC4 44810000 */ mtc1 $at, $f0 +/* 0C68F8 7F091DC8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C68FC 7F091DCC 46040032 */ c.eq.s $f0, $f4 +/* 0C6900 7F091DD0 00000000 */ nop +/* 0C6904 7F091DD4 45010006 */ bc1t .L7F091DF0 +/* 0C6908 7F091DD8 00000000 */ nop +/* 0C690C 7F091DDC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C6910 7F091DE0 4600303C */ c.lt.s $f6, $f0 +/* 0C6914 7F091DE4 00000000 */ nop +/* 0C6918 7F091DE8 45020190 */ bc1fl .L7F09242C +/* 0C691C 7F091DEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F091DF0: +/* 0C6920 7F091DF0 0FC30776 */ jal get_textptr_for_textID +/* 0C6924 7F091DF4 3404B013 */ li $a0, 45075 +/* 0C6928 7F091DF8 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C692C 7F091DFC 00402025 */ move $a0, $v0 +/* 0C6930 7F091E00 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6934 7F091E04 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6938 7F091E08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C693C 7F091E0C 44814000 */ mtc1 $at, $f8 +/* 0C6940 7F091E10 8C590000 */ lw $t9, ($v0) +/* 0C6944 7F091E14 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C6948 7F091E18 44815000 */ mtc1 $at, $f10 +/* 0C694C 7F091E1C E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C6950 7F091E20 8C490000 */ lw $t1, ($v0) +/* 0C6954 7F091E24 10000180 */ b .L7F092428 +/* 0C6958 7F091E28 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C695C 7F091E2C 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C6960 7F091E30 00000000 */ nop +/* 0C6964 7F091E34 5040017D */ beql $v0, $zero, .L7F09242C +/* 0C6968 7F091E38 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C696C 7F091E3C 0FC30776 */ jal get_textptr_for_textID +/* 0C6970 7F091E40 3404B014 */ li $a0, 45076 +/* 0C6974 7F091E44 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6978 7F091E48 00402025 */ move $a0, $v0 +/* 0C697C 7F091E4C 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C6980 7F091E50 00002025 */ move $a0, $zero +/* 0C6984 7F091E54 10000175 */ b .L7F09242C +/* 0C6988 7F091E58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C698C 7F091E5C 0FC30776 */ jal get_textptr_for_textID +/* 0C6990 7F091E60 3404B016 */ li $a0, 45078 +/* 0C6994 7F091E64 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6998 7F091E68 00402025 */ move $a0, $v0 +/* 0C699C 7F091E6C 1000016F */ b .L7F09242C +/* 0C69A0 7F091E70 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C69A4 7F091E74 0FC30776 */ jal get_textptr_for_textID +/* 0C69A8 7F091E78 3404B017 */ li $a0, 45079 +/* 0C69AC 7F091E7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C69B0 7F091E80 00402025 */ move $a0, $v0 +/* 0C69B4 7F091E84 0FC249FD */ jal set_DKMode +/* 0C69B8 7F091E88 24040001 */ li $a0, 1 +/* 0C69BC 7F091E8C 10000167 */ b .L7F09242C +/* 0C69C0 7F091E90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C69C4 7F091E94 24010001 */ li $at, 1 +/* 0C69C8 7F091E98 54410164 */ bnel $v0, $at, .L7F09242C +/* 0C69CC 7F091E9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C69D0 7F091EA0 0FC23122 */ jal add_item_to_inventory +/* 0C69D4 7F091EA4 24040012 */ li $a0, 18 +/* 0C69D8 7F091EA8 AFA20028 */ sw $v0, 0x28($sp) +/* 0C69DC 7F091EAC 0FC23122 */ jal add_item_to_inventory +/* 0C69E0 7F091EB0 24040016 */ li $a0, 22 +/* 0C69E4 7F091EB4 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C69E8 7F091EB8 24040013 */ li $a0, 19 +/* 0C69EC 7F091EBC 01625021 */ addu $t2, $t3, $v0 +/* 0C69F0 7F091EC0 0FC23122 */ jal add_item_to_inventory +/* 0C69F4 7F091EC4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C69F8 7F091EC8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C69FC 7F091ECC 24040014 */ li $a0, 20 +/* 0C6A00 7F091ED0 01826821 */ addu $t5, $t4, $v0 +/* 0C6A04 7F091ED4 0FC23122 */ jal add_item_to_inventory +/* 0C6A08 7F091ED8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C6A0C 7F091EDC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C6A10 7F091EE0 24040015 */ li $a0, 21 +/* 0C6A14 7F091EE4 01C27821 */ addu $t7, $t6, $v0 +/* 0C6A18 7F091EE8 0FC23122 */ jal add_item_to_inventory +/* 0C6A1C 7F091EEC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C6A20 7F091EF0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C6A24 7F091EF4 2404000C */ li $a0, 12 +/* 0C6A28 7F091EF8 0302C821 */ addu $t9, $t8, $v0 +/* 0C6A2C 7F091EFC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A30 7F091F00 AFB90028 */ sw $t9, 0x28($sp) +/* 0C6A34 7F091F04 2404000C */ li $a0, 12 +/* 0C6A38 7F091F08 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A3C 7F091F0C 00402825 */ move $a1, $v0 +/* 0C6A40 7F091F10 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A44 7F091F14 2404000D */ li $a0, 13 +/* 0C6A48 7F091F18 2404000D */ li $a0, 13 +/* 0C6A4C 7F091F1C 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A50 7F091F20 00402825 */ move $a1, $v0 +/* 0C6A54 7F091F24 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6A58 7F091F28 24040001 */ li $a0, 1 +/* 0C6A5C 7F091F2C 24040001 */ li $a0, 1 +/* 0C6A60 7F091F30 0FC1A44C */ jal give_cur_player_ammo +/* 0C6A64 7F091F34 00402825 */ move $a1, $v0 +/* 0C6A68 7F091F38 8FA90028 */ lw $t1, 0x28($sp) +/* 0C6A6C 7F091F3C 5920013B */ blezl $t1, .L7F09242C +/* 0C6A70 7F091F40 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6A74 7F091F44 0FC30776 */ jal get_textptr_for_textID +/* 0C6A78 7F091F48 3404B018 */ li $a0, 45080 +/* 0C6A7C 7F091F4C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6A80 7F091F50 00402025 */ move $a0, $v0 +/* 0C6A84 7F091F54 10000135 */ b .L7F09242C +/* 0C6A88 7F091F58 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C6A8C 7F091F5C 24010001 */ li $at, 1 +/* 0C6A90 7F091F60 14410131 */ bne $v0, $at, .L7F092428 +/* 0C6A94 7F091F64 3C0B8008 */ lui $t3, %hi(pPlayersPerm) +/* 0C6A98 7F091F68 8D6BA0B4 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C6A9C 7F091F6C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6AA0 7F091F70 44818000 */ mtc1 $at, $f16 +/* 0C6AA4 7F091F74 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C6AA8 7F091F78 46128032 */ c.eq.s $f16, $f18 +/* 0C6AAC 7F091F7C 00000000 */ nop +/* 0C6AB0 7F091F80 4502012A */ bc1fl .L7F09242C +/* 0C6AB4 7F091F84 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AB8 7F091F88 0FC30776 */ jal get_textptr_for_textID +/* 0C6ABC 7F091F8C 3404B019 */ li $a0, 45081 +/* 0C6AC0 7F091F90 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6AC4 7F091F94 00402025 */ move $a0, $v0 +/* 0C6AC8 7F091F98 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C6ACC 7F091F9C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) +/* 0C6AD0 7F091FA0 44810000 */ mtc1 $at, $f0 +/* 0C6AD4 7F091FA4 8D4AA0B4 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C6AD8 7F091FA8 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 0C6ADC 7F091FAC E5400064 */ swc1 $f0, 0x64($t2) +/* 0C6AE0 7F091FB0 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 0C6AE4 7F091FB4 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C6AE8 7F091FB8 5080011C */ beql $a0, $zero, .L7F09242C +/* 0C6AEC 7F091FBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6AF0 7F091FC0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C6AF4 7F091FC4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C6AF8 7F091FC8 44053000 */ mfc1 $a1, $f6 +/* 0C6AFC 7F091FCC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C6B00 7F091FD0 00000000 */ nop +/* 0C6B04 7F091FD4 10000115 */ b .L7F09242C +/* 0C6B08 7F091FD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C6B0C 7F091FDC 0FC30776 */ jal get_textptr_for_textID +/* 0C6B10 7F091FE0 3404B01A */ li $a0, 45082 +/* 0C6B14 7F091FE4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B18 7F091FE8 00402025 */ move $a0, $v0 +/* 0C6B1C 7F091FEC 1000010F */ b .L7F09242C +/* 0C6B20 7F091FF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C6B24 7F091FF4 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B28 7F091FF8 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 0C6B2C 7F091FFC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B30 7F092000 44810000 */ mtc1 $at, $f0 +/* 0C6B34 7F092004 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C6B38 7F092008 46080032 */ c.eq.s $f0, $f8 +/* 0C6B3C 7F09200C 00000000 */ nop +/* 0C6B40 7F092010 45010006 */ bc1t .L7F09202C +/* 0C6B44 7F092014 00000000 */ nop +/* 0C6B48 7F092018 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C6B4C 7F09201C 4600503C */ c.lt.s $f10, $f0 +/* 0C6B50 7F092020 00000000 */ nop +/* 0C6B54 7F092024 45020101 */ bc1fl .L7F09242C +/* 0C6B58 7F092028 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09202C: +/* 0C6B5C 7F09202C 0FC30776 */ jal get_textptr_for_textID +/* 0C6B60 7F092030 3404B01B */ li $a0, 45083 +/* 0C6B64 7F092034 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6B68 7F092038 00402025 */ move $a0, $v0 +/* 0C6B6C 7F09203C 3C028008 */ lui $v0, %hi(pPlayer) +/* 0C6B70 7F092040 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 +/* 0C6B74 7F092044 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C6B78 7F092048 44818000 */ mtc1 $at, $f16 +/* 0C6B7C 7F09204C 8C4D0000 */ lw $t5, ($v0) +/* 0C6B80 7F092050 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C6B84 7F092054 44819000 */ mtc1 $at, $f18 +/* 0C6B88 7F092058 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C6B8C 7F09205C 8C4E0000 */ lw $t6, ($v0) +/* 0C6B90 7F092060 100000F1 */ b .L7F092428 +/* 0C6B94 7F092064 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C6B98 7F092068 24010001 */ li $at, 1 +/* 0C6B9C 7F09206C 544100EF */ bnel $v0, $at, .L7F09242C +/* 0C6BA0 7F092070 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BA4 7F092074 0FC23122 */ jal add_item_to_inventory +/* 0C6BA8 7F092078 24040012 */ li $a0, 18 +/* 0C6BAC 7F09207C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BB0 7F092080 2404000C */ li $a0, 12 +/* 0C6BB4 7F092084 2404000C */ li $a0, 12 +/* 0C6BB8 7F092088 0FC1A44C */ jal give_cur_player_ammo +/* 0C6BBC 7F09208C 00402825 */ move $a1, $v0 +/* 0C6BC0 7F092090 100000E6 */ b .L7F09242C +/* 0C6BC4 7F092094 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C6BC8 7F092098 24010001 */ li $at, 1 +/* 0C6BCC 7F09209C 544100E3 */ bnel $v0, $at, .L7F09242C +/* 0C6BD0 7F0920A0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BD4 7F0920A4 0FC23122 */ jal add_item_to_inventory +/* 0C6BD8 7F0920A8 24040016 */ li $a0, 22 +/* 0C6BDC 7F0920AC 100000DF */ b .L7F09242C +/* 0C6BE0 7F0920B0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C6BE4 7F0920B4 24010001 */ li $at, 1 +/* 0C6BE8 7F0920B8 544100DC */ bnel $v0, $at, .L7F09242C +/* 0C6BEC 7F0920BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6BF0 7F0920C0 0FC23122 */ jal add_item_to_inventory +/* 0C6BF4 7F0920C4 24040013 */ li $a0, 19 +/* 0C6BF8 7F0920C8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6BFC 7F0920CC 2404000D */ li $a0, 13 +/* 0C6C00 7F0920D0 2404000D */ li $a0, 13 +/* 0C6C04 7F0920D4 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C08 7F0920D8 00402825 */ move $a1, $v0 +/* 0C6C0C 7F0920DC 100000D3 */ b .L7F09242C +/* 0C6C10 7F0920E0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C6C14 7F0920E4 24010001 */ li $at, 1 +/* 0C6C18 7F0920E8 544100D0 */ bnel $v0, $at, .L7F09242C +/* 0C6C1C 7F0920EC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C20 7F0920F0 0FC23122 */ jal add_item_to_inventory +/* 0C6C24 7F0920F4 24040014 */ li $a0, 20 +/* 0C6C28 7F0920F8 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C2C 7F0920FC 24040001 */ li $a0, 1 +/* 0C6C30 7F092100 24040001 */ li $a0, 1 +/* 0C6C34 7F092104 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C38 7F092108 00402825 */ move $a1, $v0 +/* 0C6C3C 7F09210C 100000C7 */ b .L7F09242C +/* 0C6C40 7F092110 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C6C44 7F092114 24010001 */ li $at, 1 +/* 0C6C48 7F092118 544100C4 */ bnel $v0, $at, .L7F09242C +/* 0C6C4C 7F09211C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6C50 7F092120 0FC23122 */ jal add_item_to_inventory +/* 0C6C54 7F092124 24040015 */ li $a0, 21 +/* 0C6C58 7F092128 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6C5C 7F09212C 24040001 */ li $a0, 1 +/* 0C6C60 7F092130 24040001 */ li $a0, 1 +/* 0C6C64 7F092134 0FC1A44C */ jal give_cur_player_ammo +/* 0C6C68 7F092138 00402825 */ move $a1, $v0 +/* 0C6C6C 7F09213C 100000BB */ b .L7F09242C +/* 0C6C70 7F092140 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C6C74 7F092144 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C6C78 7F092148 44816000 */ mtc1 $at, $f12 +/* 0C6C7C 7F09214C 3C018005 */ lui $at, %hi(finalamount) +/* 0C6C80 7F092150 0FC20284 */ jal currentPlayerStartChrFade +/* 0C6C84 7F092154 C42E73D8 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C6C88 7F092158 100000B4 */ b .L7F09242C +/* 0C6C8C 7F09215C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C6C90 7F092160 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C6C94 7F092164 00000000 */ nop +/* 0C6C98 7F092168 544000B0 */ bnezl $v0, .L7F09242C +/* 0C6C9C 7F09216C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CA0 7F092170 0FC30776 */ jal get_textptr_for_textID +/* 0C6CA4 7F092174 3404B01D */ li $a0, 45085 +/* 0C6CA8 7F092178 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6CAC 7F09217C 00402025 */ move $a0, $v0 +/* 0C6CB0 7F092180 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C6CB4 7F092184 24040001 */ li $a0, 1 +/* 0C6CB8 7F092188 100000A8 */ b .L7F09242C +/* 0C6CBC 7F09218C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C6CC0 7F092190 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C6CC4 7F092194 00000000 */ nop +/* 0C6CC8 7F092198 544000A4 */ bnezl $v0, .L7F09242C +/* 0C6CCC 7F09219C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6CD0 7F0921A0 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C6CD4 7F0921A4 24040001 */ li $a0, 1 +/* 0C6CD8 7F0921A8 100000A0 */ b .L7F09242C +/* 0C6CDC 7F0921AC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C6CE0 7F0921B0 0FC08179 */ jal get_animation_rate +/* 0C6CE4 7F0921B4 00000000 */ nop +/* 0C6CE8 7F0921B8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6CEC 7F0921BC 44812000 */ mtc1 $at, $f4 +/* 0C6CF0 7F0921C0 00000000 */ nop +/* 0C6CF4 7F0921C4 4604003C */ c.lt.s $f0, $f4 +/* 0C6CF8 7F0921C8 00000000 */ nop +/* 0C6CFC 7F0921CC 45020097 */ bc1fl .L7F09242C +/* 0C6D00 7F0921D0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D04 7F0921D4 0FC30776 */ jal get_textptr_for_textID +/* 0C6D08 7F0921D8 3404B034 */ li $a0, 45108 +/* 0C6D0C 7F0921DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D10 7F0921E0 00402025 */ move $a0, $v0 +/* 0C6D14 7F0921E4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C6D18 7F0921E8 44816000 */ mtc1 $at, $f12 +/* 0C6D1C 7F0921EC 0FC08150 */ jal animation_speed_related +/* 0C6D20 7F0921F0 00000000 */ nop +/* 0C6D24 7F0921F4 1000008D */ b .L7F09242C +/* 0C6D28 7F0921F8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C6D2C 7F0921FC 0FC08179 */ jal get_animation_rate +/* 0C6D30 7F092200 00000000 */ nop +/* 0C6D34 7F092204 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D38 7F092208 44813000 */ mtc1 $at, $f6 +/* 0C6D3C 7F09220C 00000000 */ nop +/* 0C6D40 7F092210 4600303C */ c.lt.s $f6, $f0 +/* 0C6D44 7F092214 00000000 */ nop +/* 0C6D48 7F092218 45020084 */ bc1fl .L7F09242C +/* 0C6D4C 7F09221C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6D50 7F092220 0FC30776 */ jal get_textptr_for_textID +/* 0C6D54 7F092224 3404B032 */ li $a0, 45106 +/* 0C6D58 7F092228 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C6D5C 7F09222C 00402025 */ move $a0, $v0 +/* 0C6D60 7F092230 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C6D64 7F092234 44816000 */ mtc1 $at, $f12 +/* 0C6D68 7F092238 0FC08150 */ jal animation_speed_related +/* 0C6D6C 7F09223C 00000000 */ nop +/* 0C6D70 7F092240 1000007A */ b .L7F09242C +/* 0C6D74 7F092244 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C6D78 7F092248 24010001 */ li $at, 1 +/* 0C6D7C 7F09224C 14410076 */ bne $v0, $at, .L7F092428 +/* 0C6D80 7F092250 24040019 */ li $a0, 25 +/* 0C6D84 7F092254 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6D88 7F092258 24050019 */ li $a1, 25 +/* 0C6D8C 7F09225C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6D90 7F092260 24040006 */ li $a0, 6 +/* 0C6D94 7F092264 24040006 */ li $a0, 6 +/* 0C6D98 7F092268 0FC1A44C */ jal give_cur_player_ammo +/* 0C6D9C 7F09226C 00402825 */ move $a1, $v0 +/* 0C6DA0 7F092270 1000006E */ b .L7F09242C +/* 0C6DA4 7F092274 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C6DA8 7F092278 24010001 */ li $at, 1 +/* 0C6DAC 7F09227C 1441006A */ bne $v0, $at, .L7F092428 +/* 0C6DB0 7F092280 24040018 */ li $a0, 24 +/* 0C6DB4 7F092284 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DB8 7F092288 24050018 */ li $a1, 24 +/* 0C6DBC 7F09228C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DC0 7F092290 2404000B */ li $a0, 11 +/* 0C6DC4 7F092294 2404000B */ li $a0, 11 +/* 0C6DC8 7F092298 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DCC 7F09229C 00402825 */ move $a1, $v0 +/* 0C6DD0 7F0922A0 10000062 */ b .L7F09242C +/* 0C6DD4 7F0922A4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C6DD8 7F0922A8 24010001 */ li $at, 1 +/* 0C6DDC 7F0922AC 1441005E */ bne $v0, $at, .L7F092428 +/* 0C6DE0 7F0922B0 2404000E */ li $a0, 14 +/* 0C6DE4 7F0922B4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6DE8 7F0922B8 2405000E */ li $a1, 14 +/* 0C6DEC 7F0922BC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6DF0 7F0922C0 24040001 */ li $a0, 1 +/* 0C6DF4 7F0922C4 24040001 */ li $a0, 1 +/* 0C6DF8 7F0922C8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6DFC 7F0922CC 00402825 */ move $a1, $v0 +/* 0C6E00 7F0922D0 10000056 */ b .L7F09242C +/* 0C6E04 7F0922D4 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C6E08 7F0922D8 24010001 */ li $at, 1 +/* 0C6E0C 7F0922DC 14410052 */ bne $v0, $at, .L7F092428 +/* 0C6E10 7F0922E0 24040003 */ li $a0, 3 +/* 0C6E14 7F0922E4 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E18 7F0922E8 24050003 */ li $a1, 3 +/* 0C6E1C 7F0922EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 0C6E20 7F0922F0 2404000A */ li $a0, 10 +/* 0C6E24 7F0922F4 2404000A */ li $a0, 10 +/* 0C6E28 7F0922F8 0FC1A44C */ jal give_cur_player_ammo +/* 0C6E2C 7F0922FC 00402825 */ move $a1, $v0 +/* 0C6E30 7F092300 1000004A */ b .L7F09242C +/* 0C6E34 7F092304 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C6E38 7F092308 24010001 */ li $at, 1 +/* 0C6E3C 7F09230C 14410046 */ bne $v0, $at, .L7F092428 +/* 0C6E40 7F092310 24040002 */ li $a0, 2 +/* 0C6E44 7F092314 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E48 7F092318 24050002 */ li $a1, 2 +/* 0C6E4C 7F09231C 10000043 */ b .L7F09242C +/* 0C6E50 7F092320 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C6E54 7F092324 24010001 */ li $at, 1 +/* 0C6E58 7F092328 1441003F */ bne $v0, $at, .L7F092428 +/* 0C6E5C 7F09232C 24040016 */ li $a0, 22 +/* 0C6E60 7F092330 0FC23143 */ jal add_doubles_item_to_inventory +/* 0C6E64 7F092334 24050016 */ li $a1, 22 +/* 0C6E68 7F092338 1000003C */ b .L7F09242C +/* 0C6E6C 7F09233C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C6E70 7F092340 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 0C6E74 7F092344 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C6E78 7F092348 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C6E7C 7F09234C 04800036 */ bltz $a0, .L7F092428 +/* 0C6E80 7F092350 28810004 */ slti $at, $a0, 4 +/* 0C6E84 7F092354 50200035 */ beql $at, $zero, .L7F09242C +/* 0C6E88 7F092358 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6E8C 7F09235C 0FC079D8 */ jal sub_GAME_7F01E760 +/* 0C6E90 7F092360 00000000 */ nop +/* 0C6E94 7F092364 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0C6E98 7F092368 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C6E9C 7F09236C 2405009F */ li $a1, 159 +/* 0C6EA0 7F092370 0C002382 */ jal play_sfx_a1 +/* 0C6EA4 7F092374 00003025 */ move $a2, $zero +/* 0C6EA8 7F092378 1000002C */ b .L7F09242C +/* 0C6EAC 7F09237C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C6EB0 7F092380 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EB4 7F092384 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EB8 7F092388 8C440000 */ lw $a0, ($v0) +/* 0C6EBC 7F09238C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C6EC0 7F092390 04800025 */ bltz $a0, .L7F092428 +/* 0C6EC4 7F092394 28810004 */ slti $at, $a0, 4 +/* 0C6EC8 7F092398 10200023 */ beqz $at, .L7F092428 +/* 0C6ECC 7F09239C 00001825 */ move $v1, $zero +/* 0C6ED0 7F0923A0 19000014 */ blez $t0, .L7F0923F4 +/* 0C6ED4 7F0923A4 00002825 */ move $a1, $zero +.L7F0923A8: +/* 0C6ED8 7F0923A8 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6EDC 7F0923AC 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +/* 0C6EE0 7F0923B0 8C440000 */ lw $a0, ($v0) +/* 0C6EE4 7F0923B4 00003025 */ move $a2, $zero +/* 0C6EE8 7F0923B8 AFA30018 */ sw $v1, 0x18($sp) +/* 0C6EEC 7F0923BC AFA5001C */ sw $a1, 0x1c($sp) +/* 0C6EF0 7F0923C0 0FC078B0 */ jal isStageUnlockedAtDifficulty +/* 0C6EF4 7F0923C4 AFA80020 */ sw $t0, 0x20($sp) +/* 0C6EF8 7F0923C8 24010003 */ li $at, 3 +/* 0C6EFC 7F0923CC 8FA30018 */ lw $v1, 0x18($sp) +/* 0C6F00 7F0923D0 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C6F04 7F0923D4 14410002 */ bne $v0, $at, .L7F0923E0 +/* 0C6F08 7F0923D8 8FA80020 */ lw $t0, 0x20($sp) +/* 0C6F0C 7F0923DC 24630001 */ addiu $v1, $v1, 1 +.L7F0923E0: +/* 0C6F10 7F0923E0 24A50001 */ addiu $a1, $a1, 1 +/* 0C6F14 7F0923E4 14A8FFF0 */ bne $a1, $t0, .L7F0923A8 +/* 0C6F18 7F0923E8 00000000 */ nop +/* 0C6F1C 7F0923EC 3C028003 */ lui $v0, %hi(selected_folder_num) +/* 0C6F20 7F0923F0 2442A8E8 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x5718 +.L7F0923F4: +/* 0C6F24 7F0923F4 246F0001 */ addiu $t7, $v1, 1 +/* 0C6F28 7F0923F8 150F000B */ bne $t0, $t7, .L7F092428 +/* 0C6F2C 7F0923FC 2505FFFF */ addiu $a1, $t0, -1 +/* 0C6F30 7F092400 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C6F34 7F092404 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C6F38 7F092408 8C440000 */ lw $a0, ($v0) +/* 0C6F3C 7F09240C 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 0C6F40 7F092410 00003025 */ move $a2, $zero +/* 0C6F44 7F092414 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0C6F48 7F092418 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C6F4C 7F09241C 2405009F */ li $a1, 159 +/* 0C6F50 7F092420 0C002382 */ jal play_sfx_a1 +/* 0C6F54 7F092424 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.L7F092428: +/* 0C6F58 7F092428 8FBF0014 */ lw $ra, 0x14($sp) +.L7F09242C: +/* 0C6F5C 7F09242C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C6F60 7F092430 03E00008 */ jr $ra +/* 0C6F64 7F092434 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ + +.text +glabel handle_cheats_turned_on +/* 0C71B4 7F092644 00047100 */ sll $t6, $a0, 4 +/* 0C71B8 7F092648 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C71BC 7F09264C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C71C0 7F092650 8DEFF838 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C71C4 7F092654 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C71C8 7F092658 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C71CC 7F09265C AFA40040 */ sw $a0, 0x40($sp) +/* 0C71D0 7F092660 0FC26F3C */ jal get_cur_playernum +/* 0C71D4 7F092664 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C71D8 7F092668 0FC26C01 */ jal getPlayerCount +/* 0C71DC 7F09266C AFA20038 */ sw $v0, 0x38($sp) +/* 0C71E0 7F092670 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C71E4 7F092674 8FA60040 */ lw $a2, 0x40($sp) +/* 0C71E8 7F092678 AFA20034 */ sw $v0, 0x34($sp) +/* 0C71EC 7F09267C 30780010 */ andi $t8, $v1, 0x10 +/* 0C71F0 7F092680 17000012 */ bnez $t8, .Ljp7F0926CC +/* 0C71F4 7F092684 30790020 */ andi $t9, $v1, 0x20 +/* 0C71F8 7F092688 1720000A */ bnez $t9, .Ljp7F0926B4 +/* 0C71FC 7F09268C 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7200 7F092690 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) # $t1, 0x8008 +/* 0C7204 7F092694 25299EA0 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x6160 +/* 0C7208 7F092698 00C91821 */ addu $v1, $a2, $t1 +/* 0C720C 7F09269C 906A0000 */ lbu $t2, ($v1) +/* 0C7210 7F0926A0 240B0001 */ li $t3, 1 +/* 0C7214 7F0926A4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C7218 7F0926A8 014C6825 */ or $t5, $t2, $t4 +/* 0C721C 7F0926AC 10000007 */ b .Ljp7F0926CC +/* 0C7220 7F0926B0 A06D0000 */ sb $t5, ($v1) +.Ljp7F0926B4: +/* 0C7224 7F0926B4 240E0001 */ li $t6, 1 +/* 0C7228 7F0926B8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C722C 7F0926BC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C7230 7F0926C0 00260821 */ addu $at, $at, $a2 +/* 0C7234 7F0926C4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C7238 7F0926C8 A0389EA0 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.Ljp7F0926CC: +/* 0C723C 7F0926CC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C7240 7F0926D0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C7244 7F0926D4 10200234 */ beqz $at, .Ljp7F092FA8 +/* 0C7248 7F0926D8 0019C880 */ sll $t9, $t9, 2 +/* 0C724C 7F0926DC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C7250 7F0926E0 00390821 */ addu $at, $at, $t9 +/* 0C7254 7F0926E4 8C3972E0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C7258 7F0926E8 03200008 */ jr $t9 +/* 0C725C 7F0926EC 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C7260 7F0926F0 0FC040B0 */ jal unlock_all_mp_chars +/* 0C7264 7F0926F4 00000000 */ nop +/* 0C7268 7F0926F8 1000022C */ b .Ljp7F092FAC +/* 0C726C 7F0926FC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C7270 7F092700 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7274 7F092704 00000000 */ nop +/* 0C7278 7F092708 54400228 */ bnezl $v0, .Ljp7F092FAC +/* 0C727C 7F09270C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7280 7F092710 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7284 7F092714 3404B00F */ li $a0, 45071 +/* 0C7288 7F092718 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C728C 7F09271C 00402025 */ move $a0, $v0 +/* 0C7290 7F092720 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7294 7F092724 24040001 */ li $a0, 1 +/* 0C7298 7F092728 10000220 */ b .Ljp7F092FAC +/* 0C729C 7F09272C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C72A0 7F092730 0FC232CF */ jal get_BONDdata_allguns_flag +/* 0C72A4 7F092734 00000000 */ nop +/* 0C72A8 7F092738 5440021C */ bnezl $v0, .Ljp7F092FAC +/* 0C72AC 7F09273C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C72B0 7F092740 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72B4 7F092744 3404B010 */ li $a0, 45072 +/* 0C72B8 7F092748 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72BC 7F09274C 00402025 */ move $a0, $v0 +/* 0C72C0 7F092750 0FC232CB */ jal set_BONDdata_allguns_flag +/* 0C72C4 7F092754 24040001 */ li $a0, 1 +/* 0C72C8 7F092758 10000214 */ b .Ljp7F092FAC +/* 0C72CC 7F09275C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C72D0 7F092760 0FC30AA2 */ jal get_textptr_for_textID +/* 0C72D4 7F092764 3404B011 */ li $a0, 45073 +/* 0C72D8 7F092768 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C72DC 7F09276C 00402025 */ move $a0, $v0 +/* 0C72E0 7F092770 0FC1A637 */ jal set_max_ammo_for_cur_player +/* 0C72E4 7F092774 00000000 */ nop +/* 0C72E8 7F092778 1000020C */ b .Ljp7F092FAC +/* 0C72EC 7F09277C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C72F0 7F092780 28410002 */ slti $at, $v0, 2 +/* 0C72F4 7F092784 14200208 */ bnez $at, .Ljp7F092FA8 +/* 0C72F8 7F092788 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C72FC 7F09278C 18400015 */ blez $v0, .Ljp7F0927E4 +/* 0C7300 7F092790 AFA00030 */ sw $zero, 0x30($sp) +.Ljp7F092794: +/* 0C7304 7F092794 8FA50038 */ lw $a1, 0x38($sp) +/* 0C7308 7F092798 8FA90030 */ lw $t1, 0x30($sp) +/* 0C730C 7F09279C 1125000A */ beq $t1, $a1, .Ljp7F0927C8 +/* 0C7310 7F0927A0 00000000 */ nop +/* 0C7314 7F0927A4 0FC26F2B */ jal set_cur_player +/* 0C7318 7F0927A8 01202025 */ move $a0, $t1 +/* 0C731C 7F0927AC 0FC229A4 */ jal get_bondata_invincible_flag +/* 0C7320 7F0927B0 00000000 */ nop +/* 0C7324 7F0927B4 10400004 */ beqz $v0, .Ljp7F0927C8 +/* 0C7328 7F0927B8 00002025 */ move $a0, $zero +/* 0C732C 7F0927BC 240B0001 */ li $t3, 1 +/* 0C7330 7F0927C0 0FC229A0 */ jal set_bondata_invincible_flag +/* 0C7334 7F0927C4 AFAB002C */ sw $t3, 0x2c($sp) +.Ljp7F0927C8: +/* 0C7338 7F0927C8 0FC26F2B */ jal set_cur_player +/* 0C733C 7F0927CC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C7340 7F0927D0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C7344 7F0927D4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C7348 7F0927D8 254C0001 */ addiu $t4, $t2, 1 +/* 0C734C 7F0927DC 158DFFED */ bne $t4, $t5, .Ljp7F092794 +/* 0C7350 7F0927E0 AFAC0030 */ sw $t4, 0x30($sp) +.Ljp7F0927E4: +/* 0C7354 7F0927E4 8FAE002C */ lw $t6, 0x2c($sp) +/* 0C7358 7F0927E8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0C735C 7F0927EC 2405009F */ li $a1, 159 +/* 0C7360 7F0927F0 11C001ED */ beqz $t6, .Ljp7F092FA8 +/* 0C7364 7F0927F4 00003025 */ move $a2, $zero +/* 0C7368 7F0927F8 0C002386 */ jal play_sfx_a1 +/* 0C736C 7F0927FC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C7370 7F092800 100001EA */ b .Ljp7F092FAC +/* 0C7374 7F092804 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_linemode: +/* 0C7378 7F092808 0FC246B2 */ jal set_debug_VisCVG_flag +/* 0C737C 7F09280C 24040001 */ li $a0, 1 +/* 0C7380 7F092810 100001E6 */ b .Ljp7F092FAC +/* 0C7384 7F092814 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_2x_health: +/* 0C7388 7F092818 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C738C 7F09281C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7390 7F092820 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7394 7F092824 44812000 */ mtc1 $at, $f4 +/* 0C7398 7F092828 C4462A3C */ lwc1 $f6, 0x2a3c($v0) +/* 0C739C 7F09282C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73A0 7F092830 46062032 */ c.eq.s $f4, $f6 +/* 0C73A4 7F092834 00000000 */ nop +/* 0C73A8 7F092838 45010008 */ bc1t .Ljp7F09285C +/* 0C73AC 7F09283C 00000000 */ nop +/* 0C73B0 7F092840 C44800DC */ lwc1 $f8, 0xdc($v0) +/* 0C73B4 7F092844 44815000 */ mtc1 $at, $f10 +/* 0C73B8 7F092848 00000000 */ nop +/* 0C73BC 7F09284C 460A403C */ c.lt.s $f8, $f10 +/* 0C73C0 7F092850 00000000 */ nop +/* 0C73C4 7F092854 450201D5 */ bc1fl .Ljp7F092FAC +/* 0C73C8 7F092858 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F09285C: +/* 0C73CC 7F09285C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C73D0 7F092860 3404B012 */ li $a0, 45074 +/* 0C73D4 7F092864 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C73D8 7F092868 00402025 */ move $a0, $v0 +/* 0C73DC 7F09286C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C73E0 7F092870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 +/* 0C73E4 7F092874 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) +/* 0C73E8 7F092878 44818000 */ mtc1 $at, $f16 +/* 0C73EC 7F09287C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C73F0 7F092880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 +/* 0C73F4 7F092884 E5F000DC */ swc1 $f16, 0xdc($t7) +/* 0C73F8 7F092888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) +/* 0C73FC 7F09288C 44819000 */ mtc1 $at, $f18 +/* 0C7400 7F092890 100001C5 */ b .Ljp7F092FA8 +/* 0C7404 7F092894 E7122A3C */ swc1 $f18, 0x2a3c($t8) +cheats_cheat_2x_armor: +/* 0C7408 7F092898 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C740C 7F09289C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C7410 7F0928A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7414 7F0928A4 44810000 */ mtc1 $at, $f0 +/* 0C7418 7F0928A8 C4442A40 */ lwc1 $f4, 0x2a40($v0) +/* 0C741C 7F0928AC 46040032 */ c.eq.s $f0, $f4 +/* 0C7420 7F0928B0 00000000 */ nop +/* 0C7424 7F0928B4 45010006 */ bc1t .Ljp7F0928D0 +/* 0C7428 7F0928B8 00000000 */ nop +/* 0C742C 7F0928BC C44600E0 */ lwc1 $f6, 0xe0($v0) +/* 0C7430 7F0928C0 4600303C */ c.lt.s $f6, $f0 +/* 0C7434 7F0928C4 00000000 */ nop +/* 0C7438 7F0928C8 450201B8 */ bc1fl .Ljp7F092FAC +/* 0C743C 7F0928CC 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0928D0: +/* 0C7440 7F0928D0 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7444 7F0928D4 3404B013 */ li $a0, 45075 +/* 0C7448 7F0928D8 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C744C 7F0928DC 00402025 */ move $a0, $v0 +/* 0C7450 7F0928E0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7454 7F0928E4 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7458 7F0928E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C745C 7F0928EC 44814000 */ mtc1 $at, $f8 +/* 0C7460 7F0928F0 8C590000 */ lw $t9, ($v0) +/* 0C7464 7F0928F4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0C7468 7F0928F8 44815000 */ mtc1 $at, $f10 +/* 0C746C 7F0928FC E72800E0 */ swc1 $f8, 0xe0($t9) +/* 0C7470 7F092900 8C490000 */ lw $t1, ($v0) +/* 0C7474 7F092904 100001A8 */ b .Ljp7F092FA8 +/* 0C7478 7F092908 E52A2A40 */ swc1 $f10, 0x2a40($t1) +cheats_cheat_invisibility: +/* 0C747C 7F09290C 0FC229AB */ jal get_invisible_to_guards_flag +/* 0C7480 7F092910 00000000 */ nop +/* 0C7484 7F092914 504001A5 */ beql $v0, $zero, .Ljp7F092FAC +/* 0C7488 7F092918 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C748C 7F09291C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7490 7F092920 3404B014 */ li $a0, 45076 +/* 0C7494 7F092924 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7498 7F092928 00402025 */ move $a0, $v0 +/* 0C749C 7F09292C 0FC229A8 */ jal set_invisible_to_guards_flag +/* 0C74A0 7F092930 00002025 */ move $a0, $zero +/* 0C74A4 7F092934 1000019D */ b .Ljp7F092FAC +/* 0C74A8 7F092938 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_infinite_ammo: +/* 0C74AC 7F09293C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74B0 7F092940 3404B016 */ li $a0, 45078 +/* 0C74B4 7F092944 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74B8 7F092948 00402025 */ move $a0, $v0 +/* 0C74BC 7F09294C 10000197 */ b .Ljp7F092FAC +/* 0C74C0 7F092950 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_dk_mode: +/* 0C74C4 7F092954 0FC30AA2 */ jal get_textptr_for_textID +/* 0C74C8 7F092958 3404B017 */ li $a0, 45079 +/* 0C74CC 7F09295C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C74D0 7F092960 00402025 */ move $a0, $v0 +/* 0C74D4 7F092964 0FC24CDD */ jal set_DKMode +/* 0C74D8 7F092968 24040001 */ li $a0, 1 +/* 0C74DC 7F09296C 1000018F */ b .Ljp7F092FAC +/* 0C74E0 7F092970 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_extra_weapons: +/* 0C74E4 7F092974 24010001 */ li $at, 1 +/* 0C74E8 7F092978 5441018C */ bnel $v0, $at, .Ljp7F092FAC +/* 0C74EC 7F09297C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C74F0 7F092980 0FC2335A */ jal add_item_to_inventory +/* 0C74F4 7F092984 24040012 */ li $a0, 18 +/* 0C74F8 7F092988 AFA20028 */ sw $v0, 0x28($sp) +/* 0C74FC 7F09298C 0FC2335A */ jal add_item_to_inventory +/* 0C7500 7F092990 24040016 */ li $a0, 22 +/* 0C7504 7F092994 8FAB0028 */ lw $t3, 0x28($sp) +/* 0C7508 7F092998 24040013 */ li $a0, 19 +/* 0C750C 7F09299C 01625021 */ addu $t2, $t3, $v0 +/* 0C7510 7F0929A0 0FC2335A */ jal add_item_to_inventory +/* 0C7514 7F0929A4 AFAA0028 */ sw $t2, 0x28($sp) +/* 0C7518 7F0929A8 8FAC0028 */ lw $t4, 0x28($sp) +/* 0C751C 7F0929AC 24040014 */ li $a0, 20 +/* 0C7520 7F0929B0 01826821 */ addu $t5, $t4, $v0 +/* 0C7524 7F0929B4 0FC2335A */ jal add_item_to_inventory +/* 0C7528 7F0929B8 AFAD0028 */ sw $t5, 0x28($sp) +/* 0C752C 7F0929BC 8FAE0028 */ lw $t6, 0x28($sp) +/* 0C7530 7F0929C0 24040015 */ li $a0, 21 +/* 0C7534 7F0929C4 01C27821 */ addu $t7, $t6, $v0 +/* 0C7538 7F0929C8 0FC2335A */ jal add_item_to_inventory +/* 0C753C 7F0929CC AFAF0028 */ sw $t7, 0x28($sp) +/* 0C7540 7F0929D0 8FB80028 */ lw $t8, 0x28($sp) +/* 0C7544 7F0929D4 2404000C */ li $a0, 12 +/* 0C7548 7F0929D8 0302C821 */ addu $t9, $t8, $v0 +/* 0C754C 7F0929DC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7550 7F0929E0 AFB90028 */ sw $t9, 0x28($sp) +/* 0C7554 7F0929E4 2404000C */ li $a0, 12 +/* 0C7558 7F0929E8 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C755C 7F0929EC 00402825 */ move $a1, $v0 +/* 0C7560 7F0929F0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7564 7F0929F4 2404000D */ li $a0, 13 +/* 0C7568 7F0929F8 2404000D */ li $a0, 13 +/* 0C756C 7F0929FC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7570 7F092A00 00402825 */ move $a1, $v0 +/* 0C7574 7F092A04 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7578 7F092A08 24040001 */ li $a0, 1 +/* 0C757C 7F092A0C 24040001 */ li $a0, 1 +/* 0C7580 7F092A10 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7584 7F092A14 00402825 */ move $a1, $v0 +/* 0C7588 7F092A18 8FA90028 */ lw $t1, 0x28($sp) +/* 0C758C 7F092A1C 59200163 */ blezl $t1, .Ljp7F092FAC +/* 0C7590 7F092A20 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7594 7F092A24 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7598 7F092A28 3404B018 */ li $a0, 45080 +/* 0C759C 7F092A2C 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75A0 7F092A30 00402025 */ move $a0, $v0 +/* 0C75A4 7F092A34 1000015D */ b .Ljp7F092FAC +/* 0C75A8 7F092A38 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_tiny_bond: +/* 0C75AC 7F092A3C 24010001 */ li $at, 1 +/* 0C75B0 7F092A40 14410159 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(pPlayersPerm) # $t3, 0x8008 +/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(pPlayersPerm)($t3) +/* 0C75BC 7F092A4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C75C0 7F092A50 44818000 */ mtc1 $at, $f16 +/* 0C75C4 7F092A54 C5720064 */ lwc1 $f18, 0x64($t3) +/* 0C75C8 7F092A58 46128032 */ c.eq.s $f16, $f18 +/* 0C75CC 7F092A5C 00000000 */ nop +/* 0C75D0 7F092A60 45020152 */ bc1fl .Ljp7F092FAC +/* 0C75D4 7F092A64 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C75D8 7F092A68 0FC30AA2 */ jal get_textptr_for_textID +/* 0C75DC 7F092A6C 3404B019 */ li $a0, 45081 +/* 0C75E0 7F092A70 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C75E4 7F092A74 00402025 */ move $a0, $v0 +/* 0C75E8 7F092A78 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) # $t2, 0x8008 +/* 0C75F0 7F092A80 44810000 */ mtc1 $at, $f0 +/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(pPlayersPerm)($t2) +/* 0C75F8 7F092A88 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 +/* 0C75FC 7F092A8C E5400064 */ swc1 $f0, 0x64($t2) +/* 0C7600 7F092A90 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) +/* 0C7604 7F092A94 8D8400D4 */ lw $a0, 0xd4($t4) +/* 0C7608 7F092A98 50800144 */ beql $a0, $zero, .Ljp7F092FAC +/* 0C760C 7F092A9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7610 7F092AA0 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7614 7F092AA4 46002182 */ mul.s $f6, $f4, $f0 +/* 0C7618 7F092AA8 44053000 */ mfc1 $a1, $f6 +/* 0C761C 7F092AAC 0FC1B51A */ jal set_obj_instance_controller_scale +/* 0C7620 7F092AB0 00000000 */ nop +/* 0C7624 7F092AB4 1000013D */ b .Ljp7F092FAC +/* 0C7628 7F092AB8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_paintball: +/* 0C762C 7F092ABC 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7630 7F092AC0 3404B01A */ li $a0, 45082 +/* 0C7634 7F092AC4 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7638 7F092AC8 00402025 */ move $a0, $v0 +/* 0C763C 7F092ACC 10000137 */ b .Ljp7F092FAC +/* 0C7640 7F092AD0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_10x_health: +/* 0C7644 7F092AD4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7648 7F092AD8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) +/* 0C764C 7F092ADC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7650 7F092AE0 44810000 */ mtc1 $at, $f0 +/* 0C7654 7F092AE4 C4482A3C */ lwc1 $f8, 0x2a3c($v0) +/* 0C7658 7F092AE8 46080032 */ c.eq.s $f0, $f8 +/* 0C765C 7F092AEC 00000000 */ nop +/* 0C7660 7F092AF0 45010006 */ bc1t .Ljp7F092B0C +/* 0C7664 7F092AF4 00000000 */ nop +/* 0C7668 7F092AF8 C44A00DC */ lwc1 $f10, 0xdc($v0) +/* 0C766C 7F092AFC 4600503C */ c.lt.s $f10, $f0 +/* 0C7670 7F092B00 00000000 */ nop +/* 0C7674 7F092B04 45020129 */ bc1fl .Ljp7F092FAC +/* 0C7678 7F092B08 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092B0C: +/* 0C767C 7F092B0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7680 7F092B10 3404B01B */ li $a0, 45083 +/* 0C7684 7F092B14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7688 7F092B18 00402025 */ move $a0, $v0 +/* 0C768C 7F092B1C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 +/* 0C7690 7F092B20 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 +/* 0C7694 7F092B24 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7698 7F092B28 44818000 */ mtc1 $at, $f16 +/* 0C769C 7F092B2C 8C4D0000 */ lw $t5, ($v0) +/* 0C76A0 7F092B30 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0C76A4 7F092B34 44819000 */ mtc1 $at, $f18 +/* 0C76A8 7F092B38 E5B000DC */ swc1 $f16, 0xdc($t5) +/* 0C76AC 7F092B3C 8C4E0000 */ lw $t6, ($v0) +/* 0C76B0 7F092B40 10000119 */ b .Ljp7F092FA8 +/* 0C76B4 7F092B44 E5D22A3C */ swc1 $f18, 0x2a3c($t6) +cheats_cheat_magnum: +/* 0C76B8 7F092B48 24010001 */ li $at, 1 +/* 0C76BC 7F092B4C 54410117 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76C0 7F092B50 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76C4 7F092B54 0FC2335A */ jal add_item_to_inventory +/* 0C76C8 7F092B58 24040012 */ li $a0, 18 +/* 0C76CC 7F092B5C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C76D0 7F092B60 2404000C */ li $a0, 12 +/* 0C76D4 7F092B64 2404000C */ li $a0, 12 +/* 0C76D8 7F092B68 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C76DC 7F092B6C 00402825 */ move $a1, $v0 +/* 0C76E0 7F092B70 1000010E */ b .Ljp7F092FAC +/* 0C76E4 7F092B74 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_laser: +/* 0C76E8 7F092B78 24010001 */ li $at, 1 +/* 0C76EC 7F092B7C 5441010B */ bnel $v0, $at, .Ljp7F092FAC +/* 0C76F0 7F092B80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C76F4 7F092B84 0FC2335A */ jal add_item_to_inventory +/* 0C76F8 7F092B88 24040016 */ li $a0, 22 +/* 0C76FC 7F092B8C 10000107 */ b .Ljp7F092FAC +/* 0C7700 7F092B90 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldengun: +/* 0C7704 7F092B94 24010001 */ li $at, 1 +/* 0C7708 7F092B98 54410104 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C770C 7F092B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7710 7F092BA0 0FC2335A */ jal add_item_to_inventory +/* 0C7714 7F092BA4 24040013 */ li $a0, 19 +/* 0C7718 7F092BA8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C771C 7F092BAC 2404000D */ li $a0, 13 +/* 0C7720 7F092BB0 2404000D */ li $a0, 13 +/* 0C7724 7F092BB4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7728 7F092BB8 00402825 */ move $a1, $v0 +/* 0C772C 7F092BBC 100000FB */ b .Ljp7F092FAC +/* 0C7730 7F092BC0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_silverpp7: +/* 0C7734 7F092BC4 24010001 */ li $at, 1 +/* 0C7738 7F092BC8 544100F8 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C773C 7F092BCC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7740 7F092BD0 0FC2335A */ jal add_item_to_inventory +/* 0C7744 7F092BD4 24040014 */ li $a0, 20 +/* 0C7748 7F092BD8 0FC1A630 */ jal get_max_ammo_for_type +/* 0C774C 7F092BDC 24040001 */ li $a0, 1 +/* 0C7750 7F092BE0 24040001 */ li $a0, 1 +/* 0C7754 7F092BE4 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7758 7F092BE8 00402825 */ move $a1, $v0 +/* 0C775C 7F092BEC 100000EF */ b .Ljp7F092FAC +/* 0C7760 7F092BF0 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_goldpp7: +/* 0C7764 7F092BF4 24010001 */ li $at, 1 +/* 0C7768 7F092BF8 544100EC */ bnel $v0, $at, .Ljp7F092FAC +/* 0C776C 7F092BFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7770 7F092C00 0FC2335A */ jal add_item_to_inventory +/* 0C7774 7F092C04 24040015 */ li $a0, 21 +/* 0C7778 7F092C08 0FC1A630 */ jal get_max_ammo_for_type +/* 0C777C 7F092C0C 24040001 */ li $a0, 1 +/* 0C7780 7F092C10 24040001 */ li $a0, 1 +/* 0C7784 7F092C14 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7788 7F092C18 00402825 */ move $a1, $v0 +/* 0C778C 7F092C1C 100000E3 */ b .Ljp7F092FAC +/* 0C7790 7F092C20 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invisibility_mp: +/* 0C7794 7F092C24 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C7798 7F092C28 44816000 */ mtc1 $at, $f12 +/* 0C779C 7F092C2C 3C018005 */ lui $at, %hi(finalamount) # $at, 0x8005 +/* 0C77A0 7F092C30 0FC20408 */ jal currentPlayerStartChrFade +/* 0C77A4 7F092C34 C42E7408 */ lwc1 $f14, %lo(finalamount)($at) +/* 0C77A8 7F092C38 100000DC */ b .Ljp7F092FAC +/* 0C77AC 7F092C3C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_fast: +/* 0C77B0 7F092C40 0FC246BE */ jal get_debug_fast_bond_flag +/* 0C77B4 7F092C44 00000000 */ nop +/* 0C77B8 7F092C48 544000D8 */ bnezl $v0, .Ljp7F092FAC +/* 0C77BC 7F092C4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77C0 7F092C50 0FC30AA2 */ jal get_textptr_for_textID +/* 0C77C4 7F092C54 3404B01D */ li $a0, 45085 +/* 0C77C8 7F092C58 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C77CC 7F092C5C 00402025 */ move $a0, $v0 +/* 0C77D0 7F092C60 0FC246C1 */ jal set_debug_fast_bond_flag +/* 0C77D4 7F092C64 24040001 */ li $a0, 1 +/* 0C77D8 7F092C68 100000D0 */ b .Ljp7F092FAC +/* 0C77DC 7F092C6C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_pos: +/* 0C77E0 7F092C70 0FC2469A */ jal get_debug_testingmanpos_flag +/* 0C77E4 7F092C74 00000000 */ nop +/* 0C77E8 7F092C78 544000CC */ bnezl $v0, .Ljp7F092FAC +/* 0C77EC 7F092C7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C77F0 7F092C80 0FC2469D */ jal set_debug_testingmanpos_flag +/* 0C77F4 7F092C84 24040001 */ li $a0, 1 +/* 0C77F8 7F092C88 100000C8 */ b .Ljp7F092FAC +/* 0C77FC 7F092C8C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_fast_ani: +/* 0C7800 7F092C90 0FC081E5 */ jal get_animation_rate +/* 0C7804 7F092C94 00000000 */ nop +/* 0C7808 7F092C98 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C780C 7F092C9C 44812000 */ mtc1 $at, $f4 +/* 0C7810 7F092CA0 00000000 */ nop +/* 0C7814 7F092CA4 4604003C */ c.lt.s $f0, $f4 +/* 0C7818 7F092CA8 00000000 */ nop +/* 0C781C 7F092CAC 450200BF */ bc1fl .Ljp7F092FAC +/* 0C7820 7F092CB0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7824 7F092CB4 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7828 7F092CB8 3404B034 */ li $a0, 45108 +/* 0C782C 7F092CBC 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C7830 7F092CC0 00402025 */ move $a0, $v0 +/* 0C7834 7F092CC4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0C7838 7F092CC8 44816000 */ mtc1 $at, $f12 +/* 0C783C 7F092CCC 0FC081BC */ jal animation_speed_related +/* 0C7840 7F092CD0 00000000 */ nop +/* 0C7844 7F092CD4 100000B5 */ b .Ljp7F092FAC +/* 0C7848 7F092CD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_slow_ani: +/* 0C784C 7F092CDC 0FC081E5 */ jal get_animation_rate +/* 0C7850 7F092CE0 00000000 */ nop +/* 0C7854 7F092CE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7858 7F092CE8 44813000 */ mtc1 $at, $f6 +/* 0C785C 7F092CEC 00000000 */ nop +/* 0C7860 7F092CF0 4600303C */ c.lt.s $f6, $f0 +/* 0C7864 7F092CF4 00000000 */ nop +/* 0C7868 7F092CF8 450200AC */ bc1fl .Ljp7F092FAC +/* 0C786C 7F092CFC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7870 7F092D00 0FC30AA2 */ jal get_textptr_for_textID +/* 0C7874 7F092D04 3404B032 */ li $a0, 45106 +/* 0C7878 7F092D08 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0C787C 7F092D0C 00402025 */ move $a0, $v0 +/* 0C7880 7F092D10 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0C7884 7F092D14 44816000 */ mtc1 $at, $f12 +/* 0C7888 7F092D18 0FC081BC */ jal animation_speed_related +/* 0C788C 7F092D1C 00000000 */ nop +/* 0C7890 7F092D20 100000A2 */ b .Ljp7F092FAC +/* 0C7894 7F092D24 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rockets: +/* 0C7898 7F092D28 24010001 */ li $at, 1 +/* 0C789C 7F092D2C 5441009F */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78A0 7F092D30 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78A4 7F092D34 0FC2335A */ jal add_item_to_inventory +/* 0C78A8 7F092D38 24040019 */ li $a0, 25 +/* 0C78AC 7F092D3C 24040019 */ li $a0, 25 +/* 0C78B0 7F092D40 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78B4 7F092D44 24050019 */ li $a1, 25 +/* 0C78B8 7F092D48 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78BC 7F092D4C 24040006 */ li $a0, 6 +/* 0C78C0 7F092D50 24040006 */ li $a0, 6 +/* 0C78C4 7F092D54 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C78C8 7F092D58 00402825 */ move $a1, $v0 +/* 0C78CC 7F092D5C 10000093 */ b .Ljp7F092FAC +/* 0C78D0 7F092D60 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_grenade_launch: +/* 0C78D4 7F092D64 24010001 */ li $at, 1 +/* 0C78D8 7F092D68 54410090 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C78DC 7F092D6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C78E0 7F092D70 0FC2335A */ jal add_item_to_inventory +/* 0C78E4 7F092D74 24040018 */ li $a0, 24 +/* 0C78E8 7F092D78 24040018 */ li $a0, 24 +/* 0C78EC 7F092D7C 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C78F0 7F092D80 24050018 */ li $a1, 24 +/* 0C78F4 7F092D84 0FC1A630 */ jal get_max_ammo_for_type +/* 0C78F8 7F092D88 2404000B */ li $a0, 11 +/* 0C78FC 7F092D8C 2404000B */ li $a0, 11 +/* 0C7900 7F092D90 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7904 7F092D94 00402825 */ move $a1, $v0 +/* 0C7908 7F092D98 10000084 */ b .Ljp7F092FAC +/* 0C790C 7F092D9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_rcp90: +/* 0C7910 7F092DA0 24010001 */ li $at, 1 +/* 0C7914 7F092DA4 54410081 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7918 7F092DA8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C791C 7F092DAC 0FC2335A */ jal add_item_to_inventory +/* 0C7920 7F092DB0 2404000E */ li $a0, 14 +/* 0C7924 7F092DB4 2404000E */ li $a0, 14 +/* 0C7928 7F092DB8 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C792C 7F092DBC 2405000E */ li $a1, 14 +/* 0C7930 7F092DC0 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7934 7F092DC4 24040001 */ li $a0, 1 +/* 0C7938 7F092DC8 24040001 */ li $a0, 1 +/* 0C793C 7F092DCC 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C7940 7F092DD0 00402825 */ move $a1, $v0 +/* 0C7944 7F092DD4 10000075 */ b .Ljp7F092FAC +/* 0C7948 7F092DD8 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_throwing_knife: +/* 0C794C 7F092DDC 24010001 */ li $at, 1 +/* 0C7950 7F092DE0 54410072 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7954 7F092DE4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7958 7F092DE8 0FC2335A */ jal add_item_to_inventory +/* 0C795C 7F092DEC 24040003 */ li $a0, 3 +/* 0C7960 7F092DF0 24040003 */ li $a0, 3 +/* 0C7964 7F092DF4 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7968 7F092DF8 24050003 */ li $a1, 3 +/* 0C796C 7F092DFC 0FC1A630 */ jal get_max_ammo_for_type +/* 0C7970 7F092E00 2404000A */ li $a0, 10 +/* 0C7974 7F092E04 2404000A */ li $a0, 10 +/* 0C7978 7F092E08 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C797C 7F092E0C 00402825 */ move $a1, $v0 +/* 0C7980 7F092E10 10000066 */ b .Ljp7F092FAC +/* 0C7984 7F092E14 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_hunting_knife: +/* 0C7988 7F092E18 24010001 */ li $at, 1 +/* 0C798C 7F092E1C 14410062 */ bne $v0, $at, .Ljp7F092FA8 +/* 0C7990 7F092E20 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 +/* 0C7994 7F092E24 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0C7998 7F092E28 11E00014 */ beqz $t7, .cheats_debug_2x_hunting_knife_en +/* 0C799C 7F092E2C 00000000 */ nop +/* 0C79A0 7F092E30 0FC2335A */ jal add_item_to_inventory +/* 0C79A4 7F092E34 24040019 */ li $a0, 25 +/* 0C79A8 7F092E38 0FC2335A */ jal add_item_to_inventory +/* 0C79AC 7F092E3C 24040011 */ li $a0, 17 +/* 0C79B0 7F092E40 24040011 */ li $a0, 17 +/* 0C79B4 7F092E44 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79B8 7F092E48 24050019 */ li $a1, 25 +/* 0C79BC 7F092E4C 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79C0 7F092E50 24040006 */ li $a0, 6 +/* 0C79C4 7F092E54 24040006 */ li $a0, 6 +/* 0C79C8 7F092E58 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79CC 7F092E5C 00402825 */ move $a1, $v0 +/* 0C79D0 7F092E60 0FC1A630 */ jal get_max_ammo_for_type +/* 0C79D4 7F092E64 24040003 */ li $a0, 3 +/* 0C79D8 7F092E68 24040003 */ li $a0, 3 +/* 0C79DC 7F092E6C 0FC1A5C7 */ jal give_cur_player_ammo +/* 0C79E0 7F092E70 00402825 */ move $a1, $v0 +/* 0C79E4 7F092E74 1000004D */ b .Ljp7F092FAC +/* 0C79E8 7F092E78 8FBF0014 */ lw $ra, 0x14($sp) +.cheats_debug_2x_hunting_knife_en: +/* 0C79EC 7F092E7C 0FC2335A */ jal add_item_to_inventory +/* 0C79F0 7F092E80 24040002 */ li $a0, 2 +/* 0C79F4 7F092E84 24040002 */ li $a0, 2 +/* 0C79F8 7F092E88 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C79FC 7F092E8C 24050002 */ li $a1, 2 +/* 0C7A00 7F092E90 10000046 */ b .Ljp7F092FAC +/* 0C7A04 7F092E94 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_2x_laser: +/* 0C7A08 7F092E98 24010001 */ li $at, 1 +/* 0C7A0C 7F092E9C 54410043 */ bnel $v0, $at, .Ljp7F092FAC +/* 0C7A10 7F092EA0 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A14 7F092EA4 0FC2335A */ jal add_item_to_inventory +/* 0C7A18 7F092EA8 24040016 */ li $a0, 22 +/* 0C7A1C 7F092EAC 24040016 */ li $a0, 22 +/* 0C7A20 7F092EB0 0FC23381 */ jal add_doubles_item_to_inventory +/* 0C7A24 7F092EB4 24050016 */ li $a1, 22 +/* 0C7A28 7F092EB8 1000003C */ b .Ljp7F092FAC +/* 0C7A2C 7F092EBC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlockcheat: +/* 0C7A30 7F092EC0 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 +/* 0C7A34 7F092EC4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) +/* 0C7A38 7F092EC8 24C5FFDD */ addiu $a1, $a2, -0x23 +/* 0C7A3C 7F092ECC 04800036 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A40 7F092ED0 28810004 */ slti $at, $a0, 4 +/* 0C7A44 7F092ED4 50200035 */ beql $at, $zero, .Ljp7F092FAC +/* 0C7A48 7F092ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7A4C 7F092EDC 0FC07A44 */ jal sub_GAME_7F01E760 +/* 0C7A50 7F092EE0 00000000 */ nop +/* 0C7A54 7F092EE4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0C7A58 7F092EE8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C7A5C 7F092EEC 2405009F */ li $a1, 159 +/* 0C7A60 7F092EF0 0C002386 */ jal play_sfx_a1 +/* 0C7A64 7F092EF4 00003025 */ move $a2, $zero +/* 0C7A68 7F092EF8 1000002C */ b .Ljp7F092FAC +/* 0C7A6C 7F092EFC 8FBF0014 */ lw $ra, 0x14($sp) +cheats_debug_unlocklevel: +/* 0C7A70 7F092F00 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A74 7F092F04 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7A78 7F092F08 8C440000 */ lw $a0, ($v0) +/* 0C7A7C 7F092F0C 24C8FFC9 */ addiu $t0, $a2, -0x37 +/* 0C7A80 7F092F10 04800025 */ bltz $a0, .Ljp7F092FA8 +/* 0C7A84 7F092F14 28810004 */ slti $at, $a0, 4 +/* 0C7A88 7F092F18 10200023 */ beqz $at, .Ljp7F092FA8 +/* 0C7A8C 7F092F1C 00001825 */ move $v1, $zero +/* 0C7A90 7F092F20 19000014 */ blez $t0, .Ljp7F092F74 +/* 0C7A94 7F092F24 00002825 */ move $a1, $zero +.Ljp7F092F28: +/* 0C7A98 7F092F28 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7A9C 7F092F2C 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +/* 0C7AA0 7F092F30 8C440000 */ lw $a0, ($v0) +/* 0C7AA4 7F092F34 00003025 */ move $a2, $zero +/* 0C7AA8 7F092F38 AFA30018 */ sw $v1, 0x18($sp) +/* 0C7AAC 7F092F3C AFA5001C */ sw $a1, 0x1c($sp) +/* 0C7AB0 7F092F40 0FC0791C */ jal isStageUnlockedAtDifficulty +/* 0C7AB4 7F092F44 AFA80020 */ sw $t0, 0x20($sp) +/* 0C7AB8 7F092F48 24010003 */ li $at, 3 +/* 0C7ABC 7F092F4C 8FA30018 */ lw $v1, 0x18($sp) +/* 0C7AC0 7F092F50 8FA5001C */ lw $a1, 0x1c($sp) +/* 0C7AC4 7F092F54 14410002 */ bne $v0, $at, .Ljp7F092F60 +/* 0C7AC8 7F092F58 8FA80020 */ lw $t0, 0x20($sp) +/* 0C7ACC 7F092F5C 24630001 */ addiu $v1, $v1, 1 +.Ljp7F092F60: +/* 0C7AD0 7F092F60 24A50001 */ addiu $a1, $a1, 1 +/* 0C7AD4 7F092F64 14A8FFF0 */ bne $a1, $t0, .Ljp7F092F28 +/* 0C7AD8 7F092F68 00000000 */ nop +/* 0C7ADC 7F092F6C 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 +/* 0C7AE0 7F092F70 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 +.Ljp7F092F74: +/* 0C7AE4 7F092F74 24780001 */ addiu $t8, $v1, 1 +/* 0C7AE8 7F092F78 1518000B */ bne $t0, $t8, .Ljp7F092FA8 +/* 0C7AEC 7F092F7C 2505FFFF */ addiu $a1, $t0, -1 +/* 0C7AF0 7F092F80 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 +/* 0C7AF4 7F092F84 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff +/* 0C7AF8 7F092F88 8C440000 */ lw $a0, ($v0) +/* 0C7AFC 7F092F8C 0FC079EA */ jal unlock_stage_in_folder_on_difficulty +/* 0C7B00 7F092F90 00003025 */ move $a2, $zero +/* 0C7B04 7F092F94 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0C7B08 7F092F98 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0C7B0C 7F092F9C 2405009F */ li $a1, 159 +/* 0C7B10 7F092FA0 0C002386 */ jal play_sfx_a1 +/* 0C7B14 7F092FA4 00003025 */ move $a2, $zero +cheats_debug_return_saved_ra: +.Ljp7F092FA8: +/* 0C7B18 7F092FA8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F092FAC: +/* 0C7B1C 7F092FAC 27BD0040 */ addiu $sp, $sp, 0x40 +/* 0C7B20 7F092FB0 03E00008 */ jr $ra +/* 0C7B24 7F092FB4 00000000 */ nop +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:800572B0*/ +glabel jpt_cheats_cheat +.word cheats_cheat_extra_mp_chars +.word cheats_cheat_invincibility +.word cheats_cheat_allguns +.word cheats_cheat_max_ammo +.word cheats_debug_return_saved_ra +.word cheats_cheat_deactivate_invincibility +.word cheats_cheat_linemode +.word cheats_cheat_2x_health +.word cheats_cheat_2x_armor +.word cheats_cheat_invisibility +.word cheats_cheat_infinite_ammo +.word cheats_cheat_dk_mode +.word cheats_cheat_extra_weapons +.word cheats_cheat_tiny_bond +.word cheats_cheat_paintball +.word cheats_cheat_10x_health +.word cheats_cheat_magnum +.word cheats_cheat_laser +.word cheats_cheat_goldengun +.word cheats_cheat_silverpp7 +.word cheats_cheat_goldpp7 +.word cheats_cheat_invisibility_mp +.word cheats_debug_return_saved_ra +.word cheats_cheat_fast +.word cheats_debug_pos +.word cheats_debug_fast_ani +.word cheats_debug_slow_ani +.word cheats_debug_return_saved_ra +.word cheats_debug_2x_rockets +.word cheats_debug_2x_grenade_launch +.word cheats_debug_2x_rcp90 +.word cheats_debug_2x_throwing_knife +.word cheats_debug_2x_hunting_knife +.word cheats_debug_2x_laser +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlockcheat +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel +.word cheats_debug_unlocklevel + +/*800573D8*/ +glabel finalamount +.word 0x3d4ccccd /*0.050000001*/ +.text +glabel handle_cheats_turned_on +/* 0C6694 7F091B64 00047100 */ sll $t6, $a0, 4 +/* 0C6698 7F091B68 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C669C 7F091B6C 01EE7821 */ addu $t7, $t7, $t6 +/* 0C66A0 7F091B70 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C66A4 7F091B74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0C66A8 7F091B78 AFBF0014 */ sw $ra, 0x14($sp) +/* 0C66AC 7F091B7C AFA40040 */ sw $a0, 0x40($sp) +/* 0C66B0 7F091B80 0FC26C54 */ jal get_cur_playernum +/* 0C66B4 7F091B84 AFAF003C */ sw $t7, 0x3c($sp) +/* 0C66B8 7F091B88 0FC26919 */ jal getPlayerCount +/* 0C66BC 7F091B8C AFA20038 */ sw $v0, 0x38($sp) +/* 0C66C0 7F091B90 8FA3003C */ lw $v1, 0x3c($sp) +/* 0C66C4 7F091B94 8FA60040 */ lw $a2, 0x40($sp) +/* 0C66C8 7F091B98 AFA20034 */ sw $v0, 0x34($sp) +/* 0C66CC 7F091B9C 30780010 */ andi $t8, $v1, 0x10 +/* 0C66D0 7F091BA0 17000012 */ bnez $t8, .L7F091BEC +/* 0C66D4 7F091BA4 30790020 */ andi $t9, $v1, 0x20 +/* 0C66D8 7F091BA8 1720000A */ bnez $t9, .L7F091BD4 +/* 0C66DC 7F091BAC 8FA50038 */ lw $a1, 0x38($sp) +/* 0C66E0 7F091BB0 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) +/* 0C66E4 7F091BB4 25299E30 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x61d0 +/* 0C66E8 7F091BB8 00C91821 */ addu $v1, $a2, $t1 +/* 0C66EC 7F091BBC 906A0000 */ lbu $t2, ($v1) +/* 0C66F0 7F091BC0 240B0001 */ li $t3, 1 +/* 0C66F4 7F091BC4 00AB6004 */ sllv $t4, $t3, $a1 +/* 0C66F8 7F091BC8 014C6825 */ or $t5, $t2, $t4 +/* 0C66FC 7F091BCC 10000007 */ b .L7F091BEC +/* 0C6700 7F091BD0 A06D0000 */ sb $t5, ($v1) +.L7F091BD4: +/* 0C6704 7F091BD4 240E0001 */ li $t6, 1 +/* 0C6708 7F091BD8 004E7804 */ sllv $t7, $t6, $v0 +/* 0C670C 7F091BDC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6710 7F091BE0 00260821 */ addu $at, $at, $a2 +/* 0C6714 7F091BE4 25F8FFFF */ addiu $t8, $t7, -1 +/* 0C6718 7F091BE8 A0389E30 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) +.L7F091BEC: +/* 0C671C 7F091BEC 24D9FFFF */ addiu $t9, $a2, -1 +/* 0C6720 7F091BF0 2F21004A */ sltiu $at, $t9, 0x4a +/* 0C6724 7F091BF4 1020020C */ beqz $at, .L7F092428 +/* 0C6728 7F091BF8 0019C880 */ sll $t9, $t9, 2 +/* 0C672C 7F091BFC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) +/* 0C6730 7F091C00 00390821 */ addu $at, $at, $t9 +/* 0C6734 7F091C04 8C3972B0 */ lw $t9, %lo(jpt_cheats_cheat)($at) +/* 0C6738 7F091C08 03200008 */ jr $t9 +/* 0C673C 7F091C0C 00000000 */ nop +cheats_cheat_extra_mp_chars: +/* 0C6740 7F091C10 0FC040A0 */ jal unlock_all_mp_chars +/* 0C6744 7F091C14 00000000 */ nop +/* 0C6748 7F091C18 10000204 */ b .L7F09242C +/* 0C674C 7F091C1C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_invincibility: +/* 0C6750 7F091C20 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6754 7F091C24 00000000 */ nop +/* 0C6758 7F091C28 54400200 */ bnezl $v0, .L7F09242C +/* 0C675C 7F091C2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6760 7F091C30 0FC30776 */ jal get_textptr_for_textID +/* 0C6764 7F091C34 3404B00F */ li $a0, 45071 +/* 0C6768 7F091C38 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C676C 7F091C3C 00402025 */ move $a0, $v0 +/* 0C6770 7F091C40 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6774 7F091C44 24040001 */ li $a0, 1 +/* 0C6778 7F091C48 100001F8 */ b .L7F09242C +/* 0C677C 7F091C4C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_allguns: +/* 0C6780 7F091C50 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C6784 7F091C54 00000000 */ nop +/* 0C6788 7F091C58 544001F4 */ bnezl $v0, .L7F09242C +/* 0C678C 7F091C5C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C6790 7F091C60 0FC30776 */ jal get_textptr_for_textID +/* 0C6794 7F091C64 3404B010 */ li $a0, 45072 +/* 0C6798 7F091C68 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C679C 7F091C6C 00402025 */ move $a0, $v0 +/* 0C67A0 7F091C70 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C67A4 7F091C74 24040001 */ li $a0, 1 +/* 0C67A8 7F091C78 100001EC */ b .L7F09242C +/* 0C67AC 7F091C7C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_max_ammo: +/* 0C67B0 7F091C80 0FC30776 */ jal get_textptr_for_textID +/* 0C67B4 7F091C84 3404B011 */ li $a0, 45073 +/* 0C67B8 7F091C88 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C67BC 7F091C8C 00402025 */ move $a0, $v0 +/* 0C67C0 7F091C90 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0C67C4 7F091C94 00000000 */ nop +/* 0C67C8 7F091C98 100001E4 */ b .L7F09242C +/* 0C67CC 7F091C9C 8FBF0014 */ lw $ra, 0x14($sp) +cheats_cheat_deactivate_invincibility: +/* 0C67D0 7F091CA0 28410002 */ slti $at, $v0, 2 +/* 0C67D4 7F091CA4 142001E0 */ bnez $at, .L7F092428 +/* 0C67D8 7F091CA8 AFA0002C */ sw $zero, 0x2c($sp) +/* 0C67DC 7F091CAC 18400015 */ blez $v0, .L7F091D04 +/* 0C67E0 7F091CB0 AFA00030 */ sw $zero, 0x30($sp) +.L7F091CB4: +/* 0C67E4 7F091CB4 8FA50038 */ lw $a1, 0x38($sp) +/* 0C67E8 7F091CB8 8FA90030 */ lw $t1, 0x30($sp) +/* 0C67EC 7F091CBC 1125000A */ beq $t1, $a1, .L7F091CE8 +/* 0C67F0 7F091CC0 00000000 */ nop +/* 0C67F4 7F091CC4 0FC26C43 */ jal set_cur_player +/* 0C67F8 7F091CC8 01202025 */ move $a0, $t1 +/* 0C67FC 7F091CCC 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C6800 7F091CD0 00000000 */ nop +/* 0C6804 7F091CD4 10400004 */ beqz $v0, .L7F091CE8 +/* 0C6808 7F091CD8 00002025 */ move $a0, $zero +/* 0C680C 7F091CDC 240B0001 */ li $t3, 1 +/* 0C6810 7F091CE0 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C6814 7F091CE4 AFAB002C */ sw $t3, 0x2c($sp) +.L7F091CE8: +/* 0C6818 7F091CE8 0FC26C43 */ jal set_cur_player +/* 0C681C 7F091CEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0C6820 7F091CF0 8FAA0030 */ lw $t2, 0x30($sp) +/* 0C6824 7F091CF4 8FAD0034 */ lw $t5, 0x34($sp) +/* 0C6828 7F091CF8 254C0001 */ addiu $t4, $t2, 1 +/* 0C682C 7F091CFC 158DFFED */ bne $t4, $t5, .L7F091CB4 +/* 0C6830 7F091D00 AFAC0030 */ sw $t4, 0x30($sp) +.L7F091D04: +/* 0C6834 7F091D04 8FAE002C */ lw $t6, 0x2c($sp) /* 0C6838 7F091D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) /* 0C683C 7F091D0C 2405009F */ li $a1, 159 /* 0C6840 7F091D10 11C001C5 */ beqz $t6, .L7F092428 @@ -1628,748 +3070,6 @@ cheats_debug_return_saved_ra: ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.late_rodata -/*D:800572B0*/ -glabel jpt_cheats_cheat -.word cheats_cheat_extra_mp_chars -.word cheats_cheat_invincibility -.word cheats_cheat_allguns -.word cheats_cheat_max_ammo -.word cheats_debug_return_saved_ra -.word cheats_cheat_deactivate_invincibility -.word cheats_cheat_linemode -.word cheats_cheat_2x_health -.word cheats_cheat_2x_armor -.word cheats_cheat_invisibility -.word cheats_cheat_infinite_ammo -.word cheats_cheat_dk_mode -.word cheats_cheat_extra_weapons -.word cheats_cheat_tiny_bond -.word cheats_cheat_paintball -.word cheats_cheat_10x_health -.word cheats_cheat_magnum -.word cheats_cheat_laser -.word cheats_cheat_goldengun -.word cheats_cheat_silverpp7 -.word cheats_cheat_goldpp7 -.word cheats_cheat_invisibility_mp -.word cheats_debug_return_saved_ra -.word cheats_cheat_fast -.word cheats_debug_pos -.word cheats_debug_fast_ani -.word cheats_debug_slow_ani -.word cheats_debug_return_saved_ra -.word cheats_debug_2x_rockets -.word cheats_debug_2x_grenade_launch -.word cheats_debug_2x_rcp90 -.word cheats_debug_2x_throwing_knife -.word cheats_debug_2x_hunting_knife -.word cheats_debug_2x_laser -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlockcheat -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel -.word cheats_debug_unlocklevel - -/*800573D8*/ -glabel finalamount -.word 0x3d4ccccd /*0.050000001*/ - -.text -glabel handle_cheats_turned_on -/* 0C71B4 7F092644 00047100 */ sll $t6, $a0, 4 -/* 0C71B8 7F092648 3C0F8004 */ lui $t7, %hi(D_8003F808) -/* 0C71BC 7F09264C 01EE7821 */ addu $t7, $t7, $t6 -/* 0C71C0 7F092650 8DEFF838 */ lw $t7, %lo(D_8003F808)($t7) -/* 0C71C4 7F092654 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0C71C8 7F092658 AFBF0014 */ sw $ra, 0x14($sp) -/* 0C71CC 7F09265C AFA40040 */ sw $a0, 0x40($sp) -/* 0C71D0 7F092660 0FC26F3C */ jal get_cur_playernum -/* 0C71D4 7F092664 AFAF003C */ sw $t7, 0x3c($sp) -/* 0C71D8 7F092668 0FC26C01 */ jal getPlayerCount -/* 0C71DC 7F09266C AFA20038 */ sw $v0, 0x38($sp) -/* 0C71E0 7F092670 8FA3003C */ lw $v1, 0x3c($sp) -/* 0C71E4 7F092674 8FA60040 */ lw $a2, 0x40($sp) -/* 0C71E8 7F092678 AFA20034 */ sw $v0, 0x34($sp) -/* 0C71EC 7F09267C 30780010 */ andi $t8, $v1, 0x10 -/* 0C71F0 7F092680 17000012 */ bnez $t8, .Ljp7F0926CC -/* 0C71F4 7F092684 30790020 */ andi $t9, $v1, 0x20 -/* 0C71F8 7F092688 1720000A */ bnez $t9, .Ljp7F0926B4 -/* 0C71FC 7F09268C 8FA50038 */ lw $a1, 0x38($sp) -/* 0C7200 7F092690 3C098008 */ lui $t1, %hi(off_CODE_bss_80079E30) # $t1, 0x8008 -/* 0C7204 7F092694 25299EA0 */ addiu $t1, %lo(off_CODE_bss_80079E30) # addiu $t1, $t1, -0x6160 -/* 0C7208 7F092698 00C91821 */ addu $v1, $a2, $t1 -/* 0C720C 7F09269C 906A0000 */ lbu $t2, ($v1) -/* 0C7210 7F0926A0 240B0001 */ li $t3, 1 -/* 0C7214 7F0926A4 00AB6004 */ sllv $t4, $t3, $a1 -/* 0C7218 7F0926A8 014C6825 */ or $t5, $t2, $t4 -/* 0C721C 7F0926AC 10000007 */ b .Ljp7F0926CC -/* 0C7220 7F0926B0 A06D0000 */ sb $t5, ($v1) -.Ljp7F0926B4: -/* 0C7224 7F0926B4 240E0001 */ li $t6, 1 -/* 0C7228 7F0926B8 004E7804 */ sllv $t7, $t6, $v0 -/* 0C722C 7F0926BC 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) -/* 0C7230 7F0926C0 00260821 */ addu $at, $at, $a2 -/* 0C7234 7F0926C4 25F8FFFF */ addiu $t8, $t7, -1 -/* 0C7238 7F0926C8 A0389EA0 */ sb $t8, %lo(off_CODE_bss_80079E30)($at) -.Ljp7F0926CC: -/* 0C723C 7F0926CC 24D9FFFF */ addiu $t9, $a2, -1 -/* 0C7240 7F0926D0 2F21004A */ sltiu $at, $t9, 0x4a -/* 0C7244 7F0926D4 10200234 */ beqz $at, .Ljp7F092FA8 -/* 0C7248 7F0926D8 0019C880 */ sll $t9, $t9, 2 -/* 0C724C 7F0926DC 3C018005 */ lui $at, %hi(jpt_cheats_cheat) -/* 0C7250 7F0926E0 00390821 */ addu $at, $at, $t9 -/* 0C7254 7F0926E4 8C3972E0 */ lw $t9, %lo(jpt_cheats_cheat)($at) -/* 0C7258 7F0926E8 03200008 */ jr $t9 -/* 0C725C 7F0926EC 00000000 */ nop -cheats_cheat_extra_mp_chars: -/* 0C7260 7F0926F0 0FC040B0 */ jal unlock_all_mp_chars -/* 0C7264 7F0926F4 00000000 */ nop -/* 0C7268 7F0926F8 1000022C */ b .Ljp7F092FAC -/* 0C726C 7F0926FC 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_invincibility: -/* 0C7270 7F092700 0FC229A4 */ jal get_bondata_invincible_flag -/* 0C7274 7F092704 00000000 */ nop -/* 0C7278 7F092708 54400228 */ bnezl $v0, .Ljp7F092FAC -/* 0C727C 7F09270C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7280 7F092710 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7284 7F092714 3404B00F */ li $a0, 45071 -/* 0C7288 7F092718 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C728C 7F09271C 00402025 */ move $a0, $v0 -/* 0C7290 7F092720 0FC229A0 */ jal set_bondata_invincible_flag -/* 0C7294 7F092724 24040001 */ li $a0, 1 -/* 0C7298 7F092728 10000220 */ b .Ljp7F092FAC -/* 0C729C 7F09272C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_allguns: -/* 0C72A0 7F092730 0FC232CF */ jal get_BONDdata_allguns_flag -/* 0C72A4 7F092734 00000000 */ nop -/* 0C72A8 7F092738 5440021C */ bnezl $v0, .Ljp7F092FAC -/* 0C72AC 7F09273C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C72B0 7F092740 0FC30AA2 */ jal get_textptr_for_textID -/* 0C72B4 7F092744 3404B010 */ li $a0, 45072 -/* 0C72B8 7F092748 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C72BC 7F09274C 00402025 */ move $a0, $v0 -/* 0C72C0 7F092750 0FC232CB */ jal set_BONDdata_allguns_flag -/* 0C72C4 7F092754 24040001 */ li $a0, 1 -/* 0C72C8 7F092758 10000214 */ b .Ljp7F092FAC -/* 0C72CC 7F09275C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_max_ammo: -/* 0C72D0 7F092760 0FC30AA2 */ jal get_textptr_for_textID -/* 0C72D4 7F092764 3404B011 */ li $a0, 45073 -/* 0C72D8 7F092768 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C72DC 7F09276C 00402025 */ move $a0, $v0 -/* 0C72E0 7F092770 0FC1A637 */ jal set_max_ammo_for_cur_player -/* 0C72E4 7F092774 00000000 */ nop -/* 0C72E8 7F092778 1000020C */ b .Ljp7F092FAC -/* 0C72EC 7F09277C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_deactivate_invincibility: -/* 0C72F0 7F092780 28410002 */ slti $at, $v0, 2 -/* 0C72F4 7F092784 14200208 */ bnez $at, .Ljp7F092FA8 -/* 0C72F8 7F092788 AFA0002C */ sw $zero, 0x2c($sp) -/* 0C72FC 7F09278C 18400015 */ blez $v0, .Ljp7F0927E4 -/* 0C7300 7F092790 AFA00030 */ sw $zero, 0x30($sp) -.Ljp7F092794: -/* 0C7304 7F092794 8FA50038 */ lw $a1, 0x38($sp) -/* 0C7308 7F092798 8FA90030 */ lw $t1, 0x30($sp) -/* 0C730C 7F09279C 1125000A */ beq $t1, $a1, .Ljp7F0927C8 -/* 0C7310 7F0927A0 00000000 */ nop -/* 0C7314 7F0927A4 0FC26F2B */ jal set_cur_player -/* 0C7318 7F0927A8 01202025 */ move $a0, $t1 -/* 0C731C 7F0927AC 0FC229A4 */ jal get_bondata_invincible_flag -/* 0C7320 7F0927B0 00000000 */ nop -/* 0C7324 7F0927B4 10400004 */ beqz $v0, .Ljp7F0927C8 -/* 0C7328 7F0927B8 00002025 */ move $a0, $zero -/* 0C732C 7F0927BC 240B0001 */ li $t3, 1 -/* 0C7330 7F0927C0 0FC229A0 */ jal set_bondata_invincible_flag -/* 0C7334 7F0927C4 AFAB002C */ sw $t3, 0x2c($sp) -.Ljp7F0927C8: -/* 0C7338 7F0927C8 0FC26F2B */ jal set_cur_player -/* 0C733C 7F0927CC 8FA40038 */ lw $a0, 0x38($sp) -/* 0C7340 7F0927D0 8FAA0030 */ lw $t2, 0x30($sp) -/* 0C7344 7F0927D4 8FAD0034 */ lw $t5, 0x34($sp) -/* 0C7348 7F0927D8 254C0001 */ addiu $t4, $t2, 1 -/* 0C734C 7F0927DC 158DFFED */ bne $t4, $t5, .Ljp7F092794 -/* 0C7350 7F0927E0 AFAC0030 */ sw $t4, 0x30($sp) -.Ljp7F0927E4: -/* 0C7354 7F0927E4 8FAE002C */ lw $t6, 0x2c($sp) -/* 0C7358 7F0927E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0C735C 7F0927EC 2405009F */ li $a1, 159 -/* 0C7360 7F0927F0 11C001ED */ beqz $t6, .Ljp7F092FA8 -/* 0C7364 7F0927F4 00003025 */ move $a2, $zero -/* 0C7368 7F0927F8 0C002386 */ jal play_sfx_a1 -/* 0C736C 7F0927FC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0C7370 7F092800 100001EA */ b .Ljp7F092FAC -/* 0C7374 7F092804 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_linemode: -/* 0C7378 7F092808 0FC246B2 */ jal set_debug_VisCVG_flag -/* 0C737C 7F09280C 24040001 */ li $a0, 1 -/* 0C7380 7F092810 100001E6 */ b .Ljp7F092FAC -/* 0C7384 7F092814 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_2x_health: -/* 0C7388 7F092818 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0C738C 7F09281C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0C7390 7F092820 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C7394 7F092824 44812000 */ mtc1 $at, $f4 -/* 0C7398 7F092828 C4462A3C */ lwc1 $f6, 0x2a3c($v0) -/* 0C739C 7F09282C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C73A0 7F092830 46062032 */ c.eq.s $f4, $f6 -/* 0C73A4 7F092834 00000000 */ nop -/* 0C73A8 7F092838 45010008 */ bc1t .Ljp7F09285C -/* 0C73AC 7F09283C 00000000 */ nop -/* 0C73B0 7F092840 C44800DC */ lwc1 $f8, 0xdc($v0) -/* 0C73B4 7F092844 44815000 */ mtc1 $at, $f10 -/* 0C73B8 7F092848 00000000 */ nop -/* 0C73BC 7F09284C 460A403C */ c.lt.s $f8, $f10 -/* 0C73C0 7F092850 00000000 */ nop -/* 0C73C4 7F092854 450201D5 */ bc1fl .Ljp7F092FAC -/* 0C73C8 7F092858 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F09285C: -/* 0C73CC 7F09285C 0FC30AA2 */ jal get_textptr_for_textID -/* 0C73D0 7F092860 3404B012 */ li $a0, 45074 -/* 0C73D4 7F092864 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C73D8 7F092868 00402025 */ move $a0, $v0 -/* 0C73DC 7F09286C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C73E0 7F092870 3C0F8008 */ lui $t7, %hi(pPlayer) # $t7, 0x8008 -/* 0C73E4 7F092874 8DEFA120 */ lw $t7, %lo(pPlayer)($t7) -/* 0C73E8 7F092878 44818000 */ mtc1 $at, $f16 -/* 0C73EC 7F09287C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0C73F0 7F092880 3C188008 */ lui $t8, %hi(pPlayer) # $t8, 0x8008 -/* 0C73F4 7F092884 E5F000DC */ swc1 $f16, 0xdc($t7) -/* 0C73F8 7F092888 8F18A120 */ lw $t8, %lo(pPlayer)($t8) -/* 0C73FC 7F09288C 44819000 */ mtc1 $at, $f18 -/* 0C7400 7F092890 100001C5 */ b .Ljp7F092FA8 -/* 0C7404 7F092894 E7122A3C */ swc1 $f18, 0x2a3c($t8) -cheats_cheat_2x_armor: -/* 0C7408 7F092898 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0C740C 7F09289C 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0C7410 7F0928A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C7414 7F0928A4 44810000 */ mtc1 $at, $f0 -/* 0C7418 7F0928A8 C4442A40 */ lwc1 $f4, 0x2a40($v0) -/* 0C741C 7F0928AC 46040032 */ c.eq.s $f0, $f4 -/* 0C7420 7F0928B0 00000000 */ nop -/* 0C7424 7F0928B4 45010006 */ bc1t .Ljp7F0928D0 -/* 0C7428 7F0928B8 00000000 */ nop -/* 0C742C 7F0928BC C44600E0 */ lwc1 $f6, 0xe0($v0) -/* 0C7430 7F0928C0 4600303C */ c.lt.s $f6, $f0 -/* 0C7434 7F0928C4 00000000 */ nop -/* 0C7438 7F0928C8 450201B8 */ bc1fl .Ljp7F092FAC -/* 0C743C 7F0928CC 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F0928D0: -/* 0C7440 7F0928D0 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7444 7F0928D4 3404B013 */ li $a0, 45075 -/* 0C7448 7F0928D8 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C744C 7F0928DC 00402025 */ move $a0, $v0 -/* 0C7450 7F0928E0 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0C7454 7F0928E4 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 -/* 0C7458 7F0928E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C745C 7F0928EC 44814000 */ mtc1 $at, $f8 -/* 0C7460 7F0928F0 8C590000 */ lw $t9, ($v0) -/* 0C7464 7F0928F4 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0C7468 7F0928F8 44815000 */ mtc1 $at, $f10 -/* 0C746C 7F0928FC E72800E0 */ swc1 $f8, 0xe0($t9) -/* 0C7470 7F092900 8C490000 */ lw $t1, ($v0) -/* 0C7474 7F092904 100001A8 */ b .Ljp7F092FA8 -/* 0C7478 7F092908 E52A2A40 */ swc1 $f10, 0x2a40($t1) -cheats_cheat_invisibility: -/* 0C747C 7F09290C 0FC229AB */ jal get_invisible_to_guards_flag -/* 0C7480 7F092910 00000000 */ nop -/* 0C7484 7F092914 504001A5 */ beql $v0, $zero, .Ljp7F092FAC -/* 0C7488 7F092918 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C748C 7F09291C 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7490 7F092920 3404B014 */ li $a0, 45076 -/* 0C7494 7F092924 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C7498 7F092928 00402025 */ move $a0, $v0 -/* 0C749C 7F09292C 0FC229A8 */ jal set_invisible_to_guards_flag -/* 0C74A0 7F092930 00002025 */ move $a0, $zero -/* 0C74A4 7F092934 1000019D */ b .Ljp7F092FAC -/* 0C74A8 7F092938 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_infinite_ammo: -/* 0C74AC 7F09293C 0FC30AA2 */ jal get_textptr_for_textID -/* 0C74B0 7F092940 3404B016 */ li $a0, 45078 -/* 0C74B4 7F092944 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C74B8 7F092948 00402025 */ move $a0, $v0 -/* 0C74BC 7F09294C 10000197 */ b .Ljp7F092FAC -/* 0C74C0 7F092950 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_dk_mode: -/* 0C74C4 7F092954 0FC30AA2 */ jal get_textptr_for_textID -/* 0C74C8 7F092958 3404B017 */ li $a0, 45079 -/* 0C74CC 7F09295C 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C74D0 7F092960 00402025 */ move $a0, $v0 -/* 0C74D4 7F092964 0FC24CDD */ jal set_DKMode -/* 0C74D8 7F092968 24040001 */ li $a0, 1 -/* 0C74DC 7F09296C 1000018F */ b .Ljp7F092FAC -/* 0C74E0 7F092970 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_extra_weapons: -/* 0C74E4 7F092974 24010001 */ li $at, 1 -/* 0C74E8 7F092978 5441018C */ bnel $v0, $at, .Ljp7F092FAC -/* 0C74EC 7F09297C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C74F0 7F092980 0FC2335A */ jal add_item_to_inventory -/* 0C74F4 7F092984 24040012 */ li $a0, 18 -/* 0C74F8 7F092988 AFA20028 */ sw $v0, 0x28($sp) -/* 0C74FC 7F09298C 0FC2335A */ jal add_item_to_inventory -/* 0C7500 7F092990 24040016 */ li $a0, 22 -/* 0C7504 7F092994 8FAB0028 */ lw $t3, 0x28($sp) -/* 0C7508 7F092998 24040013 */ li $a0, 19 -/* 0C750C 7F09299C 01625021 */ addu $t2, $t3, $v0 -/* 0C7510 7F0929A0 0FC2335A */ jal add_item_to_inventory -/* 0C7514 7F0929A4 AFAA0028 */ sw $t2, 0x28($sp) -/* 0C7518 7F0929A8 8FAC0028 */ lw $t4, 0x28($sp) -/* 0C751C 7F0929AC 24040014 */ li $a0, 20 -/* 0C7520 7F0929B0 01826821 */ addu $t5, $t4, $v0 -/* 0C7524 7F0929B4 0FC2335A */ jal add_item_to_inventory -/* 0C7528 7F0929B8 AFAD0028 */ sw $t5, 0x28($sp) -/* 0C752C 7F0929BC 8FAE0028 */ lw $t6, 0x28($sp) -/* 0C7530 7F0929C0 24040015 */ li $a0, 21 -/* 0C7534 7F0929C4 01C27821 */ addu $t7, $t6, $v0 -/* 0C7538 7F0929C8 0FC2335A */ jal add_item_to_inventory -/* 0C753C 7F0929CC AFAF0028 */ sw $t7, 0x28($sp) -/* 0C7540 7F0929D0 8FB80028 */ lw $t8, 0x28($sp) -/* 0C7544 7F0929D4 2404000C */ li $a0, 12 -/* 0C7548 7F0929D8 0302C821 */ addu $t9, $t8, $v0 -/* 0C754C 7F0929DC 0FC1A630 */ jal get_max_ammo_for_type -/* 0C7550 7F0929E0 AFB90028 */ sw $t9, 0x28($sp) -/* 0C7554 7F0929E4 2404000C */ li $a0, 12 -/* 0C7558 7F0929E8 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C755C 7F0929EC 00402825 */ move $a1, $v0 -/* 0C7560 7F0929F0 0FC1A630 */ jal get_max_ammo_for_type -/* 0C7564 7F0929F4 2404000D */ li $a0, 13 -/* 0C7568 7F0929F8 2404000D */ li $a0, 13 -/* 0C756C 7F0929FC 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7570 7F092A00 00402825 */ move $a1, $v0 -/* 0C7574 7F092A04 0FC1A630 */ jal get_max_ammo_for_type -/* 0C7578 7F092A08 24040001 */ li $a0, 1 -/* 0C757C 7F092A0C 24040001 */ li $a0, 1 -/* 0C7580 7F092A10 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7584 7F092A14 00402825 */ move $a1, $v0 -/* 0C7588 7F092A18 8FA90028 */ lw $t1, 0x28($sp) -/* 0C758C 7F092A1C 59200163 */ blezl $t1, .Ljp7F092FAC -/* 0C7590 7F092A20 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7594 7F092A24 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7598 7F092A28 3404B018 */ li $a0, 45080 -/* 0C759C 7F092A2C 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C75A0 7F092A30 00402025 */ move $a0, $v0 -/* 0C75A4 7F092A34 1000015D */ b .Ljp7F092FAC -/* 0C75A8 7F092A38 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_tiny_bond: -/* 0C75AC 7F092A3C 24010001 */ li $at, 1 -/* 0C75B0 7F092A40 14410159 */ bne $v0, $at, .Ljp7F092FA8 -/* 0C75B4 7F092A44 3C0B8008 */ lui $t3, %hi(pPlayersPerm) # $t3, 0x8008 -/* 0C75B8 7F092A48 8D6BA124 */ lw $t3, %lo(pPlayersPerm)($t3) -/* 0C75BC 7F092A4C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C75C0 7F092A50 44818000 */ mtc1 $at, $f16 -/* 0C75C4 7F092A54 C5720064 */ lwc1 $f18, 0x64($t3) -/* 0C75C8 7F092A58 46128032 */ c.eq.s $f16, $f18 -/* 0C75CC 7F092A5C 00000000 */ nop -/* 0C75D0 7F092A60 45020152 */ bc1fl .Ljp7F092FAC -/* 0C75D4 7F092A64 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C75D8 7F092A68 0FC30AA2 */ jal get_textptr_for_textID -/* 0C75DC 7F092A6C 3404B019 */ li $a0, 45081 -/* 0C75E0 7F092A70 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C75E4 7F092A74 00402025 */ move $a0, $v0 -/* 0C75E8 7F092A78 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0C75EC 7F092A7C 3C0A8008 */ lui $t2, %hi(pPlayersPerm) # $t2, 0x8008 -/* 0C75F0 7F092A80 44810000 */ mtc1 $at, $f0 -/* 0C75F4 7F092A84 8D4AA124 */ lw $t2, %lo(pPlayersPerm)($t2) -/* 0C75F8 7F092A88 3C0C8008 */ lui $t4, %hi(pPlayer) # $t4, 0x8008 -/* 0C75FC 7F092A8C E5400064 */ swc1 $f0, 0x64($t2) -/* 0C7600 7F092A90 8D8CA120 */ lw $t4, %lo(pPlayer)($t4) -/* 0C7604 7F092A94 8D8400D4 */ lw $a0, 0xd4($t4) -/* 0C7608 7F092A98 50800144 */ beql $a0, $zero, .Ljp7F092FAC -/* 0C760C 7F092A9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7610 7F092AA0 C4840014 */ lwc1 $f4, 0x14($a0) -/* 0C7614 7F092AA4 46002182 */ mul.s $f6, $f4, $f0 -/* 0C7618 7F092AA8 44053000 */ mfc1 $a1, $f6 -/* 0C761C 7F092AAC 0FC1B51A */ jal set_obj_instance_controller_scale -/* 0C7620 7F092AB0 00000000 */ nop -/* 0C7624 7F092AB4 1000013D */ b .Ljp7F092FAC -/* 0C7628 7F092AB8 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_paintball: -/* 0C762C 7F092ABC 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7630 7F092AC0 3404B01A */ li $a0, 45082 -/* 0C7634 7F092AC4 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C7638 7F092AC8 00402025 */ move $a0, $v0 -/* 0C763C 7F092ACC 10000137 */ b .Ljp7F092FAC -/* 0C7640 7F092AD0 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_10x_health: -/* 0C7644 7F092AD4 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0C7648 7F092AD8 8C42A120 */ lw $v0, %lo(pPlayer)($v0) -/* 0C764C 7F092ADC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C7650 7F092AE0 44810000 */ mtc1 $at, $f0 -/* 0C7654 7F092AE4 C4482A3C */ lwc1 $f8, 0x2a3c($v0) -/* 0C7658 7F092AE8 46080032 */ c.eq.s $f0, $f8 -/* 0C765C 7F092AEC 00000000 */ nop -/* 0C7660 7F092AF0 45010006 */ bc1t .Ljp7F092B0C -/* 0C7664 7F092AF4 00000000 */ nop -/* 0C7668 7F092AF8 C44A00DC */ lwc1 $f10, 0xdc($v0) -/* 0C766C 7F092AFC 4600503C */ c.lt.s $f10, $f0 -/* 0C7670 7F092B00 00000000 */ nop -/* 0C7674 7F092B04 45020129 */ bc1fl .Ljp7F092FAC -/* 0C7678 7F092B08 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F092B0C: -/* 0C767C 7F092B0C 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7680 7F092B10 3404B01B */ li $a0, 45083 -/* 0C7684 7F092B14 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C7688 7F092B18 00402025 */ move $a0, $v0 -/* 0C768C 7F092B1C 3C028008 */ lui $v0, %hi(pPlayer) # $v0, 0x8008 -/* 0C7690 7F092B20 2442A120 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5ee0 -/* 0C7694 7F092B24 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C7698 7F092B28 44818000 */ mtc1 $at, $f16 -/* 0C769C 7F092B2C 8C4D0000 */ lw $t5, ($v0) -/* 0C76A0 7F092B30 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0C76A4 7F092B34 44819000 */ mtc1 $at, $f18 -/* 0C76A8 7F092B38 E5B000DC */ swc1 $f16, 0xdc($t5) -/* 0C76AC 7F092B3C 8C4E0000 */ lw $t6, ($v0) -/* 0C76B0 7F092B40 10000119 */ b .Ljp7F092FA8 -/* 0C76B4 7F092B44 E5D22A3C */ swc1 $f18, 0x2a3c($t6) -cheats_cheat_magnum: -/* 0C76B8 7F092B48 24010001 */ li $at, 1 -/* 0C76BC 7F092B4C 54410117 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C76C0 7F092B50 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C76C4 7F092B54 0FC2335A */ jal add_item_to_inventory -/* 0C76C8 7F092B58 24040012 */ li $a0, 18 -/* 0C76CC 7F092B5C 0FC1A630 */ jal get_max_ammo_for_type -/* 0C76D0 7F092B60 2404000C */ li $a0, 12 -/* 0C76D4 7F092B64 2404000C */ li $a0, 12 -/* 0C76D8 7F092B68 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C76DC 7F092B6C 00402825 */ move $a1, $v0 -/* 0C76E0 7F092B70 1000010E */ b .Ljp7F092FAC -/* 0C76E4 7F092B74 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_laser: -/* 0C76E8 7F092B78 24010001 */ li $at, 1 -/* 0C76EC 7F092B7C 5441010B */ bnel $v0, $at, .Ljp7F092FAC -/* 0C76F0 7F092B80 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C76F4 7F092B84 0FC2335A */ jal add_item_to_inventory -/* 0C76F8 7F092B88 24040016 */ li $a0, 22 -/* 0C76FC 7F092B8C 10000107 */ b .Ljp7F092FAC -/* 0C7700 7F092B90 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_goldengun: -/* 0C7704 7F092B94 24010001 */ li $at, 1 -/* 0C7708 7F092B98 54410104 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C770C 7F092B9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7710 7F092BA0 0FC2335A */ jal add_item_to_inventory -/* 0C7714 7F092BA4 24040013 */ li $a0, 19 -/* 0C7718 7F092BA8 0FC1A630 */ jal get_max_ammo_for_type -/* 0C771C 7F092BAC 2404000D */ li $a0, 13 -/* 0C7720 7F092BB0 2404000D */ li $a0, 13 -/* 0C7724 7F092BB4 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7728 7F092BB8 00402825 */ move $a1, $v0 -/* 0C772C 7F092BBC 100000FB */ b .Ljp7F092FAC -/* 0C7730 7F092BC0 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_silverpp7: -/* 0C7734 7F092BC4 24010001 */ li $at, 1 -/* 0C7738 7F092BC8 544100F8 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C773C 7F092BCC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7740 7F092BD0 0FC2335A */ jal add_item_to_inventory -/* 0C7744 7F092BD4 24040014 */ li $a0, 20 -/* 0C7748 7F092BD8 0FC1A630 */ jal get_max_ammo_for_type -/* 0C774C 7F092BDC 24040001 */ li $a0, 1 -/* 0C7750 7F092BE0 24040001 */ li $a0, 1 -/* 0C7754 7F092BE4 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7758 7F092BE8 00402825 */ move $a1, $v0 -/* 0C775C 7F092BEC 100000EF */ b .Ljp7F092FAC -/* 0C7760 7F092BF0 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_goldpp7: -/* 0C7764 7F092BF4 24010001 */ li $at, 1 -/* 0C7768 7F092BF8 544100EC */ bnel $v0, $at, .Ljp7F092FAC -/* 0C776C 7F092BFC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7770 7F092C00 0FC2335A */ jal add_item_to_inventory -/* 0C7774 7F092C04 24040015 */ li $a0, 21 -/* 0C7778 7F092C08 0FC1A630 */ jal get_max_ammo_for_type -/* 0C777C 7F092C0C 24040001 */ li $a0, 1 -/* 0C7780 7F092C10 24040001 */ li $a0, 1 -/* 0C7784 7F092C14 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7788 7F092C18 00402825 */ move $a1, $v0 -/* 0C778C 7F092C1C 100000E3 */ b .Ljp7F092FAC -/* 0C7790 7F092C20 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_invisibility_mp: -/* 0C7794 7F092C24 3C014396 */ li $at, 0x43960000 # 300.000000 -/* 0C7798 7F092C28 44816000 */ mtc1 $at, $f12 -/* 0C779C 7F092C2C 3C018005 */ lui $at, %hi(finalamount) # $at, 0x8005 -/* 0C77A0 7F092C30 0FC20408 */ jal currentPlayerStartChrFade -/* 0C77A4 7F092C34 C42E7408 */ lwc1 $f14, %lo(finalamount)($at) -/* 0C77A8 7F092C38 100000DC */ b .Ljp7F092FAC -/* 0C77AC 7F092C3C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_cheat_fast: -/* 0C77B0 7F092C40 0FC246BE */ jal get_debug_fast_bond_flag -/* 0C77B4 7F092C44 00000000 */ nop -/* 0C77B8 7F092C48 544000D8 */ bnezl $v0, .Ljp7F092FAC -/* 0C77BC 7F092C4C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C77C0 7F092C50 0FC30AA2 */ jal get_textptr_for_textID -/* 0C77C4 7F092C54 3404B01D */ li $a0, 45085 -/* 0C77C8 7F092C58 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C77CC 7F092C5C 00402025 */ move $a0, $v0 -/* 0C77D0 7F092C60 0FC246C1 */ jal set_debug_fast_bond_flag -/* 0C77D4 7F092C64 24040001 */ li $a0, 1 -/* 0C77D8 7F092C68 100000D0 */ b .Ljp7F092FAC -/* 0C77DC 7F092C6C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_pos: -/* 0C77E0 7F092C70 0FC2469A */ jal get_debug_testingmanpos_flag -/* 0C77E4 7F092C74 00000000 */ nop -/* 0C77E8 7F092C78 544000CC */ bnezl $v0, .Ljp7F092FAC -/* 0C77EC 7F092C7C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C77F0 7F092C80 0FC2469D */ jal set_debug_testingmanpos_flag -/* 0C77F4 7F092C84 24040001 */ li $a0, 1 -/* 0C77F8 7F092C88 100000C8 */ b .Ljp7F092FAC -/* 0C77FC 7F092C8C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_fast_ani: -/* 0C7800 7F092C90 0FC081E5 */ jal get_animation_rate -/* 0C7804 7F092C94 00000000 */ nop -/* 0C7808 7F092C98 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0C780C 7F092C9C 44812000 */ mtc1 $at, $f4 -/* 0C7810 7F092CA0 00000000 */ nop -/* 0C7814 7F092CA4 4604003C */ c.lt.s $f0, $f4 -/* 0C7818 7F092CA8 00000000 */ nop -/* 0C781C 7F092CAC 450200BF */ bc1fl .Ljp7F092FAC -/* 0C7820 7F092CB0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7824 7F092CB4 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7828 7F092CB8 3404B034 */ li $a0, 45108 -/* 0C782C 7F092CBC 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C7830 7F092CC0 00402025 */ move $a0, $v0 -/* 0C7834 7F092CC4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0C7838 7F092CC8 44816000 */ mtc1 $at, $f12 -/* 0C783C 7F092CCC 0FC081BC */ jal animation_speed_related -/* 0C7840 7F092CD0 00000000 */ nop -/* 0C7844 7F092CD4 100000B5 */ b .Ljp7F092FAC -/* 0C7848 7F092CD8 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_slow_ani: -/* 0C784C 7F092CDC 0FC081E5 */ jal get_animation_rate -/* 0C7850 7F092CE0 00000000 */ nop -/* 0C7854 7F092CE4 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0C7858 7F092CE8 44813000 */ mtc1 $at, $f6 -/* 0C785C 7F092CEC 00000000 */ nop -/* 0C7860 7F092CF0 4600303C */ c.lt.s $f6, $f0 -/* 0C7864 7F092CF4 00000000 */ nop -/* 0C7868 7F092CF8 450200AC */ bc1fl .Ljp7F092FAC -/* 0C786C 7F092CFC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7870 7F092D00 0FC30AA2 */ jal get_textptr_for_textID -/* 0C7874 7F092D04 3404B032 */ li $a0, 45106 -/* 0C7878 7F092D08 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0C787C 7F092D0C 00402025 */ move $a0, $v0 -/* 0C7880 7F092D10 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 0C7884 7F092D14 44816000 */ mtc1 $at, $f12 -/* 0C7888 7F092D18 0FC081BC */ jal animation_speed_related -/* 0C788C 7F092D1C 00000000 */ nop -/* 0C7890 7F092D20 100000A2 */ b .Ljp7F092FAC -/* 0C7894 7F092D24 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_rockets: -/* 0C7898 7F092D28 24010001 */ li $at, 1 -/* 0C789C 7F092D2C 5441009F */ bnel $v0, $at, .Ljp7F092FAC -/* 0C78A0 7F092D30 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C78A4 7F092D34 0FC2335A */ jal add_item_to_inventory -/* 0C78A8 7F092D38 24040019 */ li $a0, 25 -/* 0C78AC 7F092D3C 24040019 */ li $a0, 25 -/* 0C78B0 7F092D40 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C78B4 7F092D44 24050019 */ li $a1, 25 -/* 0C78B8 7F092D48 0FC1A630 */ jal get_max_ammo_for_type -/* 0C78BC 7F092D4C 24040006 */ li $a0, 6 -/* 0C78C0 7F092D50 24040006 */ li $a0, 6 -/* 0C78C4 7F092D54 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C78C8 7F092D58 00402825 */ move $a1, $v0 -/* 0C78CC 7F092D5C 10000093 */ b .Ljp7F092FAC -/* 0C78D0 7F092D60 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_grenade_launch: -/* 0C78D4 7F092D64 24010001 */ li $at, 1 -/* 0C78D8 7F092D68 54410090 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C78DC 7F092D6C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C78E0 7F092D70 0FC2335A */ jal add_item_to_inventory -/* 0C78E4 7F092D74 24040018 */ li $a0, 24 -/* 0C78E8 7F092D78 24040018 */ li $a0, 24 -/* 0C78EC 7F092D7C 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C78F0 7F092D80 24050018 */ li $a1, 24 -/* 0C78F4 7F092D84 0FC1A630 */ jal get_max_ammo_for_type -/* 0C78F8 7F092D88 2404000B */ li $a0, 11 -/* 0C78FC 7F092D8C 2404000B */ li $a0, 11 -/* 0C7900 7F092D90 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7904 7F092D94 00402825 */ move $a1, $v0 -/* 0C7908 7F092D98 10000084 */ b .Ljp7F092FAC -/* 0C790C 7F092D9C 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_rcp90: -/* 0C7910 7F092DA0 24010001 */ li $at, 1 -/* 0C7914 7F092DA4 54410081 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C7918 7F092DA8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C791C 7F092DAC 0FC2335A */ jal add_item_to_inventory -/* 0C7920 7F092DB0 2404000E */ li $a0, 14 -/* 0C7924 7F092DB4 2404000E */ li $a0, 14 -/* 0C7928 7F092DB8 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C792C 7F092DBC 2405000E */ li $a1, 14 -/* 0C7930 7F092DC0 0FC1A630 */ jal get_max_ammo_for_type -/* 0C7934 7F092DC4 24040001 */ li $a0, 1 -/* 0C7938 7F092DC8 24040001 */ li $a0, 1 -/* 0C793C 7F092DCC 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C7940 7F092DD0 00402825 */ move $a1, $v0 -/* 0C7944 7F092DD4 10000075 */ b .Ljp7F092FAC -/* 0C7948 7F092DD8 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_throwing_knife: -/* 0C794C 7F092DDC 24010001 */ li $at, 1 -/* 0C7950 7F092DE0 54410072 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C7954 7F092DE4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7958 7F092DE8 0FC2335A */ jal add_item_to_inventory -/* 0C795C 7F092DEC 24040003 */ li $a0, 3 -/* 0C7960 7F092DF0 24040003 */ li $a0, 3 -/* 0C7964 7F092DF4 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C7968 7F092DF8 24050003 */ li $a1, 3 -/* 0C796C 7F092DFC 0FC1A630 */ jal get_max_ammo_for_type -/* 0C7970 7F092E00 2404000A */ li $a0, 10 -/* 0C7974 7F092E04 2404000A */ li $a0, 10 -/* 0C7978 7F092E08 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C797C 7F092E0C 00402825 */ move $a1, $v0 -/* 0C7980 7F092E10 10000066 */ b .Ljp7F092FAC -/* 0C7984 7F092E14 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_hunting_knife: -/* 0C7988 7F092E18 24010001 */ li $at, 1 -/* 0C798C 7F092E1C 14410062 */ bne $v0, $at, .Ljp7F092FA8 -/* 0C7990 7F092E20 3C0F8005 */ lui $t7, %hi(j_text_trigger) # $t7, 0x8005 -/* 0C7994 7F092E24 8DEF8500 */ lw $t7, %lo(j_text_trigger)($t7) -/* 0C7998 7F092E28 11E00014 */ beqz $t7, .cheats_debug_2x_hunting_knife_en -/* 0C799C 7F092E2C 00000000 */ nop -/* 0C79A0 7F092E30 0FC2335A */ jal add_item_to_inventory -/* 0C79A4 7F092E34 24040019 */ li $a0, 25 -/* 0C79A8 7F092E38 0FC2335A */ jal add_item_to_inventory -/* 0C79AC 7F092E3C 24040011 */ li $a0, 17 -/* 0C79B0 7F092E40 24040011 */ li $a0, 17 -/* 0C79B4 7F092E44 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C79B8 7F092E48 24050019 */ li $a1, 25 -/* 0C79BC 7F092E4C 0FC1A630 */ jal get_max_ammo_for_type -/* 0C79C0 7F092E50 24040006 */ li $a0, 6 -/* 0C79C4 7F092E54 24040006 */ li $a0, 6 -/* 0C79C8 7F092E58 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C79CC 7F092E5C 00402825 */ move $a1, $v0 -/* 0C79D0 7F092E60 0FC1A630 */ jal get_max_ammo_for_type -/* 0C79D4 7F092E64 24040003 */ li $a0, 3 -/* 0C79D8 7F092E68 24040003 */ li $a0, 3 -/* 0C79DC 7F092E6C 0FC1A5C7 */ jal give_cur_player_ammo -/* 0C79E0 7F092E70 00402825 */ move $a1, $v0 -/* 0C79E4 7F092E74 1000004D */ b .Ljp7F092FAC -/* 0C79E8 7F092E78 8FBF0014 */ lw $ra, 0x14($sp) -.cheats_debug_2x_hunting_knife_en: -/* 0C79EC 7F092E7C 0FC2335A */ jal add_item_to_inventory -/* 0C79F0 7F092E80 24040002 */ li $a0, 2 -/* 0C79F4 7F092E84 24040002 */ li $a0, 2 -/* 0C79F8 7F092E88 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C79FC 7F092E8C 24050002 */ li $a1, 2 -/* 0C7A00 7F092E90 10000046 */ b .Ljp7F092FAC -/* 0C7A04 7F092E94 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_2x_laser: -/* 0C7A08 7F092E98 24010001 */ li $at, 1 -/* 0C7A0C 7F092E9C 54410043 */ bnel $v0, $at, .Ljp7F092FAC -/* 0C7A10 7F092EA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7A14 7F092EA4 0FC2335A */ jal add_item_to_inventory -/* 0C7A18 7F092EA8 24040016 */ li $a0, 22 -/* 0C7A1C 7F092EAC 24040016 */ li $a0, 22 -/* 0C7A20 7F092EB0 0FC23381 */ jal add_doubles_item_to_inventory -/* 0C7A24 7F092EB4 24050016 */ li $a1, 22 -/* 0C7A28 7F092EB8 1000003C */ b .Ljp7F092FAC -/* 0C7A2C 7F092EBC 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_unlockcheat: -/* 0C7A30 7F092EC0 3C048003 */ lui $a0, %hi(selected_folder_num) # $a0, 0x8003 -/* 0C7A34 7F092EC4 8C84A928 */ lw $a0, %lo(selected_folder_num)($a0) -/* 0C7A38 7F092EC8 24C5FFDD */ addiu $a1, $a2, -0x23 -/* 0C7A3C 7F092ECC 04800036 */ bltz $a0, .Ljp7F092FA8 -/* 0C7A40 7F092ED0 28810004 */ slti $at, $a0, 4 -/* 0C7A44 7F092ED4 50200035 */ beql $at, $zero, .Ljp7F092FAC -/* 0C7A48 7F092ED8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0C7A4C 7F092EDC 0FC07A44 */ jal sub_GAME_7F01E760 -/* 0C7A50 7F092EE0 00000000 */ nop -/* 0C7A54 7F092EE4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0C7A58 7F092EE8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0C7A5C 7F092EEC 2405009F */ li $a1, 159 -/* 0C7A60 7F092EF0 0C002386 */ jal play_sfx_a1 -/* 0C7A64 7F092EF4 00003025 */ move $a2, $zero -/* 0C7A68 7F092EF8 1000002C */ b .Ljp7F092FAC -/* 0C7A6C 7F092EFC 8FBF0014 */ lw $ra, 0x14($sp) -cheats_debug_unlocklevel: -/* 0C7A70 7F092F00 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 -/* 0C7A74 7F092F04 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 -/* 0C7A78 7F092F08 8C440000 */ lw $a0, ($v0) -/* 0C7A7C 7F092F0C 24C8FFC9 */ addiu $t0, $a2, -0x37 -/* 0C7A80 7F092F10 04800025 */ bltz $a0, .Ljp7F092FA8 -/* 0C7A84 7F092F14 28810004 */ slti $at, $a0, 4 -/* 0C7A88 7F092F18 10200023 */ beqz $at, .Ljp7F092FA8 -/* 0C7A8C 7F092F1C 00001825 */ move $v1, $zero -/* 0C7A90 7F092F20 19000014 */ blez $t0, .Ljp7F092F74 -/* 0C7A94 7F092F24 00002825 */ move $a1, $zero -.Ljp7F092F28: -/* 0C7A98 7F092F28 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 -/* 0C7A9C 7F092F2C 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 -/* 0C7AA0 7F092F30 8C440000 */ lw $a0, ($v0) -/* 0C7AA4 7F092F34 00003025 */ move $a2, $zero -/* 0C7AA8 7F092F38 AFA30018 */ sw $v1, 0x18($sp) -/* 0C7AAC 7F092F3C AFA5001C */ sw $a1, 0x1c($sp) -/* 0C7AB0 7F092F40 0FC0791C */ jal isStageUnlockedAtDifficulty -/* 0C7AB4 7F092F44 AFA80020 */ sw $t0, 0x20($sp) -/* 0C7AB8 7F092F48 24010003 */ li $at, 3 -/* 0C7ABC 7F092F4C 8FA30018 */ lw $v1, 0x18($sp) -/* 0C7AC0 7F092F50 8FA5001C */ lw $a1, 0x1c($sp) -/* 0C7AC4 7F092F54 14410002 */ bne $v0, $at, .Ljp7F092F60 -/* 0C7AC8 7F092F58 8FA80020 */ lw $t0, 0x20($sp) -/* 0C7ACC 7F092F5C 24630001 */ addiu $v1, $v1, 1 -.Ljp7F092F60: -/* 0C7AD0 7F092F60 24A50001 */ addiu $a1, $a1, 1 -/* 0C7AD4 7F092F64 14A8FFF0 */ bne $a1, $t0, .Ljp7F092F28 -/* 0C7AD8 7F092F68 00000000 */ nop -/* 0C7ADC 7F092F6C 3C028003 */ lui $v0, %hi(selected_folder_num) # $v0, 0x8003 -/* 0C7AE0 7F092F70 2442A928 */ addiu $v0, %lo(selected_folder_num) # addiu $v0, $v0, -0x56d8 -.Ljp7F092F74: -/* 0C7AE4 7F092F74 24780001 */ addiu $t8, $v1, 1 -/* 0C7AE8 7F092F78 1518000B */ bne $t0, $t8, .Ljp7F092FA8 -/* 0C7AEC 7F092F7C 2505FFFF */ addiu $a1, $t0, -1 -/* 0C7AF0 7F092F80 3C0705F5 */ lui $a3, (0x05F5E0FF >> 16) # lui $a3, 0x5f5 -/* 0C7AF4 7F092F84 34E7E0FF */ ori $a3, (0x05F5E0FF & 0xFFFF) # ori $a3, $a3, 0xe0ff -/* 0C7AF8 7F092F88 8C440000 */ lw $a0, ($v0) -/* 0C7AFC 7F092F8C 0FC079EA */ jal unlock_stage_in_folder_on_difficulty -/* 0C7B00 7F092F90 00003025 */ move $a2, $zero -/* 0C7B04 7F092F94 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0C7B08 7F092F98 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0C7B0C 7F092F9C 2405009F */ li $a1, 159 -/* 0C7B10 7F092FA0 0C002386 */ jal play_sfx_a1 -/* 0C7B14 7F092FA4 00003025 */ move $a2, $zero -cheats_debug_return_saved_ra: -.Ljp7F092FA8: -/* 0C7B18 7F092FA8 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F092FAC: -/* 0C7B1C 7F092FAC 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0C7B20 7F092FB0 03E00008 */ jr $ra -/* 0C7B24 7F092FB4 00000000 */ nop -) -#endif - #endif @@ -2903,6 +3603,270 @@ cheat_button_default: /* 0C71EC 7F0926BC 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:800573DC*/ +glabel jpt_800573DC +.word cheat_button_default +.word cheat_button_invincibility +.word cheat_button_all_guns +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_line_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_unknown +.word cheat_button_infinite_ammo +.word cheat_button_dkmode +.word cheat_button_default +.word cheat_button_unknown_0 +.word cheat_button_paintball +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_mp_invis +.word cheat_button_default +.word cheat_button_fast_mode +.word cheat_button_debug_mode +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +.word cheat_button_default +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ +/*.word cheat_button_default*/ + +.text +glabel cheatDisplayMessageActivateCheat +/* 0C6F68 7F092438 00047100 */ sll $t6, $a0, 4 +/* 0C6F6C 7F09243C 3C0F8004 */ lui $t7, %hi(D_8003F808) +/* 0C6F70 7F092440 01EE7821 */ addu $t7, $t7, $t6 +/* 0C6F74 7F092444 8DEFF808 */ lw $t7, %lo(D_8003F808)($t7) +/* 0C6F78 7F092448 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0C6F7C 7F09244C AFBF0014 */ sw $ra, 0x14($sp) +/* 0C6F80 7F092450 AFA40020 */ sw $a0, 0x20($sp) +/* 0C6F84 7F092454 0FC26C54 */ jal get_cur_playernum +/* 0C6F88 7F092458 AFAF001C */ sw $t7, 0x1c($sp) +/* 0C6F8C 7F09245C 0FC26919 */ jal getPlayerCount +/* 0C6F90 7F092460 AFA20018 */ sw $v0, 0x18($sp) +/* 0C6F94 7F092464 8FA3001C */ lw $v1, 0x1c($sp) +/* 0C6F98 7F092468 8FA40020 */ lw $a0, 0x20($sp) +/* 0C6F9C 7F09246C 30780010 */ andi $t8, $v1, 0x10 +/* 0C6FA0 7F092470 17000010 */ bnez $t8, .L7F0924B4 +/* 0C6FA4 7F092474 30790020 */ andi $t9, $v1, 0x20 +/* 0C6FA8 7F092478 1720000B */ bnez $t9, .L7F0924A8 +/* 0C6FAC 7F09247C 3C088008 */ lui $t0, %hi(off_CODE_bss_80079E30) +/* 0C6FB0 7F092480 8FAA0018 */ lw $t2, 0x18($sp) +/* 0C6FB4 7F092484 25089E30 */ addiu $t0, %lo(off_CODE_bss_80079E30) # addiu $t0, $t0, -0x61d0 +/* 0C6FB8 7F092488 00881821 */ addu $v1, $a0, $t0 +/* 0C6FBC 7F09248C 90690000 */ lbu $t1, ($v1) +/* 0C6FC0 7F092490 240B0001 */ li $t3, 1 +/* 0C6FC4 7F092494 014B6004 */ sllv $t4, $t3, $t2 +/* 0C6FC8 7F092498 01806827 */ not $t5, $t4 +/* 0C6FCC 7F09249C 012D7024 */ and $t6, $t1, $t5 +/* 0C6FD0 7F0924A0 10000004 */ b .L7F0924B4 +/* 0C6FD4 7F0924A4 A06E0000 */ sb $t6, ($v1) +.L7F0924A8: +/* 0C6FD8 7F0924A8 3C018008 */ lui $at, %hi(off_CODE_bss_80079E30) +/* 0C6FDC 7F0924AC 00240821 */ addu $at, $at, $a0 +/* 0C6FE0 7F0924B0 A0209E30 */ sb $zero, %lo(off_CODE_bss_80079E30)($at) +.L7F0924B4: +/* 0C6FE4 7F0924B4 248FFFFF */ addiu $t7, $a0, -1 +/* 0C6FE8 7F0924B8 2DE1004A */ sltiu $at, $t7, 0x4a +/* 0C6FEC 7F0924BC 1020007C */ beqz $at, .L7F0926B0 +/* 0C6FF0 7F0924C0 000F7880 */ sll $t7, $t7, 2 +/* 0C6FF4 7F0924C4 3C018005 */ lui $at, %hi(jpt_800573DC) +/* 0C6FF8 7F0924C8 002F0821 */ addu $at, $at, $t7 +/* 0C6FFC 7F0924CC 8C2F73DC */ lw $t7, %lo(jpt_800573DC)($at) +/* 0C7000 7F0924D0 01E00008 */ jr $t7 +/* 0C7004 7F0924D4 00000000 */ nop +cheat_button_invincibility: +/* 0C7008 7F0924D8 0FC227D6 */ jal get_bondata_invincible_flag +/* 0C700C 7F0924DC 00000000 */ nop +/* 0C7010 7F0924E0 50400074 */ beql $v0, $zero, .L7F0926B4 +/* 0C7014 7F0924E4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7018 7F0924E8 0FC30776 */ jal get_textptr_for_textID +/* 0C701C 7F0924EC 3404B01E */ li $a0, 45086 +/* 0C7020 7F0924F0 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7024 7F0924F4 00402025 */ move $a0, $v0 +/* 0C7028 7F0924F8 0FC227D2 */ jal set_bondata_invincible_flag +/* 0C702C 7F0924FC 00002025 */ move $a0, $zero +/* 0C7030 7F092500 1000006C */ b .L7F0926B4 +/* 0C7034 7F092504 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_all_guns: +/* 0C7038 7F092508 0FC230AB */ jal get_BONDdata_allguns_flag +/* 0C703C 7F09250C 00000000 */ nop +/* 0C7040 7F092510 50400068 */ beql $v0, $zero, .L7F0926B4 +/* 0C7044 7F092514 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7048 7F092518 0FC30776 */ jal get_textptr_for_textID +/* 0C704C 7F09251C 3404B01F */ li $a0, 45087 +/* 0C7050 7F092520 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7054 7F092524 00402025 */ move $a0, $v0 +/* 0C7058 7F092528 0FC230A7 */ jal set_BONDdata_allguns_flag +/* 0C705C 7F09252C 00002025 */ move $a0, $zero +/* 0C7060 7F092530 10000060 */ b .L7F0926B4 +/* 0C7064 7F092534 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_line_mode: +/* 0C7068 7F092538 0FC243FA */ jal set_debug_VisCVG_flag +/* 0C706C 7F09253C 00002025 */ move $a0, $zero +/* 0C7070 7F092540 1000005C */ b .L7F0926B4 +/* 0C7074 7F092544 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown: +/* 0C7078 7F092548 0FC227DD */ jal get_invisible_to_guards_flag +/* 0C707C 7F09254C 00000000 */ nop +/* 0C7080 7F092550 54400058 */ bnezl $v0, .L7F0926B4 +/* 0C7084 7F092554 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7088 7F092558 0FC30776 */ jal get_textptr_for_textID +/* 0C708C 7F09255C 3404B020 */ li $a0, 45088 +/* 0C7090 7F092560 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7094 7F092564 00402025 */ move $a0, $v0 +/* 0C7098 7F092568 0FC227DA */ jal set_invisible_to_guards_flag +/* 0C709C 7F09256C 24040001 */ li $a0, 1 +/* 0C70A0 7F092570 10000050 */ b .L7F0926B4 +/* 0C70A4 7F092574 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_infinite_ammo: +/* 0C70A8 7F092578 0FC30776 */ jal get_textptr_for_textID +/* 0C70AC 7F09257C 3404B022 */ li $a0, 45090 +/* 0C70B0 7F092580 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70B4 7F092584 00402025 */ move $a0, $v0 +/* 0C70B8 7F092588 1000004A */ b .L7F0926B4 +/* 0C70BC 7F09258C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_dkmode: +/* 0C70C0 7F092590 0FC30776 */ jal get_textptr_for_textID +/* 0C70C4 7F092594 3404B023 */ li $a0, 45091 +/* 0C70C8 7F092598 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C70CC 7F09259C 00402025 */ move $a0, $v0 +/* 0C70D0 7F0925A0 0FC249FD */ jal set_DKMode +/* 0C70D4 7F0925A4 00002025 */ move $a0, $zero +/* 0C70D8 7F0925A8 10000042 */ b .L7F0926B4 +/* 0C70DC 7F0925AC 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_unknown_0: +/* 0C70E0 7F0925B0 24010001 */ li $at, 1 +/* 0C70E4 7F0925B4 1441003E */ bne $v0, $at, .L7F0926B0 +/* 0C70E8 7F0925B8 3C188008 */ lui $t8, %hi(pPlayersPerm) +/* 0C70EC 7F0925BC 8F18A0B4 */ lw $t8, %lo(pPlayersPerm)($t8) +/* 0C70F0 7F0925C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C70F4 7F0925C4 44812000 */ mtc1 $at, $f4 +/* 0C70F8 7F0925C8 C7060064 */ lwc1 $f6, 0x64($t8) +/* 0C70FC 7F0925CC 46062032 */ c.eq.s $f4, $f6 +/* 0C7100 7F0925D0 00000000 */ nop +/* 0C7104 7F0925D4 45030037 */ bc1tl .L7F0926B4 +/* 0C7108 7F0925D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C710C 7F0925DC 0FC30776 */ jal get_textptr_for_textID +/* 0C7110 7F0925E0 3404B024 */ li $a0, 45092 +/* 0C7114 7F0925E4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C7118 7F0925E8 00402025 */ move $a0, $v0 +/* 0C711C 7F0925EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7120 7F0925F0 3C198008 */ lui $t9, %hi(pPlayersPerm) +/* 0C7124 7F0925F4 8F39A0B4 */ lw $t9, %lo(pPlayersPerm)($t9) +/* 0C7128 7F0925F8 44814000 */ mtc1 $at, $f8 +/* 0C712C 7F0925FC 3C088008 */ lui $t0, %hi(pPlayer) +/* 0C7130 7F092600 E7280064 */ swc1 $f8, 0x64($t9) +/* 0C7134 7F092604 8D08A0B0 */ lw $t0, %lo(pPlayer)($t0) +/* 0C7138 7F092608 8D0400D4 */ lw $a0, 0xd4($t0) +/* 0C713C 7F09260C 50800029 */ beql $a0, $zero, .L7F0926B4 +/* 0C7140 7F092610 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C7144 7F092614 C4800014 */ lwc1 $f0, 0x14($a0) +/* 0C7148 7F092618 46000280 */ add.s $f10, $f0, $f0 +/* 0C714C 7F09261C 44055000 */ mfc1 $a1, $f10 +/* 0C7150 7F092620 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7154 7F092624 00000000 */ nop +/* 0C7158 7F092628 10000022 */ b .L7F0926B4 +/* 0C715C 7F09262C 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_paintball: +/* 0C7160 7F092630 0FC30776 */ jal get_textptr_for_textID +/* 0C7164 7F092634 3404B025 */ li $a0, 45093 +/* 0C7168 7F092638 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C716C 7F09263C 00402025 */ move $a0, $v0 +/* 0C7170 7F092640 1000001C */ b .L7F0926B4 +/* 0C7174 7F092644 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_mp_invis: +/* 0C7178 7F092648 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 0C717C 7F09264C 44816000 */ mtc1 $at, $f12 +/* 0C7180 7F092650 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0C7184 7F092654 44817000 */ mtc1 $at, $f14 +/* 0C7188 7F092658 0FC20284 */ jal currentPlayerStartChrFade +/* 0C718C 7F09265C 00000000 */ nop +/* 0C7190 7F092660 10000014 */ b .L7F0926B4 +/* 0C7194 7F092664 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_fast_mode: +/* 0C7198 7F092668 0FC24406 */ jal get_debug_fast_bond_flag +/* 0C719C 7F09266C 00000000 */ nop +/* 0C71A0 7F092670 50400010 */ beql $v0, $zero, .L7F0926B4 +/* 0C71A4 7F092674 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71A8 7F092678 0FC30776 */ jal get_textptr_for_textID +/* 0C71AC 7F09267C 3404B027 */ li $a0, 45095 +/* 0C71B0 7F092680 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0C71B4 7F092684 00402025 */ move $a0, $v0 +/* 0C71B8 7F092688 0FC24409 */ jal set_debug_fast_bond_flag +/* 0C71BC 7F09268C 00002025 */ move $a0, $zero +/* 0C71C0 7F092690 10000008 */ b .L7F0926B4 +/* 0C71C4 7F092694 8FBF0014 */ lw $ra, 0x14($sp) +cheat_button_debug_mode: +/* 0C71C8 7F092698 0FC243E2 */ jal get_debug_testingmanpos_flag +/* 0C71CC 7F09269C 00000000 */ nop +/* 0C71D0 7F0926A0 50400004 */ beql $v0, $zero, .L7F0926B4 +/* 0C71D4 7F0926A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0C71D8 7F0926A8 0FC243E5 */ jal set_debug_testingmanpos_flag +/* 0C71DC 7F0926AC 00002025 */ move $a0, $zero +cheat_button_default: +.L7F0926B0: +/* 0C71E0 7F0926B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0926B4: +/* 0C71E4 7F0926B4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 0C71E8 7F0926B8 03E00008 */ jr $ra +/* 0C71EC 7F0926BC 00000000 */ nop +) +#endif + #endif @@ -3241,5 +4205,59 @@ glabel set_DKMode ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80057504 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel set_DKMode +/* 0C7324 7F0927F4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 0C7328 7F0927F8 AFB10024 */ sw $s1, 0x24($sp) +/* 0C732C 7F0927FC AFBF002C */ sw $ra, 0x2c($sp) +/* 0C7330 7F092800 AFB00020 */ sw $s0, 0x20($sp) +/* 0C7334 7F092804 3C118003 */ lui $s1, %hi(ptr_guard_data) +/* 0C7338 7F092808 00808025 */ move $s0, $a0 +/* 0C733C 7F09280C AFB20028 */ sw $s2, 0x28($sp) +/* 0C7340 7F092810 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0C7344 7F092814 0FC07D4C */ jal get_numguards +/* 0C7348 7F092818 8E31CC64 */ lw $s1, %lo(ptr_guard_data)($s1) +/* 0C734C 7F09281C 12000004 */ beqz $s0, .L7F092830 +/* 0C7350 7F092820 00409025 */ move $s2, $v0 +/* 0C7354 7F092824 3C018005 */ lui $at, %hi(D_80057504) +/* 0C7358 7F092828 10000004 */ b .L7F09283C +/* 0C735C 7F09282C C4347504 */ lwc1 $f20, %lo(D_80057504)($at) +.L7F092830: +/* 0C7360 7F092830 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 +/* 0C7364 7F092834 4481A000 */ mtc1 $at, $f20 +/* 0C7368 7F092838 00000000 */ nop +.L7F09283C: +/* 0C736C 7F09283C 1840000C */ blez $v0, .L7F092870 +/* 0C7370 7F092840 00008025 */ move $s0, $zero +.L7F092844: +/* 0C7374 7F092844 8E24001C */ lw $a0, 0x1c($s1) +/* 0C7378 7F092848 50800007 */ beql $a0, $zero, .L7F092868 +/* 0C737C 7F09284C 26100001 */ addiu $s0, $s0, 1 +/* 0C7380 7F092850 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0C7384 7F092854 46142182 */ mul.s $f6, $f4, $f20 +/* 0C7388 7F092858 44053000 */ mfc1 $a1, $f6 +/* 0C738C 7F09285C 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0C7390 7F092860 00000000 */ nop +/* 0C7394 7F092864 26100001 */ addiu $s0, $s0, 1 +.L7F092868: +/* 0C7398 7F092868 1612FFF6 */ bne $s0, $s2, .L7F092844 +/* 0C739C 7F09286C 263101DC */ addiu $s1, $s1, 0x1dc +.L7F092870: +/* 0C73A0 7F092870 8FBF002C */ lw $ra, 0x2c($sp) +/* 0C73A4 7F092874 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0C73A8 7F092878 8FB00020 */ lw $s0, 0x20($sp) +/* 0C73AC 7F09287C 8FB10024 */ lw $s1, 0x24($sp) +/* 0C73B0 7F092880 8FB20028 */ lw $s2, 0x28($sp) +/* 0C73B4 7F092884 03E00008 */ jr $ra +/* 0C73B8 7F092888 27BD0030 */ addiu $sp, $sp, 0x30 +) +#endif + + #endif diff --git a/src/game/cheat_buttons.h b/src/game/cheat_buttons.h index 5e2b66a..d7e737b 100644 --- a/src/game/cheat_buttons.h +++ b/src/game/cheat_buttons.h @@ -12,4 +12,6 @@ struct struct_15 { int anonymous_3; }; +extern char off_CODE_bss_80079E30[0x4C]; + #endif diff --git a/src/game/chr.c b/src/game/chr.c index c619e9b..55f8b9f 100644 --- a/src/game/chr.c +++ b/src/game/chr.c @@ -50,9 +50,9 @@ u32 D_8002CCBC = 0; u32 D_8002CCC0[] = {1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; s32 D_8002CCF8 = 0; s32 D_8002CCFC = 0; -s32 num_bodies = 0; -s32 num_male_heads = 0; -s32 num_female_heads = 0; +u32 num_bodies = 0; +u32 num_male_heads = 0; +u32 num_female_heads = 0; s32 list_of_bodies[] = { BODY_Jungle_Commando,BODY_St_Petersburg_Guard,BODY_Russian_Soldier,BODY_Russian_Infantry, @@ -81,9 +81,9 @@ s32 random_female_heads[] = { HEAD_Female_Sally,HEAD_Female_Marion_Rosika,HEAD_Female_Mandy,HEAD_Female_Vivien, -1 }; -s32 current_random_body = 0; -s32 current_random_male_head = 0; -s32 current_random_female_head = 0; +u32 current_random_body = 0; +u32 current_random_male_head = 0; +u32 current_random_female_head = 0; f32 ai_accuracy_modifier = 1.0f; f32 ai_damage_modifier = 1.0f; f32 ai_health_modifier = 1.0f; @@ -1056,7 +1056,7 @@ s32 get_numguards(void){ } void get_ptr_allocated_block_for_vertices(int param_1) { - sub_GAME_7F0BD714(param_1 << 4); + dynAllocate(param_1 << 4); } void set_show_patrols_flag(s32 flag){ @@ -2199,6 +2199,326 @@ glabel sub_GAME_7F01FC10 /* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051D10 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D14 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D18 +.word 0x3f666666 /*0.89999998*/ +glabel D_80051D1C +.word 0x3dcccccd /*0.1*/ +glabel D_80051D20 +.word 0x3dccccd0 /*0.10000002*/ +glabel D_80051D24 +.word 0xbdcccccd /*-0.1*/ +glabel D_80051D28 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D2C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D30 +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D34 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D38 +.word 0x3f5f66f3 /*0.87266463*/ +glabel D_80051D3C +.word 0x3f860a92 /*1.0471976*/ +glabel D_80051D40 +.word 0xbf5f66f3 /*-0.87266463*/ +glabel D_80051D44 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D48 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D4C +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051D58 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D5C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D60 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D64 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D68 +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D6C +.word 0x3ca3d70a /*0.02*/ +glabel D_80051D70 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D74 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D78 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D7C +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D80 +.word 0x3f7eb852 /*0.995*/ +glabel D_80051D84 +.word 0x3f80a3d7 /*1.005*/ +glabel D_80051D88 +.word 0x41aa6666 /*21.299999*/ + +.text +glabel sub_GAME_7F01FC10 +/* 054740 7F01FC10 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 054744 7F01FC14 AFBF0024 */ sw $ra, 0x24($sp) +/* 054748 7F01FC18 AFB10020 */ sw $s1, 0x20($sp) +/* 05474C 7F01FC1C AFB0001C */ sw $s0, 0x1c($sp) +/* 054750 7F01FC20 AFA40038 */ sw $a0, 0x38($sp) +/* 054754 7F01FC24 AFA5003C */ sw $a1, 0x3c($sp) +/* 054758 7F01FC28 AFA70044 */ sw $a3, 0x44($sp) +/* 05475C 7F01FC2C 8C900004 */ lw $s0, 4($a0) +/* 054760 7F01FC30 AFA00030 */ sw $zero, 0x30($sp) +/* 054764 7F01FC34 44806000 */ mtc1 $zero, $f12 +/* 054768 7F01FC38 8E0F0018 */ lw $t7, 0x18($s0) +/* 05476C 7F01FC3C 00C08825 */ move $s1, $a2 +/* 054770 7F01FC40 00A01825 */ move $v1, $a1 +/* 054774 7F01FC44 8DF80014 */ lw $t8, 0x14($t7) +/* 054778 7F01FC48 46006386 */ mov.s $f14, $f12 +/* 05477C 7F01FC4C 530000CC */ beql $t8, $zero, .L7F01FF80 +/* 054780 7F01FC50 8FAD0044 */ lw $t5, 0x44($sp) +/* 054784 7F01FC54 82190007 */ lb $t9, 7($s0) +/* 054788 7F01FC58 24010004 */ li $at, 4 +/* 05478C 7F01FC5C 1721002C */ bne $t9, $at, .L7F01FD10 +/* 054790 7F01FC60 00000000 */ nop +/* 054794 7F01FC64 C6020038 */ lwc1 $f2, 0x38($s0) +/* 054798 7F01FC68 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 05479C 7F01FC6C 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 0547A0 7F01FC70 4602603C */ c.lt.s $f12, $f2 +/* 0547A4 7F01FC74 00000000 */ nop +/* 0547A8 7F01FC78 45000025 */ bc1f .L7F01FD10 +/* 0547AC 7F01FC7C 00000000 */ nop +/* 0547B0 7F01FC80 C48400A4 */ lwc1 $f4, 0xa4($a0) +/* 0547B4 7F01FC84 C4460000 */ lwc1 $f6, ($v0) +/* 0547B8 7F01FC88 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 0547BC 7F01FC8C 46062202 */ mul.s $f8, $f4, $f6 +/* 0547C0 7F01FC90 460A1481 */ sub.s $f18, $f2, $f10 +/* 0547C4 7F01FC94 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 0547C8 7F01FC98 C4C60000 */ lwc1 $f6, ($a2) +/* 0547CC 7F01FC9C 46124102 */ mul.s $f4, $f8, $f18 +/* 0547D0 7F01FCA0 46022003 */ div.s $f0, $f4, $f2 +/* 0547D4 7F01FCA4 C4C40004 */ lwc1 $f4, 4($a2) +/* 0547D8 7F01FCA8 46005202 */ mul.s $f8, $f10, $f0 +/* 0547DC 7F01FCAC 46083480 */ add.s $f18, $f6, $f8 +/* 0547E0 7F01FCB0 E4D20000 */ swc1 $f18, ($a2) +/* 0547E4 7F01FCB4 C60A0044 */ lwc1 $f10, 0x44($s0) +/* 0547E8 7F01FCB8 C4D20008 */ lwc1 $f18, 8($a2) +/* 0547EC 7F01FCBC 46005182 */ mul.s $f6, $f10, $f0 +/* 0547F0 7F01FCC0 46062200 */ add.s $f8, $f4, $f6 +/* 0547F4 7F01FCC4 E4C80004 */ swc1 $f8, 4($a2) +/* 0547F8 7F01FCC8 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 0547FC 7F01FCCC 46005102 */ mul.s $f4, $f10, $f0 +/* 054800 7F01FCD0 46049180 */ add.s $f6, $f18, $f4 +/* 054804 7F01FCD4 E4C60008 */ swc1 $f6, 8($a2) +/* 054808 7F01FCD8 8FA80038 */ lw $t0, 0x38($sp) +/* 05480C 7F01FCDC C4480000 */ lwc1 $f8, ($v0) +/* 054810 7F01FCE0 C604003C */ lwc1 $f4, 0x3c($s0) +/* 054814 7F01FCE4 C50A00A4 */ lwc1 $f10, 0xa4($t0) +/* 054818 7F01FCE8 460A4482 */ mul.s $f18, $f8, $f10 +/* 05481C 7F01FCEC C6080038 */ lwc1 $f8, 0x38($s0) +/* 054820 7F01FCF0 46122180 */ add.s $f6, $f4, $f18 +/* 054824 7F01FCF4 E606003C */ swc1 $f6, 0x3c($s0) +/* 054828 7F01FCF8 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 05482C 7F01FCFC 460A403C */ c.lt.s $f8, $f10 +/* 054830 7F01FD00 00000000 */ nop +/* 054834 7F01FD04 45000002 */ bc1f .L7F01FD10 +/* 054838 7F01FD08 00000000 */ nop +/* 05483C 7F01FD0C E60C0038 */ swc1 $f12, 0x38($s0) +.L7F01FD10: +/* 054840 7F01FD10 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 054844 7F01FD14 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 054848 7F01FD18 C4520000 */ lwc1 $f18, ($v0) +/* 05484C 7F01FD1C C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 054850 7F01FD20 C6280000 */ lwc1 $f8, ($s1) +/* 054854 7F01FD24 240A0001 */ li $t2, 1 +/* 054858 7F01FD28 46122182 */ mul.s $f6, $f4, $f18 +/* 05485C 7F01FD2C 02002025 */ move $a0, $s0 +/* 054860 7F01FD30 02203825 */ move $a3, $s1 +/* 054864 7F01FD34 46064280 */ add.s $f10, $f8, $f6 +/* 054868 7F01FD38 C6260008 */ lwc1 $f6, 8($s1) +/* 05486C 7F01FD3C E62A0000 */ swc1 $f10, ($s1) +/* 054870 7F01FD40 C4520000 */ lwc1 $f18, ($v0) +/* 054874 7F01FD44 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 054878 7F01FD48 46122202 */ mul.s $f8, $f4, $f18 +/* 05487C 7F01FD4C 46083280 */ add.s $f10, $f6, $f8 +/* 054880 7F01FD50 E62A0008 */ swc1 $f10, 8($s1) +/* 054884 7F01FD54 8E090018 */ lw $t1, 0x18($s0) +/* 054888 7F01FD58 8FA6003C */ lw $a2, 0x3c($sp) +/* 05488C 7F01FD5C 8D250014 */ lw $a1, 0x14($t1) +/* 054890 7F01FD60 AFA30028 */ sw $v1, 0x28($sp) +/* 054894 7F01FD64 0FC07D85 */ jal sub_GAME_7F01F614 +/* 054898 7F01FD68 AFAA0010 */ sw $t2, 0x10($sp) +/* 05489C 7F01FD6C 10400006 */ beqz $v0, .L7F01FD88 +/* 0548A0 7F01FD70 8FA30028 */ lw $v1, 0x28($sp) +/* 0548A4 7F01FD74 8E0B0018 */ lw $t3, 0x18($s0) +/* 0548A8 7F01FD78 240C0001 */ li $t4, 1 +/* 0548AC 7F01FD7C 02201825 */ move $v1, $s1 +/* 0548B0 7F01FD80 AD620014 */ sw $v0, 0x14($t3) +/* 0548B4 7F01FD84 AFAC0030 */ sw $t4, 0x30($sp) +.L7F01FD88: +/* 0548B8 7F01FD88 8E0D0014 */ lw $t5, 0x14($s0) +/* 0548BC 7F01FD8C 31AF1000 */ andi $t7, $t5, 0x1000 +/* 0548C0 7F01FD90 55E0007A */ bnezl $t7, .L7F01FF7C +/* 0548C4 7F01FD94 C60E00AC */ lwc1 $f14, 0xac($s0) +/* 0548C8 7F01FD98 8E180018 */ lw $t8, 0x18($s0) +/* 0548CC 7F01FD9C 8C650000 */ lw $a1, ($v1) +/* 0548D0 7F01FDA0 8C660008 */ lw $a2, 8($v1) +/* 0548D4 7F01FDA4 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0548D8 7F01FDA8 8F040014 */ lw $a0, 0x14($t8) +/* 0548DC 7F01FDAC 8E190014 */ lw $t9, 0x14($s0) +/* 0548E0 7F01FDB0 44806000 */ mtc1 $zero, $f12 +/* 0548E4 7F01FDB4 46000386 */ mov.s $f14, $f0 +/* 0548E8 7F01FDB8 332E0001 */ andi $t6, $t9, 1 +/* 0548EC 7F01FDBC 11C00014 */ beqz $t6, .L7F01FE10 +/* 0548F0 7F01FDC0 E60000AC */ swc1 $f0, 0xac($s0) +/* 0548F4 7F01FDC4 8FA40038 */ lw $a0, 0x38($sp) +/* 0548F8 7F01FDC8 8C880008 */ lw $t0, 8($a0) +/* 0548FC 7F01FDCC 8D050000 */ lw $a1, ($t0) +/* 054900 7F01FDD0 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 054904 7F01FDD4 E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054908 7F01FDD8 8E090014 */ lw $t1, 0x14($s0) +/* 05490C 7F01FDDC C60200AC */ lwc1 $f2, 0xac($s0) +/* 054910 7F01FDE0 2401FFFE */ li $at, -2 +/* 054914 7F01FDE4 C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054918 7F01FDE8 01215024 */ and $t2, $t1, $at +/* 05491C 7F01FDEC AE0A0014 */ sw $t2, 0x14($s0) +/* 054920 7F01FDF0 3C018005 */ lui $at, %hi(D_80051D10) +/* 054924 7F01FDF4 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 054928 7F01FDF8 C4241D10 */ lwc1 $f4, %lo(D_80051D10)($at) +/* 05492C 7F01FDFC 46041483 */ div.s $f18, $f2, $f4 +/* 054930 7F01FE00 E61200A4 */ swc1 $f18, 0xa4($s0) +/* 054934 7F01FE04 C4460028 */ lwc1 $f6, 0x28($v0) +/* 054938 7F01FE08 10000055 */ b .L7F01FF60 +/* 05493C 7F01FE0C E4460038 */ swc1 $f6, 0x38($v0) +.L7F01FE10: +/* 054940 7F01FE10 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 054944 7F01FE14 260400A8 */ addiu $a0, $s0, 0xa8 +/* 054948 7F01FE18 260500B4 */ addiu $a1, $s0, 0xb4 +/* 05494C 7F01FE1C 46086032 */ c.eq.s $f12, $f8 +/* 054950 7F01FE20 3C068005 */ lui $a2, %hi(global_timer_delta) +/* 054954 7F01FE24 45000007 */ bc1f .L7F01FE44 +/* 054958 7F01FE28 00000000 */ nop +/* 05495C 7F01FE2C C60200AC */ lwc1 $f2, 0xac($s0) +/* 054960 7F01FE30 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054964 7F01FE34 4600103C */ c.lt.s $f2, $f0 +/* 054968 7F01FE38 00000000 */ nop +/* 05496C 7F01FE3C 45020013 */ bc1fl .L7F01FE8C +/* 054970 7F01FE40 4602003E */ c.le.s $f0, $f2 +.L7F01FE44: +/* 054974 7F01FE44 8CC68378 */ lw $a2, %lo(global_timer_delta)($a2) +/* 054978 7F01FE48 0FC15F51 */ jal sub_GAME_7F057D44 +/* 05497C 7F01FE4C E7AE002C */ swc1 $f14, 0x2c($sp) +/* 054980 7F01FE50 C60200AC */ lwc1 $f2, 0xac($s0) +/* 054984 7F01FE54 C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 054988 7F01FE58 44806000 */ mtc1 $zero, $f12 +/* 05498C 7F01FE5C C7AE002C */ lwc1 $f14, 0x2c($sp) +/* 054990 7F01FE60 4602003E */ c.le.s $f0, $f2 +/* 054994 7F01FE64 3C018005 */ lui $at, %hi(D_80051D14) +/* 054998 7F01FE68 45020008 */ bc1fl .L7F01FE8C +/* 05499C 7F01FE6C 4602003E */ c.le.s $f0, $f2 +/* 0549A0 7F01FE70 E60200A8 */ swc1 $f2, 0xa8($s0) +/* 0549A4 7F01FE74 C42A1D14 */ lwc1 $f10, %lo(D_80051D14)($at) +/* 0549A8 7F01FE78 E60C00B4 */ swc1 $f12, 0xb4($s0) +/* 0549AC 7F01FE7C C60000A8 */ lwc1 $f0, 0xa8($s0) +/* 0549B0 7F01FE80 460A1103 */ div.s $f4, $f2, $f10 +/* 0549B4 7F01FE84 E60400A4 */ swc1 $f4, 0xa4($s0) +/* 0549B8 7F01FE88 4602003E */ c.le.s $f0, $f2 +.L7F01FE8C: +/* 0549BC 7F01FE8C 3C038005 */ lui $v1, %hi(clock_timer) +/* 0549C0 7F01FE90 24638374 */ addiu $v1, %lo(clock_timer) # addiu $v1, $v1, -0x7c8c +/* 0549C4 7F01FE94 45020033 */ bc1fl .L7F01FF64 +/* 0549C8 7F01FE98 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 0549CC 7F01FE9C 8C6B0000 */ lw $t3, ($v1) +/* 0549D0 7F01FEA0 00001025 */ move $v0, $zero +/* 0549D4 7F01FEA4 3C018005 */ lui $at, %hi(D_80051D18) +/* 0549D8 7F01FEA8 19600011 */ blez $t3, .L7F01FEF0 +/* 0549DC 7F01FEAC 00000000 */ nop +/* 0549E0 7F01FEB0 C4201D18 */ lwc1 $f0, %lo(D_80051D18)($at) +/* 0549E4 7F01FEB4 C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEB8: +/* 0549E8 7F01FEB8 C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 0549EC 7F01FEBC 24420001 */ addiu $v0, $v0, 1 +/* 0549F0 7F01FEC0 46009182 */ mul.s $f6, $f18, $f0 +/* 0549F4 7F01FEC4 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 0549F8 7F01FEC8 46005102 */ mul.s $f4, $f10, $f0 +/* 0549FC 7F01FECC 46023200 */ add.s $f8, $f6, $f2 +/* 054A00 7F01FED0 46009182 */ mul.s $f6, $f18, $f0 +/* 054A04 7F01FED4 E60400B0 */ swc1 $f4, 0xb0($s0) +/* 054A08 7F01FED8 E60800A4 */ swc1 $f8, 0xa4($s0) +/* 054A0C 7F01FEDC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 054A10 7F01FEE0 8C6C0000 */ lw $t4, ($v1) +/* 054A14 7F01FEE4 004C082A */ slt $at, $v0, $t4 +/* 054A18 7F01FEE8 5420FFF3 */ bnezl $at, .L7F01FEB8 +/* 054A1C 7F01FEEC C61200A4 */ lwc1 $f18, 0xa4($s0) +.L7F01FEF0: +/* 054A20 7F01FEF0 3C018005 */ lui $at, %hi(D_80051D1C) +/* 054A24 7F01FEF4 C4221D1C */ lwc1 $f2, %lo(D_80051D1C)($at) +/* 054A28 7F01FEF8 3C018005 */ lui $at, %hi(D_80051D20) +/* 054A2C 7F01FEFC C42A1D20 */ lwc1 $f10, %lo(D_80051D20)($at) +/* 054A30 7F01FF00 C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 054A34 7F01FF04 C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 054A38 7F01FF08 3C018005 */ lui $at, %hi(D_80051D24) +/* 054A3C 7F01FF0C 460A4102 */ mul.s $f4, $f8, $f10 +/* 054A40 7F01FF10 4602003C */ c.lt.s $f0, $f2 +/* 054A44 7F01FF14 00000000 */ nop +/* 054A48 7F01FF18 45000011 */ bc1f .L7F01FF60 +/* 054A4C 7F01FF1C E60400A8 */ swc1 $f4, 0xa8($s0) +/* 054A50 7F01FF20 C4301D24 */ lwc1 $f16, %lo(D_80051D24)($at) +/* 054A54 7F01FF24 4600803C */ c.lt.s $f16, $f0 +/* 054A58 7F01FF28 00000000 */ nop +/* 054A5C 7F01FF2C 4502000D */ bc1fl .L7F01FF64 +/* 054A60 7F01FF30 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A64 7F01FF34 C60000B8 */ lwc1 $f0, 0xb8($s0) +/* 054A68 7F01FF38 4602003C */ c.lt.s $f0, $f2 +/* 054A6C 7F01FF3C 00000000 */ nop +/* 054A70 7F01FF40 45020008 */ bc1fl .L7F01FF64 +/* 054A74 7F01FF44 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A78 7F01FF48 4600803C */ c.lt.s $f16, $f0 +/* 054A7C 7F01FF4C 00000000 */ nop +/* 054A80 7F01FF50 45020004 */ bc1fl .L7F01FF64 +/* 054A84 7F01FF54 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 054A88 7F01FF58 E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 054A8C 7F01FF5C E60C00B0 */ swc1 $f12, 0xb0($s0) +.L7F01FF60: +/* 054A90 7F01FF60 C60600A8 */ lwc1 $f6, 0xa8($s0) +.L7F01FF64: +/* 054A94 7F01FF64 C6320004 */ lwc1 $f18, 4($s1) +/* 054A98 7F01FF68 460E3201 */ sub.s $f8, $f6, $f14 +/* 054A9C 7F01FF6C 46089280 */ add.s $f10, $f18, $f8 +/* 054AA0 7F01FF70 10000002 */ b .L7F01FF7C +/* 054AA4 7F01FF74 E62A0004 */ swc1 $f10, 4($s1) +/* 054AA8 7F01FF78 C60E00AC */ lwc1 $f14, 0xac($s0) +.L7F01FF7C: +/* 054AAC 7F01FF7C 8FAD0044 */ lw $t5, 0x44($sp) +.L7F01FF80: +/* 054AB0 7F01FF80 24020001 */ li $v0, 1 +/* 054AB4 7F01FF84 E5AE0000 */ swc1 $f14, ($t5) +/* 054AB8 7F01FF88 8FAF0030 */ lw $t7, 0x30($sp) +/* 054ABC 7F01FF8C 8FB8003C */ lw $t8, 0x3c($sp) +/* 054AC0 7F01FF90 55E00007 */ bnezl $t7, .L7F01FFB0 +/* 054AC4 7F01FF94 8FBF0024 */ lw $ra, 0x24($sp) +/* 054AC8 7F01FF98 C7040000 */ lwc1 $f4, ($t8) +/* 054ACC 7F01FF9C E6240000 */ swc1 $f4, ($s1) +/* 054AD0 7F01FFA0 8FB9003C */ lw $t9, 0x3c($sp) +/* 054AD4 7F01FFA4 C7260008 */ lwc1 $f6, 8($t9) +/* 054AD8 7F01FFA8 E6260008 */ swc1 $f6, 8($s1) +/* 054ADC 7F01FFAC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F01FFB0: +/* 054AE0 7F01FFB0 8FB0001C */ lw $s0, 0x1c($sp) +/* 054AE4 7F01FFB4 8FB10020 */ lw $s1, 0x20($sp) +/* 054AE8 7F01FFB8 03E00008 */ jr $ra +/* 054AEC 7F01FFBC 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + #endif s32 chrGetNumFree(void) @@ -2780,6 +3100,73 @@ glabel sub_GAME_7F0205F0 /* 055200 7F0206D0 00000000 */ nop ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F0205F0 +/* 055120 7F0205F0 8082000E */ lb $v0, 0xe($a0) +/* 055124 7F0205F4 28410002 */ slti $at, $v0, 2 +/* 055128 7F0205F8 5420002D */ bnezl $at, .L7F0206B0 +/* 05512C 7F0205FC C4920150 */ lwc1 $f18, 0x150($a0) +/* 055130 7F020600 44823000 */ mtc1 $v0, $f6 +/* 055134 7F020604 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055138 7F020608 44811000 */ mtc1 $at, $f2 +/* 05513C 7F02060C 46803220 */ cvt.s.w $f8, $f6 +/* 055140 7F020610 3C018005 */ lui $at, %hi(global_timer_delta) +/* 055144 7F020614 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 055148 7F020618 46082003 */ div.s $f0, $f4, $f8 +/* 05514C 7F02061C 4600103C */ c.lt.s $f2, $f0 +/* 055150 7F020620 00000000 */ nop +/* 055154 7F020624 45020003 */ bc1fl .L7F020634 +/* 055158 7F020628 C4820140 */ lwc1 $f2, 0x140($a0) +/* 05515C 7F02062C 46001006 */ mov.s $f0, $f2 +/* 055160 7F020630 C4820140 */ lwc1 $f2, 0x140($a0) +.L7F020634: +/* 055164 7F020634 C48A0150 */ lwc1 $f10, 0x150($a0) +/* 055168 7F020638 C48C0144 */ lwc1 $f12, 0x144($a0) +/* 05516C 7F02063C C4880154 */ lwc1 $f8, 0x154($a0) +/* 055170 7F020640 46025481 */ sub.s $f18, $f10, $f2 +/* 055174 7F020644 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055178 7F020648 C490014C */ lwc1 $f16, 0x14c($a0) +/* 05517C 7F02064C 460C4281 */ sub.s $f10, $f8, $f12 +/* 055180 7F020650 46009182 */ mul.s $f6, $f18, $f0 +/* 055184 7F020654 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 055188 7F020658 808E000E */ lb $t6, 0xe($a0) +/* 05518C 7F02065C 46005482 */ mul.s $f18, $f10, $f0 +/* 055190 7F020660 46061100 */ add.s $f4, $f2, $f6 +/* 055194 7F020664 46126180 */ add.s $f6, $f12, $f18 +/* 055198 7F020668 E4840140 */ swc1 $f4, 0x140($a0) +/* 05519C 7F02066C C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551A0 7F020670 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551A4 7F020674 460E2201 */ sub.s $f8, $f4, $f14 +/* 0551A8 7F020678 C486015C */ lwc1 $f6, 0x15c($a0) +/* 0551AC 7F02067C 46103101 */ sub.s $f4, $f6, $f16 +/* 0551B0 7F020680 46004282 */ mul.s $f10, $f8, $f0 +/* 0551B4 7F020684 00000000 */ nop +/* 0551B8 7F020688 46002202 */ mul.s $f8, $f4, $f0 +/* 0551BC 7F02068C 460A7480 */ add.s $f18, $f14, $f10 +/* 0551C0 7F020690 46088280 */ add.s $f10, $f16, $f8 +/* 0551C4 7F020694 E4920148 */ swc1 $f18, 0x148($a0) +/* 0551C8 7F020698 E48A014C */ swc1 $f10, 0x14c($a0) +/* 0551CC 7F02069C 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0551D0 7F0206A0 01CFC023 */ subu $t8, $t6, $t7 +/* 0551D4 7F0206A4 03E00008 */ jr $ra +/* 0551D8 7F0206A8 A098000E */ sb $t8, 0xe($a0) + +/* 0551DC 7F0206AC C4920150 */ lwc1 $f18, 0x150($a0) +.L7F0206B0: +/* 0551E0 7F0206B0 C4860154 */ lwc1 $f6, 0x154($a0) +/* 0551E4 7F0206B4 C4840158 */ lwc1 $f4, 0x158($a0) +/* 0551E8 7F0206B8 C488015C */ lwc1 $f8, 0x15c($a0) +/* 0551EC 7F0206BC E4920140 */ swc1 $f18, 0x140($a0) +/* 0551F0 7F0206C0 E4860144 */ swc1 $f6, 0x144($a0) +/* 0551F4 7F0206C4 E4840148 */ swc1 $f4, 0x148($a0) +/* 0551F8 7F0206C8 E488014C */ swc1 $f8, 0x14c($a0) +/* 0551FC 7F0206CC 03E00008 */ jr $ra +/* 055200 7F0206D0 00000000 */ nop +) +#endif + #endif @@ -2802,7 +3189,7 @@ glabel sub_GAME_7F0206D4 /* 055220 7F0206F0 A08F0011 */ sb $t7, 0x11($a0) /* 055224 7F0206F4 33190FFF */ andi $t9, $t8, 0xfff /* 055228 7F0206F8 A4990012 */ sh $t9, 0x12($a0) -/* 05522C 7F0206FC 0C002914 */ jal get_random_value +/* 05522C 7F0206FC 0C002914 */ jal randomGetNext /* 055230 7F020700 AFA40018 */ sw $a0, 0x18($sp) /* 055234 7F020704 24010003 */ li $at, 3 /* 055238 7F020708 0041001B */ divu $zero, $v0, $at @@ -2821,7 +3208,7 @@ glabel sub_GAME_7F0206D4 /* 055268 7F020738 354B2000 */ ori $t3, $t2, 0x2000 /* 05526C 7F02073C A48B0012 */ sh $t3, 0x12($a0) .L7F020740: -/* 055270 7F020740 0C002914 */ jal get_random_value +/* 055270 7F020740 0C002914 */ jal randomGetNext /* 055274 7F020744 AFA40018 */ sw $a0, 0x18($sp) /* 055278 7F020748 24010003 */ li $at, 3 /* 05527C 7F02074C 0041001B */ divu $zero, $v0, $at @@ -3750,6 +4137,387 @@ glabel sub_GAME_7F02083C /* 055B94 7F021024 03E00008 */ jr $ra /* 055B98 7F021028 00000000 */ nop +) +#endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F02083C +/* 05536C 7F02083C 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 055370 7F020840 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 055374 7F020844 44812000 */ mtc1 $at, $f4 +/* 055378 7F020848 AFBF0014 */ sw $ra, 0x14($sp) +/* 05537C 7F02084C 00803025 */ move $a2, $a0 +/* 055380 7F020850 AFA5009C */ sw $a1, 0x9c($sp) +/* 055384 7F020854 AFA60098 */ sw $a2, 0x98($sp) +/* 055388 7F020858 2404000C */ li $a0, 12 +/* 05538C 7F02085C 0FC249EF */ jal cheatCheckIfOn +/* 055390 7F020860 E7A40094 */ swc1 $f4, 0x94($sp) +/* 055394 7F020864 1040000E */ beqz $v0, .L7F0208A0 +/* 055398 7F020868 8FA60098 */ lw $a2, 0x98($sp) +/* 05539C 7F02086C 14C00005 */ bnez $a2, .L7F020884 +/* 0553A0 7F020870 24030002 */ li $v1, 2 +/* 0553A4 7F020874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0553A8 7F020878 44813000 */ mtc1 $at, $f6 +/* 0553AC 7F02087C 10000008 */ b .L7F0208A0 +/* 0553B0 7F020880 E7A60094 */ swc1 $f6, 0x94($sp) +.L7F020884: +/* 0553B4 7F020884 10C30002 */ beq $a2, $v1, .L7F020890 +/* 0553B8 7F020888 24050003 */ li $a1, 3 +/* 0553BC 7F02088C 14C50004 */ bne $a2, $a1, .L7F0208A0 +.L7F020890: +/* 0553C0 7F020890 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0553C4 7F020894 44814000 */ mtc1 $at, $f8 +/* 0553C8 7F020898 00000000 */ nop +/* 0553CC 7F02089C E7A80094 */ swc1 $f8, 0x94($sp) +.L7F0208A0: +/* 0553D0 7F0208A0 24030002 */ li $v1, 2 +/* 0553D4 7F0208A4 10C30007 */ beq $a2, $v1, .L7F0208C4 +/* 0553D8 7F0208A8 24050003 */ li $a1, 3 +/* 0553DC 7F0208AC 10C50005 */ beq $a2, $a1, .L7F0208C4 +/* 0553E0 7F0208B0 24070001 */ li $a3, 1 +/* 0553E4 7F0208B4 50C70004 */ beql $a2, $a3, .L7F0208C8 +/* 0553E8 7F0208B8 44809000 */ mtc1 $zero, $f18 +/* 0553EC 7F0208BC 54C00132 */ bnezl $a2, .L7F020D88 +/* 0553F0 7F0208C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0208C4: +/* 0553F4 7F0208C4 44809000 */ mtc1 $zero, $f18 +.L7F0208C8: +/* 0553F8 7F0208C8 24070001 */ li $a3, 1 +/* 0553FC 7F0208CC 3C0E8007 */ lui $t6, %hi(dword_CODE_bss_80069B60) +/* 055400 7F0208D0 46009386 */ mov.s $f14, $f18 +/* 055404 7F0208D4 46009306 */ mov.s $f12, $f18 +/* 055408 7F0208D8 14C50004 */ bne $a2, $a1, .L7F0208EC +/* 05540C 7F0208DC E7B20088 */ swc1 $f18, 0x88($sp) +/* 055410 7F0208E0 8DCE9B60 */ lw $t6, %lo(dword_CODE_bss_80069B60)($t6) +/* 055414 7F0208E4 10000043 */ b .L7F0209F4 +/* 055418 7F0208E8 C5CE0144 */ lwc1 $f14, 0x144($t6) +.L7F0208EC: +/* 05541C 7F0208EC 14C30004 */ bne $a2, $v1, .L7F020900 +/* 055420 7F0208F0 3C0F8007 */ lui $t7, %hi(dword_CODE_bss_80069B60) +/* 055424 7F0208F4 8DEF9B60 */ lw $t7, %lo(dword_CODE_bss_80069B60)($t7) +/* 055428 7F0208F8 1000003E */ b .L7F0209F4 +/* 05542C 7F0208FC C5EE0140 */ lwc1 $f14, 0x140($t7) +.L7F020900: +/* 055430 7F020900 14C7001C */ bne $a2, $a3, .L7F020974 +/* 055434 7F020904 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055438 7F020908 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05543C 7F02090C 3C018005 */ lui $at, %hi(D_80051D30) +/* 055440 7F020910 94980012 */ lhu $t8, 0x12($a0) +/* 055444 7F020914 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 055448 7F020918 33190400 */ andi $t9, $t8, 0x400 +/* 05544C 7F02091C 13200013 */ beqz $t9, .L7F02096C +/* 055450 7F020920 00000000 */ nop +/* 055454 7F020924 C4201D30 */ lwc1 $f0, %lo(D_80051D30)($at) +/* 055458 7F020928 3C018005 */ lui $at, %hi(D_80051D34) +/* 05545C 7F02092C 460E003C */ c.lt.s $f0, $f14 +/* 055460 7F020930 00000000 */ nop +/* 055464 7F020934 45000003 */ bc1f .L7F020944 +/* 055468 7F020938 00000000 */ nop +/* 05546C 7F02093C 1000000B */ b .L7F02096C +/* 055470 7F020940 46007381 */ sub.s $f14, $f14, $f0 +.L7F020944: +/* 055474 7F020944 C4201D34 */ lwc1 $f0, %lo(D_80051D34)($at) +/* 055478 7F020948 3C018005 */ lui $at, %hi(D_80051D38) +/* 05547C 7F02094C 4600703C */ c.lt.s $f14, $f0 +/* 055480 7F020950 00000000 */ nop +/* 055484 7F020954 45020005 */ bc1fl .L7F02096C +/* 055488 7F020958 46009386 */ mov.s $f14, $f18 +/* 05548C 7F02095C C42A1D38 */ lwc1 $f10, %lo(D_80051D38)($at) +/* 055490 7F020960 10000002 */ b .L7F02096C +/* 055494 7F020964 460A7380 */ add.s $f14, $f14, $f10 +/* 055498 7F020968 46009386 */ mov.s $f14, $f18 +.L7F02096C: +/* 05549C 7F02096C 10000021 */ b .L7F0209F4 +/* 0554A0 7F020970 C48C014C */ lwc1 $f12, 0x14c($a0) +.L7F020974: +/* 0554A4 7F020974 14C0001F */ bnez $a2, .L7F0209F4 +/* 0554A8 7F020978 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0554AC 7F02097C 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0554B0 7F020980 94820012 */ lhu $v0, 0x12($a0) +/* 0554B4 7F020984 30480400 */ andi $t0, $v0, 0x400 +/* 0554B8 7F020988 51000014 */ beql $t0, $zero, .L7F0209DC +/* 0554BC 7F02098C 8C89001C */ lw $t1, 0x1c($a0) +/* 0554C0 7F020990 11000018 */ beqz $t0, .L7F0209F4 +/* 0554C4 7F020994 C48E0148 */ lwc1 $f14, 0x148($a0) +/* 0554C8 7F020998 3C018005 */ lui $at, %hi(D_80051D3C) +/* 0554CC 7F02099C C4201D3C */ lwc1 $f0, %lo(D_80051D3C)($at) +/* 0554D0 7F0209A0 3C018005 */ lui $at, %hi(D_80051D40) +/* 0554D4 7F0209A4 460E003C */ c.lt.s $f0, $f14 +/* 0554D8 7F0209A8 00000000 */ nop +/* 0554DC 7F0209AC 45000003 */ bc1f .L7F0209BC +/* 0554E0 7F0209B0 00000000 */ nop +/* 0554E4 7F0209B4 1000000F */ b .L7F0209F4 +/* 0554E8 7F0209B8 46000386 */ mov.s $f14, $f0 +.L7F0209BC: +/* 0554EC 7F0209BC C4201D40 */ lwc1 $f0, %lo(D_80051D40)($at) +/* 0554F0 7F0209C0 4600703C */ c.lt.s $f14, $f0 +/* 0554F4 7F0209C4 00000000 */ nop +/* 0554F8 7F0209C8 4500000A */ bc1f .L7F0209F4 +/* 0554FC 7F0209CC 00000000 */ nop +/* 055500 7F0209D0 10000008 */ b .L7F0209F4 +/* 055504 7F0209D4 46000386 */ mov.s $f14, $f0 +/* 055508 7F0209D8 8C89001C */ lw $t1, 0x1c($a0) +.L7F0209DC: +/* 05550C 7F0209DC 812A0024 */ lb $t2, 0x24($t1) +/* 055510 7F0209E0 51400004 */ beql $t2, $zero, .L7F0209F4 +/* 055514 7F0209E4 C48E0144 */ lwc1 $f14, 0x144($a0) +/* 055518 7F0209E8 10000002 */ b .L7F0209F4 +/* 05551C 7F0209EC C48E0140 */ lwc1 $f14, 0x140($a0) +/* 055520 7F0209F0 C48E0144 */ lwc1 $f14, 0x144($a0) +.L7F0209F4: +/* 055524 7F0209F4 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055528 7F0209F8 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 05552C 7F0209FC 808B0011 */ lb $t3, 0x11($a0) +/* 055530 7F020A00 05620055 */ bltzl $t3, .L7F020B58 +/* 055534 7F020A04 46127032 */ c.eq.s $f14, $f18 +/* 055538 7F020A08 50C50004 */ beql $a2, $a1, .L7F020A1C +/* 05553C 7F020A0C E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055540 7F020A10 14C3001D */ bne $a2, $v1, .L7F020A88 +/* 055544 7F020A14 00000000 */ nop +/* 055548 7F020A18 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020A1C: +/* 05554C 7F020A1C 0FC081E5 */ jal sub_GAME_7F020794 +/* 055550 7F020A20 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055554 7F020A24 3C018005 */ lui $at, %hi(D_80051D44) +/* 055558 7F020A28 C4241D44 */ lwc1 $f4, %lo(D_80051D44)($at) +/* 05555C 7F020A2C 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 055560 7F020A30 44814000 */ mtc1 $at, $f8 +/* 055564 7F020A34 46040182 */ mul.s $f6, $f0, $f4 +/* 055568 7F020A38 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 05556C 7F020A3C 44812000 */ mtc1 $at, $f4 +/* 055570 7F020A40 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 055574 7F020A44 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 055578 7F020A48 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 05557C 7F020A4C 44809000 */ mtc1 $zero, $f18 +/* 055580 7F020A50 46083282 */ mul.s $f10, $f6, $f8 +/* 055584 7F020A54 94820012 */ lhu $v0, 0x12($a0) +/* 055588 7F020A58 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 05558C 7F020A5C 304C1000 */ andi $t4, $v0, 0x1000 +/* 055590 7F020A60 304D2000 */ andi $t5, $v0, 0x2000 +/* 055594 7F020A64 46045083 */ div.s $f2, $f10, $f4 +/* 055598 7F020A68 11800003 */ beqz $t4, .L7F020A78 +/* 05559C 7F020A6C 46027381 */ sub.s $f14, $f14, $f2 +/* 0555A0 7F020A70 10000038 */ b .L7F020B54 +/* 0555A4 7F020A74 46026301 */ sub.s $f12, $f12, $f2 +.L7F020A78: +/* 0555A8 7F020A78 51A00037 */ beql $t5, $zero, .L7F020B58 +/* 0555AC 7F020A7C 46127032 */ c.eq.s $f14, $f18 +/* 0555B0 7F020A80 10000034 */ b .L7F020B54 +/* 0555B4 7F020A84 46026300 */ add.s $f12, $f12, $f2 +.L7F020A88: +/* 0555B8 7F020A88 54C70033 */ bnel $a2, $a3, .L7F020B58 +/* 0555BC 7F020A8C 46127032 */ c.eq.s $f14, $f18 +/* 0555C0 7F020A90 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0555C4 7F020A94 0FC081E5 */ jal sub_GAME_7F020794 +/* 0555C8 7F020A98 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0555CC 7F020A9C 3C018005 */ lui $at, %hi(D_80051D48) +/* 0555D0 7F020AA0 C4261D48 */ lwc1 $f6, %lo(D_80051D48)($at) +/* 0555D4 7F020AA4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0555D8 7F020AA8 44814000 */ mtc1 $at, $f8 +/* 0555DC 7F020AAC 46060402 */ mul.s $f16, $f0, $f6 +/* 0555E0 7F020AB0 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0555E4 7F020AB4 44812000 */ mtc1 $at, $f4 +/* 0555E8 7F020AB8 3C048007 */ lui $a0, %hi(dword_CODE_bss_80069B60) +/* 0555EC 7F020ABC 8C849B60 */ lw $a0, %lo(dword_CODE_bss_80069B60)($a0) +/* 0555F0 7F020AC0 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0555F4 7F020AC4 44809000 */ mtc1 $zero, $f18 +/* 0555F8 7F020AC8 46088282 */ mul.s $f10, $f16, $f8 +/* 0555FC 7F020ACC 94820012 */ lhu $v0, 0x12($a0) +/* 055600 7F020AD0 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055604 7F020AD4 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055608 7F020AD8 304E1000 */ andi $t6, $v0, 0x1000 +/* 05560C 7F020ADC 304F2000 */ andi $t7, $v0, 0x2000 +/* 055610 7F020AE0 30584000 */ andi $t8, $v0, 0x4000 +/* 055614 7F020AE4 46045083 */ div.s $f2, $f10, $f4 +/* 055618 7F020AE8 30598000 */ andi $t9, $v0, 0x8000 +/* 05561C 7F020AEC 11C00003 */ beqz $t6, .L7F020AFC +/* 055620 7F020AF0 46027380 */ add.s $f14, $f14, $f2 +/* 055624 7F020AF4 10000004 */ b .L7F020B08 +/* 055628 7F020AF8 46026300 */ add.s $f12, $f12, $f2 +.L7F020AFC: +/* 05562C 7F020AFC 11E00002 */ beqz $t7, .L7F020B08 +/* 055630 7F020B00 00000000 */ nop +/* 055634 7F020B04 46026301 */ sub.s $f12, $f12, $f2 +.L7F020B08: +/* 055638 7F020B08 13000009 */ beqz $t8, .L7F020B30 +/* 05563C 7F020B0C 00000000 */ nop +/* 055640 7F020B10 44813000 */ mtc1 $at, $f6 +/* 055644 7F020B14 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055648 7F020B18 44815000 */ mtc1 $at, $f10 +/* 05564C 7F020B1C 46068202 */ mul.s $f8, $f16, $f6 +/* 055650 7F020B20 460A4103 */ div.s $f4, $f8, $f10 +/* 055654 7F020B24 46049180 */ add.s $f6, $f18, $f4 +/* 055658 7F020B28 1000000A */ b .L7F020B54 +/* 05565C 7F020B2C E7A60088 */ swc1 $f6, 0x88($sp) +.L7F020B30: +/* 055660 7F020B30 13200008 */ beqz $t9, .L7F020B54 +/* 055664 7F020B34 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 055668 7F020B38 44814000 */ mtc1 $at, $f8 +/* 05566C 7F020B3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 055670 7F020B40 44812000 */ mtc1 $at, $f4 +/* 055674 7F020B44 46088282 */ mul.s $f10, $f16, $f8 +/* 055678 7F020B48 46045183 */ div.s $f6, $f10, $f4 +/* 05567C 7F020B4C 46069201 */ sub.s $f8, $f18, $f6 +/* 055680 7F020B50 E7A80088 */ swc1 $f8, 0x88($sp) +.L7F020B54: +/* 055684 7F020B54 46127032 */ c.eq.s $f14, $f18 +.L7F020B58: +/* 055688 7F020B58 00000000 */ nop +/* 05568C 7F020B5C 45020011 */ bc1fl .L7F020BA4 +/* 055690 7F020B60 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 055694 7F020B64 46126032 */ c.eq.s $f12, $f18 +/* 055698 7F020B68 C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 05569C 7F020B6C 4502000D */ bc1fl .L7F020BA4 +/* 0556A0 7F020B70 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556A4 7F020B74 46125032 */ c.eq.s $f10, $f18 +/* 0556A8 7F020B78 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 0556AC 7F020B7C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0556B0 7F020B80 45020008 */ bc1fl .L7F020BA4 +/* 0556B4 7F020B84 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 0556B8 7F020B88 44813000 */ mtc1 $at, $f6 +/* 0556BC 7F020B8C 00000000 */ nop +/* 0556C0 7F020B90 46062032 */ c.eq.s $f4, $f6 +/* 0556C4 7F020B94 00000000 */ nop +/* 0556C8 7F020B98 4503007B */ bc1tl .L7F020D88 +/* 0556CC 7F020B9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0556D0 7F020BA0 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BA4: +/* 0556D4 7F020BA4 0FC0B064 */ jal sub_GAME_7F02C190 +/* 0556D8 7F020BA8 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0556DC 7F020BAC C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0556E0 7F020BB0 44809000 */ mtc1 $zero, $f18 +/* 0556E4 7F020BB4 C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 0556E8 7F020BB8 E7A00070 */ swc1 $f0, 0x70($sp) +/* 0556EC 7F020BBC 4612703C */ c.lt.s $f14, $f18 +/* 0556F0 7F020BC0 3C018005 */ lui $at, %hi(D_80051D4C) +/* 0556F4 7F020BC4 45000003 */ bc1f .L7F020BD4 +/* 0556F8 7F020BC8 00000000 */ nop +/* 0556FC 7F020BCC 10000003 */ b .L7F020BDC +/* 055700 7F020BD0 46007387 */ neg.s $f14, $f14 +.L7F020BD4: +/* 055704 7F020BD4 C4281D4C */ lwc1 $f8, %lo(D_80051D4C)($at) +/* 055708 7F020BD8 460E4381 */ sub.s $f14, $f8, $f14 +.L7F020BDC: +/* 05570C 7F020BDC 4612603C */ c.lt.s $f12, $f18 +/* 055710 7F020BE0 3C018005 */ lui $at, %hi(D_80051D50) +/* 055714 7F020BE4 45020004 */ bc1fl .L7F020BF8 +/* 055718 7F020BE8 E7AC008C */ swc1 $f12, 0x8c($sp) +/* 05571C 7F020BEC C42A1D50 */ lwc1 $f10, %lo(D_80051D50)($at) +/* 055720 7F020BF0 460A6300 */ add.s $f12, $f12, $f10 +/* 055724 7F020BF4 E7AC008C */ swc1 $f12, 0x8c($sp) +.L7F020BF8: +/* 055728 7F020BF8 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 05572C 7F020BFC E7AE0090 */ swc1 $f14, 0x90($sp) +/* 055730 7F020C00 00402025 */ move $a0, $v0 +/* 055734 7F020C04 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055738 7F020C08 8FA5009C */ lw $a1, 0x9c($sp) +/* 05573C 7F020C0C 8FA2009C */ lw $v0, 0x9c($sp) +/* 055740 7F020C10 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 055744 7F020C14 44809000 */ mtc1 $zero, $f18 +/* 055748 7F020C18 C4440030 */ lwc1 $f4, 0x30($v0) +/* 05574C 7F020C1C C7AC008C */ lwc1 $f12, 0x8c($sp) +/* 055750 7F020C20 46127032 */ c.eq.s $f14, $f18 +/* 055754 7F020C24 E7A40074 */ swc1 $f4, 0x74($sp) +/* 055758 7F020C28 C4460034 */ lwc1 $f6, 0x34($v0) +/* 05575C 7F020C2C 27A50030 */ addiu $a1, $sp, 0x30 +/* 055760 7F020C30 E7A60078 */ swc1 $f6, 0x78($sp) +/* 055764 7F020C34 C4480038 */ lwc1 $f8, 0x38($v0) +/* 055768 7F020C38 E7A8007C */ swc1 $f8, 0x7c($sp) +/* 05576C 7F020C3C E4520030 */ swc1 $f18, 0x30($v0) +/* 055770 7F020C40 E4520034 */ swc1 $f18, 0x34($v0) +/* 055774 7F020C44 45000006 */ bc1f .L7F020C60 +/* 055778 7F020C48 E4520038 */ swc1 $f18, 0x38($v0) +/* 05577C 7F020C4C C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 055780 7F020C50 46125032 */ c.eq.s $f10, $f18 +/* 055784 7F020C54 00000000 */ nop +/* 055788 7F020C58 45010030 */ bc1t .L7F020D1C +/* 05578C 7F020C5C 00000000 */ nop +.L7F020C60: +/* 055790 7F020C60 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 055794 7F020C64 3C018005 */ lui $at, %hi(D_80051D54) +/* 055798 7F020C68 46046301 */ sub.s $f12, $f12, $f4 +/* 05579C 7F020C6C 4612603C */ c.lt.s $f12, $f18 +/* 0557A0 7F020C70 00000000 */ nop +/* 0557A4 7F020C74 45000003 */ bc1f .L7F020C84 +/* 0557A8 7F020C78 00000000 */ nop +/* 0557AC 7F020C7C C4261D54 */ lwc1 $f6, %lo(D_80051D54)($at) +/* 0557B0 7F020C80 46066300 */ add.s $f12, $f12, $f6 +.L7F020C84: +/* 0557B4 7F020C84 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0557B8 7F020C88 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 0557BC 7F020C8C 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557C0 7F020C90 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557C4 7F020C94 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557C8 7F020C98 C7AE0090 */ lwc1 $f14, 0x90($sp) +/* 0557CC 7F020C9C 44809000 */ mtc1 $zero, $f18 +/* 0557D0 7F020CA0 27A50030 */ addiu $a1, $sp, 0x30 +/* 0557D4 7F020CA4 46127032 */ c.eq.s $f14, $f18 +/* 0557D8 7F020CA8 00000000 */ nop +/* 0557DC 7F020CAC 45030009 */ bc1tl .L7F020CD4 +/* 0557E0 7F020CB0 C7A80088 */ lwc1 $f8, 0x88($sp) +/* 0557E4 7F020CB4 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0557E8 7F020CB8 46007306 */ mov.s $f12, $f14 +/* 0557EC 7F020CBC 27A40030 */ addiu $a0, $sp, 0x30 +/* 0557F0 7F020CC0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0557F4 7F020CC4 8FA5009C */ lw $a1, 0x9c($sp) +/* 0557F8 7F020CC8 44809000 */ mtc1 $zero, $f18 +/* 0557FC 7F020CCC 00000000 */ nop +/* 055800 7F020CD0 C7A80088 */ lwc1 $f8, 0x88($sp) +.L7F020CD4: +/* 055804 7F020CD4 27A50030 */ addiu $a1, $sp, 0x30 +/* 055808 7F020CD8 46124032 */ c.eq.s $f8, $f18 +/* 05580C 7F020CDC 00000000 */ nop +/* 055810 7F020CE0 45030007 */ bc1tl .L7F020D00 +/* 055814 7F020CE4 C7AC0070 */ lwc1 $f12, 0x70($sp) +/* 055818 7F020CE8 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 05581C 7F020CEC 46004306 */ mov.s $f12, $f8 +/* 055820 7F020CF0 27A40030 */ addiu $a0, $sp, 0x30 +/* 055824 7F020CF4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055828 7F020CF8 8FA5009C */ lw $a1, 0x9c($sp) +/* 05582C 7F020CFC C7AC0070 */ lwc1 $f12, 0x70($sp) +.L7F020D00: +/* 055830 7F020D00 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055834 7F020D04 27A50030 */ addiu $a1, $sp, 0x30 +/* 055838 7F020D08 27A40030 */ addiu $a0, $sp, 0x30 +/* 05583C 7F020D0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 055840 7F020D10 8FA5009C */ lw $a1, 0x9c($sp) +/* 055844 7F020D14 10000007 */ b .L7F020D34 +/* 055848 7F020D18 3C013F80 */ lui $at, 0x3f80 +.L7F020D1C: +/* 05584C 7F020D1C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 055850 7F020D20 27A50030 */ addiu $a1, $sp, 0x30 +/* 055854 7F020D24 27A40030 */ addiu $a0, $sp, 0x30 +/* 055858 7F020D28 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 05585C 7F020D2C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055860 7F020D30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F020D34: +/* 055864 7F020D34 44812000 */ mtc1 $at, $f4 +/* 055868 7F020D38 C7AA0094 */ lwc1 $f10, 0x94($sp) +/* 05586C 7F020D3C 8FA5009C */ lw $a1, 0x9c($sp) +/* 055870 7F020D40 46045032 */ c.eq.s $f10, $f4 +/* 055874 7F020D44 00000000 */ nop +/* 055878 7F020D48 45030004 */ bc1tl .L7F020D5C +/* 05587C 7F020D4C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 055880 7F020D50 0FC1629F */ jal matrix_scalar_multiply +/* 055884 7F020D54 46005306 */ mov.s $f12, $f10 +/* 055888 7F020D58 C7A60074 */ lwc1 $f6, 0x74($sp) +.L7F020D5C: +/* 05588C 7F020D5C 8FA8009C */ lw $t0, 0x9c($sp) +/* 055890 7F020D60 E5060030 */ swc1 $f6, 0x30($t0) +/* 055894 7F020D64 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 055898 7F020D68 E5080034 */ swc1 $f8, 0x34($t0) +/* 05589C 7F020D6C C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 0558A0 7F020D70 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 0558A4 7F020D74 E5040038 */ swc1 $f4, 0x38($t0) +/* 0558A8 7F020D78 00402025 */ move $a0, $v0 +/* 0558AC 7F020D7C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 0558B0 7F020D80 8FA5009C */ lw $a1, 0x9c($sp) +/* 0558B4 7F020D84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F020D88: +/* 0558B8 7F020D88 27BD0098 */ addiu $sp, $sp, 0x98 +/* 0558BC 7F020D8C 03E00008 */ jr $ra +/* 0558C0 7F020D90 00000000 */ nop ) #endif @@ -4282,7 +5050,7 @@ glabel sub_GAME_7F020EF0 /* 055FC4 7F021494 8D6D0008 */ lw $t5, 8($t3) /* 055FC8 7F021498 85A4000E */ lh $a0, 0xe($t5) /* 055FCC 7F02149C 00046180 */ sll $t4, $a0, 6 -/* 055FD0 7F0214A0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 055FD0 7F0214A0 0FC2F5C5 */ jal dynAllocate /* 055FD4 7F0214A4 01802025 */ move $a0, $t4 /* 055FD8 7F0214A8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) /* 055FDC 7F0214AC 24A59B60 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x64a0 @@ -4351,7 +5119,7 @@ glabel sub_GAME_7F020EF0 /* 0560D0 7F0215A0 8D6D0008 */ lw $t5, 8($t3) /* 0560D4 7F0215A4 85A4000E */ lh $a0, 0xe($t5) /* 0560D8 7F0215A8 00046180 */ sll $t4, $a0, 6 -/* 0560DC 7F0215AC 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0560DC 7F0215AC 0FC2F5C5 */ jal dynAllocate /* 0560E0 7F0215B0 01802025 */ move $a0, $t4 /* 0560E4 7F0215B4 AFA20128 */ sw $v0, 0x128($sp) /* 0560E8 7F0215B8 27A40118 */ addiu $a0, $sp, 0x118 @@ -4393,13 +5161,13 @@ glabel sub_GAME_7F020EF0 /* 056178 7F021648 AFA00054 */ sw $zero, 0x54($sp) /* 05617C 7F02164C 00002025 */ move $a0, $zero /* 056180 7F021650 24050020 */ li $a1, 32 -/* 056184 7F021654 0C0030C3 */ jal get_controller_buttons_held +/* 056184 7F021654 0C0030C3 */ jal joyGetButtons /* 056188 7F021658 AFA30058 */ sw $v1, 0x58($sp) /* 05618C 7F02165C 1040004F */ beqz $v0, .L7F02179C /* 056190 7F021660 8FA30058 */ lw $v1, 0x58($sp) /* 056194 7F021664 00002025 */ move $a0, $zero /* 056198 7F021668 34058000 */ li $a1, 32768 -/* 05619C 7F02166C 0C0030C3 */ jal get_controller_buttons_held +/* 05619C 7F02166C 0C0030C3 */ jal joyGetButtons /* 0561A0 7F021670 AFA30058 */ sw $v1, 0x58($sp) /* 0561A4 7F021674 10400008 */ beqz $v0, .L7F021698 /* 0561A8 7F021678 8FA30058 */ lw $v1, 0x58($sp) @@ -4413,7 +5181,7 @@ glabel sub_GAME_7F020EF0 .L7F021698: /* 0561C8 7F021698 00002025 */ move $a0, $zero /* 0561CC 7F02169C 24054000 */ li $a1, 16384 -/* 0561D0 7F0216A0 0C0030C3 */ jal get_controller_buttons_held +/* 0561D0 7F0216A0 0C0030C3 */ jal joyGetButtons /* 0561D4 7F0216A4 AFA30058 */ sw $v1, 0x58($sp) /* 0561D8 7F0216A8 10400008 */ beqz $v0, .L7F0216CC /* 0561DC 7F0216AC 8FA30058 */ lw $v1, 0x58($sp) @@ -4427,7 +5195,7 @@ glabel sub_GAME_7F020EF0 .L7F0216CC: /* 0561FC 7F0216CC 00002025 */ move $a0, $zero /* 056200 7F0216D0 24050004 */ li $a1, 4 -/* 056204 7F0216D4 0C0030C3 */ jal get_controller_buttons_held +/* 056204 7F0216D4 0C0030C3 */ jal joyGetButtons /* 056208 7F0216D8 AFA30058 */ sw $v1, 0x58($sp) /* 05620C 7F0216DC 10400008 */ beqz $v0, .L7F021700 /* 056210 7F0216E0 8FA30058 */ lw $v1, 0x58($sp) @@ -4441,7 +5209,7 @@ glabel sub_GAME_7F020EF0 .L7F021700: /* 056230 7F021700 00002025 */ move $a0, $zero /* 056234 7F021704 24050008 */ li $a1, 8 -/* 056238 7F021708 0C0030C3 */ jal get_controller_buttons_held +/* 056238 7F021708 0C0030C3 */ jal joyGetButtons /* 05623C 7F02170C AFA30058 */ sw $v1, 0x58($sp) /* 056240 7F021710 10400008 */ beqz $v0, .L7F021734 /* 056244 7F021714 8FA30058 */ lw $v1, 0x58($sp) @@ -4455,7 +5223,7 @@ glabel sub_GAME_7F020EF0 .L7F021734: /* 056264 7F021734 00002025 */ move $a0, $zero /* 056268 7F021738 24050002 */ li $a1, 2 -/* 05626C 7F02173C 0C0030C3 */ jal get_controller_buttons_held +/* 05626C 7F02173C 0C0030C3 */ jal joyGetButtons /* 056270 7F021740 AFA30058 */ sw $v1, 0x58($sp) /* 056274 7F021744 10400008 */ beqz $v0, .L7F021768 /* 056278 7F021748 8FA30058 */ lw $v1, 0x58($sp) @@ -4469,7 +5237,7 @@ glabel sub_GAME_7F020EF0 .L7F021768: /* 056298 7F021768 00002025 */ move $a0, $zero /* 05629C 7F02176C 24050001 */ li $a1, 1 -/* 0562A0 7F021770 0C0030C3 */ jal get_controller_buttons_held +/* 0562A0 7F021770 0C0030C3 */ jal joyGetButtons /* 0562A4 7F021774 AFA30058 */ sw $v1, 0x58($sp) /* 0562A8 7F021778 10400008 */ beqz $v0, .L7F02179C /* 0562AC 7F02177C 8FA30058 */ lw $v1, 0x58($sp) @@ -4483,13 +5251,13 @@ glabel sub_GAME_7F020EF0 .L7F02179C: /* 0562CC 7F02179C 00002025 */ move $a0, $zero /* 0562D0 7F0217A0 24050010 */ li $a1, 16 -/* 0562D4 7F0217A4 0C0030C3 */ jal get_controller_buttons_held +/* 0562D4 7F0217A4 0C0030C3 */ jal joyGetButtons /* 0562D8 7F0217A8 AFA30058 */ sw $v1, 0x58($sp) /* 0562DC 7F0217AC 1040004F */ beqz $v0, .L7F0218EC /* 0562E0 7F0217B0 8FA30058 */ lw $v1, 0x58($sp) /* 0562E4 7F0217B4 00002025 */ move $a0, $zero /* 0562E8 7F0217B8 34058000 */ li $a1, 32768 -/* 0562EC 7F0217BC 0C0030C3 */ jal get_controller_buttons_held +/* 0562EC 7F0217BC 0C0030C3 */ jal joyGetButtons /* 0562F0 7F0217C0 AFA30058 */ sw $v1, 0x58($sp) /* 0562F4 7F0217C4 10400008 */ beqz $v0, .L7F0217E8 /* 0562F8 7F0217C8 8FA30058 */ lw $v1, 0x58($sp) @@ -4503,7 +5271,7 @@ glabel sub_GAME_7F020EF0 .L7F0217E8: /* 056318 7F0217E8 00002025 */ move $a0, $zero /* 05631C 7F0217EC 24054000 */ li $a1, 16384 -/* 056320 7F0217F0 0C0030C3 */ jal get_controller_buttons_held +/* 056320 7F0217F0 0C0030C3 */ jal joyGetButtons /* 056324 7F0217F4 AFA30058 */ sw $v1, 0x58($sp) /* 056328 7F0217F8 10400008 */ beqz $v0, .L7F02181C /* 05632C 7F0217FC 8FA30058 */ lw $v1, 0x58($sp) @@ -4517,7 +5285,7 @@ glabel sub_GAME_7F020EF0 .L7F02181C: /* 05634C 7F02181C 00002025 */ move $a0, $zero /* 056350 7F021820 24050004 */ li $a1, 4 -/* 056354 7F021824 0C0030C3 */ jal get_controller_buttons_held +/* 056354 7F021824 0C0030C3 */ jal joyGetButtons /* 056358 7F021828 AFA30058 */ sw $v1, 0x58($sp) /* 05635C 7F02182C 10400008 */ beqz $v0, .L7F021850 /* 056360 7F021830 8FA30058 */ lw $v1, 0x58($sp) @@ -4531,7 +5299,7 @@ glabel sub_GAME_7F020EF0 .L7F021850: /* 056380 7F021850 00002025 */ move $a0, $zero /* 056384 7F021854 24050008 */ li $a1, 8 -/* 056388 7F021858 0C0030C3 */ jal get_controller_buttons_held +/* 056388 7F021858 0C0030C3 */ jal joyGetButtons /* 05638C 7F02185C AFA30058 */ sw $v1, 0x58($sp) /* 056390 7F021860 10400008 */ beqz $v0, .L7F021884 /* 056394 7F021864 8FA30058 */ lw $v1, 0x58($sp) @@ -4545,7 +5313,7 @@ glabel sub_GAME_7F020EF0 .L7F021884: /* 0563B4 7F021884 00002025 */ move $a0, $zero /* 0563B8 7F021888 24050002 */ li $a1, 2 -/* 0563BC 7F02188C 0C0030C3 */ jal get_controller_buttons_held +/* 0563BC 7F02188C 0C0030C3 */ jal joyGetButtons /* 0563C0 7F021890 AFA30058 */ sw $v1, 0x58($sp) /* 0563C4 7F021894 10400008 */ beqz $v0, .L7F0218B8 /* 0563C8 7F021898 8FA30058 */ lw $v1, 0x58($sp) @@ -4559,7 +5327,7 @@ glabel sub_GAME_7F020EF0 .L7F0218B8: /* 0563E8 7F0218B8 00002025 */ move $a0, $zero /* 0563EC 7F0218BC 24050001 */ li $a1, 1 -/* 0563F0 7F0218C0 0C0030C3 */ jal get_controller_buttons_held +/* 0563F0 7F0218C0 0C0030C3 */ jal joyGetButtons /* 0563F4 7F0218C4 AFA30058 */ sw $v1, 0x58($sp) /* 0563F8 7F0218C8 10400008 */ beqz $v0, .L7F0218EC /* 0563FC 7F0218CC 8FA30058 */ lw $v1, 0x58($sp) @@ -5154,7 +5922,7 @@ glabel sub_GAME_7F020EF0 /* 0562EC 7F02177C 8D980008 */ lw $t8, 8($t4) /* 0562F0 7F021780 8704000E */ lh $a0, 0xe($t8) /* 0562F4 7F021784 0004C980 */ sll $t9, $a0, 6 -/* 0562F8 7F021788 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 0562F8 7F021788 0FC2F8B1 */ jal dynAllocate /* 0562FC 7F02178C 03202025 */ move $a0, $t9 /* 056300 7F021790 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) # $a1, 0x8007 /* 056304 7F021794 24A59BA0 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x6460 @@ -5223,7 +5991,7 @@ glabel sub_GAME_7F020EF0 /* 0563F8 7F021888 8D980008 */ lw $t8, 8($t4) /* 0563FC 7F02188C 8704000E */ lh $a0, 0xe($t8) /* 056400 7F021890 0004C980 */ sll $t9, $a0, 6 -/* 056404 7F021894 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 056404 7F021894 0FC2F8B1 */ jal dynAllocate /* 056408 7F021898 03202025 */ move $a0, $t9 /* 05640C 7F02189C AFA20128 */ sw $v0, 0x128($sp) /* 056410 7F0218A0 27A40118 */ addiu $a0, $sp, 0x118 @@ -5265,13 +6033,13 @@ glabel sub_GAME_7F020EF0 /* 0564A0 7F021930 AFA00054 */ sw $zero, 0x54($sp) /* 0564A4 7F021934 00002025 */ move $a0, $zero /* 0564A8 7F021938 24050020 */ li $a1, 32 -/* 0564AC 7F02193C 0C0030DC */ jal get_controller_buttons_held +/* 0564AC 7F02193C 0C0030DC */ jal joyGetButtons /* 0564B0 7F021940 AFA30058 */ sw $v1, 0x58($sp) /* 0564B4 7F021944 1040004F */ beqz $v0, .Ljp7F021A84 /* 0564B8 7F021948 8FA30058 */ lw $v1, 0x58($sp) /* 0564BC 7F02194C 00002025 */ move $a0, $zero /* 0564C0 7F021950 34058000 */ li $a1, 32768 -/* 0564C4 7F021954 0C0030DC */ jal get_controller_buttons_held +/* 0564C4 7F021954 0C0030DC */ jal joyGetButtons /* 0564C8 7F021958 AFA30058 */ sw $v1, 0x58($sp) /* 0564CC 7F02195C 10400008 */ beqz $v0, .Ljp7F021980 /* 0564D0 7F021960 8FA30058 */ lw $v1, 0x58($sp) @@ -5285,7 +6053,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021980: /* 0564F0 7F021980 00002025 */ move $a0, $zero /* 0564F4 7F021984 24054000 */ li $a1, 16384 -/* 0564F8 7F021988 0C0030DC */ jal get_controller_buttons_held +/* 0564F8 7F021988 0C0030DC */ jal joyGetButtons /* 0564FC 7F02198C AFA30058 */ sw $v1, 0x58($sp) /* 056500 7F021990 10400008 */ beqz $v0, .Ljp7F0219B4 /* 056504 7F021994 8FA30058 */ lw $v1, 0x58($sp) @@ -5299,7 +6067,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F0219B4: /* 056524 7F0219B4 00002025 */ move $a0, $zero /* 056528 7F0219B8 24050004 */ li $a1, 4 -/* 05652C 7F0219BC 0C0030DC */ jal get_controller_buttons_held +/* 05652C 7F0219BC 0C0030DC */ jal joyGetButtons /* 056530 7F0219C0 AFA30058 */ sw $v1, 0x58($sp) /* 056534 7F0219C4 10400008 */ beqz $v0, .Ljp7F0219E8 /* 056538 7F0219C8 8FA30058 */ lw $v1, 0x58($sp) @@ -5313,7 +6081,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F0219E8: /* 056558 7F0219E8 00002025 */ move $a0, $zero /* 05655C 7F0219EC 24050008 */ li $a1, 8 -/* 056560 7F0219F0 0C0030DC */ jal get_controller_buttons_held +/* 056560 7F0219F0 0C0030DC */ jal joyGetButtons /* 056564 7F0219F4 AFA30058 */ sw $v1, 0x58($sp) /* 056568 7F0219F8 10400008 */ beqz $v0, .Ljp7F021A1C /* 05656C 7F0219FC 8FA30058 */ lw $v1, 0x58($sp) @@ -5327,7 +6095,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021A1C: /* 05658C 7F021A1C 00002025 */ move $a0, $zero /* 056590 7F021A20 24050002 */ li $a1, 2 -/* 056594 7F021A24 0C0030DC */ jal get_controller_buttons_held +/* 056594 7F021A24 0C0030DC */ jal joyGetButtons /* 056598 7F021A28 AFA30058 */ sw $v1, 0x58($sp) /* 05659C 7F021A2C 10400008 */ beqz $v0, .Ljp7F021A50 /* 0565A0 7F021A30 8FA30058 */ lw $v1, 0x58($sp) @@ -5341,7 +6109,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021A50: /* 0565C0 7F021A50 00002025 */ move $a0, $zero /* 0565C4 7F021A54 24050001 */ li $a1, 1 -/* 0565C8 7F021A58 0C0030DC */ jal get_controller_buttons_held +/* 0565C8 7F021A58 0C0030DC */ jal joyGetButtons /* 0565CC 7F021A5C AFA30058 */ sw $v1, 0x58($sp) /* 0565D0 7F021A60 10400008 */ beqz $v0, .Ljp7F021A84 /* 0565D4 7F021A64 8FA30058 */ lw $v1, 0x58($sp) @@ -5355,13 +6123,13 @@ glabel sub_GAME_7F020EF0 .Ljp7F021A84: /* 0565F4 7F021A84 00002025 */ move $a0, $zero /* 0565F8 7F021A88 24050010 */ li $a1, 16 -/* 0565FC 7F021A8C 0C0030DC */ jal get_controller_buttons_held +/* 0565FC 7F021A8C 0C0030DC */ jal joyGetButtons /* 056600 7F021A90 AFA30058 */ sw $v1, 0x58($sp) /* 056604 7F021A94 1040004F */ beqz $v0, .Ljp7F021BD4 /* 056608 7F021A98 8FA30058 */ lw $v1, 0x58($sp) /* 05660C 7F021A9C 00002025 */ move $a0, $zero /* 056610 7F021AA0 34058000 */ li $a1, 32768 -/* 056614 7F021AA4 0C0030DC */ jal get_controller_buttons_held +/* 056614 7F021AA4 0C0030DC */ jal joyGetButtons /* 056618 7F021AA8 AFA30058 */ sw $v1, 0x58($sp) /* 05661C 7F021AAC 10400008 */ beqz $v0, .Ljp7F021AD0 /* 056620 7F021AB0 8FA30058 */ lw $v1, 0x58($sp) @@ -5375,7 +6143,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021AD0: /* 056640 7F021AD0 00002025 */ move $a0, $zero /* 056644 7F021AD4 24054000 */ li $a1, 16384 -/* 056648 7F021AD8 0C0030DC */ jal get_controller_buttons_held +/* 056648 7F021AD8 0C0030DC */ jal joyGetButtons /* 05664C 7F021ADC AFA30058 */ sw $v1, 0x58($sp) /* 056650 7F021AE0 10400008 */ beqz $v0, .Ljp7F021B04 /* 056654 7F021AE4 8FA30058 */ lw $v1, 0x58($sp) @@ -5389,7 +6157,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021B04: /* 056674 7F021B04 00002025 */ move $a0, $zero /* 056678 7F021B08 24050004 */ li $a1, 4 -/* 05667C 7F021B0C 0C0030DC */ jal get_controller_buttons_held +/* 05667C 7F021B0C 0C0030DC */ jal joyGetButtons /* 056680 7F021B10 AFA30058 */ sw $v1, 0x58($sp) /* 056684 7F021B14 10400008 */ beqz $v0, .Ljp7F021B38 /* 056688 7F021B18 8FA30058 */ lw $v1, 0x58($sp) @@ -5403,7 +6171,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021B38: /* 0566A8 7F021B38 00002025 */ move $a0, $zero /* 0566AC 7F021B3C 24050008 */ li $a1, 8 -/* 0566B0 7F021B40 0C0030DC */ jal get_controller_buttons_held +/* 0566B0 7F021B40 0C0030DC */ jal joyGetButtons /* 0566B4 7F021B44 AFA30058 */ sw $v1, 0x58($sp) /* 0566B8 7F021B48 10400008 */ beqz $v0, .Ljp7F021B6C /* 0566BC 7F021B4C 8FA30058 */ lw $v1, 0x58($sp) @@ -5417,7 +6185,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021B6C: /* 0566DC 7F021B6C 00002025 */ move $a0, $zero /* 0566E0 7F021B70 24050002 */ li $a1, 2 -/* 0566E4 7F021B74 0C0030DC */ jal get_controller_buttons_held +/* 0566E4 7F021B74 0C0030DC */ jal joyGetButtons /* 0566E8 7F021B78 AFA30058 */ sw $v1, 0x58($sp) /* 0566EC 7F021B7C 10400008 */ beqz $v0, .Ljp7F021BA0 /* 0566F0 7F021B80 8FA30058 */ lw $v1, 0x58($sp) @@ -5431,7 +6199,7 @@ glabel sub_GAME_7F020EF0 .Ljp7F021BA0: /* 056710 7F021BA0 00002025 */ move $a0, $zero /* 056714 7F021BA4 24050001 */ li $a1, 1 -/* 056718 7F021BA8 0C0030DC */ jal get_controller_buttons_held +/* 056718 7F021BA8 0C0030DC */ jal joyGetButtons /* 05671C 7F021BAC AFA30058 */ sw $v1, 0x58($sp) /* 056720 7F021BB0 10400008 */ beqz $v0, .Ljp7F021BD4 /* 056724 7F021BB4 8FA30058 */ lw $v1, 0x58($sp) @@ -5602,6 +6370,858 @@ glabel sub_GAME_7F020EF0 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F020EF0 +/* 055A20 7F020EF0 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 055A24 7F020EF4 3C0F8003 */ lui $t7, %hi(D_8002CC6C) +/* 055A28 7F020EF8 25EFCC6C */ addiu $t7, %lo(D_8002CC6C) # addiu $t7, $t7, -0x3394 +/* 055A2C 7F020EFC AFBF0024 */ sw $ra, 0x24($sp) +/* 055A30 7F020F00 AFB00020 */ sw $s0, 0x20($sp) +/* 055A34 7F020F04 AFA40158 */ sw $a0, 0x158($sp) +/* 055A38 7F020F08 25E8003C */ addiu $t0, $t7, 0x3c +/* 055A3C 7F020F0C 27AE0118 */ addiu $t6, $sp, 0x118 +.L7F020F10: +/* 055A40 7F020F10 8DE10000 */ lw $at, ($t7) +/* 055A44 7F020F14 25EF000C */ addiu $t7, $t7, 0xc +/* 055A48 7F020F18 25CE000C */ addiu $t6, $t6, 0xc +/* 055A4C 7F020F1C ADC1FFF4 */ sw $at, -0xc($t6) +/* 055A50 7F020F20 8DE1FFF8 */ lw $at, -8($t7) +/* 055A54 7F020F24 ADC1FFF8 */ sw $at, -8($t6) +/* 055A58 7F020F28 8DE1FFFC */ lw $at, -4($t7) +/* 055A5C 7F020F2C 15E8FFF8 */ bne $t7, $t0, .L7F020F10 +/* 055A60 7F020F30 ADC1FFFC */ sw $at, -4($t6) +/* 055A64 7F020F34 8DE10000 */ lw $at, ($t7) +/* 055A68 7F020F38 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 055A6C 7F020F3C 240B0001 */ li $t3, 1 +/* 055A70 7F020F40 ADC10000 */ sw $at, ($t6) +/* 055A74 7F020F44 8FA90158 */ lw $t1, 0x158($sp) +/* 055A78 7F020F48 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 055A7C 7F020F4C 3C188003 */ lui $t8, %hi(D_8002C904) +/* 055A80 7F020F50 8D300004 */ lw $s0, 4($t1) +/* 055A84 7F020F54 8E0A001C */ lw $t2, 0x1c($s0) +/* 055A88 7F020F58 AFAB0108 */ sw $t3, 0x108($sp) +/* 055A8C 7F020F5C AFAC0104 */ sw $t4, 0x104($sp) +/* 055A90 7F020F60 AFAA0110 */ sw $t2, 0x110($sp) +/* 055A94 7F020F64 8E020014 */ lw $v0, 0x14($s0) +/* 055A98 7F020F68 304D0400 */ andi $t5, $v0, 0x400 +/* 055A9C 7F020F6C 11A00003 */ beqz $t5, .L7F020F7C +/* 055AA0 7F020F70 0002CB40 */ sll $t9, $v0, 0xd +/* 055AA4 7F020F74 07230035 */ bgezl $t9, .L7F02104C +/* 055AA8 7F020F78 96180012 */ lhu $t8, 0x12($s0) +.L7F020F7C: +/* 055AAC 7F020F7C 8F18C904 */ lw $t8, %lo(D_8002C904)($t8) +/* 055AB0 7F020F80 3C088003 */ lui $t0, %hi(D_8002C908) +/* 055AB4 7F020F84 1300001E */ beqz $t8, .L7F021000 +/* 055AB8 7F020F88 00000000 */ nop +/* 055ABC 7F020F8C 8D08C908 */ lw $t0, %lo(D_8002C908)($t0) +/* 055AC0 7F020F90 3C0E8003 */ lui $t6, %hi(animation_table_ptrs1) +/* 055AC4 7F020F94 24010001 */ li $at, 1 +/* 055AC8 7F020F98 00087880 */ sll $t7, $t0, 2 +/* 055ACC 7F020F9C 01CF7021 */ addu $t6, $t6, $t7 +/* 055AD0 7F020FA0 8DCE9D6C */ lw $t6, %lo(animation_table_ptrs1)($t6) +/* 055AD4 7F020FA4 11C1001D */ beq $t6, $at, .L7F02101C +/* 055AD8 7F020FA8 00000000 */ nop +/* 055ADC 7F020FAC 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 055AE0 7F020FB0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AE4 7F020FB4 3C098003 */ lui $t1, %hi(D_8002C908) +/* 055AE8 7F020FB8 8D29C908 */ lw $t1, %lo(D_8002C908)($t1) +/* 055AEC 7F020FBC 3C058003 */ lui $a1, %hi(animation_table_ptrs1) +/* 055AF0 7F020FC0 8FA40110 */ lw $a0, 0x110($sp) +/* 055AF4 7F020FC4 00095080 */ sll $t2, $t1, 2 +/* 055AF8 7F020FC8 00AA2821 */ addu $a1, $a1, $t2 +/* 055AFC 7F020FCC 8CA59D6C */ lw $a1, %lo(animation_table_ptrs1)($a1) +/* 055B00 7F020FD0 00003025 */ move $a2, $zero +/* 055B04 7F020FD4 10450011 */ beq $v0, $a1, .L7F02101C +/* 055B08 7F020FD8 00000000 */ nop +/* 055B0C 7F020FDC 44800000 */ mtc1 $zero, $f0 +/* 055B10 7F020FE0 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 055B14 7F020FE4 44812000 */ mtc1 $at, $f4 +/* 055B18 7F020FE8 44070000 */ mfc1 $a3, $f0 +/* 055B1C 7F020FEC E7A00014 */ swc1 $f0, 0x14($sp) +/* 055B20 7F020FF0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 055B24 7F020FF4 E7A40010 */ swc1 $f4, 0x10($sp) +/* 055B28 7F020FF8 10000008 */ b .L7F02101C +/* 055B2C 7F020FFC 00000000 */ nop +.L7F021000: +/* 055B30 7F021000 0FC0C9AF */ jal manage_actions +/* 055B34 7F021004 02002025 */ move $a0, $s0 +/* 055B38 7F021008 8E0B001C */ lw $t3, 0x1c($s0) +/* 055B3C 7F02100C 15600003 */ bnez $t3, .L7F02101C +/* 055B40 7F021010 00000000 */ nop +/* 055B44 7F021014 100002BD */ b .L7F021B0C +/* 055B48 7F021018 24020001 */ li $v0, 1 +.L7F02101C: +/* 055B4C 7F02101C 3C0C8003 */ lui $t4, %hi(D_8002C90C) +/* 055B50 7F021020 8D8CC90C */ lw $t4, %lo(D_8002C90C)($t4) +/* 055B54 7F021024 3C0D8003 */ lui $t5, %hi(D_8002C910) +/* 055B58 7F021028 51800008 */ beql $t4, $zero, .L7F02104C +/* 055B5C 7F02102C 96180012 */ lhu $t8, 0x12($s0) +/* 055B60 7F021030 8DADC910 */ lw $t5, %lo(D_8002C910)($t5) +/* 055B64 7F021034 AFA00104 */ sw $zero, 0x104($sp) +/* 055B68 7F021038 24190001 */ li $t9, 1 +/* 055B6C 7F02103C 51A00003 */ beql $t5, $zero, .L7F02104C +/* 055B70 7F021040 96180012 */ lhu $t8, 0x12($s0) +/* 055B74 7F021044 AFB90104 */ sw $t9, 0x104($sp) +/* 055B78 7F021048 96180012 */ lhu $t8, 0x12($s0) +.L7F02104C: +/* 055B7C 7F02104C 33080020 */ andi $t0, $t8, 0x20 +/* 055B80 7F021050 51000006 */ beql $t0, $zero, .L7F02106C +/* 055B84 7F021054 8E020160 */ lw $v0, 0x160($s0) +/* 055B88 7F021058 0FC08105 */ jal disable_sounds_attached_to_player_then_something +/* 055B8C 7F02105C 8FA40158 */ lw $a0, 0x158($sp) +/* 055B90 7F021060 100002AA */ b .L7F021B0C +/* 055B94 7F021064 24020001 */ li $v0, 1 +/* 055B98 7F021068 8E020160 */ lw $v0, 0x160($s0) +.L7F02106C: +/* 055B9C 7F02106C 50400009 */ beql $v0, $zero, .L7F021094 +/* 055BA0 7F021070 8E020164 */ lw $v0, 0x164($s0) +/* 055BA4 7F021074 8C440004 */ lw $a0, 4($v0) +/* 055BA8 7F021078 8C8F0064 */ lw $t7, 0x64($a0) +/* 055BAC 7F02107C 31EE0004 */ andi $t6, $t7, 4 +/* 055BB0 7F021080 51C00004 */ beql $t6, $zero, .L7F021094 +/* 055BB4 7F021084 8E020164 */ lw $v0, 0x164($s0) +/* 055BB8 7F021088 0FC10409 */ jal sub_GAME_7F041024 +/* 055BBC 7F02108C 24050001 */ li $a1, 1 +/* 055BC0 7F021090 8E020164 */ lw $v0, 0x164($s0) +.L7F021094: +/* 055BC4 7F021094 50400009 */ beql $v0, $zero, .L7F0210BC +/* 055BC8 7F021098 8E020014 */ lw $v0, 0x14($s0) +/* 055BCC 7F02109C 8C440004 */ lw $a0, 4($v0) +/* 055BD0 7F0210A0 8C890064 */ lw $t1, 0x64($a0) +/* 055BD4 7F0210A4 312A0004 */ andi $t2, $t1, 4 +/* 055BD8 7F0210A8 51400004 */ beql $t2, $zero, .L7F0210BC +/* 055BDC 7F0210AC 8E020014 */ lw $v0, 0x14($s0) +/* 055BE0 7F0210B0 0FC10409 */ jal sub_GAME_7F041024 +/* 055BE4 7F0210B4 24050001 */ li $a1, 1 +/* 055BE8 7F0210B8 8E020014 */ lw $v0, 0x14($s0) +.L7F0210BC: +/* 055BEC 7F0210BC 8FAC0158 */ lw $t4, 0x158($sp) +/* 055BF0 7F0210C0 304B0400 */ andi $t3, $v0, 0x400 +/* 055BF4 7F0210C4 51600005 */ beql $t3, $zero, .L7F0210DC +/* 055BF8 7F0210C8 918D0000 */ lbu $t5, ($t4) +/* 055BFC 7F0210CC AFA0010C */ sw $zero, 0x10c($sp) +/* 055C00 7F0210D0 100000BD */ b .L7F0213C8 +/* 055C04 7F0210D4 82030007 */ lb $v1, 7($s0) +/* 055C08 7F0210D8 918D0000 */ lbu $t5, ($t4) +.L7F0210DC: +/* 055C0C 7F0210DC 24010006 */ li $at, 6 +/* 055C10 7F0210E0 55A1000D */ bnel $t5, $at, .L7F021118 +/* 055C14 7F0210E4 00027A00 */ sll $t7, $v0, 8 +/* 055C18 7F0210E8 0FC26C57 */ jal sub_GAME_7F09B15C +/* 055C1C 7F0210EC 01802025 */ move $a0, $t4 +/* 055C20 7F0210F0 0002C880 */ sll $t9, $v0, 2 +/* 055C24 7F0210F4 3C188008 */ lui $t8, %hi(players) +/* 055C28 7F0210F8 0319C021 */ addu $t8, $t8, $t9 +/* 055C2C 7F0210FC 8F189EE0 */ lw $t8, %lo(players)($t8) +/* 055C30 7F021100 24010001 */ li $at, 1 +/* 055C34 7F021104 8F080000 */ lw $t0, ($t8) +/* 055C38 7F021108 51010005 */ beql $t0, $at, .L7F021120 +/* 055C3C 7F02110C 240E0001 */ li $t6, 1 +/* 055C40 7F021110 8E020014 */ lw $v0, 0x14($s0) +/* 055C44 7F021114 00027A00 */ sll $t7, $v0, 8 +.L7F021118: +/* 055C48 7F021118 05E10017 */ bgez $t7, .L7F021178 +/* 055C4C 7F02111C 240E0001 */ li $t6, 1 +.L7F021120: +/* 055C50 7F021120 AFAE010C */ sw $t6, 0x10c($sp) +/* 055C54 7F021124 82090007 */ lb $t1, 7($s0) +/* 055C58 7F021128 24010003 */ li $at, 3 +/* 055C5C 7F02112C 02002025 */ move $a0, $s0 +/* 055C60 7F021130 1521000D */ bne $t1, $at, .L7F021168 +/* 055C64 7F021134 00000000 */ nop +/* 055C68 7F021138 8E0A002C */ lw $t2, 0x2c($s0) +/* 055C6C 7F02113C 1540000A */ bnez $t2, .L7F021168 +/* 055C70 7F021140 00000000 */ nop +/* 055C74 7F021144 8E0B003C */ lw $t3, 0x3c($s0) +/* 055C78 7F021148 8FA50104 */ lw $a1, 0x104($sp) +/* 055C7C 7F02114C 00003025 */ move $a2, $zero +/* 055C80 7F021150 11600005 */ beqz $t3, .L7F021168 +/* 055C84 7F021154 00000000 */ nop +/* 055C88 7F021158 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055C8C 7F02115C 8FA40110 */ lw $a0, 0x110($sp) +/* 055C90 7F021160 10000003 */ b .L7F021170 +/* 055C94 7F021164 00000000 */ nop +.L7F021168: +/* 055C98 7F021168 0FC08390 */ jal sub_GAME_7F020E40 +/* 055C9C 7F02116C 8FA50104 */ lw $a1, 0x104($sp) +.L7F021170: +/* 055CA0 7F021170 10000095 */ b .L7F0213C8 +/* 055CA4 7F021174 82030007 */ lb $v1, 7($s0) +.L7F021178: +/* 055CA8 7F021178 82030007 */ lb $v1, 7($s0) +/* 055CAC 7F02117C 2406000E */ li $a2, 14 +/* 055CB0 7F021180 2401000F */ li $at, 15 +/* 055CB4 7F021184 10C30003 */ beq $a2, $v1, .L7F021194 +/* 055CB8 7F021188 00000000 */ nop +/* 055CBC 7F02118C 54610041 */ bnel $v1, $at, .L7F021294 +/* 055CC0 7F021190 24010003 */ li $at, 3 +.L7F021194: +/* 055CC4 7F021194 54C30005 */ bnel $a2, $v1, .L7F0211AC +/* 055CC8 7F021198 2401000F */ li $at, 15 +/* 055CCC 7F02119C 820D0038 */ lb $t5, 0x38($s0) +/* 055CD0 7F0211A0 24010006 */ li $at, 6 +/* 055CD4 7F0211A4 11A10007 */ beq $t5, $at, .L7F0211C4 +/* 055CD8 7F0211A8 2401000F */ li $at, 15 +.L7F0211AC: +/* 055CDC 7F0211AC 1461001E */ bne $v1, $at, .L7F021228 +/* 055CE0 7F0211B0 02002025 */ move $a0, $s0 +/* 055CE4 7F0211B4 820C005C */ lb $t4, 0x5c($s0) +/* 055CE8 7F0211B8 24010006 */ li $at, 6 +/* 055CEC 7F0211BC 1581001A */ bne $t4, $at, .L7F021228 +/* 055CF0 7F0211C0 00000000 */ nop +.L7F0211C4: +/* 055CF4 7F0211C4 0FC1B403 */ jal getinstsize +/* 055CF8 7F0211C8 8FA40110 */ lw $a0, 0x110($sp) +/* 055CFC 7F0211CC 8FA40158 */ lw $a0, 0x158($sp) +/* 055D00 7F0211D0 44060000 */ mfc1 $a2, $f0 +/* 055D04 7F0211D4 24070001 */ li $a3, 1 +/* 055D08 7F0211D8 24850008 */ addiu $a1, $a0, 8 +/* 055D0C 7F0211DC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D10 7F0211E0 AFA50030 */ sw $a1, 0x30($sp) +/* 055D14 7F0211E4 10400028 */ beqz $v0, .L7F021288 +/* 055D18 7F0211E8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D1C 7F0211EC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D20 7F0211F0 0FC1B2E6 */ jal getsuboffset +/* 055D24 7F0211F4 260500BC */ addiu $a1, $s0, 0xbc +/* 055D28 7F0211F8 0FC1B5AC */ jal subcalcpos +/* 055D2C 7F0211FC 8FA40110 */ lw $a0, 0x110($sp) +/* 055D30 7F021200 8FA40158 */ lw $a0, 0x158($sp) +/* 055D34 7F021204 0FC10027 */ jal set_color_shading_from_tile +/* 055D38 7F021208 260500F8 */ addiu $a1, $s0, 0xf8 +/* 055D3C 7F02120C 8FA40110 */ lw $a0, 0x110($sp) +/* 055D40 7F021210 0FC1B2E6 */ jal getsuboffset +/* 055D44 7F021214 8FA50030 */ lw $a1, 0x30($sp) +/* 055D48 7F021218 0FC08365 */ jal sub_GAME_7F020D94 +/* 055D4C 7F02121C 02002025 */ move $a0, $s0 +/* 055D50 7F021220 10000019 */ b .L7F021288 +/* 055D54 7F021224 00000000 */ nop +.L7F021228: +/* 055D58 7F021228 0FC08390 */ jal sub_GAME_7F020E40 +/* 055D5C 7F02122C 8FA50104 */ lw $a1, 0x104($sp) +/* 055D60 7F021230 0FC1B403 */ jal getinstsize +/* 055D64 7F021234 8FA40110 */ lw $a0, 0x110($sp) +/* 055D68 7F021238 8FA40158 */ lw $a0, 0x158($sp) +/* 055D6C 7F02123C 44060000 */ mfc1 $a2, $f0 +/* 055D70 7F021240 24070001 */ li $a3, 1 +/* 055D74 7F021244 0FC1535B */ jal sub_GAME_7F054D6C +/* 055D78 7F021248 24850008 */ addiu $a1, $a0, 8 +/* 055D7C 7F02124C 1040000E */ beqz $v0, .L7F021288 +/* 055D80 7F021250 AFA2010C */ sw $v0, 0x10c($sp) +/* 055D84 7F021254 82030007 */ lb $v1, 7($s0) +/* 055D88 7F021258 2401000E */ li $at, 14 +/* 055D8C 7F02125C 3C088005 */ lui $t0, %hi(global_timer) +/* 055D90 7F021260 54610005 */ bnel $v1, $at, .L7F021278 +/* 055D94 7F021264 2401000F */ li $at, 15 +/* 055D98 7F021268 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 055D9C 7F02126C 10000006 */ b .L7F021288 +/* 055DA0 7F021270 AE080078 */ sw $t0, 0x78($s0) +/* 055DA4 7F021274 2401000F */ li $at, 15 +.L7F021278: +/* 055DA8 7F021278 14610003 */ bne $v1, $at, .L7F021288 +/* 055DAC 7F02127C 3C0F8005 */ lui $t7, %hi(global_timer) +/* 055DB0 7F021280 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 055DB4 7F021284 AE0F009C */ sw $t7, 0x9c($s0) +.L7F021288: +/* 055DB8 7F021288 1000004F */ b .L7F0213C8 +/* 055DBC 7F02128C 82030007 */ lb $v1, 7($s0) +/* 055DC0 7F021290 24010003 */ li $at, 3 +.L7F021294: +/* 055DC4 7F021294 5461001C */ bnel $v1, $at, .L7F021308 +/* 055DC8 7F021298 24010001 */ li $at, 1 +/* 055DCC 7F02129C 8E0E002C */ lw $t6, 0x2c($s0) +/* 055DD0 7F0212A0 55C00019 */ bnezl $t6, .L7F021308 +/* 055DD4 7F0212A4 24010001 */ li $at, 1 +/* 055DD8 7F0212A8 0FC1B403 */ jal getinstsize +/* 055DDC 7F0212AC 8FA40110 */ lw $a0, 0x110($sp) +/* 055DE0 7F0212B0 8FA40158 */ lw $a0, 0x158($sp) +/* 055DE4 7F0212B4 44060000 */ mfc1 $a2, $f0 +/* 055DE8 7F0212B8 24070001 */ li $a3, 1 +/* 055DEC 7F0212BC 0FC1535B */ jal sub_GAME_7F054D6C +/* 055DF0 7F0212C0 24850008 */ addiu $a1, $a0, 8 +/* 055DF4 7F0212C4 10400009 */ beqz $v0, .L7F0212EC +/* 055DF8 7F0212C8 AFA2010C */ sw $v0, 0x10c($sp) +/* 055DFC 7F0212CC 8E0A003C */ lw $t2, 0x3c($s0) +/* 055E00 7F0212D0 02002025 */ move $a0, $s0 +/* 055E04 7F0212D4 55400006 */ bnezl $t2, .L7F0212F0 +/* 055E08 7F0212D8 8FA40110 */ lw $a0, 0x110($sp) +/* 055E0C 7F0212DC 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E10 7F0212E0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E14 7F0212E4 10000005 */ b .L7F0212FC +/* 055E18 7F0212E8 00000000 */ nop +.L7F0212EC: +/* 055E1C 7F0212EC 8FA40110 */ lw $a0, 0x110($sp) +.L7F0212F0: +/* 055E20 7F0212F0 8FA50104 */ lw $a1, 0x104($sp) +/* 055E24 7F0212F4 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055E28 7F0212F8 00003025 */ move $a2, $zero +.L7F0212FC: +/* 055E2C 7F0212FC 10000032 */ b .L7F0213C8 +/* 055E30 7F021300 82030007 */ lb $v1, 7($s0) +/* 055E34 7F021304 24010001 */ li $at, 1 +.L7F021308: +/* 055E38 7F021308 1461001C */ bne $v1, $at, .L7F02137C +/* 055E3C 7F02130C 30484000 */ andi $t0, $v0, 0x4000 +/* 055E40 7F021310 0FC1B403 */ jal getinstsize +/* 055E44 7F021314 8FA40110 */ lw $a0, 0x110($sp) +/* 055E48 7F021318 8FA40158 */ lw $a0, 0x158($sp) +/* 055E4C 7F02131C 44060000 */ mfc1 $a2, $f0 +/* 055E50 7F021320 24070001 */ li $a3, 1 +/* 055E54 7F021324 0FC1535B */ jal sub_GAME_7F054D6C +/* 055E58 7F021328 24850008 */ addiu $a1, $a0, 8 +/* 055E5C 7F02132C 14400005 */ bnez $v0, .L7F021344 +/* 055E60 7F021330 AFA2010C */ sw $v0, 0x10c($sp) +/* 055E64 7F021334 8E0D0014 */ lw $t5, 0x14($s0) +/* 055E68 7F021338 8FB90110 */ lw $t9, 0x110($sp) +/* 055E6C 7F02133C 31AC0001 */ andi $t4, $t5, 1 +/* 055E70 7F021340 11800005 */ beqz $t4, .L7F021358 +.L7F021344: +/* 055E74 7F021344 02002025 */ move $a0, $s0 +/* 055E78 7F021348 0FC08390 */ jal sub_GAME_7F020E40 +/* 055E7C 7F02134C 8FA50104 */ lw $a1, 0x104($sp) +/* 055E80 7F021350 10000008 */ b .L7F021374 +/* 055E84 7F021354 00000000 */ nop +.L7F021358: +/* 055E88 7F021358 8F380054 */ lw $t8, 0x54($t9) +/* 055E8C 7F02135C 03202025 */ move $a0, $t9 +/* 055E90 7F021360 8FA50104 */ lw $a1, 0x104($sp) +/* 055E94 7F021364 13000003 */ beqz $t8, .L7F021374 +/* 055E98 7F021368 00000000 */ nop +/* 055E9C 7F02136C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EA0 7F021370 00003025 */ move $a2, $zero +.L7F021374: +/* 055EA4 7F021374 10000014 */ b .L7F0213C8 +/* 055EA8 7F021378 82030007 */ lb $v1, 7($s0) +.L7F02137C: +/* 055EAC 7F02137C 11000007 */ beqz $t0, .L7F02139C +/* 055EB0 7F021380 02002025 */ move $a0, $s0 +/* 055EB4 7F021384 8FA40110 */ lw $a0, 0x110($sp) +/* 055EB8 7F021388 8FA50104 */ lw $a1, 0x104($sp) +/* 055EBC 7F02138C 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 055EC0 7F021390 00003025 */ move $a2, $zero +/* 055EC4 7F021394 10000003 */ b .L7F0213A4 +/* 055EC8 7F021398 00000000 */ nop +.L7F02139C: +/* 055ECC 7F02139C 0FC08390 */ jal sub_GAME_7F020E40 +/* 055ED0 7F0213A0 8FA50104 */ lw $a1, 0x104($sp) +.L7F0213A4: +/* 055ED4 7F0213A4 0FC1B403 */ jal getinstsize +/* 055ED8 7F0213A8 8FA40110 */ lw $a0, 0x110($sp) +/* 055EDC 7F0213AC 8FA40158 */ lw $a0, 0x158($sp) +/* 055EE0 7F0213B0 44060000 */ mfc1 $a2, $f0 +/* 055EE4 7F0213B4 24070001 */ li $a3, 1 +/* 055EE8 7F0213B8 0FC1535B */ jal sub_GAME_7F054D6C +/* 055EEC 7F0213BC 24850008 */ addiu $a1, $a0, 8 +/* 055EF0 7F0213C0 AFA2010C */ sw $v0, 0x10c($sp) +/* 055EF4 7F0213C4 82030007 */ lb $v1, 7($s0) +.L7F0213C8: +/* 055EF8 7F0213C8 24010001 */ li $at, 1 +/* 055EFC 7F0213CC 14610009 */ bne $v1, $at, .L7F0213F4 +/* 055F00 7F0213D0 8FAE0110 */ lw $t6, 0x110($sp) +/* 055F04 7F0213D4 8DC90054 */ lw $t1, 0x54($t6) +/* 055F08 7F0213D8 8FAA0158 */ lw $t2, 0x158($sp) +/* 055F0C 7F0213DC 55200006 */ bnezl $t1, .L7F0213F8 +/* 055F10 7F0213E0 960D0012 */ lhu $t5, 0x12($s0) +/* 055F14 7F0213E4 914B0000 */ lbu $t3, ($t2) +/* 055F18 7F0213E8 24010006 */ li $at, 6 +/* 055F1C 7F0213EC 15610004 */ bne $t3, $at, .L7F021400 +/* 055F20 7F0213F0 00000000 */ nop +.L7F0213F4: +/* 055F24 7F0213F4 960D0012 */ lhu $t5, 0x12($s0) +.L7F0213F8: +/* 055F28 7F0213F8 35AC0200 */ ori $t4, $t5, 0x200 +/* 055F2C 7F0213FC A60C0012 */ sh $t4, 0x12($s0) +.L7F021400: +/* 055F30 7F021400 0FC0817C */ jal sub_GAME_7F0205F0 +/* 055F34 7F021404 02002025 */ move $a0, $s0 +/* 055F38 7F021408 8E040020 */ lw $a0, 0x20($s0) +/* 055F3C 7F02140C 50800005 */ beql $a0, $zero, .L7F021424 +/* 055F40 7F021410 8FB8010C */ lw $t8, 0x10c($sp) +/* 055F44 7F021414 0FC1AC92 */ jal sub_GAME_7F06B248 +/* 055F48 7F021418 00000000 */ nop +/* 055F4C 7F02141C AE000020 */ sw $zero, 0x20($s0) +/* 055F50 7F021420 8FB8010C */ lw $t8, 0x10c($sp) +.L7F021424: +/* 055F54 7F021424 261900F8 */ addiu $t9, $s0, 0xf8 +/* 055F58 7F021428 53000182 */ beql $t8, $zero, .L7F021A34 +/* 055F5C 7F02142C 8E020160 */ lw $v0, 0x160($s0) +/* 055F60 7F021430 0FC24412 */ jal get_debug_chrnum_flag +/* 055F64 7F021434 AFB90030 */ sw $t9, 0x30($sp) +/* 055F68 7F021438 8FA20158 */ lw $v0, 0x158($sp) +/* 055F6C 7F02143C 2404000C */ li $a0, 12 +/* 055F70 7F021440 90480001 */ lbu $t0, 1($v0) +/* 055F74 7F021444 350F0002 */ ori $t7, $t0, 2 +/* 055F78 7F021448 A04F0001 */ sb $t7, 1($v0) +/* 055F7C 7F02144C 8E0E0014 */ lw $t6, 0x14($s0) +/* 055F80 7F021450 35C90008 */ ori $t1, $t6, 8 +/* 055F84 7F021454 0FC249EF */ jal cheatCheckIfOn +/* 055F88 7F021458 AE090014 */ sw $t1, 0x14($s0) +/* 055F8C 7F02145C 10400004 */ beqz $v0, .L7F021470 +/* 055F90 7F021460 3C013EA0 */ li $at, 0x3EA00000 # 0.312500 +/* 055F94 7F021464 44816000 */ mtc1 $at, $f12 +/* 055F98 7F021468 0FC1B103 */ jal set_float_80036088 +/* 055F9C 7F02146C 00000000 */ nop +.L7F021470: +/* 055FA0 7F021470 3C0A7F02 */ lui $t2, %hi(sub_GAME_7F02083C) # $t2, 0x7f02 +/* 055FA4 7F021474 254A083C */ addiu $t2, %lo(sub_GAME_7F02083C) # addiu $t2, $t2, 0x83c +/* 055FA8 7F021478 3C018003 */ lui $at, %hi(D_80036090) +/* 055FAC 7F02147C AC2A6090 */ sw $t2, %lo(D_80036090)($at) +/* 055FB0 7F021480 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) +/* 055FB4 7F021484 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 055FB8 7F021488 AC309B60 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at) +/* 055FBC 7F02148C 8FAB0110 */ lw $t3, 0x110($sp) +/* 055FC0 7F021490 AFA20118 */ sw $v0, 0x118($sp) +/* 055FC4 7F021494 8D6D0008 */ lw $t5, 8($t3) +/* 055FC8 7F021498 85A4000E */ lh $a0, 0xe($t5) +/* 055FCC 7F02149C 00046180 */ sll $t4, $a0, 6 +/* 055FD0 7F0214A0 0FC2F5C5 */ jal dynAllocate +/* 055FD4 7F0214A4 01802025 */ move $a0, $t4 +/* 055FD8 7F0214A8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80069B60) +/* 055FDC 7F0214AC 24A59B60 */ addiu $a1, %lo(dword_CODE_bss_80069B60) # addiu $a1, $a1, -0x64a0 +/* 055FE0 7F0214B0 8CA30000 */ lw $v1, ($a1) +/* 055FE4 7F0214B4 AFA20128 */ sw $v0, 0x128($sp) +/* 055FE8 7F0214B8 80640011 */ lb $a0, 0x11($v1) +/* 055FEC 7F0214BC 0480000B */ bltz $a0, .L7F0214EC +/* 055FF0 7F0214C0 3C188005 */ lui $t8, %hi(clock_timer) +/* 055FF4 7F0214C4 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 055FF8 7F0214C8 240FFFFF */ li $t7, -1 +/* 055FFC 7F0214CC 0098C821 */ addu $t9, $a0, $t8 +/* 056000 7F0214D0 A0790011 */ sb $t9, 0x11($v1) +/* 056004 7F0214D4 8CA30000 */ lw $v1, ($a1) +/* 056008 7F0214D8 80680011 */ lb $t0, 0x11($v1) +/* 05600C 7F0214DC 2901001E */ slti $at, $t0, 0x1e +/* 056010 7F0214E0 54200003 */ bnezl $at, .L7F0214F0 +/* 056014 7F0214E4 27A40118 */ addiu $a0, $sp, 0x118 +/* 056018 7F0214E8 A06F0011 */ sb $t7, 0x11($v1) +.L7F0214EC: +/* 05601C 7F0214EC 27A40118 */ addiu $a0, $sp, 0x118 +.L7F0214F0: +/* 056020 7F0214F0 0FC1BCBE */ jal subcalcmatrices +/* 056024 7F0214F4 8FA50110 */ lw $a1, 0x110($sp) +/* 056028 7F0214F8 3C018003 */ lui $at, %hi(D_80036090) +/* 05602C 7F0214FC AC206090 */ sw $zero, %lo(D_80036090)($at) +/* 056030 7F021500 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 056034 7F021504 44816000 */ mtc1 $at, $f12 +/* 056038 7F021508 0FC1B103 */ jal set_float_80036088 +/* 05603C 7F02150C 00000000 */ nop +/* 056040 7F021510 260400F4 */ addiu $a0, $s0, 0xf4 +/* 056044 7F021514 0FC100C4 */ jal update_color_shading +/* 056048 7F021518 8FA50030 */ lw $a1, 0x30($sp) +/* 05604C 7F02151C 0FC1B1DA */ jal sub_GAME_7F06C768 +/* 056050 7F021520 8FA40110 */ lw $a0, 0x110($sp) +/* 056054 7F021524 8FAE0158 */ lw $t6, 0x158($sp) +/* 056058 7F021528 00002025 */ move $a0, $zero +/* 05605C 7F02152C E5C00018 */ swc1 $f0, 0x18($t6) +/* 056060 7F021530 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 056064 7F021534 8FA50110 */ lw $a1, 0x110($sp) +/* 056068 7F021538 AE020020 */ sw $v0, 0x20($s0) +/* 05606C 7F02153C 26060020 */ addiu $a2, $s0, 0x20 +/* 056070 7F021540 AFA60030 */ sw $a2, 0x30($sp) +/* 056074 7F021544 8FA40158 */ lw $a0, 0x158($sp) +/* 056078 7F021548 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05607C 7F02154C 00002825 */ move $a1, $zero +/* 056080 7F021550 8FA60030 */ lw $a2, 0x30($sp) +/* 056084 7F021554 8FA40158 */ lw $a0, 0x158($sp) +/* 056088 7F021558 0FC148FE */ jal sub_GAME_7F0523F8 +/* 05608C 7F02155C 24050001 */ li $a1, 1 +/* 056090 7F021560 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056094 7F021564 5040011A */ beql $v0, $zero, .L7F0219D0 +/* 056098 7F021568 8FAD0110 */ lw $t5, 0x110($sp) +/* 05609C 7F02156C 8C470004 */ lw $a3, 4($v0) +/* 0560A0 7F021570 90490001 */ lbu $t1, 1($v0) +/* 0560A4 7F021574 00003025 */ move $a2, $zero +/* 0560A8 7F021578 8CE30014 */ lw $v1, 0x14($a3) +/* 0560AC 7F02157C 352A0002 */ ori $t2, $t1, 2 +/* 0560B0 7F021580 A04A0001 */ sb $t2, 1($v0) +/* 0560B4 7F021584 8C65001C */ lw $a1, 0x1c($v1) +/* 0560B8 7F021588 8FA40110 */ lw $a0, 0x110($sp) +/* 0560BC 7F02158C AFA70100 */ sw $a3, 0x100($sp) +/* 0560C0 7F021590 0FC1B198 */ jal sub_GAME_7F06C660 +/* 0560C4 7F021594 AFA300FC */ sw $v1, 0xfc($sp) +/* 0560C8 7F021598 8FAB00FC */ lw $t3, 0xfc($sp) +/* 0560CC 7F02159C AFA20118 */ sw $v0, 0x118($sp) +/* 0560D0 7F0215A0 8D6D0008 */ lw $t5, 8($t3) +/* 0560D4 7F0215A4 85A4000E */ lh $a0, 0xe($t5) +/* 0560D8 7F0215A8 00046180 */ sll $t4, $a0, 6 +/* 0560DC 7F0215AC 0FC2F5C5 */ jal dynAllocate +/* 0560E0 7F0215B0 01802025 */ move $a0, $t4 +/* 0560E4 7F0215B4 AFA20128 */ sw $v0, 0x128($sp) +/* 0560E8 7F0215B8 27A40118 */ addiu $a0, $sp, 0x118 +/* 0560EC 7F0215BC 0FC1BC92 */ jal instcalcmatrices +/* 0560F0 7F0215C0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0560F4 7F0215C4 82020006 */ lb $v0, 6($s0) +/* 0560F8 7F0215C8 2841002A */ slti $at, $v0, 0x2a +/* 0560FC 7F0215CC 142000F2 */ bnez $at, .L7F021998 +/* 056100 7F0215D0 28410046 */ slti $at, $v0, 0x46 +/* 056104 7F0215D4 102000F0 */ beqz $at, .L7F021998 +/* 056108 7F0215D8 3C198003 */ lui $t9, %hi(D_8002CCAC) +/* 05610C 7F0215DC 2739CCAC */ addiu $t9, %lo(D_8002CCAC) # addiu $t9, $t9, -0x3354 +/* 056110 7F0215E0 8F210000 */ lw $at, ($t9) +/* 056114 7F0215E4 27B800F0 */ addiu $t8, $sp, 0xf0 +/* 056118 7F0215E8 8F2F0004 */ lw $t7, 4($t9) +/* 05611C 7F0215EC AF010000 */ sw $at, ($t8) +/* 056120 7F0215F0 8F210008 */ lw $at, 8($t9) +/* 056124 7F0215F4 AF0F0004 */ sw $t7, 4($t8) +/* 056128 7F0215F8 AF010008 */ sw $at, 8($t8) +/* 05612C 7F0215FC 0FC149A1 */ jal get_hat_model +/* 056130 7F021600 8E0401D8 */ lw $a0, 0x1d8($s0) +/* 056134 7F021604 AFA20060 */ sw $v0, 0x60($sp) +/* 056138 7F021608 82040006 */ lb $a0, 6($s0) +/* 05613C 7F02160C 00024880 */ sll $t1, $v0, 2 +/* 056140 7F021610 01224823 */ subu $t1, $t1, $v0 +/* 056144 7F021614 2484FFD6 */ addiu $a0, $a0, -0x2a +/* 056148 7F021618 000470C0 */ sll $t6, $a0, 3 +/* 05614C 7F02161C 01C47021 */ addu $t6, $t6, $a0 +/* 056150 7F021620 000E7100 */ sll $t6, $t6, 4 +/* 056154 7F021624 000948C0 */ sll $t1, $t1, 3 +/* 056158 7F021628 3C0B8004 */ lui $t3, %hi(headHat_array_8003E464) +/* 05615C 7F02162C 256BE464 */ addiu $t3, %lo(headHat_array_8003E464) # addiu $t3, $t3, -0x1b9c +/* 056160 7F021630 01C95021 */ addu $t2, $t6, $t1 +/* 056164 7F021634 014B1821 */ addu $v1, $t2, $t3 +/* 056168 7F021638 0FC243BF */ jal get_debug_render_raster +/* 05616C 7F02163C AFA30058 */ sw $v1, 0x58($sp) +/* 056170 7F021640 144000AA */ bnez $v0, .L7F0218EC +/* 056174 7F021644 8FA30058 */ lw $v1, 0x58($sp) +/* 056178 7F021648 AFA00054 */ sw $zero, 0x54($sp) +/* 05617C 7F02164C 00002025 */ move $a0, $zero +/* 056180 7F021650 24050020 */ li $a1, 32 +/* 056184 7F021654 0C0030C3 */ jal joyGetButtons +/* 056188 7F021658 AFA30058 */ sw $v1, 0x58($sp) +/* 05618C 7F02165C 1040004F */ beqz $v0, .L7F02179C +/* 056190 7F021660 8FA30058 */ lw $v1, 0x58($sp) +/* 056194 7F021664 00002025 */ move $a0, $zero +/* 056198 7F021668 34058000 */ li $a1, 32768 +/* 05619C 7F02166C 0C0030C3 */ jal joyGetButtons +/* 0561A0 7F021670 AFA30058 */ sw $v1, 0x58($sp) +/* 0561A4 7F021674 10400008 */ beqz $v0, .L7F021698 +/* 0561A8 7F021678 8FA30058 */ lw $v1, 0x58($sp) +/* 0561AC 7F02167C 3C018005 */ lui $at, %hi(D_80051D58) +/* 0561B0 7F021680 C4281D58 */ lwc1 $f8, %lo(D_80051D58)($at) +/* 0561B4 7F021684 C4660008 */ lwc1 $f6, 8($v1) +/* 0561B8 7F021688 240D0001 */ li $t5, 1 +/* 0561BC 7F02168C 46083281 */ sub.s $f10, $f6, $f8 +/* 0561C0 7F021690 E46A0008 */ swc1 $f10, 8($v1) +/* 0561C4 7F021694 AFAD0054 */ sw $t5, 0x54($sp) +.L7F021698: +/* 0561C8 7F021698 00002025 */ move $a0, $zero +/* 0561CC 7F02169C 24054000 */ li $a1, 16384 +/* 0561D0 7F0216A0 0C0030C3 */ jal joyGetButtons +/* 0561D4 7F0216A4 AFA30058 */ sw $v1, 0x58($sp) +/* 0561D8 7F0216A8 10400008 */ beqz $v0, .L7F0216CC +/* 0561DC 7F0216AC 8FA30058 */ lw $v1, 0x58($sp) +/* 0561E0 7F0216B0 3C018005 */ lui $at, %hi(D_80051D5C) +/* 0561E4 7F0216B4 C4321D5C */ lwc1 $f18, %lo(D_80051D5C)($at) +/* 0561E8 7F0216B8 C4700008 */ lwc1 $f16, 8($v1) +/* 0561EC 7F0216BC 240C0001 */ li $t4, 1 +/* 0561F0 7F0216C0 46128100 */ add.s $f4, $f16, $f18 +/* 0561F4 7F0216C4 E4640008 */ swc1 $f4, 8($v1) +/* 0561F8 7F0216C8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0216CC: +/* 0561FC 7F0216CC 00002025 */ move $a0, $zero +/* 056200 7F0216D0 24050004 */ li $a1, 4 +/* 056204 7F0216D4 0C0030C3 */ jal joyGetButtons +/* 056208 7F0216D8 AFA30058 */ sw $v1, 0x58($sp) +/* 05620C 7F0216DC 10400008 */ beqz $v0, .L7F021700 +/* 056210 7F0216E0 8FA30058 */ lw $v1, 0x58($sp) +/* 056214 7F0216E4 3C018005 */ lui $at, %hi(D_80051D60) +/* 056218 7F0216E8 C4281D60 */ lwc1 $f8, %lo(D_80051D60)($at) +/* 05621C 7F0216EC C4660004 */ lwc1 $f6, 4($v1) +/* 056220 7F0216F0 24080001 */ li $t0, 1 +/* 056224 7F0216F4 46083281 */ sub.s $f10, $f6, $f8 +/* 056228 7F0216F8 E46A0004 */ swc1 $f10, 4($v1) +/* 05622C 7F0216FC AFA80054 */ sw $t0, 0x54($sp) +.L7F021700: +/* 056230 7F021700 00002025 */ move $a0, $zero +/* 056234 7F021704 24050008 */ li $a1, 8 +/* 056238 7F021708 0C0030C3 */ jal joyGetButtons +/* 05623C 7F02170C AFA30058 */ sw $v1, 0x58($sp) +/* 056240 7F021710 10400008 */ beqz $v0, .L7F021734 +/* 056244 7F021714 8FA30058 */ lw $v1, 0x58($sp) +/* 056248 7F021718 3C018005 */ lui $at, %hi(D_80051D64) +/* 05624C 7F02171C C4321D64 */ lwc1 $f18, %lo(D_80051D64)($at) +/* 056250 7F021720 C4700004 */ lwc1 $f16, 4($v1) +/* 056254 7F021724 24180001 */ li $t8, 1 +/* 056258 7F021728 46128100 */ add.s $f4, $f16, $f18 +/* 05625C 7F02172C E4640004 */ swc1 $f4, 4($v1) +/* 056260 7F021730 AFB80054 */ sw $t8, 0x54($sp) +.L7F021734: +/* 056264 7F021734 00002025 */ move $a0, $zero +/* 056268 7F021738 24050002 */ li $a1, 2 +/* 05626C 7F02173C 0C0030C3 */ jal joyGetButtons +/* 056270 7F021740 AFA30058 */ sw $v1, 0x58($sp) +/* 056274 7F021744 10400008 */ beqz $v0, .L7F021768 +/* 056278 7F021748 8FA30058 */ lw $v1, 0x58($sp) +/* 05627C 7F02174C 3C018005 */ lui $at, %hi(D_80051D68) +/* 056280 7F021750 C4281D68 */ lwc1 $f8, %lo(D_80051D68)($at) +/* 056284 7F021754 C4660000 */ lwc1 $f6, ($v1) +/* 056288 7F021758 24190001 */ li $t9, 1 +/* 05628C 7F02175C 46083281 */ sub.s $f10, $f6, $f8 +/* 056290 7F021760 E46A0000 */ swc1 $f10, ($v1) +/* 056294 7F021764 AFB90054 */ sw $t9, 0x54($sp) +.L7F021768: +/* 056298 7F021768 00002025 */ move $a0, $zero +/* 05629C 7F02176C 24050001 */ li $a1, 1 +/* 0562A0 7F021770 0C0030C3 */ jal joyGetButtons +/* 0562A4 7F021774 AFA30058 */ sw $v1, 0x58($sp) +/* 0562A8 7F021778 10400008 */ beqz $v0, .L7F02179C +/* 0562AC 7F02177C 8FA30058 */ lw $v1, 0x58($sp) +/* 0562B0 7F021780 3C018005 */ lui $at, %hi(D_80051D6C) +/* 0562B4 7F021784 C4321D6C */ lwc1 $f18, %lo(D_80051D6C)($at) +/* 0562B8 7F021788 C4700000 */ lwc1 $f16, ($v1) +/* 0562BC 7F02178C 240F0001 */ li $t7, 1 +/* 0562C0 7F021790 46128100 */ add.s $f4, $f16, $f18 +/* 0562C4 7F021794 E4640000 */ swc1 $f4, ($v1) +/* 0562C8 7F021798 AFAF0054 */ sw $t7, 0x54($sp) +.L7F02179C: +/* 0562CC 7F02179C 00002025 */ move $a0, $zero +/* 0562D0 7F0217A0 24050010 */ li $a1, 16 +/* 0562D4 7F0217A4 0C0030C3 */ jal joyGetButtons +/* 0562D8 7F0217A8 AFA30058 */ sw $v1, 0x58($sp) +/* 0562DC 7F0217AC 1040004F */ beqz $v0, .L7F0218EC +/* 0562E0 7F0217B0 8FA30058 */ lw $v1, 0x58($sp) +/* 0562E4 7F0217B4 00002025 */ move $a0, $zero +/* 0562E8 7F0217B8 34058000 */ li $a1, 32768 +/* 0562EC 7F0217BC 0C0030C3 */ jal joyGetButtons +/* 0562F0 7F0217C0 AFA30058 */ sw $v1, 0x58($sp) +/* 0562F4 7F0217C4 10400008 */ beqz $v0, .L7F0217E8 +/* 0562F8 7F0217C8 8FA30058 */ lw $v1, 0x58($sp) +/* 0562FC 7F0217CC 3C018005 */ lui $at, %hi(D_80051D70) +/* 056300 7F0217D0 C4281D70 */ lwc1 $f8, %lo(D_80051D70)($at) +/* 056304 7F0217D4 C4660014 */ lwc1 $f6, 0x14($v1) +/* 056308 7F0217D8 240E0001 */ li $t6, 1 +/* 05630C 7F0217DC 46083282 */ mul.s $f10, $f6, $f8 +/* 056310 7F0217E0 E46A0014 */ swc1 $f10, 0x14($v1) +/* 056314 7F0217E4 AFAE0054 */ sw $t6, 0x54($sp) +.L7F0217E8: +/* 056318 7F0217E8 00002025 */ move $a0, $zero +/* 05631C 7F0217EC 24054000 */ li $a1, 16384 +/* 056320 7F0217F0 0C0030C3 */ jal joyGetButtons +/* 056324 7F0217F4 AFA30058 */ sw $v1, 0x58($sp) +/* 056328 7F0217F8 10400008 */ beqz $v0, .L7F02181C +/* 05632C 7F0217FC 8FA30058 */ lw $v1, 0x58($sp) +/* 056330 7F021800 3C018005 */ lui $at, %hi(D_80051D74) +/* 056334 7F021804 C4321D74 */ lwc1 $f18, %lo(D_80051D74)($at) +/* 056338 7F021808 C4700014 */ lwc1 $f16, 0x14($v1) +/* 05633C 7F02180C 24090001 */ li $t1, 1 +/* 056340 7F021810 46128102 */ mul.s $f4, $f16, $f18 +/* 056344 7F021814 E4640014 */ swc1 $f4, 0x14($v1) +/* 056348 7F021818 AFA90054 */ sw $t1, 0x54($sp) +.L7F02181C: +/* 05634C 7F02181C 00002025 */ move $a0, $zero +/* 056350 7F021820 24050004 */ li $a1, 4 +/* 056354 7F021824 0C0030C3 */ jal joyGetButtons +/* 056358 7F021828 AFA30058 */ sw $v1, 0x58($sp) +/* 05635C 7F02182C 10400008 */ beqz $v0, .L7F021850 +/* 056360 7F021830 8FA30058 */ lw $v1, 0x58($sp) +/* 056364 7F021834 3C018005 */ lui $at, %hi(D_80051D78) +/* 056368 7F021838 C4281D78 */ lwc1 $f8, %lo(D_80051D78)($at) +/* 05636C 7F02183C C4660010 */ lwc1 $f6, 0x10($v1) +/* 056370 7F021840 240A0001 */ li $t2, 1 +/* 056374 7F021844 46083282 */ mul.s $f10, $f6, $f8 +/* 056378 7F021848 E46A0010 */ swc1 $f10, 0x10($v1) +/* 05637C 7F02184C AFAA0054 */ sw $t2, 0x54($sp) +.L7F021850: +/* 056380 7F021850 00002025 */ move $a0, $zero +/* 056384 7F021854 24050008 */ li $a1, 8 +/* 056388 7F021858 0C0030C3 */ jal joyGetButtons +/* 05638C 7F02185C AFA30058 */ sw $v1, 0x58($sp) +/* 056390 7F021860 10400008 */ beqz $v0, .L7F021884 +/* 056394 7F021864 8FA30058 */ lw $v1, 0x58($sp) +/* 056398 7F021868 3C018005 */ lui $at, %hi(D_80051D7C) +/* 05639C 7F02186C C4321D7C */ lwc1 $f18, %lo(D_80051D7C)($at) +/* 0563A0 7F021870 C4700010 */ lwc1 $f16, 0x10($v1) +/* 0563A4 7F021874 240B0001 */ li $t3, 1 +/* 0563A8 7F021878 46128102 */ mul.s $f4, $f16, $f18 +/* 0563AC 7F02187C E4640010 */ swc1 $f4, 0x10($v1) +/* 0563B0 7F021880 AFAB0054 */ sw $t3, 0x54($sp) +.L7F021884: +/* 0563B4 7F021884 00002025 */ move $a0, $zero +/* 0563B8 7F021888 24050002 */ li $a1, 2 +/* 0563BC 7F02188C 0C0030C3 */ jal joyGetButtons +/* 0563C0 7F021890 AFA30058 */ sw $v1, 0x58($sp) +/* 0563C4 7F021894 10400008 */ beqz $v0, .L7F0218B8 +/* 0563C8 7F021898 8FA30058 */ lw $v1, 0x58($sp) +/* 0563CC 7F02189C 3C018005 */ lui $at, %hi(D_80051D80) +/* 0563D0 7F0218A0 C4281D80 */ lwc1 $f8, %lo(D_80051D80)($at) +/* 0563D4 7F0218A4 C466000C */ lwc1 $f6, 0xc($v1) +/* 0563D8 7F0218A8 240D0001 */ li $t5, 1 +/* 0563DC 7F0218AC 46083282 */ mul.s $f10, $f6, $f8 +/* 0563E0 7F0218B0 E46A000C */ swc1 $f10, 0xc($v1) +/* 0563E4 7F0218B4 AFAD0054 */ sw $t5, 0x54($sp) +.L7F0218B8: +/* 0563E8 7F0218B8 00002025 */ move $a0, $zero +/* 0563EC 7F0218BC 24050001 */ li $a1, 1 +/* 0563F0 7F0218C0 0C0030C3 */ jal joyGetButtons +/* 0563F4 7F0218C4 AFA30058 */ sw $v1, 0x58($sp) +/* 0563F8 7F0218C8 10400008 */ beqz $v0, .L7F0218EC +/* 0563FC 7F0218CC 8FA30058 */ lw $v1, 0x58($sp) +/* 056400 7F0218D0 3C018005 */ lui $at, %hi(D_80051D84) +/* 056404 7F0218D4 C4321D84 */ lwc1 $f18, %lo(D_80051D84)($at) +/* 056408 7F0218D8 C470000C */ lwc1 $f16, 0xc($v1) +/* 05640C 7F0218DC 240C0001 */ li $t4, 1 +/* 056410 7F0218E0 46128102 */ mul.s $f4, $f16, $f18 +/* 056414 7F0218E4 E464000C */ swc1 $f4, 0xc($v1) +/* 056418 7F0218E8 AFAC0054 */ sw $t4, 0x54($sp) +.L7F0218EC: +/* 05641C 7F0218EC 3C018005 */ lui $at, %hi(D_80051D88) +/* 056420 7F0218F0 C4201D88 */ lwc1 $f0, %lo(D_80051D88)($at) +/* 056424 7F0218F4 C4660000 */ lwc1 $f6, ($v1) +/* 056428 7F0218F8 27A400F0 */ addiu $a0, $sp, 0xf0 +/* 05642C 7F0218FC 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056430 7F021900 46003202 */ mul.s $f8, $f6, $f0 +/* 056434 7F021904 E7A800F0 */ swc1 $f8, 0xf0($sp) +/* 056438 7F021908 C46A0004 */ lwc1 $f10, 4($v1) +/* 05643C 7F02190C 46005402 */ mul.s $f16, $f10, $f0 +/* 056440 7F021910 E7B000F4 */ swc1 $f16, 0xf4($sp) +/* 056444 7F021914 C4720008 */ lwc1 $f18, 8($v1) +/* 056448 7F021918 46009102 */ mul.s $f4, $f18, $f0 +/* 05644C 7F02191C E7A400F8 */ swc1 $f4, 0xf8($sp) +/* 056450 7F021920 C466000C */ lwc1 $f6, 0xc($v1) +/* 056454 7F021924 E7A600EC */ swc1 $f6, 0xec($sp) +/* 056458 7F021928 C4680010 */ lwc1 $f8, 0x10($v1) +/* 05645C 7F02192C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 056460 7F021930 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 056464 7F021934 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 056468 7F021938 E7AA00E4 */ swc1 $f10, 0xe4($sp) +/* 05646C 7F02193C C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 056470 7F021940 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 056474 7F021944 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056478 7F021948 C7AC00E8 */ lwc1 $f12, 0xe8($sp) +/* 05647C 7F02194C 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 056480 7F021950 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056484 7F021954 C7AC00E4 */ lwc1 $f12, 0xe4($sp) +/* 056488 7F021958 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 05648C 7F02195C 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056490 7F021960 8FA800FC */ lw $t0, 0xfc($sp) +/* 056494 7F021964 27A500A4 */ addiu $a1, $sp, 0xa4 +/* 056498 7F021968 27A60064 */ addiu $a2, $sp, 0x64 +/* 05649C 7F02196C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 0564A0 7F021970 8D04000C */ lw $a0, 0xc($t0) +/* 0564A4 7F021974 8FB800FC */ lw $t8, 0xfc($sp) +/* 0564A8 7F021978 27A40064 */ addiu $a0, $sp, 0x64 +/* 0564AC 7F02197C 0FC16008 */ jal matrix_4x4_copy +/* 0564B0 7F021980 8F05000C */ lw $a1, 0xc($t8) +/* 0564B4 7F021984 8FB90060 */ lw $t9, 0x60($sp) +/* 0564B8 7F021988 24010002 */ li $at, 2 +/* 0564BC 7F02198C 57210003 */ bnel $t9, $at, .L7F02199C +/* 0564C0 7F021990 960F0012 */ lhu $t7, 0x12($s0) +/* 0564C4 7F021994 AFA00108 */ sw $zero, 0x108($sp) +.L7F021998: +/* 0564C8 7F021998 960F0012 */ lhu $t7, 0x12($s0) +.L7F02199C: +/* 0564CC 7F02199C 8FA90100 */ lw $t1, 0x100($sp) +/* 0564D0 7F0219A0 8FA500FC */ lw $a1, 0xfc($sp) +/* 0564D4 7F0219A4 31EE0001 */ andi $t6, $t7, 1 +/* 0564D8 7F0219A8 11C00005 */ beqz $t6, .L7F0219C0 +/* 0564DC 7F0219AC 00000000 */ nop +/* 0564E0 7F0219B0 8D2A0064 */ lw $t2, 0x64($t1) +/* 0564E4 7F0219B4 314B0080 */ andi $t3, $t2, 0x80 +/* 0564E8 7F0219B8 55600005 */ bnezl $t3, .L7F0219D0 +/* 0564EC 7F0219BC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219C0: +/* 0564F0 7F0219C0 0FC1AC48 */ jal sub_GAME_7F06B120 +/* 0564F4 7F0219C4 8E040020 */ lw $a0, 0x20($s0) +/* 0564F8 7F0219C8 AE020020 */ sw $v0, 0x20($s0) +/* 0564FC 7F0219CC 8FAD0110 */ lw $t5, 0x110($sp) +.L7F0219D0: +/* 056500 7F0219D0 8DAC0008 */ lw $t4, 8($t5) +/* 056504 7F0219D4 8D880008 */ lw $t0, 8($t4) +/* 056508 7F0219D8 8D050010 */ lw $a1, 0x10($t0) +/* 05650C 7F0219DC 10A0000E */ beqz $a1, .L7F021A18 +/* 056510 7F0219E0 00000000 */ nop +/* 056514 7F0219E4 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 056518 7F0219E8 01A02025 */ move $a0, $t5 +/* 05651C 7F0219EC 8C430000 */ lw $v1, ($v0) +/* 056520 7F0219F0 10600009 */ beqz $v1, .L7F021A18 +/* 056524 7F0219F4 00000000 */ nop +/* 056528 7F0219F8 8C780008 */ lw $t8, 8($v1) +/* 05652C 7F0219FC 8F050004 */ lw $a1, 4($t8) +/* 056530 7F021A00 10A00005 */ beqz $a1, .L7F021A18 +/* 056534 7F021A04 00000000 */ nop +/* 056538 7F021A08 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 05653C 7F021A0C 8FA40110 */ lw $a0, 0x110($sp) +/* 056540 7F021A10 8FB90108 */ lw $t9, 0x108($sp) +/* 056544 7F021A14 AC590000 */ sw $t9, ($v0) +.L7F021A18: +/* 056548 7F021A18 0FC1ACA7 */ jal sub_GAME_7F06B29C +/* 05654C 7F021A1C 8E040020 */ lw $a0, 0x20($s0) +/* 056550 7F021A20 0FC1AECA */ jal sub_GAME_7F06BB28 +/* 056554 7F021A24 8E040020 */ lw $a0, 0x20($s0) +/* 056558 7F021A28 10000020 */ b .L7F021AAC +/* 05655C 7F021A2C AE020020 */ sw $v0, 0x20($s0) +/* 056560 7F021A30 8E020160 */ lw $v0, 0x160($s0) +.L7F021A34: +/* 056564 7F021A34 50400005 */ beql $v0, $zero, .L7F021A4C +/* 056568 7F021A38 8E020164 */ lw $v0, 0x164($s0) +/* 05656C 7F021A3C 904F0001 */ lbu $t7, 1($v0) +/* 056570 7F021A40 31EEFFFD */ andi $t6, $t7, 0xfffd +/* 056574 7F021A44 A04E0001 */ sb $t6, 1($v0) +/* 056578 7F021A48 8E020164 */ lw $v0, 0x164($s0) +.L7F021A4C: +/* 05657C 7F021A4C 2403FFFD */ li $v1, -3 +/* 056580 7F021A50 50400005 */ beql $v0, $zero, .L7F021A68 +/* 056584 7F021A54 8E0201D8 */ lw $v0, 0x1d8($s0) +/* 056588 7F021A58 90490001 */ lbu $t1, 1($v0) +/* 05658C 7F021A5C 01235024 */ and $t2, $t1, $v1 +/* 056590 7F021A60 A04A0001 */ sb $t2, 1($v0) +/* 056594 7F021A64 8E0201D8 */ lw $v0, 0x1d8($s0) +.L7F021A68: +/* 056598 7F021A68 50400005 */ beql $v0, $zero, .L7F021A80 +/* 05659C 7F021A6C 8FA80158 */ lw $t0, 0x158($sp) +/* 0565A0 7F021A70 904B0001 */ lbu $t3, 1($v0) +/* 0565A4 7F021A74 01636024 */ and $t4, $t3, $v1 +/* 0565A8 7F021A78 A04C0001 */ sb $t4, 1($v0) +/* 0565AC 7F021A7C 8FA80158 */ lw $t0, 0x158($sp) +.L7F021A80: +/* 0565B0 7F021A80 910D0001 */ lbu $t5, 1($t0) +/* 0565B4 7F021A84 01A3C024 */ and $t8, $t5, $v1 +/* 0565B8 7F021A88 A1180001 */ sb $t8, 1($t0) +/* 0565BC 7F021A8C 921900F8 */ lbu $t9, 0xf8($s0) +/* 0565C0 7F021A90 920F00F9 */ lbu $t7, 0xf9($s0) +/* 0565C4 7F021A94 920E00FA */ lbu $t6, 0xfa($s0) +/* 0565C8 7F021A98 920900FB */ lbu $t1, 0xfb($s0) +/* 0565CC 7F021A9C A21900F4 */ sb $t9, 0xf4($s0) +/* 0565D0 7F021AA0 A20F00F5 */ sb $t7, 0xf5($s0) +/* 0565D4 7F021AA4 A20E00F6 */ sb $t6, 0xf6($s0) +/* 0565D8 7F021AA8 A20900F7 */ sb $t1, 0xf7($s0) +.L7F021AAC: +/* 0565DC 7F021AAC 8E0A0014 */ lw $t2, 0x14($s0) +/* 0565E0 7F021AB0 314B0400 */ andi $t3, $t2, 0x400 +/* 0565E4 7F021AB4 55600015 */ bnezl $t3, .L7F021B0C +/* 0565E8 7F021AB8 00001025 */ move $v0, $zero +/* 0565EC 7F021ABC 96020012 */ lhu $v0, 0x12($s0) +/* 0565F0 7F021AC0 8FAD0158 */ lw $t5, 0x158($sp) +/* 0565F4 7F021AC4 304C0001 */ andi $t4, $v0, 1 +/* 0565F8 7F021AC8 1180000D */ beqz $t4, .L7F021B00 +/* 0565FC 7F021ACC 00000000 */ nop +/* 056600 7F021AD0 8DA40020 */ lw $a0, 0x20($t5) +/* 056604 7F021AD4 50800009 */ beql $a0, $zero, .L7F021AFC +/* 056608 7F021AD8 3058FFFE */ andi $t8, $v0, 0xfffe +/* 05660C 7F021ADC 8C830024 */ lw $v1, 0x24($a0) +.L7F021AE0: +/* 056610 7F021AE0 0FC1304C */ jal sub_GAME_7F04C130 +/* 056614 7F021AE4 AFA3003C */ sw $v1, 0x3c($sp) +/* 056618 7F021AE8 8FA4003C */ lw $a0, 0x3c($sp) +/* 05661C 7F021AEC 5480FFFC */ bnezl $a0, .L7F021AE0 +/* 056620 7F021AF0 8C830024 */ lw $v1, 0x24($a0) +/* 056624 7F021AF4 96020012 */ lhu $v0, 0x12($s0) +/* 056628 7F021AF8 3058FFFE */ andi $t8, $v0, 0xfffe +.L7F021AFC: +/* 05662C 7F021AFC A6180012 */ sh $t8, 0x12($s0) +.L7F021B00: +/* 056630 7F021B00 0FC0B89B */ jal sub_GAME_7F02E26C +/* 056634 7F021B04 02002025 */ move $a0, $s0 +/* 056638 7F021B08 00001025 */ move $v0, $zero +.L7F021B0C: +/* 05663C 7F021B0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 056640 7F021B10 8FB00020 */ lw $s0, 0x20($sp) +/* 056644 7F021B14 27BD0158 */ addiu $sp, $sp, 0x158 +/* 056648 7F021B18 03E00008 */ jr $ra +/* 05664C 7F021B1C 00000000 */ nop +) +#endif + #endif @@ -6071,7 +7691,7 @@ glabel sub_GAME_7F022078 /* 056C20 7F0220F0 8E190010 */ lw $t9, 0x10($s0) /* 056C24 7F0220F4 5320002C */ beql $t9, $zero, .L7F0221A8 /* 056C28 7F0220F8 8E050004 */ lw $a1, 4($s0) -/* 056C2C 7F0220FC 0C002914 */ jal get_random_value +/* 056C2C 7F0220FC 0C002914 */ jal randomGetNext /* 056C30 7F022100 AFA60058 */ sw $a2, 0x58($sp) /* 056C34 7F022104 304C0004 */ andi $t4, $v0, 4 /* 056C38 7F022108 15800026 */ bnez $t4, .L7F0221A4 @@ -6286,7 +7906,7 @@ glabel sub_GAME_7F0221DC /* 056F04 7F0223D4 0040A025 */ move $s4, $v0 /* 056F08 7F0223D8 00008825 */ move $s1, $zero /* 056F0C 7F0223DC 00009825 */ move $s3, $zero -/* 056F10 7F0223E0 0C002914 */ jal get_random_value +/* 056F10 7F0223E0 0C002914 */ jal randomGetNext /* 056F14 7F0223E4 AFA00060 */ sw $zero, 0x60($sp) /* 056F18 7F0223E8 24010032 */ li $at, 50 /* 056F1C 7F0223EC 0041001B */ divu $zero, $v0, $at @@ -6817,7 +8437,7 @@ glabel sub_GAME_7F022980 /* 05768C 7F022B5C 96C90012 */ lhu $t1, 0x12($s6) /* 057690 7F022B60 352A0001 */ ori $t2, $t1, 1 /* 057694 7F022B64 A6CA0012 */ sh $t2, 0x12($s6) -/* 057698 7F022B68 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 057698 7F022B68 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 05769C 7F022B6C 8E840018 */ lw $a0, 0x18($s4) /* 0576A0 7F022B70 0FC26C54 */ jal get_cur_playernum /* 0576A4 7F022B74 46000506 */ mov.s $f20, $f0 @@ -6848,7 +8468,7 @@ glabel sub_GAME_7F022980 .L7F022BD0: /* 057700 7F022BD0 AFA30088 */ sw $v1, 0x88($sp) /* 057704 7F022BD4 AFA40054 */ sw $a0, 0x54($sp) -/* 057708 7F022BD8 0C002914 */ jal get_random_value +/* 057708 7F022BD8 0C002914 */ jal randomGetNext /* 05770C 7F022BDC AFA50050 */ sw $a1, 0x50($sp) /* 057710 7F022BE0 8FA30088 */ lw $v1, 0x88($sp) /* 057714 7F022BE4 8FA40054 */ lw $a0, 0x54($sp) @@ -6898,7 +8518,7 @@ glabel sub_GAME_7F022980 /* 0577B4 7F022C84 02AE7821 */ addu $t7, $s5, $t6 /* 0577B8 7F022C88 8DF00000 */ lw $s0, ($t7) .L7F022C8C: -/* 0577BC 7F022C8C 0C002914 */ jal get_random_value +/* 0577BC 7F022C8C 0C002914 */ jal randomGetNext /* 0577C0 7F022C90 00000000 */ nop /* 0577C4 7F022C94 8618000A */ lh $t8, 0xa($s0) /* 0577C8 7F022C98 8E190004 */ lw $t9, 4($s0) diff --git a/src/game/chr.h b/src/game/chr.h index 0f39f38..8968fd0 100644 --- a/src/game/chr.h +++ b/src/game/chr.h @@ -183,10 +183,13 @@ extern s32 D_8002CCAC; extern s32 D_8002CCB0; extern s32 D_8002CCB4; extern u8 D_8002CCB8; -extern s32 num_bodies; -extern s32 num_male_heads; -extern s32 num_female_heads; +extern u32 num_bodies; +extern u32 num_male_heads; +extern u32 num_female_heads; extern s32 list_of_bodies[]; extern s32 random_male_heads[]; extern s32 random_female_heads[]; +extern u32 current_random_body; +extern u32 current_random_male_head; +extern u32 current_random_female_head; #endif diff --git a/src/game/chr2.c b/src/game/chr2.c index 870d0d0..09ba07e 100644 --- a/src/game/chr2.c +++ b/src/game/chr2.c @@ -5,39 +5,17 @@ #include "game/lvl.h" #include "bondconstants.h" -#ifdef NONMATCHING -void load_body_head_if_not_loaded(void) { +s32 load_body_head_if_not_loaded(s32 model) +{ + if (c_item_entries[model].header->offset_obj_table == 0) + { + load_object_into_memory(c_item_entries[model].header, c_item_entries[model].filename); + return 1; + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel load_body_head_if_not_loaded -/* 057DC0 7F023290 00047080 */ sll $t6, $a0, 2 -/* 057DC4 7F023294 01C47021 */ addu $t6, $t6, $a0 -/* 057DC8 7F023298 3C0F8004 */ lui $t7, %hi(c_item_entries) -/* 057DCC 7F02329C 25EFDE10 */ addiu $t7, %lo(c_item_entries) # addiu $t7, $t7, -0x21f0 -/* 057DD0 7F0232A0 000E7080 */ sll $t6, $t6, 2 -/* 057DD4 7F0232A4 01CF1021 */ addu $v0, $t6, $t7 -/* 057DD8 7F0232A8 8C460000 */ lw $a2, ($v0) -/* 057DDC 7F0232AC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 057DE0 7F0232B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 057DE4 7F0232B4 8CD80000 */ lw $t8, ($a2) -/* 057DE8 7F0232B8 00C02025 */ move $a0, $a2 -/* 057DEC 7F0232BC 57000006 */ bnezl $t8, .L7F0232D8 -/* 057DF0 7F0232C0 00001025 */ move $v0, $zero -/* 057DF4 7F0232C4 0FC1D953 */ jal load_object_into_memory -/* 057DF8 7F0232C8 8C450004 */ lw $a1, 4($v0) -/* 057DFC 7F0232CC 10000002 */ b .L7F0232D8 -/* 057E00 7F0232D0 24020001 */ li $v0, 1 -/* 057E04 7F0232D4 00001025 */ move $v0, $zero -.L7F0232D8: -/* 057E08 7F0232D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 057E0C 7F0232DC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 057E10 7F0232E0 03E00008 */ jr $ra -/* 057E14 7F0232E4 00000000 */ nop -) -#endif + @@ -324,6 +302,143 @@ glabel maybe_load_models_for_guards ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051D90 +.word 0x3dccccce /*0.10000001*/ +glabel D_80051D94 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80051D98 +.word 0x0 +glabel D_80051D9C +.word 0x0 +.text +glabel maybe_load_models_for_guards +/* 057E18 7F0232E8 00047880 */ sll $t7, $a0, 2 +/* 057E1C 7F0232EC 01E47821 */ addu $t7, $t7, $a0 +/* 057E20 7F0232F0 3C188004 */ lui $t8, %hi(c_item_entries) +/* 057E24 7F0232F4 2718DE10 */ addiu $t8, %lo(c_item_entries) # addiu $t8, $t8, -0x21f0 +/* 057E28 7F0232F8 000F7880 */ sll $t7, $t7, 2 +/* 057E2C 7F0232FC 01F81021 */ addu $v0, $t7, $t8 +/* 057E30 7F023300 3C018005 */ lui $at, %hi(D_80051D90) +/* 057E34 7F023304 C4261D90 */ lwc1 $f6, %lo(D_80051D90)($at) +/* 057E38 7F023308 C4440008 */ lwc1 $f4, 8($v0) +/* 057E3C 7F02330C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 057E40 7F023310 C44A000C */ lwc1 $f10, 0xc($v0) +/* 057E44 7F023314 46062202 */ mul.s $f8, $f4, $f6 +/* 057E48 7F023318 AFBF001C */ sw $ra, 0x1c($sp) +/* 057E4C 7F02331C AFB10018 */ sw $s1, 0x18($sp) +/* 057E50 7F023320 AFB00014 */ sw $s0, 0x14($sp) +/* 057E54 7F023324 AFA40038 */ sw $a0, 0x38($sp) +/* 057E58 7F023328 00C08025 */ move $s0, $a2 +/* 057E5C 7F02332C 00E08825 */ move $s1, $a3 +/* 057E60 7F023330 AFA5003C */ sw $a1, 0x3c($sp) +/* 057E64 7F023334 E7A80034 */ swc1 $f8, 0x34($sp) +/* 057E68 7F023338 AFA0002C */ sw $zero, 0x2c($sp) +/* 057E6C 7F02333C 2404000C */ li $a0, 12 +/* 057E70 7F023340 AFA20024 */ sw $v0, 0x24($sp) +/* 057E74 7F023344 0FC249EF */ jal cheatCheckIfOn +/* 057E78 7F023348 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 057E7C 7F02334C 10400005 */ beqz $v0, .L7F023364 +/* 057E80 7F023350 C7B00034 */ lwc1 $f16, 0x34($sp) +/* 057E84 7F023354 3C018005 */ lui $at, %hi(D_80051D94) +/* 057E88 7F023358 C4321D94 */ lwc1 $f18, %lo(D_80051D94)($at) +/* 057E8C 7F02335C 46128102 */ mul.s $f4, $f16, $f18 +/* 057E90 7F023360 E7A40034 */ swc1 $f4, 0x34($sp) +.L7F023364: +/* 057E94 7F023364 8E190000 */ lw $t9, ($s0) +/* 057E98 7F023368 8FA80024 */ lw $t0, 0x24($sp) +/* 057E9C 7F02336C 17200003 */ bnez $t9, .L7F02337C +/* 057EA0 7F023370 02002025 */ move $a0, $s0 +/* 057EA4 7F023374 0FC1D953 */ jal load_object_into_memory +/* 057EA8 7F023378 8D050004 */ lw $a1, 4($t0) +.L7F02337C: +/* 057EAC 7F02337C 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057EB0 7F023380 02002025 */ move $a0, $s0 +/* 057EB4 7F023384 8FA90024 */ lw $t1, 0x24($sp) +/* 057EB8 7F023388 8FA2003C */ lw $v0, 0x3c($sp) +/* 057EBC 7F02338C 912A0011 */ lbu $t2, 0x11($t1) +/* 057EC0 7F023390 55400018 */ bnezl $t2, .L7F0233F4 +/* 057EC4 7F023394 8FA9004C */ lw $t1, 0x4c($sp) +/* 057EC8 7F023398 04420016 */ bltzl $v0, .L7F0233F4 +/* 057ECC 7F02339C 8FA9004C */ lw $t1, 0x4c($sp) +/* 057ED0 7F0233A0 8E0B0008 */ lw $t3, 8($s0) +/* 057ED4 7F0233A4 8D6C0010 */ lw $t4, 0x10($t3) +/* 057ED8 7F0233A8 11800011 */ beqz $t4, .L7F0233F0 +/* 057EDC 7F0233AC AFAC002C */ sw $t4, 0x2c($sp) +/* 057EE0 7F0233B0 8E2E0000 */ lw $t6, ($s1) +/* 057EE4 7F0233B4 00027880 */ sll $t7, $v0, 2 +/* 057EE8 7F0233B8 01E27821 */ addu $t7, $t7, $v0 +/* 057EEC 7F0233BC 15C00006 */ bnez $t6, .L7F0233D8 +/* 057EF0 7F0233C0 02202025 */ move $a0, $s1 +/* 057EF4 7F0233C4 000F7880 */ sll $t7, $t7, 2 +/* 057EF8 7F0233C8 3C058004 */ lui $a1, %hi(c_item_entries+4) +/* 057EFC 7F0233CC 00AF2821 */ addu $a1, $a1, $t7 +/* 057F00 7F0233D0 0FC1D953 */ jal load_object_into_memory +/* 057F04 7F0233D4 8CA5DE14 */ lw $a1, %lo(c_item_entries+4)($a1) +.L7F0233D8: +/* 057F08 7F0233D8 0FC1D73D */ jal set_objuse_flag_compute_grp_nums_set_obj_loaded +/* 057F0C 7F0233DC 02202025 */ move $a0, $s1 +/* 057F10 7F0233E0 86180014 */ lh $t8, 0x14($s0) +/* 057F14 7F0233E4 86390014 */ lh $t9, 0x14($s1) +/* 057F18 7F0233E8 03194021 */ addu $t0, $t8, $t9 +/* 057F1C 7F0233EC A6080014 */ sh $t0, 0x14($s0) +.L7F0233F0: +/* 057F20 7F0233F0 8FA9004C */ lw $t1, 0x4c($sp) +.L7F0233F4: +/* 057F24 7F0233F4 55200005 */ bnezl $t1, .L7F02340C +/* 057F28 7F0233F8 8FAA004C */ lw $t2, 0x4c($sp) +/* 057F2C 7F0233FC 0FC1B08F */ jal get_aircraft_obj_instance_controller +/* 057F30 7F023400 02002025 */ move $a0, $s0 +/* 057F34 7F023404 AFA2004C */ sw $v0, 0x4c($sp) +/* 057F38 7F023408 8FAA004C */ lw $t2, 0x4c($sp) +.L7F02340C: +/* 057F3C 7F02340C 11400020 */ beqz $t2, .L7F023490 +/* 057F40 7F023410 01402025 */ move $a0, $t2 +/* 057F44 7F023414 0FC1B39E */ jal set_obj_instance_controller_scale +/* 057F48 7F023418 8FA50034 */ lw $a1, 0x34($sp) +/* 057F4C 7F02341C 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F50 7F023420 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 057F54 7F023424 8FA50030 */ lw $a1, 0x30($sp) +/* 057F58 7F023428 12200019 */ beqz $s1, .L7F023490 +/* 057F5C 7F02342C 8FAB0024 */ lw $t3, 0x24($sp) +/* 057F60 7F023430 916C0011 */ lbu $t4, 0x11($t3) +/* 057F64 7F023434 55800017 */ bnezl $t4, .L7F023494 +/* 057F68 7F023438 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F6C 7F02343C 860D0014 */ lh $t5, 0x14($s0) +/* 057F70 7F023440 862E0014 */ lh $t6, 0x14($s1) +/* 057F74 7F023444 02203025 */ move $a2, $s1 +/* 057F78 7F023448 01AE7823 */ subu $t7, $t5, $t6 +/* 057F7C 7F02344C A60F0014 */ sh $t7, 0x14($s0) +/* 057F80 7F023450 8FA5002C */ lw $a1, 0x2c($sp) +/* 057F84 7F023454 0FC1B0ED */ jal sub_GAME_7F06C3B4 +/* 057F88 7F023458 8FA4004C */ lw $a0, 0x4c($sp) +/* 057F8C 7F02345C 8FB80048 */ lw $t8, 0x48($sp) +/* 057F90 7F023460 5700000C */ bnezl $t8, .L7F023494 +/* 057F94 7F023464 8FBF001C */ lw $ra, 0x1c($sp) +/* 057F98 7F023468 8639000C */ lh $t9, 0xc($s1) +/* 057F9C 7F02346C 5B200009 */ blezl $t9, .L7F023494 +/* 057FA0 7F023470 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FA4 7F023474 8E280008 */ lw $t0, 8($s1) +/* 057FA8 7F023478 8D050000 */ lw $a1, ($t0) +/* 057FAC 7F02347C 50A00005 */ beql $a1, $zero, .L7F023494 +/* 057FB0 7F023480 8FBF001C */ lw $ra, 0x1c($sp) +/* 057FB4 7F023484 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 057FB8 7F023488 8FA4004C */ lw $a0, 0x4c($sp) +/* 057FBC 7F02348C AC400000 */ sw $zero, ($v0) +.L7F023490: +/* 057FC0 7F023490 8FBF001C */ lw $ra, 0x1c($sp) +.L7F023494: +/* 057FC4 7F023494 8FA2004C */ lw $v0, 0x4c($sp) +/* 057FC8 7F023498 8FB00014 */ lw $s0, 0x14($sp) +/* 057FCC 7F02349C 8FB10018 */ lw $s1, 0x18($sp) +/* 057FD0 7F0234A0 03E00008 */ jr $ra +/* 057FD4 7F0234A4 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + + #endif @@ -381,7 +496,7 @@ glabel retrieve_header_for_body_and_head /* 058048 7F023518 00000000 */ nop /* 05804C 7F02351C AFA40030 */ sw $a0, 0x30($sp) /* 058050 7F023520 AFA50034 */ sw $a1, 0x34($sp) -/* 058054 7F023524 0C002914 */ jal get_random_value +/* 058054 7F023524 0C002914 */ jal randomGetNext /* 058058 7F023528 AFA70020 */ sw $a3, 0x20($sp) /* 05805C 7F02352C 30430001 */ andi $v1, $v0, 1 /* 058060 7F023530 2C690001 */ sltiu $t1, $v1, 1 @@ -454,7 +569,7 @@ glabel select_psuedorandom_heads /* 0580F8 7F0235C8 AFBF0014 */ sw $ra, 0x14($sp) /* 0580FC 7F0235CC 11E0001A */ beqz $t7, .L7F023638 /* 058100 7F0235D0 3C0B8003 */ lui $t3, %hi(current_random_female_head) -/* 058104 7F0235D4 0C002914 */ jal get_random_value +/* 058104 7F0235D4 0C002914 */ jal randomGetNext /* 058108 7F0235D8 00000000 */ nop /* 05810C 7F0235DC 3C188003 */ lui $t8, %hi(current_random_male_head) /* 058110 7F0235E0 8F18CE38 */ lw $t8, %lo(current_random_male_head)($t8) @@ -516,7 +631,7 @@ glabel get_random_head /* 0581AC 7F02367C AFBF0014 */ sw $ra, 0x14($sp) /* 0581B0 7F023680 11E00010 */ beqz $t7, .L7F0236C4 /* 0581B4 7F023684 00000000 */ nop -/* 0581B8 7F023688 0C002914 */ jal get_random_value +/* 0581B8 7F023688 0C002914 */ jal randomGetNext /* 0581BC 7F02368C 00000000 */ nop /* 0581C0 7F023690 3C188003 */ lui $t8, %hi(num_male_heads) /* 0581C4 7F023694 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) @@ -533,7 +648,7 @@ glabel get_random_head /* 0581EC 7F0236BC 1000000F */ b .L7F0236FC /* 0581F0 7F0236C0 8FBF0014 */ lw $ra, 0x14($sp) .L7F0236C4: -/* 0581F4 7F0236C4 0C002914 */ jal get_random_value +/* 0581F4 7F0236C4 0C002914 */ jal randomGetNext /* 0581F8 7F0236C8 00000000 */ nop /* 0581FC 7F0236CC 3C098003 */ lui $t1, %hi(num_female_heads) /* 058200 7F0236D0 8D29CD08 */ lw $t1, %lo(num_female_heads)($t1) @@ -777,7 +892,7 @@ glabel sub_GAME_7F023948 /* 0584E4 7F0239B4 10400017 */ beqz $v0, .L7F023A14 /* 0584E8 7F0239B8 8FB80028 */ lw $t8, 0x28($sp) .L7F0239BC: -/* 0584EC 7F0239BC 0C002914 */ jal get_random_value +/* 0584EC 7F0239BC 0C002914 */ jal randomGetNext /* 0584F0 7F0239C0 00000000 */ nop /* 0584F4 7F0239C4 3C0E8007 */ lui $t6, %hi(ptr_animation_table) /* 0584F8 7F0239C8 3C013E80 */ li $at, 0x3E800000 # 0.250000 @@ -863,7 +978,7 @@ glabel sub_GAME_7F023A94 /* 0585F0 7F023AC0 AC800034 */ sw $zero, 0x34($a0) /* 0585F4 7F023AC4 AC800038 */ sw $zero, 0x38($a0) /* 0585F8 7F023AC8 AC8F003C */ sw $t7, 0x3c($a0) -/* 0585FC 7F023ACC 0C002914 */ jal get_random_value +/* 0585FC 7F023ACC 0C002914 */ jal randomGetNext /* 058600 7F023AD0 AC800040 */ sw $zero, 0x40($a0) /* 058604 7F023AD4 24010078 */ li $at, 120 /* 058608 7F023AD8 0041001B */ divu $zero, $v0, $at @@ -922,7 +1037,7 @@ glabel sub_GAME_7F023A94 /* 058930 7F023DC0 AC800034 */ sw $zero, 0x34($a0) /* 058934 7F023DC4 AC800038 */ sw $zero, 0x38($a0) /* 058938 7F023DC8 AC8F003C */ sw $t7, 0x3c($a0) -/* 05893C 7F023DCC 0C002918 */ jal get_random_value +/* 05893C 7F023DCC 0C002918 */ jal randomGetNext /* 058940 7F023DD0 AC800040 */ sw $zero, 0x40($a0) /* 058944 7F023DD4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 058948 7F023DD8 44817000 */ mtc1 $at, $f14 @@ -966,6 +1081,66 @@ glabel sub_GAME_7F023A94 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F023A94 +/* 0585C4 7F023A94 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0585C8 7F023A98 AFBF0014 */ sw $ra, 0x14($sp) +/* 0585CC 7F023A9C AFA5001C */ sw $a1, 0x1c($sp) +/* 0585D0 7F023AA0 0FC0B461 */ jal sub_GAME_7F02D184 +/* 0585D4 7F023AA4 AFA40018 */ sw $a0, 0x18($sp) +/* 0585D8 7F023AA8 8FA40018 */ lw $a0, 0x18($sp) +/* 0585DC 7F023AAC 240E0001 */ li $t6, 1 +/* 0585E0 7F023AB0 240F0002 */ li $t7, 2 +/* 0585E4 7F023AB4 A08E0007 */ sb $t6, 7($a0) +/* 0585E8 7F023AB8 AC80002C */ sw $zero, 0x2c($a0) +/* 0585EC 7F023ABC AC800030 */ sw $zero, 0x30($a0) +/* 0585F0 7F023AC0 AC800034 */ sw $zero, 0x34($a0) +/* 0585F4 7F023AC4 AC800038 */ sw $zero, 0x38($a0) +/* 0585F8 7F023AC8 AC8F003C */ sw $t7, 0x3c($a0) +/* 0585FC 7F023ACC 0C002914 */ jal randomGetNext +/* 058600 7F023AD0 AC800040 */ sw $zero, 0x40($a0) +/* 058604 7F023AD4 24010078 */ li $at, 120 +/* 058608 7F023AD8 0041001B */ divu $zero, $v0, $at +/* 05860C 7F023ADC 8FA40018 */ lw $a0, 0x18($sp) +/* 058610 7F023AE0 0000C010 */ mfhi $t8 +/* 058614 7F023AE4 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 058618 7F023AE8 8C88001C */ lw $t0, 0x1c($a0) +/* 05861C 7F023AEC 271900B4 */ addiu $t9, $t8, 0xb4 +/* 058620 7F023AF0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 058624 7F023AF4 AC990044 */ sw $t9, 0x44($a0) +/* 058628 7F023AF8 44812000 */ mtc1 $at, $f4 +/* 05862C 7F023AFC C50200A4 */ lwc1 $f2, 0xa4($t0) +/* 058630 7F023B00 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 058634 7F023B04 46006006 */ mov.s $f0, $f12 +/* 058638 7F023B08 46022032 */ c.eq.s $f4, $f2 +/* 05863C 7F023B0C 00000000 */ nop +/* 058640 7F023B10 45030003 */ bc1tl .L7F023B20 +/* 058644 7F023B14 44811000 */ mtc1 $at, $f2 +/* 058648 7F023B18 46026003 */ div.s $f0, $f12, $f2 +/* 05864C 7F023B1C 44811000 */ mtc1 $at, $f2 +.L7F023B20: +/* 058650 7F023B20 00000000 */ nop +/* 058654 7F023B24 4600103C */ c.lt.s $f2, $f0 +/* 058658 7F023B28 00000000 */ nop +/* 05865C 7F023B2C 45020003 */ bc1fl .L7F023B3C +/* 058660 7F023B30 4600018D */ trunc.w.s $f6, $f0 +/* 058664 7F023B34 46001006 */ mov.s $f0, $f2 +/* 058668 7F023B38 4600018D */ trunc.w.s $f6, $f0 +.L7F023B3C: +/* 05866C 7F023B3C 44056000 */ mfc1 $a1, $f12 +/* 058670 7F023B40 440A3000 */ mfc1 $t2, $f6 +/* 058674 7F023B44 0FC08E52 */ jal sub_GAME_7F023948 +/* 058678 7F023B48 A08A0008 */ sb $t2, 8($a0) +/* 05867C 7F023B4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 058680 7F023B50 27BD0018 */ addiu $sp, $sp, 0x18 +/* 058684 7F023B54 03E00008 */ jr $ra +/* 058688 7F023B58 00000000 */ nop +) +#endif + + #endif #ifdef NONMATCHING @@ -1122,7 +1297,7 @@ glabel sub_GAME_7F023CB8 /* 058824 7F023CF4 AE000034 */ sw $zero, 0x34($s0) /* 058828 7F023CF8 AE000038 */ sw $zero, 0x38($s0) /* 05882C 7F023CFC AE0F003C */ sw $t7, 0x3c($s0) -/* 058830 7F023D00 0C002914 */ jal get_random_value +/* 058830 7F023D00 0C002914 */ jal randomGetNext /* 058834 7F023D04 AE000040 */ sw $zero, 0x40($s0) /* 058838 7F023D08 24010078 */ li $at, 120 /* 05883C 7F023D0C 0041001B */ divu $zero, $v0, $at @@ -1291,7 +1466,7 @@ glabel actor_kneel /* 058A18 7F023EE8 1040001C */ beqz $v0, .L7F023F5C /* 058A1C 7F023EEC 8FA90030 */ lw $t1, 0x30($sp) .L7F023EF0: -/* 058A20 7F023EF0 0C002914 */ jal get_random_value +/* 058A20 7F023EF0 0C002914 */ jal randomGetNext /* 058A24 7F023EF4 00000000 */ nop /* 058A28 7F023EF8 30580001 */ andi $t8, $v0, 1 /* 058A2C 7F023EFC 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c @@ -1507,7 +1682,7 @@ glabel sub_GAME_7F024150 /* 058CE0 7F0241B0 54400005 */ bnezl $v0, .L7F0241C8 /* 058CE4 7F0241B4 02002025 */ move $a0, $s0 .L7F0241B8: -/* 058CE8 7F0241B8 0C002914 */ jal get_random_value +/* 058CE8 7F0241B8 0C002914 */ jal randomGetNext /* 058CEC 7F0241BC 00000000 */ nop /* 058CF0 7F0241C0 30460001 */ andi $a2, $v0, 1 .L7F0241C4: @@ -1662,7 +1837,7 @@ glabel sub_GAME_7F024334 /* 058EC8 7F024398 54400006 */ bnezl $v0, .L7F0243B4 /* 058ECC 7F02439C 3C053F19 */ lui $a1, 0x3f19 .L7F0243A0: -/* 058ED0 7F0243A0 0C002914 */ jal get_random_value +/* 058ED0 7F0243A0 0C002914 */ jal randomGetNext /* 058ED4 7F0243A4 00000000 */ nop /* 058ED8 7F0243A8 304F0001 */ andi $t7, $v0, 1 /* 058EDC 7F0243AC AFAF002C */ sw $t7, 0x2c($sp) @@ -1773,7 +1948,7 @@ glabel actor_fawn_on_shoulder /* 058FEC 7F0244BC 00808025 */ move $s0, $a0 /* 058FF0 7F0244C0 240E0012 */ li $t6, 18 /* 058FF4 7F0244C4 A20E0007 */ sb $t6, 7($s0) -/* 058FF8 7F0244C8 0C002914 */ jal get_random_value +/* 058FF8 7F0244C8 0C002914 */ jal randomGetNext /* 058FFC 7F0244CC A2000008 */ sb $zero, 8($s0) /* 059000 7F0244D0 3C053EB3 */ lui $a1, (0x3EB33333 >> 16) # lui $a1, 0x3eb3 /* 059004 7F0244D4 3C063F0F */ lui $a2, (0x3F0F5C29 >> 16) # lui $a2, 0x3f0f @@ -1824,7 +1999,7 @@ glabel actor_look_flustered /* 059078 7F024548 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 05907C 7F02454C AFBF0024 */ sw $ra, 0x24($sp) /* 059080 7F024550 AFB00020 */ sw $s0, 0x20($sp) -/* 059084 7F024554 0C002914 */ jal get_random_value +/* 059084 7F024554 0C002914 */ jal randomGetNext /* 059088 7F024558 00808025 */ move $s0, $a0 /* 05908C 7F02455C 24010003 */ li $at, 3 /* 059090 7F024560 0041001B */ divu $zero, $v0, $at @@ -1834,7 +2009,7 @@ glabel actor_look_flustered /* 0590A0 7F024570 02002025 */ move $a0, $s0 /* 0590A4 7F024574 240F0012 */ li $t7, 18 /* 0590A8 7F024578 A20F0007 */ sb $t7, 7($s0) -/* 0590AC 7F02457C 0C002914 */ jal get_random_value +/* 0590AC 7F02457C 0C002914 */ jal randomGetNext /* 0590B0 7F024580 A2000008 */ sb $zero, 8($s0) /* 0590B4 7F024584 3C018005 */ lui $at, %hi(D_80051DA8) /* 0590B8 7F024588 C4241DA8 */ lwc1 $f4, %lo(D_80051DA8)($at) @@ -1927,7 +2102,7 @@ glabel actor_throw_weapon_surrender /* 0591D4 7F0246A4 13200026 */ beqz $t9, .L7F024740 /* 0591D8 7F0246A8 00000000 */ nop .L7F0246AC: -/* 0591DC 7F0246AC 0C002914 */ jal get_random_value +/* 0591DC 7F0246AC 0C002914 */ jal randomGetNext /* 0591E0 7F0246B0 00000000 */ nop /* 0591E4 7F0246B4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0591E8 7F0246B8 44812000 */ mtc1 $at, $f4 @@ -1967,7 +2142,7 @@ glabel actor_throw_weapon_surrender /* 059268 7F024738 10000018 */ b .L7F02479C /* 05926C 7F02473C A60D0012 */ sh $t5, 0x12($s0) .L7F024740: -/* 059270 7F024740 0C002914 */ jal get_random_value +/* 059270 7F024740 0C002914 */ jal randomGetNext /* 059274 7F024744 00000000 */ nop /* 059278 7F024748 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 05927C 7F02474C 44814000 */ mtc1 $at, $f8 @@ -2062,10 +2237,10 @@ glabel sub_GAME_7F024800 /* 05936C 7F02483C 00001825 */ move $v1, $zero /* 059370 7F024840 10400008 */ beqz $v0, .L7F024864 /* 059374 7F024844 00000000 */ nop -/* 059378 7F024848 0C002914 */ jal get_random_value +/* 059378 7F024848 0C002914 */ jal randomGetNext /* 05937C 7F02484C 00000000 */ nop /* 059380 7F024850 304E0001 */ andi $t6, $v0, 1 -/* 059384 7F024854 0C002914 */ jal get_random_value +/* 059384 7F024854 0C002914 */ jal randomGetNext /* 059388 7F024858 AFAE002C */ sw $t6, 0x2c($sp) /* 05938C 7F02485C 10000013 */ b .L7F0248AC /* 059390 7F024860 30430001 */ andi $v1, $v0, 1 @@ -2086,7 +2261,7 @@ glabel sub_GAME_7F024800 /* 0593C8 7F024898 51E00005 */ beql $t7, $zero, .L7F0248B0 /* 0593CC 7F02489C 02002025 */ move $a0, $s0 .L7F0248A0: -/* 0593D0 7F0248A0 0C002914 */ jal get_random_value +/* 0593D0 7F0248A0 0C002914 */ jal randomGetNext /* 0593D4 7F0248A4 AFB8002C */ sw $t8, 0x2c($sp) /* 0593D8 7F0248A8 30430001 */ andi $v1, $v0, 1 .L7F0248AC: @@ -2268,7 +2443,7 @@ glabel sub_GAME_7F024A84 /* 05963C 7F024B0C 10400005 */ beqz $v0, .L7F024B24 /* 059640 7F024B10 00000000 */ nop .L7F024B14: -/* 059644 7F024B14 0C002914 */ jal get_random_value +/* 059644 7F024B14 0C002914 */ jal randomGetNext /* 059648 7F024B18 00000000 */ nop /* 05964C 7F024B1C 304F0001 */ andi $t7, $v0, 1 /* 059650 7F024B20 AFAF002C */ sw $t7, 0x2c($sp) @@ -2289,7 +2464,7 @@ glabel sub_GAME_7F024A84 /* 059684 7F024B54 11000033 */ beqz $t0, .L7F024C24 /* 059688 7F024B58 00000000 */ nop .L7F024B5C: -/* 05968C 7F024B5C 0C002914 */ jal get_random_value +/* 05968C 7F024B5C 0C002914 */ jal randomGetNext /* 059690 7F024B60 00000000 */ nop /* 059694 7F024B64 30490001 */ andi $t1, $v0, 1 /* 059698 7F024B68 11200018 */ beqz $t1, .L7F024BCC @@ -2341,7 +2516,7 @@ glabel sub_GAME_7F024A84 /* 05974C 7F024C1C 10000032 */ b .L7F024CE8 /* 059750 7F024C20 8FBF0024 */ lw $ra, 0x24($sp) .L7F024C24: -/* 059754 7F024C24 0C002914 */ jal get_random_value +/* 059754 7F024C24 0C002914 */ jal randomGetNext /* 059758 7F024C28 00000000 */ nop /* 05975C 7F024C2C 304E0001 */ andi $t6, $v0, 1 /* 059760 7F024C30 11C00018 */ beqz $t6, .L7F024C94 @@ -2447,7 +2622,7 @@ glabel sub_GAME_7F024CF8 /* 0598B0 7F024D80 54400006 */ bnezl $v0, .L7F024D9C /* 0598B4 7F024D84 AFA50030 */ sw $a1, 0x30($sp) .L7F024D88: -/* 0598B8 7F024D88 0C002914 */ jal get_random_value +/* 0598B8 7F024D88 0C002914 */ jal randomGetNext /* 0598BC 7F024D8C AFA0002C */ sw $zero, 0x2c($sp) /* 0598C0 7F024D90 10000010 */ b .L7F024DD4 /* 0598C4 7F024D94 30460001 */ andi $a2, $v0, 1 @@ -2850,7 +3025,7 @@ glabel sub_GAME_7F02516C /* 059DAC 7F02527C 00000000 */ nop /* 059DB0 7F025280 00008025 */ move $s0, $zero .L7F025284: -/* 059DB4 7F025284 0C002914 */ jal get_random_value +/* 059DB4 7F025284 0C002914 */ jal randomGetNext /* 059DB8 7F025288 00000000 */ nop /* 059DBC 7F02528C 00107080 */ sll $t6, $s0, 2 /* 059DC0 7F025290 022E6821 */ addu $t5, $s1, $t6 @@ -2910,7 +3085,7 @@ glabel sub_GAME_7F02516C /* 059E84 7F025354 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand /* 059E88 7F025358 02202825 */ move $a1, $s1 /* 059E8C 7F02535C 8C500004 */ lw $s0, 4($v0) -/* 059E90 7F025360 0FC177F3 */ jal get_automatic_firing_rate +/* 059E90 7F025360 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 059E94 7F025364 82040080 */ lb $a0, 0x80($s0) /* 059E98 7F025368 04410008 */ bgez $v0, .L7F02538C /* 059E9C 7F02536C 03B24821 */ addu $t1, $sp, $s2 @@ -2944,7 +3119,7 @@ glabel sub_GAME_7F02516C /* 059EF8 7F0253C8 A2950030 */ sb $s5, 0x30($s4) /* 059EFC 7F0253CC 8FAF0080 */ lw $t7, 0x80($sp) /* 059F00 7F0253D0 A2800031 */ sb $zero, 0x31($s4) -/* 059F04 7F0253D4 0C002914 */ jal get_random_value +/* 059F04 7F0253D4 0C002914 */ jal randomGetNext /* 059F08 7F0253D8 AE8F002C */ sw $t7, 0x2c($s4) /* 059F0C 7F0253DC 30580001 */ andi $t8, $v0, 1 /* 059F10 7F0253E0 A2980032 */ sb $t8, 0x32($s4) @@ -2990,7 +3165,7 @@ glabel sub_GAME_7F02516C /* 059FA4 7F025474 10000006 */ b .L7F025490 /* 059FA8 7F025478 A2950034 */ sb $s5, 0x34($s4) .L7F02547C: -/* 059FAC 7F02547C 0C002914 */ jal get_random_value +/* 059FAC 7F02547C 0C002914 */ jal randomGetNext /* 059FB0 7F025480 00000000 */ nop /* 059FB4 7F025484 30590003 */ andi $t9, $v0, 3 /* 059FB8 7F025488 272F0002 */ addiu $t7, $t9, 2 @@ -3003,7 +3178,7 @@ glabel sub_GAME_7F02516C /* 059FD0 7F0254A0 8F0E0004 */ lw $t6, 4($t8) /* 059FD4 7F0254A4 51C00009 */ beql $t6, $zero, .L7F0254CC /* 059FD8 7F0254A8 8FB900A0 */ lw $t9, 0xa0($sp) -/* 059FDC 7F0254AC 0C002914 */ jal get_random_value +/* 059FDC 7F0254AC 0C002914 */ jal randomGetNext /* 059FE0 7F0254B0 00000000 */ nop /* 059FE4 7F0254B4 828D0034 */ lb $t5, 0x34($s4) /* 059FE8 7F0254B8 304B0003 */ andi $t3, $v0, 3 @@ -3100,10 +3275,10 @@ glabel sub_GAME_7F025560 /* 05A118 7F0255E8 24A5F408 */ addiu $a1, %lo(ptr_pistol_firing_animation_groups) # addiu $a1, $a1, -0xbf8 /* 05A11C 7F0255EC 50400019 */ beql $v0, $zero, .L7F025654 /* 05A120 7F0255F0 2CD90001 */ sltiu $t9, $a2, 1 -/* 05A124 7F0255F4 0C002914 */ jal get_random_value +/* 05A124 7F0255F4 0C002914 */ jal randomGetNext /* 05A128 7F0255F8 00000000 */ nop /* 05A12C 7F0255FC 30460001 */ andi $a2, $v0, 1 -/* 05A130 7F025600 0C002914 */ jal get_random_value +/* 05A130 7F025600 0C002914 */ jal randomGetNext /* 05A134 7F025604 AFA60044 */ sw $a2, 0x44($sp) /* 05A138 7F025608 24010003 */ li $at, 3 /* 05A13C 7F02560C 0041001B */ divu $zero, $v0, $at @@ -3220,10 +3395,10 @@ glabel sub_GAME_7F0256F0 /* 05A2A8 7F025778 24A5FCD8 */ addiu $a1, %lo(ptr_crouched_pistol_firing_animation_groups) # addiu $a1, $a1, -0x328 /* 05A2AC 7F02577C 50400019 */ beql $v0, $zero, .L7F0257E4 /* 05A2B0 7F025780 2CD90001 */ sltiu $t9, $a2, 1 -/* 05A2B4 7F025784 0C002914 */ jal get_random_value +/* 05A2B4 7F025784 0C002914 */ jal randomGetNext /* 05A2B8 7F025788 00000000 */ nop /* 05A2BC 7F02578C 30460001 */ andi $a2, $v0, 1 -/* 05A2C0 7F025790 0C002914 */ jal get_random_value +/* 05A2C0 7F025790 0C002914 */ jal randomGetNext /* 05A2C4 7F025794 AFA60044 */ sw $a2, 0x44($sp) /* 05A2C8 7F025798 24010003 */ li $at, 3 /* 05A2CC 7F02579C 0041001B */ divu $zero, $v0, $at @@ -3353,10 +3528,10 @@ glabel sub_GAME_7F02587C /* 05A46C 7F02593C 00001825 */ move $v1, $zero /* 05A470 7F025940 5040000C */ beql $v0, $zero, .L7F025974 /* 05A474 7F025944 2C4B0001 */ sltiu $t3, $v0, 1 -/* 05A478 7F025948 0C002914 */ jal get_random_value +/* 05A478 7F025948 0C002914 */ jal randomGetNext /* 05A47C 7F02594C 00000000 */ nop /* 05A480 7F025950 304C0001 */ andi $t4, $v0, 1 -/* 05A484 7F025954 0C002914 */ jal get_random_value +/* 05A484 7F025954 0C002914 */ jal randomGetNext /* 05A488 7F025958 AFAC0078 */ sw $t4, 0x78($sp) /* 05A48C 7F02595C 24010003 */ li $at, 3 /* 05A490 7F025960 0041001B */ divu $zero, $v0, $at @@ -3486,7 +3661,7 @@ glabel sub_GAME_7F02587C /* 05A624 7F025AF4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand /* 05A628 7F025AF8 02202825 */ move $a1, $s1 /* 05A62C 7F025AFC 8C500004 */ lw $s0, 4($v0) -/* 05A630 7F025B00 0FC177F3 */ jal get_automatic_firing_rate +/* 05A630 7F025B00 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 05A634 7F025B04 82040080 */ lb $a0, 0x80($s0) /* 05A638 7F025B08 04410002 */ bgez $v0, .L7F025B14 /* 05A63C 7F025B0C 03B2C821 */ addu $t9, $sp, $s2 @@ -3509,7 +3684,7 @@ glabel sub_GAME_7F02587C /* 05A674 7F025B44 26730004 */ addiu $s3, $s3, 4 /* 05A678 7F025B48 24080009 */ li $t0, 9 /* 05A67C 7F025B4C A2A80007 */ sb $t0, 7($s5) -/* 05A680 7F025B50 0C002914 */ jal get_random_value +/* 05A680 7F025B50 0C002914 */ jal randomGetNext /* 05A684 7F025B54 AEA00030 */ sw $zero, 0x30($s5) /* 05A688 7F025B58 3C0143C8 */ li $at, 0x43C80000 # 400.000000 /* 05A68C 7F025B5C 44812000 */ mtc1 $at, $f4 @@ -3530,7 +3705,7 @@ glabel sub_GAME_7F02587C /* 05A6C8 7F025B98 0007000D */ break 7 .L7F025B9C: /* 05A6CC 7F025B9C AEA00040 */ sw $zero, 0x40($s5) -/* 05A6D0 7F025BA0 0C002914 */ jal get_random_value +/* 05A6D0 7F025BA0 0C002914 */ jal randomGetNext /* 05A6D4 7F025BA4 AEAD003C */ sw $t5, 0x3c($s5) /* 05A6D8 7F025BA8 304F0001 */ andi $t7, $v0, 1 /* 05A6DC 7F025BAC AEAF0044 */ sw $t7, 0x44($s5) @@ -3637,12 +3812,12 @@ glabel sub_GAME_7F025C40 /* 05A83C 7F025D0C 2C430001 */ sltiu $v1, $v0, 1 /* 05A840 7F025D10 50400017 */ beql $v0, $zero, .L7F025D70 /* 05A844 7F025D14 24080001 */ li $t0, 1 -/* 05A848 7F025D18 0C002914 */ jal get_random_value +/* 05A848 7F025D18 0C002914 */ jal randomGetNext /* 05A84C 7F025D1C 00000000 */ nop /* 05A850 7F025D20 304D0001 */ andi $t5, $v0, 1 /* 05A854 7F025D24 240C0001 */ li $t4, 1 /* 05A858 7F025D28 AFAD007C */ sw $t5, 0x7c($sp) -/* 05A85C 7F025D2C 0C002914 */ jal get_random_value +/* 05A85C 7F025D2C 0C002914 */ jal randomGetNext /* 05A860 7F025D30 AFAC0078 */ sw $t4, 0x78($sp) /* 05A864 7F025D34 24010003 */ li $at, 3 /* 05A868 7F025D38 0041001B */ divu $zero, $v0, $at @@ -3704,7 +3879,7 @@ glabel sub_GAME_7F025C40 /* 05A928 7F025DF8 1160000D */ beqz $t3, .L7F025E30 /* 05A92C 7F025DFC 00000000 */ nop .L7F025E00: -/* 05A930 7F025E00 0C002914 */ jal get_random_value +/* 05A930 7F025E00 0C002914 */ jal randomGetNext /* 05A934 7F025E04 00000000 */ nop /* 05A938 7F025E08 304E0001 */ andi $t6, $v0, 1 /* 05A93C 7F025E0C 11C00005 */ beqz $t6, .L7F025E24 @@ -3718,7 +3893,7 @@ glabel sub_GAME_7F025C40 /* 05A958 7F025E28 1000000C */ b .L7F025E5C /* 05A95C 7F025E2C AFAF0088 */ sw $t7, 0x88($sp) .L7F025E30: -/* 05A960 7F025E30 0C002914 */ jal get_random_value +/* 05A960 7F025E30 0C002914 */ jal randomGetNext /* 05A964 7F025E34 00000000 */ nop /* 05A968 7F025E38 30480001 */ andi $t0, $v0, 1 /* 05A96C 7F025E3C 11000005 */ beqz $t0, .L7F025E54 @@ -3752,7 +3927,7 @@ glabel sub_GAME_7F025C40 /* 05A9CC 7F025E9C AFA70034 */ sw $a3, 0x34($sp) /* 05A9D0 7F025EA0 8C430004 */ lw $v1, 4($v0) /* 05A9D4 7F025EA4 80640080 */ lb $a0, 0x80($v1) -/* 05A9D8 7F025EA8 0FC177F3 */ jal get_automatic_firing_rate +/* 05A9D8 7F025EA8 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 05A9DC 7F025EAC AFA30070 */ sw $v1, 0x70($sp) /* 05A9E0 7F025EB0 8FA30070 */ lw $v1, 0x70($sp) /* 05A9E4 7F025EB4 8FA60038 */ lw $a2, 0x38($sp) @@ -3790,7 +3965,7 @@ glabel sub_GAME_7F025C40 /* 05AA50 7F025F20 A24F0007 */ sb $t7, 7($s2) /* 05AA54 7F025F24 8FA80088 */ lw $t0, 0x88($sp) /* 05AA58 7F025F28 A2400031 */ sb $zero, 0x31($s2) -/* 05AA5C 7F025F2C 0C002914 */ jal get_random_value +/* 05AA5C 7F025F2C 0C002914 */ jal randomGetNext /* 05AA60 7F025F30 AE48002C */ sw $t0, 0x2c($s2) /* 05AA64 7F025F34 30590001 */ andi $t9, $v0, 1 /* 05AA68 7F025F38 A2590032 */ sb $t9, 0x32($s2) @@ -3832,7 +4007,7 @@ glabel sub_GAME_7F025C40 /* 05AAF0 7F025FC0 10000013 */ b .L7F026010 /* 05AAF4 7F025FC4 A2510034 */ sb $s1, 0x34($s2) .L7F025FC8: -/* 05AAF8 7F025FC8 0C002914 */ jal get_random_value +/* 05AAF8 7F025FC8 0C002914 */ jal randomGetNext /* 05AAFC 7F025FCC 00000000 */ nop /* 05AB00 7F025FD0 304A0003 */ andi $t2, $v0, 3 /* 05AB04 7F025FD4 254B0002 */ addiu $t3, $t2, 2 @@ -3843,7 +4018,7 @@ glabel sub_GAME_7F025C40 /* 05AB18 7F025FE8 3C063F4C */ lui $a2, 0x3f4c /* 05AB1C 7F025FEC 53000009 */ beql $t8, $zero, .L7F026014 /* 05AB20 7F025FF0 3C063F4C */ lui $a2, 0x3f4c -/* 05AB24 7F025FF4 0C002914 */ jal get_random_value +/* 05AB24 7F025FF4 0C002914 */ jal randomGetNext /* 05AB28 7F025FF8 00000000 */ nop /* 05AB2C 7F025FFC 824F0034 */ lb $t7, 0x34($s2) /* 05AB30 7F026000 30480003 */ andi $t0, $v0, 3 @@ -4351,7 +4526,7 @@ glabel triggered_on_shot_hit /* 05B14C 7F02661C 45020075 */ bc1fl .L7F0267F4 /* 05B150 7F026620 8FAC0090 */ lw $t4, 0x90($sp) .L7F026624: -/* 05B154 7F026624 0C002914 */ jal get_random_value +/* 05B154 7F026624 0C002914 */ jal randomGetNext /* 05B158 7F026628 00000000 */ nop /* 05B15C 7F02662C 24010014 */ li $at, 20 /* 05B160 7F026630 0041001B */ divu $zero, $v0, $at @@ -4417,7 +4592,7 @@ glabel triggered_on_shot_hit /* 05B248 7F026718 00000000 */ nop /* 05B24C 7F02671C 45020035 */ bc1fl .L7F0267F4 /* 05B250 7F026720 8FAC0090 */ lw $t4, 0x90($sp) -/* 05B254 7F026724 0C002914 */ jal get_random_value +/* 05B254 7F026724 0C002914 */ jal randomGetNext /* 05B258 7F026728 00000000 */ nop /* 05B25C 7F02672C 304E0001 */ andi $t6, $v0, 1 /* 05B260 7F026730 000E78C0 */ sll $t7, $t6, 3 @@ -4491,7 +4666,7 @@ glabel triggered_on_shot_hit /* 05B368 7F026838 2D2A0001 */ sltiu $t2, $t1, 1 /* 05B36C 7F02683C AFAA0034 */ sw $t2, 0x34($sp) /* 05B370 7F026840 AFAB0090 */ sw $t3, 0x90($sp) -/* 05B374 7F026844 0C002914 */ jal get_random_value +/* 05B374 7F026844 0C002914 */ jal randomGetNext /* 05B378 7F026848 AFA60030 */ sw $a2, 0x30($sp) /* 05B37C 7F02684C 8FA60030 */ lw $a2, 0x30($sp) /* 05B380 7F026850 02002025 */ move $a0, $s0 @@ -4541,7 +4716,7 @@ glabel triggered_on_shot_hit /* 05B42C 7F0268FC 03295021 */ addu $t2, $t9, $t1 /* 05B430 7F026900 554B000F */ bnel $t2, $t3, .L7F026940 /* 05B434 7F026904 C5000008 */ lwc1 $f0, 8($t0) -/* 05B438 7F026908 0C002914 */ jal get_random_value +/* 05B438 7F026908 0C002914 */ jal randomGetNext /* 05B43C 7F02690C AFA8005C */ sw $t0, 0x5c($sp) /* 05B440 7F026910 24010064 */ li $at, 100 /* 05B444 7F026914 0041001B */ divu $zero, $v0, $at @@ -4570,7 +4745,7 @@ glabel triggered_on_shot_hit .L7F026968: /* 05B498 7F026968 8FA400B0 */ lw $a0, 0xb0($sp) .L7F02696C: -/* 05B49C 7F02696C 0FC177EA */ jal bondwalkGetItemField68 +/* 05B49C 7F02696C 0FC177EA */ jal bondwalkItemGetForceOfImpact /* 05B4A0 7F026970 AFA8005C */ sw $t0, 0x5c($sp) /* 05B4A4 7F026974 44806000 */ mtc1 $zero, $f12 /* 05B4A8 7F026978 8FA8005C */ lw $t0, 0x5c($sp) @@ -4640,7 +4815,7 @@ glabel triggered_on_shot_hit /* 05B59C 7F026A6C 00000000 */ nop /* 05B5A0 7F026A70 45020096 */ bc1fl .L7F026CCC /* 05B5A4 7F026A74 8FB80090 */ lw $t8, 0x90($sp) -/* 05B5A8 7F026A78 0C002914 */ jal get_random_value +/* 05B5A8 7F026A78 0C002914 */ jal randomGetNext /* 05B5AC 7F026A7C 00000000 */ nop /* 05B5B0 7F026A80 24010005 */ li $at, 5 /* 05B5B4 7F026A84 0041001B */ divu $zero, $v0, $at @@ -4648,7 +4823,7 @@ glabel triggered_on_shot_hit /* 05B5BC 7F026A8C 2D810002 */ sltiu $at, $t4, 2 /* 05B5C0 7F026A90 5020008E */ beql $at, $zero, .L7F026CCC /* 05B5C4 7F026A94 8FB80090 */ lw $t8, 0x90($sp) -/* 05B5C8 7F026A98 0C002914 */ jal get_random_value +/* 05B5C8 7F026A98 0C002914 */ jal randomGetNext /* 05B5CC 7F026A9C 00000000 */ nop /* 05B5D0 7F026AA0 24010005 */ li $at, 5 /* 05B5D4 7F026AA4 0041001B */ divu $zero, $v0, $at @@ -4662,7 +4837,7 @@ glabel triggered_on_shot_hit /* 05B5F4 7F026AC4 3C0F8005 */ lui $t7, %hi(global_timer) /* 05B5F8 7F026AC8 8DEF837C */ lw $t7, %lo(global_timer)($t7) /* 05B5FC 7F026ACC A2000008 */ sb $zero, 8($s0) -/* 05B600 7F026AD0 0C002914 */ jal get_random_value +/* 05B600 7F026AD0 0C002914 */ jal randomGetNext /* 05B604 7F026AD4 AE0F0030 */ sw $t7, 0x30($s0) /* 05B608 7F026AD8 30580001 */ andi $t8, $v0, 1 /* 05B60C 7F026ADC 1300003D */ beqz $t8, .L7F026BD4 @@ -4671,7 +4846,7 @@ glabel triggered_on_shot_hit /* 05B618 7F026AE8 3C090000 */ lui $t1, %hi(0x00004CE0) # $t1, 0 /* 05B61C 7F026AEC 25294CE0 */ addiu $t1, %lo(0x00004CE0) # addiu $t1, $t1, 0x4ce0 /* 05B620 7F026AF0 03295021 */ addu $t2, $t9, $t1 -/* 05B624 7F026AF4 0C002914 */ jal get_random_value +/* 05B624 7F026AF4 0C002914 */ jal randomGetNext /* 05B628 7F026AF8 AFAA0080 */ sw $t2, 0x80($sp) /* 05B62C 7F026AFC 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 05B630 7F026B00 44813000 */ mtc1 $at, $f6 @@ -4735,7 +4910,7 @@ glabel triggered_on_shot_hit /* 05B70C 7F026BDC 3C190000 */ lui $t9, %hi(0x00004F14) # $t9, 0 /* 05B710 7F026BE0 27394F14 */ addiu $t9, %lo(0x00004F14) # addiu $t9, $t9, 0x4f14 /* 05B714 7F026BE4 03194821 */ addu $t1, $t8, $t9 -/* 05B718 7F026BE8 0C002914 */ jal get_random_value +/* 05B718 7F026BE8 0C002914 */ jal randomGetNext /* 05B71C 7F026BEC AFA90080 */ sw $t1, 0x80($sp) /* 05B720 7F026BF0 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 05B724 7F026BF4 44812000 */ mtc1 $at, $f4 @@ -4847,7 +5022,7 @@ glabel triggered_on_shot_hit /* 05B8B4 7F026D84 24C6CB50 */ addiu $a2, %lo(D_8002CB50) # addiu $a2, $a2, -0x34b0 /* 05B8B8 7F026D88 AFAB0088 */ sw $t3, 0x88($sp) .L7F026D8C: -/* 05B8BC 7F026D8C 0C002914 */ jal get_random_value +/* 05B8BC 7F026D8C 0C002914 */ jal randomGetNext /* 05B8C0 7F026D90 AFA60030 */ sw $a2, 0x30($sp) /* 05B8C4 7F026D94 8FA60030 */ lw $a2, 0x30($sp) /* 05B8C8 7F026D98 02002025 */ move $a0, $s0 @@ -5155,10 +5330,10 @@ glabel play_sound_for_shot_actor /* 05BCCC 7F02719C ADC1FFFC */ sw $at, -4($t6) /* 05BCD0 7F0271A0 95610000 */ lhu $at, ($t3) /* 05BCD4 7F0271A4 3C0F8003 */ lui $t7, %hi(male_guard_yelp_counter) -/* 05BCD8 7F0271A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BCD8 7F0271A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 05BCDC 7F0271AC A5C10000 */ sh $at, ($t6) /* 05BCE0 7F0271B0 8DEF0A34 */ lw $t7, %lo(male_guard_yelp_counter)($t7) -/* 05BCE4 7F0271B4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BCE4 7F0271B4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 05BCE8 7F0271B8 00003025 */ move $a2, $zero /* 05BCEC 7F0271BC 000FC040 */ sll $t8, $t7, 1 /* 05BCF0 7F0271C0 0058C821 */ addu $t9, $v0, $t8 @@ -5182,11 +5357,11 @@ glabel play_sound_for_shot_actor /* 05BD34 7F027204 3C0D8003 */ lui $t5, %hi(female_guard_yelp_counter) /* 05BD38 7F027208 AC410000 */ sw $at, ($v0) /* 05BD3C 7F02720C 95010004 */ lhu $at, 4($t0) -/* 05BD40 7F027210 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 05BD40 7F027210 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 05BD44 7F027214 00003025 */ move $a2, $zero /* 05BD48 7F027218 A4410004 */ sh $at, 4($v0) /* 05BD4C 7F02721C 8DAD0A38 */ lw $t5, %lo(female_guard_yelp_counter)($t5) -/* 05BD50 7F027220 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BD50 7F027220 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 05BD54 7F027224 000D5840 */ sll $t3, $t5, 1 /* 05BD58 7F027228 004B7021 */ addu $t6, $v0, $t3 /* 05BD5C 7F02722C 0C002382 */ jal play_sfx_a1 @@ -5271,15 +5446,15 @@ glabel handles_shot_actors /* 05BE30 7F027300 27A90054 */ addiu $t1, $sp, 0x54 /* 05BE34 7F027304 AD210000 */ sw $at, ($t1) /* 05BE38 7F027308 95410004 */ lhu $at, 4($t2) -/* 05BE3C 7F02730C 0C002914 */ jal get_random_value +/* 05BE3C 7F02730C 0C002914 */ jal randomGetNext /* 05BE40 7F027310 A5210004 */ sh $at, 4($t1) /* 05BE44 7F027314 24010003 */ li $at, 3 /* 05BE48 7F027318 0041001B */ divu $zero, $v0, $at /* 05BE4C 7F02731C 00006810 */ mfhi $t5 /* 05BE50 7F027320 000D7040 */ sll $t6, $t5, 1 /* 05BE54 7F027324 03AE2821 */ addu $a1, $sp, $t6 -/* 05BE58 7F027328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 05BE5C 7F02732C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 05BE58 7F027328 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 05BE5C 7F02732C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 05BE60 7F027330 84A50054 */ lh $a1, 0x54($a1) /* 05BE64 7F027334 0C002382 */ jal play_sfx_a1 /* 05BE68 7F027338 00003025 */ move $a2, $zero @@ -5355,7 +5530,7 @@ glabel handles_shot_actors /* 05BF58 7F027428 24010005 */ li $at, 5 /* 05BF5C 7F02742C 504100F0 */ beql $v0, $at, .L7F0277F0 /* 05BF60 7F027430 24020001 */ li $v0, 1 -/* 05BF64 7F027434 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 05BF64 7F027434 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 05BF68 7F027438 8FA40074 */ lw $a0, 0x74($sp) /* 05BF6C 7F02743C 8FAD0078 */ lw $t5, 0x78($sp) /* 05BF70 7F027440 46000086 */ mov.s $f2, $f0 @@ -5790,7 +5965,7 @@ glabel sub_GAME_7F027804 /* 05C568 7F027A38 00000000 */ nop /* 05C56C 7F027A3C 00003825 */ move $a3, $zero .L7F027A40: -/* 05C570 7F027A40 0C002914 */ jal get_random_value +/* 05C570 7F027A40 0C002914 */ jal randomGetNext /* 05C574 7F027A44 AFA70040 */ sw $a3, 0x40($sp) /* 05C578 7F027A48 8FA70040 */ lw $a3, 0x40($sp) /* 05C57C 7F027A4C 3C0C8003 */ lui $t4, %hi(explosion_animation_table) @@ -7209,7 +7384,7 @@ glabel get_sound_at_range /* 05D5D8 7F028AA8 54400008 */ bnezl $v0, .L7F028ACC /* 05D5DC 7F028AAC AFA50028 */ sw $a1, 0x28($sp) .L7F028AB0: -/* 05D5E0 7F028AB0 0C002914 */ jal get_random_value +/* 05D5E0 7F028AB0 0C002914 */ jal randomGetNext /* 05D5E4 7F028AB4 AFA00020 */ sw $zero, 0x20($sp) /* 05D5E8 7F028AB8 8FA30020 */ lw $v1, 0x20($sp) /* 05D5EC 7F028ABC 8FA80030 */ lw $t0, 0x30($sp) @@ -7509,7 +7684,7 @@ glabel plot_course_for_actor /* 05D9E0 7F028EB0 AE09003C */ sw $t1, 0x3c($s0) /* 05D9E4 7F028EB4 8FAA0074 */ lw $t2, 0x74($sp) /* 05D9E8 7F028EB8 E60A00A0 */ swc1 $f10, 0xa0($s0) -/* 05D9EC 7F028EBC 0C002914 */ jal get_random_value +/* 05D9EC 7F028EBC 0C002914 */ jal randomGetNext /* 05D9F0 7F028EC0 A20A0059 */ sb $t2, 0x59($s0) /* 05D9F4 7F028EC4 24010064 */ li $at, 100 /* 05D9F8 7F028EC8 0041001B */ divu $zero, $v0, $at @@ -7607,7 +7782,7 @@ glabel sub_GAME_7F028FAC /* 05DB20 7F028FF0 54400007 */ bnezl $v0, .L7F029010 /* 05DB24 7F028FF4 AFA50028 */ sw $a1, 0x28($sp) .L7F028FF8: -/* 05DB28 7F028FF8 0C002914 */ jal get_random_value +/* 05DB28 7F028FF8 0C002914 */ jal randomGetNext /* 05DB2C 7F028FFC AFA00020 */ sw $zero, 0x20($sp) /* 05DB30 7F029000 8FA30020 */ lw $v1, 0x20($sp) /* 05DB34 7F029004 10000011 */ b .L7F02904C @@ -7766,7 +7941,7 @@ glabel set_actor_on_path /* 05DD28 7F0291F8 24190001 */ li $t9, 1 /* 05DD2C 7F0291FC AE190034 */ sw $t9, 0x34($s0) /* 05DD30 7F029200 AE0C0030 */ sw $t4, 0x30($s0) -/* 05DD34 7F029204 0C002914 */ jal get_random_value +/* 05DD34 7F029204 0C002914 */ jal randomGetNext /* 05DD38 7F029208 AE18002C */ sw $t8, 0x2c($s0) /* 05DD3C 7F02920C 24010064 */ li $at, 100 /* 05DD40 7F029210 0041001B */ divu $zero, $v0, $at @@ -8881,7 +9056,7 @@ glabel sub_GAME_7F029D70 /* 05EB04 7F029FD4 0FC08EF0 */ jal sub_GAME_7F023BC0 /* 05EB08 7F029FD8 8FA40058 */ lw $a0, 0x58($sp) /* 05EB0C 7F029FDC 24450001 */ addiu $a1, $v0, 1 -/* 05EB10 7F029FE0 0C002914 */ jal get_random_value +/* 05EB10 7F029FE0 0C002914 */ jal randomGetNext /* 05EB14 7F029FE4 AFA50024 */ sw $a1, 0x24($sp) /* 05EB18 7F029FE8 8FA50024 */ lw $a1, 0x24($sp) /* 05EB1C 7F029FEC 0045001B */ divu $zero, $v0, $a1 @@ -9197,7 +9372,7 @@ glabel actor_steps_sideways /* 05EECC 7F02A39C 4502001D */ bc1fl .L7F02A414 /* 05EED0 7F02A3A0 00001025 */ move $v0, $zero .L7F02A3A4: -/* 05EED4 7F02A3A4 0C002914 */ jal get_random_value +/* 05EED4 7F02A3A4 0C002914 */ jal randomGetNext /* 05EED8 7F02A3A8 00000000 */ nop /* 05EEDC 7F02A3AC 30450001 */ andi $a1, $v0, 1 /* 05EEE0 7F02A3B0 2CAF0001 */ sltiu $t7, $a1, 1 @@ -9314,7 +9489,7 @@ glabel actor_hops_sideways /* 05F02C 7F02A4FC 4502001D */ bc1fl .L7F02A574 /* 05F030 7F02A500 00001025 */ move $v0, $zero .L7F02A504: -/* 05F034 7F02A504 0C002914 */ jal get_random_value +/* 05F034 7F02A504 0C002914 */ jal randomGetNext /* 05F038 7F02A508 00000000 */ nop /* 05F03C 7F02A50C 30450001 */ andi $a1, $v0, 1 /* 05F040 7F02A510 2CAF0001 */ sltiu $t7, $a1, 1 @@ -9378,7 +9553,7 @@ glabel actor_runs_sideways /* 05F0E8 7F02A5B8 2B0100B5 */ slti $at, $t8, 0xb5 /* 05F0EC 7F02A5BC 5420004B */ bnezl $at, .L7F02A6EC /* 05F0F0 7F02A5C0 00001025 */ move $v0, $zero -/* 05F0F4 7F02A5C4 0C002914 */ jal get_random_value +/* 05F0F4 7F02A5C4 0C002914 */ jal randomGetNext /* 05F0F8 7F02A5C8 8E300018 */ lw $s0, 0x18($s1) /* 05F0FC 7F02A5CC 44822000 */ mtc1 $v0, $f4 /* 05F100 7F02A5D0 3C014348 */ li $at, 0x43480000 # 200.000000 @@ -9396,7 +9571,7 @@ glabel actor_runs_sideways /* 05F12C 7F02A5FC 460A3402 */ mul.s $f16, $f6, $f10 /* 05F130 7F02A600 00000000 */ nop /* 05F134 7F02A604 46008482 */ mul.s $f18, $f16, $f0 -/* 05F138 7F02A608 0C002914 */ jal get_random_value +/* 05F138 7F02A608 0C002914 */ jal randomGetNext /* 05F13C 7F02A60C 46009500 */ add.s $f20, $f18, $f0 /* 05F140 7F02A610 30450001 */ andi $a1, $v0, 1 /* 05F144 7F02A614 2CB90001 */ sltiu $t9, $a1, 1 @@ -9682,7 +9857,7 @@ glabel actor_rolls_fires_crouched /* 05F4BC 7F02A98C 00000000 */ nop /* 05F4C0 7F02A990 4502001D */ bc1fl .L7F02AA08 /* 05F4C4 7F02A994 00001025 */ move $v0, $zero -/* 05F4C8 7F02A998 0C002914 */ jal get_random_value +/* 05F4C8 7F02A998 0C002914 */ jal randomGetNext /* 05F4CC 7F02A99C 00000000 */ nop /* 05F4D0 7F02A9A0 30450001 */ andi $a1, $v0, 1 /* 05F4D4 7F02A9A4 2CAF0001 */ sltiu $t7, $a1, 1 @@ -9809,37 +9984,21 @@ glabel actor_kneel_aim_at_actor -#ifdef NONMATCHING -void sub_GAME_7F02AAF4(void) { +int actor_fire_or_aim_at_target_update(struct chrdata *chr, u32 newflag, u32 newtarget) +{ + if(chr->actiontype == ACT_ATTACK) + { + if((chr->targetflag & (TARGET_AIM_ONLY | TARGET_DONTTURN)) != 0) + { + chr->targetflag = newflag; + chr->targettoshoot = newtarget; + sub_GAME_7F024F8C(chr); + return 1; + } + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F02AAF4 -/* 05F624 7F02AAF4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 05F628 7F02AAF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 05F62C 7F02AAFC 808E0007 */ lb $t6, 7($a0) -/* 05F630 7F02AB00 24010008 */ li $at, 8 -/* 05F634 7F02AB04 00001025 */ move $v0, $zero -/* 05F638 7F02AB08 15C1000A */ bne $t6, $at, .L7F02AB34 -/* 05F63C 7F02AB0C 00000000 */ nop -/* 05F640 7F02AB10 8C8F004C */ lw $t7, 0x4c($a0) -/* 05F644 7F02AB14 31F80060 */ andi $t8, $t7, 0x60 -/* 05F648 7F02AB18 13000006 */ beqz $t8, .L7F02AB34 -/* 05F64C 7F02AB1C 00000000 */ nop -/* 05F650 7F02AB20 AC85004C */ sw $a1, 0x4c($a0) -/* 05F654 7F02AB24 0FC093E3 */ jal sub_GAME_7F024F8C -/* 05F658 7F02AB28 AC860050 */ sw $a2, 0x50($a0) -/* 05F65C 7F02AB2C 10000001 */ b .L7F02AB34 -/* 05F660 7F02AB30 24020001 */ li $v0, 1 -.L7F02AB34: -/* 05F664 7F02AB34 8FBF0014 */ lw $ra, 0x14($sp) -/* 05F668 7F02AB38 27BD0018 */ addiu $sp, $sp, 0x18 -/* 05F66C 7F02AB3C 03E00008 */ jr $ra -/* 05F670 7F02AB40 00000000 */ nop -) -#endif @@ -10176,7 +10335,7 @@ glabel sub_GAME_7F02AD98 /* 05FA54 7F02AF24 10400022 */ beqz $v0, .L7F02AFB0 /* 05FA58 7F02AF28 8FAE009C */ lw $t6, 0x9c($sp) .L7F02AF2C: -/* 05FA5C 7F02AF2C 0C002914 */ jal get_random_value +/* 05FA5C 7F02AF2C 0C002914 */ jal randomGetNext /* 05FA60 7F02AF30 00000000 */ nop /* 05FA64 7F02AF34 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 05FA68 7F02AF38 44819000 */ mtc1 $at, $f18 @@ -10257,7 +10416,7 @@ glabel sub_GAME_7F02AD98 /* 05FB84 7F02B054 1000011D */ b .L7F02B4CC /* 05FB88 7F02B058 A2000008 */ sb $zero, 8($s0) .L7F02B05C: -/* 05FB8C 7F02B05C 0C002914 */ jal get_random_value +/* 05FB8C 7F02B05C 0C002914 */ jal randomGetNext /* 05FB90 7F02B060 00000000 */ nop /* 05FB94 7F02B064 24010005 */ li $at, 5 /* 05FB98 7F02B068 0041001B */ divu $zero, $v0, $at @@ -10479,7 +10638,7 @@ glabel sub_GAME_7F02AD98 /* 05FEB8 7F02B388 14660012 */ bne $v1, $a2, .L7F02B3D4 /* 05FEBC 7F02B38C 00000000 */ nop .L7F02B390: -/* 05FEC0 7F02B390 0C002914 */ jal get_random_value +/* 05FEC0 7F02B390 0C002914 */ jal randomGetNext /* 05FEC4 7F02B394 00000000 */ nop /* 05FEC8 7F02B398 3C018005 */ lui $at, %hi(D_80051E84) /* 05FECC 7F02B39C C42C1E84 */ lwc1 $f12, %lo(D_80051E84)($at) @@ -10498,7 +10657,7 @@ glabel sub_GAME_7F02AD98 /* 05FEFC 7F02B3CC 10000020 */ b .L7F02B450 /* 05FF00 7F02B3D0 24050004 */ li $a1, 4 .L7F02B3D4: -/* 05FF04 7F02B3D4 0C002914 */ jal get_random_value +/* 05FF04 7F02B3D4 0C002914 */ jal randomGetNext /* 05FF08 7F02B3D8 00000000 */ nop /* 05FF0C 7F02B3DC 3C018005 */ lui $at, %hi(D_80051E88) /* 05FF10 7F02B3E0 C42C1E88 */ lwc1 $f12, %lo(D_80051E88)($at) @@ -10522,7 +10681,7 @@ glabel sub_GAME_7F02AD98 /* 05FF50 7F02B420 8FB80060 */ lw $t8, 0x60($sp) /* 05FF54 7F02B424 1300000A */ beqz $t8, .L7F02B450 /* 05FF58 7F02B428 00000000 */ nop -/* 05FF5C 7F02B42C 0C002914 */ jal get_random_value +/* 05FF5C 7F02B42C 0C002914 */ jal randomGetNext /* 05FF60 7F02B430 00000000 */ nop /* 05FF64 7F02B434 3C018005 */ lui $at, %hi(D_80051E8C) /* 05FF68 7F02B438 C42C1E8C */ lwc1 $f12, %lo(D_80051E8C)($at) @@ -10642,14 +10801,14 @@ glabel sub_GAME_7F02B4E8 /* 0600D4 7F02B5A4 02002025 */ move $a0, $s0 /* 0600D8 7F02B5A8 3C014448 */ li $at, 0x44480000 # 800.000000 /* 0600DC 7F02B5AC 44814000 */ mtc1 $at, $f8 -/* 0600E0 7F02B5B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0600E0 7F02B5B0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0600E4 7F02B5B4 24050101 */ li $a1, 257 /* 0600E8 7F02B5B8 4608003C */ c.lt.s $f0, $f8 /* 0600EC 7F02B5BC 00003025 */ move $a2, $zero /* 0600F0 7F02B5C0 45020008 */ bc1fl .L7F02B5E4 /* 0600F4 7F02B5C4 8E0C0014 */ lw $t4, 0x14($s0) /* 0600F8 7F02B5C8 0C002382 */ jal play_sfx_a1 -/* 0600FC 7F02B5CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0600FC 7F02B5CC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 060100 7F02B5D0 8E050018 */ lw $a1, 0x18($s0) /* 060104 7F02B5D4 00402025 */ move $a0, $v0 /* 060108 7F02B5D8 0FC14E84 */ jal sub_GAME_7F053A10 @@ -10666,7 +10825,7 @@ glabel sub_GAME_7F02B4E8 /* 06012C 7F02B5FC 8E0F0038 */ lw $t7, 0x38($s0) /* 060130 7F02B600 51E00009 */ beql $t7, $zero, .L7F02B628 /* 060134 7F02B604 8FBF001C */ lw $ra, 0x1c($sp) -/* 060138 7F02B608 0C002914 */ jal get_random_value +/* 060138 7F02B608 0C002914 */ jal randomGetNext /* 06013C 7F02B60C 00000000 */ nop /* 060140 7F02B610 24010005 */ li $at, 5 /* 060144 7F02B614 0041001B */ divu $zero, $v0, $at @@ -10745,7 +10904,7 @@ glabel sub_GAME_7F02B638 /* 060230 7F02B700 3C0641A0 */ lui $a2, 0x41a0 /* 060234 7F02B704 54400017 */ bnezl $v0, .L7F02B764 /* 060238 7F02B708 8FBF0024 */ lw $ra, 0x24($sp) -/* 06023C 7F02B70C 0C002914 */ jal get_random_value +/* 06023C 7F02B70C 0C002914 */ jal randomGetNext /* 060240 7F02B710 00000000 */ nop /* 060244 7F02B714 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 060248 7F02B718 44815000 */ mtc1 $at, $f10 @@ -11005,13 +11164,13 @@ glabel guard_body_hit_sfx /* 060544 7F02BA14 02202025 */ move $a0, $s1 /* 060548 7F02BA18 C6080030 */ lwc1 $f8, 0x30($s0) /* 06054C 7F02BA1C 3C028003 */ lui $v0, %hi(D_80030A68) -/* 060550 7F02BA20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060550 7F02BA20 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 060554 7F02BA24 4600403E */ c.le.s $f8, $f0 /* 060558 7F02BA28 00000000 */ nop /* 06055C 7F02BA2C 4502001A */ bc1fl .L7F02BA98 /* 060560 7F02BA30 C6100034 */ lwc1 $f16, 0x34($s0) /* 060564 7F02BA34 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) -/* 060568 7F02BA38 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060568 7F02BA38 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 06056C 7F02BA3C 00003025 */ move $a2, $zero /* 060570 7F02BA40 00024840 */ sll $t1, $v0, 1 /* 060574 7F02BA44 03A92821 */ addu $a1, $sp, $t1 @@ -11047,13 +11206,13 @@ glabel guard_body_hit_sfx /* 0605E4 7F02BAB4 02202025 */ move $a0, $s1 /* 0605E8 7F02BAB8 C6040034 */ lwc1 $f4, 0x34($s0) /* 0605EC 7F02BABC 3C028003 */ lui $v0, %hi(D_80030A68) -/* 0605F0 7F02BAC0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0605F0 7F02BAC0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0605F4 7F02BAC4 4600203E */ c.le.s $f4, $f0 /* 0605F8 7F02BAC8 00000000 */ nop /* 0605FC 7F02BACC 45000019 */ bc1f .L7F02BB34 /* 060600 7F02BAD0 00000000 */ nop /* 060604 7F02BAD4 8C420A68 */ lw $v0, %lo(D_80030A68)($v0) -/* 060608 7F02BAD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060608 7F02BAD8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 06060C 7F02BADC 00003025 */ move $a2, $zero /* 060610 7F02BAE0 00025040 */ sll $t2, $v0, 1 /* 060614 7F02BAE4 03AA2821 */ addu $a1, $sp, $t2 @@ -11508,7 +11667,7 @@ glabel sub_GAME_7F02BFE4 /* 060B30 7F02C000 8C430004 */ lw $v1, 4($v0) /* 060B34 7F02C004 80640080 */ lb $a0, 0x80($v1) /* 060B38 7F02C008 AFA00034 */ sw $zero, 0x34($sp) -/* 060B3C 7F02C00C 0FC177FC */ jal get_sound_trigger_rate +/* 060B3C 7F02C00C 0FC177FC */ jal bondwalkItemGetSoundTriggerRate /* 060B40 7F02C010 AFA30038 */ sw $v1, 0x38($sp) /* 060B44 7F02C014 8FA30038 */ lw $v1, 0x38($sp) /* 060B48 7F02C018 A3A20033 */ sb $v0, 0x33($sp) @@ -11572,7 +11731,7 @@ glabel sub_GAME_7F02BFE4 /* 060C1C 7F02C0EC 8FBF001C */ lw $ra, 0x1c($sp) /* 060C20 7F02C0F0 8C780168 */ lw $t8, 0x168($v1) /* 060C24 7F02C0F4 00003025 */ move $a2, $zero -/* 060C28 7F02C0F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 060C28 7F02C0F8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 060C2C 7F02C0FC 17000003 */ bnez $t8, .L7F02C10C /* 060C30 7F02C100 87A50030 */ lh $a1, 0x30($sp) /* 060C34 7F02C104 10000005 */ b .L7F02C11C @@ -11586,7 +11745,7 @@ glabel sub_GAME_7F02BFE4 /* 060C4C 7F02C11C 10C00017 */ beqz $a2, .L7F02C17C /* 060C50 7F02C120 93A80033 */ lbu $t0, 0x33($sp) /* 060C54 7F02C124 8FA90044 */ lw $t1, 0x44($sp) -/* 060C58 7F02C128 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 060C58 7F02C128 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 060C5C 7F02C12C AFA80028 */ sw $t0, 0x28($sp) /* 060C60 7F02C130 00095080 */ sll $t2, $t1, 2 /* 060C64 7F02C134 020A5821 */ addu $t3, $s0, $t2 @@ -12060,6 +12219,170 @@ glabel sub_GAME_7F02C2B0 /* 060FEC 7F02C4BC 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051EA0 +.word 0x3d80adfd /*0.062831856*/ +glabel D_80051EA4 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EA8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051EAC +.word 0x40490fdb /*3.1415927*/ +.text +glabel sub_GAME_7F02C2B0 +/* 060DE0 7F02C2B0 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 060DE4 7F02C2B4 AFA7003C */ sw $a3, 0x3c($sp) +/* 060DE8 7F02C2B8 24010002 */ li $at, 2 +/* 060DEC 7F02C2BC 00803825 */ move $a3, $a0 +/* 060DF0 7F02C2C0 AFBF0014 */ sw $ra, 0x14($sp) +/* 060DF4 7F02C2C4 AFA40030 */ sw $a0, 0x30($sp) +/* 060DF8 7F02C2C8 AFA50034 */ sw $a1, 0x34($sp) +/* 060DFC 7F02C2CC 10A10077 */ beq $a1, $at, .L7F02C4AC +/* 060E00 7F02C2D0 AFA60038 */ sw $a2, 0x38($sp) +/* 060E04 7F02C2D4 8C84001C */ lw $a0, 0x1c($a0) +/* 060E08 7F02C2D8 AFA70030 */ sw $a3, 0x30($sp) +/* 060E0C 7F02C2DC 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 060E10 7F02C2E0 AFA4002C */ sw $a0, 0x2c($sp) +/* 060E14 7F02C2E4 E7A00028 */ swc1 $f0, 0x28($sp) +/* 060E18 7F02C2E8 0FC1B320 */ jal getsubroty +/* 060E1C 7F02C2EC 8FA4002C */ lw $a0, 0x2c($sp) +/* 060E20 7F02C2F0 3C018005 */ lui $at, %hi(D_80051EA0) +/* 060E24 7F02C2F4 C4241EA0 */ lwc1 $f4, %lo(D_80051EA0)($at) +/* 060E28 7F02C2F8 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 060E2C 7F02C2FC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 060E30 7F02C300 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 060E34 7F02C304 46062202 */ mul.s $f8, $f4, $f6 +/* 060E38 7F02C308 8FAF002C */ lw $t7, 0x2c($sp) +/* 060E3C 7F02C30C 8FA70030 */ lw $a3, 0x30($sp) +/* 060E40 7F02C310 24010008 */ li $at, 8 +/* 060E44 7F02C314 C5E400A4 */ lwc1 $f4, 0xa4($t7) +/* 060E48 7F02C318 80E20007 */ lb $v0, 7($a3) +/* 060E4C 7F02C31C 46000306 */ mov.s $f12, $f0 +/* 060E50 7F02C320 460A4482 */ mul.s $f18, $f8, $f10 +/* 060E54 7F02C324 00E02025 */ move $a0, $a3 +/* 060E58 7F02C328 46049382 */ mul.s $f14, $f18, $f4 +/* 060E5C 7F02C32C 5441000A */ bnel $v0, $at, .L7F02C358 +/* 060E60 7F02C330 24010001 */ li $at, 1 +/* 060E64 7F02C334 8CE5004C */ lw $a1, 0x4c($a3) +/* 060E68 7F02C338 8CE60050 */ lw $a2, 0x50($a3) +/* 060E6C 7F02C33C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E70 7F02C340 0FC0942F */ jal sub_GAME_7F0250BC +/* 060E74 7F02C344 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060E78 7F02C348 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060E7C 7F02C34C 10000015 */ b .L7F02C3A4 +/* 060E80 7F02C350 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 060E84 7F02C354 24010001 */ li $at, 1 +.L7F02C358: +/* 060E88 7F02C358 14410009 */ bne $v0, $at, .L7F02C380 +/* 060E8C 7F02C35C 00E02025 */ move $a0, $a3 +/* 060E90 7F02C360 8CE50030 */ lw $a1, 0x30($a3) +/* 060E94 7F02C364 8CE60034 */ lw $a2, 0x34($a3) +/* 060E98 7F02C368 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060E9C 7F02C36C 0FC0942F */ jal sub_GAME_7F0250BC +/* 060EA0 7F02C370 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EA4 7F02C374 C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060EA8 7F02C378 1000000A */ b .L7F02C3A4 +/* 060EAC 7F02C37C C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C380: +/* 060EB0 7F02C380 AFA70030 */ sw $a3, 0x30($sp) +/* 060EB4 7F02C384 E7AC0020 */ swc1 $f12, 0x20($sp) +/* 060EB8 7F02C388 0FC225E6 */ jal get_curplayer_positiondata +/* 060EBC 7F02C38C E7AE0018 */ swc1 $f14, 0x18($sp) +/* 060EC0 7F02C390 8FA40030 */ lw $a0, 0x30($sp) +/* 060EC4 7F02C394 0FC0CAF6 */ jal get_distance_actor_to_position +/* 060EC8 7F02C398 24450008 */ addiu $a1, $v0, 8 +/* 060ECC 7F02C39C C7AC0020 */ lwc1 $f12, 0x20($sp) +/* 060ED0 7F02C3A0 C7AE0018 */ lwc1 $f14, 0x18($sp) +.L7F02C3A4: +/* 060ED4 7F02C3A4 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 060ED8 7F02C3A8 44808000 */ mtc1 $zero, $f16 +/* 060EDC 7F02C3AC 3C018005 */ lui $at, %hi(D_80051EA4) +/* 060EE0 7F02C3B0 46060081 */ sub.s $f2, $f0, $f6 +/* 060EE4 7F02C3B4 4610103C */ c.lt.s $f2, $f16 +/* 060EE8 7F02C3B8 00000000 */ nop +/* 060EEC 7F02C3BC 45020004 */ bc1fl .L7F02C3D0 +/* 060EF0 7F02C3C0 460E103C */ c.lt.s $f2, $f14 +/* 060EF4 7F02C3C4 C4201EA4 */ lwc1 $f0, %lo(D_80051EA4)($at) +/* 060EF8 7F02C3C8 46001080 */ add.s $f2, $f2, $f0 +/* 060EFC 7F02C3CC 460E103C */ c.lt.s $f2, $f14 +.L7F02C3D0: +/* 060F00 7F02C3D0 3C018005 */ lui $at, %hi(D_80051EA8) +/* 060F04 7F02C3D4 C4201EA8 */ lwc1 $f0, %lo(D_80051EA8)($at) +/* 060F08 7F02C3D8 45030008 */ bc1tl .L7F02C3FC +/* 060F0C 7F02C3DC 46026300 */ add.s $f12, $f12, $f2 +/* 060F10 7F02C3E0 460E0201 */ sub.s $f8, $f0, $f14 +/* 060F14 7F02C3E4 3C018005 */ lui $at, %hi(D_80051EAC) +/* 060F18 7F02C3E8 4602403C */ c.lt.s $f8, $f2 +/* 060F1C 7F02C3EC 00000000 */ nop +/* 060F20 7F02C3F0 4500000D */ bc1f .L7F02C428 +/* 060F24 7F02C3F4 00000000 */ nop +/* 060F28 7F02C3F8 46026300 */ add.s $f12, $f12, $f2 +.L7F02C3FC: +/* 060F2C 7F02C3FC 460C003E */ c.le.s $f0, $f12 +/* 060F30 7F02C400 00000000 */ nop +/* 060F34 7F02C404 45020003 */ bc1fl .L7F02C414 +/* 060F38 7F02C408 44056000 */ mfc1 $a1, $f12 +/* 060F3C 7F02C40C 46006301 */ sub.s $f12, $f12, $f0 +/* 060F40 7F02C410 44056000 */ mfc1 $a1, $f12 +.L7F02C414: +/* 060F44 7F02C414 0FC1B34F */ jal setsubroty +/* 060F48 7F02C418 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F4C 7F02C41C 24180003 */ li $t8, 3 +/* 060F50 7F02C420 1000001A */ b .L7F02C48C +/* 060F54 7F02C424 AFB80034 */ sw $t8, 0x34($sp) +.L7F02C428: +/* 060F58 7F02C428 C42A1EAC */ lwc1 $f10, %lo(D_80051EAC)($at) +/* 060F5C 7F02C42C 460A103C */ c.lt.s $f2, $f10 +/* 060F60 7F02C430 00000000 */ nop +/* 060F64 7F02C434 4502000D */ bc1fl .L7F02C46C +/* 060F68 7F02C438 460E6301 */ sub.s $f12, $f12, $f14 +/* 060F6C 7F02C43C 460E6300 */ add.s $f12, $f12, $f14 +/* 060F70 7F02C440 460C003E */ c.le.s $f0, $f12 +/* 060F74 7F02C444 00000000 */ nop +/* 060F78 7F02C448 45020003 */ bc1fl .L7F02C458 +/* 060F7C 7F02C44C 44056000 */ mfc1 $a1, $f12 +/* 060F80 7F02C450 46006301 */ sub.s $f12, $f12, $f0 +/* 060F84 7F02C454 44056000 */ mfc1 $a1, $f12 +.L7F02C458: +/* 060F88 7F02C458 0FC1B34F */ jal setsubroty +/* 060F8C 7F02C45C 8FA4002C */ lw $a0, 0x2c($sp) +/* 060F90 7F02C460 1000000B */ b .L7F02C490 +/* 060F94 7F02C464 C7B20028 */ lwc1 $f18, 0x28($sp) +/* 060F98 7F02C468 460E6301 */ sub.s $f12, $f12, $f14 +.L7F02C46C: +/* 060F9C 7F02C46C 4610603C */ c.lt.s $f12, $f16 +/* 060FA0 7F02C470 00000000 */ nop +/* 060FA4 7F02C474 45020003 */ bc1fl .L7F02C484 +/* 060FA8 7F02C478 44056000 */ mfc1 $a1, $f12 +/* 060FAC 7F02C47C 46006300 */ add.s $f12, $f12, $f0 +/* 060FB0 7F02C480 44056000 */ mfc1 $a1, $f12 +.L7F02C484: +/* 060FB4 7F02C484 0FC1B34F */ jal setsubroty +/* 060FB8 7F02C488 8FA4002C */ lw $a0, 0x2c($sp) +.L7F02C48C: +/* 060FBC 7F02C48C C7B20028 */ lwc1 $f18, 0x28($sp) +.L7F02C490: +/* 060FC0 7F02C490 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 060FC4 7F02C494 24190002 */ li $t9, 2 +/* 060FC8 7F02C498 4612203E */ c.le.s $f4, $f18 +/* 060FCC 7F02C49C 00000000 */ nop +/* 060FD0 7F02C4A0 45020003 */ bc1fl .L7F02C4B0 +/* 060FD4 7F02C4A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 060FD8 7F02C4A8 AFB90034 */ sw $t9, 0x34($sp) +.L7F02C4AC: +/* 060FDC 7F02C4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02C4B0: +/* 060FE0 7F02C4B0 8FA20034 */ lw $v0, 0x34($sp) +/* 060FE4 7F02C4B4 27BD0030 */ addiu $sp, $sp, 0x30 +/* 060FE8 7F02C4B8 03E00008 */ jr $ra +/* 060FEC 7F02C4BC 00000000 */ nop +) +#endif + + #endif @@ -12252,7 +12575,7 @@ glabel sub_GAME_7F02C4C0 /* 0611A4 7F02C674 00000000 */ nop /* 0611A8 7F02C678 4502001D */ bc1fl .L7F02C6F0 /* 0611AC 7F02C67C 44812000 */ mtc1 $at, $f4 -/* 0611B0 7F02C680 0C002914 */ jal get_random_value +/* 0611B0 7F02C680 0C002914 */ jal randomGetNext /* 0611B4 7F02C684 E7B00160 */ swc1 $f16, 0x160($sp) /* 0611B8 7F02C688 44825000 */ mtc1 $v0, $f10 /* 0611BC 7F02C68C C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12289,7 +12612,7 @@ glabel sub_GAME_7F02C4C0 /* 061230 7F02C700 00000000 */ nop /* 061234 7F02C704 4500001C */ bc1f .L7F02C778 /* 061238 7F02C708 00000000 */ nop -/* 06123C 7F02C70C 0C002914 */ jal get_random_value +/* 06123C 7F02C70C 0C002914 */ jal randomGetNext /* 061240 7F02C710 E7B00160 */ swc1 $f16, 0x160($sp) /* 061244 7F02C714 44823000 */ mtc1 $v0, $f6 /* 061248 7F02C718 C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12318,7 +12641,7 @@ glabel sub_GAME_7F02C4C0 /* 0612A0 7F02C770 100000F0 */ b .L7F02CB34 /* 0612A4 7F02C774 E7B2014C */ swc1 $f18, 0x14c($sp) .L7F02C778: -/* 0612A8 7F02C778 0C002914 */ jal get_random_value +/* 0612A8 7F02C778 0C002914 */ jal randomGetNext /* 0612AC 7F02C77C E7B00160 */ swc1 $f16, 0x160($sp) /* 0612B0 7F02C780 44822000 */ mtc1 $v0, $f4 /* 0612B4 7F02C784 C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12346,7 +12669,7 @@ glabel sub_GAME_7F02C4C0 /* 061308 7F02C7D8 100000D6 */ b .L7F02CB34 /* 06130C 7F02C7DC E7AA014C */ swc1 $f10, 0x14c($sp) .L7F02C7E0: -/* 061310 7F02C7E0 0C002914 */ jal get_random_value +/* 061310 7F02C7E0 0C002914 */ jal randomGetNext /* 061314 7F02C7E4 E7B00160 */ swc1 $f16, 0x160($sp) /* 061318 7F02C7E8 44824000 */ mtc1 $v0, $f8 /* 06131C 7F02C7EC C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12381,7 +12704,7 @@ glabel sub_GAME_7F02C4C0 /* 061388 7F02C858 00000000 */ nop /* 06138C 7F02C85C 45020040 */ bc1fl .L7F02C960 /* 061390 7F02C860 C5CC0004 */ lwc1 $f12, 4($t6) -/* 061394 7F02C864 0C002914 */ jal get_random_value +/* 061394 7F02C864 0C002914 */ jal randomGetNext /* 061398 7F02C868 E7B00160 */ swc1 $f16, 0x160($sp) /* 06139C 7F02C86C 24010003 */ li $at, 3 /* 0613A0 7F02C870 0041001B */ divu $zero, $v0, $at @@ -12389,7 +12712,7 @@ glabel sub_GAME_7F02C4C0 /* 0613A8 7F02C878 C7B00160 */ lwc1 $f16, 0x160($sp) /* 0613AC 7F02C87C 1580001C */ bnez $t4, .L7F02C8F0 /* 0613B0 7F02C880 00000000 */ nop -/* 0613B4 7F02C884 0C002914 */ jal get_random_value +/* 0613B4 7F02C884 0C002914 */ jal randomGetNext /* 0613B8 7F02C888 E7B00160 */ swc1 $f16, 0x160($sp) /* 0613BC 7F02C88C 44825000 */ mtc1 $v0, $f10 /* 0613C0 7F02C890 C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12418,7 +12741,7 @@ glabel sub_GAME_7F02C4C0 /* 061418 7F02C8E8 10000092 */ b .L7F02CB34 /* 06141C 7F02C8EC E7A6014C */ swc1 $f6, 0x14c($sp) .L7F02C8F0: -/* 061420 7F02C8F0 0C002914 */ jal get_random_value +/* 061420 7F02C8F0 0C002914 */ jal randomGetNext /* 061424 7F02C8F4 E7B00160 */ swc1 $f16, 0x160($sp) /* 061428 7F02C8F8 44829000 */ mtc1 $v0, $f18 /* 06142C 7F02C8FC C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12456,7 +12779,7 @@ glabel sub_GAME_7F02C4C0 /* 0614A4 7F02C974 00000000 */ nop /* 0614A8 7F02C978 4502001D */ bc1fl .L7F02C9F0 /* 0614AC 7F02C97C 44812000 */ mtc1 $at, $f4 -/* 0614B0 7F02C980 0C002914 */ jal get_random_value +/* 0614B0 7F02C980 0C002914 */ jal randomGetNext /* 0614B4 7F02C984 E7B00160 */ swc1 $f16, 0x160($sp) /* 0614B8 7F02C988 44823000 */ mtc1 $v0, $f6 /* 0614BC 7F02C98C C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12493,7 +12816,7 @@ glabel sub_GAME_7F02C4C0 /* 061530 7F02CA00 00000000 */ nop /* 061534 7F02CA04 4500001C */ bc1f .L7F02CA78 /* 061538 7F02CA08 00000000 */ nop -/* 06153C 7F02CA0C 0C002914 */ jal get_random_value +/* 06153C 7F02CA0C 0C002914 */ jal randomGetNext /* 061540 7F02CA10 E7B00160 */ swc1 $f16, 0x160($sp) /* 061544 7F02CA14 44829000 */ mtc1 $v0, $f18 /* 061548 7F02CA18 C7B00160 */ lwc1 $f16, 0x160($sp) @@ -12522,7 +12845,7 @@ glabel sub_GAME_7F02C4C0 /* 0615A0 7F02CA70 10000030 */ b .L7F02CB34 /* 0615A4 7F02CA74 E7AA014C */ swc1 $f10, 0x14c($sp) .L7F02CA78: -/* 0615A8 7F02CA78 0C002914 */ jal get_random_value +/* 0615A8 7F02CA78 0C002914 */ jal randomGetNext /* 0615AC 7F02CA7C E7B00160 */ swc1 $f16, 0x160($sp) /* 0615B0 7F02CA80 44822000 */ mtc1 $v0, $f4 /* 0615B4 7F02CA84 C7B00160 */ lwc1 $f16, 0x160($sp) @@ -13396,7 +13719,7 @@ glabel sub_GAME_7F02D2E4 /* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) /* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) /* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 -/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062064 7F02D534 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) /* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 /* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) @@ -13422,7 +13745,7 @@ glabel sub_GAME_7F02D2E4 /* 0620B4 7F02D584 00000000 */ nop /* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 /* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 0620C4 7F02D594 00000000 */ nop /* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod /* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) @@ -13639,7 +13962,7 @@ glabel sub_GAME_7F02D2E4 /* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) /* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) /* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 -/* 062064 7F02D534 0FC177F3 */ jal get_automatic_firing_rate +/* 062064 7F02D534 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) /* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 /* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) @@ -13665,7 +13988,7 @@ glabel sub_GAME_7F02D2E4 /* 0620B4 7F02D584 00000000 */ nop /* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 /* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 0620C4 7F02D594 00000000 */ nop /* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod /* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) @@ -13711,6 +14034,251 @@ glabel sub_GAME_7F02D2E4 /* 06215C 7F02D62C 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051F50 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80051F58 +.word 0x3e23d70a /*0.16*/ +glabel D_80051F5C +.word 0x41200419 /*10.001*/ +.text +glabel sub_GAME_7F02D2E4 +/* 061E14 7F02D2E4 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 061E18 7F02D2E8 AFBF0014 */ sw $ra, 0x14($sp) +/* 061E1C 7F02D2EC AFA40060 */ sw $a0, 0x60($sp) +/* 061E20 7F02D2F0 AFA50064 */ sw $a1, 0x64($sp) +/* 061E24 7F02D2F4 AFA60068 */ sw $a2, 0x68($sp) +/* 061E28 7F02D2F8 0FC225E6 */ jal get_curplayer_positiondata +/* 061E2C 7F02D2FC AFA7006C */ sw $a3, 0x6c($sp) +/* 061E30 7F02D300 8FAE0060 */ lw $t6, 0x60($sp) +/* 061E34 7F02D304 C4440008 */ lwc1 $f4, 8($v0) +/* 061E38 7F02D308 C448000C */ lwc1 $f8, 0xc($v0) +/* 061E3C 7F02D30C 8DC30018 */ lw $v1, 0x18($t6) +/* 061E40 7F02D310 C4660008 */ lwc1 $f6, 8($v1) +/* 061E44 7F02D314 C46A000C */ lwc1 $f10, 0xc($v1) +/* 061E48 7F02D318 46062301 */ sub.s $f12, $f4, $f6 +/* 061E4C 7F02D31C 460A4101 */ sub.s $f4, $f8, $f10 +/* 061E50 7F02D320 E7A40050 */ swc1 $f4, 0x50($sp) +/* 061E54 7F02D324 C4460010 */ lwc1 $f6, 0x10($v0) +/* 061E58 7F02D328 C4680010 */ lwc1 $f8, 0x10($v1) +/* 061E5C 7F02D32C E7AC0054 */ swc1 $f12, 0x54($sp) +/* 061E60 7F02D330 46083381 */ sub.s $f14, $f6, $f8 +/* 061E64 7F02D334 0FC16A8C */ jal atan2f +/* 061E68 7F02D338 E7AE004C */ swc1 $f14, 0x4c($sp) +/* 061E6C 7F02D33C E7A00048 */ swc1 $f0, 0x48($sp) +/* 061E70 7F02D340 0FC0B064 */ jal sub_GAME_7F02C190 +/* 061E74 7F02D344 8FA40060 */ lw $a0, 0x60($sp) +/* 061E78 7F02D348 C7B00054 */ lwc1 $f16, 0x54($sp) +/* 061E7C 7F02D34C C7B20050 */ lwc1 $f18, 0x50($sp) +/* 061E80 7F02D350 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 061E84 7F02D354 46108102 */ mul.s $f4, $f16, $f16 +/* 061E88 7F02D358 C7AE004C */ lwc1 $f14, 0x4c($sp) +/* 061E8C 7F02D35C 46005081 */ sub.s $f2, $f10, $f0 +/* 061E90 7F02D360 46129182 */ mul.s $f6, $f18, $f18 +/* 061E94 7F02D364 E7A00044 */ swc1 $f0, 0x44($sp) +/* 061E98 7F02D368 460E7282 */ mul.s $f10, $f14, $f14 +/* 061E9C 7F02D36C E7A20040 */ swc1 $f2, 0x40($sp) +/* 061EA0 7F02D370 46062200 */ add.s $f8, $f4, $f6 +/* 061EA4 7F02D374 460A4300 */ add.s $f12, $f8, $f10 +/* 061EA8 7F02D378 0FC0B491 */ jal sub_GAME_7F02D244 +/* 061EAC 7F02D37C E7AC001C */ swc1 $f12, 0x1c($sp) +/* 061EB0 7F02D380 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 061EB4 7F02D384 44802000 */ mtc1 $zero, $f4 +/* 061EB8 7F02D388 3C018005 */ lui $at, %hi(D_80051F50) +/* 061EBC 7F02D38C 8FAF0064 */ lw $t7, 0x64($sp) +/* 061EC0 7F02D390 4604103C */ c.lt.s $f2, $f4 +/* 061EC4 7F02D394 00000000 */ nop +/* 061EC8 7F02D398 45020004 */ bc1fl .L7F02D3AC +/* 061ECC 7F02D39C 4600103C */ c.lt.s $f2, $f0 +/* 061ED0 7F02D3A0 C4261F50 */ lwc1 $f6, %lo(D_80051F50)($at) +/* 061ED4 7F02D3A4 46061080 */ add.s $f2, $f2, $f6 +/* 061ED8 7F02D3A8 4600103C */ c.lt.s $f2, $f0 +.L7F02D3AC: +/* 061EDC 7F02D3AC 00001025 */ move $v0, $zero +/* 061EE0 7F02D3B0 3C018005 */ lui $at, %hi(D_80051F54) +/* 061EE4 7F02D3B4 45000002 */ bc1f .L7F02D3C0 +/* 061EE8 7F02D3B8 00000000 */ nop +/* 061EEC 7F02D3BC 24020001 */ li $v0, 1 +.L7F02D3C0: +/* 061EF0 7F02D3C0 14400009 */ bnez $v0, .L7F02D3E8 +/* 061EF4 7F02D3C4 00401825 */ move $v1, $v0 +/* 061EF8 7F02D3C8 C4281F54 */ lwc1 $f8, %lo(D_80051F54)($at) +/* 061EFC 7F02D3CC 00001825 */ move $v1, $zero +/* 061F00 7F02D3D0 46004281 */ sub.s $f10, $f8, $f0 +/* 061F04 7F02D3D4 4602503C */ c.lt.s $f10, $f2 +/* 061F08 7F02D3D8 00000000 */ nop +/* 061F0C 7F02D3DC 45020003 */ bc1fl .L7F02D3EC +/* 061F10 7F02D3E0 ADE30000 */ sw $v1, ($t7) +/* 061F14 7F02D3E4 24030001 */ li $v1, 1 +.L7F02D3E8: +/* 061F18 7F02D3E8 ADE30000 */ sw $v1, ($t7) +.L7F02D3EC: +/* 061F1C 7F02D3EC 8FB80068 */ lw $t8, 0x68($sp) +/* 061F20 7F02D3F0 AF000000 */ sw $zero, ($t8) +/* 061F24 7F02D3F4 0FC227A9 */ jal check_if_bond_is_invincible +/* 061F28 7F02D3F8 AFA30024 */ sw $v1, 0x24($sp) +/* 061F2C 7F02D3FC 14400088 */ bnez $v0, .L7F02D620 +/* 061F30 7F02D400 8FA30024 */ lw $v1, 0x24($sp) +/* 061F34 7F02D404 50600087 */ beql $v1, $zero, .L7F02D624 +/* 061F38 7F02D408 8FBF0014 */ lw $ra, 0x14($sp) +/* 061F3C 7F02D40C 0C007DF8 */ jal sqrtf +/* 061F40 7F02D410 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 061F44 7F02D414 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 061F48 7F02D418 44816000 */ mtc1 $at, $f12 +/* 061F4C 7F02D41C 3C018005 */ lui $at, %hi(D_80051F58) +/* 061F50 7F02D420 C4241F58 */ lwc1 $f4, %lo(D_80051F58)($at) +/* 061F54 7F02D424 3C018005 */ lui $at, %hi(global_timer_delta) +/* 061F58 7F02D428 4600603C */ c.lt.s $f12, $f0 +/* 061F5C 7F02D42C C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 061F60 7F02D430 8FB90060 */ lw $t9, 0x60($sp) +/* 061F64 7F02D434 46062082 */ mul.s $f2, $f4, $f6 +/* 061F68 7F02D438 45020005 */ bc1fl .L7F02D450 +/* 061F6C 7F02D43C 83220002 */ lb $v0, 2($t9) +/* 061F70 7F02D440 46006203 */ div.s $f8, $f12, $f0 +/* 061F74 7F02D444 46081082 */ mul.s $f2, $f2, $f8 +/* 061F78 7F02D448 00000000 */ nop +/* 061F7C 7F02D44C 83220002 */ lb $v0, 2($t9) +.L7F02D450: +/* 061F80 7F02D450 1840000C */ blez $v0, .L7F02D484 +/* 061F84 7F02D454 00000000 */ nop +/* 061F88 7F02D458 44825000 */ mtc1 $v0, $f10 +/* 061F8C 7F02D45C 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 061F90 7F02D460 44813000 */ mtc1 $at, $f6 +/* 061F94 7F02D464 46805120 */ cvt.s.w $f4, $f10 +/* 061F98 7F02D468 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061F9C 7F02D46C 44815000 */ mtc1 $at, $f10 +/* 061FA0 7F02D470 46062203 */ div.s $f8, $f4, $f6 +/* 061FA4 7F02D474 46085100 */ add.s $f4, $f10, $f8 +/* 061FA8 7F02D478 46041082 */ mul.s $f2, $f2, $f4 +/* 061FAC 7F02D47C 1000000F */ b .L7F02D4BC +/* 061FB0 7F02D480 00000000 */ nop +.L7F02D484: +/* 061FB4 7F02D484 0441000D */ bgez $v0, .L7F02D4BC +/* 061FB8 7F02D488 2841FF9D */ slti $at, $v0, -0x63 +/* 061FBC 7F02D48C 10200004 */ beqz $at, .L7F02D4A0 +/* 061FC0 7F02D490 24480064 */ addiu $t0, $v0, 0x64 +/* 061FC4 7F02D494 44801000 */ mtc1 $zero, $f2 +/* 061FC8 7F02D498 10000008 */ b .L7F02D4BC +/* 061FCC 7F02D49C 00000000 */ nop +.L7F02D4A0: +/* 061FD0 7F02D4A0 44883000 */ mtc1 $t0, $f6 +/* 061FD4 7F02D4A4 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 061FD8 7F02D4A8 44814000 */ mtc1 $at, $f8 +/* 061FDC 7F02D4AC 468032A0 */ cvt.s.w $f10, $f6 +/* 061FE0 7F02D4B0 46085103 */ div.s $f4, $f10, $f8 +/* 061FE4 7F02D4B4 46041082 */ mul.s $f2, $f2, $f4 +/* 061FE8 7F02D4B8 00000000 */ nop +.L7F02D4BC: +/* 061FEC 7F02D4BC 0FC074D8 */ jal get_007_accuracy_mod +/* 061FF0 7F02D4C0 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 061FF4 7F02D4C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 061FF8 7F02D4C8 44813000 */ mtc1 $at, $f6 +/* 061FFC 7F02D4CC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062000 7F02D4D0 4606003E */ c.le.s $f0, $f6 +/* 062004 7F02D4D4 00000000 */ nop +/* 062008 7F02D4D8 45000007 */ bc1f .L7F02D4F8 +/* 06200C 7F02D4DC 00000000 */ nop +/* 062010 7F02D4E0 0FC074D8 */ jal get_007_accuracy_mod +/* 062014 7F02D4E4 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062018 7F02D4E8 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 06201C 7F02D4EC 46001082 */ mul.s $f2, $f2, $f0 +/* 062020 7F02D4F0 1000000C */ b .L7F02D524 +/* 062024 7F02D4F4 00000000 */ nop +.L7F02D4F8: +/* 062028 7F02D4F8 0FC074D8 */ jal get_007_accuracy_mod +/* 06202C 7F02D4FC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 062030 7F02D500 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 062034 7F02D504 44815000 */ mtc1 $at, $f10 +/* 062038 7F02D508 3C018005 */ lui $at, %hi(D_80051F5C) +/* 06203C 7F02D50C C4281F5C */ lwc1 $f8, %lo(D_80051F5C)($at) +/* 062040 7F02D510 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062044 7F02D514 46004101 */ sub.s $f4, $f8, $f0 +/* 062048 7F02D518 46045183 */ div.s $f6, $f10, $f4 +/* 06204C 7F02D51C 46061082 */ mul.s $f2, $f2, $f6 +/* 062050 7F02D520 00000000 */ nop +.L7F02D524: +/* 062054 7F02D524 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 062058 7F02D528 C428CE40 */ lwc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 06205C 7F02D52C 8FA4006C */ lw $a0, 0x6c($sp) +/* 062060 7F02D530 46081082 */ mul.s $f2, $f2, $f8 +/* 062064 7F02D534 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate +/* 062068 7F02D538 E7A2002C */ swc1 $f2, 0x2c($sp) +/* 06206C 7F02D53C 1C400002 */ bgtz $v0, .L7F02D548 +/* 062070 7F02D540 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 062074 7F02D544 46021080 */ add.s $f2, $f2, $f2 +.L7F02D548: +/* 062078 7F02D548 8FA4006C */ lw $a0, 0x6c($sp) +/* 06207C 7F02D54C 2401000F */ li $at, 15 +/* 062080 7F02D550 8FA20060 */ lw $v0, 0x60($sp) +/* 062084 7F02D554 10810003 */ beq $a0, $at, .L7F02D564 +/* 062088 7F02D558 24010010 */ li $at, 16 +/* 06208C 7F02D55C 54810003 */ bnel $a0, $at, .L7F02D56C +/* 062090 7F02D560 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D564: +/* 062094 7F02D564 46021080 */ add.s $f2, $f2, $f2 +/* 062098 7F02D568 C44A013C */ lwc1 $f10, 0x13c($v0) +.L7F02D56C: +/* 06209C 7F02D56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0620A0 7F02D570 44814000 */ mtc1 $at, $f8 +/* 0620A4 7F02D574 46025100 */ add.s $f4, $f10, $f2 +/* 0620A8 7F02D578 E444013C */ swc1 $f4, 0x13c($v0) +/* 0620AC 7F02D57C C446013C */ lwc1 $f6, 0x13c($v0) +/* 0620B0 7F02D580 4606403E */ c.le.s $f8, $f6 +/* 0620B4 7F02D584 00000000 */ nop +/* 0620B8 7F02D588 45020026 */ bc1fl .L7F02D624 +/* 0620BC 7F02D58C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0620C0 7F02D590 0FC177E1 */ jal bondwalkItemGetDestructionAmount +/* 0620C4 7F02D594 00000000 */ nop +/* 0620C8 7F02D598 0FC074C9 */ jal get_007_damage_mod +/* 0620CC 7F02D59C E7A00020 */ swc1 $f0, 0x20($sp) +/* 0620D0 7F02D5A0 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0620D4 7F02D5A4 44815000 */ mtc1 $at, $f10 +/* 0620D8 7F02D5A8 C7A40020 */ lwc1 $f4, 0x20($sp) +/* 0620DC 7F02D5AC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0620E0 7F02D5B0 C428CE44 */ lwc1 $f8, %lo(ai_damage_modifier)($at) +/* 0620E4 7F02D5B4 46045182 */ mul.s $f6, $f10, $f4 +/* 0620E8 7F02D5B8 8FA9006C */ lw $t1, 0x6c($sp) +/* 0620EC 7F02D5BC 2401000F */ li $at, 15 +/* 0620F0 7F02D5C0 C7AE0044 */ lwc1 $f14, 0x44($sp) +/* 0620F4 7F02D5C4 2406FFFF */ li $a2, -1 +/* 0620F8 7F02D5C8 46083282 */ mul.s $f10, $f6, $f8 +/* 0620FC 7F02D5CC 00000000 */ nop +/* 062100 7F02D5D0 460A0302 */ mul.s $f12, $f0, $f10 +/* 062104 7F02D5D4 11210003 */ beq $t1, $at, .L7F02D5E4 +/* 062108 7F02D5D8 00000000 */ nop +/* 06210C 7F02D5DC 24010010 */ li $at, 16 +/* 062110 7F02D5E0 15210005 */ bne $t1, $at, .L7F02D5F8 +.L7F02D5E4: +/* 062114 7F02D5E4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 062118 7F02D5E8 44812000 */ mtc1 $at, $f4 +/* 06211C 7F02D5EC 00000000 */ nop +/* 062120 7F02D5F0 46046302 */ mul.s $f12, $f12, $f4 +/* 062124 7F02D5F4 00000000 */ nop +.L7F02D5F8: +/* 062128 7F02D5F8 0FC22793 */ jal sub_GAME_7F089E4C +/* 06212C 7F02D5FC 24070001 */ li $a3, 1 +/* 062130 7F02D600 44803000 */ mtc1 $zero, $f6 +/* 062134 7F02D604 8FAA0060 */ lw $t2, 0x60($sp) +/* 062138 7F02D608 0FC227A9 */ jal check_if_bond_is_invincible +/* 06213C 7F02D60C E546013C */ swc1 $f6, 0x13c($t2) +/* 062140 7F02D610 10400003 */ beqz $v0, .L7F02D620 +/* 062144 7F02D614 8FAC0068 */ lw $t4, 0x68($sp) +/* 062148 7F02D618 240B0001 */ li $t3, 1 +/* 06214C 7F02D61C AD8B0000 */ sw $t3, ($t4) +.L7F02D620: +/* 062150 7F02D620 8FBF0014 */ lw $ra, 0x14($sp) +.L7F02D624: +/* 062154 7F02D624 27BD0060 */ addiu $sp, $sp, 0x60 +/* 062158 7F02D628 03E00008 */ jr $ra +/* 06215C 7F02D62C 00000000 */ nop +) +#endif + #endif @@ -13872,7 +14440,7 @@ glabel sub_GAME_7F02D734 /* 0622DC 7F02D7AC 012B082A */ slt $at, $t1, $t3 /* 0622E0 7F02D7B0 50200006 */ beql $at, $zero, .L7F02D7CC /* 0622E4 7F02D7B4 8FAD028C */ lw $t5, 0x28c($sp) -/* 0622E8 7F02D7B8 0FC177F3 */ jal get_automatic_firing_rate +/* 0622E8 7F02D7B8 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 0622EC 7F02D7BC 81840080 */ lb $a0, 0x80($t4) /* 0622F0 7F02D7C0 044102A2 */ bgez $v0, .L7F02E24C /* 0622F4 7F02D7C4 8FA50288 */ lw $a1, 0x288($sp) @@ -13887,7 +14455,7 @@ glabel sub_GAME_7F02D734 /* 062310 7F02D7E0 A04F0004 */ sb $t7, 4($v0) /* 062314 7F02D7E4 8FB80274 */ lw $t8, 0x274($sp) /* 062318 7F02D7E8 83040080 */ lb $a0, 0x80($t8) -/* 06231C 7F02D7EC 0FC177F3 */ jal get_automatic_firing_rate +/* 06231C 7F02D7EC 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 062320 7F02D7F0 AFA20040 */ sw $v0, 0x40($sp) /* 062324 7F02D7F4 04410006 */ bgez $v0, .L7F02D810 /* 062328 7F02D7F8 8FAA0274 */ lw $t2, 0x274($sp) @@ -13897,7 +14465,7 @@ glabel sub_GAME_7F02D734 /* 062338 7F02D808 10000031 */ b .L7F02D8D0 /* 06233C 7F02D80C AFA80264 */ sw $t0, 0x264($sp) .L7F02D810: -/* 062340 7F02D810 0FC177F3 */ jal get_automatic_firing_rate +/* 062340 7F02D810 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 062344 7F02D814 81440080 */ lb $a0, 0x80($t2) /* 062348 7F02D818 8FA90040 */ lw $t1, 0x40($sp) /* 06234C 7F02D81C 240D0001 */ li $t5, 1 @@ -13919,7 +14487,7 @@ glabel sub_GAME_7F02D734 /* 062384 7F02D854 240C0001 */ li $t4, 1 /* 062388 7F02D858 8FAE0274 */ lw $t6, 0x274($sp) /* 06238C 7F02D85C AFAD0268 */ sw $t5, 0x268($sp) -/* 062390 7F02D860 0FC177F3 */ jal get_automatic_firing_rate +/* 062390 7F02D860 0FC177F3 */ jal bondwalkItemGetAutomaticFiringRate /* 062394 7F02D864 81C40080 */ lb $a0, 0x80($t6) /* 062398 7F02D868 8FAF0040 */ lw $t7, 0x40($sp) /* 06239C 7F02D86C 0002C840 */ sll $t9, $v0, 1 @@ -14239,7 +14807,7 @@ glabel sub_GAME_7F02D734 /* 062854 7F02DD24 8FA2027C */ lw $v0, 0x27c($sp) /* 062858 7F02DD28 8C62006C */ lw $v0, 0x6c($v1) /* 06285C 7F02DD2C 2419FFFF */ li $t9, -1 -/* 062860 7F02DD30 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 062860 7F02DD30 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 062864 7F02DD34 8C4F0000 */ lw $t7, ($v0) /* 062868 7F02DD38 24050001 */ li $a1, 1 /* 06286C 7F02DD3C 35F80080 */ ori $t8, $t7, 0x80 @@ -14270,17 +14838,17 @@ glabel sub_GAME_7F02D734 /* 0628D0 7F02DDA0 55C00006 */ bnezl $t6, .L7F02DDBC /* 0628D4 7F02DDA4 8C4F009C */ lw $t7, 0x9c($v0) /* 0628D8 7F02DDA8 0C002382 */ jal play_sfx_a1 -/* 0628DC 7F02DDAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0628DC 7F02DDAC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0628E0 7F02DDB0 1000011D */ b .L7F02E228 /* 0628E4 7F02DDB4 8FA2027C */ lw $v0, 0x27c($sp) /* 0628E8 7F02DDB8 8C4F009C */ lw $t7, 0x9c($v0) .L7F02DDBC: -/* 0628EC 7F02DDBC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0628EC 7F02DDBC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0628F0 7F02DDC0 24050001 */ li $a1, 1 /* 0628F4 7F02DDC4 15E00117 */ bnez $t7, .L7F02E224 /* 0628F8 7F02DDC8 2446009C */ addiu $a2, $v0, 0x9c /* 0628FC 7F02DDCC 0C002382 */ jal play_sfx_a1 -/* 062900 7F02DDD0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 062900 7F02DDD0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 062904 7F02DDD4 10000114 */ b .L7F02E228 /* 062908 7F02DDD8 8FA2027C */ lw $v0, 0x27c($sp) .L7F02DDDC: @@ -14521,7 +15089,7 @@ glabel sub_GAME_7F02D734 /* 062C7C 7F02E14C 54410014 */ bnel $v0, $at, .L7F02E1A0 /* 062C80 7F02E150 8FAC0264 */ lw $t4, 0x264($sp) .L7F02E154: -/* 062C84 7F02E154 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 062C84 7F02E154 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 062C88 7F02E158 81240080 */ lb $a0, 0x80($t1) /* 062C8C 7F02E15C 0FC26C54 */ jal get_cur_playernum /* 062C90 7F02E160 E7A0004C */ swc1 $f0, 0x4c($sp) @@ -15745,6 +16313,215 @@ glabel sub_GAME_7F02EBFC ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051FCC +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F02EBFC +/* 06372C 7F02EBFC 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 063730 7F02EC00 AFBF0024 */ sw $ra, 0x24($sp) +/* 063734 7F02EC04 AFB10020 */ sw $s1, 0x20($sp) +/* 063738 7F02EC08 AFB0001C */ sw $s0, 0x1c($sp) +/* 06373C 7F02EC0C 8C91001C */ lw $s1, 0x1c($a0) +/* 063740 7F02EC10 00808025 */ move $s0, $a0 +/* 063744 7F02EC14 0FC1BD6F */ jal sub_GAME_7F06F5BC +/* 063748 7F02EC18 02202025 */ move $a0, $s1 +/* 06374C 7F02EC1C 8E020058 */ lw $v0, 0x58($s0) +/* 063750 7F02EC20 46000086 */ mov.s $f2, $f0 +/* 063754 7F02EC24 24010001 */ li $at, 1 +/* 063758 7F02EC28 5040004E */ beql $v0, $zero, .L7F02ED64 +/* 06375C 7F02EC2C 8E02004C */ lw $v0, 0x4c($s0) +/* 063760 7F02EC30 1441002D */ bne $v0, $at, .L7F02ECE8 +/* 063764 7F02EC34 02202025 */ move $a0, $s1 +/* 063768 7F02EC38 8E02002C */ lw $v0, 0x2c($s0) +/* 06376C 7F02EC3C 44802000 */ mtc1 $zero, $f4 +/* 063770 7F02EC40 C4400024 */ lwc1 $f0, 0x24($v0) +/* 063774 7F02EC44 4600203E */ c.le.s $f4, $f0 +/* 063778 7F02EC48 00000000 */ nop +/* 06377C 7F02EC4C 45020004 */ bc1fl .L7F02EC60 +/* 063780 7F02EC50 C442001C */ lwc1 $f2, 0x1c($v0) +/* 063784 7F02EC54 10000002 */ b .L7F02EC60 +/* 063788 7F02EC58 46000086 */ mov.s $f2, $f0 +/* 06378C 7F02EC5C C442001C */ lwc1 $f2, 0x1c($v0) +.L7F02EC60: +/* 063790 7F02EC60 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063794 7F02EC64 E7A20034 */ swc1 $f2, 0x34($sp) +/* 063798 7F02EC68 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06379C 7F02EC6C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 0637A0 7F02EC70 AFA2002C */ sw $v0, 0x2c($sp) +/* 0637A4 7F02EC74 02002025 */ move $a0, $s0 +/* 0637A8 7F02EC78 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 0637AC 7F02EC7C 3C053F00 */ lui $a1, 0x3f00 +/* 0637B0 7F02EC80 C7A20034 */ lwc1 $f2, 0x34($sp) +/* 0637B4 7F02EC84 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 0637B8 7F02EC88 44813000 */ mtc1 $at, $f6 +/* 0637BC 7F02EC8C 82260024 */ lb $a2, 0x24($s1) +/* 0637C0 7F02EC90 44071000 */ mfc1 $a3, $f2 +/* 0637C4 7F02EC94 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0637C8 7F02EC98 02202025 */ move $a0, $s1 +/* 0637CC 7F02EC9C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0637D0 7F02ECA0 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0637D4 7F02ECA4 E7A60014 */ swc1 $f6, 0x14($sp) +/* 0637D8 7F02ECA8 8E0E002C */ lw $t6, 0x2c($s0) +/* 0637DC 7F02ECAC 44804000 */ mtc1 $zero, $f8 +/* 0637E0 7F02ECB0 C5C00014 */ lwc1 $f0, 0x14($t6) +/* 0637E4 7F02ECB4 4600403E */ c.le.s $f8, $f0 +/* 0637E8 7F02ECB8 00000000 */ nop +/* 0637EC 7F02ECBC 45020005 */ bc1fl .L7F02ECD4 +/* 0637F0 7F02ECC0 240F0002 */ li $t7, 2 +/* 0637F4 7F02ECC4 44050000 */ mfc1 $a1, $f0 +/* 0637F8 7F02ECC8 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0637FC 7F02ECCC 02202025 */ move $a0, $s1 +/* 063800 7F02ECD0 240F0002 */ li $t7, 2 +.L7F02ECD4: +/* 063804 7F02ECD4 AE0F0058 */ sw $t7, 0x58($s0) +/* 063808 7F02ECD8 0FC0B43E */ jal sub_GAME_7F02D0F8 +/* 06380C 7F02ECDC 02002025 */ move $a0, $s0 +/* 063810 7F02ECE0 1000007B */ b .L7F02EED0 +/* 063814 7F02ECE4 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ECE8: +/* 063818 7F02ECE8 24010002 */ li $at, 2 +/* 06381C 7F02ECEC 1441001C */ bne $v0, $at, .L7F02ED60 +/* 063820 7F02ECF0 02202025 */ move $a0, $s1 +/* 063824 7F02ECF4 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063828 7F02ECF8 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06382C 7F02ECFC C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063830 7F02ED00 4602003E */ c.le.s $f0, $f2 +/* 063834 7F02ED04 00000000 */ nop +/* 063838 7F02ED08 45020071 */ bc1fl .L7F02EED0 +/* 06383C 7F02ED0C 8FBF0024 */ lw $ra, 0x24($sp) +/* 063840 7F02ED10 8E18004C */ lw $t8, 0x4c($s0) +/* 063844 7F02ED14 8E0A0054 */ lw $t2, 0x54($s0) +/* 063848 7F02ED18 2401FFBF */ li $at, -65 +/* 06384C 7F02ED1C 37190020 */ ori $t9, $t8, 0x20 +/* 063850 7F02ED20 AE19004C */ sw $t9, 0x4c($s0) +/* 063854 7F02ED24 03214824 */ and $t1, $t9, $at +/* 063858 7F02ED28 11400007 */ beqz $t2, .L7F02ED48 +/* 06385C 7F02ED2C AE09004C */ sw $t1, 0x4c($s0) +/* 063860 7F02ED30 02002025 */ move $a0, $s0 +/* 063864 7F02ED34 01202825 */ move $a1, $t1 +/* 063868 7F02ED38 0FC09558 */ jal sub_GAME_7F025560 +/* 06386C 7F02ED3C 8E060050 */ lw $a2, 0x50($s0) +/* 063870 7F02ED40 10000063 */ b .L7F02EED0 +/* 063874 7F02ED44 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED48: +/* 063878 7F02ED48 02002025 */ move $a0, $s0 +/* 06387C 7F02ED4C 8E05004C */ lw $a1, 0x4c($s0) +/* 063880 7F02ED50 0FC095BC */ jal sub_GAME_7F0256F0 +/* 063884 7F02ED54 8E060050 */ lw $a2, 0x50($s0) +/* 063888 7F02ED58 1000005D */ b .L7F02EED0 +/* 06388C 7F02ED5C 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02ED60: +/* 063890 7F02ED60 8E02004C */ lw $v0, 0x4c($s0) +.L7F02ED64: +/* 063894 7F02ED64 304B0020 */ andi $t3, $v0, 0x20 +/* 063898 7F02ED68 1160001C */ beqz $t3, .L7F02EDDC +/* 06389C 7F02ED6C 304C0040 */ andi $t4, $v0, 0x40 +/* 0638A0 7F02ED70 1180000D */ beqz $t4, .L7F02EDA8 +/* 0638A4 7F02ED74 02202025 */ move $a0, $s1 +/* 0638A8 7F02ED78 3C018005 */ lui $at, %hi(D_80051FCC) +/* 0638AC 7F02ED7C C42A1FCC */ lwc1 $f10, %lo(D_80051FCC)($at) +/* 0638B0 7F02ED80 8E05002C */ lw $a1, 0x2c($s0) +/* 0638B4 7F02ED84 82060039 */ lb $a2, 0x39($s0) +/* 0638B8 7F02ED88 82070038 */ lb $a3, 0x38($s0) +/* 0638BC 7F02ED8C 02002025 */ move $a0, $s0 +/* 0638C0 7F02ED90 0FC0B130 */ jal sub_GAME_7F02C4C0 +/* 0638C4 7F02ED94 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0638C8 7F02ED98 1440004C */ bnez $v0, .L7F02EECC +/* 0638CC 7F02ED9C 240D0001 */ li $t5, 1 +/* 0638D0 7F02EDA0 1000004A */ b .L7F02EECC +/* 0638D4 7F02EDA4 AE0D0058 */ sw $t5, 0x58($s0) +.L7F02EDA8: +/* 0638D8 7F02EDA8 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 0638DC 7F02EDAC E7A20038 */ swc1 $f2, 0x38($sp) +/* 0638E0 7F02EDB0 C7A20038 */ lwc1 $f2, 0x38($sp) +/* 0638E4 7F02EDB4 4602003E */ c.le.s $f0, $f2 +/* 0638E8 7F02EDB8 00000000 */ nop +/* 0638EC 7F02EDBC 45020008 */ bc1fl .L7F02EDE0 +/* 0638F0 7F02EDC0 82190036 */ lb $t9, 0x36($s0) +/* 0638F4 7F02EDC4 8E0E004C */ lw $t6, 0x4c($s0) +/* 0638F8 7F02EDC8 24180002 */ li $t8, 2 +/* 0638FC 7F02EDCC A2180030 */ sb $t8, 0x30($s0) +/* 063900 7F02EDD0 35CF0040 */ ori $t7, $t6, 0x40 +/* 063904 7F02EDD4 1000003D */ b .L7F02EECC +/* 063908 7F02EDD8 AE0F004C */ sw $t7, 0x4c($s0) +.L7F02EDDC: +/* 06390C 7F02EDDC 82190036 */ lb $t9, 0x36($s0) +.L7F02EDE0: +/* 063910 7F02EDE0 17200038 */ bnez $t9, .L7F02EEC4 +/* 063914 7F02EDE4 00000000 */ nop +/* 063918 7F02EDE8 8E08002C */ lw $t0, 0x2c($s0) +/* 06391C 7F02EDEC 44808000 */ mtc1 $zero, $f16 +/* 063920 7F02EDF0 C5000024 */ lwc1 $f0, 0x24($t0) +/* 063924 7F02EDF4 4600803C */ c.lt.s $f16, $f0 +/* 063928 7F02EDF8 00000000 */ nop +/* 06392C 7F02EDFC 45000031 */ bc1f .L7F02EEC4 +/* 063930 7F02EE00 00000000 */ nop +/* 063934 7F02EE04 4600103E */ c.le.s $f2, $f0 +/* 063938 7F02EE08 02202025 */ move $a0, $s1 +/* 06393C 7F02EE0C 4500002D */ bc1f .L7F02EEC4 +/* 063940 7F02EE10 00000000 */ nop +/* 063944 7F02EE14 0FC1BD71 */ jal sub_GAME_7F06F5C4 +/* 063948 7F02EE18 E7A20038 */ swc1 $f2, 0x38($sp) +/* 06394C 7F02EE1C C7A20038 */ lwc1 $f2, 0x38($sp) +/* 063950 7F02EE20 4602003E */ c.le.s $f0, $f2 +/* 063954 7F02EE24 00000000 */ nop +/* 063958 7F02EE28 45000026 */ bc1f .L7F02EEC4 +/* 06395C 7F02EE2C 00000000 */ nop +/* 063960 7F02EE30 0FC1BD6B */ jal sub_GAME_7F06F5AC +/* 063964 7F02EE34 02202025 */ move $a0, $s1 +/* 063968 7F02EE38 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) # lui $a2, 0x3f4c +/* 06396C 7F02EE3C 34C6CCCD */ ori $a2, (0x3F4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd +/* 063970 7F02EE40 AFA2002C */ sw $v0, 0x2c($sp) +/* 063974 7F02EE44 02002025 */ move $a0, $s0 +/* 063978 7F02EE48 0FC08ED7 */ jal sub_GAME_7F023B5C +/* 06397C 7F02EE4C 3C053F00 */ lui $a1, 0x3f00 +/* 063980 7F02EE50 8E09002C */ lw $t1, 0x2c($s0) +/* 063984 7F02EE54 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 063988 7F02EE58 44819000 */ mtc1 $at, $f18 +/* 06398C 7F02EE5C 82260024 */ lb $a2, 0x24($s1) +/* 063990 7F02EE60 8D270024 */ lw $a3, 0x24($t1) +/* 063994 7F02EE64 E7A00010 */ swc1 $f0, 0x10($sp) +/* 063998 7F02EE68 02202025 */ move $a0, $s1 +/* 06399C 7F02EE6C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0639A0 7F02EE70 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 0639A4 7F02EE74 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0639A8 7F02EE78 820A0037 */ lb $t2, 0x37($s0) +/* 0639AC 7F02EE7C 5140000E */ beql $t2, $zero, .L7F02EEB8 +/* 0639B0 7F02EE80 8E0C002C */ lw $t4, 0x2c($s0) +/* 0639B4 7F02EE84 8E0B002C */ lw $t3, 0x2c($s0) +/* 0639B8 7F02EE88 44802000 */ mtc1 $zero, $f4 +/* 0639BC 7F02EE8C C5600014 */ lwc1 $f0, 0x14($t3) +/* 0639C0 7F02EE90 4600203E */ c.le.s $f4, $f0 +/* 0639C4 7F02EE94 00000000 */ nop +/* 0639C8 7F02EE98 4500000A */ bc1f .L7F02EEC4 +/* 0639CC 7F02EE9C 00000000 */ nop +/* 0639D0 7F02EEA0 44050000 */ mfc1 $a1, $f0 +/* 0639D4 7F02EEA4 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639D8 7F02EEA8 02202025 */ move $a0, $s1 +/* 0639DC 7F02EEAC 10000005 */ b .L7F02EEC4 +/* 0639E0 7F02EEB0 00000000 */ nop +/* 0639E4 7F02EEB4 8E0C002C */ lw $t4, 0x2c($s0) +.L7F02EEB8: +/* 0639E8 7F02EEB8 02202025 */ move $a0, $s1 +/* 0639EC 7F02EEBC 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 0639F0 7F02EEC0 8D85001C */ lw $a1, 0x1c($t4) +.L7F02EEC4: +/* 0639F4 7F02EEC4 0FC0B930 */ jal sub_GAME_7F02E4C0 +/* 0639F8 7F02EEC8 02002025 */ move $a0, $s0 +.L7F02EECC: +/* 0639FC 7F02EECC 8FBF0024 */ lw $ra, 0x24($sp) +.L7F02EED0: +/* 063A00 7F02EED0 8FB0001C */ lw $s0, 0x1c($sp) +/* 063A04 7F02EED4 8FB10020 */ lw $s1, 0x20($sp) +/* 063A08 7F02EED8 03E00008 */ jr $ra +/* 063A0C 7F02EEDC 27BD0040 */ addiu $sp, $sp, 0x40 +) +#endif + + #endif #ifdef NONMATCHING @@ -15799,7 +16576,7 @@ glabel sub_GAME_7F02EEE0 /* 063AB0 7F02EF80 11A0000D */ beqz $t5, .L7F02EFB8 /* 063AB4 7F02EF84 00000000 */ nop /* 063AB8 7F02EF88 AFA3003C */ sw $v1, 0x3c($sp) -/* 063ABC 7F02EF8C 0C002914 */ jal get_random_value +/* 063ABC 7F02EF8C 0C002914 */ jal randomGetNext /* 063AC0 7F02EF90 E7A20034 */ swc1 $f2, 0x34($sp) /* 063AC4 7F02EF94 304F0001 */ andi $t7, $v0, 1 /* 063AC8 7F02EF98 8FA3003C */ lw $v1, 0x3c($sp) @@ -22906,7 +23683,7 @@ glabel sub_GAME_7F034514 ? phi_a3; ? phi_a2; - if ((u32) (get_random_value() % 0xffU) >= (u32) arg0->unk10) + if ((u32) (randomGetNext() % 0xffU) >= (u32) arg0->unk10) { return 0; } @@ -22970,7 +23747,7 @@ glabel actor_draws_throws_grenade_at_player_if_possible /* 0690AC 7F03457C 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 0690B0 7F034580 AFBF001C */ sw $ra, 0x1c($sp) /* 0690B4 7F034584 AFB00018 */ sw $s0, 0x18($sp) -/* 0690B8 7F034588 0C002914 */ jal get_random_value +/* 0690B8 7F034588 0C002914 */ jal randomGetNext /* 0690BC 7F03458C 00808025 */ move $s0, $a0 /* 0690C0 7F034590 240100FF */ li $at, 255 /* 0690C4 7F034594 0041001B */ divu $zero, $v0, $at diff --git a/src/game/chrObjRandom.c b/src/game/chrObjRandom.c new file mode 100644 index 0000000..20b43e7 --- /dev/null +++ b/src/game/chrObjRandom.c @@ -0,0 +1,80 @@ +#include "ultra64.h" + +/** + * @file chrObjRandom.c + * This file contains code to get a random tlb value. + * The methods here are the same as in random and tlb_random (but different globals). + */ + +// data +//D:80040160 +u64 g_chrObjRandomSeed = 0xAB8D9F7781280783; + +#ifdef NONMATCHING +/** + * Iterates the current random seed and returns a 32 bit value. + * Same assembly instructions as randomGetNext and tlbRandomGetNext, but different globals. + */ +s32 chrObjRandomGetNext(void) { + // best guess comments copied from random.c + + // best -O1 guess + // g_randomSeed ^= (((((g_randomSeed << 0x3f) >> 0x1f) | ((g_randomSeed << 0x1f) >> 0x20)) ^ ((g_randomSeed << 0x2c) >> 0x20)) >> 0x14) & 0xfff; + // return (s32)(g_randomSeed); + + // best -O2 guess + // u64 t = ((g_randomSeed << 0x3f) >> 0x1f); + // t |= ((g_randomSeed << 0x1f) >> 0x20); + // t ^= ((g_randomSeed << 0x2c) >> 0x20); + // t = g_randomSeed ^ ((t >> 0x14) & 0xfff); + // g_randomSeed = t; + // return (s32)(t); +} +#else +GLOBAL_ASM( +.text +glabel chrObjRandomGetNext +/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(g_chrObjRandomSeed) +/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(g_chrObjRandomSeed)($a0) +/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(g_chrObjRandomSeed) +/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f +/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f +/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f +/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0 +/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc +/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1 +/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0 +/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0 +/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14 +/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff +/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2 +/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0 +/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(g_chrObjRandomSeed)($at) +/* 0D02B0 7F09B780 03E00008 */ jr $ra +/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0 +) +#endif + +#ifdef NONMATCHING +/** + * This sets the global random seed. + * + * Assembly assigns zero to $a0 at the end of the function, which seems odd. + * + * Same assembly instructions as randomSetSeed. + */ +void chrObjRandomSetSeed(u64 param_1) +{ + g_chrObjRandomSeed = param_1 + 1; +} +#else +GLOBAL_ASM( +.text +glabel chrObjRandomSetSeed +/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1 +/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(g_chrObjRandomSeed) +/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(g_chrObjRandomSeed)($at) +/* 0D02C4 7F09B794 03E00008 */ jr $ra +/* 0D02C8 7F09B798 24040000 */ li $a0, 0 +) +#endif diff --git a/src/game/chrai.c b/src/game/chrai.c index 7bc93f4..4c27e0d 100644 --- a/src/game/chrai.c +++ b/src/game/chrai.c @@ -1,10 +1,13 @@ #include "ultra64.h" #include "bondgame.h" +#include "boss.h" #include "game/chr.h" #include "game/chrai.h" #include "snd.h" #include "music.h" #include "game/lvl_text.h" +#include "structs.h" + // bss //CODE.bss:80069B70 struct sfx_register_struct sfx_related[8]; @@ -92,7 +95,7 @@ u32 dword_CODE_bss_80071DF8; //CODE.bss:80071DFC u32 dword_CODE_bss_80071DFC; //CODE.bss:80071E00 -char temp_mine_table[0x78]; +u32 temp_mine_table[30]; //CODE.bss:80071E78 f32 gas_damage_flag; @@ -178,7 +181,7 @@ s32 D_80030A98 = 0; s32 D_80030A9C = 0; s32 *ptr_obj_pos_list_current_entry = 0; s32 *ptr_obj_pos_list_first_entry = 0; -s32 *ptr_obj_pos_list_final_entry = 0; +struct prop *ptr_obj_pos_list_final_entry = 0; f32 difficulty = 1.0; s32 D_80030AB0 = 0; s32 D_80030AB4 = 0; @@ -367,8 +370,8 @@ glabel set_sound_effect_to_slot /* 0694C4 7F034994 AC600010 */ sw $zero, 0x10($v1) /* 0694C8 7F034998 AC600014 */ sw $zero, 0x14($v1) .L7F03499C: -/* 0694CC 7F03499C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0694D0 7F0349A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0694CC 7F03499C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0694D0 7F0349A0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0694D4 7F0349A4 0C002382 */ jal play_sfx_a1 /* 0694D8 7F0349A8 87A50026 */ lh $a1, 0x26($sp) /* 0694DC 7F0349AC 8FBF0014 */ lw $ra, 0x14($sp) @@ -3353,7 +3356,7 @@ action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: /* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 /* 06A798 7F035C68 02E02025 */ move $a0, $s7 /* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 -/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A0 7F035C70 0FC0AABD */ jal actor_fire_or_aim_at_target_update /* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 /* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 /* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 @@ -3718,7 +3721,7 @@ action2E_Run_To_Character_Position_RVL_On_Arrival_3: /* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase /* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 action33_Seed_Random_Byte_1: -/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACB8 7F036188 0C002914 */ jal randomGetNext /* 06ACBC 7F03618C 00000000 */ nop /* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) /* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 @@ -4918,7 +4921,7 @@ action64_Type_16_Object_Equipped_On_Guard_3: /* 06BD80 7F037250 00000000 */ nop /* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 /* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) -/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD8C 7F03725C 0FC0E905 */ jal propHide /* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) /* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) .L7F037268: @@ -5648,7 +5651,7 @@ action75_Go_To_RVL_If_Power_On_Time_GTV_4: /* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase /* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 action76_Go_To_RVL_If_Stage_Number_LTV_3: -/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7CC 7F037C9C 0C001A57 */ jal bossGetStageNum /* 06C7D0 7F037CA0 00000000 */ nop /* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) /* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 @@ -5666,7 +5669,7 @@ action76_Go_To_RVL_If_Stage_Number_LTV_3: /* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase /* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 action77_Go_To_RVL_If_Stage_Number_GTV_3: -/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C80C 7F037CDC 0C001A57 */ jal bossGetStageNum /* 06C810 7F037CE0 00000000 */ nop /* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) /* 06C818 7F037CE8 02C02025 */ move $a0, $s6 @@ -9220,7 +9223,7 @@ action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: /* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 /* 06A798 7F035C68 02E02025 */ move $a0, $s7 /* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 -/* 06A7A0 7F035C70 0FC0AABD */ jal sub_GAME_7F02AAF4 +/* 06A7A0 7F035C70 0FC0AABD */ jal actor_fire_or_aim_at_target_update /* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 /* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 /* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 @@ -9585,7 +9588,7 @@ action2E_Run_To_Character_Position_RVL_On_Arrival_3: /* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase /* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 action33_Seed_Random_Byte_1: -/* 06ACB8 7F036188 0C002914 */ jal get_random_value +/* 06ACB8 7F036188 0C002914 */ jal randomGetNext /* 06ACBC 7F03618C 00000000 */ nop /* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) /* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 @@ -10785,7 +10788,7 @@ action64_Type_16_Object_Equipped_On_Guard_3: /* 06BD80 7F037250 00000000 */ nop /* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 /* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) -/* 06BD8C 7F03725C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 06BD8C 7F03725C 0FC0E905 */ jal propHide /* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) /* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) .L7F037268: @@ -11515,7 +11518,7 @@ action75_Go_To_RVL_If_Power_On_Time_GTV_4: /* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase /* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 action76_Go_To_RVL_If_Stage_Number_LTV_3: -/* 06C7CC 7F037C9C 0C001A57 */ jal get_stage_num +/* 06C7CC 7F037C9C 0C001A57 */ jal bossGetStageNum /* 06C7D0 7F037CA0 00000000 */ nop /* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) /* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 @@ -11533,7 +11536,7 @@ action76_Go_To_RVL_If_Stage_Number_LTV_3: /* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase /* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 action77_Go_To_RVL_If_Stage_Number_GTV_3: -/* 06C80C 7F037CDC 0C001A57 */ jal get_stage_num +/* 06C80C 7F037CDC 0C001A57 */ jal bossGetStageNum /* 06C810 7F037CE0 00000000 */ nop /* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) /* 06C818 7F037CE8 02C02025 */ move $a0, $s6 @@ -14166,6 +14169,5876 @@ Action04_End_2: /* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*HACK FIXME */ +.word locret_CODE_7F035104 +.word locret_CODE_7F03510C +.word locret_CODE_7F035114 +.word locret_CODE_7F03511C +.word locret_CODE_7F035124 +.word locret_CODE_7F03512C +.word locret_CODE_7F035134 +.word locret_CODE_7F03513C +.word locret_CODE_7F035144 +.word locret_CODE_7F03514C +.word locret_CODE_7F035154 +.word locret_CODE_7F03515C +.word locret_CODE_7F034ADC +.word locret_CODE_7F034AD4 +.word locret_CODE_7F035164 +.word locret_CODE_7F03516C +.word locret_CODE_7F035174 +.word locret_CODE_7F03517C +.word locret_CODE_7F035184 +.word locret_CODE_7F03518C +.word locret_CODE_7F035194 +.word locret_CODE_7F03519C +.word locret_CODE_7F0351A4 +.word locret_CODE_7F0351AC +.word locret_CODE_7F0351B4 +.word locret_CODE_7F0351BC +.word locret_CODE_7F0351C4 +.word locret_CODE_7F0351CC +.word locret_CODE_7F0351D4 +.word locret_CODE_7F0351DC +.word locret_CODE_7F0351E4 +.word locret_CODE_7F0351EC +.word locret_CODE_7F0351F4 +.word actionFC_length +.late_rodata +glabel D_800524F4 +.word 0x40c90fdb /*6.2831855*/ +/*D:800524F8*/ +glabel jpt_800524F8 +.word Action00_GoToLabel +.word Action01_GoToLabelFromTop +.word Action02_Label +.word action03_Leave_The_Routine_When_Return_Continue_From_Spot_1 +.word Action04_End_1 +.word action05_Jump_To_Function_4 +.word action06_Set_Return_Subroutine_for_0007_Command_3 +.word action07_Jump_to_Return_Subroutine_1 +.word action08_Reset_Animation_1 +.word action09_Guard_Kneels_1 +.word action0A_Animation_9 +.word action0B_If_Guard_WastingTime_SwatFlies_RVL_2 +.word action0C_Guard_Gestures_1 +.word action0D_Guard_Looks_Around_When_Shot_At_1 +.word action0E_Guard_Steps_Sideways_RVL_2 +.word action0F_Guard_Hops_Sideways_RVL_2 +.word action10_Guard_Runs_Sideways_RVL_2 +.word action11_Guard_Walks_Firing_RVL_2 +.word action12_Guard_Runs_Firing_RVL_2 +.word action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2 +.word action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6 +.word action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6 +.word action17_Guard_Constantly_Angles_To_Face_RVL_6 +.word action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4 +.word action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4 +.word action1A_Guard_Throws_Grenade_RVL_2 +.word action1B_Drop_Weapon_Inventory_num_RVL_5 +.word action1C_Guard_Jogs_To_Preset_3 +.word action1D_Guard_Jogs_To_Predefined_Preset_2328_1 +.word action1E_Guard_Walks_To_Preset_3 +.word action1F_Guard_Runs__To_Preset_3 +.word action20_Activate_Path_2 +.word action21_Guard_Surrenders_1 +.word action22_Guard_Set_To_Move_Fades_And_Disappear_1 +.word action23_Eliminate_Guard_ID_2 +.word action24_Activate_Object_At_Preset_RVL_If_Successful_4 +.word action25_Sound_Alarm_1 +.word action26_Turn_Off_Alarm_1 +.word action27_Return_False_Invalid_Type_2 +.word action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2 +.word action2B_Return_False_Invalid_Type_2 +.word action2C_Jog_To_Character_Position_RVL_On_Arrival_3 +.word action2D_Walk_To_Character_Position_RVL_On_Arrival_3 +.word action2E_Run_To_Character_Position_RVL_On_Arrival_3 +.word action2F_When_Guard_Stops_Moving_RVL_2 +.word action30_Detect_If_Guard_Killed_RVL_If_So_3 +.word action31_If_GuardID_Finish_DeathAnimation_RVL_3 +.word action32_If_Bond_In_Sight_RVL_2 +.word action33_Seed_Random_Byte_1 +.word action34_If_Seeded_Byte_LTV_Go_Into_RVL_3 +.word action35_If_Seeded_Byte_GTV_Go_Into_RVL_3 +.word action36_If_Alarm_Activated_RVL_Plus_Stack_2 +.word action37_If_Alarm_Activated_RVL_2 +.word action38_If_Toxic_Gas_Released_RVL_2 +.word action39_If_Guard_Heard_Gunfire_RVL_2 +.word action3A_If_Bond_Shoots_Another_Guard_RVL_2 +.word action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2 +.word action3C_If_Guard_In_Firing_Range_RVL_2 +.word action3D___Unused___Unknown___2 +.word action3E_If_Shot_Current_Guard_RVL_2 +.word action3F_If_Heard_Bond_RVL_2 +.word action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3 +.word action41_If_Guard_Has_Been_On_Screen_RVL_2 +.word action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2 +.word action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2 +.word action44_If_Room_Containing_Preset_Is_Loaded_RVL_4 +.word action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2 +.word action46_If_Fired_A_Shot_RVL_2 +.word action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3 +.word action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3 +.word action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3 +.word action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3 +.word action4B_RVL_If_In_Proximity_Of_Bond_4 +.word action4C_RVL_If_Not_In_Proximity_Of_Bond_4 +.word action4D_When_Guard_In_Proximity_Of_Preset_RVL_7 +.word action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7 +.word action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5 +.word action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5 +.word action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4 +.word action52_GoIntoRVLIf_In_Units_Of_Preset_6 +.word action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6 +.word action54_GoIntoRVLIf_Guard_Is_At_Preset_5 +.word action55_GoIntoRVLIf_Entered_Room_with_Preset_4 +.word action56_GoIntoRVLIf_16_Object_num_Collected_3 +.word action57_GoIntoRVLIf_Specified_Weapon_Deposited_3 +.word action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4 +.word action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3 +.word action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3 +.word action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3 +.word action5C_GoIntoRVLIf_16_Object_num_Activated_3 +.word action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3 +.word action5E_16_Object_Activates_2 +.word action5F_16_Object_Explodes_2 +.word action60_Guard_Drops_16_Object_num_2 +.word action61_Kill_Guard_num_2 +.word action62_Guard_num_Throws_Equipment_2 +.word action63_Guard_Gives_Bond_16_Object_num_2 +.word action64_Type_16_Object_Equipped_On_Guard_3 +.word action65_Object_Moved_To_Preset_4 +.word action66_Open_Door_2 +.word action67_Close_Door_2 +.word action68_Check_Door_Status_RVL_If_Met_4 +.word action69_If_16_Object_Is_Valid_Door_RVL_3 +.word action6A_Set_Bits_To_Lock_On_Type_16_Door_3 +.word action6B_Unset_Bits_To_Lock_On_Type_16_Door_3 +.word action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4 +.word action6D_If_Objective_num_Complete_RVL_3 +.word action6E_If_Guard_2328_Preset_RVL_3 +.word action6F_If_Guard_2328_Preset_Set_RVL_3 +.word action70_Go_Into_RVL_Difficulty_LTV_3 +.word action71_GoIntoRVLIf_Difficulty_GTV_3 +.word action72_Go_To_RVL_If_Time_LTV_4 +.word action73_Go_To_RVL_If_Time_GTV_4 +.word action74_Go_To_RVL_If_Power_On_Time_LTV_4 +.word action75_Go_To_RVL_If_Power_On_Time_GTV_4 +.word action76_Go_To_RVL_If_Stage_Number_LTV_3 +.word action77_Go_To_RVL_If_Stage_Number_GTV_3 +.word action78_Go_To_RVL_If_Guard_Shot_LTV_3 +.word action79_Go_To_RVL_If_Guard_Shot_GTV_3 +.word action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3 +.word action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3 +.word action7C_If_Guard_Health_Below_Value_RVL_4 +.word action7D_If_Guard_Health_Above_Value_RVL_4 +.word action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3 +.word action7F_If_Health_Below_Value_RVL_3 +.word action80_If_Health_Above_Value_RVL_3 +.word action81_Set_User_Byte_num1_2 +.word action82_Add_Value_To_User_Byte_num1_Max_To_FF_2 +.word action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2 +.word action84_If_Value_GreaterThan_User_Byte_num1_RVL_3 +.word action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2 +.word action86_Set_User_Byte_num2_2 +.word action87_Add_Value_To_User_Byte_num2_Max_To_FF_2 +.word action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2 +.word action89_If_Value_GreaterThan_User_Byte_num2_RVL_3 +.word action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2 +.word action8B_Set_Guard_Hearing_Distance_3 +.word action8C_Set_Guard_Visible_Distance_2 +.word action8D_Set_Guard_Grenade_Probability_2 +.word action8E_Set_Guard_ID_2 +.word action8F_Set_Guard_Health_3 +.word action90_Set_Guard_Armor_Amount_3 +.word action91_Set_Character_Reaction_Speed_2 +.word action92_Set_Character_Injury_Recovery_Speed_2 +.word action93_Set_Character_Accuracy_2 +.word action94_Mask_Guard_Type_With_Value_2 +.word action95_Unmask_Guard_Type_With_Value_2 +.word action96_If_Guard_Type_Value_Is_Set_RVL_3 +.word action97_Mask_Guard_Type_Flags_With_Value_3 +.word action98_Unmask_Guard_Type_Flags_With_Value_3 +.word action99_If_Guard_Type_Flags_Set_RVL_4 +.word action9A_Set_Objective_Bits_5 +.word action9B_Unset_Objective_Value_5 +.word action9C_Check_If_Objective_Value_Return_Loop_If_So_6 +.word action9D_Set_Guard_Bit_Tags_5 +.word action9E_Unset_Guard_Bit_Tags_5 +.word action9F_Check_Guard_Bits_If_Same_RVL_6 +.word actionA0_Set_Guard_ID_Bits_6 +.word actionA1_Unset_Guard_ID_Bits_6 +.word actionA2_Check_Guard_Bits_If_Same_RVL_7 +.word actionA3_Set_State_Bits_16_Type_Object_6 +.word actionA4_Unset_State_Bits_16_Type_Object_6 +.word actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7 +.word actionA6_Set_16_Object_States_More_6 +.word actionA7_Unset_16_Object_States_More_6 +.word actionA8_Check_16_Object_States_More_If_Same_RVL_7 +.word actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2 +.word actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3 +.word actionAB_Set_Current_Guards_2328_Value_To_Preset_3 +.word actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4 +.word actionAD_Debug_Comment_20 +.word actionAE_Reset_Cycle_Counter_And_Enable_It_1 +.word actionAF_Reset_Cycle_Counter_1 +.word actionB0_Disable_Cycle_Counter_1 +.word actionB1_Enable_Cycle_Counter_1 +.word actionB2_Check_Cycle_Counter_Enable_Status_2 +.word actionB3_If_Cycle_Counter_LTV_RVL_5 +.word actionB4_If_Cycle_Counter_GTV_RVL_5 +.word actionB5_Show_Timer_1 +.word actionB6_Hide_Timer_Silent_Countdown_1 +.word actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3 +.word actionB8_Stop_Timer_1 +.word actionB9_Start_Timer_1 +.word actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2 +.word actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4 +.word actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4 +.word actionBD_Spawn_Guard_C +.word actionBE_Respawn_Guard_with_ID_B +.word actionBF_Spawn_Weapon_9 +.word actionC0_Spawn_Hat_8 +.word actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5 +.word actionC2_Display_Text_Preset_Bottom_Screen_3 +.word actionC3_Display_Text_Preset_Top_Screen_3 +.word actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4 +.word actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5 +.word actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6 +.word actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6 +.word actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6 +.word actionC9_Shut_Off_Sound_In_Slot_Number_2 +.word actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5 +.word actionCB_Set_Object_Path_27_Type_Object_2 +.word actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5 +.word actionCD_Set_Speed_Aircraft_Rotor_5 +.word actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2 +.word actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2 +.word actionD0_Change_Animation_Type_Of_Type_16_Monitor_4 +.word actionD1_If_Bond_In_Tank_RVL_2 +.word actionD2_Exit_Level_1 +.word actionD3_Return_From_Camera_Scene_1 +.word actionD4_Camera_Looks_At_Bond_From_Preset_3 +.word actionD5_Go_To_Camera_Position_6 +.word actionD6_If_Less_Than_Elevation_RVL_4 +.word actionD7_Disable_Text_Variable_2 +.word actionD8_Enable_All_On_Screen_Displays_1 +.word actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5 +.word actionDA_Fade_Out_From_Cut_Scene_1 +.word actionDB_Fade_In_From_Black_Reset_DA_1 +.word actionDC_RVL_When_Fade_Complete_2 +.word actionDD_Remove_All_Guards_1 +.word actionDE_Bring_Removed_Guards_Back_1 +.word actionDF_Open_Type_16_Door_Used_Cut_Scenes_2 +.word actionE0_Guard_ID_Draws_Weapon_num_3 +.word actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3 +.word actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4 +.word actionE3_Draw_Weapon_From_Inventory_In_Game_2 +.word actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2 +.word actionE5_Set_Bonds_Speed_3 +.word actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5 +.word actionE7_If_Guard_Moving_And_Shooting_RVL_2 +.word actionE8_If_Guard_Is_Shooting_RVL_2 +.word actionE9_Instantly_Switch_Sky_To_Sky_2_1 +.word actionEA_Stop_Game_Time_1 +.word actionEB_If_Key_Pressed_RVL_2 +.word actionEC_Disable_Player_Pickups_1 +.word actionED_Hide_First_Person_Display_1 +.word actionEE_Cuba_Circular_Camera_Aim_D +.word actionEF_Trigger_Credits_1 +.word actionF0_RVL_If_Credits_Completed_2 +.word actionF1_If_All_Objectives_Complete_RVL_2 +.word actionF2_Check_Current_Folder_Bond_RVL_3 +.word actionF3_If_Player_Pickups_Disabled_RVL_2 +.word actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4 +.word actionF5_Turn_Off_Music_In_Slot_num_0_3_2 +.word actionF6_Trigger_Explosions_Around_Bond_1 +.word actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3 +.word actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3 +.word actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1 +.word actionFA_Guard_Fawns_On_Shoulder_1 +.word actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_ +.word actionFC_Launch_Shuttle_2 + +glabel D_800528EC +.word 0x3dcccccd /*0.1*/ +glabel D_800528F0 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F4 +.word 0x3dcccccd /*0.1*/ +glabel D_800528F8 +.word 0x3dcccccd /*0.1*/ + +glabel jpt_800528FC +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word .L7F038C24 +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C +.word loc_CODE_7F038C0C + +glabel D_80052974 +.word 0x3c888888 /*0.016666666*/ +glabel D_80052978 +.word 0x3e955555 /*0.29166666*/ +.word 0 + +.text +glabel parse_handle_actionblocks +/* 069FB4 7F035484 27BDF848 */ addiu $sp, $sp, -0x7b8 +/* 069FB8 7F035488 AFB7006C */ sw $s7, 0x6c($sp) +/* 069FBC 7F03548C AFB60068 */ sw $s6, 0x68($sp) #free s2 for CurrentActionByte ? +/* 069FC0 7F035490 24010003 */ li $at, 3 #ai_sleep +/* 069FC4 7F035494 AFBF0074 */ sw $ra, 0x74($sp) +/* 069FC8 7F035498 AFBE0070 */ sw $fp, 0x70($sp) +/* 069FCC 7F03549C AFB50064 */ sw $s5, 0x64($sp) +/* 069FD0 7F0354A0 AFB40060 */ sw $s4, 0x60($sp) +/* 069FD4 7F0354A4 AFB3005C */ sw $s3, 0x5c($sp) +/* 069FD8 7F0354A8 AFB20058 */ sw $s2, 0x58($sp) #free s2 for CurrentActionByteSize ? +/* 069FDC 7F0354AC AFB10054 */ sw $s1, 0x54($sp) +/* 069FE0 7F0354B0 AFB00050 */ sw $s0, 0x50($sp) +/* 069FE4 7F0354B4 F7BA0048 */ sdc1 $f26, 0x48($sp) +/* 069FE8 7F0354B8 F7B80040 */ sdc1 $f24, 0x40($sp) +/* 069FEC 7F0354BC F7B60038 */ sdc1 $f22, 0x38($sp) +/* 069FF0 7F0354C0 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 069FF4 7F0354C4 0000B825 */ move $s7, $zero +/* 069FF8 7F0354C8 00003025 */ move $a2, $zero +/* 069FFC 7F0354CC 00001825 */ move $v1, $zero +/* 06A000 7F0354D0 14A10003 */ bne $a1, $at, .L7F0354E0 +/* 06A004 7F0354D4 0000B025 */ move $s6, $zero +/* 06A008 7F0354D8 1000000E */ b .L7F035514 +/* 06A00C 7F0354DC 0080B825 */ move $s7, $a0 +.L7F0354E0: +/* 06A010 7F0354E0 24010001 */ li $at, 1 +/* 06A014 7F0354E4 14A1000B */ bne $a1, $at, .L7F035514 +/* 06A018 7F0354E8 00000000 */ nop +/* 06A01C 7F0354EC 90820003 */ lbu $v0, 3($a0) +/* 06A020 7F0354F0 24010027 */ li $at, 39 +/* 06A024 7F0354F4 54410004 */ bnel $v0, $at, .L7F035508 +/* 06A028 7F0354F8 24010028 */ li $at, 40 +/* 06A02C 7F0354FC 10000005 */ b .L7F035514 +/* 06A030 7F035500 00803025 */ move $a2, $a0 +/* 06A034 7F035504 24010028 */ li $at, 40 +.L7F035508: +/* 06A038 7F035508 14410002 */ bne $v0, $at, .L7F035514 +/* 06A03C 7F03550C 00000000 */ nop +/* 06A040 7F035510 00801825 */ move $v1, $a0 +.L7F035514: +/* 06A044 7F035514 12E00005 */ beqz $s7, .L7F03552C +/* 06A048 7F035518 3C018005 */ lui $at, %hi(D_800524F4) +/* 06A04C 7F03551C 96F20108 */ lhu $s2, 0x108($s7) # Load Size of command +/* 06A050 7F035520 8EF60104 */ lw $s6, 0x104($s7) # load command +/* 06A054 7F035524 1000000C */ b .L7F035558 +/* 06A058 7F035528 AFB207A4 */ sw $s2, 0x7a4($sp) # save command size +.L7F03552C: +/* 06A05C 7F03552C 10C00005 */ beqz $a2, .L7F035544 +/* 06A060 7F035530 00000000 */ nop +/* 06A064 7F035534 94D20084 */ lhu $s2, 0x84($a2) +/* 06A068 7F035538 8CD60080 */ lw $s6, 0x80($a2) +/* 06A06C 7F03553C 10000006 */ b .L7F035558 +/* 06A070 7F035540 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035544: +/* 06A074 7F035544 10600004 */ beqz $v1, .L7F035558 +/* 06A078 7F035548 00000000 */ nop +/* 06A07C 7F03554C 94720084 */ lhu $s2, 0x84($v1) +/* 06A080 7F035550 8C760080 */ lw $s6, 0x80($v1) +/* 06A084 7F035554 AFB207A4 */ sw $s2, 0x7a4($sp) +.L7F035558: +/* 06A088 7F035558 12C01329 */ beqz $s6, Action04_End_1 +/* 06A08C 7F03555C 8FB207A4 */ lw $s2, 0x7a4($sp) +/* 06A090 7F035560 C43A24F4 */ lwc1 $f26, %lo(D_800524F4)($at) +/* 06A094 7F035564 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 06A098 7F035568 4481C000 */ mtc1 $at, $f24 +/* 06A09C 7F03556C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 06A0A0 7F035570 3C1E8003 */ lui $fp, %hi(ptr_guard_data) +/* 06A0A4 7F035574 4481B000 */ mtc1 $at, $f22 +/* 06A0A8 7F035578 4480A000 */ mtc1 $zero, $f20 +/* 06A0AC 7F03557C 27DECC64 */ addiu $fp, %lo(ptr_guard_data) # addiu $fp, $fp, -0x339c +/* 06A0B0 7F035580 02D28821 */ addu $s1, $s6, $s2 +/* 06A0B4 7F035584 AFA307AC */ sw $v1, 0x7ac($sp) +/* 06A0B8 7F035588 AFA607B0 */ sw $a2, 0x7b0($sp) +GetByteS1_ParseCommandByte_SwitchCase: /*GetCommandByte(cmd)*/ +/* 06A0BC 7F03558C 922E0000 */ lbu $t6, ($s1) #t6 = byte(s1) +ParseCommandByte_SwitchCase: +/* 06A0C0 7F035590 02C02025 */ move $a0, $s6 +/* 06A0C4 7F035594 2DC100FD */ sltiu $at, $t6, 0xfd # if Cmd !< AI_CMDS_TOTAL then +/* 06A0C8 7F035598 10201314 */ beqz $at, GetCmdLength # Cmd<<2 goto GetCmdLength +/* 06A0CC 7F03559C 000E7080 */ sll $t6, $t6, 2 +/* 06A0D0 7F0355A0 3C018005 */ lui $at, %hi(jpt_800524F8) +/* 06A0D4 7F0355A4 002E0821 */ addu $at, $at, $t6 # else //get cmd +/* 06A0D8 7F0355A8 8C2E24F8 */ lw $t6, %lo(jpt_800524F8)($at) # switch t6(look up table for switch 0x800524f8) +/* 06A0DC 7F0355AC 01C00008 */ jr $t6 # return cmd +/* 06A0E0 7F0355B0 00000000 */ nop +Action00_GoToLabel: #case 0 +/* 06A0E4 7F0355B4 02C02025 */ move $a0, $s6 +/* 06A0E8 7F0355B8 02402825 */ move $a1, $s2 +/* 06A0EC 7F0355BC 0FC0D4BC */ jal true_if_sucessfully_performing_action #(command, commandsize, nextcommand[4]) +/* 06A0F0 7F0355C0 92260001 */ lbu $a2, 1($s1) +/* 06A0F4 7F0355C4 00409025 */ move $s2, $v0 +/* 06A0F8 7F0355C8 1000FFF0 */ b GetByteS1_ParseCommandByte_SwitchCase # GetCommandByte(currcmd + currcmdLength); +/* 06A0FC 7F0355CC 02C28821 */ addu $s1, $s6, $v0 +Action01_GoToLabelFromTop: #case 1 +/* 06A100 7F0355D0 02C02025 */ move $a0, $s6 +/* 06A104 7F0355D4 00002825 */ move $a1, $zero +/* 06A108 7F0355D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A10C 7F0355DC 92260001 */ lbu $a2, 1($s1) +/* 06A110 7F0355E0 00409025 */ move $s2, $v0 +/* 06A114 7F0355E4 1000FFE9 */ b GetByteS1_ParseCommandByte_SwitchCase #break +/* 06A118 7F0355E8 02C28821 */ addu $s1, $s6, $v0 +Action02_Label: #case 2 +/* 06A11C 7F0355EC 26520002 */ addiu $s2, $s2, 2 # s2++ PC ? # CurrentActionByte += 2 +/* 06A120 7F0355F0 1000FFE6 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 +=2; goto 58c +/* 06A124 7F0355F4 26310002 */ addiu $s1, $s1, 2 +action03_Leave_The_Routine_When_Return_Continue_From_Spot_1: +/* 06A128 7F0355F8 12E00004 */ beqz $s7, .L7F03560C # s2++ PC? +/* 06A12C 7F0355FC 26520001 */ addiu $s2, $s2, 1 # if s7 = 0 goto 0c If actionblock not initilised else ? +/* 06A130 7F035600 AEF60104 */ sw $s6, 0x104($s7) # s7.104 = s6 +/* 06A134 7F035604 100012FE */ b Action04_End_1 # s7.108 = u16(s2) +/* 06A138 7F035608 A6F20108 */ sh $s2, 0x108($s7) # goto end1 (load return addr) +.L7F03560C: +/* 06A13C 7F03560C 8FAF07B0 */ lw $t7, 0x7b0($sp) +/* 06A140 7F035610 8FB807AC */ lw $t8, 0x7ac($sp) +/* 06A144 7F035614 11E00004 */ beqz $t7, .L7F035628 # if t7 = 0 goto 28 +/* 06A148 7F035618 00000000 */ nop +/* 06A14C 7F03561C ADF60080 */ sw $s6, 0x80($t7) #else t7.80 = s6 +/* 06A150 7F035620 100012F7 */ b Action04_End_1 # t7.84 = u16(s2) +/* 06A154 7F035624 A5F20084 */ sh $s2, 0x84($t7) # end1 (load return addr) +.L7F035628: +/* 06A158 7F035628 530012F6 */ beql $t8, $zero, Action04_End_2 # load return addr (same as end1 (sp.74)) +/* 06A15C 7F03562C 8FBF0074 */ lw $ra, 0x74($sp) # if t8 = 0 goto end2 (skip return addr) +/* 06A160 7F035630 AF160080 */ sw $s6, 0x80($t8) # else t8.80 = s6 +/* 06A164 7F035634 100012F2 */ b Action04_End_1 # t8.84 = u16(s2) +/* 06A168 7F035638 A7120084 */ sh $s2, 0x84($t8) # end1(load return addr) +action05_Jump_To_Function_4: +/* 06A16C 7F03563C 92390002 */ lbu $t9, 2($s1) +/* 06A170 7F035640 922A0003 */ lbu $t2, 3($s1) +/* 06A174 7F035644 92250001 */ lbu $a1, 1($s1) +/* 06A178 7F035648 00194A00 */ sll $t1, $t9, 8 +/* 06A17C 7F03564C 012A1825 */ or $v1, $t1, $t2 +/* 06A180 7F035650 306BFFFF */ andi $t3, $v1, 0xffff +/* 06A184 7F035654 240100FD */ li $at, 253 +/* 06A188 7F035658 14A10007 */ bne $a1, $at, .L7F035678 +/* 06A18C 7F03565C 01601825 */ move $v1, $t3 +/* 06A190 7F035660 01602025 */ move $a0, $t3 +/* 06A194 7F035664 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A198 7F035668 00009025 */ move $s2, $zero +/* 06A19C 7F03566C 0040B025 */ move $s6, $v0 +/* 06A1A0 7F035670 1000FFC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1A4 7F035674 00408825 */ move $s1, $v0 +.L7F035678: +/* 06A1A8 7F035678 02E02025 */ move $a0, $s7 +/* 06A1AC 7F03567C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A1B0 7F035680 A7A30792 */ sh $v1, 0x792($sp) +/* 06A1B4 7F035684 97A30792 */ lhu $v1, 0x792($sp) +/* 06A1B8 7F035688 10400006 */ beqz $v0, .L7F0356A4 +/* 06A1BC 7F03568C 00408025 */ move $s0, $v0 +/* 06A1C0 7F035690 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A1C4 7F035694 00602025 */ move $a0, $v1 +/* 06A1C8 7F035698 AE020104 */ sw $v0, 0x104($s0) +/* 06A1CC 7F03569C A6000108 */ sh $zero, 0x108($s0) +/* 06A1D0 7F0356A0 A2000008 */ sb $zero, 8($s0) +.L7F0356A4: +/* 06A1D4 7F0356A4 26520004 */ addiu $s2, $s2, 4 +/* 06A1D8 7F0356A8 1000FFB8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A1DC 7F0356AC 26310004 */ addiu $s1, $s1, 4 +action06_Set_Return_Subroutine_for_0007_Command_3: +/* 06A1E0 7F0356B0 922C0001 */ lbu $t4, 1($s1) +/* 06A1E4 7F0356B4 922E0002 */ lbu $t6, 2($s1) +/* 06A1E8 7F0356B8 8FB807B0 */ lw $t8, 0x7b0($sp) +/* 06A1EC 7F0356BC 000C6A00 */ sll $t5, $t4, 8 +/* 06A1F0 7F0356C0 01AE1025 */ or $v0, $t5, $t6 +/* 06A1F4 7F0356C4 304FFFFF */ andi $t7, $v0, 0xffff +/* 06A1F8 7F0356C8 12E00005 */ beqz $s7, .L7F0356E0 +/* 06A1FC 7F0356CC 01E01025 */ move $v0, $t7 +/* 06A200 7F0356D0 A6EF010A */ sh $t7, 0x10a($s7) +/* 06A204 7F0356D4 26520003 */ addiu $s2, $s2, 3 +/* 06A208 7F0356D8 1000FFAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A20C 7F0356DC 26310003 */ addiu $s1, $s1, 3 +.L7F0356E0: +/* 06A210 7F0356E0 13000005 */ beqz $t8, .L7F0356F8 +/* 06A214 7F0356E4 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06A218 7F0356E8 A7020086 */ sh $v0, 0x86($t8) +/* 06A21C 7F0356EC 26520003 */ addiu $s2, $s2, 3 +/* 06A220 7F0356F0 1000FFA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A224 7F0356F4 26310003 */ addiu $s1, $s1, 3 +.L7F0356F8: +/* 06A228 7F0356F8 13200002 */ beqz $t9, .L7F035704 +/* 06A22C 7F0356FC 26520003 */ addiu $s2, $s2, 3 +/* 06A230 7F035700 A7220086 */ sh $v0, 0x86($t9) +.L7F035704: +/* 06A234 7F035704 1000FFA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A238 7F035708 26310003 */ addiu $s1, $s1, 3 +action07_Jump_to_Return_Subroutine_1: +/* 06A23C 7F03570C 12E00006 */ beqz $s7, .L7F035728 +/* 06A240 7F035710 00009025 */ move $s2, $zero +/* 06A244 7F035714 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A248 7F035718 86E4010A */ lh $a0, 0x10a($s7) +/* 06A24C 7F03571C 0040B025 */ move $s6, $v0 +/* 06A250 7F035720 1000FF9A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A254 7F035724 00408825 */ move $s1, $v0 +.L7F035728: +/* 06A258 7F035728 8FA907B0 */ lw $t1, 0x7b0($sp) +/* 06A25C 7F03572C 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A260 7F035730 11200006 */ beqz $t1, .L7F03574C +/* 06A264 7F035734 00000000 */ nop +/* 06A268 7F035738 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A26C 7F03573C 85240086 */ lh $a0, 0x86($t1) +/* 06A270 7F035740 0040B025 */ move $s6, $v0 +/* 06A274 7F035744 1000FF91 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A278 7F035748 00408825 */ move $s1, $v0 +.L7F03574C: +/* 06A27C 7F03574C 11400004 */ beqz $t2, .L7F035760 +/* 06A280 7F035750 00000000 */ nop +/* 06A284 7F035754 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06A288 7F035758 85440086 */ lh $a0, 0x86($t2) +/* 06A28C 7F03575C 0040B025 */ move $s6, $v0 +.L7F035760: +/* 06A290 7F035760 1000FF8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A294 7F035764 02C08825 */ move $s1, $s6 +action08_Reset_Animation_1: +/* 06A298 7F035768 0FC0CD75 */ jal sub_GAME_7F0335D4 +/* 06A29C 7F03576C 02E02025 */ move $a0, $s7 +/* 06A2A0 7F035770 26520001 */ addiu $s2, $s2, 1 +/* 06A2A4 7F035774 1000FF85 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2A8 7F035778 26310001 */ addiu $s1, $s1, 1 +action09_Guard_Kneels_1: +/* 06A2AC 7F03577C 0FC0CDB1 */ jal check_if_able_to_then_kneel +/* 06A2B0 7F035780 02E02025 */ move $a0, $s7 +/* 06A2B4 7F035784 26520001 */ addiu $s2, $s2, 1 +/* 06A2B8 7F035788 1000FF80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A2BC 7F03578C 26310001 */ addiu $s1, $s1, 1 +action0A_Animation_9: +/* 06A2C0 7F035790 922B0001 */ lbu $t3, 1($s1) +/* 06A2C4 7F035794 922D0002 */ lbu $t5, 2($s1) +/* 06A2C8 7F035798 3401FFFF */ li $at, 65535 +/* 06A2CC 7F03579C 000B6200 */ sll $t4, $t3, 8 +/* 06A2D0 7F0357A0 018D7025 */ or $t6, $t4, $t5 +/* 06A2D4 7F0357A4 AFAE077C */ sw $t6, 0x77c($sp) +/* 06A2D8 7F0357A8 922F0003 */ lbu $t7, 3($s1) +/* 06A2DC 7F0357AC 92290005 */ lbu $t1, 5($s1) +/* 06A2E0 7F0357B0 92390004 */ lbu $t9, 4($s1) +/* 06A2E4 7F0357B4 922B0006 */ lbu $t3, 6($s1) +/* 06A2E8 7F0357B8 000FC200 */ sll $t8, $t7, 8 +/* 06A2EC 7F0357BC 00095200 */ sll $t2, $t1, 8 +/* 06A2F0 7F0357C0 03198025 */ or $s0, $t8, $t9 +/* 06A2F4 7F0357C4 014B6025 */ or $t4, $t2, $t3 +/* 06A2F8 7F0357C8 16010002 */ bne $s0, $at, .L7F0357D4 +/* 06A2FC 7F0357CC AFAC0774 */ sw $t4, 0x774($sp) +/* 06A300 7F0357D0 00008025 */ move $s0, $zero +.L7F0357D4: +/* 06A304 7F0357D4 8FB30774 */ lw $s3, 0x774($sp) +/* 06A308 7F0357D8 3401FFFF */ li $at, 65535 +/* 06A30C 7F0357DC 02E02025 */ move $a0, $s7 +/* 06A310 7F0357E0 16610002 */ bne $s3, $at, .L7F0357EC +/* 06A314 7F0357E4 8FAF07AC */ lw $t7, 0x7ac($sp) +/* 06A318 7F0357E8 2413FFFF */ li $s3, -1 +.L7F0357EC: +/* 06A31C 7F0357EC 12E0000C */ beqz $s7, .L7F035820 +/* 06A320 7F0357F0 00000000 */ nop +/* 06A324 7F0357F4 922D0007 */ lbu $t5, 7($s1) +/* 06A328 7F0357F8 8FA5077C */ lw $a1, 0x77c($sp) +/* 06A32C 7F0357FC 02003025 */ move $a2, $s0 +/* 06A330 7F035800 AFAD0010 */ sw $t5, 0x10($sp) +/* 06A334 7F035804 922E0008 */ lbu $t6, 8($s1) +/* 06A338 7F035808 02603825 */ move $a3, $s3 +/* 06A33C 7F03580C 0FC0CDC0 */ jal check_if_able_to_then_perform_animation +/* 06A340 7F035810 AFAE0014 */ sw $t6, 0x14($sp) +/* 06A344 7F035814 26520009 */ addiu $s2, $s2, 9 +/* 06A348 7F035818 1000FF5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A34C 7F03581C 26310009 */ addiu $s1, $s1, 9 +.L7F035820: +/* 06A350 7F035820 11E0001B */ beqz $t7, .L7F035890 +/* 06A354 7F035824 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 06A358 7F035828 44813000 */ mtc1 $at, $f6 +/* 06A35C 7F03582C 8DE40014 */ lw $a0, 0x14($t7) +/* 06A360 7F035830 44902000 */ mtc1 $s0, $f4 +/* 06A364 7F035834 E7A60010 */ swc1 $f6, 0x10($sp) +/* 06A368 7F035838 92290008 */ lbu $t1, 8($s1) +/* 06A36C 7F03583C 46802120 */ cvt.s.w $f4, $f4 +/* 06A370 7F035840 8FB8077C */ lw $t8, 0x77c($sp) +/* 06A374 7F035844 44894000 */ mtc1 $t1, $f8 +/* 06A378 7F035848 3C058003 */ lui $a1, %hi(animation_table_ptrs2) +/* 06A37C 7F03584C 0018C880 */ sll $t9, $t8, 2 +/* 06A380 7F035850 468042A0 */ cvt.s.w $f10, $f8 +/* 06A384 7F035854 00B92821 */ addu $a1, $a1, $t9 +/* 06A388 7F035858 44072000 */ mfc1 $a3, $f4 +/* 06A38C 7F03585C 8CA5A04C */ lw $a1, %lo(animation_table_ptrs2)($a1) +/* 06A390 7F035860 00003025 */ move $a2, $zero +/* 06A394 7F035864 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 06A398 7F035868 E7AA0014 */ swc1 $f10, 0x14($sp) +/* 06A39C 7F03586C 06620009 */ bltzl $s3, .L7F035894 +/* 06A3A0 7F035870 26520009 */ addiu $s2, $s2, 9 +/* 06A3A4 7F035874 44938000 */ mtc1 $s3, $f16 +/* 06A3A8 7F035878 8FAA07AC */ lw $t2, 0x7ac($sp) +/* 06A3AC 7F03587C 46808420 */ cvt.s.w $f16, $f16 +/* 06A3B0 7F035880 8D440014 */ lw $a0, 0x14($t2) +/* 06A3B4 7F035884 44058000 */ mfc1 $a1, $f16 +/* 06A3B8 7F035888 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 06A3BC 7F03588C 00000000 */ nop +.L7F035890: +/* 06A3C0 7F035890 26520009 */ addiu $s2, $s2, 9 +.L7F035894: +/* 06A3C4 7F035894 1000FF3D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3C8 7F035898 26310009 */ addiu $s1, $s1, 9 +action0B_If_Guard_WastingTime_SwatFlies_RVL_2: +/* 06A3CC 7F03589C 82EB0007 */ lb $t3, 7($s7) +/* 06A3D0 7F0358A0 24010003 */ li $at, 3 +/* 06A3D4 7F0358A4 02C02025 */ move $a0, $s6 +/* 06A3D8 7F0358A8 15610006 */ bne $t3, $at, .L7F0358C4 +/* 06A3DC 7F0358AC 02402825 */ move $a1, $s2 +/* 06A3E0 7F0358B0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A3E4 7F0358B4 92260001 */ lbu $a2, 1($s1) +/* 06A3E8 7F0358B8 00409025 */ move $s2, $v0 +/* 06A3EC 7F0358BC 1000FF33 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3F0 7F0358C0 02C28821 */ addu $s1, $s6, $v0 +.L7F0358C4: +/* 06A3F4 7F0358C4 26520002 */ addiu $s2, $s2, 2 +/* 06A3F8 7F0358C8 1000FF30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A3FC 7F0358CC 26310002 */ addiu $s1, $s1, 2 +action0C_Guard_Gestures_1: +/* 06A400 7F0358D0 0FC0CD84 */ jal check_if_able_to_then_shuffle_feet +/* 06A404 7F0358D4 02E02025 */ move $a0, $s7 +/* 06A408 7F0358D8 26520001 */ addiu $s2, $s2, 1 +/* 06A40C 7F0358DC 1000FF2B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A410 7F0358E0 26310001 */ addiu $s1, $s1, 1 +action0D_Guard_Looks_Around_When_Shot_At_1: +/* 06A414 7F0358E4 0FC0CDA2 */ jal check_if_able_to_then_look_flustered +/* 06A418 7F0358E8 02E02025 */ move $a0, $s7 +/* 06A41C 7F0358EC 26520001 */ addiu $s2, $s2, 1 +/* 06A420 7F0358F0 1000FF26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A424 7F0358F4 26310001 */ addiu $s1, $s1, 1 +action2F_When_Guard_Stops_Moving_RVL_2: +/* 06A428 7F0358F8 0FC0A717 */ jal check_if_actor_stationary +/* 06A42C 7F0358FC 02E02025 */ move $a0, $s7 +/* 06A430 7F035900 10400007 */ beqz $v0, .L7F035920 +/* 06A434 7F035904 02C02025 */ move $a0, $s6 +/* 06A438 7F035908 02402825 */ move $a1, $s2 +/* 06A43C 7F03590C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A440 7F035910 92260001 */ lbu $a2, 1($s1) +/* 06A444 7F035914 00409025 */ move $s2, $v0 +/* 06A448 7F035918 1000FF1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A44C 7F03591C 02C28821 */ addu $s1, $s6, $v0 +.L7F035920: +/* 06A450 7F035920 26520002 */ addiu $s2, $s2, 2 +/* 06A454 7F035924 1000FF19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A458 7F035928 26310002 */ addiu $s1, $s1, 2 +action30_Detect_If_Guard_Killed_RVL_If_So_3: +/* 06A45C 7F03592C 02E02025 */ move $a0, $s7 +/* 06A460 7F035930 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A464 7F035934 92250001 */ lbu $a1, 1($s1) +/* 06A468 7F035938 10400004 */ beqz $v0, .L7F03594C +/* 06A46C 7F03593C 00402025 */ move $a0, $v0 +/* 06A470 7F035940 0FC0A8A9 */ jal true_if_actor_dying_fading +/* 06A474 7F035944 00000000 */ nop +/* 06A478 7F035948 10400007 */ beqz $v0, .L7F035968 +.L7F03594C: +/* 06A47C 7F03594C 02C02025 */ move $a0, $s6 +/* 06A480 7F035950 02402825 */ move $a1, $s2 +/* 06A484 7F035954 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A488 7F035958 92260002 */ lbu $a2, 2($s1) +/* 06A48C 7F03595C 00409025 */ move $s2, $v0 +/* 06A490 7F035960 1000FF0A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A494 7F035964 02C28821 */ addu $s1, $s6, $v0 +.L7F035968: +/* 06A498 7F035968 26520003 */ addiu $s2, $s2, 3 +/* 06A49C 7F03596C 1000FF07 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4A0 7F035970 26310003 */ addiu $s1, $s1, 3 +action31_If_GuardID_Finish_DeathAnimation_RVL_3: +/* 06A4A4 7F035974 02E02025 */ move $a0, $s7 +/* 06A4A8 7F035978 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A4AC 7F03597C 92250001 */ lbu $a1, 1($s1) +/* 06A4B0 7F035980 10400003 */ beqz $v0, .L7F035990 +/* 06A4B4 7F035984 02C02025 */ move $a0, $s6 +/* 06A4B8 7F035988 8C4C001C */ lw $t4, 0x1c($v0) +/* 06A4BC 7F03598C 15800006 */ bnez $t4, .L7F0359A8 +.L7F035990: +/* 06A4C0 7F035990 02402825 */ move $a1, $s2 +/* 06A4C4 7F035994 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4C8 7F035998 92260002 */ lbu $a2, 2($s1) +/* 06A4CC 7F03599C 00409025 */ move $s2, $v0 +/* 06A4D0 7F0359A0 1000FEFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4D4 7F0359A4 02C28821 */ addu $s1, $s6, $v0 +.L7F0359A8: +/* 06A4D8 7F0359A8 26520003 */ addiu $s2, $s2, 3 +/* 06A4DC 7F0359AC 1000FEF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A4E0 7F0359B0 26310003 */ addiu $s1, $s1, 3 +action32_If_Bond_In_Sight_RVL_2: +/* 06A4E4 7F0359B4 0FC0A75C */ jal sub_GAME_7F029D70 +/* 06A4E8 7F0359B8 02E02025 */ move $a0, $s7 +/* 06A4EC 7F0359BC 10400007 */ beqz $v0, .L7F0359DC +/* 06A4F0 7F0359C0 02C02025 */ move $a0, $s6 +/* 06A4F4 7F0359C4 02402825 */ move $a1, $s2 +/* 06A4F8 7F0359C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A4FC 7F0359CC 92260001 */ lbu $a2, 1($s1) +/* 06A500 7F0359D0 00409025 */ move $s2, $v0 +/* 06A504 7F0359D4 1000FEED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A508 7F0359D8 02C28821 */ addu $s1, $s6, $v0 +.L7F0359DC: +/* 06A50C 7F0359DC 26520002 */ addiu $s2, $s2, 2 +/* 06A510 7F0359E0 1000FEEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A514 7F0359E4 26310002 */ addiu $s1, $s1, 2 +action0E_Guard_Steps_Sideways_RVL_2: +/* 06A518 7F0359E8 0FC0A8B2 */ jal actor_steps_sideways +/* 06A51C 7F0359EC 02E02025 */ move $a0, $s7 +/* 06A520 7F0359F0 10400007 */ beqz $v0, .L7F035A10 +/* 06A524 7F0359F4 02C02025 */ move $a0, $s6 +/* 06A528 7F0359F8 02402825 */ move $a1, $s2 +/* 06A52C 7F0359FC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A530 7F035A00 92260001 */ lbu $a2, 1($s1) +/* 06A534 7F035A04 00409025 */ move $s2, $v0 +/* 06A538 7F035A08 1000FEE0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A53C 7F035A0C 02C28821 */ addu $s1, $s6, $v0 +.L7F035A10: +/* 06A540 7F035A10 26520002 */ addiu $s2, $s2, 2 +/* 06A544 7F035A14 1000FEDD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A548 7F035A18 26310002 */ addiu $s1, $s1, 2 +action0F_Guard_Hops_Sideways_RVL_2: +/* 06A54C 7F035A1C 0FC0A90A */ jal actor_hops_sideways +/* 06A550 7F035A20 02E02025 */ move $a0, $s7 +/* 06A554 7F035A24 10400007 */ beqz $v0, .L7F035A44 +/* 06A558 7F035A28 02C02025 */ move $a0, $s6 +/* 06A55C 7F035A2C 02402825 */ move $a1, $s2 +/* 06A560 7F035A30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A564 7F035A34 92260001 */ lbu $a2, 1($s1) +/* 06A568 7F035A38 00409025 */ move $s2, $v0 +/* 06A56C 7F035A3C 1000FED3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A570 7F035A40 02C28821 */ addu $s1, $s6, $v0 +.L7F035A44: +/* 06A574 7F035A44 26520002 */ addiu $s2, $s2, 2 +/* 06A578 7F035A48 1000FED0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A57C 7F035A4C 26310002 */ addiu $s1, $s1, 2 +action10_Guard_Runs_Sideways_RVL_2: +/* 06A580 7F035A50 0FC0A962 */ jal actor_runs_sideways +/* 06A584 7F035A54 02E02025 */ move $a0, $s7 +/* 06A588 7F035A58 10400007 */ beqz $v0, .L7F035A78 +/* 06A58C 7F035A5C 02C02025 */ move $a0, $s6 +/* 06A590 7F035A60 02402825 */ move $a1, $s2 +/* 06A594 7F035A64 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A598 7F035A68 92260001 */ lbu $a2, 1($s1) +/* 06A59C 7F035A6C 00409025 */ move $s2, $v0 +/* 06A5A0 7F035A70 1000FEC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5A4 7F035A74 02C28821 */ addu $s1, $s6, $v0 +.L7F035A78: +/* 06A5A8 7F035A78 26520002 */ addiu $s2, $s2, 2 +/* 06A5AC 7F035A7C 1000FEC3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5B0 7F035A80 26310002 */ addiu $s1, $s1, 2 +action11_Guard_Walks_Firing_RVL_2: +/* 06A5B4 7F035A84 0FC0A9C1 */ jal actor_walks_and_fires +/* 06A5B8 7F035A88 02E02025 */ move $a0, $s7 +/* 06A5BC 7F035A8C 10400007 */ beqz $v0, .L7F035AAC +/* 06A5C0 7F035A90 02C02025 */ move $a0, $s6 +/* 06A5C4 7F035A94 02402825 */ move $a1, $s2 +/* 06A5C8 7F035A98 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A5CC 7F035A9C 92260001 */ lbu $a2, 1($s1) +/* 06A5D0 7F035AA0 00409025 */ move $s2, $v0 +/* 06A5D4 7F035AA4 1000FEB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5D8 7F035AA8 02C28821 */ addu $s1, $s6, $v0 +.L7F035AAC: +/* 06A5DC 7F035AAC 26520002 */ addiu $s2, $s2, 2 +/* 06A5E0 7F035AB0 1000FEB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A5E4 7F035AB4 26310002 */ addiu $s1, $s1, 2 +action12_Guard_Runs_Firing_RVL_2: +/* 06A5E8 7F035AB8 0FC0A9FE */ jal actor_runs_and_fires +/* 06A5EC 7F035ABC 02E02025 */ move $a0, $s7 +/* 06A5F0 7F035AC0 10400007 */ beqz $v0, .L7F035AE0 +/* 06A5F4 7F035AC4 02C02025 */ move $a0, $s6 +/* 06A5F8 7F035AC8 02402825 */ move $a1, $s2 +/* 06A5FC 7F035ACC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A600 7F035AD0 92260001 */ lbu $a2, 1($s1) +/* 06A604 7F035AD4 00409025 */ move $s2, $v0 +/* 06A608 7F035AD8 1000FEAC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A60C 7F035ADC 02C28821 */ addu $s1, $s6, $v0 +.L7F035AE0: +/* 06A610 7F035AE0 26520002 */ addiu $s2, $s2, 2 +/* 06A614 7F035AE4 1000FEA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A618 7F035AE8 26310002 */ addiu $s1, $s1, 2 +action13_Guard_Rolls_On_Ground_Then_Fires_Crouched_RVL_2: +/* 06A61C 7F035AEC 0FC0AA3B */ jal actor_rolls_fires_crouched +/* 06A620 7F035AF0 02E02025 */ move $a0, $s7 +/* 06A624 7F035AF4 10400007 */ beqz $v0, .L7F035B14 +/* 06A628 7F035AF8 02C02025 */ move $a0, $s6 +/* 06A62C 7F035AFC 02402825 */ move $a1, $s2 +/* 06A630 7F035B00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A634 7F035B04 92260001 */ lbu $a2, 1($s1) +/* 06A638 7F035B08 00409025 */ move $s2, $v0 +/* 06A63C 7F035B0C 1000FE9F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A640 7F035B10 02C28821 */ addu $s1, $s6, $v0 +.L7F035B14: +/* 06A644 7F035B14 26520002 */ addiu $s2, $s2, 2 +/* 06A648 7F035B18 1000FE9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A64C 7F035B1C 26310002 */ addiu $s1, $s1, 2 +action14_Guard_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A650 7F035B20 922D0003 */ lbu $t5, 3($s1) +/* 06A654 7F035B24 92380001 */ lbu $t8, 1($s1) +/* 06A658 7F035B28 922F0004 */ lbu $t7, 4($s1) +/* 06A65C 7F035B2C 92290002 */ lbu $t1, 2($s1) +/* 06A660 7F035B30 000D7200 */ sll $t6, $t5, 8 +/* 06A664 7F035B34 0018CA00 */ sll $t9, $t8, 8 +/* 06A668 7F035B38 02E02025 */ move $a0, $s7 +/* 06A66C 7F035B3C 01CF3025 */ or $a2, $t6, $t7 +/* 06A670 7F035B40 0FC0AA87 */ jal actor_aim_at_actor +/* 06A674 7F035B44 03292825 */ or $a1, $t9, $t1 +/* 06A678 7F035B48 10400007 */ beqz $v0, .L7F035B68 +/* 06A67C 7F035B4C 02C02025 */ move $a0, $s6 +/* 06A680 7F035B50 02402825 */ move $a1, $s2 +/* 06A684 7F035B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A688 7F035B58 92260005 */ lbu $a2, 5($s1) +/* 06A68C 7F035B5C 00409025 */ move $s2, $v0 +/* 06A690 7F035B60 1000FE8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A694 7F035B64 02C28821 */ addu $s1, $s6, $v0 +.L7F035B68: +/* 06A698 7F035B68 26520006 */ addiu $s2, $s2, 6 +/* 06A69C 7F035B6C 1000FE87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6A0 7F035B70 26310006 */ addiu $s1, $s1, 6 +action15_Guard_Kneels_Aims_Shoots_at_Bond_Guard_Pad_RVL_6: +/* 06A6A4 7F035B74 922A0003 */ lbu $t2, 3($s1) +/* 06A6A8 7F035B78 922D0001 */ lbu $t5, 1($s1) +/* 06A6AC 7F035B7C 922C0004 */ lbu $t4, 4($s1) +/* 06A6B0 7F035B80 922F0002 */ lbu $t7, 2($s1) +/* 06A6B4 7F035B84 000A5A00 */ sll $t3, $t2, 8 +/* 06A6B8 7F035B88 000D7200 */ sll $t6, $t5, 8 +/* 06A6BC 7F035B8C 02E02025 */ move $a0, $s7 +/* 06A6C0 7F035B90 016C3025 */ or $a2, $t3, $t4 +/* 06A6C4 7F035B94 0FC0AAA2 */ jal actor_kneel_aim_at_actor +/* 06A6C8 7F035B98 01CF2825 */ or $a1, $t6, $t7 +/* 06A6CC 7F035B9C 10400007 */ beqz $v0, .L7F035BBC +/* 06A6D0 7F035BA0 02C02025 */ move $a0, $s6 +/* 06A6D4 7F035BA4 02402825 */ move $a1, $s2 +/* 06A6D8 7F035BA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A6DC 7F035BAC 92260005 */ lbu $a2, 5($s1) +/* 06A6E0 7F035BB0 00409025 */ move $s2, $v0 +/* 06A6E4 7F035BB4 1000FE75 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6E8 7F035BB8 02C28821 */ addu $s1, $s6, $v0 +.L7F035BBC: +/* 06A6EC 7F035BBC 26520006 */ addiu $s2, $s2, 6 +/* 06A6F0 7F035BC0 1000FE72 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A6F4 7F035BC4 26310006 */ addiu $s1, $s1, 6 +actionE7_If_Guard_Moving_And_Shooting_RVL_2: +/* 06A6F8 7F035BC8 82F80007 */ lb $t8, 7($s7) +/* 06A6FC 7F035BCC 24010008 */ li $at, 8 +/* 06A700 7F035BD0 57010010 */ bnel $t8, $at, .L7F035C14 +/* 06A704 7F035BD4 26520002 */ addiu $s2, $s2, 2 +/* 06A708 7F035BD8 8EF90058 */ lw $t9, 0x58($s7) +/* 06A70C 7F035BDC 5720000D */ bnezl $t9, .L7F035C14 +/* 06A710 7F035BE0 26520002 */ addiu $s2, $s2, 2 +/* 06A714 7F035BE4 8EE9004C */ lw $t1, 0x4c($s7) +/* 06A718 7F035BE8 02C02025 */ move $a0, $s6 +/* 06A71C 7F035BEC 02402825 */ move $a1, $s2 +/* 06A720 7F035BF0 312A0040 */ andi $t2, $t1, 0x40 +/* 06A724 7F035BF4 51400007 */ beql $t2, $zero, .L7F035C14 +/* 06A728 7F035BF8 26520002 */ addiu $s2, $s2, 2 +/* 06A72C 7F035BFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A730 7F035C00 92260001 */ lbu $a2, 1($s1) +/* 06A734 7F035C04 00409025 */ move $s2, $v0 +/* 06A738 7F035C08 1000FE60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A73C 7F035C0C 02C28821 */ addu $s1, $s6, $v0 +/* 06A740 7F035C10 26520002 */ addiu $s2, $s2, 2 +.L7F035C14: +/* 06A744 7F035C14 1000FE5D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A748 7F035C18 26310002 */ addiu $s1, $s1, 2 +actionE8_If_Guard_Is_Shooting_RVL_2: +/* 06A74C 7F035C1C 82EB0007 */ lb $t3, 7($s7) +/* 06A750 7F035C20 24010008 */ li $at, 8 +/* 06A754 7F035C24 02C02025 */ move $a0, $s6 +/* 06A758 7F035C28 15610006 */ bne $t3, $at, .L7F035C44 +/* 06A75C 7F035C2C 02402825 */ move $a1, $s2 +/* 06A760 7F035C30 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A764 7F035C34 92260001 */ lbu $a2, 1($s1) +/* 06A768 7F035C38 00409025 */ move $s2, $v0 +/* 06A76C 7F035C3C 1000FE53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A770 7F035C40 02C28821 */ addu $s1, $s6, $v0 +.L7F035C44: +/* 06A774 7F035C44 26520002 */ addiu $s2, $s2, 2 +/* 06A778 7F035C48 1000FE50 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A77C 7F035C4C 26310002 */ addiu $s1, $s1, 2 +action16_Guard_Shoots_Guards_Without_Animation_Change_RVL_6: +/* 06A780 7F035C50 922C0003 */ lbu $t4, 3($s1) +/* 06A784 7F035C54 922F0001 */ lbu $t7, 1($s1) +/* 06A788 7F035C58 922E0004 */ lbu $t6, 4($s1) +/* 06A78C 7F035C5C 92390002 */ lbu $t9, 2($s1) +/* 06A790 7F035C60 000C6A00 */ sll $t5, $t4, 8 +/* 06A794 7F035C64 000FC200 */ sll $t8, $t7, 8 +/* 06A798 7F035C68 02E02025 */ move $a0, $s7 +/* 06A79C 7F035C6C 01AE3025 */ or $a2, $t5, $t6 +/* 06A7A0 7F035C70 0FC0AABD */ jal actor_fire_or_aim_at_target_update +/* 06A7A4 7F035C74 03192825 */ or $a1, $t8, $t9 +/* 06A7A8 7F035C78 10400007 */ beqz $v0, .L7F035C98 +/* 06A7AC 7F035C7C 02C02025 */ move $a0, $s6 +/* 06A7B0 7F035C80 02402825 */ move $a1, $s2 +/* 06A7B4 7F035C84 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A7B8 7F035C88 92260005 */ lbu $a2, 5($s1) +/* 06A7BC 7F035C8C 00409025 */ move $s2, $v0 +/* 06A7C0 7F035C90 1000FE3E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7C4 7F035C94 02C28821 */ addu $s1, $s6, $v0 +.L7F035C98: +/* 06A7C8 7F035C98 26520006 */ addiu $s2, $s2, 6 +/* 06A7CC 7F035C9C 1000FE3B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A7D0 7F035CA0 26310006 */ addiu $s1, $s1, 6 +action17_Guard_Constantly_Angles_To_Face_RVL_6: +/* 06A7D4 7F035CA4 92290003 */ lbu $t1, 3($s1) +/* 06A7D8 7F035CA8 922C0001 */ lbu $t4, 1($s1) +/* 06A7DC 7F035CAC 922B0004 */ lbu $t3, 4($s1) +/* 06A7E0 7F035CB0 922E0002 */ lbu $t6, 2($s1) +/* 06A7E4 7F035CB4 00095200 */ sll $t2, $t1, 8 +/* 06A7E8 7F035CB8 000C6A00 */ sll $t5, $t4, 8 +/* 06A7EC 7F035CBC 02E02025 */ move $a0, $s7 +/* 06A7F0 7F035CC0 014B3025 */ or $a2, $t2, $t3 +/* 06A7F4 7F035CC4 0FC0AAD1 */ jal check_set_actor_standing_still +/* 06A7F8 7F035CC8 01AE2825 */ or $a1, $t5, $t6 +/* 06A7FC 7F035CCC 10400007 */ beqz $v0, .L7F035CEC +/* 06A800 7F035CD0 02C02025 */ move $a0, $s6 +/* 06A804 7F035CD4 02402825 */ move $a1, $s2 +/* 06A808 7F035CD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A80C 7F035CDC 92260005 */ lbu $a2, 5($s1) +/* 06A810 7F035CE0 00409025 */ move $s2, $v0 +/* 06A814 7F035CE4 1000FE29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A818 7F035CE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035CEC: +/* 06A81C 7F035CEC 26520006 */ addiu $s2, $s2, 6 +/* 06A820 7F035CF0 1000FE26 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A824 7F035CF4 26310006 */ addiu $s1, $s1, 6 +action18_Shoot_Guard_ID_In_Style_With_Weapon_Type_num_4: +/* 06A828 7F035CF8 02E02025 */ move $a0, $s7 +/* 06A82C 7F035CFC 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A830 7F035D00 92250001 */ lbu $a1, 1($s1) +/* 06A834 7F035D04 3C188003 */ lui $t8, %hi(D_80030A70) +/* 06A838 7F035D08 27180A70 */ addiu $t8, %lo(D_80030A70) # addiu $t8, $t8, 0xa70 +/* 06A83C 7F035D0C 8F010000 */ lw $at, ($t8) +/* 06A840 7F035D10 27AF06F4 */ addiu $t7, $sp, 0x6f4 +/* 06A844 7F035D14 8F090004 */ lw $t1, 4($t8) +/* 06A848 7F035D18 ADE10000 */ sw $at, ($t7) +/* 06A84C 7F035D1C 8F010008 */ lw $at, 8($t8) +/* 06A850 7F035D20 00402025 */ move $a0, $v0 +/* 06A854 7F035D24 ADE90004 */ sw $t1, 4($t7) +/* 06A858 7F035D28 10400009 */ beqz $v0, .L7F035D50 +/* 06A85C 7F035D2C ADE10008 */ sw $at, 8($t7) +/* 06A860 7F035D30 8C4A0018 */ lw $t2, 0x18($v0) +/* 06A864 7F035D34 51400007 */ beql $t2, $zero, .L7F035D54 +/* 06A868 7F035D38 26520004 */ addiu $s2, $s2, 4 +/* 06A86C 7F035D3C 82250002 */ lb $a1, 2($s1) +/* 06A870 7F035D40 92270003 */ lbu $a3, 3($s1) +/* 06A874 7F035D44 AFA00010 */ sw $zero, 0x10($sp) +/* 06A878 7F035D48 0FC09C9F */ jal handles_shot_actors +/* 06A87C 7F035D4C 27A606F4 */ addiu $a2, $sp, 0x6f4 +.L7F035D50: +/* 06A880 7F035D50 26520004 */ addiu $s2, $s2, 4 +.L7F035D54: +/* 06A884 7F035D54 1000FE0D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A888 7F035D58 26310004 */ addiu $s1, $s1, 4 +action19_Guard_ID1_Shoots_Guard_ID2_In_Style_4: +/* 06A88C 7F035D5C 02E02025 */ move $a0, $s7 +/* 06A890 7F035D60 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A894 7F035D64 92250001 */ lbu $a1, 1($s1) +/* 06A898 7F035D68 00408025 */ move $s0, $v0 +/* 06A89C 7F035D6C 02E02025 */ move $a0, $s7 +/* 06A8A0 7F035D70 0FC0CC10 */ jal get_handle_for_guard_id +/* 06A8A4 7F035D74 92250002 */ lbu $a1, 2($s1) +/* 06A8A8 7F035D78 1200003C */ beqz $s0, .L7F035E6C +/* 06A8AC 7F035D7C AFA206E8 */ sw $v0, 0x6e8($sp) +/* 06A8B0 7F035D80 1040003A */ beqz $v0, .L7F035E6C +/* 06A8B4 7F035D84 00409825 */ move $s3, $v0 +/* 06A8B8 7F035D88 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A8BC 7F035D8C 51600038 */ beql $t3, $zero, .L7F035E70 +/* 06A8C0 7F035D90 26520004 */ addiu $s2, $s2, 4 +/* 06A8C4 7F035D94 8C4C0018 */ lw $t4, 0x18($v0) +/* 06A8C8 7F035D98 02002025 */ move $a0, $s0 +/* 06A8CC 7F035D9C 51800034 */ beql $t4, $zero, .L7F035E70 +/* 06A8D0 7F035DA0 26520004 */ addiu $s2, $s2, 4 +/* 06A8D4 7F035DA4 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A8D8 7F035DA8 00002825 */ move $a1, $zero +/* 06A8DC 7F035DAC 3C0E8003 */ lui $t6, %hi(D_80030A7C) +/* 06A8E0 7F035DB0 25CE0A7C */ addiu $t6, %lo(D_80030A7C) # addiu $t6, $t6, 0xa7c +/* 06A8E4 7F035DB4 8DC10000 */ lw $at, ($t6) +/* 06A8E8 7F035DB8 27AD06D4 */ addiu $t5, $sp, 0x6d4 +/* 06A8EC 7F035DBC 8DCF0004 */ lw $t7, 4($t6) +/* 06A8F0 7F035DC0 ADA10000 */ sw $at, ($t5) +/* 06A8F4 7F035DC4 8DC10008 */ lw $at, 8($t6) +/* 06A8F8 7F035DC8 00401825 */ move $v1, $v0 +/* 06A8FC 7F035DCC ADAF0004 */ sw $t7, 4($t5) +/* 06A900 7F035DD0 14400005 */ bnez $v0, .L7F035DE8 +/* 06A904 7F035DD4 ADA10008 */ sw $at, 8($t5) +/* 06A908 7F035DD8 02002025 */ move $a0, $s0 +/* 06A90C 7F035DDC 0FC08C0F */ jal is_weapon_in_guarddata_hand +/* 06A910 7F035DE0 24050001 */ li $a1, 1 +/* 06A914 7F035DE4 00401825 */ move $v1, $v0 +.L7F035DE8: +/* 06A918 7F035DE8 50400021 */ beql $v0, $zero, .L7F035E70 +/* 06A91C 7F035DEC 26520004 */ addiu $s2, $s2, 4 +/* 06A920 7F035DF0 8E780018 */ lw $t8, 0x18($s3) +/* 06A924 7F035DF4 8E090018 */ lw $t1, 0x18($s0) +/* 06A928 7F035DF8 27A406D4 */ addiu $a0, $sp, 0x6d4 +/* 06A92C 7F035DFC C7120008 */ lwc1 $f18, 8($t8) +/* 06A930 7F035E00 C5240008 */ lwc1 $f4, 8($t1) +/* 06A934 7F035E04 27A506D8 */ addiu $a1, $sp, 0x6d8 +/* 06A938 7F035E08 27A606DC */ addiu $a2, $sp, 0x6dc +/* 06A93C 7F035E0C 46049181 */ sub.s $f6, $f18, $f4 +/* 06A940 7F035E10 E7A606D4 */ swc1 $f6, 0x6d4($sp) +/* 06A944 7F035E14 8E0B0018 */ lw $t3, 0x18($s0) +/* 06A948 7F035E18 8E6A0018 */ lw $t2, 0x18($s3) +/* 06A94C 7F035E1C C56A000C */ lwc1 $f10, 0xc($t3) +/* 06A950 7F035E20 C548000C */ lwc1 $f8, 0xc($t2) +/* 06A954 7F035E24 460A4401 */ sub.s $f16, $f8, $f10 +/* 06A958 7F035E28 E7B006D8 */ swc1 $f16, 0x6d8($sp) +/* 06A95C 7F035E2C 8E190018 */ lw $t9, 0x18($s0) +/* 06A960 7F035E30 8E6C0018 */ lw $t4, 0x18($s3) +/* 06A964 7F035E34 C7240010 */ lwc1 $f4, 0x10($t9) +/* 06A968 7F035E38 C5920010 */ lwc1 $f18, 0x10($t4) +/* 06A96C 7F035E3C AFA306E4 */ sw $v1, 0x6e4($sp) +/* 06A970 7F035E40 46049181 */ sub.s $f6, $f18, $f4 +/* 06A974 7F035E44 0C007DD4 */ jal guNormalize +/* 06A978 7F035E48 E7A606DC */ swc1 $f6, 0x6dc($sp) +/* 06A97C 7F035E4C 8FA306E4 */ lw $v1, 0x6e4($sp) +/* 06A980 7F035E50 82250003 */ lb $a1, 3($s1) +/* 06A984 7F035E54 02602025 */ move $a0, $s3 +/* 06A988 7F035E58 8C620004 */ lw $v0, 4($v1) +/* 06A98C 7F035E5C 27A606D4 */ addiu $a2, $sp, 0x6d4 +/* 06A990 7F035E60 80470080 */ lb $a3, 0x80($v0) +/* 06A994 7F035E64 0FC09C9F */ jal handles_shot_actors +/* 06A998 7F035E68 AFA00010 */ sw $zero, 0x10($sp) +.L7F035E6C: +/* 06A99C 7F035E6C 26520004 */ addiu $s2, $s2, 4 +.L7F035E70: +/* 06A9A0 7F035E70 1000FDC6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9A4 7F035E74 26310004 */ addiu $s1, $s1, 4 +action1A_Guard_Throws_Grenade_RVL_2: +/* 06A9A8 7F035E78 0FC0D15F */ jal actor_draws_throws_grenade_at_player_if_possible +/* 06A9AC 7F035E7C 02E02025 */ move $a0, $s7 +/* 06A9B0 7F035E80 10400007 */ beqz $v0, .L7F035EA0 +/* 06A9B4 7F035E84 02C02025 */ move $a0, $s6 +/* 06A9B8 7F035E88 02402825 */ move $a1, $s2 +/* 06A9BC 7F035E8C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06A9C0 7F035E90 92260001 */ lbu $a2, 1($s1) +/* 06A9C4 7F035E94 00409025 */ move $s2, $v0 +/* 06A9C8 7F035E98 1000FDBC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9CC 7F035E9C 02C28821 */ addu $s1, $s6, $v0 +.L7F035EA0: +/* 06A9D0 7F035EA0 26520002 */ addiu $s2, $s2, 2 +/* 06A9D4 7F035EA4 1000FDB9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06A9D8 7F035EA8 26310002 */ addiu $s1, $s1, 2 +action1B_Drop_Weapon_Inventory_num_RVL_5: +/* 06A9DC 7F035EAC 922D0001 */ lbu $t5, 1($s1) +/* 06A9E0 7F035EB0 922F0002 */ lbu $t7, 2($s1) +/* 06A9E4 7F035EB4 02E02025 */ move $a0, $s7 +/* 06A9E8 7F035EB8 000D7200 */ sll $t6, $t5, 8 +/* 06A9EC 7F035EBC 01CF1025 */ or $v0, $t6, $t7 +/* 06A9F0 7F035EC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06A9F4 7F035EC4 0FC0D1BF */ jal actor_drops_itemtype_setting_timer +/* 06A9F8 7F035EC8 92260003 */ lbu $a2, 3($s1) +/* 06A9FC 7F035ECC 10400007 */ beqz $v0, .L7F035EEC +/* 06AA00 7F035ED0 02C02025 */ move $a0, $s6 +/* 06AA04 7F035ED4 02402825 */ move $a1, $s2 +/* 06AA08 7F035ED8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AA0C 7F035EDC 92260004 */ lbu $a2, 4($s1) +/* 06AA10 7F035EE0 00409025 */ move $s2, $v0 +/* 06AA14 7F035EE4 1000FDA9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA18 7F035EE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035EEC: +/* 06AA1C 7F035EEC 26520005 */ addiu $s2, $s2, 5 +/* 06AA20 7F035EF0 1000FDA6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA24 7F035EF4 26310005 */ addiu $s1, $s1, 5 +action21_Guard_Surrenders_1: +/* 06AA28 7F035EF8 0FC0CCD9 */ jal check_if_able_to_then_surrender +/* 06AA2C 7F035EFC 02E02025 */ move $a0, $s7 +/* 06AA30 7F035F00 26520001 */ addiu $s2, $s2, 1 +/* 06AA34 7F035F04 1000FDA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA38 7F035F08 26310001 */ addiu $s1, $s1, 1 +action22_Guard_Set_To_Move_Fades_And_Disappear_1: +/* 06AA3C 7F035F0C 0FC0CCE8 */ jal sub_GAME_7F0333A0 +/* 06AA40 7F035F10 02E02025 */ move $a0, $s7 +/* 06AA44 7F035F14 26520001 */ addiu $s2, $s2, 1 +/* 06AA48 7F035F18 1000FD9C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA4C 7F035F1C 26310001 */ addiu $s1, $s1, 1 +action23_Eliminate_Guard_ID_2: +/* 06AA50 7F035F20 02E02025 */ move $a0, $s7 +/* 06AA54 7F035F24 0FC0CC10 */ jal get_handle_for_guard_id +/* 06AA58 7F035F28 92250001 */ lbu $a1, 1($s1) +/* 06AA5C 7F035F2C 10400007 */ beqz $v0, .L7F035F4C +/* 06AA60 7F035F30 26520002 */ addiu $s2, $s2, 2 +/* 06AA64 7F035F34 8C490018 */ lw $t1, 0x18($v0) +/* 06AA68 7F035F38 11200004 */ beqz $t1, .L7F035F4C +/* 06AA6C 7F035F3C 00000000 */ nop +/* 06AA70 7F035F40 944A0012 */ lhu $t2, 0x12($v0) +/* 06AA74 7F035F44 354B0020 */ ori $t3, $t2, 0x20 +/* 06AA78 7F035F48 A44B0012 */ sh $t3, 0x12($v0) +.L7F035F4C: +/* 06AA7C 7F035F4C 1000FD8F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AA80 7F035F50 26310002 */ addiu $s1, $s1, 2 +action24_Activate_Object_At_Preset_RVL_If_Successful_4: +/* 06AA84 7F035F54 922C0001 */ lbu $t4, 1($s1) +/* 06AA88 7F035F58 922D0002 */ lbu $t5, 2($s1) +/* 06AA8C 7F035F5C 02E02025 */ move $a0, $s7 +/* 06AA90 7F035F60 000CCA00 */ sll $t9, $t4, 8 +/* 06AA94 7F035F64 032D1025 */ or $v0, $t9, $t5 +/* 06AA98 7F035F68 0FC0D145 */ jal sub_GAME_7F034514 +/* 06AA9C 7F035F6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AAA0 7F035F70 10400007 */ beqz $v0, .L7F035F90 +/* 06AAA4 7F035F74 02C02025 */ move $a0, $s6 +/* 06AAA8 7F035F78 02402825 */ move $a1, $s2 +/* 06AAAC 7F035F7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AAB0 7F035F80 92260003 */ lbu $a2, 3($s1) +/* 06AAB4 7F035F84 00409025 */ move $s2, $v0 +/* 06AAB8 7F035F88 1000FD80 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AABC 7F035F8C 02C28821 */ addu $s1, $s6, $v0 +.L7F035F90: +/* 06AAC0 7F035F90 26520004 */ addiu $s2, $s2, 4 +/* 06AAC4 7F035F94 1000FD7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAC8 7F035F98 26310004 */ addiu $s1, $s1, 4 +action25_Sound_Alarm_1: +/* 06AACC 7F035F9C 0FC15772 */ jal start_alarm +/* 06AAD0 7F035FA0 00000000 */ nop +/* 06AAD4 7F035FA4 26520001 */ addiu $s2, $s2, 1 +/* 06AAD8 7F035FA8 1000FD78 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AADC 7F035FAC 26310001 */ addiu $s1, $s1, 1 +action26_Turn_Off_Alarm_1: +/* 06AAE0 7F035FB0 0FC1578B */ jal stop_alarm +/* 06AAE4 7F035FB4 00000000 */ nop +/* 06AAE8 7F035FB8 26520001 */ addiu $s2, $s2, 1 +/* 06AAEC 7F035FBC 1000FD73 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AAF0 7F035FC0 26310001 */ addiu $s1, $s1, 1 +action27_Return_False_Invalid_Type_2: +/* 06AAF4 7F035FC4 0FC0D13F */ jal removed_animation_routine_27 +/* 06AAF8 7F035FC8 02E02025 */ move $a0, $s7 +/* 06AAFC 7F035FCC 10400007 */ beqz $v0, .L7F035FEC +/* 06AB00 7F035FD0 02C02025 */ move $a0, $s6 +/* 06AB04 7F035FD4 02402825 */ move $a1, $s2 +/* 06AB08 7F035FD8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB0C 7F035FDC 92260001 */ lbu $a2, 1($s1) +/* 06AB10 7F035FE0 00409025 */ move $s2, $v0 +/* 06AB14 7F035FE4 1000FD69 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB18 7F035FE8 02C28821 */ addu $s1, $s6, $v0 +.L7F035FEC: +/* 06AB1C 7F035FEC 26520002 */ addiu $s2, $s2, 2 +/* 06AB20 7F035FF0 1000FD66 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB24 7F035FF4 26310002 */ addiu $s1, $s1, 2 +action28_Jog_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB28 7F035FF8 02E02025 */ move $a0, $s7 +/* 06AB2C 7F035FFC 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB30 7F036000 24050001 */ li $a1, 1 +/* 06AB34 7F036004 10400007 */ beqz $v0, .L7F036024 +/* 06AB38 7F036008 02C02025 */ move $a0, $s6 +/* 06AB3C 7F03600C 02402825 */ move $a1, $s2 +/* 06AB40 7F036010 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB44 7F036014 92260001 */ lbu $a2, 1($s1) +/* 06AB48 7F036018 00409025 */ move $s2, $v0 +/* 06AB4C 7F03601C 1000FD5B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB50 7F036020 02C28821 */ addu $s1, $s6, $v0 +.L7F036024: +/* 06AB54 7F036024 26520002 */ addiu $s2, $s2, 2 +/* 06AB58 7F036028 1000FD58 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB5C 7F03602C 26310002 */ addiu $s1, $s1, 2 +action29_Walk_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB60 7F036030 02E02025 */ move $a0, $s7 +/* 06AB64 7F036034 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06AB68 7F036038 00002825 */ move $a1, $zero +/* 06AB6C 7F03603C 10400007 */ beqz $v0, .L7F03605C +/* 06AB70 7F036040 02C02025 */ move $a0, $s6 +/* 06AB74 7F036044 02402825 */ move $a1, $s2 +/* 06AB78 7F036048 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AB7C 7F03604C 92260001 */ lbu $a2, 1($s1) +/* 06AB80 7F036050 00409025 */ move $s2, $v0 +/* 06AB84 7F036054 1000FD4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB88 7F036058 02C28821 */ addu $s1, $s6, $v0 +.L7F03605C: +/* 06AB8C 7F03605C 26520002 */ addiu $s2, $s2, 2 +/* 06AB90 7F036060 1000FD4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AB94 7F036064 26310002 */ addiu $s1, $s1, 2 +action2A_Run_To_Bond_Return_Loop_When_Reached_Bond_2: +/* 06AB98 7F036068 02E02025 */ move $a0, $s7 +/* 06AB9C 7F03606C 0FC0CD28 */ jal actor_move_to_curplayer_at_speed +/* 06ABA0 7F036070 24050002 */ li $a1, 2 +/* 06ABA4 7F036074 10400007 */ beqz $v0, .L7F036094 +/* 06ABA8 7F036078 02C02025 */ move $a0, $s6 +/* 06ABAC 7F03607C 02402825 */ move $a1, $s2 +/* 06ABB0 7F036080 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABB4 7F036084 92260001 */ lbu $a2, 1($s1) +/* 06ABB8 7F036088 00409025 */ move $s2, $v0 +/* 06ABBC 7F03608C 1000FD3F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABC0 7F036090 02C28821 */ addu $s1, $s6, $v0 +.L7F036094: +/* 06ABC4 7F036094 26520002 */ addiu $s2, $s2, 2 +/* 06ABC8 7F036098 1000FD3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABCC 7F03609C 26310002 */ addiu $s1, $s1, 2 +action2B_Return_False_Invalid_Type_2: +/* 06ABD0 7F0360A0 0FC0D142 */ jal removed_animation_routine_2B +/* 06ABD4 7F0360A4 02E02025 */ move $a0, $s7 +/* 06ABD8 7F0360A8 10400007 */ beqz $v0, .L7F0360C8 +/* 06ABDC 7F0360AC 02C02025 */ move $a0, $s6 +/* 06ABE0 7F0360B0 02402825 */ move $a1, $s2 +/* 06ABE4 7F0360B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ABE8 7F0360B8 92260001 */ lbu $a2, 1($s1) +/* 06ABEC 7F0360BC 00409025 */ move $s2, $v0 +/* 06ABF0 7F0360C0 1000FD32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ABF4 7F0360C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0360C8: +/* 06ABF8 7F0360C8 26520002 */ addiu $s2, $s2, 2 +/* 06ABFC 7F0360CC 1000FD2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC00 7F0360D0 26310002 */ addiu $s1, $s1, 2 +action2C_Jog_To_Character_Position_RVL_On_Arrival_3: +/* 06AC04 7F0360D4 02E02025 */ move $a0, $s7 +/* 06AC08 7F0360D8 92250001 */ lbu $a1, 1($s1) +/* 06AC0C 7F0360DC 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC10 7F0360E0 24060001 */ li $a2, 1 +/* 06AC14 7F0360E4 10400007 */ beqz $v0, .L7F036104 +/* 06AC18 7F0360E8 02C02025 */ move $a0, $s6 +/* 06AC1C 7F0360EC 02402825 */ move $a1, $s2 +/* 06AC20 7F0360F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC24 7F0360F4 92260002 */ lbu $a2, 2($s1) +/* 06AC28 7F0360F8 00409025 */ move $s2, $v0 +/* 06AC2C 7F0360FC 1000FD23 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC30 7F036100 02C28821 */ addu $s1, $s6, $v0 +.L7F036104: +/* 06AC34 7F036104 26520003 */ addiu $s2, $s2, 3 +/* 06AC38 7F036108 1000FD20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC3C 7F03610C 26310003 */ addiu $s1, $s1, 3 +action2D_Walk_To_Character_Position_RVL_On_Arrival_3: +/* 06AC40 7F036110 02E02025 */ move $a0, $s7 +/* 06AC44 7F036114 92250001 */ lbu $a1, 1($s1) +/* 06AC48 7F036118 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC4C 7F03611C 00003025 */ move $a2, $zero +/* 06AC50 7F036120 10400007 */ beqz $v0, .L7F036140 +/* 06AC54 7F036124 02C02025 */ move $a0, $s6 +/* 06AC58 7F036128 02402825 */ move $a1, $s2 +/* 06AC5C 7F03612C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC60 7F036130 92260002 */ lbu $a2, 2($s1) +/* 06AC64 7F036134 00409025 */ move $s2, $v0 +/* 06AC68 7F036138 1000FD14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC6C 7F03613C 02C28821 */ addu $s1, $s6, $v0 +.L7F036140: +/* 06AC70 7F036140 26520003 */ addiu $s2, $s2, 3 +/* 06AC74 7F036144 1000FD11 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AC78 7F036148 26310003 */ addiu $s1, $s1, 3 +action2E_Run_To_Character_Position_RVL_On_Arrival_3: +/* 06AC7C 7F03614C 02E02025 */ move $a0, $s7 +/* 06AC80 7F036150 92250001 */ lbu $a1, 1($s1) +/* 06AC84 7F036154 0FC0CD43 */ jal actor_move_to_actorID_at_speed +/* 06AC88 7F036158 24060002 */ li $a2, 2 +/* 06AC8C 7F03615C 10400007 */ beqz $v0, .L7F03617C +/* 06AC90 7F036160 02C02025 */ move $a0, $s6 +/* 06AC94 7F036164 02402825 */ move $a1, $s2 +/* 06AC98 7F036168 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AC9C 7F03616C 92260002 */ lbu $a2, 2($s1) +/* 06ACA0 7F036170 00409025 */ move $s2, $v0 +/* 06ACA4 7F036174 1000FD05 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACA8 7F036178 02C28821 */ addu $s1, $s6, $v0 +.L7F03617C: +/* 06ACAC 7F03617C 26520003 */ addiu $s2, $s2, 3 +/* 06ACB0 7F036180 1000FD02 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACB4 7F036184 26310003 */ addiu $s1, $s1, 3 +action33_Seed_Random_Byte_1: +/* 06ACB8 7F036188 0C002914 */ jal randomGetNext +/* 06ACBC 7F03618C 00000000 */ nop +/* 06ACC0 7F036190 A2E2010F */ sb $v0, 0x10f($s7) +/* 06ACC4 7F036194 26520001 */ addiu $s2, $s2, 1 +/* 06ACC8 7F036198 1000FCFC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACCC 7F03619C 26310001 */ addiu $s1, $s1, 1 +action34_If_Seeded_Byte_LTV_Go_Into_RVL_3: +/* 06ACD0 7F0361A0 92F8010F */ lbu $t8, 0x10f($s7) +/* 06ACD4 7F0361A4 92290001 */ lbu $t1, 1($s1) +/* 06ACD8 7F0361A8 02C02025 */ move $a0, $s6 +/* 06ACDC 7F0361AC 02402825 */ move $a1, $s2 +/* 06ACE0 7F0361B0 0309082A */ slt $at, $t8, $t1 +/* 06ACE4 7F0361B4 50200007 */ beql $at, $zero, .L7F0361D4 +/* 06ACE8 7F0361B8 26520003 */ addiu $s2, $s2, 3 +/* 06ACEC 7F0361BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06ACF0 7F0361C0 92260002 */ lbu $a2, 2($s1) +/* 06ACF4 7F0361C4 00409025 */ move $s2, $v0 +/* 06ACF8 7F0361C8 1000FCF0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ACFC 7F0361CC 02C28821 */ addu $s1, $s6, $v0 +/* 06AD00 7F0361D0 26520003 */ addiu $s2, $s2, 3 +.L7F0361D4: +/* 06AD04 7F0361D4 1000FCED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD08 7F0361D8 26310003 */ addiu $s1, $s1, 3 +action35_If_Seeded_Byte_GTV_Go_Into_RVL_3: +/* 06AD0C 7F0361DC 922A0001 */ lbu $t2, 1($s1) +/* 06AD10 7F0361E0 92EB010F */ lbu $t3, 0x10f($s7) +/* 06AD14 7F0361E4 02C02025 */ move $a0, $s6 +/* 06AD18 7F0361E8 02402825 */ move $a1, $s2 +/* 06AD1C 7F0361EC 014B082A */ slt $at, $t2, $t3 +/* 06AD20 7F0361F0 50200007 */ beql $at, $zero, .L7F036210 +/* 06AD24 7F0361F4 26520003 */ addiu $s2, $s2, 3 +/* 06AD28 7F0361F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AD2C 7F0361FC 92260002 */ lbu $a2, 2($s1) +/* 06AD30 7F036200 00409025 */ move $s2, $v0 +/* 06AD34 7F036204 1000FCE1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD38 7F036208 02C28821 */ addu $s1, $s6, $v0 +/* 06AD3C 7F03620C 26520003 */ addiu $s2, $s2, 3 +.L7F036210: +/* 06AD40 7F036210 1000FCDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD44 7F036214 26310003 */ addiu $s1, $s1, 3 +action1C_Guard_Jogs_To_Preset_3: +/* 06AD48 7F036218 922C0001 */ lbu $t4, 1($s1) +/* 06AD4C 7F03621C 922D0002 */ lbu $t5, 2($s1) +/* 06AD50 7F036220 02E02025 */ move $a0, $s7 +/* 06AD54 7F036224 000CCA00 */ sll $t9, $t4, 8 +/* 06AD58 7F036228 032D1025 */ or $v0, $t9, $t5 +/* 06AD5C 7F03622C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06AD60 7F036230 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD64 7F036234 24060001 */ li $a2, 1 +/* 06AD68 7F036238 26520003 */ addiu $s2, $s2, 3 +/* 06AD6C 7F03623C 1000FCD3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD70 7F036240 26310003 */ addiu $s1, $s1, 3 +action1D_Guard_Jogs_To_Predefined_Preset_2328_1: +/* 06AD74 7F036244 02E02025 */ move $a0, $s7 +/* 06AD78 7F036248 86E50114 */ lh $a1, 0x114($s7) +/* 06AD7C 7F03624C 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06AD80 7F036250 24060001 */ li $a2, 1 +/* 06AD84 7F036254 26520001 */ addiu $s2, $s2, 1 +/* 06AD88 7F036258 1000FCCC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AD8C 7F03625C 26310001 */ addiu $s1, $s1, 1 +action1E_Guard_Walks_To_Preset_3: +/* 06AD90 7F036260 922F0001 */ lbu $t7, 1($s1) +/* 06AD94 7F036264 92290002 */ lbu $t1, 2($s1) +/* 06AD98 7F036268 02E02025 */ move $a0, $s7 +/* 06AD9C 7F03626C 000FC200 */ sll $t8, $t7, 8 +/* 06ADA0 7F036270 03091025 */ or $v0, $t8, $t1 +/* 06ADA4 7F036274 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADA8 7F036278 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADAC 7F03627C 00003025 */ move $a2, $zero +/* 06ADB0 7F036280 26520003 */ addiu $s2, $s2, 3 +/* 06ADB4 7F036284 1000FCC1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADB8 7F036288 26310003 */ addiu $s1, $s1, 3 +action1F_Guard_Runs__To_Preset_3: +/* 06ADBC 7F03628C 922B0001 */ lbu $t3, 1($s1) +/* 06ADC0 7F036290 92390002 */ lbu $t9, 2($s1) +/* 06ADC4 7F036294 02E02025 */ move $a0, $s7 +/* 06ADC8 7F036298 000B6200 */ sll $t4, $t3, 8 +/* 06ADCC 7F03629C 01991025 */ or $v0, $t4, $t9 +/* 06ADD0 7F0362A0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06ADD4 7F0362A4 0FC0AAED */ jal actor_moves_to_preset_at_speed +/* 06ADD8 7F0362A8 24060002 */ li $a2, 2 +/* 06ADDC 7F0362AC 26520003 */ addiu $s2, $s2, 3 +/* 06ADE0 7F0362B0 1000FCB6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ADE4 7F0362B4 26310003 */ addiu $s1, $s1, 3 +action20_Activate_Path_2: +/* 06ADE8 7F0362B8 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06ADEC 7F0362BC 92240001 */ lbu $a0, 1($s1) +/* 06ADF0 7F0362C0 02E02025 */ move $a0, $s7 +/* 06ADF4 7F0362C4 0FC0AB55 */ jal if_actor_able_set_on_path +/* 06ADF8 7F0362C8 00402825 */ move $a1, $v0 +/* 06ADFC 7F0362CC 26520002 */ addiu $s2, $s2, 2 +/* 06AE00 7F0362D0 1000FCAE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE04 7F0362D4 26310002 */ addiu $s1, $s1, 2 +action36_If_Alarm_Activated_RVL_Plus_Stack_2: +/* 06AE08 7F0362D8 0FC0CDD8 */ jal alarm_timer_related +/* 06AE0C 7F0362DC 02E02025 */ move $a0, $s7 +/* 06AE10 7F0362E0 10400007 */ beqz $v0, .L7F036300 +/* 06AE14 7F0362E4 02C02025 */ move $a0, $s6 +/* 06AE18 7F0362E8 02402825 */ move $a1, $s2 +/* 06AE1C 7F0362EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE20 7F0362F0 92260001 */ lbu $a2, 1($s1) +/* 06AE24 7F0362F4 00409025 */ move $s2, $v0 +/* 06AE28 7F0362F8 1000FCA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE2C 7F0362FC 02C28821 */ addu $s1, $s6, $v0 +.L7F036300: +/* 06AE30 7F036300 26520002 */ addiu $s2, $s2, 2 +/* 06AE34 7F036304 1000FCA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE38 7F036308 26310002 */ addiu $s1, $s1, 2 +action37_If_Alarm_Activated_RVL_2: +/* 06AE3C 7F03630C 0FC15794 */ jal is_alarm_on +/* 06AE40 7F036310 00000000 */ nop +/* 06AE44 7F036314 10400007 */ beqz $v0, .L7F036334 +/* 06AE48 7F036318 02C02025 */ move $a0, $s6 +/* 06AE4C 7F03631C 02402825 */ move $a1, $s2 +/* 06AE50 7F036320 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE54 7F036324 92260001 */ lbu $a2, 1($s1) +/* 06AE58 7F036328 00409025 */ move $s2, $v0 +/* 06AE5C 7F03632C 1000FC97 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE60 7F036330 02C28821 */ addu $s1, $s6, $v0 +.L7F036334: +/* 06AE64 7F036334 26520002 */ addiu $s2, $s2, 2 +/* 06AE68 7F036338 1000FC94 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE6C 7F03633C 26310002 */ addiu $s1, $s1, 2 +action38_If_Toxic_Gas_Released_RVL_2: +/* 06AE70 7F036340 0FC157CE */ jal check_if_toxic_gas_activated +/* 06AE74 7F036344 00000000 */ nop +/* 06AE78 7F036348 10400007 */ beqz $v0, .L7F036368 +/* 06AE7C 7F03634C 02C02025 */ move $a0, $s6 +/* 06AE80 7F036350 02402825 */ move $a1, $s2 +/* 06AE84 7F036354 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AE88 7F036358 92260001 */ lbu $a2, 1($s1) +/* 06AE8C 7F03635C 00409025 */ move $s2, $v0 +/* 06AE90 7F036360 1000FC8A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AE94 7F036364 02C28821 */ addu $s1, $s6, $v0 +.L7F036368: +/* 06AE98 7F036368 26520002 */ addiu $s2, $s2, 2 +/* 06AE9C 7F03636C 1000FC87 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEA0 7F036370 26310002 */ addiu $s1, $s1, 2 +action39_If_Guard_Heard_Gunfire_RVL_2: +/* 06AEA4 7F036374 0FC0CCD5 */ jal check_if_actor_02_flag_set +/* 06AEA8 7F036378 02E02025 */ move $a0, $s7 +/* 06AEAC 7F03637C 10400007 */ beqz $v0, .L7F03639C +/* 06AEB0 7F036380 02C02025 */ move $a0, $s6 +/* 06AEB4 7F036384 02402825 */ move $a1, $s2 +/* 06AEB8 7F036388 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEBC 7F03638C 92260001 */ lbu $a2, 1($s1) +/* 06AEC0 7F036390 00409025 */ move $s2, $v0 +/* 06AEC4 7F036394 1000FC7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEC8 7F036398 02C28821 */ addu $s1, $s6, $v0 +.L7F03639C: +/* 06AECC 7F03639C 26520002 */ addiu $s2, $s2, 2 +/* 06AED0 7F0363A0 1000FC7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AED4 7F0363A4 26310002 */ addiu $s1, $s1, 2 +action3A_If_Bond_Shoots_Another_Guard_RVL_2: +/* 06AED8 7F0363A8 0FC0CD6D */ jal check_if_actor_FA_target_set +/* 06AEDC 7F0363AC 02E02025 */ move $a0, $s7 +/* 06AEE0 7F0363B0 10400007 */ beqz $v0, .L7F0363D0 +/* 06AEE4 7F0363B4 02C02025 */ move $a0, $s6 +/* 06AEE8 7F0363B8 02402825 */ move $a1, $s2 +/* 06AEEC 7F0363BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AEF0 7F0363C0 92260001 */ lbu $a2, 1($s1) +/* 06AEF4 7F0363C4 00409025 */ move $s2, $v0 +/* 06AEF8 7F0363C8 1000FC70 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AEFC 7F0363CC 02C28821 */ addu $s1, $s6, $v0 +.L7F0363D0: +/* 06AF00 7F0363D0 26520002 */ addiu $s2, $s2, 2 +/* 06AF04 7F0363D4 1000FC6D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF08 7F0363D8 26310002 */ addiu $s1, $s1, 2 +action3B_If_Guard_Killed_In_Front_Of_Guard_RVL_2: +/* 06AF0C 7F0363DC 0FC0CD71 */ jal check_if_actor_FB_target_set +/* 06AF10 7F0363E0 02E02025 */ move $a0, $s7 +/* 06AF14 7F0363E4 10400007 */ beqz $v0, .L7F036404 +/* 06AF18 7F0363E8 02C02025 */ move $a0, $s6 +/* 06AF1C 7F0363EC 02402825 */ move $a1, $s2 +/* 06AF20 7F0363F0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF24 7F0363F4 92260001 */ lbu $a2, 1($s1) +/* 06AF28 7F0363F8 00409025 */ move $s2, $v0 +/* 06AF2C 7F0363FC 1000FC63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF30 7F036400 02C28821 */ addu $s1, $s6, $v0 +.L7F036404: +/* 06AF34 7F036404 26520002 */ addiu $s2, $s2, 2 +/* 06AF38 7F036408 1000FC60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF3C 7F03640C 26310002 */ addiu $s1, $s1, 2 +action3C_If_Guard_In_Firing_Range_RVL_2: +/* 06AF40 7F036410 0FC0A52F */ jal sub_GAME_7F0294BC +/* 06AF44 7F036414 02E02025 */ move $a0, $s7 +/* 06AF48 7F036418 10400007 */ beqz $v0, .L7F036438 +/* 06AF4C 7F03641C 02C02025 */ move $a0, $s6 +/* 06AF50 7F036420 02402825 */ move $a1, $s2 +/* 06AF54 7F036424 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF58 7F036428 92260001 */ lbu $a2, 1($s1) +/* 06AF5C 7F03642C 00409025 */ move $s2, $v0 +/* 06AF60 7F036430 1000FC56 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF64 7F036434 02C28821 */ addu $s1, $s6, $v0 +.L7F036438: +/* 06AF68 7F036438 26520002 */ addiu $s2, $s2, 2 +/* 06AF6C 7F03643C 1000FC53 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF70 7F036440 26310002 */ addiu $s1, $s1, 2 +action3D___Unused___Unknown___2: +/* 06AF74 7F036444 0FC0CF71 */ jal sub_GAME_7F033DC4 +/* 06AF78 7F036448 02E02025 */ move $a0, $s7 +/* 06AF7C 7F03644C 10400007 */ beqz $v0, .L7F03646C +/* 06AF80 7F036450 02C02025 */ move $a0, $s6 +/* 06AF84 7F036454 02402825 */ move $a1, $s2 +/* 06AF88 7F036458 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AF8C 7F03645C 92260001 */ lbu $a2, 1($s1) +/* 06AF90 7F036460 00409025 */ move $s2, $v0 +/* 06AF94 7F036464 1000FC49 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AF98 7F036468 02C28821 */ addu $s1, $s6, $v0 +.L7F03646C: +/* 06AF9C 7F03646C 26520002 */ addiu $s2, $s2, 2 +/* 06AFA0 7F036470 1000FC46 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFA4 7F036474 26310002 */ addiu $s1, $s1, 2 +action3E_If_Shot_Current_Guard_RVL_2: +/* 06AFA8 7F036478 0FC0CADA */ jal sub_GAME_7F032B68 +/* 06AFAC 7F03647C 02E02025 */ move $a0, $s7 +/* 06AFB0 7F036480 10400007 */ beqz $v0, .L7F0364A0 +/* 06AFB4 7F036484 02C02025 */ move $a0, $s6 +/* 06AFB8 7F036488 02402825 */ move $a1, $s2 +/* 06AFBC 7F03648C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFC0 7F036490 92260001 */ lbu $a2, 1($s1) +/* 06AFC4 7F036494 00409025 */ move $s2, $v0 +/* 06AFC8 7F036498 1000FC3C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFCC 7F03649C 02C28821 */ addu $s1, $s6, $v0 +.L7F0364A0: +/* 06AFD0 7F0364A0 26520002 */ addiu $s2, $s2, 2 +/* 06AFD4 7F0364A4 1000FC39 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06AFD8 7F0364A8 26310002 */ addiu $s1, $s1, 2 +action3F_If_Heard_Bond_RVL_2: +/* 06AFDC 7F0364AC 0FC0CAE8 */ jal sub_GAME_7F032BA0 +/* 06AFE0 7F0364B0 02E02025 */ move $a0, $s7 +/* 06AFE4 7F0364B4 10400007 */ beqz $v0, .L7F0364D4 +/* 06AFE8 7F0364B8 02C02025 */ move $a0, $s6 +/* 06AFEC 7F0364BC 02402825 */ move $a1, $s2 +/* 06AFF0 7F0364C0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06AFF4 7F0364C4 92260001 */ lbu $a2, 1($s1) +/* 06AFF8 7F0364C8 00409025 */ move $s2, $v0 +/* 06AFFC 7F0364CC 1000FC2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B000 7F0364D0 02C28821 */ addu $s1, $s6, $v0 +.L7F0364D4: +/* 06B004 7F0364D4 26520002 */ addiu $s2, $s2, 2 +/* 06B008 7F0364D8 1000FC2C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B00C 7F0364DC 26310002 */ addiu $s1, $s1, 2 +action40_If_Another_Guard_In_Same_Room_As_Guard_ID_RVL_3: +/* 06B010 7F0364E0 02E02025 */ move $a0, $s7 +/* 06B014 7F0364E4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B018 7F0364E8 92250001 */ lbu $a1, 1($s1) +/* 06B01C 7F0364EC 50400012 */ beql $v0, $zero, .L7F036538 +/* 06B020 7F0364F0 26520003 */ addiu $s2, $s2, 3 +/* 06B024 7F0364F4 8C4E0018 */ lw $t6, 0x18($v0) +/* 06B028 7F0364F8 51C0000F */ beql $t6, $zero, .L7F036538 +/* 06B02C 7F0364FC 26520003 */ addiu $s2, $s2, 3 +/* 06B030 7F036500 8C420018 */ lw $v0, 0x18($v0) +/* 06B034 7F036504 02E02025 */ move $a0, $s7 +/* 06B038 7F036508 24450008 */ addiu $a1, $v0, 8 +/* 06B03C 7F03650C 0FC0A574 */ jal check_if_position_in_same_room +/* 06B040 7F036510 8C460014 */ lw $a2, 0x14($v0) +/* 06B044 7F036514 10400007 */ beqz $v0, .L7F036534 +/* 06B048 7F036518 02C02025 */ move $a0, $s6 +/* 06B04C 7F03651C 02402825 */ move $a1, $s2 +/* 06B050 7F036520 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B054 7F036524 92260002 */ lbu $a2, 2($s1) +/* 06B058 7F036528 00409025 */ move $s2, $v0 +/* 06B05C 7F03652C 1000FC17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B060 7F036530 02C28821 */ addu $s1, $s6, $v0 +.L7F036534: +/* 06B064 7F036534 26520003 */ addiu $s2, $s2, 3 +.L7F036538: +/* 06B068 7F036538 1000FC14 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B06C 7F03653C 26310003 */ addiu $s1, $s1, 3 +action41_If_Guard_Has_Been_On_Screen_RVL_2: +/* 06B070 7F036540 8EEF0014 */ lw $t7, 0x14($s7) +/* 06B074 7F036544 02C02025 */ move $a0, $s6 +/* 06B078 7F036548 02402825 */ move $a1, $s2 +/* 06B07C 7F03654C 31F80008 */ andi $t8, $t7, 8 +/* 06B080 7F036550 57000007 */ bnezl $t8, .L7F036570 +/* 06B084 7F036554 26520002 */ addiu $s2, $s2, 2 +/* 06B088 7F036558 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B08C 7F03655C 92260001 */ lbu $a2, 1($s1) +/* 06B090 7F036560 00409025 */ move $s2, $v0 +/* 06B094 7F036564 1000FC09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B098 7F036568 02C28821 */ addu $s1, $s6, $v0 +/* 06B09C 7F03656C 26520002 */ addiu $s2, $s2, 2 +.L7F036570: +/* 06B0A0 7F036570 1000FC06 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0A4 7F036574 26310002 */ addiu $s1, $s1, 2 +action42_If_Current_Guard_On_Screen_In_Loaded_Room_RVL_2: +/* 06B0A8 7F036578 8EE90018 */ lw $t1, 0x18($s7) +/* 06B0AC 7F03657C 02C02025 */ move $a0, $s6 +/* 06B0B0 7F036580 02402825 */ move $a1, $s2 +/* 06B0B4 7F036584 912A0001 */ lbu $t2, 1($t1) +/* 06B0B8 7F036588 314B0002 */ andi $t3, $t2, 2 +/* 06B0BC 7F03658C 51600007 */ beql $t3, $zero, .L7F0365AC +/* 06B0C0 7F036590 26520002 */ addiu $s2, $s2, 2 +/* 06B0C4 7F036594 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B0C8 7F036598 92260001 */ lbu $a2, 1($s1) +/* 06B0CC 7F03659C 00409025 */ move $s2, $v0 +/* 06B0D0 7F0365A0 1000FBFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0D4 7F0365A4 02C28821 */ addu $s1, $s6, $v0 +/* 06B0D8 7F0365A8 26520002 */ addiu $s2, $s2, 2 +.L7F0365AC: +/* 06B0DC 7F0365AC 1000FBF7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B0E0 7F0365B0 26310002 */ addiu $s1, $s1, 2 +action43_If_Guard_In_A_Room_Currently_Loaded_RVL_2: +/* 06B0E4 7F0365B4 8EEC0018 */ lw $t4, 0x18($s7) +/* 06B0E8 7F0365B8 0FC2CBF6 */ jal getTileRoom +/* 06B0EC 7F0365BC 8D840014 */ lw $a0, 0x14($t4) +/* 06B0F0 7F0365C0 0FC2D794 */ jal sub_GAME_7F0B5E50 +/* 06B0F4 7F0365C4 00402025 */ move $a0, $v0 +/* 06B0F8 7F0365C8 10400007 */ beqz $v0, .L7F0365E8 +/* 06B0FC 7F0365CC 02C02025 */ move $a0, $s6 +/* 06B100 7F0365D0 02402825 */ move $a1, $s2 +/* 06B104 7F0365D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B108 7F0365D8 92260001 */ lbu $a2, 1($s1) +/* 06B10C 7F0365DC 00409025 */ move $s2, $v0 +/* 06B110 7F0365E0 1000FBEA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B114 7F0365E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0365E8: +/* 06B118 7F0365E8 26520002 */ addiu $s2, $s2, 2 +/* 06B11C 7F0365EC 1000FBE7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B120 7F0365F0 26310002 */ addiu $s1, $s1, 2 +action44_If_Room_Containing_Preset_Is_Loaded_RVL_4: +/* 06B124 7F0365F4 92390001 */ lbu $t9, 1($s1) +/* 06B128 7F0365F8 922E0002 */ lbu $t6, 2($s1) +/* 06B12C 7F0365FC 02E02025 */ move $a0, $s7 +/* 06B130 7F036600 00196A00 */ sll $t5, $t9, 8 +/* 06B134 7F036604 01AE1025 */ or $v0, $t5, $t6 +/* 06B138 7F036608 0FC0CBBF */ jal check_if_room_for_preset_loaded +/* 06B13C 7F03660C 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B140 7F036610 10400007 */ beqz $v0, .L7F036630 +/* 06B144 7F036614 02C02025 */ move $a0, $s6 +/* 06B148 7F036618 02402825 */ move $a1, $s2 +/* 06B14C 7F03661C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B150 7F036620 92260003 */ lbu $a2, 3($s1) +/* 06B154 7F036624 00409025 */ move $s2, $v0 +/* 06B158 7F036628 1000FBD8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B15C 7F03662C 02C28821 */ addu $s1, $s6, $v0 +.L7F036630: +/* 06B160 7F036630 26520004 */ addiu $s2, $s2, 4 +/* 06B164 7F036634 1000FBD5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B168 7F036638 26310004 */ addiu $s1, $s1, 4 +action45_Go_To_RVL_If_Bond_Has_Guard_At_Gunpoint_2: +/* 06B16C 7F03663C 0FC0CCFE */ jal sub_GAME_7F0333F8 +/* 06B170 7F036640 02E02025 */ move $a0, $s7 +/* 06B174 7F036644 10400007 */ beqz $v0, .L7F036664 +/* 06B178 7F036648 02C02025 */ move $a0, $s6 +/* 06B17C 7F03664C 02402825 */ move $a1, $s2 +/* 06B180 7F036650 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B184 7F036654 92260001 */ lbu $a2, 1($s1) +/* 06B188 7F036658 00409025 */ move $s2, $v0 +/* 06B18C 7F03665C 1000FBCB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B190 7F036660 02C28821 */ addu $s1, $s6, $v0 +.L7F036664: +/* 06B194 7F036664 26520002 */ addiu $s2, $s2, 2 +/* 06B198 7F036668 1000FBC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B19C 7F03666C 26310002 */ addiu $s1, $s1, 2 +action46_If_Fired_A_Shot_RVL_2: +/* 06B1A0 7F036670 0FC0CD24 */ jal check_if_actor_invisible +/* 06B1A4 7F036674 02E02025 */ move $a0, $s7 +/* 06B1A8 7F036678 10400007 */ beqz $v0, .L7F036698 +/* 06B1AC 7F03667C 02C02025 */ move $a0, $s6 +/* 06B1B0 7F036680 02402825 */ move $a1, $s2 +/* 06B1B4 7F036684 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B1B8 7F036688 92260001 */ lbu $a2, 1($s1) +/* 06B1BC 7F03668C 00409025 */ move $s2, $v0 +/* 06B1C0 7F036690 1000FBBE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1C4 7F036694 02C28821 */ addu $s1, $s6, $v0 +.L7F036698: +/* 06B1C8 7F036698 26520002 */ addiu $s2, $s2, 2 +/* 06B1CC 7F03669C 1000FBBB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B1D0 7F0366A0 26310002 */ addiu $s1, $s1, 2 +action47_If_Distance_Between_Bond_And_Guard_LTV_RVL_3: +/* 06B1D4 7F0366A4 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B1D8 7F0366A8 02E02025 */ move $a0, $s7 +/* 06B1DC 7F0366AC 92380001 */ lbu $t8, 1($s1) +/* 06B1E0 7F0366B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B1E4 7F0366B4 02C02025 */ move $a0, $s6 +/* 06B1E8 7F0366B8 44984000 */ mtc1 $t8, $f8 +/* 06B1EC 7F0366BC 02402825 */ move $a1, $s2 +/* 06B1F0 7F0366C0 07010004 */ bgez $t8, .L7F0366D4 +/* 06B1F4 7F0366C4 468042A0 */ cvt.s.w $f10, $f8 +/* 06B1F8 7F0366C8 44818000 */ mtc1 $at, $f16 +/* 06B1FC 7F0366CC 00000000 */ nop +/* 06B200 7F0366D0 46105280 */ add.s $f10, $f10, $f16 +.L7F0366D4: +/* 06B204 7F0366D4 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B208 7F0366D8 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B20C 7F0366DC 44812000 */ mtc1 $at, $f4 +/* 06B210 7F0366E0 00000000 */ nop +/* 06B214 7F0366E4 46049182 */ mul.s $f6, $f18, $f4 +/* 06B218 7F0366E8 4606003C */ c.lt.s $f0, $f6 +/* 06B21C 7F0366EC 00000000 */ nop +/* 06B220 7F0366F0 45020007 */ bc1fl .L7F036710 +/* 06B224 7F0366F4 26520003 */ addiu $s2, $s2, 3 +/* 06B228 7F0366F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B22C 7F0366FC 92260002 */ lbu $a2, 2($s1) +/* 06B230 7F036700 00409025 */ move $s2, $v0 +/* 06B234 7F036704 1000FBA1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B238 7F036708 02C28821 */ addu $s1, $s6, $v0 +/* 06B23C 7F03670C 26520003 */ addiu $s2, $s2, 3 +.L7F036710: +/* 06B240 7F036710 1000FB9E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B244 7F036714 26310003 */ addiu $s1, $s1, 3 +action48_If_Distance_Between_Bond_And_Guard_GTV_RVL_3: +/* 06B248 7F036718 0FC0CB13 */ jal sub_GAME_7F032C4C +/* 06B24C 7F03671C 02E02025 */ move $a0, $s7 +/* 06B250 7F036720 92290001 */ lbu $t1, 1($s1) +/* 06B254 7F036724 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B258 7F036728 02C02025 */ move $a0, $s6 +/* 06B25C 7F03672C 44894000 */ mtc1 $t1, $f8 +/* 06B260 7F036730 02402825 */ move $a1, $s2 +/* 06B264 7F036734 05210004 */ bgez $t1, .L7F036748 +/* 06B268 7F036738 46804420 */ cvt.s.w $f16, $f8 +/* 06B26C 7F03673C 44815000 */ mtc1 $at, $f10 +/* 06B270 7F036740 00000000 */ nop +/* 06B274 7F036744 460A8400 */ add.s $f16, $f16, $f10 +.L7F036748: +/* 06B278 7F036748 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B27C 7F03674C 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B280 7F036750 44812000 */ mtc1 $at, $f4 +/* 06B284 7F036754 00000000 */ nop +/* 06B288 7F036758 46049182 */ mul.s $f6, $f18, $f4 +/* 06B28C 7F03675C 4600303C */ c.lt.s $f6, $f0 +/* 06B290 7F036760 00000000 */ nop +/* 06B294 7F036764 45020007 */ bc1fl .L7F036784 +/* 06B298 7F036768 26520003 */ addiu $s2, $s2, 3 +/* 06B29C 7F03676C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B2A0 7F036770 92260002 */ lbu $a2, 2($s1) +/* 06B2A4 7F036774 00409025 */ move $s2, $v0 +/* 06B2A8 7F036778 1000FB84 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2AC 7F03677C 02C28821 */ addu $s1, $s6, $v0 +/* 06B2B0 7F036780 26520003 */ addiu $s2, $s2, 3 +.L7F036784: +/* 06B2B4 7F036784 1000FB81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B2B8 7F036788 26310003 */ addiu $s1, $s1, 3 +action49_Test_if_Actor_and_Player_CCWAngle_LTV_RVL_Unused_3: +/* 06B2BC 7F03678C 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B2C0 7F036790 02E02025 */ move $a0, $s7 +/* 06B2C4 7F036794 922A0001 */ lbu $t2, 1($s1) +/* 06B2C8 7F036798 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B2CC 7F03679C 02C02025 */ move $a0, $s6 +/* 06B2D0 7F0367A0 448A4000 */ mtc1 $t2, $f8 +/* 06B2D4 7F0367A4 02402825 */ move $a1, $s2 +/* 06B2D8 7F0367A8 05410004 */ bgez $t2, .L7F0367BC +/* 06B2DC 7F0367AC 468042A0 */ cvt.s.w $f10, $f8 +/* 06B2E0 7F0367B0 44818000 */ mtc1 $at, $f16 +/* 06B2E4 7F0367B4 00000000 */ nop +/* 06B2E8 7F0367B8 46105280 */ add.s $f10, $f10, $f16 +.L7F0367BC: +/* 06B2EC 7F0367BC 461A5482 */ mul.s $f18, $f10, $f26 +/* 06B2F0 7F0367C0 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B2F4 7F0367C4 44812000 */ mtc1 $at, $f4 +/* 06B2F8 7F0367C8 00000000 */ nop +/* 06B2FC 7F0367CC 46049182 */ mul.s $f6, $f18, $f4 +/* 06B300 7F0367D0 4606003C */ c.lt.s $f0, $f6 +/* 06B304 7F0367D4 00000000 */ nop +/* 06B308 7F0367D8 45020007 */ bc1fl .L7F0367F8 +/* 06B30C 7F0367DC 26520003 */ addiu $s2, $s2, 3 +/* 06B310 7F0367E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B314 7F0367E4 92260002 */ lbu $a2, 2($s1) +/* 06B318 7F0367E8 00409025 */ move $s2, $v0 +/* 06B31C 7F0367EC 1000FB67 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B320 7F0367F0 02C28821 */ addu $s1, $s6, $v0 +/* 06B324 7F0367F4 26520003 */ addiu $s2, $s2, 3 +.L7F0367F8: +/* 06B328 7F0367F8 1000FB64 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B32C 7F0367FC 26310003 */ addiu $s1, $s1, 3 +action4A_Test_if_Actor_and_Player_CCWAngle_GTV_RVL_Unused_3: +/* 06B330 7F036800 0FC0CB5C */ jal get_angle_between_actor_cur_player +/* 06B334 7F036804 02E02025 */ move $a0, $s7 +/* 06B338 7F036808 922B0001 */ lbu $t3, 1($s1) +/* 06B33C 7F03680C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06B340 7F036810 02C02025 */ move $a0, $s6 +/* 06B344 7F036814 448B4000 */ mtc1 $t3, $f8 +/* 06B348 7F036818 02402825 */ move $a1, $s2 +/* 06B34C 7F03681C 05610004 */ bgez $t3, .L7F036830 +/* 06B350 7F036820 46804420 */ cvt.s.w $f16, $f8 +/* 06B354 7F036824 44815000 */ mtc1 $at, $f10 +/* 06B358 7F036828 00000000 */ nop +/* 06B35C 7F03682C 460A8400 */ add.s $f16, $f16, $f10 +.L7F036830: +/* 06B360 7F036830 461A8482 */ mul.s $f18, $f16, $f26 +/* 06B364 7F036834 3C013B80 */ li $at, 0x3B800000 # 0.003906 +/* 06B368 7F036838 44812000 */ mtc1 $at, $f4 +/* 06B36C 7F03683C 00000000 */ nop +/* 06B370 7F036840 46049182 */ mul.s $f6, $f18, $f4 +/* 06B374 7F036844 4600303C */ c.lt.s $f6, $f0 +/* 06B378 7F036848 00000000 */ nop +/* 06B37C 7F03684C 45020007 */ bc1fl .L7F03686C +/* 06B380 7F036850 26520003 */ addiu $s2, $s2, 3 +/* 06B384 7F036854 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B388 7F036858 92260002 */ lbu $a2, 2($s1) +/* 06B38C 7F03685C 00409025 */ move $s2, $v0 +/* 06B390 7F036860 1000FB4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B394 7F036864 02C28821 */ addu $s1, $s6, $v0 +/* 06B398 7F036868 26520003 */ addiu $s2, $s2, 3 +.L7F03686C: +/* 06B39C 7F03686C 1000FB47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3A0 7F036870 26310003 */ addiu $s1, $s1, 3 +action4B_RVL_If_In_Proximity_Of_Bond_4: +/* 06B3A4 7F036874 922C0001 */ lbu $t4, 1($s1) +/* 06B3A8 7F036878 922D0002 */ lbu $t5, 2($s1) +/* 06B3AC 7F03687C 02E02025 */ move $a0, $s7 +/* 06B3B0 7F036880 000CCA00 */ sll $t9, $t4, 8 +/* 06B3B4 7F036884 032D7025 */ or $t6, $t9, $t5 +/* 06B3B8 7F036888 448E4000 */ mtc1 $t6, $f8 +/* 06B3BC 7F03688C 00000000 */ nop +/* 06B3C0 7F036890 468042A0 */ cvt.s.w $f10, $f8 +/* 06B3C4 7F036894 46185402 */ mul.s $f16, $f10, $f24 +/* 06B3C8 7F036898 0FC0CB79 */ jal distToBond3D +/* 06B3CC 7F03689C E7B005FC */ swc1 $f16, 0x5fc($sp) +/* 06B3D0 7F0368A0 C7B205FC */ lwc1 $f18, 0x5fc($sp) +/* 06B3D4 7F0368A4 02C02025 */ move $a0, $s6 +/* 06B3D8 7F0368A8 02402825 */ move $a1, $s2 +/* 06B3DC 7F0368AC 4612003C */ c.lt.s $f0, $f18 +/* 06B3E0 7F0368B0 00000000 */ nop +/* 06B3E4 7F0368B4 45020007 */ bc1fl .L7F0368D4 +/* 06B3E8 7F0368B8 26520004 */ addiu $s2, $s2, 4 +/* 06B3EC 7F0368BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B3F0 7F0368C0 92260003 */ lbu $a2, 3($s1) +/* 06B3F4 7F0368C4 00409025 */ move $s2, $v0 +/* 06B3F8 7F0368C8 1000FB30 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B3FC 7F0368CC 02C28821 */ addu $s1, $s6, $v0 +/* 06B400 7F0368D0 26520004 */ addiu $s2, $s2, 4 +.L7F0368D4: +/* 06B404 7F0368D4 1000FB2D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B408 7F0368D8 26310004 */ addiu $s1, $s1, 4 +action4C_RVL_If_Not_In_Proximity_Of_Bond_4: +/* 06B40C 7F0368DC 922F0001 */ lbu $t7, 1($s1) +/* 06B410 7F0368E0 92290002 */ lbu $t1, 2($s1) +/* 06B414 7F0368E4 02E02025 */ move $a0, $s7 +/* 06B418 7F0368E8 000FC200 */ sll $t8, $t7, 8 +/* 06B41C 7F0368EC 03095025 */ or $t2, $t8, $t1 +/* 06B420 7F0368F0 448A2000 */ mtc1 $t2, $f4 +/* 06B424 7F0368F4 00000000 */ nop +/* 06B428 7F0368F8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B42C 7F0368FC 46183202 */ mul.s $f8, $f6, $f24 +/* 06B430 7F036900 0FC0CB79 */ jal distToBond3D +/* 06B434 7F036904 E7A805F4 */ swc1 $f8, 0x5f4($sp) +/* 06B438 7F036908 C7AA05F4 */ lwc1 $f10, 0x5f4($sp) +/* 06B43C 7F03690C 02C02025 */ move $a0, $s6 +/* 06B440 7F036910 02402825 */ move $a1, $s2 +/* 06B444 7F036914 4600503C */ c.lt.s $f10, $f0 +/* 06B448 7F036918 00000000 */ nop +/* 06B44C 7F03691C 45020007 */ bc1fl .L7F03693C +/* 06B450 7F036920 26520004 */ addiu $s2, $s2, 4 +/* 06B454 7F036924 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B458 7F036928 92260003 */ lbu $a2, 3($s1) +/* 06B45C 7F03692C 00409025 */ move $s2, $v0 +/* 06B460 7F036930 1000FB16 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B464 7F036934 02C28821 */ addu $s1, $s6, $v0 +/* 06B468 7F036938 26520004 */ addiu $s2, $s2, 4 +.L7F03693C: +/* 06B46C 7F03693C 1000FB13 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B470 7F036940 26310004 */ addiu $s1, $s1, 4 +action4D_When_Guard_In_Proximity_Of_Preset_RVL_7: +/* 06B474 7F036944 02E02025 */ move $a0, $s7 +/* 06B478 7F036948 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B47C 7F03694C 92250001 */ lbu $a1, 1($s1) +/* 06B480 7F036950 922E0002 */ lbu $t6, 2($s1) +/* 06B484 7F036954 92380003 */ lbu $t8, 3($s1) +/* 06B488 7F036958 922B0004 */ lbu $t3, 4($s1) +/* 06B48C 7F03695C 000E7A00 */ sll $t7, $t6, 8 +/* 06B490 7F036960 01F84825 */ or $t1, $t7, $t8 +/* 06B494 7F036964 44898000 */ mtc1 $t1, $f16 +/* 06B498 7F036968 92390005 */ lbu $t9, 5($s1) +/* 06B49C 7F03696C 000B6200 */ sll $t4, $t3, 8 +/* 06B4A0 7F036970 468084A0 */ cvt.s.w $f18, $f16 +/* 06B4A4 7F036974 01991825 */ or $v1, $t4, $t9 +/* 06B4A8 7F036978 306DFFFF */ andi $t5, $v1, 0xffff +/* 06B4AC 7F03697C 00402025 */ move $a0, $v0 +/* 06B4B0 7F036980 01A02825 */ move $a1, $t5 +/* 06B4B4 7F036984 46189082 */ mul.s $f2, $f18, $f24 +/* 06B4B8 7F036988 50400010 */ beql $v0, $zero, .L7F0369CC +/* 06B4BC 7F03698C 26520007 */ addiu $s2, $s2, 7 +/* 06B4C0 7F036990 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B4C4 7F036994 E7A205E4 */ swc1 $f2, 0x5e4($sp) +/* 06B4C8 7F036998 C7A205E4 */ lwc1 $f2, 0x5e4($sp) +/* 06B4CC 7F03699C 02C02025 */ move $a0, $s6 +/* 06B4D0 7F0369A0 02402825 */ move $a1, $s2 +/* 06B4D4 7F0369A4 4602003C */ c.lt.s $f0, $f2 +/* 06B4D8 7F0369A8 00000000 */ nop +/* 06B4DC 7F0369AC 45020007 */ bc1fl .L7F0369CC +/* 06B4E0 7F0369B0 26520007 */ addiu $s2, $s2, 7 +/* 06B4E4 7F0369B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B4E8 7F0369B8 92260006 */ lbu $a2, 6($s1) +/* 06B4EC 7F0369BC 00409025 */ move $s2, $v0 +/* 06B4F0 7F0369C0 1000FAF2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B4F4 7F0369C4 02C28821 */ addu $s1, $s6, $v0 +/* 06B4F8 7F0369C8 26520007 */ addiu $s2, $s2, 7 +.L7F0369CC: +/* 06B4FC 7F0369CC 1000FAEF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B500 7F0369D0 26310007 */ addiu $s1, $s1, 7 +action4E_When_Guard_Not_In_Proximity_Of_Preset_RVL_7: +/* 06B504 7F0369D4 02E02025 */ move $a0, $s7 +/* 06B508 7F0369D8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06B50C 7F0369DC 92250001 */ lbu $a1, 1($s1) +/* 06B510 7F0369E0 922D0002 */ lbu $t5, 2($s1) +/* 06B514 7F0369E4 922F0003 */ lbu $t7, 3($s1) +/* 06B518 7F0369E8 922A0004 */ lbu $t2, 4($s1) +/* 06B51C 7F0369EC 000D7200 */ sll $t6, $t5, 8 +/* 06B520 7F0369F0 01CFC025 */ or $t8, $t6, $t7 +/* 06B524 7F0369F4 44982000 */ mtc1 $t8, $f4 +/* 06B528 7F0369F8 922C0005 */ lbu $t4, 5($s1) +/* 06B52C 7F0369FC 000A5A00 */ sll $t3, $t2, 8 +/* 06B530 7F036A00 468021A0 */ cvt.s.w $f6, $f4 +/* 06B534 7F036A04 016C1825 */ or $v1, $t3, $t4 +/* 06B538 7F036A08 3079FFFF */ andi $t9, $v1, 0xffff +/* 06B53C 7F036A0C 00402025 */ move $a0, $v0 +/* 06B540 7F036A10 03202825 */ move $a1, $t9 +/* 06B544 7F036A14 46183082 */ mul.s $f2, $f6, $f24 +/* 06B548 7F036A18 50400010 */ beql $v0, $zero, .L7F036A5C +/* 06B54C 7F036A1C 26520007 */ addiu $s2, $s2, 7 +/* 06B550 7F036A20 0FC0CB92 */ jal sub_GAME_7F032E48 +/* 06B554 7F036A24 E7A205D4 */ swc1 $f2, 0x5d4($sp) +/* 06B558 7F036A28 C7A205D4 */ lwc1 $f2, 0x5d4($sp) +/* 06B55C 7F036A2C 02C02025 */ move $a0, $s6 +/* 06B560 7F036A30 02402825 */ move $a1, $s2 +/* 06B564 7F036A34 4600103C */ c.lt.s $f2, $f0 +/* 06B568 7F036A38 00000000 */ nop +/* 06B56C 7F036A3C 45020007 */ bc1fl .L7F036A5C +/* 06B570 7F036A40 26520007 */ addiu $s2, $s2, 7 +/* 06B574 7F036A44 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B578 7F036A48 92260006 */ lbu $a2, 6($s1) +/* 06B57C 7F036A4C 00409025 */ move $s2, $v0 +/* 06B580 7F036A50 1000FACE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B584 7F036A54 02C28821 */ addu $s1, $s6, $v0 +/* 06B588 7F036A58 26520007 */ addiu $s2, $s2, 7 +.L7F036A5C: +/* 06B58C 7F036A5C 1000FACB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B590 7F036A60 26310007 */ addiu $s1, $s1, 7 +action4F_If_Current_Guard_Is_In_Units_Of_Guard_ID_RVL_5: +/* 06B594 7F036A64 92290001 */ lbu $t1, 1($s1) +/* 06B598 7F036A68 922B0002 */ lbu $t3, 2($s1) +/* 06B59C 7F036A6C 02E02025 */ move $a0, $s7 +/* 06B5A0 7F036A70 00095200 */ sll $t2, $t1, 8 +/* 06B5A4 7F036A74 014B6025 */ or $t4, $t2, $t3 +/* 06B5A8 7F036A78 448C4000 */ mtc1 $t4, $f8 +/* 06B5AC 7F036A7C 00000000 */ nop +/* 06B5B0 7F036A80 468042A0 */ cvt.s.w $f10, $f8 +/* 06B5B4 7F036A84 46185402 */ mul.s $f16, $f10, $f24 +/* 06B5B8 7F036A88 E7B005CC */ swc1 $f16, 0x5cc($sp) +/* 06B5BC 7F036A8C 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B5C0 7F036A90 92250003 */ lbu $a1, 3($s1) +/* 06B5C4 7F036A94 C7B205CC */ lwc1 $f18, 0x5cc($sp) +/* 06B5C8 7F036A98 02C02025 */ move $a0, $s6 +/* 06B5CC 7F036A9C 02402825 */ move $a1, $s2 +/* 06B5D0 7F036AA0 4612003C */ c.lt.s $f0, $f18 +/* 06B5D4 7F036AA4 00000000 */ nop +/* 06B5D8 7F036AA8 45020007 */ bc1fl .L7F036AC8 +/* 06B5DC 7F036AAC 26520005 */ addiu $s2, $s2, 5 +/* 06B5E0 7F036AB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B5E4 7F036AB4 92260004 */ lbu $a2, 4($s1) +/* 06B5E8 7F036AB8 00409025 */ move $s2, $v0 +/* 06B5EC 7F036ABC 1000FAB3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5F0 7F036AC0 02C28821 */ addu $s1, $s6, $v0 +/* 06B5F4 7F036AC4 26520005 */ addiu $s2, $s2, 5 +.L7F036AC8: +/* 06B5F8 7F036AC8 1000FAB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B5FC 7F036ACC 26310005 */ addiu $s1, $s1, 5 +action50_If_Current_Guard_Is_Not_In_Units_Of_Guard_ID_RVL_5: +/* 06B600 7F036AD0 92390001 */ lbu $t9, 1($s1) +/* 06B604 7F036AD4 922E0002 */ lbu $t6, 2($s1) +/* 06B608 7F036AD8 02E02025 */ move $a0, $s7 +/* 06B60C 7F036ADC 00196A00 */ sll $t5, $t9, 8 +/* 06B610 7F036AE0 01AE7825 */ or $t7, $t5, $t6 +/* 06B614 7F036AE4 448F2000 */ mtc1 $t7, $f4 +/* 06B618 7F036AE8 00000000 */ nop +/* 06B61C 7F036AEC 468021A0 */ cvt.s.w $f6, $f4 +/* 06B620 7F036AF0 46183202 */ mul.s $f8, $f6, $f24 +/* 06B624 7F036AF4 E7A805C4 */ swc1 $f8, 0x5c4($sp) +/* 06B628 7F036AF8 0FC0CC31 */ jal get_distance_between_actor_and_actorID +/* 06B62C 7F036AFC 92250003 */ lbu $a1, 3($s1) +/* 06B630 7F036B00 C7AA05C4 */ lwc1 $f10, 0x5c4($sp) +/* 06B634 7F036B04 02C02025 */ move $a0, $s6 +/* 06B638 7F036B08 02402825 */ move $a1, $s2 +/* 06B63C 7F036B0C 4600503C */ c.lt.s $f10, $f0 +/* 06B640 7F036B10 00000000 */ nop +/* 06B644 7F036B14 45020007 */ bc1fl .L7F036B34 +/* 06B648 7F036B18 26520005 */ addiu $s2, $s2, 5 +/* 06B64C 7F036B1C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B650 7F036B20 92260004 */ lbu $a2, 4($s1) +/* 06B654 7F036B24 00409025 */ move $s2, $v0 +/* 06B658 7F036B28 1000FA98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B65C 7F036B2C 02C28821 */ addu $s1, $s6, $v0 +/* 06B660 7F036B30 26520005 */ addiu $s2, $s2, 5 +.L7F036B34: +/* 06B664 7F036B34 1000FA95 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B668 7F036B38 26310005 */ addiu $s1, $s1, 5 +action51_SetClosestGuardUnitsGuardID_Then_RVL_IfSuccess_4: +/* 06B66C 7F036B3C 92380001 */ lbu $t8, 1($s1) +/* 06B670 7F036B40 922A0002 */ lbu $t2, 2($s1) +/* 06B674 7F036B44 02E02025 */ move $a0, $s7 +/* 06B678 7F036B48 00184A00 */ sll $t1, $t8, 8 +/* 06B67C 7F036B4C 012A5825 */ or $t3, $t1, $t2 +/* 06B680 7F036B50 448B8000 */ mtc1 $t3, $f16 +/* 06B684 7F036B54 00000000 */ nop +/* 06B688 7F036B58 468084A0 */ cvt.s.w $f18, $f16 +/* 06B68C 7F036B5C 46189002 */ mul.s $f0, $f18, $f24 +/* 06B690 7F036B60 44050000 */ mfc1 $a1, $f0 +/* 06B694 7F036B64 0FC0CECE */ jal sub_GAME_7F033B38 +/* 06B698 7F036B68 00000000 */ nop +/* 06B69C 7F036B6C 10400007 */ beqz $v0, .L7F036B8C +/* 06B6A0 7F036B70 02C02025 */ move $a0, $s6 +/* 06B6A4 7F036B74 02402825 */ move $a1, $s2 +/* 06B6A8 7F036B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B6AC 7F036B7C 92260003 */ lbu $a2, 3($s1) +/* 06B6B0 7F036B80 00409025 */ move $s2, $v0 +/* 06B6B4 7F036B84 1000FA81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6B8 7F036B88 02C28821 */ addu $s1, $s6, $v0 +.L7F036B8C: +/* 06B6BC 7F036B8C 26520004 */ addiu $s2, $s2, 4 +/* 06B6C0 7F036B90 1000FA7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B6C4 7F036B94 26310004 */ addiu $s1, $s1, 4 +action52_GoIntoRVLIf_In_Units_Of_Preset_6: +/* 06B6C8 7F036B98 922F0001 */ lbu $t7, 1($s1) +/* 06B6CC 7F036B9C 92290002 */ lbu $t1, 2($s1) +/* 06B6D0 7F036BA0 922C0003 */ lbu $t4, 3($s1) +/* 06B6D4 7F036BA4 000FC200 */ sll $t8, $t7, 8 +/* 06B6D8 7F036BA8 03095025 */ or $t2, $t8, $t1 +/* 06B6DC 7F036BAC 448A2000 */ mtc1 $t2, $f4 +/* 06B6E0 7F036BB0 922D0004 */ lbu $t5, 4($s1) +/* 06B6E4 7F036BB4 000CCA00 */ sll $t9, $t4, 8 +/* 06B6E8 7F036BB8 468021A0 */ cvt.s.w $f6, $f4 +/* 06B6EC 7F036BBC 032D1025 */ or $v0, $t9, $t5 +/* 06B6F0 7F036BC0 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B6F4 7F036BC4 02E02025 */ move $a0, $s7 +/* 06B6F8 7F036BC8 46183202 */ mul.s $f8, $f6, $f24 +/* 06B6FC 7F036BCC 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B700 7F036BD0 E7A805B0 */ swc1 $f8, 0x5b0($sp) +/* 06B704 7F036BD4 C7AA05B0 */ lwc1 $f10, 0x5b0($sp) +/* 06B708 7F036BD8 02C02025 */ move $a0, $s6 +/* 06B70C 7F036BDC 02402825 */ move $a1, $s2 +/* 06B710 7F036BE0 460A003C */ c.lt.s $f0, $f10 +/* 06B714 7F036BE4 00000000 */ nop +/* 06B718 7F036BE8 45020007 */ bc1fl .L7F036C08 +/* 06B71C 7F036BEC 26520006 */ addiu $s2, $s2, 6 +/* 06B720 7F036BF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B724 7F036BF4 92260005 */ lbu $a2, 5($s1) +/* 06B728 7F036BF8 00409025 */ move $s2, $v0 +/* 06B72C 7F036BFC 1000FA63 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B730 7F036C00 02C28821 */ addu $s1, $s6, $v0 +/* 06B734 7F036C04 26520006 */ addiu $s2, $s2, 6 +.L7F036C08: +/* 06B738 7F036C08 1000FA60 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B73C 7F036C0C 26310006 */ addiu $s1, $s1, 6 +action53_GoIntoRVLIf_Not_In_Units_Of_Preset_6: +/* 06B740 7F036C10 922E0001 */ lbu $t6, 1($s1) +/* 06B744 7F036C14 92380002 */ lbu $t8, 2($s1) +/* 06B748 7F036C18 922B0003 */ lbu $t3, 3($s1) +/* 06B74C 7F036C1C 000E7A00 */ sll $t7, $t6, 8 +/* 06B750 7F036C20 01F84825 */ or $t1, $t7, $t8 +/* 06B754 7F036C24 44898000 */ mtc1 $t1, $f16 +/* 06B758 7F036C28 92390004 */ lbu $t9, 4($s1) +/* 06B75C 7F036C2C 000B6200 */ sll $t4, $t3, 8 +/* 06B760 7F036C30 468084A0 */ cvt.s.w $f18, $f16 +/* 06B764 7F036C34 01991025 */ or $v0, $t4, $t9 +/* 06B768 7F036C38 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B76C 7F036C3C 02E02025 */ move $a0, $s7 +/* 06B770 7F036C40 46189102 */ mul.s $f4, $f18, $f24 +/* 06B774 7F036C44 0FC0CC55 */ jal get_distance_between_actor_and_preset +/* 06B778 7F036C48 E7A405A4 */ swc1 $f4, 0x5a4($sp) +/* 06B77C 7F036C4C C7A605A4 */ lwc1 $f6, 0x5a4($sp) +/* 06B780 7F036C50 02C02025 */ move $a0, $s6 +/* 06B784 7F036C54 02402825 */ move $a1, $s2 +/* 06B788 7F036C58 4600303C */ c.lt.s $f6, $f0 +/* 06B78C 7F036C5C 00000000 */ nop +/* 06B790 7F036C60 45020007 */ bc1fl .L7F036C80 +/* 06B794 7F036C64 26520006 */ addiu $s2, $s2, 6 +/* 06B798 7F036C68 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B79C 7F036C6C 92260005 */ lbu $a2, 5($s1) +/* 06B7A0 7F036C70 00409025 */ move $s2, $v0 +/* 06B7A4 7F036C74 1000FA45 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7A8 7F036C78 02C28821 */ addu $s1, $s6, $v0 +/* 06B7AC 7F036C7C 26520006 */ addiu $s2, $s2, 6 +.L7F036C80: +/* 06B7B0 7F036C80 1000FA42 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7B4 7F036C84 26310006 */ addiu $s1, $s1, 6 +action54_GoIntoRVLIf_Guard_Is_At_Preset_5: +/* 06B7B8 7F036C88 922A0002 */ lbu $t2, 2($s1) +/* 06B7BC 7F036C8C 922C0003 */ lbu $t4, 3($s1) +/* 06B7C0 7F036C90 02E02025 */ move $a0, $s7 +/* 06B7C4 7F036C94 000A5A00 */ sll $t3, $t2, 8 +/* 06B7C8 7F036C98 016C1025 */ or $v0, $t3, $t4 +/* 06B7CC 7F036C9C 3046FFFF */ andi $a2, $v0, 0xffff +/* 06B7D0 7F036CA0 0FC0D0E2 */ jal check_if_actorID_is_at_preset +/* 06B7D4 7F036CA4 92250001 */ lbu $a1, 1($s1) +/* 06B7D8 7F036CA8 10400007 */ beqz $v0, .L7F036CC8 +/* 06B7DC 7F036CAC 02C02025 */ move $a0, $s6 +/* 06B7E0 7F036CB0 02402825 */ move $a1, $s2 +/* 06B7E4 7F036CB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B7E8 7F036CB8 92260004 */ lbu $a2, 4($s1) +/* 06B7EC 7F036CBC 00409025 */ move $s2, $v0 +/* 06B7F0 7F036CC0 1000FA32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B7F4 7F036CC4 02C28821 */ addu $s1, $s6, $v0 +.L7F036CC8: +/* 06B7F8 7F036CC8 26520005 */ addiu $s2, $s2, 5 +/* 06B7FC 7F036CCC 1000FA2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B800 7F036CD0 26310005 */ addiu $s1, $s1, 5 +action55_GoIntoRVLIf_Entered_Room_with_Preset_4: +/* 06B804 7F036CD4 922D0001 */ lbu $t5, 1($s1) +/* 06B808 7F036CD8 922F0002 */ lbu $t7, 2($s1) +/* 06B80C 7F036CDC 02E02025 */ move $a0, $s7 +/* 06B810 7F036CE0 000D7200 */ sll $t6, $t5, 8 +/* 06B814 7F036CE4 01CF1025 */ or $v0, $t6, $t7 +/* 06B818 7F036CE8 0FC0D113 */ jal check_if_actor_is_at_preset +/* 06B81C 7F036CEC 3045FFFF */ andi $a1, $v0, 0xffff +/* 06B820 7F036CF0 10400007 */ beqz $v0, .L7F036D10 +/* 06B824 7F036CF4 02C02025 */ move $a0, $s6 +/* 06B828 7F036CF8 02402825 */ move $a1, $s2 +/* 06B82C 7F036CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B830 7F036D00 92260003 */ lbu $a2, 3($s1) +/* 06B834 7F036D04 00409025 */ move $s2, $v0 +/* 06B838 7F036D08 1000FA20 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B83C 7F036D0C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D10: +/* 06B840 7F036D10 26520004 */ addiu $s2, $s2, 4 +/* 06B844 7F036D14 1000FA1D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B848 7F036D18 26310004 */ addiu $s1, $s1, 4 +action56_GoIntoRVLIf_16_Object_num_Collected_3: +/* 06B84C 7F036D1C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B850 7F036D20 92240001 */ lbu $a0, 1($s1) +/* 06B854 7F036D24 5040000F */ beql $v0, $zero, .L7F036D64 +/* 06B858 7F036D28 26520003 */ addiu $s2, $s2, 3 +/* 06B85C 7F036D2C 8C490010 */ lw $t1, 0x10($v0) +/* 06B860 7F036D30 5120000C */ beql $t1, $zero, .L7F036D64 +/* 06B864 7F036D34 26520003 */ addiu $s2, $s2, 3 +/* 06B868 7F036D38 0FC233F8 */ jal sub_GAME_7F08CFE0 +/* 06B86C 7F036D3C 8C440010 */ lw $a0, 0x10($v0) +/* 06B870 7F036D40 10400007 */ beqz $v0, .L7F036D60 +/* 06B874 7F036D44 02C02025 */ move $a0, $s6 +/* 06B878 7F036D48 02402825 */ move $a1, $s2 +/* 06B87C 7F036D4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B880 7F036D50 92260002 */ lbu $a2, 2($s1) +/* 06B884 7F036D54 00409025 */ move $s2, $v0 +/* 06B888 7F036D58 1000FA0C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B88C 7F036D5C 02C28821 */ addu $s1, $s6, $v0 +.L7F036D60: +/* 06B890 7F036D60 26520003 */ addiu $s2, $s2, 3 +.L7F036D64: +/* 06B894 7F036D64 1000FA09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B898 7F036D68 26310003 */ addiu $s1, $s1, 3 +action57_GoIntoRVLIf_Specified_Weapon_Deposited_3: +/* 06B89C 7F036D6C 0FC146BB */ jal check_if_item_deposited +/* 06B8A0 7F036D70 92240001 */ lbu $a0, 1($s1) +/* 06B8A4 7F036D74 10400007 */ beqz $v0, .L7F036D94 +/* 06B8A8 7F036D78 02C02025 */ move $a0, $s6 +/* 06B8AC 7F036D7C 02402825 */ move $a1, $s2 +/* 06B8B0 7F036D80 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B8B4 7F036D84 92260002 */ lbu $a2, 2($s1) +/* 06B8B8 7F036D88 00409025 */ move $s2, $v0 +/* 06B8BC 7F036D8C 1000F9FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8C0 7F036D90 02C28821 */ addu $s1, $s6, $v0 +.L7F036D94: +/* 06B8C4 7F036D94 26520003 */ addiu $s2, $s2, 3 +/* 06B8C8 7F036D98 1000F9FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B8CC 7F036D9C 26310003 */ addiu $s1, $s1, 3 +action58_GoIntoRVLIf_SpecifiedWeaponDeposited_On16Object_4: +/* 06B8D0 7F036DA0 92240002 */ lbu $a0, 2($s1) +/* 06B8D4 7F036DA4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B8D8 7F036DA8 00008025 */ move $s0, $zero +/* 06B8DC 7F036DAC 10400015 */ beqz $v0, .L7F036E04 +/* 06B8E0 7F036DB0 02402825 */ move $a1, $s2 +/* 06B8E4 7F036DB4 8C440010 */ lw $a0, 0x10($v0) +/* 06B8E8 7F036DB8 10800012 */ beqz $a0, .L7F036E04 +/* 06B8EC 7F036DBC 00000000 */ nop +/* 06B8F0 7F036DC0 8C830020 */ lw $v1, 0x20($a0) +/* 06B8F4 7F036DC4 1060000F */ beqz $v1, .L7F036E04 +/* 06B8F8 7F036DC8 00000000 */ nop +/* 06B8FC 7F036DCC 906A0000 */ lbu $t2, ($v1) +.L7F036DD0: +/* 06B900 7F036DD0 24010004 */ li $at, 4 +/* 06B904 7F036DD4 55410009 */ bnel $t2, $at, .L7F036DFC +/* 06B908 7F036DD8 8C630024 */ lw $v1, 0x24($v1) +/* 06B90C 7F036DDC 8C620004 */ lw $v0, 4($v1) +/* 06B910 7F036DE0 922B0001 */ lbu $t3, 1($s1) +/* 06B914 7F036DE4 804C0080 */ lb $t4, 0x80($v0) +/* 06B918 7F036DE8 556C0004 */ bnel $t3, $t4, .L7F036DFC +/* 06B91C 7F036DEC 8C630024 */ lw $v1, 0x24($v1) +/* 06B920 7F036DF0 10000004 */ b .L7F036E04 +/* 06B924 7F036DF4 24100001 */ li $s0, 1 +/* 06B928 7F036DF8 8C630024 */ lw $v1, 0x24($v1) +.L7F036DFC: +/* 06B92C 7F036DFC 5460FFF4 */ bnezl $v1, .L7F036DD0 +/* 06B930 7F036E00 906A0000 */ lbu $t2, ($v1) +.L7F036E04: +/* 06B934 7F036E04 12000006 */ beqz $s0, .L7F036E20 +/* 06B938 7F036E08 02C02025 */ move $a0, $s6 +/* 06B93C 7F036E0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B940 7F036E10 92260003 */ lbu $a2, 3($s1) +/* 06B944 7F036E14 00409025 */ move $s2, $v0 +/* 06B948 7F036E18 1000F9DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B94C 7F036E1C 02C28821 */ addu $s1, $s6, $v0 +.L7F036E20: +/* 06B950 7F036E20 26520004 */ addiu $s2, $s2, 4 +/* 06B954 7F036E24 1000F9D9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B958 7F036E28 26310004 */ addiu $s1, $s1, 4 +action59_GoIntoRVLIf_Specified_Weapon_Is_Out_3: +/* 06B95C 7F036E2C 0FC17674 */ jal get_item_in_hand +/* 06B960 7F036E30 00002025 */ move $a0, $zero +/* 06B964 7F036E34 92390001 */ lbu $t9, 1($s1) +/* 06B968 7F036E38 50590006 */ beql $v0, $t9, .L7F036E54 +/* 06B96C 7F036E3C 02C02025 */ move $a0, $s6 +/* 06B970 7F036E40 0FC17674 */ jal get_item_in_hand +/* 06B974 7F036E44 24040001 */ li $a0, 1 +/* 06B978 7F036E48 922D0001 */ lbu $t5, 1($s1) +/* 06B97C 7F036E4C 144D0007 */ bne $v0, $t5, .L7F036E6C +/* 06B980 7F036E50 02C02025 */ move $a0, $s6 +.L7F036E54: +/* 06B984 7F036E54 02402825 */ move $a1, $s2 +/* 06B988 7F036E58 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B98C 7F036E5C 92260002 */ lbu $a2, 2($s1) +/* 06B990 7F036E60 00409025 */ move $s2, $v0 +/* 06B994 7F036E64 1000F9C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B998 7F036E68 02C28821 */ addu $s1, $s6, $v0 +.L7F036E6C: +/* 06B99C 7F036E6C 26520003 */ addiu $s2, $s2, 3 +/* 06B9A0 7F036E70 1000F9C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9A4 7F036E74 26310003 */ addiu $s1, $s1, 3 +action5A_GoIntoRVLIf_Type_16_Object_num_Loaded_3: +/* 06B9A8 7F036E78 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9AC 7F036E7C 92240001 */ lbu $a0, 1($s1) +/* 06B9B0 7F036E80 5040000C */ beql $v0, $zero, .L7F036EB4 +/* 06B9B4 7F036E84 26520003 */ addiu $s2, $s2, 3 +/* 06B9B8 7F036E88 8C4E0010 */ lw $t6, 0x10($v0) +/* 06B9BC 7F036E8C 02C02025 */ move $a0, $s6 +/* 06B9C0 7F036E90 02402825 */ move $a1, $s2 +/* 06B9C4 7F036E94 51C00007 */ beql $t6, $zero, .L7F036EB4 +/* 06B9C8 7F036E98 26520003 */ addiu $s2, $s2, 3 +/* 06B9CC 7F036E9C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06B9D0 7F036EA0 92260002 */ lbu $a2, 2($s1) +/* 06B9D4 7F036EA4 00409025 */ move $s2, $v0 +/* 06B9D8 7F036EA8 1000F9B8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9DC 7F036EAC 02C28821 */ addu $s1, $s6, $v0 +/* 06B9E0 7F036EB0 26520003 */ addiu $s2, $s2, 3 +.L7F036EB4: +/* 06B9E4 7F036EB4 1000F9B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06B9E8 7F036EB8 26310003 */ addiu $s1, $s1, 3 +action5B_GoIntoRVLIf_16_Object_num_Not_Destroyed_3: +/* 06B9EC 7F036EBC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06B9F0 7F036EC0 92240001 */ lbu $a0, 1($s1) +/* 06B9F4 7F036EC4 1040000E */ beqz $v0, .L7F036F00 +/* 06B9F8 7F036EC8 00402025 */ move $a0, $v0 +/* 06B9FC 7F036ECC 8C4F0010 */ lw $t7, 0x10($v0) +/* 06BA00 7F036ED0 51E0000C */ beql $t7, $zero, .L7F036F04 +/* 06BA04 7F036ED4 26520003 */ addiu $s2, $s2, 3 +/* 06BA08 7F036ED8 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 06BA0C 7F036EDC 00000000 */ nop +/* 06BA10 7F036EE0 10400007 */ beqz $v0, .L7F036F00 +/* 06BA14 7F036EE4 02C02025 */ move $a0, $s6 +/* 06BA18 7F036EE8 02402825 */ move $a1, $s2 +/* 06BA1C 7F036EEC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA20 7F036EF0 92260002 */ lbu $a2, 2($s1) +/* 06BA24 7F036EF4 00409025 */ move $s2, $v0 +/* 06BA28 7F036EF8 1000F9A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA2C 7F036EFC 02C28821 */ addu $s1, $s6, $v0 +.L7F036F00: +/* 06BA30 7F036F00 26520003 */ addiu $s2, $s2, 3 +.L7F036F04: +/* 06BA34 7F036F04 1000F9A1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA38 7F036F08 26310003 */ addiu $s1, $s1, 3 +action5C_GoIntoRVLIf_16_Object_num_Activated_3: +/* 06BA3C 7F036F0C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BA40 7F036F10 92240001 */ lbu $a0, 1($s1) +/* 06BA44 7F036F14 50400014 */ beql $v0, $zero, .L7F036F68 +/* 06BA48 7F036F18 26520003 */ addiu $s2, $s2, 3 +/* 06BA4C 7F036F1C 8C580010 */ lw $t8, 0x10($v0) +/* 06BA50 7F036F20 53000011 */ beql $t8, $zero, .L7F036F68 +/* 06BA54 7F036F24 26520003 */ addiu $s2, $s2, 3 +/* 06BA58 7F036F28 8C490064 */ lw $t1, 0x64($v0) +/* 06BA5C 7F036F2C 2401BFFF */ li $at, -16385 +/* 06BA60 7F036F30 312A4000 */ andi $t2, $t1, 0x4000 +/* 06BA64 7F036F34 5140000C */ beql $t2, $zero, .L7F036F68 +/* 06BA68 7F036F38 26520003 */ addiu $s2, $s2, 3 +/* 06BA6C 7F036F3C 8C4B0064 */ lw $t3, 0x64($v0) +/* 06BA70 7F036F40 02C02025 */ move $a0, $s6 +/* 06BA74 7F036F44 02402825 */ move $a1, $s2 +/* 06BA78 7F036F48 01616024 */ and $t4, $t3, $at +/* 06BA7C 7F036F4C AC4C0064 */ sw $t4, 0x64($v0) +/* 06BA80 7F036F50 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BA84 7F036F54 92260002 */ lbu $a2, 2($s1) +/* 06BA88 7F036F58 00409025 */ move $s2, $v0 +/* 06BA8C 7F036F5C 1000F98B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA90 7F036F60 02C28821 */ addu $s1, $s6, $v0 +/* 06BA94 7F036F64 26520003 */ addiu $s2, $s2, 3 +.L7F036F68: +/* 06BA98 7F036F68 1000F988 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BA9C 7F036F6C 26310003 */ addiu $s1, $s1, 3 +action5D_GoIntoRVLIf_Gadget_Used_On_16_Object_num_3: +/* 06BAA0 7F036F70 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BAA4 7F036F74 92240001 */ lbu $a0, 1($s1) +/* 06BAA8 7F036F78 50400013 */ beql $v0, $zero, .L7F036FC8 +/* 06BAAC 7F036F7C 26520003 */ addiu $s2, $s2, 3 +/* 06BAB0 7F036F80 8C590010 */ lw $t9, 0x10($v0) +/* 06BAB4 7F036F84 53200010 */ beql $t9, $zero, .L7F036FC8 +/* 06BAB8 7F036F88 26520003 */ addiu $s2, $s2, 3 +/* 06BABC 7F036F8C 904D0002 */ lbu $t5, 2($v0) +/* 06BAC0 7F036F90 31AE0040 */ andi $t6, $t5, 0x40 +/* 06BAC4 7F036F94 51C0000C */ beql $t6, $zero, .L7F036FC8 +/* 06BAC8 7F036F98 26520003 */ addiu $s2, $s2, 3 +/* 06BACC 7F036F9C 904F0002 */ lbu $t7, 2($v0) +/* 06BAD0 7F036FA0 02C02025 */ move $a0, $s6 +/* 06BAD4 7F036FA4 02402825 */ move $a1, $s2 +/* 06BAD8 7F036FA8 31F8FFBF */ andi $t8, $t7, 0xffbf +/* 06BADC 7F036FAC A0580002 */ sb $t8, 2($v0) +/* 06BAE0 7F036FB0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06BAE4 7F036FB4 92260002 */ lbu $a2, 2($s1) +/* 06BAE8 7F036FB8 00409025 */ move $s2, $v0 +/* 06BAEC 7F036FBC 1000F973 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAF0 7F036FC0 02C28821 */ addu $s1, $s6, $v0 +/* 06BAF4 7F036FC4 26520003 */ addiu $s2, $s2, 3 +.L7F036FC8: +/* 06BAF8 7F036FC8 1000F970 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BAFC 7F036FCC 26310003 */ addiu $s1, $s1, 3 +action5E_16_Object_Activates_2: +/* 06BB00 7F036FD0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB04 7F036FD4 92240001 */ lbu $a0, 1($s1) +/* 06BB08 7F036FD8 10400014 */ beqz $v0, .L7F03702C +/* 06BB0C 7F036FDC 00402825 */ move $a1, $v0 +/* 06BB10 7F036FE0 8C440010 */ lw $a0, 0x10($v0) +/* 06BB14 7F036FE4 50800012 */ beql $a0, $zero, .L7F037030 +/* 06BB18 7F036FE8 26520002 */ addiu $s2, $s2, 2 +/* 06BB1C 7F036FEC 90830000 */ lbu $v1, ($a0) +/* 06BB20 7F036FF0 24010002 */ li $at, 2 +/* 06BB24 7F036FF4 54610007 */ bnel $v1, $at, .L7F037014 +/* 06BB28 7F036FF8 24010001 */ li $at, 1 +/* 06BB2C 7F036FFC 0FC15667 */ jal sub_GAME_7F05599C +/* 06BB30 7F037000 8C440010 */ lw $a0, 0x10($v0) +/* 06BB34 7F037004 26520002 */ addiu $s2, $s2, 2 +/* 06BB38 7F037008 1000F960 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB3C 7F03700C 26310002 */ addiu $s1, $s1, 2 +/* 06BB40 7F037010 24010001 */ li $at, 1 +.L7F037014: +/* 06BB44 7F037014 10610003 */ beq $v1, $at, .L7F037024 +/* 06BB48 7F037018 24010004 */ li $at, 4 +/* 06BB4C 7F03701C 54610004 */ bnel $v1, $at, .L7F037030 +/* 06BB50 7F037020 26520002 */ addiu $s2, $s2, 2 +.L7F037024: +/* 06BB54 7F037024 0FC13C5C */ jal sub_GAME_7F04F170 +/* 06BB58 7F037028 8CA40010 */ lw $a0, 0x10($a1) +.L7F03702C: +/* 06BB5C 7F03702C 26520002 */ addiu $s2, $s2, 2 +.L7F037030: +/* 06BB60 7F037030 1000F956 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BB64 7F037034 26310002 */ addiu $s1, $s1, 2 +action5F_16_Object_Explodes_2: +/* 06BB68 7F037038 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BB6C 7F03703C 92240001 */ lbu $a0, 1($s1) +/* 06BB70 7F037040 10400019 */ beqz $v0, .L7F0370A8 +/* 06BB74 7F037044 00408025 */ move $s0, $v0 +/* 06BB78 7F037048 8C490010 */ lw $t1, 0x10($v0) +/* 06BB7C 7F03704C 51200017 */ beql $t1, $zero, .L7F0370AC +/* 06BB80 7F037050 26520002 */ addiu $s2, $s2, 2 +/* 06BB84 7F037054 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 06BB88 7F037058 00402025 */ move $a0, $v0 +/* 06BB8C 7F03705C 54400013 */ bnezl $v0, .L7F0370AC +/* 06BB90 7F037060 26520002 */ addiu $s2, $s2, 2 +/* 06BB94 7F037064 C6080074 */ lwc1 $f8, 0x74($s0) +/* 06BB98 7F037068 C60A0070 */ lwc1 $f10, 0x70($s0) +/* 06BB9C 7F03706C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06BBA0 7F037070 44819000 */ mtc1 $at, $f18 +/* 06BBA4 7F037074 460A4401 */ sub.s $f16, $f8, $f10 +/* 06BBA8 7F037078 3C01437A */ li $at, 0x437A0000 # 250.000000 +/* 06BBAC 7F03707C 44813000 */ mtc1 $at, $f6 +/* 06BBB0 7F037080 240AFFFF */ li $t2, -1 +/* 06BBB4 7F037084 46128100 */ add.s $f4, $f16, $f18 +/* 06BBB8 7F037088 AFAA0010 */ sw $t2, 0x10($sp) +/* 06BBBC 7F03708C 02002025 */ move $a0, $s0 +/* 06BBC0 7F037090 26060058 */ addiu $a2, $s0, 0x58 +/* 06BBC4 7F037094 46062003 */ div.s $f0, $f4, $f6 +/* 06BBC8 7F037098 2407001D */ li $a3, 29 +/* 06BBCC 7F03709C 44050000 */ mfc1 $a1, $f0 +/* 06BBD0 7F0370A0 0FC13842 */ jal maybe_detonate_object +/* 06BBD4 7F0370A4 00000000 */ nop +.L7F0370A8: +/* 06BBD8 7F0370A8 26520002 */ addiu $s2, $s2, 2 +.L7F0370AC: +/* 06BBDC 7F0370AC 1000F937 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BBE0 7F0370B0 26310002 */ addiu $s1, $s1, 2 +action60_Guard_Drops_16_Object_num_2: +/* 06BBE4 7F0370B4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BBE8 7F0370B8 92240001 */ lbu $a0, 1($s1) +/* 06BBEC 7F0370BC 10400013 */ beqz $v0, .L7F03710C +/* 06BBF0 7F0370C0 00403025 */ move $a2, $v0 +/* 06BBF4 7F0370C4 8C440010 */ lw $a0, 0x10($v0) +/* 06BBF8 7F0370C8 50800011 */ beql $a0, $zero, .L7F037110 +/* 06BBFC 7F0370CC 26520002 */ addiu $s2, $s2, 2 +/* 06BC00 7F0370D0 8C83001C */ lw $v1, 0x1c($a0) +/* 06BC04 7F0370D4 5060000E */ beql $v1, $zero, .L7F037110 +/* 06BC08 7F0370D8 26520002 */ addiu $s2, $s2, 2 +/* 06BC0C 7F0370DC 906B0000 */ lbu $t3, ($v1) +/* 06BC10 7F0370E0 24010003 */ li $at, 3 +/* 06BC14 7F0370E4 5561000A */ bnel $t3, $at, .L7F037110 +/* 06BC18 7F0370E8 26520002 */ addiu $s2, $s2, 2 +/* 06BC1C 7F0370EC 8C440010 */ lw $a0, 0x10($v0) +/* 06BC20 7F0370F0 24050002 */ li $a1, 2 +/* 06BC24 7F0370F4 8C8C001C */ lw $t4, 0x1c($a0) +/* 06BC28 7F0370F8 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BC2C 7F0370FC 8D900004 */ lw $s0, 4($t4) +/* 06BC30 7F037100 96190012 */ lhu $t9, 0x12($s0) +/* 06BC34 7F037104 372D0001 */ ori $t5, $t9, 1 +/* 06BC38 7F037108 A60D0012 */ sh $t5, 0x12($s0) +.L7F03710C: +/* 06BC3C 7F03710C 26520002 */ addiu $s2, $s2, 2 +.L7F037110: +/* 06BC40 7F037110 1000F91E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC44 7F037114 26310002 */ addiu $s1, $s1, 2 +action61_Kill_Guard_num_2: +/* 06BC48 7F037118 02E02025 */ move $a0, $s7 +/* 06BC4C 7F03711C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC50 7F037120 92250001 */ lbu $a1, 1($s1) +/* 06BC54 7F037124 10400006 */ beqz $v0, .L7F037140 +/* 06BC58 7F037128 00402025 */ move $a0, $v0 +/* 06BC5C 7F03712C 8C4E0018 */ lw $t6, 0x18($v0) +/* 06BC60 7F037130 51C00004 */ beql $t6, $zero, .L7F037144 +/* 06BC64 7F037134 26520002 */ addiu $s2, $s2, 2 +/* 06BC68 7F037138 0FC086C8 */ jal sub_GAME_7F021B20 +/* 06BC6C 7F03713C 00000000 */ nop +.L7F037140: +/* 06BC70 7F037140 26520002 */ addiu $s2, $s2, 2 +.L7F037144: +/* 06BC74 7F037144 1000F911 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BC78 7F037148 26310002 */ addiu $s1, $s1, 2 +action62_Guard_num_Throws_Equipment_2: +/* 06BC7C 7F03714C 02E02025 */ move $a0, $s7 +/* 06BC80 7F037150 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BC84 7F037154 92250001 */ lbu $a1, 1($s1) +/* 06BC88 7F037158 10400015 */ beqz $v0, .L7F0371B0 +/* 06BC8C 7F03715C 00408025 */ move $s0, $v0 +/* 06BC90 7F037160 8C4F0018 */ lw $t7, 0x18($v0) +/* 06BC94 7F037164 51E00013 */ beql $t7, $zero, .L7F0371B4 +/* 06BC98 7F037168 26520002 */ addiu $s2, $s2, 2 +/* 06BC9C 7F03716C 8C580160 */ lw $t8, 0x160($v0) +/* 06BCA0 7F037170 24050001 */ li $a1, 1 +/* 06BCA4 7F037174 53000007 */ beql $t8, $zero, .L7F037194 +/* 06BCA8 7F037178 8E040164 */ lw $a0, 0x164($s0) +/* 06BCAC 7F03717C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCB0 7F037180 8C440160 */ lw $a0, 0x160($v0) +/* 06BCB4 7F037184 96090012 */ lhu $t1, 0x12($s0) +/* 06BCB8 7F037188 352A0001 */ ori $t2, $t1, 1 +/* 06BCBC 7F03718C A60A0012 */ sh $t2, 0x12($s0) +/* 06BCC0 7F037190 8E040164 */ lw $a0, 0x164($s0) +.L7F037194: +/* 06BCC4 7F037194 50800007 */ beql $a0, $zero, .L7F0371B4 +/* 06BCC8 7F037198 26520002 */ addiu $s2, $s2, 2 +/* 06BCCC 7F03719C 0FC12FF4 */ jal sub_GAME_7F04BFD0 +/* 06BCD0 7F0371A0 24050001 */ li $a1, 1 +/* 06BCD4 7F0371A4 960B0012 */ lhu $t3, 0x12($s0) +/* 06BCD8 7F0371A8 356C0001 */ ori $t4, $t3, 1 +/* 06BCDC 7F0371AC A60C0012 */ sh $t4, 0x12($s0) +.L7F0371B0: +/* 06BCE0 7F0371B0 26520002 */ addiu $s2, $s2, 2 +.L7F0371B4: +/* 06BCE4 7F0371B4 1000F8F5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BCE8 7F0371B8 26310002 */ addiu $s1, $s1, 2 +action63_Guard_Gives_Bond_16_Object_num_2: +/* 06BCEC 7F0371BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BCF0 7F0371C0 92240001 */ lbu $a0, 1($s1) +/* 06BCF4 7F0371C4 1040000A */ beqz $v0, .L7F0371F0 +/* 06BCF8 7F0371C8 00408025 */ move $s0, $v0 +/* 06BCFC 7F0371CC 8C590010 */ lw $t9, 0x10($v0) +/* 06BD00 7F0371D0 00002825 */ move $a1, $zero +/* 06BD04 7F0371D4 53200007 */ beql $t9, $zero, .L7F0371F4 +/* 06BD08 7F0371D8 26520002 */ addiu $s2, $s2, 2 +/* 06BD0C 7F0371DC 0FC14094 */ jal collect_or_interact_object +/* 06BD10 7F0371E0 8C440010 */ lw $a0, 0x10($v0) +/* 06BD14 7F0371E4 8E040010 */ lw $a0, 0x10($s0) +/* 06BD18 7F0371E8 0FC0F0AF */ jal sub_GAME_7F03C2BC +/* 06BD1C 7F0371EC 00402825 */ move $a1, $v0 +.L7F0371F0: +/* 06BD20 7F0371F0 26520002 */ addiu $s2, $s2, 2 +.L7F0371F4: +/* 06BD24 7F0371F4 1000F8E5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BD28 7F0371F8 26310002 */ addiu $s1, $s1, 2 +action64_Type_16_Object_Equipped_On_Guard_3: +/* 06BD2C 7F0371FC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BD30 7F037200 92240001 */ lbu $a0, 1($s1) +/* 06BD34 7F037204 00408025 */ move $s0, $v0 +/* 06BD38 7F037208 02E02025 */ move $a0, $s7 +/* 06BD3C 7F03720C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06BD40 7F037210 92250002 */ lbu $a1, 2($s1) +/* 06BD44 7F037214 1200001F */ beqz $s0, .L7F037294 +/* 06BD48 7F037218 00409825 */ move $s3, $v0 +/* 06BD4C 7F03721C 8E040010 */ lw $a0, 0x10($s0) +/* 06BD50 7F037220 5080001D */ beql $a0, $zero, .L7F037298 +/* 06BD54 7F037224 26520003 */ addiu $s2, $s2, 3 +/* 06BD58 7F037228 5040001B */ beql $v0, $zero, .L7F037298 +/* 06BD5C 7F03722C 26520003 */ addiu $s2, $s2, 3 +/* 06BD60 7F037230 8C8D001C */ lw $t5, 0x1c($a0) +/* 06BD64 7F037234 11A00005 */ beqz $t5, .L7F03724C +/* 06BD68 7F037238 00000000 */ nop +/* 06BD6C 7F03723C 0FC13011 */ jal sub_GAME_7F04C044 +/* 06BD70 7F037240 00000000 */ nop +/* 06BD74 7F037244 10000008 */ b .L7F037268 +/* 06BD78 7F037248 920E0003 */ lbu $t6, 3($s0) +.L7F03724C: +/* 06BD7C 7F03724C 0FC0F863 */ jal sub_GAME_7F03E18C +/* 06BD80 7F037250 00000000 */ nop +/* 06BD84 7F037254 0FC0E94E */ jal sub_GAME_7F03A538 +/* 06BD88 7F037258 8E040010 */ lw $a0, 0x10($s0) +/* 06BD8C 7F03725C 0FC0E905 */ jal propHide +/* 06BD90 7F037260 8E040010 */ lw $a0, 0x10($s0) +/* 06BD94 7F037264 920E0003 */ lbu $t6, 3($s0) +.L7F037268: +/* 06BD98 7F037268 24010008 */ li $at, 8 +/* 06BD9C 7F03726C 02002025 */ move $a0, $s0 +/* 06BDA0 7F037270 55C10006 */ bnel $t6, $at, .L7F03728C +/* 06BDA4 7F037274 8E040010 */ lw $a0, 0x10($s0) +/* 06BDA8 7F037278 0FC14787 */ jal sub_GAME_7F051E1C +/* 06BDAC 7F03727C 02602825 */ move $a1, $s3 +/* 06BDB0 7F037280 54400005 */ bnezl $v0, .L7F037298 +/* 06BDB4 7F037284 26520003 */ addiu $s2, $s2, 3 +/* 06BDB8 7F037288 8E040010 */ lw $a0, 0x10($s0) +.L7F03728C: +/* 06BDBC 7F03728C 0FC0E969 */ jal attachNewChild +/* 06BDC0 7F037290 8E650018 */ lw $a1, 0x18($s3) +.L7F037294: +/* 06BDC4 7F037294 26520003 */ addiu $s2, $s2, 3 +.L7F037298: +/* 06BDC8 7F037298 1000F8BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BDCC 7F03729C 26310003 */ addiu $s1, $s1, 3 +action65_Object_Moved_To_Preset_4: +/* 06BDD0 7F0372A0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BDD4 7F0372A4 92240001 */ lbu $a0, 1($s1) +/* 06BDD8 7F0372A8 AFA20500 */ sw $v0, 0x500($sp) +/* 06BDDC 7F0372AC 922F0002 */ lbu $t7, 2($s1) +/* 06BDE0 7F0372B0 92290003 */ lbu $t1, 3($s1) +/* 06BDE4 7F0372B4 000FC200 */ sll $t8, $t7, 8 +/* 06BDE8 7F0372B8 03091825 */ or $v1, $t8, $t1 +/* 06BDEC 7F0372BC 1040003C */ beqz $v0, .L7F0373B0 +/* 06BDF0 7F0372C0 306AFFFF */ andi $t2, $v1, 0xffff +/* 06BDF4 7F0372C4 8C4B0010 */ lw $t3, 0x10($v0) +/* 06BDF8 7F0372C8 00409825 */ move $s3, $v0 +/* 06BDFC 7F0372CC 29412710 */ slti $at, $t2, 0x2710 +/* 06BE00 7F0372D0 51600038 */ beql $t3, $zero, .L7F0373B4 +/* 06BE04 7F0372D4 26520004 */ addiu $s2, $s2, 4 +/* 06BE08 7F0372D8 1020000A */ beqz $at, .L7F037304 +/* 06BE0C 7F0372DC 01401025 */ move $v0, $t2 +/* 06BE10 7F0372E0 000A6080 */ sll $t4, $t2, 2 +/* 06BE14 7F0372E4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE18 7F0372E8 000C6080 */ sll $t4, $t4, 2 +/* 06BE1C 7F0372EC 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06BE20 7F0372F0 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06BE24 7F0372F4 018A6023 */ subu $t4, $t4, $t2 +/* 06BE28 7F0372F8 000C6080 */ sll $t4, $t4, 2 +/* 06BE2C 7F0372FC 1000000A */ b .L7F037328 +/* 06BE30 7F037300 01998021 */ addu $s0, $t4, $t9 +.L7F037304: +/* 06BE34 7F037304 3C0E8007 */ lui $t6, %hi(ptr_2xxxpresets) +/* 06BE38 7F037308 8DCE5D1C */ lw $t6, %lo(ptr_2xxxpresets)($t6) +/* 06BE3C 7F03730C 00026900 */ sll $t5, $v0, 4 +/* 06BE40 7F037310 01A26821 */ addu $t5, $t5, $v0 +/* 06BE44 7F037314 000D6880 */ sll $t5, $t5, 2 +/* 06BE48 7F037318 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06BE4C 7F03731C 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06BE50 7F037320 01AE8021 */ addu $s0, $t5, $t6 +/* 06BE54 7F037324 02018021 */ addu $s0, $s0, $at +.L7F037328: +/* 06BE58 7F037328 C6080018 */ lwc1 $f8, 0x18($s0) +/* 06BE5C 7F03732C 4405A000 */ mfc1 $a1, $f20 +/* 06BE60 7F037330 4406A000 */ mfc1 $a2, $f20 +/* 06BE64 7F037334 46004287 */ neg.s $f10, $f8 +/* 06BE68 7F037338 4407A000 */ mfc1 $a3, $f20 +/* 06BE6C 7F03733C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 06BE70 7F037340 C610001C */ lwc1 $f16, 0x1c($s0) +/* 06BE74 7F037344 27A404B8 */ addiu $a0, $sp, 0x4b8 +/* 06BE78 7F037348 46008487 */ neg.s $f18, $f16 +/* 06BE7C 7F03734C E7B20014 */ swc1 $f18, 0x14($sp) +/* 06BE80 7F037350 C6040020 */ lwc1 $f4, 0x20($s0) +/* 06BE84 7F037354 46002187 */ neg.s $f6, $f4 +/* 06BE88 7F037358 E7A60018 */ swc1 $f6, 0x18($sp) +/* 06BE8C 7F03735C C608000C */ lwc1 $f8, 0xc($s0) +/* 06BE90 7F037360 E7A8001C */ swc1 $f8, 0x1c($sp) +/* 06BE94 7F037364 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 06BE98 7F037368 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 06BE9C 7F03736C C6100014 */ lwc1 $f16, 0x14($s0) +/* 06BEA0 7F037370 0FC16642 */ jal matrix_4x4_7F059908 +/* 06BEA4 7F037374 E7B00024 */ swc1 $f16, 0x24($sp) +/* 06BEA8 7F037378 8E620014 */ lw $v0, 0x14($s3) +/* 06BEAC 7F03737C 27A504B8 */ addiu $a1, $sp, 0x4b8 +/* 06BEB0 7F037380 50400004 */ beql $v0, $zero, .L7F037394 +/* 06BEB4 7F037384 8E070028 */ lw $a3, 0x28($s0) +/* 06BEB8 7F037388 0FC1629F */ jal matrix_scalar_multiply +/* 06BEBC 7F03738C C44C0014 */ lwc1 $f12, 0x14($v0) +/* 06BEC0 7F037390 8E070028 */ lw $a3, 0x28($s0) +.L7F037394: +/* 06BEC4 7F037394 AFB00010 */ sw $s0, 0x10($sp) +/* 06BEC8 7F037398 02602025 */ move $a0, $s3 +/* 06BECC 7F03739C 02002825 */ move $a1, $s0 +/* 06BED0 7F0373A0 0FC10223 */ jal sub_GAME_7F04088C +/* 06BED4 7F0373A4 27A604B8 */ addiu $a2, $sp, 0x4b8 +/* 06BED8 7F0373A8 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 06BEDC 7F0373AC 02602025 */ move $a0, $s3 +.L7F0373B0: +/* 06BEE0 7F0373B0 26520004 */ addiu $s2, $s2, 4 +.L7F0373B4: +/* 06BEE4 7F0373B4 1000F875 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BEE8 7F0373B8 26310004 */ addiu $s1, $s1, 4 +action66_Open_Door_2: +/* 06BEEC 7F0373BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BEF0 7F0373C0 92240001 */ lbu $a0, 1($s1) +/* 06BEF4 7F0373C4 1040000B */ beqz $v0, .L7F0373F4 +/* 06BEF8 7F0373C8 00403025 */ move $a2, $v0 +/* 06BEFC 7F0373CC 8C440010 */ lw $a0, 0x10($v0) +/* 06BF00 7F0373D0 50800009 */ beql $a0, $zero, .L7F0373F8 +/* 06BF04 7F0373D4 26520002 */ addiu $s2, $s2, 2 +/* 06BF08 7F0373D8 908F0000 */ lbu $t7, ($a0) +/* 06BF0C 7F0373DC 24010002 */ li $at, 2 +/* 06BF10 7F0373E0 00402025 */ move $a0, $v0 +/* 06BF14 7F0373E4 55E10004 */ bnel $t7, $at, .L7F0373F8 +/* 06BF18 7F0373E8 26520002 */ addiu $s2, $s2, 2 +/* 06BF1C 7F0373EC 0FC15262 */ jal set_door_state +/* 06BF20 7F0373F0 24050001 */ li $a1, 1 +.L7F0373F4: +/* 06BF24 7F0373F4 26520002 */ addiu $s2, $s2, 2 +.L7F0373F8: +/* 06BF28 7F0373F8 1000F864 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF2C 7F0373FC 26310002 */ addiu $s1, $s1, 2 +action67_Close_Door_2: +/* 06BF30 7F037400 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF34 7F037404 92240001 */ lbu $a0, 1($s1) +/* 06BF38 7F037408 1040000B */ beqz $v0, .L7F037438 +/* 06BF3C 7F03740C 00403025 */ move $a2, $v0 +/* 06BF40 7F037410 8C440010 */ lw $a0, 0x10($v0) +/* 06BF44 7F037414 50800009 */ beql $a0, $zero, .L7F03743C +/* 06BF48 7F037418 26520002 */ addiu $s2, $s2, 2 +/* 06BF4C 7F03741C 90980000 */ lbu $t8, ($a0) +/* 06BF50 7F037420 24010002 */ li $at, 2 +/* 06BF54 7F037424 00402025 */ move $a0, $v0 +/* 06BF58 7F037428 57010004 */ bnel $t8, $at, .L7F03743C +/* 06BF5C 7F03742C 26520002 */ addiu $s2, $s2, 2 +/* 06BF60 7F037430 0FC15262 */ jal set_door_state +/* 06BF64 7F037434 24050002 */ li $a1, 2 +.L7F037438: +/* 06BF68 7F037438 26520002 */ addiu $s2, $s2, 2 +.L7F03743C: +/* 06BF6C 7F03743C 1000F853 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06BF70 7F037440 26310002 */ addiu $s1, $s1, 2 +action68_Check_Door_Status_RVL_If_Met_4: +/* 06BF74 7F037444 92240001 */ lbu $a0, 1($s1) +/* 06BF78 7F037448 0FC15C30 */ jal get_handle_to_tagged_object +/* 06BF7C 7F03744C 00008025 */ move $s0, $zero +/* 06BF80 7F037450 10400027 */ beqz $v0, .L7F0374F0 +/* 06BF84 7F037454 02C02025 */ move $a0, $s6 +/* 06BF88 7F037458 8C490010 */ lw $t1, 0x10($v0) +/* 06BF8C 7F03745C 11200024 */ beqz $t1, .L7F0374F0 +/* 06BF90 7F037460 00000000 */ nop +/* 06BF94 7F037464 904A0003 */ lbu $t2, 3($v0) +/* 06BF98 7F037468 24010001 */ li $at, 1 +/* 06BF9C 7F03746C 15410020 */ bne $t2, $at, .L7F0374F0 +/* 06BFA0 7F037470 00000000 */ nop +/* 06BFA4 7F037474 804300BC */ lb $v1, 0xbc($v0) +/* 06BFA8 7F037478 24010001 */ li $at, 1 +/* 06BFAC 7F03747C 1460000E */ bnez $v1, .L7F0374B8 +/* 06BFB0 7F037480 00000000 */ nop +/* 06BFB4 7F037484 C45200B4 */ lwc1 $f18, 0xb4($v0) +/* 06BFB8 7F037488 4614903E */ c.le.s $f18, $f20 +/* 06BFBC 7F03748C 00000000 */ nop +/* 06BFC0 7F037490 45020006 */ bc1fl .L7F0374AC +/* 06BFC4 7F037494 92300002 */ lbu $s0, 2($s1) +/* 06BFC8 7F037498 92300002 */ lbu $s0, 2($s1) +/* 06BFCC 7F03749C 320B0001 */ andi $t3, $s0, 1 +/* 06BFD0 7F0374A0 10000013 */ b .L7F0374F0 +/* 06BFD4 7F0374A4 000B802B */ sltu $s0, $zero, $t3 +/* 06BFD8 7F0374A8 92300002 */ lbu $s0, 2($s1) +.L7F0374AC: +/* 06BFDC 7F0374AC 32190002 */ andi $t9, $s0, 2 +/* 06BFE0 7F0374B0 1000000F */ b .L7F0374F0 +/* 06BFE4 7F0374B4 0019802B */ sltu $s0, $zero, $t9 +.L7F0374B8: +/* 06BFE8 7F0374B8 10610003 */ beq $v1, $at, .L7F0374C8 +/* 06BFEC 7F0374BC 24010003 */ li $at, 3 +/* 06BFF0 7F0374C0 54610006 */ bnel $v1, $at, .L7F0374DC +/* 06BFF4 7F0374C4 24010002 */ li $at, 2 +.L7F0374C8: +/* 06BFF8 7F0374C8 92300002 */ lbu $s0, 2($s1) +/* 06BFFC 7F0374CC 320E0008 */ andi $t6, $s0, 8 +/* 06C000 7F0374D0 10000007 */ b .L7F0374F0 +/* 06C004 7F0374D4 000E802B */ sltu $s0, $zero, $t6 +/* 06C008 7F0374D8 24010002 */ li $at, 2 +.L7F0374DC: +/* 06C00C 7F0374DC 14610004 */ bne $v1, $at, .L7F0374F0 +/* 06C010 7F0374E0 00000000 */ nop +/* 06C014 7F0374E4 92300002 */ lbu $s0, 2($s1) +/* 06C018 7F0374E8 32180004 */ andi $t8, $s0, 4 +/* 06C01C 7F0374EC 0018802B */ sltu $s0, $zero, $t8 +.L7F0374F0: +/* 06C020 7F0374F0 12000006 */ beqz $s0, .L7F03750C +/* 06C024 7F0374F4 02402825 */ move $a1, $s2 +/* 06C028 7F0374F8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C02C 7F0374FC 92260003 */ lbu $a2, 3($s1) +/* 06C030 7F037500 00409025 */ move $s2, $v0 +/* 06C034 7F037504 1000F821 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C038 7F037508 02C28821 */ addu $s1, $s6, $v0 +.L7F03750C: +/* 06C03C 7F03750C 26520004 */ addiu $s2, $s2, 4 +/* 06C040 7F037510 1000F81E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C044 7F037514 26310004 */ addiu $s1, $s1, 4 +action69_If_16_Object_Is_Valid_Door_RVL_3: +/* 06C048 7F037518 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C04C 7F03751C 92240001 */ lbu $a0, 1($s1) +/* 06C050 7F037520 50400014 */ beql $v0, $zero, .L7F037574 +/* 06C054 7F037524 26520003 */ addiu $s2, $s2, 3 +/* 06C058 7F037528 8C4A0010 */ lw $t2, 0x10($v0) +/* 06C05C 7F03752C 51400011 */ beql $t2, $zero, .L7F037574 +/* 06C060 7F037530 26520003 */ addiu $s2, $s2, 3 +/* 06C064 7F037534 904B0003 */ lbu $t3, 3($v0) +/* 06C068 7F037538 24010001 */ li $at, 1 +/* 06C06C 7F03753C 5561000D */ bnel $t3, $at, .L7F037574 +/* 06C070 7F037540 26520003 */ addiu $s2, $s2, 3 +/* 06C074 7F037544 8C4C0064 */ lw $t4, 0x64($v0) +/* 06C078 7F037548 02C02025 */ move $a0, $s6 +/* 06C07C 7F03754C 02402825 */ move $a1, $s2 +/* 06C080 7F037550 31990200 */ andi $t9, $t4, 0x200 +/* 06C084 7F037554 53200007 */ beql $t9, $zero, .L7F037574 +/* 06C088 7F037558 26520003 */ addiu $s2, $s2, 3 +/* 06C08C 7F03755C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C090 7F037560 92260002 */ lbu $a2, 2($s1) +/* 06C094 7F037564 00409025 */ move $s2, $v0 +/* 06C098 7F037568 1000F808 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C09C 7F03756C 02C28821 */ addu $s1, $s6, $v0 +/* 06C0A0 7F037570 26520003 */ addiu $s2, $s2, 3 +.L7F037574: +/* 06C0A4 7F037574 1000F805 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0A8 7F037578 26310003 */ addiu $s1, $s1, 3 +action6A_Set_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0AC 7F03757C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0B0 7F037580 92240001 */ lbu $a0, 1($s1) +/* 06C0B4 7F037584 1040000C */ beqz $v0, .L7F0375B8 +/* 06C0B8 7F037588 26520003 */ addiu $s2, $s2, 3 +/* 06C0BC 7F03758C 8C440010 */ lw $a0, 0x10($v0) +/* 06C0C0 7F037590 10800009 */ beqz $a0, .L7F0375B8 +/* 06C0C4 7F037594 00000000 */ nop +/* 06C0C8 7F037598 908D0000 */ lbu $t5, ($a0) +/* 06C0CC 7F03759C 24010002 */ li $at, 2 +/* 06C0D0 7F0375A0 15A10005 */ bne $t5, $at, .L7F0375B8 +/* 06C0D4 7F0375A4 00000000 */ nop +/* 06C0D8 7F0375A8 92230002 */ lbu $v1, 2($s1) +/* 06C0DC 7F0375AC 8C4E009C */ lw $t6, 0x9c($v0) +/* 06C0E0 7F0375B0 01C37825 */ or $t7, $t6, $v1 +/* 06C0E4 7F0375B4 AC4F009C */ sw $t7, 0x9c($v0) +.L7F0375B8: +/* 06C0E8 7F0375B8 1000F7F4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C0EC 7F0375BC 26310003 */ addiu $s1, $s1, 3 +action6B_Unset_Bits_To_Lock_On_Type_16_Door_3: +/* 06C0F0 7F0375C0 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C0F4 7F0375C4 92240001 */ lbu $a0, 1($s1) +/* 06C0F8 7F0375C8 1040000D */ beqz $v0, .L7F037600 +/* 06C0FC 7F0375CC 26520003 */ addiu $s2, $s2, 3 +/* 06C100 7F0375D0 8C440010 */ lw $a0, 0x10($v0) +/* 06C104 7F0375D4 1080000A */ beqz $a0, .L7F037600 +/* 06C108 7F0375D8 00000000 */ nop +/* 06C10C 7F0375DC 90980000 */ lbu $t8, ($a0) +/* 06C110 7F0375E0 24010002 */ li $at, 2 +/* 06C114 7F0375E4 17010006 */ bne $t8, $at, .L7F037600 +/* 06C118 7F0375E8 00000000 */ nop +/* 06C11C 7F0375EC 92230002 */ lbu $v1, 2($s1) +/* 06C120 7F0375F0 8C49009C */ lw $t1, 0x9c($v0) +/* 06C124 7F0375F4 00605027 */ not $t2, $v1 +/* 06C128 7F0375F8 012A5824 */ and $t3, $t1, $t2 +/* 06C12C 7F0375FC AC4B009C */ sw $t3, 0x9c($v0) +.L7F037600: +/* 06C130 7F037600 1000F7E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C134 7F037604 26310003 */ addiu $s1, $s1, 3 +action6C_If_Tagged_Locked_Door_16_Objects_Toggled_RVL_4: +/* 06C138 7F037608 92240001 */ lbu $a0, 1($s1) +/* 06C13C 7F03760C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06C140 7F037610 00008025 */ move $s0, $zero +/* 06C144 7F037614 1040000E */ beqz $v0, .L7F037650 +/* 06C148 7F037618 02402825 */ move $a1, $s2 +/* 06C14C 7F03761C 8C440010 */ lw $a0, 0x10($v0) +/* 06C150 7F037620 1080000B */ beqz $a0, .L7F037650 +/* 06C154 7F037624 00000000 */ nop +/* 06C158 7F037628 908C0000 */ lbu $t4, ($a0) +/* 06C15C 7F03762C 24010002 */ li $at, 2 +/* 06C160 7F037630 15810007 */ bne $t4, $at, .L7F037650 +/* 06C164 7F037634 00000000 */ nop +/* 06C168 7F037638 92230002 */ lbu $v1, 2($s1) +/* 06C16C 7F03763C 8C59009C */ lw $t9, 0x9c($v0) +/* 06C170 7F037640 03236824 */ and $t5, $t9, $v1 +/* 06C174 7F037644 146D0002 */ bne $v1, $t5, .L7F037650 +/* 06C178 7F037648 00000000 */ nop +/* 06C17C 7F03764C 24100001 */ li $s0, 1 +.L7F037650: +/* 06C180 7F037650 12000006 */ beqz $s0, .L7F03766C +/* 06C184 7F037654 02C02025 */ move $a0, $s6 +/* 06C188 7F037658 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C18C 7F03765C 92260003 */ lbu $a2, 3($s1) +/* 06C190 7F037660 00409025 */ move $s2, $v0 +/* 06C194 7F037664 1000F7C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C198 7F037668 02C28821 */ addu $s1, $s6, $v0 +.L7F03766C: +/* 06C19C 7F03766C 26520004 */ addiu $s2, $s2, 4 +/* 06C1A0 7F037670 1000F7C6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1A4 7F037674 26310004 */ addiu $s1, $s1, 4 +action6D_If_Objective_num_Complete_RVL_3: +/* 06C1A8 7F037678 0FC15C6A */ jal add_objective +/* 06C1AC 7F03767C 00000000 */ nop +/* 06C1B0 7F037680 92250001 */ lbu $a1, 1($s1) +/* 06C1B4 7F037684 00A2082A */ slt $at, $a1, $v0 +/* 06C1B8 7F037688 5020000D */ beql $at, $zero, .L7F0376C0 +/* 06C1BC 7F03768C 26520003 */ addiu $s2, $s2, 3 +/* 06C1C0 7F037690 0FC15C8E */ jal get_status_of_objective +/* 06C1C4 7F037694 00A02025 */ move $a0, $a1 +/* 06C1C8 7F037698 24010001 */ li $at, 1 +/* 06C1CC 7F03769C 14410007 */ bne $v0, $at, .L7F0376BC +/* 06C1D0 7F0376A0 02C02025 */ move $a0, $s6 +/* 06C1D4 7F0376A4 02402825 */ move $a1, $s2 +/* 06C1D8 7F0376A8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C1DC 7F0376AC 92260002 */ lbu $a2, 2($s1) +/* 06C1E0 7F0376B0 00409025 */ move $s2, $v0 +/* 06C1E4 7F0376B4 1000F7B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1E8 7F0376B8 02C28821 */ addu $s1, $s6, $v0 +.L7F0376BC: +/* 06C1EC 7F0376BC 26520003 */ addiu $s2, $s2, 3 +.L7F0376C0: +/* 06C1F0 7F0376C0 1000F7B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C1F4 7F0376C4 26310003 */ addiu $s1, $s1, 3 +action6E_If_Guard_2328_Preset_RVL_3: +/* 06C1F8 7F0376C8 02E02025 */ move $a0, $s7 +/* 06C1FC 7F0376CC 0FC0CE66 */ jal check_2328_preset_set_with_method +/* 06C200 7F0376D0 92250001 */ lbu $a1, 1($s1) +/* 06C204 7F0376D4 10400007 */ beqz $v0, .L7F0376F4 +/* 06C208 7F0376D8 02C02025 */ move $a0, $s6 +/* 06C20C 7F0376DC 02402825 */ move $a1, $s2 +/* 06C210 7F0376E0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C214 7F0376E4 92260002 */ lbu $a2, 2($s1) +/* 06C218 7F0376E8 00409025 */ move $s2, $v0 +/* 06C21C 7F0376EC 1000F7A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C220 7F0376F0 02C28821 */ addu $s1, $s6, $v0 +.L7F0376F4: +/* 06C224 7F0376F4 26520003 */ addiu $s2, $s2, 3 +/* 06C228 7F0376F8 1000F7A4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C22C 7F0376FC 26310003 */ addiu $s1, $s1, 3 +action6F_If_Guard_2328_Preset_Set_RVL_3: +/* 06C230 7F037700 02E02025 */ move $a0, $s7 +/* 06C234 7F037704 0FC0CEAB */ jal sub_GAME_7F033AAC +/* 06C238 7F037708 92250001 */ lbu $a1, 1($s1) +/* 06C23C 7F03770C 10400007 */ beqz $v0, .L7F03772C +/* 06C240 7F037710 02C02025 */ move $a0, $s6 +/* 06C244 7F037714 02402825 */ move $a1, $s2 +/* 06C248 7F037718 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C24C 7F03771C 92260002 */ lbu $a2, 2($s1) +/* 06C250 7F037720 00409025 */ move $s2, $v0 +/* 06C254 7F037724 1000F799 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C258 7F037728 02C28821 */ addu $s1, $s6, $v0 +.L7F03772C: +/* 06C25C 7F03772C 26520003 */ addiu $s2, $s2, 3 +/* 06C260 7F037730 1000F796 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C264 7F037734 26310003 */ addiu $s1, $s1, 3 +action78_Go_To_RVL_If_Guard_Shot_LTV_3: +/* 06C268 7F037738 0FC0CD69 */ jal get_times_actor_shot +/* 06C26C 7F03773C 02E02025 */ move $a0, $s7 +/* 06C270 7F037740 922E0001 */ lbu $t6, 1($s1) +/* 06C274 7F037744 02C02025 */ move $a0, $s6 +/* 06C278 7F037748 02402825 */ move $a1, $s2 +/* 06C27C 7F03774C 004E082A */ slt $at, $v0, $t6 +/* 06C280 7F037750 50200007 */ beql $at, $zero, .L7F037770 +/* 06C284 7F037754 26520003 */ addiu $s2, $s2, 3 +/* 06C288 7F037758 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C28C 7F03775C 92260002 */ lbu $a2, 2($s1) +/* 06C290 7F037760 00409025 */ move $s2, $v0 +/* 06C294 7F037764 1000F789 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C298 7F037768 02C28821 */ addu $s1, $s6, $v0 +/* 06C29C 7F03776C 26520003 */ addiu $s2, $s2, 3 +.L7F037770: +/* 06C2A0 7F037770 1000F786 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2A4 7F037774 26310003 */ addiu $s1, $s1, 3 +action79_Go_To_RVL_If_Guard_Shot_GTV_3: +/* 06C2A8 7F037778 0FC0CD69 */ jal get_times_actor_shot +/* 06C2AC 7F03777C 02E02025 */ move $a0, $s7 +/* 06C2B0 7F037780 922F0001 */ lbu $t7, 1($s1) +/* 06C2B4 7F037784 02C02025 */ move $a0, $s6 +/* 06C2B8 7F037788 02402825 */ move $a1, $s2 +/* 06C2BC 7F03778C 01E2082A */ slt $at, $t7, $v0 +/* 06C2C0 7F037790 50200007 */ beql $at, $zero, .L7F0377B0 +/* 06C2C4 7F037794 26520003 */ addiu $s2, $s2, 3 +/* 06C2C8 7F037798 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C2CC 7F03779C 92260002 */ lbu $a2, 2($s1) +/* 06C2D0 7F0377A0 00409025 */ move $s2, $v0 +/* 06C2D4 7F0377A4 1000F779 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2D8 7F0377A8 02C28821 */ addu $s1, $s6, $v0 +/* 06C2DC 7F0377AC 26520003 */ addiu $s2, $s2, 3 +.L7F0377B0: +/* 06C2E0 7F0377B0 1000F776 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C2E4 7F0377B4 26310003 */ addiu $s1, $s1, 3 +action7A_Go_To_RVL_If_Number_Near_Miss_Gunshots_LTV_3: +/* 06C2E8 7F0377B8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C2EC 7F0377BC 02E02025 */ move $a0, $s7 +/* 06C2F0 7F0377C0 92380001 */ lbu $t8, 1($s1) +/* 06C2F4 7F0377C4 02C02025 */ move $a0, $s6 +/* 06C2F8 7F0377C8 02402825 */ move $a1, $s2 +/* 06C2FC 7F0377CC 0058082A */ slt $at, $v0, $t8 +/* 06C300 7F0377D0 50200007 */ beql $at, $zero, .L7F0377F0 +/* 06C304 7F0377D4 26520003 */ addiu $s2, $s2, 3 +/* 06C308 7F0377D8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C30C 7F0377DC 92260002 */ lbu $a2, 2($s1) +/* 06C310 7F0377E0 00409025 */ move $s2, $v0 +/* 06C314 7F0377E4 1000F769 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C318 7F0377E8 02C28821 */ addu $s1, $s6, $v0 +/* 06C31C 7F0377EC 26520003 */ addiu $s2, $s2, 3 +.L7F0377F0: +/* 06C320 7F0377F0 1000F766 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C324 7F0377F4 26310003 */ addiu $s1, $s1, 3 +action7B_Go_To_RVL_If_Number_Near_Miss_Gunshots_GTV_3: +/* 06C328 7F0377F8 0FC0CD6B */ jal get_num_shots_near_actor +/* 06C32C 7F0377FC 02E02025 */ move $a0, $s7 +/* 06C330 7F037800 92290001 */ lbu $t1, 1($s1) +/* 06C334 7F037804 02C02025 */ move $a0, $s6 +/* 06C338 7F037808 02402825 */ move $a1, $s2 +/* 06C33C 7F03780C 0122082A */ slt $at, $t1, $v0 +/* 06C340 7F037810 50200007 */ beql $at, $zero, .L7F037830 +/* 06C344 7F037814 26520003 */ addiu $s2, $s2, 3 +/* 06C348 7F037818 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C34C 7F03781C 92260002 */ lbu $a2, 2($s1) +/* 06C350 7F037820 00409025 */ move $s2, $v0 +/* 06C354 7F037824 1000F759 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C358 7F037828 02C28821 */ addu $s1, $s6, $v0 +/* 06C35C 7F03782C 26520003 */ addiu $s2, $s2, 3 +.L7F037830: +/* 06C360 7F037830 1000F756 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C364 7F037834 26310003 */ addiu $s1, $s1, 3 +action7C_If_Guard_Health_Below_Value_RVL_4: +/* 06C368 7F037838 922A0002 */ lbu $t2, 2($s1) +/* 06C36C 7F03783C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C370 7F037840 448A2000 */ mtc1 $t2, $f4 +/* 06C374 7F037844 05410004 */ bgez $t2, .L7F037858 +/* 06C378 7F037848 468021A0 */ cvt.s.w $f6, $f4 +/* 06C37C 7F03784C 44814000 */ mtc1 $at, $f8 +/* 06C380 7F037850 00000000 */ nop +/* 06C384 7F037854 46083180 */ add.s $f6, $f6, $f8 +.L7F037858: +/* 06C388 7F037858 3C018005 */ lui $at, %hi(D_800528EC) +/* 06C38C 7F03785C C42A28EC */ lwc1 $f10, %lo(D_800528EC)($at) +/* 06C390 7F037860 02E02025 */ move $a0, $s7 +/* 06C394 7F037864 460A3402 */ mul.s $f16, $f6, $f10 +/* 06C398 7F037868 E7B00438 */ swc1 $f16, 0x438($sp) +/* 06C39C 7F03786C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C3A0 7F037870 92250001 */ lbu $a1, 1($s1) +/* 06C3A4 7F037874 50400011 */ beql $v0, $zero, .L7F0378BC +/* 06C3A8 7F037878 26520004 */ addiu $s2, $s2, 4 +/* 06C3AC 7F03787C C4520100 */ lwc1 $f18, 0x100($v0) +/* 06C3B0 7F037880 C44400FC */ lwc1 $f4, 0xfc($v0) +/* 06C3B4 7F037884 C7A60438 */ lwc1 $f6, 0x438($sp) +/* 06C3B8 7F037888 02C02025 */ move $a0, $s6 +/* 06C3BC 7F03788C 46049201 */ sub.s $f8, $f18, $f4 +/* 06C3C0 7F037890 02402825 */ move $a1, $s2 +/* 06C3C4 7F037894 4606403C */ c.lt.s $f8, $f6 +/* 06C3C8 7F037898 00000000 */ nop +/* 06C3CC 7F03789C 45020007 */ bc1fl .L7F0378BC +/* 06C3D0 7F0378A0 26520004 */ addiu $s2, $s2, 4 +/* 06C3D4 7F0378A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C3D8 7F0378A8 92260003 */ lbu $a2, 3($s1) +/* 06C3DC 7F0378AC 00409025 */ move $s2, $v0 +/* 06C3E0 7F0378B0 1000F736 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3E4 7F0378B4 02C28821 */ addu $s1, $s6, $v0 +/* 06C3E8 7F0378B8 26520004 */ addiu $s2, $s2, 4 +.L7F0378BC: +/* 06C3EC 7F0378BC 1000F733 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C3F0 7F0378C0 26310004 */ addiu $s1, $s1, 4 +action7D_If_Guard_Health_Above_Value_RVL_4: +/* 06C3F4 7F0378C4 922B0002 */ lbu $t3, 2($s1) +/* 06C3F8 7F0378C8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C3FC 7F0378CC 448B5000 */ mtc1 $t3, $f10 +/* 06C400 7F0378D0 05610004 */ bgez $t3, .L7F0378E4 +/* 06C404 7F0378D4 46805420 */ cvt.s.w $f16, $f10 +/* 06C408 7F0378D8 44819000 */ mtc1 $at, $f18 +/* 06C40C 7F0378DC 00000000 */ nop +/* 06C410 7F0378E0 46128400 */ add.s $f16, $f16, $f18 +.L7F0378E4: +/* 06C414 7F0378E4 3C018005 */ lui $at, %hi(D_800528F0) +/* 06C418 7F0378E8 C42428F0 */ lwc1 $f4, %lo(D_800528F0)($at) +/* 06C41C 7F0378EC 02E02025 */ move $a0, $s7 +/* 06C420 7F0378F0 46048202 */ mul.s $f8, $f16, $f4 +/* 06C424 7F0378F4 E7A8042C */ swc1 $f8, 0x42c($sp) +/* 06C428 7F0378F8 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C42C 7F0378FC 92250001 */ lbu $a1, 1($s1) +/* 06C430 7F037900 50400011 */ beql $v0, $zero, .L7F037948 +/* 06C434 7F037904 26520004 */ addiu $s2, $s2, 4 +/* 06C438 7F037908 C44A0100 */ lwc1 $f10, 0x100($v0) +/* 06C43C 7F03790C C45200FC */ lwc1 $f18, 0xfc($v0) +/* 06C440 7F037910 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 06C444 7F037914 02C02025 */ move $a0, $s6 +/* 06C448 7F037918 46125401 */ sub.s $f16, $f10, $f18 +/* 06C44C 7F03791C 02402825 */ move $a1, $s2 +/* 06C450 7F037920 4610303C */ c.lt.s $f6, $f16 +/* 06C454 7F037924 00000000 */ nop +/* 06C458 7F037928 45020007 */ bc1fl .L7F037948 +/* 06C45C 7F03792C 26520004 */ addiu $s2, $s2, 4 +/* 06C460 7F037930 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C464 7F037934 92260003 */ lbu $a2, 3($s1) +/* 06C468 7F037938 00409025 */ move $s2, $v0 +/* 06C46C 7F03793C 1000F713 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C470 7F037940 02C28821 */ addu $s1, $s6, $v0 +/* 06C474 7F037944 26520004 */ addiu $s2, $s2, 4 +.L7F037948: +/* 06C478 7F037948 1000F710 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C47C 7F03794C 26310004 */ addiu $s1, $s1, 4 +action7E_If_Guard_nums_Bitflag_01000000_Set_RVL_3: +/* 06C480 7F037950 02E02025 */ move $a0, $s7 +/* 06C484 7F037954 0FC0CC10 */ jal get_handle_for_guard_id +/* 06C488 7F037958 92250001 */ lbu $a1, 1($s1) +/* 06C48C 7F03795C 50400011 */ beql $v0, $zero, .L7F0379A4 +/* 06C490 7F037960 26520003 */ addiu $s2, $s2, 3 +/* 06C494 7F037964 8C4C0014 */ lw $t4, 0x14($v0) +/* 06C498 7F037968 2401FEFF */ li $at, -257 +/* 06C49C 7F03796C 31990100 */ andi $t9, $t4, 0x100 +/* 06C4A0 7F037970 5320000C */ beql $t9, $zero, .L7F0379A4 +/* 06C4A4 7F037974 26520003 */ addiu $s2, $s2, 3 +/* 06C4A8 7F037978 8C4D0014 */ lw $t5, 0x14($v0) +/* 06C4AC 7F03797C 02C02025 */ move $a0, $s6 +/* 06C4B0 7F037980 02402825 */ move $a1, $s2 +/* 06C4B4 7F037984 01A17024 */ and $t6, $t5, $at +/* 06C4B8 7F037988 AC4E0014 */ sw $t6, 0x14($v0) +/* 06C4BC 7F03798C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C4C0 7F037990 92260002 */ lbu $a2, 2($s1) +/* 06C4C4 7F037994 00409025 */ move $s2, $v0 +/* 06C4C8 7F037998 1000F6FC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4CC 7F03799C 02C28821 */ addu $s1, $s6, $v0 +/* 06C4D0 7F0379A0 26520003 */ addiu $s2, $s2, 3 +.L7F0379A4: +/* 06C4D4 7F0379A4 1000F6F9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C4D8 7F0379A8 26310003 */ addiu $s1, $s1, 3 +action7F_If_Health_Below_Value_RVL_3: +/* 06C4DC 7F0379AC 922F0001 */ lbu $t7, 1($s1) +/* 06C4E0 7F0379B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C4E4 7F0379B4 448F2000 */ mtc1 $t7, $f4 +/* 06C4E8 7F0379B8 05E10004 */ bgez $t7, .L7F0379CC +/* 06C4EC 7F0379BC 46802220 */ cvt.s.w $f8, $f4 +/* 06C4F0 7F0379C0 44815000 */ mtc1 $at, $f10 +/* 06C4F4 7F0379C4 00000000 */ nop +/* 06C4F8 7F0379C8 460A4200 */ add.s $f8, $f8, $f10 +.L7F0379CC: +/* 06C4FC 7F0379CC 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C500 7F0379D0 44819000 */ mtc1 $at, $f18 +/* 06C504 7F0379D4 00000000 */ nop +/* 06C508 7F0379D8 46124183 */ div.s $f6, $f8, $f18 +/* 06C50C 7F0379DC 0FC228BB */ jal get_BONDdata_watch_health +/* 06C510 7F0379E0 E7A60418 */ swc1 $f6, 0x418($sp) +/* 06C514 7F0379E4 C7B00418 */ lwc1 $f16, 0x418($sp) +/* 06C518 7F0379E8 02C02025 */ move $a0, $s6 +/* 06C51C 7F0379EC 02402825 */ move $a1, $s2 +/* 06C520 7F0379F0 4610003C */ c.lt.s $f0, $f16 +/* 06C524 7F0379F4 00000000 */ nop +/* 06C528 7F0379F8 45020007 */ bc1fl .L7F037A18 +/* 06C52C 7F0379FC 26520003 */ addiu $s2, $s2, 3 +/* 06C530 7F037A00 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C534 7F037A04 92260002 */ lbu $a2, 2($s1) +/* 06C538 7F037A08 00409025 */ move $s2, $v0 +/* 06C53C 7F037A0C 1000F6DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C540 7F037A10 02C28821 */ addu $s1, $s6, $v0 +/* 06C544 7F037A14 26520003 */ addiu $s2, $s2, 3 +.L7F037A18: +/* 06C548 7F037A18 1000F6DC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C54C 7F037A1C 26310003 */ addiu $s1, $s1, 3 +action80_If_Health_Above_Value_RVL_3: +/* 06C550 7F037A20 92380001 */ lbu $t8, 1($s1) +/* 06C554 7F037A24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06C558 7F037A28 44982000 */ mtc1 $t8, $f4 +/* 06C55C 7F037A2C 07010004 */ bgez $t8, .L7F037A40 +/* 06C560 7F037A30 468022A0 */ cvt.s.w $f10, $f4 +/* 06C564 7F037A34 44814000 */ mtc1 $at, $f8 +/* 06C568 7F037A38 00000000 */ nop +/* 06C56C 7F037A3C 46085280 */ add.s $f10, $f10, $f8 +.L7F037A40: +/* 06C570 7F037A40 3C01437F */ li $at, 0x437F0000 # 255.000000 +/* 06C574 7F037A44 44819000 */ mtc1 $at, $f18 +/* 06C578 7F037A48 00000000 */ nop +/* 06C57C 7F037A4C 46125183 */ div.s $f6, $f10, $f18 +/* 06C580 7F037A50 0FC228BB */ jal get_BONDdata_watch_health +/* 06C584 7F037A54 E7A60410 */ swc1 $f6, 0x410($sp) +/* 06C588 7F037A58 C7B00410 */ lwc1 $f16, 0x410($sp) +/* 06C58C 7F037A5C 02C02025 */ move $a0, $s6 +/* 06C590 7F037A60 02402825 */ move $a1, $s2 +/* 06C594 7F037A64 4600803C */ c.lt.s $f16, $f0 +/* 06C598 7F037A68 00000000 */ nop +/* 06C59C 7F037A6C 45020007 */ bc1fl .L7F037A8C +/* 06C5A0 7F037A70 26520003 */ addiu $s2, $s2, 3 +/* 06C5A4 7F037A74 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5A8 7F037A78 92260002 */ lbu $a2, 2($s1) +/* 06C5AC 7F037A7C 00409025 */ move $s2, $v0 +/* 06C5B0 7F037A80 1000F6C2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5B4 7F037A84 02C28821 */ addu $s1, $s6, $v0 +/* 06C5B8 7F037A88 26520003 */ addiu $s2, $s2, 3 +.L7F037A8C: +/* 06C5BC 7F037A8C 1000F6BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5C0 7F037A90 26310003 */ addiu $s1, $s1, 3 +action70_Go_Into_RVL_Difficulty_LTV_3: +/* 06C5C4 7F037A94 0FC2FF04 */ jal get_current_difficulty +/* 06C5C8 7F037A98 00000000 */ nop +/* 06C5CC 7F037A9C 92290001 */ lbu $t1, 1($s1) +/* 06C5D0 7F037AA0 02C02025 */ move $a0, $s6 +/* 06C5D4 7F037AA4 02402825 */ move $a1, $s2 +/* 06C5D8 7F037AA8 0049082A */ slt $at, $v0, $t1 +/* 06C5DC 7F037AAC 50200007 */ beql $at, $zero, .L7F037ACC +/* 06C5E0 7F037AB0 26520003 */ addiu $s2, $s2, 3 +/* 06C5E4 7F037AB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C5E8 7F037AB8 92260002 */ lbu $a2, 2($s1) +/* 06C5EC 7F037ABC 00409025 */ move $s2, $v0 +/* 06C5F0 7F037AC0 1000F6B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C5F4 7F037AC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C5F8 7F037AC8 26520003 */ addiu $s2, $s2, 3 +.L7F037ACC: +/* 06C5FC 7F037ACC 1000F6AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C600 7F037AD0 26310003 */ addiu $s1, $s1, 3 +action71_GoIntoRVLIf_Difficulty_GTV_3: +/* 06C604 7F037AD4 0FC2FF04 */ jal get_current_difficulty +/* 06C608 7F037AD8 00000000 */ nop +/* 06C60C 7F037ADC 922A0001 */ lbu $t2, 1($s1) +/* 06C610 7F037AE0 02C02025 */ move $a0, $s6 +/* 06C614 7F037AE4 02402825 */ move $a1, $s2 +/* 06C618 7F037AE8 0142082A */ slt $at, $t2, $v0 +/* 06C61C 7F037AEC 50200007 */ beql $at, $zero, .L7F037B0C +/* 06C620 7F037AF0 26520003 */ addiu $s2, $s2, 3 +/* 06C624 7F037AF4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C628 7F037AF8 92260002 */ lbu $a2, 2($s1) +/* 06C62C 7F037AFC 00409025 */ move $s2, $v0 +/* 06C630 7F037B00 1000F6A2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C634 7F037B04 02C28821 */ addu $s1, $s6, $v0 +/* 06C638 7F037B08 26520003 */ addiu $s2, $s2, 3 +.L7F037B0C: +/* 06C63C 7F037B0C 1000F69F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C640 7F037B10 26310003 */ addiu $s1, $s1, 3 +action72_Go_To_RVL_If_Time_LTV_4: +/* 06C644 7F037B14 922B0001 */ lbu $t3, 1($s1) +/* 06C648 7F037B18 92390002 */ lbu $t9, 2($s1) +/* 06C64C 7F037B1C 000B6200 */ sll $t4, $t3, 8 +/* 06C650 7F037B20 01996825 */ or $t5, $t4, $t9 +/* 06C654 7F037B24 448D2000 */ mtc1 $t5, $f4 +/* 06C658 7F037B28 00000000 */ nop +/* 06C65C 7F037B2C 46802220 */ cvt.s.w $f8, $f4 +/* 06C660 7F037B30 0FC2FF10 */ jal get_cur_mp_sec +/* 06C664 7F037B34 E7A80400 */ swc1 $f8, 0x400($sp) +/* 06C668 7F037B38 C7AA0400 */ lwc1 $f10, 0x400($sp) +/* 06C66C 7F037B3C 02C02025 */ move $a0, $s6 +/* 06C670 7F037B40 02402825 */ move $a1, $s2 +/* 06C674 7F037B44 460A003C */ c.lt.s $f0, $f10 +/* 06C678 7F037B48 00000000 */ nop +/* 06C67C 7F037B4C 45020007 */ bc1fl .L7F037B6C +/* 06C680 7F037B50 26520004 */ addiu $s2, $s2, 4 +/* 06C684 7F037B54 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C688 7F037B58 92260003 */ lbu $a2, 3($s1) +/* 06C68C 7F037B5C 00409025 */ move $s2, $v0 +/* 06C690 7F037B60 1000F68A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C694 7F037B64 02C28821 */ addu $s1, $s6, $v0 +/* 06C698 7F037B68 26520004 */ addiu $s2, $s2, 4 +.L7F037B6C: +/* 06C69C 7F037B6C 1000F687 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6A0 7F037B70 26310004 */ addiu $s1, $s1, 4 +action73_Go_To_RVL_If_Time_GTV_4: +/* 06C6A4 7F037B74 922E0001 */ lbu $t6, 1($s1) +/* 06C6A8 7F037B78 92380002 */ lbu $t8, 2($s1) +/* 06C6AC 7F037B7C 000E7A00 */ sll $t7, $t6, 8 +/* 06C6B0 7F037B80 01F84825 */ or $t1, $t7, $t8 +/* 06C6B4 7F037B84 44899000 */ mtc1 $t1, $f18 +/* 06C6B8 7F037B88 00000000 */ nop +/* 06C6BC 7F037B8C 468091A0 */ cvt.s.w $f6, $f18 +/* 06C6C0 7F037B90 0FC2FF10 */ jal get_cur_mp_sec +/* 06C6C4 7F037B94 E7A603F8 */ swc1 $f6, 0x3f8($sp) +/* 06C6C8 7F037B98 C7B003F8 */ lwc1 $f16, 0x3f8($sp) +/* 06C6CC 7F037B9C 02C02025 */ move $a0, $s6 +/* 06C6D0 7F037BA0 02402825 */ move $a1, $s2 +/* 06C6D4 7F037BA4 4600803C */ c.lt.s $f16, $f0 +/* 06C6D8 7F037BA8 00000000 */ nop +/* 06C6DC 7F037BAC 45020007 */ bc1fl .L7F037BCC +/* 06C6E0 7F037BB0 26520004 */ addiu $s2, $s2, 4 +/* 06C6E4 7F037BB4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C6E8 7F037BB8 92260003 */ lbu $a2, 3($s1) +/* 06C6EC 7F037BBC 00409025 */ move $s2, $v0 +/* 06C6F0 7F037BC0 1000F672 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C6F4 7F037BC4 02C28821 */ addu $s1, $s6, $v0 +/* 06C6F8 7F037BC8 26520004 */ addiu $s2, $s2, 4 +.L7F037BCC: +/* 06C6FC 7F037BCC 1000F66F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C700 7F037BD0 26310004 */ addiu $s1, $s1, 4 +action74_Go_To_RVL_If_Power_On_Time_LTV_4: +/* 06C704 7F037BD4 922A0001 */ lbu $t2, 1($s1) +/* 06C708 7F037BD8 922C0002 */ lbu $t4, 2($s1) +/* 06C70C 7F037BDC 000A5A00 */ sll $t3, $t2, 8 +/* 06C710 7F037BE0 016CC825 */ or $t9, $t3, $t4 +/* 06C714 7F037BE4 44992000 */ mtc1 $t9, $f4 +/* 06C718 7F037BE8 00000000 */ nop +/* 06C71C 7F037BEC 46802220 */ cvt.s.w $f8, $f4 +/* 06C720 7F037BF0 46164282 */ mul.s $f10, $f8, $f22 +/* 06C724 7F037BF4 0FC2FF13 */ jal get_cur_mp_min +/* 06C728 7F037BF8 E7AA03F0 */ swc1 $f10, 0x3f0($sp) +/* 06C72C 7F037BFC C7B203F0 */ lwc1 $f18, 0x3f0($sp) +/* 06C730 7F037C00 02C02025 */ move $a0, $s6 +/* 06C734 7F037C04 02402825 */ move $a1, $s2 +/* 06C738 7F037C08 4612003C */ c.lt.s $f0, $f18 +/* 06C73C 7F037C0C 00000000 */ nop +/* 06C740 7F037C10 45020007 */ bc1fl .L7F037C30 +/* 06C744 7F037C14 26520004 */ addiu $s2, $s2, 4 +/* 06C748 7F037C18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C74C 7F037C1C 92260003 */ lbu $a2, 3($s1) +/* 06C750 7F037C20 00409025 */ move $s2, $v0 +/* 06C754 7F037C24 1000F659 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C758 7F037C28 02C28821 */ addu $s1, $s6, $v0 +/* 06C75C 7F037C2C 26520004 */ addiu $s2, $s2, 4 +.L7F037C30: +/* 06C760 7F037C30 1000F656 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C764 7F037C34 26310004 */ addiu $s1, $s1, 4 +action75_Go_To_RVL_If_Power_On_Time_GTV_4: +/* 06C768 7F037C38 922D0001 */ lbu $t5, 1($s1) +/* 06C76C 7F037C3C 922F0002 */ lbu $t7, 2($s1) +/* 06C770 7F037C40 000D7200 */ sll $t6, $t5, 8 +/* 06C774 7F037C44 01CFC025 */ or $t8, $t6, $t7 +/* 06C778 7F037C48 44983000 */ mtc1 $t8, $f6 +/* 06C77C 7F037C4C 00000000 */ nop +/* 06C780 7F037C50 46803420 */ cvt.s.w $f16, $f6 +/* 06C784 7F037C54 46168102 */ mul.s $f4, $f16, $f22 +/* 06C788 7F037C58 0FC2FF13 */ jal get_cur_mp_min +/* 06C78C 7F037C5C E7A403E8 */ swc1 $f4, 0x3e8($sp) +/* 06C790 7F037C60 C7A803E8 */ lwc1 $f8, 0x3e8($sp) +/* 06C794 7F037C64 02C02025 */ move $a0, $s6 +/* 06C798 7F037C68 02402825 */ move $a1, $s2 +/* 06C79C 7F037C6C 4600403C */ c.lt.s $f8, $f0 +/* 06C7A0 7F037C70 00000000 */ nop +/* 06C7A4 7F037C74 45020007 */ bc1fl .L7F037C94 +/* 06C7A8 7F037C78 26520004 */ addiu $s2, $s2, 4 +/* 06C7AC 7F037C7C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7B0 7F037C80 92260003 */ lbu $a2, 3($s1) +/* 06C7B4 7F037C84 00409025 */ move $s2, $v0 +/* 06C7B8 7F037C88 1000F640 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7BC 7F037C8C 02C28821 */ addu $s1, $s6, $v0 +/* 06C7C0 7F037C90 26520004 */ addiu $s2, $s2, 4 +.L7F037C94: +/* 06C7C4 7F037C94 1000F63D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7C8 7F037C98 26310004 */ addiu $s1, $s1, 4 +action76_Go_To_RVL_If_Stage_Number_LTV_3: +/* 06C7CC 7F037C9C 0C001A57 */ jal bossGetStageNum +/* 06C7D0 7F037CA0 00000000 */ nop +/* 06C7D4 7F037CA4 92290001 */ lbu $t1, 1($s1) +/* 06C7D8 7F037CA8 02C02025 */ move $a0, $s6 +/* 06C7DC 7F037CAC 02402825 */ move $a1, $s2 +/* 06C7E0 7F037CB0 0049082A */ slt $at, $v0, $t1 +/* 06C7E4 7F037CB4 50200007 */ beql $at, $zero, .L7F037CD4 +/* 06C7E8 7F037CB8 26520003 */ addiu $s2, $s2, 3 +/* 06C7EC 7F037CBC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C7F0 7F037CC0 92260002 */ lbu $a2, 2($s1) +/* 06C7F4 7F037CC4 00409025 */ move $s2, $v0 +/* 06C7F8 7F037CC8 1000F630 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C7FC 7F037CCC 02C28821 */ addu $s1, $s6, $v0 +/* 06C800 7F037CD0 26520003 */ addiu $s2, $s2, 3 +.L7F037CD4: +/* 06C804 7F037CD4 1000F62D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C808 7F037CD8 26310003 */ addiu $s1, $s1, 3 +action77_Go_To_RVL_If_Stage_Number_GTV_3: +/* 06C80C 7F037CDC 0C001A57 */ jal bossGetStageNum +/* 06C810 7F037CE0 00000000 */ nop +/* 06C814 7F037CE4 922A0001 */ lbu $t2, 1($s1) +/* 06C818 7F037CE8 02C02025 */ move $a0, $s6 +/* 06C81C 7F037CEC 02402825 */ move $a1, $s2 +/* 06C820 7F037CF0 0142082A */ slt $at, $t2, $v0 +/* 06C824 7F037CF4 50200007 */ beql $at, $zero, .L7F037D14 +/* 06C828 7F037CF8 26520003 */ addiu $s2, $s2, 3 +/* 06C82C 7F037CFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C830 7F037D00 92260002 */ lbu $a2, 2($s1) +/* 06C834 7F037D04 00409025 */ move $s2, $v0 +/* 06C838 7F037D08 1000F620 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C83C 7F037D0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C840 7F037D10 26520003 */ addiu $s2, $s2, 3 +.L7F037D14: +/* 06C844 7F037D14 1000F61D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C848 7F037D18 26310003 */ addiu $s1, $s1, 3 +action81_Set_User_Byte_num1_2: +/* 06C84C 7F037D1C 922B0001 */ lbu $t3, 1($s1) +/* 06C850 7F037D20 26520002 */ addiu $s2, $s2, 2 +/* 06C854 7F037D24 26310002 */ addiu $s1, $s1, 2 +/* 06C858 7F037D28 1000F618 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C85C 7F037D2C A2EB010C */ sb $t3, 0x10c($s7) +action82_Add_Value_To_User_Byte_num1_Max_To_FF_2: +/* 06C860 7F037D30 92250001 */ lbu $a1, 1($s1) +/* 06C864 7F037D34 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C868 7F037D38 240C00FF */ li $t4, 255 +/* 06C86C 7F037D3C 0185C823 */ subu $t9, $t4, $a1 +/* 06C870 7F037D40 0322082A */ slt $at, $t9, $v0 +/* 06C874 7F037D44 10200006 */ beqz $at, .L7F037D60 +/* 06C878 7F037D48 00457021 */ addu $t6, $v0, $a1 +/* 06C87C 7F037D4C 240D00FF */ li $t5, 255 +/* 06C880 7F037D50 A2ED010C */ sb $t5, 0x10c($s7) +/* 06C884 7F037D54 26520002 */ addiu $s2, $s2, 2 +/* 06C888 7F037D58 1000F60C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C88C 7F037D5C 26310002 */ addiu $s1, $s1, 2 +.L7F037D60: +/* 06C890 7F037D60 A2EE010C */ sb $t6, 0x10c($s7) +/* 06C894 7F037D64 26520002 */ addiu $s2, $s2, 2 +/* 06C898 7F037D68 1000F608 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C89C 7F037D6C 26310002 */ addiu $s1, $s1, 2 +action83_Subtract_Value_To_User_Byte_num1_Min_To_0_2: +/* 06C8A0 7F037D70 92E2010C */ lbu $v0, 0x10c($s7) +/* 06C8A4 7F037D74 92250001 */ lbu $a1, 1($s1) +/* 06C8A8 7F037D78 0045082A */ slt $at, $v0, $a1 +/* 06C8AC 7F037D7C 10200005 */ beqz $at, .L7F037D94 +/* 06C8B0 7F037D80 00457823 */ subu $t7, $v0, $a1 +/* 06C8B4 7F037D84 A2E0010C */ sb $zero, 0x10c($s7) +/* 06C8B8 7F037D88 26520002 */ addiu $s2, $s2, 2 +/* 06C8BC 7F037D8C 1000F5FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8C0 7F037D90 26310002 */ addiu $s1, $s1, 2 +.L7F037D94: +/* 06C8C4 7F037D94 A2EF010C */ sb $t7, 0x10c($s7) +/* 06C8C8 7F037D98 26520002 */ addiu $s2, $s2, 2 +/* 06C8CC 7F037D9C 1000F5FB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C8D0 7F037DA0 26310002 */ addiu $s1, $s1, 2 +action84_If_Value_GreaterThan_User_Byte_num1_RVL_3: +/* 06C8D4 7F037DA4 92F8010C */ lbu $t8, 0x10c($s7) +/* 06C8D8 7F037DA8 92290001 */ lbu $t1, 1($s1) +/* 06C8DC 7F037DAC 02C02025 */ move $a0, $s6 +/* 06C8E0 7F037DB0 02402825 */ move $a1, $s2 +/* 06C8E4 7F037DB4 0309082A */ slt $at, $t8, $t1 +/* 06C8E8 7F037DB8 50200007 */ beql $at, $zero, .L7F037DD8 +/* 06C8EC 7F037DBC 26520003 */ addiu $s2, $s2, 3 +/* 06C8F0 7F037DC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C8F4 7F037DC4 92260002 */ lbu $a2, 2($s1) +/* 06C8F8 7F037DC8 00409025 */ move $s2, $v0 +/* 06C8FC 7F037DCC 1000F5EF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C900 7F037DD0 02C28821 */ addu $s1, $s6, $v0 +/* 06C904 7F037DD4 26520003 */ addiu $s2, $s2, 3 +.L7F037DD8: +/* 06C908 7F037DD8 1000F5EC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C90C 7F037DDC 26310003 */ addiu $s1, $s1, 3 +action85_If_User_Byte_num1_LessThan_Random_Value_RVL_2: +/* 06C910 7F037DE0 92EA010C */ lbu $t2, 0x10c($s7) +/* 06C914 7F037DE4 92EB010F */ lbu $t3, 0x10f($s7) +/* 06C918 7F037DE8 02C02025 */ move $a0, $s6 +/* 06C91C 7F037DEC 02402825 */ move $a1, $s2 +/* 06C920 7F037DF0 014B082A */ slt $at, $t2, $t3 +/* 06C924 7F037DF4 50200007 */ beql $at, $zero, .L7F037E14 +/* 06C928 7F037DF8 26520002 */ addiu $s2, $s2, 2 +/* 06C92C 7F037DFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C930 7F037E00 92260001 */ lbu $a2, 1($s1) +/* 06C934 7F037E04 00409025 */ move $s2, $v0 +/* 06C938 7F037E08 1000F5E0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C93C 7F037E0C 02C28821 */ addu $s1, $s6, $v0 +/* 06C940 7F037E10 26520002 */ addiu $s2, $s2, 2 +.L7F037E14: +/* 06C944 7F037E14 1000F5DD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C948 7F037E18 26310002 */ addiu $s1, $s1, 2 +action86_Set_User_Byte_num2_2: +/* 06C94C 7F037E1C 922C0001 */ lbu $t4, 1($s1) +/* 06C950 7F037E20 26520002 */ addiu $s2, $s2, 2 +/* 06C954 7F037E24 26310002 */ addiu $s1, $s1, 2 +/* 06C958 7F037E28 1000F5D8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C95C 7F037E2C A2EC010D */ sb $t4, 0x10d($s7) +action87_Add_Value_To_User_Byte_num2_Max_To_FF_2: +/* 06C960 7F037E30 92250001 */ lbu $a1, 1($s1) +/* 06C964 7F037E34 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C968 7F037E38 241900FF */ li $t9, 255 +/* 06C96C 7F037E3C 03256823 */ subu $t5, $t9, $a1 +/* 06C970 7F037E40 01A2082A */ slt $at, $t5, $v0 +/* 06C974 7F037E44 10200006 */ beqz $at, .L7F037E60 +/* 06C978 7F037E48 00457821 */ addu $t7, $v0, $a1 +/* 06C97C 7F037E4C 240E00FF */ li $t6, 255 +/* 06C980 7F037E50 A2EE010D */ sb $t6, 0x10d($s7) +/* 06C984 7F037E54 26520002 */ addiu $s2, $s2, 2 +/* 06C988 7F037E58 1000F5CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C98C 7F037E5C 26310002 */ addiu $s1, $s1, 2 +.L7F037E60: +/* 06C990 7F037E60 A2EF010D */ sb $t7, 0x10d($s7) +/* 06C994 7F037E64 26520002 */ addiu $s2, $s2, 2 +/* 06C998 7F037E68 1000F5C8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C99C 7F037E6C 26310002 */ addiu $s1, $s1, 2 +action88_Subtract_Value_To_User_Byte_num2_Min_To_0_2: +/* 06C9A0 7F037E70 92E2010D */ lbu $v0, 0x10d($s7) +/* 06C9A4 7F037E74 92250001 */ lbu $a1, 1($s1) +/* 06C9A8 7F037E78 0045082A */ slt $at, $v0, $a1 +/* 06C9AC 7F037E7C 10200005 */ beqz $at, .L7F037E94 +/* 06C9B0 7F037E80 0045C023 */ subu $t8, $v0, $a1 +/* 06C9B4 7F037E84 A2E0010D */ sb $zero, 0x10d($s7) +/* 06C9B8 7F037E88 26520002 */ addiu $s2, $s2, 2 +/* 06C9BC 7F037E8C 1000F5BF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9C0 7F037E90 26310002 */ addiu $s1, $s1, 2 +.L7F037E94: +/* 06C9C4 7F037E94 A2F8010D */ sb $t8, 0x10d($s7) +/* 06C9C8 7F037E98 26520002 */ addiu $s2, $s2, 2 +/* 06C9CC 7F037E9C 1000F5BB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06C9D0 7F037EA0 26310002 */ addiu $s1, $s1, 2 +action89_If_Value_GreaterThan_User_Byte_num2_RVL_3: +/* 06C9D4 7F037EA4 92E9010D */ lbu $t1, 0x10d($s7) +/* 06C9D8 7F037EA8 922A0001 */ lbu $t2, 1($s1) +/* 06C9DC 7F037EAC 02C02025 */ move $a0, $s6 +/* 06C9E0 7F037EB0 02402825 */ move $a1, $s2 +/* 06C9E4 7F037EB4 012A082A */ slt $at, $t1, $t2 +/* 06C9E8 7F037EB8 50200007 */ beql $at, $zero, .L7F037ED8 +/* 06C9EC 7F037EBC 26520003 */ addiu $s2, $s2, 3 +/* 06C9F0 7F037EC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06C9F4 7F037EC4 92260002 */ lbu $a2, 2($s1) +/* 06C9F8 7F037EC8 00409025 */ move $s2, $v0 +/* 06C9FC 7F037ECC 1000F5AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA00 7F037ED0 02C28821 */ addu $s1, $s6, $v0 +/* 06CA04 7F037ED4 26520003 */ addiu $s2, $s2, 3 +.L7F037ED8: +/* 06CA08 7F037ED8 1000F5AC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA0C 7F037EDC 26310003 */ addiu $s1, $s1, 3 +action8A_If_User_Byte_num2_LessThan_Random_Value_RVL_2: +/* 06CA10 7F037EE0 92EB010D */ lbu $t3, 0x10d($s7) +/* 06CA14 7F037EE4 92EC010F */ lbu $t4, 0x10f($s7) +/* 06CA18 7F037EE8 02C02025 */ move $a0, $s6 +/* 06CA1C 7F037EEC 02402825 */ move $a1, $s2 +/* 06CA20 7F037EF0 016C082A */ slt $at, $t3, $t4 +/* 06CA24 7F037EF4 50200007 */ beql $at, $zero, .L7F037F14 +/* 06CA28 7F037EF8 26520002 */ addiu $s2, $s2, 2 +/* 06CA2C 7F037EFC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CA30 7F037F00 92260001 */ lbu $a2, 1($s1) +/* 06CA34 7F037F04 00409025 */ move $s2, $v0 +/* 06CA38 7F037F08 1000F5A0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA3C 7F037F0C 02C28821 */ addu $s1, $s6, $v0 +/* 06CA40 7F037F10 26520002 */ addiu $s2, $s2, 2 +.L7F037F14: +/* 06CA44 7F037F14 1000F59D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA48 7F037F18 26310002 */ addiu $s1, $s1, 2 +action8B_Set_Guard_Hearing_Distance_3: +/* 06CA4C 7F037F1C 92390001 */ lbu $t9, 1($s1) +/* 06CA50 7F037F20 922E0002 */ lbu $t6, 2($s1) +/* 06CA54 7F037F24 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 06CA58 7F037F28 00196A00 */ sll $t5, $t9, 8 +/* 06CA5C 7F037F2C 01AE7825 */ or $t7, $t5, $t6 +/* 06CA60 7F037F30 448F5000 */ mtc1 $t7, $f10 +/* 06CA64 7F037F34 44813000 */ mtc1 $at, $f6 +/* 06CA68 7F037F38 26520003 */ addiu $s2, $s2, 3 +/* 06CA6C 7F037F3C 468054A0 */ cvt.s.w $f18, $f10 +/* 06CA70 7F037F40 26310003 */ addiu $s1, $s1, 3 +/* 06CA74 7F037F44 46069003 */ div.s $f0, $f18, $f6 +/* 06CA78 7F037F48 1000F590 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CA7C 7F037F4C E6E000EC */ swc1 $f0, 0xec($s7) +action8C_Set_Guard_Visible_Distance_2: +/* 06CA80 7F037F50 92380001 */ lbu $t8, 1($s1) +/* 06CA84 7F037F54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06CA88 7F037F58 26520002 */ addiu $s2, $s2, 2 +/* 06CA8C 7F037F5C 44988000 */ mtc1 $t8, $f16 +/* 06CA90 7F037F60 26310002 */ addiu $s1, $s1, 2 +/* 06CA94 7F037F64 07010004 */ bgez $t8, .L7F037F78 +/* 06CA98 7F037F68 46808120 */ cvt.s.w $f4, $f16 +/* 06CA9C 7F037F6C 44814000 */ mtc1 $at, $f8 +/* 06CAA0 7F037F70 00000000 */ nop +/* 06CAA4 7F037F74 46082100 */ add.s $f4, $f4, $f8 +.L7F037F78: +/* 06CAA8 7F037F78 1000F584 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAAC 7F037F7C E6E400D0 */ swc1 $f4, 0xd0($s7) +action8D_Set_Guard_Grenade_Probability_2: +/* 06CAB0 7F037F80 92290001 */ lbu $t1, 1($s1) +/* 06CAB4 7F037F84 26520002 */ addiu $s2, $s2, 2 +/* 06CAB8 7F037F88 26310002 */ addiu $s1, $s1, 2 +/* 06CABC 7F037F8C 1000F57F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAC0 7F037F90 A2E90010 */ sb $t1, 0x10($s7) +action8E_Set_Guard_ID_2: +/* 06CAC4 7F037F94 922A0001 */ lbu $t2, 1($s1) +/* 06CAC8 7F037F98 26520002 */ addiu $s2, $s2, 2 +/* 06CACC 7F037F9C 26310002 */ addiu $s1, $s1, 2 +/* 06CAD0 7F037FA0 1000F57A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CAD4 7F037FA4 A6EA0000 */ sh $t2, ($s7) +action8F_Set_Guard_Health_3: +/* 06CAD8 7F037FA8 922B0001 */ lbu $t3, 1($s1) +/* 06CADC 7F037FAC 92390002 */ lbu $t9, 2($s1) +/* 06CAE0 7F037FB0 3C018005 */ lui $at, %hi(D_800528F4) +/* 06CAE4 7F037FB4 000B6200 */ sll $t4, $t3, 8 +/* 06CAE8 7F037FB8 01996825 */ or $t5, $t4, $t9 +/* 06CAEC 7F037FBC 448D5000 */ mtc1 $t5, $f10 +/* 06CAF0 7F037FC0 C42628F4 */ lwc1 $f6, %lo(D_800528F4)($at) +/* 06CAF4 7F037FC4 02E02025 */ move $a0, $s7 +/* 06CAF8 7F037FC8 468054A0 */ cvt.s.w $f18, $f10 +/* 06CAFC 7F037FCC 46069002 */ mul.s $f0, $f18, $f6 +/* 06CB00 7F037FD0 44050000 */ mfc1 $a1, $f0 +/* 06CB04 7F037FD4 0FC08006 */ jal chrSetMaxDamage +/* 06CB08 7F037FD8 00000000 */ nop +/* 06CB0C 7F037FDC 26520003 */ addiu $s2, $s2, 3 +/* 06CB10 7F037FE0 1000F56A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB14 7F037FE4 26310003 */ addiu $s1, $s1, 3 +action90_Set_Guard_Armor_Amount_3: +/* 06CB18 7F037FE8 922E0001 */ lbu $t6, 1($s1) +/* 06CB1C 7F037FEC 92380002 */ lbu $t8, 2($s1) +/* 06CB20 7F037FF0 3C018005 */ lui $at, %hi(D_800528F8) +/* 06CB24 7F037FF4 000E7A00 */ sll $t7, $t6, 8 +/* 06CB28 7F037FF8 01F84825 */ or $t1, $t7, $t8 +/* 06CB2C 7F037FFC 44898000 */ mtc1 $t1, $f16 +/* 06CB30 7F038000 C42428F8 */ lwc1 $f4, %lo(D_800528F8)($at) +/* 06CB34 7F038004 02E02025 */ move $a0, $s7 +/* 06CB38 7F038008 46808220 */ cvt.s.w $f8, $f16 +/* 06CB3C 7F03800C 46044002 */ mul.s $f0, $f8, $f4 +/* 06CB40 7F038010 44050000 */ mfc1 $a1, $f0 +/* 06CB44 7F038014 0FC08015 */ jal chrAddHealth +/* 06CB48 7F038018 00000000 */ nop +/* 06CB4C 7F03801C 26520003 */ addiu $s2, $s2, 3 +/* 06CB50 7F038020 1000F55A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB54 7F038024 26310003 */ addiu $s1, $s1, 3 +action91_Set_Character_Reaction_Speed_2: +/* 06CB58 7F038028 822A0001 */ lb $t2, 1($s1) +/* 06CB5C 7F03802C 26520002 */ addiu $s2, $s2, 2 +/* 06CB60 7F038030 26310002 */ addiu $s1, $s1, 2 +/* 06CB64 7F038034 1000F555 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB68 7F038038 A2EA0003 */ sb $t2, 3($s7) +action92_Set_Character_Injury_Recovery_Speed_2: +/* 06CB6C 7F03803C 822B0001 */ lb $t3, 1($s1) +/* 06CB70 7F038040 26520002 */ addiu $s2, $s2, 2 +/* 06CB74 7F038044 26310002 */ addiu $s1, $s1, 2 +/* 06CB78 7F038048 1000F550 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB7C 7F03804C A2EB000D */ sb $t3, 0xd($s7) +action93_Set_Character_Accuracy_2: +/* 06CB80 7F038050 822C0001 */ lb $t4, 1($s1) +/* 06CB84 7F038054 26520002 */ addiu $s2, $s2, 2 +/* 06CB88 7F038058 26310002 */ addiu $s1, $s1, 2 +/* 06CB8C 7F03805C 1000F54B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CB90 7F038060 A2EC0002 */ sb $t4, 2($s7) +action94_Mask_Guard_Type_With_Value_2: +/* 06CB94 7F038064 02E02025 */ move $a0, $s7 +/* 06CB98 7F038068 0FC0CC86 */ jal sub_GAME_7F033218 +/* 06CB9C 7F03806C 92250001 */ lbu $a1, 1($s1) +/* 06CBA0 7F038070 26520002 */ addiu $s2, $s2, 2 +/* 06CBA4 7F038074 1000F545 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBA8 7F038078 26310002 */ addiu $s1, $s1, 2 +action95_Unmask_Guard_Type_With_Value_2: +/* 06CBAC 7F03807C 02E02025 */ move $a0, $s7 +/* 06CBB0 7F038080 0FC0CC8B */ jal sub_GAME_7F03322C +/* 06CBB4 7F038084 92250001 */ lbu $a1, 1($s1) +/* 06CBB8 7F038088 26520002 */ addiu $s2, $s2, 2 +/* 06CBBC 7F03808C 1000F53F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBC0 7F038090 26310002 */ addiu $s1, $s1, 2 +action96_If_Guard_Type_Value_Is_Set_RVL_3: +/* 06CBC4 7F038094 02E02025 */ move $a0, $s7 +/* 06CBC8 7F038098 0FC0CC91 */ jal sub_GAME_7F033244 +/* 06CBCC 7F03809C 92250001 */ lbu $a1, 1($s1) +/* 06CBD0 7F0380A0 10400007 */ beqz $v0, .L7F0380C0 +/* 06CBD4 7F0380A4 02C02025 */ move $a0, $s6 +/* 06CBD8 7F0380A8 02402825 */ move $a1, $s2 +/* 06CBDC 7F0380AC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CBE0 7F0380B0 92260002 */ lbu $a2, 2($s1) +/* 06CBE4 7F0380B4 00409025 */ move $s2, $v0 +/* 06CBE8 7F0380B8 1000F534 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBEC 7F0380BC 02C28821 */ addu $s1, $s6, $v0 +.L7F0380C0: +/* 06CBF0 7F0380C0 26520003 */ addiu $s2, $s2, 3 +/* 06CBF4 7F0380C4 1000F531 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CBF8 7F0380C8 26310003 */ addiu $s1, $s1, 3 +action97_Mask_Guard_Type_Flags_With_Value_3: +/* 06CBFC 7F0380CC 02E02025 */ move $a0, $s7 +/* 06CC00 7F0380D0 92250001 */ lbu $a1, 1($s1) +/* 06CC04 7F0380D4 0FC0CC98 */ jal sub_GAME_7F033260 +/* 06CC08 7F0380D8 92260002 */ lbu $a2, 2($s1) +/* 06CC0C 7F0380DC 26520003 */ addiu $s2, $s2, 3 +/* 06CC10 7F0380E0 1000F52A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC14 7F0380E4 26310003 */ addiu $s1, $s1, 3 +action98_Unmask_Guard_Type_Flags_With_Value_3: +/* 06CC18 7F0380E8 02E02025 */ move $a0, $s7 +/* 06CC1C 7F0380EC 92250001 */ lbu $a1, 1($s1) +/* 06CC20 7F0380F0 0FC0CCA4 */ jal sub_GAME_7F033290 +/* 06CC24 7F0380F4 92260002 */ lbu $a2, 2($s1) +/* 06CC28 7F0380F8 26520003 */ addiu $s2, $s2, 3 +/* 06CC2C 7F0380FC 1000F523 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC30 7F038100 26310003 */ addiu $s1, $s1, 3 +action99_If_Guard_Type_Flags_Set_RVL_4: +/* 06CC34 7F038104 02E02025 */ move $a0, $s7 +/* 06CC38 7F038108 92250001 */ lbu $a1, 1($s1) +/* 06CC3C 7F03810C 0FC0CCB0 */ jal sub_GAME_7F0332C0 +/* 06CC40 7F038110 92260002 */ lbu $a2, 2($s1) +/* 06CC44 7F038114 10400007 */ beqz $v0, .L7F038134 +/* 06CC48 7F038118 02C02025 */ move $a0, $s6 +/* 06CC4C 7F03811C 02402825 */ move $a1, $s2 +/* 06CC50 7F038120 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CC54 7F038124 92260003 */ lbu $a2, 3($s1) +/* 06CC58 7F038128 00409025 */ move $s2, $v0 +/* 06CC5C 7F03812C 1000F517 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC60 7F038130 02C28821 */ addu $s1, $s6, $v0 +.L7F038134: +/* 06CC64 7F038134 26520004 */ addiu $s2, $s2, 4 +/* 06CC68 7F038138 1000F514 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CC6C 7F03813C 26310004 */ addiu $s1, $s1, 4 +action9A_Set_Objective_Bits_5: +/* 06CC70 7F038140 92390001 */ lbu $t9, 1($s1) +/* 06CC74 7F038144 922E0002 */ lbu $t6, 2($s1) +/* 06CC78 7F038148 92290003 */ lbu $t1, 3($s1) +/* 06CC7C 7F03814C 00196E00 */ sll $t5, $t9, 0x18 +/* 06CC80 7F038150 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CC84 7F038154 922C0004 */ lbu $t4, 4($s1) +/* 06CC88 7F038158 01AFC025 */ or $t8, $t5, $t7 +/* 06CC8C 7F03815C 00095200 */ sll $t2, $t1, 8 +/* 06CC90 7F038160 030A5825 */ or $t3, $t8, $t2 +/* 06CC94 7F038164 02E02025 */ move $a0, $s7 +/* 06CC98 7F038168 0FC0CCBF */ jal toggle_objective_bitflags +/* 06CC9C 7F03816C 016C2825 */ or $a1, $t3, $t4 +/* 06CCA0 7F038170 26520005 */ addiu $s2, $s2, 5 +/* 06CCA4 7F038174 1000F505 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCA8 7F038178 26310005 */ addiu $s1, $s1, 5 +action9B_Unset_Objective_Value_5: +/* 06CCAC 7F03817C 92390001 */ lbu $t9, 1($s1) +/* 06CCB0 7F038180 922D0002 */ lbu $t5, 2($s1) +/* 06CCB4 7F038184 92380003 */ lbu $t8, 3($s1) +/* 06CCB8 7F038188 00197600 */ sll $t6, $t9, 0x18 +/* 06CCBC 7F03818C 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CCC0 7F038190 922C0004 */ lbu $t4, 4($s1) +/* 06CCC4 7F038194 01CF4825 */ or $t1, $t6, $t7 +/* 06CCC8 7F038198 00185200 */ sll $t2, $t8, 8 +/* 06CCCC 7F03819C 012A5825 */ or $t3, $t1, $t2 +/* 06CCD0 7F0381A0 02E02025 */ move $a0, $s7 +/* 06CCD4 7F0381A4 0FC0CCC6 */ jal untoggle_objective_bitflags +/* 06CCD8 7F0381A8 016C2825 */ or $a1, $t3, $t4 +/* 06CCDC 7F0381AC 26520005 */ addiu $s2, $s2, 5 +/* 06CCE0 7F0381B0 1000F4F6 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CCE4 7F0381B4 26310005 */ addiu $s1, $s1, 5 +action9C_Check_If_Objective_Value_Return_Loop_If_So_6: +/* 06CCE8 7F0381B8 92390001 */ lbu $t9, 1($s1) +/* 06CCEC 7F0381BC 922E0002 */ lbu $t6, 2($s1) +/* 06CCF0 7F0381C0 92290003 */ lbu $t1, 3($s1) +/* 06CCF4 7F0381C4 00196E00 */ sll $t5, $t9, 0x18 +/* 06CCF8 7F0381C8 000E7C00 */ sll $t7, $t6, 0x10 +/* 06CCFC 7F0381CC 922C0004 */ lbu $t4, 4($s1) +/* 06CD00 7F0381D0 01AFC025 */ or $t8, $t5, $t7 +/* 06CD04 7F0381D4 00095200 */ sll $t2, $t1, 8 +/* 06CD08 7F0381D8 030A5825 */ or $t3, $t8, $t2 +/* 06CD0C 7F0381DC 02E02025 */ move $a0, $s7 +/* 06CD10 7F0381E0 0FC0CCCE */ jal check_if_objective_bitflags_set +/* 06CD14 7F0381E4 016C2825 */ or $a1, $t3, $t4 +/* 06CD18 7F0381E8 10400007 */ beqz $v0, .L7F038208 +/* 06CD1C 7F0381EC 02C02025 */ move $a0, $s6 +/* 06CD20 7F0381F0 02402825 */ move $a1, $s2 +/* 06CD24 7F0381F4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CD28 7F0381F8 92260005 */ lbu $a2, 5($s1) +/* 06CD2C 7F0381FC 00409025 */ move $s2, $v0 +/* 06CD30 7F038200 1000F4E2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD34 7F038204 02C28821 */ addu $s1, $s6, $v0 +.L7F038208: +/* 06CD38 7F038208 26520006 */ addiu $s2, $s2, 6 +/* 06CD3C 7F03820C 1000F4DF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD40 7F038210 26310006 */ addiu $s1, $s1, 6 +action9D_Set_Guard_Bit_Tags_5: +/* 06CD44 7F038214 92390001 */ lbu $t9, 1($s1) +/* 06CD48 7F038218 922D0002 */ lbu $t5, 2($s1) +/* 06CD4C 7F03821C 92380003 */ lbu $t8, 3($s1) +/* 06CD50 7F038220 00197600 */ sll $t6, $t9, 0x18 +/* 06CD54 7F038224 922C0004 */ lbu $t4, 4($s1) +/* 06CD58 7F038228 000D7C00 */ sll $t7, $t5, 0x10 +/* 06CD5C 7F03822C 8EF90014 */ lw $t9, 0x14($s7) +/* 06CD60 7F038230 01CF4825 */ or $t1, $t6, $t7 +/* 06CD64 7F038234 00185200 */ sll $t2, $t8, 8 +/* 06CD68 7F038238 012A5825 */ or $t3, $t1, $t2 +/* 06CD6C 7F03823C 016C1025 */ or $v0, $t3, $t4 +/* 06CD70 7F038240 03226825 */ or $t5, $t9, $v0 +/* 06CD74 7F038244 AEED0014 */ sw $t5, 0x14($s7) +/* 06CD78 7F038248 26520005 */ addiu $s2, $s2, 5 +/* 06CD7C 7F03824C 1000F4CF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CD80 7F038250 26310005 */ addiu $s1, $s1, 5 +action9E_Unset_Guard_Bit_Tags_5: +/* 06CD84 7F038254 922E0001 */ lbu $t6, 1($s1) +/* 06CD88 7F038258 92380002 */ lbu $t8, 2($s1) +/* 06CD8C 7F03825C 922B0003 */ lbu $t3, 3($s1) +/* 06CD90 7F038260 922D0004 */ lbu $t5, 4($s1) +/* 06CD94 7F038264 000E7E00 */ sll $t7, $t6, 0x18 +/* 06CD98 7F038268 00184C00 */ sll $t1, $t8, 0x10 +/* 06CD9C 7F03826C 01E95025 */ or $t2, $t7, $t1 +/* 06CDA0 7F038270 000B6200 */ sll $t4, $t3, 8 +/* 06CDA4 7F038274 8EEE0014 */ lw $t6, 0x14($s7) +/* 06CDA8 7F038278 014CC825 */ or $t9, $t2, $t4 +/* 06CDAC 7F03827C 032D1025 */ or $v0, $t9, $t5 +/* 06CDB0 7F038280 0040C027 */ not $t8, $v0 +/* 06CDB4 7F038284 01D87824 */ and $t7, $t6, $t8 +/* 06CDB8 7F038288 AEEF0014 */ sw $t7, 0x14($s7) +/* 06CDBC 7F03828C 26520005 */ addiu $s2, $s2, 5 +/* 06CDC0 7F038290 1000F4BE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CDC4 7F038294 26310005 */ addiu $s1, $s1, 5 +action9F_Check_Guard_Bits_If_Same_RVL_6: +/* 06CDC8 7F038298 92290001 */ lbu $t1, 1($s1) +/* 06CDCC 7F03829C 922A0002 */ lbu $t2, 2($s1) +/* 06CDD0 7F0382A0 922D0003 */ lbu $t5, 3($s1) +/* 06CDD4 7F0382A4 00095E00 */ sll $t3, $t1, 0x18 +/* 06CDD8 7F0382A8 922F0004 */ lbu $t7, 4($s1) +/* 06CDDC 7F0382AC 000A6400 */ sll $t4, $t2, 0x10 +/* 06CDE0 7F0382B0 8EE90014 */ lw $t1, 0x14($s7) +/* 06CDE4 7F0382B4 016CC825 */ or $t9, $t3, $t4 +/* 06CDE8 7F0382B8 000D7200 */ sll $t6, $t5, 8 +/* 06CDEC 7F0382BC 032EC025 */ or $t8, $t9, $t6 +/* 06CDF0 7F0382C0 030F1025 */ or $v0, $t8, $t7 +/* 06CDF4 7F0382C4 01225024 */ and $t2, $t1, $v0 +/* 06CDF8 7F0382C8 144A0007 */ bne $v0, $t2, .L7F0382E8 +/* 06CDFC 7F0382CC 02C02025 */ move $a0, $s6 +/* 06CE00 7F0382D0 02402825 */ move $a1, $s2 +/* 06CE04 7F0382D4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CE08 7F0382D8 92260005 */ lbu $a2, 5($s1) +/* 06CE0C 7F0382DC 00409025 */ move $s2, $v0 +/* 06CE10 7F0382E0 1000F4AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE14 7F0382E4 02C28821 */ addu $s1, $s6, $v0 +.L7F0382E8: +/* 06CE18 7F0382E8 26520006 */ addiu $s2, $s2, 6 +/* 06CE1C 7F0382EC 1000F4A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE20 7F0382F0 26310006 */ addiu $s1, $s1, 6 +actionA0_Set_Guard_ID_Bits_6: +/* 06CE24 7F0382F4 922B0002 */ lbu $t3, 2($s1) +/* 06CE28 7F0382F8 922D0003 */ lbu $t5, 3($s1) +/* 06CE2C 7F0382FC 92380004 */ lbu $t8, 4($s1) +/* 06CE30 7F038300 000B6600 */ sll $t4, $t3, 0x18 +/* 06CE34 7F038304 000DCC00 */ sll $t9, $t5, 0x10 +/* 06CE38 7F038308 922A0005 */ lbu $t2, 5($s1) +/* 06CE3C 7F03830C 01997025 */ or $t6, $t4, $t9 +/* 06CE40 7F038310 00187A00 */ sll $t7, $t8, 8 +/* 06CE44 7F038314 01CF4825 */ or $t1, $t6, $t7 +/* 06CE48 7F038318 02E02025 */ move $a0, $s7 +/* 06CE4C 7F03831C 92250001 */ lbu $a1, 1($s1) +/* 06CE50 7F038320 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CE54 7F038324 012A8025 */ or $s0, $t1, $t2 +/* 06CE58 7F038328 10400004 */ beqz $v0, .L7F03833C +/* 06CE5C 7F03832C 26520006 */ addiu $s2, $s2, 6 +/* 06CE60 7F038330 8C4B0014 */ lw $t3, 0x14($v0) +/* 06CE64 7F038334 01706825 */ or $t5, $t3, $s0 +/* 06CE68 7F038338 AC4D0014 */ sw $t5, 0x14($v0) +.L7F03833C: +/* 06CE6C 7F03833C 1000F493 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CE70 7F038340 26310006 */ addiu $s1, $s1, 6 +actionA1_Unset_Guard_ID_Bits_6: +/* 06CE74 7F038344 922C0002 */ lbu $t4, 2($s1) +/* 06CE78 7F038348 92380003 */ lbu $t8, 3($s1) +/* 06CE7C 7F03834C 92290004 */ lbu $t1, 4($s1) +/* 06CE80 7F038350 000CCE00 */ sll $t9, $t4, 0x18 +/* 06CE84 7F038354 00187400 */ sll $t6, $t8, 0x10 +/* 06CE88 7F038358 922D0005 */ lbu $t5, 5($s1) +/* 06CE8C 7F03835C 032E7825 */ or $t7, $t9, $t6 +/* 06CE90 7F038360 00095200 */ sll $t2, $t1, 8 +/* 06CE94 7F038364 01EA5825 */ or $t3, $t7, $t2 +/* 06CE98 7F038368 02E02025 */ move $a0, $s7 +/* 06CE9C 7F03836C 92250001 */ lbu $a1, 1($s1) +/* 06CEA0 7F038370 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEA4 7F038374 016D8025 */ or $s0, $t3, $t5 +/* 06CEA8 7F038378 10400005 */ beqz $v0, .L7F038390 +/* 06CEAC 7F03837C 26520006 */ addiu $s2, $s2, 6 +/* 06CEB0 7F038380 8C4C0014 */ lw $t4, 0x14($v0) +/* 06CEB4 7F038384 0200C027 */ not $t8, $s0 +/* 06CEB8 7F038388 0198C824 */ and $t9, $t4, $t8 +/* 06CEBC 7F03838C AC590014 */ sw $t9, 0x14($v0) +.L7F038390: +/* 06CEC0 7F038390 1000F47E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CEC4 7F038394 26310006 */ addiu $s1, $s1, 6 +actionA2_Check_Guard_Bits_If_Same_RVL_7: +/* 06CEC8 7F038398 922E0002 */ lbu $t6, 2($s1) +/* 06CECC 7F03839C 922F0003 */ lbu $t7, 3($s1) +/* 06CED0 7F0383A0 922D0004 */ lbu $t5, 4($s1) +/* 06CED4 7F0383A4 000E4E00 */ sll $t1, $t6, 0x18 +/* 06CED8 7F0383A8 000F5400 */ sll $t2, $t7, 0x10 +/* 06CEDC 7F0383AC 92390005 */ lbu $t9, 5($s1) +/* 06CEE0 7F0383B0 012A5825 */ or $t3, $t1, $t2 +/* 06CEE4 7F0383B4 000D6200 */ sll $t4, $t5, 8 +/* 06CEE8 7F0383B8 016CC025 */ or $t8, $t3, $t4 +/* 06CEEC 7F0383BC 02E02025 */ move $a0, $s7 +/* 06CEF0 7F0383C0 92250001 */ lbu $a1, 1($s1) +/* 06CEF4 7F0383C4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06CEF8 7F0383C8 03198025 */ or $s0, $t8, $t9 +/* 06CEFC 7F0383CC 5040000D */ beql $v0, $zero, .L7F038404 +/* 06CF00 7F0383D0 26520007 */ addiu $s2, $s2, 7 +/* 06CF04 7F0383D4 8C4E0014 */ lw $t6, 0x14($v0) +/* 06CF08 7F0383D8 02C02025 */ move $a0, $s6 +/* 06CF0C 7F0383DC 02402825 */ move $a1, $s2 +/* 06CF10 7F0383E0 01D07824 */ and $t7, $t6, $s0 +/* 06CF14 7F0383E4 560F0007 */ bnel $s0, $t7, .L7F038404 +/* 06CF18 7F0383E8 26520007 */ addiu $s2, $s2, 7 +/* 06CF1C 7F0383EC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06CF20 7F0383F0 92260006 */ lbu $a2, 6($s1) +/* 06CF24 7F0383F4 00409025 */ move $s2, $v0 +/* 06CF28 7F0383F8 1000F464 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF2C 7F0383FC 02C28821 */ addu $s1, $s6, $v0 +/* 06CF30 7F038400 26520007 */ addiu $s2, $s2, 7 +.L7F038404: +/* 06CF34 7F038404 1000F461 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF38 7F038408 26310007 */ addiu $s1, $s1, 7 +actionA3_Set_State_Bits_16_Type_Object_6: +/* 06CF3C 7F03840C 92290002 */ lbu $t1, 2($s1) +/* 06CF40 7F038410 922D0003 */ lbu $t5, 3($s1) +/* 06CF44 7F038414 92380004 */ lbu $t8, 4($s1) +/* 06CF48 7F038418 00095600 */ sll $t2, $t1, 0x18 +/* 06CF4C 7F03841C 000D5C00 */ sll $t3, $t5, 0x10 +/* 06CF50 7F038420 922F0005 */ lbu $t7, 5($s1) +/* 06CF54 7F038424 014B6025 */ or $t4, $t2, $t3 +/* 06CF58 7F038428 0018CA00 */ sll $t9, $t8, 8 +/* 06CF5C 7F03842C 01997025 */ or $t6, $t4, $t9 +/* 06CF60 7F038430 92240001 */ lbu $a0, 1($s1) +/* 06CF64 7F038434 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CF68 7F038438 01CF8025 */ or $s0, $t6, $t7 +/* 06CF6C 7F03843C 10400007 */ beqz $v0, .L7F03845C +/* 06CF70 7F038440 26520006 */ addiu $s2, $s2, 6 +/* 06CF74 7F038444 8C490010 */ lw $t1, 0x10($v0) +/* 06CF78 7F038448 11200004 */ beqz $t1, .L7F03845C +/* 06CF7C 7F03844C 00000000 */ nop +/* 06CF80 7F038450 8C4D0008 */ lw $t5, 8($v0) +/* 06CF84 7F038454 01B05025 */ or $t2, $t5, $s0 +/* 06CF88 7F038458 AC4A0008 */ sw $t2, 8($v0) +.L7F03845C: +/* 06CF8C 7F03845C 1000F44B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CF90 7F038460 26310006 */ addiu $s1, $s1, 6 +actionA4_Unset_State_Bits_16_Type_Object_6: +/* 06CF94 7F038464 922B0002 */ lbu $t3, 2($s1) +/* 06CF98 7F038468 922C0003 */ lbu $t4, 3($s1) +/* 06CF9C 7F03846C 922F0004 */ lbu $t7, 4($s1) +/* 06CFA0 7F038470 000BC600 */ sll $t8, $t3, 0x18 +/* 06CFA4 7F038474 000CCC00 */ sll $t9, $t4, 0x10 +/* 06CFA8 7F038478 922A0005 */ lbu $t2, 5($s1) +/* 06CFAC 7F03847C 03197025 */ or $t6, $t8, $t9 +/* 06CFB0 7F038480 000F4A00 */ sll $t1, $t7, 8 +/* 06CFB4 7F038484 01C96825 */ or $t5, $t6, $t1 +/* 06CFB8 7F038488 92240001 */ lbu $a0, 1($s1) +/* 06CFBC 7F03848C 0FC15C30 */ jal get_handle_to_tagged_object +/* 06CFC0 7F038490 01AA8025 */ or $s0, $t5, $t2 +/* 06CFC4 7F038494 10400008 */ beqz $v0, .L7F0384B8 +/* 06CFC8 7F038498 26520006 */ addiu $s2, $s2, 6 +/* 06CFCC 7F03849C 8C4B0010 */ lw $t3, 0x10($v0) +/* 06CFD0 7F0384A0 11600005 */ beqz $t3, .L7F0384B8 +/* 06CFD4 7F0384A4 00000000 */ nop +/* 06CFD8 7F0384A8 8C4C0008 */ lw $t4, 8($v0) +/* 06CFDC 7F0384AC 0200C027 */ not $t8, $s0 +/* 06CFE0 7F0384B0 0198C824 */ and $t9, $t4, $t8 +/* 06CFE4 7F0384B4 AC590008 */ sw $t9, 8($v0) +.L7F0384B8: +/* 06CFE8 7F0384B8 1000F434 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06CFEC 7F0384BC 26310006 */ addiu $s1, $s1, 6 +actionA5_Check_State_Bits_16_Type_Object_If_Same_RVL_7: +/* 06CFF0 7F0384C0 922F0002 */ lbu $t7, 2($s1) +/* 06CFF4 7F0384C4 92290003 */ lbu $t1, 3($s1) +/* 06CFF8 7F0384C8 922B0004 */ lbu $t3, 4($s1) +/* 06CFFC 7F0384CC 000F7600 */ sll $t6, $t7, 0x18 +/* 06D000 7F0384D0 00096C00 */ sll $t5, $t1, 0x10 +/* 06D004 7F0384D4 92390005 */ lbu $t9, 5($s1) +/* 06D008 7F0384D8 01CD5025 */ or $t2, $t6, $t5 +/* 06D00C 7F0384DC 000B6200 */ sll $t4, $t3, 8 +/* 06D010 7F0384E0 014CC025 */ or $t8, $t2, $t4 +/* 06D014 7F0384E4 92240001 */ lbu $a0, 1($s1) +/* 06D018 7F0384E8 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D01C 7F0384EC 03198025 */ or $s0, $t8, $t9 +/* 06D020 7F0384F0 50400010 */ beql $v0, $zero, .L7F038534 +/* 06D024 7F0384F4 26520007 */ addiu $s2, $s2, 7 +/* 06D028 7F0384F8 8C4F0010 */ lw $t7, 0x10($v0) +/* 06D02C 7F0384FC 51E0000D */ beql $t7, $zero, .L7F038534 +/* 06D030 7F038500 26520007 */ addiu $s2, $s2, 7 +/* 06D034 7F038504 8C490008 */ lw $t1, 8($v0) +/* 06D038 7F038508 02C02025 */ move $a0, $s6 +/* 06D03C 7F03850C 02402825 */ move $a1, $s2 +/* 06D040 7F038510 01307024 */ and $t6, $t1, $s0 +/* 06D044 7F038514 560E0007 */ bnel $s0, $t6, .L7F038534 +/* 06D048 7F038518 26520007 */ addiu $s2, $s2, 7 +/* 06D04C 7F03851C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D050 7F038520 92260006 */ lbu $a2, 6($s1) +/* 06D054 7F038524 00409025 */ move $s2, $v0 +/* 06D058 7F038528 1000F418 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D05C 7F03852C 02C28821 */ addu $s1, $s6, $v0 +/* 06D060 7F038530 26520007 */ addiu $s2, $s2, 7 +.L7F038534: +/* 06D064 7F038534 1000F415 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D068 7F038538 26310007 */ addiu $s1, $s1, 7 +actionA6_Set_16_Object_States_More_6: +/* 06D06C 7F03853C 922D0002 */ lbu $t5, 2($s1) +/* 06D070 7F038540 922A0003 */ lbu $t2, 3($s1) +/* 06D074 7F038544 92390004 */ lbu $t9, 4($s1) +/* 06D078 7F038548 000D5E00 */ sll $t3, $t5, 0x18 +/* 06D07C 7F03854C 000A6400 */ sll $t4, $t2, 0x10 +/* 06D080 7F038550 922E0005 */ lbu $t6, 5($s1) +/* 06D084 7F038554 016CC025 */ or $t8, $t3, $t4 +/* 06D088 7F038558 00197A00 */ sll $t7, $t9, 8 +/* 06D08C 7F03855C 030F4825 */ or $t1, $t8, $t7 +/* 06D090 7F038560 92240001 */ lbu $a0, 1($s1) +/* 06D094 7F038564 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D098 7F038568 012E8025 */ or $s0, $t1, $t6 +/* 06D09C 7F03856C 10400007 */ beqz $v0, .L7F03858C +/* 06D0A0 7F038570 26520006 */ addiu $s2, $s2, 6 +/* 06D0A4 7F038574 8C4D0010 */ lw $t5, 0x10($v0) +/* 06D0A8 7F038578 11A00004 */ beqz $t5, .L7F03858C +/* 06D0AC 7F03857C 00000000 */ nop +/* 06D0B0 7F038580 8C4A000C */ lw $t2, 0xc($v0) +/* 06D0B4 7F038584 01505825 */ or $t3, $t2, $s0 +/* 06D0B8 7F038588 AC4B000C */ sw $t3, 0xc($v0) +.L7F03858C: +/* 06D0BC 7F03858C 1000F3FF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D0C0 7F038590 26310006 */ addiu $s1, $s1, 6 +actionA7_Unset_16_Object_States_More_6: +/* 06D0C4 7F038594 922C0002 */ lbu $t4, 2($s1) +/* 06D0C8 7F038598 92380003 */ lbu $t8, 3($s1) +/* 06D0CC 7F03859C 922E0004 */ lbu $t6, 4($s1) +/* 06D0D0 7F0385A0 000CCE00 */ sll $t9, $t4, 0x18 +/* 06D0D4 7F0385A4 00187C00 */ sll $t7, $t8, 0x10 +/* 06D0D8 7F0385A8 922B0005 */ lbu $t3, 5($s1) +/* 06D0DC 7F0385AC 032F4825 */ or $t1, $t9, $t7 +/* 06D0E0 7F0385B0 000E6A00 */ sll $t5, $t6, 8 +/* 06D0E4 7F0385B4 012D5025 */ or $t2, $t1, $t5 +/* 06D0E8 7F0385B8 92240001 */ lbu $a0, 1($s1) +/* 06D0EC 7F0385BC 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D0F0 7F0385C0 014B8025 */ or $s0, $t2, $t3 +/* 06D0F4 7F0385C4 10400008 */ beqz $v0, .L7F0385E8 +/* 06D0F8 7F0385C8 26520006 */ addiu $s2, $s2, 6 +/* 06D0FC 7F0385CC 8C4C0010 */ lw $t4, 0x10($v0) +/* 06D100 7F0385D0 11800005 */ beqz $t4, .L7F0385E8 +/* 06D104 7F0385D4 00000000 */ nop +/* 06D108 7F0385D8 8C58000C */ lw $t8, 0xc($v0) +/* 06D10C 7F0385DC 0200C827 */ not $t9, $s0 +/* 06D110 7F0385E0 03197824 */ and $t7, $t8, $t9 +/* 06D114 7F0385E4 AC4F000C */ sw $t7, 0xc($v0) +.L7F0385E8: +/* 06D118 7F0385E8 1000F3E8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D11C 7F0385EC 26310006 */ addiu $s1, $s1, 6 +actionA8_Check_16_Object_States_More_If_Same_RVL_7: +/* 06D120 7F0385F0 922E0002 */ lbu $t6, 2($s1) +/* 06D124 7F0385F4 922D0003 */ lbu $t5, 3($s1) +/* 06D128 7F0385F8 922C0004 */ lbu $t4, 4($s1) +/* 06D12C 7F0385FC 000E4E00 */ sll $t1, $t6, 0x18 +/* 06D130 7F038600 000D5400 */ sll $t2, $t5, 0x10 +/* 06D134 7F038604 922F0005 */ lbu $t7, 5($s1) +/* 06D138 7F038608 012A5825 */ or $t3, $t1, $t2 +/* 06D13C 7F03860C 000CC200 */ sll $t8, $t4, 8 +/* 06D140 7F038610 0178C825 */ or $t9, $t3, $t8 +/* 06D144 7F038614 92240001 */ lbu $a0, 1($s1) +/* 06D148 7F038618 0FC15C30 */ jal get_handle_to_tagged_object +/* 06D14C 7F03861C 032F8025 */ or $s0, $t9, $t7 +/* 06D150 7F038620 50400010 */ beql $v0, $zero, .L7F038664 +/* 06D154 7F038624 26520007 */ addiu $s2, $s2, 7 +/* 06D158 7F038628 8C4E0010 */ lw $t6, 0x10($v0) +/* 06D15C 7F03862C 51C0000D */ beql $t6, $zero, .L7F038664 +/* 06D160 7F038630 26520007 */ addiu $s2, $s2, 7 +/* 06D164 7F038634 8C4D000C */ lw $t5, 0xc($v0) +/* 06D168 7F038638 02C02025 */ move $a0, $s6 +/* 06D16C 7F03863C 02402825 */ move $a1, $s2 +/* 06D170 7F038640 01B04824 */ and $t1, $t5, $s0 +/* 06D174 7F038644 56090007 */ bnel $s0, $t1, .L7F038664 +/* 06D178 7F038648 26520007 */ addiu $s2, $s2, 7 +/* 06D17C 7F03864C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D180 7F038650 92260006 */ lbu $a2, 6($s1) +/* 06D184 7F038654 00409025 */ move $s2, $v0 +/* 06D188 7F038658 1000F3CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D18C 7F03865C 02C28821 */ addu $s1, $s6, $v0 +/* 06D190 7F038660 26520007 */ addiu $s2, $s2, 7 +.L7F038664: +/* 06D194 7F038664 1000F3C9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D198 7F038668 26310007 */ addiu $s1, $s1, 7 +actionA9_Sets_To_Guard_ID_Fc_Current_Guard_2: +/* 06D19C 7F03866C 02E02025 */ move $a0, $s7 +/* 06D1A0 7F038670 0FC0CF3D */ jal sub_GAME_7F033CF4 +/* 06D1A4 7F038674 92250001 */ lbu $a1, 1($s1) +/* 06D1A8 7F038678 26520002 */ addiu $s2, $s2, 2 +/* 06D1AC 7F03867C 1000F3C3 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1B0 7F038680 26310002 */ addiu $s1, $s1, 2 +actionAA_Sets_FC_Value_For_Guard_ID_To_Guard_ID_3: +/* 06D1B4 7F038684 02E02025 */ move $a0, $s7 +/* 06D1B8 7F038688 92250001 */ lbu $a1, 1($s1) +/* 06D1BC 7F03868C 0FC0CF47 */ jal sub_GAME_7F033D1C +/* 06D1C0 7F038690 92260002 */ lbu $a2, 2($s1) +/* 06D1C4 7F038694 26520003 */ addiu $s2, $s2, 3 +/* 06D1C8 7F038698 1000F3BC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D1CC 7F03869C 26310003 */ addiu $s1, $s1, 3 +actionAB_Set_Current_Guards_2328_Value_To_Preset_3: +/* 06D1D0 7F0386A0 922A0001 */ lbu $t2, 1($s1) +/* 06D1D4 7F0386A4 922B0002 */ lbu $t3, 2($s1) +/* 06D1D8 7F0386A8 8FB907AC */ lw $t9, 0x7ac($sp) +/* 06D1DC 7F0386AC 000A6200 */ sll $t4, $t2, 8 +/* 06D1E0 7F0386B0 018B1025 */ or $v0, $t4, $t3 +/* 06D1E4 7F0386B4 3058FFFF */ andi $t8, $v0, 0xffff +/* 06D1E8 7F0386B8 12E00007 */ beqz $s7, .L7F0386D8 +/* 06D1EC 7F0386BC 03001025 */ move $v0, $t8 +/* 06D1F0 7F0386C0 02E02025 */ move $a0, $s7 +/* 06D1F4 7F0386C4 0FC0CF57 */ jal sub_GAME_7F033D5C +/* 06D1F8 7F0386C8 03002825 */ move $a1, $t8 +/* 06D1FC 7F0386CC 26520003 */ addiu $s2, $s2, 3 +/* 06D200 7F0386D0 1000F3AE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D204 7F0386D4 26310003 */ addiu $s1, $s1, 3 +.L7F0386D8: +/* 06D208 7F0386D8 13200002 */ beqz $t9, .L7F0386E4 +/* 06D20C 7F0386DC 26520003 */ addiu $s2, $s2, 3 +/* 06D210 7F0386E0 A7220006 */ sh $v0, 6($t9) +.L7F0386E4: +/* 06D214 7F0386E4 1000F3A9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D218 7F0386E8 26310003 */ addiu $s1, $s1, 3 +actionAC_Set_Guard_ID_numS_2328_Value_To_Preset_4: +/* 06D21C 7F0386EC 922F0002 */ lbu $t7, 2($s1) +/* 06D220 7F0386F0 922D0003 */ lbu $t5, 3($s1) +/* 06D224 7F0386F4 02E02025 */ move $a0, $s7 +/* 06D228 7F0386F8 000F7200 */ sll $t6, $t7, 8 +/* 06D22C 7F0386FC 01CD1025 */ or $v0, $t6, $t5 +/* 06D230 7F038700 3046FFFF */ andi $a2, $v0, 0xffff +/* 06D234 7F038704 0FC0CF61 */ jal sub_GAME_7F033D84 +/* 06D238 7F038708 92250001 */ lbu $a1, 1($s1) +/* 06D23C 7F03870C 26520004 */ addiu $s2, $s2, 4 +/* 06D240 7F038710 1000F39E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D244 7F038714 26310004 */ addiu $s1, $s1, 4 +actionAD_Debug_Comment_20: +/* 06D248 7F038718 02C02025 */ move $a0, $s6 +/* 06D24C 7F03871C 0FC0D27F */ jal get_length_of_action_block +/* 06D250 7F038720 02402825 */ move $a1, $s2 +/* 06D254 7F038724 02429021 */ addu $s2, $s2, $v0 +/* 06D258 7F038728 1000F398 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D25C 7F03872C 02D28821 */ addu $s1, $s6, $s2 +actionAE_Reset_Cycle_Counter_And_Enable_It_1: +/* 06D260 7F038730 0FC0CCF1 */ jal reset_and_start_loop_counter +/* 06D264 7F038734 02E02025 */ move $a0, $s7 +/* 06D268 7F038738 26520001 */ addiu $s2, $s2, 1 +/* 06D26C 7F03873C 1000F393 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D270 7F038740 26310001 */ addiu $s1, $s1, 1 +actionAF_Reset_Cycle_Counter_1: +/* 06D274 7F038744 AEE00110 */ sw $zero, 0x110($s7) +/* 06D278 7F038748 26520001 */ addiu $s2, $s2, 1 +/* 06D27C 7F03874C 1000F38F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D280 7F038750 26310001 */ addiu $s1, $s1, 1 +actionB0_Disable_Cycle_Counter_1: +/* 06D284 7F038754 96EA0012 */ lhu $t2, 0x12($s7) +/* 06D288 7F038758 26520001 */ addiu $s2, $s2, 1 +/* 06D28C 7F03875C 26310001 */ addiu $s1, $s1, 1 +/* 06D290 7F038760 314CFFBF */ andi $t4, $t2, 0xffbf +/* 06D294 7F038764 1000F389 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D298 7F038768 A6EC0012 */ sh $t4, 0x12($s7) +actionB1_Enable_Cycle_Counter_1: +/* 06D29C 7F03876C 96EB0012 */ lhu $t3, 0x12($s7) +/* 06D2A0 7F038770 26520001 */ addiu $s2, $s2, 1 +/* 06D2A4 7F038774 26310001 */ addiu $s1, $s1, 1 +/* 06D2A8 7F038778 35780040 */ ori $t8, $t3, 0x40 +/* 06D2AC 7F03877C 1000F383 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2B0 7F038780 A6F80012 */ sh $t8, 0x12($s7) +actionB2_Check_Cycle_Counter_Enable_Status_2: +/* 06D2B4 7F038784 96F90012 */ lhu $t9, 0x12($s7) +/* 06D2B8 7F038788 02C02025 */ move $a0, $s6 +/* 06D2BC 7F03878C 02402825 */ move $a1, $s2 +/* 06D2C0 7F038790 332F0040 */ andi $t7, $t9, 0x40 +/* 06D2C4 7F038794 55E00007 */ bnezl $t7, .L7F0387B4 +/* 06D2C8 7F038798 26520002 */ addiu $s2, $s2, 2 +/* 06D2CC 7F03879C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D2D0 7F0387A0 92260001 */ lbu $a2, 1($s1) +/* 06D2D4 7F0387A4 00409025 */ move $s2, $v0 +/* 06D2D8 7F0387A8 1000F378 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2DC 7F0387AC 02C28821 */ addu $s1, $s6, $v0 +/* 06D2E0 7F0387B0 26520002 */ addiu $s2, $s2, 2 +.L7F0387B4: +/* 06D2E4 7F0387B4 1000F375 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D2E8 7F0387B8 26310002 */ addiu $s1, $s1, 2 +actionB3_If_Cycle_Counter_LTV_RVL_5: +/* 06D2EC 7F0387BC 922E0001 */ lbu $t6, 1($s1) +/* 06D2F0 7F0387C0 92290002 */ lbu $t1, 2($s1) +/* 06D2F4 7F0387C4 922B0003 */ lbu $t3, 3($s1) +/* 06D2F8 7F0387C8 000E6C00 */ sll $t5, $t6, 0x10 +/* 06D2FC 7F0387CC 00095200 */ sll $t2, $t1, 8 +/* 06D300 7F0387D0 01AA6025 */ or $t4, $t5, $t2 +/* 06D304 7F0387D4 018BC025 */ or $t8, $t4, $t3 +/* 06D308 7F0387D8 44985000 */ mtc1 $t8, $f10 +/* 06D30C 7F0387DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D310 7F0387E0 07010004 */ bgez $t8, .L7F0387F4 +/* 06D314 7F0387E4 468054A0 */ cvt.s.w $f18, $f10 +/* 06D318 7F0387E8 44813000 */ mtc1 $at, $f6 +/* 06D31C 7F0387EC 00000000 */ nop +/* 06D320 7F0387F0 46069480 */ add.s $f18, $f18, $f6 +.L7F0387F4: +/* 06D324 7F0387F4 46169403 */ div.s $f16, $f18, $f22 +/* 06D328 7F0387F8 02E02025 */ move $a0, $s7 +/* 06D32C 7F0387FC 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D330 7F038800 E7B002B0 */ swc1 $f16, 0x2b0($sp) +/* 06D334 7F038804 C7A802B0 */ lwc1 $f8, 0x2b0($sp) +/* 06D338 7F038808 02C02025 */ move $a0, $s6 +/* 06D33C 7F03880C 02402825 */ move $a1, $s2 +/* 06D340 7F038810 4608003C */ c.lt.s $f0, $f8 +/* 06D344 7F038814 00000000 */ nop +/* 06D348 7F038818 45020007 */ bc1fl .L7F038838 +/* 06D34C 7F03881C 26520005 */ addiu $s2, $s2, 5 +/* 06D350 7F038820 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D354 7F038824 92260004 */ lbu $a2, 4($s1) +/* 06D358 7F038828 00409025 */ move $s2, $v0 +/* 06D35C 7F03882C 1000F357 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D360 7F038830 02C28821 */ addu $s1, $s6, $v0 +/* 06D364 7F038834 26520005 */ addiu $s2, $s2, 5 +.L7F038838: +/* 06D368 7F038838 1000F354 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D36C 7F03883C 26310005 */ addiu $s1, $s1, 5 +actionB4_If_Cycle_Counter_GTV_RVL_5: +/* 06D370 7F038840 92390001 */ lbu $t9, 1($s1) +/* 06D374 7F038844 922E0002 */ lbu $t6, 2($s1) +/* 06D378 7F038848 922A0003 */ lbu $t2, 3($s1) +/* 06D37C 7F03884C 00197C00 */ sll $t7, $t9, 0x10 +/* 06D380 7F038850 000E4A00 */ sll $t1, $t6, 8 +/* 06D384 7F038854 01E96825 */ or $t5, $t7, $t1 +/* 06D388 7F038858 01AA6025 */ or $t4, $t5, $t2 +/* 06D38C 7F03885C 448C2000 */ mtc1 $t4, $f4 +/* 06D390 7F038860 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 06D394 7F038864 05810004 */ bgez $t4, .L7F038878 +/* 06D398 7F038868 468022A0 */ cvt.s.w $f10, $f4 +/* 06D39C 7F03886C 44813000 */ mtc1 $at, $f6 +/* 06D3A0 7F038870 00000000 */ nop +/* 06D3A4 7F038874 46065280 */ add.s $f10, $f10, $f6 +.L7F038878: +/* 06D3A8 7F038878 46165483 */ div.s $f18, $f10, $f22 +/* 06D3AC 7F03887C 02E02025 */ move $a0, $s7 +/* 06D3B0 7F038880 0FC0CCF6 */ jal get_loop_counter_time_in_seconds +/* 06D3B4 7F038884 E7B202A8 */ swc1 $f18, 0x2a8($sp) +/* 06D3B8 7F038888 C7B002A8 */ lwc1 $f16, 0x2a8($sp) +/* 06D3BC 7F03888C 02C02025 */ move $a0, $s6 +/* 06D3C0 7F038890 02402825 */ move $a1, $s2 +/* 06D3C4 7F038894 4600803C */ c.lt.s $f16, $f0 +/* 06D3C8 7F038898 00000000 */ nop +/* 06D3CC 7F03889C 45020007 */ bc1fl .L7F0388BC +/* 06D3D0 7F0388A0 26520005 */ addiu $s2, $s2, 5 +/* 06D3D4 7F0388A4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D3D8 7F0388A8 92260004 */ lbu $a2, 4($s1) +/* 06D3DC 7F0388AC 00409025 */ move $s2, $v0 +/* 06D3E0 7F0388B0 1000F336 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3E4 7F0388B4 02C28821 */ addu $s1, $s6, $v0 +/* 06D3E8 7F0388B8 26520005 */ addiu $s2, $s2, 5 +.L7F0388BC: +/* 06D3EC 7F0388BC 1000F333 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D3F0 7F0388C0 26310005 */ addiu $s1, $s1, 5 +actionB5_Show_Timer_1: +/* 06D3F4 7F0388C4 24040001 */ li $a0, 1 +/* 06D3F8 7F0388C8 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D3FC 7F0388CC 24050001 */ li $a1, 1 +/* 06D400 7F0388D0 26520001 */ addiu $s2, $s2, 1 +/* 06D404 7F0388D4 1000F32D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D408 7F0388D8 26310001 */ addiu $s1, $s1, 1 +actionB6_Hide_Timer_Silent_Countdown_1: +/* 06D40C 7F0388DC 24040001 */ li $a0, 1 +/* 06D410 7F0388E0 0FC15858 */ jal set_unset_clock_lock_bits +/* 06D414 7F0388E4 00002825 */ move $a1, $zero +/* 06D418 7F0388E8 26520001 */ addiu $s2, $s2, 1 +/* 06D41C 7F0388EC 1000F327 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D420 7F0388F0 26310001 */ addiu $s1, $s1, 1 +actionB7_Set_Timer_X_Seconds__Doesnt_Show_Timer_Yet_3: +/* 06D424 7F0388F4 922B0001 */ lbu $t3, 1($s1) +/* 06D428 7F0388F8 92390002 */ lbu $t9, 2($s1) +/* 06D42C 7F0388FC 000BC200 */ sll $t8, $t3, 8 +/* 06D430 7F038900 03197025 */ or $t6, $t8, $t9 +/* 06D434 7F038904 448E4000 */ mtc1 $t6, $f8 +/* 06D438 7F038908 00000000 */ nop +/* 06D43C 7F03890C 46804020 */ cvt.s.w $f0, $f8 +/* 06D440 7F038910 46160302 */ mul.s $f12, $f0, $f22 +/* 06D444 7F038914 0FC1586C */ jal set_clock_time +/* 06D448 7F038918 00000000 */ nop +/* 06D44C 7F03891C 26520003 */ addiu $s2, $s2, 3 +/* 06D450 7F038920 1000F31A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D454 7F038924 26310003 */ addiu $s1, $s1, 3 +actionB8_Stop_Timer_1: +/* 06D458 7F038928 0FC15872 */ jal set_clock_enable +/* 06D45C 7F03892C 00002025 */ move $a0, $zero +/* 06D460 7F038930 26520001 */ addiu $s2, $s2, 1 +/* 06D464 7F038934 1000F315 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D468 7F038938 26310001 */ addiu $s1, $s1, 1 +actionB9_Start_Timer_1: +/* 06D46C 7F03893C 0FC15872 */ jal set_clock_enable +/* 06D470 7F038940 24040001 */ li $a0, 1 +/* 06D474 7F038944 26520001 */ addiu $s2, $s2, 1 +/* 06D478 7F038948 1000F310 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D47C 7F03894C 26310001 */ addiu $s1, $s1, 1 +actionBA_Check_Timer_Enabled_Status_RVL_If_Enabled_2: +/* 06D480 7F038950 0FC15875 */ jal get_clock_enable +/* 06D484 7F038954 00000000 */ nop +/* 06D488 7F038958 14400007 */ bnez $v0, .L7F038978 +/* 06D48C 7F03895C 02C02025 */ move $a0, $s6 +/* 06D490 7F038960 02402825 */ move $a1, $s2 +/* 06D494 7F038964 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D498 7F038968 92260001 */ lbu $a2, 1($s1) +/* 06D49C 7F03896C 00409025 */ move $s2, $v0 +/* 06D4A0 7F038970 1000F306 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4A4 7F038974 02C28821 */ addu $s1, $s6, $v0 +.L7F038978: +/* 06D4A8 7F038978 26520002 */ addiu $s2, $s2, 2 +/* 06D4AC 7F03897C 1000F303 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D4B0 7F038980 26310002 */ addiu $s1, $s1, 2 +actionBB_Detect_If_Timer_Below_Certain_Point_RVL_If_So_4: +/* 06D4B4 7F038984 922F0001 */ lbu $t7, 1($s1) +/* 06D4B8 7F038988 922D0002 */ lbu $t5, 2($s1) +/* 06D4BC 7F03898C 000F4A00 */ sll $t1, $t7, 8 +/* 06D4C0 7F038990 012D5025 */ or $t2, $t1, $t5 +/* 06D4C4 7F038994 448A2000 */ mtc1 $t2, $f4 +/* 06D4C8 7F038998 00000000 */ nop +/* 06D4CC 7F03899C 468021A0 */ cvt.s.w $f6, $f4 +/* 06D4D0 7F0389A0 0FC1586F */ jal get_clock_time +/* 06D4D4 7F0389A4 E7A60294 */ swc1 $f6, 0x294($sp) +/* 06D4D8 7F0389A8 C7AA0294 */ lwc1 $f10, 0x294($sp) +/* 06D4DC 7F0389AC 02C02025 */ move $a0, $s6 +/* 06D4E0 7F0389B0 02402825 */ move $a1, $s2 +/* 06D4E4 7F0389B4 46165482 */ mul.s $f18, $f10, $f22 +/* 06D4E8 7F0389B8 4612003C */ c.lt.s $f0, $f18 +/* 06D4EC 7F0389BC 00000000 */ nop +/* 06D4F0 7F0389C0 45020007 */ bc1fl .L7F0389E0 +/* 06D4F4 7F0389C4 26520004 */ addiu $s2, $s2, 4 +/* 06D4F8 7F0389C8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D4FC 7F0389CC 92260003 */ lbu $a2, 3($s1) +/* 06D500 7F0389D0 00409025 */ move $s2, $v0 +/* 06D504 7F0389D4 1000F2ED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D508 7F0389D8 02C28821 */ addu $s1, $s6, $v0 +/* 06D50C 7F0389DC 26520004 */ addiu $s2, $s2, 4 +.L7F0389E0: +/* 06D510 7F0389E0 1000F2EA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D514 7F0389E4 26310004 */ addiu $s1, $s1, 4 +actionBC_Detect_If_Timer_Above_Certain_Point_RVL_If_So_4: +/* 06D518 7F0389E8 922C0001 */ lbu $t4, 1($s1) +/* 06D51C 7F0389EC 92380002 */ lbu $t8, 2($s1) +/* 06D520 7F0389F0 000C5A00 */ sll $t3, $t4, 8 +/* 06D524 7F0389F4 0178C825 */ or $t9, $t3, $t8 +/* 06D528 7F0389F8 44998000 */ mtc1 $t9, $f16 +/* 06D52C 7F0389FC 00000000 */ nop +/* 06D530 7F038A00 46808220 */ cvt.s.w $f8, $f16 +/* 06D534 7F038A04 0FC1586F */ jal get_clock_time +/* 06D538 7F038A08 E7A8028C */ swc1 $f8, 0x28c($sp) +/* 06D53C 7F038A0C C7A4028C */ lwc1 $f4, 0x28c($sp) +/* 06D540 7F038A10 02C02025 */ move $a0, $s6 +/* 06D544 7F038A14 02402825 */ move $a1, $s2 +/* 06D548 7F038A18 46162182 */ mul.s $f6, $f4, $f22 +/* 06D54C 7F038A1C 4600303C */ c.lt.s $f6, $f0 +/* 06D550 7F038A20 00000000 */ nop +/* 06D554 7F038A24 45020007 */ bc1fl .L7F038A44 +/* 06D558 7F038A28 26520004 */ addiu $s2, $s2, 4 +/* 06D55C 7F038A2C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D560 7F038A30 92260003 */ lbu $a2, 3($s1) +/* 06D564 7F038A34 00409025 */ move $s2, $v0 +/* 06D568 7F038A38 1000F2D4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D56C 7F038A3C 02C28821 */ addu $s1, $s6, $v0 +/* 06D570 7F038A40 26520004 */ addiu $s2, $s2, 4 +.L7F038A44: +/* 06D574 7F038A44 1000F2D1 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D578 7F038A48 26310004 */ addiu $s1, $s1, 4 +actionBD_Spawn_Guard_C: +/* 06D57C 7F038A4C 922E0003 */ lbu $t6, 3($s1) +/* 06D580 7F038A50 92290004 */ lbu $t1, 4($s1) +/* 06D584 7F038A54 922A0007 */ lbu $t2, 7($s1) +/* 06D588 7F038A58 000E7A00 */ sll $t7, $t6, 8 +/* 06D58C 7F038A5C 922B0008 */ lbu $t3, 8($s1) +/* 06D590 7F038A60 01E98025 */ or $s0, $t7, $t1 +/* 06D594 7F038A64 922E0009 */ lbu $t6, 9($s1) +/* 06D598 7F038A68 320DFFFF */ andi $t5, $s0, 0xffff +/* 06D59C 7F038A6C 01A08025 */ move $s0, $t5 +/* 06D5A0 7F038A70 922D000A */ lbu $t5, 0xa($s1) +/* 06D5A4 7F038A74 000A6600 */ sll $t4, $t2, 0x18 +/* 06D5A8 7F038A78 000BC400 */ sll $t8, $t3, 0x10 +/* 06D5AC 7F038A7C 0198C825 */ or $t9, $t4, $t8 +/* 06D5B0 7F038A80 000E7A00 */ sll $t7, $t6, 8 +/* 06D5B4 7F038A84 032F4825 */ or $t1, $t9, $t7 +/* 06D5B8 7F038A88 012D5025 */ or $t2, $t1, $t5 +/* 06D5BC 7F038A8C AFAA0280 */ sw $t2, 0x280($sp) +/* 06D5C0 7F038A90 922B0005 */ lbu $t3, 5($s1) +/* 06D5C4 7F038A94 92380006 */ lbu $t8, 6($s1) +/* 06D5C8 7F038A98 000B6200 */ sll $t4, $t3, 8 +/* 06D5CC 7F038A9C 01981025 */ or $v0, $t4, $t8 +/* 06D5D0 7F038AA0 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D5D4 7F038AA4 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D5D8 7F038AA8 8FB90280 */ lw $t9, 0x280($sp) +/* 06D5DC 7F038AAC 92250001 */ lbu $a1, 1($s1) +/* 06D5E0 7F038AB0 82260002 */ lb $a2, 2($s1) +/* 06D5E4 7F038AB4 AFA20010 */ sw $v0, 0x10($sp) +/* 06D5E8 7F038AB8 02E02025 */ move $a0, $s7 +/* 06D5EC 7F038ABC 02003825 */ move $a3, $s0 +/* 06D5F0 7F038AC0 0FC0D096 */ jal guard_constructor_BD +/* 06D5F4 7F038AC4 AFB90014 */ sw $t9, 0x14($sp) +/* 06D5F8 7F038AC8 10400007 */ beqz $v0, .L7F038AE8 +/* 06D5FC 7F038ACC 02C02025 */ move $a0, $s6 +/* 06D600 7F038AD0 02402825 */ move $a1, $s2 +/* 06D604 7F038AD4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D608 7F038AD8 9226000B */ lbu $a2, 0xb($s1) +/* 06D60C 7F038ADC 00409025 */ move $s2, $v0 +/* 06D610 7F038AE0 1000F2AA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D614 7F038AE4 02C28821 */ addu $s1, $s6, $v0 +.L7F038AE8: +/* 06D618 7F038AE8 2652000C */ addiu $s2, $s2, 0xc +/* 06D61C 7F038AEC 1000F2A7 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D620 7F038AF0 2631000C */ addiu $s1, $s1, 0xc +actionBE_Respawn_Guard_with_ID_B: +/* 06D624 7F038AF4 922F0006 */ lbu $t7, 6($s1) +/* 06D628 7F038AF8 922D0007 */ lbu $t5, 7($s1) +/* 06D62C 7F038AFC 922C0008 */ lbu $t4, 8($s1) +/* 06D630 7F038B00 000F4E00 */ sll $t1, $t7, 0x18 +/* 06D634 7F038B04 000D5400 */ sll $t2, $t5, 0x10 +/* 06D638 7F038B08 922F0004 */ lbu $t7, 4($s1) +/* 06D63C 7F038B0C 012A5825 */ or $t3, $t1, $t2 +/* 06D640 7F038B10 92290005 */ lbu $t1, 5($s1) +/* 06D644 7F038B14 92390009 */ lbu $t9, 9($s1) +/* 06D648 7F038B18 000CC200 */ sll $t8, $t4, 8 +/* 06D64C 7F038B1C 000F6A00 */ sll $t5, $t7, 8 +/* 06D650 7F038B20 01787025 */ or $t6, $t3, $t8 +/* 06D654 7F038B24 01A91025 */ or $v0, $t5, $t1 +/* 06D658 7F038B28 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D65C 7F038B2C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D660 7F038B30 01D98025 */ or $s0, $t6, $t9 +/* 06D664 7F038B34 92250001 */ lbu $a1, 1($s1) +/* 06D668 7F038B38 82260002 */ lb $a2, 2($s1) +/* 06D66C 7F038B3C 92270003 */ lbu $a3, 3($s1) +/* 06D670 7F038B40 AFB00014 */ sw $s0, 0x14($sp) +/* 06D674 7F038B44 AFA20010 */ sw $v0, 0x10($sp) +/* 06D678 7F038B48 0FC0D0C2 */ jal guard_constructor_BE +/* 06D67C 7F038B4C 02E02025 */ move $a0, $s7 +/* 06D680 7F038B50 10400007 */ beqz $v0, .L7F038B70 +/* 06D684 7F038B54 02C02025 */ move $a0, $s6 +/* 06D688 7F038B58 02402825 */ move $a1, $s2 +/* 06D68C 7F038B5C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D690 7F038B60 9226000A */ lbu $a2, 0xa($s1) +/* 06D694 7F038B64 00409025 */ move $s2, $v0 +/* 06D698 7F038B68 1000F288 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D69C 7F038B6C 02C28821 */ addu $s1, $s6, $v0 +.L7F038B70: +/* 06D6A0 7F038B70 2652000B */ addiu $s2, $s2, 0xb +/* 06D6A4 7F038B74 1000F285 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D6A8 7F038B78 2631000B */ addiu $s1, $s1, 0xb +actionBF_Spawn_Weapon_9: +/* 06D6AC 7F038B7C 922C0004 */ lbu $t4, 4($s1) +/* 06D6B0 7F038B80 92380005 */ lbu $t8, 5($s1) +/* 06D6B4 7F038B84 922F0006 */ lbu $t7, 6($s1) +/* 06D6B8 7F038B88 000C5E00 */ sll $t3, $t4, 0x18 +/* 06D6BC 7F038B8C 922C0001 */ lbu $t4, 1($s1) +/* 06D6C0 7F038B90 00187400 */ sll $t6, $t8, 0x10 +/* 06D6C4 7F038B94 016EC825 */ or $t9, $t3, $t6 +/* 06D6C8 7F038B98 922A0007 */ lbu $t2, 7($s1) +/* 06D6CC 7F038B9C 922B0002 */ lbu $t3, 2($s1) +/* 06D6D0 7F038BA0 000F6A00 */ sll $t5, $t7, 8 +/* 06D6D4 7F038BA4 032D4825 */ or $t1, $t9, $t5 +/* 06D6D8 7F038BA8 000CC200 */ sll $t8, $t4, 8 +/* 06D6DC 7F038BAC 00001825 */ move $v1, $zero +/* 06D6E0 7F038BB0 012A8025 */ or $s0, $t1, $t2 +/* 06D6E4 7F038BB4 12E00027 */ beqz $s7, .L7F038C54 +/* 06D6E8 7F038BB8 030B9825 */ or $s3, $t8, $t3 +/* 06D6EC 7F038BBC 8EEE0018 */ lw $t6, 0x18($s7) +/* 06D6F0 7F038BC0 11C00024 */ beqz $t6, .L7F038C54 +/* 06D6F4 7F038BC4 00000000 */ nop +/* 06D6F8 7F038BC8 8EEF001C */ lw $t7, 0x1c($s7) +/* 06D6FC 7F038BCC 11E00021 */ beqz $t7, .L7F038C54 +/* 06D700 7F038BD0 00000000 */ nop +/* 06D704 7F038BD4 0FC249EF */ jal cheatCheckIfOn +/* 06D708 7F038BD8 2404001C */ li $a0, 28 +/* 06D70C 7F038BDC 50400018 */ beql $v0, $zero, .L7F038C40 +/* 06D710 7F038BE0 02E02025 */ move $a0, $s7 +/* 06D714 7F038BE4 92260003 */ lbu $a2, 3($s1) +/* 06D718 7F038BE8 24D9FFFE */ addiu $t9, $a2, -2 +/* 06D71C 7F038BEC 2F21001E */ sltiu $at, $t9, 0x1e +/* 06D720 7F038BF0 1020000C */ beqz $at, .L7F038C24 +/* 06D724 7F038BF4 0019C880 */ sll $t9, $t9, 2 +/* 06D728 7F038BF8 3C018005 */ lui $at, %hi(jpt_800528FC) +/* 06D72C 7F038BFC 00390821 */ addu $at, $at, $t9 +/* 06D730 7F038C00 8C3928FC */ lw $t9, %lo(jpt_800528FC)($at) +.L7F038C04: +/* 06D734 7F038C04 03200008 */ jr $t9 +/* 06D738 7F038C08 00000000 */ nop +loc_CODE_7F038C0C: +/* 06D73C 7F038C0C 02E02025 */ move $a0, $s7 +/* 06D740 7F038C10 240500D3 */ li $a1, 211 +/* 06D744 7F038C14 24060019 */ li $a2, 25 +/* 06D748 7F038C18 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D74C 7F038C1C 02003825 */ move $a3, $s0 +/* 06D750 7F038C20 92260003 */ lbu $a2, 3($s1) +.L7F038C24: +/* 06D754 7F038C24 02E02025 */ move $a0, $s7 +/* 06D758 7F038C28 02602825 */ move $a1, $s3 +/* 06D75C 7F038C2C 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D760 7F038C30 02003825 */ move $a3, $s0 +/* 06D764 7F038C34 10000007 */ b .L7F038C54 +/* 06D768 7F038C38 00401825 */ move $v1, $v0 +/* 06D76C 7F038C3C 02E02025 */ move $a0, $s7 +.L7F038C40: +/* 06D770 7F038C40 02602825 */ move $a1, $s3 +/* 06D774 7F038C44 92260003 */ lbu $a2, 3($s1) +/* 06D778 7F038C48 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D77C 7F038C4C 02003825 */ move $a3, $s0 +/* 06D780 7F038C50 00401825 */ move $v1, $v0 +.L7F038C54: +/* 06D784 7F038C54 10600007 */ beqz $v1, .L7F038C74 +/* 06D788 7F038C58 02C02025 */ move $a0, $s6 +/* 06D78C 7F038C5C 02402825 */ move $a1, $s2 +/* 06D790 7F038C60 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D794 7F038C64 92260008 */ lbu $a2, 8($s1) +/* 06D798 7F038C68 00409025 */ move $s2, $v0 +/* 06D79C 7F038C6C 1000F247 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7A0 7F038C70 02C28821 */ addu $s1, $s6, $v0 +.L7F038C74: +/* 06D7A4 7F038C74 26520009 */ addiu $s2, $s2, 9 +/* 06D7A8 7F038C78 1000F244 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D7AC 7F038C7C 26310009 */ addiu $s1, $s1, 9 +actionC0_Spawn_Hat_8: +/* 06D7B0 7F038C80 922D0003 */ lbu $t5, 3($s1) +/* 06D7B4 7F038C84 922A0004 */ lbu $t2, 4($s1) +/* 06D7B8 7F038C88 922B0005 */ lbu $t3, 5($s1) +/* 06D7BC 7F038C8C 000D4E00 */ sll $t1, $t5, 0x18 +/* 06D7C0 7F038C90 922D0001 */ lbu $t5, 1($s1) +/* 06D7C4 7F038C94 000A6400 */ sll $t4, $t2, 0x10 +/* 06D7C8 7F038C98 012CC025 */ or $t8, $t1, $t4 +/* 06D7CC 7F038C9C 92390006 */ lbu $t9, 6($s1) +/* 06D7D0 7F038CA0 92290002 */ lbu $t1, 2($s1) +/* 06D7D4 7F038CA4 000B7200 */ sll $t6, $t3, 8 +/* 06D7D8 7F038CA8 030E7825 */ or $t7, $t8, $t6 +/* 06D7DC 7F038CAC 000D5200 */ sll $t2, $t5, 8 +/* 06D7E0 7F038CB0 00001825 */ move $v1, $zero +/* 06D7E4 7F038CB4 01F93025 */ or $a2, $t7, $t9 +/* 06D7E8 7F038CB8 12E0000A */ beqz $s7, .L7F038CE4 +/* 06D7EC 7F038CBC 01492825 */ or $a1, $t2, $t1 +/* 06D7F0 7F038CC0 8EEC0018 */ lw $t4, 0x18($s7) +/* 06D7F4 7F038CC4 11800007 */ beqz $t4, .L7F038CE4 +/* 06D7F8 7F038CC8 00000000 */ nop +/* 06D7FC 7F038CCC 8EEB001C */ lw $t3, 0x1c($s7) +/* 06D800 7F038CD0 11600004 */ beqz $t3, .L7F038CE4 +/* 06D804 7F038CD4 00000000 */ nop +/* 06D808 7F038CD8 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D80C 7F038CDC 02E02025 */ move $a0, $s7 +/* 06D810 7F038CE0 00401825 */ move $v1, $v0 +.L7F038CE4: +/* 06D814 7F038CE4 10600007 */ beqz $v1, .L7F038D04 +/* 06D818 7F038CE8 02C02025 */ move $a0, $s6 +/* 06D81C 7F038CEC 02402825 */ move $a1, $s2 +/* 06D820 7F038CF0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D824 7F038CF4 92260007 */ lbu $a2, 7($s1) +/* 06D828 7F038CF8 00409025 */ move $s2, $v0 +/* 06D82C 7F038CFC 1000F223 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D830 7F038D00 02C28821 */ addu $s1, $s6, $v0 +.L7F038D04: +/* 06D834 7F038D04 26520008 */ addiu $s2, $s2, 8 +/* 06D838 7F038D08 1000F220 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D83C 7F038D0C 26310008 */ addiu $s1, $s1, 8 +actionC1_GuardIDDoesAV_If_Gunfire_RVL_WhenComplete_5: +/* 06D840 7F038D10 92380002 */ lbu $t8, 2($s1) +/* 06D844 7F038D14 922F0003 */ lbu $t7, 3($s1) +/* 06D848 7F038D18 AFA0020C */ sw $zero, 0x20c($sp) +/* 06D84C 7F038D1C 00187200 */ sll $t6, $t8, 8 +/* 06D850 7F038D20 01CF1025 */ or $v0, $t6, $t7 +/* 06D854 7F038D24 3044FFFF */ andi $a0, $v0, 0xffff +/* 06D858 7F038D28 AFA00210 */ sw $zero, 0x210($sp) +/* 06D85C 7F038D2C AFA00234 */ sw $zero, 0x234($sp) +/* 06D860 7F038D30 00009825 */ move $s3, $zero +/* 06D864 7F038D34 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 06D868 7F038D38 0000A025 */ move $s4, $zero +/* 06D86C 7F038D3C 00408025 */ move $s0, $v0 +/* 06D870 7F038D40 02E02025 */ move $a0, $s7 +/* 06D874 7F038D44 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D878 7F038D48 92250001 */ lbu $a1, 1($s1) +/* 06D87C 7F038D4C 10400051 */ beqz $v0, .L7F038E94 +/* 06D880 7F038D50 0040A825 */ move $s5, $v0 +/* 06D884 7F038D54 8C4D0014 */ lw $t5, 0x14($v0) +/* 06D888 7F038D58 02E02025 */ move $a0, $s7 +/* 06D88C 7F038D5C 31AA0002 */ andi $t2, $t5, 2 +/* 06D890 7F038D60 5140004D */ beql $t2, $zero, .L7F038E98 +/* 06D894 7F038D64 8FA90234 */ lw $t1, 0x234($sp) +/* 06D898 7F038D68 8045000F */ lb $a1, 0xf($v0) +/* 06D89C 7F038D6C 84470000 */ lh $a3, ($v0) +/* 06D8A0 7F038D70 AFA00014 */ sw $zero, 0x14($sp) +/* 06D8A4 7F038D74 AFB00010 */ sw $s0, 0x10($sp) +/* 06D8A8 7F038D78 0FC0D0C2 */ jal guard_constructor_BE +/* 06D8AC 7F038D7C 2406FFFF */ li $a2, -1 +/* 06D8B0 7F038D80 50400045 */ beql $v0, $zero, .L7F038E98 +/* 06D8B4 7F038D84 8FA90234 */ lw $t1, 0x234($sp) +/* 06D8B8 7F038D88 8C490004 */ lw $t1, 4($v0) +/* 06D8BC 7F038D8C 02E02025 */ move $a0, $s7 +/* 06D8C0 7F038D90 AFA90218 */ sw $t1, 0x218($sp) +/* 06D8C4 7F038D94 86B00000 */ lh $s0, ($s5) +/* 06D8C8 7F038D98 26102710 */ addiu $s0, $s0, 0x2710 +/* 06D8CC 7F038D9C 0FC0CC10 */ jal get_handle_for_guard_id +/* 06D8D0 7F038DA0 02002825 */ move $a1, $s0 +/* 06D8D4 7F038DA4 14400003 */ bnez $v0, .L7F038DB4 +/* 06D8D8 7F038DA8 02A02025 */ move $a0, $s5 +/* 06D8DC 7F038DAC 8FAC0218 */ lw $t4, 0x218($sp) +/* 06D8E0 7F038DB0 A5900000 */ sh $s0, ($t4) +.L7F038DB4: +/* 06D8E4 7F038DB4 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D8E8 7F038DB8 00002825 */ move $a1, $zero +/* 06D8EC 7F038DBC 5040000C */ beql $v0, $zero, .L7F038DF0 +/* 06D8F0 7F038DC0 02A02025 */ move $a0, $s5 +/* 06D8F4 7F038DC4 8C540004 */ lw $s4, 4($v0) +/* 06D8F8 7F038DC8 8FA40218 */ lw $a0, 0x218($sp) +/* 06D8FC 7F038DCC 00003825 */ move $a3, $zero +/* 06D900 7F038DD0 86850004 */ lh $a1, 4($s4) +/* 06D904 7F038DD4 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D908 7F038DD8 82860080 */ lb $a2, 0x80($s4) +/* 06D90C 7F038DDC 50400004 */ beql $v0, $zero, .L7F038DF0 +/* 06D910 7F038DE0 02A02025 */ move $a0, $s5 +/* 06D914 7F038DE4 8C4B0004 */ lw $t3, 4($v0) +/* 06D918 7F038DE8 AFAB020C */ sw $t3, 0x20c($sp) +/* 06D91C 7F038DEC 02A02025 */ move $a0, $s5 +.L7F038DF0: +/* 06D920 7F038DF0 0FC08C0B */ jal something_with_weaponpos_of_guarddata_hand +/* 06D924 7F038DF4 24050001 */ li $a1, 1 +/* 06D928 7F038DF8 1040000B */ beqz $v0, .L7F038E28 +/* 06D92C 7F038DFC 00000000 */ nop +/* 06D930 7F038E00 8C530004 */ lw $s3, 4($v0) +/* 06D934 7F038E04 8FA40218 */ lw $a0, 0x218($sp) +/* 06D938 7F038E08 3C071000 */ lui $a3, 0x1000 +/* 06D93C 7F038E0C 86650004 */ lh $a1, 4($s3) +/* 06D940 7F038E10 0FC148F5 */ jal actor_draws_weapon_with_model +/* 06D944 7F038E14 82660080 */ lb $a2, 0x80($s3) +/* 06D948 7F038E18 10400003 */ beqz $v0, .L7F038E28 +/* 06D94C 7F038E1C 00000000 */ nop +/* 06D950 7F038E20 8C580004 */ lw $t8, 4($v0) +/* 06D954 7F038E24 AFB80210 */ sw $t8, 0x210($sp) +.L7F038E28: +/* 06D958 7F038E28 52600011 */ beql $s3, $zero, .L7F038E70 +/* 06D95C 7F038E2C 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D960 7F038E30 1280000E */ beqz $s4, .L7F038E6C +/* 06D964 7F038E34 8FAE0210 */ lw $t6, 0x210($sp) +/* 06D968 7F038E38 11C0000C */ beqz $t6, .L7F038E6C +/* 06D96C 7F038E3C 8FAF020C */ lw $t7, 0x20c($sp) +/* 06D970 7F038E40 51E0000B */ beql $t7, $zero, .L7F038E70 +/* 06D974 7F038E44 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D978 7F038E48 8E790084 */ lw $t9, 0x84($s3) +/* 06D97C 7F038E4C 56990008 */ bnel $s4, $t9, .L7F038E70 +/* 06D980 7F038E50 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D984 7F038E54 8E8D0084 */ lw $t5, 0x84($s4) +/* 06D988 7F038E58 01C02025 */ move $a0, $t6 +/* 06D98C 7F038E5C 566D0004 */ bnel $s3, $t5, .L7F038E70 +/* 06D990 7F038E60 8EA301D8 */ lw $v1, 0x1d8($s5) +/* 06D994 7F038E64 0FC1475D */ jal link_objects +/* 06D998 7F038E68 01E02825 */ move $a1, $t7 +.L7F038E6C: +/* 06D99C 7F038E6C 8EA301D8 */ lw $v1, 0x1d8($s5) +.L7F038E70: +/* 06D9A0 7F038E70 8FA40218 */ lw $a0, 0x218($sp) +/* 06D9A4 7F038E74 50600006 */ beql $v1, $zero, .L7F038E90 +/* 06D9A8 7F038E78 240A0001 */ li $t2, 1 +/* 06D9AC 7F038E7C 8C620004 */ lw $v0, 4($v1) +/* 06D9B0 7F038E80 00003025 */ move $a2, $zero +/* 06D9B4 7F038E84 0FC14430 */ jal sub_GAME_7F0510C0 +/* 06D9B8 7F038E88 84450004 */ lh $a1, 4($v0) +/* 06D9BC 7F038E8C 240A0001 */ li $t2, 1 +.L7F038E90: +/* 06D9C0 7F038E90 AFAA0234 */ sw $t2, 0x234($sp) +.L7F038E94: +/* 06D9C4 7F038E94 8FA90234 */ lw $t1, 0x234($sp) +.L7F038E98: +/* 06D9C8 7F038E98 02C02025 */ move $a0, $s6 +/* 06D9CC 7F038E9C 02402825 */ move $a1, $s2 +/* 06D9D0 7F038EA0 51200007 */ beql $t1, $zero, .L7F038EC0 +/* 06D9D4 7F038EA4 26520005 */ addiu $s2, $s2, 5 +/* 06D9D8 7F038EA8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06D9DC 7F038EAC 92260004 */ lbu $a2, 4($s1) +/* 06D9E0 7F038EB0 00409025 */ move $s2, $v0 +/* 06D9E4 7F038EB4 1000F1B5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9E8 7F038EB8 02C28821 */ addu $s1, $s6, $v0 +/* 06D9EC 7F038EBC 26520005 */ addiu $s2, $s2, 5 +.L7F038EC0: +/* 06D9F0 7F038EC0 1000F1B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06D9F4 7F038EC4 26310005 */ addiu $s1, $s1, 5 +actionC2_Display_Text_Preset_Bottom_Screen_3: +/* 06D9F8 7F038EC8 922C0001 */ lbu $t4, 1($s1) +/* 06D9FC 7F038ECC 92380002 */ lbu $t8, 2($s1) +/* 06DA00 7F038ED0 000C5A00 */ sll $t3, $t4, 8 +/* 06DA04 7F038ED4 0FC30776 */ jal get_textptr_for_textID +/* 06DA08 7F038ED8 01782025 */ or $a0, $t3, $t8 +/* 06DA0C 7F038EDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 06DA10 7F038EE0 00402025 */ move $a0, $v0 +/* 06DA14 7F038EE4 26520003 */ addiu $s2, $s2, 3 +/* 06DA18 7F038EE8 1000F1A8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA1C 7F038EEC 26310003 */ addiu $s1, $s1, 3 +actionC3_Display_Text_Preset_Top_Screen_3: +/* 06DA20 7F038EF0 92390001 */ lbu $t9, 1($s1) +/* 06DA24 7F038EF4 922E0002 */ lbu $t6, 2($s1) +/* 06DA28 7F038EF8 00196A00 */ sll $t5, $t9, 8 +/* 06DA2C 7F038EFC 0FC30776 */ jal get_textptr_for_textID +/* 06DA30 7F038F00 01AE2025 */ or $a0, $t5, $t6 +/* 06DA34 7F038F04 0FC22A57 */ jal display_string_at_top_of_screen +/* 06DA38 7F038F08 00402025 */ move $a0, $v0 +/* 06DA3C 7F038F0C 26520003 */ addiu $s2, $s2, 3 +/* 06DA40 7F038F10 1000F19E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA44 7F038F14 26310003 */ addiu $s1, $s1, 3 +actionC4_Play_Sound_Effect_num_In_Slot_num_0_7_4: +/* 06DA48 7F038F18 922F0001 */ lbu $t7, 1($s1) +/* 06DA4C 7F038F1C 92290002 */ lbu $t1, 2($s1) +/* 06DA50 7F038F20 82240003 */ lb $a0, 3($s1) +/* 06DA54 7F038F24 000F5200 */ sll $t2, $t7, 8 +/* 06DA58 7F038F28 01492825 */ or $a1, $t2, $t1 +/* 06DA5C 7F038F2C 00056400 */ sll $t4, $a1, 0x10 +/* 06DA60 7F038F30 0FC0D249 */ jal set_sound_effect_to_slot +/* 06DA64 7F038F34 000C2C03 */ sra $a1, $t4, 0x10 +/* 06DA68 7F038F38 26520004 */ addiu $s2, $s2, 4 +/* 06DA6C 7F038F3C 1000F193 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA70 7F038F40 26310004 */ addiu $s1, $s1, 4 +actionC9_Shut_Off_Sound_In_Slot_Number_2: +/* 06DA74 7F038F44 0FC0D26F */ jal sub_GAME_7F0349BC +/* 06DA78 7F038F48 82240001 */ lb $a0, 1($s1) +/* 06DA7C 7F038F4C 26520002 */ addiu $s2, $s2, 2 +/* 06DA80 7F038F50 1000F18E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DA84 7F038F54 26310002 */ addiu $s1, $s1, 2 +actionC7_Sound_In_Slot_num_Crecendos_To_Volume_Over_ms_6: +/* 06DA88 7F038F58 92380002 */ lbu $t8, 2($s1) +/* 06DA8C 7F038F5C 922D0003 */ lbu $t5, 3($s1) +/* 06DA90 7F038F60 922A0004 */ lbu $t2, 4($s1) +/* 06DA94 7F038F64 922C0005 */ lbu $t4, 5($s1) +/* 06DA98 7F038F68 82230001 */ lb $v1, 1($s1) +/* 06DA9C 7F038F6C 0018CA00 */ sll $t9, $t8, 8 +/* 06DAA0 7F038F70 032D2025 */ or $a0, $t9, $t5 +/* 06DAA4 7F038F74 000A4A00 */ sll $t1, $t2, 8 +/* 06DAA8 7F038F78 00047400 */ sll $t6, $a0, 0x10 +/* 06DAAC 7F038F7C 012C2825 */ or $a1, $t1, $t4 +/* 06DAB0 7F038F80 000E2403 */ sra $a0, $t6, 0x10 +/* 06DAB4 7F038F84 0460001D */ bltz $v1, .L7F038FFC +/* 06DAB8 7F038F88 30ABFFFF */ andi $t3, $a1, 0xffff +/* 06DABC 7F038F8C 28610008 */ slti $at, $v1, 8 +/* 06DAC0 7F038F90 1020001A */ beqz $at, .L7F038FFC +/* 06DAC4 7F038F94 24070018 */ li $a3, 24 +/* 06DAC8 7F038F98 00670019 */ multu $v1, $a3 +/* 06DACC 7F038F9C 3C068007 */ lui $a2, %hi(sfx_related) +/* 06DAD0 7F038FA0 24C69B70 */ addiu $a2, %lo(sfx_related) # addiu $a2, $a2, -0x6490 +/* 06DAD4 7F038FA4 01601025 */ move $v0, $t3 +/* 06DAD8 7F038FA8 0000C012 */ mflo $t8 +/* 06DADC 7F038FAC 00D8C821 */ addu $t9, $a2, $t8 +/* 06DAE0 7F038FB0 AF2B0008 */ sw $t3, 8($t9) +/* 06DAE4 7F038FB4 822D0001 */ lb $t5, 1($s1) +/* 06DAE8 7F038FB8 01A70019 */ multu $t5, $a3 +/* 06DAEC 7F038FBC 00007012 */ mflo $t6 +/* 06DAF0 7F038FC0 00CE7821 */ addu $t7, $a2, $t6 +/* 06DAF4 7F038FC4 ADE4000C */ sw $a0, 0xc($t7) +/* 06DAF8 7F038FC8 822A0001 */ lb $t2, 1($s1) +/* 06DAFC 7F038FCC 01470019 */ multu $t2, $a3 +/* 06DB00 7F038FD0 00004812 */ mflo $t1 +/* 06DB04 7F038FD4 00C96021 */ addu $t4, $a2, $t1 +/* 06DB08 7F038FD8 AD800010 */ sw $zero, 0x10($t4) +/* 06DB0C 7F038FDC 822B0001 */ lb $t3, 1($s1) +/* 06DB10 7F038FE0 01670019 */ multu $t3, $a3 +/* 06DB14 7F038FE4 0000C012 */ mflo $t8 +/* 06DB18 7F038FE8 00D8C821 */ addu $t9, $a2, $t8 +/* 06DB1C 7F038FEC 14400003 */ bnez $v0, .L7F038FFC +/* 06DB20 7F038FF0 AF200014 */ sw $zero, 0x14($t9) +/* 06DB24 7F038FF4 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DB28 7F038FF8 82240001 */ lb $a0, 1($s1) +.L7F038FFC: +/* 06DB2C 7F038FFC 26520006 */ addiu $s2, $s2, 6 +/* 06DB30 7F039000 1000F162 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DB34 7F039004 26310006 */ addiu $s1, $s1, 6 +actionC8_Sound_In_Slot_num_Fades_To_Volume_Over_ms_6: +/* 06DB38 7F039008 922D0002 */ lbu $t5, 2($s1) +/* 06DB3C 7F03900C 922F0003 */ lbu $t7, 3($s1) +/* 06DB40 7F039010 92290004 */ lbu $t1, 4($s1) +/* 06DB44 7F039014 922B0005 */ lbu $t3, 5($s1) +/* 06DB48 7F039018 000D7200 */ sll $t6, $t5, 8 +/* 06DB4C 7F03901C 82230001 */ lb $v1, 1($s1) +/* 06DB50 7F039020 01CF5025 */ or $t2, $t6, $t7 +/* 06DB54 7F039024 448A5000 */ mtc1 $t2, $f10 +/* 06DB58 7F039028 00096200 */ sll $t4, $t1, 8 +/* 06DB5C 7F03902C 018B1025 */ or $v0, $t4, $t3 +/* 06DB60 7F039030 3058FFFF */ andi $t8, $v0, 0xffff +/* 06DB64 7F039034 04600020 */ bltz $v1, .L7F0390B8 +/* 06DB68 7F039038 46805320 */ cvt.s.w $f12, $f10 +/* 06DB6C 7F03903C 28610008 */ slti $at, $v1, 8 +/* 06DB70 7F039040 1020001D */ beqz $at, .L7F0390B8 +/* 06DB74 7F039044 0003C880 */ sll $t9, $v1, 2 +/* 06DB78 7F039048 0323C823 */ subu $t9, $t9, $v1 +/* 06DB7C 7F03904C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DB80 7F039050 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DB84 7F039054 00390821 */ addu $at, $at, $t9 +/* 06DB88 7F039058 AC389B78 */ sw $t8, %lo(sfx_related+8)($at) +/* 06DB8C 7F03905C 0FC14E6E */ jal sub_GAME_7F0539B8 +/* 06DB90 7F039060 03008025 */ move $s0, $t8 +/* 06DB94 7F039064 822D0001 */ lb $t5, 1($s1) +/* 06DB98 7F039068 24040018 */ li $a0, 24 +/* 06DB9C 7F03906C 3C038007 */ lui $v1, %hi(sfx_related) +/* 06DBA0 7F039070 01A40019 */ multu $t5, $a0 +/* 06DBA4 7F039074 24639B70 */ addiu $v1, %lo(sfx_related) # addiu $v1, $v1, -0x6490 +/* 06DBA8 7F039078 00007012 */ mflo $t6 +/* 06DBAC 7F03907C 006E7821 */ addu $t7, $v1, $t6 +/* 06DBB0 7F039080 ADE2000C */ sw $v0, 0xc($t7) +/* 06DBB4 7F039084 822A0001 */ lb $t2, 1($s1) +/* 06DBB8 7F039088 01440019 */ multu $t2, $a0 +/* 06DBBC 7F03908C 00004812 */ mflo $t1 +/* 06DBC0 7F039090 00696021 */ addu $t4, $v1, $t1 +/* 06DBC4 7F039094 AD800010 */ sw $zero, 0x10($t4) +/* 06DBC8 7F039098 822B0001 */ lb $t3, 1($s1) +/* 06DBCC 7F03909C 01640019 */ multu $t3, $a0 +/* 06DBD0 7F0390A0 0000C012 */ mflo $t8 +/* 06DBD4 7F0390A4 0078C821 */ addu $t9, $v1, $t8 +/* 06DBD8 7F0390A8 16000003 */ bnez $s0, .L7F0390B8 +/* 06DBDC 7F0390AC AF200014 */ sw $zero, 0x14($t9) +/* 06DBE0 7F0390B0 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DBE4 7F0390B4 82240001 */ lb $a0, 1($s1) +.L7F0390B8: +/* 06DBE8 7F0390B8 26520006 */ addiu $s2, $s2, 6 +/* 06DBEC 7F0390BC 1000F133 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DBF0 7F0390C0 26310006 */ addiu $s1, $s1, 6 +actionC5_EmanateSoundSlotnumFrom16ObjectWithAudibleRV_5: +/* 06DBF4 7F0390C4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DBF8 7F0390C8 92240002 */ lbu $a0, 2($s1) +/* 06DBFC 7F0390CC 922D0003 */ lbu $t5, 3($s1) +/* 06DC00 7F0390D0 922F0004 */ lbu $t7, 4($s1) +/* 06DC04 7F0390D4 82230001 */ lb $v1, 1($s1) +/* 06DC08 7F0390D8 000D7200 */ sll $t6, $t5, 8 +/* 06DC0C 7F0390DC 01CF2825 */ or $a1, $t6, $t7 +/* 06DC10 7F0390E0 0460001C */ bltz $v1, .L7F039154 +/* 06DC14 7F0390E4 30AAFFFF */ andi $t2, $a1, 0xffff +/* 06DC18 7F0390E8 28610008 */ slti $at, $v1, 8 +/* 06DC1C 7F0390EC 5020001A */ beql $at, $zero, .L7F039158 +/* 06DC20 7F0390F0 26520005 */ addiu $s2, $s2, 5 +/* 06DC24 7F0390F4 10400017 */ beqz $v0, .L7F039154 +/* 06DC28 7F0390F8 00034880 */ sll $t1, $v1, 2 +/* 06DC2C 7F0390FC 01234823 */ subu $t1, $t1, $v1 +/* 06DC30 7F039100 000948C0 */ sll $t1, $t1, 3 +/* 06DC34 7F039104 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DC38 7F039108 00290821 */ addu $at, $at, $t1 +/* 06DC3C 7F03910C AC2A9B78 */ sw $t2, %lo(sfx_related+8)($at) +/* 06DC40 7F039110 822C0001 */ lb $t4, 1($s1) +/* 06DC44 7F039114 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DC48 7F039118 000C5880 */ sll $t3, $t4, 2 +/* 06DC4C 7F03911C 016C5823 */ subu $t3, $t3, $t4 +/* 06DC50 7F039120 000B58C0 */ sll $t3, $t3, 3 +/* 06DC54 7F039124 002B0821 */ addu $at, $at, $t3 +/* 06DC58 7F039128 AC209B80 */ sw $zero, %lo(sfx_related+16)($at) +/* 06DC5C 7F03912C 82380001 */ lb $t8, 1($s1) +/* 06DC60 7F039130 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DC64 7F039134 0018C880 */ sll $t9, $t8, 2 +/* 06DC68 7F039138 0338C823 */ subu $t9, $t9, $t8 +/* 06DC6C 7F03913C 0019C8C0 */ sll $t9, $t9, 3 +/* 06DC70 7F039140 00390821 */ addu $at, $at, $t9 +/* 06DC74 7F039144 15400003 */ bnez $t2, .L7F039154 +/* 06DC78 7F039148 AC229B84 */ sw $v0, %lo(sfx_related+20)($at) +/* 06DC7C 7F03914C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DC80 7F039150 82240001 */ lb $a0, 1($s1) +.L7F039154: +/* 06DC84 7F039154 26520005 */ addiu $s2, $s2, 5 +.L7F039158: +/* 06DC88 7F039158 1000F10C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DC8C 7F03915C 26310005 */ addiu $s1, $s1, 5 +actionC6_EmanateSoundSlotnumFromPresetWithAudibleRV_6: +/* 06DC90 7F039160 922D0002 */ lbu $t5, 2($s1) +/* 06DC94 7F039164 922F0003 */ lbu $t7, 3($s1) +/* 06DC98 7F039168 92290004 */ lbu $t1, 4($s1) +/* 06DC9C 7F03916C 922B0005 */ lbu $t3, 5($s1) +/* 06DCA0 7F039170 000D7200 */ sll $t6, $t5, 8 +/* 06DCA4 7F039174 01CF1025 */ or $v0, $t6, $t7 +/* 06DCA8 7F039178 00096200 */ sll $t4, $t1, 8 +/* 06DCAC 7F03917C 304AFFFF */ andi $t2, $v0, 0xffff +/* 06DCB0 7F039180 018B2825 */ or $a1, $t4, $t3 +/* 06DCB4 7F039184 30B8FFFF */ andi $t8, $a1, 0xffff +/* 06DCB8 7F039188 29412710 */ slti $at, $t2, 0x2710 +/* 06DCBC 7F03918C 03002825 */ move $a1, $t8 +/* 06DCC0 7F039190 1020000A */ beqz $at, .L7F0391BC +/* 06DCC4 7F039194 01401825 */ move $v1, $t2 +/* 06DCC8 7F039198 000AC880 */ sll $t9, $t2, 2 +/* 06DCCC 7F03919C 032AC823 */ subu $t9, $t9, $t2 +/* 06DCD0 7F0391A0 0019C880 */ sll $t9, $t9, 2 +/* 06DCD4 7F0391A4 3C0D8007 */ lui $t5, %hi(ptr_0xxxpresets) +/* 06DCD8 7F0391A8 8DAD5D18 */ lw $t5, %lo(ptr_0xxxpresets)($t5) +/* 06DCDC 7F0391AC 032AC823 */ subu $t9, $t9, $t2 +/* 06DCE0 7F0391B0 0019C880 */ sll $t9, $t9, 2 +/* 06DCE4 7F0391B4 1000000A */ b .L7F0391E0 +/* 06DCE8 7F0391B8 032D2021 */ addu $a0, $t9, $t5 +.L7F0391BC: +/* 06DCEC 7F0391BC 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06DCF0 7F0391C0 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06DCF4 7F0391C4 00037100 */ sll $t6, $v1, 4 +/* 06DCF8 7F0391C8 01C37021 */ addu $t6, $t6, $v1 +/* 06DCFC 7F0391CC 000E7080 */ sll $t6, $t6, 2 +/* 06DD00 7F0391D0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06DD04 7F0391D4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06DD08 7F0391D8 01CF2021 */ addu $a0, $t6, $t7 +/* 06DD0C 7F0391DC 00812021 */ addu $a0, $a0, $at +.L7F0391E0: +/* 06DD10 7F0391E0 82230001 */ lb $v1, 1($s1) +/* 06DD14 7F0391E4 0460001B */ bltz $v1, .L7F039254 +/* 06DD18 7F0391E8 28610008 */ slti $at, $v1, 8 +/* 06DD1C 7F0391EC 5020001A */ beql $at, $zero, .L7F039258 +/* 06DD20 7F0391F0 26520006 */ addiu $s2, $s2, 6 +/* 06DD24 7F0391F4 10800017 */ beqz $a0, .L7F039254 +/* 06DD28 7F0391F8 00035080 */ sll $t2, $v1, 2 +/* 06DD2C 7F0391FC 01435023 */ subu $t2, $t2, $v1 +/* 06DD30 7F039200 000A50C0 */ sll $t2, $t2, 3 +/* 06DD34 7F039204 3C018007 */ lui $at, %hi(sfx_related+8) +/* 06DD38 7F039208 002A0821 */ addu $at, $at, $t2 +/* 06DD3C 7F03920C AC259B78 */ sw $a1, %lo(sfx_related+8)($at) +/* 06DD40 7F039210 82290001 */ lb $t1, 1($s1) +/* 06DD44 7F039214 3C018007 */ lui $at, %hi(sfx_related+16) +/* 06DD48 7F039218 00096080 */ sll $t4, $t1, 2 +/* 06DD4C 7F03921C 01896023 */ subu $t4, $t4, $t1 +/* 06DD50 7F039220 000C60C0 */ sll $t4, $t4, 3 +/* 06DD54 7F039224 002C0821 */ addu $at, $at, $t4 +/* 06DD58 7F039228 AC249B80 */ sw $a0, %lo(sfx_related+16)($at) +/* 06DD5C 7F03922C 822B0001 */ lb $t3, 1($s1) +/* 06DD60 7F039230 3C018007 */ lui $at, %hi(sfx_related+20) +/* 06DD64 7F039234 000BC080 */ sll $t8, $t3, 2 +/* 06DD68 7F039238 030BC023 */ subu $t8, $t8, $t3 +/* 06DD6C 7F03923C 0018C0C0 */ sll $t8, $t8, 3 +/* 06DD70 7F039240 00380821 */ addu $at, $at, $t8 +/* 06DD74 7F039244 14A00003 */ bnez $a1, .L7F039254 +/* 06DD78 7F039248 AC209B84 */ sw $zero, %lo(sfx_related+20)($at) +/* 06DD7C 7F03924C 0FC0D1E8 */ jal set_sound_effect_source_to_location +/* 06DD80 7F039250 82240001 */ lb $a0, 1($s1) +.L7F039254: +/* 06DD84 7F039254 26520006 */ addiu $s2, $s2, 6 +.L7F039258: +/* 06DD88 7F039258 1000F0CC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DD8C 7F03925C 26310006 */ addiu $s1, $s1, 6 +actionCA_If_Value_GreaterThan_Volume_7FFF_Max_RVL_5: +/* 06DD90 7F039260 92390002 */ lbu $t9, 2($s1) +/* 06DD94 7F039264 922E0003 */ lbu $t6, 3($s1) +/* 06DD98 7F039268 82230001 */ lb $v1, 1($s1) +/* 06DD9C 7F03926C 00196A00 */ sll $t5, $t9, 8 +/* 06DDA0 7F039270 01AE1025 */ or $v0, $t5, $t6 +/* 06DDA4 7F039274 00027C00 */ sll $t7, $v0, 0x10 +/* 06DDA8 7F039278 04600013 */ bltz $v1, .L7F0392C8 +/* 06DDAC 7F03927C 000F5403 */ sra $t2, $t7, 0x10 +/* 06DDB0 7F039280 28610008 */ slti $at, $v1, 8 +/* 06DDB4 7F039284 10200010 */ beqz $at, .L7F0392C8 +/* 06DDB8 7F039288 00034880 */ sll $t1, $v1, 2 +/* 06DDBC 7F03928C 01234823 */ subu $t1, $t1, $v1 +/* 06DDC0 7F039290 000948C0 */ sll $t1, $t1, 3 +/* 06DDC4 7F039294 3C0C8007 */ lui $t4, %hi(sfx_related+4) +/* 06DDC8 7F039298 01896021 */ addu $t4, $t4, $t1 +/* 06DDCC 7F03929C 8D8C9B74 */ lw $t4, %lo(sfx_related+4)($t4) +/* 06DDD0 7F0392A0 02C02025 */ move $a0, $s6 +/* 06DDD4 7F0392A4 02402825 */ move $a1, $s2 +/* 06DDD8 7F0392A8 018A082A */ slt $at, $t4, $t2 +/* 06DDDC 7F0392AC 50200007 */ beql $at, $zero, .L7F0392CC +/* 06DDE0 7F0392B0 26520005 */ addiu $s2, $s2, 5 +/* 06DDE4 7F0392B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DDE8 7F0392B8 92260004 */ lbu $a2, 4($s1) +/* 06DDEC 7F0392BC 00409025 */ move $s2, $v0 +/* 06DDF0 7F0392C0 1000F0B2 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DDF4 7F0392C4 02C28821 */ addu $s1, $s6, $v0 +.L7F0392C8: +/* 06DDF8 7F0392C8 26520005 */ addiu $s2, $s2, 5 +.L7F0392CC: +/* 06DDFC 7F0392CC 1000F0AF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE00 7F0392D0 26310005 */ addiu $s1, $s1, 5 +actionCB_Set_Object_Path_27_Type_Object_2: +/* 06DE04 7F0392D4 0FC0D50D */ jal get_ptr_path_for_pathnum +/* 06DE08 7F0392D8 92240001 */ lbu $a0, 1($s1) +/* 06DE0C 7F0392DC 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE10 7F0392E0 26520002 */ addiu $s2, $s2, 2 +/* 06DE14 7F0392E4 11600003 */ beqz $t3, .L7F0392F4 +/* 06DE18 7F0392E8 00000000 */ nop +/* 06DE1C 7F0392EC AD6200A4 */ sw $v0, 0xa4($t3) +/* 06DE20 7F0392F0 AD6000A8 */ sw $zero, 0xa8($t3) +.L7F0392F4: +/* 06DE24 7F0392F4 1000F0A5 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE28 7F0392F8 26310002 */ addiu $s1, $s1, 2 +actionCC_Set_Speed_Moving_Vehicle_27_Type_Object_5: +/* 06DE2C 7F0392FC 922F0001 */ lbu $t7, 1($s1) +/* 06DE30 7F039300 92290002 */ lbu $t1, 2($s1) +/* 06DE34 7F039304 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 06DE38 7F039308 000F5200 */ sll $t2, $t7, 8 +/* 06DE3C 7F03930C 01496025 */ or $t4, $t2, $t1 +/* 06DE40 7F039310 448C8000 */ mtc1 $t4, $f16 +/* 06DE44 7F039314 44812000 */ mtc1 $at, $f4 +/* 06DE48 7F039318 92380003 */ lbu $t8, 3($s1) +/* 06DE4C 7F03931C 46808220 */ cvt.s.w $f8, $f16 +/* 06DE50 7F039320 922D0004 */ lbu $t5, 4($s1) +/* 06DE54 7F039324 0018CA00 */ sll $t9, $t8, 8 +/* 06DE58 7F039328 8FAB07B0 */ lw $t3, 0x7b0($sp) +/* 06DE5C 7F03932C 3C014670 */ li $at, 0x46700000 # 15360.000000 +/* 06DE60 7F039330 032D7025 */ or $t6, $t9, $t5 +/* 06DE64 7F039334 46044182 */ mul.s $f6, $f8, $f4 +/* 06DE68 7F039338 448E9000 */ mtc1 $t6, $f18 +/* 06DE6C 7F03933C 44815000 */ mtc1 $at, $f10 +/* 06DE70 7F039340 26520005 */ addiu $s2, $s2, 5 +/* 06DE74 7F039344 46809020 */ cvt.s.w $f0, $f18 +/* 06DE78 7F039348 11600003 */ beqz $t3, .L7F039358 +/* 06DE7C 7F03934C 460A3083 */ div.s $f2, $f6, $f10 +/* 06DE80 7F039350 E5620094 */ swc1 $f2, 0x94($t3) +/* 06DE84 7F039354 E5600098 */ swc1 $f0, 0x98($t3) +.L7F039358: +/* 06DE88 7F039358 1000F08C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DE8C 7F03935C 26310005 */ addiu $s1, $s1, 5 +actionCD_Set_Speed_Aircraft_Rotor_5: +/* 06DE90 7F039360 922F0001 */ lbu $t7, 1($s1) +/* 06DE94 7F039364 92290002 */ lbu $t1, 2($s1) +/* 06DE98 7F039368 92380003 */ lbu $t8, 3($s1) +/* 06DE9C 7F03936C 000F5200 */ sll $t2, $t7, 8 +/* 06DEA0 7F039370 01496025 */ or $t4, $t2, $t1 +/* 06DEA4 7F039374 448C8000 */ mtc1 $t4, $f16 +/* 06DEA8 7F039378 922D0004 */ lbu $t5, 4($s1) +/* 06DEAC 7F03937C 0018CA00 */ sll $t9, $t8, 8 +/* 06DEB0 7F039380 46808220 */ cvt.s.w $f8, $f16 +/* 06DEB4 7F039384 8FAB07AC */ lw $t3, 0x7ac($sp) +/* 06DEB8 7F039388 3C014561 */ li $at, 0x45610000 # 3600.000000 +/* 06DEBC 7F03938C 032D7025 */ or $t6, $t9, $t5 +/* 06DEC0 7F039390 448E9000 */ mtc1 $t6, $f18 +/* 06DEC4 7F039394 44813000 */ mtc1 $at, $f6 +/* 06DEC8 7F039398 461A4102 */ mul.s $f4, $f8, $f26 +/* 06DECC 7F03939C 26520005 */ addiu $s2, $s2, 5 +/* 06DED0 7F0393A0 46809020 */ cvt.s.w $f0, $f18 +/* 06DED4 7F0393A4 11600003 */ beqz $t3, .L7F0393B4 +/* 06DED8 7F0393A8 46062083 */ div.s $f2, $f4, $f6 +/* 06DEDC 7F0393AC E5620090 */ swc1 $f2, 0x90($t3) +/* 06DEE0 7F0393B0 E5600094 */ swc1 $f0, 0x94($t3) +.L7F0393B4: +/* 06DEE4 7F0393B4 1000F075 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DEE8 7F0393B8 26310005 */ addiu $s1, $s1, 5 +actionCE_Detect_If_Currently_In_Intro_Camera_RVL_If_So_2: +/* 06DEEC 7F0393BC 0FC1E94A */ jal get_camera_mode +/* 06DEF0 7F0393C0 00000000 */ nop +/* 06DEF4 7F0393C4 24010001 */ li $at, 1 +/* 06DEF8 7F0393C8 50410006 */ beql $v0, $at, .L7F0393E4 +/* 06DEFC 7F0393CC 02C02025 */ move $a0, $s6 +/* 06DF00 7F0393D0 0FC1E94A */ jal get_camera_mode +/* 06DF04 7F0393D4 00000000 */ nop +/* 06DF08 7F0393D8 24010002 */ li $at, 2 +/* 06DF0C 7F0393DC 14410007 */ bne $v0, $at, .L7F0393FC +/* 06DF10 7F0393E0 02C02025 */ move $a0, $s6 +.L7F0393E4: +/* 06DF14 7F0393E4 02402825 */ move $a1, $s2 +/* 06DF18 7F0393E8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF1C 7F0393EC 92260001 */ lbu $a2, 1($s1) +/* 06DF20 7F0393F0 00409025 */ move $s2, $v0 +/* 06DF24 7F0393F4 1000F065 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF28 7F0393F8 02C28821 */ addu $s1, $s6, $v0 +.L7F0393FC: +/* 06DF2C 7F0393FC 26520002 */ addiu $s2, $s2, 2 +/* 06DF30 7F039400 1000F062 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF34 7F039404 26310002 */ addiu $s1, $s1, 2 +actionCF_Detect_If_Currently_In_Intro_Swirl_RVL_If_So_2: +/* 06DF38 7F039408 0FC1E94A */ jal get_camera_mode +/* 06DF3C 7F03940C 00000000 */ nop +/* 06DF40 7F039410 24010003 */ li $at, 3 +/* 06DF44 7F039414 14410007 */ bne $v0, $at, .L7F039434 +/* 06DF48 7F039418 02C02025 */ move $a0, $s6 +/* 06DF4C 7F03941C 02402825 */ move $a1, $s2 +/* 06DF50 7F039420 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06DF54 7F039424 92260001 */ lbu $a2, 1($s1) +/* 06DF58 7F039428 00409025 */ move $s2, $v0 +/* 06DF5C 7F03942C 1000F057 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF60 7F039430 02C28821 */ addu $s1, $s6, $v0 +.L7F039434: +/* 06DF64 7F039434 26520002 */ addiu $s2, $s2, 2 +/* 06DF68 7F039438 1000F054 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DF6C 7F03943C 26310002 */ addiu $s1, $s1, 2 +actionD0_Change_Animation_Type_Of_Type_16_Monitor_4: +/* 06DF70 7F039440 0FC15C30 */ jal get_handle_to_tagged_object +/* 06DF74 7F039444 92240001 */ lbu $a0, 1($s1) +/* 06DF78 7F039448 1040001D */ beqz $v0, .L7F0394C0 +/* 06DF7C 7F03944C 00403025 */ move $a2, $v0 +/* 06DF80 7F039450 8C580010 */ lw $t8, 0x10($v0) +/* 06DF84 7F039454 5300001B */ beql $t8, $zero, .L7F0394C4 +/* 06DF88 7F039458 26520004 */ addiu $s2, $s2, 4 +/* 06DF8C 7F03945C 90430003 */ lbu $v1, 3($v0) +/* 06DF90 7F039460 2401000A */ li $at, 10 +/* 06DF94 7F039464 24440080 */ addiu $a0, $v0, 0x80 +/* 06DF98 7F039468 54610007 */ bnel $v1, $at, .L7F039488 +/* 06DF9C 7F03946C 2401000B */ li $at, 11 +/* 06DFA0 7F039470 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFA4 7F039474 92250003 */ lbu $a1, 3($s1) +/* 06DFA8 7F039478 26520004 */ addiu $s2, $s2, 4 +/* 06DFAC 7F03947C 1000F043 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFB0 7F039480 26310004 */ addiu $s1, $s1, 4 +/* 06DFB4 7F039484 2401000B */ li $at, 11 +.L7F039488: +/* 06DFB8 7F039488 5461000E */ bnel $v1, $at, .L7F0394C4 +/* 06DFBC 7F03948C 26520004 */ addiu $s2, $s2, 4 +/* 06DFC0 7F039490 92220002 */ lbu $v0, 2($s1) +/* 06DFC4 7F039494 28410004 */ slti $at, $v0, 4 +/* 06DFC8 7F039498 10200009 */ beqz $at, .L7F0394C0 +/* 06DFCC 7F03949C 0002C8C0 */ sll $t9, $v0, 3 +/* 06DFD0 7F0394A0 0322C823 */ subu $t9, $t9, $v0 +/* 06DFD4 7F0394A4 0019C880 */ sll $t9, $t9, 2 +/* 06DFD8 7F0394A8 0322C821 */ addu $t9, $t9, $v0 +/* 06DFDC 7F0394AC 0019C880 */ sll $t9, $t9, 2 +/* 06DFE0 7F0394B0 00D92021 */ addu $a0, $a2, $t9 +/* 06DFE4 7F0394B4 24840080 */ addiu $a0, $a0, 0x80 +/* 06DFE8 7F0394B8 0FC12726 */ jal set_ptr_monitor_img_to_obj_ani_slot +/* 06DFEC 7F0394BC 92250003 */ lbu $a1, 3($s1) +.L7F0394C0: +/* 06DFF0 7F0394C0 26520004 */ addiu $s2, $s2, 4 +.L7F0394C4: +/* 06DFF4 7F0394C4 1000F031 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06DFF8 7F0394C8 26310004 */ addiu $s1, $s1, 4 +actionD1_If_Bond_In_Tank_RVL_2: +/* 06DFFC 7F0394CC 0FC1F39E */ jal get_intank_flag +/* 06E000 7F0394D0 00000000 */ nop +/* 06E004 7F0394D4 24010001 */ li $at, 1 +/* 06E008 7F0394D8 14410007 */ bne $v0, $at, .L7F0394F8 +/* 06E00C 7F0394DC 02C02025 */ move $a0, $s6 +/* 06E010 7F0394E0 02402825 */ move $a1, $s2 +/* 06E014 7F0394E4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E018 7F0394E8 92260001 */ lbu $a2, 1($s1) +/* 06E01C 7F0394EC 00409025 */ move $s2, $v0 +/* 06E020 7F0394F0 1000F026 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E024 7F0394F4 02C28821 */ addu $s1, $s6, $v0 +.L7F0394F8: +/* 06E028 7F0394F8 26520002 */ addiu $s2, $s2, 2 +/* 06E02C 7F0394FC 1000F023 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E030 7F039500 26310002 */ addiu $s1, $s1, 2 +actionD2_Exit_Level_1: +/* 06E034 7F039504 3C0D8003 */ lui $t5, %hi(camera_8003642C) +/* 06E038 7F039508 8DAD642C */ lw $t5, %lo(camera_8003642C)($t5) +/* 06E03C 7F03950C 3C0E8003 */ lui $t6, %hi(camera_80036434) +/* 06E040 7F039510 11A0000A */ beqz $t5, .L7F03953C +/* 06E044 7F039514 00000000 */ nop +/* 06E048 7F039518 8DCE6434 */ lw $t6, %lo(camera_80036434)($t6) +/* 06E04C 7F03951C 240F0001 */ li $t7, 1 +/* 06E050 7F039520 3C018003 */ lui $at, %hi(camera_80036434) +/* 06E054 7F039524 55C00008 */ bnezl $t6, .L7F039548 +/* 06E058 7F039528 26520001 */ addiu $s2, $s2, 1 +/* 06E05C 7F03952C AC2F6434 */ sw $t7, %lo(camera_80036434)($at) +/* 06E060 7F039530 26520001 */ addiu $s2, $s2, 1 +/* 06E064 7F039534 1000F015 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E068 7F039538 26310001 */ addiu $s1, $s1, 1 +.L7F03953C: +/* 06E06C 7F03953C 0C001A5A */ jal return_to_title_from_level_end +/* 06E070 7F039540 00000000 */ nop +/* 06E074 7F039544 26520001 */ addiu $s2, $s2, 1 +.L7F039548: +/* 06E078 7F039548 1000F010 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E07C 7F03954C 26310001 */ addiu $s1, $s1, 1 +actionD3_Return_From_Camera_Scene_1: +/* 06E080 7F039550 0FC1EA6E */ jal set_camera_mode +/* 06E084 7F039554 24040008 */ li $a0, 8 +/* 06E088 7F039558 26520001 */ addiu $s2, $s2, 1 +/* 06E08C 7F03955C 1000F00B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E090 7F039560 26310001 */ addiu $s1, $s1, 1 +actionD4_Camera_Looks_At_Bond_From_Preset_3: +/* 06E094 7F039564 922A0001 */ lbu $t2, 1($s1) +/* 06E098 7F039568 922C0002 */ lbu $t4, 2($s1) +/* 06E09C 7F03956C 3C0F8007 */ lui $t7, %hi(ptr_2xxxpresets) +/* 06E0A0 7F039570 000A4A00 */ sll $t1, $t2, 8 +/* 06E0A4 7F039574 012C1025 */ or $v0, $t1, $t4 +/* 06E0A8 7F039578 304BFFFF */ andi $t3, $v0, 0xffff +/* 06E0AC 7F03957C 29612710 */ slti $at, $t3, 0x2710 +/* 06E0B0 7F039580 1020000C */ beqz $at, .L7F0395B4 +/* 06E0B4 7F039584 01601825 */ move $v1, $t3 +/* 06E0B8 7F039588 000BC080 */ sll $t8, $t3, 2 +/* 06E0BC 7F03958C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0C0 7F039590 3C198007 */ lui $t9, %hi(ptr_0xxxpresets) +/* 06E0C4 7F039594 8F395D18 */ lw $t9, %lo(ptr_0xxxpresets)($t9) +/* 06E0C8 7F039598 0018C080 */ sll $t8, $t8, 2 +/* 06E0CC 7F03959C 030BC023 */ subu $t8, $t8, $t3 +/* 06E0D0 7F0395A0 0018C080 */ sll $t8, $t8, 2 +/* 06E0D4 7F0395A4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E0D8 7F0395A8 03196821 */ addu $t5, $t8, $t9 +/* 06E0DC 7F0395AC 1000000B */ b .L7F0395DC +/* 06E0E0 7F0395B0 AC2D99F8 */ sw $t5, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395B4: +/* 06E0E4 7F0395B4 8DEF5D1C */ lw $t7, %lo(ptr_2xxxpresets)($t7) +/* 06E0E8 7F0395B8 00037100 */ sll $t6, $v1, 4 +/* 06E0EC 7F0395BC 01C37021 */ addu $t6, $t6, $v1 +/* 06E0F0 7F0395C0 000E7080 */ sll $t6, $t6, 2 +/* 06E0F4 7F0395C4 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E0F8 7F0395C8 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E0FC 7F0395CC 01CF5021 */ addu $t2, $t6, $t7 +/* 06E100 7F0395D0 01414821 */ addu $t1, $t2, $at +/* 06E104 7F0395D4 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E108 7F0395D8 AC2999F8 */ sw $t1, %lo(dword_CODE_bss_800799F8)($at) +.L7F0395DC: +/* 06E10C 7F0395DC 0FC1EA6E */ jal set_camera_mode +/* 06E110 7F0395E0 24040007 */ li $a0, 7 +/* 06E114 7F0395E4 26520003 */ addiu $s2, $s2, 3 +/* 06E118 7F0395E8 1000EFE8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E11C 7F0395EC 26310003 */ addiu $s1, $s1, 3 +actionD5_Go_To_Camera_Position_6: +/* 06E120 7F0395F0 0FC15C20 */ jal sub_GAME_7F057080 +/* 06E124 7F0395F4 92240001 */ lbu $a0, 1($s1) +/* 06E128 7F0395F8 1040001A */ beqz $v0, .L7F039664 +/* 06E12C 7F0395FC 00408025 */ move $s0, $v0 +/* 06E130 7F039600 0FC15AC7 */ jal check_if_object_type_has_been_loaded +/* 06E134 7F039604 00402025 */ move $a0, $v0 +/* 06E138 7F039608 04420017 */ bltzl $v0, .L7F039668 +/* 06E13C 7F03960C 26520006 */ addiu $s2, $s2, 6 +/* 06E140 7F039610 860C0006 */ lh $t4, 6($s0) +/* 06E144 7F039614 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 06E148 7F039618 01822021 */ addu $a0, $t4, $v0 +/* 06E14C 7F03961C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E150 7F039620 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E154 7F039624 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E158 7F039628 AC2299FC */ sw $v0, %lo(dword_CODE_bss_800799FC)($at) +/* 06E15C 7F03962C 922B0002 */ lbu $t3, 2($s1) +/* 06E160 7F039630 92390003 */ lbu $t9, 3($s1) +/* 06E164 7F039634 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A18) +/* 06E168 7F039638 000BC200 */ sll $t8, $t3, 8 +/* 06E16C 7F03963C 03196825 */ or $t5, $t8, $t9 +/* 06E170 7F039640 AC2D9A18 */ sw $t5, %lo(dword_CODE_bss_80079A18)($at) +/* 06E174 7F039644 922E0004 */ lbu $t6, 4($s1) +/* 06E178 7F039648 922A0005 */ lbu $t2, 5($s1) +/* 06E17C 7F03964C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A1C) +/* 06E180 7F039650 000E7A00 */ sll $t7, $t6, 8 +/* 06E184 7F039654 01EA4825 */ or $t1, $t7, $t2 +/* 06E188 7F039658 AC299A1C */ sw $t1, %lo(dword_CODE_bss_80079A1C)($at) +/* 06E18C 7F03965C 0FC1EA6E */ jal set_camera_mode +/* 06E190 7F039660 24040007 */ li $a0, 7 +.L7F039664: +/* 06E194 7F039664 26520006 */ addiu $s2, $s2, 6 +.L7F039668: +/* 06E198 7F039668 1000EFC8 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E19C 7F03966C 26310006 */ addiu $s1, $s1, 6 +actionD6_If_Less_Than_Elevation_RVL_4: +/* 06E1A0 7F039670 922C0001 */ lbu $t4, 1($s1) +/* 06E1A4 7F039674 92380002 */ lbu $t8, 2($s1) +/* 06E1A8 7F039678 000C5A00 */ sll $t3, $t4, 8 +/* 06E1AC 7F03967C 0178C825 */ or $t9, $t3, $t8 +/* 06E1B0 7F039680 00196C00 */ sll $t5, $t9, 0x10 +/* 06E1B4 7F039684 000D7403 */ sra $t6, $t5, 0x10 +/* 06E1B8 7F039688 448E5000 */ mtc1 $t6, $f10 +/* 06E1BC 7F03968C 00000000 */ nop +/* 06E1C0 7F039690 468054A0 */ cvt.s.w $f18, $f10 +/* 06E1C4 7F039694 0FC225E6 */ jal get_curplayer_positiondata +/* 06E1C8 7F039698 E7B2014C */ swc1 $f18, 0x14c($sp) +/* 06E1CC 7F03969C C450000C */ lwc1 $f16, 0xc($v0) +/* 06E1D0 7F0396A0 C7A8014C */ lwc1 $f8, 0x14c($sp) +/* 06E1D4 7F0396A4 02C02025 */ move $a0, $s6 +/* 06E1D8 7F0396A8 02402825 */ move $a1, $s2 +/* 06E1DC 7F0396AC 4608803C */ c.lt.s $f16, $f8 +/* 06E1E0 7F0396B0 00000000 */ nop +/* 06E1E4 7F0396B4 45020007 */ bc1fl .L7F0396D4 +/* 06E1E8 7F0396B8 26520004 */ addiu $s2, $s2, 4 +/* 06E1EC 7F0396BC 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E1F0 7F0396C0 92260003 */ lbu $a2, 3($s1) +/* 06E1F4 7F0396C4 00409025 */ move $s2, $v0 +/* 06E1F8 7F0396C8 1000EFB0 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E1FC 7F0396CC 02C28821 */ addu $s1, $s6, $v0 +/* 06E200 7F0396D0 26520004 */ addiu $s2, $s2, 4 +.L7F0396D4: +/* 06E204 7F0396D4 1000EFAD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E208 7F0396D8 26310004 */ addiu $s1, $s1, 4 +actionD7_Disable_Text_Variable_2: +/* 06E20C 7F0396DC 24040004 */ li $a0, 4 +/* 06E210 7F0396E0 0FC1A96A */ jal set_unset_bitflags +/* 06E214 7F0396E4 00002825 */ move $a1, $zero +/* 06E218 7F0396E8 24040002 */ li $a0, 2 +/* 06E21C 7F0396EC 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E220 7F0396F0 00002825 */ move $a1, $zero +/* 06E224 7F0396F4 92250001 */ lbu $a1, 1($s1) +/* 06E228 7F0396F8 30AF0002 */ andi $t7, $a1, 2 +/* 06E22C 7F0396FC 55E00005 */ bnezl $t7, .L7F039714 +/* 06E230 7F039700 30AA0001 */ andi $t2, $a1, 1 +/* 06E234 7F039704 0FC228E7 */ jal set_flags_in_BONDdata_stationary_intro_cam +/* 06E238 7F039708 24040002 */ li $a0, 2 +/* 06E23C 7F03970C 92250001 */ lbu $a1, 1($s1) +/* 06E240 7F039710 30AA0001 */ andi $t2, $a1, 1 +.L7F039714: +/* 06E244 7F039714 55400005 */ bnezl $t2, .L7F03972C +/* 06E248 7F039718 30A90004 */ andi $t1, $a1, 4 +/* 06E24C 7F03971C 0FC22A51 */ jal sub_GAME_7F08A944 +/* 06E250 7F039720 24040002 */ li $a0, 2 +/* 06E254 7F039724 92250001 */ lbu $a1, 1($s1) +/* 06E258 7F039728 30A90004 */ andi $t1, $a1, 4 +.L7F03972C: +/* 06E25C 7F03972C 15200003 */ bnez $t1, .L7F03973C +/* 06E260 7F039730 24040010 */ li $a0, 16 +/* 06E264 7F039734 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E268 7F039738 00002825 */ move $a1, $zero +.L7F03973C: +/* 06E26C 7F03973C 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E270 7F039740 AC2064B0 */ sw $zero, %lo(D_800364B0)($at) +/* 06E274 7F039744 26520002 */ addiu $s2, $s2, 2 +/* 06E278 7F039748 1000EF90 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E27C 7F03974C 26310002 */ addiu $s1, $s1, 2 +actionD8_Enable_All_On_Screen_Displays_1: +/* 06E280 7F039750 24040004 */ li $a0, 4 +/* 06E284 7F039754 0FC1A96A */ jal set_unset_bitflags +/* 06E288 7F039758 24050001 */ li $a1, 1 +/* 06E28C 7F03975C 24040002 */ li $a0, 2 +/* 06E290 7F039760 0FC1A43D */ jal set_unset_ammo_on_screen_setting +/* 06E294 7F039764 24050001 */ li $a1, 1 +/* 06E298 7F039768 0FC228E0 */ jal unset_flags_in_BONDdata_stationary_intro_cam +/* 06E29C 7F03976C 24040002 */ li $a0, 2 +/* 06E2A0 7F039770 0FC22A4A */ jal sub_GAME_7F08A928 +/* 06E2A4 7F039774 24040002 */ li $a0, 2 +/* 06E2A8 7F039778 24040010 */ li $a0, 16 +/* 06E2AC 7F03977C 0FC15858 */ jal set_unset_clock_lock_bits +/* 06E2B0 7F039780 24050001 */ li $a1, 1 +/* 06E2B4 7F039784 240C0001 */ li $t4, 1 +/* 06E2B8 7F039788 3C018003 */ lui $at, %hi(D_800364B0) +/* 06E2BC 7F03978C AC2C64B0 */ sw $t4, %lo(D_800364B0)($at) +/* 06E2C0 7F039790 26520001 */ addiu $s2, $s2, 1 +/* 06E2C4 7F039794 1000EF7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E2C8 7F039798 26310001 */ addiu $s1, $s1, 1 +actionD9_GuardIDMovedToPresetReturnLoopIfSuccessful_5: +/* 06E2CC 7F03979C 922B0002 */ lbu $t3, 2($s1) +/* 06E2D0 7F0397A0 92390003 */ lbu $t9, 3($s1) +/* 06E2D4 7F0397A4 02E02025 */ move $a0, $s7 +/* 06E2D8 7F0397A8 000BC200 */ sll $t8, $t3, 8 +/* 06E2DC 7F0397AC 92250001 */ lbu $a1, 1($s1) +/* 06E2E0 7F0397B0 0000A025 */ move $s4, $zero +/* 06E2E4 7F0397B4 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E2E8 7F0397B8 03199825 */ or $s3, $t8, $t9 +/* 06E2EC 7F0397BC 1040005E */ beqz $v0, .L7F039938 +/* 06E2F0 7F0397C0 00408025 */ move $s0, $v0 +/* 06E2F4 7F0397C4 02E02025 */ move $a0, $s7 +/* 06E2F8 7F0397C8 0FC0CBE5 */ jal convertPadIf9000 +/* 06E2FC 7F0397CC 02602825 */ move $a1, $s3 +/* 06E300 7F0397D0 28412710 */ slti $at, $v0, 0x2710 +/* 06E304 7F0397D4 1020000A */ beqz $at, .L7F039800 +/* 06E308 7F0397D8 00027900 */ sll $t7, $v0, 4 +/* 06E30C 7F0397DC 00026880 */ sll $t5, $v0, 2 +/* 06E310 7F0397E0 01A26823 */ subu $t5, $t5, $v0 +/* 06E314 7F0397E4 000D6880 */ sll $t5, $t5, 2 +/* 06E318 7F0397E8 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 06E31C 7F0397EC 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 06E320 7F0397F0 01A26823 */ subu $t5, $t5, $v0 +/* 06E324 7F0397F4 000D6880 */ sll $t5, $t5, 2 +/* 06E328 7F0397F8 10000009 */ b .L7F039820 +/* 06E32C 7F0397FC 01AE1821 */ addu $v1, $t5, $t6 +.L7F039800: +/* 06E330 7F039800 3C0A8007 */ lui $t2, %hi(ptr_2xxxpresets) +/* 06E334 7F039804 8D4A5D1C */ lw $t2, %lo(ptr_2xxxpresets)($t2) +/* 06E338 7F039808 01E27821 */ addu $t7, $t7, $v0 +/* 06E33C 7F03980C 000F7880 */ sll $t7, $t7, 2 +/* 06E340 7F039810 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E344 7F039814 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E348 7F039818 01EA1821 */ addu $v1, $t7, $t2 +/* 06E34C 7F03981C 00611821 */ addu $v1, $v1, $at +.L7F039820: +/* 06E350 7F039820 C46C0018 */ lwc1 $f12, 0x18($v1) +/* 06E354 7F039824 C46E0020 */ lwc1 $f14, 0x20($v1) +/* 06E358 7F039828 0FC16A8C */ jal atan2f +/* 06E35C 7F03982C AFA30134 */ sw $v1, 0x134($sp) +/* 06E360 7F039830 8FA30134 */ lw $v1, 0x134($sp) +/* 06E364 7F039834 E7A00130 */ swc1 $f0, 0x130($sp) +/* 06E368 7F039838 00002825 */ move $a1, $zero +/* 06E36C 7F03983C C4640000 */ lwc1 $f4, ($v1) +/* 06E370 7F039840 E7A40124 */ swc1 $f4, 0x124($sp) +/* 06E374 7F039844 C4660004 */ lwc1 $f6, 4($v1) +/* 06E378 7F039848 E7A60128 */ swc1 $f6, 0x128($sp) +/* 06E37C 7F03984C C46A0008 */ lwc1 $f10, 8($v1) +/* 06E380 7F039850 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 06E384 7F039854 8C690028 */ lw $t1, 0x28($v1) +/* 06E388 7F039858 AFA90120 */ sw $t1, 0x120($sp) +/* 06E38C 7F03985C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E390 7F039860 8E040018 */ lw $a0, 0x18($s0) +/* 06E394 7F039864 27A40124 */ addiu $a0, $sp, 0x124 +/* 06E398 7F039868 27A50120 */ addiu $a1, $sp, 0x120 +/* 06E39C 7F03986C 8FA60130 */ lw $a2, 0x130($sp) +/* 06E3A0 7F039870 0FC0CFD2 */ jal sub_GAME_7F033F48 +/* 06E3A4 7F039874 24070001 */ li $a3, 1 +/* 06E3A8 7F039878 1040002C */ beqz $v0, .L7F03992C +/* 06E3AC 7F03987C C7B20124 */ lwc1 $f18, 0x124($sp) +/* 06E3B0 7F039880 8E0C0018 */ lw $t4, 0x18($s0) +/* 06E3B4 7F039884 E5920008 */ swc1 $f18, 8($t4) +/* 06E3B8 7F039888 8E0B0018 */ lw $t3, 0x18($s0) +/* 06E3BC 7F03988C C7B00128 */ lwc1 $f16, 0x128($sp) +/* 06E3C0 7F039890 E570000C */ swc1 $f16, 0xc($t3) +/* 06E3C4 7F039894 8E180018 */ lw $t8, 0x18($s0) +/* 06E3C8 7F039898 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 06E3CC 7F03989C E7080010 */ swc1 $f8, 0x10($t8) +/* 06E3D0 7F0398A0 8E0D0018 */ lw $t5, 0x18($s0) +/* 06E3D4 7F0398A4 8FB90120 */ lw $t9, 0x120($sp) +/* 06E3D8 7F0398A8 ADB90014 */ sw $t9, 0x14($t5) +/* 06E3DC 7F0398AC 8E0E0014 */ lw $t6, 0x14($s0) +/* 06E3E0 7F0398B0 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3E4 7F0398B4 35CF0001 */ ori $t7, $t6, 1 +/* 06E3E8 7F0398B8 AE0F0014 */ sw $t7, 0x14($s0) +/* 06E3EC 7F0398BC 0FC1B34F */ jal setsubroty +/* 06E3F0 7F0398C0 8FA50130 */ lw $a1, 0x130($sp) +/* 06E3F4 7F0398C4 8E04001C */ lw $a0, 0x1c($s0) +/* 06E3F8 7F0398C8 0FC1B303 */ jal setsuboffset +/* 06E3FC 7F0398CC 27A50124 */ addiu $a1, $sp, 0x124 +/* 06E400 7F0398D0 0FC08365 */ jal sub_GAME_7F020D94 +/* 06E404 7F0398D4 02002025 */ move $a0, $s0 +/* 06E408 7F0398D8 3C028008 */ lui $v0, %hi(pPlayer) +/* 06E40C 7F0398DC 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) +/* 06E410 7F0398E0 8E090018 */ lw $t1, 0x18($s0) +/* 06E414 7F0398E4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 06E418 7F0398E8 8C4A00A8 */ lw $t2, 0xa8($v0) +/* 06E41C 7F0398EC 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 06E420 7F0398F0 24140001 */ li $s4, 1 +/* 06E424 7F0398F4 1549000D */ bne $t2, $t1, .L7F03992C +/* 06E428 7F0398F8 00000000 */ nop +/* 06E42C 7F0398FC E444048C */ swc1 $f4, 0x48c($v0) +/* 06E430 7F039900 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 06E434 7F039904 C7A60128 */ lwc1 $f6, 0x128($sp) +/* 06E438 7F039908 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 06E43C 7F03990C 3C198008 */ lui $t9, %hi(pPlayer) +/* 06E440 7F039910 E5860490 */ swc1 $f6, 0x490($t4) +/* 06E444 7F039914 8D6BA0B0 */ lw $t3, %lo(pPlayer)($t3) +/* 06E448 7F039918 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 06E44C 7F03991C E56A0494 */ swc1 $f10, 0x494($t3) +/* 06E450 7F039920 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 06E454 7F039924 8FB80120 */ lw $t8, 0x120($sp) +/* 06E458 7F039928 AF380488 */ sw $t8, 0x488($t9) +.L7F03992C: +/* 06E45C 7F03992C 8E040018 */ lw $a0, 0x18($s0) +/* 06E460 7F039930 0FC0F416 */ jal sub_GAME_7F03D058 +/* 06E464 7F039934 24050001 */ li $a1, 1 +.L7F039938: +/* 06E468 7F039938 12800007 */ beqz $s4, .L7F039958 +/* 06E46C 7F03993C 02C02025 */ move $a0, $s6 +/* 06E470 7F039940 02402825 */ move $a1, $s2 +/* 06E474 7F039944 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E478 7F039948 92260004 */ lbu $a2, 4($s1) +/* 06E47C 7F03994C 00409025 */ move $s2, $v0 +/* 06E480 7F039950 1000EF0E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E484 7F039954 02C28821 */ addu $s1, $s6, $v0 +.L7F039958: +/* 06E488 7F039958 26520005 */ addiu $s2, $s2, 5 +/* 06E48C 7F03995C 1000EF0B */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E490 7F039960 26310005 */ addiu $s1, $s1, 5 +actionDA_Fade_Out_From_Cut_Scene_1: +/* 06E494 7F039964 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E498 7F039968 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E49C 7F03996C 24010002 */ li $at, 2 +/* 06E4A0 7F039970 00002025 */ move $a0, $zero +/* 06E4A4 7F039974 11A10008 */ beq $t5, $at, .L7F039998 +/* 06E4A8 7F039978 00002825 */ move $a1, $zero +/* 06E4AC 7F03997C 4407A000 */ mfc1 $a3, $f20 +/* 06E4B0 7F039980 0FC201EC */ jal currentPlayerSetFadeColour +/* 06E4B4 7F039984 00003025 */ move $a2, $zero +/* 06E4B8 7F039988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E4BC 7F03998C 44817000 */ mtc1 $at, $f14 +/* 06E4C0 7F039990 0FC20216 */ jal currentPlayerSetFadeFrac +/* 06E4C4 7F039994 4600B306 */ mov.s $f12, $f22 +.L7F039998: +/* 06E4C8 7F039998 26520001 */ addiu $s2, $s2, 1 +/* 06E4CC 7F03999C 1000EEFB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E4D0 7F0399A0 26310001 */ addiu $s1, $s1, 1 +actionDB_Fade_In_From_Black_Reset_DA_1: +/* 06E4D4 7F0399A4 3C0E8003 */ lui $t6, %hi(stop_time_flag) +/* 06E4D8 7F0399A8 8DCE64A0 */ lw $t6, %lo(stop_time_flag)($t6) +/* 06E4DC 7F0399AC 24010002 */ li $at, 2 +/* 06E4E0 7F0399B0 00002025 */ move $a0, $zero +/* 06E4E4 7F0399B4 11C10007 */ beq $t6, $at, .L7F0399D4 +/* 06E4E8 7F0399B8 00002825 */ move $a1, $zero +/* 06E4EC 7F0399BC 00003025 */ move $a2, $zero +/* 06E4F0 7F0399C0 0FC201EC */ jal currentPlayerSetFadeColour +/* 06E4F4 7F0399C4 3C073F80 */ li $a3, 0x3F800000 # 1.000000 +/* 06E4F8 7F0399C8 4600B306 */ mov.s $f12, $f22 +/* 06E4FC 7F0399CC 0FC20216 */ jal currentPlayerSetFadeFrac +/* 06E500 7F0399D0 4600A386 */ mov.s $f14, $f20 +.L7F0399D4: +/* 06E504 7F0399D4 26520001 */ addiu $s2, $s2, 1 +/* 06E508 7F0399D8 1000EEEC */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E50C 7F0399DC 26310001 */ addiu $s1, $s1, 1 +actionDC_RVL_When_Fade_Complete_2: +/* 06E510 7F0399E0 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E514 7F0399E4 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E518 7F0399E8 02C02025 */ move $a0, $s6 +/* 06E51C 7F0399EC 02402825 */ move $a1, $s2 +/* 06E520 7F0399F0 C5F203E4 */ lwc1 $f18, 0x3e4($t7) +/* 06E524 7F0399F4 4614903C */ c.lt.s $f18, $f20 +/* 06E528 7F0399F8 00000000 */ nop +/* 06E52C 7F0399FC 45020007 */ bc1fl .L7F039A1C +/* 06E530 7F039A00 26520002 */ addiu $s2, $s2, 2 +/* 06E534 7F039A04 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E538 7F039A08 92260001 */ lbu $a2, 1($s1) +/* 06E53C 7F039A0C 00409025 */ move $s2, $v0 +/* 06E540 7F039A10 1000EEDE */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E544 7F039A14 02C28821 */ addu $s1, $s6, $v0 +/* 06E548 7F039A18 26520002 */ addiu $s2, $s2, 2 +.L7F039A1C: +/* 06E54C 7F039A1C 1000EEDB */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E550 7F039A20 26310002 */ addiu $s1, $s1, 2 +actionDD_Remove_All_Guards_1: +/* 06E554 7F039A24 0FC07D4C */ jal get_numguards +/* 06E558 7F039A28 00000000 */ nop +/* 06E55C 7F039A2C 2443FFFF */ addiu $v1, $v0, -1 +/* 06E560 7F039A30 04600011 */ bltz $v1, .L7F039A78 +/* 06E564 7F039A34 26520001 */ addiu $s2, $s2, 1 +/* 06E568 7F039A38 00031100 */ sll $v0, $v1, 4 +/* 06E56C 7F039A3C 00431023 */ subu $v0, $v0, $v1 +/* 06E570 7F039A40 000210C0 */ sll $v0, $v0, 3 +/* 06E574 7F039A44 00431023 */ subu $v0, $v0, $v1 +/* 06E578 7F039A48 00021080 */ sll $v0, $v0, 2 +/* 06E57C 7F039A4C 8FCA0000 */ lw $t2, ($fp) +.L7F039A50: +/* 06E580 7F039A50 01421821 */ addu $v1, $t2, $v0 +/* 06E584 7F039A54 8C69001C */ lw $t1, 0x1c($v1) +/* 06E588 7F039A58 2442FE24 */ addiu $v0, $v0, -0x1dc +/* 06E58C 7F039A5C 11200004 */ beqz $t1, .L7F039A70 +/* 06E590 7F039A60 00000000 */ nop +/* 06E594 7F039A64 8C6C0014 */ lw $t4, 0x14($v1) +/* 06E598 7F039A68 358B0400 */ ori $t3, $t4, 0x400 +/* 06E59C 7F039A6C AC6B0014 */ sw $t3, 0x14($v1) +.L7F039A70: +/* 06E5A0 7F039A70 0443FFF7 */ bgezl $v0, .L7F039A50 +/* 06E5A4 7F039A74 8FCA0000 */ lw $t2, ($fp) +.L7F039A78: +/* 06E5A8 7F039A78 1000EEC4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E5AC 7F039A7C 26310001 */ addiu $s1, $s1, 1 +actionDE_Bring_Removed_Guards_Back_1: +/* 06E5B0 7F039A80 0FC07D4C */ jal get_numguards +/* 06E5B4 7F039A84 00000000 */ nop +/* 06E5B8 7F039A88 2443FFFF */ addiu $v1, $v0, -1 +/* 06E5BC 7F039A8C 0460000E */ bltz $v1, .L7F039AC8 +/* 06E5C0 7F039A90 00602025 */ move $a0, $v1 +/* 06E5C4 7F039A94 00031900 */ sll $v1, $v1, 4 +/* 06E5C8 7F039A98 00641823 */ subu $v1, $v1, $a0 +/* 06E5CC 7F039A9C 000318C0 */ sll $v1, $v1, 3 +/* 06E5D0 7F039AA0 00641823 */ subu $v1, $v1, $a0 +/* 06E5D4 7F039AA4 00031880 */ sll $v1, $v1, 2 +/* 06E5D8 7F039AA8 2404FBFF */ li $a0, -1025 +.L7F039AAC: +/* 06E5DC 7F039AAC 8FD80000 */ lw $t8, ($fp) +/* 06E5E0 7F039AB0 03031021 */ addu $v0, $t8, $v1 +/* 06E5E4 7F039AB4 8C590014 */ lw $t9, 0x14($v0) +/* 06E5E8 7F039AB8 2463FE24 */ addiu $v1, $v1, -0x1dc +/* 06E5EC 7F039ABC 03246824 */ and $t5, $t9, $a0 +/* 06E5F0 7F039AC0 0461FFFA */ bgez $v1, .L7F039AAC +/* 06E5F4 7F039AC4 AC4D0014 */ sw $t5, 0x14($v0) +.L7F039AC8: +/* 06E5F8 7F039AC8 26520001 */ addiu $s2, $s2, 1 +/* 06E5FC 7F039ACC 1000EEAF */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E600 7F039AD0 26310001 */ addiu $s1, $s1, 1 +actionDF_Open_Type_16_Door_Used_Cut_Scenes_2: +/* 06E604 7F039AD4 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E608 7F039AD8 92240001 */ lbu $a0, 1($s1) +/* 06E60C 7F039ADC 10400011 */ beqz $v0, .L7F039B24 +/* 06E610 7F039AE0 00402025 */ move $a0, $v0 +/* 06E614 7F039AE4 8C4E0010 */ lw $t6, 0x10($v0) +/* 06E618 7F039AE8 51C0000F */ beql $t6, $zero, .L7F039B28 +/* 06E61C 7F039AEC 26520002 */ addiu $s2, $s2, 2 +/* 06E620 7F039AF0 C4500084 */ lwc1 $f16, 0x84($v0) +/* 06E624 7F039AF4 E45400B8 */ swc1 $f20, 0xb8($v0) +/* 06E628 7F039AF8 3C0F8005 */ lui $t7, %hi(global_timer) +/* 06E62C 7F039AFC E45000B4 */ swc1 $f16, 0xb4($v0) +/* 06E630 7F039B00 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 06E634 7F039B04 A04000BC */ sb $zero, 0xbc($v0) +/* 06E638 7F039B08 AC4F00EC */ sw $t7, 0xec($v0) +/* 06E63C 7F039B0C 0FC14AC0 */ jal sub_GAME_7F052B00 +/* 06E640 7F039B10 AFA2010C */ sw $v0, 0x10c($sp) +/* 06E644 7F039B14 0FC14D66 */ jal sub_GAME_7F053598 +/* 06E648 7F039B18 8FA4010C */ lw $a0, 0x10c($sp) +/* 06E64C 7F039B1C 0FC14EC4 */ jal sub_GAME_7F053B10 +/* 06E650 7F039B20 8FA4010C */ lw $a0, 0x10c($sp) +.L7F039B24: +/* 06E654 7F039B24 26520002 */ addiu $s2, $s2, 2 +.L7F039B28: +/* 06E658 7F039B28 1000EE98 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E65C 7F039B2C 26310002 */ addiu $s1, $s1, 2 +actionE0_Guard_ID_Draws_Weapon_num_3: +/* 06E660 7F039B30 02E02025 */ move $a0, $s7 +/* 06E664 7F039B34 0FC0CC10 */ jal get_handle_for_guard_id +/* 06E668 7F039B38 92250001 */ lbu $a1, 1($s1) +/* 06E66C 7F039B3C 10400003 */ beqz $v0, .L7F039B4C +/* 06E670 7F039B40 00402025 */ move $a0, $v0 +/* 06E674 7F039B44 0FC1487A */ jal set_0x4_in_runtime_flags_for_item_in_guards_hand +/* 06E678 7F039B48 92250002 */ lbu $a1, 2($s1) +.L7F039B4C: +/* 06E67C 7F039B4C 26520003 */ addiu $s2, $s2, 3 +/* 06E680 7F039B50 1000EE8E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E684 7F039B54 26310003 */ addiu $s1, $s1, 3 +actionE1_If_Fewer_than_This_Many_Players_Playing_RVL_3: +/* 06E688 7F039B58 0FC26919 */ jal getPlayerCount +/* 06E68C 7F039B5C 00000000 */ nop +/* 06E690 7F039B60 822A0001 */ lb $t2, 1($s1) +/* 06E694 7F039B64 02C02025 */ move $a0, $s6 +/* 06E698 7F039B68 02402825 */ move $a1, $s2 +/* 06E69C 7F039B6C 004A082A */ slt $at, $v0, $t2 +/* 06E6A0 7F039B70 50200007 */ beql $at, $zero, .L7F039B90 +/* 06E6A4 7F039B74 26520003 */ addiu $s2, $s2, 3 +/* 06E6A8 7F039B78 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6AC 7F039B7C 92260002 */ lbu $a2, 2($s1) +/* 06E6B0 7F039B80 00409025 */ move $s2, $v0 +/* 06E6B4 7F039B84 1000EE81 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6B8 7F039B88 02C28821 */ addu $s1, $s6, $v0 +/* 06E6BC 7F039B8C 26520003 */ addiu $s2, $s2, 3 +.L7F039B90: +/* 06E6C0 7F039B90 1000EE7E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6C4 7F039B94 26310003 */ addiu $s1, $s1, 3 +actionE2_If_Ammo_Value_In_Type_Is_LTV_RVL_4: +/* 06E6C8 7F039B98 0FC1A496 */ jal check_cur_player_ammo_amount_total +/* 06E6CC 7F039B9C 82240001 */ lb $a0, 1($s1) +/* 06E6D0 7F039BA0 82290002 */ lb $t1, 2($s1) +/* 06E6D4 7F039BA4 02C02025 */ move $a0, $s6 +/* 06E6D8 7F039BA8 02402825 */ move $a1, $s2 +/* 06E6DC 7F039BAC 0049082A */ slt $at, $v0, $t1 +/* 06E6E0 7F039BB0 50200007 */ beql $at, $zero, .L7F039BD0 +/* 06E6E4 7F039BB4 26520004 */ addiu $s2, $s2, 4 +/* 06E6E8 7F039BB8 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E6EC 7F039BBC 92260003 */ lbu $a2, 3($s1) +/* 06E6F0 7F039BC0 00409025 */ move $s2, $v0 +/* 06E6F4 7F039BC4 1000EE71 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E6F8 7F039BC8 02C28821 */ addu $s1, $s6, $v0 +/* 06E6FC 7F039BCC 26520004 */ addiu $s2, $s2, 4 +.L7F039BD0: +/* 06E700 7F039BD0 1000EE6E */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E704 7F039BD4 26310004 */ addiu $s1, $s1, 4 +actionE3_Draw_Weapon_From_Inventory_In_Game_2: +/* 06E708 7F039BD8 00002025 */ move $a0, $zero +/* 06E70C 7F039BDC 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E710 7F039BE0 82250001 */ lb $a1, 1($s1) +/* 06E714 7F039BE4 24040001 */ li $a0, 1 +/* 06E718 7F039BE8 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 06E71C 7F039BEC 00002825 */ move $a1, $zero +/* 06E720 7F039BF0 26520002 */ addiu $s2, $s2, 2 +/* 06E724 7F039BF4 1000EE65 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E728 7F039BF8 26310002 */ addiu $s1, $s1, 2 +actionE4_Draw_Weapon_From_Inventory_Cut_Scene_2: +/* 06E72C 7F039BFC 00002025 */ move $a0, $zero +/* 06E730 7F039C00 0FC176D5 */ jal remove_hands_item +/* 06E734 7F039C04 82250001 */ lb $a1, 1($s1) +/* 06E738 7F039C08 24040001 */ li $a0, 1 +/* 06E73C 7F039C0C 0FC176D5 */ jal remove_hands_item +/* 06E740 7F039C10 00002825 */ move $a1, $zero +/* 06E744 7F039C14 26520002 */ addiu $s2, $s2, 2 +/* 06E748 7F039C18 1000EE5C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E74C 7F039C1C 26310002 */ addiu $s1, $s1, 2 +actionE5_Set_Bonds_Speed_3: +/* 06E750 7F039C20 822C0001 */ lb $t4, 1($s1) +/* 06E754 7F039C24 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 06E758 7F039C28 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 06E75C 7F039C2C 448C4000 */ mtc1 $t4, $f8 +/* 06E760 7F039C30 E4540004 */ swc1 $f20, 4($v0) +/* 06E764 7F039C34 26520003 */ addiu $s2, $s2, 3 +/* 06E768 7F039C38 46804120 */ cvt.s.w $f4, $f8 +/* 06E76C 7F039C3C 26310003 */ addiu $s1, $s1, 3 +/* 06E770 7F039C40 E4440000 */ swc1 $f4, ($v0) +/* 06E774 7F039C44 822BFFFF */ lb $t3, -1($s1) +/* 06E778 7F039C48 448B3000 */ mtc1 $t3, $f6 +/* 06E77C 7F039C4C 00000000 */ nop +/* 06E780 7F039C50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E784 7F039C54 1000EE4D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E788 7F039C58 E44A0008 */ swc1 $f10, 8($v0) +actionE6_If_16_Object_And_Preset_Are_In_Same_Room_RVL_5: +/* 06E78C 7F039C5C 92380002 */ lbu $t8, 2($s1) +/* 06E790 7F039C60 922D0003 */ lbu $t5, 3($s1) +/* 06E794 7F039C64 92240001 */ lbu $a0, 1($s1) +/* 06E798 7F039C68 0018CA00 */ sll $t9, $t8, 8 +/* 06E79C 7F039C6C 032D8025 */ or $s0, $t9, $t5 +/* 06E7A0 7F039C70 320EFFFF */ andi $t6, $s0, 0xffff +/* 06E7A4 7F039C74 0FC15C30 */ jal get_handle_to_tagged_object +/* 06E7A8 7F039C78 01C08025 */ move $s0, $t6 +/* 06E7AC 7F039C7C 2A012710 */ slti $at, $s0, 0x2710 +/* 06E7B0 7F039C80 1020000A */ beqz $at, .L7F039CAC +/* 06E7B4 7F039C84 02001825 */ move $v1, $s0 +/* 06E7B8 7F039C88 00037880 */ sll $t7, $v1, 2 +/* 06E7BC 7F039C8C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7C0 7F039C90 000F7880 */ sll $t7, $t7, 2 +/* 06E7C4 7F039C94 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 06E7C8 7F039C98 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 06E7CC 7F039C9C 01E37823 */ subu $t7, $t7, $v1 +/* 06E7D0 7F039CA0 000F7880 */ sll $t7, $t7, 2 +/* 06E7D4 7F039CA4 1000000A */ b .L7F039CD0 +/* 06E7D8 7F039CA8 01EA2021 */ addu $a0, $t7, $t2 +.L7F039CAC: +/* 06E7DC 7F039CAC 3C0C8007 */ lui $t4, %hi(ptr_2xxxpresets) +/* 06E7E0 7F039CB0 8D8C5D1C */ lw $t4, %lo(ptr_2xxxpresets)($t4) +/* 06E7E4 7F039CB4 00034900 */ sll $t1, $v1, 4 +/* 06E7E8 7F039CB8 01234821 */ addu $t1, $t1, $v1 +/* 06E7EC 7F039CBC 00094880 */ sll $t1, $t1, 2 +/* 06E7F0 7F039CC0 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 06E7F4 7F039CC4 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 06E7F8 7F039CC8 012C2021 */ addu $a0, $t1, $t4 +/* 06E7FC 7F039CCC 00812021 */ addu $a0, $a0, $at +.L7F039CD0: +/* 06E800 7F039CD0 8C830028 */ lw $v1, 0x28($a0) +/* 06E804 7F039CD4 50600013 */ beql $v1, $zero, .L7F039D24 +/* 06E808 7F039CD8 26520005 */ addiu $s2, $s2, 5 +/* 06E80C 7F039CDC 50400011 */ beql $v0, $zero, .L7F039D24 +/* 06E810 7F039CE0 26520005 */ addiu $s2, $s2, 5 +/* 06E814 7F039CE4 8C440010 */ lw $a0, 0x10($v0) +/* 06E818 7F039CE8 5080000E */ beql $a0, $zero, .L7F039D24 +/* 06E81C 7F039CEC 26520005 */ addiu $s2, $s2, 5 +/* 06E820 7F039CF0 8C8B0014 */ lw $t3, 0x14($a0) +/* 06E824 7F039CF4 90790003 */ lbu $t9, 3($v1) +/* 06E828 7F039CF8 02C02025 */ move $a0, $s6 +/* 06E82C 7F039CFC 91780003 */ lbu $t8, 3($t3) +/* 06E830 7F039D00 02402825 */ move $a1, $s2 +/* 06E834 7F039D04 57190007 */ bnel $t8, $t9, .L7F039D24 +/* 06E838 7F039D08 26520005 */ addiu $s2, $s2, 5 +/* 06E83C 7F039D0C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E840 7F039D10 92260004 */ lbu $a2, 4($s1) +/* 06E844 7F039D14 00409025 */ move $s2, $v0 +/* 06E848 7F039D18 1000EE1C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E84C 7F039D1C 02C28821 */ addu $s1, $s6, $v0 +/* 06E850 7F039D20 26520005 */ addiu $s2, $s2, 5 +.L7F039D24: +/* 06E854 7F039D24 1000EE19 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E858 7F039D28 26310005 */ addiu $s1, $s1, 5 +actionE9_Instantly_Switch_Sky_To_Sky_2_1: +/* 06E85C 7F039D2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 06E860 7F039D30 44816000 */ mtc1 $at, $f12 +/* 06E864 7F039D34 0FC2EB2A */ jal switch_to_solosky2 +/* 06E868 7F039D38 00000000 */ nop +/* 06E86C 7F039D3C 26520001 */ addiu $s2, $s2, 1 +/* 06E870 7F039D40 1000EE12 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E874 7F039D44 26310001 */ addiu $s1, $s1, 1 +actionEA_Stop_Game_Time_1: +/* 06E878 7F039D48 3C0D8003 */ lui $t5, %hi(stop_time_flag) +/* 06E87C 7F039D4C 8DAD64A0 */ lw $t5, %lo(stop_time_flag)($t5) +/* 06E880 7F039D50 240E0001 */ li $t6, 1 +/* 06E884 7F039D54 3C018003 */ lui $at, %hi(stop_time_flag) +/* 06E888 7F039D58 15A00002 */ bnez $t5, .L7F039D64 +/* 06E88C 7F039D5C 26520001 */ addiu $s2, $s2, 1 +/* 06E890 7F039D60 AC2E64A0 */ sw $t6, %lo(stop_time_flag)($at) +.L7F039D64: +/* 06E894 7F039D64 1000EE09 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E898 7F039D68 26310001 */ addiu $s1, $s1, 1 +actionEB_If_Key_Pressed_RVL_2: +/* 06E89C 7F039D6C 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 06E8A0 7F039D70 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 06E8A4 7F039D74 02C02025 */ move $a0, $s6 +/* 06E8A8 7F039D78 02402825 */ move $a1, $s2 +/* 06E8AC 7F039D7C 8DEA00D8 */ lw $t2, 0xd8($t7) +/* 06E8B0 7F039D80 51400007 */ beql $t2, $zero, .L7F039DA0 +/* 06E8B4 7F039D84 26520002 */ addiu $s2, $s2, 2 +/* 06E8B8 7F039D88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06E8BC 7F039D8C 92260001 */ lbu $a2, 1($s1) +/* 06E8C0 7F039D90 00409025 */ move $s2, $v0 +/* 06E8C4 7F039D94 1000EDFD */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8C8 7F039D98 02C28821 */ addu $s1, $s6, $v0 +/* 06E8CC 7F039D9C 26520002 */ addiu $s2, $s2, 2 +.L7F039DA0: +/* 06E8D0 7F039DA0 1000EDFA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8D4 7F039DA4 26310002 */ addiu $s1, $s1, 2 +actionEC_Disable_Player_Pickups_1: +/* 06E8D8 7F039DA8 24090001 */ li $t1, 1 +/* 06E8DC 7F039DAC 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 06E8E0 7F039DB0 AC2964B4 */ sw $t1, %lo(disable_player_pickups_flag)($at) +/* 06E8E4 7F039DB4 26520001 */ addiu $s2, $s2, 1 +/* 06E8E8 7F039DB8 1000EDF4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E8EC 7F039DBC 26310001 */ addiu $s1, $s1, 1 +actionED_Hide_First_Person_Display_1: +/* 06E8F0 7F039DC0 0FC173D7 */ jal remove_item_in_hand +/* 06E8F4 7F039DC4 00002025 */ move $a0, $zero +/* 06E8F8 7F039DC8 0FC173D7 */ jal remove_item_in_hand +/* 06E8FC 7F039DCC 24040001 */ li $a0, 1 +/* 06E900 7F039DD0 26520001 */ addiu $s2, $s2, 1 +/* 06E904 7F039DD4 1000EDED */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06E908 7F039DD8 26310001 */ addiu $s1, $s1, 1 +actionEE_Cuba_Circular_Camera_Aim_D: +/* 06E90C 7F039DDC 92390003 */ lbu $t9, 3($s1) +/* 06E910 7F039DE0 922E0004 */ lbu $t6, 4($s1) +/* 06E914 7F039DE4 922C0001 */ lbu $t4, 1($s1) +/* 06E918 7F039DE8 00196A00 */ sll $t5, $t9, 8 +/* 06E91C 7F039DEC 01AE1825 */ or $v1, $t5, $t6 +/* 06E920 7F039DF0 00037C00 */ sll $t7, $v1, 0x10 +/* 06E924 7F039DF4 922D0007 */ lbu $t5, 7($s1) +/* 06E928 7F039DF8 000F1C03 */ sra $v1, $t7, 0x10 +/* 06E92C 7F039DFC 922F0008 */ lbu $t7, 8($s1) +/* 06E930 7F039E00 92380002 */ lbu $t8, 2($s1) +/* 06E934 7F039E04 000D7200 */ sll $t6, $t5, 8 +/* 06E938 7F039E08 9239000B */ lbu $t9, 0xb($s1) +/* 06E93C 7F039E0C 01CF3025 */ or $a2, $t6, $t7 +/* 06E940 7F039E10 922E000C */ lbu $t6, 0xc($s1) +/* 06E944 7F039E14 000C5A00 */ sll $t3, $t4, 8 +/* 06E948 7F039E18 92290005 */ lbu $t1, 5($s1) +/* 06E94C 7F039E1C 01781025 */ or $v0, $t3, $t8 +/* 06E950 7F039E20 922B0006 */ lbu $t3, 6($s1) +/* 06E954 7F039E24 00196A00 */ sll $t5, $t9, 8 +/* 06E958 7F039E28 01AE4025 */ or $t0, $t5, $t6 +/* 06E95C 7F039E2C 44889000 */ mtc1 $t0, $f18 +/* 06E960 7F039E30 00096200 */ sll $t4, $t1, 8 +/* 06E964 7F039E34 018B2825 */ or $a1, $t4, $t3 +/* 06E968 7F039E38 0005C400 */ sll $t8, $a1, 0x10 +/* 06E96C 7F039E3C 46809420 */ cvt.s.w $f16, $f18 +/* 06E970 7F039E40 00182C03 */ sra $a1, $t8, 0x10 +/* 06E974 7F039E44 44853000 */ mtc1 $a1, $f6 +/* 06E978 7F039E48 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 06E97C 7F039E4C 44810000 */ mtc1 $at, $f0 +/* 06E980 7F039E50 468032A0 */ cvt.s.w $f10, $f6 +/* 06E984 7F039E54 461A8202 */ mul.s $f8, $f16, $f26 +/* 06E988 7F039E58 922A0009 */ lbu $t2, 9($s1) +/* 06E98C 7F039E5C 922C000A */ lbu $t4, 0xa($s1) +/* 06E990 7F039E60 3C018008 */ lui $at, %hi(dword_CODE_bss_800799F8) +/* 06E994 7F039E64 AC2099F8 */ sw $zero, %lo(dword_CODE_bss_800799F8)($at) +/* 06E998 7F039E68 461A5482 */ mul.s $f18, $f10, $f26 +/* 06E99C 7F039E6C 3C018008 */ lui $at, %hi(dword_CODE_bss_800799FC) +/* 06E9A0 7F039E70 AC2099FC */ sw $zero, %lo(dword_CODE_bss_800799FC)($at) +/* 06E9A4 7F039E74 000A4A00 */ sll $t1, $t2, 8 +/* 06E9A8 7F039E78 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A00) +/* 06E9AC 7F039E7C 012C3825 */ or $a3, $t1, $t4 +/* 06E9B0 7F039E80 46004103 */ div.s $f4, $f8, $f0 +/* 06E9B4 7F039E84 44824000 */ mtc1 $v0, $f8 +/* 06E9B8 7F039E88 44833000 */ mtc1 $v1, $f6 +/* 06E9BC 7F039E8C 00075C00 */ sll $t3, $a3, 0x10 +/* 06E9C0 7F039E90 000B3C03 */ sra $a3, $t3, 0x10 +/* 06E9C4 7F039E94 468032A0 */ cvt.s.w $f10, $f6 +/* 06E9C8 7F039E98 24040007 */ li $a0, 7 +/* 06E9CC 7F039E9C 46009403 */ div.s $f16, $f18, $f0 +/* 06E9D0 7F039EA0 E4249A00 */ swc1 $f4, %lo(flt_CODE_bss_80079A00)($at) +/* 06E9D4 7F039EA4 44879000 */ mtc1 $a3, $f18 +/* 06E9D8 7F039EA8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A04) +/* 06E9DC 7F039EAC 46804120 */ cvt.s.w $f4, $f8 +/* 06E9E0 7F039EB0 E4309A04 */ swc1 $f16, %lo(flt_CODE_bss_80079A04)($at) +/* 06E9E4 7F039EB4 46809420 */ cvt.s.w $f16, $f18 +/* 06E9E8 7F039EB8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A08) +/* 06E9EC 7F039EBC E4249A08 */ swc1 $f4, %lo(flt_CODE_bss_80079A08)($at) +/* 06E9F0 7F039EC0 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A0C) +/* 06E9F4 7F039EC4 E42A9A0C */ swc1 $f10, %lo(flt_CODE_bss_80079A0C)($at) +/* 06E9F8 7F039EC8 3C018008 */ lui $at, %hi(flt_CODE_bss_80079A10) +/* 06E9FC 7F039ECC E4309A10 */ swc1 $f16, %lo(flt_CODE_bss_80079A10)($at) +/* 06EA00 7F039ED0 3C018008 */ lui $at, %hi(dword_CODE_bss_80079A14) +/* 06EA04 7F039ED4 0FC1EA6E */ jal set_camera_mode +/* 06EA08 7F039ED8 AC269A14 */ sw $a2, %lo(dword_CODE_bss_80079A14)($at) +/* 06EA0C 7F039EDC 2652000D */ addiu $s2, $s2, 0xd +/* 06EA10 7F039EE0 1000EDAA */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA14 7F039EE4 2631000D */ addiu $s1, $s1, 0xd +actionEF_Trigger_Credits_1: +/* 06EA18 7F039EE8 240F0001 */ li $t7, 1 +/* 06EA1C 7F039EEC 3C018003 */ lui $at, %hi(D_8003643C) +/* 06EA20 7F039EF0 AC2F643C */ sw $t7, %lo(D_8003643C)($at) +/* 06EA24 7F039EF4 26520001 */ addiu $s2, $s2, 1 +/* 06EA28 7F039EF8 1000EDA4 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA2C 7F039EFC 26310001 */ addiu $s1, $s1, 1 +actionF0_RVL_If_Credits_Completed_2: +/* 06EA30 7F039F00 3C0A8003 */ lui $t2, %hi(D_8003643C) +/* 06EA34 7F039F04 8D4A643C */ lw $t2, %lo(D_8003643C)($t2) +/* 06EA38 7F039F08 24010002 */ li $at, 2 +/* 06EA3C 7F039F0C 02C02025 */ move $a0, $s6 +/* 06EA40 7F039F10 15410006 */ bne $t2, $at, .L7F039F2C +/* 06EA44 7F039F14 02402825 */ move $a1, $s2 +/* 06EA48 7F039F18 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA4C 7F039F1C 92260001 */ lbu $a2, 1($s1) +/* 06EA50 7F039F20 00409025 */ move $s2, $v0 +/* 06EA54 7F039F24 1000ED99 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA58 7F039F28 02C28821 */ addu $s1, $s6, $v0 +.L7F039F2C: +/* 06EA5C 7F039F2C 26520002 */ addiu $s2, $s2, 2 +/* 06EA60 7F039F30 1000ED96 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA64 7F039F34 26310002 */ addiu $s1, $s1, 2 +actionF1_If_All_Objectives_Complete_RVL_2: +/* 06EA68 7F039F38 0FC15D2E */ jal check_objectives_complete +/* 06EA6C 7F039F3C 00000000 */ nop +/* 06EA70 7F039F40 10400007 */ beqz $v0, .L7F039F60 +/* 06EA74 7F039F44 02C02025 */ move $a0, $s6 +/* 06EA78 7F039F48 02402825 */ move $a1, $s2 +/* 06EA7C 7F039F4C 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EA80 7F039F50 92260001 */ lbu $a2, 1($s1) +/* 06EA84 7F039F54 00409025 */ move $s2, $v0 +/* 06EA88 7F039F58 1000ED8C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA8C 7F039F5C 02C28821 */ addu $s1, $s6, $v0 +.L7F039F60: +/* 06EA90 7F039F60 26520002 */ addiu $s2, $s2, 2 +/* 06EA94 7F039F64 1000ED89 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EA98 7F039F68 26310002 */ addiu $s1, $s1, 2 +actionF2_Check_Current_Folder_Bond_RVL_3: +/* 06EA9C 7F039F6C 0FC0755B */ jal getSelectedFolderBond +/* 06EAA0 7F039F70 00000000 */ nop +/* 06EAA4 7F039F74 82290001 */ lb $t1, 1($s1) +/* 06EAA8 7F039F78 02C02025 */ move $a0, $s6 +/* 06EAAC 7F039F7C 02402825 */ move $a1, $s2 +/* 06EAB0 7F039F80 54490007 */ bnel $v0, $t1, .L7F039FA0 +/* 06EAB4 7F039F84 26520003 */ addiu $s2, $s2, 3 +/* 06EAB8 7F039F88 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EABC 7F039F8C 92260002 */ lbu $a2, 2($s1) +/* 06EAC0 7F039F90 00409025 */ move $s2, $v0 +/* 06EAC4 7F039F94 1000ED7D */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAC8 7F039F98 02C28821 */ addu $s1, $s6, $v0 +/* 06EACC 7F039F9C 26520003 */ addiu $s2, $s2, 3 +.L7F039FA0: +/* 06EAD0 7F039FA0 1000ED7A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EAD4 7F039FA4 26310003 */ addiu $s1, $s1, 3 +actionF3_If_Player_Pickups_Disabled_RVL_2: +/* 06EAD8 7F039FA8 3C0C8003 */ lui $t4, %hi(disable_player_pickups_flag) +/* 06EADC 7F039FAC 8D8C64B4 */ lw $t4, %lo(disable_player_pickups_flag)($t4) +/* 06EAE0 7F039FB0 02C02025 */ move $a0, $s6 +/* 06EAE4 7F039FB4 02402825 */ move $a1, $s2 +/* 06EAE8 7F039FB8 51800007 */ beql $t4, $zero, .L7F039FD8 +/* 06EAEC 7F039FBC 26520002 */ addiu $s2, $s2, 2 +/* 06EAF0 7F039FC0 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EAF4 7F039FC4 92260001 */ lbu $a2, 1($s1) +/* 06EAF8 7F039FC8 00409025 */ move $s2, $v0 +/* 06EAFC 7F039FCC 1000ED6F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB00 7F039FD0 02C28821 */ addu $s1, $s6, $v0 +/* 06EB04 7F039FD4 26520002 */ addiu $s2, $s2, 2 +.L7F039FD8: +/* 06EB08 7F039FD8 1000ED6C */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB0C 7F039FDC 26310002 */ addiu $s1, $s1, 2 +actionF4_PlaysValuenum1ThemeSlot03ForValuenum2Seconds_4: +/* 06EB10 7F039FE0 02201025 */ move $v0, $s1 +/* 06EB14 7F039FE4 26310004 */ addiu $s1, $s1, 4 +/* 06EB18 7F039FE8 26520004 */ addiu $s2, $s2, 4 +/* 06EB1C 7F039FEC 80440001 */ lb $a0, 1($v0) +/* 06EB20 7F039FF0 90450002 */ lbu $a1, 2($v0) +/* 06EB24 7F039FF4 0FC3053F */ jal set_musicslot_time +/* 06EB28 7F039FF8 90460003 */ lbu $a2, 3($v0) +/* 06EB2C 7F039FFC 1000ED64 */ b ParseCommandByte_SwitchCase +/* 06EB30 7F03A000 922E0000 */ lbu $t6, ($s1) +actionF5_Turn_Off_Music_In_Slot_num_0_3_2: +/* 06EB34 7F03A004 02201025 */ move $v0, $s1 +/* 06EB38 7F03A008 26310002 */ addiu $s1, $s1, 2 +/* 06EB3C 7F03A00C 26520002 */ addiu $s2, $s2, 2 +/* 06EB40 7F03A010 0FC30556 */ jal reset_music_in_slot +/* 06EB44 7F03A014 80440001 */ lb $a0, 1($v0) +/* 06EB48 7F03A018 1000ED5D */ b ParseCommandByte_SwitchCase +/* 06EB4C 7F03A01C 922E0000 */ lbu $t6, ($s1) +actionF6_Trigger_Explosions_Around_Bond_1: +/* 06EB50 7F03A020 0FC22FF1 */ jal trigger_explosions_around_player +/* 06EB54 7F03A024 00002025 */ move $a0, $zero +/* 06EB58 7F03A028 26520001 */ addiu $s2, $s2, 1 +/* 06EB5C 7F03A02C 1000ED57 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB60 7F03A030 26310001 */ addiu $s1, $s1, 1 +actionF7_If_Number_Of_Hostages_Scientists_Killed_RVL_3: +/* 06EB64 7F03A034 0FC1A9DC */ jal get_civilian_casualties +/* 06EB68 7F03A038 00000000 */ nop +/* 06EB6C 7F03A03C 922B0001 */ lbu $t3, 1($s1) +/* 06EB70 7F03A040 02C02025 */ move $a0, $s6 +/* 06EB74 7F03A044 02402825 */ move $a1, $s2 +/* 06EB78 7F03A048 0162082A */ slt $at, $t3, $v0 +/* 06EB7C 7F03A04C 50200007 */ beql $at, $zero, .L7F03A06C +/* 06EB80 7F03A050 26520003 */ addiu $s2, $s2, 3 +/* 06EB84 7F03A054 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EB88 7F03A058 92260002 */ lbu $a2, 2($s1) +/* 06EB8C 7F03A05C 00409025 */ move $s2, $v0 +/* 06EB90 7F03A060 1000ED4A */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EB94 7F03A064 02C28821 */ addu $s1, $s6, $v0 +/* 06EB98 7F03A068 26520003 */ addiu $s2, $s2, 3 +.L7F03A06C: +/* 06EB9C 7F03A06C 1000ED47 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBA0 7F03A070 26310003 */ addiu $s1, $s1, 3 +actionF8_If_Guard_ID_00200000_Flag_Set_Unset_And_Return_3: +/* 06EBA4 7F03A074 02E02025 */ move $a0, $s7 +/* 06EBA8 7F03A078 0FC0CC10 */ jal get_handle_for_guard_id +/* 06EBAC 7F03A07C 92250001 */ lbu $a1, 1($s1) +/* 06EBB0 7F03A080 50400012 */ beql $v0, $zero, .L7F03A0CC +/* 06EBB4 7F03A084 26520003 */ addiu $s2, $s2, 3 +/* 06EBB8 7F03A088 8C580014 */ lw $t8, 0x14($v0) +/* 06EBBC 7F03A08C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf +/* 06EBC0 7F03A090 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 06EBC4 7F03A094 0018CA80 */ sll $t9, $t8, 0xa +/* 06EBC8 7F03A098 0723000C */ bgezl $t9, .L7F03A0CC +/* 06EBCC 7F03A09C 26520003 */ addiu $s2, $s2, 3 +/* 06EBD0 7F03A0A0 8C4D0014 */ lw $t5, 0x14($v0) +/* 06EBD4 7F03A0A4 02C02025 */ move $a0, $s6 +/* 06EBD8 7F03A0A8 02402825 */ move $a1, $s2 +/* 06EBDC 7F03A0AC 01A17024 */ and $t6, $t5, $at +/* 06EBE0 7F03A0B0 AC4E0014 */ sw $t6, 0x14($v0) +/* 06EBE4 7F03A0B4 0FC0D4BC */ jal true_if_sucessfully_performing_action +/* 06EBE8 7F03A0B8 92260002 */ lbu $a2, 2($s1) +/* 06EBEC 7F03A0BC 00409025 */ move $s2, $v0 +/* 06EBF0 7F03A0C0 1000ED32 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EBF4 7F03A0C4 02C28821 */ addu $s1, $s6, $v0 +/* 06EBF8 7F03A0C8 26520003 */ addiu $s2, $s2, 3 +.L7F03A0CC: +/* 06EBFC 7F03A0CC 1000ED2F */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC00 7F03A0D0 26310003 */ addiu $s1, $s1, 3 +actionF9_Set_Killed_In_Action_Automatic_Mission_Failure_1: +/* 06EC04 7F03A0D4 240F0001 */ li $t7, 1 +/* 06EC08 7F03A0D8 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 06EC0C 7F03A0DC AC2FA928 */ sw $t7, %lo(mission_kia_flag)($at) +/* 06EC10 7F03A0E0 26520001 */ addiu $s2, $s2, 1 +/* 06EC14 7F03A0E4 1000ED29 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC18 7F03A0E8 26310001 */ addiu $s1, $s1, 1 +actionFA_Guard_Fawns_On_Shoulder_1: +/* 06EC1C 7F03A0EC 0FC0CD93 */ jal check_if_able_to_then_fawn_on_shoulder +/* 06EC20 7F03A0F0 02E02025 */ move $a0, $s7 +/* 06EC24 7F03A0F4 26520001 */ addiu $s2, $s2, 1 +/* 06EC28 7F03A0F8 1000ED24 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC2C 7F03A0FC 26310001 */ addiu $s1, $s1, 1 +actionFB_SwitchToSkyValuenumAndActivateGasContainersIfExist_: +/* 06EC30 7F03A100 3C0A8003 */ lui $t2, %hi(D_80030A88) +/* 06EC34 7F03A104 254A0A88 */ addiu $t2, %lo(D_80030A88) # addiu $t2, $t2, 0xa88 +/* 06EC38 7F03A108 8D410000 */ lw $at, ($t2) +/* 06EC3C 7F03A10C 27A40090 */ addiu $a0, $sp, 0x90 +/* 06EC40 7F03A110 AC810000 */ sw $at, ($a0) +/* 06EC44 7F03A114 8D4B0004 */ lw $t3, 4($t2) +/* 06EC48 7F03A118 AC8B0004 */ sw $t3, 4($a0) +/* 06EC4C 7F03A11C 8D410008 */ lw $at, 8($t2) +/* 06EC50 7F03A120 0FC15799 */ jal init_trigger_toxic_gas_effect +/* 06EC54 7F03A124 AC810008 */ sw $at, 8($a0) +/* 06EC58 7F03A128 26520001 */ addiu $s2, $s2, 1 +/* 06EC5C 7F03A12C 1000ED17 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06EC60 7F03A130 26310001 */ addiu $s1, $s1, 1 +actionFC_Launch_Shuttle_2: +/* 06EC64 7F03A134 0FC15C30 */ jal get_handle_to_tagged_object +/* 06EC68 7F03A138 92240001 */ lbu $a0, 1($s1) +/* 06EC6C 7F03A13C 50400029 */ beql $v0, $zero, .L7F03A1E4 +/* 06EC70 7F03A140 26520002 */ addiu $s2, $s2, 2 +/* 06EC74 7F03A144 8C580010 */ lw $t8, 0x10($v0) +/* 06EC78 7F03A148 53000026 */ beql $t8, $zero, .L7F03A1E4 +/* 06EC7C 7F03A14C 26520002 */ addiu $s2, $s2, 2 +/* 06EC80 7F03A150 8C440010 */ lw $a0, 0x10($v0) +/* 06EC84 7F03A154 0FC0FF6A */ jal sub_GAME_7F03FDA8 +/* 06EC88 7F03A158 AFA20088 */ sw $v0, 0x88($sp) +/* 06EC8C 7F03A15C 8FA30088 */ lw $v1, 0x88($sp) +/* 06EC90 7F03A160 8C790064 */ lw $t9, 0x64($v1) +/* 06EC94 7F03A164 332D0080 */ andi $t5, $t9, 0x80 +/* 06EC98 7F03A168 51A0001E */ beql $t5, $zero, .L7F03A1E4 +/* 06EC9C 7F03A16C 26520002 */ addiu $s2, $s2, 2 +/* 06ECA0 7F03A170 8C62006C */ lw $v0, 0x6c($v1) +/* 06ECA4 7F03A174 8C4E0000 */ lw $t6, ($v0) +/* 06ECA8 7F03A178 35CF0601 */ ori $t7, $t6, 0x601 +/* 06ECAC 7F03A17C AC4F0000 */ sw $t7, ($v0) +/* 06ECB0 7F03A180 8C640010 */ lw $a0, 0x10($v1) +/* 06ECB4 7F03A184 0FC0FF85 */ jal sub_GAME_7F03FE14 +/* 06ECB8 7F03A188 AFA30088 */ sw $v1, 0x88($sp) +/* 06ECBC 7F03A18C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECC0 7F03A190 8C64006C */ lw $a0, 0x6c($v1) +/* 06ECC4 7F03A194 0FC15FF4 */ jal matrix_4x4_set_identity +/* 06ECC8 7F03A198 24840020 */ addiu $a0, $a0, 0x20 +/* 06ECCC 7F03A19C 8FA30088 */ lw $v1, 0x88($sp) +/* 06ECD0 7F03A1A0 3C018005 */ lui $at, %hi(D_80052974) +/* 06ECD4 7F03A1A4 8C6C006C */ lw $t4, 0x6c($v1) +/* 06ECD8 7F03A1A8 E5940004 */ swc1 $f20, 4($t4) +/* 06ECDC 7F03A1AC C4282974 */ lwc1 $f8, %lo(D_80052974)($at) +/* 06ECE0 7F03A1B0 8C69006C */ lw $t1, 0x6c($v1) +/* 06ECE4 7F03A1B4 3C018005 */ lui $at, %hi(D_80052978) +/* 06ECE8 7F03A1B8 E5280008 */ swc1 $f8, 8($t1) +/* 06ECEC 7F03A1BC 8C6A006C */ lw $t2, 0x6c($v1) +/* 06ECF0 7F03A1C0 E554000C */ swc1 $f20, 0xc($t2) +/* 06ECF4 7F03A1C4 8C6B006C */ lw $t3, 0x6c($v1) +/* 06ECF8 7F03A1C8 E5740010 */ swc1 $f20, 0x10($t3) +/* 06ECFC 7F03A1CC C4242978 */ lwc1 $f4, %lo(D_80052978)($at) +/* 06ED00 7F03A1D0 8C78006C */ lw $t8, 0x6c($v1) +/* 06ED04 7F03A1D4 E7040014 */ swc1 $f4, 0x14($t8) +/* 06ED08 7F03A1D8 8C79006C */ lw $t9, 0x6c($v1) +/* 06ED0C 7F03A1DC E7340018 */ swc1 $f20, 0x18($t9) +/* 06ED10 7F03A1E0 26520002 */ addiu $s2, $s2, 2 +.L7F03A1E4: +/* 06ED14 7F03A1E4 1000ECE9 */ b GetByteS1_ParseCommandByte_SwitchCase +/* 06ED18 7F03A1E8 26310002 */ addiu $s1, $s1, 2 +GetCmdLength: +/* 06ED1C 7F03A1EC 0FC0D27F */ jal get_length_of_action_block +/* 06ED20 7F03A1F0 02402825 */ move $a1, $s2 # +/* 06ED24 7F03A1F4 02429021 */ addu $s2, $s2, $v0 # CurrentActionByte += get_length_of_action_block(CurrentActionByte) +/* 06ED28 7F03A1F8 1000ECE4 */ b GetByteS1_ParseCommandByte_SwitchCase # s1 = CurrentActionByte + s6 +/* 06ED2C 7F03A1FC 02D28821 */ addu $s1, $s6, $s2 # goto 58c + +Action04_End_1: +/* 06ED30 7F03A200 8FBF0074 */ lw $ra, 0x74($sp) +Action04_End_2: +/* 06ED34 7F03A204 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 06ED38 7F03A208 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 06ED3C 7F03A20C D7B80040 */ ldc1 $f24, 0x40($sp) +/* 06ED40 7F03A210 D7BA0048 */ ldc1 $f26, 0x48($sp) +/* 06ED44 7F03A214 8FB00050 */ lw $s0, 0x50($sp) +/* 06ED48 7F03A218 8FB10054 */ lw $s1, 0x54($sp) +/* 06ED4C 7F03A21C 8FB20058 */ lw $s2, 0x58($sp) #load s2 with value before entering actionblock +/* 06ED50 7F03A220 8FB3005C */ lw $s3, 0x5c($sp) +/* 06ED54 7F03A224 8FB40060 */ lw $s4, 0x60($sp) +/* 06ED58 7F03A228 8FB50064 */ lw $s5, 0x64($sp) +/* 06ED5C 7F03A22C 8FB60068 */ lw $s6, 0x68($sp) +/* 06ED60 7F03A230 8FB7006C */ lw $s7, 0x6c($sp) +/* 06ED64 7F03A234 8FBE0070 */ lw $fp, 0x70($sp) +/* 06ED68 7F03A238 03E00008 */ jr $ra +/* 06ED6C 7F03A23C 27BD07B8 */ addiu $sp, $sp, 0x7b8 +) +#endif + + #endif @@ -14333,20 +20206,12 @@ glabel set_stateflag_0x04_for_posdata -#ifdef NONMATCHING -void unset_stateflag_0x04_for_posdata(void) { +void propHide(struct prop *prop) +{ + prop->flags = prop->flags & 0xfffb; } -#else -GLOBAL_ASM( -.text -glabel unset_stateflag_0x04_for_posdata -/* 06EF44 7F03A414 908E0001 */ lbu $t6, 1($a0) -/* 06EF48 7F03A418 31CFFFFB */ andi $t7, $t6, 0xfffb -/* 06EF4C 7F03A41C 03E00008 */ jr $ra -/* 06EF50 7F03A420 A08F0001 */ sb $t7, 1($a0) -) -#endif + @@ -14400,25 +20265,15 @@ glabel remove_last_obj_pos_data_entry -#ifdef NONMATCHING -void set_last_obj_pos_data(void) { +void propFree(struct prop *prop) + +{ + prop->nextSibling = ptr_obj_pos_list_final_entry; + prop->prevSibling = 0x0; + prop->standTile = 0x0; + ptr_obj_pos_list_final_entry = prop; } -#else -GLOBAL_ASM( -.text -glabel set_last_obj_pos_data -/* 06EFB4 7F03A484 3C028003 */ lui $v0, %hi(ptr_obj_pos_list_final_entry) -/* 06EFB8 7F03A488 24420AA8 */ addiu $v0, %lo(ptr_obj_pos_list_final_entry) # addiu $v0, $v0, 0xaa8 -/* 06EFBC 7F03A48C 8C4E0000 */ lw $t6, ($v0) -/* 06EFC0 7F03A490 AC800028 */ sw $zero, 0x28($a0) -/* 06EFC4 7F03A494 AC800014 */ sw $zero, 0x14($a0) -/* 06EFC8 7F03A498 AC8E0024 */ sw $t6, 0x24($a0) -/* 06EFCC 7F03A49C 03E00008 */ jr $ra -/* 06EFD0 7F03A4A0 AC440000 */ sw $a0, ($v0) -) -#endif - @@ -14694,7 +20549,7 @@ glabel sub_GAME_7F03A6F4 /* 06F248 7F03A718 AFB30020 */ sw $s3, 0x20($sp) /* 06F24C 7F03A71C AFB2001C */ sw $s2, 0x1c($sp) /* 06F250 7F03A720 AFB10018 */ sw $s1, 0x18($sp) -/* 06F254 7F03A724 0C001A57 */ jal get_stage_num +/* 06F254 7F03A724 0C001A57 */ jal bossGetStageNum /* 06F258 7F03A728 AFB00014 */ sw $s0, 0x14($sp) /* 06F25C 7F03A72C 24010036 */ li $at, 54 /* 06F260 7F03A730 14410008 */ bne $v0, $at, .L7F03A754 @@ -15884,7 +21739,7 @@ glabel sub_GAME_7F03B15C /* 070244 7F03B714 1180000A */ beqz $t4, .L7F03B740 /* 070248 7F03B718 25AE0001 */ addiu $t6, $t5, 1 /* 07024C 7F03B71C AFAE018C */ sw $t6, 0x18c($sp) -/* 070250 7F03B720 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 070250 7F03B720 0FC1780E */ jal bondwalkItemGetObjectsShootThrough /* 070254 7F03B724 8FA401AC */ lw $a0, 0x1ac($sp) /* 070258 7F03B728 8FAF018C */ lw $t7, 0x18c($sp) /* 07025C 7F03B72C 01E2082A */ slt $at, $t7, $v0 @@ -15947,7 +21802,7 @@ glabel sub_GAME_7F03B15C /* 070324 7F03B7F4 00000000 */ nop /* 070328 7F03B7F8 13210014 */ beq $t9, $at, .L7F03B84C /* 07032C 7F03B7FC 00000000 */ nop -/* 070330 7F03B800 0C002914 */ jal get_random_value +/* 070330 7F03B800 0C002914 */ jal randomGetNext /* 070334 7F03B804 00000000 */ nop /* 070338 7F03B808 8608000A */ lh $t0, 0xa($s0) /* 07033C 7F03B80C 8E090004 */ lw $t1, 4($s0) @@ -16122,7 +21977,7 @@ glabel sub_GAME_7F03B9C0 /* 07057C 7F03BA4C E7AE0038 */ swc1 $f14, 0x38($sp) /* 070580 7F03BA50 E7AC0020 */ swc1 $f12, 0x20($sp) /* 070584 7F03BA54 AFA60024 */ sw $a2, 0x24($sp) -/* 070588 7F03BA58 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 070588 7F03BA58 0FC1780E */ jal bondwalkItemGetObjectsShootThrough /* 07058C 7F03BA5C AFA5001C */ sw $a1, 0x1c($sp) /* 070590 7F03BA60 8FA5001C */ lw $a1, 0x1c($sp) /* 070594 7F03BA64 8FA60024 */ lw $a2, 0x24($sp) @@ -16231,7 +22086,7 @@ glabel sub_GAME_7F03B9C0 .L7F03BBE0: /* 070710 7F03BBE0 8CE40018 */ lw $a0, 0x18($a3) /* 070714 7F03BBE4 E7AE0038 */ swc1 $f14, 0x38($sp) -/* 070718 7F03BBE8 0FC1780E */ jal bondwalkItemGetShootThroughFlag +/* 070718 7F03BBE8 0FC1780E */ jal bondwalkItemGetObjectsShootThrough /* 07071C 7F03BBEC AFA5001C */ sw $a1, 0x1c($sp) /* 070720 7F03BBF0 8FA5001C */ lw $a1, 0x1c($sp) /* 070724 7F03BBF4 8FA70030 */ lw $a3, 0x30($sp) @@ -16573,8 +22428,8 @@ glabel sub_GAME_7F03BDEC /* 070BCC 7F03C09C 55A00008 */ bnezl $t5, .L7F03C0C0 /* 070BD0 7F03C0A0 8FBF0064 */ lw $ra, 0x64($sp) /* 070BD4 7F03C0A4 16C10005 */ bne $s6, $at, .L7F03C0BC -/* 070BD8 7F03C0A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 070BDC 7F03C0AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 070BD8 7F03C0A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 070BDC 7F03C0AC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 070BE0 7F03C0B0 24050069 */ li $a1, 105 /* 070BE4 7F03C0B4 0C002382 */ jal play_sfx_a1 /* 070BE8 7F03C0B8 00003025 */ move $a2, $zero @@ -16797,7 +22652,7 @@ glabel sub_GAME_7F03C2BC /* 070E60 7F03C330 A06C0002 */ sb $t4, 2($v1) /* 070E64 7F03C334 0FC0F863 */ jal sub_GAME_7F03E18C /* 070E68 7F03C338 E4640070 */ swc1 $f4, 0x70($v1) -/* 070E6C 7F03C33C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E6C 7F03C33C 0FC0E905 */ jal propHide /* 070E70 7F03C340 02002025 */ move $a0, $s0 /* 070E74 7F03C344 10000029 */ b .L7F03C3EC /* 070E78 7F03C348 8FBF001C */ lw $ra, 0x1c($sp) @@ -16806,9 +22661,9 @@ glabel sub_GAME_7F03C2BC /* 070E80 7F03C350 02002025 */ move $a0, $s0 /* 070E84 7F03C354 0FC0E94E */ jal sub_GAME_7F03A538 /* 070E88 7F03C358 02002025 */ move $a0, $s0 -/* 070E8C 7F03C35C 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070E8C 7F03C35C 0FC0E905 */ jal propHide /* 070E90 7F03C360 02002025 */ move $a0, $s0 -/* 070E94 7F03C364 0FC0E921 */ jal set_last_obj_pos_data +/* 070E94 7F03C364 0FC0E921 */ jal propFree /* 070E98 7F03C368 02002025 */ move $a0, $s0 /* 070E9C 7F03C36C 1000001F */ b .L7F03C3EC /* 070EA0 7F03C370 8FBF001C */ lw $ra, 0x1c($sp) @@ -16820,7 +22675,7 @@ glabel sub_GAME_7F03C2BC /* 070EB4 7F03C384 02002025 */ move $a0, $s0 /* 070EB8 7F03C388 0FC0E94E */ jal sub_GAME_7F03A538 /* 070EBC 7F03C38C 02002025 */ move $a0, $s0 -/* 070EC0 7F03C390 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EC0 7F03C390 0FC0E905 */ jal propHide /* 070EC4 7F03C394 02002025 */ move $a0, $s0 /* 070EC8 7F03C398 10000014 */ b .L7F03C3EC /* 070ECC 7F03C39C 8FBF001C */ lw $ra, 0x1c($sp) @@ -16832,7 +22687,7 @@ glabel sub_GAME_7F03C2BC /* 070EE0 7F03C3B0 02002025 */ move $a0, $s0 /* 070EE4 7F03C3B4 0FC0E94E */ jal sub_GAME_7F03A538 /* 070EE8 7F03C3B8 02002025 */ move $a0, $s0 -/* 070EEC 7F03C3BC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 070EEC 7F03C3BC 0FC0E905 */ jal propHide /* 070EF0 7F03C3C0 02002025 */ move $a0, $s0 /* 070EF4 7F03C3C4 0FC13011 */ jal sub_GAME_7F04C044 /* 070EF8 7F03C3C8 02002025 */ move $a0, $s0 @@ -17252,7 +23107,7 @@ glabel handle_mp_respawn_and_some_things /* 0713DC 7F03C8AC 92180003 */ lbu $t8, 3($s0) .L7F03C8B0: /* 0713E0 7F03C8B0 24010015 */ li $at, 21 -/* 0713E4 7F03C8B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0713E4 7F03C8B4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0713E8 7F03C8B8 17010003 */ bne $t8, $at, .L7F03C8C8 /* 0713EC 7F03C8BC 24050052 */ li $a1, 82 /* 0713F0 7F03C8C0 C6060080 */ lwc1 $f6, 0x80($s0) @@ -17261,7 +23116,7 @@ glabel handle_mp_respawn_and_some_things /* 0713F8 7F03C8C8 16600006 */ bnez $s3, .L7F03C8E4 /* 0713FC 7F03C8CC 00003025 */ move $a2, $zero /* 071400 7F03C8D0 0C002382 */ jal play_sfx_a1 -/* 071404 7F03C8D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 071404 7F03C8D4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 071408 7F03C8D8 00402025 */ move $a0, $v0 /* 07140C 7F03C8DC 0FC14E84 */ jal sub_GAME_7F053A10 /* 071410 7F03C8E0 26250008 */ addiu $a1, $s1, 8 diff --git a/src/game/chrai.h b/src/game/chrai.h index 3872508..64544a0 100644 --- a/src/game/chrai.h +++ b/src/game/chrai.h @@ -111,6 +111,7 @@ extern struct struct_20 D_80031D58; extern u32 monitor_animation_microcode[]; extern u32 dword_D_80031F00[]; extern u32 dword_D_80031F44[]; +extern u32 temp_mine_table[30]; extern f32 gas_damage_flag; extern u32 gas_cutoff_flag; extern struct object_standard * ptr_setup_objects; diff --git a/src/game/chrobjdata.h b/src/game/chrobjdata.h index 3eefceb..54cd516 100644 --- a/src/game/chrobjdata.h +++ b/src/game/chrobjdata.h @@ -676,4 +676,6 @@ extern struct PitemZ_header PdoorconsoleZ_header; extern struct PitemZ_header PchrtesttubeZ_header; extern struct PitemZ_header Pbollardz_header; +extern struct c_itementry c_item_entries[]; + #endif diff --git a/src/game/chrobjhandler.c b/src/game/chrobjhandler.c index 761e009..f46b864 100644 --- a/src/game/chrobjhandler.c +++ b/src/game/chrobjhandler.c @@ -1,5 +1,6 @@ #include "ultra64.h" #include "bondgame.h" +#include "boss.h" #include "game/bond.h" #include "game/bondinv.h" #include "game/chr.h" @@ -8,6 +9,7 @@ #include "music.h" #include "game/lvl.h" #include "game/lvl_text.h" +#include "game/chrobjhandler.h" s32 alarm_timer = 0; s32 *ptr_alarm_sfx = 0; @@ -1488,7 +1490,7 @@ glabel init_standard_object .L7F0406CC: /* 0751FC 7F0406CC 52200005 */ beql $s1, $zero, .L7F0406E4 /* 075200 7F0406D0 8FBF001C */ lw $ra, 0x1c($sp) -/* 075204 7F0406D4 0FC0E921 */ jal set_last_obj_pos_data +/* 075204 7F0406D4 0FC0E921 */ jal propFree /* 075208 7F0406D8 02202025 */ move $a0, $s1 /* 07520C 7F0406DC 00008825 */ move $s1, $zero .L7F0406E0: @@ -2252,9 +2254,9 @@ glabel sub_GAME_7F040D98 /* 075B1C 7F040FEC AE400010 */ sw $zero, 0x10($s2) /* 075B20 7F040FF0 0FC0E94E */ jal sub_GAME_7F03A538 /* 075B24 7F040FF4 8E440010 */ lw $a0, 0x10($s2) -/* 075B28 7F040FF8 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 075B28 7F040FF8 0FC0E905 */ jal propHide /* 075B2C 7F040FFC 8E440010 */ lw $a0, 0x10($s2) -/* 075B30 7F041000 0FC0E921 */ jal set_last_obj_pos_data +/* 075B30 7F041000 0FC0E921 */ jal propFree /* 075B34 7F041004 8E440010 */ lw $a0, 0x10($s2) /* 075B38 7F041008 AE400010 */ sw $zero, 0x10($s2) .L7F04100C: @@ -5148,7 +5150,7 @@ glabel sub_GAME_7F043650 /* 0781E4 7F0436B4 A5210004 */ sh $at, 4($t1) /* 0781E8 7F0436B8 8C8D006C */ lw $t5, 0x6c($a0) /* 0781EC 7F0436BC 8DAE00A4 */ lw $t6, 0xa4($t5) -/* 0781F0 7F0436C0 0C002914 */ jal get_random_value +/* 0781F0 7F0436C0 0C002914 */ jal randomGetNext /* 0781F4 7F0436C4 AFAE0034 */ sw $t6, 0x34($sp) /* 0781F8 7F0436C8 24010003 */ li $at, 3 /* 0781FC 7F0436CC 0041001B */ divu $zero, $v0, $at @@ -5190,7 +5192,7 @@ glabel sub_GAME_7F043650 /* 078284 7F043754 8FA7002C */ lw $a3, 0x2c($sp) /* 078288 7F043758 8FB80030 */ lw $t8, 0x30($sp) /* 07828C 7F04375C 8E0B006C */ lw $t3, 0x6c($s0) -/* 078290 7F043760 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 078290 7F043760 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 078294 7F043764 00184040 */ sll $t0, $t8, 1 /* 078298 7F043768 03A82821 */ addu $a1, $sp, $t0 /* 07829C 7F04376C 84A50038 */ lh $a1, 0x38($a1) @@ -5198,7 +5200,7 @@ glabel sub_GAME_7F043650 /* 0782A4 7F043774 24C60098 */ addiu $a2, $a2, 0x98 /* 0782A8 7F043778 AFA7002C */ sw $a3, 0x2c($sp) /* 0782AC 7F04377C 0C002382 */ jal play_sfx_a1 -/* 0782B0 7F043780 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0782B0 7F043780 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0782B4 7F043784 8FA7002C */ lw $a3, 0x2c($sp) /* 0782B8 7F043788 8E09006C */ lw $t1, 0x6c($s0) /* 0782BC 7F04378C 8E050010 */ lw $a1, 0x10($s0) @@ -5470,7 +5472,7 @@ glabel sub_GAME_7F043A6C /* 078600 7F043AD0 AE080064 */ sw $t0, 0x64($s0) /* 078604 7F043AD4 0FC0E94E */ jal sub_GAME_7F03A538 /* 078608 7F043AD8 02202025 */ move $a0, $s1 -/* 07860C 7F043ADC 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 07860C 7F043ADC 0FC0E905 */ jal propHide /* 078610 7F043AE0 02202025 */ move $a0, $s1 /* 078614 7F043AE4 8FA900F8 */ lw $t1, 0xf8($sp) /* 078618 7F043AE8 8E0A0014 */ lw $t2, 0x14($s0) @@ -5807,6 +5809,146 @@ glabel generate_explosion_at_position ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel generate_explosion_at_position +/* 0786AC 7F043B7C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0786B0 7F043B80 AFBF002C */ sw $ra, 0x2c($sp) +/* 0786B4 7F043B84 AFB00028 */ sw $s0, 0x28($sp) +/* 0786B8 7F043B88 AFA50064 */ sw $a1, 0x64($sp) +/* 0786BC 7F043B8C 8C880004 */ lw $t0, 4($a0) +/* 0786C0 7F043B90 3C010006 */ lui $at, 6 +/* 0786C4 7F043B94 00808025 */ move $s0, $a0 +/* 0786C8 7F043B98 8D0E0064 */ lw $t6, 0x64($t0) +/* 0786CC 7F043B9C 2619002C */ addiu $t9, $s0, 0x2c +/* 0786D0 7F043BA0 01C17824 */ and $t7, $t6, $at +/* 0786D4 7F043BA4 000FC442 */ srl $t8, $t7, 0x11 +/* 0786D8 7F043BA8 AFB80058 */ sw $t8, 0x58($sp) +/* 0786DC 7F043BAC 8C86001C */ lw $a2, 0x1c($a0) +/* 0786E0 7F043BB0 00002025 */ move $a0, $zero +/* 0786E4 7F043BB4 50C00056 */ beql $a2, $zero, .L7F043D10 +/* 0786E8 7F043BB8 8D020008 */ lw $v0, 8($t0) +/* 0786EC 7F043BBC 8CC2001C */ lw $v0, 0x1c($a2) +/* 0786F0 7F043BC0 00C01825 */ move $v1, $a2 +/* 0786F4 7F043BC4 50400006 */ beql $v0, $zero, .L7F043BE0 +/* 0786F8 7F043BC8 8C790014 */ lw $t9, 0x14($v1) +/* 0786FC 7F043BCC 00401825 */ move $v1, $v0 +.L7F043BD0: +/* 078700 7F043BD0 8C42001C */ lw $v0, 0x1c($v0) +/* 078704 7F043BD4 5440FFFE */ bnezl $v0, .L7F043BD0 +/* 078708 7F043BD8 00401825 */ move $v1, $v0 +/* 07870C 7F043BDC 8C790014 */ lw $t9, 0x14($v1) +.L7F043BE0: +/* 078710 7F043BE0 AFB90050 */ sw $t9, 0x50($sp) +/* 078714 7F043BE4 92090001 */ lbu $t1, 1($s0) +/* 078718 7F043BE8 312A0002 */ andi $t2, $t1, 2 +/* 07871C 7F043BEC 51400014 */ beql $t2, $zero, .L7F043C40 +/* 078720 7F043BF0 C46A0008 */ lwc1 $f10, 8($v1) +/* 078724 7F043BF4 8D040014 */ lw $a0, 0x14($t0) +/* 078728 7F043BF8 AFA8005C */ sw $t0, 0x5c($sp) +/* 07872C 7F043BFC 0FC1B1A8 */ jal getsubmatrix +/* 078730 7F043C00 AFA30054 */ sw $v1, 0x54($sp) +/* 078734 7F043C04 C4440030 */ lwc1 $f4, 0x30($v0) +/* 078738 7F043C08 E7A40044 */ swc1 $f4, 0x44($sp) +/* 07873C 7F043C0C C4460034 */ lwc1 $f6, 0x34($v0) +/* 078740 7F043C10 E7A60048 */ swc1 $f6, 0x48($sp) +/* 078744 7F043C14 C4480038 */ lwc1 $f8, 0x38($v0) +/* 078748 7F043C18 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 07874C 7F043C1C E7A8004C */ swc1 $f8, 0x4c($sp) +/* 078750 7F043C20 27B00044 */ addiu $s0, $sp, 0x44 +/* 078754 7F043C24 02002825 */ move $a1, $s0 +/* 078758 7F043C28 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07875C 7F043C2C 00402025 */ move $a0, $v0 +/* 078760 7F043C30 8FA30054 */ lw $v1, 0x54($sp) +/* 078764 7F043C34 10000008 */ b .L7F043C58 +/* 078768 7F043C38 8FA8005C */ lw $t0, 0x5c($sp) +/* 07876C 7F043C3C C46A0008 */ lwc1 $f10, 8($v1) +.L7F043C40: +/* 078770 7F043C40 27B00044 */ addiu $s0, $sp, 0x44 +/* 078774 7F043C44 E7AA0044 */ swc1 $f10, 0x44($sp) +/* 078778 7F043C48 C470000C */ lwc1 $f16, 0xc($v1) +/* 07877C 7F043C4C E7B00048 */ swc1 $f16, 0x48($sp) +/* 078780 7F043C50 C4720010 */ lwc1 $f18, 0x10($v1) +/* 078784 7F043C54 E7B2004C */ swc1 $f18, 0x4c($sp) +.L7F043C58: +/* 078788 7F043C58 906B0001 */ lbu $t3, 1($v1) +/* 07878C 7F043C5C 27A40050 */ addiu $a0, $sp, 0x50 +/* 078790 7F043C60 8FA70044 */ lw $a3, 0x44($sp) +/* 078794 7F043C64 316C0008 */ andi $t4, $t3, 8 +/* 078798 7F043C68 1580001A */ bnez $t4, .L7F043CD4 +/* 07879C 7F043C6C C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 0787A0 7F043C70 8C650008 */ lw $a1, 8($v1) +/* 0787A4 7F043C74 8C660010 */ lw $a2, 0x10($v1) +/* 0787A8 7F043C78 AFA8005C */ sw $t0, 0x5c($sp) +/* 0787AC 7F043C7C AFA30054 */ sw $v1, 0x54($sp) +/* 0787B0 7F043C80 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 0787B4 7F043C84 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0787B8 7F043C88 8FA30054 */ lw $v1, 0x54($sp) +/* 0787BC 7F043C8C 10400011 */ beqz $v0, .L7F043CD4 +/* 0787C0 7F043C90 8FA8005C */ lw $t0, 0x5c($sp) +/* 0787C4 7F043C94 8D0D0008 */ lw $t5, 8($t0) +/* 0787C8 7F043C98 8FB80058 */ lw $t8, 0x58($sp) +/* 0787CC 7F043C9C 2479002C */ addiu $t9, $v1, 0x2c +/* 0787D0 7F043CA0 31AE000E */ andi $t6, $t5, 0xe +/* 0787D4 7F043CA4 2DCF0001 */ sltiu $t7, $t6, 1 +/* 0787D8 7F043CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0787DC 7F043CAC AFB90018 */ sw $t9, 0x18($sp) +/* 0787E0 7F043CB0 AFA0001C */ sw $zero, 0x1c($sp) +/* 0787E4 7F043CB4 00002025 */ move $a0, $zero +/* 0787E8 7F043CB8 02002825 */ move $a1, $s0 +/* 0787EC 7F043CBC 8FA60050 */ lw $a2, 0x50($sp) +/* 0787F0 7F043CC0 87A70066 */ lh $a3, 0x66($sp) +/* 0787F4 7F043CC4 0FC27094 */ jal sub_GAME_7F09C250 +/* 0787F8 7F043CC8 AFB80014 */ sw $t8, 0x14($sp) +/* 0787FC 7F043CCC 10000024 */ b .L7F043D60 +/* 078800 7F043CD0 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043CD4: +/* 078804 7F043CD4 8FA90058 */ lw $t1, 0x58($sp) +/* 078808 7F043CD8 246A002C */ addiu $t2, $v1, 0x2c +/* 07880C 7F043CDC 240B0001 */ li $t3, 1 +/* 078810 7F043CE0 AFAB001C */ sw $t3, 0x1c($sp) +/* 078814 7F043CE4 AFAA0018 */ sw $t2, 0x18($sp) +/* 078818 7F043CE8 00002025 */ move $a0, $zero +/* 07881C 7F043CEC 02002825 */ move $a1, $s0 +/* 078820 7F043CF0 8FA60050 */ lw $a2, 0x50($sp) +/* 078824 7F043CF4 87A70066 */ lh $a3, 0x66($sp) +/* 078828 7F043CF8 AFA00010 */ sw $zero, 0x10($sp) +/* 07882C 7F043CFC 0FC27094 */ jal sub_GAME_7F09C250 +/* 078830 7F043D00 AFA90014 */ sw $t1, 0x14($sp) +/* 078834 7F043D04 10000016 */ b .L7F043D60 +/* 078838 7F043D08 8FBF002C */ lw $ra, 0x2c($sp) +/* 07883C 7F043D0C 8D020008 */ lw $v0, 8($t0) +.L7F043D10: +/* 078840 7F043D10 304C000E */ andi $t4, $v0, 0xe +/* 078844 7F043D14 2D820001 */ sltiu $v0, $t4, 1 +/* 078848 7F043D18 50400005 */ beql $v0, $zero, .L7F043D30 +/* 07884C 7F043D1C 8FB80058 */ lw $t8, 0x58($sp) +/* 078850 7F043D20 92020001 */ lbu $v0, 1($s0) +/* 078854 7F043D24 304E0008 */ andi $t6, $v0, 8 +/* 078858 7F043D28 2DC20001 */ sltiu $v0, $t6, 1 +/* 07885C 7F043D2C 8FB80058 */ lw $t8, 0x58($sp) +.L7F043D30: +/* 078860 7F043D30 8E060014 */ lw $a2, 0x14($s0) +/* 078864 7F043D34 AFB90018 */ sw $t9, 0x18($sp) +/* 078868 7F043D38 AFA20010 */ sw $v0, 0x10($sp) +/* 07886C 7F043D3C AFB80014 */ sw $t8, 0x14($sp) +/* 078870 7F043D40 92090001 */ lbu $t1, 1($s0) +/* 078874 7F043D44 25050058 */ addiu $a1, $t0, 0x58 +/* 078878 7F043D48 87A70066 */ lh $a3, 0x66($sp) +/* 07887C 7F043D4C 312A0008 */ andi $t2, $t1, 8 +/* 078880 7F043D50 000A582B */ sltu $t3, $zero, $t2 +/* 078884 7F043D54 0FC27094 */ jal sub_GAME_7F09C250 +/* 078888 7F043D58 AFAB001C */ sw $t3, 0x1c($sp) +/* 07888C 7F043D5C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F043D60: +/* 078890 7F043D60 8FB00028 */ lw $s0, 0x28($sp) +/* 078894 7F043D64 27BD0060 */ addiu $sp, $sp, 0x60 +/* 078898 7F043D68 03E00008 */ jr $ra +/* 07889C 7F043D6C 00000000 */ nop +) +#endif + #endif @@ -6021,7 +6163,7 @@ glabel handle_thrown_explosive_detonation /* 078B7C 7F04404C 8FA7001C */ lw $a3, 0x1c($sp) /* 078B80 7F044050 AFA60018 */ sw $a2, 0x18($sp) .L7F044054: -/* 078B84 7F044054 0C001A57 */ jal get_stage_num +/* 078B84 7F044054 0C001A57 */ jal bossGetStageNum /* 078B88 7F044058 AFA7001C */ sw $a3, 0x1c($sp) /* 078B8C 7F04405C 24010022 */ li $at, 34 /* 078B90 7F044060 8FA60018 */ lw $a2, 0x18($sp) @@ -6342,7 +6484,7 @@ glabel handle_thrown_explosive_detonation /* 078EB4 7F044344 AFA5001C */ sw $a1, 0x1c($sp) .L7F044348: /* 078EB8 7F044348 AFA60028 */ sw $a2, 0x28($sp) -/* 078EBC 7F04434C 0C001A57 */ jal get_stage_num +/* 078EBC 7F04434C 0C001A57 */ jal bossGetStageNum /* 078EC0 7F044350 AFA7002C */ sw $a3, 0x2c($sp) /* 078EC4 7F044354 24010022 */ li $at, 34 /* 078EC8 7F044358 8FA5001C */ lw $a1, 0x1c($sp) @@ -6455,6 +6597,329 @@ glabel handle_thrown_explosive_detonation /* 079054 7F0444E4 00000000 */ nop ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80052A94 +.word 0x47742400 /*62500.0*/ +.text +glabel handle_thrown_explosive_detonation +/* 0788A0 7F043D70 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 0788A4 7F043D74 AFBF0014 */ sw $ra, 0x14($sp) +/* 0788A8 7F043D78 AFA40020 */ sw $a0, 0x20($sp) +/* 0788AC 7F043D7C 8C870004 */ lw $a3, 4($a0) +/* 0788B0 7F043D80 0FC26C54 */ jal get_cur_playernum +/* 0788B4 7F043D84 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788B8 7F043D88 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 0788BC 7F043D8C 00402025 */ move $a0, $v0 +/* 0788C0 7F043D90 14400117 */ bnez $v0, .L7F0441F0 +/* 0788C4 7F043D94 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788C8 7F043D98 90E20003 */ lbu $v0, 3($a3) +/* 0788CC 7F043D9C 24010007 */ li $at, 7 +/* 0788D0 7F043DA0 5441000F */ bnel $v0, $at, .L7F043DE0 +/* 0788D4 7F043DA4 24010008 */ li $at, 8 +/* 0788D8 7F043DA8 8CEF0008 */ lw $t7, 8($a3) +/* 0788DC 7F043DAC 8FA40020 */ lw $a0, 0x20($sp) +/* 0788E0 7F043DB0 2405000C */ li $a1, 12 +/* 0788E4 7F043DB4 000FC0C0 */ sll $t8, $t7, 3 +/* 0788E8 7F043DB8 0703010E */ bgezl $t8, .L7F0441F4 +/* 0788EC 7F043DBC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0788F0 7F043DC0 0FC10EDF */ jal generate_explosion_at_position +/* 0788F4 7F043DC4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0788F8 7F043DC8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0788FC 7F043DCC 8CF90064 */ lw $t9, 0x64($a3) +/* 078900 7F043DD0 37280004 */ ori $t0, $t9, 4 +/* 078904 7F043DD4 10000106 */ b .L7F0441F0 +/* 078908 7F043DD8 ACE80064 */ sw $t0, 0x64($a3) +/* 07890C 7F043DDC 24010008 */ li $at, 8 +.L7F043DE0: +/* 078910 7F043DE0 14410103 */ bne $v0, $at, .L7F0441F0 +/* 078914 7F043DE4 8FA90020 */ lw $t1, 0x20($sp) +/* 078918 7F043DE8 8D260004 */ lw $a2, 4($t1) +/* 07891C 7F043DEC 2401001A */ li $at, 26 +/* 078920 7F043DF0 80C30080 */ lb $v1, 0x80($a2) +/* 078924 7F043DF4 10610003 */ beq $v1, $at, .L7F043E04 +/* 078928 7F043DF8 24010057 */ li $at, 87 +/* 07892C 7F043DFC 5461001B */ bnel $v1, $at, .L7F043E6C +/* 078930 7F043E00 24010056 */ li $at, 86 +.L7F043E04: +/* 078934 7F043E04 84C20082 */ lh $v0, 0x82($a2) +/* 078938 7F043E08 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07893C 7F043E0C 04420017 */ bltzl $v0, .L7F043E6C +/* 078940 7F043E10 24010056 */ li $at, 86 +/* 078944 7F043E14 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 078948 7F043E18 004A5823 */ subu $t3, $v0, $t2 +/* 07894C 7F043E1C A4CB0082 */ sh $t3, 0x82($a2) +/* 078950 7F043E20 84CC0082 */ lh $t4, 0x82($a2) +/* 078954 7F043E24 8FA40020 */ lw $a0, 0x20($sp) +/* 078958 7F043E28 058300F2 */ bgezl $t4, .L7F0441F4 +/* 07895C 7F043E2C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078960 7F043E30 8CED000C */ lw $t5, 0xc($a3) +/* 078964 7F043E34 2405000D */ li $a1, 13 +/* 078968 7F043E38 000D7000 */ sll $t6, $t5, 0 +/* 07896C 7F043E3C 05C10003 */ bgez $t6, .L7F043E4C +/* 078970 7F043E40 00000000 */ nop +/* 078974 7F043E44 10000001 */ b .L7F043E4C +/* 078978 7F043E48 24050011 */ li $a1, 17 +.L7F043E4C: +/* 07897C 7F043E4C 0FC10EDF */ jal generate_explosion_at_position +/* 078980 7F043E50 AFA7001C */ sw $a3, 0x1c($sp) +/* 078984 7F043E54 8FA7001C */ lw $a3, 0x1c($sp) +/* 078988 7F043E58 8CEF0064 */ lw $t7, 0x64($a3) +/* 07898C 7F043E5C 35F80004 */ ori $t8, $t7, 4 +/* 078990 7F043E60 100000E3 */ b .L7F0441F0 +/* 078994 7F043E64 ACF80064 */ sw $t8, 0x64($a3) +/* 078998 7F043E68 24010056 */ li $at, 86 +.L7F043E6C: +/* 07899C 7F043E6C 54610014 */ bnel $v1, $at, .L7F043EC0 +/* 0789A0 7F043E70 24010022 */ li $at, 34 +/* 0789A4 7F043E74 84D90082 */ lh $t9, 0x82($a2) +/* 0789A8 7F043E78 8FA40020 */ lw $a0, 0x20($sp) +/* 0789AC 7F043E7C 572000DD */ bnezl $t9, .L7F0441F4 +/* 0789B0 7F043E80 8FBF0014 */ lw $ra, 0x14($sp) +/* 0789B4 7F043E84 8CE8000C */ lw $t0, 0xc($a3) +/* 0789B8 7F043E88 2405000D */ li $a1, 13 +/* 0789BC 7F043E8C 00084800 */ sll $t1, $t0, 0 +/* 0789C0 7F043E90 05210003 */ bgez $t1, .L7F043EA0 +/* 0789C4 7F043E94 00000000 */ nop +/* 0789C8 7F043E98 10000001 */ b .L7F043EA0 +/* 0789CC 7F043E9C 24050011 */ li $a1, 17 +.L7F043EA0: +/* 0789D0 7F043EA0 0FC10EDF */ jal generate_explosion_at_position +/* 0789D4 7F043EA4 AFA7001C */ sw $a3, 0x1c($sp) +/* 0789D8 7F043EA8 8FA7001C */ lw $a3, 0x1c($sp) +/* 0789DC 7F043EAC 8CEA0064 */ lw $t2, 0x64($a3) +/* 0789E0 7F043EB0 354B0004 */ ori $t3, $t2, 4 +/* 0789E4 7F043EB4 100000CE */ b .L7F0441F0 +/* 0789E8 7F043EB8 ACEB0064 */ sw $t3, 0x64($a3) +/* 0789EC 7F043EBC 24010022 */ li $at, 34 +.L7F043EC0: +/* 0789F0 7F043EC0 54610014 */ bnel $v1, $at, .L7F043F14 +/* 0789F4 7F043EC4 2401001B */ li $at, 27 +/* 0789F8 7F043EC8 84CC0082 */ lh $t4, 0x82($a2) +/* 0789FC 7F043ECC 8FA40020 */ lw $a0, 0x20($sp) +/* 078A00 7F043ED0 24050011 */ li $a1, 17 +/* 078A04 7F043ED4 558000C7 */ bnezl $t4, .L7F0441F4 +/* 078A08 7F043ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A0C 7F043EDC 0FC10EDF */ jal generate_explosion_at_position +/* 078A10 7F043EE0 AFA7001C */ sw $a3, 0x1c($sp) +/* 078A14 7F043EE4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078A18 7F043EE8 24040078 */ li $a0, 120 +/* 078A1C 7F043EEC 8CED0064 */ lw $t5, 0x64($a3) +/* 078A20 7F043EF0 35AE0004 */ ori $t6, $t5, 4 +/* 078A24 7F043EF4 0FC22FF1 */ jal trigger_explosions_around_player +/* 078A28 7F043EF8 ACEE0064 */ sw $t6, 0x64($a3) +/* 078A2C 7F043EFC 24040002 */ li $a0, 2 +/* 078A30 7F043F00 0FC15858 */ jal set_unset_clock_lock_bits +/* 078A34 7F043F04 00002825 */ move $a1, $zero +/* 078A38 7F043F08 100000BA */ b .L7F0441F4 +/* 078A3C 7F043F0C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A40 7F043F10 2401001B */ li $at, 27 +.L7F043F14: +/* 078A44 7F043F14 10610003 */ beq $v1, $at, .L7F043F24 +/* 078A48 7F043F18 24010021 */ li $at, 33 +/* 078A4C 7F043F1C 5461001F */ bnel $v1, $at, .L7F043F9C +/* 078A50 7F043F20 2401001D */ li $at, 29 +.L7F043F24: +/* 078A54 7F043F24 84C20082 */ lh $v0, 0x82($a2) +/* 078A58 7F043F28 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 078A5C 7F043F2C 0442001B */ bltzl $v0, .L7F043F9C +/* 078A60 7F043F30 2401001D */ li $at, 29 +/* 078A64 7F043F34 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 078A68 7F043F38 004FC023 */ subu $t8, $v0, $t7 +/* 078A6C 7F043F3C A4D80082 */ sh $t8, 0x82($a2) +/* 078A70 7F043F40 84D90082 */ lh $t9, 0x82($a2) +/* 078A74 7F043F44 8FA40020 */ lw $a0, 0x20($sp) +/* 078A78 7F043F48 072300AA */ bgezl $t9, .L7F0441F4 +/* 078A7C 7F043F4C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078A80 7F043F50 8CE8000C */ lw $t0, 0xc($a3) +/* 078A84 7F043F54 2405000D */ li $a1, 13 +/* 078A88 7F043F58 00084800 */ sll $t1, $t0, 0 +/* 078A8C 7F043F5C 05210003 */ bgez $t1, .L7F043F6C +/* 078A90 7F043F60 00000000 */ nop +/* 078A94 7F043F64 10000001 */ b .L7F043F6C +/* 078A98 7F043F68 24050011 */ li $a1, 17 +.L7F043F6C: +/* 078A9C 7F043F6C AFA60018 */ sw $a2, 0x18($sp) +/* 078AA0 7F043F70 0FC10EDF */ jal generate_explosion_at_position +/* 078AA4 7F043F74 AFA7001C */ sw $a3, 0x1c($sp) +/* 078AA8 7F043F78 8FA60018 */ lw $a2, 0x18($sp) +/* 078AAC 7F043F7C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078AB0 7F043F80 240AFFFF */ li $t2, -1 +/* 078AB4 7F043F84 A4CA0082 */ sh $t2, 0x82($a2) +/* 078AB8 7F043F88 8CEB0064 */ lw $t3, 0x64($a3) +/* 078ABC 7F043F8C 356C0004 */ ori $t4, $t3, 4 +/* 078AC0 7F043F90 10000097 */ b .L7F0441F0 +/* 078AC4 7F043F94 ACEC0064 */ sw $t4, 0x64($a3) +/* 078AC8 7F043F98 2401001D */ li $at, 29 +.L7F043F9C: +/* 078ACC 7F043F9C 54610049 */ bnel $v1, $at, .L7F0440C4 +/* 078AD0 7F043FA0 2401001C */ li $at, 28 +/* 078AD4 7F043FA4 3C038003 */ lui $v1, %hi(D_80030AF4) +/* 078AD8 7F043FA8 8C630AF4 */ lw $v1, %lo(D_80030AF4)($v1) +/* 078ADC 7F043FAC 3C088005 */ lui $t0, %hi(clock_timer) +/* 078AE0 7F043FB0 5060000C */ beql $v1, $zero, .L7F043FE4 +/* 078AE4 7F043FB4 84C20082 */ lh $v0, 0x82($a2) +/* 078AE8 7F043FB8 8CE20064 */ lw $v0, 0x64($a3) +/* 078AEC 7F043FBC 3C010006 */ lui $at, 6 +/* 078AF0 7F043FC0 240F0001 */ li $t7, 1 +/* 078AF4 7F043FC4 00416824 */ and $t5, $v0, $at +/* 078AF8 7F043FC8 000D7442 */ srl $t6, $t5, 0x11 +/* 078AFC 7F043FCC 01CFC004 */ sllv $t8, $t7, $t6 +/* 078B00 7F043FD0 0078C824 */ and $t9, $v1, $t8 +/* 078B04 7F043FD4 53200003 */ beql $t9, $zero, .L7F043FE4 +/* 078B08 7F043FD8 84C20082 */ lh $v0, 0x82($a2) +/* 078B0C 7F043FDC A4C00082 */ sh $zero, 0x82($a2) +/* 078B10 7F043FE0 84C20082 */ lh $v0, 0x82($a2) +.L7F043FE4: +/* 078B14 7F043FE4 28410002 */ slti $at, $v0, 2 +/* 078B18 7F043FE8 1420000B */ bnez $at, .L7F044018 +/* 078B1C 7F043FEC 00000000 */ nop +/* 078B20 7F043FF0 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 078B24 7F043FF4 240B0001 */ li $t3, 1 +/* 078B28 7F043FF8 00484823 */ subu $t1, $v0, $t0 +/* 078B2C 7F043FFC A4C90082 */ sh $t1, 0x82($a2) +/* 078B30 7F044000 84CA0082 */ lh $t2, 0x82($a2) +/* 078B34 7F044004 29410002 */ slti $at, $t2, 2 +/* 078B38 7F044008 5020007A */ beql $at, $zero, .L7F0441F4 +/* 078B3C 7F04400C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B40 7F044010 10000077 */ b .L7F0441F0 +/* 078B44 7F044014 A4CB0082 */ sh $t3, 0x82($a2) +.L7F044018: +/* 078B48 7F044018 54400076 */ bnezl $v0, .L7F0441F4 +/* 078B4C 7F04401C 8FBF0014 */ lw $ra, 0x14($sp) +/* 078B50 7F044020 8CEC000C */ lw $t4, 0xc($a3) +/* 078B54 7F044024 8FA40020 */ lw $a0, 0x20($sp) +/* 078B58 7F044028 24050011 */ li $a1, 17 +/* 078B5C 7F04402C 000C6800 */ sll $t5, $t4, 0 +/* 078B60 7F044030 05A30008 */ bgezl $t5, .L7F044054 +/* 078B64 7F044034 AFA60018 */ sw $a2, 0x18($sp) +/* 078B68 7F044038 AFA60018 */ sw $a2, 0x18($sp) +/* 078B6C 7F04403C 0FC10EDF */ jal generate_explosion_at_position +/* 078B70 7F044040 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B74 7F044044 8FA60018 */ lw $a2, 0x18($sp) +/* 078B78 7F044048 10000017 */ b .L7F0440A8 +/* 078B7C 7F04404C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B80 7F044050 AFA60018 */ sw $a2, 0x18($sp) +.L7F044054: +/* 078B84 7F044054 0C001A57 */ jal bossGetStageNum +/* 078B88 7F044058 AFA7001C */ sw $a3, 0x1c($sp) +/* 078B8C 7F04405C 24010022 */ li $at, 34 +/* 078B90 7F044060 8FA60018 */ lw $a2, 0x18($sp) +/* 078B94 7F044064 14410009 */ bne $v0, $at, .L7F04408C +/* 078B98 7F044068 8FA7001C */ lw $a3, 0x1c($sp) +/* 078B9C 7F04406C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BA0 7F044070 24050013 */ li $a1, 19 +/* 078BA4 7F044074 AFA60018 */ sw $a2, 0x18($sp) +/* 078BA8 7F044078 0FC10EDF */ jal generate_explosion_at_position +/* 078BAC 7F04407C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BB0 7F044080 8FA60018 */ lw $a2, 0x18($sp) +/* 078BB4 7F044084 10000008 */ b .L7F0440A8 +/* 078BB8 7F044088 8FA7001C */ lw $a3, 0x1c($sp) +.L7F04408C: +/* 078BBC 7F04408C 8FA40020 */ lw $a0, 0x20($sp) +/* 078BC0 7F044090 2405000D */ li $a1, 13 +/* 078BC4 7F044094 AFA60018 */ sw $a2, 0x18($sp) +/* 078BC8 7F044098 0FC10EDF */ jal generate_explosion_at_position +/* 078BCC 7F04409C AFA7001C */ sw $a3, 0x1c($sp) +/* 078BD0 7F0440A0 8FA60018 */ lw $a2, 0x18($sp) +/* 078BD4 7F0440A4 8FA7001C */ lw $a3, 0x1c($sp) +.L7F0440A8: +/* 078BD8 7F0440A8 240EFFFF */ li $t6, -1 +/* 078BDC 7F0440AC A4CE0082 */ sh $t6, 0x82($a2) +/* 078BE0 7F0440B0 8CEF0064 */ lw $t7, 0x64($a3) +/* 078BE4 7F0440B4 35F80004 */ ori $t8, $t7, 4 +/* 078BE8 7F0440B8 1000004D */ b .L7F0441F0 +/* 078BEC 7F0440BC ACF80064 */ sw $t8, 0x64($a3) +/* 078BF0 7F0440C0 2401001C */ li $at, 28 +.L7F0440C4: +/* 078BF4 7F0440C4 5461004B */ bnel $v1, $at, .L7F0441F4 +/* 078BF8 7F0440C8 8FBF0014 */ lw $ra, 0x14($sp) +/* 078BFC 7F0440CC 84C20082 */ lh $v0, 0x82($a2) +/* 078C00 7F0440D0 3C198005 */ lui $t9, %hi(clock_timer) +/* 078C04 7F0440D4 28410002 */ slti $at, $v0, 2 +/* 078C08 7F0440D8 54200012 */ bnezl $at, .L7F044124 +/* 078C0C 7F0440DC 24010001 */ li $at, 1 +/* 078C10 7F0440E0 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 078C14 7F0440E4 240A0001 */ li $t2, 1 +/* 078C18 7F0440E8 00C02025 */ move $a0, $a2 +/* 078C1C 7F0440EC 00594023 */ subu $t0, $v0, $t9 +/* 078C20 7F0440F0 A4C80082 */ sh $t0, 0x82($a2) +/* 078C24 7F0440F4 84C90082 */ lh $t1, 0x82($a2) +/* 078C28 7F0440F8 29210002 */ slti $at, $t1, 2 +/* 078C2C 7F0440FC 50200027 */ beql $at, $zero, .L7F04419C +/* 078C30 7F044100 84CC0082 */ lh $t4, 0x82($a2) +/* 078C34 7F044104 A4CA0082 */ sh $t2, 0x82($a2) +/* 078C38 7F044108 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C3C 7F04410C 0FC146D7 */ jal add_obj_to_temp_proxmine_table +/* 078C40 7F044110 AFA60018 */ sw $a2, 0x18($sp) +/* 078C44 7F044114 8FA60018 */ lw $a2, 0x18($sp) +/* 078C48 7F044118 1000001F */ b .L7F044198 +/* 078C4C 7F04411C 8FA7001C */ lw $a3, 0x1c($sp) +/* 078C50 7F044120 24010001 */ li $at, 1 +.L7F044124: +/* 078C54 7F044124 5441001D */ bnel $v0, $at, .L7F04419C +/* 078C58 7F044128 84CC0082 */ lh $t4, 0x82($a2) +/* 078C5C 7F04412C AFA60018 */ sw $a2, 0x18($sp) +/* 078C60 7F044130 0FC225E6 */ jal get_curplayer_positiondata +/* 078C64 7F044134 AFA7001C */ sw $a3, 0x1c($sp) +/* 078C68 7F044138 8FAB0020 */ lw $t3, 0x20($sp) +/* 078C6C 7F04413C C4440008 */ lwc1 $f4, 8($v0) +/* 078C70 7F044140 C448000C */ lwc1 $f8, 0xc($v0) +/* 078C74 7F044144 C5660008 */ lwc1 $f6, 8($t3) +/* 078C78 7F044148 C56A000C */ lwc1 $f10, 0xc($t3) +/* 078C7C 7F04414C C4500010 */ lwc1 $f16, 0x10($v0) +/* 078C80 7F044150 46062001 */ sub.s $f0, $f4, $f6 +/* 078C84 7F044154 C5720010 */ lwc1 $f18, 0x10($t3) +/* 078C88 7F044158 3C018005 */ lui $at, %hi(D_80052A94) +/* 078C8C 7F04415C 460A4081 */ sub.s $f2, $f8, $f10 +/* 078C90 7F044160 46000102 */ mul.s $f4, $f0, $f0 +/* 078C94 7F044164 8FA60018 */ lw $a2, 0x18($sp) +/* 078C98 7F044168 46128301 */ sub.s $f12, $f16, $f18 +/* 078C9C 7F04416C 46021182 */ mul.s $f6, $f2, $f2 +/* 078CA0 7F044170 C4322A94 */ lwc1 $f18, %lo(D_80052A94)($at) +/* 078CA4 7F044174 8FA7001C */ lw $a3, 0x1c($sp) +/* 078CA8 7F044178 460C6282 */ mul.s $f10, $f12, $f12 +/* 078CAC 7F04417C 46062200 */ add.s $f8, $f4, $f6 +/* 078CB0 7F044180 460A4400 */ add.s $f16, $f8, $f10 +/* 078CB4 7F044184 4612803C */ c.lt.s $f16, $f18 +/* 078CB8 7F044188 00000000 */ nop +/* 078CBC 7F04418C 45020003 */ bc1fl .L7F04419C +/* 078CC0 7F044190 84CC0082 */ lh $t4, 0x82($a2) +/* 078CC4 7F044194 A4C00082 */ sh $zero, 0x82($a2) +.L7F044198: +/* 078CC8 7F044198 84CC0082 */ lh $t4, 0x82($a2) +.L7F04419C: +/* 078CCC 7F04419C 8FA40020 */ lw $a0, 0x20($sp) +/* 078CD0 7F0441A0 55800014 */ bnezl $t4, .L7F0441F4 +/* 078CD4 7F0441A4 8FBF0014 */ lw $ra, 0x14($sp) +/* 078CD8 7F0441A8 8CED000C */ lw $t5, 0xc($a3) +/* 078CDC 7F0441AC 2405000D */ li $a1, 13 +/* 078CE0 7F0441B0 000D7000 */ sll $t6, $t5, 0 +/* 078CE4 7F0441B4 05C10003 */ bgez $t6, .L7F0441C4 +/* 078CE8 7F0441B8 00000000 */ nop +/* 078CEC 7F0441BC 10000001 */ b .L7F0441C4 +/* 078CF0 7F0441C0 24050011 */ li $a1, 17 +.L7F0441C4: +/* 078CF4 7F0441C4 AFA60018 */ sw $a2, 0x18($sp) +/* 078CF8 7F0441C8 0FC10EDF */ jal generate_explosion_at_position +/* 078CFC 7F0441CC AFA7001C */ sw $a3, 0x1c($sp) +/* 078D00 7F0441D0 8FA40018 */ lw $a0, 0x18($sp) +/* 078D04 7F0441D4 8FA7001C */ lw $a3, 0x1c($sp) +/* 078D08 7F0441D8 240FFFFF */ li $t7, -1 +/* 078D0C 7F0441DC A48F0082 */ sh $t7, 0x82($a0) +/* 078D10 7F0441E0 8CF80064 */ lw $t8, 0x64($a3) +/* 078D14 7F0441E4 37190004 */ ori $t9, $t8, 4 +/* 078D18 7F0441E8 0FC146E5 */ jal remove_obj_from_temp_proxmine_table +/* 078D1C 7F0441EC ACF90064 */ sw $t9, 0x64($a3) +.L7F0441F0: +/* 078D20 7F0441F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0441F4: +/* 078D24 7F0441F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 078D28 7F0441F8 03E00008 */ jr $ra +/* 078D2C 7F0441FC 00000000 */ nop +) +#endif #endif @@ -6594,7 +7059,7 @@ glabel sub_GAME_7F0442DC /* 078E8C 7F04435C 8E090008 */ lw $t1, 8($s0) /* 078E90 7F044360 8524000E */ lh $a0, 0xe($t1) /* 078E94 7F044364 00045180 */ sll $t2, $a0, 6 -/* 078E98 7F044368 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 078E98 7F044368 0FC2F5C5 */ jal dynAllocate /* 078E9C 7F04436C 01402025 */ move $a0, $t2 /* 078EA0 7F044370 AE02000C */ sw $v0, 0xc($s0) /* 078EA4 7F044374 8E25006C */ lw $a1, 0x6c($s1) @@ -6988,6 +7453,40 @@ glabel sub_GAME_7F0446B8 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F0446B8 +/* 0791E8 7F0446B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0791EC 7F0446BC AFBF0014 */ sw $ra, 0x14($sp) +/* 0791F0 7F0446C0 AFA40018 */ sw $a0, 0x18($sp) +/* 0791F4 7F0446C4 AFA5001C */ sw $a1, 0x1c($sp) +/* 0791F8 7F0446C8 AFA60020 */ sw $a2, 0x20($sp) +/* 0791FC 7F0446CC 0FC11105 */ jal sub_GAME_7F044414 +/* 079200 7F0446D0 AFA70024 */ sw $a3, 0x24($sp) +/* 079204 7F0446D4 10400003 */ beqz $v0, .L7F0446E4 +/* 079208 7F0446D8 8FA40020 */ lw $a0, 0x20($sp) +/* 07920C 7F0446DC 1000000A */ b .L7F044708 +/* 079210 7F0446E0 00001025 */ move $v0, $zero +.L7F0446E4: +/* 079214 7F0446E4 8FA50024 */ lw $a1, 0x24($sp) +/* 079218 7F0446E8 8FA60018 */ lw $a2, 0x18($sp) +/* 07921C 7F0446EC 0FC11105 */ jal sub_GAME_7F044414 +/* 079220 7F0446F0 8FA7001C */ lw $a3, 0x1c($sp) +/* 079224 7F0446F4 50400004 */ beql $v0, $zero, .L7F044708 +/* 079228 7F0446F8 24020001 */ li $v0, 1 +/* 07922C 7F0446FC 10000002 */ b .L7F044708 +/* 079230 7F044700 00001025 */ move $v0, $zero +/* 079234 7F044704 24020001 */ li $v0, 1 +.L7F044708: +/* 079238 7F044708 8FBF0014 */ lw $ra, 0x14($sp) +/* 07923C 7F04470C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 079240 7F044710 03E00008 */ jr $ra +/* 079244 7F044714 00000000 */ nop +) +#endif + + #endif @@ -8411,7 +8910,7 @@ glabel object_interaction /* 07A43C 7F04590C 01E1C024 */ and $t8, $t7, $at /* 07A440 7F045910 AE380064 */ sw $t8, 0x64($s1) /* 07A444 7F045914 92620001 */ lbu $v0, 1($s3) -/* 07A448 7F045918 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07A448 7F045918 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07A44C 7F04591C 240500F1 */ li $a1, 241 /* 07A450 7F045920 30480008 */ andi $t0, $v0, 8 /* 07A454 7F045924 11000003 */ beqz $t0, .L7F045934 @@ -8420,7 +8919,7 @@ glabel object_interaction /* 07A460 7F045930 A2690001 */ sb $t1, 1($s3) .L7F045934: /* 07A464 7F045934 0C002382 */ jal play_sfx_a1 -/* 07A468 7F045938 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A468 7F045938 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07A46C 7F04593C 00402025 */ move $a0, $v0 /* 07A470 7F045940 0FC14E84 */ jal sub_GAME_7F053A10 /* 07A474 7F045944 26650008 */ addiu $a1, $s3, 8 @@ -8974,17 +9473,17 @@ glabel object_interaction /* 07AC74 7F046144 AFB90070 */ sw $t9, 0x70($sp) /* 07AC78 7F046148 24010002 */ li $at, 2 /* 07AC7C 7F04614C 14410008 */ bne $v0, $at, .L7F046170 -/* 07AC80 7F046150 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07AC80 7F046150 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) .L7F046154: -/* 07AC84 7F046154 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 07AC88 7F046158 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07AC84 7F046154 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07AC88 7F046158 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07AC8C 7F04615C 24050003 */ li $a1, 3 /* 07AC90 7F046160 0C002382 */ jal play_sfx_a1 /* 07AC94 7F046164 00003025 */ move $a2, $zero /* 07AC98 7F046168 10000006 */ b .L7F046184 /* 07AC9C 7F04616C 00402025 */ move $a0, $v0 .L7F046170: -/* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07ACA4 7F046174 2405002D */ li $a1, 45 /* 07ACA8 7F046178 0C002382 */ jal play_sfx_a1 /* 07ACAC 7F04617C 00003025 */ move $a2, $zero @@ -9778,7 +10277,7 @@ glabel object_interaction /* 07B818 7F046CE8 00000000 */ nop /* 07B81C 7F046CEC 4500002A */ bc1f .L7F046D98 /* 07B820 7F046CF0 00000000 */ nop -/* 07B824 7F046CF4 0C002914 */ jal get_random_value +/* 07B824 7F046CF4 0C002914 */ jal randomGetNext /* 07B828 7F046CF8 00000000 */ nop /* 07B82C 7F046CFC 44824000 */ mtc1 $v0, $f8 /* 07B830 7F046D00 3C018005 */ lui $at, %hi(D_80052AE8) @@ -9803,7 +10302,7 @@ glabel object_interaction /* 07B878 7F046D48 44815000 */ mtc1 $at, $f10 /* 07B87C 7F046D4C 46144182 */ mul.s $f6, $f8, $f20 /* 07B880 7F046D50 460A3103 */ div.s $f4, $f6, $f10 -/* 07B884 7F046D54 0C002914 */ jal get_random_value +/* 07B884 7F046D54 0C002914 */ jal randomGetNext /* 07B888 7F046D58 E6040098 */ swc1 $f4, 0x98($s0) /* 07B88C 7F046D5C 44824000 */ mtc1 $v0, $f8 /* 07B890 7F046D60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -10440,8 +10939,8 @@ glabel object_interaction /* 07C19C 7F04766C 0FC2FF01 */ jal get_controls_locked_flag /* 07C1A0 7F047670 00000000 */ nop /* 07C1A4 7F047674 14400005 */ bnez $v0, .L7F04768C -/* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07C1B0 7F047680 24050041 */ li $a1, 65 /* 07C1B4 7F047684 0C002382 */ jal play_sfx_a1 /* 07C1B8 7F047688 262600AC */ addiu $a2, $s1, 0xac @@ -11024,7 +11523,7 @@ glabel object_interaction /* 07CA58 7F047F28 10000024 */ b .L7F047FBC /* 07CA5C 7F047F2C 00000000 */ nop .L7F047F30: -/* 07CA60 7F047F30 0C001A57 */ jal get_stage_num +/* 07CA60 7F047F30 0C001A57 */ jal bossGetStageNum /* 07CA64 7F047F34 00000000 */ nop /* 07CA68 7F047F38 24010016 */ li $at, 22 /* 07CA6C 7F047F3C 1441000A */ bne $v0, $at, .L7F047F68 @@ -11039,7 +11538,7 @@ glabel object_interaction /* 07CA90 7F047F60 10000016 */ b .L7F047FBC /* 07CA94 7F047F64 00000000 */ nop .L7F047F68: -/* 07CA98 7F047F68 0C001A57 */ jal get_stage_num +/* 07CA98 7F047F68 0C001A57 */ jal bossGetStageNum /* 07CA9C 7F047F6C 00000000 */ nop /* 07CAA0 7F047F70 2401001A */ li $at, 26 /* 07CAA4 7F047F74 1441000B */ bne $v0, $at, .L7F047FA4 @@ -11207,8 +11706,8 @@ glabel object_interaction /* 07CCF8 7F0481C8 0FC2FF01 */ jal get_controls_locked_flag /* 07CCFC 7F0481CC 00000000 */ nop /* 07CD00 7F0481D0 14400005 */ bnez $v0, .L7F0481E8 -/* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07CD0C 7F0481DC 2405003A */ li $a1, 58 /* 07CD10 7F0481E0 0C002382 */ jal play_sfx_a1 /* 07CD14 7F0481E4 262600B0 */ addiu $a2, $s1, 0xb0 @@ -11387,7 +11886,7 @@ glabel object_interaction /* 07CF80 7F048450 8E980008 */ lw $t8, 8($s4) /* 07CF84 7F048454 8704000E */ lh $a0, 0xe($t8) /* 07CF88 7F048458 00047980 */ sll $t7, $a0, 6 -/* 07CF8C 7F04845C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 07CF8C 7F04845C 0FC2F5C5 */ jal dynAllocate /* 07CF90 7F048460 01E02025 */ move $a0, $t7 /* 07CF94 7F048464 AE82000C */ sw $v0, 0xc($s4) /* 07CF98 7F048468 92280003 */ lbu $t0, 3($s1) @@ -11479,14 +11978,14 @@ glabel object_interaction /* 07D0EC 7F0485BC E7AE0380 */ swc1 $f14, 0x380($sp) /* 07D0F0 7F0485C0 C7A6067C */ lwc1 $f6, 0x67c($sp) /* 07D0F4 7F0485C4 E7AE0380 */ swc1 $f14, 0x380($sp) -/* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07D0FC 7F0485CC 4600303E */ c.le.s $f6, $f0 /* 07D100 7F0485D0 240500CA */ li $a1, 202 /* 07D104 7F0485D4 00003025 */ move $a2, $zero /* 07D108 7F0485D8 266F0008 */ addiu $t7, $s3, 8 /* 07D10C 7F0485DC 45000008 */ bc1f .L7F048600 /* 07D110 7F0485E0 00000000 */ nop -/* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D118 7F0485E8 AFAF0070 */ sw $t7, 0x70($sp) /* 07D11C 7F0485EC 0C002382 */ jal play_sfx_a1 /* 07D120 7F0485F0 E7AE0380 */ swc1 $f14, 0x380($sp) @@ -11503,14 +12002,14 @@ glabel object_interaction /* 07D144 7F048614 AFA0038C */ sw $zero, 0x38c($sp) /* 07D148 7F048618 C7AA067C */ lwc1 $f10, 0x67c($sp) /* 07D14C 7F04861C E7AE0380 */ swc1 $f14, 0x380($sp) -/* 07D150 7F048620 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07D150 7F048620 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07D154 7F048624 460A003C */ c.lt.s $f0, $f10 /* 07D158 7F048628 240500CB */ li $a1, 203 /* 07D15C 7F04862C 00003025 */ move $a2, $zero /* 07D160 7F048630 266B0008 */ addiu $t3, $s3, 8 /* 07D164 7F048634 45020009 */ bc1fl .L7F04865C /* 07D168 7F048638 AFA0038C */ sw $zero, 0x38c($sp) -/* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D170 7F048640 AFAB0070 */ sw $t3, 0x70($sp) /* 07D174 7F048644 0C002382 */ jal play_sfx_a1 /* 07D178 7F048648 E7AE0380 */ swc1 $f14, 0x380($sp) @@ -12336,7 +12835,7 @@ glabel object_interaction /* 07DD90 7F049260 1140001F */ beqz $t2, .L7F0492E0 /* 07DD94 7F049264 00617024 */ and $t6, $v1, $at /* 07DD98 7F049268 AE2E0064 */ sw $t6, 0x64($s1) -/* 07DD9C 7F04926C 0C002914 */ jal get_random_value +/* 07DD9C 7F04926C 0C002914 */ jal randomGetNext /* 07DDA0 7F049270 AFAD0070 */ sw $t5, 0x70($sp) /* 07DDA4 7F049274 44822000 */ mtc1 $v0, $f4 /* 07DDA8 7F049278 02202025 */ move $a0, $s1 @@ -12438,14 +12937,14 @@ glabel object_interaction /* 07DF14 7F0493E4 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DF18 7F0493E8 8E0A00C4 */ lw $t2, 0xc4($s0) .L7F0493EC: -/* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07DF20 7F0493F0 240500FD */ li $a1, 253 /* 07DF24 7F0493F4 1540000A */ bnez $t2, .L7F049420 /* 07DF28 7F0493F8 260600C4 */ addiu $a2, $s0, 0xc4 /* 07DF2C 7F0493FC 266E0008 */ addiu $t6, $s3, 8 /* 07DF30 7F049400 AFAE0070 */ sw $t6, 0x70($sp) /* 07DF34 7F049404 0C002382 */ jal play_sfx_a1 -/* 07DF38 7F049408 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF38 7F049408 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07DF3C 7F04940C 8E0400C4 */ lw $a0, 0xc4($s0) /* 07DF40 7F049410 0FC14E84 */ jal sub_GAME_7F053A10 /* 07DF44 7F049414 8FA50070 */ lw $a1, 0x70($sp) @@ -12453,14 +12952,14 @@ glabel object_interaction /* 07DF4C 7F04941C 00000000 */ nop .L7F049420: /* 07DF50 7F049420 8E0D00C8 */ lw $t5, 0xc8($s0) -/* 07DF54 7F049424 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07DF54 7F049424 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 07DF58 7F049428 240500FD */ li $a1, 253 /* 07DF5C 7F04942C 15A00008 */ bnez $t5, .L7F049450 /* 07DF60 7F049430 260600C8 */ addiu $a2, $s0, 0xc8 /* 07DF64 7F049434 26780008 */ addiu $t8, $s3, 8 /* 07DF68 7F049438 AFB80070 */ sw $t8, 0x70($sp) /* 07DF6C 7F04943C 0C002382 */ jal play_sfx_a1 -/* 07DF70 7F049440 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07DF70 7F049440 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07DF74 7F049444 8E0400C8 */ lw $a0, 0xc8($s0) /* 07DF78 7F049448 0FC14E84 */ jal sub_GAME_7F053A10 /* 07DF7C 7F04944C 8FA50070 */ lw $a1, 0x70($sp) @@ -12706,7 +13205,7 @@ glabel object_interaction /* 07E318 7F0497E8 00000000 */ nop /* 07E31C 7F0497EC 45020014 */ bc1fl .L7F049840 /* 07E320 7F0497F0 8FB9011C */ lw $t9, 0x11c($sp) -/* 07E324 7F0497F4 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 07E324 7F0497F4 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 07E328 7F0497F8 2404000E */ li $a0, 14 /* 07E32C 7F0497FC 3C013E00 */ li $at, 0x3E000000 # 0.125000 /* 07E330 7F049800 44815000 */ mtc1 $at, $f10 @@ -12838,7 +13337,7 @@ glabel object_interaction /* 07E50C 7F0499DC E4620024 */ swc1 $f2, 0x24($v1) /* 07E510 7F0499E0 AFA30090 */ sw $v1, 0x90($sp) .L7F0499E4: -/* 07E514 7F0499E4 0C002914 */ jal get_random_value +/* 07E514 7F0499E4 0C002914 */ jal randomGetNext /* 07E518 7F0499E8 E7AC0094 */ swc1 $f12, 0x94($sp) /* 07E51C 7F0499EC 44823000 */ mtc1 $v0, $f6 /* 07E520 7F0499F0 8FA30090 */ lw $v1, 0x90($sp) @@ -12878,7 +13377,7 @@ glabel object_interaction /* 07E5A0 7F049A70 C4262B94 */ lwc1 $f6, %lo(D_80052B94)($at) /* 07E5A4 7F049A74 E4660024 */ swc1 $f6, 0x24($v1) .L7F049A78: -/* 07E5A8 7F049A78 0C002914 */ jal get_random_value +/* 07E5A8 7F049A78 0C002914 */ jal randomGetNext /* 07E5AC 7F049A7C AFA30090 */ sw $v1, 0x90($sp) /* 07E5B0 7F049A80 44822000 */ mtc1 $v0, $f4 /* 07E5B4 7F049A84 8FA30090 */ lw $v1, 0x90($sp) @@ -13508,7 +14007,7 @@ glabel object_interaction /* 07A860 7F045CF0 01215824 */ and $t3, $t1, $at /* 07A864 7F045CF4 AE2B0064 */ sw $t3, 0x64($s1) /* 07A868 7F045CF8 92620001 */ lbu $v0, 1($s3) -/* 07A86C 7F045CFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07A86C 7F045CFC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07A870 7F045D00 240500F1 */ li $a1, 241 /* 07A874 7F045D04 304C0008 */ andi $t4, $v0, 8 /* 07A878 7F045D08 11800003 */ beqz $t4, .Ljp7F045D18 @@ -13517,7 +14016,7 @@ glabel object_interaction /* 07A884 7F045D14 A26E0001 */ sb $t6, 1($s3) .Ljp7F045D18: /* 07A888 7F045D18 0C002386 */ jal play_sfx_a1 -/* 07A88C 7F045D1C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07A88C 7F045D1C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07A890 7F045D20 00402025 */ move $a0, $v0 /* 07A894 7F045D24 0FC14FC3 */ jal sub_GAME_7F053A10 /* 07A898 7F045D28 26650008 */ addiu $a1, $s3, 8 @@ -14071,17 +14570,17 @@ glabel object_interaction /* 07B098 7F046528 AFAD0074 */ sw $t5, 0x74($sp) /* 07B09C 7F04652C 24010002 */ li $at, 2 /* 07B0A0 7F046530 14410008 */ bne $v0, $at, .Ljp7F046554 -/* 07B0A4 7F046534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 07B0A4 7F046534 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) .Ljp7F046538: -/* 07B0A8 7F046538 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 07B0AC 7F04653C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0A8 7F046538 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 07B0AC 7F04653C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B0B0 7F046540 24050003 */ li $a1, 3 /* 07B0B4 7F046544 0C002386 */ jal play_sfx_a1 /* 07B0B8 7F046548 00003025 */ move $a2, $zero /* 07B0BC 7F04654C 10000006 */ b .Ljp7F046568 /* 07B0C0 7F046550 00402025 */ move $a0, $v0 .Ljp7F046554: -/* 07B0C4 7F046554 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07B0C4 7F046554 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07B0C8 7F046558 2405002D */ li $a1, 45 /* 07B0CC 7F04655C 0C002386 */ jal play_sfx_a1 /* 07B0D0 7F046560 00003025 */ move $a2, $zero @@ -14884,7 +15383,7 @@ glabel object_interaction /* 07BC5C 7F0470EC 00000000 */ nop /* 07BC60 7F0470F0 4500002A */ bc1f .Ljp7F04719C /* 07BC64 7F0470F4 00000000 */ nop -/* 07BC68 7F0470F8 0C002918 */ jal get_random_value +/* 07BC68 7F0470F8 0C002918 */ jal randomGetNext /* 07BC6C 7F0470FC 00000000 */ nop /* 07BC70 7F047100 44824000 */ mtc1 $v0, $f8 /* 07BC74 7F047104 3C018005 */ lui $at, %hi(D_80052AE8) # $at, 0x8005 @@ -14909,7 +15408,7 @@ glabel object_interaction /* 07BCBC 7F04714C 44815000 */ mtc1 $at, $f10 /* 07BCC0 7F047150 46144182 */ mul.s $f6, $f8, $f20 /* 07BCC4 7F047154 460A3103 */ div.s $f4, $f6, $f10 -/* 07BCC8 7F047158 0C002918 */ jal get_random_value +/* 07BCC8 7F047158 0C002918 */ jal randomGetNext /* 07BCCC 7F04715C E6040098 */ swc1 $f4, 0x98($s0) /* 07BCD0 7F047160 44824000 */ mtc1 $v0, $f8 /* 07BCD4 7F047164 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -15546,8 +16045,8 @@ glabel object_interaction /* 07C5E0 7F047A70 0FC3021B */ jal get_controls_locked_flag /* 07C5E4 7F047A74 00000000 */ nop /* 07C5E8 7F047A78 14400005 */ bnez $v0, .Ljp7F047A90 -/* 07C5EC 7F047A7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 07C5F0 7F047A80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07C5EC 7F047A7C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 07C5F0 7F047A80 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07C5F4 7F047A84 24050041 */ li $a1, 65 /* 07C5F8 7F047A88 0C002386 */ jal play_sfx_a1 /* 07C5FC 7F047A8C 262600AC */ addiu $a2, $s1, 0xac @@ -16130,7 +16629,7 @@ glabel object_interaction /* 07CE9C 7F04832C 10000024 */ b .Ljp7F0483C0 /* 07CEA0 7F048330 00000000 */ nop .Ljp7F048334: -/* 07CEA4 7F048334 0C001A57 */ jal get_stage_num +/* 07CEA4 7F048334 0C001A57 */ jal bossGetStageNum /* 07CEA8 7F048338 00000000 */ nop /* 07CEAC 7F04833C 24010016 */ li $at, 22 /* 07CEB0 7F048340 1441000A */ bne $v0, $at, .Ljp7F04836C @@ -16145,7 +16644,7 @@ glabel object_interaction /* 07CED4 7F048364 10000016 */ b .Ljp7F0483C0 /* 07CED8 7F048368 00000000 */ nop .Ljp7F04836C: -/* 07CEDC 7F04836C 0C001A57 */ jal get_stage_num +/* 07CEDC 7F04836C 0C001A57 */ jal bossGetStageNum /* 07CEE0 7F048370 00000000 */ nop /* 07CEE4 7F048374 2401001A */ li $at, 26 /* 07CEE8 7F048378 1441000B */ bne $v0, $at, .Ljp7F0483A8 @@ -16313,8 +16812,8 @@ glabel object_interaction /* 07D13C 7F0485CC 0FC3021B */ jal get_controls_locked_flag /* 07D140 7F0485D0 00000000 */ nop /* 07D144 7F0485D4 14400005 */ bnez $v0, .Ljp7F0485EC -/* 07D148 7F0485D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 07D14C 7F0485DC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D148 7F0485D8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 07D14C 7F0485DC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D150 7F0485E0 2405003A */ li $a1, 58 /* 07D154 7F0485E4 0C002386 */ jal play_sfx_a1 /* 07D158 7F0485E8 262600B0 */ addiu $a2, $s1, 0xb0 @@ -16493,7 +16992,7 @@ glabel object_interaction /* 07D3C4 7F048854 8E8E0008 */ lw $t6, 8($s4) /* 07D3C8 7F048858 85C4000E */ lh $a0, 0xe($t6) /* 07D3CC 7F04885C 00046180 */ sll $t4, $a0, 6 -/* 07D3D0 7F048860 0FC2F8B1 */ jal sub_GAME_7F0BD714 +/* 07D3D0 7F048860 0FC2F8B1 */ jal dynAllocate /* 07D3D4 7F048864 01802025 */ move $a0, $t4 /* 07D3D8 7F048868 AE82000C */ sw $v0, 0xc($s4) /* 07D3DC 7F04886C 922A0003 */ lbu $t2, 3($s1) @@ -16585,14 +17084,14 @@ glabel object_interaction /* 07D530 7F0489C0 E7AE0384 */ swc1 $f14, 0x384($sp) /* 07D534 7F0489C4 C7A60684 */ lwc1 $f6, 0x684($sp) /* 07D538 7F0489C8 E7AE0384 */ swc1 $f14, 0x384($sp) -/* 07D53C 7F0489CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D53C 7F0489CC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07D540 7F0489D0 4600303E */ c.le.s $f6, $f0 /* 07D544 7F0489D4 240500CA */ li $a1, 202 /* 07D548 7F0489D8 00003025 */ move $a2, $zero /* 07D54C 7F0489DC 266C0008 */ addiu $t4, $s3, 8 /* 07D550 7F0489E0 45000008 */ bc1f .Ljp7F048A04 /* 07D554 7F0489E4 00000000 */ nop -/* 07D558 7F0489E8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D558 7F0489E8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D55C 7F0489EC AFAC0074 */ sw $t4, 0x74($sp) /* 07D560 7F0489F0 0C002386 */ jal play_sfx_a1 /* 07D564 7F0489F4 E7AE0384 */ swc1 $f14, 0x384($sp) @@ -16609,14 +17108,14 @@ glabel object_interaction /* 07D588 7F048A18 AFA00390 */ sw $zero, 0x390($sp) /* 07D58C 7F048A1C C7AA0684 */ lwc1 $f10, 0x684($sp) /* 07D590 7F048A20 E7AE0384 */ swc1 $f14, 0x384($sp) -/* 07D594 7F048A24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07D594 7F048A24 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07D598 7F048A28 460A003C */ c.lt.s $f0, $f10 /* 07D59C 7F048A2C 240500CB */ li $a1, 203 /* 07D5A0 7F048A30 00003025 */ move $a2, $zero /* 07D5A4 7F048A34 266F0008 */ addiu $t7, $s3, 8 /* 07D5A8 7F048A38 45020009 */ bc1fl .Ljp7F048A60 /* 07D5AC 7F048A3C AFA00390 */ sw $zero, 0x390($sp) -/* 07D5B0 7F048A40 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07D5B0 7F048A40 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07D5B4 7F048A44 AFAF0074 */ sw $t7, 0x74($sp) /* 07D5B8 7F048A48 0C002386 */ jal play_sfx_a1 /* 07D5BC 7F048A4C E7AE0384 */ swc1 $f14, 0x384($sp) @@ -17442,7 +17941,7 @@ glabel object_interaction /* 07E1D4 7F049664 1300001F */ beqz $t8, .Ljp7F0496E4 /* 07E1D8 7F049668 00614824 */ and $t1, $v1, $at /* 07E1DC 7F04966C AE290064 */ sw $t1, 0x64($s1) -/* 07E1E0 7F049670 0C002918 */ jal get_random_value +/* 07E1E0 7F049670 0C002918 */ jal randomGetNext /* 07E1E4 7F049674 AFAB0074 */ sw $t3, 0x74($sp) /* 07E1E8 7F049678 44822000 */ mtc1 $v0, $f4 /* 07E1EC 7F04967C 02202025 */ move $a0, $s1 @@ -17544,14 +18043,14 @@ glabel object_interaction /* 07E358 7F0497E8 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E35C 7F0497EC 8E1800C4 */ lw $t8, 0xc4($s0) .Ljp7F0497F0: -/* 07E360 7F0497F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E360 7F0497F0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07E364 7F0497F4 240500FD */ li $a1, 253 /* 07E368 7F0497F8 1700000A */ bnez $t8, .Ljp7F049824 /* 07E36C 7F0497FC 260600C4 */ addiu $a2, $s0, 0xc4 /* 07E370 7F049800 26690008 */ addiu $t1, $s3, 8 /* 07E374 7F049804 AFA90074 */ sw $t1, 0x74($sp) /* 07E378 7F049808 0C002386 */ jal play_sfx_a1 -/* 07E37C 7F04980C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E37C 7F04980C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07E380 7F049810 8E0400C4 */ lw $a0, 0xc4($s0) /* 07E384 7F049814 0FC14FC3 */ jal sub_GAME_7F053A10 /* 07E388 7F049818 8FA50074 */ lw $a1, 0x74($sp) @@ -17559,14 +18058,14 @@ glabel object_interaction /* 07E390 7F049820 00000000 */ nop .Ljp7F049824: /* 07E394 7F049824 8E0B00C8 */ lw $t3, 0xc8($s0) -/* 07E398 7F049828 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 07E398 7F049828 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 07E39C 7F04982C 240500FD */ li $a1, 253 /* 07E3A0 7F049830 15600008 */ bnez $t3, .Ljp7F049854 /* 07E3A4 7F049834 260600C8 */ addiu $a2, $s0, 0xc8 /* 07E3A8 7F049838 266E0008 */ addiu $t6, $s3, 8 /* 07E3AC 7F04983C AFAE0074 */ sw $t6, 0x74($sp) /* 07E3B0 7F049840 0C002386 */ jal play_sfx_a1 -/* 07E3B4 7F049844 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 07E3B4 7F049844 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 07E3B8 7F049848 8E0400C8 */ lw $a0, 0xc8($s0) /* 07E3BC 7F04984C 0FC14FC3 */ jal sub_GAME_7F053A10 /* 07E3C0 7F049850 8FA50074 */ lw $a1, 0x74($sp) @@ -17812,7 +18311,7 @@ glabel object_interaction /* 07E75C 7F049BEC 00000000 */ nop /* 07E760 7F049BF0 45020014 */ bc1fl .Ljp7F049C44 /* 07E764 7F049BF4 8FB90120 */ lw $t9, 0x120($sp) -/* 07E768 7F049BF8 0FC17929 */ jal bondwalkGetItemDestructionAmount +/* 07E768 7F049BF8 0FC17929 */ jal bondwalkItemGetDestructionAmount /* 07E76C 7F049BFC 2404000E */ li $a0, 14 /* 07E770 7F049C00 3C013E00 */ li $at, 0x3E000000 # 0.125000 /* 07E774 7F049C04 44815000 */ mtc1 $at, $f10 @@ -17944,7 +18443,7 @@ glabel object_interaction /* 07E950 7F049DE0 E4620024 */ swc1 $f2, 0x24($v1) /* 07E954 7F049DE4 AFA30094 */ sw $v1, 0x94($sp) .Ljp7F049DE8: -/* 07E958 7F049DE8 0C002918 */ jal get_random_value +/* 07E958 7F049DE8 0C002918 */ jal randomGetNext /* 07E95C 7F049DEC E7AC0098 */ swc1 $f12, 0x98($sp) /* 07E960 7F049DF0 44823000 */ mtc1 $v0, $f6 /* 07E964 7F049DF4 8FA30094 */ lw $v1, 0x94($sp) @@ -17984,7 +18483,7 @@ glabel object_interaction /* 07E9E4 7F049E74 C4262BC4 */ lwc1 $f6, %lo(D_80052B94)($at) /* 07E9E8 7F049E78 E4660024 */ swc1 $f6, 0x24($v1) .Ljp7F049E7C: -/* 07E9EC 7F049E7C 0C002918 */ jal get_random_value +/* 07E9EC 7F049E7C 0C002918 */ jal randomGetNext /* 07E9F0 7F049E80 AFA30094 */ sw $v1, 0x94($sp) /* 07E9F4 7F049E84 44822000 */ mtc1 $v0, $f4 /* 07E9F8 7F049E88 8FA30094 */ lw $v1, 0x94($sp) @@ -18050,6 +18549,5100 @@ glabel object_interaction ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel rocket_initial_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052A9C +.word 0x3c360b61 /*0.011111111*/ +glabel D_80052AA0 +.word 0x3d8f5c29 /*0.07*/ +glabel prop_projectile_gravity_modifier +.word 0x3e8e38e4 /*0.27777779*/ +glabel D_80052AA8 +.word 0x400e38e4 /*2.2222223*/ +glabel D_80052AAC +.word 0x46d9038c /*27777.773*/ +glabel D_80052AB0 +.word 0x3f8ccccd /*1.1*/ +glabel D_80052AB4 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052AB8 +.word 0x3f666666 /*0.89999998*/ +glabel D_80052ABC +.word 0x3dcccccd /*0.1*/ +glabel D_80052AC0 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC4 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052AC8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052ACC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AD0 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052AD4 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80052AD8 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_80052ADC +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AE0 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE4 +.word 0x3a2b92a6 /*0.00065449846*/ +glabel D_80052AE8 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AEC +.word 0x37433637 /*0.000011635529*/ +glabel D_80052AF0 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052AF4 +.word 0x3a3702d4 /*0.00069813174*/ +glabel D_80052AF8 +.word 0x36c33637 /*0.0000058177643*/ +glabel D_80052AFC +.word 0x39b702d4 /*0.00034906587*/ +glabel D_80052B00 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B04 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B08 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B0C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B10 +.word 0x3f9c61ab /*1.2217306*/ +glabel D_80052B14 +.word 0xbf9c61ab /*-1.2217306*/ +glabel D_80052B18 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B1C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B20 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B24 +.word 0x3f4ccccd /*0.80000001*/ +glabel D_80052B28 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80052B2C +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B30 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B34 +.word 0x3a64c389 /*0.00087266468*/ +glabel D_80052B38 +.word 0x40490fdb /*3.1415927*/ +glabel D_80052B3C +.word 0x3f1930a7 /*0.59839863*/ +glabel D_80052B40 +.word 0x3c236719 /*0.0099733109*/ +glabel D_80052B44 +.word 0x3f7d70a4 /*0.99000001*/ +glabel D_80052B48 +.word 0x38d1b717 /*0.000099999997*/ +glabel D_80052B4C +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B50 +.word 0x3bd67750 /*0.0065449849*/ +glabel D_80052B54 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B58 +.word 0x3964c389 /*0.00021816617*/ +glabel D_80052B5C +.word 0xb964c389 /*-0.00021816617*/ +glabel D_80052B60 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B64 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80052B68 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B6C +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B70 +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052B74 +.word 0x3e23d70a /*0.16*/ +glabel D_80052B78 +.word 0x461c4000 /*10000.0*/ +glabel D_80052B7C +.word 0x453b8000 /*3000.0*/ +glabel D_80052B80 +.word 0x3f19999a /*0.60000002*/ +glabel D_80052B84 +.word 0x3e99999a /*0.30000001*/ +glabel D_80052B88 +.word 0xbdcccccd /*-0.1*/ +glabel D_80052B8C +.word 0x3e4ccccd /*0.2*/ +glabel D_80052B90 +.word 0x453b8000 /*3000.0*/ +glabel D_80052B94 +.word 0x453b8000 /*3000.0*/ +.text +glabel object_interaction +/* 079E04 7F0452D4 27BDF958 */ addiu $sp, $sp, -0x6a8 +/* 079E08 7F0452D8 AFBF0054 */ sw $ra, 0x54($sp) +/* 079E0C 7F0452DC AFB40050 */ sw $s4, 0x50($sp) +/* 079E10 7F0452E0 AFB3004C */ sw $s3, 0x4c($sp) +/* 079E14 7F0452E4 AFB20048 */ sw $s2, 0x48($sp) +/* 079E18 7F0452E8 AFB10044 */ sw $s1, 0x44($sp) +/* 079E1C 7F0452EC AFB00040 */ sw $s0, 0x40($sp) +/* 079E20 7F0452F0 F7B60038 */ sdc1 $f22, 0x38($sp) +/* 079E24 7F0452F4 F7B40030 */ sdc1 $f20, 0x30($sp) +/* 079E28 7F0452F8 8C910004 */ lw $s1, 4($a0) +/* 079E2C 7F0452FC 4480B000 */ mtc1 $zero, $f22 +/* 079E30 7F045300 00809825 */ move $s3, $a0 +/* 079E34 7F045304 8E340014 */ lw $s4, 0x14($s1) +/* 079E38 7F045308 AFA00690 */ sw $zero, 0x690($sp) +/* 079E3C 7F04530C AFA00680 */ sw $zero, 0x680($sp) +/* 079E40 7F045310 0FC26919 */ jal getPlayerCount +/* 079E44 7F045314 E7B6067C */ swc1 $f22, 0x67c($sp) +/* 079E48 7F045318 240C0001 */ li $t4, 1 +/* 079E4C 7F04531C AFA20674 */ sw $v0, 0x674($sp) +/* 079E50 7F045320 AFAC0670 */ sw $t4, 0x670($sp) +/* 079E54 7F045324 8E230064 */ lw $v1, 0x64($s1) +/* 079E58 7F045328 306E0004 */ andi $t6, $v1, 4 +/* 079E5C 7F04532C 11C00009 */ beqz $t6, .L7F045354 +/* 079E60 7F045330 306F0008 */ andi $t7, $v1, 8 +/* 079E64 7F045334 92260002 */ lbu $a2, 2($s1) +/* 079E68 7F045338 02202025 */ move $a0, $s1 +/* 079E6C 7F04533C 00002825 */ move $a1, $zero +/* 079E70 7F045340 30CD0004 */ andi $t5, $a2, 4 +/* 079E74 7F045344 0FC10366 */ jal sub_GAME_7F040D98 +/* 079E78 7F045348 01A03025 */ move $a2, $t5 +/* 079E7C 7F04534C 100011F8 */ b .L7F049B30 +/* 079E80 7F045350 24020001 */ li $v0, 1 +.L7F045354: +/* 079E84 7F045354 11E00005 */ beqz $t7, .L7F04536C +/* 079E88 7F045358 30680080 */ andi $t0, $v1, 0x80 +/* 079E8C 7F04535C 2401FFF7 */ li $at, -9 +/* 079E90 7F045360 0061C024 */ and $t8, $v1, $at +/* 079E94 7F045364 1000000B */ b .L7F045394 +/* 079E98 7F045368 AE380064 */ sw $t8, 0x64($s1) +.L7F04536C: +/* 079E9C 7F04536C 5100000A */ beql $t0, $zero, .L7F045398 +/* 079EA0 7F045370 24010001 */ li $at, 1 +/* 079EA4 7F045374 92690001 */ lbu $t1, 1($s3) +/* 079EA8 7F045378 24020003 */ li $v0, 3 +/* 079EAC 7F04537C 312BFFFD */ andi $t3, $t1, 0xfffd +/* 079EB0 7F045380 A26B0001 */ sb $t3, 1($s3) +/* 079EB4 7F045384 8E390064 */ lw $t9, 0x64($s1) +/* 079EB8 7F045388 372A0008 */ ori $t2, $t9, 8 +/* 079EBC 7F04538C 100011E8 */ b .L7F049B30 +/* 079EC0 7F045390 AE2A0064 */ sw $t2, 0x64($s1) +.L7F045394: +/* 079EC4 7F045394 24010001 */ li $at, 1 +.L7F045398: +/* 079EC8 7F045398 14410003 */ bne $v0, $at, .L7F0453A8 +/* 079ECC 7F04539C 240C0001 */ li $t4, 1 +/* 079ED0 7F0453A0 10000015 */ b .L7F0453F8 +/* 079ED4 7F0453A4 AFAC0678 */ sw $t4, 0x678($sp) +.L7F0453A8: +/* 079ED8 7F0453A8 0FC26C54 */ jal get_cur_playernum +/* 079EDC 7F0453AC 00000000 */ nop +/* 079EE0 7F0453B0 0FC26D36 */ jal sub_GAME_7F09B4D8 +/* 079EE4 7F0453B4 00402025 */ move $a0, $v0 +/* 079EE8 7F0453B8 2C4E0001 */ sltiu $t6, $v0, 1 +/* 079EEC 7F0453BC AFAE0678 */ sw $t6, 0x678($sp) +/* 079EF0 7F0453C0 8E2D0064 */ lw $t5, 0x64($s1) +/* 079EF4 7F0453C4 31AF0080 */ andi $t7, $t5, 0x80 +/* 079EF8 7F0453C8 51E0000C */ beql $t7, $zero, .L7F0453FC +/* 079EFC 7F0453CC 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F00 7F0453D0 8E22006C */ lw $v0, 0x6c($s1) +/* 079F04 7F0453D4 3C188008 */ lui $t8, %hi(pPlayer) +/* 079F08 7F0453D8 8C430088 */ lw $v1, 0x88($v0) +/* 079F0C 7F0453DC 50600007 */ beql $v1, $zero, .L7F0453FC +/* 079F10 7F0453E0 8FAB0678 */ lw $t3, 0x678($sp) +/* 079F14 7F0453E4 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 079F18 7F0453E8 8F0800A8 */ lw $t0, 0xa8($t8) +/* 079F1C 7F0453EC 01034826 */ xor $t1, $t0, $v1 +/* 079F20 7F0453F0 2D290001 */ sltiu $t1, $t1, 1 +/* 079F24 7F0453F4 AFA90678 */ sw $t1, 0x678($sp) +.L7F0453F8: +/* 079F28 7F0453F8 8FAB0678 */ lw $t3, 0x678($sp) +.L7F0453FC: +/* 079F2C 7F0453FC 51600B8C */ beql $t3, $zero, .L7F048230 +/* 079F30 7F045400 92220003 */ lbu $v0, 3($s1) +/* 079F34 7F045404 8E390064 */ lw $t9, 0x64($s1) +/* 079F38 7F045408 332A0080 */ andi $t2, $t9, 0x80 +/* 079F3C 7F04540C 51400483 */ beql $t2, $zero, .L7F04661C +/* 079F40 7F045410 8FAD0690 */ lw $t5, 0x690($sp) +/* 079F44 7F045414 8E30006C */ lw $s0, 0x6c($s1) +/* 079F48 7F045418 3C0E8005 */ lui $t6, %hi(clock_timer) +/* 079F4C 7F04541C 8DCE8374 */ lw $t6, %lo(clock_timer)($t6) +/* 079F50 7F045420 8E0C00E0 */ lw $t4, 0xe0($s0) +/* 079F54 7F045424 018E6821 */ addu $t5, $t4, $t6 +/* 079F58 7F045428 29A10961 */ slti $at, $t5, 0x961 +/* 079F5C 7F04542C 14200004 */ bnez $at, .L7F045440 +/* 079F60 7F045430 AE0D00E0 */ sw $t5, 0xe0($s0) +/* 079F64 7F045434 8E380064 */ lw $t8, 0x64($s1) +/* 079F68 7F045438 37080004 */ ori $t0, $t8, 4 +/* 079F6C 7F04543C AE280064 */ sw $t0, 0x64($s1) +.L7F045440: +/* 079F70 7F045440 8E090000 */ lw $t1, ($s0) +/* 079F74 7F045444 312B0100 */ andi $t3, $t1, 0x100 +/* 079F78 7F045448 5160002F */ beql $t3, $zero, .L7F045508 +/* 079F7C 7F04544C C6260058 */ lwc1 $f6, 0x58($s1) +/* 079F80 7F045450 92390003 */ lbu $t9, 3($s1) +/* 079F84 7F045454 24010008 */ li $at, 8 +/* 079F88 7F045458 24120001 */ li $s2, 1 +/* 079F8C 7F04545C 57210008 */ bnel $t9, $at, .L7F045480 +/* 079F90 7F045460 8E040088 */ lw $a0, 0x88($s0) +/* 079F94 7F045464 AFB10648 */ sw $s1, 0x648($sp) +/* 079F98 7F045468 822A0080 */ lb $t2, 0x80($s1) +/* 079F9C 7F04546C 24010056 */ li $at, 86 +/* 079FA0 7F045470 55410003 */ bnel $t2, $at, .L7F045480 +/* 079FA4 7F045474 8E040088 */ lw $a0, 0x88($s0) +/* 079FA8 7F045478 00009025 */ move $s2, $zero +/* 079FAC 7F04547C 8E040088 */ lw $a0, 0x88($s0) +.L7F045480: +/* 079FB0 7F045480 50800004 */ beql $a0, $zero, .L7F045494 +/* 079FB4 7F045484 02202025 */ move $a0, $s1 +/* 079FB8 7F045488 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FBC 7F04548C 00002825 */ move $a1, $zero +/* 079FC0 7F045490 02202025 */ move $a0, $s1 +.L7F045494: +/* 079FC4 7F045494 260500D4 */ addiu $a1, $s0, 0xd4 +/* 079FC8 7F045498 27A6064C */ addiu $a2, $sp, 0x64c +/* 079FCC 7F04549C 27A70658 */ addiu $a3, $sp, 0x658 +/* 079FD0 7F0454A0 AFA00010 */ sw $zero, 0x10($sp) +/* 079FD4 7F0454A4 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 079FD8 7F0454A8 AFB20014 */ sw $s2, 0x14($sp) +/* 079FDC 7F0454AC AFA20664 */ sw $v0, 0x664($sp) +/* 079FE0 7F0454B0 8E040088 */ lw $a0, 0x88($s0) +/* 079FE4 7F0454B4 50800004 */ beql $a0, $zero, .L7F0454C8 +/* 079FE8 7F0454B8 8FAC0664 */ lw $t4, 0x664($sp) +/* 079FEC 7F0454BC 0FC0F416 */ jal sub_GAME_7F03D058 +/* 079FF0 7F0454C0 24050001 */ li $a1, 1 +/* 079FF4 7F0454C4 8FAC0664 */ lw $t4, 0x664($sp) +.L7F0454C8: +/* 079FF8 7F0454C8 24010001 */ li $at, 1 +/* 079FFC 7F0454CC 8FA20648 */ lw $v0, 0x648($sp) +/* 07A000 7F0454D0 51810009 */ beql $t4, $at, .L7F0454F8 +/* 07A004 7F0454D4 8E0D0000 */ lw $t5, ($s0) +/* 07A008 7F0454D8 50400007 */ beql $v0, $zero, .L7F0454F8 +/* 07A00C 7F0454DC 8E0D0000 */ lw $t5, ($s0) +/* 07A010 7F0454E0 804E0080 */ lb $t6, 0x80($v0) +/* 07A014 7F0454E4 24010056 */ li $at, 86 +/* 07A018 7F0454E8 55C10003 */ bnel $t6, $at, .L7F0454F8 +/* 07A01C 7F0454EC 8E0D0000 */ lw $t5, ($s0) +/* 07A020 7F0454F0 A4400082 */ sh $zero, 0x82($v0) +/* 07A024 7F0454F4 8E0D0000 */ lw $t5, ($s0) +.L7F0454F8: +/* 07A028 7F0454F8 2401FEFF */ li $at, -257 +/* 07A02C 7F0454FC 01A17824 */ and $t7, $t5, $at +/* 07A030 7F045500 AE0F0000 */ sw $t7, ($s0) +/* 07A034 7F045504 C6260058 */ lwc1 $f6, 0x58($s1) +.L7F045508: +/* 07A038 7F045508 3C188005 */ lui $t8, %hi(clock_timer) +/* 07A03C 7F04550C 3C013F80 */ lui $at, 0x3f80 +/* 07A040 7F045510 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07A044 7F045514 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A048 7F045518 E7AA0698 */ swc1 $f10, 0x698($sp) +/* 07A04C 7F04551C C6240060 */ lwc1 $f4, 0x60($s1) +/* 07A050 7F045520 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07A054 7F045524 8E0200BC */ lw $v0, 0xbc($s0) +/* 07A058 7F045528 58400005 */ blezl $v0, .L7F045540 +/* 07A05C 7F04552C 8E29006C */ lw $t1, 0x6c($s1) +/* 07A060 7F045530 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07A064 7F045534 00584023 */ subu $t0, $v0, $t8 +/* 07A068 7F045538 AE0800BC */ sw $t0, 0xbc($s0) +/* 07A06C 7F04553C 8E29006C */ lw $t1, 0x6c($s1) +.L7F045540: +/* 07A070 7F045540 8D2B0000 */ lw $t3, ($t1) +/* 07A074 7F045544 31790001 */ andi $t9, $t3, 1 +/* 07A078 7F045548 53200351 */ beql $t9, $zero, .L7F046290 +/* 07A07C 7F04554C C6000060 */ lwc1 $f0, 0x60($s0) +/* 07A080 7F045550 0FC1001E */ jal sub_GAME_7F040078 +/* 07A084 7F045554 02202025 */ move $a0, $s1 +/* 07A088 7F045558 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A08C 7F04555C 44814000 */ mtc1 $at, $f8 +/* 07A090 7F045560 3C078005 */ lui $a3, %hi(clock_timer) +/* 07A094 7F045564 24E78374 */ addiu $a3, %lo(clock_timer) # addiu $a3, $a3, -0x7c8c +/* 07A098 7F045568 AFA20640 */ sw $v0, 0x640($sp) +/* 07A09C 7F04556C AFA00610 */ sw $zero, 0x610($sp) +/* 07A0A0 7F045570 AFA0060C */ sw $zero, 0x60c($sp) +/* 07A0A4 7F045574 AFA00604 */ sw $zero, 0x604($sp) +/* 07A0A8 7F045578 E7A80638 */ swc1 $f8, 0x638($sp) +/* 07A0AC 7F04557C 8E0A00A8 */ lw $t2, 0xa8($s0) +/* 07A0B0 7F045580 8CEC0000 */ lw $t4, ($a3) +/* 07A0B4 7F045584 C634005C */ lwc1 $f20, 0x5c($s1) +/* 07A0B8 7F045588 00009025 */ move $s2, $zero +/* 07A0BC 7F04558C 014C7021 */ addu $t6, $t2, $t4 +/* 07A0C0 7F045590 AE0E00A8 */ sw $t6, 0xa8($s0) +/* 07A0C4 7F045594 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07A0C8 7F045598 3C018005 */ lui $at, %hi(rocket_initial_gravity_modifier) +/* 07A0CC 7F04559C E7A6062C */ swc1 $f6, 0x62c($sp) +/* 07A0D0 7F0455A0 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 07A0D4 7F0455A4 E7AA0630 */ swc1 $f10, 0x630($sp) +/* 07A0D8 7F0455A8 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07A0DC 7F0455AC E7A40634 */ swc1 $f4, 0x634($sp) +/* 07A0E0 7F0455B0 8E030000 */ lw $v1, ($s0) +/* 07A0E4 7F0455B4 306D0020 */ andi $t5, $v1, 0x20 +/* 07A0E8 7F0455B8 11A0004B */ beqz $t5, .L7F0456E8 +/* 07A0EC 7F0455BC 00000000 */ nop +/* 07A0F0 7F0455C0 C4322A98 */ lwc1 $f18, %lo(rocket_initial_gravity_modifier)($at) +/* 07A0F4 7F0455C4 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A0F8 7F0455C8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A0FC 7F0455CC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A100 7F0455D0 4612003C */ c.lt.s $f0, $f18 +/* 07A104 7F0455D4 00000000 */ nop +/* 07A108 7F0455D8 4502001C */ bc1fl .L7F04564C +/* 07A10C 7F0455DC C60000B0 */ lwc1 $f0, 0xb0($s0) +/* 07A110 7F0455E0 C6080014 */ lwc1 $f8, 0x14($s0) +/* 07A114 7F0455E4 C4460000 */ lwc1 $f6, ($v0) +/* 07A118 7F0455E8 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 07A11C 7F0455EC 3C018005 */ lui $at, %hi(D_80052A9C) +/* 07A120 7F0455F0 46064282 */ mul.s $f10, $f8, $f6 +/* 07A124 7F0455F4 460A2200 */ add.s $f8, $f4, $f10 +/* 07A128 7F0455F8 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07A12C 7F0455FC C4440000 */ lwc1 $f4, ($v0) +/* 07A130 7F045600 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A134 7F045604 C60800B0 */ lwc1 $f8, 0xb0($s0) +/* 07A138 7F045608 46043282 */ mul.s $f10, $f6, $f4 +/* 07A13C 7F04560C 460A4180 */ add.s $f6, $f8, $f10 +/* 07A140 7F045610 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07A144 7F045614 C4480000 */ lwc1 $f8, ($v0) +/* 07A148 7F045618 C4242A9C */ lwc1 $f4, %lo(D_80052A9C)($at) +/* 07A14C 7F04561C 46082282 */ mul.s $f10, $f4, $f8 +/* 07A150 7F045620 460A0180 */ add.s $f6, $f0, $f10 +/* 07A154 7F045624 E606001C */ swc1 $f6, 0x1c($s0) +/* 07A158 7F045628 C604001C */ lwc1 $f4, 0x1c($s0) +/* 07A15C 7F04562C 4604903C */ c.lt.s $f18, $f4 +/* 07A160 7F045630 00000000 */ nop +/* 07A164 7F045634 45000002 */ bc1f .L7F045640 +/* 07A168 7F045638 00000000 */ nop +/* 07A16C 7F04563C E612001C */ swc1 $f18, 0x1c($s0) +.L7F045640: +/* 07A170 7F045640 10000029 */ b .L7F0456E8 +/* 07A174 7F045644 8E030000 */ lw $v1, ($s0) +/* 07A178 7F045648 C60000B0 */ lwc1 $f0, 0xb0($s0) +.L7F04564C: +/* 07A17C 7F04564C C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A180 7F045650 4600403C */ c.lt.s $f8, $f0 +/* 07A184 7F045654 00000000 */ nop +/* 07A188 7F045658 45000019 */ bc1f .L7F0456C0 +/* 07A18C 7F04565C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A190 7F045660 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07A194 7F045664 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07A198 7F045668 C60800B4 */ lwc1 $f8, 0xb4($s0) +/* 07A19C 7F04566C 46065102 */ mul.s $f4, $f10, $f6 +/* 07A1A0 7F045670 46044280 */ add.s $f10, $f8, $f4 +/* 07A1A4 7F045674 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 07A1A8 7F045678 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07A1AC 7F04567C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07A1B0 7F045680 3C018005 */ lui $at, %hi(D_80052AA0) +/* 07A1B4 7F045684 46083102 */ mul.s $f4, $f6, $f8 +/* 07A1B8 7F045688 46040280 */ add.s $f10, $f0, $f4 +/* 07A1BC 7F04568C E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07A1C0 7F045690 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A1C4 7F045694 C60600B0 */ lwc1 $f6, 0xb0($s0) +/* 07A1C8 7F045698 C42A2AA0 */ lwc1 $f10, %lo(D_80052AA0)($at) +/* 07A1CC 7F04569C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07A1D0 7F0456A0 46083101 */ sub.s $f4, $f6, $f8 +/* 07A1D4 7F0456A4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A1D8 7F0456A8 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07A1DC 7F0456AC 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A1E0 7F0456B0 46044180 */ add.s $f6, $f8, $f4 +/* 07A1E4 7F0456B4 E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A1E8 7F0456B8 1000000B */ b .L7F0456E8 +/* 07A1EC 7F0456BC 8E030000 */ lw $v1, ($s0) +.L7F0456C0: +/* 07A1F0 7F0456C0 E7A00698 */ swc1 $f0, 0x698($sp) +/* 07A1F4 7F0456C4 8E0F0000 */ lw $t7, ($s0) +/* 07A1F8 7F0456C8 2401FFDF */ li $at, -33 +/* 07A1FC 7F0456CC C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 07A200 7F0456D0 01E1C024 */ and $t8, $t7, $at +/* 07A204 7F0456D4 AE180000 */ sw $t8, ($s0) +/* 07A208 7F0456D8 37030010 */ ori $v1, $t8, 0x10 +/* 07A20C 7F0456DC E616001C */ swc1 $f22, 0x1c($s0) +/* 07A210 7F0456E0 AE030000 */ sw $v1, ($s0) +/* 07A214 7F0456E4 E60A0008 */ swc1 $f10, 8($s0) +.L7F0456E8: +/* 07A218 7F0456E8 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07A21C 7F0456EC 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07A220 7F0456F0 3C018005 */ lui $at, %hi(prop_projectile_gravity_modifier) +/* 07A224 7F0456F4 306B0010 */ andi $t3, $v1, 0x10 +/* 07A228 7F0456F8 C4322AA4 */ lwc1 $f18, %lo(prop_projectile_gravity_modifier)($at) +/* 07A22C 7F0456FC C4420000 */ lwc1 $f2, ($v0) +/* 07A230 7F045700 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07A234 7F045704 15600015 */ bnez $t3, .L7F04575C +/* 07A238 7F045708 C6100014 */ lwc1 $f16, 0x14($s0) +/* 07A23C 7F04570C 46008100 */ add.s $f4, $f16, $f0 +/* 07A240 7F045710 C6080008 */ lwc1 $f8, 8($s0) +/* 07A244 7F045714 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A248 7F045718 46022182 */ mul.s $f6, $f4, $f2 +/* 07A24C 7F04571C 46064280 */ add.s $f10, $f8, $f6 +/* 07A250 7F045720 E60A0008 */ swc1 $f10, 8($s0) +/* 07A254 7F045724 C4420000 */ lwc1 $f2, ($v0) +/* 07A258 7F045728 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A25C 7F04572C 44815000 */ mtc1 $at, $f10 +/* 07A260 7F045730 46029102 */ mul.s $f4, $f18, $f2 +/* 07A264 7F045734 46046381 */ sub.s $f14, $f12, $f4 +/* 07A268 7F045738 460E6200 */ add.s $f8, $f12, $f14 +/* 07A26C 7F04573C 46081182 */ mul.s $f6, $f2, $f8 +/* 07A270 7F045740 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A274 7F045744 460A3102 */ mul.s $f4, $f6, $f10 +/* 07A278 7F045748 46044180 */ add.s $f6, $f8, $f4 +/* 07A27C 7F04574C E7A60698 */ swc1 $f6, 0x698($sp) +/* 07A280 7F045750 E60E0008 */ swc1 $f14, 8($s0) +/* 07A284 7F045754 1000000C */ b .L7F045788 +/* 07A288 7F045758 C4420000 */ lwc1 $f2, ($v0) +.L7F04575C: +/* 07A28C 7F04575C 46008200 */ add.s $f8, $f16, $f0 +/* 07A290 7F045760 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A294 7F045764 46024102 */ mul.s $f4, $f8, $f2 +/* 07A298 7F045768 46045180 */ add.s $f6, $f10, $f4 +/* 07A29C 7F04576C E6060008 */ swc1 $f6, 8($s0) +/* 07A2A0 7F045770 C60A0008 */ lwc1 $f10, 8($s0) +/* 07A2A4 7F045774 C4420000 */ lwc1 $f2, ($v0) +/* 07A2A8 7F045778 C7A80698 */ lwc1 $f8, 0x698($sp) +/* 07A2AC 7F04577C 46025102 */ mul.s $f4, $f10, $f2 +/* 07A2B0 7F045780 46044180 */ add.s $f6, $f8, $f4 +/* 07A2B4 7F045784 E7A60698 */ swc1 $f6, 0x698($sp) +.L7F045788: +/* 07A2B8 7F045788 C6080010 */ lwc1 $f8, 0x10($s0) +/* 07A2BC 7F04578C C60A0004 */ lwc1 $f10, 4($s0) +/* 07A2C0 7F045790 26240018 */ addiu $a0, $s1, 0x18 +/* 07A2C4 7F045794 46024102 */ mul.s $f4, $f8, $f2 +/* 07A2C8 7F045798 C6080018 */ lwc1 $f8, 0x18($s0) +/* 07A2CC 7F04579C 26050020 */ addiu $a1, $s0, 0x20 +/* 07A2D0 7F0457A0 46045180 */ add.s $f6, $f10, $f4 +/* 07A2D4 7F0457A4 E6060004 */ swc1 $f6, 4($s0) +/* 07A2D8 7F0457A8 C44A0000 */ lwc1 $f10, ($v0) +/* 07A2DC 7F0457AC C606000C */ lwc1 $f6, 0xc($s0) +/* 07A2E0 7F0457B0 460A4102 */ mul.s $f4, $f8, $f10 +/* 07A2E4 7F0457B4 46043200 */ add.s $f8, $f6, $f4 +/* 07A2E8 7F0457B8 C6060004 */ lwc1 $f6, 4($s0) +/* 07A2EC 7F0457BC E608000C */ swc1 $f8, 0xc($s0) +/* 07A2F0 7F0457C0 C4420000 */ lwc1 $f2, ($v0) +/* 07A2F4 7F0457C4 C7AA0694 */ lwc1 $f10, 0x694($sp) +/* 07A2F8 7F0457C8 8CE60000 */ lw $a2, ($a3) +/* 07A2FC 7F0457CC 46023102 */ mul.s $f4, $f6, $f2 +/* 07A300 7F0457D0 C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07A304 7F0457D4 46045200 */ add.s $f8, $f10, $f4 +/* 07A308 7F0457D8 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07A30C 7F0457DC C60A000C */ lwc1 $f10, 0xc($s0) +/* 07A310 7F0457E0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07A314 7F0457E4 AFA40070 */ sw $a0, 0x70($sp) +/* 07A318 7F0457E8 46025102 */ mul.s $f4, $f10, $f2 +/* 07A31C 7F0457EC 46043200 */ add.s $f8, $f6, $f4 +/* 07A320 7F0457F0 0FC15F7E */ jal sub_GAME_7F057DF8 +/* 07A324 7F0457F4 E7A8069C */ swc1 $f8, 0x69c($sp) +/* 07A328 7F0457F8 92390003 */ lbu $t9, 3($s1) +/* 07A32C 7F0457FC 24010008 */ li $at, 8 +/* 07A330 7F045800 57210013 */ bnel $t9, $at, .L7F045850 +/* 07A334 7F045804 8E040088 */ lw $a0, 0x88($s0) +/* 07A338 7F045808 82220080 */ lb $v0, 0x80($s1) +/* 07A33C 7F04580C 2401001D */ li $at, 29 +/* 07A340 7F045810 1041000D */ beq $v0, $at, .L7F045848 +/* 07A344 7F045814 2401001B */ li $at, 27 +/* 07A348 7F045818 1041000B */ beq $v0, $at, .L7F045848 +/* 07A34C 7F04581C 2401001C */ li $at, 28 +/* 07A350 7F045820 10410009 */ beq $v0, $at, .L7F045848 +/* 07A354 7F045824 24010021 */ li $at, 33 +/* 07A358 7F045828 10410007 */ beq $v0, $at, .L7F045848 +/* 07A35C 7F04582C 2401002F */ li $at, 47 +/* 07A360 7F045830 10410005 */ beq $v0, $at, .L7F045848 +/* 07A364 7F045834 24010030 */ li $at, 48 +/* 07A368 7F045838 10410003 */ beq $v0, $at, .L7F045848 +/* 07A36C 7F04583C 24010022 */ li $at, 34 +/* 07A370 7F045840 54410003 */ bnel $v0, $at, .L7F045850 +/* 07A374 7F045844 8E040088 */ lw $a0, 0x88($s0) +.L7F045848: +/* 07A378 7F045848 24120001 */ li $s2, 1 +/* 07A37C 7F04584C 8E040088 */ lw $a0, 0x88($s0) +.L7F045850: +/* 07A380 7F045850 50800004 */ beql $a0, $zero, .L7F045864 +/* 07A384 7F045854 02202025 */ move $a0, $s1 +/* 07A388 7F045858 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A38C 7F04585C 00002825 */ move $a1, $zero +/* 07A390 7F045860 02202025 */ move $a0, $s1 +.L7F045864: +/* 07A394 7F045864 27A50694 */ addiu $a1, $sp, 0x694 +/* 07A398 7F045868 27A60614 */ addiu $a2, $sp, 0x614 +/* 07A39C 7F04586C 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A3A0 7F045870 AFB20010 */ sw $s2, 0x10($sp) +/* 07A3A4 7F045874 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07A3A8 7F045878 AFA00014 */ sw $zero, 0x14($sp) +/* 07A3AC 7F04587C AFA20664 */ sw $v0, 0x664($sp) +/* 07A3B0 7F045880 8E040088 */ lw $a0, 0x88($s0) +/* 07A3B4 7F045884 50800004 */ beql $a0, $zero, .L7F045898 +/* 07A3B8 7F045888 8FAC0664 */ lw $t4, 0x664($sp) +/* 07A3BC 7F04588C 0FC0F416 */ jal sub_GAME_7F03D058 +/* 07A3C0 7F045890 24050001 */ li $a1, 1 +/* 07A3C4 7F045894 8FAC0664 */ lw $t4, 0x664($sp) +.L7F045898: +/* 07A3C8 7F045898 240A0001 */ li $t2, 1 +/* 07A3CC 7F04589C 24010002 */ li $at, 2 +/* 07A3D0 7F0458A0 15810042 */ bne $t4, $at, .L7F0459AC +/* 07A3D4 7F0458A4 AFAA0690 */ sw $t2, 0x690($sp) +/* 07A3D8 7F0458A8 3C038003 */ lui $v1, %hi(D_80030B0C) +/* 07A3DC 7F0458AC 8C630B0C */ lw $v1, %lo(D_80030B0C)($v1) +/* 07A3E0 7F0458B0 10600007 */ beqz $v1, .L7F0458D0 +/* 07A3E4 7F0458B4 00000000 */ nop +/* 07A3E8 7F0458B8 90620000 */ lbu $v0, ($v1) +/* 07A3EC 7F0458BC 24010003 */ li $at, 3 +/* 07A3F0 7F0458C0 1041003A */ beq $v0, $at, .L7F0459AC +/* 07A3F4 7F0458C4 24010006 */ li $at, 6 +/* 07A3F8 7F0458C8 50410039 */ beql $v0, $at, .L7F0459B0 +/* 07A3FC 7F0458CC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0458D0: +/* 07A400 7F0458D0 10600007 */ beqz $v1, .L7F0458F0 +/* 07A404 7F0458D4 00002025 */ move $a0, $zero +/* 07A408 7F0458D8 8C620004 */ lw $v0, 4($v1) +/* 07A40C 7F0458DC 8C4E0064 */ lw $t6, 0x64($v0) +/* 07A410 7F0458E0 31CD0080 */ andi $t5, $t6, 0x80 +/* 07A414 7F0458E4 11A00002 */ beqz $t5, .L7F0458F0 +/* 07A418 7F0458E8 00000000 */ nop +/* 07A41C 7F0458EC 24040001 */ li $a0, 1 +.L7F0458F0: +/* 07A420 7F0458F0 5480002F */ bnezl $a0, .L7F0459B0 +/* 07A424 7F0458F4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A428 7F0458F8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07A42C 7F0458FC 02002025 */ move $a0, $s0 +/* 07A430 7F045900 8E2F0064 */ lw $t7, 0x64($s1) +/* 07A434 7F045904 2401FF7F */ li $at, -129 +/* 07A438 7F045908 AE20006C */ sw $zero, 0x6c($s1) +/* 07A43C 7F04590C 01E1C024 */ and $t8, $t7, $at +/* 07A440 7F045910 AE380064 */ sw $t8, 0x64($s1) +/* 07A444 7F045914 92620001 */ lbu $v0, 1($s3) +/* 07A448 7F045918 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07A44C 7F04591C 240500F1 */ li $a1, 241 +/* 07A450 7F045920 30480008 */ andi $t0, $v0, 8 +/* 07A454 7F045924 11000003 */ beqz $t0, .L7F045934 +/* 07A458 7F045928 00003025 */ move $a2, $zero +/* 07A45C 7F04592C 34490010 */ ori $t1, $v0, 0x10 +/* 07A460 7F045930 A2690001 */ sb $t1, 1($s3) +.L7F045934: +/* 07A464 7F045934 0C002382 */ jal play_sfx_a1 +/* 07A468 7F045938 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07A46C 7F04593C 00402025 */ move $a0, $v0 +/* 07A470 7F045940 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07A474 7F045944 26650008 */ addiu $a1, $s3, 8 +/* 07A478 7F045948 8E6B0014 */ lw $t3, 0x14($s3) +/* 07A47C 7F04594C 82240080 */ lb $a0, 0x80($s1) +/* 07A480 7F045950 0FC15DFA */ jal sub_GAME_7F0577E8 +/* 07A484 7F045954 91650003 */ lbu $a1, 3($t3) +/* 07A488 7F045958 02202025 */ move $a0, $s1 +/* 07A48C 7F04595C 27A50614 */ addiu $a1, $sp, 0x614 +/* 07A490 7F045960 8E660014 */ lw $a2, 0x14($s3) +/* 07A494 7F045964 0FC10E6E */ jal sub_GAME_7F0439B8 +/* 07A498 7F045968 27A70620 */ addiu $a3, $sp, 0x620 +/* 07A49C 7F04596C 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A4A0 7F045970 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A4A4 7F045974 02602025 */ move $a0, $s3 +/* 07A4A8 7F045978 3C068007 */ lui $a2, %hi(objinst) +/* 07A4AC 7F04597C 10A0000B */ beqz $a1, .L7F0459AC +/* 07A4B0 7F045980 3C078007 */ lui $a3, %hi(dword_CODE_bss_80075B74) +/* 07A4B4 7F045984 8E720014 */ lw $s2, 0x14($s3) +/* 07A4B8 7F045988 8CC65B70 */ lw $a2, %lo(objinst)($a2) +/* 07A4BC 7F04598C 0FC10E9B */ jal sub_GAME_7F043A6C +/* 07A4C0 7F045990 8CE75B74 */ lw $a3, %lo(dword_CODE_bss_80075B74)($a3) +/* 07A4C4 7F045994 10400005 */ beqz $v0, .L7F0459AC +/* 07A4C8 7F045998 24190005 */ li $t9, 5 +/* 07A4CC 7F04599C AE720014 */ sw $s2, 0x14($s3) +/* 07A4D0 7F0459A0 240A0001 */ li $t2, 1 +/* 07A4D4 7F0459A4 AFB90680 */ sw $t9, 0x680($sp) +/* 07A4D8 7F0459A8 AFAA0604 */ sw $t2, 0x604($sp) +.L7F0459AC: +/* 07A4DC 7F0459AC 8FAC0604 */ lw $t4, 0x604($sp) +.L7F0459B0: +/* 07A4E0 7F0459B0 158000EC */ bnez $t4, .L7F045D64 +/* 07A4E4 7F0459B4 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A4E8 7F0459B8 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +/* 07A4EC 7F0459BC 524000EA */ beql $s2, $zero, .L7F045D68 +/* 07A4F0 7F0459C0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A4F4 7F0459C4 922E0003 */ lbu $t6, 3($s1) +/* 07A4F8 7F0459C8 24010008 */ li $at, 8 +/* 07A4FC 7F0459CC 55C100E6 */ bnel $t6, $at, .L7F045D68 +/* 07A500 7F0459D0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A504 7F0459D4 82220080 */ lb $v0, 0x80($s1) +/* 07A508 7F0459D8 24010003 */ li $at, 3 +/* 07A50C 7F0459DC 544100C3 */ bnel $v0, $at, .L7F045CEC +/* 07A510 7F0459E0 24010056 */ li $at, 86 +/* 07A514 7F0459E4 92420000 */ lbu $v0, ($s2) +/* 07A518 7F0459E8 24010003 */ li $at, 3 +/* 07A51C 7F0459EC 1041000D */ beq $v0, $at, .L7F045A24 +/* 07A520 7F0459F0 24010006 */ li $at, 6 +/* 07A524 7F0459F4 544100DC */ bnel $v0, $at, .L7F045D68 +/* 07A528 7F0459F8 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A52C 7F0459FC 8E4D0004 */ lw $t5, 4($s2) +/* 07A530 7F045A00 51A000D9 */ beql $t5, $zero, .L7F045D68 +/* 07A534 7F045A04 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A538 7F045A08 0FC26C57 */ jal sub_GAME_7F09B15C +/* 07A53C 7F045A0C 02402025 */ move $a0, $s2 +/* 07A540 7F045A10 0FC26C54 */ jal get_cur_playernum +/* 07A544 7F045A14 00409025 */ move $s2, $v0 +/* 07A548 7F045A18 105200D2 */ beq $v0, $s2, .L7F045D64 +/* 07A54C 7F045A1C 3C128003 */ lui $s2, %hi(D_80030B0C) +/* 07A550 7F045A20 8E520B0C */ lw $s2, %lo(D_80030B0C)($s2) +.L7F045A24: +/* 07A554 7F045A24 8E22006C */ lw $v0, 0x6c($s1) +/* 07A558 7F045A28 8E440004 */ lw $a0, 4($s2) +/* 07A55C 7F045A2C 8C4F0000 */ lw $t7, ($v0) +/* 07A560 7F045A30 31F80001 */ andi $t8, $t7, 1 +/* 07A564 7F045A34 530000CC */ beql $t8, $zero, .L7F045D68 +/* 07A568 7F045A38 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A56C 7F045A3C 8C480090 */ lw $t0, 0x90($v0) +/* 07A570 7F045A40 5D0000C9 */ bgtzl $t0, .L7F045D68 +/* 07A574 7F045A44 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A578 7F045A48 8E290064 */ lw $t1, 0x64($s1) +/* 07A57C 7F045A4C 3C068007 */ lui $a2, %hi(flt_CODE_bss_80075B78) +/* 07A580 7F045A50 24C65B78 */ addiu $a2, %lo(flt_CODE_bss_80075B78) # addiu $a2, $a2, 0x5b78 +/* 07A584 7F045A54 312B0020 */ andi $t3, $t1, 0x20 +/* 07A588 7F045A58 116000C2 */ beqz $t3, .L7F045D64 +/* 07A58C 7F045A5C 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A590 7F045A60 82270080 */ lb $a3, 0x80($s1) +/* 07A594 7F045A64 24190001 */ li $t9, 1 +/* 07A598 7F045A68 AFB90010 */ sw $t9, 0x10($sp) +/* 07A59C 7F045A6C 0FC09C9F */ jal handles_shot_actors +/* 07A5A0 7F045A70 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A5A4 7F045A74 104000BB */ beqz $v0, .L7F045D64 +/* 07A5A8 7F045A78 240A0001 */ li $t2, 1 +/* 07A5AC 7F045A7C AFAA0604 */ sw $t2, 0x604($sp) +/* 07A5B0 7F045A80 C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A5B4 7F045A84 C7AA0620 */ lwc1 $f10, 0x620($sp) +/* 07A5B8 7F045A88 4610B03C */ c.lt.s $f22, $f16 +/* 07A5BC 7F045A8C 00000000 */ nop +/* 07A5C0 7F045A90 4502001D */ bc1fl .L7F045B08 +/* 07A5C4 7F045A94 8E0C0000 */ lw $t4, ($s0) +/* 07A5C8 7F045A98 C6020004 */ lwc1 $f2, 4($s0) +/* 07A5CC 7F045A9C C60C0008 */ lwc1 $f12, 8($s0) +/* 07A5D0 7F045AA0 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A5D4 7F045AA4 460A1182 */ mul.s $f6, $f2, $f10 +/* 07A5D8 7F045AA8 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A5DC 7F045AAC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A5E0 7F045AB0 46046202 */ mul.s $f8, $f12, $f4 +/* 07A5E4 7F045AB4 46083100 */ add.s $f4, $f6, $f8 +/* 07A5E8 7F045AB8 C7A60628 */ lwc1 $f6, 0x628($sp) +/* 07A5EC 7F045ABC 46003202 */ mul.s $f8, $f6, $f0 +/* 07A5F0 7F045AC0 44813000 */ mtc1 $at, $f6 +/* 07A5F4 7F045AC4 46044380 */ add.s $f14, $f8, $f4 +/* 07A5F8 7F045AC8 46068200 */ add.s $f8, $f16, $f6 +/* 07A5FC 7F045ACC 46004107 */ neg.s $f4, $f8 +/* 07A600 7F045AD0 46047382 */ mul.s $f14, $f14, $f4 +/* 07A604 7F045AD4 00000000 */ nop +/* 07A608 7F045AD8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A60C 7F045ADC 46061200 */ add.s $f8, $f2, $f6 +/* 07A610 7F045AE0 E6080004 */ swc1 $f8, 4($s0) +/* 07A614 7F045AE4 C7A40624 */ lwc1 $f4, 0x624($sp) +/* 07A618 7F045AE8 46047282 */ mul.s $f10, $f14, $f4 +/* 07A61C 7F045AEC 460A6180 */ add.s $f6, $f12, $f10 +/* 07A620 7F045AF0 E6060008 */ swc1 $f6, 8($s0) +/* 07A624 7F045AF4 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A628 7F045AF8 46087102 */ mul.s $f4, $f14, $f8 +/* 07A62C 7F045AFC 46040280 */ add.s $f10, $f0, $f4 +/* 07A630 7F045B00 E60A000C */ swc1 $f10, 0xc($s0) +/* 07A634 7F045B04 8E0C0000 */ lw $t4, ($s0) +.L7F045B08: +/* 07A638 7F045B08 318E0200 */ andi $t6, $t4, 0x200 +/* 07A63C 7F045B0C 55C00004 */ bnezl $t6, .L7F045B20 +/* 07A640 7F045B10 8E0D0090 */ lw $t5, 0x90($s0) +/* 07A644 7F045B14 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A648 7F045B18 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A64C 7F045B1C 8E0D0090 */ lw $t5, 0x90($s0) +.L7F045B20: +/* 07A650 7F045B20 3C058003 */ lui $a1, %hi(D_80030B0C) +/* 07A654 7F045B24 2406FFFF */ li $a2, -1 +/* 07A658 7F045B28 25AF0001 */ addiu $t7, $t5, 1 +/* 07A65C 7F045B2C AE0F0090 */ sw $t7, 0x90($s0) +/* 07A660 7F045B30 8CA50B0C */ lw $a1, %lo(D_80030B0C)($a1) +/* 07A664 7F045B34 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07A668 7F045B38 82240080 */ lb $a0, 0x80($s1) +/* 07A66C 7F045B3C 3C188003 */ lui $t8, %hi(D_80030B0C) +/* 07A670 7F045B40 8F180B0C */ lw $t8, %lo(D_80030B0C)($t8) +/* 07A674 7F045B44 3C028003 */ lui $v0, %hi(bodypartshot) +/* 07A678 7F045B48 93080001 */ lbu $t0, 1($t8) +/* 07A67C 7F045B4C 31090002 */ andi $t1, $t0, 2 +/* 07A680 7F045B50 51200085 */ beql $t1, $zero, .L7F045D68 +/* 07A684 7F045B54 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A688 7F045B58 8C420B10 */ lw $v0, %lo(bodypartshot)($v0) +/* 07A68C 7F045B5C 24010064 */ li $at, 100 +/* 07A690 7F045B60 10410080 */ beq $v0, $at, .L7F045D64 +/* 07A694 7F045B64 2401006E */ li $at, 110 +/* 07A698 7F045B68 1041007E */ beq $v0, $at, .L7F045D64 +/* 07A69C 7F045B6C 3C048007 */ lui $a0, %hi(objinst) +/* 07A6A0 7F045B70 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6A4 7F045B74 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A6A8 7F045B78 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A6AC 7F045B7C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07A6B0 7F045B80 00003025 */ move $a2, $zero +/* 07A6B4 7F045B84 C7A60614 */ lwc1 $f6, 0x614($sp) +/* 07A6B8 7F045B88 C7A80618 */ lwc1 $f8, 0x618($sp) +/* 07A6BC 7F045B8C C7A4061C */ lwc1 $f4, 0x61c($sp) +/* 07A6C0 7F045B90 00409025 */ move $s2, $v0 +/* 07A6C4 7F045B94 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A6C8 7F045B98 E7A805D0 */ swc1 $f8, 0x5d0($sp) +/* 07A6CC 7F045B9C 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07A6D0 7F045BA0 E7A405D4 */ swc1 $f4, 0x5d4($sp) +/* 07A6D4 7F045BA4 00402025 */ move $a0, $v0 +/* 07A6D8 7F045BA8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A6DC 7F045BAC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A6E0 7F045BB0 C7AA05CC */ lwc1 $f10, 0x5cc($sp) +/* 07A6E4 7F045BB4 C6460030 */ lwc1 $f6, 0x30($s2) +/* 07A6E8 7F045BB8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A6EC 7F045BBC 44810000 */ mtc1 $at, $f0 +/* 07A6F0 7F045BC0 46065201 */ sub.s $f8, $f10, $f6 +/* 07A6F4 7F045BC4 3C048007 */ lui $a0, %hi(objinst) +/* 07A6F8 7F045BC8 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A6FC 7F045BCC 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A700 7F045BD0 46004102 */ mul.s $f4, $f8, $f0 +/* 07A704 7F045BD4 C7A805D0 */ lwc1 $f8, 0x5d0($sp) +/* 07A708 7F045BD8 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A70C 7F045BDC 46045180 */ add.s $f6, $f10, $f4 +/* 07A710 7F045BE0 E7A605CC */ swc1 $f6, 0x5cc($sp) +/* 07A714 7F045BE4 C64A0034 */ lwc1 $f10, 0x34($s2) +/* 07A718 7F045BE8 460A4101 */ sub.s $f4, $f8, $f10 +/* 07A71C 7F045BEC 46002182 */ mul.s $f6, $f4, $f0 +/* 07A720 7F045BF0 C7A405D4 */ lwc1 $f4, 0x5d4($sp) +/* 07A724 7F045BF4 46064280 */ add.s $f10, $f8, $f6 +/* 07A728 7F045BF8 E7AA05D0 */ swc1 $f10, 0x5d0($sp) +/* 07A72C 7F045BFC C6480038 */ lwc1 $f8, 0x38($s2) +/* 07A730 7F045C00 46082181 */ sub.s $f6, $f4, $f8 +/* 07A734 7F045C04 46003282 */ mul.s $f10, $f6, $f0 +/* 07A738 7F045C08 460A2200 */ add.s $f8, $f4, $f10 +/* 07A73C 7F045C0C 0FC1B3A4 */ jal getjointsize +/* 07A740 7F045C10 E7A805D4 */ swc1 $f8, 0x5d4($sp) +/* 07A744 7F045C14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A748 7F045C18 44813000 */ mtc1 $at, $f6 +/* 07A74C 7F045C1C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B88) +/* 07A750 7F045C20 C42A5B88 */ lwc1 $f10, %lo(flt_CODE_bss_80075B88)($at) +/* 07A754 7F045C24 46060102 */ mul.s $f4, $f0, $f6 +/* 07A758 7F045C28 C7A605CC */ lwc1 $f6, 0x5cc($sp) +/* 07A75C 7F045C2C 3C048007 */ lui $a0, %hi(objinst) +/* 07A760 7F045C30 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A764 7F045C34 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A768 7F045C38 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A76C 7F045C3C 460A2202 */ mul.s $f8, $f4, $f10 +/* 07A770 7F045C40 46083101 */ sub.s $f4, $f6, $f8 +/* 07A774 7F045C44 0FC1B3A4 */ jal getjointsize +/* 07A778 7F045C48 E7A405CC */ swc1 $f4, 0x5cc($sp) +/* 07A77C 7F045C4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A780 7F045C50 44815000 */ mtc1 $at, $f10 +/* 07A784 7F045C54 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B8C) +/* 07A788 7F045C58 C4285B8C */ lwc1 $f8, %lo(flt_CODE_bss_80075B8C)($at) +/* 07A78C 7F045C5C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07A790 7F045C60 C7AA05D0 */ lwc1 $f10, 0x5d0($sp) +/* 07A794 7F045C64 3C048007 */ lui $a0, %hi(objinst) +/* 07A798 7F045C68 3C058007 */ lui $a1, %hi(dword_CODE_bss_80075B74) +/* 07A79C 7F045C6C 8CA55B74 */ lw $a1, %lo(dword_CODE_bss_80075B74)($a1) +/* 07A7A0 7F045C70 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A7A4 7F045C74 46083102 */ mul.s $f4, $f6, $f8 +/* 07A7A8 7F045C78 46045181 */ sub.s $f6, $f10, $f4 +/* 07A7AC 7F045C7C 0FC1B3A4 */ jal getjointsize +/* 07A7B0 7F045C80 E7A605D0 */ swc1 $f6, 0x5d0($sp) +/* 07A7B4 7F045C84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07A7B8 7F045C88 44814000 */ mtc1 $at, $f8 +/* 07A7BC 7F045C8C 3C018007 */ lui $at, %hi(flt_CODE_bss_80075B90) +/* 07A7C0 7F045C90 C4245B90 */ lwc1 $f4, %lo(flt_CODE_bss_80075B90)($at) +/* 07A7C4 7F045C94 46080282 */ mul.s $f10, $f0, $f8 +/* 07A7C8 7F045C98 C7A805D4 */ lwc1 $f8, 0x5d4($sp) +/* 07A7CC 7F045C9C 02402025 */ move $a0, $s2 +/* 07A7D0 7F045CA0 27A5058C */ addiu $a1, $sp, 0x58c +/* 07A7D4 7F045CA4 46045182 */ mul.s $f6, $f10, $f4 +/* 07A7D8 7F045CA8 46064281 */ sub.s $f10, $f8, $f6 +/* 07A7DC 7F045CAC 0FC16799 */ jal matrix_4x4_7F059E64 +/* 07A7E0 7F045CB0 E7AA05D4 */ swc1 $f10, 0x5d4($sp) +/* 07A7E4 7F045CB4 27A4058C */ addiu $a0, $sp, 0x58c +/* 07A7E8 7F045CB8 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07A7EC 7F045CBC 27A505CC */ addiu $a1, $sp, 0x5cc +/* 07A7F0 7F045CC0 3C048007 */ lui $a0, %hi(objinst) +/* 07A7F4 7F045CC4 3C058003 */ lui $a1, %hi(bodypartshot) +/* 07A7F8 7F045CC8 3C068007 */ lui $a2, %hi(dword_CODE_bss_80075B74) +/* 07A7FC 7F045CCC 8CC65B74 */ lw $a2, %lo(dword_CODE_bss_80075B74)($a2) +/* 07A800 7F045CD0 8CA50B10 */ lw $a1, %lo(bodypartshot)($a1) +/* 07A804 7F045CD4 8C845B70 */ lw $a0, %lo(objinst)($a0) +/* 07A808 7F045CD8 0FC08877 */ jal sub_GAME_7F0221DC +/* 07A80C 7F045CDC 27A705CC */ addiu $a3, $sp, 0x5cc +/* 07A810 7F045CE0 10000021 */ b .L7F045D68 +/* 07A814 7F045CE4 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A818 7F045CE8 24010056 */ li $at, 86 +.L7F045CEC: +/* 07A81C 7F045CEC 5441001E */ bnel $v0, $at, .L7F045D68 +/* 07A820 7F045CF0 8FAC0604 */ lw $t4, 0x604($sp) +/* 07A824 7F045CF4 92420000 */ lbu $v0, ($s2) +/* 07A828 7F045CF8 240B0001 */ li $t3, 1 +/* 07A82C 7F045CFC 24010003 */ li $at, 3 +/* 07A830 7F045D00 14410008 */ bne $v0, $at, .L7F045D24 +/* 07A834 7F045D04 AFAB0604 */ sw $t3, 0x604($sp) +/* 07A838 7F045D08 8E440004 */ lw $a0, 4($s2) +/* 07A83C 7F045D0C 26250058 */ addiu $a1, $s1, 0x58 +/* 07A840 7F045D10 3C064000 */ lui $a2, 0x4000 +/* 07A844 7F045D14 0FC09E01 */ jal sub_GAME_7F027804 +/* 07A848 7F045D18 24070001 */ li $a3, 1 +/* 07A84C 7F045D1C 10000011 */ b .L7F045D64 +/* 07A850 7F045D20 A6200082 */ sh $zero, 0x82($s1) +.L7F045D24: +/* 07A854 7F045D24 24010001 */ li $at, 1 +/* 07A858 7F045D28 10410004 */ beq $v0, $at, .L7F045D3C +/* 07A85C 7F045D2C 3C0542C8 */ lui $a1, 0x42c8 +/* 07A860 7F045D30 24010004 */ li $at, 4 +/* 07A864 7F045D34 5441000B */ bnel $v0, $at, .L7F045D64 +/* 07A868 7F045D38 A6200082 */ sh $zero, 0x82($s1) +.L7F045D3C: +/* 07A86C 7F045D3C 8E220064 */ lw $v0, 0x64($s1) +/* 07A870 7F045D40 3C010006 */ lui $at, 6 +/* 07A874 7F045D44 8E440004 */ lw $a0, 4($s2) +/* 07A878 7F045D48 0041C824 */ and $t9, $v0, $at +/* 07A87C 7F045D4C 00195442 */ srl $t2, $t9, 0x11 +/* 07A880 7F045D50 AFAA0010 */ sw $t2, 0x10($sp) +/* 07A884 7F045D54 26260058 */ addiu $a2, $s1, 0x58 +/* 07A888 7F045D58 0FC13842 */ jal maybe_detonate_object +/* 07A88C 7F045D5C 24070056 */ li $a3, 86 +/* 07A890 7F045D60 A6200082 */ sh $zero, 0x82($s1) +.L7F045D64: +/* 07A894 7F045D64 8FAC0604 */ lw $t4, 0x604($sp) +.L7F045D68: +/* 07A898 7F045D68 5580010B */ bnezl $t4, .L7F046198 +/* 07A89C 7F045D6C 8E2A0064 */ lw $t2, 0x64($s1) +/* 07A8A0 7F045D70 8FAE0664 */ lw $t6, 0x664($sp) +/* 07A8A4 7F045D74 55C00031 */ bnezl $t6, .L7F045E3C +/* 07A8A8 7F045D78 8E0F0000 */ lw $t7, ($s0) +/* 07A8AC 7F045D7C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07A8B0 7F045D80 C7A40620 */ lwc1 $f4, 0x620($sp) +/* 07A8B4 7F045D84 4610B03C */ c.lt.s $f22, $f16 +/* 07A8B8 7F045D88 00000000 */ nop +/* 07A8BC 7F045D8C 4502002B */ bc1fl .L7F045E3C +/* 07A8C0 7F045D90 8E0F0000 */ lw $t7, ($s0) +/* 07A8C4 7F045D94 C6020004 */ lwc1 $f2, 4($s0) +/* 07A8C8 7F045D98 C60C0008 */ lwc1 $f12, 8($s0) +/* 07A8CC 7F045D9C C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A8D0 7F045DA0 46041202 */ mul.s $f8, $f2, $f4 +/* 07A8D4 7F045DA4 C600000C */ lwc1 $f0, 0xc($s0) +/* 07A8D8 7F045DA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07A8DC 7F045DAC 46066282 */ mul.s $f10, $f12, $f6 +/* 07A8E0 7F045DB0 4616603E */ c.le.s $f12, $f22 +/* 07A8E4 7F045DB4 460A4180 */ add.s $f6, $f8, $f10 +/* 07A8E8 7F045DB8 C7A80628 */ lwc1 $f8, 0x628($sp) +/* 07A8EC 7F045DBC 46004282 */ mul.s $f10, $f8, $f0 +/* 07A8F0 7F045DC0 44814000 */ mtc1 $at, $f8 +/* 07A8F4 7F045DC4 46065380 */ add.s $f14, $f10, $f6 +/* 07A8F8 7F045DC8 46088280 */ add.s $f10, $f16, $f8 +/* 07A8FC 7F045DCC 46005187 */ neg.s $f6, $f10 +/* 07A900 7F045DD0 46067382 */ mul.s $f14, $f14, $f6 +/* 07A904 7F045DD4 00000000 */ nop +/* 07A908 7F045DD8 46047202 */ mul.s $f8, $f14, $f4 +/* 07A90C 7F045DDC 46081280 */ add.s $f10, $f2, $f8 +/* 07A910 7F045DE0 E60A0004 */ swc1 $f10, 4($s0) +/* 07A914 7F045DE4 C7A60624 */ lwc1 $f6, 0x624($sp) +/* 07A918 7F045DE8 46067102 */ mul.s $f4, $f14, $f6 +/* 07A91C 7F045DEC 46046200 */ add.s $f8, $f12, $f4 +/* 07A920 7F045DF0 E6080008 */ swc1 $f8, 8($s0) +/* 07A924 7F045DF4 C7AA0628 */ lwc1 $f10, 0x628($sp) +/* 07A928 7F045DF8 460A7182 */ mul.s $f6, $f14, $f10 +/* 07A92C 7F045DFC 46060100 */ add.s $f4, $f0, $f6 +/* 07A930 7F045E00 4500000D */ bc1f .L7F045E38 +/* 07A934 7F045E04 E604000C */ swc1 $f4, 0xc($s0) +/* 07A938 7F045E08 C6080008 */ lwc1 $f8, 8($s0) +/* 07A93C 7F045E0C 240D0001 */ li $t5, 1 +/* 07A940 7F045E10 4608B03E */ c.le.s $f22, $f8 +/* 07A944 7F045E14 00000000 */ nop +/* 07A948 7F045E18 45030007 */ bc1tl .L7F045E38 +/* 07A94C 7F045E1C AFAD060C */ sw $t5, 0x60c($sp) +/* 07A950 7F045E20 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07A954 7F045E24 460AA03E */ c.le.s $f20, $f10 +/* 07A958 7F045E28 00000000 */ nop +/* 07A95C 7F045E2C 45020003 */ bc1fl .L7F045E3C +/* 07A960 7F045E30 8E0F0000 */ lw $t7, ($s0) +/* 07A964 7F045E34 AFAD060C */ sw $t5, 0x60c($sp) +.L7F045E38: +/* 07A968 7F045E38 8E0F0000 */ lw $t7, ($s0) +.L7F045E3C: +/* 07A96C 7F045E3C C7B4063C */ lwc1 $f20, 0x63c($sp) +/* 07A970 7F045E40 31F80008 */ andi $t8, $t7, 8 +/* 07A974 7F045E44 17000014 */ bnez $t8, .L7F045E98 +/* 07A978 7F045E48 00000000 */ nop +/* 07A97C 7F045E4C 8E640014 */ lw $a0, 0x14($s3) +/* 07A980 7F045E50 8E650008 */ lw $a1, 8($s3) +/* 07A984 7F045E54 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07A988 7F045E58 8E660010 */ lw $a2, 0x10($s3) +/* 07A98C 7F045E5C 46000506 */ mov.s $f20, $f0 +/* 07A990 7F045E60 8FA40640 */ lw $a0, 0x640($sp) +/* 07A994 7F045E64 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07A998 7F045E68 8FA50070 */ lw $a1, 0x70($sp) +/* 07A99C 7F045E6C 4600A101 */ sub.s $f4, $f20, $f0 +/* 07A9A0 7F045E70 E7A00638 */ swc1 $f0, 0x638($sp) +/* 07A9A4 7F045E74 C666000C */ lwc1 $f6, 0xc($s3) +/* 07A9A8 7F045E78 00004025 */ move $t0, $zero +/* 07A9AC 7F045E7C 4604303C */ c.lt.s $f6, $f4 +/* 07A9B0 7F045E80 00000000 */ nop +/* 07A9B4 7F045E84 45000002 */ bc1f .L7F045E90 +/* 07A9B8 7F045E88 00000000 */ nop +/* 07A9BC 7F045E8C 24080001 */ li $t0, 1 +.L7F045E90: +/* 07A9C0 7F045E90 10000001 */ b .L7F045E98 +/* 07A9C4 7F045E94 AFA80610 */ sw $t0, 0x610($sp) +.L7F045E98: +/* 07A9C8 7F045E98 8FA90610 */ lw $t1, 0x610($sp) +/* 07A9CC 7F045E9C 8FAB0664 */ lw $t3, 0x664($sp) +/* 07A9D0 7F045EA0 55200004 */ bnezl $t1, .L7F045EB4 +/* 07A9D4 7F045EA4 8E190000 */ lw $t9, ($s0) +/* 07A9D8 7F045EA8 5560000B */ bnezl $t3, .L7F045ED8 +/* 07A9DC 7F045EAC 8FAD0610 */ lw $t5, 0x610($sp) +/* 07A9E0 7F045EB0 8E190000 */ lw $t9, ($s0) +.L7F045EB4: +/* 07A9E4 7F045EB4 332A0200 */ andi $t2, $t9, 0x200 +/* 07A9E8 7F045EB8 55400004 */ bnezl $t2, .L7F045ECC +/* 07A9EC 7F045EBC 8E0C0090 */ lw $t4, 0x90($s0) +/* 07A9F0 7F045EC0 0FC15EB0 */ jal sub_GAME_7F057AC0 +/* 07A9F4 7F045EC4 8FA4006C */ lw $a0, 0x6c($sp) +/* 07A9F8 7F045EC8 8E0C0090 */ lw $t4, 0x90($s0) +.L7F045ECC: +/* 07A9FC 7F045ECC 258E0001 */ addiu $t6, $t4, 1 +/* 07AA00 7F045ED0 AE0E0090 */ sw $t6, 0x90($s0) +/* 07AA04 7F045ED4 8FAD0610 */ lw $t5, 0x610($sp) +.L7F045ED8: +/* 07AA08 7F045ED8 8FAF060C */ lw $t7, 0x60c($sp) +/* 07AA0C 7F045EDC 8FB80610 */ lw $t8, 0x610($sp) +/* 07AA10 7F045EE0 15A00003 */ bnez $t5, .L7F045EF0 +/* 07AA14 7F045EE4 00000000 */ nop +/* 07AA18 7F045EE8 51E0003A */ beql $t7, $zero, .L7F045FD4 +/* 07AA1C 7F045EEC 922C0003 */ lbu $t4, 3($s1) +.L7F045EF0: +/* 07AA20 7F045EF0 13000009 */ beqz $t8, .L7F045F18 +/* 07AA24 7F045EF4 C7A40618 */ lwc1 $f4, 0x618($sp) +/* 07AA28 7F045EF8 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA2C 7F045EFC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA30 7F045F00 44813000 */ mtc1 $at, $f6 +/* 07AA34 7F045F04 4608A281 */ sub.s $f10, $f20, $f8 +/* 07AA38 7F045F08 46065000 */ add.s $f0, $f10, $f6 +/* 07AA3C 7F045F0C E660000C */ swc1 $f0, 0xc($s3) +/* 07AA40 7F045F10 10000008 */ b .L7F045F34 +/* 07AA44 7F045F14 E620005C */ swc1 $f0, 0x5c($s1) +.L7F045F18: +/* 07AA48 7F045F18 C7A80638 */ lwc1 $f8, 0x638($sp) +/* 07AA4C 7F045F1C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07AA50 7F045F20 44813000 */ mtc1 $at, $f6 +/* 07AA54 7F045F24 46082281 */ sub.s $f10, $f4, $f8 +/* 07AA58 7F045F28 46065080 */ add.s $f2, $f10, $f6 +/* 07AA5C 7F045F2C E662000C */ swc1 $f2, 0xc($s3) +/* 07AA60 7F045F30 E622005C */ swc1 $f2, 0x5c($s1) +.L7F045F34: +/* 07AA64 7F045F34 8E230064 */ lw $v1, 0x64($s1) +/* 07AA68 7F045F38 02202025 */ move $a0, $s1 +/* 07AA6C 7F045F3C 000343C0 */ sll $t0, $v1, 0xf +/* 07AA70 7F045F40 05000002 */ bltz $t0, .L7F045F4C +/* 07AA74 7F045F44 34690100 */ ori $t1, $v1, 0x100 +/* 07AA78 7F045F48 AE290064 */ sw $t1, 0x64($s1) +.L7F045F4C: +/* 07AA7C 7F045F4C C610008C */ lwc1 $f16, 0x8c($s0) +/* 07AA80 7F045F50 4610B03C */ c.lt.s $f22, $f16 +/* 07AA84 7F045F54 00000000 */ nop +/* 07AA88 7F045F58 4500001B */ bc1f .L7F045FC8 +/* 07AA8C 7F045F5C 00000000 */ nop +/* 07AA90 7F045F60 C6040008 */ lwc1 $f4, 8($s0) +/* 07AA94 7F045F64 46008207 */ neg.s $f8, $f16 +/* 07AA98 7F045F68 3C018005 */ lui $at, %hi(D_80052AA8) +/* 07AA9C 7F045F6C 46082282 */ mul.s $f10, $f4, $f8 +/* 07AAA0 7F045F70 C4202AA8 */ lwc1 $f0, %lo(D_80052AA8)($at) +/* 07AAA4 7F045F74 E60A0008 */ swc1 $f10, 8($s0) +/* 07AAA8 7F045F78 C6060008 */ lwc1 $f6, 8($s0) +/* 07AAAC 7F045F7C 4600303C */ c.lt.s $f6, $f0 +/* 07AAB0 7F045F80 00000000 */ nop +/* 07AAB4 7F045F84 45020013 */ bc1fl .L7F045FD4 +/* 07AAB8 7F045F88 922C0003 */ lbu $t4, 3($s1) +/* 07AABC 7F045F8C 8E0B0000 */ lw $t3, ($s0) +/* 07AAC0 7F045F90 02202025 */ move $a0, $s1 +/* 07AAC4 7F045F94 31790002 */ andi $t9, $t3, 2 +/* 07AAC8 7F045F98 13200007 */ beqz $t9, .L7F045FB8 +/* 07AACC 7F045F9C 00000000 */ nop +/* 07AAD0 7F045FA0 8E0A0090 */ lw $t2, 0x90($s0) +/* 07AAD4 7F045FA4 24010001 */ li $at, 1 +/* 07AAD8 7F045FA8 15410003 */ bne $t2, $at, .L7F045FB8 +/* 07AADC 7F045FAC 00000000 */ nop +/* 07AAE0 7F045FB0 10000007 */ b .L7F045FD0 +/* 07AAE4 7F045FB4 E6000008 */ swc1 $f0, 8($s0) +.L7F045FB8: +/* 07AAE8 7F045FB8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAEC 7F045FBC 27A5062C */ addiu $a1, $sp, 0x62c +/* 07AAF0 7F045FC0 10000004 */ b .L7F045FD4 +/* 07AAF4 7F045FC4 922C0003 */ lbu $t4, 3($s1) +.L7F045FC8: +/* 07AAF8 7F045FC8 0FC10C79 */ jal sub_GAME_7F0431E4 +/* 07AAFC 7F045FCC 27A5062C */ addiu $a1, $sp, 0x62c +.L7F045FD0: +/* 07AB00 7F045FD0 922C0003 */ lbu $t4, 3($s1) +.L7F045FD4: +/* 07AB04 7F045FD4 24010008 */ li $at, 8 +/* 07AB08 7F045FD8 5581006F */ bnel $t4, $at, .L7F046198 +/* 07AB0C 7F045FDC 8E2A0064 */ lw $t2, 0x64($s1) +/* 07AB10 7F045FE0 82220080 */ lb $v0, 0x80($s1) +/* 07AB14 7F045FE4 24010003 */ li $at, 3 +/* 07AB18 7F045FE8 54410006 */ bnel $v0, $at, .L7F046004 +/* 07AB1C 7F045FEC 24010056 */ li $at, 86 +/* 07AB20 7F045FF0 0FC10D94 */ jal sub_GAME_7F043650 +/* 07AB24 7F045FF4 02202025 */ move $a0, $s1 +/* 07AB28 7F045FF8 10000042 */ b .L7F046104 +/* 07AB2C 7F045FFC 8FB80664 */ lw $t8, 0x664($sp) +/* 07AB30 7F046000 24010056 */ li $at, 86 +.L7F046004: +/* 07AB34 7F046004 1441002D */ bne $v0, $at, .L7F0460BC +/* 07AB38 7F046008 8FAE0664 */ lw $t6, 0x664($sp) +/* 07AB3C 7F04600C 11C00003 */ beqz $t6, .L7F04601C +/* 07AB40 7F046010 8FAD0610 */ lw $t5, 0x610($sp) +/* 07AB44 7F046014 51A00004 */ beql $t5, $zero, .L7F046028 +/* 07AB48 7F046018 C6020004 */ lwc1 $f2, 4($s0) +.L7F04601C: +/* 07AB4C 7F04601C 10000038 */ b .L7F046100 +/* 07AB50 7F046020 A6200082 */ sh $zero, 0x82($s1) +/* 07AB54 7F046024 C6020004 */ lwc1 $f2, 4($s0) +.L7F046028: +/* 07AB58 7F046028 C60C0008 */ lwc1 $f12, 8($s0) +/* 07AB5C 7F04602C C600000C */ lwc1 $f0, 0xc($s0) +/* 07AB60 7F046030 46021102 */ mul.s $f4, $f2, $f2 +/* 07AB64 7F046034 3C018005 */ lui $at, %hi(D_80052AAC) +/* 07AB68 7F046038 26240058 */ addiu $a0, $s1, 0x58 +/* 07AB6C 7F04603C 460C6202 */ mul.s $f8, $f12, $f12 +/* 07AB70 7F046040 24060008 */ li $a2, 8 +/* 07AB74 7F046044 46000182 */ mul.s $f6, $f0, $f0 +/* 07AB78 7F046048 46082280 */ add.s $f10, $f4, $f8 +/* 07AB7C 7F04604C C4242AAC */ lwc1 $f4, %lo(D_80052AAC)($at) +/* 07AB80 7F046050 460A3380 */ add.s $f14, $f6, $f10 +/* 07AB84 7F046054 460E203C */ c.lt.s $f4, $f14 +/* 07AB88 7F046058 00000000 */ nop +/* 07AB8C 7F04605C 45020005 */ bc1fl .L7F046074 +/* 07AB90 7F046060 8E0F00A8 */ lw $t7, 0xa8($s0) +/* 07AB94 7F046064 E6160010 */ swc1 $f22, 0x10($s0) +/* 07AB98 7F046068 E6160014 */ swc1 $f22, 0x14($s0) +/* 07AB9C 7F04606C E6160018 */ swc1 $f22, 0x18($s0) +/* 07ABA0 7F046070 8E0F00A8 */ lw $t7, 0xa8($s0) +.L7F046074: +/* 07ABA4 7F046074 29E1012D */ slti $at, $t7, 0x12d +/* 07ABA8 7F046078 54200008 */ bnezl $at, .L7F04609C +/* 07ABAC 7F04607C 92690001 */ lbu $t1, 1($s3) +/* 07ABB0 7F046080 8E180000 */ lw $t8, ($s0) +/* 07ABB4 7F046084 2401FFCF */ li $at, -49 +/* 07ABB8 7F046088 E616001C */ swc1 $f22, 0x1c($s0) +/* 07ABBC 7F04608C 03014024 */ and $t0, $t8, $at +/* 07ABC0 7F046090 1000001B */ b .L7F046100 +/* 07ABC4 7F046094 AE080000 */ sw $t0, ($s0) +/* 07ABC8 7F046098 92690001 */ lbu $t1, 1($s3) +.L7F04609C: +/* 07ABCC 7F04609C 8E650014 */ lw $a1, 0x14($s3) +/* 07ABD0 7F0460A0 2667002C */ addiu $a3, $s3, 0x2c +/* 07ABD4 7F0460A4 312B0008 */ andi $t3, $t1, 8 +/* 07ABD8 7F0460A8 000BC82B */ sltu $t9, $zero, $t3 +/* 07ABDC 7F0460AC 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ABE0 7F0460B0 AFB90010 */ sw $t9, 0x10($sp) +/* 07ABE4 7F0460B4 10000013 */ b .L7F046104 +/* 07ABE8 7F0460B8 8FB80664 */ lw $t8, 0x664($sp) +.L7F0460BC: +/* 07ABEC 7F0460BC 24010057 */ li $at, 87 +/* 07ABF0 7F0460C0 1441000F */ bne $v0, $at, .L7F046100 +/* 07ABF4 7F0460C4 8FAA0610 */ lw $t2, 0x610($sp) +/* 07ABF8 7F0460C8 15400003 */ bnez $t2, .L7F0460D8 +/* 07ABFC 7F0460CC 8FAC060C */ lw $t4, 0x60c($sp) +/* 07AC00 7F0460D0 11800003 */ beqz $t4, .L7F0460E0 +/* 07AC04 7F0460D4 26240058 */ addiu $a0, $s1, 0x58 +.L7F0460D8: +/* 07AC08 7F0460D8 10000009 */ b .L7F046100 +/* 07AC0C 7F0460DC A6200082 */ sh $zero, 0x82($s1) +.L7F0460E0: +/* 07AC10 7F0460E0 926E0001 */ lbu $t6, 1($s3) +/* 07AC14 7F0460E4 8E650014 */ lw $a1, 0x14($s3) +/* 07AC18 7F0460E8 24060009 */ li $a2, 9 +/* 07AC1C 7F0460EC 31CD0008 */ andi $t5, $t6, 8 +/* 07AC20 7F0460F0 000D782B */ sltu $t7, $zero, $t5 +/* 07AC24 7F0460F4 AFAF0010 */ sw $t7, 0x10($sp) +/* 07AC28 7F0460F8 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07AC2C 7F0460FC 2667002C */ addiu $a3, $s3, 0x2c +.L7F046100: +/* 07AC30 7F046100 8FB80664 */ lw $t8, 0x664($sp) +.L7F046104: +/* 07AC34 7F046104 3C128005 */ lui $s2, %hi(D_80048380) +/* 07AC38 7F046108 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07AC3C 7F04610C 13000003 */ beqz $t8, .L7F04611C +/* 07AC40 7F046110 8FA80610 */ lw $t0, 0x610($sp) +/* 07AC44 7F046114 51000020 */ beql $t0, $zero, .L7F046198 +/* 07AC48 7F046118 8E2A0064 */ lw $t2, 0x64($s1) +.L7F04611C: +/* 07AC4C 7F04611C 8E420000 */ lw $v0, ($s2) +/* 07AC50 7F046120 8E0900AC */ lw $t1, 0xac($s0) +/* 07AC54 7F046124 244BFFFE */ addiu $t3, $v0, -2 +/* 07AC58 7F046128 012B082A */ slt $at, $t1, $t3 +/* 07AC5C 7F04612C 50200019 */ beql $at, $zero, .L7F046194 +/* 07AC60 7F046130 AE0200AC */ sw $v0, 0xac($s0) +/* 07AC64 7F046134 82220080 */ lb $v0, 0x80($s1) +/* 07AC68 7F046138 26790008 */ addiu $t9, $s3, 8 +/* 07AC6C 7F04613C 24010003 */ li $at, 3 +/* 07AC70 7F046140 10410004 */ beq $v0, $at, .L7F046154 +/* 07AC74 7F046144 AFB90070 */ sw $t9, 0x70($sp) +/* 07AC78 7F046148 24010002 */ li $at, 2 +/* 07AC7C 7F04614C 14410008 */ bne $v0, $at, .L7F046170 +/* 07AC80 7F046150 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +.L7F046154: +/* 07AC84 7F046154 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07AC88 7F046158 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07AC8C 7F04615C 24050003 */ li $a1, 3 +/* 07AC90 7F046160 0C002382 */ jal play_sfx_a1 +/* 07AC94 7F046164 00003025 */ move $a2, $zero +/* 07AC98 7F046168 10000006 */ b .L7F046184 +/* 07AC9C 7F04616C 00402025 */ move $a0, $v0 +.L7F046170: +/* 07ACA0 7F046170 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07ACA4 7F046174 2405002D */ li $a1, 45 +/* 07ACA8 7F046178 0C002382 */ jal play_sfx_a1 +/* 07ACAC 7F04617C 00003025 */ move $a2, $zero +/* 07ACB0 7F046180 00402025 */ move $a0, $v0 +.L7F046184: +/* 07ACB4 7F046184 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07ACB8 7F046188 8FA50070 */ lw $a1, 0x70($sp) +/* 07ACBC 7F04618C 8E420000 */ lw $v0, ($s2) +/* 07ACC0 7F046190 AE0200AC */ sw $v0, 0xac($s0) +.L7F046194: +/* 07ACC4 7F046194 8E2A0064 */ lw $t2, 0x64($s1) +.L7F046198: +/* 07ACC8 7F046198 3C128005 */ lui $s2, %hi(D_80048380) +/* 07ACCC 7F04619C 26528380 */ addiu $s2, %lo(D_80048380) # addiu $s2, $s2, -0x7c80 +/* 07ACD0 7F0461A0 314C0080 */ andi $t4, $t2, 0x80 +/* 07ACD4 7F0461A4 5180011D */ beql $t4, $zero, .L7F04661C +/* 07ACD8 7F0461A8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACDC 7F0461AC 8E0E0000 */ lw $t6, ($s0) +/* 07ACE0 7F0461B0 31CD0400 */ andi $t5, $t6, 0x400 +/* 07ACE4 7F0461B4 51A00119 */ beql $t5, $zero, .L7F04661C +/* 07ACE8 7F0461B8 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ACEC 7F0461BC 8E420000 */ lw $v0, ($s2) +/* 07ACF0 7F0461C0 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 07ACF4 7F0461C4 27B00564 */ addiu $s0, $sp, 0x564 +/* 07ACF8 7F0461C8 304F0007 */ andi $t7, $v0, 7 +/* 07ACFC 7F0461CC 15E00112 */ bnez $t7, .L7F046618 +/* 07AD00 7F0461D0 00002025 */ move $a0, $zero +/* 07AD04 7F0461D4 44810000 */ mtc1 $at, $f0 +/* 07AD08 7F0461D8 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07AD0C 7F0461DC 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 +/* 07AD10 7F0461E0 44812000 */ mtc1 $at, $f4 +/* 07AD14 7F0461E4 46004180 */ add.s $f6, $f8, $f0 +/* 07AD18 7F0461E8 3058000F */ andi $t8, $v0, 0xf +/* 07AD1C 7F0461EC E7A60564 */ swc1 $f6, 0x564($sp) +/* 07AD20 7F0461F0 C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07AD24 7F0461F4 46045201 */ sub.s $f8, $f10, $f4 +/* 07AD28 7F0461F8 E7A80568 */ swc1 $f8, 0x568($sp) +/* 07AD2C 7F0461FC C6260060 */ lwc1 $f6, 0x60($s1) +/* 07AD30 7F046200 17000005 */ bnez $t8, .L7F046218 +/* 07AD34 7F046204 E7A6056C */ swc1 $f6, 0x56c($sp) +/* 07AD38 7F046208 C7AA056C */ lwc1 $f10, 0x56c($sp) +/* 07AD3C 7F04620C 46005100 */ add.s $f4, $f10, $f0 +/* 07AD40 7F046210 10000004 */ b .L7F046224 +/* 07AD44 7F046214 E7A4056C */ swc1 $f4, 0x56c($sp) +.L7F046218: +/* 07AD48 7F046218 C7A8056C */ lwc1 $f8, 0x56c($sp) +/* 07AD4C 7F04621C 46004181 */ sub.s $f6, $f8, $f0 +/* 07AD50 7F046220 E7A6056C */ swc1 $f6, 0x56c($sp) +.L7F046224: +/* 07AD54 7F046224 8E220010 */ lw $v0, 0x10($s1) +/* 07AD58 7F046228 02002825 */ move $a1, $s0 +/* 07AD5C 7F04622C 24070014 */ li $a3, 20 +/* 07AD60 7F046230 8C460014 */ lw $a2, 0x14($v0) +/* 07AD64 7F046234 2448002C */ addiu $t0, $v0, 0x2c +/* 07AD68 7F046238 AFA80018 */ sw $t0, 0x18($sp) +/* 07AD6C 7F04623C AFA0001C */ sw $zero, 0x1c($sp) +/* 07AD70 7F046240 AFA00014 */ sw $zero, 0x14($sp) +/* 07AD74 7F046244 0FC27094 */ jal sub_GAME_7F09C250 +/* 07AD78 7F046248 AFA00010 */ sw $zero, 0x10($sp) +/* 07AD7C 7F04624C 8E490000 */ lw $t1, ($s2) +/* 07AD80 7F046250 24010028 */ li $at, 40 +/* 07AD84 7F046254 02002025 */ move $a0, $s0 +/* 07AD88 7F046258 0121001A */ div $zero, $t1, $at +/* 07AD8C 7F04625C 00005810 */ mfhi $t3 +/* 07AD90 7F046260 556000EE */ bnezl $t3, .L7F04661C +/* 07AD94 7F046264 8FAD0690 */ lw $t5, 0x690($sp) +/* 07AD98 7F046268 8E220010 */ lw $v0, 0x10($s1) +/* 07AD9C 7F04626C 24190001 */ li $t9, 1 +/* 07ADA0 7F046270 2406000A */ li $a2, 10 +/* 07ADA4 7F046274 8C450014 */ lw $a1, 0x14($v0) +/* 07ADA8 7F046278 AFB90010 */ sw $t9, 0x10($sp) +/* 07ADAC 7F04627C 0FC279C0 */ jal sub_GAME_7F09E700 +/* 07ADB0 7F046280 2447002C */ addiu $a3, $v0, 0x2c +/* 07ADB4 7F046284 100000E5 */ b .L7F04661C +/* 07ADB8 7F046288 8FAD0690 */ lw $t5, 0x690($sp) +/* 07ADBC 7F04628C C6000060 */ lwc1 $f0, 0x60($s0) +.L7F046290: +/* 07ADC0 7F046290 44815000 */ mtc1 $at, $f10 +/* 07ADC4 7F046294 24120001 */ li $s2, 1 +/* 07ADC8 7F046298 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07ADCC 7F04629C 460A003C */ c.lt.s $f0, $f10 +/* 07ADD0 7F0462A0 26040068 */ addiu $a0, $s0, 0x68 +/* 07ADD4 7F0462A4 26050078 */ addiu $a1, $s0, 0x78 +/* 07ADD8 7F0462A8 45020031 */ bc1fl .L7F046370 +/* 07ADDC 7F0462AC C60A0004 */ lwc1 $f10, 4($s0) +/* 07ADE0 7F0462B0 C6020064 */ lwc1 $f2, 0x64($s0) +/* 07ADE4 7F0462B4 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07ADE8 7F0462B8 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07ADEC 7F0462BC 3C018005 */ lui $at, %hi(D_80052AB0) +/* 07ADF0 7F0462C0 46041202 */ mul.s $f8, $f2, $f4 +/* 07ADF4 7F0462C4 27B20550 */ addiu $s2, $sp, 0x550 +/* 07ADF8 7F0462C8 46080180 */ add.s $f6, $f0, $f8 +/* 07ADFC 7F0462CC E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE00 7F0462D0 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07AE04 7F0462D4 59400005 */ blezl $t2, .L7F0462EC +/* 07AE08 7F0462D8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE0C 7F0462DC C42A2AB0 */ lwc1 $f10, %lo(D_80052AB0)($at) +/* 07AE10 7F0462E0 460A1102 */ mul.s $f4, $f2, $f10 +/* 07AE14 7F0462E4 E6040064 */ swc1 $f4, 0x64($s0) +/* 07AE18 7F0462E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L7F0462EC: +/* 07AE1C 7F0462EC 44814000 */ mtc1 $at, $f8 +/* 07AE20 7F0462F0 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE24 7F0462F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AE28 7F0462F8 4600403C */ c.lt.s $f8, $f0 +/* 07AE2C 7F0462FC 00000000 */ nop +/* 07AE30 7F046300 45030006 */ bc1tl .L7F04631C +/* 07AE34 7F046304 44813000 */ mtc1 $at, $f6 +/* 07AE38 7F046308 8E0C0000 */ lw $t4, ($s0) +/* 07AE3C 7F04630C 318E0008 */ andi $t6, $t4, 8 +/* 07AE40 7F046310 51C00006 */ beql $t6, $zero, .L7F04632C +/* 07AE44 7F046314 44060000 */ mfc1 $a2, $f0 +/* 07AE48 7F046318 44813000 */ mtc1 $at, $f6 +.L7F04631C: +/* 07AE4C 7F04631C 00000000 */ nop +/* 07AE50 7F046320 E6060060 */ swc1 $f6, 0x60($s0) +/* 07AE54 7F046324 C6000060 */ lwc1 $f0, 0x60($s0) +/* 07AE58 7F046328 44060000 */ mfc1 $a2, $f0 +.L7F04632C: +/* 07AE5C 7F04632C 0FC16E82 */ jal quaternion_slerp +/* 07AE60 7F046330 02403825 */ move $a3, $s2 +/* 07AE64 7F046334 26250018 */ addiu $a1, $s1, 0x18 +/* 07AE68 7F046338 AFA50070 */ sw $a1, 0x70($sp) +/* 07AE6C 7F04633C 0FC16D8A */ jal quaternion_to_matrix +/* 07AE70 7F046340 02402025 */ move $a0, $s2 +/* 07AE74 7F046344 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 07AE78 7F046348 0FC1626D */ jal matrix_column_1_scalar_multiply +/* 07AE7C 7F04634C 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE80 7F046350 C60C00C4 */ lwc1 $f12, 0xc4($s0) +/* 07AE84 7F046354 0FC16279 */ jal matrix_column_2_scalar_multiply +/* 07AE88 7F046358 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE8C 7F04635C C60C00C8 */ lwc1 $f12, 0xc8($s0) +/* 07AE90 7F046360 0FC16293 */ jal matrix_column_3_scalar_multiply_2 +/* 07AE94 7F046364 8FA50070 */ lw $a1, 0x70($sp) +/* 07AE98 7F046368 00009025 */ move $s2, $zero +/* 07AE9C 7F04636C C60A0004 */ lwc1 $f10, 4($s0) +.L7F046370: +/* 07AEA0 7F046370 460AB032 */ c.eq.s $f22, $f10 +/* 07AEA4 7F046374 00000000 */ nop +/* 07AEA8 7F046378 4502000F */ bc1fl .L7F0463B8 +/* 07AEAC 7F04637C 8E0D0000 */ lw $t5, ($s0) +/* 07AEB0 7F046380 C604000C */ lwc1 $f4, 0xc($s0) +/* 07AEB4 7F046384 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AEB8 7F046388 4604B032 */ c.eq.s $f22, $f4 +/* 07AEBC 7F04638C 00000000 */ nop +/* 07AEC0 7F046390 45020009 */ bc1fl .L7F0463B8 +/* 07AEC4 7F046394 8E0D0000 */ lw $t5, ($s0) +/* 07AEC8 7F046398 C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AECC 7F04639C 44813000 */ mtc1 $at, $f6 +/* 07AED0 7F0463A0 00000000 */ nop +/* 07AED4 7F0463A4 4606403C */ c.lt.s $f8, $f6 +/* 07AED8 7F0463A8 00000000 */ nop +/* 07AEDC 7F0463AC 45000088 */ bc1f .L7F0465D0 +/* 07AEE0 7F0463B0 00000000 */ nop +/* 07AEE4 7F0463B4 8E0D0000 */ lw $t5, ($s0) +.L7F0463B8: +/* 07AEE8 7F0463B8 02202025 */ move $a0, $s1 +/* 07AEEC 7F0463BC 26380018 */ addiu $t8, $s1, 0x18 +/* 07AEF0 7F0463C0 31AF0008 */ andi $t7, $t5, 8 +/* 07AEF4 7F0463C4 15E00082 */ bnez $t7, .L7F0465D0 +/* 07AEF8 7F0463C8 00000000 */ nop +/* 07AEFC 7F0463CC AFB80070 */ sw $t8, 0x70($sp) +/* 07AF00 7F0463D0 0FC1001E */ jal sub_GAME_7F040078 +/* 07AF04 7F0463D4 00009025 */ move $s2, $zero +/* 07AF08 7F0463D8 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AF0C 7F0463DC 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07AF10 7F0463E0 AFA2054C */ sw $v0, 0x54c($sp) +/* 07AF14 7F0463E4 00002025 */ move $a0, $zero +/* 07AF18 7F0463E8 18600048 */ blez $v1, .L7F04650C +/* 07AF1C 7F0463EC 3C018005 */ lui $at, %hi(D_80052AB4) +/* 07AF20 7F0463F0 C42E2AB4 */ lwc1 $f14, %lo(D_80052AB4)($at) +/* 07AF24 7F0463F4 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F0463F8: +/* 07AF28 7F0463F8 C6040004 */ lwc1 $f4, 4($s0) +/* 07AF2C 7F0463FC C7A6069C */ lwc1 $f6, 0x69c($sp) +/* 07AF30 7F046400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AF34 7F046404 46045200 */ add.s $f8, $f10, $f4 +/* 07AF38 7F046408 E7A80694 */ swc1 $f8, 0x694($sp) +/* 07AF3C 7F04640C C60A000C */ lwc1 $f10, 0xc($s0) +/* 07AF40 7F046410 460A3100 */ add.s $f4, $f6, $f10 +/* 07AF44 7F046414 44813000 */ mtc1 $at, $f6 +/* 07AF48 7F046418 E7A4069C */ swc1 $f4, 0x69c($sp) +/* 07AF4C 7F04641C C6080060 */ lwc1 $f8, 0x60($s0) +/* 07AF50 7F046420 4608303E */ c.le.s $f6, $f8 +/* 07AF54 7F046424 00000000 */ nop +/* 07AF58 7F046428 45020035 */ bc1fl .L7F046500 +/* 07AF5C 7F04642C 24840001 */ addiu $a0, $a0, 1 +/* 07AF60 7F046430 C60A0094 */ lwc1 $f10, 0x94($s0) +/* 07AF64 7F046434 460AB03C */ c.lt.s $f22, $f10 +/* 07AF68 7F046438 00000000 */ nop +/* 07AF6C 7F04643C 45020027 */ bc1fl .L7F0464DC +/* 07AF70 7F046440 C6060004 */ lwc1 $f6, 4($s0) +/* 07AF74 7F046444 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AF78 7F046448 C6020004 */ lwc1 $f2, 4($s0) +/* 07AF7C 7F04644C AFA40548 */ sw $a0, 0x548($sp) +/* 07AF80 7F046450 46000102 */ mul.s $f4, $f0, $f0 +/* 07AF84 7F046454 00000000 */ nop +/* 07AF88 7F046458 46021202 */ mul.s $f8, $f2, $f2 +/* 07AF8C 7F04645C 0C007DF8 */ jal sqrtf +/* 07AF90 7F046460 46082300 */ add.s $f12, $f4, $f8 +/* 07AF94 7F046464 3C018005 */ lui $at, %hi(D_80052AB8) +/* 07AF98 7F046468 C42E2AB8 */ lwc1 $f14, %lo(D_80052AB8)($at) +/* 07AF9C 7F04646C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07AFA0 7F046470 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07AFA4 7F046474 C6060094 */ lwc1 $f6, 0x94($s0) +/* 07AFA8 7F046478 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07AFAC 7F04647C 44814000 */ mtc1 $at, $f8 +/* 07AFB0 7F046480 460A3102 */ mul.s $f4, $f6, $f10 +/* 07AFB4 7F046484 8FA40548 */ lw $a0, 0x548($sp) +/* 07AFB8 7F046488 3C038005 */ lui $v1, %hi(clock_timer) +/* 07AFBC 7F04648C 46002303 */ div.s $f12, $f4, $f0 +/* 07AFC0 7F046490 460C403E */ c.le.s $f8, $f12 +/* 07AFC4 7F046494 00000000 */ nop +/* 07AFC8 7F046498 45020005 */ bc1fl .L7F0464B0 +/* 07AFCC 7F04649C C6020004 */ lwc1 $f2, 4($s0) +/* 07AFD0 7F0464A0 E6160004 */ swc1 $f22, 4($s0) +/* 07AFD4 7F0464A4 1000000A */ b .L7F0464D0 +/* 07AFD8 7F0464A8 E616000C */ swc1 $f22, 0xc($s0) +/* 07AFDC 7F0464AC C6020004 */ lwc1 $f2, 4($s0) +.L7F0464B0: +/* 07AFE0 7F0464B0 C600000C */ lwc1 $f0, 0xc($s0) +/* 07AFE4 7F0464B4 460C1182 */ mul.s $f6, $f2, $f12 +/* 07AFE8 7F0464B8 00000000 */ nop +/* 07AFEC 7F0464BC 460C0102 */ mul.s $f4, $f0, $f12 +/* 07AFF0 7F0464C0 46061281 */ sub.s $f10, $f2, $f6 +/* 07AFF4 7F0464C4 46040201 */ sub.s $f8, $f0, $f4 +/* 07AFF8 7F0464C8 E60A0004 */ swc1 $f10, 4($s0) +/* 07AFFC 7F0464CC E608000C */ swc1 $f8, 0xc($s0) +.L7F0464D0: +/* 07B000 7F0464D0 1000000A */ b .L7F0464FC +/* 07B004 7F0464D4 8C638374 */ lw $v1, %lo(clock_timer)($v1) +/* 07B008 7F0464D8 C6060004 */ lwc1 $f6, 4($s0) +.L7F0464DC: +/* 07B00C 7F0464DC C604000C */ lwc1 $f4, 0xc($s0) +/* 07B010 7F0464E0 3C038005 */ lui $v1, %hi(clock_timer) +/* 07B014 7F0464E4 460E3282 */ mul.s $f10, $f6, $f14 +/* 07B018 7F0464E8 00000000 */ nop +/* 07B01C 7F0464EC 460E2202 */ mul.s $f8, $f4, $f14 +/* 07B020 7F0464F0 E60A0004 */ swc1 $f10, 4($s0) +/* 07B024 7F0464F4 E608000C */ swc1 $f8, 0xc($s0) +/* 07B028 7F0464F8 8C638374 */ lw $v1, %lo(clock_timer)($v1) +.L7F0464FC: +/* 07B02C 7F0464FC 24840001 */ addiu $a0, $a0, 1 +.L7F046500: +/* 07B030 7F046500 0083082A */ slt $at, $a0, $v1 +/* 07B034 7F046504 5420FFBC */ bnezl $at, .L7F0463F8 +/* 07B038 7F046508 C7AA0694 */ lwc1 $f10, 0x694($sp) +.L7F04650C: +/* 07B03C 7F04650C 02202025 */ move $a0, $s1 +/* 07B040 7F046510 27A50694 */ addiu $a1, $sp, 0x694 +/* 07B044 7F046514 27A60530 */ addiu $a2, $sp, 0x530 +/* 07B048 7F046518 27A7053C */ addiu $a3, $sp, 0x53c +/* 07B04C 7F04651C AFA00010 */ sw $zero, 0x10($sp) +/* 07B050 7F046520 0FC10BAD */ jal sub_GAME_7F042EB4 +/* 07B054 7F046524 AFA00014 */ sw $zero, 0x14($sp) +/* 07B058 7F046528 24080001 */ li $t0, 1 +/* 07B05C 7F04652C AFA80690 */ sw $t0, 0x690($sp) +/* 07B060 7F046530 8E660010 */ lw $a2, 0x10($s3) +/* 07B064 7F046534 8E650008 */ lw $a1, 8($s3) +/* 07B068 7F046538 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 07B06C 7F04653C 8E640014 */ lw $a0, 0x14($s3) +/* 07B070 7F046540 46000506 */ mov.s $f20, $f0 +/* 07B074 7F046544 8FA4054C */ lw $a0, 0x54c($sp) +/* 07B078 7F046548 0FC0FA6F */ jal sub_GAME_7F03E9BC +/* 07B07C 7F04654C 8FA50070 */ lw $a1, 0x70($sp) +/* 07B080 7F046550 3C018005 */ lui $at, %hi(D_80052ABC) +/* 07B084 7F046554 C42E2ABC */ lwc1 $f14, %lo(D_80052ABC)($at) +/* 07B088 7F046558 4600A181 */ sub.s $f6, $f20, $f0 +/* 07B08C 7F04655C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07B090 7F046560 44815000 */ mtc1 $at, $f10 +/* 07B094 7F046564 3C018005 */ lui $at, %hi(D_80052AC0) +/* 07B098 7F046568 460A3300 */ add.s $f12, $f6, $f10 +/* 07B09C 7F04656C E66C000C */ swc1 $f12, 0xc($s3) +/* 07B0A0 7F046570 E62C005C */ swc1 $f12, 0x5c($s1) +/* 07B0A4 7F046574 C6020004 */ lwc1 $f2, 4($s0) +/* 07B0A8 7F046578 460E103C */ c.lt.s $f2, $f14 +/* 07B0AC 7F04657C 00000000 */ nop +/* 07B0B0 7F046580 45000013 */ bc1f .L7F0465D0 +/* 07B0B4 7F046584 00000000 */ nop +/* 07B0B8 7F046588 C4242AC0 */ lwc1 $f4, %lo(D_80052AC0)($at) +/* 07B0BC 7F04658C 4602203C */ c.lt.s $f4, $f2 +/* 07B0C0 7F046590 00000000 */ nop +/* 07B0C4 7F046594 4500000E */ bc1f .L7F0465D0 +/* 07B0C8 7F046598 00000000 */ nop +/* 07B0CC 7F04659C C600000C */ lwc1 $f0, 0xc($s0) +/* 07B0D0 7F0465A0 3C018005 */ lui $at, %hi(D_80052AC4) +/* 07B0D4 7F0465A4 460E003C */ c.lt.s $f0, $f14 +/* 07B0D8 7F0465A8 00000000 */ nop +/* 07B0DC 7F0465AC 45000008 */ bc1f .L7F0465D0 +/* 07B0E0 7F0465B0 00000000 */ nop +/* 07B0E4 7F0465B4 C4282AC4 */ lwc1 $f8, %lo(D_80052AC4)($at) +/* 07B0E8 7F0465B8 4600403C */ c.lt.s $f8, $f0 +/* 07B0EC 7F0465BC 00000000 */ nop +/* 07B0F0 7F0465C0 45000003 */ bc1f .L7F0465D0 +/* 07B0F4 7F0465C4 00000000 */ nop +/* 07B0F8 7F0465C8 E616000C */ swc1 $f22, 0xc($s0) +/* 07B0FC 7F0465CC E6160004 */ swc1 $f22, 4($s0) +.L7F0465D0: +/* 07B100 7F0465D0 16400005 */ bnez $s2, .L7F0465E8 +/* 07B104 7F0465D4 00000000 */ nop +/* 07B108 7F0465D8 8E090000 */ lw $t1, ($s0) +/* 07B10C 7F0465DC 312B0008 */ andi $t3, $t1, 8 +/* 07B110 7F0465E0 5160000E */ beql $t3, $zero, .L7F04661C +/* 07B114 7F0465E4 8FAD0690 */ lw $t5, 0x690($sp) +.L7F0465E8: +/* 07B118 7F0465E8 0FC0FEDC */ jal sub_GAME_7F03FB70 +/* 07B11C 7F0465EC 02002025 */ move $a0, $s0 +/* 07B120 7F0465F0 8E390064 */ lw $t9, 0x64($s1) +/* 07B124 7F0465F4 2401FF7F */ li $at, -129 +/* 07B128 7F0465F8 AE20006C */ sw $zero, 0x6c($s1) +/* 07B12C 7F0465FC 03215024 */ and $t2, $t9, $at +/* 07B130 7F046600 AE2A0064 */ sw $t2, 0x64($s1) +/* 07B134 7F046604 92620001 */ lbu $v0, 1($s3) +/* 07B138 7F046608 304C0008 */ andi $t4, $v0, 8 +/* 07B13C 7F04660C 11800002 */ beqz $t4, .L7F046618 +/* 07B140 7F046610 344E0010 */ ori $t6, $v0, 0x10 +/* 07B144 7F046614 A26E0001 */ sb $t6, 1($s3) +.L7F046618: +/* 07B148 7F046618 8FAD0690 */ lw $t5, 0x690($sp) +.L7F04661C: +/* 07B14C 7F04661C 11A0000B */ beqz $t5, .L7F04664C +/* 07B150 7F046620 262F0058 */ addiu $t7, $s1, 0x58 +/* 07B154 7F046624 AFAF0070 */ sw $t7, 0x70($sp) +/* 07B158 7F046628 0FC10121 */ jal sub_GAME_7F040484 +/* 07B15C 7F04662C 02202025 */ move $a0, $s1 +/* 07B160 7F046630 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07B164 7F046634 02202025 */ move $a0, $s1 +/* 07B168 7F046638 8E240010 */ lw $a0, 0x10($s1) +/* 07B16C 7F04663C 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07B170 7F046640 2625007C */ addiu $a1, $s1, 0x7c +/* 07B174 7F046644 0FC146F3 */ jal detonate_proxmine_In_range +/* 07B178 7F046648 8FA40070 */ lw $a0, 0x70($sp) +.L7F04664C: +/* 07B17C 7F04664C 92220003 */ lbu $v0, 3($s1) +/* 07B180 7F046650 24010001 */ li $at, 1 +/* 07B184 7F046654 54410052 */ bnel $v0, $at, .L7F0467A0 +/* 07B188 7F046658 24010006 */ li $at, 6 +/* 07B18C 7F04665C 8E700004 */ lw $s0, 4($s3) +/* 07B190 7F046660 3C188005 */ lui $t8, %hi(global_timer) +/* 07B194 7F046664 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07B198 7F046668 E7A6067C */ swc1 $f6, 0x67c($sp) +/* 07B19C 7F04666C 8E0200EC */ lw $v0, 0xec($s0) +/* 07B1A0 7F046670 58400012 */ blezl $v0, .L7F0466BC +/* 07B1A4 7F046674 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1A8 7F046678 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B1AC 7F04667C 8E0800A0 */ lw $t0, 0xa0($s0) +/* 07B1B0 7F046680 03084823 */ subu $t1, $t8, $t0 +/* 07B1B4 7F046684 0049082A */ slt $at, $v0, $t1 +/* 07B1B8 7F046688 5020000C */ beql $at, $zero, .L7F0466BC +/* 07B1BC 7F04668C 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1C0 7F046690 820B00BC */ lb $t3, 0xbc($s0) +/* 07B1C4 7F046694 55600009 */ bnezl $t3, .L7F0466BC +/* 07B1C8 7F046698 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1CC 7F04669C 8E190008 */ lw $t9, 8($s0) +/* 07B1D0 7F0466A0 02002025 */ move $a0, $s0 +/* 07B1D4 7F0466A4 00195000 */ sll $t2, $t9, 0 +/* 07B1D8 7F0466A8 05420004 */ bltzl $t2, .L7F0466BC +/* 07B1DC 7F0466AC 820C00BC */ lb $t4, 0xbc($s0) +/* 07B1E0 7F0466B0 0FC15262 */ jal set_door_state +/* 07B1E4 7F0466B4 24050002 */ li $a1, 2 +/* 07B1E8 7F0466B8 820C00BC */ lb $t4, 0xbc($s0) +.L7F0466BC: +/* 07B1EC 7F0466BC 24010003 */ li $at, 3 +/* 07B1F0 7F0466C0 5581001B */ bnel $t4, $at, .L7F046730 +/* 07B1F4 7F0466C4 960D009A */ lhu $t5, 0x9a($s0) +/* 07B1F8 7F0466C8 8E0200C8 */ lw $v0, 0xc8($s0) +/* 07B1FC 7F0466CC 24030001 */ li $v1, 1 +/* 07B200 7F0466D0 02002025 */ move $a0, $s0 +/* 07B204 7F0466D4 10400011 */ beqz $v0, .L7F04671C +/* 07B208 7F0466D8 00000000 */ nop +/* 07B20C 7F0466DC 1050000F */ beq $v0, $s0, .L7F04671C +/* 07B210 7F0466E0 00000000 */ nop +/* 07B214 7F0466E4 804E00BC */ lb $t6, 0xbc($v0) +.L7F0466E8: +/* 07B218 7F0466E8 55C00007 */ bnezl $t6, .L7F046708 +/* 07B21C 7F0466EC 00001825 */ move $v1, $zero +/* 07B220 7F0466F0 C44A00B4 */ lwc1 $f10, 0xb4($v0) +/* 07B224 7F0466F4 460AB03C */ c.lt.s $f22, $f10 +/* 07B228 7F0466F8 00000000 */ nop +/* 07B22C 7F0466FC 45020003 */ bc1fl .L7F04670C +/* 07B230 7F046700 8C4200C8 */ lw $v0, 0xc8($v0) +/* 07B234 7F046704 00001825 */ move $v1, $zero +.L7F046708: +/* 07B238 7F046708 8C4200C8 */ lw $v0, 0xc8($v0) +.L7F04670C: +/* 07B23C 7F04670C 10400003 */ beqz $v0, .L7F04671C +/* 07B240 7F046710 00000000 */ nop +/* 07B244 7F046714 5450FFF4 */ bnel $v0, $s0, .L7F0466E8 +/* 07B248 7F046718 804E00BC */ lb $t6, 0xbc($v0) +.L7F04671C: +/* 07B24C 7F04671C 50600004 */ beql $v1, $zero, .L7F046730 +/* 07B250 7F046720 960D009A */ lhu $t5, 0x9a($s0) +/* 07B254 7F046724 0FC15229 */ jal sub_GAME_7F0548A4 +/* 07B258 7F046728 24050001 */ li $a1, 1 +/* 07B25C 7F04672C 960D009A */ lhu $t5, 0x9a($s0) +.L7F046730: +/* 07B260 7F046730 24010008 */ li $at, 8 +/* 07B264 7F046734 15A1000B */ bne $t5, $at, .L7F046764 +/* 07B268 7F046738 00000000 */ nop +/* 07B26C 7F04673C 0FC15288 */ jal sub_GAME_7F054A20 +/* 07B270 7F046740 02002025 */ move $a0, $s0 +/* 07B274 7F046744 10400007 */ beqz $v0, .L7F046764 +/* 07B278 7F046748 00000000 */ nop +/* 07B27C 7F04674C 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 07B280 7F046750 02002025 */ move $a0, $s0 +/* 07B284 7F046754 10400003 */ beqz $v0, .L7F046764 +/* 07B288 7F046758 00000000 */ nop +/* 07B28C 7F04675C 0FC15667 */ jal sub_GAME_7F05599C +/* 07B290 7F046760 02602025 */ move $a0, $s3 +.L7F046764: +/* 07B294 7F046764 3C188005 */ lui $t8, %hi(global_timer) +/* 07B298 7F046768 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07B29C 7F04676C 8E0F00FC */ lw $t7, 0xfc($s0) +/* 07B2A0 7F046770 3C088005 */ lui $t0, %hi(clock_timer) +/* 07B2A4 7F046774 01F8082A */ slt $at, $t7, $t8 +/* 07B2A8 7F046778 14200004 */ bnez $at, .L7F04678C +/* 07B2AC 7F04677C 00000000 */ nop +/* 07B2B0 7F046780 8D088374 */ lw $t0, %lo(clock_timer)($t0) +/* 07B2B4 7F046784 550006AA */ bnezl $t0, .L7F048230 +/* 07B2B8 7F046788 92220003 */ lbu $v0, 3($s1) +.L7F04678C: +/* 07B2BC 7F04678C 0FC153ED */ jal sub_GAME_7F054FB4 +/* 07B2C0 7F046790 02002025 */ move $a0, $s0 +/* 07B2C4 7F046794 100006A6 */ b .L7F048230 +/* 07B2C8 7F046798 92220003 */ lbu $v0, 3($s1) +/* 07B2CC 7F04679C 24010006 */ li $at, 6 +.L7F0467A0: +/* 07B2D0 7F0467A0 54410130 */ bnel $v0, $at, .L7F046C64 +/* 07B2D4 7F0467A4 2401000D */ li $at, 13 +/* 07B2D8 7F0467A8 8E290008 */ lw $t1, 8($s1) +/* 07B2DC 7F0467AC 000958C0 */ sll $t3, $t1, 3 +/* 07B2E0 7F0467B0 0562012C */ bltzl $t3, .L7F046C64 +/* 07B2E4 7F0467B4 2401000D */ li $at, 13 +/* 07B2E8 7F0467B8 8E700004 */ lw $s0, 4($s3) +/* 07B2EC 7F0467BC 8E1900D4 */ lw $t9, 0xd4($s0) +/* 07B2F0 7F0467C0 53200004 */ beql $t9, $zero, .L7F0467D4 +/* 07B2F4 7F0467C4 C61200D0 */ lwc1 $f18, 0xd0($s0) +/* 07B2F8 7F0467C8 10000002 */ b .L7F0467D4 +/* 07B2FC 7F0467CC C61200CC */ lwc1 $f18, 0xcc($s0) +/* 07B300 7F0467D0 C61200D0 */ lwc1 $f18, 0xd0($s0) +.L7F0467D4: +/* 07B304 7F0467D4 0FC225E6 */ jal get_curplayer_positiondata +/* 07B308 7F0467D8 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B30C 7F0467DC AFA20514 */ sw $v0, 0x514($sp) +/* 07B310 7F0467E0 C6280058 */ lwc1 $f8, 0x58($s1) +/* 07B314 7F0467E4 C4440008 */ lwc1 $f4, 8($v0) +/* 07B318 7F0467E8 C60000E8 */ lwc1 $f0, 0xe8($s0) +/* 07B31C 7F0467EC C62A005C */ lwc1 $f10, 0x5c($s1) +/* 07B320 7F0467F0 46082301 */ sub.s $f12, $f4, $f8 +/* 07B324 7F0467F4 C446000C */ lwc1 $f6, 0xc($v0) +/* 07B328 7F0467F8 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B32C 7F0467FC 4600B03C */ c.lt.s $f22, $f0 +/* 07B330 7F046800 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B334 7F046804 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B338 7F046808 24120001 */ li $s2, 1 +/* 07B33C 7F04680C 460A3081 */ sub.s $f2, $f6, $f10 +/* 07B340 7F046810 4500000E */ bc1f .L7F04684C +/* 07B344 7F046814 46082381 */ sub.s $f14, $f4, $f8 +/* 07B348 7F046818 46000182 */ mul.s $f6, $f0, $f0 +/* 07B34C 7F04681C 00000000 */ nop +/* 07B350 7F046820 460C6282 */ mul.s $f10, $f12, $f12 +/* 07B354 7F046824 00000000 */ nop +/* 07B358 7F046828 46021102 */ mul.s $f4, $f2, $f2 +/* 07B35C 7F04682C 46045200 */ add.s $f8, $f10, $f4 +/* 07B360 7F046830 460E7282 */ mul.s $f10, $f14, $f14 +/* 07B364 7F046834 460A4100 */ add.s $f4, $f8, $f10 +/* 07B368 7F046838 4604303C */ c.lt.s $f6, $f4 +/* 07B36C 7F04683C 00000000 */ nop +/* 07B370 7F046840 45000002 */ bc1f .L7F04684C +/* 07B374 7F046844 00000000 */ nop +/* 07B378 7F046848 00009025 */ move $s2, $zero +.L7F04684C: +/* 07B37C 7F04684C 8E2A0008 */ lw $t2, 8($s1) +/* 07B380 7F046850 000A6080 */ sll $t4, $t2, 2 +/* 07B384 7F046854 05810002 */ bgez $t4, .L7F046860 +/* 07B388 7F046858 00000000 */ nop +/* 07B38C 7F04685C 00009025 */ move $s2, $zero +.L7F046860: +/* 07B390 7F046860 1240003A */ beqz $s2, .L7F04694C +/* 07B394 7F046864 00000000 */ nop +/* 07B398 7F046868 0FC16A8C */ jal atan2f +/* 07B39C 7F04686C E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B3A0 7F046870 C60200C8 */ lwc1 $f2, 0xc8($s0) +/* 07B3A4 7F046874 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B3A8 7F046878 3C018005 */ lui $at, %hi(D_80052ACC) +/* 07B3AC 7F04687C 4616103C */ c.lt.s $f2, $f22 +/* 07B3B0 7F046880 00000000 */ nop +/* 07B3B4 7F046884 45000005 */ bc1f .L7F04689C +/* 07B3B8 7F046888 00000000 */ nop +/* 07B3BC 7F04688C 3C018005 */ lui $at, %hi(D_80052AC8) +/* 07B3C0 7F046890 C4342AC8 */ lwc1 $f20, %lo(D_80052AC8)($at) +/* 07B3C4 7F046894 10000007 */ b .L7F0468B4 +/* 07B3C8 7F046898 46141080 */ add.s $f2, $f2, $f20 +.L7F04689C: +/* 07B3CC 7F04689C C4342ACC */ lwc1 $f20, %lo(D_80052ACC)($at) +/* 07B3D0 7F0468A0 4602A03E */ c.le.s $f20, $f2 +/* 07B3D4 7F0468A4 00000000 */ nop +/* 07B3D8 7F0468A8 45020003 */ bc1fl .L7F0468B8 +/* 07B3DC 7F0468AC C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 07B3E0 7F0468B0 46141081 */ sub.s $f2, $f2, $f20 +.L7F0468B4: +/* 07B3E4 7F0468B4 C60800C4 */ lwc1 $f8, 0xc4($s0) +.L7F0468B8: +/* 07B3E8 7F0468B8 3C018005 */ lui $at, %hi(D_80052AD0) +/* 07B3EC 7F0468BC 46081080 */ add.s $f2, $f2, $f8 +/* 07B3F0 7F0468C0 4602A03E */ c.le.s $f20, $f2 +/* 07B3F4 7F0468C4 00000000 */ nop +/* 07B3F8 7F0468C8 45020003 */ bc1fl .L7F0468D8 +/* 07B3FC 7F0468CC 4602003C */ c.lt.s $f0, $f2 +/* 07B400 7F0468D0 46141081 */ sub.s $f2, $f2, $f20 +/* 07B404 7F0468D4 4602003C */ c.lt.s $f0, $f2 +.L7F0468D8: +/* 07B408 7F0468D8 46020381 */ sub.s $f14, $f0, $f2 +/* 07B40C 7F0468DC 45000002 */ bc1f .L7F0468E8 +/* 07B410 7F0468E0 46007306 */ mov.s $f12, $f14 +/* 07B414 7F0468E4 46147300 */ add.s $f12, $f14, $f20 +.L7F0468E8: +/* 07B418 7F0468E8 C4202AD0 */ lwc1 $f0, %lo(D_80052AD0)($at) +/* 07B41C 7F0468EC 3C018005 */ lui $at, %hi(D_80052AD4) +/* 07B420 7F0468F0 46006301 */ sub.s $f12, $f12, $f0 +/* 07B424 7F0468F4 4616603C */ c.lt.s $f12, $f22 +/* 07B428 7F0468F8 00000000 */ nop +/* 07B42C 7F0468FC 45020003 */ bc1fl .L7F04690C +/* 07B430 7F046900 460C003C */ c.lt.s $f0, $f12 +/* 07B434 7F046904 46146300 */ add.s $f12, $f12, $f20 +/* 07B438 7F046908 460C003C */ c.lt.s $f0, $f12 +.L7F04690C: +/* 07B43C 7F04690C 00000000 */ nop +/* 07B440 7F046910 45000002 */ bc1f .L7F04691C +/* 07B444 7F046914 00000000 */ nop +/* 07B448 7F046918 46146301 */ sub.s $f12, $f12, $f20 +.L7F04691C: +/* 07B44C 7F04691C C42A2AD4 */ lwc1 $f10, %lo(D_80052AD4)($at) +/* 07B450 7F046920 3C018005 */ lui $at, %hi(D_80052AD8) +/* 07B454 7F046924 460C503C */ c.lt.s $f10, $f12 +/* 07B458 7F046928 00000000 */ nop +/* 07B45C 7F04692C 45030007 */ bc1tl .L7F04694C +/* 07B460 7F046930 00009025 */ move $s2, $zero +/* 07B464 7F046934 C4262AD8 */ lwc1 $f6, %lo(D_80052AD8)($at) +/* 07B468 7F046938 4606603C */ c.lt.s $f12, $f6 +/* 07B46C 7F04693C 00000000 */ nop +/* 07B470 7F046940 45000002 */ bc1f .L7F04694C +/* 07B474 7F046944 00000000 */ nop +/* 07B478 7F046948 00009025 */ move $s2, $zero +.L7F04694C: +/* 07B47C 7F04694C 12400034 */ beqz $s2, .L7F046A20 +/* 07B480 7F046950 00002825 */ move $a1, $zero +/* 07B484 7F046954 8E6E0014 */ lw $t6, 0x14($s3) +/* 07B488 7F046958 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B48C 7F04695C 8FA40514 */ lw $a0, 0x514($sp) +/* 07B490 7F046960 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B494 7F046964 AFAE04F0 */ sw $t6, 0x4f0($sp) +/* 07B498 7F046968 8FA20514 */ lw $v0, 0x514($sp) +/* 07B49C 7F04696C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07B4A0 7F046970 8E650008 */ lw $a1, 8($s3) +/* 07B4A4 7F046974 C4440010 */ lwc1 $f4, 0x10($v0) +/* 07B4A8 7F046978 8E660010 */ lw $a2, 0x10($s3) +/* 07B4AC 7F04697C 8C470008 */ lw $a3, 8($v0) +/* 07B4B0 7F046980 44814000 */ mtc1 $at, $f8 +/* 07B4B4 7F046984 44815000 */ mtc1 $at, $f10 +/* 07B4B8 7F046988 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B4BC 7F04698C 44813000 */ mtc1 $at, $f6 +/* 07B4C0 7F046990 240D001B */ li $t5, 27 +/* 07B4C4 7F046994 AFAD0014 */ sw $t5, 0x14($sp) +/* 07B4C8 7F046998 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07B4CC 7F04699C 27A404F0 */ addiu $a0, $sp, 0x4f0 +/* 07B4D0 7F0469A0 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07B4D4 7F0469A4 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07B4D8 7F0469A8 E7AA001C */ swc1 $f10, 0x1c($sp) +/* 07B4DC 7F0469AC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07B4E0 7F0469B0 E7A60024 */ swc1 $f6, 0x24($sp) +/* 07B4E4 7F0469B4 10400015 */ beqz $v0, .L7F046A0C +/* 07B4E8 7F0469B8 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B4EC 7F0469BC 3C188005 */ lui $t8, %hi(clock_timer) +/* 07B4F0 7F0469C0 8F188374 */ lw $t8, %lo(clock_timer)($t8) +/* 07B4F4 7F0469C4 8E0F00E0 */ lw $t7, 0xe0($s0) +/* 07B4F8 7F0469C8 3C014396 */ li $at, 0x43960000 # 300.000000 +/* 07B4FC 7F0469CC 44812000 */ mtc1 $at, $f4 +/* 07B500 7F0469D0 01F84021 */ addu $t0, $t7, $t8 +/* 07B504 7F0469D4 AE0800E0 */ sw $t0, 0xe0($s0) +/* 07B508 7F0469D8 3C018003 */ lui $at, %hi(D_80030B14) +/* 07B50C 7F0469DC C4280B14 */ lwc1 $f8, %lo(D_80030B14)($at) +/* 07B510 7F0469E0 46082282 */ mul.s $f10, $f4, $f8 +/* 07B514 7F0469E4 4600518D */ trunc.w.s $f6, $f10 +/* 07B518 7F0469E8 44193000 */ mfc1 $t9, $f6 +/* 07B51C 7F0469EC 00000000 */ nop +/* 07B520 7F0469F0 0119082A */ slt $at, $t0, $t9 +/* 07B524 7F0469F4 54200006 */ bnezl $at, .L7F046A10 +/* 07B528 7F0469F8 8FA40514 */ lw $a0, 0x514($sp) +/* 07B52C 7F0469FC 0FC15772 */ jal start_alarm +/* 07B530 7F046A00 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B534 7F046A04 C7B20518 */ lwc1 $f18, 0x518($sp) +/* 07B538 7F046A08 AE0000E0 */ sw $zero, 0xe0($s0) +.L7F046A0C: +/* 07B53C 7F046A0C 8FA40514 */ lw $a0, 0x514($sp) +.L7F046A10: +/* 07B540 7F046A10 24050001 */ li $a1, 1 +/* 07B544 7F046A14 0FC2280F */ jal sub_GAME_7F08A03C +/* 07B548 7F046A18 E7B20518 */ swc1 $f18, 0x518($sp) +/* 07B54C 7F046A1C C7B20518 */ lwc1 $f18, 0x518($sp) +.L7F046A20: +/* 07B550 7F046A20 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B554 7F046A24 4612703C */ c.lt.s $f14, $f18 +/* 07B558 7F046A28 00000000 */ nop +/* 07B55C 7F046A2C 45020047 */ bc1fl .L7F046B4C +/* 07B560 7F046A30 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B564 7F046A34 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B568 7F046A38 3C018005 */ lui $at, %hi(D_80052AE0) +/* 07B56C 7F046A3C C4302AE0 */ lwc1 $f16, %lo(D_80052AE0)($at) +/* 07B570 7F046A40 46000102 */ mul.s $f4, $f0, $f0 +/* 07B574 7F046A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B578 7F046A48 44814000 */ mtc1 $at, $f8 +/* 07B57C 7F046A4C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B580 7F046A50 46082282 */ mul.s $f10, $f4, $f8 +/* 07B584 7F046A54 46105083 */ div.s $f2, $f10, $f16 +/* 07B588 7F046A58 46029181 */ sub.s $f6, $f18, $f2 +/* 07B58C 7F046A5C 460E303E */ c.le.s $f6, $f14 +/* 07B590 7F046A60 00000000 */ nop +/* 07B594 7F046A64 4502000F */ bc1fl .L7F046AA4 +/* 07B598 7F046A68 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B59C 7F046A6C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B5A0 7F046A70 46048202 */ mul.s $f8, $f16, $f4 +/* 07B5A4 7F046A74 46080281 */ sub.s $f10, $f0, $f8 +/* 07B5A8 7F046A78 E60A00D8 */ swc1 $f10, 0xd8($s0) +/* 07B5AC 7F046A7C C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B5B0 7F046A80 4610003C */ c.lt.s $f0, $f16 +/* 07B5B4 7F046A84 00000000 */ nop +/* 07B5B8 7F046A88 45000003 */ bc1f .L7F046A98 +/* 07B5BC 7F046A8C 00000000 */ nop +/* 07B5C0 7F046A90 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B5C4 7F046A94 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046A98: +/* 07B5C8 7F046A98 1000001D */ b .L7F046B10 +/* 07B5CC 7F046A9C C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B5D0 7F046AA0 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046AA4: +/* 07B5D4 7F046AA4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B5D8 7F046AA8 460C003C */ c.lt.s $f0, $f12 +/* 07B5DC 7F046AAC 00000000 */ nop +/* 07B5E0 7F046AB0 45000017 */ bc1f .L7F046B10 +/* 07B5E4 7F046AB4 00000000 */ nop +/* 07B5E8 7F046AB8 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 07B5EC 7F046ABC 46068102 */ mul.s $f4, $f16, $f6 +/* 07B5F0 7F046AC0 46040080 */ add.s $f2, $f0, $f4 +/* 07B5F4 7F046AC4 4602603C */ c.lt.s $f12, $f2 +/* 07B5F8 7F046AC8 00000000 */ nop +/* 07B5FC 7F046ACC 45000002 */ bc1f .L7F046AD8 +/* 07B600 7F046AD0 00000000 */ nop +/* 07B604 7F046AD4 46006086 */ mov.s $f2, $f12 +.L7F046AD8: +/* 07B608 7F046AD8 46021202 */ mul.s $f8, $f2, $f2 +/* 07B60C 7F046ADC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B610 7F046AE0 44815000 */ mtc1 $at, $f10 +/* 07B614 7F046AE4 00000000 */ nop +/* 07B618 7F046AE8 460A4182 */ mul.s $f6, $f8, $f10 +/* 07B61C 7F046AEC 46103103 */ div.s $f4, $f6, $f16 +/* 07B620 7F046AF0 46049201 */ sub.s $f8, $f18, $f4 +/* 07B624 7F046AF4 4608703C */ c.lt.s $f14, $f8 +/* 07B628 7F046AF8 00000000 */ nop +/* 07B62C 7F046AFC 45000004 */ bc1f .L7F046B10 +/* 07B630 7F046B00 00000000 */ nop +/* 07B634 7F046B04 E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B638 7F046B08 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B63C 7F046B0C C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046B10: +/* 07B640 7F046B10 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B644 7F046B14 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B648 7F046B18 460A0182 */ mul.s $f6, $f0, $f10 +/* 07B64C 7F046B1C 46067100 */ add.s $f4, $f14, $f6 +/* 07B650 7F046B20 E60400C8 */ swc1 $f4, 0xc8($s0) +/* 07B654 7F046B24 C60800C8 */ lwc1 $f8, 0xc8($s0) +/* 07B658 7F046B28 4608903E */ c.le.s $f18, $f8 +/* 07B65C 7F046B2C 00000000 */ nop +/* 07B660 7F046B30 450205BF */ bc1fl .L7F048230 +/* 07B664 7F046B34 92220003 */ lbu $v0, 3($s1) +/* 07B668 7F046B38 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B66C 7F046B3C E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B670 7F046B40 100005BA */ b .L7F04822C +/* 07B674 7F046B44 AE0000D4 */ sw $zero, 0xd4($s0) +/* 07B678 7F046B48 C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046B4C: +/* 07B67C 7F046B4C 3C018005 */ lui $at, %hi(D_80052AE4) +/* 07B680 7F046B50 C4302AE4 */ lwc1 $f16, %lo(D_80052AE4)($at) +/* 07B684 7F046B54 46000282 */ mul.s $f10, $f0, $f0 +/* 07B688 7F046B58 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B68C 7F046B5C 44813000 */ mtc1 $at, $f6 +/* 07B690 7F046B60 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B694 7F046B64 240A0001 */ li $t2, 1 +/* 07B698 7F046B68 46065102 */ mul.s $f4, $f10, $f6 +/* 07B69C 7F046B6C 46102083 */ div.s $f2, $f4, $f16 +/* 07B6A0 7F046B70 46029200 */ add.s $f8, $f18, $f2 +/* 07B6A4 7F046B74 4608703E */ c.le.s $f14, $f8 +/* 07B6A8 7F046B78 00000000 */ nop +/* 07B6AC 7F046B7C 4502000F */ bc1fl .L7F046BBC +/* 07B6B0 7F046B80 C60C00DC */ lwc1 $f12, 0xdc($s0) +/* 07B6B4 7F046B84 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07B6B8 7F046B88 460A8182 */ mul.s $f6, $f16, $f10 +/* 07B6BC 7F046B8C 46060101 */ sub.s $f4, $f0, $f6 +/* 07B6C0 7F046B90 E60400D8 */ swc1 $f4, 0xd8($s0) +/* 07B6C4 7F046B94 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B6C8 7F046B98 4610003C */ c.lt.s $f0, $f16 +/* 07B6CC 7F046B9C 00000000 */ nop +/* 07B6D0 7F046BA0 45000003 */ bc1f .L7F046BB0 +/* 07B6D4 7F046BA4 00000000 */ nop +/* 07B6D8 7F046BA8 E61000D8 */ swc1 $f16, 0xd8($s0) +/* 07B6DC 7F046BAC C60000D8 */ lwc1 $f0, 0xd8($s0) +.L7F046BB0: +/* 07B6E0 7F046BB0 1000001D */ b .L7F046C28 +/* 07B6E4 7F046BB4 C60E00C8 */ lwc1 $f14, 0xc8($s0) +/* 07B6E8 7F046BB8 C60C00DC */ lwc1 $f12, 0xdc($s0) +.L7F046BBC: +/* 07B6EC 7F046BBC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B6F0 7F046BC0 460C003C */ c.lt.s $f0, $f12 +/* 07B6F4 7F046BC4 00000000 */ nop +/* 07B6F8 7F046BC8 45000017 */ bc1f .L7F046C28 +/* 07B6FC 7F046BCC 00000000 */ nop +/* 07B700 7F046BD0 C4288378 */ lwc1 $f8, %lo(global_timer_delta)($at) +/* 07B704 7F046BD4 46088282 */ mul.s $f10, $f16, $f8 +/* 07B708 7F046BD8 460A0080 */ add.s $f2, $f0, $f10 +/* 07B70C 7F046BDC 4602603C */ c.lt.s $f12, $f2 +/* 07B710 7F046BE0 00000000 */ nop +/* 07B714 7F046BE4 45000002 */ bc1f .L7F046BF0 +/* 07B718 7F046BE8 00000000 */ nop +/* 07B71C 7F046BEC 46006086 */ mov.s $f2, $f12 +.L7F046BF0: +/* 07B720 7F046BF0 46021182 */ mul.s $f6, $f2, $f2 +/* 07B724 7F046BF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07B728 7F046BF8 44812000 */ mtc1 $at, $f4 +/* 07B72C 7F046BFC 00000000 */ nop +/* 07B730 7F046C00 46043202 */ mul.s $f8, $f6, $f4 +/* 07B734 7F046C04 46104283 */ div.s $f10, $f8, $f16 +/* 07B738 7F046C08 460A9180 */ add.s $f6, $f18, $f10 +/* 07B73C 7F046C0C 460E303C */ c.lt.s $f6, $f14 +/* 07B740 7F046C10 00000000 */ nop +/* 07B744 7F046C14 45000004 */ bc1f .L7F046C28 +/* 07B748 7F046C18 00000000 */ nop +/* 07B74C 7F046C1C E60200D8 */ swc1 $f2, 0xd8($s0) +/* 07B750 7F046C20 C60000D8 */ lwc1 $f0, 0xd8($s0) +/* 07B754 7F046C24 C60E00C8 */ lwc1 $f14, 0xc8($s0) +.L7F046C28: +/* 07B758 7F046C28 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07B75C 7F046C2C C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07B760 7F046C30 46040202 */ mul.s $f8, $f0, $f4 +/* 07B764 7F046C34 46087281 */ sub.s $f10, $f14, $f8 +/* 07B768 7F046C38 E60A00C8 */ swc1 $f10, 0xc8($s0) +/* 07B76C 7F046C3C C60600C8 */ lwc1 $f6, 0xc8($s0) +/* 07B770 7F046C40 4612303E */ c.le.s $f6, $f18 +/* 07B774 7F046C44 00000000 */ nop +/* 07B778 7F046C48 45020579 */ bc1fl .L7F048230 +/* 07B77C 7F046C4C 92220003 */ lbu $v0, 3($s1) +/* 07B780 7F046C50 E61200C8 */ swc1 $f18, 0xc8($s0) +/* 07B784 7F046C54 E61600D8 */ swc1 $f22, 0xd8($s0) +/* 07B788 7F046C58 10000574 */ b .L7F04822C +/* 07B78C 7F046C5C AE0A00D4 */ sw $t2, 0xd4($s0) +/* 07B790 7F046C60 2401000D */ li $at, 13 +.L7F046C64: +/* 07B794 7F046C64 5441023F */ bnel $v0, $at, .L7F047564 +/* 07B798 7F046C68 24010027 */ li $at, 39 +/* 07B79C 7F046C6C 8E2C0008 */ lw $t4, 8($s1) +/* 07B7A0 7F046C70 000C70C0 */ sll $t6, $t4, 3 +/* 07B7A4 7F046C74 05C2023B */ bltzl $t6, .L7F047564 +/* 07B7A8 7F046C78 24010027 */ li $at, 39 +/* 07B7AC 7F046C7C 0FC225E6 */ jal get_curplayer_positiondata +/* 07B7B0 7F046C80 8E700004 */ lw $s0, 4($s3) +/* 07B7B4 7F046C84 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07B7B8 7F046C88 AFA004A8 */ sw $zero, 0x4a8($sp) +/* 07B7BC 7F046C8C AFA004A4 */ sw $zero, 0x4a4($sp) +/* 07B7C0 7F046C90 8E23000C */ lw $v1, 0xc($s1) +/* 07B7C4 7F046C94 00409025 */ move $s2, $v0 +/* 07B7C8 7F046C98 00036800 */ sll $t5, $v1, 0 +/* 07B7CC 7F046C9C 05A10056 */ bgez $t5, .L7F046DF8 +/* 07B7D0 7F046CA0 00037840 */ sll $t7, $v1, 1 +/* 07B7D4 7F046CA4 05E30008 */ bgezl $t7, .L7F046CC8 +/* 07B7D8 7F046CA8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7DC 7F046CAC C6080090 */ lwc1 $f8, 0x90($s0) +/* 07B7E0 7F046CB0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B7E4 7F046CB4 E6080084 */ swc1 $f8, 0x84($s0) +/* 07B7E8 7F046CB8 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07B7EC 7F046CBC 10000036 */ b .L7F046D98 +/* 07B7F0 7F046CC0 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B7F4 7F046CC4 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046CC8: +/* 07B7F8 7F046CC8 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07B7FC 7F046CCC 460A1032 */ c.eq.s $f2, $f10 +/* 07B800 7F046CD0 00000000 */ nop +/* 07B804 7F046CD4 45000030 */ bc1f .L7F046D98 +/* 07B808 7F046CD8 00000000 */ nop +/* 07B80C 7F046CDC C6060098 */ lwc1 $f6, 0x98($s0) +/* 07B810 7F046CE0 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07B814 7F046CE4 46043032 */ c.eq.s $f6, $f4 +/* 07B818 7F046CE8 00000000 */ nop +/* 07B81C 7F046CEC 4500002A */ bc1f .L7F046D98 +/* 07B820 7F046CF0 00000000 */ nop +/* 07B824 7F046CF4 0C002914 */ jal randomGetNext +/* 07B828 7F046CF8 00000000 */ nop +/* 07B82C 7F046CFC 44824000 */ mtc1 $v0, $f8 +/* 07B830 7F046D00 3C018005 */ lui $at, %hi(D_80052AE8) +/* 07B834 7F046D04 C4342AE8 */ lwc1 $f20, %lo(D_80052AE8)($at) +/* 07B838 7F046D08 04410005 */ bgez $v0, .L7F046D20 +/* 07B83C 7F046D0C 468042A0 */ cvt.s.w $f10, $f8 +/* 07B840 7F046D10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B844 7F046D14 44813000 */ mtc1 $at, $f6 +/* 07B848 7F046D18 00000000 */ nop +/* 07B84C 7F046D1C 46065280 */ add.s $f10, $f10, $f6 +.L7F046D20: +/* 07B850 7F046D20 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B854 7F046D24 44812000 */ mtc1 $at, $f4 +/* 07B858 7F046D28 3C01421C */ li $at, 0x421C0000 # 39.000000 +/* 07B85C 7F046D2C 44813000 */ mtc1 $at, $f6 +/* 07B860 7F046D30 46045202 */ mul.s $f8, $f10, $f4 +/* 07B864 7F046D34 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07B868 7F046D38 44812000 */ mtc1 $at, $f4 +/* 07B86C 7F046D3C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07B870 7F046D40 46064282 */ mul.s $f10, $f8, $f6 +/* 07B874 7F046D44 46045200 */ add.s $f8, $f10, $f4 +/* 07B878 7F046D48 44815000 */ mtc1 $at, $f10 +/* 07B87C 7F046D4C 46144182 */ mul.s $f6, $f8, $f20 +/* 07B880 7F046D50 460A3103 */ div.s $f4, $f6, $f10 +/* 07B884 7F046D54 0C002914 */ jal randomGetNext +/* 07B888 7F046D58 E6040098 */ swc1 $f4, 0x98($s0) +/* 07B88C 7F046D5C 44824000 */ mtc1 $v0, $f8 +/* 07B890 7F046D60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07B894 7F046D64 04410004 */ bgez $v0, .L7F046D78 +/* 07B898 7F046D68 468041A0 */ cvt.s.w $f6, $f8 +/* 07B89C 7F046D6C 44815000 */ mtc1 $at, $f10 +/* 07B8A0 7F046D70 00000000 */ nop +/* 07B8A4 7F046D74 460A3180 */ add.s $f6, $f6, $f10 +.L7F046D78: +/* 07B8A8 7F046D78 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07B8AC 7F046D7C 44812000 */ mtc1 $at, $f4 +/* 07B8B0 7F046D80 00000000 */ nop +/* 07B8B4 7F046D84 46043202 */ mul.s $f8, $f6, $f4 +/* 07B8B8 7F046D88 00000000 */ nop +/* 07B8BC 7F046D8C 46144282 */ mul.s $f10, $f8, $f20 +/* 07B8C0 7F046D90 E60A0084 */ swc1 $f10, 0x84($s0) +/* 07B8C4 7F046D94 C6020084 */ lwc1 $f2, 0x84($s0) +.L7F046D98: +/* 07B8C8 7F046D98 3C018005 */ lui $at, %hi(D_80052AEC) +/* 07B8CC 7F046D9C C4202AEC */ lwc1 $f0, %lo(D_80052AEC)($at) +/* 07B8D0 7F046DA0 3C018005 */ lui $at, %hi(D_80052AF4) +/* 07B8D4 7F046DA4 C4262AF4 */ lwc1 $f6, %lo(D_80052AF4)($at) +/* 07B8D8 7F046DA8 44051000 */ mfc1 $a1, $f2 +/* 07B8DC 7F046DAC 44070000 */ mfc1 $a3, $f0 +/* 07B8E0 7F046DB0 26040090 */ addiu $a0, $s0, 0x90 +/* 07B8E4 7F046DB4 26060094 */ addiu $a2, $s0, 0x94 +/* 07B8E8 7F046DB8 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B8EC 7F046DBC 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B8F0 7F046DC0 E7A60014 */ swc1 $f6, 0x14($sp) +/* 07B8F4 7F046DC4 3C018005 */ lui $at, %hi(D_80052AF8) +/* 07B8F8 7F046DC8 C4202AF8 */ lwc1 $f0, %lo(D_80052AF8)($at) +/* 07B8FC 7F046DCC 3C018005 */ lui $at, %hi(D_80052AFC) +/* 07B900 7F046DD0 C4242AFC */ lwc1 $f4, %lo(D_80052AFC)($at) +/* 07B904 7F046DD4 8E050098 */ lw $a1, 0x98($s0) +/* 07B908 7F046DD8 44070000 */ mfc1 $a3, $f0 +/* 07B90C 7F046DDC 2604009C */ addiu $a0, $s0, 0x9c +/* 07B910 7F046DE0 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07B914 7F046DE4 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07B918 7F046DE8 0FC10C43 */ jal sub_GAME_7F04310C +/* 07B91C 7F046DEC E7A40014 */ swc1 $f4, 0x14($sp) +/* 07B920 7F046DF0 1000050F */ b .L7F048230 +/* 07B924 7F046DF4 92220003 */ lbu $v0, 3($s1) +.L7F046DF8: +/* 07B928 7F046DF8 C6480008 */ lwc1 $f8, 8($s2) +/* 07B92C 7F046DFC C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07B930 7F046E00 C646000C */ lwc1 $f6, 0xc($s2) +/* 07B934 7F046E04 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07B938 7F046E08 460A4001 */ sub.s $f0, $f8, $f10 +/* 07B93C 7F046E0C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 07B940 7F046E10 44815000 */ mtc1 $at, $f10 +/* 07B944 7F046E14 46043201 */ sub.s $f8, $f6, $f4 +/* 07B948 7F046E18 460A4181 */ sub.s $f6, $f8, $f10 +/* 07B94C 7F046E1C 46000282 */ mul.s $f10, $f0, $f0 +/* 07B950 7F046E20 E7A604C0 */ swc1 $f6, 0x4c0($sp) +/* 07B954 7F046E24 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07B958 7F046E28 C6440010 */ lwc1 $f4, 0x10($s2) +/* 07B95C 7F046E2C E7A004C4 */ swc1 $f0, 0x4c4($sp) +/* 07B960 7F046E30 46082081 */ sub.s $f2, $f4, $f8 +/* 07B964 7F046E34 46021182 */ mul.s $f6, $f2, $f2 +/* 07B968 7F046E38 E7A204BC */ swc1 $f2, 0x4bc($sp) +/* 07B96C 7F046E3C 46065500 */ add.s $f20, $f10, $f6 +/* 07B970 7F046E40 E7B404B8 */ swc1 $f20, 0x4b8($sp) +/* 07B974 7F046E44 0C007DF8 */ jal sqrtf +/* 07B978 7F046E48 4600A306 */ mov.s $f12, $f20 +/* 07B97C 7F046E4C E7A004B0 */ swc1 $f0, 0x4b0($sp) +/* 07B980 7F046E50 8E380008 */ lw $t8, 8($s1) +/* 07B984 7F046E54 46000086 */ mov.s $f2, $f0 +/* 07B988 7F046E58 00184100 */ sll $t0, $t8, 4 +/* 07B98C 7F046E5C 05030008 */ bgezl $t0, .L7F046E80 +/* 07B990 7F046E60 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07B994 7F046E64 C7A004C0 */ lwc1 $f0, 0x4c0($sp) +/* 07B998 7F046E68 46000102 */ mul.s $f4, $f0, $f0 +/* 07B99C 7F046E6C 4604A300 */ add.s $f12, $f20, $f4 +/* 07B9A0 7F046E70 0C007DF8 */ jal sqrtf +/* 07B9A4 7F046E74 E7AC04B8 */ swc1 $f12, 0x4b8($sp) +/* 07B9A8 7F046E78 46000086 */ mov.s $f2, $f0 +/* 07B9AC 7F046E7C C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +.L7F046E80: +/* 07B9B0 7F046E80 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07B9B4 7F046E84 E7A204B4 */ swc1 $f2, 0x4b4($sp) +/* 07B9B8 7F046E88 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07B9BC 7F046E8C C6080098 */ lwc1 $f8, 0x98($s0) +/* 07B9C0 7F046E90 C6100084 */ lwc1 $f16, 0x84($s0) +/* 07B9C4 7F046E94 C7A204B4 */ lwc1 $f2, 0x4b4($sp) +/* 07B9C8 7F046E98 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07B9CC 7F046E9C C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 07B9D0 7F046EA0 460A103E */ c.le.s $f2, $f10 +/* 07B9D4 7F046EA4 00000000 */ nop +/* 07B9D8 7F046EA8 45020096 */ bc1fl .L7F047104 +/* 07B9DC 7F046EAC 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07B9E0 7F046EB0 C7AC04C4 */ lwc1 $f12, 0x4c4($sp) +/* 07B9E4 7F046EB4 C7AE04BC */ lwc1 $f14, 0x4bc($sp) +/* 07B9E8 7F046EB8 0FC16A8C */ jal atan2f +/* 07B9EC 7F046EBC E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07B9F0 7F046EC0 E7A0049C */ swc1 $f0, 0x49c($sp) +/* 07B9F4 7F046EC4 C7AC04C0 */ lwc1 $f12, 0x4c0($sp) +/* 07B9F8 7F046EC8 0FC16A8C */ jal atan2f +/* 07B9FC 7F046ECC C7AE04B0 */ lwc1 $f14, 0x4b0($sp) +/* 07BA00 7F046ED0 E7A00498 */ swc1 $f0, 0x498($sp) +/* 07BA04 7F046ED4 8E220008 */ lw $v0, 8($s1) +/* 07BA08 7F046ED8 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BA0C 7F046EDC 24190001 */ li $t9, 1 +/* 07BA10 7F046EE0 00025840 */ sll $t3, $v0, 1 +/* 07BA14 7F046EE4 05600003 */ bltz $t3, .L7F046EF4 +/* 07BA18 7F046EE8 00024880 */ sll $t1, $v0, 2 +/* 07BA1C 7F046EEC 05210005 */ bgez $t1, .L7F046F04 +/* 07BA20 7F046EF0 C7A6049C */ lwc1 $f6, 0x49c($sp) +.L7F046EF4: +/* 07BA24 7F046EF4 3C018005 */ lui $at, %hi(D_80052B00) +/* 07BA28 7F046EF8 C4342B00 */ lwc1 $f20, %lo(D_80052B00)($at) +/* 07BA2C 7F046EFC 10000027 */ b .L7F046F9C +/* 07BA30 7F046F00 AFB904AC */ sw $t9, 0x4ac($sp) +.L7F046F04: +/* 07BA34 7F046F04 C6040090 */ lwc1 $f4, 0x90($s0) +/* 07BA38 7F046F08 3C018005 */ lui $at, %hi(D_80052B04) +/* 07BA3C 7F046F0C 46043301 */ sub.s $f12, $f6, $f4 +/* 07BA40 7F046F10 4616603C */ c.lt.s $f12, $f22 +/* 07BA44 7F046F14 00000000 */ nop +/* 07BA48 7F046F18 45000003 */ bc1f .L7F046F28 +/* 07BA4C 7F046F1C 00000000 */ nop +/* 07BA50 7F046F20 C4342B04 */ lwc1 $f20, %lo(D_80052B04)($at) +/* 07BA54 7F046F24 46146300 */ add.s $f12, $f12, $f20 +.L7F046F28: +/* 07BA58 7F046F28 3C018005 */ lui $at, %hi(D_80052B08) +/* 07BA5C 7F046F2C C4342B08 */ lwc1 $f20, %lo(D_80052B08)($at) +/* 07BA60 7F046F30 3C018005 */ lui $at, %hi(D_80052B0C) +/* 07BA64 7F046F34 C4282B0C */ lwc1 $f8, %lo(D_80052B0C)($at) +/* 07BA68 7F046F38 3C018005 */ lui $at, %hi(D_80052B10) +/* 07BA6C 7F046F3C 460C403C */ c.lt.s $f8, $f12 +/* 07BA70 7F046F40 00000000 */ nop +/* 07BA74 7F046F44 45020003 */ bc1fl .L7F046F54 +/* 07BA78 7F046F48 C60A009C */ lwc1 $f10, 0x9c($s0) +/* 07BA7C 7F046F4C 46146301 */ sub.s $f12, $f12, $f20 +/* 07BA80 7F046F50 C60A009C */ lwc1 $f10, 0x9c($s0) +.L7F046F54: +/* 07BA84 7F046F54 460A0081 */ sub.s $f2, $f0, $f10 +/* 07BA88 7F046F58 4616103C */ c.lt.s $f2, $f22 +/* 07BA8C 7F046F5C 00000000 */ nop +/* 07BA90 7F046F60 45000001 */ bc1f .L7F046F68 +/* 07BA94 7F046F64 00000000 */ nop +.L7F046F68: +/* 07BA98 7F046F68 C4262B10 */ lwc1 $f6, %lo(D_80052B10)($at) +/* 07BA9C 7F046F6C 3C018005 */ lui $at, %hi(D_80052B14) +/* 07BAA0 7F046F70 4606603C */ c.lt.s $f12, $f6 +/* 07BAA4 7F046F74 00000000 */ nop +/* 07BAA8 7F046F78 45020009 */ bc1fl .L7F046FA0 +/* 07BAAC 7F046F7C 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAB0 7F046F80 C4242B14 */ lwc1 $f4, %lo(D_80052B14)($at) +/* 07BAB4 7F046F84 240A0001 */ li $t2, 1 +/* 07BAB8 7F046F88 460C203C */ c.lt.s $f4, $f12 +/* 07BABC 7F046F8C 00000000 */ nop +/* 07BAC0 7F046F90 45020003 */ bc1fl .L7F046FA0 +/* 07BAC4 7F046F94 8FAC04AC */ lw $t4, 0x4ac($sp) +/* 07BAC8 7F046F98 AFAA04AC */ sw $t2, 0x4ac($sp) +.L7F046F9C: +/* 07BACC 7F046F9C 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F046FA0: +/* 07BAD0 7F046FA0 C7A8049C */ lwc1 $f8, 0x49c($sp) +/* 07BAD4 7F046FA4 02402025 */ move $a0, $s2 +/* 07BAD8 7F046FA8 11800055 */ beqz $t4, .L7F047100 +/* 07BADC 7F046FAC 00002825 */ move $a1, $zero +/* 07BAE0 7F046FB0 C60A0084 */ lwc1 $f10, 0x84($s0) +/* 07BAE4 7F046FB4 3C018005 */ lui $at, %hi(D_80052B18) +/* 07BAE8 7F046FB8 C4262B18 */ lwc1 $f6, %lo(D_80052B18)($at) +/* 07BAEC 7F046FBC 460A4001 */ sub.s $f0, $f8, $f10 +/* 07BAF0 7F046FC0 8E6E0014 */ lw $t6, 0x14($s3) +/* 07BAF4 7F046FC4 3C018005 */ lui $at, %hi(D_80052B1C) +/* 07BAF8 7F046FC8 4606003C */ c.lt.s $f0, $f6 +/* 07BAFC 7F046FCC AFAE0490 */ sw $t6, 0x490($sp) +/* 07BB00 7F046FD0 45000003 */ bc1f .L7F046FE0 +/* 07BB04 7F046FD4 00000000 */ nop +/* 07BB08 7F046FD8 10000007 */ b .L7F046FF8 +/* 07BB0C 7F046FDC 46140000 */ add.s $f0, $f0, $f20 +.L7F046FE0: +/* 07BB10 7F046FE0 C4242B1C */ lwc1 $f4, %lo(D_80052B1C)($at) +/* 07BB14 7F046FE4 4600203E */ c.le.s $f4, $f0 +/* 07BB18 7F046FE8 00000000 */ nop +/* 07BB1C 7F046FEC 45020003 */ bc1fl .L7F046FFC +/* 07BB20 7F046FF0 E7A00494 */ swc1 $f0, 0x494($sp) +/* 07BB24 7F046FF4 46140001 */ sub.s $f0, $f0, $f20 +.L7F046FF8: +/* 07BB28 7F046FF8 E7A00494 */ swc1 $f0, 0x494($sp) +.L7F046FFC: +/* 07BB2C 7F046FFC 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BB30 7F047000 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB34 7F047004 C7A00494 */ lwc1 $f0, 0x494($sp) +/* 07BB38 7F047008 C6080088 */ lwc1 $f8, 0x88($s0) +/* 07BB3C 7F04700C C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BB40 7F047010 4608003E */ c.le.s $f0, $f8 +/* 07BB44 7F047014 00000000 */ nop +/* 07BB48 7F047018 45020027 */ bc1fl .L7F0470B8 +/* 07BB4C 7F04701C 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB50 7F047020 C60A008C */ lwc1 $f10, 0x8c($s0) +/* 07BB54 7F047024 240D001B */ li $t5, 27 +/* 07BB58 7F047028 4600503E */ c.le.s $f10, $f0 +/* 07BB5C 7F04702C 00000000 */ nop +/* 07BB60 7F047030 45020021 */ bc1fl .L7F0470B8 +/* 07BB64 7F047034 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BB68 7F047038 C6460010 */ lwc1 $f6, 0x10($s2) +/* 07BB6C 7F04703C 8E650008 */ lw $a1, 8($s3) +/* 07BB70 7F047040 8E660010 */ lw $a2, 0x10($s3) +/* 07BB74 7F047044 8E470008 */ lw $a3, 8($s2) +/* 07BB78 7F047048 AFAD0014 */ sw $t5, 0x14($sp) +/* 07BB7C 7F04704C E7A60010 */ swc1 $f6, 0x10($sp) +/* 07BB80 7F047050 C660000C */ lwc1 $f0, 0xc($s3) +/* 07BB84 7F047054 27A40490 */ addiu $a0, $sp, 0x490 +/* 07BB88 7F047058 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07BB8C 7F04705C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07BB90 7F047060 C642000C */ lwc1 $f2, 0xc($s2) +/* 07BB94 7F047064 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BB98 7F047068 E7A20020 */ swc1 $f2, 0x20($sp) +/* 07BB9C 7F04706C 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07BBA0 7F047070 E7A20024 */ swc1 $f2, 0x24($sp) +/* 07BBA4 7F047074 1040000F */ beqz $v0, .L7F0470B4 +/* 07BBA8 7F047078 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BBAC 7F04707C 8FAF0490 */ lw $t7, 0x490($sp) +/* 07BBB0 7F047080 8E580014 */ lw $t8, 0x14($s2) +/* 07BBB4 7F047084 55F8000C */ bnel $t7, $t8, .L7F0470B8 +/* 07BBB8 7F047088 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BBBC 7F04708C 8E280008 */ lw $t0, 8($s1) +/* 07BBC0 7F047090 3C012000 */ lui $at, 0x2000 +/* 07BBC4 7F047094 24090001 */ li $t1, 1 +/* 07BBC8 7F047098 01015825 */ or $t3, $t0, $at +/* 07BBCC 7F04709C AE2B0008 */ sw $t3, 8($s1) +/* 07BBD0 7F0470A0 C7A40498 */ lwc1 $f4, 0x498($sp) +/* 07BBD4 7F0470A4 AFA904A4 */ sw $t1, 0x4a4($sp) +/* 07BBD8 7F0470A8 C7B0049C */ lwc1 $f16, 0x49c($sp) +/* 07BBDC 7F0470AC 1000000F */ b .L7F0470EC +/* 07BBE0 7F0470B0 E7A404D4 */ swc1 $f4, 0x4d4($sp) +.L7F0470B4: +/* 07BBE4 7F0470B4 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F0470B8: +/* 07BBE8 7F0470B8 3C198005 */ lui $t9, %hi(global_timer) +/* 07BBEC 7F0470BC 0442000B */ bltzl $v0, .L7F0470EC +/* 07BBF0 7F0470C0 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BBF4 7F0470C4 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BBF8 7F0470C8 272AFF88 */ addiu $t2, $t9, -0x78 +/* 07BBFC 7F0470CC 0142082A */ slt $at, $t2, $v0 +/* 07BC00 7F0470D0 50200006 */ beql $at, $zero, .L7F0470EC +/* 07BC04 7F0470D4 AFA004AC */ sw $zero, 0x4ac($sp) +/* 07BC08 7F0470D8 C608009C */ lwc1 $f8, 0x9c($s0) +/* 07BC0C 7F0470DC C6100090 */ lwc1 $f16, 0x90($s0) +/* 07BC10 7F0470E0 10000002 */ b .L7F0470EC +/* 07BC14 7F0470E4 E7A804D4 */ swc1 $f8, 0x4d4($sp) +/* 07BC18 7F0470E8 AFA004AC */ sw $zero, 0x4ac($sp) +.L7F0470EC: +/* 07BC1C 7F0470EC 02402025 */ move $a0, $s2 +/* 07BC20 7F0470F0 24050001 */ li $a1, 1 +/* 07BC24 7F0470F4 0FC2280F */ jal sub_GAME_7F08A03C +/* 07BC28 7F0470F8 E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC2C 7F0470FC C7B004D8 */ lwc1 $f16, 0x4d8($sp) +.L7F047100: +/* 07BC30 7F047100 8FAC04AC */ lw $t4, 0x4ac($sp) +.L7F047104: +/* 07BC34 7F047104 3C018005 */ lui $at, %hi(D_80052B20) +/* 07BC38 7F047108 C4342B20 */ lwc1 $f20, %lo(D_80052B20)($at) +/* 07BC3C 7F04710C 51800007 */ beql $t4, $zero, .L7F04712C +/* 07BC40 7F047110 8E0E00D0 */ lw $t6, 0xd0($s0) +/* 07BC44 7F047114 C7AC04B8 */ lwc1 $f12, 0x4b8($sp) +/* 07BC48 7F047118 0FC0B491 */ jal sub_GAME_7F02D244 +/* 07BC4C 7F04711C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC50 7F047120 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BC54 7F047124 E7A004A0 */ swc1 $f0, 0x4a0($sp) +/* 07BC58 7F047128 8E0E00D0 */ lw $t6, 0xd0($s0) +.L7F04712C: +/* 07BC5C 7F04712C 11C0001F */ beqz $t6, .L7F0471AC +/* 07BC60 7F047130 3C0D8005 */ lui $t5, %hi(global_timer) +/* 07BC64 7F047134 8DAD837C */ lw $t5, %lo(global_timer)($t5) +/* 07BC68 7F047138 24010078 */ li $at, 120 +/* 07BC6C 7F04713C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BC70 7F047140 01A1001A */ div $zero, $t5, $at +/* 07BC74 7F047144 00007810 */ mfhi $t7 +/* 07BC78 7F047148 448F5000 */ mtc1 $t7, $f10 +/* 07BC7C 7F04714C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 07BC80 7F047150 44814000 */ mtc1 $at, $f8 +/* 07BC84 7F047154 468051A0 */ cvt.s.w $f6, $f10 +/* 07BC88 7F047158 46143102 */ mul.s $f4, $f6, $f20 +/* 07BC8C 7F04715C 0FC15FAB */ jal sinf +/* 07BC90 7F047160 46082303 */ div.s $f12, $f4, $f8 +/* 07BC94 7F047164 3C018005 */ lui $at, %hi(D_80052B24) +/* 07BC98 7F047168 C4262B24 */ lwc1 $f6, %lo(D_80052B24)($at) +/* 07BC9C 7F04716C C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BCA0 7F047170 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BCA4 7F047174 46065102 */ mul.s $f4, $f10, $f6 +/* 07BCA8 7F047178 00000000 */ nop +/* 07BCAC 7F04717C 46002202 */ mul.s $f8, $f4, $f0 +/* 07BCB0 7F047180 46088400 */ add.s $f16, $f16, $f8 +/* 07BCB4 7F047184 4616803C */ c.lt.s $f16, $f22 +/* 07BCB8 7F047188 00000000 */ nop +/* 07BCBC 7F04718C 45000002 */ bc1f .L7F047198 +/* 07BCC0 7F047190 00000000 */ nop +/* 07BCC4 7F047194 46148400 */ add.s $f16, $f16, $f20 +.L7F047198: +/* 07BCC8 7F047198 4610A03E */ c.le.s $f20, $f16 +/* 07BCCC 7F04719C 00000000 */ nop +/* 07BCD0 7F0471A0 45020003 */ bc1fl .L7F0471B0 +/* 07BCD4 7F0471A4 C6020084 */ lwc1 $f2, 0x84($s0) +/* 07BCD8 7F0471A8 46148401 */ sub.s $f16, $f16, $f20 +.L7F0471AC: +/* 07BCDC 7F0471AC C6020084 */ lwc1 $f2, 0x84($s0) +.L7F0471B0: +/* 07BCE0 7F0471B0 3C018005 */ lui $at, %hi(D_80052B28) +/* 07BCE4 7F0471B4 C42A2B28 */ lwc1 $f10, %lo(D_80052B28)($at) +/* 07BCE8 7F0471B8 46028001 */ sub.s $f0, $f16, $f2 +/* 07BCEC 7F0471BC 26040090 */ addiu $a0, $s0, 0x90 +/* 07BCF0 7F0471C0 460A003C */ c.lt.s $f0, $f10 +/* 07BCF4 7F0471C4 00000000 */ nop +/* 07BCF8 7F0471C8 45000003 */ bc1f .L7F0471D8 +/* 07BCFC 7F0471CC 00000000 */ nop +/* 07BD00 7F0471D0 10000008 */ b .L7F0471F4 +/* 07BD04 7F0471D4 46140000 */ add.s $f0, $f0, $f20 +.L7F0471D8: +/* 07BD08 7F0471D8 3C018005 */ lui $at, %hi(D_80052B2C) +/* 07BD0C 7F0471DC C4262B2C */ lwc1 $f6, %lo(D_80052B2C)($at) +/* 07BD10 7F0471E0 4600303E */ c.le.s $f6, $f0 +/* 07BD14 7F0471E4 00000000 */ nop +/* 07BD18 7F0471E8 45020003 */ bc1fl .L7F0471F8 +/* 07BD1C 7F0471EC C60C0088 */ lwc1 $f12, 0x88($s0) +/* 07BD20 7F0471F0 46140001 */ sub.s $f0, $f0, $f20 +.L7F0471F4: +/* 07BD24 7F0471F4 C60C0088 */ lwc1 $f12, 0x88($s0) +.L7F0471F8: +/* 07BD28 7F0471F8 3C018005 */ lui $at, %hi(D_80052B30) +/* 07BD2C 7F0471FC 4600603C */ c.lt.s $f12, $f0 +/* 07BD30 7F047200 00000000 */ nop +/* 07BD34 7F047204 45020004 */ bc1fl .L7F047218 +/* 07BD38 7F047208 C60C008C */ lwc1 $f12, 0x8c($s0) +/* 07BD3C 7F04720C 10000007 */ b .L7F04722C +/* 07BD40 7F047210 460C1400 */ add.s $f16, $f2, $f12 +/* 07BD44 7F047214 C60C008C */ lwc1 $f12, 0x8c($s0) +.L7F047218: +/* 07BD48 7F047218 460C003C */ c.lt.s $f0, $f12 +/* 07BD4C 7F04721C 00000000 */ nop +/* 07BD50 7F047220 45020003 */ bc1fl .L7F047230 +/* 07BD54 7F047224 4616803C */ c.lt.s $f16, $f22 +/* 07BD58 7F047228 460C1400 */ add.s $f16, $f2, $f12 +.L7F04722C: +/* 07BD5C 7F04722C 4616803C */ c.lt.s $f16, $f22 +.L7F047230: +/* 07BD60 7F047230 00000000 */ nop +/* 07BD64 7F047234 45020003 */ bc1fl .L7F047244 +/* 07BD68 7F047238 4610A03E */ c.le.s $f20, $f16 +/* 07BD6C 7F04723C 46148400 */ add.s $f16, $f16, $f20 +/* 07BD70 7F047240 4610A03E */ c.le.s $f20, $f16 +.L7F047244: +/* 07BD74 7F047244 00000000 */ nop +/* 07BD78 7F047248 45000002 */ bc1f .L7F047254 +/* 07BD7C 7F04724C 00000000 */ nop +/* 07BD80 7F047250 46148401 */ sub.s $f16, $f16, $f20 +.L7F047254: +/* 07BD84 7F047254 C4202B30 */ lwc1 $f0, %lo(D_80052B30)($at) +/* 07BD88 7F047258 44058000 */ mfc1 $a1, $f16 +/* 07BD8C 7F04725C 26060094 */ addiu $a2, $s0, 0x94 +/* 07BD90 7F047260 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BD94 7F047264 C60400A4 */ lwc1 $f4, 0xa4($s0) +/* 07BD98 7F047268 44070000 */ mfc1 $a3, $f0 +/* 07BD9C 7F04726C E7B004D8 */ swc1 $f16, 0x4d8($sp) +/* 07BDA0 7F047270 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDA4 7F047274 E7A40014 */ swc1 $f4, 0x14($sp) +/* 07BDA8 7F047278 3C018005 */ lui $at, %hi(D_80052B34) +/* 07BDAC 7F04727C C4202B34 */ lwc1 $f0, %lo(D_80052B34)($at) +/* 07BDB0 7F047280 2604009C */ addiu $a0, $s0, 0x9c +/* 07BDB4 7F047284 8FA504D4 */ lw $a1, 0x4d4($sp) +/* 07BDB8 7F047288 E7A00010 */ swc1 $f0, 0x10($sp) +/* 07BDBC 7F04728C C60800A4 */ lwc1 $f8, 0xa4($s0) +/* 07BDC0 7F047290 44070000 */ mfc1 $a3, $f0 +/* 07BDC4 7F047294 260600A0 */ addiu $a2, $s0, 0xa0 +/* 07BDC8 7F047298 0FC10C43 */ jal sub_GAME_7F04310C +/* 07BDCC 7F04729C E7A80014 */ swc1 $f8, 0x14($sp) +/* 07BDD0 7F0472A0 C7B004D8 */ lwc1 $f16, 0x4d8($sp) +/* 07BDD4 7F0472A4 C60A0090 */ lwc1 $f10, 0x90($s0) +/* 07BDD8 7F0472A8 3C018005 */ lui $at, %hi(D_80052B38) +/* 07BDDC 7F0472AC C7A604D4 */ lwc1 $f6, 0x4d4($sp) +/* 07BDE0 7F0472B0 460A8301 */ sub.s $f12, $f16, $f10 +/* 07BDE4 7F0472B4 4616603C */ c.lt.s $f12, $f22 +/* 07BDE8 7F0472B8 00000000 */ nop +/* 07BDEC 7F0472BC 45000002 */ bc1f .L7F0472C8 +/* 07BDF0 7F0472C0 00000000 */ nop +/* 07BDF4 7F0472C4 46146300 */ add.s $f12, $f12, $f20 +.L7F0472C8: +/* 07BDF8 7F0472C8 C4202B38 */ lwc1 $f0, %lo(D_80052B38)($at) +/* 07BDFC 7F0472CC 460C003C */ c.lt.s $f0, $f12 +/* 07BE00 7F0472D0 00000000 */ nop +/* 07BE04 7F0472D4 45020003 */ bc1fl .L7F0472E4 +/* 07BE08 7F0472D8 C604009C */ lwc1 $f4, 0x9c($s0) +/* 07BE0C 7F0472DC 46146301 */ sub.s $f12, $f12, $f20 +/* 07BE10 7F0472E0 C604009C */ lwc1 $f4, 0x9c($s0) +.L7F0472E4: +/* 07BE14 7F0472E4 46043081 */ sub.s $f2, $f6, $f4 +/* 07BE18 7F0472E8 4616103C */ c.lt.s $f2, $f22 +/* 07BE1C 7F0472EC 00000000 */ nop +/* 07BE20 7F0472F0 45020003 */ bc1fl .L7F047300 +/* 07BE24 7F0472F4 4602003C */ c.lt.s $f0, $f2 +/* 07BE28 7F0472F8 46141080 */ add.s $f2, $f2, $f20 +/* 07BE2C 7F0472FC 4602003C */ c.lt.s $f0, $f2 +.L7F047300: +/* 07BE30 7F047300 00000000 */ nop +/* 07BE34 7F047304 45020003 */ bc1fl .L7F047314 +/* 07BE38 7F047308 AE0000D0 */ sw $zero, 0xd0($s0) +/* 07BE3C 7F04730C 46141081 */ sub.s $f2, $f2, $f20 +/* 07BE40 7F047310 AE0000D0 */ sw $zero, 0xd0($s0) +.L7F047314: +/* 07BE44 7F047314 8FB804AC */ lw $t8, 0x4ac($sp) +/* 07BE48 7F047318 C7A804A0 */ lwc1 $f8, 0x4a0($sp) +/* 07BE4C 7F04731C 53000047 */ beql $t8, $zero, .L7F04743C +/* 07BE50 7F047320 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BE54 7F047324 4608603C */ c.lt.s $f12, $f8 +/* 07BE58 7F047328 C7AA04A0 */ lwc1 $f10, 0x4a0($sp) +/* 07BE5C 7F04732C 4502001B */ bc1fl .L7F04739C +/* 07BE60 7F047330 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE64 7F047334 46004007 */ neg.s $f0, $f8 +/* 07BE68 7F047338 460C003C */ c.lt.s $f0, $f12 +/* 07BE6C 7F04733C 00000000 */ nop +/* 07BE70 7F047340 45020016 */ bc1fl .L7F04739C +/* 07BE74 7F047344 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE78 7F047348 4608103C */ c.lt.s $f2, $f8 +/* 07BE7C 7F04734C 00000000 */ nop +/* 07BE80 7F047350 45020012 */ bc1fl .L7F04739C +/* 07BE84 7F047354 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE88 7F047358 4602003C */ c.lt.s $f0, $f2 +/* 07BE8C 7F04735C 24080001 */ li $t0, 1 +/* 07BE90 7F047360 4502000E */ bc1fl .L7F04739C +/* 07BE94 7F047364 460A5000 */ add.s $f0, $f10, $f10 +/* 07BE98 7F047368 AE0800D0 */ sw $t0, 0xd0($s0) +/* 07BE9C 7F04736C 8FA904A4 */ lw $t1, 0x4a4($sp) +/* 07BEA0 7F047370 240B0001 */ li $t3, 1 +/* 07BEA4 7F047374 AFAB04A8 */ sw $t3, 0x4a8($sp) +/* 07BEA8 7F047378 1120002F */ beqz $t1, .L7F047438 +/* 07BEAC 7F04737C 3C198005 */ lui $t9, %hi(global_timer) +/* 07BEB0 7F047380 8F39837C */ lw $t9, %lo(global_timer)($t9) +/* 07BEB4 7F047384 3C0A8005 */ lui $t2, %hi(global_timer) +/* 07BEB8 7F047388 AE1900B8 */ sw $t9, 0xb8($s0) +/* 07BEBC 7F04738C 8D4A837C */ lw $t2, %lo(global_timer)($t2) +/* 07BEC0 7F047390 10000029 */ b .L7F047438 +/* 07BEC4 7F047394 AE0A00BC */ sw $t2, 0xbc($s0) +/* 07BEC8 7F047398 460A5000 */ add.s $f0, $f10, $f10 +.L7F04739C: +/* 07BECC 7F04739C 4600603C */ c.lt.s $f12, $f0 +/* 07BED0 7F0473A0 00000000 */ nop +/* 07BED4 7F0473A4 45020018 */ bc1fl .L7F047408 +/* 07BED8 7F0473A8 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEDC 7F0473AC 46000387 */ neg.s $f14, $f0 +/* 07BEE0 7F0473B0 460C703C */ c.lt.s $f14, $f12 +/* 07BEE4 7F0473B4 00000000 */ nop +/* 07BEE8 7F0473B8 45020013 */ bc1fl .L7F047408 +/* 07BEEC 7F0473BC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BEF0 7F0473C0 4600103C */ c.lt.s $f2, $f0 +/* 07BEF4 7F0473C4 00000000 */ nop +/* 07BEF8 7F0473C8 4502000F */ bc1fl .L7F047408 +/* 07BEFC 7F0473CC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF00 7F0473D0 4602703C */ c.lt.s $f14, $f2 +/* 07BF04 7F0473D4 240C0001 */ li $t4, 1 +/* 07BF08 7F0473D8 4502000B */ bc1fl .L7F047408 +/* 07BF0C 7F0473DC 8E0200B8 */ lw $v0, 0xb8($s0) +/* 07BF10 7F0473E0 AE0C00D0 */ sw $t4, 0xd0($s0) +/* 07BF14 7F0473E4 8FAD04A4 */ lw $t5, 0x4a4($sp) +/* 07BF18 7F0473E8 240E0001 */ li $t6, 1 +/* 07BF1C 7F0473EC AFAE04A8 */ sw $t6, 0x4a8($sp) +/* 07BF20 7F0473F0 11A00011 */ beqz $t5, .L7F047438 +/* 07BF24 7F0473F4 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07BF28 7F0473F8 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07BF2C 7F0473FC 1000000E */ b .L7F047438 +/* 07BF30 7F047400 AE0F00B8 */ sw $t7, 0xb8($s0) +/* 07BF34 7F047404 8E0200B8 */ lw $v0, 0xb8($s0) +.L7F047408: +/* 07BF38 7F047408 3C188005 */ lui $t8, %hi(global_timer) +/* 07BF3C 7F04740C 0442000B */ bltzl $v0, .L7F04743C +/* 07BF40 7F047410 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF44 7F047414 8F18837C */ lw $t8, %lo(global_timer)($t8) +/* 07BF48 7F047418 240B0001 */ li $t3, 1 +/* 07BF4C 7F04741C 24090001 */ li $t1, 1 +/* 07BF50 7F047420 2708FF88 */ addiu $t0, $t8, -0x78 +/* 07BF54 7F047424 0102082A */ slt $at, $t0, $v0 +/* 07BF58 7F047428 50200004 */ beql $at, $zero, .L7F04743C +/* 07BF5C 7F04742C 8FB904A8 */ lw $t9, 0x4a8($sp) +/* 07BF60 7F047430 AE0B00D0 */ sw $t3, 0xd0($s0) +/* 07BF64 7F047434 AFA904A8 */ sw $t1, 0x4a8($sp) +.L7F047438: +/* 07BF68 7F047438 8FB904A8 */ lw $t9, 0x4a8($sp) +.L7F04743C: +/* 07BF6C 7F04743C 3C018005 */ lui $at, %hi(D_80052B3C) +/* 07BF70 7F047440 53200013 */ beql $t9, $zero, .L7F047490 +/* 07BF74 7F047444 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BF78 7F047448 C4202B3C */ lwc1 $f0, %lo(D_80052B3C)($at) +/* 07BF7C 7F04744C 3C018005 */ lui $at, %hi(D_80052B40) +/* 07BF80 7F047450 C4262B40 */ lwc1 $f6, %lo(D_80052B40)($at) +/* 07BF84 7F047454 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07BF88 7F047458 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07BF8C 7F04745C C60A00B0 */ lwc1 $f10, 0xb0($s0) +/* 07BF90 7F047460 46043202 */ mul.s $f8, $f6, $f4 +/* 07BF94 7F047464 46085180 */ add.s $f6, $f10, $f8 +/* 07BF98 7F047468 E60600B0 */ swc1 $f6, 0xb0($s0) +/* 07BF9C 7F04746C C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFA0 7F047470 4602003C */ c.lt.s $f0, $f2 +/* 07BFA4 7F047474 00000000 */ nop +/* 07BFA8 7F047478 45020023 */ bc1fl .L7F047508 +/* 07BFAC 7F04747C 4602B03C */ c.lt.s $f22, $f2 +/* 07BFB0 7F047480 E60000B0 */ swc1 $f0, 0xb0($s0) +/* 07BFB4 7F047484 1000001F */ b .L7F047504 +/* 07BFB8 7F047488 C60200B0 */ lwc1 $f2, 0xb0($s0) +/* 07BFBC 7F04748C C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047490: +/* 07BFC0 7F047490 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07BFC4 7F047494 4602B03C */ c.lt.s $f22, $f2 +/* 07BFC8 7F047498 00000000 */ nop +/* 07BFCC 7F04749C 4502001A */ bc1fl .L7F047508 +/* 07BFD0 7F0474A0 4602B03C */ c.lt.s $f22, $f2 +/* 07BFD4 7F0474A4 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07BFD8 7F0474A8 00001025 */ move $v0, $zero +/* 07BFDC 7F0474AC 3C018005 */ lui $at, %hi(D_80052B44) +/* 07BFE0 7F0474B0 1940000C */ blez $t2, .L7F0474E4 +/* 07BFE4 7F0474B4 00000000 */ nop +/* 07BFE8 7F0474B8 C4202B44 */ lwc1 $f0, %lo(D_80052B44)($at) +/* 07BFEC 7F0474BC C60400B0 */ lwc1 $f4, 0xb0($s0) +.L7F0474C0: +/* 07BFF0 7F0474C0 3C0C8005 */ lui $t4, %hi(clock_timer) +/* 07BFF4 7F0474C4 24420001 */ addiu $v0, $v0, 1 +/* 07BFF8 7F0474C8 46002282 */ mul.s $f10, $f4, $f0 +/* 07BFFC 7F0474CC E60A00B0 */ swc1 $f10, 0xb0($s0) +/* 07C000 7F0474D0 8D8C8374 */ lw $t4, %lo(clock_timer)($t4) +/* 07C004 7F0474D4 004C082A */ slt $at, $v0, $t4 +/* 07C008 7F0474D8 5420FFF9 */ bnezl $at, .L7F0474C0 +/* 07C00C 7F0474DC C60400B0 */ lwc1 $f4, 0xb0($s0) +/* 07C010 7F0474E0 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F0474E4: +/* 07C014 7F0474E4 3C018005 */ lui $at, %hi(D_80052B48) +/* 07C018 7F0474E8 C4282B48 */ lwc1 $f8, %lo(D_80052B48)($at) +/* 07C01C 7F0474EC 4608103E */ c.le.s $f2, $f8 +/* 07C020 7F0474F0 00000000 */ nop +/* 07C024 7F0474F4 45020004 */ bc1fl .L7F047508 +/* 07C028 7F0474F8 4602B03C */ c.lt.s $f22, $f2 +/* 07C02C 7F0474FC E61600B0 */ swc1 $f22, 0xb0($s0) +/* 07C030 7F047500 C60200B0 */ lwc1 $f2, 0xb0($s0) +.L7F047504: +/* 07C034 7F047504 4602B03C */ c.lt.s $f22, $f2 +.L7F047508: +/* 07C038 7F047508 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C03C 7F04750C 45020348 */ bc1fl .L7F048230 +/* 07C040 7F047510 92220003 */ lbu $v0, 3($s1) +/* 07C044 7F047514 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C048 7F047518 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07C04C 7F04751C 46041282 */ mul.s $f10, $f2, $f4 +/* 07C050 7F047520 460A3200 */ add.s $f8, $f6, $f10 +/* 07C054 7F047524 E60800B4 */ swc1 $f8, 0xb4($s0) +/* 07C058 7F047528 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C05C 7F04752C 4600A03E */ c.le.s $f20, $f0 +/* 07C060 7F047530 00000000 */ nop +/* 07C064 7F047534 4502033E */ bc1fl .L7F048230 +/* 07C068 7F047538 92220003 */ lbu $v0, 3($s1) +/* 07C06C 7F04753C 46140101 */ sub.s $f4, $f0, $f20 +.L7F047540: +/* 07C070 7F047540 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 07C074 7F047544 C60000B4 */ lwc1 $f0, 0xb4($s0) +/* 07C078 7F047548 4600A03E */ c.le.s $f20, $f0 +/* 07C07C 7F04754C 00000000 */ nop +/* 07C080 7F047550 4503FFFB */ bc1tl .L7F047540 +/* 07C084 7F047554 46140101 */ sub.s $f4, $f0, $f20 +/* 07C088 7F047558 10000335 */ b .L7F048230 +/* 07C08C 7F04755C 92220003 */ lbu $v0, 3($s1) +/* 07C090 7F047560 24010027 */ li $at, 39 +.L7F047564: +/* 07C094 7F047564 14410255 */ bne $v0, $at, .L7F047EBC +/* 07C098 7F047568 02202025 */ move $a0, $s1 +/* 07C09C 7F04756C C62600A0 */ lwc1 $f6, 0xa0($s1) +/* 07C0A0 7F047570 AFA00478 */ sw $zero, 0x478($sp) +/* 07C0A4 7F047574 24050001 */ li $a1, 1 +/* 07C0A8 7F047578 0FC0D521 */ jal parse_handle_actionblocks +/* 07C0AC 7F04757C E7A6047C */ swc1 $f6, 0x47c($sp) +/* 07C0B0 7F047580 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0B4 7F047584 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0B8 7F047588 460EB03E */ c.le.s $f22, $f14 +/* 07C0BC 7F04758C 00000000 */ nop +/* 07C0C0 7F047590 45020016 */ bc1fl .L7F0475EC +/* 07C0C4 7F047594 8E2E000C */ lw $t6, 0xc($s1) +/* 07C0C8 7F047598 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C0CC 7F04759C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C0D0 7F0475A0 4602703E */ c.le.s $f14, $f2 +/* 07C0D4 7F0475A4 00000000 */ nop +/* 07C0D8 7F0475A8 45020006 */ bc1fl .L7F0475C4 +/* 07C0DC 7F0475AC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07C0E0 7F0475B0 C62A0094 */ lwc1 $f10, 0x94($s1) +/* 07C0E4 7F0475B4 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07C0E8 7F0475B8 10000008 */ b .L7F0475DC +/* 07C0EC 7F0475BC E62A0088 */ swc1 $f10, 0x88($s1) +/* 07C0F0 7F0475C0 C6200088 */ lwc1 $f0, 0x88($s1) +.L7F0475C4: +/* 07C0F4 7F0475C4 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C0F8 7F0475C8 46004101 */ sub.s $f4, $f8, $f0 +/* 07C0FC 7F0475CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C100 7F0475D0 460E3283 */ div.s $f10, $f6, $f14 +/* 07C104 7F0475D4 460A0200 */ add.s $f8, $f0, $f10 +/* 07C108 7F0475D8 E6280088 */ swc1 $f8, 0x88($s1) +.L7F0475DC: +/* 07C10C 7F0475DC C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 07C110 7F0475E0 46047181 */ sub.s $f6, $f14, $f4 +/* 07C114 7F0475E4 E6260098 */ swc1 $f6, 0x98($s1) +/* 07C118 7F0475E8 8E2E000C */ lw $t6, 0xc($s1) +.L7F0475EC: +/* 07C11C 7F0475EC 00008025 */ move $s0, $zero +/* 07C120 7F0475F0 000E6B00 */ sll $t5, $t6, 0xc +/* 07C124 7F0475F4 05A00014 */ bltz $t5, .L7F047648 +/* 07C128 7F0475F8 00000000 */ nop +/* 07C12C 7F0475FC 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07C130 7F047600 02202025 */ move $a0, $s1 +/* 07C134 7F047604 10400010 */ beqz $v0, .L7F047648 +/* 07C138 7F047608 00000000 */ nop +/* 07C13C 7F04760C C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C140 7F047610 26240058 */ addiu $a0, $s1, 0x58 +/* 07C144 7F047614 3C0544FA */ lui $a1, 0x44fa +/* 07C148 7F047618 460AB03C */ c.lt.s $f22, $f10 +/* 07C14C 7F04761C 3C06453B */ lui $a2, (0x453B8000 >> 16) # lui $a2, 0x453b +/* 07C150 7F047620 45010006 */ bc1t .L7F04763C +/* 07C154 7F047624 00000000 */ nop +/* 07C158 7F047628 C6280094 */ lwc1 $f8, 0x94($s1) +/* 07C15C 7F04762C 4608B03C */ c.lt.s $f22, $f8 +/* 07C160 7F047630 00000000 */ nop +/* 07C164 7F047634 45000004 */ bc1f .L7F047648 +/* 07C168 7F047638 00000000 */ nop +.L7F04763C: +/* 07C16C 7F04763C 0FC14E25 */ jal sub_GAME_7F053894 +/* 07C170 7F047640 34C68000 */ ori $a2, (0x453B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07C174 7F047644 00408025 */ move $s0, $v0 +.L7F047648: +/* 07C178 7F047648 5A000019 */ blezl $s0, .L7F0476B0 +/* 07C17C 7F04764C 8E2400AC */ lw $a0, 0xac($s1) +/* 07C180 7F047650 8E2400AC */ lw $a0, 0xac($s1) +/* 07C184 7F047654 10800005 */ beqz $a0, .L7F04766C +/* 07C188 7F047658 00000000 */ nop +/* 07C18C 7F04765C 0C00237C */ jal sfxGetArg0Unk3F +/* 07C190 7F047660 00000000 */ nop +/* 07C194 7F047664 5440000A */ bnezl $v0, .L7F047690 +/* 07C198 7F047668 8E2400AC */ lw $a0, 0xac($s1) +.L7F04766C: +/* 07C19C 7F04766C 0FC2FF01 */ jal get_controls_locked_flag +/* 07C1A0 7F047670 00000000 */ nop +/* 07C1A4 7F047674 14400005 */ bnez $v0, .L7F04768C +/* 07C1A8 7F047678 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07C1AC 7F04767C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07C1B0 7F047680 24050041 */ li $a1, 65 +/* 07C1B4 7F047684 0C002382 */ jal play_sfx_a1 +/* 07C1B8 7F047688 262600AC */ addiu $a2, $s1, 0xac +.L7F04768C: +/* 07C1BC 7F04768C 8E2400AC */ lw $a0, 0xac($s1) +.L7F047690: +/* 07C1C0 7F047690 24050008 */ li $a1, 8 +/* 07C1C4 7F047694 5080000F */ beql $a0, $zero, .L7F0476D4 +/* 07C1C8 7F047698 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1CC 7F04769C 0C002461 */ jal sfx_c_70009184 +/* 07C1D0 7F0476A0 02003025 */ move $a2, $s0 +/* 07C1D4 7F0476A4 1000000B */ b .L7F0476D4 +/* 07C1D8 7F0476A8 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1DC 7F0476AC 8E2400AC */ lw $a0, 0xac($s1) +.L7F0476B0: +/* 07C1E0 7F0476B0 50800008 */ beql $a0, $zero, .L7F0476D4 +/* 07C1E4 7F0476B4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1E8 7F0476B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07C1EC 7F0476BC 00000000 */ nop +/* 07C1F0 7F0476C0 50400004 */ beql $v0, $zero, .L7F0476D4 +/* 07C1F4 7F0476C4 8E2400A4 */ lw $a0, 0xa4($s1) +/* 07C1F8 7F0476C8 0C002408 */ jal sfxDeactivate +/* 07C1FC 7F0476CC 8E2400AC */ lw $a0, 0xac($s1) +/* 07C200 7F0476D0 8E2400A4 */ lw $a0, 0xa4($s1) +.L7F0476D4: +/* 07C204 7F0476D4 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07C208 7F0476D8 5080002A */ beql $a0, $zero, .L7F047784 +/* 07C20C 7F0476DC 8E2B0008 */ lw $t3, 8($s1) +/* 07C210 7F0476E0 8E3800A8 */ lw $t8, 0xa8($s1) +/* 07C214 7F0476E4 8C8F0000 */ lw $t7, ($a0) +/* 07C218 7F0476E8 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07C21C 7F0476EC 00184080 */ sll $t0, $t8, 2 +/* 07C220 7F0476F0 01E81021 */ addu $v0, $t7, $t0 +/* 07C224 7F0476F4 8C4B0000 */ lw $t3, ($v0) +/* 07C228 7F0476F8 8CB90000 */ lw $t9, ($a1) +/* 07C22C 7F0476FC 8CAE0018 */ lw $t6, 0x18($a1) +/* 07C230 7F047700 000B4900 */ sll $t1, $t3, 4 +/* 07C234 7F047704 01391821 */ addu $v1, $t1, $t9 +/* 07C238 7F047708 8C6A0000 */ lw $t2, ($v1) +/* 07C23C 7F04770C C6260058 */ lwc1 $f6, 0x58($s1) +/* 07C240 7F047710 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07C244 7F047714 000A6080 */ sll $t4, $t2, 2 +/* 07C248 7F047718 018A6023 */ subu $t4, $t4, $t2 +/* 07C24C 7F04771C 000C6080 */ sll $t4, $t4, 2 +/* 07C250 7F047720 018A6023 */ subu $t4, $t4, $t2 +/* 07C254 7F047724 000C6080 */ sll $t4, $t4, 2 +/* 07C258 7F047728 018E3021 */ addu $a2, $t4, $t6 +/* 07C25C 7F04772C C4C40000 */ lwc1 $f4, ($a2) +/* 07C260 7F047730 C4CA0008 */ lwc1 $f10, 8($a2) +/* 07C264 7F047734 AFA60478 */ sw $a2, 0x478($sp) +/* 07C268 7F047738 46062301 */ sub.s $f12, $f4, $f6 +/* 07C26C 7F04773C 0FC16A8C */ jal atan2f +/* 07C270 7F047740 46085381 */ sub.s $f14, $f10, $f8 +/* 07C274 7F047744 E7A0047C */ swc1 $f0, 0x47c($sp) +/* 07C278 7F047748 8E2D0008 */ lw $t5, 8($s1) +/* 07C27C 7F04774C 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C280 7F047750 C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C284 7F047754 000DC080 */ sll $t8, $t5, 2 +/* 07C288 7F047758 07010018 */ bgez $t8, .L7F0477BC +/* 07C28C 7F04775C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C290 7F047760 8E2F0008 */ lw $t7, 8($s1) +/* 07C294 7F047764 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C298 7F047768 02202025 */ move $a0, $s1 +/* 07C29C 7F04776C 01E14024 */ and $t0, $t7, $at +/* 07C2A0 7F047770 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2A4 7F047774 AE280008 */ sw $t0, 8($s1) +/* 07C2A8 7F047778 10000011 */ b .L7F0477C0 +/* 07C2AC 7F04777C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2B0 7F047780 8E2B0008 */ lw $t3, 8($s1) +.L7F047784: +/* 07C2B4 7F047784 000B4880 */ sll $t1, $t3, 2 +/* 07C2B8 7F047788 0523000D */ bgezl $t1, .L7F0477C0 +/* 07C2BC 7F04778C C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C2C0 7F047790 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C2C4 7F047794 0FC16A8C */ jal atan2f +/* 07C2C8 7F047798 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C2CC 7F04779C 8E390008 */ lw $t9, 8($s1) +/* 07C2D0 7F0477A0 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C2D4 7F0477A4 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C2D8 7F0477A8 03215024 */ and $t2, $t9, $at +/* 07C2DC 7F0477AC E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C2E0 7F0477B0 AE2A0008 */ sw $t2, 8($s1) +/* 07C2E4 7F0477B4 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C2E8 7F0477B8 02202025 */ move $a0, $s1 +.L7F0477BC: +/* 07C2EC 7F0477BC C6260088 */ lwc1 $f6, 0x88($s1) +.L7F0477C0: +/* 07C2F0 7F0477C0 4606B03C */ c.lt.s $f22, $f6 +/* 07C2F4 7F0477C4 00000000 */ nop +/* 07C2F8 7F0477C8 450201AC */ bc1fl .L7F047E7C +/* 07C2FC 7F0477CC 8E280008 */ lw $t0, 8($s1) +/* 07C300 7F0477D0 8E6C0014 */ lw $t4, 0x14($s3) +/* 07C304 7F0477D4 8FAE0478 */ lw $t6, 0x478($sp) +/* 07C308 7F0477D8 4600B386 */ mov.s $f14, $f22 +/* 07C30C 7F0477DC AFAC0468 */ sw $t4, 0x468($sp) +/* 07C310 7F0477E0 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C314 7F0477E4 E7AC0438 */ swc1 $f12, 0x438($sp) +/* 07C318 7F0477E8 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07C31C 7F0477EC 11C00013 */ beqz $t6, .L7F04783C +/* 07C320 7F0477F0 E7AA0434 */ swc1 $f10, 0x434($sp) +/* 07C324 7F0477F4 262D0058 */ addiu $t5, $s1, 0x58 +/* 07C328 7F0477F8 AFAD0070 */ sw $t5, 0x70($sp) +/* 07C32C 7F0477FC 0FC15FAB */ jal sinf +/* 07C330 7F047800 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C334 7F047804 E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C338 7F047808 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C33C 7F04780C 0FC15FA8 */ jal cosf +/* 07C340 7F047810 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C344 7F047814 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C348 7F047818 8FA40070 */ lw $a0, 0x70($sp) +/* 07C34C 7F04781C 27A5043C */ addiu $a1, $sp, 0x43c +/* 07C350 7F047820 8FA60478 */ lw $a2, 0x478($sp) +/* 07C354 7F047824 0FC0BF0D */ jal sub_GAME_7F02FC34 +/* 07C358 7F047828 3C074120 */ lui $a3, 0x4120 +/* 07C35C 7F04782C 10400003 */ beqz $v0, .L7F04783C +/* 07C360 7F047830 C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C364 7F047834 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C368 7F047838 E7A8047C */ swc1 $f8, 0x47c($sp) +.L7F04783C: +/* 07C36C 7F04783C 3C018005 */ lui $at, %hi(D_80052B4C) +/* 07C370 7F047840 C4242B4C */ lwc1 $f4, %lo(D_80052B4C)($at) +/* 07C374 7F047844 3C018005 */ lui $at, %hi(D_80052B50) +/* 07C378 7F047848 C4262B50 */ lwc1 $f6, %lo(D_80052B50)($at) +/* 07C37C 7F04784C 3C0738E4 */ lui $a3, (0x38E4C389 >> 16) # lui $a3, 0x38e4 +/* 07C380 7F047850 34E7C389 */ ori $a3, (0x38E4C389 & 0xFFFF) # ori $a3, $a3, 0xc389 +/* 07C384 7F047854 262400A0 */ addiu $a0, $s1, 0xa0 +/* 07C388 7F047858 8FA5047C */ lw $a1, 0x47c($sp) +/* 07C38C 7F04785C 2626009C */ addiu $a2, $s1, 0x9c +/* 07C390 7F047860 E7AE0430 */ swc1 $f14, 0x430($sp) +/* 07C394 7F047864 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07C398 7F047868 0FC10C43 */ jal sub_GAME_7F04310C +/* 07C39C 7F04786C E7A60014 */ swc1 $f6, 0x14($sp) +/* 07C3A0 7F047870 3C018005 */ lui $at, %hi(D_80052B54) +/* 07C3A4 7F047874 C4342B54 */ lwc1 $f20, %lo(D_80052B54)($at) +/* 07C3A8 7F047878 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3AC 7F04787C C7AE0430 */ lwc1 $f14, 0x430($sp) +/* 07C3B0 7F047880 3C018005 */ lui $at, %hi(D_80052B58) +/* 07C3B4 7F047884 460CA03E */ c.le.s $f20, $f12 +/* 07C3B8 7F047888 00000000 */ nop +/* 07C3BC 7F04788C 45020009 */ bc1fl .L7F0478B4 +/* 07C3C0 7F047890 4616603C */ c.lt.s $f12, $f22 +/* 07C3C4 7F047894 46146281 */ sub.s $f10, $f12, $f20 +.L7F047898: +/* 07C3C8 7F047898 E62A00A0 */ swc1 $f10, 0xa0($s1) +/* 07C3CC 7F04789C C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3D0 7F0478A0 460CA03E */ c.le.s $f20, $f12 +/* 07C3D4 7F0478A4 00000000 */ nop +/* 07C3D8 7F0478A8 4503FFFB */ bc1tl .L7F047898 +/* 07C3DC 7F0478AC 46146281 */ sub.s $f10, $f12, $f20 +/* 07C3E0 7F0478B0 4616603C */ c.lt.s $f12, $f22 +.L7F0478B4: +/* 07C3E4 7F0478B4 00000000 */ nop +/* 07C3E8 7F0478B8 45020009 */ bc1fl .L7F0478E0 +/* 07C3EC 7F0478BC C7A4047C */ lwc1 $f4, 0x47c($sp) +/* 07C3F0 7F0478C0 46146200 */ add.s $f8, $f12, $f20 +.L7F0478C4: +/* 07C3F4 7F0478C4 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C3F8 7F0478C8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C3FC 7F0478CC 4616603C */ c.lt.s $f12, $f22 +/* 07C400 7F0478D0 00000000 */ nop +/* 07C404 7F0478D4 4503FFFB */ bc1tl .L7F0478C4 +/* 07C408 7F0478D8 46146200 */ add.s $f8, $f12, $f20 +/* 07C40C 7F0478DC C7A4047C */ lwc1 $f4, 0x47c($sp) +.L7F0478E0: +/* 07C410 7F0478E0 460C2032 */ c.eq.s $f4, $f12 +/* 07C414 7F0478E4 00000000 */ nop +/* 07C418 7F0478E8 4502000F */ bc1fl .L7F047928 +/* 07C41C 7F0478EC 8E980008 */ lw $t8, 8($s4) +/* 07C420 7F0478F0 C620009C */ lwc1 $f0, 0x9c($s1) +/* 07C424 7F0478F4 C4262B58 */ lwc1 $f6, %lo(D_80052B58)($at) +/* 07C428 7F0478F8 3C018005 */ lui $at, %hi(D_80052B5C) +/* 07C42C 7F0478FC 4606003E */ c.le.s $f0, $f6 +/* 07C430 7F047900 00000000 */ nop +/* 07C434 7F047904 45020008 */ bc1fl .L7F047928 +/* 07C438 7F047908 8E980008 */ lw $t8, 8($s4) +/* 07C43C 7F04790C C42A2B5C */ lwc1 $f10, %lo(D_80052B5C)($at) +/* 07C440 7F047910 4600503E */ c.le.s $f10, $f0 +/* 07C444 7F047914 00000000 */ nop +/* 07C448 7F047918 45020003 */ bc1fl .L7F047928 +/* 07C44C 7F04791C 8E980008 */ lw $t8, 8($s4) +/* 07C450 7F047920 E636009C */ swc1 $f22, 0x9c($s1) +/* 07C454 7F047924 8E980008 */ lw $t8, 8($s4) +.L7F047928: +/* 07C458 7F047928 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C45C 7F04792C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C460 7F047930 8F0F0008 */ lw $t7, 8($t8) +/* 07C464 7F047934 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C468 7F047938 4602B03C */ c.lt.s $f22, $f2 +/* 07C46C 7F04793C 8DE8000C */ lw $t0, 0xc($t7) +/* 07C470 7F047940 45000004 */ bc1f .L7F047954 +/* 07C474 7F047944 8D100004 */ lw $s0, 4($t0) +/* 07C478 7F047948 C62800A0 */ lwc1 $f8, 0xa0($s1) +/* 07C47C 7F04794C 46044181 */ sub.s $f6, $f8, $f4 +/* 07C480 7F047950 46023383 */ div.s $f14, $f6, $f2 +.L7F047954: +/* 07C484 7F047954 4616703C */ c.lt.s $f14, $f22 +/* 07C488 7F047958 00000000 */ nop +/* 07C48C 7F04795C 45000002 */ bc1f .L7F047968 +/* 07C490 7F047960 00000000 */ nop +/* 07C494 7F047964 46147380 */ add.s $f14, $f14, $f20 +.L7F047968: +/* 07C498 7F047968 0FC15FAB */ jal sinf +/* 07C49C 7F04796C 46007306 */ mov.s $f12, $f14 +/* 07C4A0 7F047970 C60A0008 */ lwc1 $f10, 8($s0) +/* 07C4A4 7F047974 C6880014 */ lwc1 $f8, 0x14($s4) +/* 07C4A8 7F047978 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4AC 7F04797C 46085102 */ mul.s $f4, $f10, $f8 +/* 07C4B0 7F047980 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07C4B4 7F047984 46040182 */ mul.s $f6, $f0, $f4 +/* 07C4B8 7F047988 00000000 */ nop +/* 07C4BC 7F04798C 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C4C0 7F047990 E7A80460 */ swc1 $f8, 0x460($sp) +/* 07C4C4 7F047994 0FC15FAB */ jal sinf +/* 07C4C8 7F047998 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4CC 7F04799C E7A0043C */ swc1 $f0, 0x43c($sp) +/* 07C4D0 7F0479A0 E7B60440 */ swc1 $f22, 0x440($sp) +/* 07C4D4 7F0479A4 0FC15FA8 */ jal cosf +/* 07C4D8 7F0479A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07C4DC 7F0479AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C4E0 7F0479B0 44817000 */ mtc1 $at, $f14 +/* 07C4E4 7F0479B4 E7A00444 */ swc1 $f0, 0x444($sp) +/* 07C4E8 7F0479B8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07C4EC 7F0479BC C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07C4F0 7F0479C0 C6240088 */ lwc1 $f4, 0x88($s1) +/* 07C4F4 7F0479C4 C7AA043C */ lwc1 $f10, 0x43c($sp) +/* 07C4F8 7F0479C8 C7AC0460 */ lwc1 $f12, 0x460($sp) +/* 07C4FC 7F0479CC 46022182 */ mul.s $f6, $f4, $f2 +/* 07C500 7F0479D0 C6240058 */ lwc1 $f4, 0x58($s1) +/* 07C504 7F0479D4 27B00468 */ addiu $s0, $sp, 0x468 +/* 07C508 7F0479D8 240B001F */ li $t3, 31 +/* 07C50C 7F0479DC 02002025 */ move $a0, $s0 +/* 07C510 7F0479E0 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C514 7F0479E4 46082180 */ add.s $f6, $f4, $f8 +/* 07C518 7F0479E8 C7A40444 */ lwc1 $f4, 0x444($sp) +/* 07C51C 7F0479EC 460C2202 */ mul.s $f8, $f4, $f12 +/* 07C520 7F0479F0 46083181 */ sub.s $f6, $f6, $f8 +/* 07C524 7F0479F4 E7A60694 */ swc1 $f6, 0x694($sp) +/* 07C528 7F0479F8 C628005C */ lwc1 $f8, 0x5c($s1) +/* 07C52C 7F0479FC 44073000 */ mfc1 $a3, $f6 +/* 07C530 7F047A00 E7A80698 */ swc1 $f8, 0x698($sp) +/* 07C534 7F047A04 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07C538 7F047A08 46024202 */ mul.s $f8, $f8, $f2 +/* 07C53C 7F047A0C 00000000 */ nop +/* 07C540 7F047A10 46044202 */ mul.s $f8, $f8, $f4 +/* 07C544 7F047A14 C6240060 */ lwc1 $f4, 0x60($s1) +/* 07C548 7F047A18 46082100 */ add.s $f4, $f4, $f8 +/* 07C54C 7F047A1C 460C5202 */ mul.s $f8, $f10, $f12 +/* 07C550 7F047A20 46044280 */ add.s $f10, $f8, $f4 +/* 07C554 7F047A24 E7AA069C */ swc1 $f10, 0x69c($sp) +/* 07C558 7F047A28 8E660010 */ lw $a2, 0x10($s3) +/* 07C55C 7F047A2C 8E650008 */ lw $a1, 8($s3) +/* 07C560 7F047A30 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07C564 7F047A34 E7B60018 */ swc1 $f22, 0x18($sp) +/* 07C568 7F047A38 AFAB0014 */ sw $t3, 0x14($sp) +/* 07C56C 7F047A3C E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C570 7F047A40 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 07C574 7F047A44 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07C578 7F047A48 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 07C57C 7F047A4C 104000FA */ beqz $v0, .L7F047E38 +/* 07C580 7F047A50 02002025 */ move $a0, $s0 +/* 07C584 7F047A54 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07C588 7F047A58 44814000 */ mtc1 $at, $f8 +/* 07C58C 7F047A5C 2409001F */ li $t1, 31 +/* 07C590 7F047A60 AFA90010 */ sw $t1, 0x10($sp) +/* 07C594 7F047A64 8FA50694 */ lw $a1, 0x694($sp) +/* 07C598 7F047A68 8FA6069C */ lw $a2, 0x69c($sp) +/* 07C59C 7F047A6C 3C074120 */ lui $a3, 0x4120 +/* 07C5A0 7F047A70 E7B60014 */ swc1 $f22, 0x14($sp) +/* 07C5A4 7F047A74 0FC2C62E */ jal sub_GAME_7F0B18B8 +/* 07C5A8 7F047A78 E7A80018 */ swc1 $f8, 0x18($sp) +/* 07C5AC 7F047A7C 044300EF */ bgezl $v0, .L7F047E3C +/* 07C5B0 7F047A80 C6260098 */ lwc1 $f6, 0x98($s1) +/* 07C5B4 7F047A84 8E790014 */ lw $t9, 0x14($s3) +/* 07C5B8 7F047A88 8FAA0468 */ lw $t2, 0x468($sp) +/* 07C5BC 7F047A8C 02202025 */ move $a0, $s1 +/* 07C5C0 7F047A90 AFB9044C */ sw $t9, 0x44c($sp) +/* 07C5C4 7F047A94 C6640008 */ lwc1 $f4, 8($s3) +/* 07C5C8 7F047A98 E7A40450 */ swc1 $f4, 0x450($sp) +/* 07C5CC 7F047A9C C666000C */ lwc1 $f6, 0xc($s3) +/* 07C5D0 7F047AA0 E7A60454 */ swc1 $f6, 0x454($sp) +/* 07C5D4 7F047AA4 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 07C5D8 7F047AA8 E7AA0458 */ swc1 $f10, 0x458($sp) +/* 07C5DC 7F047AAC AE6A0014 */ sw $t2, 0x14($s3) +/* 07C5E0 7F047AB0 C7A20694 */ lwc1 $f2, 0x694($sp) +/* 07C5E4 7F047AB4 E6620008 */ swc1 $f2, 8($s3) +/* 07C5E8 7F047AB8 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C5EC 7F047ABC C7A2069C */ lwc1 $f2, 0x69c($sp) +/* 07C5F0 7F047AC0 E6620010 */ swc1 $f2, 0x10($s3) +/* 07C5F4 7F047AC4 0FC10121 */ jal sub_GAME_7F040484 +/* 07C5F8 7F047AC8 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C5FC 7F047ACC 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C600 7F047AD0 02202025 */ move $a0, $s1 +/* 07C604 7F047AD4 0FC1122A */ jal sub_GAME_7F0448A8 +/* 07C608 7F047AD8 02602025 */ move $a0, $s3 +/* 07C60C 7F047ADC 10400092 */ beqz $v0, .L7F047D28 +/* 07C610 7F047AE0 00409025 */ move $s2, $v0 +/* 07C614 7F047AE4 8E8C0008 */ lw $t4, 8($s4) +/* 07C618 7F047AE8 C6280018 */ lwc1 $f8, 0x18($s1) +/* 07C61C 7F047AEC 02002025 */ move $a0, $s0 +/* 07C620 7F047AF0 8D8E0008 */ lw $t6, 8($t4) +/* 07C624 7F047AF4 8DCD0028 */ lw $t5, 0x28($t6) +/* 07C628 7F047AF8 8DA20004 */ lw $v0, 4($t5) +/* 07C62C 7F047AFC C4440004 */ lwc1 $f4, 4($v0) +/* 07C630 7F047B00 46044182 */ mul.s $f6, $f8, $f4 +/* 07C634 7F047B04 E7A60424 */ swc1 $f6, 0x424($sp) +/* 07C638 7F047B08 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 07C63C 7F047B0C C4480004 */ lwc1 $f8, 4($v0) +/* 07C640 7F047B10 46085102 */ mul.s $f4, $f10, $f8 +/* 07C644 7F047B14 E7A4042C */ swc1 $f4, 0x42c($sp) +/* 07C648 7F047B18 C6260018 */ lwc1 $f6, 0x18($s1) +/* 07C64C 7F047B1C C44A0008 */ lwc1 $f10, 8($v0) +/* 07C650 7F047B20 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C654 7F047B24 E7A80418 */ swc1 $f8, 0x418($sp) +/* 07C658 7F047B28 C6240020 */ lwc1 $f4, 0x20($s1) +/* 07C65C 7F047B2C C4460008 */ lwc1 $f6, 8($v0) +/* 07C660 7F047B30 46062282 */ mul.s $f10, $f4, $f6 +/* 07C664 7F047B34 E7AA0420 */ swc1 $f10, 0x420($sp) +/* 07C668 7F047B38 C6280038 */ lwc1 $f8, 0x38($s1) +/* 07C66C 7F047B3C C4440014 */ lwc1 $f4, 0x14($v0) +/* 07C670 7F047B40 46044182 */ mul.s $f6, $f8, $f4 +/* 07C674 7F047B44 E7A6040C */ swc1 $f6, 0x40c($sp) +/* 07C678 7F047B48 C62A0040 */ lwc1 $f10, 0x40($s1) +/* 07C67C 7F047B4C C4480014 */ lwc1 $f8, 0x14($v0) +/* 07C680 7F047B50 46085102 */ mul.s $f4, $f10, $f8 +/* 07C684 7F047B54 E7A40414 */ swc1 $f4, 0x414($sp) +/* 07C688 7F047B58 C6260038 */ lwc1 $f6, 0x38($s1) +/* 07C68C 7F047B5C C44A0018 */ lwc1 $f10, 0x18($v0) +/* 07C690 7F047B60 460A3202 */ mul.s $f8, $f6, $f10 +/* 07C694 7F047B64 E7A80400 */ swc1 $f8, 0x400($sp) +/* 07C698 7F047B68 C6240040 */ lwc1 $f4, 0x40($s1) +/* 07C69C 7F047B6C C4460018 */ lwc1 $f6, 0x18($v0) +/* 07C6A0 7F047B70 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6A4 7F047B74 46062282 */ mul.s $f10, $f4, $f6 +/* 07C6A8 7F047B78 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6AC 7F047B7C E7AA0408 */ swc1 $f10, 0x408($sp) +/* 07C6B0 7F047B80 8E780014 */ lw $t8, 0x14($s3) +/* 07C6B4 7F047B84 AFB80468 */ sw $t8, 0x468($sp) +/* 07C6B8 7F047B88 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6BC 7F047B8C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C6C0 7F047B90 46040180 */ add.s $f6, $f0, $f4 +/* 07C6C4 7F047B94 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C6C8 7F047B98 44050000 */ mfc1 $a1, $f0 +/* 07C6CC 7F047B9C 44061000 */ mfc1 $a2, $f2 +/* 07C6D0 7F047BA0 46064280 */ add.s $f10, $f8, $f6 +/* 07C6D4 7F047BA4 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C6D8 7F047BA8 46081180 */ add.s $f6, $f2, $f8 +/* 07C6DC 7F047BAC 44075000 */ mfc1 $a3, $f10 +/* 07C6E0 7F047BB0 46062280 */ add.s $f10, $f4, $f6 +/* 07C6E4 7F047BB4 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C6E8 7F047BB8 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C6EC 7F047BBC 10400059 */ beqz $v0, .L7F047D24 +/* 07C6F0 7F047BC0 C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C6F4 7F047BC4 C6600008 */ lwc1 $f0, 8($s3) +/* 07C6F8 7F047BC8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C6FC 7F047BCC C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C700 7F047BD0 46040180 */ add.s $f6, $f0, $f4 +/* 07C704 7F047BD4 C7A40414 */ lwc1 $f4, 0x414($sp) +/* 07C708 7F047BD8 02002025 */ move $a0, $s0 +/* 07C70C 7F047BDC 46064280 */ add.s $f10, $f8, $f6 +/* 07C710 7F047BE0 C7A6042C */ lwc1 $f6, 0x42c($sp) +/* 07C714 7F047BE4 44055000 */ mfc1 $a1, $f10 +/* 07C718 7F047BE8 46061280 */ add.s $f10, $f2, $f6 +/* 07C71C 7F047BEC 460A2180 */ add.s $f6, $f4, $f10 +/* 07C720 7F047BF0 C7AA0418 */ lwc1 $f10, 0x418($sp) +/* 07C724 7F047BF4 44063000 */ mfc1 $a2, $f6 +/* 07C728 7F047BF8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C72C 7F047BFC 46064280 */ add.s $f10, $f8, $f6 +/* 07C730 7F047C00 C7A80420 */ lwc1 $f8, 0x420($sp) +/* 07C734 7F047C04 46081180 */ add.s $f6, $f2, $f8 +/* 07C738 7F047C08 44075000 */ mfc1 $a3, $f10 +/* 07C73C 7F047C0C 46062280 */ add.s $f10, $f4, $f6 +/* 07C740 7F047C10 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C744 7F047C14 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C748 7F047C18 10400042 */ beqz $v0, .L7F047D24 +/* 07C74C 7F047C1C C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C750 7F047C20 C6680008 */ lwc1 $f8, 8($s3) +/* 07C754 7F047C24 C7A6040C */ lwc1 $f6, 0x40c($sp) +/* 07C758 7F047C28 02002025 */ move $a0, $s0 +/* 07C75C 7F047C2C 46044000 */ add.s $f0, $f8, $f4 +/* 07C760 7F047C30 C7A40420 */ lwc1 $f4, 0x420($sp) +/* 07C764 7F047C34 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C768 7F047C38 46003280 */ add.s $f10, $f6, $f0 +/* 07C76C 7F047C3C C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C770 7F047C40 46044080 */ add.s $f2, $f8, $f4 +/* 07C774 7F047C44 44055000 */ mfc1 $a1, $f10 +/* 07C778 7F047C48 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C77C 7F047C4C 46023280 */ add.s $f10, $f6, $f2 +/* 07C780 7F047C50 C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C784 7F047C54 46004100 */ add.s $f4, $f8, $f0 +/* 07C788 7F047C58 44065000 */ mfc1 $a2, $f10 +/* 07C78C 7F047C5C 46023280 */ add.s $f10, $f6, $f2 +/* 07C790 7F047C60 44072000 */ mfc1 $a3, $f4 +/* 07C794 7F047C64 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C798 7F047C68 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C79C 7F047C6C 1040002D */ beqz $v0, .L7F047D24 +/* 07C7A0 7F047C70 C7A40418 */ lwc1 $f4, 0x418($sp) +/* 07C7A4 7F047C74 C6600008 */ lwc1 $f0, 8($s3) +/* 07C7A8 7F047C78 C7A80400 */ lwc1 $f8, 0x400($sp) +/* 07C7AC 7F047C7C C6620010 */ lwc1 $f2, 0x10($s3) +/* 07C7B0 7F047C80 46040180 */ add.s $f6, $f0, $f4 +/* 07C7B4 7F047C84 C7A40408 */ lwc1 $f4, 0x408($sp) +/* 07C7B8 7F047C88 02002025 */ move $a0, $s0 +/* 07C7BC 7F047C8C 46064280 */ add.s $f10, $f8, $f6 +/* 07C7C0 7F047C90 C7A60420 */ lwc1 $f6, 0x420($sp) +/* 07C7C4 7F047C94 44055000 */ mfc1 $a1, $f10 +/* 07C7C8 7F047C98 46061280 */ add.s $f10, $f2, $f6 +/* 07C7CC 7F047C9C 460A2180 */ add.s $f6, $f4, $f10 +/* 07C7D0 7F047CA0 C7AA0424 */ lwc1 $f10, 0x424($sp) +/* 07C7D4 7F047CA4 44063000 */ mfc1 $a2, $f6 +/* 07C7D8 7F047CA8 460A0180 */ add.s $f6, $f0, $f10 +/* 07C7DC 7F047CAC 46064280 */ add.s $f10, $f8, $f6 +/* 07C7E0 7F047CB0 C7A8042C */ lwc1 $f8, 0x42c($sp) +/* 07C7E4 7F047CB4 46081180 */ add.s $f6, $f2, $f8 +/* 07C7E8 7F047CB8 44075000 */ mfc1 $a3, $f10 +/* 07C7EC 7F047CBC 46062280 */ add.s $f10, $f4, $f6 +/* 07C7F0 7F047CC0 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C7F4 7F047CC4 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C7F8 7F047CC8 10400016 */ beqz $v0, .L7F047D24 +/* 07C7FC 7F047CCC C7A40424 */ lwc1 $f4, 0x424($sp) +/* 07C800 7F047CD0 C6680008 */ lwc1 $f8, 8($s3) +/* 07C804 7F047CD4 C7A60400 */ lwc1 $f6, 0x400($sp) +/* 07C808 7F047CD8 02002025 */ move $a0, $s0 +/* 07C80C 7F047CDC 46044000 */ add.s $f0, $f8, $f4 +/* 07C810 7F047CE0 C7A4042C */ lwc1 $f4, 0x42c($sp) +/* 07C814 7F047CE4 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07C818 7F047CE8 46003280 */ add.s $f10, $f6, $f0 +/* 07C81C 7F047CEC C7A60408 */ lwc1 $f6, 0x408($sp) +/* 07C820 7F047CF0 46044080 */ add.s $f2, $f8, $f4 +/* 07C824 7F047CF4 44055000 */ mfc1 $a1, $f10 +/* 07C828 7F047CF8 C7A8040C */ lwc1 $f8, 0x40c($sp) +/* 07C82C 7F047CFC 46023280 */ add.s $f10, $f6, $f2 +/* 07C830 7F047D00 C7A60414 */ lwc1 $f6, 0x414($sp) +/* 07C834 7F047D04 46004100 */ add.s $f4, $f8, $f0 +/* 07C838 7F047D08 44065000 */ mfc1 $a2, $f10 +/* 07C83C 7F047D0C 46023280 */ add.s $f10, $f6, $f2 +/* 07C840 7F047D10 44072000 */ mfc1 $a3, $f4 +/* 07C844 7F047D14 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07C848 7F047D18 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 07C84C 7F047D1C 14400002 */ bnez $v0, .L7F047D28 +/* 07C850 7F047D20 00000000 */ nop +.L7F047D24: +/* 07C854 7F047D24 00009025 */ move $s2, $zero +.L7F047D28: +/* 07C858 7F047D28 12400023 */ beqz $s2, .L7F047DB8 +/* 07C85C 7F047D2C 02202025 */ move $a0, $s1 +/* 07C860 7F047D30 262F0058 */ addiu $t7, $s1, 0x58 +/* 07C864 7F047D34 AFAF0070 */ sw $t7, 0x70($sp) +/* 07C868 7F047D38 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C86C 7F047D3C 2630007C */ addiu $s0, $s1, 0x7c +/* 07C870 7F047D40 02602025 */ move $a0, $s3 +/* 07C874 7F047D44 0FC100AD */ jal sub_GAME_7F0402B4 +/* 07C878 7F047D48 02002825 */ move $a1, $s0 +/* 07C87C 7F047D4C 0FC146F3 */ jal detonate_proxmine_In_range +/* 07C880 7F047D50 8FA40070 */ lw $a0, 0x70($sp) +/* 07C884 7F047D54 8FA80478 */ lw $t0, 0x478($sp) +/* 07C888 7F047D58 27A40450 */ addiu $a0, $sp, 0x450 +/* 07C88C 7F047D5C 27A50694 */ addiu $a1, $sp, 0x694 +/* 07C890 7F047D60 11000054 */ beqz $t0, .L7F047EB4 +/* 07C894 7F047D64 01003025 */ move $a2, $t0 +/* 07C898 7F047D68 0FC0BF54 */ jal sub_GAME_7F02FD50 +/* 07C89C 7F047D6C 3C0742C8 */ lui $a3, 0x42c8 +/* 07C8A0 7F047D70 10400050 */ beqz $v0, .L7F047EB4 +/* 07C8A4 7F047D74 00000000 */ nop +/* 07C8A8 7F047D78 8E2B00A8 */ lw $t3, 0xa8($s1) +/* 07C8AC 7F047D7C 8E3900A4 */ lw $t9, 0xa4($s1) +/* 07C8B0 7F047D80 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8B4 7F047D84 25690001 */ addiu $t1, $t3, 1 +/* 07C8B8 7F047D88 AE2900A8 */ sw $t1, 0xa8($s1) +/* 07C8BC 7F047D8C 8F2A0000 */ lw $t2, ($t9) +/* 07C8C0 7F047D90 00097080 */ sll $t6, $t1, 2 +/* 07C8C4 7F047D94 014E6821 */ addu $t5, $t2, $t6 +/* 07C8C8 7F047D98 8DB80000 */ lw $t8, ($t5) +/* 07C8CC 7F047D9C 07010045 */ bgez $t8, .L7F047EB4 +/* 07C8D0 7F047DA0 00000000 */ nop +/* 07C8D4 7F047DA4 44814000 */ mtc1 $at, $f8 +/* 07C8D8 7F047DA8 AE2000A4 */ sw $zero, 0xa4($s1) +/* 07C8DC 7F047DAC E6360094 */ swc1 $f22, 0x94($s1) +/* 07C8E0 7F047DB0 10000040 */ b .L7F047EB4 +/* 07C8E4 7F047DB4 E6280098 */ swc1 $f8, 0x98($s1) +.L7F047DB8: +/* 07C8E8 7F047DB8 C6240098 */ lwc1 $f4, 0x98($s1) +/* 07C8EC 7F047DBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C8F0 7F047DC0 4616203C */ c.lt.s $f4, $f22 +/* 07C8F4 7F047DC4 00000000 */ nop +/* 07C8F8 7F047DC8 45020006 */ bc1fl .L7F047DE4 +/* 07C8FC 7F047DCC E6360088 */ swc1 $f22, 0x88($s1) +/* 07C900 7F047DD0 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07C904 7F047DD4 44815000 */ mtc1 $at, $f10 +/* 07C908 7F047DD8 E6260094 */ swc1 $f6, 0x94($s1) +/* 07C90C 7F047DDC E62A0098 */ swc1 $f10, 0x98($s1) +/* 07C910 7F047DE0 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047DE4: +/* 07C914 7F047DE4 C7A80438 */ lwc1 $f8, 0x438($sp) +/* 07C918 7F047DE8 02202025 */ move $a0, $s1 +/* 07C91C 7F047DEC E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07C920 7F047DF0 C7A40434 */ lwc1 $f4, 0x434($sp) +/* 07C924 7F047DF4 E624009C */ swc1 $f4, 0x9c($s1) +/* 07C928 7F047DF8 8FAF044C */ lw $t7, 0x44c($sp) +/* 07C92C 7F047DFC AE6F0014 */ sw $t7, 0x14($s3) +/* 07C930 7F047E00 C7A20450 */ lwc1 $f2, 0x450($sp) +/* 07C934 7F047E04 E6620008 */ swc1 $f2, 8($s3) +/* 07C938 7F047E08 E6220058 */ swc1 $f2, 0x58($s1) +/* 07C93C 7F047E0C C7A20454 */ lwc1 $f2, 0x454($sp) +/* 07C940 7F047E10 E662000C */ swc1 $f2, 0xc($s3) +/* 07C944 7F047E14 E622005C */ swc1 $f2, 0x5c($s1) +/* 07C948 7F047E18 C7A20458 */ lwc1 $f2, 0x458($sp) +/* 07C94C 7F047E1C E6620010 */ swc1 $f2, 0x10($s3) +/* 07C950 7F047E20 0FC10121 */ jal sub_GAME_7F040484 +/* 07C954 7F047E24 E6220060 */ swc1 $f2, 0x60($s1) +/* 07C958 7F047E28 0FC15B28 */ jal sub_GAME_7F056CA0 +/* 07C95C 7F047E2C 02202025 */ move $a0, $s1 +/* 07C960 7F047E30 10000020 */ b .L7F047EB4 +/* 07C964 7F047E34 00000000 */ nop +.L7F047E38: +/* 07C968 7F047E38 C6260098 */ lwc1 $f6, 0x98($s1) +.L7F047E3C: +/* 07C96C 7F047E3C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 07C970 7F047E40 4616303C */ c.lt.s $f6, $f22 +/* 07C974 7F047E44 00000000 */ nop +/* 07C978 7F047E48 45020006 */ bc1fl .L7F047E64 +/* 07C97C 7F047E4C E6360088 */ swc1 $f22, 0x88($s1) +/* 07C980 7F047E50 C62A0088 */ lwc1 $f10, 0x88($s1) +/* 07C984 7F047E54 44814000 */ mtc1 $at, $f8 +/* 07C988 7F047E58 E62A0094 */ swc1 $f10, 0x94($s1) +/* 07C98C 7F047E5C E6280098 */ swc1 $f8, 0x98($s1) +/* 07C990 7F047E60 E6360088 */ swc1 $f22, 0x88($s1) +.L7F047E64: +/* 07C994 7F047E64 C7A40438 */ lwc1 $f4, 0x438($sp) +/* 07C998 7F047E68 E62400A0 */ swc1 $f4, 0xa0($s1) +/* 07C99C 7F047E6C C7A60434 */ lwc1 $f6, 0x434($sp) +/* 07C9A0 7F047E70 10000010 */ b .L7F047EB4 +/* 07C9A4 7F047E74 E626009C */ swc1 $f6, 0x9c($s1) +/* 07C9A8 7F047E78 8E280008 */ lw $t0, 8($s1) +.L7F047E7C: +/* 07C9AC 7F047E7C 00085880 */ sll $t3, $t0, 2 +/* 07C9B0 7F047E80 0561000C */ bgez $t3, .L7F047EB4 +/* 07C9B4 7F047E84 00000000 */ nop +/* 07C9B8 7F047E88 C62C0038 */ lwc1 $f12, 0x38($s1) +/* 07C9BC 7F047E8C 0FC16A8C */ jal atan2f +/* 07C9C0 7F047E90 C62E0040 */ lwc1 $f14, 0x40($s1) +/* 07C9C4 7F047E94 8E290008 */ lw $t1, 8($s1) +/* 07C9C8 7F047E98 3C01DFFF */ lui $at, (0xDFFFFFFF >> 16) # lui $at, 0xdfff +/* 07C9CC 7F047E9C 3421FFFF */ ori $at, (0xDFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 07C9D0 7F047EA0 0121C824 */ and $t9, $t1, $at +/* 07C9D4 7F047EA4 E62000A0 */ swc1 $f0, 0xa0($s1) +/* 07C9D8 7F047EA8 AE390008 */ sw $t9, 8($s1) +/* 07C9DC 7F047EAC 0FC112CE */ jal sub_GAME_7F044B38 +/* 07C9E0 7F047EB0 02202025 */ move $a0, $s1 +.L7F047EB4: +/* 07C9E4 7F047EB4 100000DE */ b .L7F048230 +/* 07C9E8 7F047EB8 92220003 */ lbu $v0, 3($s1) +.L7F047EBC: +/* 07C9EC 7F047EBC 24010028 */ li $at, 40 +/* 07C9F0 7F047EC0 144100DA */ bne $v0, $at, .L7F04822C +/* 07C9F4 7F047EC4 02202025 */ move $a0, $s1 +/* 07C9F8 7F047EC8 0FC0D521 */ jal parse_handle_actionblocks +/* 07C9FC 7F047ECC 24050001 */ li $a1, 1 +/* 07CA00 7F047ED0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA04 7F047ED4 26250058 */ addiu $a1, $s1, 0x58 +/* 07CA08 7F047ED8 8E0C0020 */ lw $t4, 0x20($s0) +/* 07CA0C 7F047EDC 02002025 */ move $a0, $s0 +/* 07CA10 7F047EE0 51800065 */ beql $t4, $zero, .L7F048078 +/* 07CA14 7F047EE4 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CA18 7F047EE8 0FC1B303 */ jal setsuboffset +/* 07CA1C 7F047EEC AFA50070 */ sw $a1, 0x70($sp) +/* 07CA20 7F047EF0 8E300014 */ lw $s0, 0x14($s1) +/* 07CA24 7F047EF4 3C0E8003 */ lui $t6, %hi(animation_table_ptrs2+4) +/* 07CA28 7F047EF8 8DCEA050 */ lw $t6, %lo(animation_table_ptrs2+4)($t6) +/* 07CA2C 7F047EFC 8E0A0020 */ lw $t2, 0x20($s0) +/* 07CA30 7F047F00 3C054127 */ lui $a1, (0x4127020C >> 16) # lui $a1, 0x4127 +/* 07CA34 7F047F04 02002025 */ move $a0, $s0 +/* 07CA38 7F047F08 154E0009 */ bne $t2, $t6, .L7F047F30 +/* 07CA3C 7F047F0C 00000000 */ nop +/* 07CA40 7F047F10 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA44 7F047F14 34A5020C */ ori $a1, (0x4127020C & 0xFFFF) # ori $a1, $a1, 0x20c +/* 07CA48 7F047F18 3C054049 */ lui $a1, (0x40490FDB >> 16) # lui $a1, 0x4049 +/* 07CA4C 7F047F1C 34A50FDB */ ori $a1, (0x40490FDB & 0xFFFF) # ori $a1, $a1, 0xfdb +/* 07CA50 7F047F20 0FC1B34F */ jal setsubroty +/* 07CA54 7F047F24 8E240014 */ lw $a0, 0x14($s1) +/* 07CA58 7F047F28 10000024 */ b .L7F047FBC +/* 07CA5C 7F047F2C 00000000 */ nop +.L7F047F30: +/* 07CA60 7F047F30 0C001A57 */ jal bossGetStageNum +/* 07CA64 7F047F34 00000000 */ nop +/* 07CA68 7F047F38 24010016 */ li $at, 22 +/* 07CA6C 7F047F3C 1441000A */ bne $v0, $at, .L7F047F68 +/* 07CA70 7F047F40 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CA74 7F047F44 8E240014 */ lw $a0, 0x14($s1) +/* 07CA78 7F047F48 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CA7C 7F047F4C 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CA80 7F047F50 3C054016 */ lui $a1, (0x4016CBE4 >> 16) # lui $a1, 0x4016 +/* 07CA84 7F047F54 34A5CBE4 */ ori $a1, (0x4016CBE4 & 0xFFFF) # ori $a1, $a1, 0xcbe4 +/* 07CA88 7F047F58 0FC1B34F */ jal setsubroty +/* 07CA8C 7F047F5C 8E240014 */ lw $a0, 0x14($s1) +/* 07CA90 7F047F60 10000016 */ b .L7F047FBC +/* 07CA94 7F047F64 00000000 */ nop +.L7F047F68: +/* 07CA98 7F047F68 0C001A57 */ jal bossGetStageNum +/* 07CA9C 7F047F6C 00000000 */ nop +/* 07CAA0 7F047F70 2401001A */ li $at, 26 +/* 07CAA4 7F047F74 1441000B */ bne $v0, $at, .L7F047FA4 +/* 07CAA8 7F047F78 3C053F85 */ lui $a1, 0x3f85 +/* 07CAAC 7F047F7C 3C053F85 */ lui $a1, (0x3F859B3D >> 16) # lui $a1, 0x3f85 +/* 07CAB0 7F047F80 34A59B3D */ ori $a1, (0x3F859B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAB4 7F047F84 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CAB8 7F047F88 8E240014 */ lw $a0, 0x14($s1) +/* 07CABC 7F047F8C 3C05407B */ lui $a1, (0x407B9B3D >> 16) # lui $a1, 0x407b +/* 07CAC0 7F047F90 34A553D1 */ ori $a1, (0x407B53D1 & 0xFFFF) # ori $a1, $a1, 0x53d1 +/* 07CAC4 7F047F94 0FC1B34F */ jal setsubroty +/* 07CAC8 7F047F98 8E240014 */ lw $a0, 0x14($s1) +/* 07CACC 7F047F9C 10000007 */ b .L7F047FBC +/* 07CAD0 7F047FA0 00000000 */ nop +.L7F047FA4: +/* 07CAD4 7F047FA4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAD8 7F047FA8 0FC1B3A1 */ jal sub_GAME_7F06CE84 +/* 07CADC 7F047FAC 34A59B3D */ ori $a1, (0x407B9B3D & 0xFFFF) # ori $a1, $a1, 0x9b3d +/* 07CAE0 7F047FB0 4405B000 */ mfc1 $a1, $f22 +/* 07CAE4 7F047FB4 0FC1B34F */ jal setsubroty +/* 07CAE8 7F047FB8 8E240014 */ lw $a0, 0x14($s1) +.L7F047FBC: +/* 07CAEC 7F047FBC 3C058005 */ lui $a1, %hi(clock_timer) +/* 07CAF0 7F047FC0 8CA58374 */ lw $a1, %lo(clock_timer)($a1) +/* 07CAF4 7F047FC4 8E240014 */ lw $a0, 0x14($s1) +/* 07CAF8 7F047FC8 0FC1C2BB */ jal sub_GAME_7F070AEC +/* 07CAFC 7F047FCC 24060001 */ li $a2, 1 +/* 07CB00 7F047FD0 0FC1B5AC */ jal subcalcpos +/* 07CB04 7F047FD4 8E240014 */ lw $a0, 0x14($s1) +/* 07CB08 7F047FD8 8E240014 */ lw $a0, 0x14($s1) +/* 07CB0C 7F047FDC 0FC1B2E6 */ jal getsuboffset +/* 07CB10 7F047FE0 8FA50070 */ lw $a1, 0x70($sp) +/* 07CB14 7F047FE4 C62A0058 */ lwc1 $f10, 0x58($s1) +/* 07CB18 7F047FE8 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB1C 7F047FEC 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB20 7F047FF0 E66A0008 */ swc1 $f10, 8($s3) +/* 07CB24 7F047FF4 C6280060 */ lwc1 $f8, 0x60($s1) +/* 07CB28 7F047FF8 E6680010 */ swc1 $f8, 0x10($s3) +/* 07CB2C 7F047FFC 86220006 */ lh $v0, 6($s1) +/* 07CB30 7F048000 28412710 */ slti $at, $v0, 0x2710 +/* 07CB34 7F048004 1020000B */ beqz $at, .L7F048034 +/* 07CB38 7F048008 00027900 */ sll $t7, $v0, 4 +/* 07CB3C 7F04800C 00026880 */ sll $t5, $v0, 2 +/* 07CB40 7F048010 3C058007 */ lui $a1, %hi(ptr_setup_path_tbl) +/* 07CB44 7F048014 01A26823 */ subu $t5, $t5, $v0 +/* 07CB48 7F048018 24A55D00 */ addiu $a1, %lo(ptr_setup_path_tbl) # addiu $a1, $a1, 0x5d00 +/* 07CB4C 7F04801C 000D6880 */ sll $t5, $t5, 2 +/* 07CB50 7F048020 8CB80018 */ lw $t8, 0x18($a1) +/* 07CB54 7F048024 01A26823 */ subu $t5, $t5, $v0 +/* 07CB58 7F048028 000D6880 */ sll $t5, $t5, 2 +/* 07CB5C 7F04802C 10000008 */ b .L7F048050 +/* 07CB60 7F048030 01B81821 */ addu $v1, $t5, $t8 +.L7F048034: +/* 07CB64 7F048034 8CA8001C */ lw $t0, 0x1c($a1) +/* 07CB68 7F048038 01E27821 */ addu $t7, $t7, $v0 +/* 07CB6C 7F04803C 000F7880 */ sll $t7, $t7, 2 +/* 07CB70 7F048040 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 07CB74 7F048044 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 07CB78 7F048048 01E81821 */ addu $v1, $t7, $t0 +/* 07CB7C 7F04804C 00611821 */ addu $v1, $v1, $at +.L7F048050: +/* 07CB80 7F048050 C624005C */ lwc1 $f4, 0x5c($s1) +/* 07CB84 7F048054 C4660004 */ lwc1 $f6, 4($v1) +/* 07CB88 7F048058 46062280 */ add.s $f10, $f4, $f6 +/* 07CB8C 7F04805C E66A000C */ swc1 $f10, 0xc($s3) +/* 07CB90 7F048060 C668000C */ lwc1 $f8, 0xc($s3) +/* 07CB94 7F048064 8E240014 */ lw $a0, 0x14($s1) +/* 07CB98 7F048068 E628005C */ swc1 $f8, 0x5c($s1) +/* 07CB9C 7F04806C 0FC1B303 */ jal setsuboffset +/* 07CBA0 7F048070 8FA50070 */ lw $a1, 0x70($sp) +/* 07CBA4 7F048074 C62C00A0 */ lwc1 $f12, 0xa0($s1) +.L7F048078: +/* 07CBA8 7F048078 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBAC 7F04807C 460CB03E */ c.le.s $f22, $f12 +/* 07CBB0 7F048080 00000000 */ nop +/* 07CBB4 7F048084 45020016 */ bc1fl .L7F0480E0 +/* 07CBB8 7F048088 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CBBC 7F04808C C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CBC0 7F048090 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CBC4 7F048094 4602603E */ c.le.s $f12, $f2 +/* 07CBC8 7F048098 00000000 */ nop +/* 07CBCC 7F04809C 45020006 */ bc1fl .L7F0480B8 +/* 07CBD0 7F0480A0 C62E0098 */ lwc1 $f14, 0x98($s1) +/* 07CBD4 7F0480A4 C624009C */ lwc1 $f4, 0x9c($s1) +/* 07CBD8 7F0480A8 C62C00A0 */ lwc1 $f12, 0xa0($s1) +/* 07CBDC 7F0480AC 10000008 */ b .L7F0480D0 +/* 07CBE0 7F0480B0 E6240098 */ swc1 $f4, 0x98($s1) +/* 07CBE4 7F0480B4 C62E0098 */ lwc1 $f14, 0x98($s1) +.L7F0480B8: +/* 07CBE8 7F0480B8 C626009C */ lwc1 $f6, 0x9c($s1) +/* 07CBEC 7F0480BC 460E3281 */ sub.s $f10, $f6, $f14 +/* 07CBF0 7F0480C0 46025202 */ mul.s $f8, $f10, $f2 +/* 07CBF4 7F0480C4 460C4103 */ div.s $f4, $f8, $f12 +/* 07CBF8 7F0480C8 46047180 */ add.s $f6, $f14, $f4 +/* 07CBFC 7F0480CC E6260098 */ swc1 $f6, 0x98($s1) +.L7F0480D0: +/* 07CC00 7F0480D0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC04 7F0480D4 460A6201 */ sub.s $f8, $f12, $f10 +/* 07CC08 7F0480D8 E62800A0 */ swc1 $f8, 0xa0($s1) +/* 07CC0C 7F0480DC C6200094 */ lwc1 $f0, 0x94($s1) +.L7F0480E0: +/* 07CC10 7F0480E0 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC14 7F0480E4 4600B03E */ c.le.s $f22, $f0 +/* 07CC18 7F0480E8 00000000 */ nop +/* 07CC1C 7F0480EC 45020016 */ bc1fl .L7F048148 +/* 07CC20 7F0480F0 8E2B000C */ lw $t3, 0xc($s1) +/* 07CC24 7F0480F4 C4228378 */ lwc1 $f2, %lo(global_timer_delta)($at) +/* 07CC28 7F0480F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07CC2C 7F0480FC 4602003E */ c.le.s $f0, $f2 +/* 07CC30 7F048100 00000000 */ nop +/* 07CC34 7F048104 45020006 */ bc1fl .L7F048120 +/* 07CC38 7F048108 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07CC3C 7F04810C C6240090 */ lwc1 $f4, 0x90($s1) +/* 07CC40 7F048110 C6200094 */ lwc1 $f0, 0x94($s1) +/* 07CC44 7F048114 10000008 */ b .L7F048138 +/* 07CC48 7F048118 E624008C */ swc1 $f4, 0x8c($s1) +/* 07CC4C 7F04811C C62C008C */ lwc1 $f12, 0x8c($s1) +.L7F048120: +/* 07CC50 7F048120 C6260090 */ lwc1 $f6, 0x90($s1) +/* 07CC54 7F048124 460C3281 */ sub.s $f10, $f6, $f12 +/* 07CC58 7F048128 46025202 */ mul.s $f8, $f10, $f2 +/* 07CC5C 7F04812C 46004103 */ div.s $f4, $f8, $f0 +/* 07CC60 7F048130 46046180 */ add.s $f6, $f12, $f4 +/* 07CC64 7F048134 E626008C */ swc1 $f6, 0x8c($s1) +.L7F048138: +/* 07CC68 7F048138 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07CC6C 7F04813C 460A0201 */ sub.s $f8, $f0, $f10 +/* 07CC70 7F048140 E6280094 */ swc1 $f8, 0x94($s1) +/* 07CC74 7F048144 8E2B000C */ lw $t3, 0xc($s1) +.L7F048148: +/* 07CC78 7F048148 00008025 */ move $s0, $zero +/* 07CC7C 7F04814C 000B4B00 */ sll $t1, $t3, 0xc +/* 07CC80 7F048150 05200014 */ bltz $t1, .L7F0481A4 +/* 07CC84 7F048154 00000000 */ nop +/* 07CC88 7F048158 0FC13BCD */ jal check_if_object_has_not_been_destroyed +/* 07CC8C 7F04815C 02202025 */ move $a0, $s1 +/* 07CC90 7F048160 10400010 */ beqz $v0, .L7F0481A4 +/* 07CC94 7F048164 00000000 */ nop +/* 07CC98 7F048168 C624008C */ lwc1 $f4, 0x8c($s1) +/* 07CC9C 7F04816C 4604B032 */ c.eq.s $f22, $f4 +/* 07CCA0 7F048170 00000000 */ nop +/* 07CCA4 7F048174 4501000B */ bc1t .L7F0481A4 +/* 07CCA8 7F048178 00000000 */ nop +/* 07CCAC 7F04817C 8E390008 */ lw $t9, 8($s1) +/* 07CCB0 7F048180 3C05459C */ lui $a1, (0x459C4000 >> 16) # lui $a1, 0x459c +/* 07CCB4 7F048184 34A54000 */ ori $a1, (0x459C4000 & 0xFFFF) # ori $a1, $a1, 0x4000 +/* 07CCB8 7F048188 00196080 */ sll $t4, $t9, 2 +/* 07CCBC 7F04818C 05800005 */ bltz $t4, .L7F0481A4 +/* 07CCC0 7F048190 26240058 */ addiu $a0, $s1, 0x58 +/* 07CCC4 7F048194 3C0645BB */ lui $a2, (0x45BB8000 >> 16) # lui $a2, 0x45bb +/* 07CCC8 7F048198 0FC14E25 */ jal sub_GAME_7F053894 +/* 07CCCC 7F04819C 34C68000 */ ori $a2, (0x45BB8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 07CCD0 7F0481A0 00408025 */ move $s0, $v0 +.L7F0481A4: +/* 07CCD4 7F0481A4 5A000019 */ blezl $s0, .L7F04820C +/* 07CCD8 7F0481A8 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCDC 7F0481AC 8E2400B0 */ lw $a0, 0xb0($s1) +/* 07CCE0 7F0481B0 10800005 */ beqz $a0, .L7F0481C8 +/* 07CCE4 7F0481B4 00000000 */ nop +/* 07CCE8 7F0481B8 0C00237C */ jal sfxGetArg0Unk3F +/* 07CCEC 7F0481BC 00000000 */ nop +/* 07CCF0 7F0481C0 5440000A */ bnezl $v0, .L7F0481EC +/* 07CCF4 7F0481C4 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481C8: +/* 07CCF8 7F0481C8 0FC2FF01 */ jal get_controls_locked_flag +/* 07CCFC 7F0481CC 00000000 */ nop +/* 07CD00 7F0481D0 14400005 */ bnez $v0, .L7F0481E8 +/* 07CD04 7F0481D4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07CD08 7F0481D8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07CD0C 7F0481DC 2405003A */ li $a1, 58 +/* 07CD10 7F0481E0 0C002382 */ jal play_sfx_a1 +/* 07CD14 7F0481E4 262600B0 */ addiu $a2, $s1, 0xb0 +.L7F0481E8: +/* 07CD18 7F0481E8 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F0481EC: +/* 07CD1C 7F0481EC 24050008 */ li $a1, 8 +/* 07CD20 7F0481F0 5080000F */ beql $a0, $zero, .L7F048230 +/* 07CD24 7F0481F4 92220003 */ lbu $v0, 3($s1) +/* 07CD28 7F0481F8 0C002461 */ jal sfx_c_70009184 +/* 07CD2C 7F0481FC 02003025 */ move $a2, $s0 +/* 07CD30 7F048200 1000000B */ b .L7F048230 +/* 07CD34 7F048204 92220003 */ lbu $v0, 3($s1) +/* 07CD38 7F048208 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04820C: +/* 07CD3C 7F04820C 50800008 */ beql $a0, $zero, .L7F048230 +/* 07CD40 7F048210 92220003 */ lbu $v0, 3($s1) +/* 07CD44 7F048214 0C00237C */ jal sfxGetArg0Unk3F +/* 07CD48 7F048218 00000000 */ nop +/* 07CD4C 7F04821C 50400004 */ beql $v0, $zero, .L7F048230 +/* 07CD50 7F048220 92220003 */ lbu $v0, 3($s1) +/* 07CD54 7F048224 0C002408 */ jal sfxDeactivate +/* 07CD58 7F048228 8E2400B0 */ lw $a0, 0xb0($s1) +.L7F04822C: +/* 07CD5C 7F04822C 92220003 */ lbu $v0, 3($s1) +.L7F048230: +/* 07CD60 7F048230 3C018005 */ lui $at, %hi(D_80052B64) +/* 07CD64 7F048234 C4342B64 */ lwc1 $f20, %lo(D_80052B64)($at) +/* 07CD68 7F048238 2401002F */ li $at, 47 +/* 07CD6C 7F04823C 54410020 */ bnel $v0, $at, .L7F0482C0 +/* 07CD70 7F048240 24010001 */ li $at, 1 +/* 07CD74 7F048244 8E700004 */ lw $s0, 4($s3) +/* 07CD78 7F048248 26240058 */ addiu $a0, $s1, 0x58 +/* 07CD7C 7F04824C 8E0A0080 */ lw $t2, 0x80($s0) +/* 07CD80 7F048250 8E0E0084 */ lw $t6, 0x84($s0) +/* 07CD84 7F048254 8E070090 */ lw $a3, 0x90($s0) +/* 07CD88 7F048258 448A3000 */ mtc1 $t2, $f6 +/* 07CD8C 7F04825C 448E5000 */ mtc1 $t6, $f10 +/* 07CD90 7F048260 468031A0 */ cvt.s.w $f6, $f6 +/* 07CD94 7F048264 468052A0 */ cvt.s.w $f10, $f10 +/* 07CD98 7F048268 44053000 */ mfc1 $a1, $f6 +/* 07CD9C 7F04826C 44065000 */ mfc1 $a2, $f10 +/* 07CDA0 7F048270 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CDA4 7F048274 00000000 */ nop +/* 07CDA8 7F048278 8E04008C */ lw $a0, 0x8c($s0) +/* 07CDAC 7F04827C AE020088 */ sw $v0, 0x88($s0) +/* 07CDB0 7F048280 8FAD0674 */ lw $t5, 0x674($sp) +/* 07CDB4 7F048284 0480000B */ bltz $a0, .L7F0482B4 +/* 07CDB8 7F048288 24010001 */ li $at, 1 +/* 07CDBC 7F04828C 15A10009 */ bne $t5, $at, .L7F0482B4 +/* 07CDC0 7F048290 240100FF */ li $at, 255 +/* 07CDC4 7F048294 14410005 */ bne $v0, $at, .L7F0482AC +/* 07CDC8 7F048298 00000000 */ nop +/* 07CDCC 7F04829C 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDD0 7F0482A0 00002825 */ move $a1, $zero +/* 07CDD4 7F0482A4 10000003 */ b .L7F0482B4 +/* 07CDD8 7F0482A8 00000000 */ nop +.L7F0482AC: +/* 07CDDC 7F0482AC 0FC2E76F */ jal sub_GAME_7F0B9DBC +/* 07CDE0 7F0482B0 24050001 */ li $a1, 1 +.L7F0482B4: +/* 07CDE4 7F0482B4 1000003B */ b .L7F0483A4 +/* 07CDE8 7F0482B8 AFA00670 */ sw $zero, 0x670($sp) +/* 07CDEC 7F0482BC 24010001 */ li $at, 1 +.L7F0482C0: +/* 07CDF0 7F0482C0 54410039 */ bnel $v0, $at, .L7F0483A8 +/* 07CDF4 7F0482C4 922F0003 */ lbu $t7, 3($s1) +/* 07CDF8 7F0482C8 962F0098 */ lhu $t7, 0x98($s1) +/* 07CDFC 7F0482CC 31E80002 */ andi $t0, $t7, 2 +/* 07CE00 7F0482D0 51000035 */ beql $t0, $zero, .L7F0483A8 +/* 07CE04 7F0482D4 922F0003 */ lbu $t7, 3($s1) +/* 07CE08 7F0482D8 8E700004 */ lw $s0, 4($s3) +/* 07CE0C 7F0482DC 4407B000 */ mfc1 $a3, $f22 +/* 07CE10 7F0482E0 24120001 */ li $s2, 1 +/* 07CE14 7F0482E4 8E0B00C0 */ lw $t3, 0xc0($s0) +/* 07CE18 7F0482E8 8E0900C4 */ lw $t1, 0xc4($s0) +/* 07CE1C 7F0482EC 26240058 */ addiu $a0, $s1, 0x58 +/* 07CE20 7F0482F0 448B4000 */ mtc1 $t3, $f8 +/* 07CE24 7F0482F4 44892000 */ mtc1 $t1, $f4 +/* 07CE28 7F0482F8 46804220 */ cvt.s.w $f8, $f8 +/* 07CE2C 7F0482FC 46802120 */ cvt.s.w $f4, $f4 +/* 07CE30 7F048300 44054000 */ mfc1 $a1, $f8 +/* 07CE34 7F048304 44062000 */ mfc1 $a2, $f4 +/* 07CE38 7F048308 0FC11477 */ jal sub_GAME_7F0451DC +/* 07CE3C 7F04830C 00000000 */ nop +/* 07CE40 7F048310 A60200BE */ sh $v0, 0xbe($s0) +/* 07CE44 7F048314 8FB90674 */ lw $t9, 0x674($sp) +/* 07CE48 7F048318 24010001 */ li $at, 1 +/* 07CE4C 7F04831C 57210022 */ bnel $t9, $at, .L7F0483A8 +/* 07CE50 7F048320 922F0003 */ lbu $t7, 3($s1) +/* 07CE54 7F048324 860C00BE */ lh $t4, 0xbe($s0) +/* 07CE58 7F048328 240100FF */ li $at, 255 +/* 07CE5C 7F04832C 55810007 */ bnel $t4, $at, .L7F04834C +/* 07CE60 7F048330 00009025 */ move $s2, $zero +/* 07CE64 7F048334 C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 07CE68 7F048338 4606B03C */ c.lt.s $f22, $f6 +/* 07CE6C 7F04833C 00000000 */ nop +/* 07CE70 7F048340 45020003 */ bc1fl .L7F048350 +/* 07CE74 7F048344 8E820008 */ lw $v0, 8($s4) +/* 07CE78 7F048348 00009025 */ move $s2, $zero +.L7F04834C: +/* 07CE7C 7F04834C 8E820008 */ lw $v0, 8($s4) +.L7F048350: +/* 07CE80 7F048350 3C0A8004 */ lui $t2, %hi(prop_door_related) +/* 07CE84 7F048354 254AA1DC */ addiu $t2, %lo(prop_door_related) # addiu $t2, $t2, -0x5e24 +/* 07CE88 7F048358 8C4E0004 */ lw $t6, 4($v0) +/* 07CE8C 7F04835C 154E0009 */ bne $t2, $t6, .L7F048384 +/* 07CE90 7F048360 00000000 */ nop +/* 07CE94 7F048364 8C4D0008 */ lw $t5, 8($v0) +/* 07CE98 7F048368 02802025 */ move $a0, $s4 +/* 07CE9C 7F04836C 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07CEA0 7F048370 8DA50004 */ lw $a1, 4($t5) +/* 07CEA4 7F048374 8C580000 */ lw $t8, ($v0) +/* 07CEA8 7F048378 17000002 */ bnez $t8, .L7F048384 +/* 07CEAC 7F04837C 00000000 */ nop +/* 07CEB0 7F048380 00009025 */ move $s2, $zero +.L7F048384: +/* 07CEB4 7F048384 12400005 */ beqz $s2, .L7F04839C +/* 07CEB8 7F048388 00000000 */ nop +/* 07CEBC 7F04838C 0FC14D71 */ jal sub_GAME_7F0535C4 +/* 07CEC0 7F048390 02002025 */ move $a0, $s0 +/* 07CEC4 7F048394 10000004 */ b .L7F0483A8 +/* 07CEC8 7F048398 922F0003 */ lbu $t7, 3($s1) +.L7F04839C: +/* 07CECC 7F04839C 0FC14D66 */ jal sub_GAME_7F053598 +/* 07CED0 7F0483A0 02002025 */ move $a0, $s0 +.L7F0483A4: +/* 07CED4 7F0483A4 922F0003 */ lbu $t7, 3($s1) +.L7F0483A8: +/* 07CED8 7F0483A8 2410002D */ li $s0, 45 +/* 07CEDC 7F0483AC 560F0008 */ bnel $s0, $t7, .L7F0483D0 +/* 07CEE0 7F0483B0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEE4 7F0483B4 0FC1F3A1 */ jal get_ptr_for_players_tank +/* 07CEE8 7F0483B8 00000000 */ nop +/* 07CEEC 7F0483BC 54530004 */ bnel $v0, $s3, .L7F0483D0 +/* 07CEF0 7F0483C0 8E23000C */ lw $v1, 0xc($s1) +/* 07CEF4 7F0483C4 10000019 */ b .L7F04842C +/* 07CEF8 7F0483C8 24030001 */ li $v1, 1 +/* 07CEFC 7F0483CC 8E23000C */ lw $v1, 0xc($s1) +.L7F0483D0: +/* 07CF00 7F0483D0 00034140 */ sll $t0, $v1, 5 +/* 07CF04 7F0483D4 05030004 */ bgezl $t0, .L7F0483E8 +/* 07CF08 7F0483D8 8E2B0064 */ lw $t3, 0x64($s1) +/* 07CF0C 7F0483DC 10000013 */ b .L7F04842C +/* 07CF10 7F0483E0 24030001 */ li $v1, 1 +/* 07CF14 7F0483E4 8E2B0064 */ lw $t3, 0x64($s1) +.L7F0483E8: +/* 07CF18 7F0483E8 0003CB00 */ sll $t9, $v1, 0xc +/* 07CF1C 7F0483EC 00001825 */ move $v1, $zero +/* 07CF20 7F0483F0 31690800 */ andi $t1, $t3, 0x800 +/* 07CF24 7F0483F4 1520000D */ bnez $t1, .L7F04842C +/* 07CF28 7F0483F8 00000000 */ nop +/* 07CF2C 7F0483FC 0720000B */ bltz $t9, .L7F04842C +/* 07CF30 7F048400 02802025 */ move $a0, $s4 +/* 07CF34 7F048404 262C0058 */ addiu $t4, $s1, 0x58 +/* 07CF38 7F048408 0FC1B403 */ jal getinstsize +/* 07CF3C 7F04840C AFAC0070 */ sw $t4, 0x70($sp) +/* 07CF40 7F048410 44060000 */ mfc1 $a2, $f0 +/* 07CF44 7F048414 02602025 */ move $a0, $s3 +/* 07CF48 7F048418 8FA50070 */ lw $a1, 0x70($sp) +/* 07CF4C 7F04841C 0FC1535B */ jal sub_GAME_7F054D6C +/* 07CF50 7F048420 8FA70670 */ lw $a3, 0x670($sp) +/* 07CF54 7F048424 10000001 */ b .L7F04842C +/* 07CF58 7F048428 00401825 */ move $v1, $v0 +.L7F04842C: +/* 07CF5C 7F04842C 1060037A */ beqz $v1, .L7F049218 +/* 07CF60 7F048430 8FAA0678 */ lw $t2, 0x678($sp) +/* 07CF64 7F048434 11400003 */ beqz $t2, .L7F048444 +/* 07CF68 7F048438 26240078 */ addiu $a0, $s1, 0x78 +/* 07CF6C 7F04843C 0FC100C4 */ jal update_color_shading +/* 07CF70 7F048440 2625007C */ addiu $a1, $s1, 0x7c +.L7F048444: +/* 07CF74 7F048444 926E0001 */ lbu $t6, 1($s3) +/* 07CF78 7F048448 35CD0002 */ ori $t5, $t6, 2 +/* 07CF7C 7F04844C A26D0001 */ sb $t5, 1($s3) +/* 07CF80 7F048450 8E980008 */ lw $t8, 8($s4) +/* 07CF84 7F048454 8704000E */ lh $a0, 0xe($t8) +/* 07CF88 7F048458 00047980 */ sll $t7, $a0, 6 +/* 07CF8C 7F04845C 0FC2F5C5 */ jal dynAllocate +/* 07CF90 7F048460 01E02025 */ move $a0, $t7 +/* 07CF94 7F048464 AE82000C */ sw $v0, 0xc($s4) +/* 07CF98 7F048468 92280003 */ lbu $t0, 3($s1) +/* 07CF9C 7F04846C 24010001 */ li $at, 1 +/* 07CFA0 7F048470 00409025 */ move $s2, $v0 +/* 07CFA4 7F048474 150100AD */ bne $t0, $at, .L7F04872C +/* 07CFA8 7F048478 26240018 */ addiu $a0, $s1, 0x18 +/* 07CFAC 7F04847C 8E640004 */ lw $a0, 4($s3) +/* 07CFB0 7F048480 00402825 */ move $a1, $v0 +/* 07CFB4 7F048484 0FC149BB */ jal sub_GAME_7F0526EC +/* 07CFB8 7F048488 AFA4039C */ sw $a0, 0x39c($sp) +/* 07CFBC 7F04848C 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07CFC0 7F048490 00000000 */ nop +/* 07CFC4 7F048494 00402025 */ move $a0, $v0 +/* 07CFC8 7F048498 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07CFCC 7F04849C 02402825 */ move $a1, $s2 +/* 07CFD0 7F0484A0 8E820008 */ lw $v0, 8($s4) +/* 07CFD4 7F0484A4 3C0B8004 */ lui $t3, %hi(prop_eyelid_door_related) +/* 07CFD8 7F0484A8 256BA100 */ addiu $t3, %lo(prop_eyelid_door_related) # addiu $t3, $t3, -0x5f00 +/* 07CFDC 7F0484AC 8C430004 */ lw $v1, 4($v0) +/* 07CFE0 7F0484B0 3C0D8004 */ lui $t5, %hi(prop_iris_door_related) +/* 07CFE4 7F0484B4 8FA6039C */ lw $a2, 0x39c($sp) +/* 07CFE8 7F0484B8 15630025 */ bne $t3, $v1, .L7F048550 +/* 07CFEC 7F0484BC 25ADA15C */ addiu $t5, %lo(prop_iris_door_related) # addiu $t5, $t5, -0x5ea4 +/* 07CFF0 7F0484C0 C4CA00B4 */ lwc1 $f10, 0xb4($a2) +/* 07CFF4 7F0484C4 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07CFF8 7F0484C8 44812000 */ mtc1 $at, $f4 +/* 07CFFC 7F0484CC 46145202 */ mul.s $f8, $f10, $f20 +/* 07D000 7F0484D0 8C490008 */ lw $t1, 8($v0) +/* 07D004 7F0484D4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D008 7F0484D8 8D390004 */ lw $t9, 4($t1) +/* 07D00C 7F0484DC 46044183 */ div.s $f6, $f8, $f4 +/* 07D010 7F0484E0 8F300004 */ lw $s0, 4($t9) +/* 07D014 7F0484E4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D018 7F0484E8 4606A301 */ sub.s $f12, $f20, $f6 +/* 07D01C 7F0484EC 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D020 7F0484F0 E7AC0394 */ swc1 $f12, 0x394($sp) +/* 07D024 7F0484F4 02002025 */ move $a0, $s0 +/* 07D028 7F0484F8 0FC16266 */ jal matrix_4x4_set_position +/* 07D02C 7F0484FC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D030 7F048500 02402025 */ move $a0, $s2 +/* 07D034 7F048504 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D038 7F048508 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D03C 7F04850C 8E8C0008 */ lw $t4, 8($s4) +/* 07D040 7F048510 C7AA0394 */ lwc1 $f10, 0x394($sp) +/* 07D044 7F048514 26450080 */ addiu $a1, $s2, 0x80 +/* 07D048 7F048518 8D8A0008 */ lw $t2, 8($t4) +/* 07D04C 7F04851C 460AA301 */ sub.s $f12, $f20, $f10 +/* 07D050 7F048520 8D4E0008 */ lw $t6, 8($t2) +/* 07D054 7F048524 8DD00004 */ lw $s0, 4($t6) +/* 07D058 7F048528 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D05C 7F04852C AFA50068 */ sw $a1, 0x68($sp) +/* 07D060 7F048530 02002025 */ move $a0, $s0 +/* 07D064 7F048534 0FC16266 */ jal matrix_4x4_set_position +/* 07D068 7F048538 8FA50068 */ lw $a1, 0x68($sp) +/* 07D06C 7F04853C 02402025 */ move $a0, $s2 +/* 07D070 7F048540 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D074 7F048544 8FA50068 */ lw $a1, 0x68($sp) +/* 07D078 7F048548 1000031F */ b .L7F0491C8 +/* 07D07C 7F04854C 8E8F0008 */ lw $t7, 8($s4) +.L7F048550: +/* 07D080 7F048550 55A3031D */ bnel $t5, $v1, .L7F0491C8 +/* 07D084 7F048554 8E8F0008 */ lw $t7, 8($s4) +/* 07D088 7F048558 C4C200B4 */ lwc1 $f2, 0xb4($a2) +/* 07D08C 7F04855C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D090 7F048560 44812000 */ mtc1 $at, $f4 +/* 07D094 7F048564 46141202 */ mul.s $f8, $f2, $f20 +/* 07D098 7F048568 3C018005 */ lui $at, %hi(D_80052B68) +/* 07D09C 7F04856C C42A2B68 */ lwc1 $f10, %lo(D_80052B68)($at) +/* 07D0A0 7F048570 4600B386 */ mov.s $f14, $f22 +/* 07D0A4 7F048574 46044183 */ div.s $f6, $f8, $f4 +/* 07D0A8 7F048578 E7A60384 */ swc1 $f6, 0x384($sp) +/* 07D0AC 7F04857C C4CC0084 */ lwc1 $f12, 0x84($a2) +/* 07D0B0 7F048580 460A6002 */ mul.s $f0, $f12, $f10 +/* 07D0B4 7F048584 4602003C */ c.lt.s $f0, $f2 +/* 07D0B8 7F048588 00000000 */ nop +/* 07D0BC 7F04858C 4502001F */ bc1fl .L7F04860C +/* 07D0C0 7F048590 8FA80678 */ lw $t0, 0x678($sp) +/* 07D0C4 7F048594 46001201 */ sub.s $f8, $f2, $f0 +/* 07D0C8 7F048598 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 07D0CC 7F04859C 8FB80678 */ lw $t8, 0x678($sp) +/* 07D0D0 7F0485A0 46006181 */ sub.s $f6, $f12, $f0 +/* 07D0D4 7F0485A4 46086102 */ mul.s $f4, $f12, $f8 +/* 07D0D8 7F0485A8 46062283 */ div.s $f10, $f4, $f6 +/* 07D0DC 7F0485AC 44812000 */ mtc1 $at, $f4 +/* 07D0E0 7F0485B0 46145202 */ mul.s $f8, $f10, $f20 +/* 07D0E4 7F0485B4 46044383 */ div.s $f14, $f8, $f4 +/* 07D0E8 7F0485B8 13000011 */ beqz $t8, .L7F048600 +/* 07D0EC 7F0485BC E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F0 7F0485C0 C7A6067C */ lwc1 $f6, 0x67c($sp) +/* 07D0F4 7F0485C4 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D0F8 7F0485C8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07D0FC 7F0485CC 4600303E */ c.le.s $f6, $f0 +/* 07D100 7F0485D0 240500CA */ li $a1, 202 +/* 07D104 7F0485D4 00003025 */ move $a2, $zero +/* 07D108 7F0485D8 266F0008 */ addiu $t7, $s3, 8 +/* 07D10C 7F0485DC 45000008 */ bc1f .L7F048600 +/* 07D110 7F0485E0 00000000 */ nop +/* 07D114 7F0485E4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07D118 7F0485E8 AFAF0070 */ sw $t7, 0x70($sp) +/* 07D11C 7F0485EC 0C002382 */ jal play_sfx_a1 +/* 07D120 7F0485F0 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D124 7F0485F4 00402025 */ move $a0, $v0 +/* 07D128 7F0485F8 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D12C 7F0485FC 8FA50070 */ lw $a1, 0x70($sp) +.L7F048600: +/* 07D130 7F048600 10000016 */ b .L7F04865C +/* 07D134 7F048604 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D138 7F048608 8FA80678 */ lw $t0, 0x678($sp) +.L7F04860C: +/* 07D13C 7F04860C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D140 7F048610 51000012 */ beql $t0, $zero, .L7F04865C +/* 07D144 7F048614 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D148 7F048618 C7AA067C */ lwc1 $f10, 0x67c($sp) +/* 07D14C 7F04861C E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D150 7F048620 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07D154 7F048624 460A003C */ c.lt.s $f0, $f10 +/* 07D158 7F048628 240500CB */ li $a1, 203 +/* 07D15C 7F04862C 00003025 */ move $a2, $zero +/* 07D160 7F048630 266B0008 */ addiu $t3, $s3, 8 +/* 07D164 7F048634 45020009 */ bc1fl .L7F04865C +/* 07D168 7F048638 AFA0038C */ sw $zero, 0x38c($sp) +/* 07D16C 7F04863C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07D170 7F048640 AFAB0070 */ sw $t3, 0x70($sp) +/* 07D174 7F048644 0C002382 */ jal play_sfx_a1 +/* 07D178 7F048648 E7AE0380 */ swc1 $f14, 0x380($sp) +/* 07D17C 7F04864C 00402025 */ move $a0, $v0 +/* 07D180 7F048650 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07D184 7F048654 8FA50070 */ lw $a1, 0x70($sp) +/* 07D188 7F048658 AFA0038C */ sw $zero, 0x38c($sp) +.L7F04865C: +/* 07D18C 7F04865C 8E890008 */ lw $t1, 8($s4) +/* 07D190 7F048660 8FA3038C */ lw $v1, 0x38c($sp) +/* 07D194 7F048664 C7AC0380 */ lwc1 $f12, 0x380($sp) +/* 07D198 7F048668 8D390008 */ lw $t9, 8($t1) +/* 07D19C 7F04866C 00031040 */ sll $v0, $v1, 1 +/* 07D1A0 7F048670 00026080 */ sll $t4, $v0, 2 +/* 07D1A4 7F048674 032C5021 */ addu $t2, $t9, $t4 +/* 07D1A8 7F048678 8D4E0004 */ lw $t6, 4($t2) +/* 07D1AC 7F04867C 0002C180 */ sll $t8, $v0, 6 +/* 07D1B0 7F048680 02582821 */ addu $a1, $s2, $t8 +/* 07D1B4 7F048684 8DCD0004 */ lw $t5, 4($t6) +/* 07D1B8 7F048688 AFA20074 */ sw $v0, 0x74($sp) +/* 07D1BC 7F04868C 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1C0 7F048690 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D1C4 7F048694 AFAD0390 */ sw $t5, 0x390($sp) +/* 07D1C8 7F048698 8FAF0074 */ lw $t7, 0x74($sp) +/* 07D1CC 7F04869C 8FB0038C */ lw $s0, 0x38c($sp) +/* 07D1D0 7F0486A0 8FA40390 */ lw $a0, 0x390($sp) +/* 07D1D4 7F0486A4 000F4180 */ sll $t0, $t7, 6 +/* 07D1D8 7F0486A8 02482821 */ addu $a1, $s2, $t0 +/* 07D1DC 7F0486AC 24A50040 */ addiu $a1, $a1, 0x40 +/* 07D1E0 7F0486B0 0FC16266 */ jal matrix_4x4_set_position +/* 07D1E4 7F0486B4 AFA50070 */ sw $a1, 0x70($sp) +/* 07D1E8 7F0486B8 02402025 */ move $a0, $s2 +/* 07D1EC 7F0486BC 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D1F0 7F0486C0 8FA50070 */ lw $a1, 0x70($sp) +/* 07D1F4 7F0486C4 8E8B0008 */ lw $t3, 8($s4) +/* 07D1F8 7F0486C8 8FA20074 */ lw $v0, 0x74($sp) +/* 07D1FC 7F0486CC C7AC0384 */ lwc1 $f12, 0x384($sp) +/* 07D200 7F0486D0 8D690008 */ lw $t1, 8($t3) +/* 07D204 7F0486D4 24420002 */ addiu $v0, $v0, 2 +/* 07D208 7F0486D8 0002C880 */ sll $t9, $v0, 2 +/* 07D20C 7F0486DC 01396021 */ addu $t4, $t1, $t9 +/* 07D210 7F0486E0 8D8A0000 */ lw $t2, ($t4) +/* 07D214 7F0486E4 00026980 */ sll $t5, $v0, 6 +/* 07D218 7F0486E8 024D2821 */ addu $a1, $s2, $t5 +/* 07D21C 7F0486EC 8D4E0004 */ lw $t6, 4($t2) +/* 07D220 7F0486F0 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D224 7F0486F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D228 7F0486F8 AFAE0390 */ sw $t6, 0x390($sp) +/* 07D22C 7F0486FC 8FA40390 */ lw $a0, 0x390($sp) +/* 07D230 7F048700 0FC16266 */ jal matrix_4x4_set_position +/* 07D234 7F048704 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D238 7F048708 8FA40070 */ lw $a0, 0x70($sp) +/* 07D23C 7F04870C 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 07D240 7F048710 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D244 7F048714 26100001 */ addiu $s0, $s0, 1 +/* 07D248 7F048718 24010006 */ li $at, 6 +/* 07D24C 7F04871C 1601FFCF */ bne $s0, $at, .L7F04865C +/* 07D250 7F048720 AFB0038C */ sw $s0, 0x38c($sp) +/* 07D254 7F048724 100002A8 */ b .L7F0491C8 +/* 07D258 7F048728 8E8F0008 */ lw $t7, 8($s4) +.L7F04872C: +/* 07D25C 7F04872C 26380058 */ addiu $t8, $s1, 0x58 +/* 07D260 7F048730 AFB80070 */ sw $t8, 0x70($sp) +/* 07D264 7F048734 0FC16008 */ jal matrix_4x4_copy +/* 07D268 7F048738 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D26C 7F04873C 8FA40070 */ lw $a0, 0x70($sp) +/* 07D270 7F048740 0FC16266 */ jal matrix_4x4_set_position +/* 07D274 7F048744 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D278 7F048748 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07D27C 7F04874C 00000000 */ nop +/* 07D280 7F048750 00402025 */ move $a0, $v0 +/* 07D284 7F048754 27A503A4 */ addiu $a1, $sp, 0x3a4 +/* 07D288 7F048758 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07D28C 7F04875C 02403025 */ move $a2, $s2 +/* 07D290 7F048760 92220003 */ lbu $v0, 3($s1) +/* 07D294 7F048764 24010006 */ li $at, 6 +/* 07D298 7F048768 27A50320 */ addiu $a1, $sp, 0x320 +/* 07D29C 7F04876C 5441002D */ bnel $v0, $at, .L7F048824 +/* 07D2A0 7F048770 2401000D */ li $at, 13 +/* 07D2A4 7F048774 8E620004 */ lw $v0, 4($s3) +/* 07D2A8 7F048778 8E8F0008 */ lw $t7, 8($s4) +/* 07D2AC 7F04877C C44C00C8 */ lwc1 $f12, 0xc8($v0) +/* 07D2B0 7F048780 8DE80008 */ lw $t0, 8($t7) +/* 07D2B4 7F048784 4616603C */ c.lt.s $f12, $f22 +/* 07D2B8 7F048788 8D0B0000 */ lw $t3, ($t0) +/* 07D2BC 7F04878C 45000003 */ bc1f .L7F04879C +/* 07D2C0 7F048790 8D700004 */ lw $s0, 4($t3) +/* 07D2C4 7F048794 10000006 */ b .L7F0487B0 +/* 07D2C8 7F048798 46146300 */ add.s $f12, $f12, $f20 +.L7F04879C: +/* 07D2CC 7F04879C 460CA03E */ c.le.s $f20, $f12 +/* 07D2D0 7F0487A0 00000000 */ nop +/* 07D2D4 7F0487A4 45000002 */ bc1f .L7F0487B0 +/* 07D2D8 7F0487A8 00000000 */ nop +/* 07D2DC 7F0487AC 46146301 */ sub.s $f12, $f12, $f20 +.L7F0487B0: +/* 07D2E0 7F0487B0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D2E4 7F0487B4 AFA20370 */ sw $v0, 0x370($sp) +/* 07D2E8 7F0487B8 8FA20370 */ lw $v0, 0x370($sp) +/* 07D2EC 7F0487BC 26460040 */ addiu $a2, $s2, 0x40 +/* 07D2F0 7F0487C0 AFA6006C */ sw $a2, 0x6c($sp) +/* 07D2F4 7F0487C4 27A40320 */ addiu $a0, $sp, 0x320 +/* 07D2F8 7F0487C8 0FC16032 */ jal matrix_4x4_multiply +/* 07D2FC 7F0487CC 24450084 */ addiu $a1, $v0, 0x84 +/* 07D300 7F0487D0 C6080000 */ lwc1 $f8, ($s0) +/* 07D304 7F0487D4 27B20360 */ addiu $s2, $sp, 0x360 +/* 07D308 7F0487D8 02402825 */ move $a1, $s2 +/* 07D30C 7F0487DC E7A80360 */ swc1 $f8, 0x360($sp) +/* 07D310 7F0487E0 C6040004 */ lwc1 $f4, 4($s0) +/* 07D314 7F0487E4 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D318 7F0487E8 E7A40364 */ swc1 $f4, 0x364($sp) +/* 07D31C 7F0487EC C6060008 */ lwc1 $f6, 8($s0) +/* 07D320 7F0487F0 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D324 7F0487F4 E7A60368 */ swc1 $f6, 0x368($sp) +/* 07D328 7F0487F8 02402025 */ move $a0, $s2 +/* 07D32C 7F0487FC 0FC16266 */ jal matrix_4x4_set_position +/* 07D330 7F048800 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D334 7F048804 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07D338 7F048808 00000000 */ nop +/* 07D33C 7F04880C 00402025 */ move $a0, $v0 +/* 07D340 7F048810 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D344 7F048814 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D348 7F048818 1000026B */ b .L7F0491C8 +/* 07D34C 7F04881C 8E8F0008 */ lw $t7, 8($s4) +/* 07D350 7F048820 2401000D */ li $at, 13 +.L7F048824: +/* 07D354 7F048824 5441007F */ bnel $v0, $at, .L7F048A24 +/* 07D358 7F048828 24010008 */ li $at, 8 +/* 07D35C 7F04882C 8E620004 */ lw $v0, 4($s3) +/* 07D360 7F048830 3C018005 */ lui $at, %hi(D_80052B6C) +/* 07D364 7F048834 C4282B6C */ lwc1 $f8, %lo(D_80052B6C)($at) +/* 07D368 7F048838 C44A0090 */ lwc1 $f10, 0x90($v0) +/* 07D36C 7F04883C C444009C */ lwc1 $f4, 0x9c($v0) +/* 07D370 7F048840 46085300 */ add.s $f12, $f10, $f8 +/* 07D374 7F048844 46002187 */ neg.s $f6, $f4 +/* 07D378 7F048848 460CA03E */ c.le.s $f20, $f12 +/* 07D37C 7F04884C E7A60300 */ swc1 $f6, 0x300($sp) +/* 07D380 7F048850 45020003 */ bc1fl .L7F048860 +/* 07D384 7F048854 8E890008 */ lw $t1, 8($s4) +/* 07D388 7F048858 46146301 */ sub.s $f12, $f12, $f20 +/* 07D38C 7F04885C 8E890008 */ lw $t1, 8($s4) +.L7F048860: +/* 07D390 7F048860 27A403A4 */ addiu $a0, $sp, 0x3a4 +/* 07D394 7F048864 27A50308 */ addiu $a1, $sp, 0x308 +/* 07D398 7F048868 8D390008 */ lw $t9, 8($t1) +/* 07D39C 7F04886C 8F2C0004 */ lw $t4, 4($t9) +/* 07D3A0 7F048870 8D900004 */ lw $s0, 4($t4) +/* 07D3A4 7F048874 C60A0000 */ lwc1 $f10, ($s0) +/* 07D3A8 7F048878 E7AA0308 */ swc1 $f10, 0x308($sp) +/* 07D3AC 7F04887C C6080004 */ lwc1 $f8, 4($s0) +/* 07D3B0 7F048880 E7A8030C */ swc1 $f8, 0x30c($sp) +/* 07D3B4 7F048884 C6040008 */ lwc1 $f4, 8($s0) +/* 07D3B8 7F048888 E7AC0304 */ swc1 $f12, 0x304($sp) +/* 07D3BC 7F04888C AFA20318 */ sw $v0, 0x318($sp) +/* 07D3C0 7F048890 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07D3C4 7F048894 E7A40310 */ swc1 $f4, 0x310($sp) +/* 07D3C8 7F048898 26450040 */ addiu $a1, $s2, 0x40 +/* 07D3CC 7F04889C C7AC0304 */ lwc1 $f12, 0x304($sp) +/* 07D3D0 7F0488A0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D3D4 7F0488A4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D3D8 7F0488A8 27A40308 */ addiu $a0, $sp, 0x308 +/* 07D3DC 7F0488AC 0FC16266 */ jal matrix_4x4_set_position +/* 07D3E0 7F0488B0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3E4 7F0488B4 8FAA0318 */ lw $t2, 0x318($sp) +/* 07D3E8 7F0488B8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D3EC 7F0488BC 8D4E0014 */ lw $t6, 0x14($t2) +/* 07D3F0 7F0488C0 0FC1629F */ jal matrix_scalar_multiply +/* 07D3F4 7F0488C4 C5CC0014 */ lwc1 $f12, 0x14($t6) +/* 07D3F8 7F0488C8 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07D3FC 7F0488CC 00000000 */ nop +/* 07D400 7F0488D0 00402025 */ move $a0, $v0 +/* 07D404 7F0488D4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D408 7F0488D8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D40C 7F0488DC 8E8D0008 */ lw $t5, 8($s4) +/* 07D410 7F0488E0 26450080 */ addiu $a1, $s2, 0x80 +/* 07D414 7F0488E4 C7AC0300 */ lwc1 $f12, 0x300($sp) +/* 07D418 7F0488E8 8DB80008 */ lw $t8, 8($t5) +/* 07D41C 7F0488EC 8F0F0008 */ lw $t7, 8($t8) +/* 07D420 7F0488F0 8DF00004 */ lw $s0, 4($t7) +/* 07D424 7F0488F4 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07D428 7F0488F8 AFA50068 */ sw $a1, 0x68($sp) +/* 07D42C 7F0488FC 02002025 */ move $a0, $s0 +/* 07D430 7F048900 0FC16266 */ jal matrix_4x4_set_position +/* 07D434 7F048904 8FA50068 */ lw $a1, 0x68($sp) +/* 07D438 7F048908 8FA4006C */ lw $a0, 0x6c($sp) +/* 07D43C 7F04890C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D440 7F048910 8FA50068 */ lw $a1, 0x68($sp) +/* 07D444 7F048914 8E880008 */ lw $t0, 8($s4) +/* 07D448 7F048918 02802025 */ move $a0, $s4 +/* 07D44C 7F04891C 8D030008 */ lw $v1, 8($t0) +/* 07D450 7F048920 8C65000C */ lw $a1, 0xc($v1) +/* 07D454 7F048924 50A00016 */ beql $a1, $zero, .L7F048980 +/* 07D458 7F048928 8C650010 */ lw $a1, 0x10($v1) +/* 07D45C 7F04892C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D460 7F048930 00003025 */ move $a2, $zero +/* 07D464 7F048934 AFA202FC */ sw $v0, 0x2fc($sp) +/* 07D468 7F048938 8E8B0008 */ lw $t3, 8($s4) +/* 07D46C 7F04893C 8FAC0318 */ lw $t4, 0x318($sp) +/* 07D470 7F048940 00402825 */ move $a1, $v0 +/* 07D474 7F048944 8D690008 */ lw $t1, 8($t3) +/* 07D478 7F048948 C58C00B4 */ lwc1 $f12, 0xb4($t4) +/* 07D47C 7F04894C 8D39000C */ lw $t9, 0xc($t1) +/* 07D480 7F048950 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D484 7F048954 8F300004 */ lw $s0, 4($t9) +/* 07D488 7F048958 8FB202FC */ lw $s2, 0x2fc($sp) +/* 07D48C 7F04895C 02002025 */ move $a0, $s0 +/* 07D490 7F048960 0FC16266 */ jal matrix_4x4_set_position +/* 07D494 7F048964 02402825 */ move $a1, $s2 +/* 07D498 7F048968 8FA40068 */ lw $a0, 0x68($sp) +/* 07D49C 7F04896C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4A0 7F048970 02402825 */ move $a1, $s2 +/* 07D4A4 7F048974 8E8A0008 */ lw $t2, 8($s4) +/* 07D4A8 7F048978 8D430008 */ lw $v1, 8($t2) +/* 07D4AC 7F04897C 8C650010 */ lw $a1, 0x10($v1) +.L7F048980: +/* 07D4B0 7F048980 02802025 */ move $a0, $s4 +/* 07D4B4 7F048984 50A00010 */ beql $a1, $zero, .L7F0489C8 +/* 07D4B8 7F048988 8C650018 */ lw $a1, 0x18($v1) +/* 07D4BC 7F04898C 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D4C0 7F048990 00003025 */ move $a2, $zero +/* 07D4C4 7F048994 8E8E0008 */ lw $t6, 8($s4) +/* 07D4C8 7F048998 00409025 */ move $s2, $v0 +/* 07D4CC 7F04899C 00402825 */ move $a1, $v0 +/* 07D4D0 7F0489A0 8DCD0008 */ lw $t5, 8($t6) +/* 07D4D4 7F0489A4 8DB80010 */ lw $t8, 0x10($t5) +/* 07D4D8 7F0489A8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D4DC 7F0489AC 8F040004 */ lw $a0, 4($t8) +/* 07D4E0 7F0489B0 8FA40068 */ lw $a0, 0x68($sp) +/* 07D4E4 7F0489B4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D4E8 7F0489B8 02402825 */ move $a1, $s2 +/* 07D4EC 7F0489BC 8E8F0008 */ lw $t7, 8($s4) +/* 07D4F0 7F0489C0 8DE30008 */ lw $v1, 8($t7) +/* 07D4F4 7F0489C4 8C650018 */ lw $a1, 0x18($v1) +.L7F0489C8: +/* 07D4F8 7F0489C8 02802025 */ move $a0, $s4 +/* 07D4FC 7F0489CC 50A001FE */ beql $a1, $zero, .L7F0491C8 +/* 07D500 7F0489D0 8E8F0008 */ lw $t7, 8($s4) +/* 07D504 7F0489D4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07D508 7F0489D8 00003025 */ move $a2, $zero +/* 07D50C 7F0489DC 8E880008 */ lw $t0, 8($s4) +/* 07D510 7F0489E0 8FB90318 */ lw $t9, 0x318($sp) +/* 07D514 7F0489E4 00409025 */ move $s2, $v0 +/* 07D518 7F0489E8 8D0B0008 */ lw $t3, 8($t0) +/* 07D51C 7F0489EC 00402825 */ move $a1, $v0 +/* 07D520 7F0489F0 C72C00B4 */ lwc1 $f12, 0xb4($t9) +/* 07D524 7F0489F4 8D690018 */ lw $t1, 0x18($t3) +/* 07D528 7F0489F8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D52C 7F0489FC 8D300004 */ lw $s0, 4($t1) +/* 07D530 7F048A00 02002025 */ move $a0, $s0 +/* 07D534 7F048A04 0FC16266 */ jal matrix_4x4_set_position +/* 07D538 7F048A08 02402825 */ move $a1, $s2 +/* 07D53C 7F048A0C 8FA40068 */ lw $a0, 0x68($sp) +/* 07D540 7F048A10 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D544 7F048A14 02402825 */ move $a1, $s2 +/* 07D548 7F048A18 100001EB */ b .L7F0491C8 +/* 07D54C 7F048A1C 8E8F0008 */ lw $t7, 8($s4) +/* 07D550 7F048A20 24010008 */ li $at, 8 +.L7F048A24: +/* 07D554 7F048A24 54410017 */ bnel $v0, $at, .L7F048A84 +/* 07D558 7F048A28 2401000C */ li $at, 12 +/* 07D55C 7F048A2C 8E8C0008 */ lw $t4, 8($s4) +/* 07D560 7F048A30 24020001 */ li $v0, 1 +/* 07D564 7F048A34 26440040 */ addiu $a0, $s2, 0x40 +/* 07D568 7F048A38 858A000E */ lh $t2, 0xe($t4) +/* 07D56C 7F048A3C 29410002 */ slti $at, $t2, 2 +/* 07D570 7F048A40 542001E1 */ bnezl $at, .L7F0491C8 +/* 07D574 7F048A44 8E8F0008 */ lw $t7, 8($s4) +/* 07D578 7F048A48 AFA202F8 */ sw $v0, 0x2f8($sp) +.L7F048A4C: +/* 07D57C 7F048A4C 0FC15FF4 */ jal matrix_4x4_set_identity +/* 07D580 7F048A50 AFA40074 */ sw $a0, 0x74($sp) +/* 07D584 7F048A54 8E8E0008 */ lw $t6, 8($s4) +/* 07D588 7F048A58 8FA202F8 */ lw $v0, 0x2f8($sp) +/* 07D58C 7F048A5C 8FA40074 */ lw $a0, 0x74($sp) +/* 07D590 7F048A60 85CD000E */ lh $t5, 0xe($t6) +/* 07D594 7F048A64 24420001 */ addiu $v0, $v0, 1 +/* 07D598 7F048A68 24840040 */ addiu $a0, $a0, 0x40 +/* 07D59C 7F048A6C 004D082A */ slt $at, $v0, $t5 +/* 07D5A0 7F048A70 5420FFF6 */ bnezl $at, .L7F048A4C +/* 07D5A4 7F048A74 AFA202F8 */ sw $v0, 0x2f8($sp) +/* 07D5A8 7F048A78 100001D3 */ b .L7F0491C8 +/* 07D5AC 7F048A7C 8E8F0008 */ lw $t7, 8($s4) +/* 07D5B0 7F048A80 2401000C */ li $at, 12 +.L7F048A84: +/* 07D5B4 7F048A84 5441002C */ bnel $v0, $at, .L7F048B38 +/* 07D5B8 7F048A88 24010027 */ li $at, 39 +/* 07D5BC 7F048A8C 8E980008 */ lw $t8, 8($s4) +/* 07D5C0 7F048A90 26450040 */ addiu $a1, $s2, 0x40 +/* 07D5C4 7F048A94 8F0F0008 */ lw $t7, 8($t8) +/* 07D5C8 7F048A98 8DE80000 */ lw $t0, ($t7) +/* 07D5CC 7F048A9C 8D040004 */ lw $a0, 4($t0) +/* 07D5D0 7F048AA0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5D4 7F048AA4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D5D8 7F048AA8 02402025 */ move $a0, $s2 +/* 07D5DC 7F048AAC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D5E0 7F048AB0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D5E4 7F048AB4 8E8B0008 */ lw $t3, 8($s4) +/* 07D5E8 7F048AB8 26450080 */ addiu $a1, $s2, 0x80 +/* 07D5EC 7F048ABC 8D690008 */ lw $t1, 8($t3) +/* 07D5F0 7F048AC0 8D390004 */ lw $t9, 4($t1) +/* 07D5F4 7F048AC4 8F240004 */ lw $a0, 4($t9) +/* 07D5F8 7F048AC8 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D5FC 7F048ACC AFA50068 */ sw $a1, 0x68($sp) +/* 07D600 7F048AD0 02402025 */ move $a0, $s2 +/* 07D604 7F048AD4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D608 7F048AD8 8FA50068 */ lw $a1, 0x68($sp) +/* 07D60C 7F048ADC 8E8C0008 */ lw $t4, 8($s4) +/* 07D610 7F048AE0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D614 7F048AE4 8D8A0008 */ lw $t2, 8($t4) +/* 07D618 7F048AE8 8D4E0008 */ lw $t6, 8($t2) +/* 07D61C 7F048AEC 8DC40004 */ lw $a0, 4($t6) +/* 07D620 7F048AF0 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D624 7F048AF4 AFA50074 */ sw $a1, 0x74($sp) +/* 07D628 7F048AF8 02402025 */ move $a0, $s2 +/* 07D62C 7F048AFC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D630 7F048B00 8FA50074 */ lw $a1, 0x74($sp) +/* 07D634 7F048B04 8E8D0008 */ lw $t5, 8($s4) +/* 07D638 7F048B08 26500100 */ addiu $s0, $s2, 0x100 +/* 07D63C 7F048B0C 02002825 */ move $a1, $s0 +/* 07D640 7F048B10 8DB80008 */ lw $t8, 8($t5) +/* 07D644 7F048B14 8F0F000C */ lw $t7, 0xc($t8) +/* 07D648 7F048B18 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07D64C 7F048B1C 8DE40004 */ lw $a0, 4($t7) +/* 07D650 7F048B20 02402025 */ move $a0, $s2 +/* 07D654 7F048B24 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D658 7F048B28 02002825 */ move $a1, $s0 +/* 07D65C 7F048B2C 100001A6 */ b .L7F0491C8 +/* 07D660 7F048B30 8E8F0008 */ lw $t7, 8($s4) +/* 07D664 7F048B34 24010027 */ li $at, 39 +.L7F048B38: +/* 07D668 7F048B38 544100B9 */ bnel $v0, $at, .L7F048E20 +/* 07D66C 7F048B3C 24010028 */ li $at, 40 +/* 07D670 7F048B40 8E880008 */ lw $t0, 8($s4) +/* 07D674 7F048B44 8FAF0678 */ lw $t7, 0x678($sp) +/* 07D678 7F048B48 4600B006 */ mov.s $f0, $f22 +/* 07D67C 7F048B4C 8D030008 */ lw $v1, 8($t0) +/* 07D680 7F048B50 8C6B0004 */ lw $t3, 4($v1) +/* 07D684 7F048B54 8D690004 */ lw $t1, 4($t3) +/* 07D688 7F048B58 AFA90260 */ sw $t1, 0x260($sp) +/* 07D68C 7F048B5C 8C790008 */ lw $t9, 8($v1) +/* 07D690 7F048B60 8F2C0004 */ lw $t4, 4($t9) +/* 07D694 7F048B64 AFAC025C */ sw $t4, 0x25c($sp) +/* 07D698 7F048B68 8C6E0010 */ lw $t6, 0x10($v1) +/* 07D69C 7F048B6C 8C6A000C */ lw $t2, 0xc($v1) +/* 07D6A0 7F048B70 8DCD0004 */ lw $t5, 4($t6) +/* 07D6A4 7F048B74 8D500004 */ lw $s0, 4($t2) +/* 07D6A8 7F048B78 AFAD0254 */ sw $t5, 0x254($sp) +/* 07D6AC 7F048B7C 8C780018 */ lw $t8, 0x18($v1) +/* 07D6B0 7F048B80 C6840014 */ lwc1 $f4, 0x14($s4) +/* 07D6B4 7F048B84 8F020004 */ lw $v0, 4($t8) +/* 07D6B8 7F048B88 C4460010 */ lwc1 $f6, 0x10($v0) +/* 07D6BC 7F048B8C C44A000C */ lwc1 $f10, 0xc($v0) +/* 07D6C0 7F048B90 460A3201 */ sub.s $f8, $f6, $f10 +/* 07D6C4 7F048B94 46044082 */ mul.s $f2, $f8, $f4 +/* 07D6C8 7F048B98 11E00026 */ beqz $t7, .L7F048C34 +/* 07D6CC 7F048B9C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07D6D0 7F048BA0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07D6D4 7F048BA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D6D8 7F048BA8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07D6DC 7F048BAC 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6E0 7F048BB0 44815000 */ mtc1 $at, $f10 +/* 07D6E4 7F048BB4 46144102 */ mul.s $f4, $f8, $f20 +/* 07D6E8 7F048BB8 00000000 */ nop +/* 07D6EC 7F048BBC 46141182 */ mul.s $f6, $f2, $f20 +/* 07D6F0 7F048BC0 00000000 */ nop +/* 07D6F4 7F048BC4 460A3202 */ mul.s $f8, $f6, $f10 +/* 07D6F8 7F048BC8 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D6FC 7F048BCC 46082003 */ div.s $f0, $f4, $f8 +/* 07D700 7F048BD0 46003280 */ add.s $f10, $f6, $f0 +/* 07D704 7F048BD4 E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D708 7F048BD8 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D70C 7F048BDC 460CA03E */ c.le.s $f20, $f12 +/* 07D710 7F048BE0 00000000 */ nop +/* 07D714 7F048BE4 45000008 */ bc1f .L7F048C08 +/* 07D718 7F048BE8 00000000 */ nop +/* 07D71C 7F048BEC 46146101 */ sub.s $f4, $f12, $f20 +.L7F048BF0: +/* 07D720 7F048BF0 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D724 7F048BF4 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D728 7F048BF8 460CA03E */ c.le.s $f20, $f12 +/* 07D72C 7F048BFC 00000000 */ nop +/* 07D730 7F048C00 4503FFFB */ bc1tl .L7F048BF0 +/* 07D734 7F048C04 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C08: +/* 07D738 7F048C08 4616603C */ c.lt.s $f12, $f22 +/* 07D73C 7F048C0C 00000000 */ nop +/* 07D740 7F048C10 45020009 */ bc1fl .L7F048C38 +/* 07D744 7F048C14 C626008C */ lwc1 $f6, 0x8c($s1) +/* 07D748 7F048C18 46146200 */ add.s $f8, $f12, $f20 +.L7F048C1C: +/* 07D74C 7F048C1C E628008C */ swc1 $f8, 0x8c($s1) +/* 07D750 7F048C20 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D754 7F048C24 4616603C */ c.lt.s $f12, $f22 +/* 07D758 7F048C28 00000000 */ nop +/* 07D75C 7F048C2C 4503FFFB */ bc1tl .L7F048C1C +/* 07D760 7F048C30 46146200 */ add.s $f8, $f12, $f20 +.L7F048C34: +/* 07D764 7F048C34 C626008C */ lwc1 $f6, 0x8c($s1) +.L7F048C38: +/* 07D768 7F048C38 46003280 */ add.s $f10, $f6, $f0 +/* 07D76C 7F048C3C E62A008C */ swc1 $f10, 0x8c($s1) +/* 07D770 7F048C40 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D774 7F048C44 460CA03E */ c.le.s $f20, $f12 +/* 07D778 7F048C48 00000000 */ nop +/* 07D77C 7F048C4C 45020009 */ bc1fl .L7F048C74 +/* 07D780 7F048C50 4616603C */ c.lt.s $f12, $f22 +/* 07D784 7F048C54 46146101 */ sub.s $f4, $f12, $f20 +.L7F048C58: +/* 07D788 7F048C58 E624008C */ swc1 $f4, 0x8c($s1) +/* 07D78C 7F048C5C C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D790 7F048C60 460CA03E */ c.le.s $f20, $f12 +/* 07D794 7F048C64 00000000 */ nop +/* 07D798 7F048C68 4503FFFB */ bc1tl .L7F048C58 +/* 07D79C 7F048C6C 46146101 */ sub.s $f4, $f12, $f20 +/* 07D7A0 7F048C70 4616603C */ c.lt.s $f12, $f22 +.L7F048C74: +/* 07D7A4 7F048C74 00000000 */ nop +/* 07D7A8 7F048C78 45000008 */ bc1f .L7F048C9C +/* 07D7AC 7F048C7C 00000000 */ nop +/* 07D7B0 7F048C80 46146200 */ add.s $f8, $f12, $f20 +.L7F048C84: +/* 07D7B4 7F048C84 E628008C */ swc1 $f8, 0x8c($s1) +/* 07D7B8 7F048C88 C62C008C */ lwc1 $f12, 0x8c($s1) +/* 07D7BC 7F048C8C 4616603C */ c.lt.s $f12, $f22 +/* 07D7C0 7F048C90 00000000 */ nop +/* 07D7C4 7F048C94 4503FFFB */ bc1tl .L7F048C84 +/* 07D7C8 7F048C98 46146200 */ add.s $f8, $f12, $f20 +.L7F048C9C: +/* 07D7CC 7F048C9C 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07D7D0 7F048CA0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D7D4 7F048CA4 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D7D8 7F048CA8 4606B03C */ c.lt.s $f22, $f6 +/* 07D7DC 7F048CAC 00000000 */ nop +/* 07D7E0 7F048CB0 4502002B */ bc1fl .L7F048D60 +/* 07D7E4 7F048CB4 C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D7E8 7F048CB8 8FA80260 */ lw $t0, 0x260($sp) +/* 07D7EC 7F048CBC C60A0008 */ lwc1 $f10, 8($s0) +/* 07D7F0 7F048CC0 C62C009C */ lwc1 $f12, 0x9c($s1) +/* 07D7F4 7F048CC4 C5040008 */ lwc1 $f4, 8($t0) +/* 07D7F8 7F048CC8 C6860014 */ lwc1 $f6, 0x14($s4) +/* 07D7FC 7F048CCC 4616603C */ c.lt.s $f12, $f22 +/* 07D800 7F048CD0 46045201 */ sub.s $f8, $f10, $f4 +/* 07D804 7F048CD4 46064082 */ mul.s $f2, $f8, $f6 +/* 07D808 7F048CD8 45020003 */ bc1fl .L7F048CE8 +/* 07D80C 7F048CDC E7A20250 */ swc1 $f2, 0x250($sp) +/* 07D810 7F048CE0 46006307 */ neg.s $f12, $f12 +/* 07D814 7F048CE4 E7A20250 */ swc1 $f2, 0x250($sp) +.L7F048CE8: +/* 07D818 7F048CE8 0FC15FAB */ jal sinf +/* 07D81C 7F048CEC E7AC024C */ swc1 $f12, 0x24c($sp) +/* 07D820 7F048CF0 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D824 7F048CF4 C7AC024C */ lwc1 $f12, 0x24c($sp) +/* 07D828 7F048CF8 46020282 */ mul.s $f10, $f0, $f2 +/* 07D82C 7F048CFC 0FC15FA8 */ jal cosf +/* 07D830 7F048D00 E7AA0248 */ swc1 $f10, 0x248($sp) +/* 07D834 7F048D04 C7A20250 */ lwc1 $f2, 0x250($sp) +/* 07D838 7F048D08 C6280088 */ lwc1 $f8, 0x88($s1) +/* 07D83C 7F048D0C C7AC0248 */ lwc1 $f12, 0x248($sp) +/* 07D840 7F048D10 46020102 */ mul.s $f4, $f0, $f2 +/* 07D844 7F048D14 46081181 */ sub.s $f6, $f2, $f8 +/* 07D848 7F048D18 0FC16A8C */ jal atan2f +/* 07D84C 7F048D1C 46062381 */ sub.s $f14, $f4, $f6 +/* 07D850 7F048D20 C7A2024C */ lwc1 $f2, 0x24c($sp) +/* 07D854 7F048D24 E6200090 */ swc1 $f0, 0x90($s1) +/* 07D858 7F048D28 4602003C */ c.lt.s $f0, $f2 +/* 07D85C 7F048D2C 00000000 */ nop +/* 07D860 7F048D30 45020003 */ bc1fl .L7F048D40 +/* 07D864 7F048D34 C62A009C */ lwc1 $f10, 0x9c($s1) +/* 07D868 7F048D38 E6220090 */ swc1 $f2, 0x90($s1) +/* 07D86C 7F048D3C C62A009C */ lwc1 $f10, 0x9c($s1) +.L7F048D40: +/* 07D870 7F048D40 460AB03C */ c.lt.s $f22, $f10 +/* 07D874 7F048D44 00000000 */ nop +/* 07D878 7F048D48 45020005 */ bc1fl .L7F048D60 +/* 07D87C 7F048D4C C62C0090 */ lwc1 $f12, 0x90($s1) +/* 07D880 7F048D50 C6280090 */ lwc1 $f8, 0x90($s1) +/* 07D884 7F048D54 4608A101 */ sub.s $f4, $f20, $f8 +/* 07D888 7F048D58 E6240090 */ swc1 $f4, 0x90($s1) +/* 07D88C 7F048D5C C62C0090 */ lwc1 $f12, 0x90($s1) +.L7F048D60: +/* 07D890 7F048D60 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07D894 7F048D64 27A5026C */ addiu $a1, $sp, 0x26c +/* 07D898 7F048D68 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07D89C 7F048D6C AFA50074 */ sw $a1, 0x74($sp) +/* 07D8A0 7F048D70 0FC16008 */ jal matrix_4x4_copy +/* 07D8A4 7F048D74 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8A8 7F048D78 02002025 */ move $a0, $s0 +/* 07D8AC 7F048D7C 0FC16266 */ jal matrix_4x4_set_position +/* 07D8B0 7F048D80 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8B4 7F048D84 02402025 */ move $a0, $s2 +/* 07D8B8 7F048D88 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8BC 7F048D8C 8FA50074 */ lw $a1, 0x74($sp) +/* 07D8C0 7F048D90 26500100 */ addiu $s0, $s2, 0x100 +/* 07D8C4 7F048D94 02002825 */ move $a1, $s0 +/* 07D8C8 7F048D98 0FC16008 */ jal matrix_4x4_copy +/* 07D8CC 7F048D9C 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D8D0 7F048DA0 8FA40254 */ lw $a0, 0x254($sp) +/* 07D8D4 7F048DA4 0FC16266 */ jal matrix_4x4_set_position +/* 07D8D8 7F048DA8 02002825 */ move $a1, $s0 +/* 07D8DC 7F048DAC 02402025 */ move $a0, $s2 +/* 07D8E0 7F048DB0 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8E4 7F048DB4 02002825 */ move $a1, $s0 +/* 07D8E8 7F048DB8 27A4026C */ addiu $a0, $sp, 0x26c +/* 07D8EC 7F048DBC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D8F0 7F048DC0 27A502AC */ addiu $a1, $sp, 0x2ac +/* 07D8F4 7F048DC4 26450040 */ addiu $a1, $s2, 0x40 +/* 07D8F8 7F048DC8 AFA5006C */ sw $a1, 0x6c($sp) +/* 07D8FC 7F048DCC 0FC16008 */ jal matrix_4x4_copy +/* 07D900 7F048DD0 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D904 7F048DD4 8FA40260 */ lw $a0, 0x260($sp) +/* 07D908 7F048DD8 0FC16266 */ jal matrix_4x4_set_position +/* 07D90C 7F048DDC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D910 7F048DE0 02402025 */ move $a0, $s2 +/* 07D914 7F048DE4 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D918 7F048DE8 8FA5006C */ lw $a1, 0x6c($sp) +/* 07D91C 7F048DEC 26450080 */ addiu $a1, $s2, 0x80 +/* 07D920 7F048DF0 AFA50068 */ sw $a1, 0x68($sp) +/* 07D924 7F048DF4 0FC16008 */ jal matrix_4x4_copy +/* 07D928 7F048DF8 27A402AC */ addiu $a0, $sp, 0x2ac +/* 07D92C 7F048DFC 8FA4025C */ lw $a0, 0x25c($sp) +/* 07D930 7F048E00 0FC16266 */ jal matrix_4x4_set_position +/* 07D934 7F048E04 8FA50068 */ lw $a1, 0x68($sp) +/* 07D938 7F048E08 02402025 */ move $a0, $s2 +/* 07D93C 7F048E0C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07D940 7F048E10 8FA50068 */ lw $a1, 0x68($sp) +/* 07D944 7F048E14 100000EC */ b .L7F0491C8 +/* 07D948 7F048E18 8E8F0008 */ lw $t7, 8($s4) +/* 07D94C 7F048E1C 24010028 */ li $at, 40 +.L7F048E20: +/* 07D950 7F048E20 14410086 */ bne $v0, $at, .L7F04903C +/* 07D954 7F048E24 00000000 */ nop +/* 07D958 7F048E28 8E8B0008 */ lw $t3, 8($s4) +/* 07D95C 7F048E2C 3C0A8005 */ lui $t2, %hi(clock_timer) +/* 07D960 7F048E30 8D4A8374 */ lw $t2, %lo(clock_timer)($t2) +/* 07D964 7F048E34 8D690008 */ lw $t1, 8($t3) +/* 07D968 7F048E38 8FAE0678 */ lw $t6, 0x678($sp) +/* 07D96C 7F048E3C 27B001B0 */ addiu $s0, $sp, 0x1b0 +/* 07D970 7F048E40 8D390008 */ lw $t9, 8($t1) +/* 07D974 7F048E44 3C0F8003 */ lui $t7, %hi(D_80030B34) +/* 07D978 7F048E48 02402025 */ move $a0, $s2 +/* 07D97C 7F048E4C 8F2C0004 */ lw $t4, 4($t9) +/* 07D980 7F048E50 26450040 */ addiu $a1, $s2, 0x40 +/* 07D984 7F048E54 1940001E */ blez $t2, .L7F048ED0 +/* 07D988 7F048E58 AFAC01FC */ sw $t4, 0x1fc($sp) +/* 07D98C 7F048E5C 51C0001D */ beql $t6, $zero, .L7F048ED4 +/* 07D990 7F048E60 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D994 7F048E64 C6260088 */ lwc1 $f6, 0x88($s1) +/* 07D998 7F048E68 C62A008C */ lwc1 $f10, 0x8c($s1) +/* 07D99C 7F048E6C 460A3200 */ add.s $f8, $f6, $f10 +/* 07D9A0 7F048E70 E6280088 */ swc1 $f8, 0x88($s1) +/* 07D9A4 7F048E74 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9A8 7F048E78 4600A03E */ c.le.s $f20, $f0 +/* 07D9AC 7F048E7C 00000000 */ nop +/* 07D9B0 7F048E80 45020009 */ bc1fl .L7F048EA8 +/* 07D9B4 7F048E84 4616003C */ c.lt.s $f0, $f22 +/* 07D9B8 7F048E88 46140101 */ sub.s $f4, $f0, $f20 +.L7F048E8C: +/* 07D9BC 7F048E8C E6240088 */ swc1 $f4, 0x88($s1) +/* 07D9C0 7F048E90 C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9C4 7F048E94 4600A03E */ c.le.s $f20, $f0 +/* 07D9C8 7F048E98 00000000 */ nop +/* 07D9CC 7F048E9C 4503FFFB */ bc1tl .L7F048E8C +/* 07D9D0 7F048EA0 46140101 */ sub.s $f4, $f0, $f20 +/* 07D9D4 7F048EA4 4616003C */ c.lt.s $f0, $f22 +.L7F048EA8: +/* 07D9D8 7F048EA8 00000000 */ nop +/* 07D9DC 7F048EAC 45020009 */ bc1fl .L7F048ED4 +/* 07D9E0 7F048EB0 8E2D0014 */ lw $t5, 0x14($s1) +/* 07D9E4 7F048EB4 46140180 */ add.s $f6, $f0, $f20 +.L7F048EB8: +/* 07D9E8 7F048EB8 E6260088 */ swc1 $f6, 0x88($s1) +/* 07D9EC 7F048EBC C6200088 */ lwc1 $f0, 0x88($s1) +/* 07D9F0 7F048EC0 4616003C */ c.lt.s $f0, $f22 +/* 07D9F4 7F048EC4 00000000 */ nop +/* 07D9F8 7F048EC8 4503FFFB */ bc1tl .L7F048EB8 +/* 07D9FC 7F048ECC 46140180 */ add.s $f6, $f0, $f20 +.L7F048ED0: +/* 07DA00 7F048ED0 8E2D0014 */ lw $t5, 0x14($s1) +.L7F048ED4: +/* 07DA04 7F048ED4 25EF0B34 */ addiu $t7, %lo(D_80030B34) # addiu $t7, $t7, 0xb34 +/* 07DA08 7F048ED8 25EB003C */ addiu $t3, $t7, 0x3c +/* 07DA0C 7F048EDC 8DB80020 */ lw $t8, 0x20($t5) +/* 07DA10 7F048EE0 02004825 */ move $t1, $s0 +/* 07DA14 7F048EE4 13000015 */ beqz $t8, .L7F048F3C +/* 07DA18 7F048EE8 00000000 */ nop +.L7F048EEC: +/* 07DA1C 7F048EEC 8DE10000 */ lw $at, ($t7) +/* 07DA20 7F048EF0 25EF000C */ addiu $t7, $t7, 0xc +/* 07DA24 7F048EF4 2529000C */ addiu $t1, $t1, 0xc +/* 07DA28 7F048EF8 AD21FFF4 */ sw $at, -0xc($t1) +/* 07DA2C 7F048EFC 8DE1FFF8 */ lw $at, -8($t7) +/* 07DA30 7F048F00 AD21FFF8 */ sw $at, -8($t1) +/* 07DA34 7F048F04 8DE1FFFC */ lw $at, -4($t7) +/* 07DA38 7F048F08 15EBFFF8 */ bne $t7, $t3, .L7F048EEC +/* 07DA3C 7F048F0C AD21FFFC */ sw $at, -4($t1) +/* 07DA40 7F048F10 8DE10000 */ lw $at, ($t7) +/* 07DA44 7F048F14 0FC1E0F1 */ jal currentPlayerGetMatrix10CC +/* 07DA48 7F048F18 AD210000 */ sw $at, ($t1) +/* 07DA4C 7F048F1C AFA201B0 */ sw $v0, 0x1b0($sp) +/* 07DA50 7F048F20 AFB201C0 */ sw $s2, 0x1c0($sp) +/* 07DA54 7F048F24 8E250014 */ lw $a1, 0x14($s1) +/* 07DA58 7F048F28 0FC1BCBE */ jal subcalcmatrices +/* 07DA5C 7F048F2C 02002025 */ move $a0, $s0 +/* 07DA60 7F048F30 26590040 */ addiu $t9, $s2, 0x40 +/* 07DA64 7F048F34 10000003 */ b .L7F048F44 +/* 07DA68 7F048F38 AFB9006C */ sw $t9, 0x6c($sp) +.L7F048F3C: +/* 07DA6C 7F048F3C 0FC16008 */ jal matrix_4x4_copy +/* 07DA70 7F048F40 AFA5006C */ sw $a1, 0x6c($sp) +.L7F048F44: +/* 07DA74 7F048F44 8E2C0008 */ lw $t4, 8($s1) +/* 07DA78 7F048F48 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA7C 7F048F4C 000C5080 */ sll $t2, $t4, 2 +/* 07DA80 7F048F50 05410006 */ bgez $t2, .L7F048F6C +/* 07DA84 7F048F54 00000000 */ nop +/* 07DA88 7F048F58 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DA8C 7F048F5C 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 07DA90 7F048F60 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DA94 7F048F64 10000004 */ b .L7F048F78 +/* 07DA98 7F048F68 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F6C: +/* 07DA9C 7F048F6C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DAA0 7F048F70 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAA4 7F048F74 26450080 */ addiu $a1, $s2, 0x80 +.L7F048F78: +/* 07DAA8 7F048F78 AFA50068 */ sw $a1, 0x68($sp) +/* 07DAAC 7F048F7C 0FC16008 */ jal matrix_4x4_copy +/* 07DAB0 7F048F80 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DAB4 7F048F84 8FA401FC */ lw $a0, 0x1fc($sp) +/* 07DAB8 7F048F88 0FC16266 */ jal matrix_4x4_set_position +/* 07DABC 7F048F8C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DAC0 7F048F90 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DAC4 7F048F94 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DAC8 7F048F98 8FA50068 */ lw $a1, 0x68($sp) +/* 07DACC 7F048F9C 8E8E0008 */ lw $t6, 8($s4) +/* 07DAD0 7F048FA0 02802025 */ move $a0, $s4 +/* 07DAD4 7F048FA4 00003025 */ move $a2, $zero +/* 07DAD8 7F048FA8 8DC30008 */ lw $v1, 8($t6) +/* 07DADC 7F048FAC 8C65000C */ lw $a1, 0xc($v1) +/* 07DAE0 7F048FB0 50A00013 */ beql $a1, $zero, .L7F049000 +/* 07DAE4 7F048FB4 8C650010 */ lw $a1, 0x10($v1) +/* 07DAE8 7F048FB8 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DAEC 7F048FBC 8CB20004 */ lw $s2, 4($a1) +/* 07DAF0 7F048FC0 00408025 */ move $s0, $v0 +/* 07DAF4 7F048FC4 C62C0088 */ lwc1 $f12, 0x88($s1) +/* 07DAF8 7F048FC8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DAFC 7F048FCC 27A50200 */ addiu $a1, $sp, 0x200 +/* 07DB00 7F048FD0 27A40200 */ addiu $a0, $sp, 0x200 +/* 07DB04 7F048FD4 0FC16008 */ jal matrix_4x4_copy +/* 07DB08 7F048FD8 02002825 */ move $a1, $s0 +/* 07DB0C 7F048FDC 02402025 */ move $a0, $s2 +/* 07DB10 7F048FE0 0FC16266 */ jal matrix_4x4_set_position +/* 07DB14 7F048FE4 02002825 */ move $a1, $s0 +/* 07DB18 7F048FE8 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB1C 7F048FEC 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB20 7F048FF0 02002825 */ move $a1, $s0 +/* 07DB24 7F048FF4 8E8D0008 */ lw $t5, 8($s4) +/* 07DB28 7F048FF8 8DA30008 */ lw $v1, 8($t5) +/* 07DB2C 7F048FFC 8C650010 */ lw $a1, 0x10($v1) +.L7F049000: +/* 07DB30 7F049000 02802025 */ move $a0, $s4 +/* 07DB34 7F049004 00003025 */ move $a2, $zero +/* 07DB38 7F049008 50A0006F */ beql $a1, $zero, .L7F0491C8 +/* 07DB3C 7F04900C 8E8F0008 */ lw $t7, 8($s4) +/* 07DB40 7F049010 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07DB44 7F049014 8CB20004 */ lw $s2, 4($a1) +/* 07DB48 7F049018 00408025 */ move $s0, $v0 +/* 07DB4C 7F04901C 02402025 */ move $a0, $s2 +/* 07DB50 7F049020 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DB54 7F049024 00402825 */ move $a1, $v0 +/* 07DB58 7F049028 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DB5C 7F04902C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DB60 7F049030 02002825 */ move $a1, $s0 +/* 07DB64 7F049034 10000064 */ b .L7F0491C8 +/* 07DB68 7F049038 8E8F0008 */ lw $t7, 8($s4) +.L7F04903C: +/* 07DB6C 7F04903C 16020061 */ bne $s0, $v0, .L7F0491C4 +/* 07DB70 7F049040 26450040 */ addiu $a1, $s2, 0x40 +/* 07DB74 7F049044 8E980008 */ lw $t8, 8($s4) +/* 07DB78 7F049048 8F030008 */ lw $v1, 8($t8) +/* 07DB7C 7F04904C 8C6B000C */ lw $t3, 0xc($v1) +/* 07DB80 7F049050 8C680004 */ lw $t0, 4($v1) +/* 07DB84 7F049054 8D6F0004 */ lw $t7, 4($t3) +/* 07DB88 7F049058 8D100004 */ lw $s0, 4($t0) +/* 07DB8C 7F04905C AFAF0164 */ sw $t7, 0x164($sp) +/* 07DB90 7F049060 8C690010 */ lw $t1, 0x10($v1) +/* 07DB94 7F049064 8D390004 */ lw $t9, 4($t1) +/* 07DB98 7F049068 AFB90160 */ sw $t9, 0x160($sp) +/* 07DB9C 7F04906C 8C6C0008 */ lw $t4, 8($v1) +/* 07DBA0 7F049070 8D8A0004 */ lw $t2, 4($t4) +/* 07DBA4 7F049074 AFAA015C */ sw $t2, 0x15c($sp) +/* 07DBA8 7F049078 8C6E0018 */ lw $t6, 0x18($v1) +/* 07DBAC 7F04907C 8DCD0004 */ lw $t5, 4($t6) +/* 07DBB0 7F049080 AFAD0158 */ sw $t5, 0x158($sp) +/* 07DBB4 7F049084 C62E00C8 */ lwc1 $f14, 0xc8($s1) +/* 07DBB8 7F049088 46007387 */ neg.s $f14, $f14 +/* 07DBBC 7F04908C 4616703C */ c.lt.s $f14, $f22 +/* 07DBC0 7F049090 00000000 */ nop +/* 07DBC4 7F049094 45020003 */ bc1fl .L7F0490A4 +/* 07DBC8 7F049098 C62C00CC */ lwc1 $f12, 0xcc($s1) +/* 07DBCC 7F04909C 46147380 */ add.s $f14, $f14, $f20 +/* 07DBD0 7F0490A0 C62C00CC */ lwc1 $f12, 0xcc($s1) +.L7F0490A4: +/* 07DBD4 7F0490A4 46006307 */ neg.s $f12, $f12 +/* 07DBD8 7F0490A8 4616603C */ c.lt.s $f12, $f22 +/* 07DBDC 7F0490AC 00000000 */ nop +/* 07DBE0 7F0490B0 45020003 */ bc1fl .L7F0490C0 +/* 07DBE4 7F0490B4 AFA5006C */ sw $a1, 0x6c($sp) +/* 07DBE8 7F0490B8 46146300 */ add.s $f12, $f12, $f20 +/* 07DBEC 7F0490BC AFA5006C */ sw $a1, 0x6c($sp) +.L7F0490C0: +/* 07DBF0 7F0490C0 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DBF4 7F0490C4 E7AE0154 */ swc1 $f14, 0x154($sp) +/* 07DBF8 7F0490C8 02002025 */ move $a0, $s0 +/* 07DBFC 7F0490CC 0FC16266 */ jal matrix_4x4_set_position +/* 07DC00 7F0490D0 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC04 7F0490D4 02402025 */ move $a0, $s2 +/* 07DC08 7F0490D8 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC0C 7F0490DC 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC10 7F0490E0 264500C0 */ addiu $a1, $s2, 0xc0 +/* 07DC14 7F0490E4 C7AC0154 */ lwc1 $f12, 0x154($sp) +/* 07DC18 7F0490E8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 07DC1C 7F0490EC AFA50074 */ sw $a1, 0x74($sp) +/* 07DC20 7F0490F0 8FA40164 */ lw $a0, 0x164($sp) +/* 07DC24 7F0490F4 0FC16266 */ jal matrix_4x4_set_position +/* 07DC28 7F0490F8 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC2C 7F0490FC 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC30 7F049100 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC34 7F049104 8FA50074 */ lw $a1, 0x74($sp) +/* 07DC38 7F049108 3C018005 */ lui $at, %hi(D_80052B70) +/* 07DC3C 7F04910C 26500100 */ addiu $s0, $s2, 0x100 +/* 07DC40 7F049110 02002825 */ move $a1, $s0 +/* 07DC44 7F049114 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 07DC48 7F049118 C42C2B70 */ lwc1 $f12, %lo(D_80052B70)($at) +/* 07DC4C 7F04911C 8FA40160 */ lw $a0, 0x160($sp) +/* 07DC50 7F049120 0FC16266 */ jal matrix_4x4_set_position +/* 07DC54 7F049124 02002825 */ move $a1, $s0 +/* 07DC58 7F049128 8FA40074 */ lw $a0, 0x74($sp) +/* 07DC5C 7F04912C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC60 7F049130 02002825 */ move $a1, $s0 +/* 07DC64 7F049134 26450080 */ addiu $a1, $s2, 0x80 +/* 07DC68 7F049138 AFA50068 */ sw $a1, 0x68($sp) +/* 07DC6C 7F04913C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 07DC70 7F049140 8FA4015C */ lw $a0, 0x15c($sp) +/* 07DC74 7F049144 8FA4006C */ lw $a0, 0x6c($sp) +/* 07DC78 7F049148 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place +/* 07DC7C 7F04914C 8FA50068 */ lw $a1, 0x68($sp) +/* 07DC80 7F049150 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 07DC84 7F049154 00000000 */ nop +/* 07DC88 7F049158 27B0016C */ addiu $s0, $sp, 0x16c +/* 07DC8C 7F04915C 02003025 */ move $a2, $s0 +/* 07DC90 7F049160 00402025 */ move $a0, $v0 +/* 07DC94 7F049164 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07DC98 7F049168 8FA5006C */ lw $a1, 0x6c($sp) +/* 07DC9C 7F04916C 8FA40158 */ lw $a0, 0x158($sp) +/* 07DCA0 7F049170 02002825 */ move $a1, $s0 +/* 07DCA4 7F049174 26260084 */ addiu $a2, $s1, 0x84 +/* 07DCA8 7F049178 0FC0FD50 */ jal sub_GAME_7F03F540 +/* 07DCAC 7F04917C 26270080 */ addiu $a3, $s1, 0x80 +/* 07DCB0 7F049180 8E980008 */ lw $t8, 8($s4) +/* 07DCB4 7F049184 8F030008 */ lw $v1, 8($t8) +/* 07DCB8 7F049188 8C65001C */ lw $a1, 0x1c($v1) +/* 07DCBC 7F04918C 50A00008 */ beql $a1, $zero, .L7F0491B0 +/* 07DCC0 7F049190 8C650020 */ lw $a1, 0x20($v1) +/* 07DCC4 7F049194 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCC8 7F049198 02802025 */ move $a0, $s4 +/* 07DCCC 7F04919C 8E2800C4 */ lw $t0, 0xc4($s1) +/* 07DCD0 7F0491A0 A4480000 */ sh $t0, ($v0) +/* 07DCD4 7F0491A4 8E8B0008 */ lw $t3, 8($s4) +/* 07DCD8 7F0491A8 8D630008 */ lw $v1, 8($t3) +/* 07DCDC 7F0491AC 8C650020 */ lw $a1, 0x20($v1) +.L7F0491B0: +/* 07DCE0 7F0491B0 50A00005 */ beql $a1, $zero, .L7F0491C8 +/* 07DCE4 7F0491B4 8E8F0008 */ lw $t7, 8($s4) +/* 07DCE8 7F0491B8 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07DCEC 7F0491BC 02802025 */ move $a0, $s4 +/* 07DCF0 7F0491C0 AC400000 */ sw $zero, ($v0) +.L7F0491C4: +/* 07DCF4 7F0491C4 8E8F0008 */ lw $t7, 8($s4) +.L7F0491C8: +/* 07DCF8 7F0491C8 02802025 */ move $a0, $s4 +/* 07DCFC 7F0491CC 0FC1BBA9 */ jal sub_GAME_7F06EEA4 +/* 07DD00 7F0491D0 8DE50000 */ lw $a1, ($t7) +/* 07DD04 7F0491D4 8E89000C */ lw $t1, 0xc($s4) +/* 07DD08 7F0491D8 02602025 */ move $a0, $s3 +/* 07DD0C 7F0491DC C52A0038 */ lwc1 $f10, 0x38($t1) +/* 07DD10 7F0491E0 46005207 */ neg.s $f8, $f10 +/* 07DD14 7F0491E4 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD18 7F0491E8 E6680018 */ swc1 $f8, 0x18($s3) +/* 07DD1C 7F0491EC 8E640020 */ lw $a0, 0x20($s3) +/* 07DD20 7F0491F0 50800018 */ beql $a0, $zero, .L7F049254 +/* 07DD24 7F0491F4 8E230064 */ lw $v1, 0x64($s1) +/* 07DD28 7F0491F8 8C820024 */ lw $v0, 0x24($a0) +.L7F0491FC: +/* 07DD2C 7F0491FC 0FC110B7 */ jal sub_GAME_7F0442DC +/* 07DD30 7F049200 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD34 7F049204 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD38 7F049208 5480FFFC */ bnezl $a0, .L7F0491FC +/* 07DD3C 7F04920C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD40 7F049210 10000010 */ b .L7F049254 +/* 07DD44 7F049214 8E230064 */ lw $v1, 0x64($s1) +.L7F049218: +/* 07DD48 7F049218 92790001 */ lbu $t9, 1($s3) +/* 07DD4C 7F04921C 02602025 */ move $a0, $s3 +/* 07DD50 7F049220 332CFFFD */ andi $t4, $t9, 0xfffd +/* 07DD54 7F049224 0FC10F5C */ jal handle_thrown_explosive_detonation +/* 07DD58 7F049228 A26C0001 */ sb $t4, 1($s3) +/* 07DD5C 7F04922C 8E640020 */ lw $a0, 0x20($s3) +/* 07DD60 7F049230 50800008 */ beql $a0, $zero, .L7F049254 +/* 07DD64 7F049234 8E230064 */ lw $v1, 0x64($s1) +/* 07DD68 7F049238 8C820024 */ lw $v0, 0x24($a0) +.L7F04923C: +/* 07DD6C 7F04923C 0FC11093 */ jal sub_GAME_7F04424C +/* 07DD70 7F049240 AFA20684 */ sw $v0, 0x684($sp) +/* 07DD74 7F049244 8FA40684 */ lw $a0, 0x684($sp) +/* 07DD78 7F049248 5480FFFC */ bnezl $a0, .L7F04923C +/* 07DD7C 7F04924C 8C820024 */ lw $v0, 0x24($a0) +/* 07DD80 7F049250 8E230064 */ lw $v1, 0x64($s1) +.L7F049254: +/* 07DD84 7F049254 2401FEFF */ li $at, -257 +/* 07DD88 7F049258 266D0008 */ addiu $t5, $s3, 8 +/* 07DD8C 7F04925C 306A0100 */ andi $t2, $v1, 0x100 +/* 07DD90 7F049260 1140001F */ beqz $t2, .L7F0492E0 +/* 07DD94 7F049264 00617024 */ and $t6, $v1, $at +/* 07DD98 7F049268 AE2E0064 */ sw $t6, 0x64($s1) +/* 07DD9C 7F04926C 0C002914 */ jal randomGetNext +/* 07DDA0 7F049270 AFAD0070 */ sw $t5, 0x70($sp) +/* 07DDA4 7F049274 44822000 */ mtc1 $v0, $f4 +/* 07DDA8 7F049278 02202025 */ move $a0, $s1 +/* 07DDAC 7F04927C 04410005 */ bgez $v0, .L7F049294 +/* 07DDB0 7F049280 468021A0 */ cvt.s.w $f6, $f4 +/* 07DDB4 7F049284 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07DDB8 7F049288 44815000 */ mtc1 $at, $f10 +/* 07DDBC 7F04928C 00000000 */ nop +/* 07DDC0 7F049290 460A3180 */ add.s $f6, $f6, $f10 +.L7F049294: +/* 07DDC4 7F049294 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07DDC8 7F049298 44814000 */ mtc1 $at, $f8 +/* 07DDCC 7F04929C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 07DDD0 7F0492A0 44815000 */ mtc1 $at, $f10 +/* 07DDD4 7F0492A4 46083102 */ mul.s $f4, $f6, $f8 +/* 07DDD8 7F0492A8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 07DDDC 7F0492AC 44814000 */ mtc1 $at, $f8 +/* 07DDE0 7F0492B0 8E380064 */ lw $t8, 0x64($s1) +/* 07DDE4 7F0492B4 3C010006 */ lui $at, 6 +/* 07DDE8 7F0492B8 8FA60070 */ lw $a2, 0x70($sp) +/* 07DDEC 7F0492BC 03014024 */ and $t0, $t8, $at +/* 07DDF0 7F0492C0 460A2182 */ mul.s $f6, $f4, $f10 +/* 07DDF4 7F0492C4 00003825 */ move $a3, $zero +/* 07DDF8 7F0492C8 00085C42 */ srl $t3, $t0, 0x11 +/* 07DDFC 7F0492CC AFAB0010 */ sw $t3, 0x10($sp) +/* 07DE00 7F0492D0 46083100 */ add.s $f4, $f6, $f8 +/* 07DE04 7F0492D4 44052000 */ mfc1 $a1, $f4 +/* 07DE08 7F0492D8 0FC13842 */ jal maybe_detonate_object +/* 07DE0C 7F0492DC 00000000 */ nop +.L7F0492E0: +/* 07DE10 7F0492E0 8FAF0678 */ lw $t7, 0x678($sp) +/* 07DE14 7F0492E4 51E0020D */ beql $t7, $zero, .L7F049B1C +/* 07DE18 7F0492E8 8FA90680 */ lw $t1, 0x680($sp) +/* 07DE1C 7F0492EC 92220003 */ lbu $v0, 3($s1) +/* 07DE20 7F0492F0 24010001 */ li $at, 1 +/* 07DE24 7F0492F4 54410006 */ bnel $v0, $at, .L7F049310 +/* 07DE28 7F0492F8 2401000D */ li $at, 13 +/* 07DE2C 7F0492FC 0FC14E8F */ jal sub_GAME_7F053A3C +/* 07DE30 7F049300 8E640004 */ lw $a0, 4($s3) +/* 07DE34 7F049304 10000202 */ b .L7F049B10 +/* 07DE38 7F049308 00000000 */ nop +/* 07DE3C 7F04930C 2401000D */ li $at, 13 +.L7F049310: +/* 07DE40 7F049310 144101FF */ bne $v0, $at, .L7F049B10 +/* 07DE44 7F049314 00000000 */ nop +/* 07DE48 7F049318 0FC2FF01 */ jal get_controls_locked_flag +/* 07DE4C 7F04931C 00000000 */ nop +/* 07DE50 7F049320 144001FB */ bnez $v0, .L7F049B10 +/* 07DE54 7F049324 00000000 */ nop +/* 07DE58 7F049328 8E700004 */ lw $s0, 4($s3) +/* 07DE5C 7F04932C AFA0013C */ sw $zero, 0x13c($sp) +/* 07DE60 7F049330 AFA00138 */ sw $zero, 0x138($sp) +/* 07DE64 7F049334 8E0900D0 */ lw $t1, 0xd0($s0) +/* 07DE68 7F049338 512001E4 */ beql $t1, $zero, .L7F049ACC +/* 07DE6C 7F04933C 8E980008 */ lw $t8, 8($s4) +/* 07DE70 7F049340 8E390008 */ lw $t9, 8($s1) +/* 07DE74 7F049344 001960C0 */ sll $t4, $t9, 3 +/* 07DE78 7F049348 058201E0 */ bltzl $t4, .L7F049ACC +/* 07DE7C 7F04934C 8E980008 */ lw $t8, 8($s4) +/* 07DE80 7F049350 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DE84 7F049354 3C0C8005 */ lui $t4, %hi(global_timer) +/* 07DE88 7F049358 254E0001 */ addiu $t6, $t2, 1 +/* 07DE8C 7F04935C 31CD0001 */ andi $t5, $t6, 1 +/* 07DE90 7F049360 AE0E00AC */ sw $t6, 0xac($s0) +/* 07DE94 7F049364 2DB80001 */ sltiu $t8, $t5, 1 +/* 07DE98 7F049368 AFB8013C */ sw $t8, 0x13c($sp) +/* 07DE9C 7F04936C 8E880008 */ lw $t0, 8($s4) +/* 07DEA0 7F049370 39A90001 */ xori $t1, $t5, 1 +/* 07DEA4 7F049374 2D290001 */ sltiu $t1, $t1, 1 +/* 07DEA8 7F049378 8D0B0008 */ lw $t3, 8($t0) +/* 07DEAC 7F04937C 8D6F0014 */ lw $t7, 0x14($t3) +/* 07DEB0 7F049380 51E00003 */ beql $t7, $zero, .L7F049390 +/* 07DEB4 7F049384 8E1900C0 */ lw $t9, 0xc0($s0) +/* 07DEB8 7F049388 AFA90138 */ sw $t1, 0x138($sp) +/* 07DEBC 7F04938C 8E1900C0 */ lw $t9, 0xc0($s0) +.L7F049390: +/* 07DEC0 7F049390 8D8C837C */ lw $t4, %lo(global_timer)($t4) +/* 07DEC4 7F049394 032C082A */ slt $at, $t9, $t4 +/* 07DEC8 7F049398 50200032 */ beql $at, $zero, .L7F049464 +/* 07DECC 7F04939C 8FAF013C */ lw $t7, 0x13c($sp) +/* 07DED0 7F0493A0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DED4 7F0493A4 50800008 */ beql $a0, $zero, .L7F0493C8 +/* 07DED8 7F0493A8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEDC 7F0493AC 0C00237C */ jal sfxGetArg0Unk3F +/* 07DEE0 7F0493B0 00000000 */ nop +/* 07DEE4 7F0493B4 50400004 */ beql $v0, $zero, .L7F0493C8 +/* 07DEE8 7F0493B8 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DEEC 7F0493BC 0C002408 */ jal sfxDeactivate +/* 07DEF0 7F0493C0 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DEF4 7F0493C4 8E0400C8 */ lw $a0, 0xc8($s0) +.L7F0493C8: +/* 07DEF8 7F0493C8 50800008 */ beql $a0, $zero, .L7F0493EC +/* 07DEFC 7F0493CC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF00 7F0493D0 0C00237C */ jal sfxGetArg0Unk3F +/* 07DF04 7F0493D4 00000000 */ nop +/* 07DF08 7F0493D8 50400004 */ beql $v0, $zero, .L7F0493EC +/* 07DF0C 7F0493DC 8E0A00C4 */ lw $t2, 0xc4($s0) +/* 07DF10 7F0493E0 0C002408 */ jal sfxDeactivate +/* 07DF14 7F0493E4 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF18 7F0493E8 8E0A00C4 */ lw $t2, 0xc4($s0) +.L7F0493EC: +/* 07DF1C 7F0493EC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07DF20 7F0493F0 240500FD */ li $a1, 253 +/* 07DF24 7F0493F4 1540000A */ bnez $t2, .L7F049420 +/* 07DF28 7F0493F8 260600C4 */ addiu $a2, $s0, 0xc4 +/* 07DF2C 7F0493FC 266E0008 */ addiu $t6, $s3, 8 +/* 07DF30 7F049400 AFAE0070 */ sw $t6, 0x70($sp) +/* 07DF34 7F049404 0C002382 */ jal play_sfx_a1 +/* 07DF38 7F049408 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07DF3C 7F04940C 8E0400C4 */ lw $a0, 0xc4($s0) +/* 07DF40 7F049410 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF44 7F049414 8FA50070 */ lw $a1, 0x70($sp) +/* 07DF48 7F049418 1000000D */ b .L7F049450 +/* 07DF4C 7F04941C 00000000 */ nop +.L7F049420: +/* 07DF50 7F049420 8E0D00C8 */ lw $t5, 0xc8($s0) +/* 07DF54 7F049424 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 07DF58 7F049428 240500FD */ li $a1, 253 +/* 07DF5C 7F04942C 15A00008 */ bnez $t5, .L7F049450 +/* 07DF60 7F049430 260600C8 */ addiu $a2, $s0, 0xc8 +/* 07DF64 7F049434 26780008 */ addiu $t8, $s3, 8 +/* 07DF68 7F049438 AFB80070 */ sw $t8, 0x70($sp) +/* 07DF6C 7F04943C 0C002382 */ jal play_sfx_a1 +/* 07DF70 7F049440 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 07DF74 7F049444 8E0400C8 */ lw $a0, 0xc8($s0) +/* 07DF78 7F049448 0FC14E84 */ jal sub_GAME_7F053A10 +/* 07DF7C 7F04944C 8FA50070 */ lw $a1, 0x70($sp) +.L7F049450: +/* 07DF80 7F049450 3C088005 */ lui $t0, %hi(global_timer) +/* 07DF84 7F049454 8D08837C */ lw $t0, %lo(global_timer)($t0) +/* 07DF88 7F049458 250B0002 */ addiu $t3, $t0, 2 +/* 07DF8C 7F04945C AE0B00C0 */ sw $t3, 0xc0($s0) +/* 07DF90 7F049460 8FAF013C */ lw $t7, 0x13c($sp) +.L7F049464: +/* 07DF94 7F049464 8FA90138 */ lw $t1, 0x138($sp) +/* 07DF98 7F049468 24190001 */ li $t9, 1 +/* 07DF9C 7F04946C 55E00004 */ bnezl $t7, .L7F049480 +/* 07DFA0 7F049470 AFB9011C */ sw $t9, 0x11c($sp) +/* 07DFA4 7F049474 51200195 */ beql $t1, $zero, .L7F049ACC +/* 07DFA8 7F049478 8E980008 */ lw $t8, 8($s4) +/* 07DFAC 7F04947C AFB9011C */ sw $t9, 0x11c($sp) +.L7F049480: +/* 07DFB0 7F049480 AFA0010C */ sw $zero, 0x10c($sp) +/* 07DFB4 7F049484 8E6C0014 */ lw $t4, 0x14($s3) +/* 07DFB8 7F049488 AFAC0108 */ sw $t4, 0x108($sp) +/* 07DFBC 7F04948C 8E0A00AC */ lw $t2, 0xac($s0) +/* 07DFC0 7F049490 314E0003 */ andi $t6, $t2, 3 +/* 07DFC4 7F049494 2DCD0001 */ sltiu $t5, $t6, 1 +/* 07DFC8 7F049498 0FC225E6 */ jal get_curplayer_positiondata +/* 07DFCC 7F04949C AFAD0104 */ sw $t5, 0x104($sp) +/* 07DFD0 7F0494A0 AFA20100 */ sw $v0, 0x100($sp) +/* 07DFD4 7F0494A4 8E980008 */ lw $t8, 8($s4) +/* 07DFD8 7F0494A8 24040005 */ li $a0, 5 +/* 07DFDC 7F0494AC 8F030008 */ lw $v1, 8($t8) +/* 07DFE0 7F0494B0 8C68001C */ lw $t0, 0x1c($v1) +/* 07DFE4 7F0494B4 51000007 */ beql $t0, $zero, .L7F0494D4 +/* 07DFE8 7F0494B8 92690001 */ lbu $t1, 1($s3) +/* 07DFEC 7F0494BC 8E0B00AC */ lw $t3, 0xac($s0) +/* 07DFF0 7F0494C0 316F0007 */ andi $t7, $t3, 7 +/* 07DFF4 7F0494C4 55E00003 */ bnezl $t7, .L7F0494D4 +/* 07DFF8 7F0494C8 92690001 */ lbu $t1, 1($s3) +/* 07DFFC 7F0494CC 24040007 */ li $a0, 7 +/* 07E000 7F0494D0 92690001 */ lbu $t1, 1($s3) +.L7F0494D4: +/* 07E004 7F0494D4 31390002 */ andi $t9, $t1, 2 +/* 07E008 7F0494D8 1320002D */ beqz $t9, .L7F049590 +/* 07E00C 7F0494DC 00048880 */ sll $s1, $a0, 2 +/* 07E010 7F0494E0 00716021 */ addu $t4, $v1, $s1 +/* 07E014 7F0494E4 8D850000 */ lw $a1, ($t4) +/* 07E018 7F0494E8 02802025 */ move $a0, $s4 +/* 07E01C 7F0494EC 50A00029 */ beql $a1, $zero, .L7F049594 +/* 07E020 7F0494F0 C6640008 */ lwc1 $f4, 8($s3) +/* 07E024 7F0494F4 0FC1B198 */ jal sub_GAME_7F06C660 +/* 07E028 7F0494F8 00003025 */ move $a2, $zero +/* 07E02C 7F0494FC 8E8A0008 */ lw $t2, 8($s4) +/* 07E030 7F049500 00409025 */ move $s2, $v0 +/* 07E034 7F049504 8D4E0008 */ lw $t6, 8($t2) +/* 07E038 7F049508 01D16821 */ addu $t5, $t6, $s1 +/* 07E03C 7F04950C 8DB80000 */ lw $t8, ($t5) +/* 07E040 7F049510 8F030004 */ lw $v1, 4($t8) +/* 07E044 7F049514 C46A0000 */ lwc1 $f10, ($v1) +/* 07E048 7F049518 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E04C 7F04951C C4660004 */ lwc1 $f6, 4($v1) +/* 07E050 7F049520 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E054 7F049524 C4680008 */ lwc1 $f8, 8($v1) +/* 07E058 7F049528 0FC1E111 */ jal currentPlayerGetMatrix10D4 +/* 07E05C 7F04952C E7A80134 */ swc1 $f8, 0x134($sp) +/* 07E060 7F049530 27B100B8 */ addiu $s1, $sp, 0xb8 +/* 07E064 7F049534 02203025 */ move $a2, $s1 +/* 07E068 7F049538 00402025 */ move $a0, $v0 +/* 07E06C 7F04953C 0FC16063 */ jal matrix_4x4_multiply_homogeneous +/* 07E070 7F049540 02402825 */ move $a1, $s2 +/* 07E074 7F049544 02202025 */ move $a0, $s1 +/* 07E078 7F049548 0FC1611D */ jal matrix_4x4_transform_vector_in_place +/* 07E07C 7F04954C 27A5012C */ addiu $a1, $sp, 0x12c +/* 07E080 7F049550 C7A40134 */ lwc1 $f4, 0x134($sp) +/* 07E084 7F049554 8E650008 */ lw $a1, 8($s3) +/* 07E088 7F049558 8E660010 */ lw $a2, 0x10($s3) +/* 07E08C 7F04955C 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E090 7F049560 8FA7012C */ lw $a3, 0x12c($sp) +/* 07E094 7F049564 0FC2C2F9 */ jal sub_GAME_7F0B0BE4 +/* 07E098 7F049568 E7A40010 */ swc1 $f4, 0x10($sp) +/* 07E09C 7F04956C 1440000E */ bnez $v0, .L7F0495A8 +/* 07E0A0 7F049570 00000000 */ nop +/* 07E0A4 7F049574 C66A0008 */ lwc1 $f10, 8($s3) +/* 07E0A8 7F049578 E7AA012C */ swc1 $f10, 0x12c($sp) +/* 07E0AC 7F04957C C666000C */ lwc1 $f6, 0xc($s3) +/* 07E0B0 7F049580 E7A60130 */ swc1 $f6, 0x130($sp) +/* 07E0B4 7F049584 C6680010 */ lwc1 $f8, 0x10($s3) +/* 07E0B8 7F049588 10000007 */ b .L7F0495A8 +/* 07E0BC 7F04958C E7A80134 */ swc1 $f8, 0x134($sp) +.L7F049590: +/* 07E0C0 7F049590 C6640008 */ lwc1 $f4, 8($s3) +.L7F049594: +/* 07E0C4 7F049594 E7A4012C */ swc1 $f4, 0x12c($sp) +/* 07E0C8 7F049598 C66A000C */ lwc1 $f10, 0xc($s3) +/* 07E0CC 7F04959C E7AA0130 */ swc1 $f10, 0x130($sp) +/* 07E0D0 7F0495A0 C6660010 */ lwc1 $f6, 0x10($s3) +/* 07E0D4 7F0495A4 E7A60134 */ swc1 $f6, 0x134($sp) +.L7F0495A8: +/* 07E0D8 7F0495A8 0FC15FA8 */ jal cosf +/* 07E0DC 7F0495AC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E0E0 7F0495B0 C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E0E4 7F0495B4 0FC15FAB */ jal sinf +/* 07E0E8 7F0495B8 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E0EC 7F0495BC C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E0F0 7F0495C0 46020202 */ mul.s $f8, $f0, $f2 +/* 07E0F4 7F0495C4 E7A80120 */ swc1 $f8, 0x120($sp) +/* 07E0F8 7F0495C8 0FC15FAB */ jal sinf +/* 07E0FC 7F0495CC C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E100 7F0495D0 E7A00124 */ swc1 $f0, 0x124($sp) +/* 07E104 7F0495D4 0FC15FA8 */ jal cosf +/* 07E108 7F0495D8 C60C009C */ lwc1 $f12, 0x9c($s0) +/* 07E10C 7F0495DC C60C0090 */ lwc1 $f12, 0x90($s0) +/* 07E110 7F0495E0 0FC15FA8 */ jal cosf +/* 07E114 7F0495E4 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 07E118 7F0495E8 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 07E11C 7F0495EC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07E120 7F0495F0 44816000 */ mtc1 $at, $f12 +/* 07E124 7F0495F4 46020382 */ mul.s $f14, $f0, $f2 +/* 07E128 7F0495F8 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 07E12C 7F0495FC C7A6012C */ lwc1 $f6, 0x12c($sp) +/* 07E130 7F049600 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E134 7F049604 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 07E138 7F049608 E7AE0128 */ swc1 $f14, 0x128($sp) +/* 07E13C 7F04960C 46065200 */ add.s $f8, $f10, $f6 +/* 07E140 7F049610 460C2282 */ mul.s $f10, $f4, $f12 +/* 07E144 7F049614 C7A60130 */ lwc1 $f6, 0x130($sp) +/* 07E148 7F049618 460C7102 */ mul.s $f4, $f14, $f12 +/* 07E14C 7F04961C E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E150 7F049620 46065200 */ add.s $f8, $f10, $f6 +/* 07E154 7F049624 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E158 7F049628 460A2180 */ add.s $f6, $f4, $f10 +/* 07E15C 7F04962C E7A80114 */ swc1 $f8, 0x114($sp) +/* 07E160 7F049630 0FC2C731 */ jal sub_GAME_7F0B1CC4 +/* 07E164 7F049634 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E168 7F049638 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 07E16C 7F04963C 44810000 */ mtc1 $at, $f0 +/* 07E170 7F049640 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E174 7F049644 44812000 */ mtc1 $at, $f4 +/* 07E178 7F049648 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E17C 7F04964C 24080002 */ li $t0, 2 +/* 07E180 7F049650 AFA80014 */ sw $t0, 0x14($sp) +/* 07E184 7F049654 27A40108 */ addiu $a0, $sp, 0x108 +/* 07E188 7F049658 8FA5012C */ lw $a1, 0x12c($sp) +/* 07E18C 7F04965C 8FA60134 */ lw $a2, 0x134($sp) +/* 07E190 7F049660 8FA70110 */ lw $a3, 0x110($sp) +/* 07E194 7F049664 E7B60020 */ swc1 $f22, 0x20($sp) +/* 07E198 7F049668 E7A00018 */ swc1 $f0, 0x18($sp) +/* 07E19C 7F04966C E7A0001C */ swc1 $f0, 0x1c($sp) +/* 07E1A0 7F049670 E7A80010 */ swc1 $f8, 0x10($sp) +/* 07E1A4 7F049674 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 07E1A8 7F049678 E7A40024 */ swc1 $f4, 0x24($sp) +/* 07E1AC 7F04967C 14400017 */ bnez $v0, .L7F0496DC +/* 07E1B0 7F049680 27A60110 */ addiu $a2, $sp, 0x110 +/* 07E1B4 7F049684 27A4012C */ addiu $a0, $sp, 0x12c +/* 07E1B8 7F049688 0FC09893 */ jal sub_GAME_7F02624C +/* 07E1BC 7F04968C 27A50120 */ addiu $a1, $sp, 0x120 +/* 07E1C0 7F049690 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E1C4 7F049694 44818000 */ mtc1 $at, $f16 +/* 07E1C8 7F049698 C7A60120 */ lwc1 $f6, 0x120($sp) +/* 07E1CC 7F04969C C7AA0110 */ lwc1 $f10, 0x110($sp) +/* 07E1D0 7F0496A0 C7AE0128 */ lwc1 $f14, 0x128($sp) +/* 07E1D4 7F0496A4 46068202 */ mul.s $f8, $f16, $f6 +/* 07E1D8 7F0496A8 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 07E1DC 7F0496AC 8FAB0108 */ lw $t3, 0x108($sp) +/* 07E1E0 7F0496B0 AFAB010C */ sw $t3, 0x10c($sp) +/* 07E1E4 7F0496B4 46085101 */ sub.s $f4, $f10, $f8 +/* 07E1E8 7F0496B8 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 07E1EC 7F0496BC 460A8202 */ mul.s $f8, $f16, $f10 +/* 07E1F0 7F0496C0 E7A40110 */ swc1 $f4, 0x110($sp) +/* 07E1F4 7F0496C4 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E1F8 7F0496C8 46083101 */ sub.s $f4, $f6, $f8 +/* 07E1FC 7F0496CC 460E8182 */ mul.s $f6, $f16, $f14 +/* 07E200 7F0496D0 E7A40114 */ swc1 $f4, 0x114($sp) +/* 07E204 7F0496D4 46065201 */ sub.s $f8, $f10, $f6 +/* 07E208 7F0496D8 E7A80118 */ swc1 $f8, 0x118($sp) +.L7F0496DC: +/* 07E20C 7F0496DC 3C0F8005 */ lui $t7, %hi(global_timer) +/* 07E210 7F0496E0 8DEF837C */ lw $t7, %lo(global_timer)($t7) +/* 07E214 7F0496E4 8E0900BC */ lw $t1, 0xbc($s0) +/* 07E218 7F0496E8 27B10110 */ addiu $s1, $sp, 0x110 +/* 07E21C 7F0496EC 8FA50100 */ lw $a1, 0x100($sp) +/* 07E220 7F0496F0 15E90052 */ bne $t7, $t1, .L7F04983C +/* 07E224 7F0496F4 C7AA012C */ lwc1 $f10, 0x12c($sp) +/* 07E228 7F0496F8 C4A40008 */ lwc1 $f4, 8($a1) +/* 07E22C 7F0496FC C4A6000C */ lwc1 $f6, 0xc($a1) +/* 07E230 7F049700 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E234 7F049704 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E238 7F049708 C4A40010 */ lwc1 $f4, 0x10($a1) +/* 07E23C 7F04970C E7AA0058 */ swc1 $f10, 0x58($sp) +/* 07E240 7F049710 46083081 */ sub.s $f2, $f6, $f8 +/* 07E244 7F049714 C7A60134 */ lwc1 $f6, 0x134($sp) +/* 07E248 7F049718 46062301 */ sub.s $f12, $f4, $f6 +/* 07E24C 7F04971C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E250 7F049720 00000000 */ nop +/* 07E254 7F049724 46021282 */ mul.s $f10, $f2, $f2 +/* 07E258 7F049728 460A2100 */ add.s $f4, $f4, $f10 +/* 07E25C 7F04972C 460C6282 */ mul.s $f10, $f12, $f12 +/* 07E260 7F049730 460A2500 */ add.s $f20, $f4, $f10 +/* 07E264 7F049734 C7AA0058 */ lwc1 $f10, 0x58($sp) +/* 07E268 7F049738 C7A40110 */ lwc1 $f4, 0x110($sp) +/* 07E26C 7F04973C 460A2001 */ sub.s $f0, $f4, $f10 +/* 07E270 7F049740 C7A40114 */ lwc1 $f4, 0x114($sp) +/* 07E274 7F049744 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 07E278 7F049748 46082081 */ sub.s $f2, $f4, $f8 +/* 07E27C 7F04974C 46000102 */ mul.s $f4, $f0, $f0 +/* 07E280 7F049750 46065301 */ sub.s $f12, $f10, $f6 +/* 07E284 7F049754 46021202 */ mul.s $f8, $f2, $f2 +/* 07E288 7F049758 46082280 */ add.s $f10, $f4, $f8 +/* 07E28C 7F04975C 460C6182 */ mul.s $f6, $f12, $f12 +/* 07E290 7F049760 46065100 */ add.s $f4, $f10, $f6 +/* 07E294 7F049764 4604A03E */ c.le.s $f20, $f4 +/* 07E298 7F049768 00000000 */ nop +/* 07E29C 7F04976C 45000033 */ bc1f .L7F04983C +/* 07E2A0 7F049770 00000000 */ nop +/* 07E2A4 7F049774 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E2A8 7F049778 00000000 */ nop +/* 07E2AC 7F04977C 54400030 */ bnezl $v0, .L7F049840 +/* 07E2B0 7F049780 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E2B4 7F049784 0C007DF8 */ jal sqrtf +/* 07E2B8 7F049788 4600A306 */ mov.s $f12, $f20 +/* 07E2BC 7F04978C 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 07E2C0 7F049790 44816000 */ mtc1 $at, $f12 +/* 07E2C4 7F049794 3C018005 */ lui $at, %hi(D_80052B74) +/* 07E2C8 7F049798 C4282B74 */ lwc1 $f8, %lo(D_80052B74)($at) +/* 07E2CC 7F04979C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07E2D0 7F0497A0 C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07E2D4 7F0497A4 3C018003 */ lui $at, %hi(D_80030B1C) +/* 07E2D8 7F0497A8 4600603C */ c.lt.s $f12, $f0 +/* 07E2DC 7F0497AC 460A4182 */ mul.s $f6, $f8, $f10 +/* 07E2E0 7F0497B0 C4240B1C */ lwc1 $f4, %lo(D_80030B1C)($at) +/* 07E2E4 7F0497B4 46043082 */ mul.s $f2, $f6, $f4 +/* 07E2E8 7F0497B8 45020005 */ bc1fl .L7F0497D0 +/* 07E2EC 7F0497BC C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 07E2F0 7F0497C0 46006203 */ div.s $f8, $f12, $f0 +/* 07E2F4 7F0497C4 46081082 */ mul.s $f2, $f2, $f8 +/* 07E2F8 7F0497C8 00000000 */ nop +/* 07E2FC 7F0497CC C60A00D4 */ lwc1 $f10, 0xd4($s0) +.L7F0497D0: +/* 07E300 7F0497D0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E304 7F0497D4 44814000 */ mtc1 $at, $f8 +/* 07E308 7F0497D8 46025180 */ add.s $f6, $f10, $f2 +/* 07E30C 7F0497DC E60600D4 */ swc1 $f6, 0xd4($s0) +/* 07E310 7F0497E0 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 07E314 7F0497E4 4604403E */ c.le.s $f8, $f4 +/* 07E318 7F0497E8 00000000 */ nop +/* 07E31C 7F0497EC 45020014 */ bc1fl .L7F049840 +/* 07E320 7F0497F0 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E324 7F0497F4 0FC177E1 */ jal bondwalkItemGetDestructionAmount +/* 07E328 7F0497F8 2404000E */ li $a0, 14 +/* 07E32C 7F0497FC 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 07E330 7F049800 44815000 */ mtc1 $at, $f10 +/* 07E334 7F049804 3C018003 */ lui $at, %hi(D_80030B20) +/* 07E338 7F049808 C4240B20 */ lwc1 $f4, %lo(D_80030B20)($at) +/* 07E33C 7F04980C 460A0182 */ mul.s $f6, $f0, $f10 +/* 07E340 7F049810 C60E0090 */ lwc1 $f14, 0x90($s0) +/* 07E344 7F049814 2406FFFF */ li $a2, -1 +/* 07E348 7F049818 24070001 */ li $a3, 1 +/* 07E34C 7F04981C 46043302 */ mul.s $f12, $f6, $f4 +/* 07E350 7F049820 0FC22793 */ jal sub_GAME_7F089E4C +/* 07E354 7F049824 00000000 */ nop +/* 07E358 7F049828 0FC227A9 */ jal check_if_bond_is_invincible +/* 07E35C 7F04982C E61600D4 */ swc1 $f22, 0xd4($s0) +/* 07E360 7F049830 50400003 */ beql $v0, $zero, .L7F049840 +/* 07E364 7F049834 8FB9011C */ lw $t9, 0x11c($sp) +/* 07E368 7F049838 AFA0011C */ sw $zero, 0x11c($sp) +.L7F04983C: +/* 07E36C 7F04983C 8FB9011C */ lw $t9, 0x11c($sp) +.L7F049840: +/* 07E370 7F049840 3C0141D0 */ li $at, 0x41D00000 # 26.000000 +/* 07E374 7F049844 44818000 */ mtc1 $at, $f16 +/* 07E378 7F049848 1320000F */ beqz $t9, .L7F049888 +/* 07E37C 7F04984C 8FA50100 */ lw $a1, 0x100($sp) +/* 07E380 7F049850 8FAC010C */ lw $t4, 0x10c($sp) +/* 07E384 7F049854 02202025 */ move $a0, $s1 +/* 07E388 7F049858 24050001 */ li $a1, 1 +/* 07E38C 7F04985C 51800005 */ beql $t4, $zero, .L7F049874 +/* 07E390 7F049860 2404000E */ li $a0, 14 +/* 07E394 7F049864 44068000 */ mfc1 $a2, $f16 +/* 07E398 7F049868 0FC28F87 */ jal sub_GAME_7F0A3E1C +/* 07E39C 7F04986C 91870003 */ lbu $a3, 3($t4) +/* 07E3A0 7F049870 2404000E */ li $a0, 14 +.L7F049874: +/* 07E3A4 7F049874 02202825 */ move $a1, $s1 +/* 07E3A8 7F049878 0FC191DD */ jal recall_joy2_hits_edit_flag +/* 07E3AC 7F04987C 2406FFFF */ li $a2, -1 +/* 07E3B0 7F049880 1000000B */ b .L7F0498B0 +/* 07E3B4 7F049884 8FAA0104 */ lw $t2, 0x104($sp) +.L7F049888: +/* 07E3B8 7F049888 C4A80008 */ lwc1 $f8, 8($a1) +/* 07E3BC 7F04988C 2404000E */ li $a0, 14 +/* 07E3C0 7F049890 2406FFFF */ li $a2, -1 +/* 07E3C4 7F049894 E7A80110 */ swc1 $f8, 0x110($sp) +/* 07E3C8 7F049898 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 07E3CC 7F04989C E7AA0114 */ swc1 $f10, 0x114($sp) +/* 07E3D0 7F0498A0 C4A60010 */ lwc1 $f6, 0x10($a1) +/* 07E3D4 7F0498A4 0FC19107 */ jal recall_joy2_hits_edit_detail_edit_flag +/* 07E3D8 7F0498A8 E7A60118 */ swc1 $f6, 0x118($sp) +/* 07E3DC 7F0498AC 8FAA0104 */ lw $t2, 0x104($sp) +.L7F0498B0: +/* 07E3E0 7F0498B0 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 07E3E4 7F0498B4 51400085 */ beql $t2, $zero, .L7F049ACC +/* 07E3E8 7F0498B8 8E980008 */ lw $t8, 8($s4) +/* 07E3EC 7F0498BC 8E0300CC */ lw $v1, 0xcc($s0) +/* 07E3F0 7F0498C0 E4640004 */ swc1 $f4, 4($v1) +/* 07E3F4 7F0498C4 C7A80130 */ lwc1 $f8, 0x130($sp) +/* 07E3F8 7F0498C8 C4640004 */ lwc1 $f4, 4($v1) +/* 07E3FC 7F0498CC E4680008 */ swc1 $f8, 8($v1) +/* 07E400 7F0498D0 C7AA0134 */ lwc1 $f10, 0x134($sp) +/* 07E404 7F0498D4 E46A000C */ swc1 $f10, 0xc($v1) +/* 07E408 7F0498D8 C7A60110 */ lwc1 $f6, 0x110($sp) +/* 07E40C 7F0498DC 46043201 */ sub.s $f8, $f6, $f4 +/* 07E410 7F0498E0 C4660008 */ lwc1 $f6, 8($v1) +/* 07E414 7F0498E4 E4680010 */ swc1 $f8, 0x10($v1) +/* 07E418 7F0498E8 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 07E41C 7F0498EC C4620010 */ lwc1 $f2, 0x10($v1) +/* 07E420 7F0498F0 46065101 */ sub.s $f4, $f10, $f6 +/* 07E424 7F0498F4 C46A000C */ lwc1 $f10, 0xc($v1) +/* 07E428 7F0498F8 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E42C 7F0498FC C7A80118 */ lwc1 $f8, 0x118($sp) +/* 07E430 7F049900 46021102 */ mul.s $f4, $f2, $f2 +/* 07E434 7F049904 C46E0014 */ lwc1 $f14, 0x14($v1) +/* 07E438 7F049908 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E43C 7F04990C 460E7202 */ mul.s $f8, $f14, $f14 +/* 07E440 7F049910 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E444 7F049914 C4600018 */ lwc1 $f0, 0x18($v1) +/* 07E448 7F049918 AFA30090 */ sw $v1, 0x90($sp) +/* 07E44C 7F04991C 46000182 */ mul.s $f6, $f0, $f0 +/* 07E450 7F049920 46082280 */ add.s $f10, $f4, $f8 +/* 07E454 7F049924 0C007DF8 */ jal sqrtf +/* 07E458 7F049928 460A3300 */ add.s $f12, $f6, $f10 +/* 07E45C 7F04992C 3C018005 */ lui $at, %hi(D_80052B78) +/* 07E460 7F049930 C42E2B78 */ lwc1 $f14, %lo(D_80052B78)($at) +/* 07E464 7F049934 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E468 7F049938 44812000 */ mtc1 $at, $f4 +/* 07E46C 7F04993C 8FA30090 */ lw $v1, 0x90($sp) +/* 07E470 7F049940 4600703C */ c.lt.s $f14, $f0 +/* 07E474 7F049944 46000306 */ mov.s $f12, $f0 +/* 07E478 7F049948 46002083 */ div.s $f2, $f4, $f0 +/* 07E47C 7F04994C C4680010 */ lwc1 $f8, 0x10($v1) +/* 07E480 7F049950 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 07E484 7F049954 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 07E488 7F049958 44810000 */ mtc1 $at, $f0 +/* 07E48C 7F04995C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E490 7F049960 C4680018 */ lwc1 $f8, 0x18($v1) +/* 07E494 7F049964 46025102 */ mul.s $f4, $f10, $f2 +/* 07E498 7F049968 E4660010 */ swc1 $f6, 0x10($v1) +/* 07E49C 7F04996C 46024182 */ mul.s $f6, $f8, $f2 +/* 07E4A0 7F049970 E4640014 */ swc1 $f4, 0x14($v1) +/* 07E4A4 7F049974 45000002 */ bc1f .L7F049980 +/* 07E4A8 7F049978 E4660018 */ swc1 $f6, 0x18($v1) +/* 07E4AC 7F04997C 46007306 */ mov.s $f12, $f14 +.L7F049980: +/* 07E4B0 7F049980 4600603C */ c.lt.s $f12, $f0 +/* 07E4B4 7F049984 240E000E */ li $t6, 14 +/* 07E4B8 7F049988 A0600000 */ sb $zero, ($v1) +/* 07E4BC 7F04998C A06E0001 */ sb $t6, 1($v1) +/* 07E4C0 7F049990 45000002 */ bc1f .L7F04999C +/* 07E4C4 7F049994 E46C001C */ swc1 $f12, 0x1c($v1) +/* 07E4C8 7F049998 46000306 */ mov.s $f12, $f0 +.L7F04999C: +/* 07E4CC 7F04999C 806D0001 */ lb $t5, 1($v1) +/* 07E4D0 7F0499A0 24010016 */ li $at, 22 +/* 07E4D4 7F0499A4 15A10026 */ bne $t5, $at, .L7F049A40 +/* 07E4D8 7F0499A8 3C018005 */ lui $at, %hi(D_80052B7C) +/* 07E4DC 7F0499AC C4222B7C */ lwc1 $f2, %lo(D_80052B7C)($at) +/* 07E4E0 7F0499B0 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 07E4E4 7F0499B4 44815000 */ mtc1 $at, $f10 +/* 07E4E8 7F0499B8 3C018005 */ lui $at, %hi(D_80052B80) +/* 07E4EC 7F0499BC 460C5102 */ mul.s $f4, $f10, $f12 +/* 07E4F0 7F0499C0 E4640020 */ swc1 $f4, 0x20($v1) +/* 07E4F4 7F0499C4 C4282B80 */ lwc1 $f8, %lo(D_80052B80)($at) +/* 07E4F8 7F0499C8 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E4FC 7F0499CC 4600103C */ c.lt.s $f2, $f0 +/* 07E500 7F0499D0 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E504 7F0499D4 45020003 */ bc1fl .L7F0499E4 +/* 07E508 7F0499D8 AFA30090 */ sw $v1, 0x90($sp) +/* 07E50C 7F0499DC E4620024 */ swc1 $f2, 0x24($v1) +/* 07E510 7F0499E0 AFA30090 */ sw $v1, 0x90($sp) +.L7F0499E4: +/* 07E514 7F0499E4 0C002914 */ jal randomGetNext +/* 07E518 7F0499E8 E7AC0094 */ swc1 $f12, 0x94($sp) +/* 07E51C 7F0499EC 44823000 */ mtc1 $v0, $f6 +/* 07E520 7F0499F0 8FA30090 */ lw $v1, 0x90($sp) +/* 07E524 7F0499F4 C7AC0094 */ lwc1 $f12, 0x94($sp) +/* 07E528 7F0499F8 04410005 */ bgez $v0, .L7F049A10 +/* 07E52C 7F0499FC 468032A0 */ cvt.s.w $f10, $f6 +/* 07E530 7F049A00 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E534 7F049A04 44812000 */ mtc1 $at, $f4 +/* 07E538 7F049A08 00000000 */ nop +/* 07E53C 7F049A0C 46045280 */ add.s $f10, $f10, $f4 +.L7F049A10: +/* 07E540 7F049A10 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E544 7F049A14 44814000 */ mtc1 $at, $f8 +/* 07E548 7F049A18 3C018005 */ lui $at, %hi(D_80052B84) +/* 07E54C 7F049A1C C4242B84 */ lwc1 $f4, %lo(D_80052B84)($at) +/* 07E550 7F049A20 46085182 */ mul.s $f6, $f10, $f8 +/* 07E554 7F049A24 3C018005 */ lui $at, %hi(D_80052B88) +/* 07E558 7F049A28 C4282B88 */ lwc1 $f8, %lo(D_80052B88)($at) +/* 07E55C 7F049A2C 46043282 */ mul.s $f10, $f6, $f4 +/* 07E560 7F049A30 460A4181 */ sub.s $f6, $f8, $f10 +/* 07E564 7F049A34 460C3102 */ mul.s $f4, $f6, $f12 +/* 07E568 7F049A38 10000023 */ b .L7F049AC8 +/* 07E56C 7F049A3C E4640028 */ swc1 $f4, 0x28($v1) +.L7F049A40: +/* 07E570 7F049A40 3C018005 */ lui $at, %hi(D_80052B8C) +/* 07E574 7F049A44 C4282B8C */ lwc1 $f8, %lo(D_80052B8C)($at) +/* 07E578 7F049A48 3C018005 */ lui $at, %hi(D_80052B90) +/* 07E57C 7F049A4C 460C4002 */ mul.s $f0, $f8, $f12 +/* 07E580 7F049A50 E4600020 */ swc1 $f0, 0x20($v1) +/* 07E584 7F049A54 E4600024 */ swc1 $f0, 0x24($v1) +/* 07E588 7F049A58 C42A2B90 */ lwc1 $f10, %lo(D_80052B90)($at) +/* 07E58C 7F049A5C 3C018005 */ lui $at, %hi(D_80052B94) +/* 07E590 7F049A60 4600503C */ c.lt.s $f10, $f0 +/* 07E594 7F049A64 00000000 */ nop +/* 07E598 7F049A68 45000003 */ bc1f .L7F049A78 +/* 07E59C 7F049A6C 00000000 */ nop +/* 07E5A0 7F049A70 C4262B94 */ lwc1 $f6, %lo(D_80052B94)($at) +/* 07E5A4 7F049A74 E4660024 */ swc1 $f6, 0x24($v1) +.L7F049A78: +/* 07E5A8 7F049A78 0C002914 */ jal randomGetNext +/* 07E5AC 7F049A7C AFA30090 */ sw $v1, 0x90($sp) +/* 07E5B0 7F049A80 44822000 */ mtc1 $v0, $f4 +/* 07E5B4 7F049A84 8FA30090 */ lw $v1, 0x90($sp) +/* 07E5B8 7F049A88 04410005 */ bgez $v0, .L7F049AA0 +/* 07E5BC 7F049A8C 46802220 */ cvt.s.w $f8, $f4 +/* 07E5C0 7F049A90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07E5C4 7F049A94 44815000 */ mtc1 $at, $f10 +/* 07E5C8 7F049A98 00000000 */ nop +/* 07E5CC 7F049A9C 460A4200 */ add.s $f8, $f8, $f10 +.L7F049AA0: +/* 07E5D0 7F049AA0 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 07E5D4 7F049AA4 44813000 */ mtc1 $at, $f6 +/* 07E5D8 7F049AA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07E5DC 7F049AAC 44815000 */ mtc1 $at, $f10 +/* 07E5E0 7F049AB0 46064002 */ mul.s $f0, $f8, $f6 +/* 07E5E4 7F049AB4 C4660020 */ lwc1 $f6, 0x20($v1) +/* 07E5E8 7F049AB8 46000100 */ add.s $f4, $f0, $f0 +/* 07E5EC 7F049ABC 460A2201 */ sub.s $f8, $f4, $f10 +/* 07E5F0 7F049AC0 46064102 */ mul.s $f4, $f8, $f6 +/* 07E5F4 7F049AC4 E4640028 */ swc1 $f4, 0x28($v1) +.L7F049AC8: +/* 07E5F8 7F049AC8 8E980008 */ lw $t8, 8($s4) +.L7F049ACC: +/* 07E5FC 7F049ACC 8F030008 */ lw $v1, 8($t8) +/* 07E600 7F049AD0 8C650014 */ lw $a1, 0x14($v1) +/* 07E604 7F049AD4 50A00008 */ beql $a1, $zero, .L7F049AF8 +/* 07E608 7F049AD8 8C65001C */ lw $a1, 0x1c($v1) +/* 07E60C 7F049ADC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E610 7F049AE0 02802025 */ move $a0, $s4 +/* 07E614 7F049AE4 8FA8013C */ lw $t0, 0x13c($sp) +/* 07E618 7F049AE8 A4480000 */ sh $t0, ($v0) +/* 07E61C 7F049AEC 8E8B0008 */ lw $t3, 8($s4) +/* 07E620 7F049AF0 8D630008 */ lw $v1, 8($t3) +/* 07E624 7F049AF4 8C65001C */ lw $a1, 0x1c($v1) +.L7F049AF8: +/* 07E628 7F049AF8 10A00005 */ beqz $a1, .L7F049B10 +/* 07E62C 7F049AFC 00000000 */ nop +/* 07E630 7F049B00 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07E634 7F049B04 02802025 */ move $a0, $s4 +/* 07E638 7F049B08 8FAF0138 */ lw $t7, 0x138($sp) +/* 07E63C 7F049B0C A44F0000 */ sh $t7, ($v0) +.L7F049B10: +/* 07E640 7F049B10 0FC11080 */ jal sub_GAME_7F044200 +/* 07E644 7F049B14 02602025 */ move $a0, $s3 +/* 07E648 7F049B18 8FA90680 */ lw $t1, 0x680($sp) +.L7F049B1C: +/* 07E64C 7F049B1C 24010005 */ li $at, 5 +/* 07E650 7F049B20 55210003 */ bnel $t1, $at, .L7F049B30 +/* 07E654 7F049B24 8FA20680 */ lw $v0, 0x680($sp) +/* 07E658 7F049B28 AE600014 */ sw $zero, 0x14($s3) +/* 07E65C 7F049B2C 8FA20680 */ lw $v0, 0x680($sp) +.L7F049B30: +/* 07E660 7F049B30 8FBF0054 */ lw $ra, 0x54($sp) +/* 07E664 7F049B34 D7B40030 */ ldc1 $f20, 0x30($sp) +/* 07E668 7F049B38 D7B60038 */ ldc1 $f22, 0x38($sp) +/* 07E66C 7F049B3C 8FB00040 */ lw $s0, 0x40($sp) +/* 07E670 7F049B40 8FB10044 */ lw $s1, 0x44($sp) +/* 07E674 7F049B44 8FB20048 */ lw $s2, 0x48($sp) +/* 07E678 7F049B48 8FB3004C */ lw $s3, 0x4c($sp) +/* 07E67C 7F049B4C 8FB40050 */ lw $s4, 0x50($sp) +/* 07E680 7F049B50 03E00008 */ jr $ra +/* 07E684 7F049B54 27BD06A8 */ addiu $sp, $sp, 0x6a8 +) +#endif + + #endif @@ -18542,7 +24135,7 @@ glabel process_monitor_animation_microcode /* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff /* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 /* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) -/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 07EAC8 7F049F98 24040004 */ li $a0, 4 /* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) /* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 @@ -18773,7 +24366,7 @@ command09_jump: /* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 /* 07EE0C 7F04A2DC 00000000 */ nop command0A_jump_conditional: -/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext /* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) /* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) /* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 @@ -19463,7 +25056,7 @@ glabel process_monitor_animation_microcode /* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff /* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 /* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) -/* 07EAC4 7F049F94 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 07EAC8 7F049F98 24040004 */ li $a0, 4 /* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) /* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 @@ -19694,7 +25287,7 @@ command09_jump: /* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 /* 07EE0C 7F04A2DC 00000000 */ nop command0A_jump_conditional: -/* 07EE10 7F04A2E0 0C002914 */ jal get_random_value +/* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext /* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) /* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) /* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 @@ -20327,6 +25920,928 @@ def_7F04A01C: /* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80052C68 +.word 0x40c90fdb /*6.2831855*/ +/*D:80052C6C*/ +glabel jpt_80052C6C +.word command00_reset_scroll_shift +.word command01_horizontal_scroll +.word command02_vertical_scroll +.word command03_horizontal_pos +.word command04_vertical_pos +.word command05_zoomx +.word command06_zoomy +.word command07_use_image_from_global_monitor_table +.word command08_halt_processing_for_time +.word command09_jump +.word command0A_jump_conditional +.word command0B_restart +.word command0C_break +.word command0D_colour_transition +.word command0E_set_rotation +.word command0F_rotate + +glabel D_80052CAC +.word 0x3fc90fdb /*1.5707964*/ +glabel D_80052CB0 +.word 0x3fb50481 /*1.4141999*/ +glabel D_80052CB4 +.word 0x3f59999a /*0.85000002*/ +glabel D_80052CB8 +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CBC +.word 0x3e19999a /*0.15000001*/ +glabel D_80052CC0 +.word 0x3f666666 /*0.89999998*/ +.text +glabel process_monitor_animation_microcode +/* 07EA78 7F049F48 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 07EA7C 7F049F4C AFB10044 */ sw $s1, 0x44($sp) +/* 07EA80 7F049F50 AFB00040 */ sw $s0, 0x40($sp) +/* 07EA84 7F049F54 00C08025 */ move $s0, $a2 +/* 07EA88 7F049F58 00A08825 */ move $s1, $a1 +/* 07EA8C 7F049F5C AFBF004C */ sw $ra, 0x4c($sp) +/* 07EA90 7F049F60 AFB20048 */ sw $s2, 0x48($sp) +/* 07EA94 7F049F64 F7BA0038 */ sdc1 $f26, 0x38($sp) +/* 07EA98 7F049F68 F7B80030 */ sdc1 $f24, 0x30($sp) +/* 07EA9C 7F049F6C F7B60028 */ sdc1 $f22, 0x28($sp) +/* 07EAA0 7F049F70 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 07EAA4 7F049F74 AFA400B0 */ sw $a0, 0xb0($sp) +/* 07EAA8 7F049F78 10A0031E */ beqz $a1, .L7F04ABF4 +/* 07EAAC 7F049F7C AFA700BC */ sw $a3, 0xbc($sp) +/* 07EAB0 7F049F80 94AE0000 */ lhu $t6, ($a1) +/* 07EAB4 7F049F84 24010018 */ li $at, 24 +/* 07EAB8 7F049F88 31CF00FF */ andi $t7, $t6, 0xff +/* 07EABC 7F049F8C 55E1031A */ bnel $t7, $at, .L7F04ABF8 +/* 07EAC0 7F049F90 8FBF004C */ lw $ra, 0x4c($sp) +/* 07EAC4 7F049F94 0FC2F5B1 */ jal dynAllocate7F0BD6C4 +/* 07EAC8 7F049F98 24040004 */ li $a0, 4 +/* 07EACC 7F049F9C 8FB800BC */ lw $t8, 0xbc($sp) +/* 07EAD0 7F049FA0 00409025 */ move $s2, $v0 +/* 07EAD4 7F049FA4 8FA400B0 */ lw $a0, 0xb0($sp) +/* 07EAD8 7F049FA8 27190008 */ addiu $t9, $t8, 8 +/* 07EADC 7F049FAC AFB900BC */ sw $t9, 0xbc($sp) +/* 07EAE0 7F049FB0 AFB800A8 */ sw $t8, 0xa8($sp) +/* 07EAE4 7F049FB4 8E280004 */ lw $t0, 4($s1) +/* 07EAE8 7F049FB8 02202825 */ move $a1, $s1 +/* 07EAEC 7F049FBC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 07EAF0 7F049FC0 AFA800A4 */ sw $t0, 0xa4($sp) +/* 07EAF4 7F049FC4 3C018005 */ lui $at, %hi(D_80052C68) +/* 07EAF8 7F049FC8 C43A2C68 */ lwc1 $f26, %lo(D_80052C68)($at) +/* 07EAFC 7F049FCC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 07EB00 7F049FD0 4481C000 */ mtc1 $at, $f24 +/* 07EB04 7F049FD4 3C013A80 */ li $at, 0x3A800000 # 0.000977 +/* 07EB08 7F049FD8 4481B000 */ mtc1 $at, $f22 +/* 07EB0C 7F049FDC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EB10 7F049FE0 44811000 */ mtc1 $at, $f2 +/* 07EB14 7F049FE4 4480A000 */ mtc1 $zero, $f20 +/* 07EB18 7F049FE8 AFA200A0 */ sw $v0, 0xa0($sp) +/* 07EB1C 7F049FEC 00008825 */ move $s1, $zero +/* 07EB20 7F049FF0 96020004 */ lhu $v0, 4($s0) +.L7F049FF4: +/* 07EB24 7F049FF4 8E090000 */ lw $t1, ($s0) +/* 07EB28 7F049FF8 00025080 */ sll $t2, $v0, 2 +/* 07EB2C 7F049FFC 012A1821 */ addu $v1, $t1, $t2 +/* 07EB30 7F04A000 8C6B0000 */ lw $t3, ($v1) +/* 07EB34 7F04A004 2D610010 */ sltiu $at, $t3, 0x10 +/* 07EB38 7F04A008 10200117 */ beqz $at, .L7F04A468 +/* 07EB3C 7F04A00C 000B5880 */ sll $t3, $t3, 2 +/* 07EB40 7F04A010 3C018005 */ lui $at, %hi(jpt_80052C6C) +/* 07EB44 7F04A014 002B0821 */ addu $at, $at, $t3 +/* 07EB48 7F04A018 8C2B2C6C */ lw $t3, %lo(jpt_80052C6C)($at) +/* 07EB4C 7F04A01C 01600008 */ jr $t3 +/* 07EB50 7F04A020 00000000 */ nop +command00_reset_scroll_shift: +/* 07EB54 7F04A024 244C0001 */ addiu $t4, $v0, 1 +/* 07EB58 7F04A028 E6140040 */ swc1 $f20, 0x40($s0) +/* 07EB5C 7F04A02C E6140054 */ swc1 $f20, 0x54($s0) +/* 07EB60 7F04A030 1000010D */ b .L7F04A468 +/* 07EB64 7F04A034 A60C0004 */ sh $t4, 4($s0) +command01_horizontal_scroll: +/* 07EB68 7F04A038 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EB6C 7F04A03C 8C6D0008 */ lw $t5, 8($v1) +/* 07EB70 7F04A040 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EB74 7F04A044 448D2000 */ mtc1 $t5, $f4 +/* 07EB78 7F04A048 05A10004 */ bgez $t5, .L7F04A05C +/* 07EB7C 7F04A04C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EB80 7F04A050 44814000 */ mtc1 $at, $f8 +/* 07EB84 7F04A054 00000000 */ nop +/* 07EB88 7F04A058 46083180 */ add.s $f6, $f6, $f8 +.L7F04A05C: +/* 07EB8C 7F04A05C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EB90 7F04A060 C6000038 */ lwc1 $f0, 0x38($s0) +/* 07EB94 7F04A064 244F0003 */ addiu $t7, $v0, 3 +/* 07EB98 7F04A068 E6000044 */ swc1 $f0, 0x44($s0) +/* 07EB9C 7F04A06C E60A0040 */ swc1 $f10, 0x40($s0) +/* 07EBA0 7F04A070 8C6E0004 */ lw $t6, 4($v1) +/* 07EBA4 7F04A074 A60F0004 */ sh $t7, 4($s0) +/* 07EBA8 7F04A078 448E9000 */ mtc1 $t6, $f18 +/* 07EBAC 7F04A07C 00000000 */ nop +/* 07EBB0 7F04A080 46809120 */ cvt.s.w $f4, $f18 +/* 07EBB4 7F04A084 46162202 */ mul.s $f8, $f4, $f22 +/* 07EBB8 7F04A088 46080180 */ add.s $f6, $f0, $f8 +/* 07EBBC 7F04A08C 100000F6 */ b .L7F04A468 +/* 07EBC0 7F04A090 E6060048 */ swc1 $f6, 0x48($s0) +command02_vertical_scroll: +/* 07EBC4 7F04A094 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EBC8 7F04A098 8C780008 */ lw $t8, 8($v1) +/* 07EBCC 7F04A09C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EBD0 7F04A0A0 44985000 */ mtc1 $t8, $f10 +/* 07EBD4 7F04A0A4 07010004 */ bgez $t8, .L7F04A0B8 +/* 07EBD8 7F04A0A8 468054A0 */ cvt.s.w $f18, $f10 +/* 07EBDC 7F04A0AC 44812000 */ mtc1 $at, $f4 +/* 07EBE0 7F04A0B0 00000000 */ nop +/* 07EBE4 7F04A0B4 46049480 */ add.s $f18, $f18, $f4 +.L7F04A0B8: +/* 07EBE8 7F04A0B8 4612C203 */ div.s $f8, $f24, $f18 +/* 07EBEC 7F04A0BC C600004C */ lwc1 $f0, 0x4c($s0) +/* 07EBF0 7F04A0C0 24480003 */ addiu $t0, $v0, 3 +/* 07EBF4 7F04A0C4 E6000058 */ swc1 $f0, 0x58($s0) +/* 07EBF8 7F04A0C8 E6080054 */ swc1 $f8, 0x54($s0) +/* 07EBFC 7F04A0CC 8C790004 */ lw $t9, 4($v1) +/* 07EC00 7F04A0D0 A6080004 */ sh $t0, 4($s0) +/* 07EC04 7F04A0D4 44993000 */ mtc1 $t9, $f6 +/* 07EC08 7F04A0D8 00000000 */ nop +/* 07EC0C 7F04A0DC 468032A0 */ cvt.s.w $f10, $f6 +/* 07EC10 7F04A0E0 46165102 */ mul.s $f4, $f10, $f22 +/* 07EC14 7F04A0E4 46040480 */ add.s $f18, $f0, $f4 +/* 07EC18 7F04A0E8 100000DF */ b .L7F04A468 +/* 07EC1C 7F04A0EC E612005C */ swc1 $f18, 0x5c($s0) +command03_horizontal_pos: +/* 07EC20 7F04A0F0 E614003C */ swc1 $f20, 0x3c($s0) +/* 07EC24 7F04A0F4 8C690008 */ lw $t1, 8($v1) +/* 07EC28 7F04A0F8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC2C 7F04A0FC 44894000 */ mtc1 $t1, $f8 +/* 07EC30 7F04A100 05210004 */ bgez $t1, .L7F04A114 +/* 07EC34 7F04A104 468041A0 */ cvt.s.w $f6, $f8 +/* 07EC38 7F04A108 44815000 */ mtc1 $at, $f10 +/* 07EC3C 7F04A10C 00000000 */ nop +/* 07EC40 7F04A110 460A3180 */ add.s $f6, $f6, $f10 +.L7F04A114: +/* 07EC44 7F04A114 4606C103 */ div.s $f4, $f24, $f6 +/* 07EC48 7F04A118 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07EC4C 7F04A11C 244B0003 */ addiu $t3, $v0, 3 +/* 07EC50 7F04A120 E6120044 */ swc1 $f18, 0x44($s0) +/* 07EC54 7F04A124 E6040040 */ swc1 $f4, 0x40($s0) +/* 07EC58 7F04A128 8C6A0004 */ lw $t2, 4($v1) +/* 07EC5C 7F04A12C A60B0004 */ sh $t3, 4($s0) +/* 07EC60 7F04A130 448A4000 */ mtc1 $t2, $f8 +/* 07EC64 7F04A134 00000000 */ nop +/* 07EC68 7F04A138 468042A0 */ cvt.s.w $f10, $f8 +/* 07EC6C 7F04A13C 46165182 */ mul.s $f6, $f10, $f22 +/* 07EC70 7F04A140 100000C9 */ b .L7F04A468 +/* 07EC74 7F04A144 E6060048 */ swc1 $f6, 0x48($s0) +command04_vertical_pos: +/* 07EC78 7F04A148 E6140050 */ swc1 $f20, 0x50($s0) +/* 07EC7C 7F04A14C 8C6C0008 */ lw $t4, 8($v1) +/* 07EC80 7F04A150 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EC84 7F04A154 448C2000 */ mtc1 $t4, $f4 +/* 07EC88 7F04A158 05810004 */ bgez $t4, .L7F04A16C +/* 07EC8C 7F04A15C 468024A0 */ cvt.s.w $f18, $f4 +/* 07EC90 7F04A160 44814000 */ mtc1 $at, $f8 +/* 07EC94 7F04A164 00000000 */ nop +/* 07EC98 7F04A168 46089480 */ add.s $f18, $f18, $f8 +.L7F04A16C: +/* 07EC9C 7F04A16C 4612C283 */ div.s $f10, $f24, $f18 +/* 07ECA0 7F04A170 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07ECA4 7F04A174 244E0003 */ addiu $t6, $v0, 3 +/* 07ECA8 7F04A178 E6060058 */ swc1 $f6, 0x58($s0) +/* 07ECAC 7F04A17C E60A0054 */ swc1 $f10, 0x54($s0) +/* 07ECB0 7F04A180 8C6D0004 */ lw $t5, 4($v1) +/* 07ECB4 7F04A184 A60E0004 */ sh $t6, 4($s0) +/* 07ECB8 7F04A188 448D2000 */ mtc1 $t5, $f4 +/* 07ECBC 7F04A18C 00000000 */ nop +/* 07ECC0 7F04A190 46802220 */ cvt.s.w $f8, $f4 +/* 07ECC4 7F04A194 46164482 */ mul.s $f18, $f8, $f22 +/* 07ECC8 7F04A198 100000B3 */ b .L7F04A468 +/* 07ECCC 7F04A19C E612005C */ swc1 $f18, 0x5c($s0) +command05_zoomx: +/* 07ECD0 7F04A1A0 E6140014 */ swc1 $f20, 0x14($s0) +/* 07ECD4 7F04A1A4 8C6F0008 */ lw $t7, 8($v1) +/* 07ECD8 7F04A1A8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ECDC 7F04A1AC 448F5000 */ mtc1 $t7, $f10 +/* 07ECE0 7F04A1B0 05E10004 */ bgez $t7, .L7F04A1C4 +/* 07ECE4 7F04A1B4 468051A0 */ cvt.s.w $f6, $f10 +/* 07ECE8 7F04A1B8 44812000 */ mtc1 $at, $f4 +/* 07ECEC 7F04A1BC 00000000 */ nop +/* 07ECF0 7F04A1C0 46043180 */ add.s $f6, $f6, $f4 +.L7F04A1C4: +/* 07ECF4 7F04A1C4 4606C203 */ div.s $f8, $f24, $f6 +/* 07ECF8 7F04A1C8 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07ECFC 7F04A1CC 24590003 */ addiu $t9, $v0, 3 +/* 07ED00 7F04A1D0 E612001C */ swc1 $f18, 0x1c($s0) +/* 07ED04 7F04A1D4 E6080018 */ swc1 $f8, 0x18($s0) +/* 07ED08 7F04A1D8 8C780004 */ lw $t8, 4($v1) +/* 07ED0C 7F04A1DC A6190004 */ sh $t9, 4($s0) +/* 07ED10 7F04A1E0 44985000 */ mtc1 $t8, $f10 +/* 07ED14 7F04A1E4 00000000 */ nop +/* 07ED18 7F04A1E8 46805120 */ cvt.s.w $f4, $f10 +/* 07ED1C 7F04A1EC 46162182 */ mul.s $f6, $f4, $f22 +/* 07ED20 7F04A1F0 1000009D */ b .L7F04A468 +/* 07ED24 7F04A1F4 E6060020 */ swc1 $f6, 0x20($s0) +command06_zoomy: +/* 07ED28 7F04A1F8 E6140028 */ swc1 $f20, 0x28($s0) +/* 07ED2C 7F04A1FC 8C680008 */ lw $t0, 8($v1) +/* 07ED30 7F04A200 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07ED34 7F04A204 44884000 */ mtc1 $t0, $f8 +/* 07ED38 7F04A208 05010004 */ bgez $t0, .L7F04A21C +/* 07ED3C 7F04A20C 468044A0 */ cvt.s.w $f18, $f8 +/* 07ED40 7F04A210 44815000 */ mtc1 $at, $f10 +/* 07ED44 7F04A214 00000000 */ nop +/* 07ED48 7F04A218 460A9480 */ add.s $f18, $f18, $f10 +.L7F04A21C: +/* 07ED4C 7F04A21C 4612C103 */ div.s $f4, $f24, $f18 +/* 07ED50 7F04A220 C6060024 */ lwc1 $f6, 0x24($s0) +/* 07ED54 7F04A224 244A0003 */ addiu $t2, $v0, 3 +/* 07ED58 7F04A228 E6060030 */ swc1 $f6, 0x30($s0) +/* 07ED5C 7F04A22C E604002C */ swc1 $f4, 0x2c($s0) +/* 07ED60 7F04A230 8C690004 */ lw $t1, 4($v1) +/* 07ED64 7F04A234 A60A0004 */ sh $t2, 4($s0) +/* 07ED68 7F04A238 44894000 */ mtc1 $t1, $f8 +/* 07ED6C 7F04A23C 00000000 */ nop +/* 07ED70 7F04A240 468042A0 */ cvt.s.w $f10, $f8 +/* 07ED74 7F04A244 46165482 */ mul.s $f18, $f10, $f22 +/* 07ED78 7F04A248 10000087 */ b .L7F04A468 +/* 07ED7C 7F04A24C E6120034 */ swc1 $f18, 0x34($s0) +command07_use_image_from_global_monitor_table: +/* 07ED80 7F04A250 02002025 */ move $a0, $s0 +/* 07ED84 7F04A254 0FC127D0 */ jal save_img_index_to_obj_ani_slot +/* 07ED88 7F04A258 8C650004 */ lw $a1, 4($v1) +/* 07ED8C 7F04A25C 960B0004 */ lhu $t3, 4($s0) +/* 07ED90 7F04A260 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07ED94 7F04A264 44811000 */ mtc1 $at, $f2 +/* 07ED98 7F04A268 256C0002 */ addiu $t4, $t3, 2 +/* 07ED9C 7F04A26C 1000007E */ b .L7F04A468 +/* 07EDA0 7F04A270 A60C0004 */ sh $t4, 4($s0) +command08_halt_processing_for_time: +/* 07EDA4 7F04A274 86020006 */ lh $v0, 6($s0) +/* 07EDA8 7F04A278 3C0D8005 */ lui $t5, %hi(clock_timer) +/* 07EDAC 7F04A27C 0442000E */ bltzl $v0, .L7F04A2B8 +/* 07EDB0 7F04A280 8C680004 */ lw $t0, 4($v1) +/* 07EDB4 7F04A284 8DAD8374 */ lw $t5, %lo(clock_timer)($t5) +/* 07EDB8 7F04A288 004D7023 */ subu $t6, $v0, $t5 +/* 07EDBC 7F04A28C A60E0006 */ sh $t6, 6($s0) +/* 07EDC0 7F04A290 860F0006 */ lh $t7, 6($s0) +/* 07EDC4 7F04A294 05E20004 */ bltzl $t7, .L7F04A2A8 +/* 07EDC8 7F04A298 96180004 */ lhu $t8, 4($s0) +/* 07EDCC 7F04A29C 10000072 */ b .L7F04A468 +/* 07EDD0 7F04A2A0 24110001 */ li $s1, 1 +/* 07EDD4 7F04A2A4 96180004 */ lhu $t8, 4($s0) +.L7F04A2A8: +/* 07EDD8 7F04A2A8 27190002 */ addiu $t9, $t8, 2 +/* 07EDDC 7F04A2AC 1000006E */ b .L7F04A468 +/* 07EDE0 7F04A2B0 A6190004 */ sh $t9, 4($s0) +/* 07EDE4 7F04A2B4 8C680004 */ lw $t0, 4($v1) +.L7F04A2B8: +/* 07EDE8 7F04A2B8 24110001 */ li $s1, 1 +/* 07EDEC 7F04A2BC 1000006A */ b .L7F04A468 +/* 07EDF0 7F04A2C0 A6080006 */ sh $t0, 6($s0) +command09_jump: +/* 07EDF4 7F04A2C4 02002025 */ move $a0, $s0 +/* 07EDF8 7F04A2C8 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EDFC 7F04A2CC 8C650004 */ lw $a1, 4($v1) +/* 07EE00 7F04A2D0 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE04 7F04A2D4 44811000 */ mtc1 $at, $f2 +/* 07EE08 7F04A2D8 10000063 */ b .L7F04A468 +/* 07EE0C 7F04A2DC 00000000 */ nop +command0A_jump_conditional: +/* 07EE10 7F04A2E0 0C002914 */ jal randomGetNext +/* 07EE14 7F04A2E4 AFA30094 */ sw $v1, 0x94($sp) +/* 07EE18 7F04A2E8 8FA30094 */ lw $v1, 0x94($sp) +/* 07EE1C 7F04A2EC 00024C02 */ srl $t1, $v0, 0x10 +/* 07EE20 7F04A2F0 02002025 */ move $a0, $s0 +/* 07EE24 7F04A2F4 8C6A0008 */ lw $t2, 8($v1) +/* 07EE28 7F04A2F8 012A082B */ sltu $at, $t1, $t2 +/* 07EE2C 7F04A2FC 50200008 */ beql $at, $zero, .L7F04A320 +/* 07EE30 7F04A300 960B0004 */ lhu $t3, 4($s0) +/* 07EE34 7F04A304 0FC12723 */ jal save_ptr_monitor_ani_code_to_obj_ani_slot +/* 07EE38 7F04A308 8C650004 */ lw $a1, 4($v1) +/* 07EE3C 7F04A30C 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE40 7F04A310 44811000 */ mtc1 $at, $f2 +/* 07EE44 7F04A314 10000054 */ b .L7F04A468 +/* 07EE48 7F04A318 00000000 */ nop +/* 07EE4C 7F04A31C 960B0004 */ lhu $t3, 4($s0) +.L7F04A320: +/* 07EE50 7F04A320 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 07EE54 7F04A324 44811000 */ mtc1 $at, $f2 +/* 07EE58 7F04A328 256C0003 */ addiu $t4, $t3, 3 +/* 07EE5C 7F04A32C A60C0004 */ sh $t4, 4($s0) +/* 07EE60 7F04A330 1000004D */ b .L7F04A468 +/* 07EE64 7F04A334 00000000 */ nop +command0B_restart: +/* 07EE68 7F04A338 1000004B */ b .L7F04A468 +/* 07EE6C 7F04A33C A6000004 */ sh $zero, 4($s0) +command0C_break: +/* 07EE70 7F04A340 10000049 */ b .L7F04A468 +/* 07EE74 7F04A344 24110001 */ li $s1, 1 +command0D_colour_transition: +/* 07EE78 7F04A348 E614006C */ swc1 $f20, 0x6c($s0) +/* 07EE7C 7F04A34C 8C6D0008 */ lw $t5, 8($v1) +/* 07EE80 7F04A350 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07EE84 7F04A354 448D2000 */ mtc1 $t5, $f4 +/* 07EE88 7F04A358 05A10004 */ bgez $t5, .L7F04A36C +/* 07EE8C 7F04A35C 468021A0 */ cvt.s.w $f6, $f4 +/* 07EE90 7F04A360 44814000 */ mtc1 $at, $f8 +/* 07EE94 7F04A364 00000000 */ nop +/* 07EE98 7F04A368 46083180 */ add.s $f6, $f6, $f8 +.L7F04A36C: +/* 07EE9C 7F04A36C 4606C283 */ div.s $f10, $f24, $f6 +/* 07EEA0 7F04A370 920E0060 */ lbu $t6, 0x60($s0) +/* 07EEA4 7F04A374 92080063 */ lbu $t0, 0x63($s0) +/* 07EEA8 7F04A378 920C0066 */ lbu $t4, 0x66($s0) +/* 07EEAC 7F04A37C A20E0061 */ sb $t6, 0x61($s0) +/* 07EEB0 7F04A380 92180069 */ lbu $t8, 0x69($s0) +/* 07EEB4 7F04A384 E60A0070 */ swc1 $f10, 0x70($s0) +/* 07EEB8 7F04A388 8C6F0004 */ lw $t7, 4($v1) +/* 07EEBC 7F04A38C A2080064 */ sb $t0, 0x64($s0) +/* 07EEC0 7F04A390 000FCE02 */ srl $t9, $t7, 0x18 +/* 07EEC4 7F04A394 A2190062 */ sb $t9, 0x62($s0) +/* 07EEC8 7F04A398 8C690004 */ lw $t1, 4($v1) +/* 07EECC 7F04A39C A20C0067 */ sb $t4, 0x67($s0) +/* 07EED0 7F04A3A0 00095C02 */ srl $t3, $t1, 0x10 +/* 07EED4 7F04A3A4 A20B0065 */ sb $t3, 0x65($s0) +/* 07EED8 7F04A3A8 8C6D0004 */ lw $t5, 4($v1) +/* 07EEDC 7F04A3AC A218006A */ sb $t8, 0x6a($s0) +/* 07EEE0 7F04A3B0 24490003 */ addiu $t1, $v0, 3 +/* 07EEE4 7F04A3B4 000D7A02 */ srl $t7, $t5, 8 +/* 07EEE8 7F04A3B8 A20F0068 */ sb $t7, 0x68($s0) +/* 07EEEC 7F04A3BC 8C680004 */ lw $t0, 4($v1) +/* 07EEF0 7F04A3C0 A6090004 */ sh $t1, 4($s0) +/* 07EEF4 7F04A3C4 10000028 */ b .L7F04A468 +/* 07EEF8 7F04A3C8 A208006B */ sb $t0, 0x6b($s0) +command0E_set_rotation: +/* 07EEFC 7F04A3CC 8C6A0004 */ lw $t2, 4($v1) +/* 07EF00 7F04A3D0 244B0002 */ addiu $t3, $v0, 2 +/* 07EF04 7F04A3D4 A60B0004 */ sh $t3, 4($s0) +/* 07EF08 7F04A3D8 448A9000 */ mtc1 $t2, $f18 +/* 07EF0C 7F04A3DC 00000000 */ nop +/* 07EF10 7F04A3E0 46809120 */ cvt.s.w $f4, $f18 +/* 07EF14 7F04A3E4 461A2202 */ mul.s $f8, $f4, $f26 +/* 07EF18 7F04A3E8 46024183 */ div.s $f6, $f8, $f2 +/* 07EF1C 7F04A3EC 1000001E */ b .L7F04A468 +/* 07EF20 7F04A3F0 E606000C */ swc1 $f6, 0xc($s0) +command0F_rotate: +/* 07EF24 7F04A3F4 8C6C0004 */ lw $t4, 4($v1) +/* 07EF28 7F04A3F8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 07EF2C 7F04A3FC C42A8378 */ lwc1 $f10, %lo(global_timer_delta)($at) +/* 07EF30 7F04A400 448C9000 */ mtc1 $t4, $f18 +/* 07EF34 7F04A404 00000000 */ nop +/* 07EF38 7F04A408 46809120 */ cvt.s.w $f4, $f18 +/* 07EF3C 7F04A40C 46045202 */ mul.s $f8, $f10, $f4 +/* 07EF40 7F04A410 C60A000C */ lwc1 $f10, 0xc($s0) +/* 07EF44 7F04A414 461A4182 */ mul.s $f6, $f8, $f26 +/* 07EF48 7F04A418 46023483 */ div.s $f18, $f6, $f2 +/* 07EF4C 7F04A41C 46125100 */ add.s $f4, $f10, $f18 +/* 07EF50 7F04A420 E604000C */ swc1 $f4, 0xc($s0) +/* 07EF54 7F04A424 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF58 7F04A428 460CD03E */ c.le.s $f26, $f12 +/* 07EF5C 7F04A42C 00000000 */ nop +/* 07EF60 7F04A430 45020005 */ bc1fl .L7F04A448 +/* 07EF64 7F04A434 4614603C */ c.lt.s $f12, $f20 +/* 07EF68 7F04A438 461A6201 */ sub.s $f8, $f12, $f26 +/* 07EF6C 7F04A43C E608000C */ swc1 $f8, 0xc($s0) +/* 07EF70 7F04A440 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07EF74 7F04A444 4614603C */ c.lt.s $f12, $f20 +.L7F04A448: +/* 07EF78 7F04A448 00000000 */ nop +/* 07EF7C 7F04A44C 45020004 */ bc1fl .L7F04A460 +/* 07EF80 7F04A450 960D0004 */ lhu $t5, 4($s0) +/* 07EF84 7F04A454 461A6180 */ add.s $f6, $f12, $f26 +/* 07EF88 7F04A458 E606000C */ swc1 $f6, 0xc($s0) +/* 07EF8C 7F04A45C 960D0004 */ lhu $t5, 4($s0) +.L7F04A460: +/* 07EF90 7F04A460 25AE0002 */ addiu $t6, $t5, 2 +/* 07EF94 7F04A464 A60E0004 */ sh $t6, 4($s0) +def_7F04A01C: +.L7F04A468: +/* 07EF98 7F04A468 5220FEE2 */ beql $s1, $zero, .L7F049FF4 +/* 07EF9C 7F04A46C 96020004 */ lhu $v0, 4($s0) +/* 07EFA0 7F04A470 C6000018 */ lwc1 $f0, 0x18($s0) +/* 07EFA4 7F04A474 4600A03C */ c.lt.s $f20, $f0 +/* 07EFA8 7F04A478 00000000 */ nop +/* 07EFAC 7F04A47C 45000017 */ bc1f .L7F04A4DC +/* 07EFB0 7F04A480 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07EFB4 7F04A484 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07EFB8 7F04A488 C4520000 */ lwc1 $f18, ($v0) +/* 07EFBC 7F04A48C C60A0014 */ lwc1 $f10, 0x14($s0) +/* 07EFC0 7F04A490 46120102 */ mul.s $f4, $f0, $f18 +/* 07EFC4 7F04A494 46045200 */ add.s $f8, $f10, $f4 +/* 07EFC8 7F04A498 E6080014 */ swc1 $f8, 0x14($s0) +/* 07EFCC 7F04A49C C6020014 */ lwc1 $f2, 0x14($s0) +/* 07EFD0 7F04A4A0 4618103C */ c.lt.s $f2, $f24 +/* 07EFD4 7F04A4A4 00000000 */ nop +/* 07EFD8 7F04A4A8 45020009 */ bc1fl .L7F04A4D0 +/* 07EFDC 7F04A4AC C6080020 */ lwc1 $f8, 0x20($s0) +/* 07EFE0 7F04A4B0 C600001C */ lwc1 $f0, 0x1c($s0) +/* 07EFE4 7F04A4B4 C6060020 */ lwc1 $f6, 0x20($s0) +/* 07EFE8 7F04A4B8 46003481 */ sub.s $f18, $f6, $f0 +/* 07EFEC 7F04A4BC 46029282 */ mul.s $f10, $f18, $f2 +/* 07EFF0 7F04A4C0 460A0100 */ add.s $f4, $f0, $f10 +/* 07EFF4 7F04A4C4 10000005 */ b .L7F04A4DC +/* 07EFF8 7F04A4C8 E6040010 */ swc1 $f4, 0x10($s0) +/* 07EFFC 7F04A4CC C6080020 */ lwc1 $f8, 0x20($s0) +.L7F04A4D0: +/* 07F000 7F04A4D0 E6180014 */ swc1 $f24, 0x14($s0) +/* 07F004 7F04A4D4 E6140018 */ swc1 $f20, 0x18($s0) +/* 07F008 7F04A4D8 E6080010 */ swc1 $f8, 0x10($s0) +.L7F04A4DC: +/* 07F00C 7F04A4DC C600002C */ lwc1 $f0, 0x2c($s0) +/* 07F010 7F04A4E0 3C028005 */ lui $v0, %hi(global_timer_delta) +/* 07F014 7F04A4E4 24428378 */ addiu $v0, %lo(global_timer_delta) # addiu $v0, $v0, -0x7c88 +/* 07F018 7F04A4E8 4600A03C */ c.lt.s $f20, $f0 +/* 07F01C 7F04A4EC 00000000 */ nop +/* 07F020 7F04A4F0 45020017 */ bc1fl .L7F04A550 +/* 07F024 7F04A4F4 C6000040 */ lwc1 $f0, 0x40($s0) +/* 07F028 7F04A4F8 C4520000 */ lwc1 $f18, ($v0) +/* 07F02C 7F04A4FC C6060028 */ lwc1 $f6, 0x28($s0) +/* 07F030 7F04A500 46120282 */ mul.s $f10, $f0, $f18 +/* 07F034 7F04A504 460A3100 */ add.s $f4, $f6, $f10 +/* 07F038 7F04A508 E6040028 */ swc1 $f4, 0x28($s0) +/* 07F03C 7F04A50C C6020028 */ lwc1 $f2, 0x28($s0) +/* 07F040 7F04A510 4618103C */ c.lt.s $f2, $f24 +/* 07F044 7F04A514 00000000 */ nop +/* 07F048 7F04A518 45020009 */ bc1fl .L7F04A540 +/* 07F04C 7F04A51C C6040034 */ lwc1 $f4, 0x34($s0) +/* 07F050 7F04A520 C6000030 */ lwc1 $f0, 0x30($s0) +/* 07F054 7F04A524 C6080034 */ lwc1 $f8, 0x34($s0) +/* 07F058 7F04A528 46004481 */ sub.s $f18, $f8, $f0 +/* 07F05C 7F04A52C 46029182 */ mul.s $f6, $f18, $f2 +/* 07F060 7F04A530 46060280 */ add.s $f10, $f0, $f6 +/* 07F064 7F04A534 10000005 */ b .L7F04A54C +/* 07F068 7F04A538 E60A0024 */ swc1 $f10, 0x24($s0) +/* 07F06C 7F04A53C C6040034 */ lwc1 $f4, 0x34($s0) +.L7F04A540: +/* 07F070 7F04A540 E6180028 */ swc1 $f24, 0x28($s0) +/* 07F074 7F04A544 E614002C */ swc1 $f20, 0x2c($s0) +/* 07F078 7F04A548 E6040024 */ swc1 $f4, 0x24($s0) +.L7F04A54C: +/* 07F07C 7F04A54C C6000040 */ lwc1 $f0, 0x40($s0) +.L7F04A550: +/* 07F080 7F04A550 4600A03C */ c.lt.s $f20, $f0 +/* 07F084 7F04A554 00000000 */ nop +/* 07F088 7F04A558 45020017 */ bc1fl .L7F04A5B8 +/* 07F08C 7F04A55C C6000054 */ lwc1 $f0, 0x54($s0) +/* 07F090 7F04A560 C4520000 */ lwc1 $f18, ($v0) +/* 07F094 7F04A564 C608003C */ lwc1 $f8, 0x3c($s0) +/* 07F098 7F04A568 46120182 */ mul.s $f6, $f0, $f18 +/* 07F09C 7F04A56C 46064280 */ add.s $f10, $f8, $f6 +/* 07F0A0 7F04A570 E60A003C */ swc1 $f10, 0x3c($s0) +/* 07F0A4 7F04A574 C602003C */ lwc1 $f2, 0x3c($s0) +/* 07F0A8 7F04A578 4618103C */ c.lt.s $f2, $f24 +/* 07F0AC 7F04A57C 00000000 */ nop +/* 07F0B0 7F04A580 45020009 */ bc1fl .L7F04A5A8 +/* 07F0B4 7F04A584 C60A0048 */ lwc1 $f10, 0x48($s0) +/* 07F0B8 7F04A588 C6000044 */ lwc1 $f0, 0x44($s0) +/* 07F0BC 7F04A58C C6040048 */ lwc1 $f4, 0x48($s0) +/* 07F0C0 7F04A590 46002481 */ sub.s $f18, $f4, $f0 +/* 07F0C4 7F04A594 46029202 */ mul.s $f8, $f18, $f2 +/* 07F0C8 7F04A598 46080180 */ add.s $f6, $f0, $f8 +/* 07F0CC 7F04A59C 10000005 */ b .L7F04A5B4 +/* 07F0D0 7F04A5A0 E6060038 */ swc1 $f6, 0x38($s0) +/* 07F0D4 7F04A5A4 C60A0048 */ lwc1 $f10, 0x48($s0) +.L7F04A5A8: +/* 07F0D8 7F04A5A8 E618003C */ swc1 $f24, 0x3c($s0) +/* 07F0DC 7F04A5AC E6140040 */ swc1 $f20, 0x40($s0) +/* 07F0E0 7F04A5B0 E60A0038 */ swc1 $f10, 0x38($s0) +.L7F04A5B4: +/* 07F0E4 7F04A5B4 C6000054 */ lwc1 $f0, 0x54($s0) +.L7F04A5B8: +/* 07F0E8 7F04A5B8 4600A03C */ c.lt.s $f20, $f0 +/* 07F0EC 7F04A5BC 00000000 */ nop +/* 07F0F0 7F04A5C0 45020017 */ bc1fl .L7F04A620 +/* 07F0F4 7F04A5C4 C6020070 */ lwc1 $f2, 0x70($s0) +/* 07F0F8 7F04A5C8 C4520000 */ lwc1 $f18, ($v0) +/* 07F0FC 7F04A5CC C6040050 */ lwc1 $f4, 0x50($s0) +/* 07F100 7F04A5D0 46120202 */ mul.s $f8, $f0, $f18 +/* 07F104 7F04A5D4 46082180 */ add.s $f6, $f4, $f8 +/* 07F108 7F04A5D8 E6060050 */ swc1 $f6, 0x50($s0) +/* 07F10C 7F04A5DC C6020050 */ lwc1 $f2, 0x50($s0) +/* 07F110 7F04A5E0 4618103C */ c.lt.s $f2, $f24 +/* 07F114 7F04A5E4 00000000 */ nop +/* 07F118 7F04A5E8 45020009 */ bc1fl .L7F04A610 +/* 07F11C 7F04A5EC C606005C */ lwc1 $f6, 0x5c($s0) +/* 07F120 7F04A5F0 C6000058 */ lwc1 $f0, 0x58($s0) +/* 07F124 7F04A5F4 C60A005C */ lwc1 $f10, 0x5c($s0) +/* 07F128 7F04A5F8 46005481 */ sub.s $f18, $f10, $f0 +/* 07F12C 7F04A5FC 46029102 */ mul.s $f4, $f18, $f2 +/* 07F130 7F04A600 46040200 */ add.s $f8, $f0, $f4 +/* 07F134 7F04A604 10000005 */ b .L7F04A61C +/* 07F138 7F04A608 E608004C */ swc1 $f8, 0x4c($s0) +/* 07F13C 7F04A60C C606005C */ lwc1 $f6, 0x5c($s0) +.L7F04A610: +/* 07F140 7F04A610 E6180050 */ swc1 $f24, 0x50($s0) +/* 07F144 7F04A614 E6140054 */ swc1 $f20, 0x54($s0) +/* 07F148 7F04A618 E606004C */ swc1 $f6, 0x4c($s0) +.L7F04A61C: +/* 07F14C 7F04A61C C6020070 */ lwc1 $f2, 0x70($s0) +.L7F04A620: +/* 07F150 7F04A620 4602A03C */ c.lt.s $f20, $f2 +/* 07F154 7F04A624 00000000 */ nop +/* 07F158 7F04A628 4502003F */ bc1fl .L7F04A728 +/* 07F15C 7F04A62C 8FAA00A0 */ lw $t2, 0xa0($sp) +/* 07F160 7F04A630 C4520000 */ lwc1 $f18, ($v0) +/* 07F164 7F04A634 C60A006C */ lwc1 $f10, 0x6c($s0) +/* 07F168 7F04A638 46121102 */ mul.s $f4, $f2, $f18 +/* 07F16C 7F04A63C 46045200 */ add.s $f8, $f10, $f4 +/* 07F170 7F04A640 E608006C */ swc1 $f8, 0x6c($s0) +/* 07F174 7F04A644 C600006C */ lwc1 $f0, 0x6c($s0) +/* 07F178 7F04A648 4618003C */ c.lt.s $f0, $f24 +/* 07F17C 7F04A64C 00000000 */ nop +/* 07F180 7F04A650 4502002B */ bc1fl .L7F04A700 +/* 07F184 7F04A654 920F0062 */ lbu $t7, 0x62($s0) +/* 07F188 7F04A658 92020061 */ lbu $v0, 0x61($s0) +/* 07F18C 7F04A65C 920F0062 */ lbu $t7, 0x62($s0) +/* 07F190 7F04A660 92030064 */ lbu $v1, 0x64($s0) +/* 07F194 7F04A664 920A0065 */ lbu $t2, 0x65($s0) +/* 07F198 7F04A668 01E2C023 */ subu $t8, $t7, $v0 +/* 07F19C 7F04A66C 44983000 */ mtc1 $t8, $f6 +/* 07F1A0 7F04A670 01435823 */ subu $t3, $t2, $v1 +/* 07F1A4 7F04A674 448B4000 */ mtc1 $t3, $f8 +/* 07F1A8 7F04A678 468034A0 */ cvt.s.w $f18, $f6 +/* 07F1AC 7F04A67C 920F0068 */ lbu $t7, 0x68($s0) +/* 07F1B0 7F04A680 92040067 */ lbu $a0, 0x67($s0) +/* 07F1B4 7F04A684 920A006B */ lbu $t2, 0x6b($s0) +/* 07F1B8 7F04A688 9205006A */ lbu $a1, 0x6a($s0) +/* 07F1BC 7F04A68C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F1C0 7F04A690 46009282 */ mul.s $f10, $f18, $f0 +/* 07F1C4 7F04A694 01E4C023 */ subu $t8, $t7, $a0 +/* 07F1C8 7F04A698 01455823 */ subu $t3, $t2, $a1 +/* 07F1CC 7F04A69C 46003482 */ mul.s $f18, $f6, $f0 +/* 07F1D0 7F04A6A0 4600510D */ trunc.w.s $f4, $f10 +/* 07F1D4 7F04A6A4 4600928D */ trunc.w.s $f10, $f18 +/* 07F1D8 7F04A6A8 44082000 */ mfc1 $t0, $f4 +/* 07F1DC 7F04A6AC 44982000 */ mtc1 $t8, $f4 +/* 07F1E0 7F04A6B0 440D5000 */ mfc1 $t5, $f10 +/* 07F1E4 7F04A6B4 46802220 */ cvt.s.w $f8, $f4 +/* 07F1E8 7F04A6B8 448B5000 */ mtc1 $t3, $f10 +/* 07F1EC 7F04A6BC 00484821 */ addu $t1, $v0, $t0 +/* 07F1F0 7F04A6C0 006D7021 */ addu $t6, $v1, $t5 +/* 07F1F4 7F04A6C4 A2090060 */ sb $t1, 0x60($s0) +/* 07F1F8 7F04A6C8 46805120 */ cvt.s.w $f4, $f10 +/* 07F1FC 7F04A6CC 46004182 */ mul.s $f6, $f8, $f0 +/* 07F200 7F04A6D0 A20E0063 */ sb $t6, 0x63($s0) +/* 07F204 7F04A6D4 46002202 */ mul.s $f8, $f4, $f0 +/* 07F208 7F04A6D8 4600348D */ trunc.w.s $f18, $f6 +/* 07F20C 7F04A6DC 4600418D */ trunc.w.s $f6, $f8 +/* 07F210 7F04A6E0 44089000 */ mfc1 $t0, $f18 +/* 07F214 7F04A6E4 440D3000 */ mfc1 $t5, $f6 +/* 07F218 7F04A6E8 00884821 */ addu $t1, $a0, $t0 +/* 07F21C 7F04A6EC A2090066 */ sb $t1, 0x66($s0) +/* 07F220 7F04A6F0 00AD7021 */ addu $t6, $a1, $t5 +/* 07F224 7F04A6F4 1000000B */ b .L7F04A724 +/* 07F228 7F04A6F8 A20E0069 */ sb $t6, 0x69($s0) +/* 07F22C 7F04A6FC 920F0062 */ lbu $t7, 0x62($s0) +.L7F04A700: +/* 07F230 7F04A700 92180065 */ lbu $t8, 0x65($s0) +/* 07F234 7F04A704 92190068 */ lbu $t9, 0x68($s0) +/* 07F238 7F04A708 9208006B */ lbu $t0, 0x6b($s0) +/* 07F23C 7F04A70C E618006C */ swc1 $f24, 0x6c($s0) +/* 07F240 7F04A710 E6140070 */ swc1 $f20, 0x70($s0) +/* 07F244 7F04A714 A20F0060 */ sb $t7, 0x60($s0) +/* 07F248 7F04A718 A2180063 */ sb $t8, 0x63($s0) +/* 07F24C 7F04A71C A2190066 */ sb $t9, 0x66($s0) +/* 07F250 7F04A720 A2080069 */ sb $t0, 0x69($s0) +.L7F04A724: +/* 07F254 7F04A724 8FAA00A0 */ lw $t2, 0xa0($sp) +.L7F04A728: +/* 07F258 7F04A728 8FA300A4 */ lw $v1, 0xa4($sp) +/* 07F25C 7F04A72C 8FA900BC */ lw $t1, 0xbc($sp) +/* 07F260 7F04A730 AD520000 */ sw $s2, ($t2) +/* 07F264 7F04A734 3C0F8009 */ lui $t7, %hi(monitorimages) +/* 07F268 7F04A738 AD490004 */ sw $t1, 4($t2) +/* 07F26C 7F04A73C 8C6B0008 */ lw $t3, 8($v1) +/* 07F270 7F04A740 8D610000 */ lw $at, ($t3) +/* 07F274 7F04A744 AE410000 */ sw $at, ($s2) +/* 07F278 7F04A748 8D6D0004 */ lw $t5, 4($t3) +/* 07F27C 7F04A74C AE4D0004 */ sw $t5, 4($s2) +/* 07F280 7F04A750 8D610008 */ lw $at, 8($t3) +/* 07F284 7F04A754 AE410008 */ sw $at, 8($s2) +/* 07F288 7F04A758 8D6D000C */ lw $t5, 0xc($t3) +/* 07F28C 7F04A75C AE4D000C */ sw $t5, 0xc($s2) +/* 07F290 7F04A760 8C6E0008 */ lw $t6, 8($v1) +/* 07F294 7F04A764 8DC10010 */ lw $at, 0x10($t6) +/* 07F298 7F04A768 AE410010 */ sw $at, 0x10($s2) +/* 07F29C 7F04A76C 8DD80014 */ lw $t8, 0x14($t6) +/* 07F2A0 7F04A770 AE580014 */ sw $t8, 0x14($s2) +/* 07F2A4 7F04A774 8DC10018 */ lw $at, 0x18($t6) +/* 07F2A8 7F04A778 AE410018 */ sw $at, 0x18($s2) +/* 07F2AC 7F04A77C 8DD8001C */ lw $t8, 0x1c($t6) +/* 07F2B0 7F04A780 AE58001C */ sw $t8, 0x1c($s2) +/* 07F2B4 7F04A784 8C790008 */ lw $t9, 8($v1) +/* 07F2B8 7F04A788 8F210020 */ lw $at, 0x20($t9) +/* 07F2BC 7F04A78C AE410020 */ sw $at, 0x20($s2) +/* 07F2C0 7F04A790 8F290024 */ lw $t1, 0x24($t9) +/* 07F2C4 7F04A794 AE490024 */ sw $t1, 0x24($s2) +/* 07F2C8 7F04A798 8F210028 */ lw $at, 0x28($t9) +/* 07F2CC 7F04A79C AE410028 */ sw $at, 0x28($s2) +/* 07F2D0 7F04A7A0 8F29002C */ lw $t1, 0x2c($t9) +/* 07F2D4 7F04A7A4 AE49002C */ sw $t1, 0x2c($s2) +/* 07F2D8 7F04A7A8 8C6A0008 */ lw $t2, 8($v1) +/* 07F2DC 7F04A7AC 8D410030 */ lw $at, 0x30($t2) +/* 07F2E0 7F04A7B0 AE410030 */ sw $at, 0x30($s2) +/* 07F2E4 7F04A7B4 8D4B0034 */ lw $t3, 0x34($t2) +/* 07F2E8 7F04A7B8 AE4B0034 */ sw $t3, 0x34($s2) +/* 07F2EC 7F04A7BC 8D410038 */ lw $at, 0x38($t2) +/* 07F2F0 7F04A7C0 AE410038 */ sw $at, 0x38($s2) +/* 07F2F4 7F04A7C4 8D4B003C */ lw $t3, 0x3c($t2) +/* 07F2F8 7F04A7C8 AE4B003C */ sw $t3, 0x3c($s2) +/* 07F2FC 7F04A7CC 8E020008 */ lw $v0, 8($s0) +/* 07F300 7F04A7D0 2C410064 */ sltiu $at, $v0, 0x64 +/* 07F304 7F04A7D4 10200007 */ beqz $at, .L7F04A7F4 +/* 07F308 7F04A7D8 00408825 */ move $s1, $v0 +/* 07F30C 7F04A7DC 00026880 */ sll $t5, $v0, 2 +/* 07F310 7F04A7E0 8DEFD120 */ lw $t7, %lo(monitorimages)($t7) +/* 07F314 7F04A7E4 01A26823 */ subu $t5, $t5, $v0 +/* 07F318 7F04A7E8 000D6880 */ sll $t5, $t5, 2 +/* 07F31C 7F04A7EC 10000001 */ b .L7F04A7F4 +/* 07F320 7F04A7F0 01AF8821 */ addu $s1, $t5, $t7 +.L7F04A7F4: +/* 07F324 7F04A7F4 122000A9 */ beqz $s1, .L7F04AA9C +/* 07F328 7F04A7F8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 07F32C 7F04A7FC 44810000 */ mtc1 $at, $f0 +/* 07F330 7F04A800 C6120010 */ lwc1 $f18, 0x10($s0) +/* 07F334 7F04A804 C60A0024 */ lwc1 $f10, 0x24($s0) +/* 07F338 7F04A808 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F33C 7F04A80C 46009582 */ mul.s $f22, $f18, $f0 +/* 07F340 7F04A810 460CA032 */ c.eq.s $f20, $f12 +/* 07F344 7F04A814 46005602 */ mul.s $f24, $f10, $f0 +/* 07F348 7F04A818 4600B386 */ mov.s $f14, $f22 +/* 07F34C 7F04A81C 45010015 */ bc1t .L7F04A874 +/* 07F350 7F04A820 4600C406 */ mov.s $f16, $f24 +/* 07F354 7F04A824 E7AE0054 */ swc1 $f14, 0x54($sp) +/* 07F358 7F04A828 0FC15FA8 */ jal cosf +/* 07F35C 7F04A82C E7B00050 */ swc1 $f16, 0x50($sp) +/* 07F360 7F04A830 3C018005 */ lui $at, %hi(D_80052CB0) +/* 07F364 7F04A834 C43A2CB0 */ lwc1 $f26, %lo(D_80052CB0)($at) +/* 07F368 7F04A838 C60C000C */ lwc1 $f12, 0xc($s0) +/* 07F36C 7F04A83C 461A0502 */ mul.s $f20, $f0, $f26 +/* 07F370 7F04A840 0FC15FAB */ jal sinf +/* 07F374 7F04A844 00000000 */ nop +/* 07F378 7F04A848 4614B582 */ mul.s $f22, $f22, $f20 +/* 07F37C 7F04A84C C7AE0054 */ lwc1 $f14, 0x54($sp) +/* 07F380 7F04A850 C7B00050 */ lwc1 $f16, 0x50($sp) +/* 07F384 7F04A854 461A0082 */ mul.s $f2, $f0, $f26 +/* 07F388 7F04A858 00000000 */ nop +/* 07F38C 7F04A85C 4602C602 */ mul.s $f24, $f24, $f2 +/* 07F390 7F04A860 00000000 */ nop +/* 07F394 7F04A864 46027382 */ mul.s $f14, $f14, $f2 +/* 07F398 7F04A868 00000000 */ nop +/* 07F39C 7F04A86C 46148402 */ mul.s $f16, $f16, $f20 +/* 07F3A0 7F04A870 00000000 */ nop +.L7F04A874: +/* 07F3A4 7F04A874 922E0004 */ lbu $t6, 4($s1) +/* 07F3A8 7F04A878 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 07F3AC 7F04A87C 44810000 */ mtc1 $at, $f0 +/* 07F3B0 7F04A880 448E4000 */ mtc1 $t6, $f8 +/* 07F3B4 7F04A884 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3B8 7F04A888 05C10004 */ bgez $t6, .L7F04A89C +/* 07F3BC 7F04A88C 468041A0 */ cvt.s.w $f6, $f8 +/* 07F3C0 7F04A890 44819000 */ mtc1 $at, $f18 +/* 07F3C4 7F04A894 00000000 */ nop +/* 07F3C8 7F04A898 46123180 */ add.s $f6, $f6, $f18 +.L7F04A89C: +/* 07F3CC 7F04A89C C60A0038 */ lwc1 $f10, 0x38($s0) +/* 07F3D0 7F04A8A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F3D4 7F04A8A4 46165100 */ add.s $f4, $f10, $f22 +/* 07F3D8 7F04A8A8 46043202 */ mul.s $f8, $f6, $f4 +/* 07F3DC 7F04A8AC 00000000 */ nop +/* 07F3E0 7F04A8B0 46004482 */ mul.s $f18, $f8, $f0 +/* 07F3E4 7F04A8B4 4600928D */ trunc.w.s $f10, $f18 +/* 07F3E8 7F04A8B8 44085000 */ mfc1 $t0, $f10 +/* 07F3EC 7F04A8BC 00000000 */ nop +/* 07F3F0 7F04A8C0 A6480008 */ sh $t0, 8($s2) +/* 07F3F4 7F04A8C4 92390005 */ lbu $t9, 5($s1) +/* 07F3F8 7F04A8C8 44993000 */ mtc1 $t9, $f6 +/* 07F3FC 7F04A8CC 07210004 */ bgez $t9, .L7F04A8E0 +/* 07F400 7F04A8D0 46803120 */ cvt.s.w $f4, $f6 +/* 07F404 7F04A8D4 44814000 */ mtc1 $at, $f8 +/* 07F408 7F04A8D8 00000000 */ nop +/* 07F40C 7F04A8DC 46082100 */ add.s $f4, $f4, $f8 +.L7F04A8E0: +/* 07F410 7F04A8E0 C612004C */ lwc1 $f18, 0x4c($s0) +/* 07F414 7F04A8E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F418 7F04A8E8 46189280 */ add.s $f10, $f18, $f24 +/* 07F41C 7F04A8EC 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F420 7F04A8F0 00000000 */ nop +/* 07F424 7F04A8F4 46003202 */ mul.s $f8, $f6, $f0 +/* 07F428 7F04A8F8 4600448D */ trunc.w.s $f18, $f8 +/* 07F42C 7F04A8FC 440C9000 */ mfc1 $t4, $f18 +/* 07F430 7F04A900 00000000 */ nop +/* 07F434 7F04A904 A64C000A */ sh $t4, 0xa($s2) +/* 07F438 7F04A908 922A0004 */ lbu $t2, 4($s1) +/* 07F43C 7F04A90C 448A2000 */ mtc1 $t2, $f4 +/* 07F440 7F04A910 05410004 */ bgez $t2, .L7F04A924 +/* 07F444 7F04A914 468022A0 */ cvt.s.w $f10, $f4 +/* 07F448 7F04A918 44813000 */ mtc1 $at, $f6 +/* 07F44C 7F04A91C 00000000 */ nop +/* 07F450 7F04A920 46065280 */ add.s $f10, $f10, $f6 +.L7F04A924: +/* 07F454 7F04A924 C6080038 */ lwc1 $f8, 0x38($s0) +/* 07F458 7F04A928 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F45C 7F04A92C 460E4481 */ sub.s $f18, $f8, $f14 +/* 07F460 7F04A930 46125102 */ mul.s $f4, $f10, $f18 +/* 07F464 7F04A934 00000000 */ nop +/* 07F468 7F04A938 46002182 */ mul.s $f6, $f4, $f0 +/* 07F46C 7F04A93C 4600320D */ trunc.w.s $f8, $f6 +/* 07F470 7F04A940 440D4000 */ mfc1 $t5, $f8 +/* 07F474 7F04A944 00000000 */ nop +/* 07F478 7F04A948 A64D0018 */ sh $t5, 0x18($s2) +/* 07F47C 7F04A94C 922F0005 */ lbu $t7, 5($s1) +/* 07F480 7F04A950 448F5000 */ mtc1 $t7, $f10 +/* 07F484 7F04A954 05E10004 */ bgez $t7, .L7F04A968 +/* 07F488 7F04A958 468054A0 */ cvt.s.w $f18, $f10 +/* 07F48C 7F04A95C 44812000 */ mtc1 $at, $f4 +/* 07F490 7F04A960 00000000 */ nop +/* 07F494 7F04A964 46049480 */ add.s $f18, $f18, $f4 +.L7F04A968: +/* 07F498 7F04A968 C606004C */ lwc1 $f6, 0x4c($s0) +/* 07F49C 7F04A96C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4A0 7F04A970 46103200 */ add.s $f8, $f6, $f16 +/* 07F4A4 7F04A974 46089282 */ mul.s $f10, $f18, $f8 +/* 07F4A8 7F04A978 00000000 */ nop +/* 07F4AC 7F04A97C 46005102 */ mul.s $f4, $f10, $f0 +/* 07F4B0 7F04A980 4600218D */ trunc.w.s $f6, $f4 +/* 07F4B4 7F04A984 44183000 */ mfc1 $t8, $f6 +/* 07F4B8 7F04A988 00000000 */ nop +/* 07F4BC 7F04A98C A658001A */ sh $t8, 0x1a($s2) +/* 07F4C0 7F04A990 92280004 */ lbu $t0, 4($s1) +/* 07F4C4 7F04A994 44889000 */ mtc1 $t0, $f18 +/* 07F4C8 7F04A998 05010004 */ bgez $t0, .L7F04A9AC +/* 07F4CC 7F04A99C 46809220 */ cvt.s.w $f8, $f18 +/* 07F4D0 7F04A9A0 44815000 */ mtc1 $at, $f10 +/* 07F4D4 7F04A9A4 00000000 */ nop +/* 07F4D8 7F04A9A8 460A4200 */ add.s $f8, $f8, $f10 +.L7F04A9AC: +/* 07F4DC 7F04A9AC C6040038 */ lwc1 $f4, 0x38($s0) +/* 07F4E0 7F04A9B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F4E4 7F04A9B4 46162181 */ sub.s $f6, $f4, $f22 +/* 07F4E8 7F04A9B8 46064482 */ mul.s $f18, $f8, $f6 +/* 07F4EC 7F04A9BC 00000000 */ nop +/* 07F4F0 7F04A9C0 46009282 */ mul.s $f10, $f18, $f0 +/* 07F4F4 7F04A9C4 4600510D */ trunc.w.s $f4, $f10 +/* 07F4F8 7F04A9C8 44092000 */ mfc1 $t1, $f4 +/* 07F4FC 7F04A9CC 00000000 */ nop +/* 07F500 7F04A9D0 A6490028 */ sh $t1, 0x28($s2) +/* 07F504 7F04A9D4 922C0005 */ lbu $t4, 5($s1) +/* 07F508 7F04A9D8 448C4000 */ mtc1 $t4, $f8 +/* 07F50C 7F04A9DC 05810004 */ bgez $t4, .L7F04A9F0 +/* 07F510 7F04A9E0 468041A0 */ cvt.s.w $f6, $f8 +/* 07F514 7F04A9E4 44819000 */ mtc1 $at, $f18 +/* 07F518 7F04A9E8 00000000 */ nop +/* 07F51C 7F04A9EC 46123180 */ add.s $f6, $f6, $f18 +.L7F04A9F0: +/* 07F520 7F04A9F0 C60A004C */ lwc1 $f10, 0x4c($s0) +/* 07F524 7F04A9F4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F528 7F04A9F8 46185101 */ sub.s $f4, $f10, $f24 +/* 07F52C 7F04A9FC 46043202 */ mul.s $f8, $f6, $f4 +/* 07F530 7F04AA00 00000000 */ nop +/* 07F534 7F04AA04 46004482 */ mul.s $f18, $f8, $f0 +/* 07F538 7F04AA08 4600928D */ trunc.w.s $f10, $f18 +/* 07F53C 7F04AA0C 440B5000 */ mfc1 $t3, $f10 +/* 07F540 7F04AA10 00000000 */ nop +/* 07F544 7F04AA14 A64B002A */ sh $t3, 0x2a($s2) +/* 07F548 7F04AA18 922D0004 */ lbu $t5, 4($s1) +/* 07F54C 7F04AA1C 448D3000 */ mtc1 $t5, $f6 +/* 07F550 7F04AA20 05A10004 */ bgez $t5, .L7F04AA34 +/* 07F554 7F04AA24 46803120 */ cvt.s.w $f4, $f6 +/* 07F558 7F04AA28 44814000 */ mtc1 $at, $f8 +/* 07F55C 7F04AA2C 00000000 */ nop +/* 07F560 7F04AA30 46082100 */ add.s $f4, $f4, $f8 +.L7F04AA34: +/* 07F564 7F04AA34 C6120038 */ lwc1 $f18, 0x38($s0) +/* 07F568 7F04AA38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 07F56C 7F04AA3C 460E9280 */ add.s $f10, $f18, $f14 +/* 07F570 7F04AA40 460A2182 */ mul.s $f6, $f4, $f10 +/* 07F574 7F04AA44 00000000 */ nop +/* 07F578 7F04AA48 46003202 */ mul.s $f8, $f6, $f0 +/* 07F57C 7F04AA4C 4600448D */ trunc.w.s $f18, $f8 +/* 07F580 7F04AA50 440E9000 */ mfc1 $t6, $f18 +/* 07F584 7F04AA54 00000000 */ nop +/* 07F588 7F04AA58 A64E0038 */ sh $t6, 0x38($s2) +/* 07F58C 7F04AA5C 92380005 */ lbu $t8, 5($s1) +/* 07F590 7F04AA60 44982000 */ mtc1 $t8, $f4 +/* 07F594 7F04AA64 07010004 */ bgez $t8, .L7F04AA78 +/* 07F598 7F04AA68 468022A0 */ cvt.s.w $f10, $f4 +/* 07F59C 7F04AA6C 44813000 */ mtc1 $at, $f6 +/* 07F5A0 7F04AA70 00000000 */ nop +/* 07F5A4 7F04AA74 46065280 */ add.s $f10, $f10, $f6 +.L7F04AA78: +/* 07F5A8 7F04AA78 C608004C */ lwc1 $f8, 0x4c($s0) +/* 07F5AC 7F04AA7C 46104481 */ sub.s $f18, $f8, $f16 +/* 07F5B0 7F04AA80 46125102 */ mul.s $f4, $f10, $f18 +/* 07F5B4 7F04AA84 00000000 */ nop +/* 07F5B8 7F04AA88 46002182 */ mul.s $f6, $f4, $f0 +/* 07F5BC 7F04AA8C 4600320D */ trunc.w.s $f8, $f6 +/* 07F5C0 7F04AA90 44194000 */ mfc1 $t9, $f8 +/* 07F5C4 7F04AA94 00000000 */ nop +/* 07F5C8 7F04AA98 A659003A */ sh $t9, 0x3a($s2) +.L7F04AA9C: +/* 07F5CC 7F04AA9C 92020060 */ lbu $v0, 0x60($s0) +/* 07F5D0 7F04AAA0 240C0002 */ li $t4, 2 +/* 07F5D4 7F04AAA4 3C0DB700 */ lui $t5, 0xb700 +/* 07F5D8 7F04AAA8 A242003C */ sb $v0, 0x3c($s2) +/* 07F5DC 7F04AAAC A242002C */ sb $v0, 0x2c($s2) +/* 07F5E0 7F04AAB0 A242001C */ sb $v0, 0x1c($s2) +/* 07F5E4 7F04AAB4 A242000C */ sb $v0, 0xc($s2) +/* 07F5E8 7F04AAB8 92020063 */ lbu $v0, 0x63($s0) +/* 07F5EC 7F04AABC 240F2000 */ li $t7, 8192 +/* 07F5F0 7F04AAC0 27A400BC */ addiu $a0, $sp, 0xbc +/* 07F5F4 7F04AAC4 A242003D */ sb $v0, 0x3d($s2) +/* 07F5F8 7F04AAC8 A242002D */ sb $v0, 0x2d($s2) +/* 07F5FC 7F04AACC A242001D */ sb $v0, 0x1d($s2) +/* 07F600 7F04AAD0 A242000D */ sb $v0, 0xd($s2) +/* 07F604 7F04AAD4 92030066 */ lbu $v1, 0x66($s0) +/* 07F608 7F04AAD8 A243003E */ sb $v1, 0x3e($s2) +/* 07F60C 7F04AADC A243002E */ sb $v1, 0x2e($s2) +/* 07F610 7F04AAE0 A243001E */ sb $v1, 0x1e($s2) +/* 07F614 7F04AAE4 A243000E */ sb $v1, 0xe($s2) +/* 07F618 7F04AAE8 92020069 */ lbu $v0, 0x69($s0) +/* 07F61C 7F04AAEC A242003F */ sb $v0, 0x3f($s2) +/* 07F620 7F04AAF0 A242002F */ sb $v0, 0x2f($s2) +/* 07F624 7F04AAF4 A242001F */ sb $v0, 0x1f($s2) +/* 07F628 7F04AAF8 A242000F */ sb $v0, 0xf($s2) +/* 07F62C 7F04AAFC 92090069 */ lbu $t1, 0x69($s0) +/* 07F630 7F04AB00 292100FF */ slti $at, $t1, 0xff +/* 07F634 7F04AB04 50200003 */ beql $at, $zero, .L7F04AB14 +/* 07F638 7F04AB08 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F63C 7F04AB0C AFAC00C4 */ sw $t4, 0xc4($sp) +/* 07F640 7F04AB10 8FAA00BC */ lw $t2, 0xbc($sp) +.L7F04AB14: +/* 07F644 7F04AB14 240E0002 */ li $t6, 2 +/* 07F648 7F04AB18 02202825 */ move $a1, $s1 +/* 07F64C 7F04AB1C 254B0008 */ addiu $t3, $t2, 8 +/* 07F650 7F04AB20 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F654 7F04AB24 AD4F0004 */ sw $t7, 4($t2) +/* 07F658 7F04AB28 AD4D0000 */ sw $t5, ($t2) +/* 07F65C 7F04AB2C AFAE0010 */ sw $t6, 0x10($sp) +/* 07F660 7F04AB30 8FA700C0 */ lw $a3, 0xc0($sp) +/* 07F664 7F04AB34 0FC1DB5A */ jal likely_generate_DL_for_image_declaration +/* 07F668 7F04AB38 8FA600C4 */ lw $a2, 0xc4($sp) +/* 07F66C 7F04AB3C 8FB000BC */ lw $s0, 0xbc($sp) +/* 07F670 7F04AB40 3C190102 */ lui $t9, (0x01020040 >> 16) # lui $t9, 0x102 +/* 07F674 7F04AB44 37390040 */ ori $t9, (0x01020040 & 0xFFFF) # ori $t9, $t9, 0x40 +/* 07F678 7F04AB48 26080008 */ addiu $t0, $s0, 8 +/* 07F67C 7F04AB4C AFA800BC */ sw $t0, 0xbc($sp) +/* 07F680 7F04AB50 AE190000 */ sw $t9, ($s0) +/* 07F684 7F04AB54 8FA900B0 */ lw $t1, 0xb0($sp) +/* 07F688 7F04AB58 0C003A2C */ jal osVirtualToPhysical +/* 07F68C 7F04AB5C 8D24000C */ lw $a0, 0xc($t1) +/* 07F690 7F04AB60 AE020004 */ sw $v0, 4($s0) +/* 07F694 7F04AB64 8FB100BC */ lw $s1, 0xbc($sp) +/* 07F698 7F04AB68 3C0BBC00 */ lui $t3, (0xBC001006 >> 16) # lui $t3, 0xbc00 +/* 07F69C 7F04AB6C 356B1006 */ ori $t3, (0xBC001006 & 0xFFFF) # ori $t3, $t3, 0x1006 +/* 07F6A0 7F04AB70 262A0008 */ addiu $t2, $s1, 8 +/* 07F6A4 7F04AB74 AFAA00BC */ sw $t2, 0xbc($sp) +/* 07F6A8 7F04AB78 02402025 */ move $a0, $s2 +/* 07F6AC 7F04AB7C 0C003A2C */ jal osVirtualToPhysical +/* 07F6B0 7F04AB80 AE2B0000 */ sw $t3, ($s1) +/* 07F6B4 7F04AB84 AE220004 */ sw $v0, 4($s1) +/* 07F6B8 7F04AB88 8FAD00BC */ lw $t5, 0xbc($sp) +/* 07F6BC 7F04AB8C 3C0E0430 */ lui $t6, (0x04300040 >> 16) # lui $t6, 0x430 +/* 07F6C0 7F04AB90 35CE0040 */ ori $t6, (0x04300040 & 0xFFFF) # ori $t6, $t6, 0x40 +/* 07F6C4 7F04AB94 25AF0008 */ addiu $t7, $t5, 8 +/* 07F6C8 7F04AB98 AFAF00BC */ sw $t7, 0xbc($sp) +/* 07F6CC 7F04AB9C 3C180400 */ lui $t8, 0x400 +/* 07F6D0 7F04ABA0 ADB80004 */ sw $t8, 4($t5) +/* 07F6D4 7F04ABA4 ADAE0000 */ sw $t6, ($t5) +/* 07F6D8 7F04ABA8 8FA800BC */ lw $t0, 0xbc($sp) +/* 07F6DC 7F04ABAC 3C09B100 */ lui $t1, (0xB1000032 >> 16) # lui $t1, 0xb100 +/* 07F6E0 7F04ABB0 35290032 */ ori $t1, (0xB1000032 & 0xFFFF) # ori $t1, $t1, 0x32 +/* 07F6E4 7F04ABB4 25190008 */ addiu $t9, $t0, 8 +/* 07F6E8 7F04ABB8 AFB900BC */ sw $t9, 0xbc($sp) +/* 07F6EC 7F04ABBC 240C2010 */ li $t4, 8208 +/* 07F6F0 7F04ABC0 AD0C0004 */ sw $t4, 4($t0) +/* 07F6F4 7F04ABC4 AD090000 */ sw $t1, ($t0) +/* 07F6F8 7F04ABC8 8FAA00BC */ lw $t2, 0xbc($sp) +/* 07F6FC 7F04ABCC 3C0DB800 */ lui $t5, 0xb800 +/* 07F700 7F04ABD0 3C0F0601 */ lui $t7, 0x601 +/* 07F704 7F04ABD4 254B0008 */ addiu $t3, $t2, 8 +/* 07F708 7F04ABD8 AFAB00BC */ sw $t3, 0xbc($sp) +/* 07F70C 7F04ABDC AD400004 */ sw $zero, 4($t2) +/* 07F710 7F04ABE0 AD4D0000 */ sw $t5, ($t2) +/* 07F714 7F04ABE4 8FA600A8 */ lw $a2, 0xa8($sp) +/* 07F718 7F04ABE8 ACCF0000 */ sw $t7, ($a2) +/* 07F71C 7F04ABEC 8FAE00BC */ lw $t6, 0xbc($sp) +/* 07F720 7F04ABF0 ACCE0004 */ sw $t6, 4($a2) +.L7F04ABF4: +/* 07F724 7F04ABF4 8FBF004C */ lw $ra, 0x4c($sp) +.L7F04ABF8: +/* 07F728 7F04ABF8 8FA200BC */ lw $v0, 0xbc($sp) +/* 07F72C 7F04ABFC D7B40020 */ ldc1 $f20, 0x20($sp) +/* 07F730 7F04AC00 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 07F734 7F04AC04 D7B80030 */ ldc1 $f24, 0x30($sp) +/* 07F738 7F04AC08 D7BA0038 */ ldc1 $f26, 0x38($sp) +/* 07F73C 7F04AC0C 8FB00040 */ lw $s0, 0x40($sp) +/* 07F740 7F04AC10 8FB10044 */ lw $s1, 0x44($sp) +/* 07F744 7F04AC14 8FB20048 */ lw $s2, 0x48($sp) +/* 07F748 7F04AC18 03E00008 */ jr $ra +/* 07F74C 7F04AC1C 27BD00B0 */ addiu $sp, $sp, 0xb0 +) +#endif + #endif @@ -21132,7 +27647,7 @@ glabel sub_GAME_7F04B610 /* 0801B4 7F04B684 96B8001A */ lhu $t8, 0x1a($s5) /* 0801B8 7F04B688 8E2F0010 */ lw $t7, 0x10($s1) /* 0801BC 7F04B68C 0018C880 */ sll $t9, $t8, 2 -/* 0801C0 7F04B690 0C002914 */ jal get_random_value +/* 0801C0 7F04B690 0C002914 */ jal randomGetNext /* 0801C4 7F04B694 01F99821 */ addu $s3, $t7, $t9 /* 0801C8 7F04B698 30480001 */ andi $t0, $v0, 1 /* 0801CC 7F04B69C 1100000C */ beqz $t0, .L7F04B6D0 @@ -21170,7 +27685,7 @@ glabel sub_GAME_7F04B610 .L7F04B714: /* 080244 7F04B714 0FC243F1 */ jal get_debug_explosioninfo_flag /* 080248 7F04B718 00000000 */ nop -/* 08024C 7F04B71C 0C002914 */ jal get_random_value +/* 08024C 7F04B71C 0C002914 */ jal randomGetNext /* 080250 7F04B720 00000000 */ nop /* 080254 7F04B724 0FC243F1 */ jal get_debug_explosioninfo_flag /* 080258 7F04B728 AFA20078 */ sw $v0, 0x78($sp) @@ -21407,7 +27922,7 @@ glabel sub_GAME_7F04B610 /* 080598 7F04BA68 84480002 */ lh $t0, 2($v0) /* 08059C 7F04BA6C 03197821 */ addu $t7, $t8, $t9 /* 0805A0 7F04BA70 01E84821 */ addu $t1, $t7, $t0 -/* 0805A4 7F04BA74 0FC26DE2 */ jal sub_GAME_7F09B788 +/* 0805A4 7F04BA74 0FC26DE2 */ jal chrObjRandomSetSeed /* 0805A8 7F04BA78 012A2021 */ addu $a0, $t1, $t2 /* 0805AC 7F04BA7C 8FAB0070 */ lw $t3, 0x70($sp) /* 0805B0 7F04BA80 00008025 */ move $s0, $zero @@ -21466,7 +27981,7 @@ glabel sub_GAME_7F04B610 /* 080668 7F04BB38 10000001 */ b .L7F04BB40 /* 08066C 7F04BB3C 2410005A */ li $s0, 90 .L7F04BB40: -/* 080670 7F04BB40 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080670 7F04BB40 0FC26DD0 */ jal chrObjRandomGetNext /* 080674 7F04BB44 00000000 */ nop /* 080678 7F04BB48 24010064 */ li $at, 100 /* 08067C 7F04BB4C 0041001B */ divu $zero, $v0, $at @@ -21510,7 +28025,7 @@ glabel sub_GAME_7F04B610 /* 080708 7F04BBD8 460A8480 */ add.s $f18, $f16, $f10 /* 08070C 7F04BBDC 4600910D */ trunc.w.s $f4, $f18 /* 080710 7F04BBE0 44192000 */ mfc1 $t9, $f4 -/* 080714 7F04BBE4 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080714 7F04BBE4 0FC26DD0 */ jal chrObjRandomGetNext /* 080718 7F04BBE8 A6190002 */ sh $t9, 2($s0) /* 08071C 7F04BBEC 0054001B */ divu $zero, $v0, $s4 /* 080720 7F04BBF0 8E680000 */ lw $t0, ($s3) @@ -21523,7 +28038,7 @@ glabel sub_GAME_7F04B610 .L7F04BC0C: /* 08073C 7F04BC0C 012A5821 */ addu $t3, $t1, $t2 /* 080740 7F04BC10 256DFFD8 */ addiu $t5, $t3, -0x28 -/* 080744 7F04BC14 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080744 7F04BC14 0FC26DD0 */ jal chrObjRandomGetNext /* 080748 7F04BC18 A60D0000 */ sh $t5, ($s0) /* 08074C 7F04BC1C 0054001B */ divu $zero, $v0, $s4 /* 080750 7F04BC20 8E6C0000 */ lw $t4, ($s3) @@ -21536,7 +28051,7 @@ glabel sub_GAME_7F04B610 .L7F04BC3C: /* 08076C 7F04BC3C 01D87821 */ addu $t7, $t6, $t8 /* 080770 7F04BC40 25F9FFD8 */ addiu $t9, $t7, -0x28 -/* 080774 7F04BC44 0FC26DD0 */ jal sub_GAME_7F09B740 +/* 080774 7F04BC44 0FC26DD0 */ jal chrObjRandomGetNext /* 080778 7F04BC48 A6190002 */ sh $t9, 2($s0) /* 08077C 7F04BC4C 0054001B */ divu $zero, $v0, $s4 /* 080780 7F04BC50 8E680000 */ lw $t0, ($s3) @@ -21654,7 +28169,7 @@ glabel sub_GAME_7F04BCDC .L7F04BD54: /* 080884 7F04BD54 5200009A */ beql $s0, $zero, .L7F04BFC0 /* 080888 7F04BD58 8FBF0024 */ lw $ra, 0x24($sp) -/* 08088C 7F04BD5C 0C002914 */ jal get_random_value +/* 08088C 7F04BD5C 0C002914 */ jal randomGetNext /* 080890 7F04BD60 00000000 */ nop /* 080894 7F04BD64 44822000 */ mtc1 $v0, $f4 /* 080898 7F04BD68 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -21677,7 +28192,7 @@ glabel sub_GAME_7F04BCDC /* 0808D8 7F04BDA8 00000000 */ nop /* 0808DC 7F04BDAC 46049202 */ mul.s $f8, $f18, $f4 /* 0808E0 7F04BDB0 46064281 */ sub.s $f10, $f8, $f6 -/* 0808E4 7F04BDB4 0C002914 */ jal get_random_value +/* 0808E4 7F04BDB4 0C002914 */ jal randomGetNext /* 0808E8 7F04BDB8 E60A0004 */ swc1 $f10, 4($s0) /* 0808EC 7F04BDBC 44828000 */ mtc1 $v0, $f16 /* 0808F0 7F04BDC0 04410005 */ bgez $v0, .L7F04BDD8 @@ -21695,7 +28210,7 @@ glabel sub_GAME_7F04BCDC /* 08091C 7F04BDEC 46064002 */ mul.s $f0, $f8, $f6 /* 080920 7F04BDF0 46000280 */ add.s $f10, $f0, $f0 /* 080924 7F04BDF4 46105100 */ add.s $f4, $f10, $f16 -/* 080928 7F04BDF8 0C002914 */ jal get_random_value +/* 080928 7F04BDF8 0C002914 */ jal randomGetNext /* 08092C 7F04BDFC E6040008 */ swc1 $f4, 8($s0) /* 080930 7F04BE00 44829000 */ mtc1 $v0, $f18 /* 080934 7F04BE04 04410005 */ bgez $v0, .L7F04BE1C @@ -21716,7 +28231,7 @@ glabel sub_GAME_7F04BCDC /* 08096C 7F04BE3C 00000000 */ nop /* 080970 7F04BE40 46122182 */ mul.s $f6, $f4, $f18 /* 080974 7F04BE44 46083281 */ sub.s $f10, $f6, $f8 -/* 080978 7F04BE48 0C002914 */ jal get_random_value +/* 080978 7F04BE48 0C002914 */ jal randomGetNext /* 08097C 7F04BE4C E60A000C */ swc1 $f10, 0xc($s0) /* 080980 7F04BE50 44828000 */ mtc1 $v0, $f16 /* 080984 7F04BE54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -21737,7 +28252,7 @@ glabel sub_GAME_7F04BCDC /* 0809BC 7F04BE8C 00000000 */ nop /* 0809C0 7F04BE90 46105482 */ mul.s $f18, $f10, $f16 /* 0809C4 7F04BE94 46049181 */ sub.s $f6, $f18, $f4 -/* 0809C8 7F04BE98 0C002914 */ jal get_random_value +/* 0809C8 7F04BE98 0C002914 */ jal randomGetNext /* 0809CC 7F04BE9C E7A60038 */ swc1 $f6, 0x38($sp) /* 0809D0 7F04BEA0 44824000 */ mtc1 $v0, $f8 /* 0809D4 7F04BEA4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -21758,7 +28273,7 @@ glabel sub_GAME_7F04BCDC /* 080A0C 7F04BEDC 00000000 */ nop /* 080A10 7F04BEE0 46083402 */ mul.s $f16, $f6, $f8 /* 080A14 7F04BEE4 460A8481 */ sub.s $f18, $f16, $f10 -/* 080A18 7F04BEE8 0C002914 */ jal get_random_value +/* 080A18 7F04BEE8 0C002914 */ jal randomGetNext /* 080A1C 7F04BEEC E7B2003C */ swc1 $f18, 0x3c($sp) /* 080A20 7F04BEF0 44822000 */ mtc1 $v0, $f4 /* 080A24 7F04BEF4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22088,7 +28603,7 @@ glabel sub_GAME_7F04C130 /* 080D68 7F04C238 3C018005 */ lui $at, %hi(D_80052CF8) /* 080D6C 7F04C23C C4242CF8 */ lwc1 $f4, %lo(D_80052CF8)($at) /* 080D70 7F04C240 46040182 */ mul.s $f6, $f0, $f4 -/* 080D74 7F04C244 0C002914 */ jal get_random_value +/* 080D74 7F04C244 0C002914 */ jal randomGetNext /* 080D78 7F04C248 E6260004 */ swc1 $f6, 4($s1) /* 080D7C 7F04C24C 44824000 */ mtc1 $v0, $f8 /* 080D80 7F04C250 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22115,7 +28630,7 @@ glabel sub_GAME_7F04C130 /* 080DD0 7F04C2A0 3C018005 */ lui $at, %hi(D_80052D00) /* 080DD4 7F04C2A4 C4242D00 */ lwc1 $f4, %lo(D_80052D00)($at) /* 080DD8 7F04C2A8 46040182 */ mul.s $f6, $f0, $f4 -/* 080DDC 7F04C2AC 0C002914 */ jal get_random_value +/* 080DDC 7F04C2AC 0C002914 */ jal randomGetNext /* 080DE0 7F04C2B0 E626000C */ swc1 $f6, 0xc($s1) /* 080DE4 7F04C2B4 44824000 */ mtc1 $v0, $f8 /* 080DE8 7F04C2B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22138,7 +28653,7 @@ glabel sub_GAME_7F04C130 /* 080E28 7F04C2F8 00000000 */ nop /* 080E2C 7F04C2FC 460A4402 */ mul.s $f16, $f8, $f10 /* 080E30 7F04C300 46128101 */ sub.s $f4, $f16, $f18 -/* 080E34 7F04C304 0C002914 */ jal get_random_value +/* 080E34 7F04C304 0C002914 */ jal randomGetNext /* 080E38 7F04C308 E7A40098 */ swc1 $f4, 0x98($sp) /* 080E3C 7F04C30C 44823000 */ mtc1 $v0, $f6 /* 080E40 7F04C310 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22161,7 +28676,7 @@ glabel sub_GAME_7F04C130 /* 080E80 7F04C350 00000000 */ nop /* 080E84 7F04C354 460A3202 */ mul.s $f8, $f6, $f10 /* 080E88 7F04C358 46104481 */ sub.s $f18, $f8, $f16 -/* 080E8C 7F04C35C 0C002914 */ jal get_random_value +/* 080E8C 7F04C35C 0C002914 */ jal randomGetNext /* 080E90 7F04C360 E7B2009C */ swc1 $f18, 0x9c($sp) /* 080E94 7F04C364 44822000 */ mtc1 $v0, $f4 /* 080E98 7F04C368 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22224,7 +28739,7 @@ glabel sub_GAME_7F04C130 /* 080F70 7F04C440 3C018005 */ lui $at, %hi(D_80052D24) /* 080F74 7F04C444 C4262D24 */ lwc1 $f6, %lo(D_80052D24)($at) /* 080F78 7F04C448 46060202 */ mul.s $f8, $f0, $f6 -/* 080F7C 7F04C44C 0C002914 */ jal get_random_value +/* 080F7C 7F04C44C 0C002914 */ jal randomGetNext /* 080F80 7F04C450 E628000C */ swc1 $f8, 0xc($s1) /* 080F84 7F04C454 44828000 */ mtc1 $v0, $f16 /* 080F88 7F04C458 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22247,7 +28762,7 @@ glabel sub_GAME_7F04C130 /* 080FC8 7F04C498 00000000 */ nop /* 080FCC 7F04C49C 46048482 */ mul.s $f18, $f16, $f4 /* 080FD0 7F04C4A0 460A9181 */ sub.s $f6, $f18, $f10 -/* 080FD4 7F04C4A4 0C002914 */ jal get_random_value +/* 080FD4 7F04C4A4 0C002914 */ jal randomGetNext /* 080FD8 7F04C4A8 E7A60080 */ swc1 $f6, 0x80($sp) /* 080FDC 7F04C4AC 44824000 */ mtc1 $v0, $f8 /* 080FE0 7F04C4B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22270,7 +28785,7 @@ glabel sub_GAME_7F04C130 /* 081020 7F04C4F0 00000000 */ nop /* 081024 7F04C4F4 46044402 */ mul.s $f16, $f8, $f4 /* 081028 7F04C4F8 46128281 */ sub.s $f10, $f16, $f18 -/* 08102C 7F04C4FC 0C002914 */ jal get_random_value +/* 08102C 7F04C4FC 0C002914 */ jal randomGetNext /* 081030 7F04C500 E7AA0084 */ swc1 $f10, 0x84($sp) /* 081034 7F04C504 44823000 */ mtc1 $v0, $f6 /* 081038 7F04C508 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22323,7 +28838,7 @@ glabel sub_GAME_7F04C130 /* 0810EC 7F04C5BC 46065301 */ sub.s $f12, $f10, $f6 /* 0810F0 7F04C5C0 0FC16A8C */ jal atan2f /* 0810F4 7F04C5C4 46082381 */ sub.s $f14, $f4, $f8 -/* 0810F8 7F04C5C8 0C002914 */ jal get_random_value +/* 0810F8 7F04C5C8 0C002914 */ jal randomGetNext /* 0810FC 7F04C5CC E7A00060 */ swc1 $f0, 0x60($sp) /* 081100 7F04C5D0 AFA20050 */ sw $v0, 0x50($sp) /* 081104 7F04C5D4 0FC15FAB */ jal sinf @@ -22348,7 +28863,7 @@ glabel sub_GAME_7F04C130 /* 08114C 7F04C61C 46021400 */ add.s $f16, $f2, $f2 /* 081150 7F04C620 460A8480 */ add.s $f18, $f16, $f10 /* 081154 7F04C624 46120182 */ mul.s $f6, $f0, $f18 -/* 081158 7F04C628 0C002914 */ jal get_random_value +/* 081158 7F04C628 0C002914 */ jal randomGetNext /* 08115C 7F04C62C E6260004 */ swc1 $f6, 4($s1) /* 081160 7F04C630 44822000 */ mtc1 $v0, $f4 /* 081164 7F04C634 04410005 */ bgez $v0, .L7F04C64C @@ -22366,7 +28881,7 @@ glabel sub_GAME_7F04C130 /* 081190 7F04C660 00000000 */ nop /* 081194 7F04C664 46069002 */ mul.s $f0, $f18, $f6 /* 081198 7F04C668 46000100 */ add.s $f4, $f0, $f0 -/* 08119C 7F04C66C 0C002914 */ jal get_random_value +/* 08119C 7F04C66C 0C002914 */ jal randomGetNext /* 0811A0 7F04C670 E6240008 */ swc1 $f4, 8($s1) /* 0811A4 7F04C674 AFA20050 */ sw $v0, 0x50($sp) /* 0811A8 7F04C678 0FC15FA8 */ jal cosf @@ -22391,7 +28906,7 @@ glabel sub_GAME_7F04C130 /* 0811F0 7F04C6C0 46021400 */ add.s $f16, $f2, $f2 /* 0811F4 7F04C6C4 460A8200 */ add.s $f8, $f16, $f10 /* 0811F8 7F04C6C8 46080482 */ mul.s $f18, $f0, $f8 -/* 0811FC 7F04C6CC 0C002914 */ jal get_random_value +/* 0811FC 7F04C6CC 0C002914 */ jal randomGetNext /* 081200 7F04C6D0 E632000C */ swc1 $f18, 0xc($s1) /* 081204 7F04C6D4 44823000 */ mtc1 $v0, $f6 /* 081208 7F04C6D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22414,7 +28929,7 @@ glabel sub_GAME_7F04C130 /* 081248 7F04C718 00000000 */ nop /* 08124C 7F04C71C 46103102 */ mul.s $f4, $f6, $f16 /* 081250 7F04C720 460A2201 */ sub.s $f8, $f4, $f10 -/* 081254 7F04C724 0C002914 */ jal get_random_value +/* 081254 7F04C724 0C002914 */ jal randomGetNext /* 081258 7F04C728 E7A80070 */ swc1 $f8, 0x70($sp) /* 08125C 7F04C72C 44829000 */ mtc1 $v0, $f18 /* 081260 7F04C730 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22437,7 +28952,7 @@ glabel sub_GAME_7F04C130 /* 0812A0 7F04C770 00000000 */ nop /* 0812A4 7F04C774 46109182 */ mul.s $f6, $f18, $f16 /* 0812A8 7F04C778 46043281 */ sub.s $f10, $f6, $f4 -/* 0812AC 7F04C77C 0C002914 */ jal get_random_value +/* 0812AC 7F04C77C 0C002914 */ jal randomGetNext /* 0812B0 7F04C780 E7AA0074 */ swc1 $f10, 0x74($sp) /* 0812B4 7F04C784 44824000 */ mtc1 $v0, $f8 /* 0812B8 7F04C788 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22708,7 +29223,7 @@ glabel sub_GAME_7F04CA44 .L7F04CAE4: /* 081614 7F04CAE4 52200082 */ beql $s1, $zero, .L7F04CCF0 /* 081618 7F04CAE8 8FBF0024 */ lw $ra, 0x24($sp) -/* 08161C 7F04CAEC 0C002914 */ jal get_random_value +/* 08161C 7F04CAEC 0C002914 */ jal randomGetNext /* 081620 7F04CAF0 00000000 */ nop /* 081624 7F04CAF4 44822000 */ mtc1 $v0, $f4 /* 081628 7F04CAF8 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -22727,7 +29242,7 @@ glabel sub_GAME_7F04CA44 /* 081658 7F04CB28 C4242D70 */ lwc1 $f4, %lo(D_80052D70)($at) /* 08165C 7F04CB2C 46105482 */ mul.s $f18, $f10, $f16 /* 081660 7F04CB30 46049201 */ sub.s $f8, $f18, $f4 -/* 081664 7F04CB34 0C002914 */ jal get_random_value +/* 081664 7F04CB34 0C002914 */ jal randomGetNext /* 081668 7F04CB38 E6280004 */ swc1 $f8, 4($s1) /* 08166C 7F04CB3C 44823000 */ mtc1 $v0, $f6 /* 081670 7F04CB40 3C018005 */ lui $at, %hi(D_80052D74) @@ -22744,7 +29259,7 @@ glabel sub_GAME_7F04CA44 /* 081698 7F04CB68 46029002 */ mul.s $f0, $f18, $f2 /* 08169C 7F04CB6C 46000100 */ add.s $f4, $f0, $f0 /* 0816A0 7F04CB70 46022200 */ add.s $f8, $f4, $f2 -/* 0816A4 7F04CB74 0C002914 */ jal get_random_value +/* 0816A4 7F04CB74 0C002914 */ jal randomGetNext /* 0816A8 7F04CB78 E6280008 */ swc1 $f8, 8($s1) /* 0816AC 7F04CB7C 44823000 */ mtc1 $v0, $f6 /* 0816B0 7F04CB80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22766,7 +29281,7 @@ glabel sub_GAME_7F04CA44 /* 0816EC 7F04CBBC 316C0200 */ andi $t4, $t3, 0x200 /* 0816F0 7F04CBC0 5580003C */ bnezl $t4, .L7F04CCB4 /* 0816F4 7F04CBC4 27A40034 */ addiu $a0, $sp, 0x34 -/* 0816F8 7F04CBC8 0C002914 */ jal get_random_value +/* 0816F8 7F04CBC8 0C002914 */ jal randomGetNext /* 0816FC 7F04CBCC 00000000 */ nop /* 081700 7F04CBD0 44828000 */ mtc1 $v0, $f16 /* 081704 7F04CBD4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22786,7 +29301,7 @@ glabel sub_GAME_7F04CA44 /* 081738 7F04CC08 46064282 */ mul.s $f10, $f8, $f6 /* 08173C 7F04CC0C 46105103 */ div.s $f4, $f10, $f16 /* 081740 7F04CC10 46122201 */ sub.s $f8, $f4, $f18 -/* 081744 7F04CC14 0C002914 */ jal get_random_value +/* 081744 7F04CC14 0C002914 */ jal randomGetNext /* 081748 7F04CC18 E7A80034 */ swc1 $f8, 0x34($sp) /* 08174C 7F04CC1C 44823000 */ mtc1 $v0, $f6 /* 081750 7F04CC20 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -22806,7 +29321,7 @@ glabel sub_GAME_7F04CA44 /* 081784 7F04CC54 46122202 */ mul.s $f8, $f4, $f18 /* 081788 7F04CC58 46064403 */ div.s $f16, $f8, $f6 /* 08178C 7F04CC5C 460A8101 */ sub.s $f4, $f16, $f10 -/* 081790 7F04CC60 0C002914 */ jal get_random_value +/* 081790 7F04CC60 0C002914 */ jal randomGetNext /* 081794 7F04CC64 E7A40038 */ swc1 $f4, 0x38($sp) /* 081798 7F04CC68 44829000 */ mtc1 $v0, $f18 /* 08179C 7F04CC6C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -23071,7 +29586,7 @@ glabel object_explosion_related /* 081AEC 7F04CFBC 30588000 */ andi $t8, $v0, 0x8000 /* 081AF0 7F04CFC0 5300000A */ beql $t8, $zero, .L7F04CFEC /* 081AF4 7F04CFC4 3C010001 */ lui $at, 1 -/* 081AF8 7F04CFC8 0C002914 */ jal get_random_value +/* 081AF8 7F04CFC8 0C002914 */ jal randomGetNext /* 081AFC 7F04CFCC 00000000 */ nop /* 081B00 7F04CFD0 24010003 */ li $at, 3 /* 081B04 7F04CFD4 0041001B */ divu $zero, $v0, $at @@ -24730,7 +31245,7 @@ glabel maybe_detonate_object /* 082EEC 7F04E3BC 24010001 */ li $at, 1 /* 082EF0 7F04E3C0 54410060 */ bnel $v0, $at, .L7F04E544 /* 082EF4 7F04E3C4 92020003 */ lbu $v0, 3($s0) -/* 082EF8 7F04E3C8 0C002914 */ jal get_random_value +/* 082EF8 7F04E3C8 0C002914 */ jal randomGetNext /* 082EFC 7F04E3CC 00000000 */ nop /* 082F00 7F04E3D0 2401000D */ li $at, 13 /* 082F04 7F04E3D4 0041001B */ divu $zero, $v0, $at @@ -25358,7 +31873,7 @@ glabel sub_GAME_7F04EA68 /* 083768 7F04EC38 24030001 */ li $v1, 1 /* 08376C 7F04EC3C A3A30057 */ sb $v1, 0x57($sp) .L7F04EC40: -/* 083770 7F04EC40 0C002914 */ jal get_random_value +/* 083770 7F04EC40 0C002914 */ jal randomGetNext /* 083774 7F04EC44 AFA80058 */ sw $t0, 0x58($sp) /* 083778 7F04EC48 24010003 */ li $at, 3 /* 08377C 7F04EC4C 0041001B */ divu $zero, $v0, $at @@ -25398,7 +31913,7 @@ glabel sub_GAME_7F04EA68 /* 0837FC 7F04ECCC 8D08E86C */ lw $t0, %lo(D_8004E86C)($t0) .L7F04ECD0: /* 083800 7F04ECD0 AFA80050 */ sw $t0, 0x50($sp) -/* 083804 7F04ECD4 0C002914 */ jal get_random_value +/* 083804 7F04ECD4 0C002914 */ jal randomGetNext /* 083808 7F04ECD8 A3A9004B */ sb $t1, 0x4b($sp) /* 08380C 7F04ECDC 8FA80050 */ lw $t0, 0x50($sp) /* 083810 7F04ECE0 8E2E0014 */ lw $t6, 0x14($s1) @@ -25447,7 +31962,7 @@ glabel sub_GAME_7F04EA68 /* 0838AC 7F04ED7C 8FAE0070 */ lw $t6, 0x70($sp) /* 0838B0 7F04ED80 8DC40018 */ lw $a0, 0x18($t6) .L7F04ED84: -/* 0838B4 7F04ED84 0FC177E1 */ jal bondwalkGetItemDestructionAmount +/* 0838B4 7F04ED84 0FC177E1 */ jal bondwalkItemGetDestructionAmount /* 0838B8 7F04ED88 00000000 */ nop /* 0838BC 7F04ED8C 92220003 */ lbu $v0, 3($s1) /* 0838C0 7F04ED90 2401000D */ li $at, 13 @@ -25787,12 +32302,12 @@ glabel sub_GAME_7F04F170 /* 083CB4 7F04F184 AFA00020 */ sw $zero, 0x20($sp) /* 083CB8 7F04F188 24010005 */ li $at, 5 /* 083CBC 7F04F18C 920F0003 */ lbu $t7, 3($s0) -/* 083CC0 7F04F190 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 083CC0 7F04F190 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 083CC4 7F04F194 240500BA */ li $a1, 186 /* 083CC8 7F04F198 15E1000D */ bne $t7, $at, .L7F04F1D0 /* 083CCC 7F04F19C 00003025 */ move $a2, $zero /* 083CD0 7F04F1A0 0C002382 */ jal play_sfx_a1 -/* 083CD4 7F04F1A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 083CD4 7F04F1A4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 083CD8 7F04F1A8 0FC15794 */ jal is_alarm_on /* 083CDC 7F04F1AC 00000000 */ nop /* 083CE0 7F04F1B0 10400005 */ beqz $v0, .L7F04F1C8 @@ -25910,8 +32425,8 @@ void append_text_picked_up(u8 *buffer,u8 * param2,u8 * param3) { u8 *puVar1; - puVar1 = get_textptr_for_textID(0xa400); - string_append_from_obseg_textbank(buffer,puVar1); + puVar1 = get_textptr_for_textID(TEXT(LPROPOBJ, 0x00)); //Picked up + strcat(buffer,puVar1); return; } @@ -25929,8 +32444,8 @@ void append_text_ammo_amount_word(u8 *buffer,AMMOTYPES ammotype,u32 amount) case AMMO_9MM_2: case AMMO_RIFLE: case AMMO_PLASTIQUE: - textfiletext = get_textptr_for_textID(0xa401); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x01)); //some + strcat(buffer,textfiletext); break; case AMMO_SHOTGUN: case AMMO_GRENADE: @@ -25949,34 +32464,34 @@ void append_text_ammo_amount_word(u8 *buffer,AMMOTYPES ammotype,u32 amount) case AMMO_BUG: case AMMO_MICRO_CAMERA: if (amount == 1) { - textfiletext = get_textptr_for_textID(0xa402); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x02)); //a + strcat(buffer,textfiletext); } else { - textfiletext = get_textptr_for_textID(0xa401); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x01)); //some + strcat(buffer,textfiletext); } break; case AMMO_EXPLOSIVEPEN: case AMMO_BOMBCASE: if (amount == 1) { - textfiletext = get_textptr_for_textID(0xa403); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x03)); //an + strcat(buffer,textfiletext); } else { - textfiletext = get_textptr_for_textID(0xa401); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x01)); //some + strcat(buffer,textfiletext); } break; case AMMO_GEKEY: case AMMO_TOKEN: if (amount == 1) { - textfiletext = get_textptr_for_textID(0xa404); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x04)); //the + strcat(buffer,textfiletext); } else { - textfiletext = get_textptr_for_textID(0xa401); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x01)); //some + strcat(buffer,textfiletext); } } return; @@ -25994,116 +32509,116 @@ void apped_text_ammotype(u8 *buffer,AMMOTYPES ammotype,u32 amount) u8 *textfiletext; if (((ammotype == AMMO_9MM) || (ammotype == AMMO_9MM_2)) || (ammotype == AMMO_RIFLE)) { - textfiletext = get_textptr_for_textID(0xa405); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x05)); //ammo + strcat(buffer,textfiletext); } else { if (ammotype == AMMO_KNIFE) { - textfiletext = get_textptr_for_textID(41999); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0F)); //throwing + strcat(buffer,textfiletext); if (amount == 1) { - textfiletext = get_textptr_for_textID(42000); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x10)); //knife + strcat(buffer,textfiletext); } else { - textfiletext = get_textptr_for_textID(0xa411); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x11)); //knives + strcat(buffer,textfiletext); } } else { if (ammotype == AMMO_DYNAMITE) { if (amount == 1) { - textfiletext = get_textptr_for_textID(0xa419); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x19)); //stick + strcat(buffer,textfiletext); } else { - textfiletext = get_textptr_for_textID(0xa41a); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1A)); //sticks + strcat(buffer,textfiletext); } - textfiletext = get_textptr_for_textID(0xa418); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x18)); //of dynamite + strcat(buffer,textfiletext); } else { switch(ammotype) { case AMMO_SHOTGUN: - textfiletext = get_textptr_for_textID(0xa406); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x06)); //shotgun cartridge + strcat(buffer,textfiletext); break; case AMMO_GRENADE: - textfiletext = get_textptr_for_textID(0xa409); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x09)); //hand grenade + strcat(buffer,textfiletext); break; case AMMO_ROCKETS: - textfiletext = get_textptr_for_textID(0xa40b); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0B)); //rocket + strcat(buffer,textfiletext); break; case AMMO_REMOTEMINE: - textfiletext = get_textptr_for_textID(0xa40c); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0C)); //remote mine + strcat(buffer,textfiletext); break; case AMMO_PROXMINE: - textfiletext = get_textptr_for_textID(0xa40d); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0D)); //proximity mine + strcat(buffer,textfiletext); break; case AMMO_TIMEDMINE: - textfiletext = get_textptr_for_textID(0xa40e); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0E)); //timed mine + strcat(buffer,textfiletext); break; case AMMO_GRENADEROUND: - textfiletext = get_textptr_for_textID(0xa40a); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x0A)); //grenade round + strcat(buffer,textfiletext); break; case AMMO_MAGNUM: - textfiletext = get_textptr_for_textID(0xa407); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x07)); //magnum bullet + strcat(buffer,textfiletext); break; case AMMO_GGUN: - textfiletext = get_textptr_for_textID(0xa408); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x08)); //golden bullet + strcat(buffer,textfiletext); break; case AMMO_DARTS: - textfiletext = get_textptr_for_textID(0xa413); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x13)); //dart + strcat(buffer,textfiletext); break; case AMMO_EXPLOSIVEPEN: - textfiletext = get_textptr_for_textID(0xa414); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x14)); //explosive pen + strcat(buffer,textfiletext); break; case AMMO_BOMBCASE: - textfiletext = get_textptr_for_textID(0xa415); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x15)); //explosive case + strcat(buffer,textfiletext); break; case AMMO_FLARE: - textfiletext = get_textptr_for_textID(0xa416); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x16)); //flare + strcat(buffer,textfiletext); break; case AMMO_PITON: - textfiletext = get_textptr_for_textID(0xa417); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x17)); //piton + strcat(buffer,textfiletext); break; case AMMO_BUG: - textfiletext = get_textptr_for_textID(0xa41b); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1b)); //bug + strcat(buffer,textfiletext); break; case AMMO_MICRO_CAMERA: - textfiletext = get_textptr_for_textID(0xa41c); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1c)); //micro camera + strcat(buffer,textfiletext); break; case AMMO_GEKEY: - textfiletext = get_textptr_for_textID(0xa41d); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1d)); //GoldenEye key + strcat(buffer,textfiletext); break; case AMMO_PLASTIQUE: - textfiletext = get_textptr_for_textID(0xa41f); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1f)); //plastique + strcat(buffer,textfiletext); break; case AMMO_TOKEN: - textfiletext = get_textptr_for_textID(0xa41e); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x1e)); //token + strcat(buffer,textfiletext); } if (1 < (int)amount) { - textfiletext = get_textptr_for_textID(0xa412); - string_append_from_obseg_textbank(buffer,textfiletext); + textfiletext = get_textptr_for_textID(TEXT(LPROPOBJ, 0x12)); //s + strcat(buffer,textfiletext); } } } @@ -26162,7 +32677,7 @@ glabel apped_text_ammotype /* 083F6C 7F04F43C 0FC30776 */ jal get_textptr_for_textID /* 083F70 7F04F440 3404A405 */ li $a0, 41989 /* 083F74 7F04F444 02002025 */ move $a0, $s0 -/* 083F78 7F04F448 0C0029FF */ jal string_append_from_obseg_textbank +/* 083F78 7F04F448 0C0029FF */ jal strcat /* 083F7C 7F04F44C 00402825 */ move $a1, $v0 /* 083F80 7F04F450 100000C9 */ b .L7F04F778 /* 083F84 7F04F454 8FBF001C */ lw $ra, 0x1c($sp) @@ -26173,7 +32688,7 @@ glabel apped_text_ammotype /* 083F94 7F04F464 0FC30776 */ jal get_textptr_for_textID /* 083F98 7F04F468 3404A40F */ li $a0, 41999 /* 083F9C 7F04F46C 02002025 */ move $a0, $s0 -/* 083FA0 7F04F470 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FA0 7F04F470 0C0029FF */ jal strcat /* 083FA4 7F04F474 00402825 */ move $a1, $v0 /* 083FA8 7F04F478 8FAE0028 */ lw $t6, 0x28($sp) /* 083FAC 7F04F47C 24010001 */ li $at, 1 @@ -26182,7 +32697,7 @@ glabel apped_text_ammotype /* 083FB8 7F04F488 0FC30776 */ jal get_textptr_for_textID /* 083FBC 7F04F48C 3404A410 */ li $a0, 42000 /* 083FC0 7F04F490 02002025 */ move $a0, $s0 -/* 083FC4 7F04F494 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FC4 7F04F494 0C0029FF */ jal strcat /* 083FC8 7F04F498 00402825 */ move $a1, $v0 /* 083FCC 7F04F49C 100000B6 */ b .L7F04F778 /* 083FD0 7F04F4A0 8FBF001C */ lw $ra, 0x1c($sp) @@ -26190,7 +32705,7 @@ glabel apped_text_ammotype /* 083FD4 7F04F4A4 0FC30776 */ jal get_textptr_for_textID /* 083FD8 7F04F4A8 3404A411 */ li $a0, 42001 /* 083FDC 7F04F4AC 02002025 */ move $a0, $s0 -/* 083FE0 7F04F4B0 0C0029FF */ jal string_append_from_obseg_textbank +/* 083FE0 7F04F4B0 0C0029FF */ jal strcat /* 083FE4 7F04F4B4 00402825 */ move $a1, $v0 /* 083FE8 7F04F4B8 100000AF */ b .L7F04F778 /* 083FEC 7F04F4BC 8FBF001C */ lw $ra, 0x1c($sp) @@ -26204,7 +32719,7 @@ glabel apped_text_ammotype /* 084008 7F04F4D8 0FC30776 */ jal get_textptr_for_textID /* 08400C 7F04F4DC 3404A419 */ li $a0, 42009 /* 084010 7F04F4E0 02002025 */ move $a0, $s0 -/* 084014 7F04F4E4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084014 7F04F4E4 0C0029FF */ jal strcat /* 084018 7F04F4E8 00402825 */ move $a1, $v0 /* 08401C 7F04F4EC 10000006 */ b .L7F04F508 /* 084020 7F04F4F0 00000000 */ nop @@ -26212,13 +32727,13 @@ glabel apped_text_ammotype /* 084024 7F04F4F4 0FC30776 */ jal get_textptr_for_textID /* 084028 7F04F4F8 3404A41A */ li $a0, 42010 /* 08402C 7F04F4FC 02002025 */ move $a0, $s0 -/* 084030 7F04F500 0C0029FF */ jal string_append_from_obseg_textbank +/* 084030 7F04F500 0C0029FF */ jal strcat /* 084034 7F04F504 00402825 */ move $a1, $v0 .L7F04F508: /* 084038 7F04F508 0FC30776 */ jal get_textptr_for_textID /* 08403C 7F04F50C 3404A418 */ li $a0, 42008 /* 084040 7F04F510 02002025 */ move $a0, $s0 -/* 084044 7F04F514 0C0029FF */ jal string_append_from_obseg_textbank +/* 084044 7F04F514 0C0029FF */ jal strcat /* 084048 7F04F518 00402825 */ move $a1, $v0 /* 08404C 7F04F51C 10000096 */ b .L7F04F778 /* 084050 7F04F520 8FBF001C */ lw $ra, 0x1c($sp) @@ -26235,7 +32750,7 @@ text_pickup_shotgun_cartridge: /* 084074 7F04F544 0FC30776 */ jal get_textptr_for_textID /* 084078 7F04F548 3404A406 */ li $a0, 41990 /* 08407C 7F04F54C 02002025 */ move $a0, $s0 -/* 084080 7F04F550 0C0029FF */ jal string_append_from_obseg_textbank +/* 084080 7F04F550 0C0029FF */ jal strcat /* 084084 7F04F554 00402825 */ move $a1, $v0 /* 084088 7F04F558 1000007E */ b .L7F04F754 /* 08408C 7F04F55C 8FB90028 */ lw $t9, 0x28($sp) @@ -26243,7 +32758,7 @@ text_pickup_magnum_bullet: /* 084090 7F04F560 0FC30776 */ jal get_textptr_for_textID /* 084094 7F04F564 3404A407 */ li $a0, 41991 /* 084098 7F04F568 02002025 */ move $a0, $s0 -/* 08409C 7F04F56C 0C0029FF */ jal string_append_from_obseg_textbank +/* 08409C 7F04F56C 0C0029FF */ jal strcat /* 0840A0 7F04F570 00402825 */ move $a1, $v0 /* 0840A4 7F04F574 10000077 */ b .L7F04F754 /* 0840A8 7F04F578 8FB90028 */ lw $t9, 0x28($sp) @@ -26251,7 +32766,7 @@ text_pickup_golden_bullet: /* 0840AC 7F04F57C 0FC30776 */ jal get_textptr_for_textID /* 0840B0 7F04F580 3404A408 */ li $a0, 41992 /* 0840B4 7F04F584 02002025 */ move $a0, $s0 -/* 0840B8 7F04F588 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840B8 7F04F588 0C0029FF */ jal strcat /* 0840BC 7F04F58C 00402825 */ move $a1, $v0 /* 0840C0 7F04F590 10000070 */ b .L7F04F754 /* 0840C4 7F04F594 8FB90028 */ lw $t9, 0x28($sp) @@ -26259,7 +32774,7 @@ text_pickup_hand_grenade: /* 0840C8 7F04F598 0FC30776 */ jal get_textptr_for_textID /* 0840CC 7F04F59C 3404A409 */ li $a0, 41993 /* 0840D0 7F04F5A0 02002025 */ move $a0, $s0 -/* 0840D4 7F04F5A4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840D4 7F04F5A4 0C0029FF */ jal strcat /* 0840D8 7F04F5A8 00402825 */ move $a1, $v0 /* 0840DC 7F04F5AC 10000069 */ b .L7F04F754 /* 0840E0 7F04F5B0 8FB90028 */ lw $t9, 0x28($sp) @@ -26267,7 +32782,7 @@ text_pickup_grenade_round: /* 0840E4 7F04F5B4 0FC30776 */ jal get_textptr_for_textID /* 0840E8 7F04F5B8 3404A40A */ li $a0, 41994 /* 0840EC 7F04F5BC 02002025 */ move $a0, $s0 -/* 0840F0 7F04F5C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0840F0 7F04F5C0 0C0029FF */ jal strcat /* 0840F4 7F04F5C4 00402825 */ move $a1, $v0 /* 0840F8 7F04F5C8 10000062 */ b .L7F04F754 /* 0840FC 7F04F5CC 8FB90028 */ lw $t9, 0x28($sp) @@ -26275,7 +32790,7 @@ text_pickup_rocket: /* 084100 7F04F5D0 0FC30776 */ jal get_textptr_for_textID /* 084104 7F04F5D4 3404A40B */ li $a0, 41995 /* 084108 7F04F5D8 02002025 */ move $a0, $s0 -/* 08410C 7F04F5DC 0C0029FF */ jal string_append_from_obseg_textbank +/* 08410C 7F04F5DC 0C0029FF */ jal strcat /* 084110 7F04F5E0 00402825 */ move $a1, $v0 /* 084114 7F04F5E4 1000005B */ b .L7F04F754 /* 084118 7F04F5E8 8FB90028 */ lw $t9, 0x28($sp) @@ -26283,7 +32798,7 @@ text_pickup_remote_mine: /* 08411C 7F04F5EC 0FC30776 */ jal get_textptr_for_textID /* 084120 7F04F5F0 3404A40C */ li $a0, 41996 /* 084124 7F04F5F4 02002025 */ move $a0, $s0 -/* 084128 7F04F5F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084128 7F04F5F8 0C0029FF */ jal strcat /* 08412C 7F04F5FC 00402825 */ move $a1, $v0 /* 084130 7F04F600 10000054 */ b .L7F04F754 /* 084134 7F04F604 8FB90028 */ lw $t9, 0x28($sp) @@ -26291,7 +32806,7 @@ text_pickup_proximity_mine: /* 084138 7F04F608 0FC30776 */ jal get_textptr_for_textID /* 08413C 7F04F60C 3404A40D */ li $a0, 41997 /* 084140 7F04F610 02002025 */ move $a0, $s0 -/* 084144 7F04F614 0C0029FF */ jal string_append_from_obseg_textbank +/* 084144 7F04F614 0C0029FF */ jal strcat /* 084148 7F04F618 00402825 */ move $a1, $v0 /* 08414C 7F04F61C 1000004D */ b .L7F04F754 /* 084150 7F04F620 8FB90028 */ lw $t9, 0x28($sp) @@ -26299,7 +32814,7 @@ text_pickup_timed_mine: /* 084154 7F04F624 0FC30776 */ jal get_textptr_for_textID /* 084158 7F04F628 3404A40E */ li $a0, 41998 /* 08415C 7F04F62C 02002025 */ move $a0, $s0 -/* 084160 7F04F630 0C0029FF */ jal string_append_from_obseg_textbank +/* 084160 7F04F630 0C0029FF */ jal strcat /* 084164 7F04F634 00402825 */ move $a1, $v0 /* 084168 7F04F638 10000046 */ b .L7F04F754 /* 08416C 7F04F63C 8FB90028 */ lw $t9, 0x28($sp) @@ -26307,7 +32822,7 @@ text_pickup_dart: /* 084170 7F04F640 0FC30776 */ jal get_textptr_for_textID /* 084174 7F04F644 3404A413 */ li $a0, 42003 /* 084178 7F04F648 02002025 */ move $a0, $s0 -/* 08417C 7F04F64C 0C0029FF */ jal string_append_from_obseg_textbank +/* 08417C 7F04F64C 0C0029FF */ jal strcat /* 084180 7F04F650 00402825 */ move $a1, $v0 /* 084184 7F04F654 1000003F */ b .L7F04F754 /* 084188 7F04F658 8FB90028 */ lw $t9, 0x28($sp) @@ -26315,7 +32830,7 @@ text_pickup_explosive_pen: /* 08418C 7F04F65C 0FC30776 */ jal get_textptr_for_textID /* 084190 7F04F660 3404A414 */ li $a0, 42004 /* 084194 7F04F664 02002025 */ move $a0, $s0 -/* 084198 7F04F668 0C0029FF */ jal string_append_from_obseg_textbank +/* 084198 7F04F668 0C0029FF */ jal strcat /* 08419C 7F04F66C 00402825 */ move $a1, $v0 /* 0841A0 7F04F670 10000038 */ b .L7F04F754 /* 0841A4 7F04F674 8FB90028 */ lw $t9, 0x28($sp) @@ -26323,7 +32838,7 @@ text_pickup_explosive_case: /* 0841A8 7F04F678 0FC30776 */ jal get_textptr_for_textID /* 0841AC 7F04F67C 3404A415 */ li $a0, 42005 /* 0841B0 7F04F680 02002025 */ move $a0, $s0 -/* 0841B4 7F04F684 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841B4 7F04F684 0C0029FF */ jal strcat /* 0841B8 7F04F688 00402825 */ move $a1, $v0 /* 0841BC 7F04F68C 10000031 */ b .L7F04F754 /* 0841C0 7F04F690 8FB90028 */ lw $t9, 0x28($sp) @@ -26331,7 +32846,7 @@ text_pickup_flare: /* 0841C4 7F04F694 0FC30776 */ jal get_textptr_for_textID /* 0841C8 7F04F698 3404A416 */ li $a0, 42006 /* 0841CC 7F04F69C 02002025 */ move $a0, $s0 -/* 0841D0 7F04F6A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841D0 7F04F6A0 0C0029FF */ jal strcat /* 0841D4 7F04F6A4 00402825 */ move $a1, $v0 /* 0841D8 7F04F6A8 1000002A */ b .L7F04F754 /* 0841DC 7F04F6AC 8FB90028 */ lw $t9, 0x28($sp) @@ -26339,7 +32854,7 @@ text_pickup_piton: /* 0841E0 7F04F6B0 0FC30776 */ jal get_textptr_for_textID /* 0841E4 7F04F6B4 3404A417 */ li $a0, 42007 /* 0841E8 7F04F6B8 02002025 */ move $a0, $s0 -/* 0841EC 7F04F6BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 0841EC 7F04F6BC 0C0029FF */ jal strcat /* 0841F0 7F04F6C0 00402825 */ move $a1, $v0 /* 0841F4 7F04F6C4 10000023 */ b .L7F04F754 /* 0841F8 7F04F6C8 8FB90028 */ lw $t9, 0x28($sp) @@ -26347,7 +32862,7 @@ text_pickup_bug: /* 0841FC 7F04F6CC 0FC30776 */ jal get_textptr_for_textID /* 084200 7F04F6D0 3404A41B */ li $a0, 42011 /* 084204 7F04F6D4 02002025 */ move $a0, $s0 -/* 084208 7F04F6D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084208 7F04F6D8 0C0029FF */ jal strcat /* 08420C 7F04F6DC 00402825 */ move $a1, $v0 /* 084210 7F04F6E0 1000001C */ b .L7F04F754 /* 084214 7F04F6E4 8FB90028 */ lw $t9, 0x28($sp) @@ -26355,7 +32870,7 @@ text_pickup_micro_camera: /* 084218 7F04F6E8 0FC30776 */ jal get_textptr_for_textID /* 08421C 7F04F6EC 3404A41C */ li $a0, 42012 /* 084220 7F04F6F0 02002025 */ move $a0, $s0 -/* 084224 7F04F6F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084224 7F04F6F4 0C0029FF */ jal strcat /* 084228 7F04F6F8 00402825 */ move $a1, $v0 /* 08422C 7F04F6FC 10000015 */ b .L7F04F754 /* 084230 7F04F700 8FB90028 */ lw $t9, 0x28($sp) @@ -26363,7 +32878,7 @@ text_pickup_goldeneye_key: /* 084234 7F04F704 0FC30776 */ jal get_textptr_for_textID /* 084238 7F04F708 3404A41D */ li $a0, 42013 /* 08423C 7F04F70C 02002025 */ move $a0, $s0 -/* 084240 7F04F710 0C0029FF */ jal string_append_from_obseg_textbank +/* 084240 7F04F710 0C0029FF */ jal strcat /* 084244 7F04F714 00402825 */ move $a1, $v0 /* 084248 7F04F718 1000000E */ b .L7F04F754 /* 08424C 7F04F71C 8FB90028 */ lw $t9, 0x28($sp) @@ -26371,7 +32886,7 @@ text_pickup_token: /* 084250 7F04F720 0FC30776 */ jal get_textptr_for_textID /* 084254 7F04F724 3404A41E */ li $a0, 42014 /* 084258 7F04F728 02002025 */ move $a0, $s0 -/* 08425C 7F04F72C 0C0029FF */ jal string_append_from_obseg_textbank +/* 08425C 7F04F72C 0C0029FF */ jal strcat /* 084260 7F04F730 00402825 */ move $a1, $v0 /* 084264 7F04F734 10000007 */ b .L7F04F754 /* 084268 7F04F738 8FB90028 */ lw $t9, 0x28($sp) @@ -26379,7 +32894,7 @@ text_pickup_plastique: /* 08426C 7F04F73C 0FC30776 */ jal get_textptr_for_textID /* 084270 7F04F740 3404A41F */ li $a0, 42015 /* 084274 7F04F744 02002025 */ move $a0, $s0 -/* 084278 7F04F748 0C0029FF */ jal string_append_from_obseg_textbank +/* 084278 7F04F748 0C0029FF */ jal strcat /* 08427C 7F04F74C 00402825 */ move $a1, $v0 pluralize_multiples: .L7F04F750: @@ -26391,7 +32906,7 @@ pluralize_multiples: /* 084290 7F04F760 0FC30776 */ jal get_textptr_for_textID /* 084294 7F04F764 3404A412 */ li $a0, 42002 /* 084298 7F04F768 02002025 */ move $a0, $s0 -/* 08429C 7F04F76C 0C0029FF */ jal string_append_from_obseg_textbank +/* 08429C 7F04F76C 0C0029FF */ jal strcat /* 0842A0 7F04F770 00402825 */ move $a1, $v0 /* 0842A4 7F04F774 8FBF001C */ lw $ra, 0x1c($sp) .L7F04F778: @@ -26427,7 +32942,7 @@ void set_sound_effect_for_ammo_collection(AMMOTYPES ammotype) case AMMO_DYNAMITE: case AMMO_GEKEY: case AMMO_TOKEN: - play_sfx_a1(ptr_sfx_buf,0xea,0); + play_sfx_a1(g_musicSfxBufferPtr,0xea,0); break; case AMMO_REMOTEMINE: case AMMO_PROXMINE: @@ -26436,10 +32951,10 @@ void set_sound_effect_for_ammo_collection(AMMOTYPES ammotype) case AMMO_BUG: case AMMO_MICRO_CAMERA: case AMMO_PLASTIQUE: - play_sfx_a1(ptr_sfx_buf,0xeb,0); + play_sfx_a1(g_musicSfxBufferPtr,0xeb,0); break; case AMMO_KNIFE: - play_sfx_a1(ptr_sfx_buf,0xe9,0); + play_sfx_a1(g_musicSfxBufferPtr,0xe9,0); } return; } @@ -26452,26 +32967,26 @@ void set_sound_effect_for_ammo_collection(AMMOTYPES ammotype) void set_sound_effect_for_weapontype_collection(ITEM_IDS weapontype) { if ((weapontype == ITEM_KNIFE) || (weapontype == ITEM_THROWKNIFE)) { - play_sfx_a1(ptr_sfx_buf,0xe9,0); + play_sfx_a1(g_musicSfxBufferPtr,0xe9,0); } else { if (((((weapontype == ITEM_REMOTEMINE) || (weapontype == ITEM_PROXIMITYMINE)) || (weapontype == ITEM_TIMEDMINE)) || ((weapontype == ITEM_BOMBCASE || (weapontype == ITEM_BUG)))) || ((weapontype == ITEM_MICROCAMERA || (weapontype == ITEM_PLASTIQUE)))) { - play_sfx_a1(ptr_sfx_buf,0xeb,0); + play_sfx_a1(g_musicSfxBufferPtr,0xeb,0); } else { if (((weapontype == ITEM_GRENADE) || (weapontype == ITEM_57)) || (weapontype == ITEM_56) ) { - play_sfx_a1(ptr_sfx_buf,0xea,0); + play_sfx_a1(g_musicSfxBufferPtr,0xea,0); } else { if (weapontype == ITEM_LASER) { - play_sfx_a1(ptr_sfx_buf,0xf2,0); + play_sfx_a1(g_musicSfxBufferPtr,0xf2,0); } else { - play_sfx_a1(ptr_sfx_buf,0xe8,0); + play_sfx_a1(g_musicSfxBufferPtr,0xe8,0); } } } @@ -26496,7 +33011,7 @@ void prepare_ammo_type_collection_text(u8 *finaltext, AMMOTYPES ammotype, u32 qu { append_text_picked_up(finaltext, ammotype, quantity); } - string_append_from_obseg_textbank(finaltext, (char *)D_800529D0); + strcat(finaltext, (char *)D_800529D0); return; } if (getPlayerCount() < 3) @@ -26505,7 +33020,7 @@ void prepare_ammo_type_collection_text(u8 *finaltext, AMMOTYPES ammotype, u32 qu append_text_ammo_amount_word(finaltext, ammotype, quantity); } apped_text_ammotype(finaltext, ammotype, quantity); - string_append_from_obseg_textbank(finaltext, (char *)D_800529D4); + strcat(finaltext, (char *)D_800529D4); } #else GLOBAL_ASM( @@ -26538,7 +33053,7 @@ glabel prepare_ammo_type_collection_text .L7F04F978: /* 0844A8 7F04F978 3C058005 */ lui $a1, %hi(D_800529D0) /* 0844AC 7F04F97C 24A529D0 */ addiu $a1, %lo(D_800529D0) # addiu $a1, $a1, 0x29d0 -/* 0844B0 7F04F980 0C0029FF */ jal string_append_from_obseg_textbank +/* 0844B0 7F04F980 0C0029FF */ jal strcat /* 0844B4 7F04F984 02002025 */ move $a0, $s0 /* 0844B8 7F04F988 10000016 */ b .L7F04F9E4 /* 0844BC 7F04F98C 8FBF0024 */ lw $ra, 0x24($sp) @@ -26562,7 +33077,7 @@ glabel prepare_ammo_type_collection_text /* 0844FC 7F04F9CC 02403025 */ move $a2, $s2 /* 084500 7F04F9D0 3C058005 */ lui $a1, %hi(D_800529D4) /* 084504 7F04F9D4 24A529D4 */ addiu $a1, %lo(D_800529D4) # addiu $a1, $a1, 0x29d4 -/* 084508 7F04F9D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084508 7F04F9D8 0C0029FF */ jal strcat /* 08450C 7F04F9DC 02002025 */ move $a0, $s0 /* 084510 7F04F9E0 8FBF0024 */ lw $ra, 0x24($sp) .L7F04F9E4: @@ -26659,6 +33174,47 @@ glabel display_text_when_ammo_collected /* 084594 7F04FA64 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata + + +.text +glabel display_text_when_ammo_collected +/* 084528 7F04F9F8 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 08452C 7F04F9FC AFA40080 */ sw $a0, 0x80($sp) +/* 084530 7F04FA00 3C0E8005 */ lui $t6, %hi(D_800529D8) +/* 084534 7F04FA04 27A4001C */ addiu $a0, $sp, 0x1c +/* 084538 7F04FA08 00A03025 */ move $a2, $a1 +/* 08453C 7F04FA0C 25CE29D8 */ addiu $t6, %lo(D_800529D8) # addiu $t6, $t6, 0x29d8 +/* 084540 7F04FA10 8FA50080 */ lw $a1, 0x80($sp) +/* 084544 7F04FA14 AFBF0014 */ sw $ra, 0x14($sp) +/* 084548 7F04FA18 25D90060 */ addiu $t9, $t6, 0x60 +/* 08454C 7F04FA1C 00804025 */ move $t0, $a0 +.L7F04FA20: +/* 084550 7F04FA20 8DC10000 */ lw $at, ($t6) +/* 084554 7F04FA24 25CE000C */ addiu $t6, $t6, 0xc +/* 084558 7F04FA28 2508000C */ addiu $t0, $t0, 0xc +/* 08455C 7F04FA2C AD01FFF4 */ sw $at, -0xc($t0) +/* 084560 7F04FA30 8DC1FFF8 */ lw $at, -8($t6) +/* 084564 7F04FA34 AD01FFF8 */ sw $at, -8($t0) +/* 084568 7F04FA38 8DC1FFFC */ lw $at, -4($t6) +/* 08456C 7F04FA3C 15D9FFF8 */ bne $t6, $t9, .L7F04FA20 +/* 084570 7F04FA40 AD01FFFC */ sw $at, -4($t0) +/* 084574 7F04FA44 8DC10000 */ lw $at, ($t6) +/* 084578 7F04FA48 0FC13E48 */ jal prepare_ammo_type_collection_text +/* 08457C 7F04FA4C AD010000 */ sw $at, ($t0) +/* 084580 7F04FA50 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084584 7F04FA54 27A4001C */ addiu $a0, $sp, 0x1c +/* 084588 7F04FA58 8FBF0014 */ lw $ra, 0x14($sp) +/* 08458C 7F04FA5C 27BD0080 */ addiu $sp, $sp, 0x80 +/* 084590 7F04FA60 03E00008 */ jr $ra +/* 084594 7F04FA64 00000000 */ nop +) +#endif + + #endif @@ -26925,31 +33481,29 @@ weapon_has_default_ammo: #ifdef NONMATCHING void generate_language_specific_text_for_weapon(char *finalstring,ITEM_IDS itemtype) { - bool morethan2players; - u32 numplayers; - AMMOTYPES ammotype; - char *textfiletext; - size_t strlen; + u32 morethan2players; + //u32 numplayers; + //AMMOTYPES ammotype; + //char *textfiletext; + //size_t strlength; - morethan2players = false; - if (j_text_trigger == 0) { - numplayers = getPlayerCount(); - if ((int)numplayers < 3) { - textfiletext = get_textptr_for_textID(0xa400); - textpointer_load_parse_something(finalstring,textfiletext); - } + morethan2players = FALSE; + if (j_text_trigger==0) { + strcpy(finalstring,""); + if (2 < getPlayerCount()) { + morethan2players = TRUE; + } } else { - textpointer_load_parse_something(finalstring,""); - numplayers = getPlayerCount(); - if (2 < (int)numplayers) { - morethan2players = true; - } + if (getPlayerCount() < 3) { + //Picked up + strcpy(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x00))); + } } switch(itemtype) { case ITEM_KNIFE: - textfiletext = get_textptr_for_textID(0xa420); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a hunting knife. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x20))); break; case ITEM_THROWKNIFE: case ITEM_GRENADE: @@ -26964,126 +33518,125 @@ void generate_language_specific_text_for_weapon(char *finalstring,ITEM_IDS itemt case ITEM_56: case ITEM_57: case ITEM_TOKEN: - ammotype = get_ammo_type_for_weapon(itemtype); - prepare_ammo_type_collection_text((u8 *)finalstring,ammotype,1); + prepare_ammo_type_collection_text(finalstring,get_ammo_type_for_weapon(itemtype),1); return; case ITEM_WPPK: - textfiletext = get_textptr_for_textID(0xa421); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a PP7. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x21))); break; case ITEM_WPPKSIL: - textfiletext = get_textptr_for_textID(0xa422); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a silenced PP7. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x22))); break; case ITEM_TT33: - textfiletext = get_textptr_for_textID(0xa423); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a DD44 Dostovei. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x23))); break; case ITEM_SKORPION: - textfiletext = get_textptr_for_textID(0xa424); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a Klobb. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x24))); break; case ITEM_AK47: - textfiletext = get_textptr_for_textID(0xa425); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a KF7 Soviet. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x25))); break; case ITEM_UZI: - textfiletext = get_textptr_for_textID(0xa426); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a ZMG (9mm). + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x26))); break; case ITEM_MP5K: - textfiletext = get_textptr_for_textID(0xa427); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a D5K Deutsche. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x27))); break; case ITEM_MP5KSIL: - textfiletext = get_textptr_for_textID(0xa428); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a silenced D5K. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x28))); break; case ITEM_SPECTRE: - textfiletext = get_textptr_for_textID(0xa429); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a Phantom. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x29))); break; case ITEM_M16: - textfiletext = get_textptr_for_textID(0xa42a); - string_append_from_obseg_textbank(finalstring,textfiletext); + //an AR33 assault rifle. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2a))); break; case ITEM_FNP90: - textfiletext = get_textptr_for_textID(0xa42b); - string_append_from_obseg_textbank(finalstring,textfiletext); + //an RC-P90. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2b))); break; case ITEM_SHOTGUN: - textfiletext = get_textptr_for_textID(0xa42c); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a shotgun. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2c))); break; case ITEM_AUTOSHOT: - textfiletext = get_textptr_for_textID(0xa42d); - string_append_from_obseg_textbank(finalstring,textfiletext); + //an automatic shotgun. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2d))); break; case ITEM_SNIPERRIFLE: - textfiletext = get_textptr_for_textID(0xa42e); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a sniper rifle. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2e))); break; case ITEM_RUGER: - textfiletext = get_textptr_for_textID(0xa431); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a Cougar Magnum. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x31))); break; case ITEM_GOLDENGUN: - textfiletext = get_textptr_for_textID(0xa432); - string_append_from_obseg_textbank(finalstring,textfiletext); + //the Golden Gun. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x32))); break; case ITEM_SILVERWPPK: - textfiletext = get_textptr_for_textID(0xa436); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a silver PP7. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x36))); break; case ITEM_GOLDWPPK: - textfiletext = get_textptr_for_textID(0xa437); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a gold PP7. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x37))); break; case ITEM_LASER: - textfiletext = get_textptr_for_textID(0xa433); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a Moonraker laser. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x33))); break; default: - textfiletext = get_textptr_for_textID(0xa43b); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a new weapon. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x3b))); break; case ITEM_GRENADELAUNCH: - textfiletext = get_textptr_for_textID(0xa42f); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a grenade launcher. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x2f))); break; case ITEM_ROCKETLAUNCH: - textfiletext = get_textptr_for_textID(0xa430); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a rocket launcher. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x30))); break; case ITEM_FLAREPISTOL: - textfiletext = get_textptr_for_textID(0xa434); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a flare pistol. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x34))); break; case ITEM_PITONGUN: - textfiletext = get_textptr_for_textID(0xa435); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a piton gun. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x35))); break; case ITEM_KEYCARD: - textfiletext = get_textptr_for_textID(0xa438); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a keycard. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x38))); break; case ITEM_KEYYALE: - textfiletext = get_textptr_for_textID(0xa439); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a yale key. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x39))); break; case ITEM_KEYBOLT: - textfiletext = get_textptr_for_textID(0xa43a); - string_append_from_obseg_textbank(finalstring,textfiletext); + //a bolt key. + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x3a))); } - if ((j_text_trigger != 0) && (!morethan2players)) { - strlen = strlen(finalstring); - if (finalstring[strlen - 1] == '\n') { - strlen = strlen(finalstring); - finalstring[strlen - 1] = '\0'; + if ((j_text_trigger != 0) && (!morethan2players)) + { + if (finalstring[strlen(finalstring) - 1] == '\n') + { + finalstring[strlen(finalstring) - 1] = '\0'; } - textfiletext = get_textptr_for_textID(0xa400); - string_append_from_obseg_textbank(finalstring,textfiletext); - string_append_from_obseg_textbank(finalstring,"\n"); + //Picked up + strcat(finalstring, get_textptr_for_textID(TEXT(LPROPOBJ, 0x00))); + strcat(finalstring,"\n"); } return; } @@ -27192,7 +33745,7 @@ glabel generate_language_specific_text_for_weapon /* 08492C 7F04FDFC 11C0000B */ beqz $t6, .L7F04FE2C /* 084930 7F04FE00 AFA00024 */ sw $zero, 0x24($sp) /* 084934 7F04FE04 3C058005 */ lui $a1, %hi(D_80052A3C) -/* 084938 7F04FE08 0C0029DC */ jal textpointer_load_parse_something +/* 084938 7F04FE08 0C0029DC */ jal strcpy /* 08493C 7F04FE0C 24A52A3C */ addiu $a1, %lo(D_80052A3C) # addiu $a1, $a1, 0x2a3c /* 084940 7F04FE10 0FC26919 */ jal getPlayerCount /* 084944 7F04FE14 00000000 */ nop @@ -27210,7 +33763,7 @@ glabel generate_language_specific_text_for_weapon /* 084970 7F04FE40 0FC30776 */ jal get_textptr_for_textID /* 084974 7F04FE44 3404A400 */ li $a0, 41984 /* 084978 7F04FE48 02002025 */ move $a0, $s0 -/* 08497C 7F04FE4C 0C0029DC */ jal textpointer_load_parse_something +/* 08497C 7F04FE4C 0C0029DC */ jal strcpy /* 084980 7F04FE50 00402825 */ move $a1, $v0 .L7F04FE54: /* 084984 7F04FE54 8FB8002C */ lw $t8, 0x2c($sp) @@ -27237,7 +33790,7 @@ weapon_collect_msg_a_hunting_knife: /* 0849CC 7F04FE9C 0FC30776 */ jal get_textptr_for_textID /* 0849D0 7F04FEA0 3404A420 */ li $a0, 42016 /* 0849D4 7F04FEA4 02002025 */ move $a0, $s0 -/* 0849D8 7F04FEA8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849D8 7F04FEA8 0C0029FF */ jal strcat /* 0849DC 7F04FEAC 00402825 */ move $a1, $v0 /* 0849E0 7F04FEB0 100000BC */ b .L7F0501A4 /* 0849E4 7F04FEB4 00000000 */ nop @@ -27245,7 +33798,7 @@ weapon_collect_msg_a_pp7: /* 0849E8 7F04FEB8 0FC30776 */ jal get_textptr_for_textID /* 0849EC 7F04FEBC 3404A421 */ li $a0, 42017 /* 0849F0 7F04FEC0 02002025 */ move $a0, $s0 -/* 0849F4 7F04FEC4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0849F4 7F04FEC4 0C0029FF */ jal strcat /* 0849F8 7F04FEC8 00402825 */ move $a1, $v0 /* 0849FC 7F04FECC 100000B5 */ b .L7F0501A4 /* 084A00 7F04FED0 00000000 */ nop @@ -27253,7 +33806,7 @@ weapon_collect_msg_a_silenced_pp7: /* 084A04 7F04FED4 0FC30776 */ jal get_textptr_for_textID /* 084A08 7F04FED8 3404A422 */ li $a0, 42018 /* 084A0C 7F04FEDC 02002025 */ move $a0, $s0 -/* 084A10 7F04FEE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A10 7F04FEE0 0C0029FF */ jal strcat /* 084A14 7F04FEE4 00402825 */ move $a1, $v0 /* 084A18 7F04FEE8 100000AE */ b .L7F0501A4 /* 084A1C 7F04FEEC 00000000 */ nop @@ -27261,7 +33814,7 @@ weapon_collect_msg_a_dd44: /* 084A20 7F04FEF0 0FC30776 */ jal get_textptr_for_textID /* 084A24 7F04FEF4 3404A423 */ li $a0, 42019 /* 084A28 7F04FEF8 02002025 */ move $a0, $s0 -/* 084A2C 7F04FEFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A2C 7F04FEFC 0C0029FF */ jal strcat /* 084A30 7F04FF00 00402825 */ move $a1, $v0 /* 084A34 7F04FF04 100000A7 */ b .L7F0501A4 /* 084A38 7F04FF08 00000000 */ nop @@ -27269,7 +33822,7 @@ weapon_collect_msg_a_klobb: /* 084A3C 7F04FF0C 0FC30776 */ jal get_textptr_for_textID /* 084A40 7F04FF10 3404A424 */ li $a0, 42020 /* 084A44 7F04FF14 02002025 */ move $a0, $s0 -/* 084A48 7F04FF18 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A48 7F04FF18 0C0029FF */ jal strcat /* 084A4C 7F04FF1C 00402825 */ move $a1, $v0 /* 084A50 7F04FF20 100000A0 */ b .L7F0501A4 /* 084A54 7F04FF24 00000000 */ nop @@ -27277,7 +33830,7 @@ weapon_collect_msg_a_kf7: /* 084A58 7F04FF28 0FC30776 */ jal get_textptr_for_textID /* 084A5C 7F04FF2C 3404A425 */ li $a0, 42021 /* 084A60 7F04FF30 02002025 */ move $a0, $s0 -/* 084A64 7F04FF34 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A64 7F04FF34 0C0029FF */ jal strcat /* 084A68 7F04FF38 00402825 */ move $a1, $v0 /* 084A6C 7F04FF3C 10000099 */ b .L7F0501A4 /* 084A70 7F04FF40 00000000 */ nop @@ -27285,7 +33838,7 @@ weapon_collect_msg_a_zmg: /* 084A74 7F04FF44 0FC30776 */ jal get_textptr_for_textID /* 084A78 7F04FF48 3404A426 */ li $a0, 42022 /* 084A7C 7F04FF4C 02002025 */ move $a0, $s0 -/* 084A80 7F04FF50 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A80 7F04FF50 0C0029FF */ jal strcat /* 084A84 7F04FF54 00402825 */ move $a1, $v0 /* 084A88 7F04FF58 10000092 */ b .L7F0501A4 /* 084A8C 7F04FF5C 00000000 */ nop @@ -27293,7 +33846,7 @@ weapon_collect_msg_a_d5k: /* 084A90 7F04FF60 0FC30776 */ jal get_textptr_for_textID /* 084A94 7F04FF64 3404A427 */ li $a0, 42023 /* 084A98 7F04FF68 02002025 */ move $a0, $s0 -/* 084A9C 7F04FF6C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084A9C 7F04FF6C 0C0029FF */ jal strcat /* 084AA0 7F04FF70 00402825 */ move $a1, $v0 /* 084AA4 7F04FF74 1000008B */ b .L7F0501A4 /* 084AA8 7F04FF78 00000000 */ nop @@ -27301,7 +33854,7 @@ weapon_collect_msg_a_silenced_d5k: /* 084AAC 7F04FF7C 0FC30776 */ jal get_textptr_for_textID /* 084AB0 7F04FF80 3404A428 */ li $a0, 42024 /* 084AB4 7F04FF84 02002025 */ move $a0, $s0 -/* 084AB8 7F04FF88 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AB8 7F04FF88 0C0029FF */ jal strcat /* 084ABC 7F04FF8C 00402825 */ move $a1, $v0 /* 084AC0 7F04FF90 10000084 */ b .L7F0501A4 /* 084AC4 7F04FF94 00000000 */ nop @@ -27309,7 +33862,7 @@ weapon_collect_msg_a_phantom: /* 084AC8 7F04FF98 0FC30776 */ jal get_textptr_for_textID /* 084ACC 7F04FF9C 3404A429 */ li $a0, 42025 /* 084AD0 7F04FFA0 02002025 */ move $a0, $s0 -/* 084AD4 7F04FFA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AD4 7F04FFA4 0C0029FF */ jal strcat /* 084AD8 7F04FFA8 00402825 */ move $a1, $v0 /* 084ADC 7F04FFAC 1000007D */ b .L7F0501A4 /* 084AE0 7F04FFB0 00000000 */ nop @@ -27317,7 +33870,7 @@ weapon_collect_msg_a_ar33: /* 084AE4 7F04FFB4 0FC30776 */ jal get_textptr_for_textID /* 084AE8 7F04FFB8 3404A42A */ li $a0, 42026 /* 084AEC 7F04FFBC 02002025 */ move $a0, $s0 -/* 084AF0 7F04FFC0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084AF0 7F04FFC0 0C0029FF */ jal strcat /* 084AF4 7F04FFC4 00402825 */ move $a1, $v0 /* 084AF8 7F04FFC8 10000076 */ b .L7F0501A4 /* 084AFC 7F04FFCC 00000000 */ nop @@ -27325,7 +33878,7 @@ weapon_collect_msg_a_rcp90: /* 084B00 7F04FFD0 0FC30776 */ jal get_textptr_for_textID /* 084B04 7F04FFD4 3404A42B */ li $a0, 42027 /* 084B08 7F04FFD8 02002025 */ move $a0, $s0 -/* 084B0C 7F04FFDC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B0C 7F04FFDC 0C0029FF */ jal strcat /* 084B10 7F04FFE0 00402825 */ move $a1, $v0 /* 084B14 7F04FFE4 1000006F */ b .L7F0501A4 /* 084B18 7F04FFE8 00000000 */ nop @@ -27333,7 +33886,7 @@ weapon_collect_msg_a_shotgun: /* 084B1C 7F04FFEC 0FC30776 */ jal get_textptr_for_textID /* 084B20 7F04FFF0 3404A42C */ li $a0, 42028 /* 084B24 7F04FFF4 02002025 */ move $a0, $s0 -/* 084B28 7F04FFF8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B28 7F04FFF8 0C0029FF */ jal strcat /* 084B2C 7F04FFFC 00402825 */ move $a1, $v0 /* 084B30 7F050000 10000068 */ b .L7F0501A4 /* 084B34 7F050004 00000000 */ nop @@ -27341,7 +33894,7 @@ weapon_collect_msg_an_auto_shotgun: /* 084B38 7F050008 0FC30776 */ jal get_textptr_for_textID /* 084B3C 7F05000C 3404A42D */ li $a0, 42029 /* 084B40 7F050010 02002025 */ move $a0, $s0 -/* 084B44 7F050014 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B44 7F050014 0C0029FF */ jal strcat /* 084B48 7F050018 00402825 */ move $a1, $v0 /* 084B4C 7F05001C 10000061 */ b .L7F0501A4 /* 084B50 7F050020 00000000 */ nop @@ -27349,7 +33902,7 @@ weapon_collect_msg_a_sniper: /* 084B54 7F050024 0FC30776 */ jal get_textptr_for_textID /* 084B58 7F050028 3404A42E */ li $a0, 42030 /* 084B5C 7F05002C 02002025 */ move $a0, $s0 -/* 084B60 7F050030 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B60 7F050030 0C0029FF */ jal strcat /* 084B64 7F050034 00402825 */ move $a1, $v0 /* 084B68 7F050038 1000005A */ b .L7F0501A4 /* 084B6C 7F05003C 00000000 */ nop @@ -27357,7 +33910,7 @@ weapon_collect_msg_a_grenade_launcher: /* 084B70 7F050040 0FC30776 */ jal get_textptr_for_textID /* 084B74 7F050044 3404A42F */ li $a0, 42031 /* 084B78 7F050048 02002025 */ move $a0, $s0 -/* 084B7C 7F05004C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B7C 7F05004C 0C0029FF */ jal strcat /* 084B80 7F050050 00402825 */ move $a1, $v0 /* 084B84 7F050054 10000053 */ b .L7F0501A4 /* 084B88 7F050058 00000000 */ nop @@ -27365,7 +33918,7 @@ weapon_collect_msg_a_rocket_launcher: /* 084B8C 7F05005C 0FC30776 */ jal get_textptr_for_textID /* 084B90 7F050060 3404A430 */ li $a0, 42032 /* 084B94 7F050064 02002025 */ move $a0, $s0 -/* 084B98 7F050068 0C0029FF */ jal string_append_from_obseg_textbank +/* 084B98 7F050068 0C0029FF */ jal strcat /* 084B9C 7F05006C 00402825 */ move $a1, $v0 /* 084BA0 7F050070 1000004C */ b .L7F0501A4 /* 084BA4 7F050074 00000000 */ nop @@ -27373,7 +33926,7 @@ weapon_collect_msg_a_cougar_magnum: /* 084BA8 7F050078 0FC30776 */ jal get_textptr_for_textID /* 084BAC 7F05007C 3404A431 */ li $a0, 42033 /* 084BB0 7F050080 02002025 */ move $a0, $s0 -/* 084BB4 7F050084 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BB4 7F050084 0C0029FF */ jal strcat /* 084BB8 7F050088 00402825 */ move $a1, $v0 /* 084BBC 7F05008C 10000045 */ b .L7F0501A4 /* 084BC0 7F050090 00000000 */ nop @@ -27381,7 +33934,7 @@ weapon_collect_msg_a_golden_gun: /* 084BC4 7F050094 0FC30776 */ jal get_textptr_for_textID /* 084BC8 7F050098 3404A432 */ li $a0, 42034 /* 084BCC 7F05009C 02002025 */ move $a0, $s0 -/* 084BD0 7F0500A0 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BD0 7F0500A0 0C0029FF */ jal strcat /* 084BD4 7F0500A4 00402825 */ move $a1, $v0 /* 084BD8 7F0500A8 1000003E */ b .L7F0501A4 /* 084BDC 7F0500AC 00000000 */ nop @@ -27389,7 +33942,7 @@ weapon_collect_msg_a_moonraker_laser: /* 084BE0 7F0500B0 0FC30776 */ jal get_textptr_for_textID /* 084BE4 7F0500B4 3404A433 */ li $a0, 42035 /* 084BE8 7F0500B8 02002025 */ move $a0, $s0 -/* 084BEC 7F0500BC 0C0029FF */ jal string_append_from_obseg_textbank +/* 084BEC 7F0500BC 0C0029FF */ jal strcat /* 084BF0 7F0500C0 00402825 */ move $a1, $v0 /* 084BF4 7F0500C4 10000037 */ b .L7F0501A4 /* 084BF8 7F0500C8 00000000 */ nop @@ -27397,7 +33950,7 @@ weapon_collect_msg_a_flare_pistol: /* 084BFC 7F0500CC 0FC30776 */ jal get_textptr_for_textID /* 084C00 7F0500D0 3404A434 */ li $a0, 42036 /* 084C04 7F0500D4 02002025 */ move $a0, $s0 -/* 084C08 7F0500D8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C08 7F0500D8 0C0029FF */ jal strcat /* 084C0C 7F0500DC 00402825 */ move $a1, $v0 /* 084C10 7F0500E0 10000030 */ b .L7F0501A4 /* 084C14 7F0500E4 00000000 */ nop @@ -27405,7 +33958,7 @@ weapon_collect_msg_a_piton_gun: /* 084C18 7F0500E8 0FC30776 */ jal get_textptr_for_textID /* 084C1C 7F0500EC 3404A435 */ li $a0, 42037 /* 084C20 7F0500F0 02002025 */ move $a0, $s0 -/* 084C24 7F0500F4 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C24 7F0500F4 0C0029FF */ jal strcat /* 084C28 7F0500F8 00402825 */ move $a1, $v0 /* 084C2C 7F0500FC 10000029 */ b .L7F0501A4 /* 084C30 7F050100 00000000 */ nop @@ -27413,7 +33966,7 @@ weapon_collect_msg_a_silver_pp7: /* 084C34 7F050104 0FC30776 */ jal get_textptr_for_textID /* 084C38 7F050108 3404A436 */ li $a0, 42038 /* 084C3C 7F05010C 02002025 */ move $a0, $s0 -/* 084C40 7F050110 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C40 7F050110 0C0029FF */ jal strcat /* 084C44 7F050114 00402825 */ move $a1, $v0 /* 084C48 7F050118 10000022 */ b .L7F0501A4 /* 084C4C 7F05011C 00000000 */ nop @@ -27421,7 +33974,7 @@ weapon_collect_msg_a_gold_pp7: /* 084C50 7F050120 0FC30776 */ jal get_textptr_for_textID /* 084C54 7F050124 3404A437 */ li $a0, 42039 /* 084C58 7F050128 02002025 */ move $a0, $s0 -/* 084C5C 7F05012C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C5C 7F05012C 0C0029FF */ jal strcat /* 084C60 7F050130 00402825 */ move $a1, $v0 /* 084C64 7F050134 1000001B */ b .L7F0501A4 /* 084C68 7F050138 00000000 */ nop @@ -27429,7 +33982,7 @@ weapon_collect_msg_a_keycard: /* 084C6C 7F05013C 0FC30776 */ jal get_textptr_for_textID /* 084C70 7F050140 3404A438 */ li $a0, 42040 /* 084C74 7F050144 02002025 */ move $a0, $s0 -/* 084C78 7F050148 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C78 7F050148 0C0029FF */ jal strcat /* 084C7C 7F05014C 00402825 */ move $a1, $v0 /* 084C80 7F050150 10000014 */ b .L7F0501A4 /* 084C84 7F050154 00000000 */ nop @@ -27437,7 +33990,7 @@ weapon_collect_msg_a_yale_key: /* 084C88 7F050158 0FC30776 */ jal get_textptr_for_textID /* 084C8C 7F05015C 3404A439 */ li $a0, 42041 /* 084C90 7F050160 02002025 */ move $a0, $s0 -/* 084C94 7F050164 0C0029FF */ jal string_append_from_obseg_textbank +/* 084C94 7F050164 0C0029FF */ jal strcat /* 084C98 7F050168 00402825 */ move $a1, $v0 /* 084C9C 7F05016C 1000000D */ b .L7F0501A4 /* 084CA0 7F050170 00000000 */ nop @@ -27445,7 +33998,7 @@ weapon_collect_msg_a_bolt_key: /* 084CA4 7F050174 0FC30776 */ jal get_textptr_for_textID /* 084CA8 7F050178 3404A43A */ li $a0, 42042 /* 084CAC 7F05017C 02002025 */ move $a0, $s0 -/* 084CB0 7F050180 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CB0 7F050180 0C0029FF */ jal strcat /* 084CB4 7F050184 00402825 */ move $a1, $v0 /* 084CB8 7F050188 10000006 */ b .L7F0501A4 /* 084CBC 7F05018C 00000000 */ nop @@ -27454,7 +34007,7 @@ weapon_collect_msg_a_new_weapon: /* 084CC0 7F050190 0FC30776 */ jal get_textptr_for_textID /* 084CC4 7F050194 3404A43B */ li $a0, 42043 /* 084CC8 7F050198 02002025 */ move $a0, $s0 -/* 084CCC 7F05019C 0C0029FF */ jal string_append_from_obseg_textbank +/* 084CCC 7F05019C 0C0029FF */ jal strcat /* 084CD0 7F0501A0 00402825 */ move $a1, $v0 .L7F0501A4: /* 084CD4 7F0501A4 3C088005 */ lui $t0, %hi(j_text_trigger) @@ -27479,11 +34032,11 @@ weapon_collect_msg_a_new_weapon: /* 084D1C 7F0501EC 0FC30776 */ jal get_textptr_for_textID /* 084D20 7F0501F0 3404A400 */ li $a0, 41984 /* 084D24 7F0501F4 02002025 */ move $a0, $s0 -/* 084D28 7F0501F8 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D28 7F0501F8 0C0029FF */ jal strcat /* 084D2C 7F0501FC 00402825 */ move $a1, $v0 /* 084D30 7F050200 3C058005 */ lui $a1, %hi(D_80052A40) /* 084D34 7F050204 24A52A40 */ addiu $a1, %lo(D_80052A40) # addiu $a1, $a1, 0x2a40 -/* 084D38 7F050208 0C0029FF */ jal string_append_from_obseg_textbank +/* 084D38 7F050208 0C0029FF */ jal strcat /* 084D3C 7F05020C 02002025 */ move $a0, $s0 /* 084D40 7F050210 8FBF001C */ lw $ra, 0x1c($sp) .L7F050214: @@ -27607,8 +34160,8 @@ glabel collect_or_interact_object /* 084DEC 7F0502BC 01400008 */ jr $t2 /* 084DF0 7F0502C0 00000000 */ nop interact_key_object: -/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084DFC 7F0502CC 240500E5 */ li $a1, 229 /* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 /* 084E04 7F0502D4 00003025 */ move $a2, $zero @@ -27677,8 +34230,8 @@ interact_ammobox_object: /* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 /* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 /* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 -/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084EF8 7F0503C8 240500EA */ li $a1, 234 /* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 /* 084F00 7F0503D0 00003025 */ move $a2, $zero @@ -27818,8 +34371,8 @@ interact_weapon_object: interact_bodyarmor_object: /* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor /* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) -/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0850F4 7F0505C4 24050051 */ li $a1, 81 /* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 /* 0850FC 7F0505CC 00003025 */ move $a2, $zero @@ -27851,8 +34404,8 @@ interact_bodyarmor_object: /* 085158 7F050628 24030001 */ li $v1, 1 interact_default_object: .L7F05062C: -/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 085164 7F050634 240500E5 */ li $a1, 229 /* 085168 7F050638 0C002382 */ jal play_sfx_a1 /* 08516C 7F05063C 00003025 */ move $a2, $zero @@ -27987,8 +34540,8 @@ glabel collect_or_interact_object /* 084DEC 7F0502BC 01400008 */ jr $t2 /* 084DF0 7F0502C0 00000000 */ nop interact_key_object: -/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084DFC 7F0502CC 240500E5 */ li $a1, 229 /* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 /* 084E04 7F0502D4 00003025 */ move $a2, $zero @@ -28057,8 +34610,8 @@ interact_ammobox_object: /* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 /* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 /* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 -/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 084EF8 7F0503C8 240500EA */ li $a1, 234 /* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 /* 084F00 7F0503D0 00003025 */ move $a2, $zero @@ -28198,8 +34751,8 @@ interact_weapon_object: interact_bodyarmor_object: /* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor /* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) -/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0850F4 7F0505C4 24050051 */ li $a1, 81 /* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 /* 0850FC 7F0505CC 00003025 */ move $a2, $zero @@ -28231,8 +34784,8 @@ interact_bodyarmor_object: /* 085158 7F050628 24030001 */ li $v1, 1 interact_default_object: .L7F05062C: -/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 085160 7F050630 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 085164 7F050634 240500E5 */ li $a1, 229 /* 085168 7F050638 0C002382 */ jal play_sfx_a1 /* 08516C 7F05063C 00003025 */ move $a2, $zero @@ -28282,6 +34835,389 @@ interact_default_object: /* 085208 7F0506D8 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:8005322C*/ +glabel object_interaction_table +.word interact_default_object +.word interact_key_object +.word interact_default_object +.word interact_default_object +.word interact_magazine_object +.word interact_weapon_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_ammobox_object +.word interact_bodyarmor_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object +.word interact_default_object + +.text +glabel collect_or_interact_object +/* 084D80 7F050250 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 084D84 7F050254 AFBF001C */ sw $ra, 0x1c($sp) +/* 084D88 7F050258 AFB00018 */ sw $s0, 0x18($sp) +/* 084D8C 7F05025C AFA40070 */ sw $a0, 0x70($sp) +/* 084D90 7F050260 AFA50074 */ sw $a1, 0x74($sp) +/* 084D94 7F050264 8C830004 */ lw $v1, 4($a0) +/* 084D98 7F050268 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 084D9C 7F05026C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 084DA0 7F050270 AFA3006C */ sw $v1, 0x6c($sp) +/* 084DA4 7F050274 3C198005 */ lui $t9, %hi(clock_timer) +/* 084DA8 7F050278 8DF800D8 */ lw $t8, 0xd8($t7) +/* 084DAC 7F05027C 17000005 */ bnez $t8, .L7F050294 +/* 084DB0 7F050280 00000000 */ nop +/* 084DB4 7F050284 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 084DB8 7F050288 8FA8006C */ lw $t0, 0x6c($sp) +/* 084DBC 7F05028C 57200004 */ bnezl $t9, .L7F0502A0 +/* 084DC0 7F050290 91090003 */ lbu $t1, 3($t0) +.L7F050294: +/* 084DC4 7F050294 1000010C */ b .L7F0506C8 +/* 084DC8 7F050298 00001025 */ move $v0, $zero +/* 084DCC 7F05029C 91090003 */ lbu $t1, 3($t0) +.L7F0502A0: +/* 084DD0 7F0502A0 252AFFFD */ addiu $t2, $t1, -3 +/* 084DD4 7F0502A4 2D41002D */ sltiu $at, $t2, 0x2d +/* 084DD8 7F0502A8 102000E0 */ beqz $at, .L7F05062C +/* 084DDC 7F0502AC 000A5080 */ sll $t2, $t2, 2 +/* 084DE0 7F0502B0 3C018005 */ lui $at, %hi(object_interaction_table) +/* 084DE4 7F0502B4 002A0821 */ addu $at, $at, $t2 +/* 084DE8 7F0502B8 8C2A322C */ lw $t2, %lo(object_interaction_table)($at) +/* 084DEC 7F0502BC 01400008 */ jr $t2 +/* 084DF0 7F0502C0 00000000 */ nop +interact_key_object: +/* 084DF4 7F0502C4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084DF8 7F0502C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 084DFC 7F0502CC 240500E5 */ li $a1, 229 +/* 084E00 7F0502D0 0C002382 */ jal play_sfx_a1 +/* 084E04 7F0502D4 00003025 */ move $a2, $zero +/* 084E08 7F0502D8 8FAB0074 */ lw $t3, 0x74($sp) +/* 084E0C 7F0502DC 1160000A */ beqz $t3, .L7F050308 +/* 084E10 7F0502E0 00000000 */ nop +/* 084E14 7F0502E4 0FC23657 */ jal obj_get_activated_text +/* 084E18 7F0502E8 8FA4006C */ lw $a0, 0x6c($sp) +/* 084E1C 7F0502EC 14400004 */ bnez $v0, .L7F050300 +/* 084E20 7F0502F0 00402025 */ move $a0, $v0 +/* 084E24 7F0502F4 0FC30776 */ jal get_textptr_for_textID +/* 084E28 7F0502F8 3404A43C */ li $a0, 42044 +/* 084E2C 7F0502FC 00402025 */ move $a0, $v0 +.L7F050300: +/* 084E30 7F050300 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084E34 7F050304 00000000 */ nop +.L7F050308: +/* 084E38 7F050308 100000DA */ b .L7F050674 +/* 084E3C 7F05030C 24030004 */ li $v1, 4 +interact_magazine_object: +/* 084E40 7F050310 00608025 */ move $s0, $v1 +/* 084E44 7F050314 0FC13F0F */ jal get_ammo_in_magazine +/* 084E48 7F050318 00602025 */ move $a0, $v1 +/* 084E4C 7F05031C 8E040080 */ lw $a0, 0x80($s0) +/* 084E50 7F050320 00402825 */ move $a1, $v0 +/* 084E54 7F050324 24060001 */ li $a2, 1 +/* 084E58 7F050328 0FC13E9A */ jal add_ammo_to_inventory +/* 084E5C 7F05032C 8FA70074 */ lw $a3, 0x74($sp) +/* 084E60 7F050330 100000D0 */ b .L7F050674 +/* 084E64 7F050334 24030001 */ li $v1, 1 +interact_ammobox_object: +/* 084E68 7F050338 00001025 */ move $v0, $zero +/* 084E6C 7F05033C 00608025 */ move $s0, $v1 +/* 084E70 7F050340 24430001 */ addiu $v1, $v0, 1 +.L7F050344: +/* 084E74 7F050344 24010001 */ li $at, 1 +/* 084E78 7F050348 14410002 */ bne $v0, $at, .L7F050354 +/* 084E7C 7F05034C 00602025 */ move $a0, $v1 +/* 084E80 7F050350 24040001 */ li $a0, 1 +.L7F050354: +/* 084E84 7F050354 96050082 */ lhu $a1, 0x82($s0) +/* 084E88 7F050358 AFA4004C */ sw $a0, 0x4c($sp) +/* 084E8C 7F05035C AFA30020 */ sw $v1, 0x20($sp) +/* 084E90 7F050360 0FC26919 */ jal getPlayerCount +/* 084E94 7F050364 AFA50050 */ sw $a1, 0x50($sp) +/* 084E98 7F050368 24010001 */ li $at, 1 +/* 084E9C 7F05036C 8FA30020 */ lw $v1, 0x20($sp) +/* 084EA0 7F050370 8FA4004C */ lw $a0, 0x4c($sp) +/* 084EA4 7F050374 14410009 */ bne $v0, $at, .L7F05039C +/* 084EA8 7F050378 8FA50050 */ lw $a1, 0x50($sp) +/* 084EAC 7F05037C 44852000 */ mtc1 $a1, $f4 +/* 084EB0 7F050380 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 084EB4 7F050384 C4280B28 */ lwc1 $f8, %lo(solo_ammo_multiplier)($at) +/* 084EB8 7F050388 468021A0 */ cvt.s.w $f6, $f4 +/* 084EBC 7F05038C 46083282 */ mul.s $f10, $f6, $f8 +/* 084EC0 7F050390 4600540D */ trunc.w.s $f16, $f10 +/* 084EC4 7F050394 44058000 */ mfc1 $a1, $f16 +/* 084EC8 7F050398 00000000 */ nop +.L7F05039C: +/* 084ECC 7F05039C 00003025 */ move $a2, $zero +/* 084ED0 7F0503A0 8FA70074 */ lw $a3, 0x74($sp) +/* 084ED4 7F0503A4 0FC13E9A */ jal add_ammo_to_inventory +/* 084ED8 7F0503A8 AFA30020 */ sw $v1, 0x20($sp) +/* 084EDC 7F0503AC 8FA20020 */ lw $v0, 0x20($sp) +/* 084EE0 7F0503B0 2401000D */ li $at, 13 +/* 084EE4 7F0503B4 26100004 */ addiu $s0, $s0, 4 +/* 084EE8 7F0503B8 5441FFE2 */ bnel $v0, $at, .L7F050344 +/* 084EEC 7F0503BC 24430001 */ addiu $v1, $v0, 1 +/* 084EF0 7F0503C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 084EF4 7F0503C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 084EF8 7F0503C8 240500EA */ li $a1, 234 +/* 084EFC 7F0503CC 0C002382 */ jal play_sfx_a1 +/* 084F00 7F0503D0 00003025 */ move $a2, $zero +/* 084F04 7F0503D4 100000A7 */ b .L7F050674 +/* 084F08 7F0503D8 24030001 */ li $v1, 1 +interact_weapon_object: +/* 084F0C 7F0503DC AFA00044 */ sw $zero, 0x44($sp) +/* 084F10 7F0503E0 80640080 */ lb $a0, 0x80($v1) +/* 084F14 7F0503E4 0FC13E04 */ jal set_sound_effect_for_weapontype_collection +/* 084F18 7F0503E8 AFA30048 */ sw $v1, 0x48($sp) +/* 084F1C 7F0503EC 8FAD0048 */ lw $t5, 0x48($sp) +/* 084F20 7F0503F0 2401001D */ li $at, 29 +/* 084F24 7F0503F4 81A40080 */ lb $a0, 0x80($t5) +/* 084F28 7F0503F8 54810006 */ bnel $a0, $at, .L7F050414 +/* 084F2C 7F0503FC 24010058 */ li $at, 88 +/* 084F30 7F050400 0FC23122 */ jal add_item_to_inventory +/* 084F34 7F050404 2404001E */ li $a0, 30 +/* 084F38 7F050408 10000007 */ b .L7F050428 +/* 084F3C 7F05040C 8FAE006C */ lw $t6, 0x6c($sp) +/* 084F40 7F050410 24010058 */ li $at, 88 +.L7F050414: +/* 084F44 7F050414 14810003 */ bne $a0, $at, .L7F050424 +/* 084F48 7F050418 24050058 */ li $a1, 88 +/* 084F4C 7F05041C 0FC17645 */ jal draw_item_in_hand_has_more_ammo +/* 084F50 7F050420 00002025 */ move $a0, $zero +.L7F050424: +/* 084F54 7F050424 8FAE006C */ lw $t6, 0x6c($sp) +.L7F050428: +/* 084F58 7F050428 8FB90048 */ lw $t9, 0x48($sp) +/* 084F5C 7F05042C 8DCF0064 */ lw $t7, 0x64($t6) +/* 084F60 7F050430 31F80400 */ andi $t8, $t7, 0x400 +/* 084F64 7F050434 1300001B */ beqz $t8, .L7F0504A4 +/* 084F68 7F050438 00000000 */ nop +/* 084F6C 7F05043C 83280080 */ lb $t0, 0x80($t9) +/* 084F70 7F050440 29010021 */ slti $at, $t0, 0x21 +/* 084F74 7F050444 50200004 */ beql $at, $zero, .L7F050458 +/* 084F78 7F050448 8FA90074 */ lw $t1, 0x74($sp) +/* 084F7C 7F05044C 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084F80 7F050450 8FA40070 */ lw $a0, 0x70($sp) +/* 084F84 7F050454 8FA90074 */ lw $t1, 0x74($sp) +.L7F050458: +/* 084F88 7F050458 5120000F */ beql $t1, $zero, .L7F050498 +/* 084F8C 7F05045C 8FAC0048 */ lw $t4, 0x48($sp) +/* 084F90 7F050460 0FC23657 */ jal obj_get_activated_text +/* 084F94 7F050464 8FA4006C */ lw $a0, 0x6c($sp) +/* 084F98 7F050468 10400005 */ beqz $v0, .L7F050480 +/* 084F9C 7F05046C 00402025 */ move $a0, $v0 +/* 084FA0 7F050470 0FC228F2 */ jal display_string_in_lower_left_corner +/* 084FA4 7F050474 00000000 */ nop +/* 084FA8 7F050478 10000005 */ b .L7F050490 +/* 084FAC 7F05047C 240B0001 */ li $t3, 1 +.L7F050480: +/* 084FB0 7F050480 8FAA0048 */ lw $t2, 0x48($sp) +/* 084FB4 7F050484 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 084FB8 7F050488 81440080 */ lb $a0, 0x80($t2) +/* 084FBC 7F05048C 240B0001 */ li $t3, 1 +.L7F050490: +/* 084FC0 7F050490 AFAB0044 */ sw $t3, 0x44($sp) +/* 084FC4 7F050494 8FAC0048 */ lw $t4, 0x48($sp) +.L7F050498: +/* 084FC8 7F050498 24030004 */ li $v1, 4 +/* 084FCC 7F05049C 1000001C */ b .L7F050510 +/* 084FD0 7F0504A0 81840080 */ lb $a0, 0x80($t4) +.L7F0504A4: +/* 084FD4 7F0504A4 0FC231D9 */ jal sub_GAME_7F08C764 +/* 084FD8 7F0504A8 8FA40070 */ lw $a0, 0x70($sp) +/* 084FDC 7F0504AC 10400002 */ beqz $v0, .L7F0504B8 +/* 084FE0 7F0504B0 240D0001 */ li $t5, 1 +/* 084FE4 7F0504B4 AFAD0044 */ sw $t5, 0x44($sp) +.L7F0504B8: +/* 084FE8 7F0504B8 8FAE0074 */ lw $t6, 0x74($sp) +/* 084FEC 7F0504BC 8FAF0048 */ lw $t7, 0x48($sp) +/* 084FF0 7F0504C0 51C00011 */ beql $t6, $zero, .L7F050508 +/* 084FF4 7F0504C4 8FA90048 */ lw $t1, 0x48($sp) +/* 084FF8 7F0504C8 0FC23669 */ jal weapon_get_activated_text +/* 084FFC 7F0504CC 81E40080 */ lb $a0, 0x80($t7) +/* 085000 7F0504D0 10400006 */ beqz $v0, .L7F0504EC +/* 085004 7F0504D4 00402025 */ move $a0, $v0 +/* 085008 7F0504D8 24180001 */ li $t8, 1 +/* 08500C 7F0504DC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085010 7F0504E0 AFB80044 */ sw $t8, 0x44($sp) +/* 085014 7F0504E4 10000008 */ b .L7F050508 +/* 085018 7F0504E8 8FA90048 */ lw $t1, 0x48($sp) +.L7F0504EC: +/* 08501C 7F0504EC 8FB90044 */ lw $t9, 0x44($sp) +/* 085020 7F0504F0 8FA80048 */ lw $t0, 0x48($sp) +/* 085024 7F0504F4 53200004 */ beql $t9, $zero, .L7F050508 +/* 085028 7F0504F8 8FA90048 */ lw $t1, 0x48($sp) +/* 08502C 7F0504FC 0FC14089 */ jal display_text_for_weapon_in_lower_left_corner +/* 085030 7F050500 81040080 */ lb $a0, 0x80($t0) +/* 085034 7F050504 8FA90048 */ lw $t1, 0x48($sp) +.L7F050508: +/* 085038 7F050508 24030001 */ li $v1, 1 +/* 08503C 7F05050C 81240080 */ lb $a0, 0x80($t1) +.L7F050510: +/* 085040 7F050510 0FC1A50B */ jal get_ammo_type_for_weapon +/* 085044 7F050514 AFA30068 */ sw $v1, 0x68($sp) +/* 085048 7F050518 8FA30068 */ lw $v1, 0x68($sp) +/* 08504C 7F05051C 10400055 */ beqz $v0, .L7F050674 +/* 085050 7F050520 00408025 */ move $s0, $v0 +/* 085054 7F050524 8FA40048 */ lw $a0, 0x48($sp) +/* 085058 7F050528 0FC13F3E */ jal ammo_collected_from_weapon +/* 08505C 7F05052C AFA30068 */ sw $v1, 0x68($sp) +/* 085060 7F050530 8FA30068 */ lw $v1, 0x68($sp) +/* 085064 7F050534 1840004F */ blez $v0, .L7F050674 +/* 085068 7F050538 AFA20034 */ sw $v0, 0x34($sp) +/* 08506C 7F05053C 02002025 */ move $a0, $s0 +/* 085070 7F050540 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085074 7F050544 AFA30068 */ sw $v1, 0x68($sp) +/* 085078 7F050548 AFA20024 */ sw $v0, 0x24($sp) +/* 08507C 7F05054C 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085080 7F050550 02002025 */ move $a0, $s0 +/* 085084 7F050554 8FAA0024 */ lw $t2, 0x24($sp) +/* 085088 7F050558 8FA30068 */ lw $v1, 0x68($sp) +/* 08508C 7F05055C 02002025 */ move $a0, $s0 +/* 085090 7F050560 0142082A */ slt $at, $t2, $v0 +/* 085094 7F050564 50200044 */ beql $at, $zero, .L7F050678 +/* 085098 7F050568 24010001 */ li $at, 1 +/* 08509C 7F05056C 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 0850A0 7F050570 AFA30068 */ sw $v1, 0x68($sp) +/* 0850A4 7F050574 8FAB0034 */ lw $t3, 0x34($sp) +/* 0850A8 7F050578 02002025 */ move $a0, $s0 +/* 0850AC 7F05057C 0FC1A44C */ jal give_cur_player_ammo +/* 0850B0 7F050580 004B2821 */ addu $a1, $v0, $t3 +/* 0850B4 7F050584 8FAC0044 */ lw $t4, 0x44($sp) +/* 0850B8 7F050588 8FA30068 */ lw $v1, 0x68($sp) +/* 0850BC 7F05058C 8FAD0074 */ lw $t5, 0x74($sp) +/* 0850C0 7F050590 55800039 */ bnezl $t4, .L7F050678 +/* 0850C4 7F050594 24010001 */ li $at, 1 +/* 0850C8 7F050598 11A00036 */ beqz $t5, .L7F050674 +/* 0850CC 7F05059C 02002025 */ move $a0, $s0 +/* 0850D0 7F0505A0 8FA50034 */ lw $a1, 0x34($sp) +/* 0850D4 7F0505A4 0FC13E7E */ jal display_text_when_ammo_collected +/* 0850D8 7F0505A8 AFA30068 */ sw $v1, 0x68($sp) +/* 0850DC 7F0505AC 10000031 */ b .L7F050674 +/* 0850E0 7F0505B0 8FA30068 */ lw $v1, 0x68($sp) +interact_bodyarmor_object: +/* 0850E4 7F0505B4 0FC228C3 */ jal add_BONDdata_watch_armor +/* 0850E8 7F0505B8 C46C0084 */ lwc1 $f12, 0x84($v1) +/* 0850EC 7F0505BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0850F0 7F0505C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0850F4 7F0505C4 24050051 */ li $a1, 81 +/* 0850F8 7F0505C8 0C002382 */ jal play_sfx_a1 +/* 0850FC 7F0505CC 00003025 */ move $a2, $zero +/* 085100 7F0505D0 8FAE0074 */ lw $t6, 0x74($sp) +/* 085104 7F0505D4 11C00013 */ beqz $t6, .L7F050624 +/* 085108 7F0505D8 00000000 */ nop +/* 08510C 7F0505DC 0FC23657 */ jal obj_get_activated_text +/* 085110 7F0505E0 8FA4006C */ lw $a0, 0x6c($sp) +/* 085114 7F0505E4 1440000D */ bnez $v0, .L7F05061C +/* 085118 7F0505E8 00402025 */ move $a0, $v0 +/* 08511C 7F0505EC 0FC26919 */ jal getPlayerCount +/* 085120 7F0505F0 00000000 */ nop +/* 085124 7F0505F4 28410003 */ slti $at, $v0, 3 +/* 085128 7F0505F8 10200005 */ beqz $at, .L7F050610 +/* 08512C 7F0505FC 00000000 */ nop +/* 085130 7F050600 0FC30776 */ jal get_textptr_for_textID +/* 085134 7F050604 3404A43D */ li $a0, 42045 +/* 085138 7F050608 10000004 */ b .L7F05061C +/* 08513C 7F05060C 00402025 */ move $a0, $v0 +.L7F050610: +/* 085140 7F050610 0FC30776 */ jal get_textptr_for_textID +/* 085144 7F050614 3404A43E */ li $a0, 42046 +/* 085148 7F050618 00402025 */ move $a0, $v0 +.L7F05061C: +/* 08514C 7F05061C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 085150 7F050620 00000000 */ nop +.L7F050624: +/* 085154 7F050624 10000013 */ b .L7F050674 +/* 085158 7F050628 24030001 */ li $v1, 1 +interact_default_object: +.L7F05062C: +/* 08515C 7F05062C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 085160 7F050630 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 085164 7F050634 240500E5 */ li $a1, 229 +/* 085168 7F050638 0C002382 */ jal play_sfx_a1 +/* 08516C 7F05063C 00003025 */ move $a2, $zero +/* 085170 7F050640 8FAF0074 */ lw $t7, 0x74($sp) +/* 085174 7F050644 51E0000B */ beql $t7, $zero, .L7F050674 +/* 085178 7F050648 24030004 */ li $v1, 4 +/* 08517C 7F05064C 0FC23657 */ jal obj_get_activated_text +/* 085180 7F050650 8FA4006C */ lw $a0, 0x6c($sp) +/* 085184 7F050654 14400004 */ bnez $v0, .L7F050668 +/* 085188 7F050658 00402025 */ move $a0, $v0 +/* 08518C 7F05065C 0FC30776 */ jal get_textptr_for_textID +/* 085190 7F050660 3404A43F */ li $a0, 42047 +/* 085194 7F050664 00402025 */ move $a0, $v0 +.L7F050668: +/* 085198 7F050668 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08519C 7F05066C 00000000 */ nop +/* 0851A0 7F050670 24030004 */ li $v1, 4 +.L7F050674: +/* 0851A4 7F050674 24010001 */ li $at, 1 +.L7F050678: +/* 0851A8 7F050678 1461000D */ bne $v1, $at, .L7F0506B0 +/* 0851AC 7F05067C 8FB8006C */ lw $t8, 0x6c($sp) +/* 0851B0 7F050680 8F190064 */ lw $t9, 0x64($t8) +/* 0851B4 7F050684 33280010 */ andi $t0, $t9, 0x10 +/* 0851B8 7F050688 15000009 */ bnez $t0, .L7F0506B0 +/* 0851BC 7F05068C 00000000 */ nop +/* 0851C0 7F050690 93060002 */ lbu $a2, 2($t8) +/* 0851C4 7F050694 03002025 */ move $a0, $t8 +/* 0851C8 7F050698 00002825 */ move $a1, $zero +/* 0851CC 7F05069C 30C90004 */ andi $t1, $a2, 4 +/* 0851D0 7F0506A0 0FC10366 */ jal sub_GAME_7F040D98 +/* 0851D4 7F0506A4 01203025 */ move $a2, $t1 +/* 0851D8 7F0506A8 10000007 */ b .L7F0506C8 +/* 0851DC 7F0506AC 24020001 */ li $v0, 1 +.L7F0506B0: +/* 0851E0 7F0506B0 10600005 */ beqz $v1, .L7F0506C8 +/* 0851E4 7F0506B4 00001025 */ move $v0, $zero +/* 0851E8 7F0506B8 0FC231C9 */ jal add_prop_to_inventory +/* 0851EC 7F0506BC 8FA40070 */ lw $a0, 0x70($sp) +/* 0851F0 7F0506C0 10000001 */ b .L7F0506C8 +/* 0851F4 7F0506C4 24020004 */ li $v0, 4 +.L7F0506C8: +/* 0851F8 7F0506C8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0851FC 7F0506CC 8FB00018 */ lw $s0, 0x18($sp) +/* 085200 7F0506D0 27BD0070 */ addiu $sp, $sp, 0x70 +/* 085204 7F0506D4 03E00008 */ jr $ra +/* 085208 7F0506D8 00000000 */ nop +) +#endif + + #endif @@ -29299,6 +36235,472 @@ glabel object_collectability_routines /* 085D98 7F051228 00000000 */ nop ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_800532E0 +.word 0xbf490fdb /*-0.78539819*/ +glabel D_800532E4 +.word 0x47ef4200 /*122500.0*/ +glabel D_800532E8 +.word 0x461c4000 /*10000.0*/ +glabel D_800532EC +.word 0x47742400 /*62500.0*/ +glabel D_800532F0 +.word 0x40490fdb /*3.1415927*/ +.text +glabel object_collectability_routines +/* 08520C 7F0506DC 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 085210 7F0506E0 AFBF002C */ sw $ra, 0x2c($sp) +/* 085214 7F0506E4 AFA40088 */ sw $a0, 0x88($sp) +/* 085218 7F0506E8 8C840004 */ lw $a0, 4($a0) +/* 08521C 7F0506EC 0FC13803 */ jal check_if_collectable_object +/* 085220 7F0506F0 AFA40084 */ sw $a0, 0x84($sp) +/* 085224 7F0506F4 1040000B */ beqz $v0, .L7F050724 +/* 085228 7F0506F8 8FA40084 */ lw $a0, 0x84($sp) +/* 08522C 7F0506FC 908F0003 */ lbu $t7, 3($a0) +/* 085230 7F050700 24010011 */ li $at, 17 +/* 085234 7F050704 51E10008 */ beql $t7, $at, .L7F050728 +/* 085238 7F050708 8FA40084 */ lw $a0, 0x84($sp) +/* 08523C 7F05070C 8C820008 */ lw $v0, 8($a0) +/* 085240 7F050710 0002C2C0 */ sll $t8, $v0, 0xb +/* 085244 7F050714 0703000B */ bgezl $t8, .L7F050744 +/* 085248 7F050718 00024B00 */ sll $t1, $v0, 0xc +/* 08524C 7F05071C 10000180 */ b .L7F050D20 +/* 085250 7F050720 00001025 */ move $v0, $zero +.L7F050724: +/* 085254 7F050724 8FA40084 */ lw $a0, 0x84($sp) +.L7F050728: +/* 085258 7F050728 8C820008 */ lw $v0, 8($a0) +/* 08525C 7F05072C 0002CB40 */ sll $t9, $v0, 0xd +/* 085260 7F050730 07220004 */ bltzl $t9, .L7F050744 +/* 085264 7F050734 00024B00 */ sll $t1, $v0, 0xc +/* 085268 7F050738 10000179 */ b .L7F050D20 +/* 08526C 7F05073C 00001025 */ move $v0, $zero +/* 085270 7F050740 00024B00 */ sll $t1, $v0, 0xc +.L7F050744: +/* 085274 7F050744 05230004 */ bgezl $t1, .L7F050758 +/* 085278 7F050748 8C8A0064 */ lw $t2, 0x64($a0) +/* 08527C 7F05074C 10000174 */ b .L7F050D20 +/* 085280 7F050750 00001025 */ move $v0, $zero +/* 085284 7F050754 8C8A0064 */ lw $t2, 0x64($a0) +.L7F050758: +/* 085288 7F050758 314B0080 */ andi $t3, $t2, 0x80 +/* 08528C 7F05075C 1160000A */ beqz $t3, .L7F050788 +/* 085290 7F050760 00000000 */ nop +/* 085294 7F050764 8C82006C */ lw $v0, 0x6c($a0) +/* 085298 7F050768 8C4C00BC */ lw $t4, 0xbc($v0) +/* 08529C 7F05076C 19800006 */ blez $t4, .L7F050788 +/* 0852A0 7F050770 00000000 */ nop +/* 0852A4 7F050774 8C4D0090 */ lw $t5, 0x90($v0) +/* 0852A8 7F050778 15A00003 */ bnez $t5, .L7F050788 +/* 0852AC 7F05077C 00000000 */ nop +/* 0852B0 7F050780 10000167 */ b .L7F050D20 +/* 0852B4 7F050784 00001025 */ move $v0, $zero +.L7F050788: +/* 0852B8 7F050788 0FC0F9EB */ jal sub_GAME_7F03E7AC +/* 0852BC 7F05078C 00000000 */ nop +/* 0852C0 7F050790 14400003 */ bnez $v0, .L7F0507A0 +/* 0852C4 7F050794 8FA50084 */ lw $a1, 0x84($sp) +/* 0852C8 7F050798 10000161 */ b .L7F050D20 +/* 0852CC 7F05079C 00001025 */ move $v0, $zero +.L7F0507A0: +/* 0852D0 7F0507A0 90A20003 */ lbu $v0, 3($a1) +/* 0852D4 7F0507A4 24010008 */ li $at, 8 +/* 0852D8 7F0507A8 8FAE0088 */ lw $t6, 0x88($sp) +/* 0852DC 7F0507AC 54410064 */ bnel $v0, $at, .L7F050940 +/* 0852E0 7F0507B0 24010007 */ li $at, 7 +/* 0852E4 7F0507B4 8DC30004 */ lw $v1, 4($t6) +/* 0852E8 7F0507B8 2401001A */ li $at, 26 +/* 0852EC 7F0507BC 80640080 */ lb $a0, 0x80($v1) +/* 0852F0 7F0507C0 10810003 */ beq $a0, $at, .L7F0507D0 +/* 0852F4 7F0507C4 24010057 */ li $at, 87 +/* 0852F8 7F0507C8 5481000B */ bnel $a0, $at, .L7F0507F8 +/* 0852FC 7F0507CC 2401001D */ li $at, 29 +.L7F0507D0: +/* 085300 7F0507D0 846F0082 */ lh $t7, 0x82($v1) +/* 085304 7F0507D4 05E10005 */ bgez $t7, .L7F0507EC +/* 085308 7F0507D8 00000000 */ nop +/* 08530C 7F0507DC 8CB80064 */ lw $t8, 0x64($a1) +/* 085310 7F0507E0 33190004 */ andi $t9, $t8, 4 +/* 085314 7F0507E4 53200004 */ beql $t9, $zero, .L7F0507F8 +/* 085318 7F0507E8 2401001D */ li $at, 29 +.L7F0507EC: +/* 08531C 7F0507EC 1000014C */ b .L7F050D20 +/* 085320 7F0507F0 00001025 */ move $v0, $zero +/* 085324 7F0507F4 2401001D */ li $at, 29 +.L7F0507F8: +/* 085328 7F0507F8 1081000D */ beq $a0, $at, .L7F050830 +/* 08532C 7F0507FC 2401001C */ li $at, 28 +/* 085330 7F050800 1081000B */ beq $a0, $at, .L7F050830 +/* 085334 7F050804 2401001B */ li $at, 27 +/* 085338 7F050808 10810009 */ beq $a0, $at, .L7F050830 +/* 08533C 7F05080C 24010021 */ li $at, 33 +/* 085340 7F050810 10810007 */ beq $a0, $at, .L7F050830 +/* 085344 7F050814 2401002F */ li $at, 47 +/* 085348 7F050818 10810005 */ beq $a0, $at, .L7F050830 +/* 08534C 7F05081C 24010030 */ li $at, 48 +/* 085350 7F050820 10810003 */ beq $a0, $at, .L7F050830 +/* 085354 7F050824 24010022 */ li $at, 34 +/* 085358 7F050828 5481000B */ bnel $a0, $at, .L7F050858 +/* 08535C 7F05082C 24010056 */ li $at, 86 +.L7F050830: +/* 085360 7F050830 84690082 */ lh $t1, 0x82($v1) +/* 085364 7F050834 05210005 */ bgez $t1, .L7F05084C +/* 085368 7F050838 00000000 */ nop +/* 08536C 7F05083C 8CAA0064 */ lw $t2, 0x64($a1) +/* 085370 7F050840 314B0004 */ andi $t3, $t2, 4 +/* 085374 7F050844 51600004 */ beql $t3, $zero, .L7F050858 +/* 085378 7F050848 24010056 */ li $at, 86 +.L7F05084C: +/* 08537C 7F05084C 10000134 */ b .L7F050D20 +/* 085380 7F050850 00001025 */ move $v0, $zero +/* 085384 7F050854 24010056 */ li $at, 86 +.L7F050858: +/* 085388 7F050858 14810007 */ bne $a0, $at, .L7F050878 +/* 08538C 7F05085C 00000000 */ nop +/* 085390 7F050860 8CAC0064 */ lw $t4, 0x64($a1) +/* 085394 7F050864 318D0080 */ andi $t5, $t4, 0x80 +/* 085398 7F050868 11A00003 */ beqz $t5, .L7F050878 +/* 08539C 7F05086C 00000000 */ nop +/* 0853A0 7F050870 1000012B */ b .L7F050D20 +/* 0853A4 7F050874 00001025 */ move $v0, $zero +.L7F050878: +/* 0853A8 7F050878 0FC230C5 */ jal is_weapon_in_inv +/* 0853AC 7F05087C AFA30080 */ sw $v1, 0x80($sp) +/* 0853B0 7F050880 1040009B */ beqz $v0, .L7F050AF0 +/* 0853B4 7F050884 8FA30080 */ lw $v1, 0x80($sp) +/* 0853B8 7F050888 80640080 */ lb $a0, 0x80($v1) +/* 0853BC 7F05088C 0FC1A50B */ jal get_ammo_type_for_weapon +/* 0853C0 7F050890 AFA30080 */ sw $v1, 0x80($sp) +/* 0853C4 7F050894 10400096 */ beqz $v0, .L7F050AF0 +/* 0853C8 7F050898 8FA30080 */ lw $v1, 0x80($sp) +/* 0853CC 7F05089C 80640080 */ lb $a0, 0x80($v1) +/* 0853D0 7F0508A0 0FC1A514 */ jal get_ammo_count_for_weapon +/* 0853D4 7F0508A4 AFA30080 */ sw $v1, 0x80($sp) +/* 0853D8 7F0508A8 8FA30080 */ lw $v1, 0x80($sp) +/* 0853DC 7F0508AC 80640080 */ lb $a0, 0x80($v1) +/* 0853E0 7F0508B0 0FC1A52C */ jal get_max_ammo_for_weapon +/* 0853E4 7F0508B4 AFA20038 */ sw $v0, 0x38($sp) +/* 0853E8 7F0508B8 8FA60038 */ lw $a2, 0x38($sp) +/* 0853EC 7F0508BC 8FA30080 */ lw $v1, 0x80($sp) +/* 0853F0 7F0508C0 00C2082A */ slt $at, $a2, $v0 +/* 0853F4 7F0508C4 1420008A */ bnez $at, .L7F050AF0 +/* 0853F8 7F0508C8 00000000 */ nop +/* 0853FC 7F0508CC 8C620084 */ lw $v0, 0x84($v1) +/* 085400 7F0508D0 14400004 */ bnez $v0, .L7F0508E4 +/* 085404 7F0508D4 00000000 */ nop +/* 085408 7F0508D8 806E0081 */ lb $t6, 0x81($v1) +/* 08540C 7F0508DC 05C00015 */ bltz $t6, .L7F050934 +/* 085410 7F0508E0 00000000 */ nop +.L7F0508E4: +/* 085414 7F0508E4 50400005 */ beql $v0, $zero, .L7F0508FC +/* 085418 7F0508E8 80650081 */ lb $a1, 0x81($v1) +/* 08541C 7F0508EC 80450080 */ lb $a1, 0x80($v0) +/* 085420 7F0508F0 10000003 */ b .L7F050900 +/* 085424 7F0508F4 00A02025 */ move $a0, $a1 +/* 085428 7F0508F8 80650081 */ lb $a1, 0x81($v1) +.L7F0508FC: +/* 08542C 7F0508FC 00A02025 */ move $a0, $a1 +.L7F050900: +/* 085430 7F050900 8C6F0008 */ lw $t7, 8($v1) +/* 085434 7F050904 000FC0C0 */ sll $t8, $t7, 3 +/* 085438 7F050908 07030004 */ bgezl $t8, .L7F05091C +/* 08543C 7F05090C 80640080 */ lb $a0, 0x80($v1) +/* 085440 7F050910 10000002 */ b .L7F05091C +/* 085444 7F050914 80650080 */ lb $a1, 0x80($v1) +/* 085448 7F050918 80640080 */ lb $a0, 0x80($v1) +.L7F05091C: +/* 08544C 7F05091C 0FC230E7 */ jal is_item_for_hand_in_inventory +/* 085450 7F050920 00000000 */ nop +/* 085454 7F050924 10400072 */ beqz $v0, .L7F050AF0 +/* 085458 7F050928 00000000 */ nop +/* 08545C 7F05092C 100000FC */ b .L7F050D20 +/* 085460 7F050930 00001025 */ move $v0, $zero +.L7F050934: +/* 085464 7F050934 100000FA */ b .L7F050D20 +/* 085468 7F050938 00001025 */ move $v0, $zero +/* 08546C 7F05093C 24010007 */ li $at, 7 +.L7F050940: +/* 085470 7F050940 1441000F */ bne $v0, $at, .L7F050980 +/* 085474 7F050944 8FB90088 */ lw $t9, 0x88($sp) +/* 085478 7F050948 8F230004 */ lw $v1, 4($t9) +/* 08547C 7F05094C 8C640080 */ lw $a0, 0x80($v1) +/* 085480 7F050950 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085484 7F050954 AFA30074 */ sw $v1, 0x74($sp) +/* 085488 7F050958 8FA30074 */ lw $v1, 0x74($sp) +/* 08548C 7F05095C 8C640080 */ lw $a0, 0x80($v1) +/* 085490 7F050960 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085494 7F050964 AFA20038 */ sw $v0, 0x38($sp) +/* 085498 7F050968 8FA60038 */ lw $a2, 0x38($sp) +/* 08549C 7F05096C 00C2082A */ slt $at, $a2, $v0 +/* 0854A0 7F050970 1420005F */ bnez $at, .L7F050AF0 +/* 0854A4 7F050974 00000000 */ nop +/* 0854A8 7F050978 100000E9 */ b .L7F050D20 +/* 0854AC 7F05097C 00001025 */ move $v0, $zero +.L7F050980: +/* 0854B0 7F050980 24010014 */ li $at, 20 +/* 0854B4 7F050984 1441002C */ bne $v0, $at, .L7F050A38 +/* 0854B8 7F050988 8FA90088 */ lw $t1, 0x88($sp) +/* 0854BC 7F05098C 8D2A0004 */ lw $t2, 4($t1) +/* 0854C0 7F050990 240B0001 */ li $t3, 1 +/* 0854C4 7F050994 AFAB006C */ sw $t3, 0x6c($sp) +/* 0854C8 7F050998 00A02025 */ move $a0, $a1 +/* 0854CC 7F05099C 0FC0FFF0 */ jal do_something_if_object_destroyed +/* 0854D0 7F0509A0 AFAA0070 */ sw $t2, 0x70($sp) +/* 0854D4 7F0509A4 10400003 */ beqz $v0, .L7F0509B4 +/* 0854D8 7F0509A8 8FA30070 */ lw $v1, 0x70($sp) +/* 0854DC 7F0509AC 100000DC */ b .L7F050D20 +/* 0854E0 7F0509B0 00001025 */ move $v0, $zero +.L7F0509B4: +/* 0854E4 7F0509B4 00001025 */ move $v0, $zero +.L7F0509B8: +/* 0854E8 7F0509B8 24450001 */ addiu $a1, $v0, 1 +/* 0854EC 7F0509BC 24010001 */ li $at, 1 +/* 0854F0 7F0509C0 14410002 */ bne $v0, $at, .L7F0509CC +/* 0854F4 7F0509C4 00A02025 */ move $a0, $a1 +/* 0854F8 7F0509C8 24040001 */ li $a0, 1 +.L7F0509CC: +/* 0854FC 7F0509CC 946C0082 */ lhu $t4, 0x82($v1) +/* 085500 7F0509D0 59800011 */ blezl $t4, .L7F050A18 +/* 085504 7F0509D4 2401000D */ li $at, 13 +/* 085508 7F0509D8 AFA30030 */ sw $v1, 0x30($sp) +/* 08550C 7F0509DC AFA40064 */ sw $a0, 0x64($sp) +/* 085510 7F0509E0 0FC1A490 */ jal check_cur_player_ammo_amount_in_inventory +/* 085514 7F0509E4 AFA50034 */ sw $a1, 0x34($sp) +/* 085518 7F0509E8 8FA40064 */ lw $a0, 0x64($sp) +/* 08551C 7F0509EC 0FC1A4B5 */ jal get_max_ammo_for_type +/* 085520 7F0509F0 AFA20038 */ sw $v0, 0x38($sp) +/* 085524 7F0509F4 8FA60038 */ lw $a2, 0x38($sp) +/* 085528 7F0509F8 8FA30030 */ lw $v1, 0x30($sp) +/* 08552C 7F0509FC 8FA50034 */ lw $a1, 0x34($sp) +/* 085530 7F050A00 00C2082A */ slt $at, $a2, $v0 +/* 085534 7F050A04 50200004 */ beql $at, $zero, .L7F050A18 +/* 085538 7F050A08 2401000D */ li $at, 13 +/* 08553C 7F050A0C 10000005 */ b .L7F050A24 +/* 085540 7F050A10 AFA0006C */ sw $zero, 0x6c($sp) +/* 085544 7F050A14 2401000D */ li $at, 13 +.L7F050A18: +/* 085548 7F050A18 00A01025 */ move $v0, $a1 +/* 08554C 7F050A1C 14A1FFE6 */ bne $a1, $at, .L7F0509B8 +/* 085550 7F050A20 24630004 */ addiu $v1, $v1, 4 +.L7F050A24: +/* 085554 7F050A24 8FAD006C */ lw $t5, 0x6c($sp) +/* 085558 7F050A28 11A00031 */ beqz $t5, .L7F050AF0 +/* 08555C 7F050A2C 00000000 */ nop +/* 085560 7F050A30 100000BB */ b .L7F050D20 +/* 085564 7F050A34 00001025 */ move $v0, $zero +.L7F050A38: +/* 085568 7F050A38 24010015 */ li $at, 21 +/* 08556C 7F050A3C 1441002C */ bne $v0, $at, .L7F050AF0 +/* 085570 7F050A40 8FAE0088 */ lw $t6, 0x88($sp) +/* 085574 7F050A44 8DCF0004 */ lw $t7, 4($t6) +/* 085578 7F050A48 AFA0005C */ sw $zero, 0x5c($sp) +/* 08557C 7F050A4C 0FC228BF */ jal get_BONDdata_watch_armor +/* 085580 7F050A50 AFAF0060 */ sw $t7, 0x60($sp) +/* 085584 7F050A54 8FB80060 */ lw $t8, 0x60($sp) +/* 085588 7F050A58 24190001 */ li $t9, 1 +/* 08558C 7F050A5C C7040084 */ lwc1 $f4, 0x84($t8) +/* 085590 7F050A60 4600203E */ c.le.s $f4, $f0 +/* 085594 7F050A64 00000000 */ nop +/* 085598 7F050A68 45000003 */ bc1f .L7F050A78 +/* 08559C 7F050A6C 00000000 */ nop +/* 0855A0 7F050A70 1000001A */ b .L7F050ADC +/* 0855A4 7F050A74 AFB9005C */ sw $t9, 0x5c($sp) +.L7F050A78: +/* 0855A8 7F050A78 0FC26919 */ jal getPlayerCount +/* 0855AC 7F050A7C 00000000 */ nop +/* 0855B0 7F050A80 28410002 */ slti $at, $v0, 2 +/* 0855B4 7F050A84 54200016 */ bnezl $at, .L7F050AE0 +/* 0855B8 7F050A88 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855BC 7F050A8C 0FC051D6 */ jal get_scenario +/* 0855C0 7F050A90 00000000 */ nop +/* 0855C4 7F050A94 24010002 */ li $at, 2 +/* 0855C8 7F050A98 14410008 */ bne $v0, $at, .L7F050ABC +/* 0855CC 7F050A9C 00401825 */ move $v1, $v0 +/* 0855D0 7F050AA0 0FC233E0 */ jal bondinvIsAliveWithFlag +/* 0855D4 7F050AA4 AFA20058 */ sw $v0, 0x58($sp) +/* 0855D8 7F050AA8 10400004 */ beqz $v0, .L7F050ABC +/* 0855DC 7F050AAC 8FA30058 */ lw $v1, 0x58($sp) +/* 0855E0 7F050AB0 24090001 */ li $t1, 1 +/* 0855E4 7F050AB4 10000009 */ b .L7F050ADC +/* 0855E8 7F050AB8 AFA9005C */ sw $t1, 0x5c($sp) +.L7F050ABC: +/* 0855EC 7F050ABC 24010003 */ li $at, 3 +/* 0855F0 7F050AC0 54610007 */ bnel $v1, $at, .L7F050AE0 +/* 0855F4 7F050AC4 8FAB005C */ lw $t3, 0x5c($sp) +/* 0855F8 7F050AC8 0FC233F0 */ jal checkforgoldengun +/* 0855FC 7F050ACC 00000000 */ nop +/* 085600 7F050AD0 10400002 */ beqz $v0, .L7F050ADC +/* 085604 7F050AD4 240A0001 */ li $t2, 1 +/* 085608 7F050AD8 AFAA005C */ sw $t2, 0x5c($sp) +.L7F050ADC: +/* 08560C 7F050ADC 8FAB005C */ lw $t3, 0x5c($sp) +.L7F050AE0: +/* 085610 7F050AE0 11600003 */ beqz $t3, .L7F050AF0 +/* 085614 7F050AE4 00000000 */ nop +/* 085618 7F050AE8 1000008D */ b .L7F050D20 +/* 08561C 7F050AEC 00001025 */ move $v0, $zero +.L7F050AF0: +/* 085620 7F050AF0 0FC227C4 */ jal get_curplay_vertical_rotation_in_degrees +/* 085624 7F050AF4 00000000 */ nop +/* 085628 7F050AF8 3C018005 */ lui $at, %hi(D_800532E0) +/* 08562C 7F050AFC C42632E0 */ lwc1 $f6, %lo(D_800532E0)($at) +/* 085630 7F050B00 3C0C8008 */ lui $t4, %hi(pPlayer) +/* 085634 7F050B04 4606003C */ c.lt.s $f0, $f6 +/* 085638 7F050B08 00000000 */ nop +/* 08563C 7F050B0C 45000007 */ bc1f .L7F050B2C +/* 085640 7F050B10 00000000 */ nop +/* 085644 7F050B14 8D8CA0B0 */ lw $t4, %lo(pPlayer)($t4) +/* 085648 7F050B18 8D8D1270 */ lw $t5, 0x1270($t4) +/* 08564C 7F050B1C 05A10003 */ bgez $t5, .L7F050B2C +/* 085650 7F050B20 00000000 */ nop +/* 085654 7F050B24 1000007E */ b .L7F050D20 +/* 085658 7F050B28 00001025 */ move $v0, $zero +.L7F050B2C: +/* 08565C 7F050B2C 0FC225E6 */ jal get_curplayer_positiondata +/* 085660 7F050B30 00000000 */ nop +/* 085664 7F050B34 3C0F8008 */ lui $t7, %hi(pPlayer) +/* 085668 7F050B38 8FAE0084 */ lw $t6, 0x84($sp) +/* 08566C 7F050B3C 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) +/* 085670 7F050B40 C44A0008 */ lwc1 $f10, 8($v0) +/* 085674 7F050B44 C452000C */ lwc1 $f18, 0xc($v0) +/* 085678 7F050B48 8DF81270 */ lw $t8, 0x1270($t7) +/* 08567C 7F050B4C C4460010 */ lwc1 $f6, 0x10($v0) +/* 085680 7F050B50 C5C80058 */ lwc1 $f8, 0x58($t6) +/* 085684 7F050B54 C5D0005C */ lwc1 $f16, 0x5c($t6) +/* 085688 7F050B58 C5C40060 */ lwc1 $f4, 0x60($t6) +/* 08568C 7F050B5C 2B01003C */ slti $at, $t8, 0x3c +/* 085690 7F050B60 00404025 */ move $t0, $v0 +/* 085694 7F050B64 460A4001 */ sub.s $f0, $f8, $f10 +/* 085698 7F050B68 46128301 */ sub.s $f12, $f16, $f18 +/* 08569C 7F050B6C 14200022 */ bnez $at, .L7F050BF8 +/* 0856A0 7F050B70 46062081 */ sub.s $f2, $f4, $f6 +/* 0856A4 7F050B74 46000202 */ mul.s $f8, $f0, $f0 +/* 0856A8 7F050B78 3C018005 */ lui $at, %hi(D_800532E4) +/* 0856AC 7F050B7C C43232E4 */ lwc1 $f18, %lo(D_800532E4)($at) +/* 0856B0 7F050B80 46021282 */ mul.s $f10, $f2, $f2 +/* 0856B4 7F050B84 3C01C3FA */ li $at, 0xC3FA0000 # -500.000000 +/* 0856B8 7F050B88 00001025 */ move $v0, $zero +/* 0856BC 7F050B8C 460A4400 */ add.s $f16, $f8, $f10 +/* 0856C0 7F050B90 4612803E */ c.le.s $f16, $f18 +/* 0856C4 7F050B94 00000000 */ nop +/* 0856C8 7F050B98 45000002 */ bc1f .L7F050BA4 +/* 0856CC 7F050B9C 00000000 */ nop +/* 0856D0 7F050BA0 24020001 */ li $v0, 1 +.L7F050BA4: +/* 0856D4 7F050BA4 10400012 */ beqz $v0, .L7F050BF0 +/* 0856D8 7F050BA8 00403025 */ move $a2, $v0 +/* 0856DC 7F050BAC 44812000 */ mtc1 $at, $f4 +/* 0856E0 7F050BB0 3C0143FA */ li $at, 0x43FA0000 # 500.000000 +/* 0856E4 7F050BB4 00001025 */ move $v0, $zero +/* 0856E8 7F050BB8 460C203E */ c.le.s $f4, $f12 +/* 0856EC 7F050BBC 00000000 */ nop +/* 0856F0 7F050BC0 45000002 */ bc1f .L7F050BCC +/* 0856F4 7F050BC4 00000000 */ nop +/* 0856F8 7F050BC8 24020001 */ li $v0, 1 +.L7F050BCC: +/* 0856FC 7F050BCC 10400008 */ beqz $v0, .L7F050BF0 +/* 085700 7F050BD0 00403025 */ move $a2, $v0 +/* 085704 7F050BD4 44813000 */ mtc1 $at, $f6 +/* 085708 7F050BD8 00003025 */ move $a2, $zero +/* 08570C 7F050BDC 4606603E */ c.le.s $f12, $f6 +/* 085710 7F050BE0 00000000 */ nop +/* 085714 7F050BE4 45000002 */ bc1f .L7F050BF0 +/* 085718 7F050BE8 00000000 */ nop +/* 08571C 7F050BEC 24060001 */ li $a2, 1 +.L7F050BF0: +/* 085720 7F050BF0 10000021 */ b .L7F050C78 +/* 085724 7F050BF4 00C01825 */ move $v1, $a2 +.L7F050BF8: +/* 085728 7F050BF8 46000202 */ mul.s $f8, $f0, $f0 +/* 08572C 7F050BFC 3C018005 */ lui $at, %hi(D_800532E8) +/* 085730 7F050C00 C43032E8 */ lwc1 $f16, %lo(D_800532E8)($at) +/* 085734 7F050C04 46021282 */ mul.s $f10, $f2, $f2 +/* 085738 7F050C08 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 08573C 7F050C0C 00001025 */ move $v0, $zero +/* 085740 7F050C10 460A4480 */ add.s $f18, $f8, $f10 +/* 085744 7F050C14 4610903E */ c.le.s $f18, $f16 +/* 085748 7F050C18 00000000 */ nop +/* 08574C 7F050C1C 45000002 */ bc1f .L7F050C28 +/* 085750 7F050C20 00000000 */ nop +/* 085754 7F050C24 24020001 */ li $v0, 1 +.L7F050C28: +/* 085758 7F050C28 10400012 */ beqz $v0, .L7F050C74 +/* 08575C 7F050C2C 00403025 */ move $a2, $v0 +/* 085760 7F050C30 44812000 */ mtc1 $at, $f4 +/* 085764 7F050C34 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 085768 7F050C38 00001025 */ move $v0, $zero +/* 08576C 7F050C3C 460C203E */ c.le.s $f4, $f12 +/* 085770 7F050C40 00000000 */ nop +/* 085774 7F050C44 45000002 */ bc1f .L7F050C50 +/* 085778 7F050C48 00000000 */ nop +/* 08577C 7F050C4C 24020001 */ li $v0, 1 +.L7F050C50: +/* 085780 7F050C50 10400008 */ beqz $v0, .L7F050C74 +/* 085784 7F050C54 00403025 */ move $a2, $v0 +/* 085788 7F050C58 44813000 */ mtc1 $at, $f6 +/* 08578C 7F050C5C 00003025 */ move $a2, $zero +/* 085790 7F050C60 4606603E */ c.le.s $f12, $f6 +/* 085794 7F050C64 00000000 */ nop +/* 085798 7F050C68 45020003 */ bc1fl .L7F050C78 +/* 08579C 7F050C6C 00C01825 */ move $v1, $a2 +/* 0857A0 7F050C70 24060001 */ li $a2, 1 +.L7F050C74: +/* 0857A4 7F050C74 00C01825 */ move $v1, $a2 +.L7F050C78: +/* 0857A8 7F050C78 10C00022 */ beqz $a2, .L7F050D04 +/* 0857AC 7F050C7C 8FB90084 */ lw $t9, 0x84($sp) +/* 0857B0 7F050C80 8F29000C */ lw $t1, 0xc($t9) +/* 0857B4 7F050C84 8FA20088 */ lw $v0, 0x88($sp) +/* 0857B8 7F050C88 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0857BC 7F050C8C 312A1000 */ andi $t2, $t1, 0x1000 +/* 0857C0 7F050C90 1540001C */ bnez $t2, .L7F050D04 +/* 0857C4 7F050C94 27A4003C */ addiu $a0, $sp, 0x3c +/* 0857C8 7F050C98 8D0B0014 */ lw $t3, 0x14($t0) +/* 0857CC 7F050C9C 44810000 */ mtc1 $at, $f0 +/* 0857D0 7F050CA0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0857D4 7F050CA4 AFAB003C */ sw $t3, 0x3c($sp) +/* 0857D8 7F050CA8 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0857DC 7F050CAC 8C470008 */ lw $a3, 8($v0) +/* 0857E0 7F050CB0 8D060010 */ lw $a2, 0x10($t0) +/* 0857E4 7F050CB4 8D050008 */ lw $a1, 8($t0) +/* 0857E8 7F050CB8 44818000 */ mtc1 $at, $f16 +/* 0857EC 7F050CBC 44805000 */ mtc1 $zero, $f10 +/* 0857F0 7F050CC0 240C0002 */ li $t4, 2 +/* 0857F4 7F050CC4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0857F8 7F050CC8 AFA30040 */ sw $v1, 0x40($sp) +/* 0857FC 7F050CCC E7A0001C */ swc1 $f0, 0x1c($sp) +/* 085800 7F050CD0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 085804 7F050CD4 E7A80010 */ swc1 $f8, 0x10($sp) +/* 085808 7F050CD8 E7B00024 */ swc1 $f16, 0x24($sp) +/* 08580C 7F050CDC 0FC2C389 */ jal sub_GAME_7F0B0E24 +/* 085810 7F050CE0 E7AA0020 */ swc1 $f10, 0x20($sp) +/* 085814 7F050CE4 10400006 */ beqz $v0, .L7F050D00 +/* 085818 7F050CE8 8FA30040 */ lw $v1, 0x40($sp) +/* 08581C 7F050CEC 8FAE0088 */ lw $t6, 0x88($sp) +/* 085820 7F050CF0 8FAD003C */ lw $t5, 0x3c($sp) +/* 085824 7F050CF4 8DCF0014 */ lw $t7, 0x14($t6) +/* 085828 7F050CF8 11AF0002 */ beq $t5, $t7, .L7F050D04 +/* 08582C 7F050CFC 00000000 */ nop +.L7F050D00: +/* 085830 7F050D00 00001825 */ move $v1, $zero +.L7F050D04: +/* 085834 7F050D04 10600006 */ beqz $v1, .L7F050D20 +/* 085838 7F050D08 00001025 */ move $v0, $zero +/* 08583C 7F050D0C 8FA40088 */ lw $a0, 0x88($sp) +/* 085840 7F050D10 0FC14094 */ jal collect_or_interact_object +/* 085844 7F050D14 24050001 */ li $a1, 1 +/* 085848 7F050D18 10000002 */ b .L7F050D24 +/* 08584C 7F050D1C 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D20: +/* 085850 7F050D20 8FBF002C */ lw $ra, 0x2c($sp) +.L7F050D24: +/* 085854 7F050D24 27BD0088 */ addiu $sp, $sp, 0x88 +/* 085858 7F050D28 03E00008 */ jr $ra +/* 08585C 7F050D2C 00000000 */ nop +) +#endif #endif @@ -29732,7 +37134,7 @@ glabel sub_GAME_7F0510C0 .L7F05123C: /* 085D6C 7F05123C 52000005 */ beql $s0, $zero, .L7F051254 /* 085D70 7F051240 8FBF002C */ lw $ra, 0x2c($sp) -/* 085D74 7F051244 0FC0E921 */ jal set_last_obj_pos_data +/* 085D74 7F051244 0FC0E921 */ jal propFree /* 085D78 7F051248 02002025 */ move $a0, $s0 /* 085D7C 7F05124C 00008025 */ move $s0, $zero .L7F051250: @@ -30378,7 +37780,7 @@ void trigger_remote_mine_detonation(void) uVar1 = get_cur_playernum(); D_80030AF4 = D_80030AF4 | 1 << (uVar1 & 0x1f); - play_sfx_a1(ptr_sfx_buf,0xf3,0x0); + play_sfx_a1(g_musicSfxBufferPtr,0xf3,0x0); } #else GLOBAL_ASM( @@ -30395,8 +37797,8 @@ glabel trigger_remote_mine_detonation /* 086568 7F051A38 004FC004 */ sllv $t8, $t7, $v0 /* 08656C 7F051A3C 01D8C825 */ or $t9, $t6, $t8 /* 086570 7F051A40 AC790000 */ sw $t9, ($v1) -/* 086574 7F051A44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 086578 7F051A48 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 086574 7F051A44 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 086578 7F051A48 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08657C 7F051A4C 240500F3 */ li $a1, 243 /* 086580 7F051A50 0C002382 */ jal play_sfx_a1 /* 086584 7F051A54 00003025 */ move $a2, $zero @@ -31126,7 +38528,7 @@ glabel create_new_item_instance_of_model .L7F0521C0: /* 086CF0 7F0521C0 52000004 */ beql $s0, $zero, .L7F0521D4 /* 086CF4 7F0521C4 8FBF001C */ lw $ra, 0x1c($sp) -/* 086CF8 7F0521C8 0FC0E921 */ jal set_last_obj_pos_data +/* 086CF8 7F0521C8 0FC0E921 */ jal propFree /* 086CFC 7F0521CC 02002025 */ move $a0, $s0 /* 086D00 7F0521D0 8FBF001C */ lw $ra, 0x1c($sp) .L7F0521D4: @@ -31293,7 +38695,7 @@ glabel something_with_generating_object .L7F0523A4: /* 086ED4 7F0523A4 52200005 */ beql $s1, $zero, .L7F0523BC /* 086ED8 7F0523A8 8FBF002C */ lw $ra, 0x2c($sp) -/* 086EDC 7F0523AC 0FC0E921 */ jal set_last_obj_pos_data +/* 086EDC 7F0523AC 0FC0E921 */ jal propFree /* 086EE0 7F0523B0 02202025 */ move $a0, $s1 /* 086EE4 7F0523B4 00008825 */ move $s1, $zero .L7F0523B8: @@ -31406,7 +38808,7 @@ glabel sub_GAME_7F0523F8 /* 08700C 7F0524DC 8E380008 */ lw $t8, 8($s1) /* 087010 7F0524E0 8704000E */ lh $a0, 0xe($t8) /* 087014 7F0524E4 0004C980 */ sll $t9, $a0, 6 -/* 087018 7F0524E8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 087018 7F0524E8 0FC2F5C5 */ jal dynAllocate /* 08701C 7F0524EC 03202025 */ move $a0, $t9 /* 087020 7F0524F0 AFA20078 */ sw $v0, 0x78($sp) /* 087024 7F0524F4 27A40068 */ addiu $a0, $sp, 0x68 @@ -32210,7 +39612,7 @@ glabel sub_GAME_7F052D8C /* 087974 7F052E44 00186C03 */ sra $t5, $t8, 0x10 .L7F052E48: /* 087978 7F052E48 86A4000C */ lh $a0, 0xc($s5) -/* 08797C 7F052E4C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 08797C 7F052E4C 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 087980 7F052E50 A7AD0042 */ sh $t5, 0x42($sp) /* 087984 7F052E54 87AD0042 */ lh $t5, 0x42($sp) /* 087988 7F052E58 AEE20000 */ sw $v0, ($s7) @@ -33352,177 +40754,177 @@ glabel play_door_opening_soundeffect_0 /* 088714 7F053BE4 01400008 */ jr $t2 /* 088718 7F053BE8 00000000 */ nop .L7F053BEC: -/* 08871C 7F053BEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088720 7F053BF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08871C 7F053BEC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088720 7F053BF0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088724 7F053BF4 240500D2 */ li $a1, 210 /* 088728 7F053BF8 00003025 */ move $a2, $zero /* 08872C 7F053BFC 0C002382 */ jal play_sfx_a1 /* 088730 7F053C00 AFA70018 */ sw $a3, 0x18($sp) /* 088734 7F053C04 8FA70018 */ lw $a3, 0x18($sp) /* 088738 7F053C08 AFA2001C */ sw $v0, 0x1c($sp) -/* 08873C 7F053C0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08873C 7F053C0C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088740 7F053C10 10E000C6 */ beqz $a3, .L7F053F2C /* 088744 7F053C14 240500D3 */ li $a1, 211 -/* 088748 7F053C18 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088748 7F053C18 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08874C 7F053C1C 0C002382 */ jal play_sfx_a1 /* 088750 7F053C20 00E03025 */ move $a2, $a3 /* 088754 7F053C24 100000C2 */ b .L7F053F30 /* 088758 7F053C28 8FAC001C */ lw $t4, 0x1c($sp) .L7F053C2C: -/* 08875C 7F053C2C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088760 7F053C30 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08875C 7F053C2C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088760 7F053C30 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088764 7F053C34 240500D2 */ li $a1, 210 /* 088768 7F053C38 00003025 */ move $a2, $zero /* 08876C 7F053C3C 0C002382 */ jal play_sfx_a1 /* 088770 7F053C40 AFA70018 */ sw $a3, 0x18($sp) /* 088774 7F053C44 8FA70018 */ lw $a3, 0x18($sp) /* 088778 7F053C48 AFA2001C */ sw $v0, 0x1c($sp) -/* 08877C 7F053C4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08877C 7F053C4C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088780 7F053C50 10E000B6 */ beqz $a3, .L7F053F2C /* 088784 7F053C54 24050007 */ li $a1, 7 -/* 088788 7F053C58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088788 7F053C58 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08878C 7F053C5C 0C002382 */ jal play_sfx_a1 /* 088790 7F053C60 00E03025 */ move $a2, $a3 /* 088794 7F053C64 100000B2 */ b .L7F053F30 /* 088798 7F053C68 8FAC001C */ lw $t4, 0x1c($sp) .L7F053C6C: -/* 08879C 7F053C6C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0887A0 7F053C70 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08879C 7F053C6C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0887A0 7F053C70 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0887A4 7F053C74 240500CA */ li $a1, 202 /* 0887A8 7F053C78 00003025 */ move $a2, $zero /* 0887AC 7F053C7C 0C002382 */ jal play_sfx_a1 /* 0887B0 7F053C80 AFA70018 */ sw $a3, 0x18($sp) /* 0887B4 7F053C84 8FA70018 */ lw $a3, 0x18($sp) /* 0887B8 7F053C88 AFA2001C */ sw $v0, 0x1c($sp) -/* 0887BC 7F053C8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887BC 7F053C8C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0887C0 7F053C90 10E000A6 */ beqz $a3, .L7F053F2C /* 0887C4 7F053C94 240500CC */ li $a1, 204 -/* 0887C8 7F053C98 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887C8 7F053C98 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0887CC 7F053C9C 0C002382 */ jal play_sfx_a1 /* 0887D0 7F053CA0 00E03025 */ move $a2, $a3 /* 0887D4 7F053CA4 100000A2 */ b .L7F053F30 /* 0887D8 7F053CA8 8FAC001C */ lw $t4, 0x1c($sp) .L7F053CAC: -/* 0887DC 7F053CAC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0887E0 7F053CB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0887DC 7F053CAC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0887E0 7F053CB0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0887E4 7F053CB4 240500D6 */ li $a1, 214 /* 0887E8 7F053CB8 00003025 */ move $a2, $zero /* 0887EC 7F053CBC 0C002382 */ jal play_sfx_a1 /* 0887F0 7F053CC0 AFA70018 */ sw $a3, 0x18($sp) /* 0887F4 7F053CC4 8FA70018 */ lw $a3, 0x18($sp) /* 0887F8 7F053CC8 AFA2001C */ sw $v0, 0x1c($sp) -/* 0887FC 7F053CCC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0887FC 7F053CCC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088800 7F053CD0 10E00096 */ beqz $a3, .L7F053F2C /* 088804 7F053CD4 240500D8 */ li $a1, 216 -/* 088808 7F053CD8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088808 7F053CD8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08880C 7F053CDC 0C002382 */ jal play_sfx_a1 /* 088810 7F053CE0 00E03025 */ move $a2, $a3 /* 088814 7F053CE4 10000092 */ b .L7F053F30 /* 088818 7F053CE8 8FAC001C */ lw $t4, 0x1c($sp) .L7F053CEC: -/* 08881C 7F053CEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088820 7F053CF0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08881C 7F053CEC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088820 7F053CF0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088824 7F053CF4 240500BC */ li $a1, 188 /* 088828 7F053CF8 0C002382 */ jal play_sfx_a1 /* 08882C 7F053CFC 00003025 */ move $a2, $zero /* 088830 7F053D00 1000008A */ b .L7F053F2C /* 088834 7F053D04 AFA2001C */ sw $v0, 0x1c($sp) .L7F053D08: -/* 088838 7F053D08 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 08883C 7F053D0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088838 7F053D08 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 08883C 7F053D0C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088840 7F053D10 24050007 */ li $a1, 7 /* 088844 7F053D14 0C002382 */ jal play_sfx_a1 /* 088848 7F053D18 00003025 */ move $a2, $zero /* 08884C 7F053D1C 10000083 */ b .L7F053F2C /* 088850 7F053D20 AFA2001C */ sw $v0, 0x1c($sp) .L7F053D24: -/* 088854 7F053D24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088858 7F053D28 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088854 7F053D24 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088858 7F053D28 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08885C 7F053D2C 240500C0 */ li $a1, 192 /* 088860 7F053D30 00003025 */ move $a2, $zero /* 088864 7F053D34 0C002382 */ jal play_sfx_a1 /* 088868 7F053D38 AFA70018 */ sw $a3, 0x18($sp) /* 08886C 7F053D3C 8FA70018 */ lw $a3, 0x18($sp) /* 088870 7F053D40 AFA2001C */ sw $v0, 0x1c($sp) -/* 088874 7F053D44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088874 7F053D44 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088878 7F053D48 10E00078 */ beqz $a3, .L7F053F2C /* 08887C 7F053D4C 240500BF */ li $a1, 191 -/* 088880 7F053D50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088880 7F053D50 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088884 7F053D54 0C002382 */ jal play_sfx_a1 /* 088888 7F053D58 00E03025 */ move $a2, $a3 /* 08888C 7F053D5C 10000074 */ b .L7F053F30 /* 088890 7F053D60 8FAC001C */ lw $t4, 0x1c($sp) .L7F053D64: -/* 088894 7F053D64 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088898 7F053D68 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088894 7F053D64 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088898 7F053D68 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08889C 7F053D6C 240500BC */ li $a1, 188 /* 0888A0 7F053D70 00003025 */ move $a2, $zero /* 0888A4 7F053D74 0C002382 */ jal play_sfx_a1 /* 0888A8 7F053D78 AFA70018 */ sw $a3, 0x18($sp) /* 0888AC 7F053D7C 8FA70018 */ lw $a3, 0x18($sp) /* 0888B0 7F053D80 AFA2001C */ sw $v0, 0x1c($sp) -/* 0888B4 7F053D84 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0888B4 7F053D84 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0888B8 7F053D88 10E00068 */ beqz $a3, .L7F053F2C /* 0888BC 7F053D8C 24050007 */ li $a1, 7 -/* 0888C0 7F053D90 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888C0 7F053D90 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0888C4 7F053D94 0C002382 */ jal play_sfx_a1 /* 0888C8 7F053D98 00E03025 */ move $a2, $a3 /* 0888CC 7F053D9C 10000064 */ b .L7F053F30 /* 0888D0 7F053DA0 8FAC001C */ lw $t4, 0x1c($sp) .L7F053DA4: /* 0888D4 7F053DA4 10E00061 */ beqz $a3, .L7F053F2C -/* 0888D8 7F053DA8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0888DC 7F053DAC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888D8 7F053DA8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0888DC 7F053DAC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0888E0 7F053DB0 240500C2 */ li $a1, 194 /* 0888E4 7F053DB4 0C002382 */ jal play_sfx_a1 /* 0888E8 7F053DB8 00E03025 */ move $a2, $a3 /* 0888EC 7F053DBC 1000005C */ b .L7F053F30 /* 0888F0 7F053DC0 8FAC001C */ lw $t4, 0x1c($sp) .L7F053DC4: -/* 0888F4 7F053DC4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0888F8 7F053DC8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0888F4 7F053DC4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0888F8 7F053DC8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0888FC 7F053DCC 240500C4 */ li $a1, 196 /* 088900 7F053DD0 0C002382 */ jal play_sfx_a1 /* 088904 7F053DD4 00003025 */ move $a2, $zero /* 088908 7F053DD8 10000054 */ b .L7F053F2C /* 08890C 7F053DDC AFA2001C */ sw $v0, 0x1c($sp) .L7F053DE0: -/* 088910 7F053DE0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088914 7F053DE4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088910 7F053DE0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088914 7F053DE4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088918 7F053DE8 24050007 */ li $a1, 7 /* 08891C 7F053DEC 0C002382 */ jal play_sfx_a1 /* 088920 7F053DF0 00003025 */ move $a2, $zero /* 088924 7F053DF4 1000004D */ b .L7F053F2C /* 088928 7F053DF8 AFA2001C */ sw $v0, 0x1c($sp) .L7F053DFC: -/* 08892C 7F053DFC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088930 7F053E00 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08892C 7F053DFC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088930 7F053E00 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088934 7F053E04 240500C8 */ li $a1, 200 /* 088938 7F053E08 0C002382 */ jal play_sfx_a1 /* 08893C 7F053E0C 00003025 */ move $a2, $zero /* 088940 7F053E10 10000046 */ b .L7F053F2C /* 088944 7F053E14 AFA2001C */ sw $v0, 0x1c($sp) .L7F053E18: -/* 088948 7F053E18 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 08894C 7F053E1C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088948 7F053E18 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 08894C 7F053E1C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088950 7F053E20 24050007 */ li $a1, 7 /* 088954 7F053E24 00003025 */ move $a2, $zero /* 088958 7F053E28 0C002382 */ jal play_sfx_a1 /* 08895C 7F053E2C AFA70018 */ sw $a3, 0x18($sp) /* 088960 7F053E30 8FA70018 */ lw $a3, 0x18($sp) /* 088964 7F053E34 AFA2001C */ sw $v0, 0x1c($sp) -/* 088968 7F053E38 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088968 7F053E38 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 08896C 7F053E3C 10E0003B */ beqz $a3, .L7F053F2C /* 088970 7F053E40 24050007 */ li $a1, 7 -/* 088974 7F053E44 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088974 7F053E44 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088978 7F053E48 0C002382 */ jal play_sfx_a1 /* 08897C 7F053E4C 00E03025 */ move $a2, $a3 /* 088980 7F053E50 10000037 */ b .L7F053F30 /* 088984 7F053E54 8FAC001C */ lw $t4, 0x1c($sp) .L7F053E58: /* 088988 7F053E58 10E00034 */ beqz $a3, .L7F053F2C -/* 08898C 7F053E5C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088990 7F053E60 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08898C 7F053E5C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088990 7F053E60 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088994 7F053E64 240500DA */ li $a1, 218 /* 088998 7F053E68 0C002382 */ jal play_sfx_a1 /* 08899C 7F053E6C 00E03025 */ move $a2, $a3 @@ -33530,24 +40932,24 @@ glabel play_door_opening_soundeffect_0 /* 0889A4 7F053E74 8FAC001C */ lw $t4, 0x1c($sp) .L7F053E78: /* 0889A8 7F053E78 10E0002C */ beqz $a3, .L7F053F2C -/* 0889AC 7F053E7C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0889B0 7F053E80 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889AC 7F053E7C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0889B0 7F053E80 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0889B4 7F053E84 240500E1 */ li $a1, 225 /* 0889B8 7F053E88 0C002382 */ jal play_sfx_a1 /* 0889BC 7F053E8C 00E03025 */ move $a2, $a3 /* 0889C0 7F053E90 10000027 */ b .L7F053F30 /* 0889C4 7F053E94 8FAC001C */ lw $t4, 0x1c($sp) .L7F053E98: -/* 0889C8 7F053E98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0889CC 7F053E9C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889C8 7F053E98 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0889CC 7F053E9C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0889D0 7F053EA0 240500D6 */ li $a1, 214 /* 0889D4 7F053EA4 0C002382 */ jal play_sfx_a1 /* 0889D8 7F053EA8 00003025 */ move $a2, $zero /* 0889DC 7F053EAC 1000001F */ b .L7F053F2C /* 0889E0 7F053EB0 AFA2001C */ sw $v0, 0x1c($sp) .L7F053EB4: -/* 0889E4 7F053EB4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0889E8 7F053EB8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0889E4 7F053EB4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0889E8 7F053EB8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0889EC 7F053EBC 24050007 */ li $a1, 7 /* 0889F0 7F053EC0 00003025 */ move $a2, $zero /* 0889F4 7F053EC4 0C002382 */ jal play_sfx_a1 @@ -33563,18 +40965,18 @@ glabel play_door_opening_soundeffect_0 /* 088A1C 7F053EEC 24A50008 */ addiu $a1, $a1, 8 /* 088A20 7F053EF0 8FA70018 */ lw $a3, 0x18($sp) .L7F053EF4: -/* 088A24 7F053EF4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088A28 7F053EF8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A24 7F053EF4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088A28 7F053EF8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088A2C 7F053EFC 240500CA */ li $a1, 202 /* 088A30 7F053F00 00003025 */ move $a2, $zero /* 088A34 7F053F04 0C002382 */ jal play_sfx_a1 /* 088A38 7F053F08 AFA70018 */ sw $a3, 0x18($sp) /* 088A3C 7F053F0C 8FA70018 */ lw $a3, 0x18($sp) /* 088A40 7F053F10 AFA2001C */ sw $v0, 0x1c($sp) -/* 088A44 7F053F14 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088A44 7F053F14 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088A48 7F053F18 10E00004 */ beqz $a3, .L7F053F2C /* 088A4C 7F053F1C 240500CC */ li $a1, 204 -/* 088A50 7F053F20 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088A50 7F053F20 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088A54 7F053F24 0C002382 */ jal play_sfx_a1 /* 088A58 7F053F28 00E03025 */ move $a2, $a3 def_7F053BE4: @@ -33664,137 +41066,137 @@ glabel play_door_opening_soundeffect_1 /* 088B00 7F053FD0 01400008 */ jr $t2 /* 088B04 7F053FD4 00000000 */ nop .L7F053FD8: -/* 088B08 7F053FD8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088B0C 7F053FDC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B08 7F053FD8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088B0C 7F053FDC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088B10 7F053FE0 240500D2 */ li $a1, 210 /* 088B14 7F053FE4 00003025 */ move $a2, $zero /* 088B18 7F053FE8 0C002382 */ jal play_sfx_a1 /* 088B1C 7F053FEC AFA70018 */ sw $a3, 0x18($sp) /* 088B20 7F053FF0 8FA70018 */ lw $a3, 0x18($sp) /* 088B24 7F053FF4 AFA2001C */ sw $v0, 0x1c($sp) -/* 088B28 7F053FF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B28 7F053FF8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088B2C 7F053FFC 10E000A3 */ beqz $a3, .L7F05428C /* 088B30 7F054000 240500D3 */ li $a1, 211 -/* 088B34 7F054004 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B34 7F054004 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088B38 7F054008 0C002382 */ jal play_sfx_a1 /* 088B3C 7F05400C 00E03025 */ move $a2, $a3 /* 088B40 7F054010 1000009F */ b .L7F054290 /* 088B44 7F054014 8FAC001C */ lw $t4, 0x1c($sp) .L7F054018: -/* 088B48 7F054018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088B4C 7F05401C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B48 7F054018 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088B4C 7F05401C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088B50 7F054020 240500D2 */ li $a1, 210 /* 088B54 7F054024 00003025 */ move $a2, $zero /* 088B58 7F054028 0C002382 */ jal play_sfx_a1 /* 088B5C 7F05402C AFA70018 */ sw $a3, 0x18($sp) /* 088B60 7F054030 8FA70018 */ lw $a3, 0x18($sp) /* 088B64 7F054034 AFA2001C */ sw $v0, 0x1c($sp) -/* 088B68 7F054038 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088B68 7F054038 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088B6C 7F05403C 10E00093 */ beqz $a3, .L7F05428C /* 088B70 7F054040 24050007 */ li $a1, 7 -/* 088B74 7F054044 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B74 7F054044 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088B78 7F054048 0C002382 */ jal play_sfx_a1 /* 088B7C 7F05404C 00E03025 */ move $a2, $a3 /* 088B80 7F054050 1000008F */ b .L7F054290 /* 088B84 7F054054 8FAC001C */ lw $t4, 0x1c($sp) .L7F054058: -/* 088B88 7F054058 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088B8C 7F05405C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088B88 7F054058 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088B8C 7F05405C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088B90 7F054060 240500CA */ li $a1, 202 /* 088B94 7F054064 00003025 */ move $a2, $zero /* 088B98 7F054068 0C002382 */ jal play_sfx_a1 /* 088B9C 7F05406C AFA70018 */ sw $a3, 0x18($sp) /* 088BA0 7F054070 8FA70018 */ lw $a3, 0x18($sp) /* 088BA4 7F054074 AFA2001C */ sw $v0, 0x1c($sp) -/* 088BA8 7F054078 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BA8 7F054078 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088BAC 7F05407C 10E00083 */ beqz $a3, .L7F05428C /* 088BB0 7F054080 240500CC */ li $a1, 204 -/* 088BB4 7F054084 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BB4 7F054084 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088BB8 7F054088 0C002382 */ jal play_sfx_a1 /* 088BBC 7F05408C 00E03025 */ move $a2, $a3 /* 088BC0 7F054090 1000007F */ b .L7F054290 /* 088BC4 7F054094 8FAC001C */ lw $t4, 0x1c($sp) .L7F054098: -/* 088BC8 7F054098 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088BCC 7F05409C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BC8 7F054098 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088BCC 7F05409C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088BD0 7F0540A0 240500D6 */ li $a1, 214 /* 088BD4 7F0540A4 00003025 */ move $a2, $zero /* 088BD8 7F0540A8 0C002382 */ jal play_sfx_a1 /* 088BDC 7F0540AC AFA70018 */ sw $a3, 0x18($sp) /* 088BE0 7F0540B0 8FA70018 */ lw $a3, 0x18($sp) /* 088BE4 7F0540B4 AFA2001C */ sw $v0, 0x1c($sp) -/* 088BE8 7F0540B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088BE8 7F0540B8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088BEC 7F0540BC 10E00073 */ beqz $a3, .L7F05428C /* 088BF0 7F0540C0 240500D8 */ li $a1, 216 -/* 088BF4 7F0540C4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088BF4 7F0540C4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088BF8 7F0540C8 0C002382 */ jal play_sfx_a1 /* 088BFC 7F0540CC 00E03025 */ move $a2, $a3 /* 088C00 7F0540D0 1000006F */ b .L7F054290 /* 088C04 7F0540D4 8FAC001C */ lw $t4, 0x1c($sp) .L7F0540D8: -/* 088C08 7F0540D8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088C0C 7F0540DC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C08 7F0540D8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088C0C 7F0540DC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088C10 7F0540E0 240500C0 */ li $a1, 192 /* 088C14 7F0540E4 00003025 */ move $a2, $zero /* 088C18 7F0540E8 0C002382 */ jal play_sfx_a1 /* 088C1C 7F0540EC AFA70018 */ sw $a3, 0x18($sp) /* 088C20 7F0540F0 8FA70018 */ lw $a3, 0x18($sp) /* 088C24 7F0540F4 AFA2001C */ sw $v0, 0x1c($sp) -/* 088C28 7F0540F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C28 7F0540F8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088C2C 7F0540FC 10E00063 */ beqz $a3, .L7F05428C /* 088C30 7F054100 240500BF */ li $a1, 191 -/* 088C34 7F054104 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C34 7F054104 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088C38 7F054108 0C002382 */ jal play_sfx_a1 /* 088C3C 7F05410C 00E03025 */ move $a2, $a3 /* 088C40 7F054110 1000005F */ b .L7F054290 /* 088C44 7F054114 8FAC001C */ lw $t4, 0x1c($sp) .L7F054118: -/* 088C48 7F054118 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088C4C 7F05411C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C48 7F054118 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088C4C 7F05411C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088C50 7F054120 240500BC */ li $a1, 188 /* 088C54 7F054124 00003025 */ move $a2, $zero /* 088C58 7F054128 0C002382 */ jal play_sfx_a1 /* 088C5C 7F05412C AFA70018 */ sw $a3, 0x18($sp) /* 088C60 7F054130 8FA70018 */ lw $a3, 0x18($sp) /* 088C64 7F054134 AFA2001C */ sw $v0, 0x1c($sp) -/* 088C68 7F054138 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088C68 7F054138 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088C6C 7F05413C 10E00053 */ beqz $a3, .L7F05428C /* 088C70 7F054140 24050007 */ li $a1, 7 -/* 088C74 7F054144 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C74 7F054144 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088C78 7F054148 0C002382 */ jal play_sfx_a1 /* 088C7C 7F05414C 00E03025 */ move $a2, $a3 /* 088C80 7F054150 1000004F */ b .L7F054290 /* 088C84 7F054154 8FAC001C */ lw $t4, 0x1c($sp) .L7F054158: /* 088C88 7F054158 10E0004C */ beqz $a3, .L7F05428C -/* 088C8C 7F05415C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088C90 7F054160 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088C8C 7F05415C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088C90 7F054160 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088C94 7F054164 240500C2 */ li $a1, 194 /* 088C98 7F054168 0C002382 */ jal play_sfx_a1 /* 088C9C 7F05416C 00E03025 */ move $a2, $a3 /* 088CA0 7F054170 10000047 */ b .L7F054290 /* 088CA4 7F054174 8FAC001C */ lw $t4, 0x1c($sp) .L7F054178: -/* 088CA8 7F054178 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088CAC 7F05417C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CA8 7F054178 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088CAC 7F05417C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088CB0 7F054180 24050007 */ li $a1, 7 /* 088CB4 7F054184 00003025 */ move $a2, $zero /* 088CB8 7F054188 0C002382 */ jal play_sfx_a1 /* 088CBC 7F05418C AFA70018 */ sw $a3, 0x18($sp) /* 088CC0 7F054190 8FA70018 */ lw $a3, 0x18($sp) /* 088CC4 7F054194 AFA2001C */ sw $v0, 0x1c($sp) -/* 088CC8 7F054198 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088CC8 7F054198 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088CCC 7F05419C 10E0003B */ beqz $a3, .L7F05428C /* 088CD0 7F0541A0 24050007 */ li $a1, 7 -/* 088CD4 7F0541A4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CD4 7F0541A4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088CD8 7F0541A8 0C002382 */ jal play_sfx_a1 /* 088CDC 7F0541AC 00E03025 */ move $a2, $a3 /* 088CE0 7F0541B0 10000037 */ b .L7F054290 /* 088CE4 7F0541B4 8FAC001C */ lw $t4, 0x1c($sp) .L7F0541B8: /* 088CE8 7F0541B8 10E00034 */ beqz $a3, .L7F05428C -/* 088CEC 7F0541BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088CF0 7F0541C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088CEC 7F0541BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088CF0 7F0541C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088CF4 7F0541C4 240500DA */ li $a1, 218 /* 088CF8 7F0541C8 0C002382 */ jal play_sfx_a1 /* 088CFC 7F0541CC 00E03025 */ move $a2, $a3 @@ -33802,24 +41204,24 @@ glabel play_door_opening_soundeffect_1 /* 088D04 7F0541D4 8FAC001C */ lw $t4, 0x1c($sp) .L7F0541D8: /* 088D08 7F0541D8 10E0002C */ beqz $a3, .L7F05428C -/* 088D0C 7F0541DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088D10 7F0541E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D0C 7F0541DC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088D10 7F0541E0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088D14 7F0541E4 240500E1 */ li $a1, 225 /* 088D18 7F0541E8 0C002382 */ jal play_sfx_a1 /* 088D1C 7F0541EC 00E03025 */ move $a2, $a3 /* 088D20 7F0541F0 10000027 */ b .L7F054290 /* 088D24 7F0541F4 8FAC001C */ lw $t4, 0x1c($sp) .L7F0541F8: -/* 088D28 7F0541F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088D2C 7F0541FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D28 7F0541F8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088D2C 7F0541FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088D30 7F054200 240500D6 */ li $a1, 214 /* 088D34 7F054204 0C002382 */ jal play_sfx_a1 /* 088D38 7F054208 00003025 */ move $a2, $zero /* 088D3C 7F05420C 1000001F */ b .L7F05428C /* 088D40 7F054210 AFA2001C */ sw $v0, 0x1c($sp) .L7F054214: -/* 088D44 7F054214 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088D48 7F054218 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D44 7F054214 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088D48 7F054218 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088D4C 7F05421C 24050007 */ li $a1, 7 /* 088D50 7F054220 00003025 */ move $a2, $zero /* 088D54 7F054224 0C002382 */ jal play_sfx_a1 @@ -33835,18 +41237,18 @@ glabel play_door_opening_soundeffect_1 /* 088D7C 7F05424C 24A50008 */ addiu $a1, $a1, 8 /* 088D80 7F054250 8FA70018 */ lw $a3, 0x18($sp) .L7F054254: -/* 088D84 7F054254 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088D88 7F054258 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088D84 7F054254 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088D88 7F054258 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088D8C 7F05425C 240500CA */ li $a1, 202 /* 088D90 7F054260 00003025 */ move $a2, $zero /* 088D94 7F054264 0C002382 */ jal play_sfx_a1 /* 088D98 7F054268 AFA70018 */ sw $a3, 0x18($sp) /* 088D9C 7F05426C 8FA70018 */ lw $a3, 0x18($sp) /* 088DA0 7F054270 AFA2001C */ sw $v0, 0x1c($sp) -/* 088DA4 7F054274 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 088DA4 7F054274 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 088DA8 7F054278 10E00004 */ beqz $a3, .L7F05428C /* 088DAC 7F05427C 240500CC */ li $a1, 204 -/* 088DB0 7F054280 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088DB0 7F054280 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088DB4 7F054284 0C002382 */ jal play_sfx_a1 /* 088DB8 7F054288 00E03025 */ move $a2, $a3 def_7F053FD0: @@ -33921,8 +41323,8 @@ glabel play_door_closing_soundeffect_0 /* 088E30 7F054300 01E00008 */ jr $t7 /* 088E34 7F054304 00000000 */ nop .L7F054308: -/* 088E38 7F054308 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088E3C 7F05430C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E38 7F054308 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088E3C 7F05430C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088E40 7F054310 240500D2 */ li $a1, 210 /* 088E44 7F054314 0C002382 */ jal play_sfx_a1 /* 088E48 7F054318 00003025 */ move $a2, $zero @@ -33930,8 +41332,8 @@ glabel play_door_closing_soundeffect_0 /* 088E50 7F054320 10000058 */ b .L7F054484 /* 088E54 7F054324 8FA70020 */ lw $a3, 0x20($sp) .L7F054328: -/* 088E58 7F054328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088E5C 7F05432C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E58 7F054328 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088E5C 7F05432C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088E60 7F054330 240500D2 */ li $a1, 210 /* 088E64 7F054334 0C002382 */ jal play_sfx_a1 /* 088E68 7F054338 00003025 */ move $a2, $zero @@ -33939,8 +41341,8 @@ glabel play_door_closing_soundeffect_0 /* 088E70 7F054340 10000050 */ b .L7F054484 /* 088E74 7F054344 8FA70020 */ lw $a3, 0x20($sp) .L7F054348: -/* 088E78 7F054348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088E7C 7F05434C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E78 7F054348 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088E7C 7F05434C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088E80 7F054350 240500CB */ li $a1, 203 /* 088E84 7F054354 0C002382 */ jal play_sfx_a1 /* 088E88 7F054358 00003025 */ move $a2, $zero @@ -33948,8 +41350,8 @@ glabel play_door_closing_soundeffect_0 /* 088E90 7F054360 10000048 */ b .L7F054484 /* 088E94 7F054364 8FA70020 */ lw $a3, 0x20($sp) .L7F054368: -/* 088E98 7F054368 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088E9C 7F05436C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088E98 7F054368 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088E9C 7F05436C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088EA0 7F054370 240500D7 */ li $a1, 215 /* 088EA4 7F054374 0C002382 */ jal play_sfx_a1 /* 088EA8 7F054378 00003025 */ move $a2, $zero @@ -33957,8 +41359,8 @@ glabel play_door_closing_soundeffect_0 /* 088EB0 7F054380 10000040 */ b .L7F054484 /* 088EB4 7F054384 8FA70020 */ lw $a3, 0x20($sp) .L7F054388: -/* 088EB8 7F054388 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088EBC 7F05438C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EB8 7F054388 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088EBC 7F05438C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088EC0 7F054390 240500D2 */ li $a1, 210 /* 088EC4 7F054394 0C002382 */ jal play_sfx_a1 /* 088EC8 7F054398 00003025 */ move $a2, $zero @@ -33966,8 +41368,8 @@ glabel play_door_closing_soundeffect_0 /* 088ED0 7F0543A0 10000038 */ b .L7F054484 /* 088ED4 7F0543A4 8FA70020 */ lw $a3, 0x20($sp) .L7F0543A8: -/* 088ED8 7F0543A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088EDC 7F0543AC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088ED8 7F0543A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088EDC 7F0543AC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088EE0 7F0543B0 240500BB */ li $a1, 187 /* 088EE4 7F0543B4 0C002382 */ jal play_sfx_a1 /* 088EE8 7F0543B8 00003025 */ move $a2, $zero @@ -33975,8 +41377,8 @@ glabel play_door_closing_soundeffect_0 /* 088EF0 7F0543C0 10000030 */ b .L7F054484 /* 088EF4 7F0543C4 8FA70020 */ lw $a3, 0x20($sp) .L7F0543C8: -/* 088EF8 7F0543C8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088EFC 7F0543CC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088EF8 7F0543C8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088EFC 7F0543CC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088F00 7F0543D0 240500C3 */ li $a1, 195 /* 088F04 7F0543D4 0C002382 */ jal play_sfx_a1 /* 088F08 7F0543D8 00003025 */ move $a2, $zero @@ -33984,8 +41386,8 @@ glabel play_door_closing_soundeffect_0 /* 088F10 7F0543E0 10000028 */ b .L7F054484 /* 088F14 7F0543E4 8FA70020 */ lw $a3, 0x20($sp) .L7F0543E8: -/* 088F18 7F0543E8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088F1C 7F0543EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F18 7F0543E8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088F1C 7F0543EC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088F20 7F0543F0 24050007 */ li $a1, 7 /* 088F24 7F0543F4 0C002382 */ jal play_sfx_a1 /* 088F28 7F0543F8 00003025 */ move $a2, $zero @@ -33993,8 +41395,8 @@ glabel play_door_closing_soundeffect_0 /* 088F30 7F054400 10000020 */ b .L7F054484 /* 088F34 7F054404 8FA70020 */ lw $a3, 0x20($sp) .L7F054408: -/* 088F38 7F054408 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088F3C 7F05440C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F38 7F054408 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088F3C 7F05440C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088F40 7F054410 240500DB */ li $a1, 219 /* 088F44 7F054414 0C002382 */ jal play_sfx_a1 /* 088F48 7F054418 00003025 */ move $a2, $zero @@ -34002,8 +41404,8 @@ glabel play_door_closing_soundeffect_0 /* 088F50 7F054420 10000018 */ b .L7F054484 /* 088F54 7F054424 8FA70020 */ lw $a3, 0x20($sp) .L7F054428: -/* 088F58 7F054428 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088F5C 7F05442C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F58 7F054428 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088F5C 7F05442C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088F60 7F054430 240500E2 */ li $a1, 226 /* 088F64 7F054434 0C002382 */ jal play_sfx_a1 /* 088F68 7F054438 00003025 */ move $a2, $zero @@ -34011,8 +41413,8 @@ glabel play_door_closing_soundeffect_0 /* 088F70 7F054440 10000010 */ b .L7F054484 /* 088F74 7F054444 8FA70020 */ lw $a3, 0x20($sp) .L7F054448: -/* 088F78 7F054448 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088F7C 7F05444C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F78 7F054448 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088F7C 7F05444C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088F80 7F054450 240500D7 */ li $a1, 215 /* 088F84 7F054454 0C002382 */ jal play_sfx_a1 /* 088F88 7F054458 00003025 */ move $a2, $zero @@ -34020,8 +41422,8 @@ glabel play_door_closing_soundeffect_0 /* 088F90 7F054460 10000008 */ b .L7F054484 /* 088F94 7F054464 8FA70020 */ lw $a3, 0x20($sp) .L7F054468: -/* 088F98 7F054468 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 088F9C 7F05446C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 088F98 7F054468 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 088F9C 7F05446C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 088FA0 7F054470 240500CB */ li $a1, 203 /* 088FA4 7F054474 0C002382 */ jal play_sfx_a1 /* 088FA8 7F054478 00003025 */ move $a2, $zero @@ -34097,8 +41499,8 @@ glabel play_door_closing_soundeffect_1 /* 089024 7F0544F4 01E00008 */ jr $t7 /* 089028 7F0544F8 00000000 */ nop .L7F0544FC: -/* 08902C 7F0544FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089030 7F054500 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08902C 7F0544FC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089030 7F054500 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089034 7F054504 240500D2 */ li $a1, 210 /* 089038 7F054508 0C002382 */ jal play_sfx_a1 /* 08903C 7F05450C 00003025 */ move $a2, $zero @@ -34106,8 +41508,8 @@ glabel play_door_closing_soundeffect_1 /* 089044 7F054514 10000080 */ b .L7F054718 /* 089048 7F054518 8FA70020 */ lw $a3, 0x20($sp) .L7F05451C: -/* 08904C 7F05451C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089050 7F054520 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08904C 7F05451C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089050 7F054520 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089054 7F054524 240500D2 */ li $a1, 210 /* 089058 7F054528 0C002382 */ jal play_sfx_a1 /* 08905C 7F05452C 00003025 */ move $a2, $zero @@ -34115,8 +41517,8 @@ glabel play_door_closing_soundeffect_1 /* 089064 7F054534 10000078 */ b .L7F054718 /* 089068 7F054538 8FA70020 */ lw $a3, 0x20($sp) .L7F05453C: -/* 08906C 7F05453C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089070 7F054540 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08906C 7F05453C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089070 7F054540 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089074 7F054544 240500CB */ li $a1, 203 /* 089078 7F054548 0C002382 */ jal play_sfx_a1 /* 08907C 7F05454C 00003025 */ move $a2, $zero @@ -34124,8 +41526,8 @@ glabel play_door_closing_soundeffect_1 /* 089084 7F054554 10000070 */ b .L7F054718 /* 089088 7F054558 8FA70020 */ lw $a3, 0x20($sp) .L7F05455C: -/* 08908C 7F05455C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089090 7F054560 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08908C 7F05455C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089090 7F054560 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089094 7F054564 240500D7 */ li $a1, 215 /* 089098 7F054568 0C002382 */ jal play_sfx_a1 /* 08909C 7F05456C 00003025 */ move $a2, $zero @@ -34133,8 +41535,8 @@ glabel play_door_closing_soundeffect_1 /* 0890A4 7F054574 10000068 */ b .L7F054718 /* 0890A8 7F054578 8FA70020 */ lw $a3, 0x20($sp) .L7F05457C: -/* 0890AC 7F05457C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0890B0 7F054580 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890AC 7F05457C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0890B0 7F054580 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0890B4 7F054584 240500BB */ li $a1, 187 /* 0890B8 7F054588 0C002382 */ jal play_sfx_a1 /* 0890BC 7F05458C 00003025 */ move $a2, $zero @@ -34142,8 +41544,8 @@ glabel play_door_closing_soundeffect_1 /* 0890C4 7F054594 10000060 */ b .L7F054718 /* 0890C8 7F054598 8FA70020 */ lw $a3, 0x20($sp) .L7F05459C: -/* 0890CC 7F05459C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0890D0 7F0545A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890CC 7F05459C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0890D0 7F0545A0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0890D4 7F0545A4 24050007 */ li $a1, 7 /* 0890D8 7F0545A8 0C002382 */ jal play_sfx_a1 /* 0890DC 7F0545AC 00003025 */ move $a2, $zero @@ -34151,8 +41553,8 @@ glabel play_door_closing_soundeffect_1 /* 0890E4 7F0545B4 10000058 */ b .L7F054718 /* 0890E8 7F0545B8 8FA70020 */ lw $a3, 0x20($sp) .L7F0545BC: -/* 0890EC 7F0545BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0890F0 7F0545C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0890EC 7F0545BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0890F0 7F0545C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0890F4 7F0545C4 240500D2 */ li $a1, 210 /* 0890F8 7F0545C8 0C002382 */ jal play_sfx_a1 /* 0890FC 7F0545CC 00003025 */ move $a2, $zero @@ -34160,8 +41562,8 @@ glabel play_door_closing_soundeffect_1 /* 089104 7F0545D4 10000050 */ b .L7F054718 /* 089108 7F0545D8 8FA70020 */ lw $a3, 0x20($sp) .L7F0545DC: -/* 08910C 7F0545DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089110 7F0545E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08910C 7F0545DC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089110 7F0545E0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089114 7F0545E4 240500BB */ li $a1, 187 /* 089118 7F0545E8 0C002382 */ jal play_sfx_a1 /* 08911C 7F0545EC 00003025 */ move $a2, $zero @@ -34169,8 +41571,8 @@ glabel play_door_closing_soundeffect_1 /* 089124 7F0545F4 10000048 */ b .L7F054718 /* 089128 7F0545F8 8FA70020 */ lw $a3, 0x20($sp) .L7F0545FC: -/* 08912C 7F0545FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089130 7F054600 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08912C 7F0545FC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089130 7F054600 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089134 7F054604 240500C3 */ li $a1, 195 /* 089138 7F054608 0C002382 */ jal play_sfx_a1 /* 08913C 7F05460C 00003025 */ move $a2, $zero @@ -34178,8 +41580,8 @@ glabel play_door_closing_soundeffect_1 /* 089144 7F054614 10000040 */ b .L7F054718 /* 089148 7F054618 8FA70020 */ lw $a3, 0x20($sp) .L7F05461C: -/* 08914C 7F05461C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089150 7F054620 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08914C 7F05461C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089150 7F054620 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089154 7F054624 240500C5 */ li $a1, 197 /* 089158 7F054628 0C002382 */ jal play_sfx_a1 /* 08915C 7F05462C 00003025 */ move $a2, $zero @@ -34187,8 +41589,8 @@ glabel play_door_closing_soundeffect_1 /* 089164 7F054634 10000038 */ b .L7F054718 /* 089168 7F054638 8FA70020 */ lw $a3, 0x20($sp) .L7F05463C: -/* 08916C 7F05463C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089170 7F054640 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08916C 7F05463C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089170 7F054640 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089174 7F054644 240500C7 */ li $a1, 199 /* 089178 7F054648 0C002382 */ jal play_sfx_a1 /* 08917C 7F05464C 00003025 */ move $a2, $zero @@ -34196,8 +41598,8 @@ glabel play_door_closing_soundeffect_1 /* 089184 7F054654 10000030 */ b .L7F054718 /* 089188 7F054658 8FA70020 */ lw $a3, 0x20($sp) .L7F05465C: -/* 08918C 7F05465C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089190 7F054660 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08918C 7F05465C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089190 7F054660 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089194 7F054664 240500C9 */ li $a1, 201 /* 089198 7F054668 0C002382 */ jal play_sfx_a1 /* 08919C 7F05466C 00003025 */ move $a2, $zero @@ -34205,8 +41607,8 @@ glabel play_door_closing_soundeffect_1 /* 0891A4 7F054674 10000028 */ b .L7F054718 /* 0891A8 7F054678 8FA70020 */ lw $a3, 0x20($sp) .L7F05467C: -/* 0891AC 7F05467C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0891B0 7F054680 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891AC 7F05467C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0891B0 7F054680 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0891B4 7F054684 24050007 */ li $a1, 7 /* 0891B8 7F054688 0C002382 */ jal play_sfx_a1 /* 0891BC 7F05468C 00003025 */ move $a2, $zero @@ -34214,8 +41616,8 @@ glabel play_door_closing_soundeffect_1 /* 0891C4 7F054694 10000020 */ b .L7F054718 /* 0891C8 7F054698 8FA70020 */ lw $a3, 0x20($sp) .L7F05469C: -/* 0891CC 7F05469C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0891D0 7F0546A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891CC 7F05469C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0891D0 7F0546A0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0891D4 7F0546A4 240500DB */ li $a1, 219 /* 0891D8 7F0546A8 0C002382 */ jal play_sfx_a1 /* 0891DC 7F0546AC 00003025 */ move $a2, $zero @@ -34223,8 +41625,8 @@ glabel play_door_closing_soundeffect_1 /* 0891E4 7F0546B4 10000018 */ b .L7F054718 /* 0891E8 7F0546B8 8FA70020 */ lw $a3, 0x20($sp) .L7F0546BC: -/* 0891EC 7F0546BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 0891F0 7F0546C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0891EC 7F0546BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0891F0 7F0546C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0891F4 7F0546C4 240500E2 */ li $a1, 226 /* 0891F8 7F0546C8 0C002382 */ jal play_sfx_a1 /* 0891FC 7F0546CC 00003025 */ move $a2, $zero @@ -34232,8 +41634,8 @@ glabel play_door_closing_soundeffect_1 /* 089204 7F0546D4 10000010 */ b .L7F054718 /* 089208 7F0546D8 8FA70020 */ lw $a3, 0x20($sp) .L7F0546DC: -/* 08920C 7F0546DC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089210 7F0546E0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08920C 7F0546DC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089210 7F0546E0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089214 7F0546E4 240500D7 */ li $a1, 215 /* 089218 7F0546E8 0C002382 */ jal play_sfx_a1 /* 08921C 7F0546EC 00003025 */ move $a2, $zero @@ -34241,8 +41643,8 @@ glabel play_door_closing_soundeffect_1 /* 089224 7F0546F4 10000008 */ b .L7F054718 /* 089228 7F0546F8 8FA70020 */ lw $a3, 0x20($sp) .L7F0546FC: -/* 08922C 7F0546FC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 089230 7F054700 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08922C 7F0546FC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 089230 7F054700 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 089234 7F054704 240500CB */ li $a1, 203 /* 089238 7F054708 0C002382 */ jal play_sfx_a1 /* 08923C 7F05470C 00003025 */ move $a2, $zero @@ -36258,6 +43660,124 @@ glabel sub_GAME_7F055C40 /* 08A8F4 7F055DC4 00001025 */ move $v0, $zero ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F055C40 +/* 08A770 7F055C40 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 08A774 7F055C44 AFBF001C */ sw $ra, 0x1c($sp) +/* 08A778 7F055C48 AFB00018 */ sw $s0, 0x18($sp) +/* 08A77C 7F055C4C AFA40030 */ sw $a0, 0x30($sp) +/* 08A780 7F055C50 8C900004 */ lw $s0, 4($a0) +/* 08A784 7F055C54 0FC225E6 */ jal get_curplayer_positiondata +/* 08A788 7F055C58 AFA00028 */ sw $zero, 0x28($sp) +/* 08A78C 7F055C5C AFA20024 */ sw $v0, 0x24($sp) +/* 08A790 7F055C60 8E04009C */ lw $a0, 0x9c($s0) +/* 08A794 7F055C64 8FA30028 */ lw $v1, 0x28($sp) +/* 08A798 7F055C68 14800003 */ bnez $a0, .L7F055C78 +/* 08A79C 7F055C6C 00000000 */ nop +/* 08A7A0 7F055C70 1000001C */ b .L7F055CE4 +/* 08A7A4 7F055C74 24030001 */ li $v1, 1 +.L7F055C78: +/* 08A7A8 7F055C78 0FC2339C */ jal sub_GAME_7F08CE70 +/* 08A7AC 7F055C7C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7B0 7F055C80 10400003 */ beqz $v0, .L7F055C90 +/* 08A7B4 7F055C84 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7B8 7F055C88 10000016 */ b .L7F055CE4 +/* 08A7BC 7F055C8C 24030001 */ li $v1, 1 +.L7F055C90: +/* 08A7C0 7F055C90 8FA40024 */ lw $a0, 0x24($sp) +/* 08A7C4 7F055C94 02002825 */ move $a1, $s0 +/* 08A7C8 7F055C98 0FC1569C */ jal sub_GAME_7F055A70 +/* 08A7CC 7F055C9C AFA30028 */ sw $v1, 0x28($sp) +/* 08A7D0 7F055CA0 10400009 */ beqz $v0, .L7F055CC8 +/* 08A7D4 7F055CA4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A7D8 7F055CA8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7DC 7F055CAC 000278C0 */ sll $t7, $v0, 3 +/* 08A7E0 7F055CB0 05E1000C */ bgez $t7, .L7F055CE4 +/* 08A7E4 7F055CB4 0002C100 */ sll $t8, $v0, 4 +/* 08A7E8 7F055CB8 0702000B */ bltzl $t8, .L7F055CE8 +/* 08A7EC 7F055CBC 02002025 */ move $a0, $s0 +/* 08A7F0 7F055CC0 10000008 */ b .L7F055CE4 +/* 08A7F4 7F055CC4 24030001 */ li $v1, 1 +.L7F055CC8: +/* 08A7F8 7F055CC8 8E02000C */ lw $v0, 0xc($s0) +/* 08A7FC 7F055CCC 0002C8C0 */ sll $t9, $v0, 3 +/* 08A800 7F055CD0 07200004 */ bltz $t9, .L7F055CE4 +/* 08A804 7F055CD4 00024100 */ sll $t0, $v0, 4 +/* 08A808 7F055CD8 05030003 */ bgezl $t0, .L7F055CE8 +/* 08A80C 7F055CDC 02002025 */ move $a0, $s0 +/* 08A810 7F055CE0 24030001 */ li $v1, 1 +.L7F055CE4: +/* 08A814 7F055CE4 02002025 */ move $a0, $s0 +.L7F055CE8: +/* 08A818 7F055CE8 0FC0F9C6 */ jal sub_GAME_7F03E718 +/* 08A81C 7F055CEC AFA30028 */ sw $v1, 0x28($sp) +/* 08A820 7F055CF0 14400002 */ bnez $v0, .L7F055CFC +/* 08A824 7F055CF4 8FA30028 */ lw $v1, 0x28($sp) +/* 08A828 7F055CF8 00001825 */ move $v1, $zero +.L7F055CFC: +/* 08A82C 7F055CFC 10600007 */ beqz $v1, .L7F055D1C +/* 08A830 7F055D00 8FA40024 */ lw $a0, 0x24($sp) +/* 08A834 7F055D04 0FC156DE */ jal sub_GAME_7F055B78 +/* 08A838 7F055D08 02002825 */ move $a1, $s0 +/* 08A83C 7F055D0C 0FC15667 */ jal sub_GAME_7F05599C +/* 08A840 7F055D10 8FA40030 */ lw $a0, 0x30($sp) +/* 08A844 7F055D14 10000028 */ b .L7F055DB8 +/* 08A848 7F055D18 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055D1C: +/* 08A84C 7F055D1C 820900BC */ lb $t1, 0xbc($s0) +/* 08A850 7F055D20 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 08A854 7F055D24 55200024 */ bnezl $t1, .L7F055DB8 +/* 08A858 7F055D28 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A85C 7F055D2C C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 08A860 7F055D30 44813000 */ mtc1 $at, $f6 +/* 08A864 7F055D34 00000000 */ nop +/* 08A868 7F055D38 4606203C */ c.lt.s $f4, $f6 +/* 08A86C 7F055D3C 00000000 */ nop +/* 08A870 7F055D40 4502001D */ bc1fl .L7F055DB8 +/* 08A874 7F055D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 08A878 7F055D48 8E02000C */ lw $v0, 0xc($s0) +/* 08A87C 7F055D4C 304A0004 */ andi $t2, $v0, 4 +/* 08A880 7F055D50 55400014 */ bnezl $t2, .L7F055DA4 +/* 08A884 7F055D54 8E0C0064 */ lw $t4, 0x64($s0) +/* 08A888 7F055D58 0FC23487 */ jal get_textoverride_by_obj +/* 08A88C 7F055D5C 02002025 */ move $a0, $s0 +/* 08A890 7F055D60 1040000A */ beqz $v0, .L7F055D8C +/* 08A894 7F055D64 00000000 */ nop +/* 08A898 7F055D68 8C4B001C */ lw $t3, 0x1c($v0) +/* 08A89C 7F055D6C 11600007 */ beqz $t3, .L7F055D8C +/* 08A8A0 7F055D70 00000000 */ nop +/* 08A8A4 7F055D74 0FC30776 */ jal get_textptr_for_textID +/* 08A8A8 7F055D78 8C44001C */ lw $a0, 0x1c($v0) +/* 08A8AC 7F055D7C 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8B0 7F055D80 00402025 */ move $a0, $v0 +/* 08A8B4 7F055D84 10000006 */ b .L7F055DA0 +/* 08A8B8 7F055D88 8E02000C */ lw $v0, 0xc($s0) +.L7F055D8C: +/* 08A8BC 7F055D8C 0FC30776 */ jal get_textptr_for_textID +/* 08A8C0 7F055D90 3404A440 */ li $a0, 42048 +/* 08A8C4 7F055D94 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08A8C8 7F055D98 00402025 */ move $a0, $v0 +/* 08A8CC 7F055D9C 8E02000C */ lw $v0, 0xc($s0) +.L7F055DA0: +/* 08A8D0 7F055DA0 8E0C0064 */ lw $t4, 0x64($s0) +.L7F055DA4: +/* 08A8D4 7F055DA4 344E0008 */ ori $t6, $v0, 8 +/* 08A8D8 7F055DA8 AE0E000C */ sw $t6, 0xc($s0) +/* 08A8DC 7F055DAC 358D4000 */ ori $t5, $t4, 0x4000 +/* 08A8E0 7F055DB0 AE0D0064 */ sw $t5, 0x64($s0) +/* 08A8E4 7F055DB4 8FBF001C */ lw $ra, 0x1c($sp) +.L7F055DB8: +/* 08A8E8 7F055DB8 8FB00018 */ lw $s0, 0x18($sp) +/* 08A8EC 7F055DBC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 08A8F0 7F055DC0 03E00008 */ jr $ra +/* 08A8F4 7F055DC4 00001025 */ move $v0, $zero +) +#endif + + #endif @@ -36319,7 +43839,7 @@ glabel init_trigger_toxic_gas_effect /* 08A9C4 7F055E94 C4880004 */ lwc1 $f8, 4($a0) /* 08A9C8 7F055E98 E4480004 */ swc1 $f8, 4($v0) /* 08A9CC 7F055E9C C48A0008 */ lwc1 $f10, 8($a0) -/* 08A9D0 7F055EA0 0C001A57 */ jal get_stage_num +/* 08A9D0 7F055EA0 0C001A57 */ jal bossGetStageNum /* 08A9D4 7F055EA4 E44A0008 */ swc1 $f10, 8($v0) /* 08A9D8 7F055EA8 24010020 */ li $at, 32 /* 08A9DC 7F055EAC 14410007 */ bne $v0, $at, .L7F055ECC @@ -36420,7 +43940,7 @@ void handle_gas_damage(void) D_80030ADC = (s32) global_timer; if (600.0f <= toxic_gas_sound_timer) { - play_sfx_a1(ptr_sfx_buf, 0x62, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x62, 0); } if (1800.0f <= toxic_gas_sound_timer) { @@ -36434,7 +43954,7 @@ void handle_gas_damage(void) { if (get_controls_locked_flag(&ptr_gas_sound) == 0) { - play_sfx_a1(ptr_sfx_buf, 0x66, &ptr_gas_sound); + play_sfx_a1(g_musicSfxBufferPtr, 0x66, &ptr_gas_sound); } } if (ptr_gas_sound != 0) @@ -36517,14 +44037,14 @@ glabel handle_gas_damage /* 08AB64 7F056034 44812000 */ mtc1 $at, $f4 /* 08AB68 7F056038 C4600000 */ lwc1 $f0, ($v1) /* 08AB6C 7F05603C AC820000 */ sw $v0, ($a0) -/* 08AB70 7F056040 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08AB70 7F056040 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 08AB74 7F056044 4600203E */ c.le.s $f4, $f0 /* 08AB78 7F056048 24050062 */ li $a1, 98 /* 08AB7C 7F05604C 00003025 */ move $a2, $zero /* 08AB80 7F056050 45020006 */ bc1fl .L7F05606C /* 08AB84 7F056054 3C0144E1 */ lui $at, 0x44e1 /* 08AB88 7F056058 0C002382 */ jal play_sfx_a1 -/* 08AB8C 7F05605C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08AB8C 7F05605C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08AB90 7F056060 3C018003 */ lui $at, %hi(toxic_gas_sound_timer) /* 08AB94 7F056064 C4200AC8 */ lwc1 $f0, %lo(toxic_gas_sound_timer)($at) /* 08AB98 7F056068 3C0144E1 */ li $at, 0x44E10000 # 1800.000000 @@ -36563,10 +44083,10 @@ glabel handle_gas_damage /* 08AC14 7F0560E4 0FC2FF01 */ jal get_controls_locked_flag /* 08AC18 7F0560E8 00000000 */ nop /* 08AC1C 7F0560EC 14400006 */ bnez $v0, .L7F056108 -/* 08AC20 7F0560F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 08AC20 7F0560F0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 08AC24 7F0560F4 3C068003 */ lui $a2, %hi(ptr_gas_sound) /* 08AC28 7F0560F8 24C60AE4 */ addiu $a2, %lo(ptr_gas_sound) # addiu $a2, $a2, 0xae4 -/* 08AC2C 7F0560FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 08AC2C 7F0560FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 08AC30 7F056100 0C002382 */ jal play_sfx_a1 /* 08AC34 7F056104 24050066 */ li $a1, 102 .L7F056108: @@ -36912,7 +44432,7 @@ void handle_alarm_gas_timer_calldamage(void) { if (is_alarm_on() != 0) { if ((ptr_alarm_sfx == 0) && (get_controls_locked_flag() == 0)) { - play_sfx_a1(ptr_sfx_buf,0xa3,&ptr_alarm_sfx); + play_sfx_a1(g_musicSfxBufferPtr,0xa3,&ptr_alarm_sfx); } alarm_timer = alarm_timer + clock_timer; if (0x708 < alarm_timer) { diff --git a/src/game/chrobjhandler.h b/src/game/chrobjhandler.h new file mode 100644 index 0000000..95efd91 --- /dev/null +++ b/src/game/chrobjhandler.h @@ -0,0 +1,7 @@ +#ifndef _CHROBJHANDLER_H_ +#define _CHROBJHANDLER_H_ +#include "ultra64.h" + +extern s32 D_80030B00; + +#endif diff --git a/src/game/deb_loadallmodels.c b/src/game/deb_loadallmodels.c index 6b157ab..f6de3d5 100644 --- a/src/game/deb_loadallmodels.c +++ b/src/game/deb_loadallmodels.c @@ -1,20 +1,7 @@ #include "ultra64.h" - +#include "bondconstants.h" //i belong in a header, probably to another file -#define PROJECTILES_MAX 0x2E -#define PROJECTILES_TYPE_KNIFE 0xBA -#define PROJECTILES_TYPE_GRENADE 0xC4 -#define PROJECTILES_TYPE_REMOTE_MINE 0xC7 -#define PROJECTILES_TYPE_PROX_MINE 0xC8 -#define PROJECTILES_TYPE_TIMED_MINE 0xC9 -#define PROJECTILES_TYPE_ROCKET_ROUND 0xCA -#define PROJECTILES_TYPE_ROCKET_ROUND2 0xCA -#define PROJECTILES_TYPE_GLAUNCH_ROUND 0xCB -#define PROJECTILES_TYPE_BOMBCASE 0xE2 -#define PROJECTILES_TYPE_BUG 0xF5 -#define PROJECTILES_TYPE_MICROCAMERA 0xF6 -#define PROJECTILES_TYPE_GE_KEY 0xF8 -#define PROJECTILES_TYPE_PLASTIQUE 0x111 + diff --git a/src/game/debugmenu_08FE00.c b/src/game/debugmenu_08FE00.c index 8af6f5f..5312e90 100644 --- a/src/game/debugmenu_08FE00.c +++ b/src/game/debugmenu_08FE00.c @@ -138,12 +138,12 @@ glabel print_debug_mcm_to_stdout /* 0C4A44 7F08FF14 240400C0 */ li $a0, 192 /* 0C4A48 7F08FF18 00002825 */ move $a1, $zero /* 0C4A4C 7F08FF1C 00003025 */ move $a2, $zero -/* 0C4A50 7F08FF20 0C002C1B */ jal set_debug_text_color +/* 0C4A50 7F08FF20 0C002C1B */ jal debmenuSetPrimColor /* 0C4A54 7F08FF24 240700C0 */ li $a3, 192 /* 0C4A58 7F08FF28 10000004 */ b .L7F08FF3C /* 0C4A5C 7F08FF2C 8E980000 */ lw $t8, ($s4) .L7F08FF30: -/* 0C4A60 7F08FF30 0C002C1B */ jal set_debug_text_color +/* 0C4A60 7F08FF30 0C002C1B */ jal debmenuSetPrimColor /* 0C4A64 7F08FF34 240700C0 */ li $a3, 192 /* 0C4A68 7F08FF38 8E980000 */ lw $t8, ($s4) .L7F08FF3C: @@ -176,11 +176,11 @@ glabel print_debug_mcm_to_stdout /* 0C4ACC 7F08FF9C 00000000 */ nop /* 0C4AD0 7F08FFA0 0006000D */ break 6 .L7F08FFA4: -/* 0C4AD4 7F08FFA4 0C002C10 */ jal set_final_debug_text_positions +/* 0C4AD4 7F08FFA4 0C002C10 */ jal debmenuSetPosition /* 0C4AD8 7F08FFA8 00000000 */ nop /* 0C4ADC 7F08FFAC 8ECC0000 */ lw $t4, ($s6) /* 0C4AE0 7F08FFB0 01926821 */ addu $t5, $t4, $s2 -/* 0C4AE4 7F08FFB4 0C002C7A */ jal write_string_stdout +/* 0C4AE4 7F08FFB4 0C002C7A */ jal debmenuWriteString /* 0C4AE8 7F08FFB8 8DA40000 */ lw $a0, ($t5) /* 0C4AEC 7F08FFBC 3C0E8003 */ lui $t6, %hi(ptr_last_debuggrp_cutoff) /* 0C4AF0 7F08FFC0 8DCE6B74 */ lw $t6, %lo(ptr_last_debuggrp_cutoff)($t6) @@ -263,12 +263,12 @@ glabel sub_GAME_7F09000C /* 0C4BE0 7F0900B0 240400C0 */ li $a0, 192 /* 0C4BE4 7F0900B4 00002825 */ move $a1, $zero /* 0C4BE8 7F0900B8 00003025 */ move $a2, $zero -/* 0C4BEC 7F0900BC 0C002C1B */ jal set_debug_text_color +/* 0C4BEC 7F0900BC 0C002C1B */ jal debmenuSetPrimColor /* 0C4BF0 7F0900C0 240700C0 */ li $a3, 192 /* 0C4BF4 7F0900C4 10000004 */ b .L7F0900D8 /* 0C4BF8 7F0900C8 8EF80000 */ lw $t8, ($s7) .L7F0900CC: -/* 0C4BFC 7F0900CC 0C002C1B */ jal set_debug_text_color +/* 0C4BFC 7F0900CC 0C002C1B */ jal debmenuSetPrimColor /* 0C4C00 7F0900D0 240700C0 */ li $a3, 192 /* 0C4C04 7F0900D4 8EF80000 */ lw $t8, ($s7) .L7F0900D8: @@ -301,12 +301,12 @@ glabel sub_GAME_7F09000C /* 0C4C68 7F090138 00000000 */ nop /* 0C4C6C 7F09013C 0006000D */ break 6 .L7F090140: -/* 0C4C70 7F090140 0C002C10 */ jal set_final_debug_text_positions +/* 0C4C70 7F090140 0C002C10 */ jal debmenuSetPosition /* 0C4C74 7F090144 00000000 */ nop /* 0C4C78 7F090148 3C0C8003 */ lui $t4, %hi(ptr_textptrs) /* 0C4C7C 7F09014C 8D8C6B78 */ lw $t4, %lo(ptr_textptrs)($t4) /* 0C4C80 7F090150 01926821 */ addu $t5, $t4, $s2 -/* 0C4C84 7F090154 0C002C7A */ jal write_string_stdout +/* 0C4C84 7F090154 0C002C7A */ jal debmenuWriteString /* 0C4C88 7F090158 8DA40000 */ lw $a0, ($t5) /* 0C4C8C 7F09015C 3C048005 */ lui $a0, %hi(aMenu_cErrorTriedToCallFont_makegt) /* 0C4C90 7F090160 0C0033D1 */ jal osSyncPrintf diff --git a/src/game/debugmenu_090490.c b/src/game/debugmenu_090490.c index 0fad92a..b7f31d9 100644 --- a/src/game/debugmenu_090490.c +++ b/src/game/debugmenu_090490.c @@ -1,6 +1,7 @@ #include "ultra64.h" #include "game/debugmenu_090490.h" #include "game/initgamedata.h" +#include "boss.h" // data //D:80036BA0 @@ -426,7 +427,7 @@ void removed_do_debug_profile_flag_true(void) { #ifdef NONMATCHING -void debug_menu_processor(void) { +s32 debug_menu_processor(s8 arg0, s8 arg1, u16 arg2, u16 arg3) { } #else @@ -539,7 +540,7 @@ glabel debug_menu_processor /* 0C5108 7F0905D8 0C0012ED */ jal indy_grab_rgb_32bit /* 0C510C 7F0905DC 00000000 */ nop /* 0C5110 7F0905E0 3C018003 */ lui $at, %hi(grab_rgb_screenshot_flag) -/* 0C5114 7F0905E4 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5114 7F0905E4 0C000F00 */ jal viSetColorMode16Bit /* 0C5118 7F0905E8 AC206FFC */ sw $zero, %lo(grab_rgb_screenshot_flag)($at) /* 0C511C 7F0905EC 0C0038B4 */ jal osViBlack /* 0C5120 7F0905F0 00002025 */ move $a0, $zero @@ -555,7 +556,7 @@ glabel debug_menu_processor /* 0C5144 7F090614 0C001235 */ jal indy_grab_jpg_32bit /* 0C5148 7F090618 00000000 */ nop /* 0C514C 7F09061C 3C018003 */ lui $at, %hi(grab_jpeg_screenshot_flag) -/* 0C5150 7F090620 0C000F00 */ jal set_coloroutputmode_16bit +/* 0C5150 7F090620 0C000F00 */ jal viSetColorMode16Bit /* 0C5154 7F090624 AC207000 */ sw $zero, %lo(grab_jpeg_screenshot_flag)($at) /* 0C5158 7F090628 0C0038B4 */ jal osViBlack /* 0C515C 7F09062C 00002025 */ move $a0, $zero @@ -814,7 +815,7 @@ debug_displayspeed: /* 0C54CC 7F09099C 3B190001 */ xori $t9, $t8, 1 /* 0C54D0 7F0909A0 17200134 */ bnez $t9, .L7F090E74 /* 0C54D4 7F0909A4 AC590000 */ sw $t9, ($v0) -/* 0C54D8 7F0909A8 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C54D8 7F0909A8 0C002BC0 */ jal debmenuReset /* 0C54DC 7F0909AC 00000000 */ nop /* 0C54E0 7F0909B0 10000131 */ b .L7F090E78 /* 0C54E4 7F0909B4 8FB80018 */ lw $t8, 0x18($sp) @@ -868,7 +869,7 @@ debug_testingmanpos: /* 0C5588 7F090A58 10000106 */ b .L7F090E74 /* 0C558C 7F090A5C AC4C0000 */ sw $t4, ($v0) debug_playtitle: -/* 0C5590 7F090A60 0C001A54 */ jal set_loaded_stage +/* 0C5590 7F090A60 0C001A54 */ jal bossSetLoadedStage /* 0C5594 7F090A64 2404005A */ li $a0, 90 /* 0C5598 7F090A68 10000103 */ b .L7F090E78 /* 0C559C 7F090A6C 8FB80018 */ lw $t8, 0x18($sp) @@ -885,12 +886,12 @@ debug_prroomloads: /* 0C55C0 7F090A90 100000F8 */ b .L7F090E74 /* 0C55C4 7F090A94 AC4E0000 */ sw $t6, ($v0) debug_showmemuse: -/* 0C55C8 7F090A98 0C0017FD */ jal enable_show_mem_use_flag +/* 0C55C8 7F090A98 0C0017FD */ jal bossEnableShowMemUseFlag /* 0C55CC 7F090A9C 00000000 */ nop /* 0C55D0 7F090AA0 100000F5 */ b .L7F090E78 /* 0C55D4 7F090AA4 8FB80018 */ lw $t8, 0x18($sp) debug_showmembars: -/* 0C55D8 7F090AA8 0C001801 */ jal mem_bars_flag_toggle +/* 0C55D8 7F090AA8 0C001801 */ jal bossMemBarsFlagToggle /* 0C55DC 7F090AAC 00000000 */ nop /* 0C55E0 7F090AB0 100000F1 */ b .L7F090E78 /* 0C55E4 7F090AB4 8FB80018 */ lw $t8, 0x18($sp) @@ -900,7 +901,7 @@ debug_grabrgb: /* 0C55F0 7F090AC0 AC236FFC */ sw $v1, %lo(grab_rgb_screenshot_flag)($at) /* 0C55F4 7F090AC4 0C0038B4 */ jal osViBlack /* 0C55F8 7F090AC8 24040001 */ li $a0, 1 -/* 0C55FC 7F090ACC 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C55FC 7F090ACC 0C000F04 */ jal viSetColorMode32Bit /* 0C5600 7F090AD0 00000000 */ nop /* 0C5604 7F090AD4 100000E8 */ b .L7F090E78 /* 0C5608 7F090AD8 8FB80018 */ lw $t8, 0x18($sp) @@ -910,7 +911,7 @@ debug_grabjpeg: /* 0C5614 7F090AE4 AC237000 */ sw $v1, %lo(grab_jpeg_screenshot_flag)($at) /* 0C5618 7F090AE8 0C0038B4 */ jal osViBlack /* 0C561C 7F090AEC 24040001 */ li $a0, 1 -/* 0C5620 7F090AF0 0C000F04 */ jal set_coloroutputmode_32bit +/* 0C5620 7F090AF0 0C000F04 */ jal viSetColorMode32Bit /* 0C5624 7F090AF4 00000000 */ nop /* 0C5628 7F090AF8 100000DF */ b .L7F090E78 /* 0C562C 7F090AFC 8FB80018 */ lw $t8, 0x18($sp) @@ -1201,7 +1202,7 @@ def_7F090EA8: /* 0C59F8 7F090EC8 24010001 */ li $at, 1 /* 0C59FC 7F090ECC 15610003 */ bne $t3, $at, .L7F090EDC /* 0C5A00 7F090ED0 00000000 */ nop -/* 0C5A04 7F090ED4 0C002BC0 */ jal blank_debug_buffer_chars +/* 0C5A04 7F090ED4 0C002BC0 */ jal debmenuReset /* 0C5A08 7F090ED8 00000000 */ nop .L7F090EDC: /* 0C5A0C 7F090EDC 3C018003 */ lui $at, %hi(show_debug_menu_flag) diff --git a/src/game/debugmenu_090490.h b/src/game/debugmenu_090490.h index cb0b376..974762c 100644 --- a/src/game/debugmenu_090490.h +++ b/src/game/debugmenu_090490.h @@ -38,5 +38,7 @@ s32 get_debug_chrnum_flag(void); s32 get_debug_gunwatchpos_flag(void); s32 get_debug_profile_flag(void); s32 get_debug_taskgrab_val(void); -void debug_menu_processor(void); +Gfx * print_debug_mcm_to_stdout(Gfx *); +s32 debug_menu_processor(s8 arg0, s8 arg1, u16 arg2, u16 arg3); +void display_debug_menu_text_onscreen(void); #endif diff --git a/src/game/decompress.c b/src/game/decompress.c index b3de228..56af074 100644 --- a/src/game/decompress.c +++ b/src/game/decompress.c @@ -4,31 +4,51 @@ //this definately isn't proper way this data was represented, but works for now // rodata //D:8005BF80 -const u32 rz_header_bytes[] = { - 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000, - 0x11720000, 0x11720000, 0x11720000, 0x11720000, 0x11720000 +const u8 rz_header_bytes[40] = { + 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, + 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00, 0x11, 0x72, 0x00, 0x00 }; #ifdef NONMATCHING -u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2) { +// +u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist) +{ + rz_inbuf = src; + rz_outbuf = dst; + rz_hlist = hlist; + if ((src[0] != rz_header_bytes[0]) || (src[1] != rz_header_bytes[5])) + { + if (src[1] != rz_header_bytes[8]) + { + } + if (src[2] != rz_header_bytes[0x18]) + { + + } + } + rz_inbuf = (s32) (rz_inbuf + 2); + rz_wp = 0; + rz_inptr = 0; + loop_to_decompress_entire_file(); + return rz_wp; } #else GLOBAL_ASM( .text glabel decompressdata -/* 103320 7F0CE7F0 3C078009 */ lui $a3, %hi(dword_CODE_bss_8008D350) -/* 103324 7F0CE7F4 24E7D350 */ addiu $a3, %lo(dword_CODE_bss_8008D350) # addiu $a3, $a3, -0x2cb0 +/* 103320 7F0CE7F0 3C078009 */ lui $a3, %hi(rz_inbuf) +/* 103324 7F0CE7F4 24E7D350 */ addiu $a3, %lo(rz_inbuf) # addiu $a3, $a3, -0x2cb0 /* 103328 7F0CE7F8 ACE40000 */ sw $a0, ($a3) -/* 10332C 7F0CE7FC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D354) -/* 103330 7F0CE800 AC25D354 */ sw $a1, %lo(dword_CODE_bss_8008D354)($at) +/* 10332C 7F0CE7FC 3C018009 */ lui $at, %hi(rz_outbuf) +/* 103330 7F0CE800 AC25D354 */ sw $a1, %lo(rz_outbuf)($at) /* 103334 7F0CE804 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 103338 7F0CE808 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D360) +/* 103338 7F0CE808 3C018009 */ lui $at, %hi(rz_hlist) /* 10333C 7F0CE80C AFBF0014 */ sw $ra, 0x14($sp) -/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(dword_CODE_bss_8008D360)($at) +/* 103340 7F0CE810 AC26D360 */ sw $a2, %lo(rz_hlist)($at) /* 103344 7F0CE814 3C0E8006 */ lui $t6, %hi(rz_header_bytes) /* 103348 7F0CE818 91CEBF80 */ lbu $t6, %lo(rz_header_bytes)($t6) /* 10334C 7F0CE81C 90820000 */ lbu $v0, ($a0) @@ -52,16 +72,16 @@ glabel decompressdata /* 10338C 7F0CE85C 8CEC0000 */ lw $t4, ($a3) /* 103390 7F0CE860 8CEC0000 */ lw $t4, ($a3) .L7F0CE864: -/* 103394 7F0CE864 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 103394 7F0CE864 3C018009 */ lui $at, %hi(rz_wp) /* 103398 7F0CE868 258D0002 */ addiu $t5, $t4, 2 /* 10339C 7F0CE86C ACED0000 */ sw $t5, ($a3) -/* 1033A0 7F0CE870 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) -/* 1033A4 7F0CE874 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D358) +/* 1033A0 7F0CE870 AC20D35C */ sw $zero, %lo(rz_wp)($at) +/* 1033A4 7F0CE874 3C018009 */ lui $at, %hi(rz_inptr) /* 1033A8 7F0CE878 0FC33F35 */ jal loop_to_decompress_entire_file -/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(dword_CODE_bss_8008D358)($at) +/* 1033AC 7F0CE87C AC20D358 */ sw $zero, %lo(rz_inptr)($at) /* 1033B0 7F0CE880 8FBF0014 */ lw $ra, 0x14($sp) -/* 1033B4 7F0CE884 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D35C) -/* 1033B8 7F0CE888 8C42D35C */ lw $v0, %lo(dword_CODE_bss_8008D35C)($v0) +/* 1033B4 7F0CE884 3C028009 */ lui $v0, %hi(rz_wp) +/* 1033B8 7F0CE888 8C42D35C */ lw $v0, %lo(rz_wp)($v0) /* 1033BC 7F0CE88C 03E00008 */ jr $ra /* 1033C0 7F0CE890 27BD0018 */ addiu $sp, $sp, 0x18 ) @@ -71,22 +91,10 @@ glabel decompressdata -#ifdef NONMATCHING + s32 sub_GAME_7F0CE894(void) { - // Node 0 - return (dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358); + return (rz_inbuf + rz_inptr); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0CE894 -/* 1033C4 7F0CE894 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008D350) -/* 1033C8 7F0CE898 3C0F8009 */ lui $t7, %hi(dword_CODE_bss_8008D358) -/* 1033CC 7F0CE89C 8DEFD358 */ lw $t7, %lo(dword_CODE_bss_8008D358)($t7) -/* 1033D0 7F0CE8A0 8DCED350 */ lw $t6, %lo(dword_CODE_bss_8008D350)($t6) -/* 1033D4 7F0CE8A4 03E00008 */ jr $ra -/* 1033D8 7F0CE8A8 01CF1021 */ addu $v0, $t6, $t7 -) -#endif + diff --git a/src/game/decompress.h b/src/game/decompress.h index b9d1d86..02ae061 100644 --- a/src/game/decompress.h +++ b/src/game/decompress.h @@ -1,8 +1,10 @@ #ifndef _DECOMPRESS_H_ #define _DECOMPRESS_H_ #include "ultra64.h" +#include "inflate/inflate.h" -u32 *decompressdata(u32 arg0, u32 arg1, u32 arg2); + +u32 decompressdata(u8 *src, u8 *dst, struct huft *hlist); s32 sub_GAME_7F0CE894(void); #endif diff --git a/src/game/dyn.c b/src/game/dyn.c index 9d0a7c4..777ec3d 100644 --- a/src/game/dyn.c +++ b/src/game/dyn.c @@ -1,482 +1,137 @@ #include "ultra64.h" #include "game/dyn.h" -// bss -//CODE.bss:8008C230 -s32 *ptr_mgfx0_alloc_start; -//CODE.bss:8008C234 -s32 *ptr_mgfx1_alloc_start; -//CODE.bss:8008C238 -s32 *ptr_mgfx_end; -//CODE.bss:8008C23C -s32 D_8008C23C; -//CODE.bss:8008C240 -s32 *ptr_mvtx0_alloc_start; -//CODE.bss:8008C244 -s32 *ptr_mvtx1_alloc_start; -//CODE.bss:8008C248 -s32 *ptr_mvtx_end; -//CODE.bss:8008C24C -s32 *ptr_mvtx_cur_pos; -//CODE.bss:8008C250 -s32 bank_in_mgfx_alloc_table; -//CODE.bss:8008C254 -s32 dword_CODE_bss_8008C254; +#include "token.h" +#include "str.h" +#include "memp.h" +/** + * This file handles memory usage for graphics related tasks. + * + * There are two pools, "gfx" and "vtx", which are used to store different data. + * + * The gfx pool (g_GfxBuffers) is sized based on the stage's -mgfx + * argument. It contains only the master display list's GBI bytecode. + * The master gdl is passed through all rendering functions in the game engine, + * where each appends to the display list. + * + * The vtx pool (g_VtxBuffers) is sized based on the stage's -mvtx argument. + * It is used for auxiliary graphics data such as vertex arrays, matrices and + * colours. + * + * Both the gfx and vtx pools are split into two buffers of equal size. + * Only one buffer is active at a time - the other is being drawn to the screen + * while the active one is being built. Each time a frame is finished the active + * buffer index is swapped to the other one. + * + * Both the gfx and vtx pools have a third element in them, but this is just a + * marker for the end of the second element's allocation. + */ -// data -//D:800482E0 +u8 *g_GfxBuffers[3]; +u8 *g_VtxBuffers[3]; +u8 *g_GfxMemPos; +u8 g_GfxActiveBufferIndex; +s32 g_GfxRequestedDisplayList; s32 D_800482E0 = 0; -//D:800482E4 -s32 D_800482E4[] = {0x10000, 0x18000, 0x20000}; -//D:800482F0 -s32 D_800482F0[] = {0x28000, 0x10000, 0x18000, 0x20000, 0x28000}; +s32 g_GfxSizesByPlayerCount[] = {0x10000, 0x18000, 0x20000, 0x28000}; +s32 g_VtxSizesByPlayerCount[] = {0x10000, 0x18000, 0x20000, 0x28000}; -//D:80048304 char membars_string1[] = ">>>>>>>>>>>>>>>>>>>>>>>>>"; -//D:80048320 char membars_string2[] = "========================="; -//D:8004833C char membars_string3[] = "-------------------------"; - -//rodata - void dynInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&D_800482E0, "dyn_c_debug"); + debTryAdd(&D_800482E0, "dyn_c_debug"); } -#ifdef NONMATCHING -void set_vtx_gfx_mem_alloc(void) { - s32 sp18; - ? temp_ret; - - if (check_token(1, "-mgfx") != 0) - { - dyn_c_debug_notice_list_entry[getPlayerCount()] = strtol(check_token(1, "-mgfx"), 0, 0) << 0xa; +void dynInitMemory(void) { + if (tokenFind(1, "-mgfx")) { + g_GfxSizesByPlayerCount[getPlayerCount() - 1] = strtol(tokenFind(1, "-mgfx"), NULL, 0) * 1024; + } + if (tokenFind(1, "-mvtx")) { + g_VtxSizesByPlayerCount[getPlayerCount() - 1] = strtol(tokenFind(1, "-mvtx"), NULL, 0) * 1024; } - if (check_token(1, "-mvtx") != 0) - { - D_800482F0[getPlayerCount()] = strtol(check_token(1, "-mvtx"), 0, 0) << 0xa; + g_GfxBuffers[0] = mempAllocBytesInBank(g_GfxSizesByPlayerCount[getPlayerCount() - 1] * 2, 4); + g_GfxBuffers[1] = (g_GfxBuffers[0] + g_GfxSizesByPlayerCount[getPlayerCount() - 1]); + g_GfxBuffers[2] = (g_GfxBuffers[1] + g_GfxSizesByPlayerCount[getPlayerCount() - 1]); + + g_VtxBuffers[0] = mempAllocBytesInBank(g_VtxSizesByPlayerCount[getPlayerCount() - 1] * 2, 4); + g_VtxBuffers[1] = (g_VtxBuffers[0] + g_VtxSizesByPlayerCount[getPlayerCount() - 1]); + g_VtxBuffers[2] = (g_VtxBuffers[1] + g_VtxSizesByPlayerCount[getPlayerCount() - 1]); + + g_GfxActiveBufferIndex = 0; + g_GfxRequestedDisplayList = FALSE; + g_GfxMemPos = g_VtxBuffers[0]; +} + +Gfx *dynGetMasterDisplayList(void) { + g_GfxRequestedDisplayList = TRUE; + + return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex]; +} + +s32 dynGetFreeGfx2(Gfx *gdl) { + return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl; +} + +void/*Vtx?*/ *dynAllocate7F0BD6C4(s32 count) { + void *ptr = g_GfxMemPos; + g_GfxMemPos += count * 0x10/*sizeof(Vtx)?*/; + return ptr; +} + +Mtx *dynAllocateMatrix(void) +{ + void *ptr = g_GfxMemPos; + g_GfxMemPos += sizeof(Mtx); + return ptr; +} + +void/*Light?*/ *dynAllocate7F0BD6F8(s32 count) { + void *ptr = g_GfxMemPos; + g_GfxMemPos += count * 0x10/*sizeof(Light)?*/; + return ptr; +} + +void *dynAllocate(s32 size) { + void *ptr = g_GfxMemPos; + size = ALIGN16_a(size); + g_GfxMemPos += size; + return ptr; +} + +void dynSwapBuffers(void) { + g_GfxActiveBufferIndex = (g_GfxActiveBufferIndex ^ 1); + g_GfxRequestedDisplayList = FALSE; + g_GfxMemPos = g_VtxBuffers[g_GfxActiveBufferIndex]; +} + +void dynRemovedFunc(Gfx *gdl) { +} + +s32 dynGetFreeGfx(Gfx *gdl) { + return (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl; +} + +s32 dynGetFreeVtx(void) { + return g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_GfxMemPos; +} + +#ifdef NONMATCHING +// $f2 is used for 0.0f instead of $f0 +f32 dynCalculateMembarLength(const char* arg0, f32 arg1, f32 arg2) { + strlen(arg0); + arg1 /= arg2; + if (arg1 < 0.0f) { + return 0.0f; } - - mempAllocBytesInBank(dyn_c_debug_notice_list_entry[sVar1] << 1, 4); - ptr_mgfx0_alloc_start.unk4 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D20 + ptr_mgfx0_alloc_start); - ptr_mgfx0_alloc_start.unk8 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D20 + ptr_mgfx0_alloc_start.unk4); - ptr_mvtx0_alloc_start = mempAllocBytesInBank(((0x80050000 + (getPlayerCount() * 4))->unk-7D10 * 2), 4); - ptr_mvtx0_alloc_start.unk4 = (s32) ((0x80050000 + (getPlayerCount() * 4))->unk-7D10 + ptr_mvtx0_alloc_start); - temp_ret = getPlayerCount(); - ptr_mvtx0_alloc_start.unk8 = (s32) ((0x80050000 + (temp_ret * 4))->unk-7D10 + ptr_mvtx0_alloc_start.unk4); - bank_in_mgfx_alloc_table = (u8)0; - dword_CODE_bss_8008C254 = 0; - (void *)0x80090000->unk-3DB4 = (s32) ptr_mvtx0_alloc_start; - return temp_ret; -} -#else -GLOBAL_ASM( -.rdata -/*D:8005B68C*/ -glabel aMgfx -/*"-mgfx"*/ -.word 0x2D6D6766, 0x78000000 - -/*D:8005B694*/ -glabel aMgfx_1 - /*"-mgfx"*/ -.word 0x2D6D6766, 0x78000000 - -/*D:8005B69C*/ -glabel aMvtx - /*"-mvtx"*/ -.word 0x2D6D7674, 0x78000000 - -/*D:8005B6A4*/ -glabel aMvtx_0 - /*"-mvtx"*/ -.word 0x2D6D7674, 0x78000000 - -.text -glabel set_vtx_gfx_mem_alloc -/* 0F1FBC 7F0BD48C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F1FC0 7F0BD490 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F1FC4 7F0BD494 3C058006 */ lui $a1, %hi(aMgfx) -/* 0F1FC8 7F0BD498 24A5B68C */ addiu $a1, %lo(aMgfx) # addiu $a1, $a1, -0x4974 -/* 0F1FCC 7F0BD49C 0C0029A8 */ jal check_token -/* 0F1FD0 7F0BD4A0 24040001 */ li $a0, 1 -/* 0F1FD4 7F0BD4A4 10400012 */ beqz $v0, .L7F0BD4F0 -/* 0F1FD8 7F0BD4A8 00000000 */ nop -/* 0F1FDC 7F0BD4AC 0FC26919 */ jal getPlayerCount -/* 0F1FE0 7F0BD4B0 00000000 */ nop -/* 0F1FE4 7F0BD4B4 3C058006 */ lui $a1, %hi(aMgfx_1) -/* 0F1FE8 7F0BD4B8 24A5B694 */ addiu $a1, %lo(aMgfx_1) # addiu $a1, $a1, -0x496c -/* 0F1FEC 7F0BD4BC AFA20018 */ sw $v0, 0x18($sp) -/* 0F1FF0 7F0BD4C0 0C0029A8 */ jal check_token -/* 0F1FF4 7F0BD4C4 24040001 */ li $a0, 1 -/* 0F1FF8 7F0BD4C8 00402025 */ move $a0, $v0 -/* 0F1FFC 7F0BD4CC 00002825 */ move $a1, $zero -/* 0F2000 7F0BD4D0 0C002A78 */ jal strtol -/* 0F2004 7F0BD4D4 00003025 */ move $a2, $zero -/* 0F2008 7F0BD4D8 8FAF0018 */ lw $t7, 0x18($sp) -/* 0F200C 7F0BD4DC 3C018005 */ lui $at, %hi(D_800482E0) -/* 0F2010 7F0BD4E0 00027280 */ sll $t6, $v0, 0xa -/* 0F2014 7F0BD4E4 000FC080 */ sll $t8, $t7, 2 -/* 0F2018 7F0BD4E8 00380821 */ addu $at, $at, $t8 -/* 0F201C 7F0BD4EC AC2E82E0 */ sw $t6, %lo(D_800482E0)($at) -.L7F0BD4F0: -/* 0F2020 7F0BD4F0 3C058006 */ lui $a1, %hi(aMvtx) -/* 0F2024 7F0BD4F4 24A5B69C */ addiu $a1, %lo(aMvtx) # addiu $a1, $a1, -0x4964 -/* 0F2028 7F0BD4F8 0C0029A8 */ jal check_token -/* 0F202C 7F0BD4FC 24040001 */ li $a0, 1 -/* 0F2030 7F0BD500 10400012 */ beqz $v0, .L7F0BD54C -/* 0F2034 7F0BD504 00000000 */ nop -/* 0F2038 7F0BD508 0FC26919 */ jal getPlayerCount -/* 0F203C 7F0BD50C 00000000 */ nop -/* 0F2040 7F0BD510 3C058006 */ lui $a1, %hi(aMvtx_0) -/* 0F2044 7F0BD514 24A5B6A4 */ addiu $a1, %lo(aMvtx_0) # addiu $a1, $a1, -0x495c -/* 0F2048 7F0BD518 AFA20018 */ sw $v0, 0x18($sp) -/* 0F204C 7F0BD51C 0C0029A8 */ jal check_token -/* 0F2050 7F0BD520 24040001 */ li $a0, 1 -/* 0F2054 7F0BD524 00402025 */ move $a0, $v0 -/* 0F2058 7F0BD528 00002825 */ move $a1, $zero -/* 0F205C 7F0BD52C 0C002A78 */ jal strtol -/* 0F2060 7F0BD530 00003025 */ move $a2, $zero -/* 0F2064 7F0BD534 8FA80018 */ lw $t0, 0x18($sp) -/* 0F2068 7F0BD538 3C018005 */ lui $at, %hi(D_800482F0) -/* 0F206C 7F0BD53C 0002CA80 */ sll $t9, $v0, 0xa -/* 0F2070 7F0BD540 00084880 */ sll $t1, $t0, 2 -/* 0F2074 7F0BD544 00290821 */ addu $at, $at, $t1 -/* 0F2078 7F0BD548 AC3982F0 */ sw $t9, %lo(D_800482F0)($at) -.L7F0BD54C: -/* 0F207C 7F0BD54C 0FC26919 */ jal getPlayerCount -/* 0F2080 7F0BD550 00000000 */ nop -/* 0F2084 7F0BD554 00025080 */ sll $t2, $v0, 2 -/* 0F2088 7F0BD558 3C048005 */ lui $a0, %hi(D_800482E0) -/* 0F208C 7F0BD55C 008A2021 */ addu $a0, $a0, $t2 -/* 0F2090 7F0BD560 8C8482E0 */ lw $a0, %lo(D_800482E0)($a0) -/* 0F2094 7F0BD564 24050004 */ li $a1, 4 -/* 0F2098 7F0BD568 00045840 */ sll $t3, $a0, 1 -/* 0F209C 7F0BD56C 0C0025C8 */ jal mempAllocBytesInBank -/* 0F20A0 7F0BD570 01602025 */ move $a0, $t3 -/* 0F20A4 7F0BD574 3C018009 */ lui $at, %hi(ptr_mgfx0_alloc_start) -/* 0F20A8 7F0BD578 0FC26919 */ jal getPlayerCount -/* 0F20AC 7F0BD57C AC22C230 */ sw $v0, %lo(ptr_mgfx0_alloc_start)($at) -/* 0F20B0 7F0BD580 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) -/* 0F20B4 7F0BD584 00026080 */ sll $t4, $v0, 2 -/* 0F20B8 7F0BD588 3C0D8005 */ lui $t5, %hi(D_800482E0) -/* 0F20BC 7F0BD58C 01AC6821 */ addu $t5, $t5, $t4 -/* 0F20C0 7F0BD590 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 -/* 0F20C4 7F0BD594 8C6F0000 */ lw $t7, ($v1) -/* 0F20C8 7F0BD598 8DAD82E0 */ lw $t5, %lo(D_800482E0)($t5) -/* 0F20CC 7F0BD59C 01AF7021 */ addu $t6, $t5, $t7 -/* 0F20D0 7F0BD5A0 0FC26919 */ jal getPlayerCount -/* 0F20D4 7F0BD5A4 AC6E0004 */ sw $t6, 4($v1) -/* 0F20D8 7F0BD5A8 3C038009 */ lui $v1, %hi(ptr_mgfx0_alloc_start) -/* 0F20DC 7F0BD5AC 0002C080 */ sll $t8, $v0, 2 -/* 0F20E0 7F0BD5B0 3C088005 */ lui $t0, %hi(D_800482E0) -/* 0F20E4 7F0BD5B4 01184021 */ addu $t0, $t0, $t8 -/* 0F20E8 7F0BD5B8 2463C230 */ addiu $v1, %lo(ptr_mgfx0_alloc_start) # addiu $v1, $v1, -0x3dd0 -/* 0F20EC 7F0BD5BC 8C790004 */ lw $t9, 4($v1) -/* 0F20F0 7F0BD5C0 8D0882E0 */ lw $t0, %lo(D_800482E0)($t0) -/* 0F20F4 7F0BD5C4 01194821 */ addu $t1, $t0, $t9 -/* 0F20F8 7F0BD5C8 0FC26919 */ jal getPlayerCount -/* 0F20FC 7F0BD5CC AC690008 */ sw $t1, 8($v1) -/* 0F2100 7F0BD5D0 00025080 */ sll $t2, $v0, 2 -/* 0F2104 7F0BD5D4 3C048005 */ lui $a0, %hi(D_800482F0) -/* 0F2108 7F0BD5D8 008A2021 */ addu $a0, $a0, $t2 -/* 0F210C 7F0BD5DC 8C8482F0 */ lw $a0, %lo(D_800482F0)($a0) -/* 0F2110 7F0BD5E0 24050004 */ li $a1, 4 -/* 0F2114 7F0BD5E4 00045840 */ sll $t3, $a0, 1 -/* 0F2118 7F0BD5E8 0C0025C8 */ jal mempAllocBytesInBank -/* 0F211C 7F0BD5EC 01602025 */ move $a0, $t3 -/* 0F2120 7F0BD5F0 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) -/* 0F2124 7F0BD5F4 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 -/* 0F2128 7F0BD5F8 0FC26919 */ jal getPlayerCount -/* 0F212C 7F0BD5FC AC620000 */ sw $v0, ($v1) -/* 0F2130 7F0BD600 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) -/* 0F2134 7F0BD604 00026080 */ sll $t4, $v0, 2 -/* 0F2138 7F0BD608 3C0D8005 */ lui $t5, %hi(D_800482F0) -/* 0F213C 7F0BD60C 01AC6821 */ addu $t5, $t5, $t4 -/* 0F2140 7F0BD610 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 -/* 0F2144 7F0BD614 8C6F0000 */ lw $t7, ($v1) -/* 0F2148 7F0BD618 8DAD82F0 */ lw $t5, %lo(D_800482F0)($t5) -/* 0F214C 7F0BD61C 01AF7021 */ addu $t6, $t5, $t7 -/* 0F2150 7F0BD620 0FC26919 */ jal getPlayerCount -/* 0F2154 7F0BD624 AC6E0004 */ sw $t6, 4($v1) -/* 0F2158 7F0BD628 3C038009 */ lui $v1, %hi(ptr_mvtx0_alloc_start) -/* 0F215C 7F0BD62C 0002C080 */ sll $t8, $v0, 2 -/* 0F2160 7F0BD630 3C088005 */ lui $t0, %hi(D_800482F0) -/* 0F2164 7F0BD634 01184021 */ addu $t0, $t0, $t8 -/* 0F2168 7F0BD638 2463C240 */ addiu $v1, %lo(ptr_mvtx0_alloc_start) # addiu $v1, $v1, -0x3dc0 -/* 0F216C 7F0BD63C 8C790004 */ lw $t9, 4($v1) -/* 0F2170 7F0BD640 8D0882F0 */ lw $t0, %lo(D_800482F0)($t0) -/* 0F2174 7F0BD644 3C018009 */ lui $at, %hi(bank_in_mgfx_alloc_table) -/* 0F2178 7F0BD648 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F217C 7F0BD64C 01194821 */ addu $t1, $t0, $t9 -/* 0F2180 7F0BD650 AC690008 */ sw $t1, 8($v1) -/* 0F2184 7F0BD654 A020C250 */ sb $zero, %lo(bank_in_mgfx_alloc_table)($at) -/* 0F2188 7F0BD658 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) -/* 0F218C 7F0BD65C AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) -/* 0F2190 7F0BD660 8C6A0000 */ lw $t2, ($v1) -/* 0F2194 7F0BD664 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) -/* 0F2198 7F0BD668 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F219C 7F0BD66C 03E00008 */ jr $ra -/* 0F21A0 7F0BD670 AC2AC24C */ sw $t2, %lo(ptr_mvtx_cur_pos)($at) -) -#endif - - - - - -#ifdef NONMATCHING -void get_ptr_displaylist(void) { - } #else +f32 dynCalculateMembarLength(const char* arg0, f32 arg1, f32 arg2); GLOBAL_ASM( .text -glabel get_ptr_displaylist -/* 0F21A4 7F0BD674 3C0F8009 */ lui $t7, %hi(bank_in_mgfx_alloc_table) -/* 0F21A8 7F0BD678 91EFC250 */ lbu $t7, %lo(bank_in_mgfx_alloc_table)($t7) -/* 0F21AC 7F0BD67C 3C028009 */ lui $v0, %hi(ptr_mgfx0_alloc_start) -/* 0F21B0 7F0BD680 240E0001 */ li $t6, 1 -/* 0F21B4 7F0BD684 000FC080 */ sll $t8, $t7, 2 -/* 0F21B8 7F0BD688 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) -/* 0F21BC 7F0BD68C 00581021 */ addu $v0, $v0, $t8 -/* 0F21C0 7F0BD690 AC2EC254 */ sw $t6, %lo(dword_CODE_bss_8008C254)($at) -/* 0F21C4 7F0BD694 03E00008 */ jr $ra -/* 0F21C8 7F0BD698 8C42C230 */ lw $v0, %lo(ptr_mgfx0_alloc_start)($v0) -) -#endif - - - - - -#ifdef NONMATCHING -void allocate_something_in_mgfx(void) { - -} -#else -GLOBAL_ASM( -.text -glabel allocate_something_in_mgfx -/* 0F21CC 7F0BD69C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) -/* 0F21D0 7F0BD6A0 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) -/* 0F21D4 7F0BD6A4 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) -/* 0F21D8 7F0BD6A8 000E7880 */ sll $t7, $t6, 2 -/* 0F21DC 7F0BD6AC 030FC021 */ addu $t8, $t8, $t7 -/* 0F21E0 7F0BD6B0 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) -/* 0F21E4 7F0BD6B4 03041023 */ subu $v0, $t8, $a0 -/* 0F21E8 7F0BD6B8 0002C8C3 */ sra $t9, $v0, 3 -/* 0F21EC 7F0BD6BC 03E00008 */ jr $ra -/* 0F21F0 7F0BD6C0 03201025 */ move $v0, $t9 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0BD6C4(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BD6C4 -/* 0F21F4 7F0BD6C4 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) -/* 0F21F8 7F0BD6C8 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 -/* 0F21FC 7F0BD6CC 8CC20000 */ lw $v0, ($a2) -/* 0F2200 7F0BD6D0 00047100 */ sll $t6, $a0, 4 -/* 0F2204 7F0BD6D4 004E7821 */ addu $t7, $v0, $t6 -/* 0F2208 7F0BD6D8 03E00008 */ jr $ra -/* 0F220C 7F0BD6DC ACCF0000 */ sw $t7, ($a2) -) -#endif - - - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0BD6E0(void) { - // Node 0 - ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + 0x40); - return ptr_mvtx_cur_pos; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BD6E0 -/* 0F2210 7F0BD6E0 3C058009 */ lui $a1, %hi(ptr_mvtx_cur_pos) -/* 0F2214 7F0BD6E4 24A5C24C */ addiu $a1, %lo(ptr_mvtx_cur_pos) # addiu $a1, $a1, -0x3db4 -/* 0F2218 7F0BD6E8 8CA20000 */ lw $v0, ($a1) -/* 0F221C 7F0BD6EC 244E0040 */ addiu $t6, $v0, 0x40 -/* 0F2220 7F0BD6F0 03E00008 */ jr $ra -/* 0F2224 7F0BD6F4 ACAE0000 */ sw $t6, ($a1) -) -#endif - - - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0BD6F8(s32 arg0) { - // Node 0 - ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (arg0 * 0x10)); - return ptr_mvtx_cur_pos; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BD6F8 -/* 0F2228 7F0BD6F8 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) -/* 0F222C 7F0BD6FC 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 -/* 0F2230 7F0BD700 8CC20000 */ lw $v0, ($a2) -/* 0F2234 7F0BD704 00047100 */ sll $t6, $a0, 4 -/* 0F2238 7F0BD708 004E7821 */ addu $t7, $v0, $t6 -/* 0F223C 7F0BD70C 03E00008 */ jr $ra -/* 0F2240 7F0BD710 ACCF0000 */ sw $t7, ($a2) -) -#endif - - - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0BD714(s32 arg0) { - // Node 0 - ptr_mvtx_cur_pos = (s32) (ptr_mvtx_cur_pos + (((arg0 + 0xf) | 0xf) ^ 0xf)); - return ptr_mvtx_cur_pos; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BD714 -/* 0F2244 7F0BD714 3C068009 */ lui $a2, %hi(ptr_mvtx_cur_pos) -/* 0F2248 7F0BD718 24C6C24C */ addiu $a2, %lo(ptr_mvtx_cur_pos) # addiu $a2, $a2, -0x3db4 -/* 0F224C 7F0BD71C 8CC20000 */ lw $v0, ($a2) -/* 0F2250 7F0BD720 2484000F */ addiu $a0, $a0, 0xf -/* 0F2254 7F0BD724 348E000F */ ori $t6, $a0, 0xf -/* 0F2258 7F0BD728 39CF000F */ xori $t7, $t6, 0xf -/* 0F225C 7F0BD72C 004FC021 */ addu $t8, $v0, $t7 -/* 0F2260 7F0BD730 03E00008 */ jr $ra -/* 0F2264 7F0BD734 ACD80000 */ sw $t8, ($a2) -) -#endif - - - - - -#ifdef NONMATCHING -void *allocate_something_in_mvtx(void) { - // Node 0 - bank_in_mgfx_alloc_table = (s8) (bank_in_mgfx_alloc_table ^ 1); - dword_CODE_bss_8008C254 = 0; - ptr_mvtx_cur_pos = (?32) (0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DC0; - return &bank_in_mgfx_alloc_table; -} -#else -GLOBAL_ASM( -.text -glabel allocate_something_in_mvtx -/* 0F2268 7F0BD738 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) -/* 0F226C 7F0BD73C 2442C250 */ addiu $v0, %lo(bank_in_mgfx_alloc_table) # addiu $v0, $v0, -0x3db0 -/* 0F2270 7F0BD740 904E0000 */ lbu $t6, ($v0) -/* 0F2274 7F0BD744 3C018009 */ lui $at, %hi(dword_CODE_bss_8008C254) -/* 0F2278 7F0BD748 3C088009 */ lui $t0, %hi(ptr_mvtx0_alloc_start) -/* 0F227C 7F0BD74C 39CF0001 */ xori $t7, $t6, 1 -/* 0F2280 7F0BD750 A04F0000 */ sb $t7, ($v0) -/* 0F2284 7F0BD754 AC20C254 */ sw $zero, %lo(dword_CODE_bss_8008C254)($at) -/* 0F2288 7F0BD758 90580000 */ lbu $t8, ($v0) -/* 0F228C 7F0BD75C 3C018009 */ lui $at, %hi(ptr_mvtx_cur_pos) -/* 0F2290 7F0BD760 0018C880 */ sll $t9, $t8, 2 -/* 0F2294 7F0BD764 01194021 */ addu $t0, $t0, $t9 -/* 0F2298 7F0BD768 8D08C240 */ lw $t0, %lo(ptr_mvtx0_alloc_start)($t0) -/* 0F229C 7F0BD76C 03E00008 */ jr $ra -/* 0F22A0 7F0BD770 AC28C24C */ sw $t0, %lo(ptr_mvtx_cur_pos)($at) -) -#endif - - - - - -void removed_debug_routine(s32 arg0) { - return; -} - - - - - - -#ifdef NONMATCHING -s32 num_microcode_cmds_that_fit(s32 arg0) { - // Node 0 - return ((s32) ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DCC - arg0) >> 3); -} -#else -GLOBAL_ASM( -.text -glabel num_microcode_cmds_that_fit -/* 0F22AC 7F0BD77C 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) -/* 0F22B0 7F0BD780 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) -/* 0F22B4 7F0BD784 3C188009 */ lui $t8, %hi(ptr_mgfx1_alloc_start) -/* 0F22B8 7F0BD788 000E7880 */ sll $t7, $t6, 2 -/* 0F22BC 7F0BD78C 030FC021 */ addu $t8, $t8, $t7 -/* 0F22C0 7F0BD790 8F18C234 */ lw $t8, %lo(ptr_mgfx1_alloc_start)($t8) -/* 0F22C4 7F0BD794 03041023 */ subu $v0, $t8, $a0 -/* 0F22C8 7F0BD798 0002C8C3 */ sra $t9, $v0, 3 -/* 0F22CC 7F0BD79C 03E00008 */ jr $ra -/* 0F22D0 7F0BD7A0 03201025 */ move $v0, $t9 -) -#endif - - - - - -#ifdef NONMATCHING -s32 sub_GAME_7F0BD7A4(void) { - // Node 0 - return ((0x80090000 + (bank_in_mgfx_alloc_table * 4))->unk-3DBC - ptr_mvtx_cur_pos); -} - -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BD7A4 -/* 0F22D4 7F0BD7A4 3C0E8009 */ lui $t6, %hi(bank_in_mgfx_alloc_table) -/* 0F22D8 7F0BD7A8 91CEC250 */ lbu $t6, %lo(bank_in_mgfx_alloc_table)($t6) -/* 0F22DC 7F0BD7AC 3C188009 */ lui $t8, %hi(ptr_mvtx1_alloc_start) -/* 0F22E0 7F0BD7B0 3C198009 */ lui $t9, %hi(ptr_mvtx_cur_pos) -/* 0F22E4 7F0BD7B4 000E7880 */ sll $t7, $t6, 2 -/* 0F22E8 7F0BD7B8 030FC021 */ addu $t8, $t8, $t7 -/* 0F22EC 7F0BD7BC 8F18C244 */ lw $t8, %lo(ptr_mvtx1_alloc_start)($t8) -/* 0F22F0 7F0BD7C0 8F39C24C */ lw $t9, %lo(ptr_mvtx_cur_pos)($t9) -/* 0F22F4 7F0BD7C4 03E00008 */ jr $ra -/* 0F22F8 7F0BD7C8 03191023 */ subu $v0, $t8, $t9 -) -#endif - - - - - -#ifdef NONMATCHING -void compute_membar_display_string(void) { - -} -#else -GLOBAL_ASM( -.text -glabel compute_membar_display_string +glabel dynCalculateMembarLength /* 0F22FC 7F0BD7CC 44856000 */ mtc1 $a1, $f12 /* 0F2300 7F0BD7D0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0F2304 7F0BD7D4 AFBF0014 */ sw $ra, 0x14($sp) @@ -498,81 +153,7 @@ glabel compute_membar_display_string ) #endif - - - - -#ifdef NONMATCHING -void draw_membars(s32 arg0) { - void *temp_t7; - void *temp_t7_2; - - // Node 0 - temp_t7 = (&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); - compute_membar_display_string(&membars_string2, (f32) ((s32) (temp_t7->unk4 - arg0) >> 3), (f32) ((s32) (temp_t7->unk4 - *(&ptr_mgfx0_alloc_start + (bank_in_mgfx_alloc_table * 4))) >> 3), arg0); - temp_t7_2 = (&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4)); - return compute_membar_display_string(&membars_string2, (f32) (temp_t7_2->unk4 - ptr_mvtx_cur_pos), (f32) (temp_t7_2->unk4 - *(&ptr_mvtx0_alloc_start + (bank_in_mgfx_alloc_table * 4))), &ptr_mvtx0_alloc_start); +void dynDrawMembars(Gfx *gdl) { + dynCalculateMembarLength(membars_string2, ((Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - gdl), ((Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex + 1] - (Gfx*)g_GfxBuffers[g_GfxActiveBufferIndex])); + dynCalculateMembarLength(membars_string2, (g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_GfxMemPos), (g_VtxBuffers[g_GfxActiveBufferIndex + 1] - g_VtxBuffers[g_GfxActiveBufferIndex])); } -#else -GLOBAL_ASM( -.text -glabel draw_membars -/* 0F2340 7F0BD810 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) -/* 0F2344 7F0BD814 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) -/* 0F2348 7F0BD818 3C088009 */ lui $t0, %hi(ptr_mgfx0_alloc_start) -/* 0F234C 7F0BD81C 2508C230 */ addiu $t0, %lo(ptr_mgfx0_alloc_start) # addiu $t0, $t0, -0x3dd0 -/* 0F2350 7F0BD820 00027080 */ sll $t6, $v0, 2 -/* 0F2354 7F0BD824 010E7821 */ addu $t7, $t0, $t6 -/* 0F2358 7F0BD828 00024880 */ sll $t1, $v0, 2 -/* 0F235C 7F0BD82C 8DE30004 */ lw $v1, 4($t7) -/* 0F2360 7F0BD830 01095021 */ addu $t2, $t0, $t1 -/* 0F2364 7F0BD834 8D4B0000 */ lw $t3, ($t2) -/* 0F2368 7F0BD838 00803825 */ move $a3, $a0 -/* 0F236C 7F0BD83C 0067C023 */ subu $t8, $v1, $a3 -/* 0F2370 7F0BD840 006B6023 */ subu $t4, $v1, $t3 -/* 0F2374 7F0BD844 000C68C3 */ sra $t5, $t4, 3 -/* 0F2378 7F0BD848 0018C8C3 */ sra $t9, $t8, 3 -/* 0F237C 7F0BD84C 44992000 */ mtc1 $t9, $f4 -/* 0F2380 7F0BD850 448D3000 */ mtc1 $t5, $f6 -/* 0F2384 7F0BD854 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F2388 7F0BD858 46802120 */ cvt.s.w $f4, $f4 -/* 0F238C 7F0BD85C AFBF0014 */ sw $ra, 0x14($sp) -/* 0F2390 7F0BD860 3C048005 */ lui $a0, %hi(membars_string2) -/* 0F2394 7F0BD864 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 -/* 0F2398 7F0BD868 468031A0 */ cvt.s.w $f6, $f6 -/* 0F239C 7F0BD86C 44052000 */ mfc1 $a1, $f4 -/* 0F23A0 7F0BD870 44063000 */ mfc1 $a2, $f6 -/* 0F23A4 7F0BD874 0FC2F5F3 */ jal compute_membar_display_string -/* 0F23A8 7F0BD878 00000000 */ nop -/* 0F23AC 7F0BD87C 3C028009 */ lui $v0, %hi(bank_in_mgfx_alloc_table) -/* 0F23B0 7F0BD880 9042C250 */ lbu $v0, %lo(bank_in_mgfx_alloc_table)($v0) -/* 0F23B4 7F0BD884 3C078009 */ lui $a3, %hi(ptr_mvtx0_alloc_start) -/* 0F23B8 7F0BD888 24E7C240 */ addiu $a3, %lo(ptr_mvtx0_alloc_start) # addiu $a3, $a3, -0x3dc0 -/* 0F23BC 7F0BD88C 00027080 */ sll $t6, $v0, 2 -/* 0F23C0 7F0BD890 00EE7821 */ addu $t7, $a3, $t6 -/* 0F23C4 7F0BD894 00024880 */ sll $t1, $v0, 2 -/* 0F23C8 7F0BD898 8DE30004 */ lw $v1, 4($t7) -/* 0F23CC 7F0BD89C 00E95021 */ addu $t2, $a3, $t1 -/* 0F23D0 7F0BD8A0 3C188009 */ lui $t8, %hi(ptr_mvtx_cur_pos) -/* 0F23D4 7F0BD8A4 8F18C24C */ lw $t8, %lo(ptr_mvtx_cur_pos)($t8) -/* 0F23D8 7F0BD8A8 8D4B0000 */ lw $t3, ($t2) -/* 0F23DC 7F0BD8AC 3C048005 */ lui $a0, %hi(membars_string2) -/* 0F23E0 7F0BD8B0 0078C823 */ subu $t9, $v1, $t8 -/* 0F23E4 7F0BD8B4 006B6023 */ subu $t4, $v1, $t3 -/* 0F23E8 7F0BD8B8 448C5000 */ mtc1 $t4, $f10 -/* 0F23EC 7F0BD8BC 44994000 */ mtc1 $t9, $f8 -/* 0F23F0 7F0BD8C0 24848320 */ addiu $a0, %lo(membars_string2) # addiu $a0, $a0, -0x7ce0 -/* 0F23F4 7F0BD8C4 468052A0 */ cvt.s.w $f10, $f10 -/* 0F23F8 7F0BD8C8 46804220 */ cvt.s.w $f8, $f8 -/* 0F23FC 7F0BD8CC 44065000 */ mfc1 $a2, $f10 -/* 0F2400 7F0BD8D0 44054000 */ mfc1 $a1, $f8 -/* 0F2404 7F0BD8D4 0FC2F5F3 */ jal compute_membar_display_string -/* 0F2408 7F0BD8D8 00000000 */ nop -/* 0F240C 7F0BD8DC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F2410 7F0BD8E0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F2414 7F0BD8E4 03E00008 */ jr $ra -/* 0F2418 7F0BD8E8 00000000 */ nop -) -#endif - - diff --git a/src/game/dyn.h b/src/game/dyn.h index b883baf..16fd9a6 100644 --- a/src/game/dyn.h +++ b/src/game/dyn.h @@ -1,7 +1,25 @@ #ifndef _DYN_H_ #define _DYN_H_ + #include "ultra64.h" +/* +* Align to 16 bit boundary. Version "a", with preliminary addition. +*/ +#define ALIGN16_a(val) (((val) + 0xf | 0xf) ^ 0xf) + void dynInitDebugNoticeList(void); +void dynInitMemory(void); +Gfx *dynGetMasterDisplayList(void); +s32 dynGetFreeGfx2(Gfx *gdl); +void *dynAllocate7F0BD6C4(s32 count); +Mtx *dynAllocateMatrix(void); +void *dynAllocate7F0BD6F8(s32 count); +void *dynAllocate(s32 size); +void dynSwapBuffers(void); +void dynRemovedFunc(Gfx *gdl); +s32 dynGetFreeGfx(Gfx *gdl); +s32 dynGetFreeVtx(void); +void dynDrawMembars(Gfx *gdl); #endif diff --git a/src/game/fog.c b/src/game/fog.c index 0b74e2b..4e4c01f 100644 --- a/src/game/fog.c +++ b/src/game/fog.c @@ -183,34 +183,21 @@ struct fog_element2 fog_tables2[] = { -#ifdef NONMATCHING -void sub_GAME_7F0BA720(void) { +void sub_GAME_7F0BA720(s32 a, s32 b) { + return; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BA720 -/* 0EF250 7F0BA720 AFA40000 */ sw $a0, ($sp) -/* 0EF254 7F0BA724 03E00008 */ jr $ra -/* 0EF258 7F0BA728 AFA50004 */ sw $a1, 4($sp) -) -#endif - - - - s32 get_ptr_currentdata(void){ - return ptr_current_data; + return ptr_current_data; } f32 get_near_fog_value(void) { - return near_fog_value; + return near_fog_value; } f32 square_near_fog_value(void) { - return near_fog_value * near_fog_value; + return near_fog_value * near_fog_value; } @@ -229,9 +216,9 @@ glabel copy_table1_env_to_current /* 0EF28C 7F0BA75C AFBF0014 */ sw $ra, 0x14($sp) /* 0EF290 7F0BA760 C48E0008 */ lwc1 $f14, 8($a0) /* 0EF294 7F0BA764 C48C0004 */ lwc1 $f12, 4($a0) -/* 0EF298 7F0BA768 0C001194 */ jal set_page_height +/* 0EF298 7F0BA768 0C001194 */ jal viSetZRange /* 0EF29C 7F0BA76C AFA40038 */ sw $a0, 0x38($sp) -/* 0EF2A0 7F0BA770 0C0011AB */ jal video_related_27 +/* 0EF2A0 7F0BA770 0C0011AB */ jal viGetZRange /* 0EF2A4 7F0BA774 27A40030 */ addiu $a0, $sp, 0x30 /* 0EF2A8 7F0BA778 0FC2D21E */ jal sub_GAME_7F0B4878 /* 0EF2AC 7F0BA77C 00000000 */ nop @@ -442,18 +429,11 @@ glabel copy_table2_env_to_current -#ifdef NONMATCHING -void sub_GAME_7F0BAA5C(void) { +void sub_GAME_7F0BAA5C(s32 a) { + return; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0BAA5C -/* 0EF58C 7F0BAA5C 03E00008 */ jr $ra -/* 0EF590 7F0BAA60 AFA40000 */ sw $a0, ($sp) -) -#endif + @@ -595,7 +575,7 @@ glabel load_enviroment /* 0EF748 7F0BAC18 3C018006 */ lui $at, %hi(D_80058D74) /* 0EF74C 7F0BAC1C C42E8D74 */ lwc1 $f14, %lo(D_80058D74)($at) /* 0EF750 7F0BAC20 AFA6001C */ sw $a2, 0x1c($sp) -/* 0EF754 7F0BAC24 0C001194 */ jal set_page_height +/* 0EF754 7F0BAC24 0C001194 */ jal viSetZRange /* 0EF758 7F0BAC28 AFA70028 */ sw $a3, 0x28($sp) /* 0EF75C 7F0BAC2C 3C048004 */ lui $a0, %hi(fog_tables2) /* 0EF760 7F0BAC30 3C018008 */ lui $at, %hi(sky_enabled) diff --git a/src/game/game_debug.c b/src/game/game_debug.c index ada79da..8871fef 100644 --- a/src/game/game_debug.c +++ b/src/game/game_debug.c @@ -9,7 +9,7 @@ s32 D_8004EAE0[] = {0, 0, 0, 0}; void gameInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&D_8004EAE0, "game_c_debug"); + debTryAdd(&D_8004EAE0, "game_c_debug"); } void reset_mem_bank_5(void) { diff --git a/src/game/game_debug.h b/src/game/game_debug.h index 66e02db..e608b2f 100644 --- a/src/game/game_debug.h +++ b/src/game/game_debug.h @@ -3,5 +3,7 @@ #include "ultra64.h" void gameInitDebugNoticeList(void); +void reset_mem_bank_5(void); +void sub_GAME_7F0D1A7C(void); #endif diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 0c9b46e..1f180e0 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -325,6 +325,105 @@ glabel end_of_mission_briefing ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel end_of_mission_briefing +/* 051ECC 7F01D39C 3C028003 */ lui $v0, %hi(briefingpage) +/* 051ED0 7F01D3A0 8C42A8F8 */ lw $v0, %lo(briefingpage)($v0) +/* 051ED4 7F01D3A4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 051ED8 7F01D3A8 AFBF0014 */ sw $ra, 0x14($sp) +/* 051EDC 7F01D3AC 04400050 */ bltz $v0, .L7F01D4F0 +/* 051EE0 7F01D3B0 3C038003 */ lui $v1, %hi(selected_difficulty) +/* 051EE4 7F01D3B4 8C63A8FC */ lw $v1, %lo(selected_difficulty)($v1) +/* 051EE8 7F01D3B8 24010003 */ li $at, 3 +/* 051EEC 7F01D3BC 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 051EF0 7F01D3C0 5061004C */ beql $v1, $at, .L7F01D4F4 +/* 051EF4 7F01D3C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 051EF8 7F01D3C8 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 051EFC 7F01D3CC 000278C0 */ sll $t7, $v0, 3 +/* 051F00 7F01D3D0 01E27823 */ subu $t7, $t7, $v0 +/* 051F04 7F01D3D4 15C00046 */ bnez $t6, .L7F01D4F0 +/* 051F08 7F01D3D8 000F7880 */ sll $t7, $t7, 2 +/* 051F0C 7F01D3DC 3C188003 */ lui $t8, %hi(mission_folder_setup_entries+0x14) +/* 051F10 7F01D3E0 030FC021 */ addu $t8, $t8, $t7 +/* 051F14 7F01D3E4 8F18ABF8 */ lw $t8, %lo(mission_folder_setup_entries+0x14)($t8) +/* 051F18 7F01D3E8 00034040 */ sll $t0, $v1, 1 +/* 051F1C 7F01D3EC 3C0A8003 */ lui $t2, %hi(solo_target_time_array) +/* 051F20 7F01D3F0 0018C880 */ sll $t9, $t8, 2 +/* 051F24 7F01D3F4 0338C823 */ subu $t9, $t9, $t8 +/* 051F28 7F01D3F8 0019C840 */ sll $t9, $t9, 1 +/* 051F2C 7F01D3FC 03284821 */ addu $t1, $t9, $t0 +/* 051F30 7F01D400 01495021 */ addu $t2, $t2, $t1 +/* 051F34 7F01D404 854AB564 */ lh $t2, %lo(solo_target_time_array)($t2) +/* 051F38 7F01D408 0FC22FEE */ jal get_mission_timer +/* 051F3C 7F01D40C A7AA001E */ sh $t2, 0x1e($sp) +/* 051F40 7F01D410 2401003C */ li $at, 60 +/* 051F44 7F01D414 0041001A */ div $zero, $v0, $at +/* 051F48 7F01D418 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 051F4C 7F01D41C 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 051F50 7F01D420 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051F54 7F01D424 00003812 */ mflo $a3 +/* 051F58 7F01D428 000B60C0 */ sll $t4, $t3, 3 +/* 051F5C 7F01D42C 018B6023 */ subu $t4, $t4, $t3 +/* 051F60 7F01D430 000C6080 */ sll $t4, $t4, 2 +/* 051F64 7F01D434 00AC2821 */ addu $a1, $a1, $t4 +/* 051F68 7F01D438 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F6C 7F01D43C 3C068003 */ lui $a2, %hi(selected_difficulty) +/* 051F70 7F01D440 8CC6A8FC */ lw $a2, %lo(selected_difficulty)($a2) +/* 051F74 7F01D444 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051F78 7F01D448 0FC0797E */ jal unlock_stage_in_folder_on_difficulty +/* 051F7C 7F01D44C 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051F80 7F01D450 0FC22FEE */ jal get_mission_timer +/* 051F84 7F01D454 00000000 */ nop +/* 051F88 7F01D458 2401003C */ li $at, 60 +/* 051F8C 7F01D45C 0041001A */ div $zero, $v0, $at +/* 051F90 7F01D460 87AD001E */ lh $t5, 0x1e($sp) +/* 051F94 7F01D464 00007012 */ mflo $t6 +/* 051F98 7F01D468 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051F9C 7F01D46C 01AE082A */ slt $at, $t5, $t6 +/* 051FA0 7F01D470 1420001D */ bnez $at, .L7F01D4E8 +/* 051FA4 7F01D474 00000000 */ nop +/* 051FA8 7F01D478 0FC07771 */ jal get_save_folder_ptr +/* 051FAC 7F01D47C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FB0 7F01D480 3C0F8003 */ lui $t7, %hi(briefingpage) +/* 051FB4 7F01D484 8DEFA8F8 */ lw $t7, %lo(briefingpage)($t7) +/* 051FB8 7F01D488 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FBC 7F01D48C 00402025 */ move $a0, $v0 +/* 051FC0 7F01D490 000FC0C0 */ sll $t8, $t7, 3 +/* 051FC4 7F01D494 030FC023 */ subu $t8, $t8, $t7 +/* 051FC8 7F01D498 0018C080 */ sll $t8, $t8, 2 +/* 051FCC 7F01D49C 00B82821 */ addu $a1, $a1, $t8 +/* 051FD0 7F01D4A0 0FC07748 */ jal check_if_cheat_unlocked +/* 051FD4 7F01D4A4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 051FD8 7F01D4A8 1440000F */ bnez $v0, .L7F01D4E8 +/* 051FDC 7F01D4AC 3C048003 */ lui $a0, %hi(selected_folder_num) +/* 051FE0 7F01D4B0 3C198003 */ lui $t9, %hi(briefingpage) +/* 051FE4 7F01D4B4 8F39A8F8 */ lw $t9, %lo(briefingpage)($t9) +/* 051FE8 7F01D4B8 3C058003 */ lui $a1, %hi(mission_folder_setup_entries+0x14) +/* 051FEC 7F01D4BC 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) +/* 051FF0 7F01D4C0 001940C0 */ sll $t0, $t9, 3 +/* 051FF4 7F01D4C4 01194023 */ subu $t0, $t0, $t9 +/* 051FF8 7F01D4C8 00084080 */ sll $t0, $t0, 2 +/* 051FFC 7F01D4CC 00A82821 */ addu $a1, $a1, $t0 +/* 052000 7F01D4D0 0FC079D8 */ jal sub_GAME_7F01E760 +/* 052004 7F01D4D4 8CA5ABF8 */ lw $a1, %lo(mission_folder_setup_entries+0x14)($a1) +/* 052008 7F01D4D8 24090001 */ li $t1, 1 +/* 05200C 7F01D4DC 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 052010 7F01D4E0 10000003 */ b .L7F01D4F0 +/* 052014 7F01D4E4 AC299790 */ sw $t1, %lo(newcheatunlocked)($at) +.L7F01D4E8: +/* 052018 7F01D4E8 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 05201C 7F01D4EC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +.L7F01D4F0: +/* 052020 7F01D4F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F01D4F4: +/* 052024 7F01D4F4 27BD0020 */ addiu $sp, $sp, 0x20 +/* 052028 7F01D4F8 03E00008 */ jr $ra +/* 05202C 7F01D4FC 00000000 */ nop +) +#endif + #endif void sub_GAME_7F01D500(void) diff --git a/src/game/gamefile.h b/src/game/gamefile.h index 436d0c5..2fb1545 100644 --- a/src/game/gamefile.h +++ b/src/game/gamefile.h @@ -1,6 +1,9 @@ #ifndef _GAMEFILE_H_ #define _GAMEFILE_H_ #include "ultra64.h" + +#include "bondconstants.h" + //i am not "correct", i need proper fields for times again struct save_data { @@ -11,9 +14,9 @@ struct save_data char music_vol; char sfx_vol; short options; - char unlocked_cheats_1; - char unlocked_cheats_2; - char unlocked_cheats_3; + u8 unlocked_cheats_1; + u8 unlocked_cheats_2; + u8 unlocked_cheats_3; char padding; u8 time_dam_agent[5]; u8 field_0x17[5]; @@ -36,4 +39,8 @@ struct save_data extern u32 save_selected_bond[]; +void set_selected_folder_num(u32 foldernum); +void set_selected_difficulty(DIFFICULTY difficulty); +void set_solo_and_ptr_briefing(LEVELID stage); + #endif diff --git a/src/game/gamefile2.c b/src/game/gamefile2.c index 143e4f1..fb6c6e2 100644 --- a/src/game/gamefile2.c +++ b/src/game/gamefile2.c @@ -1,8 +1,9 @@ #include "ultra64.h" #include "game/gamefile.h" +#include "bondconstants.h" s32 sub_GAME_7F01D6C0(void) { - return save_7000C6FC(); + return joyGamePakProbe(); } @@ -73,7 +74,7 @@ glabel sub_GAME_7F01D758 /* 0522AC 7F01D77C 00E03025 */ move $a2, $a3 /* 0522B0 7F01D780 8FA50018 */ lw $a1, 0x18($sp) /* 0522B4 7F01D784 00002025 */ move $a0, $zero -/* 0522B8 7F01D788 0C003202 */ jal save_7000C808 +/* 0522B8 7F01D788 0C003202 */ jal joyGamePakLongWrite /* 0522BC 7F01D78C 24060020 */ li $a2, 32 .L7F01D790: /* 0522C0 7F01D790 8FBF0014 */ lw $ra, 0x14($sp) @@ -127,7 +128,7 @@ glabel sub_GAME_7F01D7A0 /* 05234C 7F01D81C 25240004 */ addiu $a0, $t1, 4 /* 052350 7F01D820 308A00FF */ andi $t2, $a0, 0xff /* 052354 7F01D824 01402025 */ move $a0, $t2 -/* 052358 7F01D828 0C003202 */ jal save_7000C808 +/* 052358 7F01D828 0C003202 */ jal joyGamePakLongWrite /* 05235C 7F01D82C 24060060 */ li $a2, 96 .L7F01D830: /* 052360 7F01D830 8FBF0014 */ lw $ra, 0x14($sp) @@ -193,26 +194,11 @@ u32 get_foldernum_of_eeprom(struct save_data *eeprom) return eeprom->completion_bitflags & 7; } - - - -#ifdef NONMATCHING -void set_eeprom_to_folder_num(void) { - +void set_eeprom_to_folder_num(struct save_data *eeprom, u32 folder) { + eeprom->completion_bitflags = eeprom->completion_bitflags & 0xFFF8; + + eeprom->completion_bitflags = eeprom->completion_bitflags | folder & 7; } -#else -GLOBAL_ASM( -.text -glabel set_eeprom_to_folder_num -/* 052408 7F01D8D8 908E0008 */ lbu $t6, 8($a0) -/* 05240C 7F01D8DC 30B90007 */ andi $t9, $a1, 7 -/* 052410 7F01D8E0 31D8FFF8 */ andi $t8, $t6, 0xfff8 -/* 052414 7F01D8E4 A0980008 */ sb $t8, 8($a0) -/* 052418 7F01D8E8 03194025 */ or $t0, $t8, $t9 -/* 05241C 7F01D8EC 03E00008 */ jr $ra -/* 052420 7F01D8F0 A0880008 */ sb $t0, 8($a0) -) -#endif u32 set_eeprom_flag_0x18(struct save_data *folder) @@ -220,29 +206,11 @@ u32 set_eeprom_flag_0x18(struct save_data *folder) return (folder->completion_bitflags & 0x18) >> 3; } +void reset_eeprom_flag_0x18(struct save_data *folder, s32 arg1) { + folder->completion_bitflags = folder->completion_bitflags & 0xFFE7; - - -#ifdef NONMATCHING -void reset_eeprom_flag_0x18(void) { - + folder->completion_bitflags = (folder->completion_bitflags | ((arg1 * 8) & 0x18)); } -#else -GLOBAL_ASM( -.text -glabel reset_eeprom_flag_0x18 -/* 052434 7F01D904 908E0008 */ lbu $t6, 8($a0) -/* 052438 7F01D908 0005C8C0 */ sll $t9, $a1, 3 -/* 05243C 7F01D90C 33280018 */ andi $t0, $t9, 0x18 -/* 052440 7F01D910 31D8FFE7 */ andi $t8, $t6, 0xffe7 -/* 052444 7F01D914 A0980008 */ sb $t8, 8($a0) -/* 052448 7F01D918 03084825 */ or $t1, $t8, $t0 -/* 05244C 7F01D91C 03E00008 */ jr $ra -/* 052450 7F01D920 A0890008 */ sb $t1, 8($a0) -) -#endif - - u32 get_selected_bond(struct save_data *folder) @@ -253,24 +221,12 @@ u32 get_selected_bond(struct save_data *folder) -#ifdef NONMATCHING -void set_selected_bond(void) { +void set_selected_bond(struct save_data *folder, s32 arg1) { + folder->completion_bitflags = folder->completion_bitflags & 0xFF9F; + folder->completion_bitflags = (folder->completion_bitflags | ((arg1 << 5) & 0x60)); } -#else -GLOBAL_ASM( -.text -glabel set_selected_bond -/* 052464 7F01D934 908E0008 */ lbu $t6, 8($a0) -/* 052468 7F01D938 0005C940 */ sll $t9, $a1, 5 -/* 05246C 7F01D93C 33280060 */ andi $t0, $t9, 0x60 -/* 052470 7F01D940 31D8FF9F */ andi $t8, $t6, 0xff9f -/* 052474 7F01D944 A0980008 */ sb $t8, 8($a0) -/* 052478 7F01D948 03084825 */ or $t1, $t8, $t0 -/* 05247C 7F01D94C 03E00008 */ jr $ra -/* 052480 7F01D950 A0890008 */ sb $t1, 8($a0) -) -#endif + @@ -518,88 +474,40 @@ glabel sub_GAME_7F01DAE4 -#ifdef NONMATCHING -void get_eeprom_stage_completed_for_difficulty(void) { +s32 get_eeprom_stage_completed_for_difficulty(struct save_data *folder, s32 levelid, DIFFICULTY difficulty) { + + if ((levelid >= 0) && (levelid < 0x14) && (difficulty >= DIFFICULTY_AGENT) && (difficulty <= DIFFICULTY_007)) { + return get_eeprom_stage_complete_time_for_difficulty(folder, levelid, difficulty) != 0; + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel get_eeprom_stage_completed_for_difficulty -/* 052790 7F01DC60 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 052794 7F01DC64 04A0000D */ bltz $a1, .L7F01DC9C -/* 052798 7F01DC68 AFBF0014 */ sw $ra, 0x14($sp) -/* 05279C 7F01DC6C 28A10014 */ slti $at, $a1, 0x14 -/* 0527A0 7F01DC70 5020000B */ beql $at, $zero, .L7F01DCA0 -/* 0527A4 7F01DC74 00001025 */ move $v0, $zero -/* 0527A8 7F01DC78 04C00008 */ bltz $a2, .L7F01DC9C -/* 0527AC 7F01DC7C 28C10004 */ slti $at, $a2, 4 -/* 0527B0 7F01DC80 50200007 */ beql $at, $zero, .L7F01DCA0 -/* 0527B4 7F01DC84 00001025 */ move $v0, $zero -/* 0527B8 7F01DC88 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty -/* 0527BC 7F01DC8C 00000000 */ nop -/* 0527C0 7F01DC90 0002702B */ sltu $t6, $zero, $v0 -/* 0527C4 7F01DC94 10000002 */ b .L7F01DCA0 -/* 0527C8 7F01DC98 01C01025 */ move $v0, $t6 -.L7F01DC9C: -/* 0527CC 7F01DC9C 00001025 */ move $v0, $zero -.L7F01DCA0: -/* 0527D0 7F01DCA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0527D4 7F01DCA4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0527D8 7F01DCA8 03E00008 */ jr $ra -/* 0527DC 7F01DCAC 00000000 */ nop -) -#endif -#ifdef NONMATCHING -void sub_GAME_7F01DCB0(void) { +void sub_GAME_7F01DCB0(struct save_data *folder, s32 levelid, DIFFICULTY difficulty, s32 arg4) { + s32 temp_v0; + if ((levelid >= 0) && (levelid < 0x14) && (difficulty >= DIFFICULTY_AGENT) && (difficulty <= DIFFICULTY_007)) { + + temp_v0 = get_eeprom_stage_complete_time_for_difficulty(folder, levelid, difficulty); + + if ((temp_v0 == 0) || (arg4 < temp_v0)) { + sub_GAME_7F01DAE4(folder, levelid, difficulty, arg4); + } + } } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F01DCB0 -/* 0527E0 7F01DCB0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0527E4 7F01DCB4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0527E8 7F01DCB8 04A00015 */ bltz $a1, .L7F01DD10 -/* 0527EC 7F01DCBC AFA40018 */ sw $a0, 0x18($sp) -/* 0527F0 7F01DCC0 28A10014 */ slti $at, $a1, 0x14 -/* 0527F4 7F01DCC4 50200013 */ beql $at, $zero, .L7F01DD14 -/* 0527F8 7F01DCC8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0527FC 7F01DCCC 04C00010 */ bltz $a2, .L7F01DD10 -/* 052800 7F01DCD0 28C10004 */ slti $at, $a2, 4 -/* 052804 7F01DCD4 5020000F */ beql $at, $zero, .L7F01DD14 -/* 052808 7F01DCD8 8FBF0014 */ lw $ra, 0x14($sp) -/* 05280C 7F01DCDC AFA5001C */ sw $a1, 0x1c($sp) -/* 052810 7F01DCE0 AFA60020 */ sw $a2, 0x20($sp) -/* 052814 7F01DCE4 0FC07664 */ jal get_eeprom_stage_complete_time_for_difficulty -/* 052818 7F01DCE8 AFA70024 */ sw $a3, 0x24($sp) -/* 05281C 7F01DCEC 8FA5001C */ lw $a1, 0x1c($sp) -/* 052820 7F01DCF0 8FA60020 */ lw $a2, 0x20($sp) -/* 052824 7F01DCF4 10400004 */ beqz $v0, .L7F01DD08 -/* 052828 7F01DCF8 8FA70024 */ lw $a3, 0x24($sp) -/* 05282C 7F01DCFC 00E2082A */ slt $at, $a3, $v0 -/* 052830 7F01DD00 50200004 */ beql $at, $zero, .L7F01DD14 -/* 052834 7F01DD04 8FBF0014 */ lw $ra, 0x14($sp) -.L7F01DD08: -/* 052838 7F01DD08 0FC076B9 */ jal sub_GAME_7F01DAE4 -/* 05283C 7F01DD0C 8FA40018 */ lw $a0, 0x18($sp) -.L7F01DD10: -/* 052840 7F01DD10 8FBF0014 */ lw $ra, 0x14($sp) -.L7F01DD14: -/* 052844 7F01DD14 27BD0018 */ addiu $sp, $sp, 0x18 -/* 052848 7F01DD18 03E00008 */ jr $ra -/* 05284C 7F01DD1C 00000000 */ nop -) -#endif #ifdef NONMATCHING -u32 check_if_cheat_unlocked(save_file *folder,s32 cheat) { +s32 check_if_cheat_unlocked(struct save_data *arg0, s32 arg1) { + if ((arg1 >= 0) && (arg1 < 0x14)) { + + return ((1 << arg1) & (arg0->unlocked_cheats_1 | (arg0->unlocked_cheats_3 << 0x18) | (arg0->unlocked_cheats_3 << 0x10) | (arg0->unlocked_cheats_2 << 8))) != 0; + } + return 0; } #else GLOBAL_ASM( @@ -857,7 +765,7 @@ glabel sub_GAME_7F01DF90 /* 052AF8 7F01DFC8 24100001 */ li $s0, 1 /* 052AFC 7F01DFCC 00002025 */ move $a0, $zero /* 052B00 7F01DFD0 02202825 */ move $a1, $s1 -/* 052B04 7F01DFD4 0C0031EF */ jal save_7000C7BC +/* 052B04 7F01DFD4 0C0031EF */ jal joyGamePakLongRead /* 052B08 7F01DFD8 24060020 */ li $a2, 32 /* 052B0C 7F01DFDC 93AE009C */ lbu $t6, 0x9c($sp) /* 052B10 7F01DFE0 24010042 */ li $at, 66 @@ -920,7 +828,7 @@ glabel sub_GAME_7F01DF90 /* 052BE4 7F01E0B4 3C058007 */ lui $a1, %hi(save1) /* 052BE8 7F01E0B8 24A59920 */ addiu $a1, %lo(save1) # addiu $a1, $a1, -0x66e0 /* 052BEC 7F01E0BC 24040004 */ li $a0, 4 -/* 052BF0 7F01E0C0 0C0031EF */ jal save_7000C7BC +/* 052BF0 7F01E0C0 0C0031EF */ jal joyGamePakLongRead /* 052BF4 7F01E0C4 240601E0 */ li $a2, 480 /* 052BF8 7F01E0C8 3C108007 */ lui $s0, %hi(save1) /* 052BFC 7F01E0CC 3C138007 */ lui $s3, %hi(save1+8) @@ -1732,30 +1640,10 @@ glabel check_aztec_completed_in_folder_secret_00 ) #endif - - -#ifdef NONMATCHING -void check_egypt_completed_in_folder_00(void) { - +s32 check_egypt_completed_in_folder_00(int foldernum) +{ + return isStageUnlockedAtDifficulty(foldernum, SP_LEVEL_AZTEC, DIFFICULTY_00) == 3; } -#else -GLOBAL_ASM( -.text -glabel check_egypt_completed_in_folder_00 -/* 0535D8 7F01EAA8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0535DC 7F01EAAC AFBF0014 */ sw $ra, 0x14($sp) -/* 0535E0 7F01EAB0 24050013 */ li $a1, 19 -/* 0535E4 7F01EAB4 0FC078B0 */ jal isStageUnlockedAtDifficulty -/* 0535E8 7F01EAB8 24060002 */ li $a2, 2 -/* 0535EC 7F01EABC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0535F0 7F01EAC0 384E0003 */ xori $t6, $v0, 3 -/* 0535F4 7F01EAC4 2DC20001 */ sltiu $v0, $t6, 1 -/* 0535F8 7F01EAC8 03E00008 */ jr $ra -/* 0535FC 7F01EACC 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - u32 check_cradle_completed_any_folder(void) { u32 completed; diff --git a/src/game/gamefile2.h b/src/game/gamefile2.h index 4e02382..7e4c583 100644 --- a/src/game/gamefile2.h +++ b/src/game/gamefile2.h @@ -3,5 +3,6 @@ #include "ultra64.h" u8 removed_would_have_returned_bond_for_folder_num(u32 folder); +void sub_GAME_7F01DF90(); #endif diff --git a/src/game/image.c b/src/game/image.c index 3ae9cc3..a9f364b 100644 --- a/src/game/image.c +++ b/src/game/image.c @@ -2772,8 +2772,8 @@ struct image_entry image_entries[] = { -void nullsub_41(void) { - return; +void nullsub_41(s32 arg0) { + if (arg0); } diff --git a/src/game/image.h b/src/game/image.h index 297a603..c5b00a2 100644 --- a/src/game/image.h +++ b/src/game/image.h @@ -15,5 +15,9 @@ struct image_entry extern s32 ptr_texture_alloc_start; extern struct image_entry image_entries[]; +extern s32 dword_CODE_bss_8008D090; +extern u32 bytes; + +void nullsub_41(s32 arg0); #endif diff --git a/src/game/indy_commands.c b/src/game/indy_commands.c index 6983351..e487fea 100644 --- a/src/game/indy_commands.c +++ b/src/game/indy_commands.c @@ -20,7 +20,7 @@ void sub_GAME_7F0D0180(u8 *buffer,u32 size) int i; for (i = 4; i != 100000; i + 4){;} - rmon_debug_stub_0(); + rmon7000CEC0(); for (i = 4; i != 100000; i + 4){;} } #else @@ -36,7 +36,7 @@ glabel sub_GAME_7F0D0180 .L7F0D0198: /* 104CC8 7F0D0198 5443FFFF */ bnel $v0, $v1, .L7F0D0198 /* 104CCC 7F0D019C 24420004 */ addiu $v0, $v0, 4 -/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon_debug_stub_0 +/* 104CD0 7F0D01A0 0C0033B0 */ jal rmon7000CEC0 /* 104CD4 7F0D01A4 00000000 */ nop /* 104CD8 7F0D01A8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 /* 104CDC 7F0D01AC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 @@ -62,7 +62,7 @@ void sub_GAME_7F0D01D0(u8 *buffer,u32 size) int i; for (i = 4; i != 100000; i + 4){;} - rmon_debug_stub(); + rmon7000CEB8(); for (i = 4; i != 100000; i + 4){;} } #else @@ -78,7 +78,7 @@ glabel sub_GAME_7F0D01D0 .L7F0D01E8: /* 104D18 7F0D01E8 5443FFFF */ bnel $v0, $v1, .L7F0D01E8 /* 104D1C 7F0D01EC 24420004 */ addiu $v0, $v0, 4 -/* 104D20 7F0D01F0 0C0033AE */ jal rmon_debug_stub +/* 104D20 7F0D01F0 0C0033AE */ jal rmon7000CEB8 /* 104D24 7F0D01F4 00000000 */ nop /* 104D28 7F0D01F8 3C030001 */ lui $v1, (0x000186A0 >> 16) # lui $v1, 1 /* 104D2C 7F0D01FC 346386A0 */ ori $v1, (0x000186A0 & 0xFFFF) # ori $v1, $v1, 0x86a0 @@ -262,7 +262,7 @@ void post_type3_indyrescmd(s32 rsize,s32 wsize,char *strptr) cmd.entry.size = 0x114; cmd.entry.readsize = rsize; cmd.entry.writesize = wsize; - something_with_strings(cmd.strbuffer,strptr,0x100); + strncpy(cmd.strbuffer,strptr,0x100); cmd.data = 0; postindyresourcecommand(&cmd.entry,0x114); } @@ -285,7 +285,7 @@ glabel post_type3_indyrescmd /* 104FC0 7F0D0490 AFAF0020 */ sw $t7, 0x20($sp) /* 104FC4 7F0D0494 AFB80024 */ sw $t8, 0x24($sp) /* 104FC8 7F0D0498 24060100 */ li $a2, 256 -/* 104FCC 7F0D049C 0C0029E8 */ jal something_with_strings +/* 104FCC 7F0D049C 0C0029E8 */ jal strncpy /* 104FD0 7F0D04A0 27A40030 */ addiu $a0, $sp, 0x30 /* 104FD4 7F0D04A4 A3A0012F */ sb $zero, 0x12f($sp) /* 104FD8 7F0D04A8 27A4001C */ addiu $a0, $sp, 0x1c @@ -333,7 +333,7 @@ void post_type5_indyrescmd_printfsend(s32 param_1,s32 param_2,char *param_3) cmd.size = 0x114; cmd.readsize = param_1; cmd.writesize = param_2; - something_with_strings(acStack256,param_3,0x100); + strncpy(acStack256,param_3,0x100); uStack1 = 0; postindyresourcecommand(&cmd,0x114); } @@ -356,7 +356,7 @@ glabel post_type5_indyrescmd_printfsend /* 105074 7F0D0544 AFAF0020 */ sw $t7, 0x20($sp) /* 105078 7F0D0548 AFB80024 */ sw $t8, 0x24($sp) /* 10507C 7F0D054C 24060100 */ li $a2, 256 -/* 105080 7F0D0550 0C0029E8 */ jal something_with_strings +/* 105080 7F0D0550 0C0029E8 */ jal strncpy /* 105084 7F0D0554 27A40030 */ addiu $a0, $sp, 0x30 /* 105088 7F0D0558 A3A0012F */ sb $zero, 0x12f($sp) /* 10508C 7F0D055C 27A4001C */ addiu $a0, $sp, 0x1c @@ -415,7 +415,7 @@ glabel post_type7_indyrescmd_log_send /* 105138 7F0D0608 AFAF001C */ sw $t7, 0x1c($sp) /* 10513C 7F0D060C AFB80020 */ sw $t8, 0x20($sp) /* 105140 7F0D0610 24060100 */ li $a2, 256 -/* 105144 7F0D0614 0C0029E8 */ jal something_with_strings +/* 105144 7F0D0614 0C0029E8 */ jal strncpy /* 105148 7F0D0618 27A4002C */ addiu $a0, $sp, 0x2c /* 10514C 7F0D061C 8FA9013C */ lw $t1, 0x13c($sp) /* 105150 7F0D0620 A3A0012B */ sb $zero, 0x12b($sp) @@ -508,7 +508,7 @@ glabel post_type9_indyrescmd_app_command_ready /* 105234 7F0D0704 AFAF0020 */ sw $t7, 0x20($sp) /* 105238 7F0D0708 AFA90024 */ sw $t1, 0x24($sp) /* 10523C 7F0D070C 24060100 */ li $a2, 256 -/* 105240 7F0D0710 0C0029E8 */ jal something_with_strings +/* 105240 7F0D0710 0C0029E8 */ jal strncpy /* 105244 7F0D0714 27A40030 */ addiu $a0, $sp, 0x30 /* 105248 7F0D0718 A3A0012F */ sb $zero, 0x12f($sp) /* 10524C 7F0D071C 27A4001C */ addiu $a0, $sp, 0x1c @@ -568,7 +568,7 @@ glabel post_typeF_indyrescmd_fault_send /* 1052F8 7F0D07C8 AFAF0020 */ sw $t7, 0x20($sp) /* 1052FC 7F0D07CC AFB80024 */ sw $t8, 0x24($sp) /* 105300 7F0D07D0 24060100 */ li $a2, 256 -/* 105304 7F0D07D4 0C0029E8 */ jal something_with_strings +/* 105304 7F0D07D4 0C0029E8 */ jal strncpy /* 105308 7F0D07D8 27A40030 */ addiu $a0, $sp, 0x30 /* 10530C 7F0D07DC 8FA90144 */ lw $t1, 0x144($sp) /* 105310 7F0D07E0 8FAA0148 */ lw $t2, 0x148($sp) @@ -653,7 +653,7 @@ glabel post_typeD_indyrescmd_prof_send_filename /* 1053D4 7F0D08A4 AFAF0020 */ sw $t7, 0x20($sp) /* 1053D8 7F0D08A8 AFB80024 */ sw $t8, 0x24($sp) /* 1053DC 7F0D08AC 24060100 */ li $a2, 256 -/* 1053E0 7F0D08B0 0C0029E8 */ jal something_with_strings +/* 1053E0 7F0D08B0 0C0029E8 */ jal strncpy /* 1053E4 7F0D08B4 27A40030 */ addiu $a0, $sp, 0x30 /* 1053E8 7F0D08B8 8FA90144 */ lw $t1, 0x144($sp) /* 1053EC 7F0D08BC 8FAA0148 */ lw $t2, 0x148($sp) @@ -715,7 +715,7 @@ glabel post_typeB_indyrescmd_host_prof_req /* 105498 7F0D0968 AFAF0020 */ sw $t7, 0x20($sp) /* 10549C 7F0D096C AFB80024 */ sw $t8, 0x24($sp) /* 1054A0 7F0D0970 24060400 */ li $a2, 1024 -/* 1054A4 7F0D0974 0C0029E8 */ jal something_with_strings +/* 1054A4 7F0D0974 0C0029E8 */ jal strncpy /* 1054A8 7F0D0978 27A40030 */ addiu $a0, $sp, 0x30 /* 1054AC 7F0D097C A3A0042F */ sb $zero, 0x42f($sp) /* 1054B0 7F0D0980 27A4001C */ addiu $a0, $sp, 0x1c diff --git a/src/game/indy_comms.c b/src/game/indy_comms.c index 8a6770b..a2ce8dd 100644 --- a/src/game/indy_comms.c +++ b/src/game/indy_comms.c @@ -15,262 +15,95 @@ void nullsub_48(void) { } void init_indy_if_ready(void) { - if (indy_ready != 0) + if (indy_ready) { post_indy__res_cmd_initialize_seq(); } } - -#ifdef NONMATCHING -void load_resource_on_indy(s32 arg1) { - ? sp18; - ? sp1C; - ? sp20; - - // Node 0 - if (indy_ready != 0) +void load_resource_on_indy(u8 *filename, u8 *targetloc) +{ + u8 response1 [8]; + u8 response2 [4]; + u32 size; + + if (indy_ready) { - // Node 1 - post_indyrescmd_req_filename_size(0x400000); - response_indyrescmd_1_8_2(&sp20, &sp1C, &sp18, arg1); + post_indyrescmd_req_filename_size(filename,0x400000); + response_indyrescmd_1_8_2(response1,response2,(u32)&size,targetloc); } - // Node 2 return; } -#else -GLOBAL_ASM( -.text -glabel load_resource_on_indy -/* 104ACC 7F0CFF9C 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104AD0 7F0CFFA0 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104AD4 7F0CFFA4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 104AD8 7F0CFFA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 104ADC 7F0CFFAC 11C00008 */ beqz $t6, .L7F0CFFD0 -/* 104AE0 7F0CFFB0 AFA5002C */ sw $a1, 0x2c($sp) -/* 104AE4 7F0CFFB4 0FC342E9 */ jal post_indyrescmd_req_filename_size -/* 104AE8 7F0CFFB8 3C050040 */ lui $a1, 0x40 -/* 104AEC 7F0CFFBC 27A40020 */ addiu $a0, $sp, 0x20 -/* 104AF0 7F0CFFC0 27A5001C */ addiu $a1, $sp, 0x1c -/* 104AF4 7F0CFFC4 27A60018 */ addiu $a2, $sp, 0x18 -/* 104AF8 7F0CFFC8 0FC345FF */ jal response_indyrescmd_1_8_2 -/* 104AFC 7F0CFFCC 8FA7002C */ lw $a3, 0x2c($sp) -.L7F0CFFD0: -/* 104B00 7F0CFFD0 8FBF0014 */ lw $ra, 0x14($sp) -/* 104B04 7F0CFFD4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 104B08 7F0CFFD8 03E00008 */ jr $ra -/* 104B0C 7F0CFFDC 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -void indy_send_capture_data(s32 arg1, ? arg2) { - ? sp1C; - - // Node 0 - if (indy_ready != 0) +void indy_send_capture_data(u8 *filename, u8 *data, u32 size) +{ + u8 auStack4 [4]; + + if (indy_ready) { - // Node 1 - post_indyrescmd_send_capture_data(arg2, arg1); - response_indyrescmd_1_A_2(&sp1C); + post_indyrescmd_send_capture_data(filename, size, (struct indy_resource_entry *)data); + response_indyrescmd_1_A_2(auStack4); } - // Node 2 return; } -#else -GLOBAL_ASM( -.text -glabel indy_send_capture_data -/* 104B10 7F0CFFE0 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104B14 7F0CFFE4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104B18 7F0CFFE8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 104B1C 7F0CFFEC AFBF0014 */ sw $ra, 0x14($sp) -/* 104B20 7F0CFFF0 11C00006 */ beqz $t6, .L7F0D000C -/* 104B24 7F0CFFF4 AFA50024 */ sw $a1, 0x24($sp) -/* 104B28 7F0CFFF8 00C02825 */ move $a1, $a2 -/* 104B2C 7F0CFFFC 0FC3431A */ jal post_indyrescmd_send_capture_data -/* 104B30 7F0D0000 8FA60024 */ lw $a2, 0x24($sp) -/* 104B34 7F0D0004 0FC34619 */ jal response_indyrescmd_1_A_2 -/* 104B38 7F0D0008 27A4001C */ addiu $a0, $sp, 0x1c -.L7F0D000C: -/* 104B3C 7F0D000C 8FBF0014 */ lw $ra, 0x14($sp) -/* 104B40 7F0D0010 27BD0020 */ addiu $sp, $sp, 0x20 -/* 104B44 7F0D0014 03E00008 */ jr $ra -/* 104B48 7F0D0018 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -void indy_loadfile(void) { - ? sp1C; - ? sp20; - ? sp24; - - // Node 0 - if (indy_ready != 0) +void indy_load_ramrom_file(u8 *filename, u8 *target, s32 size) +{ + u32 uStack4; + u32 uStack8; + u32 uStack12; + + if (indy_ready) { - // Node 1 - post_indyrescmd_request_ramrom_file(); - response_indyrescmd_1_10_2(&sp24, &sp20, &sp1C); + post_indyrescmd_request_ramrom_file(filename,target,size); + response_indyrescmd_1_10_2(&uStack4,&uStack8,&uStack12); } - // Node 2 return; } -#else -GLOBAL_ASM( -.text -glabel indy_loadfile -/* 104B4C 7F0D001C 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104B50 7F0D0020 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104B54 7F0D0024 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 104B58 7F0D0028 AFBF0014 */ sw $ra, 0x14($sp) -/* 104B5C 7F0D002C 51C00008 */ beql $t6, $zero, .L7F0D0050 -/* 104B60 7F0D0030 8FBF0014 */ lw $ra, 0x14($sp) -/* 104B64 7F0D0034 0FC34346 */ jal post_indyrescmd_request_ramrom_file -/* 104B68 7F0D0038 00000000 */ nop -/* 104B6C 7F0D003C 27A40024 */ addiu $a0, $sp, 0x24 -/* 104B70 7F0D0040 27A50020 */ addiu $a1, $sp, 0x20 -/* 104B74 7F0D0044 0FC3462B */ jal response_indyrescmd_1_10_2 -/* 104B78 7F0D0048 27A6001C */ addiu $a2, $sp, 0x1c -/* 104B7C 7F0D004C 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0D0050: -/* 104B80 7F0D0050 27BD0028 */ addiu $sp, $sp, 0x28 -/* 104B84 7F0D0054 03E00008 */ jr $ra -/* 104B88 7F0D0058 00000000 */ nop -) -#endif - - - - -#ifdef NONMATCHING -void check_file_exported(s32 arg1, ? arg2) { - ? sp1C; - - // Node 0 - if (indy_ready != 0) +void check_file_exported(u8 *filename, s32 size, u8 * data) +{ + u8 auStack4 [4]; + + if (indy_ready) { - // Node 1 - post_indyrescmd_game_prof_sendfile(arg2, arg1); - response_indyrescmd_1_E_2(&sp1C); + post_indyrescmd_game_prof_sendfile(filename,data,size); + response_indyrescmd_1_E_2(auStack4); } - // Node 2 - return; } -#else -GLOBAL_ASM( -.text -glabel check_file_exported -/* 104B8C 7F0D005C 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104B90 7F0D0060 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104B94 7F0D0064 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 104B98 7F0D0068 AFBF0014 */ sw $ra, 0x14($sp) -/* 104B9C 7F0D006C 11C00006 */ beqz $t6, .L7F0D0088 -/* 104BA0 7F0D0070 AFA50024 */ sw $a1, 0x24($sp) -/* 104BA4 7F0D0074 00C02825 */ move $a1, $a2 -/* 104BA8 7F0D0078 0FC34374 */ jal post_indyrescmd_game_prof_sendfile -/* 104BAC 7F0D007C 8FA60024 */ lw $a2, 0x24($sp) -/* 104BB0 7F0D0080 0FC34642 */ jal response_indyrescmd_1_E_2 -/* 104BB4 7F0D0084 27A4001C */ addiu $a0, $sp, 0x1c -.L7F0D0088: -/* 104BB8 7F0D0088 8FBF0014 */ lw $ra, 0x14($sp) -/* 104BBC 7F0D008C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 104BC0 7F0D0090 03E00008 */ jr $ra -/* 104BC4 7F0D0094 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void check_file_found_on_indy(void) { +u8 * check_file_found_on_indy(u8 *name, s32 *size) +{ + u8 *response; + if (!indy_ready) { + return NULL; + } else { + post_indyrescmd_game_printf_send(name); + response_indyrescmd_1_6_2(&response,size); + } + return response; } -#else -GLOBAL_ASM( -.text -glabel check_file_found_on_indy -/* 104BC8 7F0D0098 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104BCC 7F0D009C 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104BD0 7F0D00A0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 104BD4 7F0D00A4 AFBF0014 */ sw $ra, 0x14($sp) -/* 104BD8 7F0D00A8 15C00003 */ bnez $t6, .L7F0D00B8 -/* 104BDC 7F0D00AC AFA50024 */ sw $a1, 0x24($sp) -/* 104BE0 7F0D00B0 10000007 */ b .L7F0D00D0 -/* 104BE4 7F0D00B4 00001025 */ move $v0, $zero -.L7F0D00B8: -/* 104BE8 7F0D00B8 0FC342C3 */ jal post_indyrescmd_game_printf_send -/* 104BEC 7F0D00BC 00000000 */ nop -/* 104BF0 7F0D00C0 27A4001C */ addiu $a0, $sp, 0x1c -/* 104BF4 7F0D00C4 0FC345EB */ jal response_indyrescmd_1_6_2 -/* 104BF8 7F0D00C8 8FA50024 */ lw $a1, 0x24($sp) -/* 104BFC 7F0D00CC 8FA2001C */ lw $v0, 0x1c($sp) -.L7F0D00D0: -/* 104C00 7F0D00D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 104C04 7F0D00D4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 104C08 7F0D00D8 03E00008 */ jr $ra -/* 104C0C 7F0D00DC 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void response_from_command_string(void) { +u8 *send_command_string(u8 *cmdstr) +{ + u8 *local_4; + if (!indy_ready) { + return NULL; + } + else { + post_indyrescmd_1_B_2(cmdstr); + response_indyrescmd_1_C_2(&local_4); + } + return local_4; } -#else -GLOBAL_ASM( -.text -glabel response_from_command_string -/* 104C10 7F0D00E0 3C0E8005 */ lui $t6, %hi(indy_ready) -/* 104C14 7F0D00E4 8DCEEAC8 */ lw $t6, %lo(indy_ready)($t6) -/* 104C18 7F0D00E8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 104C1C 7F0D00EC AFBF0014 */ sw $ra, 0x14($sp) -/* 104C20 7F0D00F0 15C00003 */ bnez $t6, .L7F0D0100 -/* 104C24 7F0D00F4 00000000 */ nop -/* 104C28 7F0D00F8 10000006 */ b .L7F0D0114 -/* 104C2C 7F0D00FC 00001025 */ move $v0, $zero -.L7F0D0100: -/* 104C30 7F0D0100 0FC3439D */ jal post_indyrescmd_1_B_2 -/* 104C34 7F0D0104 00000000 */ nop -/* 104C38 7F0D0108 0FC34654 */ jal response_indyrescmd_1_C_2 -/* 104C3C 7F0D010C 27A4001C */ addiu $a0, $sp, 0x1c -/* 104C40 7F0D0110 8FA2001C */ lw $v0, 0x1c($sp) -.L7F0D0114: -/* 104C44 7F0D0114 8FBF0014 */ lw $ra, 0x14($sp) -/* 104C48 7F0D0118 27BD0020 */ addiu $sp, $sp, 0x20 -/* 104C4C 7F0D011C 03E00008 */ jr $ra -/* 104C50 7F0D0120 00000000 */ nop -) -#endif - void sub_GAME_7F0D0124(void) { - if (indy_ready != 0) + if (indy_ready) { - rmon_debug_returns_neg_1(); + rmon7000CEB0(); } - return; } void send_indy_close_port_cmd(void) { - response_from_command_string("sleep 5; /etc/killall ghost gload"); + send_command_string("sleep 5; /etc/killall ghost gload"); } - - - - diff --git a/src/game/indy_comms.h b/src/game/indy_comms.h index 8a13386..5cdd935 100644 --- a/src/game/indy_comms.h +++ b/src/game/indy_comms.h @@ -4,6 +4,10 @@ s32 init_indy_if_not_ready(void); void init_indy_if_ready(void); -void load_resource_on_indy(s32 arg1); - +void load_resource_on_indy(u8 *filename, u8 *targetloc); +void indy_send_capture_data(u8 *filename, u8 *data, u32 size); +void indy_load_ramrom_file(u8 *filename, u8 *target, s32 size); +void check_file_exported(u8 *filename, s32 size, u8 * data); +u8 * check_file_found_on_indy(u8 *name, s32 *size); +//u8 *send_command_string(u8 *cmdstr); #endif diff --git a/src/game/initBondDATAdefaults.c b/src/game/initBondDATAdefaults.c index f865378..0dfe5b7 100644 --- a/src/game/initBondDATAdefaults.c +++ b/src/game/initBondDATAdefaults.c @@ -659,5 +659,292 @@ glabel sets_a_bunch_of_BONDdata_values_to_default ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_8004F1F0 +.word 0x3dccccce +glabel D_8004F1F4 +.word 0x4164924b +glabel D_8004F1F8 +.word 0x3f6e147b +.text +glabel sets_a_bunch_of_BONDdata_values_to_default +/* 03AEBC 7F00638C 27BDFF20 */ addiu $sp, $sp, -0xe0 +/* 03AEC0 7F006390 AFB20038 */ sw $s2, 0x38($sp) +/* 03AEC4 7F006394 3C128004 */ lui $s2, %hi(player_gait_object) +/* 03AEC8 7F006398 2652C650 */ addiu $s2, %lo(player_gait_object) # addiu $s2, $s2, -0x39b0 +/* 03AECC 7F00639C 864E0014 */ lh $t6, 0x14($s2) +/* 03AED0 7F0063A0 AFBF0044 */ sw $ra, 0x44($sp) +/* 03AED4 7F0063A4 AFB40040 */ sw $s4, 0x40($sp) +/* 03AED8 7F0063A8 29C1001F */ slti $at, $t6, 0x1f +/* 03AEDC 7F0063AC AFB3003C */ sw $s3, 0x3c($sp) +/* 03AEE0 7F0063B0 AFB10034 */ sw $s1, 0x34($sp) +/* 03AEE4 7F0063B4 AFB00030 */ sw $s0, 0x30($sp) +/* 03AEE8 7F0063B8 F7B60028 */ sdc1 $f22, 0x28($sp) +/* 03AEEC 7F0063BC 14200003 */ bnez $at, .L7F0063CC +/* 03AEF0 7F0063C0 F7B40020 */ sdc1 $f20, 0x20($sp) +/* 03AEF4 7F0063C4 0FC1B11B */ jal return_null +/* 03AEF8 7F0063C8 00000000 */ nop +.L7F0063CC: +/* 03AEFC 7F0063CC 3C118008 */ lui $s1, %hi(pPlayer) +/* 03AF00 7F0063D0 2631A0B0 */ addiu $s1, %lo(pPlayer) # addiu $s1, $s1, -0x5f50 +/* 03AF04 7F0063D4 8E300000 */ lw $s0, ($s1) +/* 03AF08 7F0063D8 02402825 */ move $a1, $s2 +/* 03AF0C 7F0063DC 26040598 */ addiu $a0, $s0, 0x598 +/* 03AF10 7F0063E0 0FC1D7EB */ jal sub_GAME_7F075FAC +/* 03AF14 7F0063E4 26060654 */ addiu $a2, $s0, 0x654 +/* 03AF18 7F0063E8 3C018005 */ lui $at, %hi(D_8004F1F0) +/* 03AF1C 7F0063EC C436F1F0 */ lwc1 $f22, %lo(D_8004F1F0)($at) +/* 03AF20 7F0063F0 8E240000 */ lw $a0, ($s1) +/* 03AF24 7F0063F4 4405B000 */ mfc1 $a1, $f22 +/* 03AF28 7F0063F8 0FC1B39E */ jal set_obj_instance_controller_scale +/* 03AF2C 7F0063FC 24840598 */ addiu $a0, $a0, 0x598 +/* 03AF30 7F006400 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 03AF34 7F006404 44810000 */ mtc1 $at, $f0 +/* 03AF38 7F006408 8E2F0000 */ lw $t7, ($s1) +/* 03AF3C 7F00640C 3C018005 */ lui $at, %hi(D_8004F1F4) +/* 03AF40 7F006410 C422F1F4 */ lwc1 $f2, %lo(D_8004F1F4)($at) +/* 03AF44 7F006414 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 03AF48 7F006418 3C018005 */ lui $at, %hi(D_8004F1F8) +/* 03AF4C 7F00641C C424F1F8 */ lwc1 $f4, %lo(D_8004F1F8)($at) +/* 03AF50 7F006420 8E380000 */ lw $t8, ($s1) +/* 03AF54 7F006424 4480A000 */ mtc1 $zero, $f20 +/* 03AF58 7F006428 24020001 */ li $v0, 1 +/* 03AF5C 7F00642C E70404EC */ swc1 $f4, 0x4ec($t8) +/* 03AF60 7F006430 8E390000 */ lw $t9, ($s1) +/* 03AF64 7F006434 3C108003 */ lui $s0, %hi(D_80036AD0) +/* 03AF68 7F006438 3C148007 */ lui $s4, %hi(ptr_animation_table) +/* 03AF6C 7F00643C AF2004F0 */ sw $zero, 0x4f0($t9) +/* 03AF70 7F006440 8E280000 */ lw $t0, ($s1) +/* 03AF74 7F006444 3C138003 */ lui $s3, %hi(D_80036B00) +/* 03AF78 7F006448 26736B00 */ addiu $s3, %lo(D_80036B00) # addiu $s3, $s3, 0x6b00 +/* 03AF7C 7F00644C E50004F4 */ swc1 $f0, 0x4f4($t0) +/* 03AF80 7F006450 8E290000 */ lw $t1, ($s1) +/* 03AF84 7F006454 26949538 */ addiu $s4, %lo(ptr_animation_table) # addiu $s4, $s4, -0x6ac8 +/* 03AF88 7F006458 26106AD0 */ addiu $s0, %lo(D_80036AD0) # addiu $s0, $s0, 0x6ad0 +/* 03AF8C 7F00645C E52004F8 */ swc1 $f0, 0x4f8($t1) +/* 03AF90 7F006460 8E2A0000 */ lw $t2, ($s1) +/* 03AF94 7F006464 27B200D0 */ addiu $s2, $sp, 0xd0 +/* 03AF98 7F006468 E55404FC */ swc1 $f20, 0x4fc($t2) +/* 03AF9C 7F00646C 8E2B0000 */ lw $t3, ($s1) +/* 03AFA0 7F006470 E5740500 */ swc1 $f20, 0x500($t3) +/* 03AFA4 7F006474 8E2C0000 */ lw $t4, ($s1) +/* 03AFA8 7F006478 E5940504 */ swc1 $f20, 0x504($t4) +/* 03AFAC 7F00647C 8E2D0000 */ lw $t5, ($s1) +/* 03AFB0 7F006480 E5B40508 */ swc1 $f20, 0x508($t5) +/* 03AFB4 7F006484 8E2E0000 */ lw $t6, ($s1) +/* 03AFB8 7F006488 E5D4050C */ swc1 $f20, 0x50c($t6) +/* 03AFBC 7F00648C 8E2F0000 */ lw $t7, ($s1) +/* 03AFC0 7F006490 E5F40510 */ swc1 $f20, 0x510($t7) +/* 03AFC4 7F006494 8E380000 */ lw $t8, ($s1) +/* 03AFC8 7F006498 E7140514 */ swc1 $f20, 0x514($t8) +/* 03AFCC 7F00649C 8E390000 */ lw $t9, ($s1) +/* 03AFD0 7F0064A0 E7340518 */ swc1 $f20, 0x518($t9) +/* 03AFD4 7F0064A4 8E280000 */ lw $t0, ($s1) +/* 03AFD8 7F0064A8 E514051C */ swc1 $f20, 0x51c($t0) +/* 03AFDC 7F0064AC 8E290000 */ lw $t1, ($s1) +/* 03AFE0 7F0064B0 E5340520 */ swc1 $f20, 0x520($t1) +/* 03AFE4 7F0064B4 8E2A0000 */ lw $t2, ($s1) +/* 03AFE8 7F0064B8 E5540524 */ swc1 $f20, 0x524($t2) +/* 03AFEC 7F0064BC 8E2B0000 */ lw $t3, ($s1) +/* 03AFF0 7F0064C0 E5740528 */ swc1 $f20, 0x528($t3) +/* 03AFF4 7F0064C4 8E2C0000 */ lw $t4, ($s1) +/* 03AFF8 7F0064C8 E594052C */ swc1 $f20, 0x52c($t4) +/* 03AFFC 7F0064CC 8E2D0000 */ lw $t5, ($s1) +/* 03B000 7F0064D0 E5B40530 */ swc1 $f20, 0x530($t5) +/* 03B004 7F0064D4 8E2E0000 */ lw $t6, ($s1) +/* 03B008 7F0064D8 E5C20534 */ swc1 $f2, 0x534($t6) +/* 03B00C 7F0064DC 8E2F0000 */ lw $t7, ($s1) +/* 03B010 7F0064E0 E5F40538 */ swc1 $f20, 0x538($t7) +/* 03B014 7F0064E4 8E380000 */ lw $t8, ($s1) +/* 03B018 7F0064E8 E702053C */ swc1 $f2, 0x53c($t8) +/* 03B01C 7F0064EC 8E390000 */ lw $t9, ($s1) +/* 03B020 7F0064F0 E7340540 */ swc1 $f20, 0x540($t9) +/* 03B024 7F0064F4 8E280000 */ lw $t0, ($s1) +/* 03B028 7F0064F8 AD0204DC */ sw $v0, 0x4dc($t0) +/* 03B02C 7F0064FC 8E290000 */ lw $t1, ($s1) +/* 03B030 7F006500 AD2204E0 */ sw $v0, 0x4e0($t1) +/* 03B034 7F006504 8E2A0000 */ lw $t2, ($s1) +/* 03B038 7F006508 AD4204E4 */ sw $v0, 0x4e4($t2) +/* 03B03C 7F00650C 8E2B0000 */ lw $t3, ($s1) +/* 03B040 7F006510 E5740544 */ swc1 $f20, 0x544($t3) +/* 03B044 7F006514 8E2C0000 */ lw $t4, ($s1) +/* 03B048 7F006518 E5940548 */ swc1 $f20, 0x548($t4) +/* 03B04C 7F00651C 8E2D0000 */ lw $t5, ($s1) +/* 03B050 7F006520 E5B4054C */ swc1 $f20, 0x54c($t5) +/* 03B054 7F006524 8E2E0000 */ lw $t6, ($s1) +/* 03B058 7F006528 E5D40550 */ swc1 $f20, 0x550($t6) +/* 03B05C 7F00652C 8E2F0000 */ lw $t7, ($s1) +/* 03B060 7F006530 E5F40554 */ swc1 $f20, 0x554($t7) +/* 03B064 7F006534 8E380000 */ lw $t8, ($s1) +/* 03B068 7F006538 E7140558 */ swc1 $f20, 0x558($t8) +/* 03B06C 7F00653C 8E390000 */ lw $t9, ($s1) +/* 03B070 7F006540 E734055C */ swc1 $f20, 0x55c($t9) +/* 03B074 7F006544 8E280000 */ lw $t0, ($s1) +/* 03B078 7F006548 E5140560 */ swc1 $f20, 0x560($t0) +/* 03B07C 7F00654C 8E290000 */ lw $t1, ($s1) +/* 03B080 7F006550 E5340564 */ swc1 $f20, 0x564($t1) +/* 03B084 7F006554 8E2A0000 */ lw $t2, ($s1) +/* 03B088 7F006558 E5540568 */ swc1 $f20, 0x568($t2) +/* 03B08C 7F00655C 8E2B0000 */ lw $t3, ($s1) +/* 03B090 7F006560 E560056C */ swc1 $f0, 0x56c($t3) +/* 03B094 7F006564 8E2C0000 */ lw $t4, ($s1) +/* 03B098 7F006568 E5940570 */ swc1 $f20, 0x570($t4) +/* 03B09C 7F00656C 8E2D0000 */ lw $t5, ($s1) +/* 03B0A0 7F006570 E5B40574 */ swc1 $f20, 0x574($t5) +/* 03B0A4 7F006574 8E2E0000 */ lw $t6, ($s1) +/* 03B0A8 7F006578 E5C00578 */ swc1 $f0, 0x578($t6) +/* 03B0AC 7F00657C 8E2F0000 */ lw $t7, ($s1) +/* 03B0B0 7F006580 E5F4057C */ swc1 $f20, 0x57c($t7) +/* 03B0B4 7F006584 8E380000 */ lw $t8, ($s1) +/* 03B0B8 7F006588 E7000580 */ swc1 $f0, 0x580($t8) +/* 03B0BC 7F00658C 8E390000 */ lw $t9, ($s1) +/* 03B0C0 7F006590 E7340584 */ swc1 $f20, 0x584($t9) +/* 03B0C4 7F006594 8E280000 */ lw $t0, ($s1) +/* 03B0C8 7F006598 E5140588 */ swc1 $f20, 0x588($t0) +/* 03B0CC 7F00659C 8E290000 */ lw $t1, ($s1) +/* 03B0D0 7F0065A0 E520058C */ swc1 $f0, 0x58c($t1) +/* 03B0D4 7F0065A4 8E2A0000 */ lw $t2, ($s1) +/* 03B0D8 7F0065A8 E5540590 */ swc1 $f20, 0x590($t2) +/* 03B0DC 7F0065AC 8E2B0000 */ lw $t3, ($s1) +/* 03B0E0 7F0065B0 AD600594 */ sw $zero, 0x594($t3) +.L7F0065B4: +/* 03B0E4 7F0065B4 C6060004 */ lwc1 $f6, 4($s0) +/* 03B0E8 7F0065B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 03B0EC 7F0065BC 8E0C0000 */ lw $t4, ($s0) +/* 03B0F0 7F0065C0 4600320D */ trunc.w.s $f8, $f6 +/* 03B0F4 7F0065C4 8E8D0000 */ lw $t5, ($s4) +/* 03B0F8 7F0065C8 02403825 */ move $a3, $s2 +/* 03B0FC 7F0065CC 4600540D */ trunc.w.s $f16, $f10 +/* 03B100 7F0065D0 44054000 */ mfc1 $a1, $f8 +/* 03B104 7F0065D4 018D2021 */ addu $a0, $t4, $t5 +/* 03B108 7F0065D8 44068000 */ mfc1 $a2, $f16 +/* 03B10C 7F0065DC 0FC018B0 */ jal sub_GAME_7F0062C0 +/* 03B110 7F0065E0 00000000 */ nop +/* 03B114 7F0065E4 8FB800D8 */ lw $t8, 0xd8($sp) +/* 03B118 7F0065E8 C6120008 */ lwc1 $f18, 8($s0) +/* 03B11C 7F0065EC C6040004 */ lwc1 $f4, 4($s0) +/* 03B120 7F0065F0 44984000 */ mtc1 $t8, $f8 +/* 03B124 7F0065F4 26100018 */ addiu $s0, $s0, 0x18 +/* 03B128 7F0065F8 46049181 */ sub.s $f6, $f18, $f4 +/* 03B12C 7F0065FC 468042A0 */ cvt.s.w $f10, $f8 +/* 03B130 7F006600 46165402 */ mul.s $f16, $f10, $f22 +/* 03B134 7F006604 46068483 */ div.s $f18, $f16, $f6 +/* 03B138 7F006608 1613FFEA */ bne $s0, $s3, .L7F0065B4 +/* 03B13C 7F00660C E612FFF4 */ swc1 $f18, -0xc($s0) +/* 03B140 7F006610 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03B144 7F006614 3C198003 */ lui $t9, %hi(D_8002A790) +/* 03B148 7F006618 27B20090 */ addiu $s2, $sp, 0x90 +/* 03B14C 7F00661C 2739A790 */ addiu $t9, %lo(D_8002A790) # addiu $t9, $t9, -0x5870 +/* 03B150 7F006620 4481B000 */ mtc1 $at, $f22 +/* 03B154 7F006624 2729003C */ addiu $t1, $t9, 0x3c +/* 03B158 7F006628 02405025 */ move $t2, $s2 +.L7F00662C: +/* 03B15C 7F00662C 8F210000 */ lw $at, ($t9) +/* 03B160 7F006630 2739000C */ addiu $t9, $t9, 0xc +/* 03B164 7F006634 254A000C */ addiu $t2, $t2, 0xc +/* 03B168 7F006638 AD41FFF4 */ sw $at, -0xc($t2) +/* 03B16C 7F00663C 8F21FFF8 */ lw $at, -8($t9) +/* 03B170 7F006640 AD41FFF8 */ sw $at, -8($t2) +/* 03B174 7F006644 8F21FFFC */ lw $at, -4($t9) +/* 03B178 7F006648 1729FFF8 */ bne $t9, $t1, .L7F00662C +/* 03B17C 7F00664C AD41FFFC */ sw $at, -4($t2) +/* 03B180 7F006650 8F210000 */ lw $at, ($t9) +/* 03B184 7F006654 3C0C0000 */ lui $t4, %hi(0x0000001C) # $t4, 0 +/* 03B188 7F006658 258C001C */ addiu $t4, %lo(0x0000001C) # addiu $t4, $t4, 0x1c +/* 03B18C 7F00665C AD410000 */ sw $at, ($t2) +/* 03B190 7F006660 8E8B0000 */ lw $t3, ($s4) +/* 03B194 7F006664 8E240000 */ lw $a0, ($s1) +/* 03B198 7F006668 4407A000 */ mfc1 $a3, $f20 +/* 03B19C 7F00666C E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B1A0 7F006670 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B1A4 7F006674 00003025 */ move $a2, $zero +/* 03B1A8 7F006678 016C2821 */ addu $a1, $t3, $t4 +/* 03B1AC 7F00667C 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B1B0 7F006680 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1B4 7F006684 8E240000 */ lw $a0, ($s1) +/* 03B1B8 7F006688 0FC1B5AC */ jal subcalcpos +/* 03B1BC 7F00668C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B1C0 7F006690 27B30050 */ addiu $s3, $sp, 0x50 +/* 03B1C4 7F006694 0FC15FF4 */ jal matrix_4x4_set_identity +/* 03B1C8 7F006698 02602025 */ move $a0, $s3 +/* 03B1CC 7F00669C 8E300000 */ lw $s0, ($s1) +/* 03B1D0 7F0066A0 AFB30090 */ sw $s3, 0x90($sp) +/* 03B1D4 7F0066A4 02402025 */ move $a0, $s2 +/* 03B1D8 7F0066A8 260D06D0 */ addiu $t5, $s0, 0x6d0 +/* 03B1DC 7F0066AC AFAD00A0 */ sw $t5, 0xa0($sp) +/* 03B1E0 7F0066B0 0FC1BCBE */ jal subcalcmatrices +/* 03B1E4 7F0066B4 26050598 */ addiu $a1, $s0, 0x598 +/* 03B1E8 7F0066B8 8E300000 */ lw $s0, ($s1) +/* 03B1EC 7F0066BC 24130018 */ li $s3, 24 +/* 03B1F0 7F0066C0 3C128003 */ lui $s2, %hi(D_80036AD0) +/* 03B1F4 7F0066C4 C6040704 */ lwc1 $f4, 0x704($s0) +/* 03B1F8 7F0066C8 26526AD0 */ addiu $s2, %lo(D_80036AD0) # addiu $s2, $s2, 0x6ad0 +/* 03B1FC 7F0066CC 00003025 */ move $a2, $zero +/* 03B200 7F0066D0 E6040550 */ swc1 $f4, 0x550($s0) +/* 03B204 7F0066D4 8E2E0000 */ lw $t6, ($s1) +/* 03B208 7F0066D8 E5D40554 */ swc1 $f20, 0x554($t6) +/* 03B20C 7F0066DC 8E300000 */ lw $s0, ($s1) +/* 03B210 7F0066E0 C6080744 */ lwc1 $f8, 0x744($s0) +/* 03B214 7F0066E4 C60A0704 */ lwc1 $f10, 0x704($s0) +/* 03B218 7F0066E8 460A4401 */ sub.s $f16, $f8, $f10 +/* 03B21C 7F0066EC E6100558 */ swc1 $f16, 0x558($s0) +/* 03B220 7F0066F0 8E300000 */ lw $s0, ($s1) +/* 03B224 7F0066F4 C6060748 */ lwc1 $f6, 0x748($s0) +/* 03B228 7F0066F8 C6120708 */ lwc1 $f18, 0x708($s0) +/* 03B22C 7F0066FC 46123101 */ sub.s $f4, $f6, $f18 +/* 03B230 7F006700 E604055C */ swc1 $f4, 0x55c($s0) +/* 03B234 7F006704 8E300000 */ lw $s0, ($s1) +/* 03B238 7F006708 8E890000 */ lw $t1, ($s4) +/* 03B23C 7F00670C 8E0F04E8 */ lw $t7, 0x4e8($s0) +/* 03B240 7F006710 E7B40014 */ swc1 $f20, 0x14($sp) +/* 03B244 7F006714 E7B60010 */ swc1 $f22, 0x10($sp) +/* 03B248 7F006718 01F30019 */ multu $t7, $s3 +/* 03B24C 7F00671C 26040598 */ addiu $a0, $s0, 0x598 +/* 03B250 7F006720 0000C012 */ mflo $t8 +/* 03B254 7F006724 02581021 */ addu $v0, $s2, $t8 +/* 03B258 7F006728 8C480000 */ lw $t0, ($v0) +/* 03B25C 7F00672C 8C470004 */ lw $a3, 4($v0) +/* 03B260 7F006730 0FC1BF2A */ jal sub_GAME_7F06FCA8 +/* 03B264 7F006734 01092821 */ addu $a1, $t0, $t1 +/* 03B268 7F006738 8E300000 */ lw $s0, ($s1) +/* 03B26C 7F00673C 4406A000 */ mfc1 $a2, $f20 +/* 03B270 7F006740 8E1904E8 */ lw $t9, 0x4e8($s0) +/* 03B274 7F006744 26040598 */ addiu $a0, $s0, 0x598 +/* 03B278 7F006748 03330019 */ multu $t9, $s3 +/* 03B27C 7F00674C 00005012 */ mflo $t2 +/* 03B280 7F006750 024A5821 */ addu $t3, $s2, $t2 +/* 03B284 7F006754 0FC1BF73 */ jal sub_GAME_7F06FDCC +/* 03B288 7F006758 8D650004 */ lw $a1, 4($t3) +/* 03B28C 7F00675C 8E300000 */ lw $s0, ($s1) +/* 03B290 7F006760 8E0C04E8 */ lw $t4, 0x4e8($s0) +/* 03B294 7F006764 26040598 */ addiu $a0, $s0, 0x598 +/* 03B298 7F006768 01930019 */ multu $t4, $s3 +/* 03B29C 7F00676C 00006812 */ mflo $t5 +/* 03B2A0 7F006770 024D7021 */ addu $t6, $s2, $t5 +/* 03B2A4 7F006774 0FC1BF7A */ jal sub_GAME_7F06FDE8 +/* 03B2A8 7F006778 8DC50008 */ lw $a1, 8($t6) +/* 03B2AC 7F00677C 8E240000 */ lw $a0, ($s1) +/* 03B2B0 7F006780 3C057F09 */ lui $a1, %hi(currentPlayerToggle5BC) # $a1, 0x7f09 +/* 03B2B4 7F006784 24A5DBB0 */ addiu $a1, %lo(currentPlayerToggle5BC) # addiu $a1, $a1, -0x2450 +/* 03B2B8 7F006788 0FC1BF8F */ jal sub_GAME_7F06FE3C +/* 03B2BC 7F00678C 24840598 */ addiu $a0, $a0, 0x598 +/* 03B2C0 7F006790 0FC236F2 */ jal currentPlayerUpdateIdleHeadRoll +/* 03B2C4 7F006794 00000000 */ nop +/* 03B2C8 7F006798 8FBF0044 */ lw $ra, 0x44($sp) +/* 03B2CC 7F00679C D7B40020 */ ldc1 $f20, 0x20($sp) +/* 03B2D0 7F0067A0 D7B60028 */ ldc1 $f22, 0x28($sp) +/* 03B2D4 7F0067A4 8FB00030 */ lw $s0, 0x30($sp) +/* 03B2D8 7F0067A8 8FB10034 */ lw $s1, 0x34($sp) +/* 03B2DC 7F0067AC 8FB20038 */ lw $s2, 0x38($sp) +/* 03B2E0 7F0067B0 8FB3003C */ lw $s3, 0x3c($sp) +/* 03B2E4 7F0067B4 8FB40040 */ lw $s4, 0x40($sp) +/* 03B2E8 7F0067B8 03E00008 */ jr $ra +/* 03B2EC 7F0067BC 27BD00E0 */ addiu $sp, $sp, 0xe0 +) +#endif + + #endif diff --git a/src/game/initactorpropstuff.c b/src/game/initactorpropstuff.c index 763ab71..3395f8f 100644 --- a/src/game/initactorpropstuff.c +++ b/src/game/initactorpropstuff.c @@ -1,107 +1,28 @@ #include "ultra64.h" #include "game/initactorpropstuff.h" #include "game/chr.h" +#include "game/bondwalk.h" - - - - - -#ifdef NONMATCHING void reset_counter_rand_body_head(void) { - num_bodies = 0; - if (list_of_bodies[0] >= 0 ) { - num_bodies = 1; - while (list_of_bodies[num_bodies] >= 0) { - num_bodies += 1; + num_bodies = 0; + while (list_of_bodies[num_bodies] >= 0) + { + num_bodies += 1; } - } - num_male_heads = 0; - if (random_male_heads[0] >= 0) { - num_male_heads = 1; - while (random_male_heads[num_male_heads] >= 0) { - num_male_heads += 1; - } - } - num_female_heads = 0; - if (random_female_heads[0] >= 0) { - num_female_heads = 1; - while (random_female_heads[num_female_heads] >= 0) { - num_female_heads += 1; - } - } - return; -} -#else -GLOBAL_ASM( -.text -glabel reset_counter_rand_body_head -/* 034C40 7F000110 3C048003 */ lui $a0, %hi(list_of_bodies) -/* 034C44 7F000114 2484CD0C */ addiu $a0, %lo(list_of_bodies) # addiu $a0, $a0, -0x32f4 -/* 034C48 7F000118 00007080 */ sll $t6, $zero, 2 -/* 034C4C 7F00011C 008E7821 */ addu $t7, $a0, $t6 -/* 034C50 7F000120 8DF80000 */ lw $t8, ($t7) -/* 034C54 7F000124 3C038003 */ lui $v1, %hi(num_bodies) -/* 034C58 7F000128 2463CD00 */ addiu $v1, %lo(num_bodies) # addiu $v1, $v1, -0x3300 -/* 034C5C 7F00012C AC600000 */ sw $zero, ($v1) -/* 034C60 7F000130 07000009 */ bltz $t8, .L7F000158 -/* 034C64 7F000134 00001025 */ move $v0, $zero -/* 034C68 7F000138 24590001 */ addiu $t9, $v0, 1 -.L7F00013C: -/* 034C6C 7F00013C 00194080 */ sll $t0, $t9, 2 -/* 034C70 7F000140 00884821 */ addu $t1, $a0, $t0 -/* 034C74 7F000144 8D2A0000 */ lw $t2, ($t1) -/* 034C78 7F000148 AC790000 */ sw $t9, ($v1) -/* 034C7C 7F00014C 03201025 */ move $v0, $t9 -/* 034C80 7F000150 0543FFFA */ bgezl $t2, .L7F00013C -/* 034C84 7F000154 24590001 */ addiu $t9, $v0, 1 -.L7F000158: -/* 034C88 7F000158 3C048003 */ lui $a0, %hi(random_male_heads) -/* 034C8C 7F00015C 2484CDB8 */ addiu $a0, %lo(random_male_heads) # addiu $a0, $a0, -0x3248 -/* 034C90 7F000160 00005880 */ sll $t3, $zero, 2 -/* 034C94 7F000164 008B6021 */ addu $t4, $a0, $t3 -/* 034C98 7F000168 8D8D0000 */ lw $t5, ($t4) -/* 034C9C 7F00016C 3C038003 */ lui $v1, %hi(num_male_heads) -/* 034CA0 7F000170 2463CD04 */ addiu $v1, %lo(num_male_heads) # addiu $v1, $v1, -0x32fc -/* 034CA4 7F000174 AC600000 */ sw $zero, ($v1) -/* 034CA8 7F000178 05A00009 */ bltz $t5, .L7F0001A0 -/* 034CAC 7F00017C 00001025 */ move $v0, $zero -/* 034CB0 7F000180 244E0001 */ addiu $t6, $v0, 1 -.L7F000184: -/* 034CB4 7F000184 000E7880 */ sll $t7, $t6, 2 -/* 034CB8 7F000188 008FC021 */ addu $t8, $a0, $t7 -/* 034CBC 7F00018C 8F190000 */ lw $t9, ($t8) -/* 034CC0 7F000190 AC6E0000 */ sw $t6, ($v1) -/* 034CC4 7F000194 01C01025 */ move $v0, $t6 -/* 034CC8 7F000198 0723FFFA */ bgezl $t9, .L7F000184 -/* 034CCC 7F00019C 244E0001 */ addiu $t6, $v0, 1 -.L7F0001A0: -/* 034CD0 7F0001A0 3C048003 */ lui $a0, %hi(random_female_heads) -/* 034CD4 7F0001A4 2484CE20 */ addiu $a0, %lo(random_female_heads) # addiu $a0, $a0, -0x31e0 -/* 034CD8 7F0001A8 00004080 */ sll $t0, $zero, 2 -/* 034CDC 7F0001AC 00884821 */ addu $t1, $a0, $t0 -/* 034CE0 7F0001B0 8D2A0000 */ lw $t2, ($t1) -/* 034CE4 7F0001B4 3C038003 */ lui $v1, %hi(num_female_heads) -/* 034CE8 7F0001B8 2463CD08 */ addiu $v1, %lo(num_female_heads) # addiu $v1, $v1, -0x32f8 -/* 034CEC 7F0001BC AC600000 */ sw $zero, ($v1) -/* 034CF0 7F0001C0 05400009 */ bltz $t2, .L7F0001E8 -/* 034CF4 7F0001C4 00001025 */ move $v0, $zero -/* 034CF8 7F0001C8 244B0001 */ addiu $t3, $v0, 1 -.L7F0001CC: -/* 034CFC 7F0001CC 000B6080 */ sll $t4, $t3, 2 -/* 034D00 7F0001D0 008C6821 */ addu $t5, $a0, $t4 -/* 034D04 7F0001D4 8DAE0000 */ lw $t6, ($t5) -/* 034D08 7F0001D8 AC6B0000 */ sw $t3, ($v1) -/* 034D0C 7F0001DC 01601025 */ move $v0, $t3 -/* 034D10 7F0001E0 05C3FFFA */ bgezl $t6, .L7F0001CC -/* 034D14 7F0001E4 244B0001 */ addiu $t3, $v0, 1 -.L7F0001E8: -/* 034D18 7F0001E8 03E00008 */ jr $ra -/* 034D1C 7F0001EC 00000000 */ nop -) -#endif + num_male_heads = 0; + while (random_male_heads[num_male_heads] >= 0) + { + num_male_heads += 1; + } + + num_female_heads = 0; + while (random_female_heads[num_female_heads] >= 0) + { + num_female_heads += 1; + } +} #ifdef NONMATCHING @@ -705,9 +626,6 @@ void sub_GAME_7F000980(void) { sub_GAME_7F0009A0(); } - -extern char dword_CODE_bss_80075DC8[20][160]; // TODO: This seems like an array of 20 of these. Fix the other files? (Aliasing violation) - void sub_GAME_7F0009A0(void) { u32 *end = &dword_CODE_bss_80075DC8[20]; u32 *ptr = &dword_CODE_bss_80075DC8[0]; diff --git a/src/game/initcameraandthrown.c b/src/game/initcameraandthrown.c index 4af3411..fb754cf 100644 --- a/src/game/initcameraandthrown.c +++ b/src/game/initcameraandthrown.c @@ -1,5 +1,6 @@ #include "ultra64.h" - +#include "bondconstants.h" +#include "boss.h" // data @@ -11,82 +12,56 @@ u32 D_8002A784 = 0; u32 D_8002A788 = 0; +u32 set_weapon_model_generated_thrown_object(ITEM_IDS modelid) +{ + s32 model; + + model = -1; + switch(modelid) + { + case ITEM_THROWKNIFE: + model = PROJECTILES_TYPE_KNIFE; + break; + case ITEM_GRENADELAUNCH: + model = PROJECTILES_TYPE_GLAUNCH_ROUND; + break; + case ITEM_ROCKETLAUNCH: + model = PROJECTILES_TYPE_ROCKET_ROUND; + break; + case ITEM_GRENADE: + model = PROJECTILES_TYPE_GRENADE; + break; + case ITEM_TIMEDMINE: + model = PROJECTILES_TYPE_TIMED_MINE; + break; + case ITEM_PROXIMITYMINE: + model = PROJECTILES_TYPE_PROX_MINE; + break; + case ITEM_REMOTEMINE: + model = PROJECTILES_TYPE_REMOTE_MINE; + break; + case ITEM_TANKSHELLS: + model = PROJECTILES_TYPE_ROCKET_ROUND2; + break; + case ITEM_BOMBCASE: + model = PROJECTILES_TYPE_BOMBCASE; + break; + case ITEM_PLASTIQUE: + model = PROJECTILES_TYPE_PLASTIQUE; + break; + case ITEM_BUG: + model = PROJECTILES_TYPE_BUG; + break; + case ITEM_MICROCAMERA: + model = PROJECTILES_TYPE_MICROCAMERA; + } - - - -#ifdef NONMATCHING -void set_weapon_model_generated_thrown_object(void) { - -} -#else -GLOBAL_ASM( -.late_rodata -.text -glabel set_weapon_model_generated_thrown_object -/* 03A240 7F005710 248EFFFD */ addiu $t6, $a0, -3 -/* 03A244 7F005714 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03A248 7F005718 2DC1002E */ sltiu $at, $t6, 0x2e -/* 03A24C 7F00571C AFBF0014 */ sw $ra, 0x14($sp) -/* 03A250 7F005720 1020001E */ beqz $at, .L7F00579C -/* 03A254 7F005724 2405FFFF */ li $a1, -1 -/* 03A258 7F005728 000E7080 */ sll $t6, $t6, 2 -/* 03A25C 7F00572C 3C018005 */ lui $at, %hi(projectile_ptr_table) -/* 03A260 7F005730 002E0821 */ addu $at, $at, $t6 -/* 03A264 7F005734 8C2EF0F0 */ lw $t6, %lo(projectile_ptr_table)($at) -/* 03A268 7F005738 01C00008 */ jr $t6 -/* 03A26C 7F00573C 00000000 */ nop -throwingknife: -/* 03A270 7F005740 10000016 */ b .L7F00579C -/* 03A274 7F005744 240500BA */ li $a1, 186 -grenade_launch_round: -/* 03A278 7F005748 10000014 */ b .L7F00579C -/* 03A27C 7F00574C 240500CB */ li $a1, 203 -rocket: -/* 03A280 7F005750 10000012 */ b .L7F00579C -/* 03A284 7F005754 240500CA */ li $a1, 202 -grenade: -/* 03A288 7F005758 10000010 */ b .L7F00579C -/* 03A28C 7F00575C 240500C4 */ li $a1, 196 -timed_mine: -/* 03A290 7F005760 1000000E */ b .L7F00579C -/* 03A294 7F005764 240500C9 */ li $a1, 201 -prox_mine: -/* 03A298 7F005768 1000000C */ b .L7F00579C -/* 03A29C 7F00576C 240500C8 */ li $a1, 200 -remote_mine: -/* 03A2A0 7F005770 1000000A */ b .L7F00579C -/* 03A2A4 7F005774 240500C7 */ li $a1, 199 -rocket_0: -/* 03A2A8 7F005778 10000008 */ b .L7F00579C -/* 03A2AC 7F00577C 240500CA */ li $a1, 202 -bombcase: -/* 03A2B0 7F005780 10000006 */ b .L7F00579C -/* 03A2B4 7F005784 240500E2 */ li $a1, 226 -plastique: -/* 03A2B8 7F005788 10000004 */ b .L7F00579C -/* 03A2BC 7F00578C 24050111 */ li $a1, 273 -bug: -/* 03A2C0 7F005790 10000002 */ b .L7F00579C -/* 03A2C4 7F005794 240500F5 */ li $a1, 245 -microcamera: -/* 03A2C8 7F005798 240500F6 */ li $a1, 246 -default: -.L7F00579C: -/* 03A2CC 7F00579C 04A00005 */ bltz $a1, .L7F0057B4 -/* 03A2D0 7F0057A0 00001025 */ move $v0, $zero -/* 03A2D4 7F0057A4 0FC15B0E */ jal load_model -/* 03A2D8 7F0057A8 00A02025 */ move $a0, $a1 -/* 03A2DC 7F0057AC 10000002 */ b .L7F0057B8 -/* 03A2E0 7F0057B0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0057B4: -/* 03A2E4 7F0057B4 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0057B8: -/* 03A2E8 7F0057B8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03A2EC 7F0057BC 03E00008 */ jr $ra -/* 03A2F0 7F0057C0 00000000 */ nop -) -#endif + if (-1 < model) + { + return load_model(model); + } + return 0; +} #ifdef NONMATCHING @@ -97,56 +72,8 @@ void load_camera_intro_type_values(void) { #ifdef VERSION_US GLOBAL_ASM( + .late_rodata -glabel projectile_ptr_table -.word throwingknife -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word grenade_launch_round -.word rocket -.word grenade -.word timed_mine -.word prox_mine -.word remote_mine -.word default -.word default -.word rocket_0 -.word bombcase -.word plastique -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word bug -.word microcamera - - /*8004f1a8*/ glabel default_zoom_speed .word 0x3f68ba2e @@ -208,7 +135,7 @@ glabel load_camera_intro_type_values /* 03A370 7F005840 3C018003 */ lui $at, %hi(camera_80036434) /* 03A374 7F005844 AFA0007C */ sw $zero, 0x7c($sp) /* 03A378 7F005848 AC206434 */ sw $zero, %lo(camera_80036434)($at) -/* 03A37C 7F00584C 0C001A57 */ jal get_stage_num +/* 03A37C 7F00584C 0C001A57 */ jal bossGetStageNum /* 03A380 7F005850 E7A40088 */ swc1 $f4, 0x88($sp) /* 03A384 7F005854 24010036 */ li $at, 54 /* 03A388 7F005858 1441000B */ bne $v0, $at, .L7F005888 @@ -602,7 +529,7 @@ def_7F005A74: /* 03A930 7F005E00 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 /* 03A934 7F005E04 10400012 */ beqz $v0, .L7F005E50 /* 03A938 7F005E08 3C018003 */ lui $at, %hi(ptr_random06cam_entry) -/* 03A93C 7F005E0C 0C002914 */ jal get_random_value +/* 03A93C 7F005E0C 0C002914 */ jal randomGetNext /* 03A940 7F005E10 AC2264C0 */ sw $v0, %lo(ptr_random06cam_entry)($at) /* 03A944 7F005E14 3C0B8003 */ lui $t3, %hi(D_800364BC) /* 03A948 7F005E18 8D6B64BC */ lw $t3, %lo(D_800364BC)($t3) @@ -869,55 +796,6 @@ def_7F005A74: #ifdef VERSION_JP GLOBAL_ASM( .late_rodata -glabel projectile_ptr_table -.word throwingknife -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word grenade_launch_round -.word rocket -.word grenade -.word timed_mine -.word prox_mine -.word remote_mine -.word default -.word default -.word rocket_0 -.word bombcase -.word plastique -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word default -.word bug -.word microcamera - - /*8004f1a8*/ glabel default_zoom_speed .word 0x3f68ba2e @@ -980,7 +858,7 @@ glabel load_camera_intro_type_values /* 03A3D4 7F005864 3C018003 */ lui $at, %hi(camera_80036434) # $at, 0x8003 /* 03A3D8 7F005868 AFA00084 */ sw $zero, 0x84($sp) /* 03A3DC 7F00586C AC206474 */ sw $zero, %lo(camera_80036434)($at) -/* 03A3E0 7F005870 0C001A57 */ jal get_stage_num +/* 03A3E0 7F005870 0C001A57 */ jal bossGetStageNum /* 03A3E4 7F005874 E7B80090 */ swc1 $f24, 0x90($sp) /* 03A3E8 7F005878 24010036 */ li $at, 54 /* 03A3EC 7F00587C 1441000B */ bne $v0, $at, .L7F0058AC @@ -1366,7 +1244,7 @@ def_7F005A74: /* 03A974 7F005E04 2652A120 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5ee0 /* 03A978 7F005E08 10400012 */ beqz $v0, .L7F005E54 /* 03A97C 7F005E0C 3C018003 */ lui $at, %hi(ptr_random06cam_entry) # $at, 0x8003 -/* 03A980 7F005E10 0C002918 */ jal get_random_value +/* 03A980 7F005E10 0C002918 */ jal randomGetNext /* 03A984 7F005E14 AC226500 */ sw $v0, %lo(ptr_random06cam_entry)($at) /* 03A988 7F005E18 3C0E8003 */ lui $t6, %hi(D_800364BC) # $t6, 0x8003 /* 03A98C 7F005E1C 8DCE64FC */ lw $t6, %lo(D_800364BC)($t6) @@ -1629,4 +1507,728 @@ def_7F005A74: ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( + +.late_rodata +/*8004f1a8*/ +glabel default_zoom_speed +.word 0x3f68ba2e + +glabel jpt_8004F1AC + .word spawn_point + .word weapon + .word ammo + .word swirling_intro_cam + .word intro_ani + .word cuff_char + .word fixed_cam + .word watch_time + .word credits + +glabel D_8004F1D0 +.word 0xb8d1b717 +glabel D_8004F1D4 +.word 0x40c90fdb +glabel D_8004F1D8 +.word 0x40c90fdb +glabel D_8004F1DC +.word 0x3e2e147c +glabel D_8004F1E0 +.word 0x3dccccd0 +.text +glabel load_camera_intro_type_values +/* 03A2F4 7F0057C4 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 03A2F8 7F0057C8 3C0F8003 */ lui $t7, %hi(D_8002A780) +/* 03A2FC 7F0057CC AFBF0034 */ sw $ra, 0x34($sp) +/* 03A300 7F0057D0 AFB20030 */ sw $s2, 0x30($sp) +/* 03A304 7F0057D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 03A308 7F0057D8 AFB00028 */ sw $s0, 0x28($sp) +/* 03A30C 7F0057DC F7B60020 */ sdc1 $f22, 0x20($sp) +/* 03A310 7F0057E0 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 03A314 7F0057E4 25EFA780 */ addiu $t7, %lo(D_8002A780) # addiu $t7, $t7, -0x5880 +/* 03A318 7F0057E8 8DE10000 */ lw $at, ($t7) +/* 03A31C 7F0057EC 27AE008C */ addiu $t6, $sp, 0x8c +/* 03A320 7F0057F0 8DE80004 */ lw $t0, 4($t7) +/* 03A324 7F0057F4 ADC10000 */ sw $at, ($t6) +/* 03A328 7F0057F8 8DE10008 */ lw $at, 8($t7) +/* 03A32C 7F0057FC ADC80004 */ sw $t0, 4($t6) +/* 03A330 7F005800 3C118003 */ lui $s1, %hi(resolution) +/* 03A334 7F005804 ADC10008 */ sw $at, 8($t6) +/* 03A338 7F005808 3C018003 */ lui $at, %hi(mission_kia_flag) +/* 03A33C 7F00580C AC20A928 */ sw $zero, %lo(mission_kia_flag)($at) +/* 03A340 7F005810 3C018003 */ lui $at, %hi(camera_80036424) +/* 03A344 7F005814 3C108007 */ lui $s0, %hi(ptr_setup_intro) +/* 03A348 7F005818 AC206424 */ sw $zero, %lo(camera_80036424)($at) +/* 03A34C 7F00581C 26316428 */ addiu $s1, %lo(resolution) # addiu $s1, $s1, 0x6428 +/* 03A350 7F005820 8E105D08 */ lw $s0, %lo(ptr_setup_intro)($s0) +/* 03A354 7F005824 AE200000 */ sw $zero, ($s1) +/* 03A358 7F005828 3C018003 */ lui $at, %hi(camera_8003642C) +/* 03A35C 7F00582C 3C128003 */ lui $s2, %hi(camera_80036430) +/* 03A360 7F005830 AC20642C */ sw $zero, %lo(camera_8003642C)($at) +/* 03A364 7F005834 44802000 */ mtc1 $zero, $f4 +/* 03A368 7F005838 26526430 */ addiu $s2, %lo(camera_80036430) # addiu $s2, $s2, 0x6430 +/* 03A36C 7F00583C AE400000 */ sw $zero, ($s2) +/* 03A370 7F005840 3C018003 */ lui $at, %hi(camera_80036434) +/* 03A374 7F005844 AFA0007C */ sw $zero, 0x7c($sp) +/* 03A378 7F005848 AC206434 */ sw $zero, %lo(camera_80036434)($at) +/* 03A37C 7F00584C 0C001A57 */ jal bossGetStageNum +/* 03A380 7F005850 E7A40088 */ swc1 $f4, 0x88($sp) +/* 03A384 7F005854 24010036 */ li $at, 54 +/* 03A388 7F005858 1441000B */ bne $v0, $at, .L7F005888 +/* 03A38C 7F00585C 3C040004 */ lui $a0, (0x00046EA0 >> 16) # lui $a0, 4 +/* 03A390 7F005860 34846EA0 */ ori $a0, (0x00046EA0 & 0xFFFF) # ori $a0, $a0, 0x6ea0 +/* 03A394 7F005864 0C0025C8 */ jal mempAllocBytesInBank +/* 03A398 7F005868 24050004 */ li $a1, 4 +/* 03A39C 7F00586C 244A003F */ addiu $t2, $v0, 0x3f +/* 03A3A0 7F005870 2401FFC0 */ li $at, -64 +/* 03A3A4 7F005874 AE220000 */ sw $v0, ($s1) +/* 03A3A8 7F005878 01415824 */ and $t3, $t2, $at +/* 03A3AC 7F00587C 240C0001 */ li $t4, 1 +/* 03A3B0 7F005880 AE2B0000 */ sw $t3, ($s1) +/* 03A3B4 7F005884 AE4C0000 */ sw $t4, ($s2) +.L7F005888: +/* 03A3B8 7F005888 3C018003 */ lui $at, %hi(camera_80036438) +/* 03A3BC 7F00588C AC206438 */ sw $zero, %lo(camera_80036438)($at) +/* 03A3C0 7F005890 3C018003 */ lui $at, %hi(D_8003643C) +/* 03A3C4 7F005894 AC20643C */ sw $zero, %lo(D_8003643C)($at) +/* 03A3C8 7F005898 3C018003 */ lui $at, %hi(D_80036440) +/* 03A3CC 7F00589C 3C028008 */ lui $v0, %hi(flt_CODE_bss_80079990) +/* 03A3D0 7F0058A0 AC206440 */ sw $zero, %lo(D_80036440)($at) +/* 03A3D4 7F0058A4 44803000 */ mtc1 $zero, $f6 +/* 03A3D8 7F0058A8 44804000 */ mtc1 $zero, $f8 +/* 03A3DC 7F0058AC 44805000 */ mtc1 $zero, $f10 +/* 03A3E0 7F0058B0 24429990 */ addiu $v0, %lo(flt_CODE_bss_80079990) # addiu $v0, $v0, -0x6670 +/* 03A3E4 7F0058B4 3C018003 */ lui $at, %hi(D_80036444) +/* 03A3E8 7F0058B8 E4460000 */ swc1 $f6, ($v0) +/* 03A3EC 7F0058BC E4480004 */ swc1 $f8, 4($v0) +/* 03A3F0 7F0058C0 E44A0008 */ swc1 $f10, 8($v0) +/* 03A3F4 7F0058C4 AC206444 */ sw $zero, %lo(D_80036444)($at) +/* 03A3F8 7F0058C8 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A3FC 7F0058CC AC209C68 */ sw $zero, %lo(dword_CODE_bss_80079C68)($at) +/* 03A400 7F0058D0 3C018003 */ lui $at, %hi(in_tank_flag) +/* 03A404 7F0058D4 AC206448 */ sw $zero, %lo(in_tank_flag)($at) +/* 03A408 7F0058D8 3C018003 */ lui $at, %hi(D_8003644C) +/* 03A40C 7F0058DC AC20644C */ sw $zero, %lo(D_8003644C)($at) +/* 03A410 7F0058E0 44808000 */ mtc1 $zero, $f16 +/* 03A414 7F0058E4 3C018003 */ lui $at, %hi(ptr_playerstank) +/* 03A418 7F0058E8 AC206450 */ sw $zero, %lo(ptr_playerstank)($at) +/* 03A41C 7F0058EC 3C018003 */ lui $at, %hi(D_80036454) +/* 03A420 7F0058F0 3C038003 */ lui $v1, %hi(SFX_80036458) +/* 03A424 7F0058F4 E4306454 */ swc1 $f16, %lo(D_80036454)($at) +/* 03A428 7F0058F8 44809000 */ mtc1 $zero, $f18 +/* 03A42C 7F0058FC 24636458 */ addiu $v1, %lo(SFX_80036458) # addiu $v1, $v1, 0x6458 +/* 03A430 7F005900 44802000 */ mtc1 $zero, $f4 +/* 03A434 7F005904 AC600000 */ sw $zero, ($v1) +/* 03A438 7F005908 AC600004 */ sw $zero, 4($v1) +/* 03A43C 7F00590C 3C018003 */ lui $at, %hi(D_80036460) +/* 03A440 7F005910 E4326460 */ swc1 $f18, %lo(D_80036460)($at) +/* 03A444 7F005914 44803000 */ mtc1 $zero, $f6 +/* 03A448 7F005918 3C018003 */ lui $at, %hi(D_80036464) +/* 03A44C 7F00591C E4246464 */ swc1 $f4, %lo(D_80036464)($at) +/* 03A450 7F005920 44804000 */ mtc1 $zero, $f8 +/* 03A454 7F005924 3C018003 */ lui $at, %hi(D_80036468) +/* 03A458 7F005928 E4266468 */ swc1 $f6, %lo(D_80036468)($at) +/* 03A45C 7F00592C 44805000 */ mtc1 $zero, $f10 +/* 03A460 7F005930 3C018003 */ lui $at, %hi(D_8003646C) +/* 03A464 7F005934 E428646C */ swc1 $f8, %lo(D_8003646C)($at) +/* 03A468 7F005938 44808000 */ mtc1 $zero, $f16 +/* 03A46C 7F00593C 3C018003 */ lui $at, %hi(D_80036470) +/* 03A470 7F005940 E42A6470 */ swc1 $f10, %lo(D_80036470)($at) +/* 03A474 7F005944 44809000 */ mtc1 $zero, $f18 +/* 03A478 7F005948 3C018003 */ lui $at, %hi(D_80036474) +/* 03A47C 7F00594C E4306474 */ swc1 $f16, %lo(D_80036474)($at) +/* 03A480 7F005950 44802000 */ mtc1 $zero, $f4 +/* 03A484 7F005954 3C018003 */ lui $at, %hi(D_80036478) +/* 03A488 7F005958 E4326478 */ swc1 $f18, %lo(D_80036478)($at) +/* 03A48C 7F00595C 3C018003 */ lui $at, %hi(D_8003647C) +/* 03A490 7F005960 E424647C */ swc1 $f4, %lo(D_8003647C)($at) +/* 03A494 7F005964 44803000 */ mtc1 $zero, $f6 +/* 03A498 7F005968 3C018003 */ lui $at, %hi(D_80036480) +/* 03A49C 7F00596C AC206480 */ sw $zero, %lo(D_80036480)($at) +/* 03A4A0 7F005970 44804000 */ mtc1 $zero, $f8 +/* 03A4A4 7F005974 3C018003 */ lui $at, %hi(D_80036484) +/* 03A4A8 7F005978 E4266484 */ swc1 $f6, %lo(D_80036484)($at) +/* 03A4AC 7F00597C 3C018003 */ lui $at, %hi(D_80036488) +/* 03A4B0 7F005980 E4286488 */ swc1 $f8, %lo(D_80036488)($at) +/* 03A4B4 7F005984 3C018003 */ lui $at, %hi(D_8003648C) +/* 03A4B8 7F005988 AC20648C */ sw $zero, %lo(D_8003648C)($at) +/* 03A4BC 7F00598C 3C018003 */ lui $at, %hi(D_800364B0) +/* 03A4C0 7F005990 240D0001 */ li $t5, 1 +/* 03A4C4 7F005994 AC2D64B0 */ sw $t5, %lo(D_800364B0)($at) +/* 03A4C8 7F005998 3C018003 */ lui $at, %hi(disable_player_pickups_flag) +/* 03A4CC 7F00599C AC2064B4 */ sw $zero, %lo(disable_player_pickups_flag)($at) +/* 03A4D0 7F0059A0 3C018003 */ lui $at, %hi(cameramode) +/* 03A4D4 7F0059A4 AC206494 */ sw $zero, %lo(cameramode)($at) +/* 03A4D8 7F0059A8 3C018003 */ lui $at, %hi(enable_move_after_cinema) +/* 03A4DC 7F0059AC AC206498 */ sw $zero, %lo(enable_move_after_cinema)($at) +/* 03A4E0 7F0059B0 3C018003 */ lui $at, %hi(D_8003649C) +/* 03A4E4 7F0059B4 AC20649C */ sw $zero, %lo(D_8003649C)($at) +/* 03A4E8 7F0059B8 44805000 */ mtc1 $zero, $f10 +/* 03A4EC 7F0059BC 3C018003 */ lui $at, %hi(stop_time_flag) +/* 03A4F0 7F0059C0 AC2064A0 */ sw $zero, %lo(stop_time_flag)($at) +/* 03A4F4 7F0059C4 3C018003 */ lui $at, %hi(D_800364A4) +/* 03A4F8 7F0059C8 E42A64A4 */ swc1 $f10, %lo(D_800364A4)($at) +/* 03A4FC 7F0059CC 3C018003 */ lui $at, %hi(D_800364A8) +/* 03A500 7F0059D0 24190001 */ li $t9, 1 +/* 03A504 7F0059D4 AC3964A8 */ sw $t9, %lo(D_800364A8)($at) +/* 03A508 7F0059D8 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A50C 7F0059DC AC2064AC */ sw $zero, %lo(D_800364AC)($at) +/* 03A510 7F0059E0 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A514 7F0059E4 AC2064C0 */ sw $zero, %lo(ptr_random06cam_entry)($at) +/* 03A518 7F0059E8 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A51C 7F0059EC AC2064B8 */ sw $zero, %lo(D_800364B8)($at) +/* 03A520 7F0059F0 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A524 7F0059F4 AC2064BC */ sw $zero, %lo(D_800364BC)($at) +/* 03A528 7F0059F8 3C018008 */ lui $at, %hi(mission_timer) +/* 03A52C 7F0059FC 3C118008 */ lui $s1, %hi(watch_time_0) +/* 03A530 7F005A00 AC209A20 */ sw $zero, %lo(mission_timer)($at) +/* 03A534 7F005A04 26319A24 */ addiu $s1, %lo(watch_time_0) # addiu $s1, $s1, -0x65dc +/* 03A538 7F005A08 AE200000 */ sw $zero, ($s1) +/* 03A53C 7F005A0C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A540 7F005A10 AC206514 */ sw $zero, %lo(D_80036514)($at) +/* 03A544 7F005A14 3C018005 */ lui $at, %hi(default_zoom_speed) +/* 03A548 7F005A18 C430F1A8 */ lwc1 $f16, %lo(default_zoom_speed)($at) +/* 03A54C 7F005A1C 3C018003 */ lui $at, %hi(watch_transition_time) +/* 03A550 7F005A20 E43065A8 */ swc1 $f16, %lo(watch_transition_time)($at) +/* 03A554 7F005A24 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A558 7F005A28 AC2099E4 */ sw $zero, %lo(starting_left_weapon)($at) +/* 03A55C 7F005A2C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A560 7F005A30 120000F0 */ beqz $s0, .L7F005DF4 +/* 03A564 7F005A34 AC2099E0 */ sw $zero, %lo(starting_right_weapon)($at) +/* 03A568 7F005A38 8E020000 */ lw $v0, ($s0) +/* 03A56C 7F005A3C 24010009 */ li $at, 9 +/* 03A570 7F005A40 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A574 7F005A44 104100EB */ beq $v0, $at, .L7F005DF4 +/* 03A578 7F005A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03A57C 7F005A4C 4481B000 */ mtc1 $at, $f22 +/* 03A580 7F005A50 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 03A584 7F005A54 4481A000 */ mtc1 $at, $f20 +/* 03A588 7F005A58 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A58C 7F005A5C 2C410009 */ sltiu $at, $v0, 9 +.L7F005A60: +/* 03A590 7F005A60 102000DF */ beqz $at, .L7F005DE0 +/* 03A594 7F005A64 0002C080 */ sll $t8, $v0, 2 +/* 03A598 7F005A68 3C018005 */ lui $at, %hi(jpt_8004F1AC) +/* 03A59C 7F005A6C 00380821 */ addu $at, $at, $t8 +/* 03A5A0 7F005A70 8C38F1AC */ lw $t8, %lo(jpt_8004F1AC)($at) +/* 03A5A4 7F005A74 03000008 */ jr $t8 +/* 03A5A8 7F005A78 00000000 */ nop +spawn_point: +/* 03A5AC 7F005A7C 3C0E8007 */ lui $t6, %hi(ptr_0xxxpresets) +/* 03A5B0 7F005A80 8DCE5D18 */ lw $t6, %lo(ptr_0xxxpresets)($t6) +/* 03A5B4 7F005A84 11C00018 */ beqz $t6, .L7F005AE8 +/* 03A5B8 7F005A88 00000000 */ nop +/* 03A5BC 7F005A8C 0FC30288 */ jal check_ramrom_flags +/* 03A5C0 7F005A90 00000000 */ nop +/* 03A5C4 7F005A94 8E0F0008 */ lw $t7, 8($s0) +/* 03A5C8 7F005A98 3C0A8007 */ lui $t2, %hi(ptr_0xxxpresets) +/* 03A5CC 7F005A9C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C28) +/* 03A5D0 7F005AA0 144F0011 */ bne $v0, $t7, .L7F005AE8 +/* 03A5D4 7F005AA4 00000000 */ nop +/* 03A5D8 7F005AA8 8E080004 */ lw $t0, 4($s0) +/* 03A5DC 7F005AAC 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079C68) +/* 03A5E0 7F005AB0 8C429C68 */ lw $v0, %lo(dword_CODE_bss_80079C68)($v0) +/* 03A5E4 7F005AB4 00084880 */ sll $t1, $t0, 2 +/* 03A5E8 7F005AB8 01284823 */ subu $t1, $t1, $t0 +/* 03A5EC 7F005ABC 8D4A5D18 */ lw $t2, %lo(ptr_0xxxpresets)($t2) +/* 03A5F0 7F005AC0 00094880 */ sll $t1, $t1, 2 +/* 03A5F4 7F005AC4 01284823 */ subu $t1, $t1, $t0 +/* 03A5F8 7F005AC8 00094880 */ sll $t1, $t1, 2 +/* 03A5FC 7F005ACC 00026080 */ sll $t4, $v0, 2 +/* 03A600 7F005AD0 002C0821 */ addu $at, $at, $t4 +/* 03A604 7F005AD4 012A5821 */ addu $t3, $t1, $t2 +/* 03A608 7F005AD8 AC2B9C28 */ sw $t3, %lo(dword_CODE_bss_80079C28)($at) +/* 03A60C 7F005ADC 3C018008 */ lui $at, %hi(dword_CODE_bss_80079C68) +/* 03A610 7F005AE0 244D0001 */ addiu $t5, $v0, 1 +/* 03A614 7F005AE4 AC2D9C68 */ sw $t5, %lo(dword_CODE_bss_80079C68)($at) +.L7F005AE8: +/* 03A618 7F005AE8 100000BE */ b .L7F005DE4 +/* 03A61C 7F005AEC 2610000C */ addiu $s0, $s0, 0xc +weapon: +/* 03A620 7F005AF0 0FC30288 */ jal check_ramrom_flags +/* 03A624 7F005AF4 00000000 */ nop +/* 03A628 7F005AF8 8E19000C */ lw $t9, 0xc($s0) +/* 03A62C 7F005AFC 1459001C */ bne $v0, $t9, .L7F005B70 +/* 03A630 7F005B00 00000000 */ nop +/* 03A634 7F005B04 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A638 7F005B08 8E040004 */ lw $a0, 4($s0) +/* 03A63C 7F005B0C 8E040008 */ lw $a0, 8($s0) +/* 03A640 7F005B10 04800008 */ bltz $a0, .L7F005B34 +/* 03A644 7F005B14 00000000 */ nop +/* 03A648 7F005B18 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 03A64C 7F005B1C 00000000 */ nop +/* 03A650 7F005B20 8E040004 */ lw $a0, 4($s0) +/* 03A654 7F005B24 0FC23143 */ jal add_doubles_item_to_inventory +/* 03A658 7F005B28 8E050008 */ lw $a1, 8($s0) +/* 03A65C 7F005B2C 10000004 */ b .L7F005B40 +/* 03A660 7F005B30 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B34: +/* 03A664 7F005B34 0FC23122 */ jal add_item_to_inventory +/* 03A668 7F005B38 8E040004 */ lw $a0, 4($s0) +/* 03A66C 7F005B3C 8FB8007C */ lw $t8, 0x7c($sp) +.L7F005B40: +/* 03A670 7F005B40 1700000B */ bnez $t8, .L7F005B70 +/* 03A674 7F005B44 00000000 */ nop +/* 03A678 7F005B48 8E0E0004 */ lw $t6, 4($s0) +/* 03A67C 7F005B4C 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A680 7F005B50 240F0001 */ li $t7, 1 +/* 03A684 7F005B54 AC2E99E0 */ sw $t6, %lo(starting_right_weapon)($at) +/* 03A688 7F005B58 8E040008 */ lw $a0, 8($s0) +/* 03A68C 7F005B5C AFAF007C */ sw $t7, 0x7c($sp) +/* 03A690 7F005B60 3C018008 */ lui $at, %hi(starting_left_weapon) +/* 03A694 7F005B64 04800002 */ bltz $a0, .L7F005B70 +/* 03A698 7F005B68 00000000 */ nop +/* 03A69C 7F005B6C AC2499E4 */ sw $a0, %lo(starting_left_weapon)($at) +.L7F005B70: +/* 03A6A0 7F005B70 1000009C */ b .L7F005DE4 +/* 03A6A4 7F005B74 26100010 */ addiu $s0, $s0, 0x10 +ammo: +/* 03A6A8 7F005B78 0FC30288 */ jal check_ramrom_flags +/* 03A6AC 7F005B7C 00000000 */ nop +/* 03A6B0 7F005B80 8E08000C */ lw $t0, 0xc($s0) +/* 03A6B4 7F005B84 14480004 */ bne $v0, $t0, .L7F005B98 +/* 03A6B8 7F005B88 00000000 */ nop +/* 03A6BC 7F005B8C 8E040004 */ lw $a0, 4($s0) +/* 03A6C0 7F005B90 0FC1A44C */ jal give_cur_player_ammo +/* 03A6C4 7F005B94 8E050008 */ lw $a1, 8($s0) +.L7F005B98: +/* 03A6C8 7F005B98 10000092 */ b .L7F005DE4 +/* 03A6CC 7F005B9C 26100010 */ addiu $s0, $s0, 0x10 +swirling_intro_cam: +/* 03A6D0 7F005BA0 3C098003 */ lui $t1, %hi(D_800364AC) +/* 03A6D4 7F005BA4 8D2964AC */ lw $t1, %lo(D_800364AC)($t1) +/* 03A6D8 7F005BA8 02001025 */ move $v0, $s0 +/* 03A6DC 7F005BAC 3C018003 */ lui $at, %hi(D_800364AC) +/* 03A6E0 7F005BB0 55200003 */ bnezl $t1, .L7F005BC0 +/* 03A6E4 7F005BB4 8C4A0008 */ lw $t2, 8($v0) +/* 03A6E8 7F005BB8 AC3064AC */ sw $s0, %lo(D_800364AC)($at) +/* 03A6EC 7F005BBC 8C4A0008 */ lw $t2, 8($v0) +.L7F005BC0: +/* 03A6F0 7F005BC0 8C4B000C */ lw $t3, 0xc($v0) +/* 03A6F4 7F005BC4 8C4C0010 */ lw $t4, 0x10($v0) +/* 03A6F8 7F005BC8 448A9000 */ mtc1 $t2, $f18 +/* 03A6FC 7F005BCC 448B4000 */ mtc1 $t3, $f8 +/* 03A700 7F005BD0 8C4D0014 */ lw $t5, 0x14($v0) +/* 03A704 7F005BD4 46809120 */ cvt.s.w $f4, $f18 +/* 03A708 7F005BD8 448C9000 */ mtc1 $t4, $f18 +/* 03A70C 7F005BDC 8C590018 */ lw $t9, 0x18($v0) +/* 03A710 7F005BE0 26100020 */ addiu $s0, $s0, 0x20 +/* 03A714 7F005BE4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A718 7F005BE8 448D4000 */ mtc1 $t5, $f8 +/* 03A71C 7F005BEC 46142183 */ div.s $f6, $f4, $f20 +/* 03A720 7F005BF0 46809120 */ cvt.s.w $f4, $f18 +/* 03A724 7F005BF4 44999000 */ mtc1 $t9, $f18 +/* 03A728 7F005BF8 46145403 */ div.s $f16, $f10, $f20 +/* 03A72C 7F005BFC E4460008 */ swc1 $f6, 8($v0) +/* 03A730 7F005C00 468042A0 */ cvt.s.w $f10, $f8 +/* 03A734 7F005C04 46142183 */ div.s $f6, $f4, $f20 +/* 03A738 7F005C08 E450000C */ swc1 $f16, 0xc($v0) +/* 03A73C 7F005C0C 46809120 */ cvt.s.w $f4, $f18 +/* 03A740 7F005C10 46145403 */ div.s $f16, $f10, $f20 +/* 03A744 7F005C14 E4460010 */ swc1 $f6, 0x10($v0) +/* 03A748 7F005C18 46142183 */ div.s $f6, $f4, $f20 +/* 03A74C 7F005C1C E4500014 */ swc1 $f16, 0x14($v0) +/* 03A750 7F005C20 10000070 */ b .L7F005DE4 +/* 03A754 7F005C24 E4460018 */ swc1 $f6, 0x18($v0) +intro_ani: +/* 03A758 7F005C28 8E180004 */ lw $t8, 4($s0) +/* 03A75C 7F005C2C 3C018003 */ lui $at, %hi(D_80036514) +/* 03A760 7F005C30 26100008 */ addiu $s0, $s0, 8 +/* 03A764 7F005C34 1000006B */ b .L7F005DE4 +/* 03A768 7F005C38 AC386514 */ sw $t8, %lo(D_80036514)($at) +cuff_char: +/* 03A76C 7F005C3C 8E0E0004 */ lw $t6, 4($s0) +/* 03A770 7F005C40 8E4F0000 */ lw $t7, ($s2) +/* 03A774 7F005C44 26100008 */ addiu $s0, $s0, 8 +/* 03A778 7F005C48 10000066 */ b .L7F005DE4 +/* 03A77C 7F005C4C ADEE041C */ sw $t6, 0x41c($t7) +fixed_cam: +/* 03A780 7F005C50 0FC26C54 */ jal get_cur_playernum +/* 03A784 7F005C54 00000000 */ nop +/* 03A788 7F005C58 1440002C */ bnez $v0, .L7F005D0C +/* 03A78C 7F005C5C 3C088003 */ lui $t0, %hi(D_800364B8) +/* 03A790 7F005C60 8D0864B8 */ lw $t0, %lo(D_800364B8)($t0) +/* 03A794 7F005C64 3C098003 */ lui $t1, %hi(D_800364BC) +/* 03A798 7F005C68 3C018003 */ lui $at, %hi(D_800364B8) +/* 03A79C 7F005C6C AE080024 */ sw $t0, 0x24($s0) +/* 03A7A0 7F005C70 8D2964BC */ lw $t1, %lo(D_800364BC)($t1) +/* 03A7A4 7F005C74 AC3064B8 */ sw $s0, %lo(D_800364B8)($at) +/* 03A7A8 7F005C78 3C018003 */ lui $at, %hi(D_800364BC) +/* 03A7AC 7F005C7C 252A0001 */ addiu $t2, $t1, 1 +/* 03A7B0 7F005C80 AC2A64BC */ sw $t2, %lo(D_800364BC)($at) +/* 03A7B4 7F005C84 8E0B0004 */ lw $t3, 4($s0) +/* 03A7B8 7F005C88 8E0C0008 */ lw $t4, 8($s0) +/* 03A7BC 7F005C8C 8E0D000C */ lw $t5, 0xc($s0) +/* 03A7C0 7F005C90 448B4000 */ mtc1 $t3, $f8 +/* 03A7C4 7F005C94 448C9000 */ mtc1 $t4, $f18 +/* 03A7C8 7F005C98 8E190010 */ lw $t9, 0x10($s0) +/* 03A7CC 7F005C9C 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7D0 7F005CA0 448D4000 */ mtc1 $t5, $f8 +/* 03A7D4 7F005CA4 8E180014 */ lw $t8, 0x14($s0) +/* 03A7D8 7F005CA8 9604001E */ lhu $a0, 0x1e($s0) +/* 03A7DC 7F005CAC 46809120 */ cvt.s.w $f4, $f18 +/* 03A7E0 7F005CB0 44999000 */ mtc1 $t9, $f18 +/* 03A7E4 7F005CB4 46165403 */ div.s $f16, $f10, $f22 +/* 03A7E8 7F005CB8 468042A0 */ cvt.s.w $f10, $f8 +/* 03A7EC 7F005CBC 44984000 */ mtc1 $t8, $f8 +/* 03A7F0 7F005CC0 46162183 */ div.s $f6, $f4, $f22 +/* 03A7F4 7F005CC4 E6100004 */ swc1 $f16, 4($s0) +/* 03A7F8 7F005CC8 46809120 */ cvt.s.w $f4, $f18 +/* 03A7FC 7F005CCC 46165403 */ div.s $f16, $f10, $f22 +/* 03A800 7F005CD0 E6060008 */ swc1 $f6, 8($s0) +/* 03A804 7F005CD4 468042A0 */ cvt.s.w $f10, $f8 +/* 03A808 7F005CD8 46142183 */ div.s $f6, $f4, $f20 +/* 03A80C 7F005CDC E610000C */ swc1 $f16, 0xc($s0) +/* 03A810 7F005CE0 46145403 */ div.s $f16, $f10, $f20 +/* 03A814 7F005CE4 E6060010 */ swc1 $f6, 0x10($s0) +/* 03A818 7F005CE8 0FC30776 */ jal get_textptr_for_textID +/* 03A81C 7F005CEC E6100014 */ swc1 $f16, 0x14($s0) +/* 03A820 7F005CF0 8E030020 */ lw $v1, 0x20($s0) +/* 03A824 7F005CF4 AE02001C */ sw $v0, 0x1c($s0) +/* 03A828 7F005CF8 10600004 */ beqz $v1, .L7F005D0C +/* 03A82C 7F005CFC 00000000 */ nop +/* 03A830 7F005D00 0FC30776 */ jal get_textptr_for_textID +/* 03A834 7F005D04 3064FFFF */ andi $a0, $v1, 0xffff +/* 03A838 7F005D08 AE020020 */ sw $v0, 0x20($s0) +.L7F005D0C: +/* 03A83C 7F005D0C 10000035 */ b .L7F005DE4 +/* 03A840 7F005D10 26100028 */ addiu $s0, $s0, 0x28 +watch_time: +/* 03A844 7F005D14 AE200000 */ sw $zero, ($s1) +/* 03A848 7F005D18 8E040008 */ lw $a0, 8($s0) +/* 03A84C 7F005D1C 2401003C */ li $at, 60 +/* 03A850 7F005D20 5880000B */ blezl $a0, .L7F005D50 +/* 03A854 7F005D24 8E020004 */ lw $v0, 4($s0) +/* 03A858 7F005D28 0081001A */ div $zero, $a0, $at +/* 03A85C 7F005D2C 00007810 */ mfhi $t7 +/* 03A860 7F005D30 000F40C0 */ sll $t0, $t7, 3 +/* 03A864 7F005D34 010F4023 */ subu $t0, $t0, $t7 +/* 03A868 7F005D38 00084140 */ sll $t0, $t0, 5 +/* 03A86C 7F005D3C 010F4021 */ addu $t0, $t0, $t7 +/* 03A870 7F005D40 00084100 */ sll $t0, $t0, 4 +/* 03A874 7F005D44 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A878 7F005D48 AC289A24 */ sw $t0, %lo(watch_time_0)($at) +/* 03A87C 7F005D4C 8E020004 */ lw $v0, 4($s0) +.L7F005D50: +/* 03A880 7F005D50 2401000C */ li $at, 12 +/* 03A884 7F005D54 1840000B */ blez $v0, .L7F005D84 +/* 03A888 7F005D58 00000000 */ nop +/* 03A88C 7F005D5C 0041001A */ div $zero, $v0, $at +/* 03A890 7F005D60 00005810 */ mfhi $t3 +/* 03A894 7F005D64 3C010003 */ lui $at, (0x00034BC0 >> 16) # lui $at, 3 +/* 03A898 7F005D68 34214BC0 */ ori $at, (0x00034BC0 & 0xFFFF) # ori $at, $at, 0x4bc0 +/* 03A89C 7F005D6C 01610019 */ multu $t3, $at +/* 03A8A0 7F005D70 8E2A0000 */ lw $t2, ($s1) +/* 03A8A4 7F005D74 3C018008 */ lui $at, %hi(watch_time_0) +/* 03A8A8 7F005D78 00006012 */ mflo $t4 +/* 03A8AC 7F005D7C 014C6821 */ addu $t5, $t2, $t4 +/* 03A8B0 7F005D80 AC2D9A24 */ sw $t5, %lo(watch_time_0)($at) +.L7F005D84: +/* 03A8B4 7F005D84 10000017 */ b .L7F005DE4 +/* 03A8B8 7F005D88 2610000C */ addiu $s0, $s0, 0xc +credits: +/* 03A8BC 7F005D8C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80075D28) +/* 03A8C0 7F005D90 8F395D28 */ lw $t9, %lo(dword_CODE_bss_80075D28)($t9) +/* 03A8C4 7F005D94 8E180004 */ lw $t8, 4($s0) +/* 03A8C8 7F005D98 3C018003 */ lui $at, %hi(D_80036440) +/* 03A8CC 7F005D9C 03381021 */ addu $v0, $t9, $t8 +/* 03A8D0 7F005DA0 AC226440 */ sw $v0, %lo(D_80036440)($at) +/* 03A8D4 7F005DA4 944F0000 */ lhu $t7, ($v0) +/* 03A8D8 7F005DA8 55E00005 */ bnezl $t7, .L7F005DC0 +/* 03A8DC 7F005DAC 9448000C */ lhu $t0, 0xc($v0) +/* 03A8E0 7F005DB0 944E0002 */ lhu $t6, 2($v0) +/* 03A8E4 7F005DB4 11C00008 */ beqz $t6, .L7F005DD8 +/* 03A8E8 7F005DB8 00000000 */ nop +/* 03A8EC 7F005DBC 9448000C */ lhu $t0, 0xc($v0) +.L7F005DC0: +/* 03A8F0 7F005DC0 2442000C */ addiu $v0, $v0, 0xc +/* 03A8F4 7F005DC4 5500FFFE */ bnezl $t0, .L7F005DC0 +/* 03A8F8 7F005DC8 9448000C */ lhu $t0, 0xc($v0) +/* 03A8FC 7F005DCC 94490002 */ lhu $t1, 2($v0) +/* 03A900 7F005DD0 5520FFFB */ bnezl $t1, .L7F005DC0 +/* 03A904 7F005DD4 9448000C */ lhu $t0, 0xc($v0) +.L7F005DD8: +/* 03A908 7F005DD8 10000002 */ b .L7F005DE4 +/* 03A90C 7F005DDC 26100008 */ addiu $s0, $s0, 8 +def_7F005A74: +.L7F005DE0: +/* 03A910 7F005DE0 26100004 */ addiu $s0, $s0, 4 +.L7F005DE4: +/* 03A914 7F005DE4 8E020000 */ lw $v0, ($s0) +/* 03A918 7F005DE8 24010009 */ li $at, 9 +/* 03A91C 7F005DEC 5441FF1C */ bnel $v0, $at, .L7F005A60 +/* 03A920 7F005DF0 2C410009 */ sltiu $at, $v0, 9 +.L7F005DF4: +/* 03A924 7F005DF4 3C028003 */ lui $v0, %hi(D_800364B8) +/* 03A928 7F005DF8 8C4264B8 */ lw $v0, %lo(D_800364B8)($v0) +/* 03A92C 7F005DFC 3C128008 */ lui $s2, %hi(pPlayer) +/* 03A930 7F005E00 2652A0B0 */ addiu $s2, %lo(pPlayer) # addiu $s2, $s2, -0x5f50 +/* 03A934 7F005E04 10400012 */ beqz $v0, .L7F005E50 +/* 03A938 7F005E08 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A93C 7F005E0C 0C002914 */ jal randomGetNext +/* 03A940 7F005E10 AC2264C0 */ sw $v0, %lo(ptr_random06cam_entry)($at) +/* 03A944 7F005E14 3C0B8003 */ lui $t3, %hi(D_800364BC) +/* 03A948 7F005E18 8D6B64BC */ lw $t3, %lo(D_800364BC)($t3) +/* 03A94C 7F005E1C 004B001B */ divu $zero, $v0, $t3 +/* 03A950 7F005E20 00001810 */ mfhi $v1 +/* 03A954 7F005E24 15600002 */ bnez $t3, .L7F005E30 +/* 03A958 7F005E28 00000000 */ nop +/* 03A95C 7F005E2C 0007000D */ break 7 +.L7F005E30: +/* 03A960 7F005E30 18600007 */ blez $v1, .L7F005E50 +.L7F005E34: +/* 03A964 7F005E34 3C0A8003 */ lui $t2, %hi(ptr_random06cam_entry) +/* 03A968 7F005E38 8D4A64C0 */ lw $t2, %lo(ptr_random06cam_entry)($t2) +/* 03A96C 7F005E3C 2463FFFF */ addiu $v1, $v1, -1 +/* 03A970 7F005E40 3C018003 */ lui $at, %hi(ptr_random06cam_entry) +/* 03A974 7F005E44 8D4C0024 */ lw $t4, 0x24($t2) +/* 03A978 7F005E48 1C60FFFA */ bgtz $v1, .L7F005E34 +/* 03A97C 7F005E4C AC2C64C0 */ sw $t4, %lo(ptr_random06cam_entry)($at) +.L7F005E50: +/* 03A980 7F005E50 0FC23122 */ jal add_item_to_inventory +/* 03A984 7F005E54 24040001 */ li $a0, 1 +/* 03A988 7F005E58 8FAD007C */ lw $t5, 0x7c($sp) +/* 03A98C 7F005E5C 44809000 */ mtc1 $zero, $f18 +/* 03A990 7F005E60 15A00003 */ bnez $t5, .L7F005E70 +/* 03A994 7F005E64 24190001 */ li $t9, 1 +/* 03A998 7F005E68 3C018008 */ lui $at, %hi(starting_right_weapon) +/* 03A99C 7F005E6C AC3999E0 */ sw $t9, %lo(starting_right_weapon)($at) +.L7F005E70: +/* 03A9A0 7F005E70 8E580000 */ lw $t8, ($s2) +/* 03A9A4 7F005E74 3C018005 */ lui $at, %hi(D_8004F1D0) +/* 03A9A8 7F005E78 44803000 */ mtc1 $zero, $f6 +/* 03A9AC 7F005E7C E7120078 */ swc1 $f18, 0x78($t8) +/* 03A9B0 7F005E80 8E4F0000 */ lw $t7, ($s2) +/* 03A9B4 7F005E84 C424F1D0 */ lwc1 $f4, %lo(D_8004F1D0)($at) +/* 03A9B8 7F005E88 3C088008 */ lui $t0, %hi(dword_CODE_bss_80079C68) +/* 03A9BC 7F005E8C E5E4007C */ swc1 $f4, 0x7c($t7) +/* 03A9C0 7F005E90 8E4E0000 */ lw $t6, ($s2) +/* 03A9C4 7F005E94 E5C60080 */ swc1 $f6, 0x80($t6) +/* 03A9C8 7F005E98 8D089C68 */ lw $t0, %lo(dword_CODE_bss_80079C68)($t0) +/* 03A9CC 7F005E9C 5900002C */ blezl $t0, .L7F005F50 +/* 03A9D0 7F005EA0 27A4008C */ addiu $a0, $sp, 0x8c +/* 03A9D4 7F005EA4 0FC26919 */ jal getPlayerCount +/* 03A9D8 7F005EA8 00000000 */ nop +/* 03A9DC 7F005EAC 28410002 */ slti $at, $v0, 2 +/* 03A9E0 7F005EB0 14200008 */ bnez $at, .L7F005ED4 +/* 03A9E4 7F005EB4 3C098008 */ lui $t1, %hi(dword_CODE_bss_80079C68) +/* 03A9E8 7F005EB8 8D299C68 */ lw $t1, %lo(dword_CODE_bss_80079C68)($t1) +/* 03A9EC 7F005EBC 59200006 */ blezl $t1, .L7F005ED8 +/* 03A9F0 7F005EC0 00001825 */ move $v1, $zero +/* 03A9F4 7F005EC4 0FC1E43C */ jal sub_GAME_7F0790F0 +/* 03A9F8 7F005EC8 00000000 */ nop +/* 03A9FC 7F005ECC 10000002 */ b .L7F005ED8 +/* 03AA00 7F005ED0 00401825 */ move $v1, $v0 +.L7F005ED4: +/* 03AA04 7F005ED4 00001825 */ move $v1, $zero +.L7F005ED8: +/* 03AA08 7F005ED8 3C0A8008 */ lui $t2, %hi(dword_CODE_bss_80079C28) +/* 03AA0C 7F005EDC 254A9C28 */ addiu $t2, %lo(dword_CODE_bss_80079C28) # addiu $t2, $t2, -0x63d8 +/* 03AA10 7F005EE0 00035880 */ sll $t3, $v1, 2 +/* 03AA14 7F005EE4 016A8821 */ addu $s1, $t3, $t2 +/* 03AA18 7F005EE8 8E300000 */ lw $s0, ($s1) +/* 03AA1C 7F005EEC C6080000 */ lwc1 $f8, ($s0) +/* 03AA20 7F005EF0 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 03AA24 7F005EF4 C60A0008 */ lwc1 $f10, 8($s0) +/* 03AA28 7F005EF8 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA2C 7F005EFC E7AA0094 */ swc1 $f10, 0x94($sp) +/* 03AA30 7F005F00 8E040028 */ lw $a0, 0x28($s0) +/* 03AA34 7F005F04 8FA60094 */ lw $a2, 0x94($sp) +/* 03AA38 7F005F08 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AA3C 7F005F0C AFA40084 */ sw $a0, 0x84($sp) +/* 03AA40 7F005F10 8E420000 */ lw $v0, ($s2) +/* 03AA44 7F005F14 46000506 */ mov.s $f20, $f0 +/* 03AA48 7F005F18 C45029BC */ lwc1 $f16, 0x29bc($v0) +/* 03AA4C 7F005F1C 46008480 */ add.s $f18, $f16, $f0 +/* 03AA50 7F005F20 E7B20090 */ swc1 $f18, 0x90($sp) +/* 03AA54 7F005F24 E4400070 */ swc1 $f0, 0x70($v0) +/* 03AA58 7F005F28 8E300000 */ lw $s0, ($s1) +/* 03AA5C 7F005F2C C60C0018 */ lwc1 $f12, 0x18($s0) +/* 03AA60 7F005F30 0FC16A8C */ jal atan2f +/* 03AA64 7F005F34 C60E0020 */ lwc1 $f14, 0x20($s0) +/* 03AA68 7F005F38 3C018005 */ lui $at, %hi(D_8004F1D4) +/* 03AA6C 7F005F3C C424F1D4 */ lwc1 $f4, %lo(D_8004F1D4)($at) +/* 03AA70 7F005F40 46002181 */ sub.s $f6, $f4, $f0 +/* 03AA74 7F005F44 10000011 */ b .L7F005F8C +/* 03AA78 7F005F48 E7A60088 */ swc1 $f6, 0x88($sp) +/* 03AA7C 7F005F4C 27A4008C */ addiu $a0, $sp, 0x8c +.L7F005F50: +/* 03AA80 7F005F50 27A50090 */ addiu $a1, $sp, 0x90 +/* 03AA84 7F005F54 27A60094 */ addiu $a2, $sp, 0x94 +/* 03AA88 7F005F58 0FC2BEDE */ jal sub_GAME_7F0AFB78 +/* 03AA8C 7F005F5C 3C0741F0 */ lui $a3, 0x41f0 +/* 03AA90 7F005F60 AFA20084 */ sw $v0, 0x84($sp) +/* 03AA94 7F005F64 00402025 */ move $a0, $v0 +/* 03AA98 7F005F68 8FA5008C */ lw $a1, 0x8c($sp) +/* 03AA9C 7F005F6C 0FC20358 */ jal sub_GAME_7F080D60 +/* 03AAA0 7F005F70 8FA60094 */ lw $a2, 0x94($sp) +/* 03AAA4 7F005F74 8E420000 */ lw $v0, ($s2) +/* 03AAA8 7F005F78 46000506 */ mov.s $f20, $f0 +/* 03AAAC 7F005F7C C44829BC */ lwc1 $f8, 0x29bc($v0) +/* 03AAB0 7F005F80 46004280 */ add.s $f10, $f8, $f0 +/* 03AAB4 7F005F84 E7AA0090 */ swc1 $f10, 0x90($sp) +/* 03AAB8 7F005F88 E4400070 */ swc1 $f0, 0x70($v0) +.L7F005F8C: +/* 03AABC 7F005F8C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 03AAC0 7F005F90 44819000 */ mtc1 $at, $f18 +/* 03AAC4 7F005F94 C7B00088 */ lwc1 $f16, 0x88($sp) +/* 03AAC8 7F005F98 3C018005 */ lui $at, %hi(D_8004F1D8) +/* 03AACC 7F005F9C C426F1D8 */ lwc1 $f6, %lo(D_8004F1D8)($at) +/* 03AAD0 7F005FA0 46128102 */ mul.s $f4, $f16, $f18 +/* 03AAD4 7F005FA4 8E4C0000 */ lw $t4, ($s2) +/* 03AAD8 7F005FA8 3C018005 */ lui $at, %hi(D_8004F1DC) +/* 03AADC 7F005FAC 27A5008C */ addiu $a1, $sp, 0x8c +/* 03AAE0 7F005FB0 46062203 */ div.s $f8, $f4, $f6 +/* 03AAE4 7F005FB4 E5880148 */ swc1 $f8, 0x148($t4) +/* 03AAE8 7F005FB8 8E4D0000 */ lw $t5, ($s2) +/* 03AAEC 7F005FBC E5B40074 */ swc1 $f20, 0x74($t5) +/* 03AAF0 7F005FC0 C42AF1DC */ lwc1 $f10, %lo(D_8004F1DC)($at) +/* 03AAF4 7F005FC4 8E590000 */ lw $t9, ($s2) +/* 03AAF8 7F005FC8 460AA403 */ div.s $f16, $f20, $f10 +/* 03AAFC 7F005FCC E730006C */ swc1 $f16, 0x6c($t9) +/* 03AB00 7F005FD0 8E440000 */ lw $a0, ($s2) +/* 03AB04 7F005FD4 8FA60084 */ lw $a2, 0x84($sp) +/* 03AB08 7F005FD8 0FC1F1CC */ jal change_player_pos_to_target +/* 03AB0C 7F005FDC 24840488 */ addiu $a0, $a0, 0x488 +/* 03AB10 7F005FE0 0FC15FAB */ jal sinf +/* 03AB14 7F005FE4 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB18 7F005FE8 8E580000 */ lw $t8, ($s2) +/* 03AB1C 7F005FEC 46000487 */ neg.s $f18, $f0 +/* 03AB20 7F005FF0 44802000 */ mtc1 $zero, $f4 +/* 03AB24 7F005FF4 E7120498 */ swc1 $f18, 0x498($t8) +/* 03AB28 7F005FF8 8E4F0000 */ lw $t7, ($s2) +/* 03AB2C 7F005FFC E5E4049C */ swc1 $f4, 0x49c($t7) +/* 03AB30 7F006000 0FC15FA8 */ jal cosf +/* 03AB34 7F006004 C7AC0088 */ lwc1 $f12, 0x88($sp) +/* 03AB38 7F006008 8E4E0000 */ lw $t6, ($s2) +/* 03AB3C 7F00600C 3C018003 */ lui $at, %hi(D_800364D0) +/* 03AB40 7F006010 E5C004A0 */ swc1 $f0, 0x4a0($t6) +/* 03AB44 7F006014 0FC225C6 */ jal sub_GAME_7F089718 +/* 03AB48 7F006018 C42C64D0 */ lwc1 $f12, %lo(D_800364D0)($at) +/* 03AB4C 7F00601C 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA0) +/* 03AB50 7F006020 AC209DA0 */ sw $zero, %lo(dword_CODE_bss_80079DA0)($at) +/* 03AB54 7F006024 3C018008 */ lui $at, %hi(dword_CODE_bss_80079DA4) +/* 03AB58 7F006028 3C028008 */ lui $v0, %hi(dword_CODE_bss_80079DA8) +/* 03AB5C 7F00602C 3C038008 */ lui $v1, %hi(dword_CODE_bss_80079DC8) +/* 03AB60 7F006030 24639DC8 */ addiu $v1, %lo(dword_CODE_bss_80079DC8) # addiu $v1, $v1, -0x6238 +/* 03AB64 7F006034 24429DA8 */ addiu $v0, %lo(dword_CODE_bss_80079DA8) # addiu $v0, $v0, -0x6258 +/* 03AB68 7F006038 AC209DA4 */ sw $zero, %lo(dword_CODE_bss_80079DA4)($at) +.L7F00603C: +/* 03AB6C 7F00603C 24420010 */ addiu $v0, $v0, 0x10 +/* 03AB70 7F006040 AC40FFF4 */ sw $zero, -0xc($v0) +/* 03AB74 7F006044 AC40FFF8 */ sw $zero, -8($v0) +/* 03AB78 7F006048 AC40FFFC */ sw $zero, -4($v0) +/* 03AB7C 7F00604C 1443FFFB */ bne $v0, $v1, .L7F00603C +/* 03AB80 7F006050 AC40FFF0 */ sw $zero, -0x10($v0) +/* 03AB84 7F006054 0FC228CC */ jal reset_intro_camera_message_dialogs_for_BONDdata +/* 03AB88 7F006058 00000000 */ nop +/* 03AB8C 7F00605C 0FC22A40 */ jal sub_GAME_7F08A900 +/* 03AB90 7F006060 00000000 */ nop +/* 03AB94 7F006064 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 03AB98 7F006068 00000000 */ nop +/* 03AB9C 7F00606C 8E480000 */ lw $t0, ($s2) +/* 03ABA0 7F006070 240A0006 */ li $t2, 6 +/* 03ABA4 7F006074 AD0200A8 */ sw $v0, 0xa8($t0) +/* 03ABA8 7F006078 8E490000 */ lw $t1, ($s2) +/* 03ABAC 7F00607C 8D2B00A8 */ lw $t3, 0xa8($t1) +/* 03ABB0 7F006080 AD600004 */ sw $zero, 4($t3) +/* 03ABB4 7F006084 8E4C0000 */ lw $t4, ($s2) +/* 03ABB8 7F006088 8D8D00A8 */ lw $t5, 0xa8($t4) +/* 03ABBC 7F00608C A1AA0000 */ sb $t2, ($t5) +/* 03ABC0 7F006090 8E590000 */ lw $t9, ($s2) +/* 03ABC4 7F006094 C7A0008C */ lwc1 $f0, 0x8c($sp) +/* 03ABC8 7F006098 E7200408 */ swc1 $f0, 0x408($t9) +/* 03ABCC 7F00609C 8E580000 */ lw $t8, ($s2) +/* 03ABD0 7F0060A0 8F0F00A8 */ lw $t7, 0xa8($t8) +/* 03ABD4 7F0060A4 E5E00008 */ swc1 $f0, 8($t7) +/* 03ABD8 7F0060A8 8E4E0000 */ lw $t6, ($s2) +/* 03ABDC 7F0060AC C7A00090 */ lwc1 $f0, 0x90($sp) +/* 03ABE0 7F0060B0 E5C0040C */ swc1 $f0, 0x40c($t6) +/* 03ABE4 7F0060B4 8E480000 */ lw $t0, ($s2) +/* 03ABE8 7F0060B8 8D0900A8 */ lw $t1, 0xa8($t0) +/* 03ABEC 7F0060BC E520000C */ swc1 $f0, 0xc($t1) +/* 03ABF0 7F0060C0 8E4B0000 */ lw $t3, ($s2) +/* 03ABF4 7F0060C4 C7A00094 */ lwc1 $f0, 0x94($sp) +/* 03ABF8 7F0060C8 E5600410 */ swc1 $f0, 0x410($t3) +/* 03ABFC 7F0060CC 8E4C0000 */ lw $t4, ($s2) +/* 03AC00 7F0060D0 8D8A00A8 */ lw $t2, 0xa8($t4) +/* 03AC04 7F0060D4 E5400010 */ swc1 $f0, 0x10($t2) +/* 03AC08 7F0060D8 8E590000 */ lw $t9, ($s2) +/* 03AC0C 7F0060DC 8FAD0084 */ lw $t5, 0x84($sp) +/* 03AC10 7F0060E0 8F3800A8 */ lw $t8, 0xa8($t9) +/* 03AC14 7F0060E4 AF0D0014 */ sw $t5, 0x14($t8) +/* 03AC18 7F0060E8 8E4F0000 */ lw $t7, ($s2) +/* 03AC1C 7F0060EC 0FC0E929 */ jal set_current_objposdata_plus_0x28 +/* 03AC20 7F0060F0 8DE400A8 */ lw $a0, 0xa8($t7) +/* 03AC24 7F0060F4 8E4E0000 */ lw $t6, ($s2) +/* 03AC28 7F0060F8 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 03AC2C 7F0060FC 8DC400A8 */ lw $a0, 0xa8($t6) +/* 03AC30 7F006100 8E420000 */ lw $v0, ($s2) +/* 03AC34 7F006104 3C018005 */ lui $at, %hi(D_8004F1E0) +/* 03AC38 7F006108 C420F1E0 */ lwc1 $f0, %lo(D_8004F1E0)($at) +/* 03AC3C 7F00610C C44604B4 */ lwc1 $f6, 0x4b4($v0) +/* 03AC40 7F006110 46003203 */ div.s $f8, $f6, $f0 +/* 03AC44 7F006114 E44803B8 */ swc1 $f8, 0x3b8($v0) +/* 03AC48 7F006118 8E420000 */ lw $v0, ($s2) +/* 03AC4C 7F00611C C44A04B8 */ lwc1 $f10, 0x4b8($v0) +/* 03AC50 7F006120 46005403 */ div.s $f16, $f10, $f0 +/* 03AC54 7F006124 E45003BC */ swc1 $f16, 0x3bc($v0) +/* 03AC58 7F006128 8E420000 */ lw $v0, ($s2) +/* 03AC5C 7F00612C C45204BC */ lwc1 $f18, 0x4bc($v0) +/* 03AC60 7F006130 46009103 */ div.s $f4, $f18, $f0 +/* 03AC64 7F006134 0FC26919 */ jal getPlayerCount +/* 03AC68 7F006138 E44403C0 */ swc1 $f4, 0x3c0($v0) +/* 03AC6C 7F00613C 24010001 */ li $at, 1 +/* 03AC70 7F006140 14410005 */ bne $v0, $at, .L7F006158 +/* 03AC74 7F006144 00000000 */ nop +/* 03AC78 7F006148 0FC1EA6E */ jal set_camera_mode +/* 03AC7C 7F00614C 24040001 */ li $a0, 1 +/* 03AC80 7F006150 10000003 */ b .L7F006160 +/* 03AC84 7F006154 00000000 */ nop +.L7F006158: +/* 03AC88 7F006158 0FC1EA6E */ jal set_camera_mode +/* 03AC8C 7F00615C 24040009 */ li $a0, 9 +.L7F006160: +/* 03AC90 7F006160 3C048003 */ lui $a0, %hi(D_800364D8) +/* 03AC94 7F006164 248464D8 */ addiu $a0, %lo(D_800364D8) # addiu $a0, $a0, 0x64d8 +/* 03AC98 7F006168 00004080 */ sll $t0, $zero, 2 +/* 03AC9C 7F00616C 00884821 */ addu $t1, $a0, $t0 +/* 03ACA0 7F006170 8D2B0000 */ lw $t3, ($t1) +/* 03ACA4 7F006174 3C038003 */ lui $v1, %hi(D_8003650C) +/* 03ACA8 7F006178 2463650C */ addiu $v1, %lo(D_8003650C) # addiu $v1, $v1, 0x650c +/* 03ACAC 7F00617C AC600000 */ sw $zero, ($v1) +/* 03ACB0 7F006180 11600009 */ beqz $t3, .L7F0061A8 +/* 03ACB4 7F006184 00001025 */ move $v0, $zero +/* 03ACB8 7F006188 244C0001 */ addiu $t4, $v0, 1 +.L7F00618C: +/* 03ACBC 7F00618C 000C5080 */ sll $t2, $t4, 2 +/* 03ACC0 7F006190 008AC821 */ addu $t9, $a0, $t2 +/* 03ACC4 7F006194 8F2D0000 */ lw $t5, ($t9) +/* 03ACC8 7F006198 AC6C0000 */ sw $t4, ($v1) +/* 03ACCC 7F00619C 01801025 */ move $v0, $t4 +/* 03ACD0 7F0061A0 55A0FFFA */ bnezl $t5, .L7F00618C +/* 03ACD4 7F0061A4 244C0001 */ addiu $t4, $v0, 1 +.L7F0061A8: +/* 03ACD8 7F0061A8 8E4F0000 */ lw $t7, ($s2) +/* 03ACDC 7F0061AC 24180001 */ li $t8, 1 +/* 03ACE0 7F0061B0 3C018003 */ lui $at, %hi(D_80036510) +/* 03ACE4 7F0061B4 ADF80420 */ sw $t8, 0x420($t7) +/* 03ACE8 7F0061B8 8E4E0000 */ lw $t6, ($s2) +/* 03ACEC 7F0061BC ADC00424 */ sw $zero, 0x424($t6) +/* 03ACF0 7F0061C0 8E480000 */ lw $t0, ($s2) +/* 03ACF4 7F0061C4 AD000428 */ sw $zero, 0x428($t0) +/* 03ACF8 7F0061C8 8FBF0034 */ lw $ra, 0x34($sp) +/* 03ACFC 7F0061CC 8FB20030 */ lw $s2, 0x30($sp) +/* 03AD00 7F0061D0 8FB1002C */ lw $s1, 0x2c($sp) +/* 03AD04 7F0061D4 8FB00028 */ lw $s0, 0x28($sp) +/* 03AD08 7F0061D8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 03AD0C 7F0061DC D7B40018 */ ldc1 $f20, 0x18($sp) +/* 03AD10 7F0061E0 AC206510 */ sw $zero, %lo(D_80036510)($at) +/* 03AD14 7F0061E4 03E00008 */ jr $ra +/* 03AD18 7F0061E8 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + + #endif diff --git a/src/game/initguards.c b/src/game/initguards.c index 03216d6..c4505ed 100644 --- a/src/game/initguards.c +++ b/src/game/initguards.c @@ -1,5 +1,6 @@ #include "ultra64.h" #include "game/chr.h" +#include "game/chrobjdata.h" void init_guards(void) { animation_rate = 1.0f; @@ -70,8 +71,19 @@ glabel alloc_init_GUARDdata_entries #ifdef NONMATCHING -void set_new_rand_head_bodies(void) { +// +void set_new_rand_head_bodies(void) +{ + s32 i; + + for (i=0; c_item_entries[i].header; i++) + { + c_item_entries[i].header->offset_obj_table = 0; + } + current_random_male_head = randomGetNext() % num_male_heads; + current_random_female_head = randomGetNext() % num_female_heads; + current_random_body = randomGetNext() % num_bodies; } #else GLOBAL_ASM( @@ -93,7 +105,7 @@ glabel set_new_rand_head_bodies /* 035AB0 7F000F80 5460FFFD */ bnezl $v1, .L7F000F78 /* 035AB4 7F000F84 AC600000 */ sw $zero, ($v1) .L7F000F88: -/* 035AB8 7F000F88 0C002914 */ jal get_random_value +/* 035AB8 7F000F88 0C002914 */ jal randomGetNext /* 035ABC 7F000F8C 00000000 */ nop /* 035AC0 7F000F90 3C188003 */ lui $t8, %hi(num_male_heads) /* 035AC4 7F000F94 8F18CD04 */ lw $t8, %lo(num_male_heads)($t8) @@ -105,7 +117,7 @@ glabel set_new_rand_head_bodies /* 035ADC 7F000FAC 00000000 */ nop /* 035AE0 7F000FB0 0007000D */ break 7 .L7F000FB4: -/* 035AE4 7F000FB4 0C002914 */ jal get_random_value +/* 035AE4 7F000FB4 0C002914 */ jal randomGetNext /* 035AE8 7F000FB8 00000000 */ nop /* 035AEC 7F000FBC 3C088003 */ lui $t0, %hi(num_female_heads) /* 035AF0 7F000FC0 8D08CD08 */ lw $t0, %lo(num_female_heads)($t0) @@ -117,7 +129,7 @@ glabel set_new_rand_head_bodies /* 035B08 7F000FD8 00000000 */ nop /* 035B0C 7F000FDC 0007000D */ break 7 .L7F000FE0: -/* 035B10 7F000FE0 0C002914 */ jal get_random_value +/* 035B10 7F000FE0 0C002914 */ jal randomGetNext /* 035B14 7F000FE4 00000000 */ nop /* 035B18 7F000FE8 3C0A8003 */ lui $t2, %hi(num_bodies) /* 035B1C 7F000FEC 8D4ACD00 */ lw $t2, %lo(num_bodies)($t2) diff --git a/src/game/inititemslots.c b/src/game/inititemslots.c index e3e4c72..b0f0424 100644 --- a/src/game/inititemslots.c +++ b/src/game/inititemslots.c @@ -1,4 +1,5 @@ #include "ultra64.h" +#include "game/unk_093880.h" #include "game/bondinv.h" @@ -44,44 +45,10 @@ glabel sub_GAME_7F0061F0 #endif -#ifdef NONMATCHING -void alloc_additional_item_slots(s32 arg0) { - // Node 0 - pPlayer->unk11E8 = (s32) (arg0 + 0x1e); - pPlayer->unk11E4 = mempAllocBytesInBank(((((pPlayer->unk11E8 * 0x14) + 0xf) | 0xf) ^ 0xf), 4); - reinit_BONDdata_inventory(); + +void alloc_additional_item_slots(s32 additionalentries) +{ + pPlayer->equipmaxitems = additionalentries + 0x1e; + pPlayer->p_itemcur = mempAllocBytesInBank((pPlayer->equipmaxitems * 0x14 + 0xfU | 0xf) ^ 0xf,'\x04'); + reinit_BONDdata_inventory(); } - -#else -GLOBAL_ASM( -.text -glabel alloc_additional_item_slots -/* 03AD8C 7F00625C 3C028008 */ lui $v0, %hi(pPlayer) -/* 03AD90 7F006260 2442A0B0 */ addiu $v0, %lo(pPlayer) # addiu $v0, $v0, -0x5f50 -/* 03AD94 7F006264 8C4F0000 */ lw $t7, ($v0) -/* 03AD98 7F006268 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03AD9C 7F00626C AFBF0014 */ sw $ra, 0x14($sp) -/* 03ADA0 7F006270 248E001E */ addiu $t6, $a0, 0x1e -/* 03ADA4 7F006274 ADEE11E8 */ sw $t6, 0x11e8($t7) -/* 03ADA8 7F006278 8C580000 */ lw $t8, ($v0) -/* 03ADAC 7F00627C 24050004 */ li $a1, 4 -/* 03ADB0 7F006280 8F0411E8 */ lw $a0, 0x11e8($t8) -/* 03ADB4 7F006284 0004C880 */ sll $t9, $a0, 2 -/* 03ADB8 7F006288 0324C821 */ addu $t9, $t9, $a0 -/* 03ADBC 7F00628C 0019C880 */ sll $t9, $t9, 2 -/* 03ADC0 7F006290 2724000F */ addiu $a0, $t9, 0xf -/* 03ADC4 7F006294 3488000F */ ori $t0, $a0, 0xf -/* 03ADC8 7F006298 0C0025C8 */ jal mempAllocBytesInBank -/* 03ADCC 7F00629C 3904000F */ xori $a0, $t0, 0xf -/* 03ADD0 7F0062A0 3C0A8008 */ lui $t2, %hi(pPlayer) -/* 03ADD4 7F0062A4 8D4AA0B0 */ lw $t2, %lo(pPlayer)($t2) -/* 03ADD8 7F0062A8 0FC22FFC */ jal reinit_BONDdata_inventory -/* 03ADDC 7F0062AC AD4211E4 */ sw $v0, 0x11e4($t2) -/* 03ADE0 7F0062B0 8FBF0014 */ lw $ra, 0x14($sp) -/* 03ADE4 7F0062B4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03ADE8 7F0062B8 03E00008 */ jr $ra -/* 03ADEC 7F0062BC 00000000 */ nop -) -#endif - - diff --git a/src/game/initmenus.c b/src/game/initmenus.c index 4f18d3c..798a5ec 100644 --- a/src/game/initmenus.c +++ b/src/game/initmenus.c @@ -1,9 +1,38 @@ #include "ultra64.h" - +#include "game/mainmenu.h" #ifdef NONMATCHING -void init_menus_or_reset(void) { +u32 mempAllocBytesInBank(u32 bytes,u8 bank); +void init_menus_or_reset(void) +{ + current_menu = ~MENU_LEGAL_SCREEN; + maybe_prev_menu = ~MENU_LEGAL_SCREEN; + screen_size = SCREEN_SIZE_320x240; + spectrum_related_flag = TRUE; + is_emulating_spectrum = FALSE; + folder_selection_screen_option_icon = 0; + folder_selected_for_deletion = -1; + folder_selected_for_deletion_choice = 1; + tab_1_highlight = FALSE; + tab_2_highlight = FALSE; + tab_3_highlight = FALSE; + maybe_is_in_menu = TRUE; + if (prev_keypresses) { + menu_update = MENU_FILE_SELECT; + } + if (menu_update < 0) { + menu_update = MENU_FILE_SELECT; + } + ptr_logo_and_walletbond_DL = (Gfx *)mempAllocBytesInBank(0x78000,'\x04'); + + //incorrect here + ptr_menu_videobuffer = (u8 *)((mempAllocBytesInBank(0x4b040,'\x04') + 0x3f) & 0xffffffc0); + ptr_folder_object_instance = 0x0; + set0_never_used = 0; + set0_never_used_0 = 0; + D_8002A968 = 0; + alloc_intro_matrices(); } #else GLOBAL_ASM( diff --git a/src/game/initmttex.c b/src/game/initmttex.c index 186e663..abbaf91 100644 --- a/src/game/initmttex.c +++ b/src/game/initmttex.c @@ -1,57 +1,14 @@ #include "ultra64.h" +#include "game/image.h" +void set_mt_tex_alloc(void) +{ + dword_CODE_bss_8008D090 = 0; + if (tokenFind(1, "-mt")) + { + bytes = strtol(tokenFind(1, "-mt"), 0x0, 0) << 10; + } -#ifdef NONMATCHING -void set_mt_tex_alloc(void) { - + sub_GAME_7F0CBAF4(&ptr_texture_alloc_start, mempAllocBytesInBank(bytes, 4), bytes); } -#else -GLOBAL_ASM( -.late_rodata -glabel str_Mt -.word 0x2d6d7400 /*-mt*/ -glabel str_Mt_0 -.word 0x2d6d7400 /*-mt*/ -.text -glabel set_mt_tex_alloc -/* 03BE50 7F007320 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03BE54 7F007324 AFBF0014 */ sw $ra, 0x14($sp) -/* 03BE58 7F007328 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D090) -/* 03BE5C 7F00732C 3C058005 */ lui $a1, %hi(str_Mt) -/* 03BE60 7F007330 AC20D090 */ sw $zero, %lo(dword_CODE_bss_8008D090)($at) -/* 03BE64 7F007334 24A5F200 */ addiu $a1, %lo(str_Mt) # addiu $a1, $a1, -0xe00 -/* 03BE68 7F007338 0C0029A8 */ jal check_token -/* 03BE6C 7F00733C 24040001 */ li $a0, 1 -/* 03BE70 7F007340 1040000B */ beqz $v0, .L7F007370 -/* 03BE74 7F007344 24040001 */ li $a0, 1 -/* 03BE78 7F007348 3C058005 */ lui $a1, %hi(str_Mt_0) -/* 03BE7C 7F00734C 0C0029A8 */ jal check_token -/* 03BE80 7F007350 24A5F204 */ addiu $a1, %lo(str_Mt_0) # addiu $a1, $a1, -0xdfc -/* 03BE84 7F007354 00402025 */ move $a0, $v0 -/* 03BE88 7F007358 00002825 */ move $a1, $zero -/* 03BE8C 7F00735C 0C002A78 */ jal strtol -/* 03BE90 7F007360 00003025 */ move $a2, $zero -/* 03BE94 7F007364 00027280 */ sll $t6, $v0, 0xa -/* 03BE98 7F007368 3C018005 */ lui $at, %hi(bytes) -/* 03BE9C 7F00736C AC2E9170 */ sw $t6, %lo(bytes)($at) -.L7F007370: -/* 03BEA0 7F007370 3C048005 */ lui $a0, %hi(bytes) -/* 03BEA4 7F007374 8C849170 */ lw $a0, %lo(bytes)($a0) -/* 03BEA8 7F007378 0C0025C8 */ jal mempAllocBytesInBank -/* 03BEAC 7F00737C 24050004 */ li $a1, 4 -/* 03BEB0 7F007380 3C048009 */ lui $a0, %hi(ptr_texture_alloc_start) -/* 03BEB4 7F007384 3C068005 */ lui $a2, %hi(bytes) -/* 03BEB8 7F007388 8CC69170 */ lw $a2, %lo(bytes)($a2) -/* 03BEBC 7F00738C 2484C720 */ addiu $a0, %lo(ptr_texture_alloc_start) # addiu $a0, $a0, -0x38e0 -/* 03BEC0 7F007390 0FC32EBD */ jal sub_GAME_7F0CBAF4 -/* 03BEC4 7F007394 00402825 */ move $a1, $v0 -/* 03BEC8 7F007398 8FBF0014 */ lw $ra, 0x14($sp) -/* 03BECC 7F00739C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03BED0 7F0073A0 03E00008 */ jr $ra -/* 03BED4 7F0073A4 00000000 */ nop -) -#endif - - - diff --git a/src/game/initobjects.c b/src/game/initobjects.c index 3df32f2..9ff0fdb 100644 --- a/src/game/initobjects.c +++ b/src/game/initobjects.c @@ -1,6 +1,7 @@ #include "ultra64.h" #include "game/initobjects.h" #include "game/chrai.h" +#include "game/chrobjhandler.h" //this file may very well be a few different sub files struct object_animation_controller ptr_monitorimageobjectanimationcontroller = {&monitor_animation_microcode, 0, 0xFFFF, 0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.5, 0.0, 0.0, 0.5, 0.5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 1.0, 0.0}; @@ -350,8 +351,10 @@ glabel reinit_between_menus #endif #ifdef NONMATCHING -void sub_GAME_7F001910(void) { - +void sub_GAME_7F001910(struct object_standard *object) +{ + object->flags2 = (u32)D_80030B00; + D_80030B00 = object; } #else GLOBAL_ASM( @@ -525,30 +528,12 @@ glabel write_monitor_ani_control_blocks ) #endif -#ifdef NONMATCHING -void initialize_temp_mine_table(void) { +void initialize_temp_mine_table(void) { + s32 i; + for (i=0; i<30; i++) + { + temp_mine_table[i] = 0; + } } -#else -GLOBAL_ASM( -.text -glabel initialize_temp_mine_table -/* 036638 7F001B08 3C018007 */ lui $at, %hi(temp_mine_table) -/* 03663C 7F001B0C AC201E00 */ sw $zero, %lo(temp_mine_table)($at) -/* 036640 7F001B10 3C018007 */ lui $at, %hi(temp_mine_table+0x4) -/* 036644 7F001B14 3C038007 */ lui $v1, %hi(temp_mine_table+0x8) -/* 036648 7F001B18 3C028007 */ lui $v0, %hi(gas_damage_flag) -/* 03664C 7F001B1C 24421E78 */ addiu $v0, %lo(gas_damage_flag) # addiu $v0, $v0, 0x1e78 -/* 036650 7F001B20 24631E08 */ addiu $v1, %lo(temp_mine_table+0x8) # addiu $v1, $v1, 0x1e08 -/* 036654 7F001B24 AC201E04 */ sw $zero, %lo(temp_mine_table+0x4)($at) -.L7F001B28: -/* 036658 7F001B28 24630010 */ addiu $v1, $v1, 0x10 -/* 03665C 7F001B2C AC60FFF4 */ sw $zero, -0xc($v1) -/* 036660 7F001B30 AC60FFF8 */ sw $zero, -8($v1) -/* 036664 7F001B34 AC60FFFC */ sw $zero, -4($v1) -/* 036668 7F001B38 1462FFFB */ bne $v1, $v0, .L7F001B28 -/* 03666C 7F001B3C AC60FFF0 */ sw $zero, -0x10($v1) -/* 036670 7F001B40 03E00008 */ jr $ra -/* 036674 7F001B44 00000000 */ nop -) -#endif + diff --git a/src/game/initunk_0073B0.c b/src/game/initunk_0073B0.c index b160506..3e8a6b5 100644 --- a/src/game/initunk_0073B0.c +++ b/src/game/initunk_0073B0.c @@ -26,8 +26,8 @@ loop_2: // Node 3 disable_sounds_attached_to_player_then_something(temp_v0->unk18); sub_GAME_7F03A538((ptr_guard_data + phi_s0)->unk18); - unset_stateflag_0x04_for_posdata((ptr_guard_data + phi_s0)->unk18); - set_last_obj_pos_data((ptr_guard_data + phi_s0)->unk18); + propHide((ptr_guard_data + phi_s0)->unk18); + propFree((ptr_guard_data + phi_s0)->unk18); phi_v1 = num_guards; } // Node 4 @@ -73,11 +73,11 @@ glabel cleanupGuardData /* 03BF38 7F007408 8F240018 */ lw $a0, 0x18($t9) /* 03BF3C 7F00740C 8E280000 */ lw $t0, ($s1) /* 03BF40 7F007410 01104821 */ addu $t1, $t0, $s0 -/* 03BF44 7F007414 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03BF44 7F007414 0FC0E905 */ jal propHide /* 03BF48 7F007418 8D240018 */ lw $a0, 0x18($t1) /* 03BF4C 7F00741C 8E2A0000 */ lw $t2, ($s1) /* 03BF50 7F007420 01505821 */ addu $t3, $t2, $s0 -/* 03BF54 7F007424 0FC0E921 */ jal set_last_obj_pos_data +/* 03BF54 7F007424 0FC0E921 */ jal propFree /* 03BF58 7F007428 8D640018 */ lw $a0, 0x18($t3) /* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(num_guards) /* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(num_guards)($v1) diff --git a/src/game/intro_logos.c b/src/game/intro_logos.c index 43397db..a6036ea 100644 --- a/src/game/intro_logos.c +++ b/src/game/intro_logos.c @@ -1,36 +1,41 @@ #include "ultra64.h" #include "bondgame.h" #include "game/intro_logos.h" +#include "game/blood_animation.h" +#include "video.h" +#include "libultra/os.h" +#include "matrixmath.h" +#include "ramrom.h" // bss //CODE.bss:80069550 s32 dword_CODE_bss_80069550; //CODE.bss:80069554 -s32 dword_CODE_bss_80069554; +Gfx *dword_CODE_bss_80069554; //CODE.bss:80069558 -s32 matrix_buffer_rarelogo_0; +Mtx *matrix_buffer_rarelogo_0; //CODE.bss:8006955C -s32 matrix_buffer_gunbarrel_0; +Mtx *matrix_buffer_gunbarrel_0; //CODE.bss:80069560 -s32 matrix_buffer_rarelogo_1; +Mtx *matrix_buffer_rarelogo_1; //CODE.bss:80069564 -s32 matrix_buffer_rarelogo_2; +Mtx *matrix_buffer_rarelogo_2; //CODE.bss:80069568 -s32 matrix_buffer_gunbarrel_1; +Mtx *matrix_buffer_gunbarrel_1; //CODE.bss:8006956C -s32 matrix_buffer_intro_backdrop; +Mtx *matrix_buffer_intro_backdrop; //CODE.bss:80069570 -s32 matrix_buffer_intro_bond; +Mtx *matrix_buffer_intro_bond; //CODE.bss:80069574 -s32 x; +f32 x; //CODE.bss:80069578 -s32 y; +f32 y; //CODE.bss:8006957C -s32 dword_CODE_bss_8006957C; +f32 dword_CODE_bss_8006957C; //CODE.bss:80069580 -s32 dword_CODE_bss_80069580; +f32 dword_CODE_bss_80069580; //CODE.bss:80069584 -s32 word_CODE_bss_80069584; +s16 word_CODE_bss_80069584; //CODE.bss:80069588 s32 dword_CODE_bss_80069588; //CODE.bss:8006958C @@ -45,13 +50,8 @@ s32 dword_CODE_bss_80069594; u32 D_8002A7D0 = 0; u8 D_8002A7D4 = 0x3; u32 D_8002A7D8 = 0; -u32 D_8002A7DC = 0; -u32 D_8002A7E0 = 0; -u32 D_8002A7E4 = 0; - -u32 D_8002A7E8 = 0xFF; -u32 D_8002A7EC = 0xFF; -u32 D_8002A7F0 = 0xFF; +s32 D_8002A7DC[3] = {0x00, 0x00, 0x00}; +s32 D_8002A7E8[3] = {0xFF, 0xFF, 0xFF}; u32 D_8002A7F4 = 0; u32 D_8002A7F8 = 0; u32 D_8002A7FC = 0; @@ -71,35 +71,16 @@ u32 D_8002A82C = 0; u32 D_8002A830 = 0; u32 D_8002A834 = 0; u32 D_8002A838 = 0; -f32 D_8002A83C = 1758.2957f; -f32 D_8002A840 = 220.0f; -f32 D_8002A844 = 684.28143f; -f32 D_8002A848 = -0.97f; -u32 D_8002A84C = 0; -f32 D_8002A850 = 0.24f; -u32 D_8002A854 = 0; -f32 D_8002A858 = 1.0f; -u32 D_8002A85C = 0x80000000; -struct rgba_val D_8002A860 = {0xDC, 0xDC, 0xDC, 0}; -struct rgba_val D_8002A864 = {0xDC, 0xDC, 0xDC, 0}; -struct rgba_val D_8002A868 = {0xFF, 0xFF, 0xFF, 0}; -struct rgba_val D_8002A86C = {0xFF, 0xFF, 0xFF, 0}; -struct rgba_val D_8002A870 = {0x00, 0x7F, 0x00, 0}; -u32 D_8002A874 = 0; - -u32 D_8002A878 = 0; -u32 D_8002A87C = 0; -f32 D_8002A880 = 4883.0f; -u32 D_8002A884 = 0; -u32 D_8002A888 = 0; -f32 D_8002A88C = -1.0f; -u32 D_8002A890 = 0; -f32 D_8002A894 = 1.0f; -u32 D_8002A898 = 0; - +f32 D_8002A83C[3] = {1758.2957f, 220.0f, 684.28143f}; +f32 D_8002A848[3] = {-0.97f, 0.0f, 0.24f}; +f32 D_8002A854[3] = {0.0f, 1.0f, -0.0f}; +Lights1 D_8002A860 = gdSPDefLights1(0xDC, 0xDC, 0xDC, 0xFF, 0xFF, 0xFF, 0x00, 0x7F, 0x00); +f32 D_8002A878[3] = {0.0f, 0.0f, 4883.0f}; +f32 D_8002A884[3] = {0.0f, 0.0f, -1.0f}; +f32 D_8002A890[3] = {0.0f, 1.0f, 0.0f}; f32 D_8002A89C = 0.0f; -u32 intro_eye_counter = 0; +s32 intro_eye_counter = 0; u32 intro_state_blood_animation = 0; u32 D_8002A8A8 = 0; u32 D_8002A8AC = 0; @@ -110,404 +91,86 @@ u32 D_8002A8B0 = 0; .word 0 */ +extern Gfx *D_01000000; +extern Gfx *D_01000040; +Gfx *something_with_gunbarrel_and_rareware_logo_matrix_manip(Gfx *gdl) { + guTranslate(&matrix_buffer_rarelogo_2[D_8002A7D0], x, y, -5.0f); + guTranslate(&matrix_buffer_gunbarrel_1[D_8002A7D0], dword_CODE_bss_8006957C, dword_CODE_bss_80069580, -5.0f); + gSPDisplayList(gdl++, &D_01000000); + gdl = sub_GAME_7F01C1A4(insert_imageDL(gdl)); + + gDPSetCombineMode(gdl++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(gdl++, 0, 0, 0xE6, 0xE6, 0xE6, 0x00); + gSPDisplayList(gdl++, OS_K0_TO_PHYSICAL(dword_CODE_bss_80069554)); + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_gunbarrel_1[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW)); + gSPDisplayList(gdl++, OS_K0_TO_PHYSICAL(dword_CODE_bss_80069554)); + + return gdl; +} + +Gfx *insert_sight_backdrop_eye_intro(Gfx *gdl) { + guTranslate(&matrix_buffer_rarelogo_2[D_8002A7D0], x + 768.0f, y - 40.0f, -5.0f); + guScale(&matrix_buffer_gunbarrel_1[D_8002A7D0], 2.7f, 2.57f, 1.0f); + gSPDisplayList(gdl++, &D_01000000); + gSPDisplayList(gdl++, &D_01000040); + + gdl = sub_GAME_7F01C1A4(gdl); + + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_gunbarrel_1[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW)); + gSPDisplayList(gdl++, OS_K0_TO_PHYSICAL(dword_CODE_bss_80069554)); + + return gdl; +} + +Gfx *sub_GAME_7F01B240(Gfx*, s32, s32, s32[3], s32[3]); +Gfx *sub_GAME_7F007CC8(Gfx *gdl, s32 arg1, s32 arg2[3], s32 arg3[3]) { + gDPSetRenderMode(gdl++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + gDPSetCycleType(gdl++, G_CYC_1CYCLE); + gDPSetTexturePersp(gdl++, G_TP_NONE); + gDPSetTextureFilter(gdl++, G_TF_POINT); + gDPPipeSync(gdl++); + + return sub_GAME_7F01B240(gdl, OS_K0_TO_PHYSICAL(dword_CODE_bss_8006958C), arg1, arg2, arg3); +} + +f32 truncf(f32); +Gfx *insert_sniper_sight_eye_intro(Gfx *gdl) { + s32 sp3C[3] = D_8002A7DC; + s32 sp30[3] = D_8002A7E8; + + gSPDisplayList(gdl++, &D_01000000); + + gdl = insert_imageDL(gdl); + + gDPSetCombineMode(gdl++, G_CC_MODULATEI_PRIM, G_CC_MODULATEI_PRIM); + + return sub_GAME_7F007CC8(gdl, truncf((viGetX() * x) / 1280.0f), sp3C, sp30); +} + +Gfx *sub_GAME_7F01C1A4(Gfx *gdl); +Gfx *sub_GAME_7F007E70(Gfx *gdl, u32 alpha) { + gdl = sub_GAME_7F01C1A4(gdl); + + gDPSetRenderMode(gdl++, G_RM_CLD_SURF, G_RM_CLD_SURF2); + gDPSetCombineMode(gdl++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(gdl++, 0, 0, 0x00, 0x00, 0x00, alpha); + gDPSetColorDither(gdl++, G_CD_MAGICSQ); + gDPFillRectangle(gdl++, 0, 0, viGetX(), viGetY()); + + return gdl; +} #ifdef NONMATCHING -void something_with_gunbarrel_and_rareware_logo_matrix_manip(void) { - -} -#else -GLOBAL_ASM( -.text -glabel something_with_gunbarrel_and_rareware_logo_matrix_manip -/* 03C570 7F007A40 3C0E8003 */ lui $t6, %hi(D_8002A7D0) -/* 03C574 7F007A44 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) -/* 03C578 7F007A48 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 03C57C 7F007A4C 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) -/* 03C580 7F007A50 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) -/* 03C584 7F007A54 AFB00018 */ sw $s0, 0x18($sp) -/* 03C588 7F007A58 00808025 */ move $s0, $a0 -/* 03C58C 7F007A5C AFBF001C */ sw $ra, 0x1c($sp) -/* 03C590 7F007A60 3C058007 */ lui $a1, %hi(x) -/* 03C594 7F007A64 3C068007 */ lui $a2, %hi(y) -/* 03C598 7F007A68 000E7980 */ sll $t7, $t6, 6 -/* 03C59C 7F007A6C 8CC69578 */ lw $a2, %lo(y)($a2) -/* 03C5A0 7F007A70 8CA59574 */ lw $a1, %lo(x)($a1) -/* 03C5A4 7F007A74 3C07C0A0 */ lui $a3, 0xc0a0 -/* 03C5A8 7F007A78 0C005B46 */ jal guTranslate -/* 03C5AC 7F007A7C 01F82021 */ addu $a0, $t7, $t8 -/* 03C5B0 7F007A80 3C198003 */ lui $t9, %hi(D_8002A7D0) -/* 03C5B4 7F007A84 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) -/* 03C5B8 7F007A88 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) -/* 03C5BC 7F007A8C 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) -/* 03C5C0 7F007A90 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006957C) -/* 03C5C4 7F007A94 3C068007 */ lui $a2, %hi(dword_CODE_bss_80069580) -/* 03C5C8 7F007A98 00194180 */ sll $t0, $t9, 6 -/* 03C5CC 7F007A9C 8CC69580 */ lw $a2, %lo(dword_CODE_bss_80069580)($a2) -/* 03C5D0 7F007AA0 8CA5957C */ lw $a1, %lo(dword_CODE_bss_8006957C)($a1) -/* 03C5D4 7F007AA4 3C07C0A0 */ lui $a3, 0xc0a0 -/* 03C5D8 7F007AA8 0C005B46 */ jal guTranslate -/* 03C5DC 7F007AAC 01092021 */ addu $a0, $t0, $t1 -/* 03C5E0 7F007AB0 3C0B0100 */ lui $t3, 0x100 -/* 03C5E4 7F007AB4 256B0000 */ addiu $t3, $t3, 0 -/* 03C5E8 7F007AB8 02001025 */ move $v0, $s0 -/* 03C5EC 7F007ABC 3C0A0600 */ lui $t2, 0x600 -/* 03C5F0 7F007AC0 AC4A0000 */ sw $t2, ($v0) -/* 03C5F4 7F007AC4 AC4B0004 */ sw $t3, 4($v0) -/* 03C5F8 7F007AC8 0FC07034 */ jal insert_imageDL -/* 03C5FC 7F007ACC 26040008 */ addiu $a0, $s0, 8 -/* 03C600 7F007AD0 0FC07069 */ jal sub_GAME_7F01C1A4 -/* 03C604 7F007AD4 00402025 */ move $a0, $v0 -/* 03C608 7F007AD8 3C0CFCFF */ lui $t4, (0xFCFFFFFF >> 16) # lui $t4, 0xfcff -/* 03C60C 7F007ADC 3C0DFFFD */ lui $t5, (0xFFFDF6FB >> 16) # lui $t5, 0xfffd -/* 03C610 7F007AE0 3C0FE6E6 */ lui $t7, (0xE6E6E600 >> 16) # lui $t7, 0xe6e6 -/* 03C614 7F007AE4 35ADF6FB */ ori $t5, (0xFFFDF6FB & 0xFFFF) # ori $t5, $t5, 0xf6fb -/* 03C618 7F007AE8 358CFFFF */ ori $t4, (0xFCFFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff -/* 03C61C 7F007AEC 35EFE600 */ ori $t7, (0xE6E6E600 & 0xFFFF) # ori $t7, $t7, 0xe600 -/* 03C620 7F007AF0 3C0EFA00 */ lui $t6, 0xfa00 -/* 03C624 7F007AF4 3C180600 */ lui $t8, 0x600 -/* 03C628 7F007AF8 AC4C0000 */ sw $t4, ($v0) -/* 03C62C 7F007AFC AC4D0004 */ sw $t5, 4($v0) -/* 03C630 7F007B00 AC4E0008 */ sw $t6, 8($v0) -/* 03C634 7F007B04 AC4F000C */ sw $t7, 0xc($v0) -/* 03C638 7F007B08 AC580010 */ sw $t8, 0x10($v0) -/* 03C63C 7F007B0C 3C198007 */ lui $t9, %hi(dword_CODE_bss_80069554) -/* 03C640 7F007B10 8F399554 */ lw $t9, %lo(dword_CODE_bss_80069554)($t9) -/* 03C644 7F007B14 3C018000 */ lui $at, 0x8000 -/* 03C648 7F007B18 24490018 */ addiu $t1, $v0, 0x18 -/* 03C64C 7F007B1C 03214021 */ addu $t0, $t9, $at -/* 03C650 7F007B20 AC480014 */ sw $t0, 0x14($v0) -/* 03C654 7F007B24 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 -/* 03C658 7F007B28 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 -/* 03C65C 7F007B2C AFA90024 */ sw $t1, 0x24($sp) -/* 03C660 7F007B30 AC4A0018 */ sw $t2, 0x18($v0) -/* 03C664 7F007B34 3C0B8003 */ lui $t3, %hi(D_8002A7D0) -/* 03C668 7F007B38 8D6BA7D0 */ lw $t3, %lo(D_8002A7D0)($t3) -/* 03C66C 7F007B3C 3C0D8007 */ lui $t5, %hi(matrix_buffer_gunbarrel_1) -/* 03C670 7F007B40 8DAD9568 */ lw $t5, %lo(matrix_buffer_gunbarrel_1)($t5) -/* 03C674 7F007B44 000B6180 */ sll $t4, $t3, 6 -/* 03C678 7F007B48 24500020 */ addiu $s0, $v0, 0x20 -/* 03C67C 7F007B4C 0C003A2C */ jal osVirtualToPhysical -/* 03C680 7F007B50 018D2021 */ addu $a0, $t4, $t5 -/* 03C684 7F007B54 8FAE0024 */ lw $t6, 0x24($sp) -/* 03C688 7F007B58 02001825 */ move $v1, $s0 -/* 03C68C 7F007B5C 3C0F0600 */ lui $t7, 0x600 -/* 03C690 7F007B60 ADC20004 */ sw $v0, 4($t6) -/* 03C694 7F007B64 AC6F0000 */ sw $t7, ($v1) -/* 03C698 7F007B68 3C188007 */ lui $t8, %hi(dword_CODE_bss_80069554) -/* 03C69C 7F007B6C 8F189554 */ lw $t8, %lo(dword_CODE_bss_80069554)($t8) -/* 03C6A0 7F007B70 3C018000 */ lui $at, 0x8000 -/* 03C6A4 7F007B74 26020008 */ addiu $v0, $s0, 8 -/* 03C6A8 7F007B78 0301C821 */ addu $t9, $t8, $at -/* 03C6AC 7F007B7C AC790004 */ sw $t9, 4($v1) -/* 03C6B0 7F007B80 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C6B4 7F007B84 8FB00018 */ lw $s0, 0x18($sp) -/* 03C6B8 7F007B88 27BD0038 */ addiu $sp, $sp, 0x38 -/* 03C6BC 7F007B8C 03E00008 */ jr $ra -/* 03C6C0 7F007B90 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void insert_sight_backdrop_eye_intro(void) { - -} -#else -GLOBAL_ASM( -.text -glabel insert_sight_backdrop_eye_intro -/* 03C6C4 7F007B94 3C018007 */ lui $at, %hi(x) -/* 03C6C8 7F007B98 C4249574 */ lwc1 $f4, %lo(x)($at) -/* 03C6CC 7F007B9C 3C014440 */ li $at, 0x44400000 # 768.000000 -/* 03C6D0 7F007BA0 44813000 */ mtc1 $at, $f6 -/* 03C6D4 7F007BA4 3C018007 */ lui $at, %hi(y) -/* 03C6D8 7F007BA8 C42A9578 */ lwc1 $f10, %lo(y)($at) -/* 03C6DC 7F007BAC 3C014220 */ li $at, 0x42200000 # 40.000000 -/* 03C6E0 7F007BB0 44818000 */ mtc1 $at, $f16 -/* 03C6E4 7F007BB4 46062200 */ add.s $f8, $f4, $f6 -/* 03C6E8 7F007BB8 3C0E8003 */ lui $t6, %hi(D_8002A7D0) -/* 03C6EC 7F007BBC 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) -/* 03C6F0 7F007BC0 46105481 */ sub.s $f18, $f10, $f16 -/* 03C6F4 7F007BC4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 03C6F8 7F007BC8 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_2) -/* 03C6FC 7F007BCC 8F189564 */ lw $t8, %lo(matrix_buffer_rarelogo_2)($t8) -/* 03C700 7F007BD0 AFB00018 */ sw $s0, 0x18($sp) -/* 03C704 7F007BD4 00808025 */ move $s0, $a0 -/* 03C708 7F007BD8 AFBF001C */ sw $ra, 0x1c($sp) -/* 03C70C 7F007BDC 44069000 */ mfc1 $a2, $f18 -/* 03C710 7F007BE0 44054000 */ mfc1 $a1, $f8 -/* 03C714 7F007BE4 000E7980 */ sll $t7, $t6, 6 -/* 03C718 7F007BE8 3C07C0A0 */ lui $a3, 0xc0a0 -/* 03C71C 7F007BEC 0C005B46 */ jal guTranslate -/* 03C720 7F007BF0 01F82021 */ addu $a0, $t7, $t8 -/* 03C724 7F007BF4 3C198003 */ lui $t9, %hi(D_8002A7D0) -/* 03C728 7F007BF8 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) -/* 03C72C 7F007BFC 3C098007 */ lui $t1, %hi(matrix_buffer_gunbarrel_1) -/* 03C730 7F007C00 8D299568 */ lw $t1, %lo(matrix_buffer_gunbarrel_1)($t1) -/* 03C734 7F007C04 3C05402C */ lui $a1, (0x402CCCCD >> 16) # lui $a1, 0x402c -/* 03C738 7F007C08 3C064024 */ lui $a2, (0x40247AE1 >> 16) # lui $a2, 0x4024 -/* 03C73C 7F007C0C 00194180 */ sll $t0, $t9, 6 -/* 03C740 7F007C10 34C67AE1 */ ori $a2, (0x40247AE1 & 0xFFFF) # ori $a2, $a2, 0x7ae1 -/* 03C744 7F007C14 34A5CCCD */ ori $a1, (0x402CCCCD & 0xFFFF) # ori $a1, $a1, 0xcccd -/* 03C748 7F007C18 3C073F80 */ lui $a3, 0x3f80 -/* 03C74C 7F007C1C 0C005BB9 */ jal guScale -/* 03C750 7F007C20 01092021 */ addu $a0, $t0, $t1 -/* 03C754 7F007C24 02001025 */ move $v0, $s0 -/* 03C758 7F007C28 3C0A0100 */ lui $t2, 0x100 -/* 03C75C 7F007C2C 3C050600 */ lui $a1, 0x600 -/* 03C760 7F007C30 254A0000 */ addiu $t2, $t2, 0 -/* 03C764 7F007C34 26030008 */ addiu $v1, $s0, 8 -/* 03C768 7F007C38 3C0B0100 */ lui $t3, 0x100 -/* 03C76C 7F007C3C AC4A0004 */ sw $t2, 4($v0) -/* 03C770 7F007C40 AC450000 */ sw $a1, ($v0) -/* 03C774 7F007C44 256B0040 */ addiu $t3, $t3, 0x40 -/* 03C778 7F007C48 AC6B0004 */ sw $t3, 4($v1) -/* 03C77C 7F007C4C AC650000 */ sw $a1, ($v1) -/* 03C780 7F007C50 0FC07069 */ jal sub_GAME_7F01C1A4 -/* 03C784 7F007C54 24640008 */ addiu $a0, $v1, 8 -/* 03C788 7F007C58 3C0C0100 */ lui $t4, (0x01000040 >> 16) # lui $t4, 0x100 -/* 03C78C 7F007C5C 358C0040 */ ori $t4, (0x01000040 & 0xFFFF) # ori $t4, $t4, 0x40 -/* 03C790 7F007C60 AFA20024 */ sw $v0, 0x24($sp) -/* 03C794 7F007C64 AC4C0000 */ sw $t4, ($v0) -/* 03C798 7F007C68 3C0D8003 */ lui $t5, %hi(D_8002A7D0) -/* 03C79C 7F007C6C 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) -/* 03C7A0 7F007C70 3C0F8007 */ lui $t7, %hi(matrix_buffer_gunbarrel_1) -/* 03C7A4 7F007C74 8DEF9568 */ lw $t7, %lo(matrix_buffer_gunbarrel_1)($t7) -/* 03C7A8 7F007C78 000D7180 */ sll $t6, $t5, 6 -/* 03C7AC 7F007C7C 24500008 */ addiu $s0, $v0, 8 -/* 03C7B0 7F007C80 0C003A2C */ jal osVirtualToPhysical -/* 03C7B4 7F007C84 01CF2021 */ addu $a0, $t6, $t7 -/* 03C7B8 7F007C88 8FB80024 */ lw $t8, 0x24($sp) -/* 03C7BC 7F007C8C 02001825 */ move $v1, $s0 -/* 03C7C0 7F007C90 3C190600 */ lui $t9, 0x600 -/* 03C7C4 7F007C94 AF020004 */ sw $v0, 4($t8) -/* 03C7C8 7F007C98 AC790000 */ sw $t9, ($v1) -/* 03C7CC 7F007C9C 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069554) -/* 03C7D0 7F007CA0 8D089554 */ lw $t0, %lo(dword_CODE_bss_80069554)($t0) -/* 03C7D4 7F007CA4 3C018000 */ lui $at, 0x8000 -/* 03C7D8 7F007CA8 26020008 */ addiu $v0, $s0, 8 -/* 03C7DC 7F007CAC 01014821 */ addu $t1, $t0, $at -/* 03C7E0 7F007CB0 AC690004 */ sw $t1, 4($v1) -/* 03C7E4 7F007CB4 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C7E8 7F007CB8 8FB00018 */ lw $s0, 0x18($sp) -/* 03C7EC 7F007CBC 27BD0030 */ addiu $sp, $sp, 0x30 -/* 03C7F0 7F007CC0 03E00008 */ jr $ra -/* 03C7F4 7F007CC4 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F007CC8(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F007CC8 -/* 03C7F8 7F007CC8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 03C7FC 7F007CCC 00801025 */ move $v0, $a0 -/* 03C800 7F007CD0 AFBF001C */ sw $ra, 0x1c($sp) -/* 03C804 7F007CD4 AFA50024 */ sw $a1, 0x24($sp) -/* 03C808 7F007CD8 AFA60028 */ sw $a2, 0x28($sp) -/* 03C80C 7F007CDC AFA7002C */ sw $a3, 0x2c($sp) -/* 03C810 7F007CE0 24840008 */ addiu $a0, $a0, 8 -/* 03C814 7F007CE4 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 03C818 7F007CE8 3C0F0F0A */ lui $t7, (0x0F0A4000 >> 16) # lui $t7, 0xf0a -/* 03C81C 7F007CEC 35EF4000 */ ori $t7, (0x0F0A4000 & 0xFFFF) # ori $t7, $t7, 0x4000 -/* 03C820 7F007CF0 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 03C824 7F007CF4 00801825 */ move $v1, $a0 -/* 03C828 7F007CF8 AC4E0000 */ sw $t6, ($v0) -/* 03C82C 7F007CFC AC4F0004 */ sw $t7, 4($v0) -/* 03C830 7F007D00 24840008 */ addiu $a0, $a0, 8 -/* 03C834 7F007D04 3C18BA00 */ lui $t8, (0xBA001402 >> 16) # lui $t8, 0xba00 -/* 03C838 7F007D08 37181402 */ ori $t8, (0xBA001402 & 0xFFFF) # ori $t8, $t8, 0x1402 -/* 03C83C 7F007D0C 00804025 */ move $t0, $a0 -/* 03C840 7F007D10 AC780000 */ sw $t8, ($v1) -/* 03C844 7F007D14 AC600004 */ sw $zero, 4($v1) -/* 03C848 7F007D18 24840008 */ addiu $a0, $a0, 8 -/* 03C84C 7F007D1C 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 -/* 03C850 7F007D20 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 -/* 03C854 7F007D24 00804825 */ move $t1, $a0 -/* 03C858 7F007D28 AD190000 */ sw $t9, ($t0) -/* 03C85C 7F007D2C AD000004 */ sw $zero, 4($t0) -/* 03C860 7F007D30 3C0BBA00 */ lui $t3, (0xBA000C02 >> 16) # lui $t3, 0xba00 -/* 03C864 7F007D34 356B0C02 */ ori $t3, (0xBA000C02 & 0xFFFF) # ori $t3, $t3, 0xc02 -/* 03C868 7F007D38 24840008 */ addiu $a0, $a0, 8 -/* 03C86C 7F007D3C AD2B0000 */ sw $t3, ($t1) -/* 03C870 7F007D40 AD200004 */ sw $zero, 4($t1) -/* 03C874 7F007D44 00805025 */ move $t2, $a0 -/* 03C878 7F007D48 3C0CE700 */ lui $t4, 0xe700 -/* 03C87C 7F007D4C AD4C0000 */ sw $t4, ($t2) -/* 03C880 7F007D50 AD400004 */ sw $zero, 4($t2) -/* 03C884 7F007D54 3C058007 */ lui $a1, %hi(dword_CODE_bss_8006958C) -/* 03C888 7F007D58 8CA5958C */ lw $a1, %lo(dword_CODE_bss_8006958C)($a1) -/* 03C88C 7F007D5C 8FAD002C */ lw $t5, 0x2c($sp) -/* 03C890 7F007D60 3C018000 */ lui $at, 0x8000 -/* 03C894 7F007D64 24840008 */ addiu $a0, $a0, 8 -/* 03C898 7F007D68 8FA70028 */ lw $a3, 0x28($sp) -/* 03C89C 7F007D6C 8FA60024 */ lw $a2, 0x24($sp) -/* 03C8A0 7F007D70 00A12821 */ addu $a1, $a1, $at -/* 03C8A4 7F007D74 0FC06C90 */ jal sub_GAME_7F01B240 -/* 03C8A8 7F007D78 AFAD0010 */ sw $t5, 0x10($sp) -/* 03C8AC 7F007D7C 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C8B0 7F007D80 27BD0020 */ addiu $sp, $sp, 0x20 -/* 03C8B4 7F007D84 03E00008 */ jr $ra -/* 03C8B8 7F007D88 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void insert_sniper_sight_eye_intro(void) { - -} -#else -GLOBAL_ASM( -.text -glabel insert_sniper_sight_eye_intro -/* 03C8BC 7F007D8C 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 03C8C0 7F007D90 3C0F8003 */ lui $t7, %hi(D_8002A7DC) -/* 03C8C4 7F007D94 AFBF001C */ sw $ra, 0x1c($sp) -/* 03C8C8 7F007D98 AFB00018 */ sw $s0, 0x18($sp) -/* 03C8CC 7F007D9C 25EFA7DC */ addiu $t7, %lo(D_8002A7DC) # addiu $t7, $t7, -0x5824 -/* 03C8D0 7F007DA0 8DE10000 */ lw $at, ($t7) -/* 03C8D4 7F007DA4 27AE003C */ addiu $t6, $sp, 0x3c -/* 03C8D8 7F007DA8 8DE80004 */ lw $t0, 4($t7) -/* 03C8DC 7F007DAC ADC10000 */ sw $at, ($t6) -/* 03C8E0 7F007DB0 8DE10008 */ lw $at, 8($t7) -/* 03C8E4 7F007DB4 3C0A8003 */ lui $t2, %hi(D_8002A7E8) -/* 03C8E8 7F007DB8 254AA7E8 */ addiu $t2, %lo(D_8002A7E8) # addiu $t2, $t2, -0x5818 -/* 03C8EC 7F007DBC ADC80004 */ sw $t0, 4($t6) -/* 03C8F0 7F007DC0 ADC10008 */ sw $at, 8($t6) -/* 03C8F4 7F007DC4 8D410000 */ lw $at, ($t2) -/* 03C8F8 7F007DC8 27A90030 */ addiu $t1, $sp, 0x30 -/* 03C8FC 7F007DCC 8D4D0004 */ lw $t5, 4($t2) -/* 03C900 7F007DD0 AD210000 */ sw $at, ($t1) -/* 03C904 7F007DD4 8D410008 */ lw $at, 8($t2) -/* 03C908 7F007DD8 3C180100 */ lui $t8, 0x100 -/* 03C90C 7F007DDC AD2D0004 */ sw $t5, 4($t1) -/* 03C910 7F007DE0 AD210008 */ sw $at, 8($t1) -/* 03C914 7F007DE4 27180000 */ addiu $t8, $t8, 0 -/* 03C918 7F007DE8 3C190600 */ lui $t9, 0x600 -/* 03C91C 7F007DEC AC990000 */ sw $t9, ($a0) -/* 03C920 7F007DF0 AC980004 */ sw $t8, 4($a0) -/* 03C924 7F007DF4 24900008 */ addiu $s0, $a0, 8 -/* 03C928 7F007DF8 0FC07034 */ jal insert_imageDL -/* 03C92C 7F007DFC 02002025 */ move $a0, $s0 -/* 03C930 7F007E00 3C0EFC11 */ lui $t6, (0xFC11FE23 >> 16) # lui $t6, 0xfc11 -/* 03C934 7F007E04 35CEFE23 */ ori $t6, (0xFC11FE23 & 0xFFFF) # ori $t6, $t6, 0xfe23 -/* 03C938 7F007E08 240FF7FB */ li $t7, -2053 -/* 03C93C 7F007E0C AC4F0004 */ sw $t7, 4($v0) -/* 03C940 7F007E10 AC4E0000 */ sw $t6, ($v0) -/* 03C944 7F007E14 0C001107 */ jal get_video2_settings_txtClipW -/* 03C948 7F007E18 24500008 */ addiu $s0, $v0, 8 -/* 03C94C 7F007E1C 44822000 */ mtc1 $v0, $f4 -/* 03C950 7F007E20 3C018007 */ lui $at, %hi(x) -/* 03C954 7F007E24 C4289574 */ lwc1 $f8, %lo(x)($at) -/* 03C958 7F007E28 468021A0 */ cvt.s.w $f6, $f4 -/* 03C95C 7F007E2C 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 -/* 03C960 7F007E30 44818000 */ mtc1 $at, $f16 -/* 03C964 7F007E34 46083282 */ mul.s $f10, $f6, $f8 -/* 03C968 7F007E38 0FC170D8 */ jal truncf -/* 03C96C 7F007E3C 46105303 */ div.s $f12, $f10, $f16 -/* 03C970 7F007E40 4600048D */ trunc.w.s $f18, $f0 -/* 03C974 7F007E44 02002025 */ move $a0, $s0 -/* 03C978 7F007E48 27A6003C */ addiu $a2, $sp, 0x3c -/* 03C97C 7F007E4C 27A70030 */ addiu $a3, $sp, 0x30 -/* 03C980 7F007E50 44059000 */ mfc1 $a1, $f18 -/* 03C984 7F007E54 0FC01F32 */ jal sub_GAME_7F007CC8 -/* 03C988 7F007E58 00000000 */ nop -/* 03C98C 7F007E5C 8FBF001C */ lw $ra, 0x1c($sp) -/* 03C990 7F007E60 8FB00018 */ lw $s0, 0x18($sp) -/* 03C994 7F007E64 27BD0048 */ addiu $sp, $sp, 0x48 -/* 03C998 7F007E68 03E00008 */ jr $ra -/* 03C99C 7F007E6C 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F007E70(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F007E70 -/* 03C9A0 7F007E70 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 03C9A4 7F007E74 AFBF0014 */ sw $ra, 0x14($sp) -/* 03C9A8 7F007E78 0FC07069 */ jal sub_GAME_7F01C1A4 -/* 03C9AC 7F007E7C AFA50034 */ sw $a1, 0x34($sp) -/* 03C9B0 7F007E80 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900 -/* 03C9B4 7F007E84 3C0F0050 */ lui $t7, (0x00504340 >> 16) # lui $t7, 0x50 -/* 03C9B8 7F007E88 3C18FCFF */ lui $t8, (0xFCFFFFFF >> 16) # lui $t8, 0xfcff -/* 03C9BC 7F007E8C 3C19FFFD */ lui $t9, (0xFFFDF6FB >> 16) # lui $t9, 0xfffd -/* 03C9C0 7F007E90 35EF4340 */ ori $t7, (0x00504340 & 0xFFFF) # ori $t7, $t7, 0x4340 -/* 03C9C4 7F007E94 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d -/* 03C9C8 7F007E98 3739F6FB */ ori $t9, (0xFFFDF6FB & 0xFFFF) # ori $t9, $t9, 0xf6fb -/* 03C9CC 7F007E9C 3718FFFF */ ori $t8, (0xFCFFFFFF & 0xFFFF) # ori $t8, $t8, 0xffff -/* 03C9D0 7F007EA0 3C08FA00 */ lui $t0, 0xfa00 -/* 03C9D4 7F007EA4 AC4E0000 */ sw $t6, ($v0) -/* 03C9D8 7F007EA8 AC4F0004 */ sw $t7, 4($v0) -/* 03C9DC 7F007EAC AC580008 */ sw $t8, 8($v0) -/* 03C9E0 7F007EB0 AC59000C */ sw $t9, 0xc($v0) -/* 03C9E4 7F007EB4 AC480010 */ sw $t0, 0x10($v0) -/* 03C9E8 7F007EB8 8FA90034 */ lw $t1, 0x34($sp) -/* 03C9EC 7F007EBC 3C0BBA00 */ lui $t3, (0xBA000602 >> 16) # lui $t3, 0xba00 -/* 03C9F0 7F007EC0 356B0602 */ ori $t3, (0xBA000602 & 0xFFFF) # ori $t3, $t3, 0x602 -/* 03C9F4 7F007EC4 312A00FF */ andi $t2, $t1, 0xff -/* 03C9F8 7F007EC8 AC4A0014 */ sw $t2, 0x14($v0) -/* 03C9FC 7F007ECC AC4B0018 */ sw $t3, 0x18($v0) -/* 03CA00 7F007ED0 AC40001C */ sw $zero, 0x1c($v0) -/* 03CA04 7F007ED4 244C0020 */ addiu $t4, $v0, 0x20 -/* 03CA08 7F007ED8 244D0028 */ addiu $t5, $v0, 0x28 -/* 03CA0C 7F007EDC AFAD0030 */ sw $t5, 0x30($sp) -/* 03CA10 7F007EE0 0C001107 */ jal get_video2_settings_txtClipW -/* 03CA14 7F007EE4 AFAC001C */ sw $t4, 0x1c($sp) -/* 03CA18 7F007EE8 0C00110B */ jal get_video2_settings_txtClipH -/* 03CA1C 7F007EEC A7A2001A */ sh $v0, 0x1a($sp) -/* 03CA20 7F007EF0 87B9001A */ lh $t9, 0x1a($sp) -/* 03CA24 7F007EF4 8FA3001C */ lw $v1, 0x1c($sp) -/* 03CA28 7F007EF8 304E03FF */ andi $t6, $v0, 0x3ff -/* 03CA2C 7F007EFC 000E7880 */ sll $t7, $t6, 2 -/* 03CA30 7F007F00 3C01F600 */ lui $at, 0xf600 -/* 03CA34 7F007F04 332803FF */ andi $t0, $t9, 0x3ff -/* 03CA38 7F007F08 00084B80 */ sll $t1, $t0, 0xe -/* 03CA3C 7F007F0C 01E1C025 */ or $t8, $t7, $at -/* 03CA40 7F007F10 03095025 */ or $t2, $t8, $t1 -/* 03CA44 7F007F14 AC6A0000 */ sw $t2, ($v1) -/* 03CA48 7F007F18 AC600004 */ sw $zero, 4($v1) -/* 03CA4C 7F007F1C 8FBF0014 */ lw $ra, 0x14($sp) -/* 03CA50 7F007F20 8FA20030 */ lw $v0, 0x30($sp) -/* 03CA54 7F007F24 27BD0030 */ addiu $sp, $sp, 0x30 -/* 03CA58 7F007F28 03E00008 */ jr $ra -/* 03CA5C 7F007F2C 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F007F30(void) { +Gfx *sub_GAME_7F007F30(Gfx*, s32, s32) { } #else +Gfx *sub_GAME_7F007F30(Gfx*, s32, s32); GLOBAL_ASM( .late_rodata glabel D_8004F2D0 .word 0x3f68f5c3 -glabel D_8004F2D4 -.word 0x461c4000 -glabel D_8004F2D8 -.word 0x459c4000 -glabel D_8004F2DC -.word 0x3f68f5c3 .text glabel sub_GAME_7F007F30 /* 03CA60 7F007F30 27BDFEE0 */ addiu $sp, $sp, -0x120 @@ -584,10 +247,10 @@ glabel sub_GAME_7F007F30 /* 03CB6C 7F00803C 24060001 */ li $a2, 1 /* 03CB70 7F008040 8E0C0000 */ lw $t4, ($s0) /* 03CB74 7F008044 240100E6 */ li $at, 230 -/* 03CB78 7F008048 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 03CB78 7F008048 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 03CB7C 7F00804C 15810005 */ bne $t4, $at, .L7F008064 /* 03CB80 7F008050 2405006F */ li $a1, 111 -/* 03CB84 7F008054 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 03CB84 7F008054 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 03CB88 7F008058 00003025 */ move $a2, $zero /* 03CB8C 7F00805C 0C002382 */ jal play_sfx_a1 /* 03CB90 7F008060 24150001 */ li $s5, 1 @@ -634,7 +297,7 @@ glabel sub_GAME_7F007F30 /* 03CC24 7F0080F4 8DEE0008 */ lw $t6, 8($t7) /* 03CC28 7F0080F8 85C4000E */ lh $a0, 0xe($t6) /* 03CC2C 7F0080FC 00044980 */ sll $t1, $a0, 6 -/* 03CC30 7F008100 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC30 7F008100 0FC2F5C5 */ jal dynAllocate /* 03CC34 7F008104 01202025 */ move $a0, $t1 /* 03CC38 7F008108 AFA200EC */ sw $v0, 0xec($sp) /* 03CC3C 7F00810C 27A400DC */ addiu $a0, $sp, 0xdc @@ -650,7 +313,7 @@ glabel sub_GAME_7F007F30 /* 03CC64 7F008134 8D6C0008 */ lw $t4, 8($t3) /* 03CC68 7F008138 8584000E */ lh $a0, 0xe($t4) /* 03CC6C 7F00813C 00046980 */ sll $t5, $a0, 6 -/* 03CC70 7F008140 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03CC70 7F008140 0FC2F5C5 */ jal dynAllocate /* 03CC74 7F008144 01A02025 */ move $a0, $t5 /* 03CC78 7F008148 AFA200EC */ sw $v0, 0xec($sp) /* 03CC7C 7F00814C 27A400DC */ addiu $a0, $sp, 0xdc @@ -755,804 +418,135 @@ glabel sub_GAME_7F007F30 ) #endif +Gfx *insert_bond_eye_intro(Gfx *gdl) { + Mtxf matrix; + u16 perspNorm; + guTranslate(&matrix_buffer_intro_backdrop[D_8002A7D0], 0.0f, 0.0f, 0.0f); + guPerspective(&matrix_buffer_intro_bond[D_8002A7D0], &perspNorm, 46.0f, (320.0f / 240.0f), 10.0f, 10000.0f, 1.0f); + gSPPerspNormalize(gdl++, perspNorm); + gDPSetCombineMode(gdl++, G_CC_SHADE, G_CC_SHADE); + gDPSetRenderMode(gdl++, G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2); + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_intro_bond[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION)); + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_intro_backdrop[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW)); + + matrix_4x4_7F059694(&matrix, D_8002A83C[0], D_8002A83C[1], D_8002A83C[2], (D_8002A83C[0] + D_8002A848[0]), (D_8002A83C[1] + D_8002A848[1]), (D_8002A83C[2] + D_8002A848[2]), D_8002A854[0], D_8002A854[1], D_8002A854[2]); - -#ifdef NONMATCHING -void insert_bond_eye_intro(void) { - -} -#else -GLOBAL_ASM( -.text -glabel insert_bond_eye_intro -/* 03CDF8 7F0082C8 44800000 */ mtc1 $zero, $f0 -/* 03CDFC 7F0082CC 3C0E8003 */ lui $t6, %hi(D_8002A7D0) -/* 03CE00 7F0082D0 8DCEA7D0 */ lw $t6, %lo(D_8002A7D0)($t6) -/* 03CE04 7F0082D4 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 03CE08 7F0082D8 3C188007 */ lui $t8, %hi(matrix_buffer_intro_backdrop) -/* 03CE0C 7F0082DC 8F18956C */ lw $t8, %lo(matrix_buffer_intro_backdrop)($t8) -/* 03CE10 7F0082E0 AFB00030 */ sw $s0, 0x30($sp) -/* 03CE14 7F0082E4 00808025 */ move $s0, $a0 -/* 03CE18 7F0082E8 AFBF0034 */ sw $ra, 0x34($sp) -/* 03CE1C 7F0082EC 44050000 */ mfc1 $a1, $f0 -/* 03CE20 7F0082F0 44060000 */ mfc1 $a2, $f0 -/* 03CE24 7F0082F4 44070000 */ mfc1 $a3, $f0 -/* 03CE28 7F0082F8 000E7980 */ sll $t7, $t6, 6 -/* 03CE2C 7F0082FC 0C005B46 */ jal guTranslate -/* 03CE30 7F008300 01F82021 */ addu $a0, $t7, $t8 -/* 03CE34 7F008304 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 03CE38 7F008308 44812000 */ mtc1 $at, $f4 -/* 03CE3C 7F00830C 3C018005 */ lui $at, %hi(D_8004F2D4) -/* 03CE40 7F008310 3C198003 */ lui $t9, %hi(D_8002A7D0) -/* 03CE44 7F008314 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) -/* 03CE48 7F008318 C426F2D4 */ lwc1 $f6, %lo(D_8004F2D4)($at) -/* 03CE4C 7F00831C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 03CE50 7F008320 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_bond) -/* 03CE54 7F008324 8D8C9570 */ lw $t4, %lo(matrix_buffer_intro_bond)($t4) -/* 03CE58 7F008328 44814000 */ mtc1 $at, $f8 -/* 03CE5C 7F00832C 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa -/* 03CE60 7F008330 00195980 */ sll $t3, $t9, 6 -/* 03CE64 7F008334 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab -/* 03CE68 7F008338 27A5005E */ addiu $a1, $sp, 0x5e -/* 03CE6C 7F00833C 3C064238 */ lui $a2, 0x4238 -/* 03CE70 7F008340 E7A40010 */ swc1 $f4, 0x10($sp) -/* 03CE74 7F008344 E7A60014 */ swc1 $f6, 0x14($sp) -/* 03CE78 7F008348 016C2021 */ addu $a0, $t3, $t4 -/* 03CE7C 7F00834C 0C003FAC */ jal guPerspective -/* 03CE80 7F008350 E7A80018 */ swc1 $f8, 0x18($sp) -/* 03CE84 7F008354 3C0DBC00 */ lui $t5, (0xBC00000E >> 16) # lui $t5, 0xbc00 -/* 03CE88 7F008358 35AD000E */ ori $t5, (0xBC00000E & 0xFFFF) # ori $t5, $t5, 0xe -/* 03CE8C 7F00835C 02001025 */ move $v0, $s0 -/* 03CE90 7F008360 AC4D0000 */ sw $t5, ($v0) -/* 03CE94 7F008364 97AE005E */ lhu $t6, 0x5e($sp) -/* 03CE98 7F008368 26100008 */ addiu $s0, $s0, 8 -/* 03CE9C 7F00836C 02001825 */ move $v1, $s0 -/* 03CEA0 7F008370 26100008 */ addiu $s0, $s0, 8 -/* 03CEA4 7F008374 3C0FFCFF */ lui $t7, (0xFCFFFFFF >> 16) # lui $t7, 0xfcff -/* 03CEA8 7F008378 3C18FFFE */ lui $t8, (0xFFFE793C >> 16) # lui $t8, 0xfffe -/* 03CEAC 7F00837C AC4E0004 */ sw $t6, 4($v0) -/* 03CEB0 7F008380 3718793C */ ori $t8, (0xFFFE793C & 0xFFFF) # ori $t8, $t8, 0x793c -/* 03CEB4 7F008384 35EFFFFF */ ori $t7, (0xFCFFFFFF & 0xFFFF) # ori $t7, $t7, 0xffff -/* 03CEB8 7F008388 02002825 */ move $a1, $s0 -/* 03CEBC 7F00838C AC6F0000 */ sw $t7, ($v1) -/* 03CEC0 7F008390 AC780004 */ sw $t8, 4($v1) -/* 03CEC4 7F008394 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 03CEC8 7F008398 3C0B0055 */ lui $t3, (0x00552048 >> 16) # lui $t3, 0x55 -/* 03CECC 7F00839C 356B2048 */ ori $t3, (0x00552048 & 0xFFFF) # ori $t3, $t3, 0x2048 -/* 03CED0 7F0083A0 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 03CED4 7F0083A4 26100008 */ addiu $s0, $s0, 8 -/* 03CED8 7F0083A8 3C0C0103 */ lui $t4, (0x01030040 >> 16) # lui $t4, 0x103 -/* 03CEDC 7F0083AC ACB90000 */ sw $t9, ($a1) -/* 03CEE0 7F0083B0 ACAB0004 */ sw $t3, 4($a1) -/* 03CEE4 7F0083B4 358C0040 */ ori $t4, (0x01030040 & 0xFFFF) # ori $t4, $t4, 0x40 -/* 03CEE8 7F0083B8 02003025 */ move $a2, $s0 -/* 03CEEC 7F0083BC ACCC0000 */ sw $t4, ($a2) -/* 03CEF0 7F0083C0 3C0D8003 */ lui $t5, %hi(D_8002A7D0) -/* 03CEF4 7F0083C4 8DADA7D0 */ lw $t5, %lo(D_8002A7D0)($t5) -/* 03CEF8 7F0083C8 3C0F8007 */ lui $t7, %hi(matrix_buffer_intro_bond) -/* 03CEFC 7F0083CC 8DEF9570 */ lw $t7, %lo(matrix_buffer_intro_bond)($t7) -/* 03CF00 7F0083D0 000D7180 */ sll $t6, $t5, 6 -/* 03CF04 7F0083D4 AFA6004C */ sw $a2, 0x4c($sp) -/* 03CF08 7F0083D8 26100008 */ addiu $s0, $s0, 8 -/* 03CF0C 7F0083DC 0C003A2C */ jal osVirtualToPhysical -/* 03CF10 7F0083E0 01CF2021 */ addu $a0, $t6, $t7 -/* 03CF14 7F0083E4 8FA6004C */ lw $a2, 0x4c($sp) -/* 03CF18 7F0083E8 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 -/* 03CF1C 7F0083EC 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 03CF20 7F0083F0 02005025 */ move $t2, $s0 -/* 03CF24 7F0083F4 ACC20004 */ sw $v0, 4($a2) -/* 03CF28 7F0083F8 AD580000 */ sw $t8, ($t2) -/* 03CF2C 7F0083FC 3C198003 */ lui $t9, %hi(D_8002A7D0) -/* 03CF30 7F008400 8F39A7D0 */ lw $t9, %lo(D_8002A7D0)($t9) -/* 03CF34 7F008404 3C0C8007 */ lui $t4, %hi(matrix_buffer_intro_backdrop) -/* 03CF38 7F008408 8D8C956C */ lw $t4, %lo(matrix_buffer_intro_backdrop)($t4) -/* 03CF3C 7F00840C 00195980 */ sll $t3, $t9, 6 -/* 03CF40 7F008410 AFAA0048 */ sw $t2, 0x48($sp) -/* 03CF44 7F008414 26100008 */ addiu $s0, $s0, 8 -/* 03CF48 7F008418 0C003A2C */ jal osVirtualToPhysical -/* 03CF4C 7F00841C 016C2021 */ addu $a0, $t3, $t4 -/* 03CF50 7F008420 8FAA0048 */ lw $t2, 0x48($sp) -/* 03CF54 7F008424 3C038003 */ lui $v1, %hi(D_8002A83C) -/* 03CF58 7F008428 3C088003 */ lui $t0, %hi(D_8002A848) -/* 03CF5C 7F00842C AD420004 */ sw $v0, 4($t2) -/* 03CF60 7F008430 2508A848 */ addiu $t0, %lo(D_8002A848) # addiu $t0, $t0, -0x57b8 -/* 03CF64 7F008434 2463A83C */ addiu $v1, %lo(D_8002A83C) # addiu $v1, $v1, -0x57c4 -/* 03CF68 7F008438 C4600000 */ lwc1 $f0, ($v1) -/* 03CF6C 7F00843C C50A0000 */ lwc1 $f10, ($t0) -/* 03CF70 7F008440 C4620004 */ lwc1 $f2, 4($v1) -/* 03CF74 7F008444 C5120004 */ lwc1 $f18, 4($t0) -/* 03CF78 7F008448 46005400 */ add.s $f16, $f10, $f0 -/* 03CF7C 7F00844C C46C0008 */ lwc1 $f12, 8($v1) -/* 03CF80 7F008450 C5060008 */ lwc1 $f6, 8($t0) -/* 03CF84 7F008454 3C098003 */ lui $t1, %hi(D_8002A854) -/* 03CF88 7F008458 2529A854 */ addiu $t1, %lo(D_8002A854) # addiu $t1, $t1, -0x57ac -/* 03CF8C 7F00845C 46029100 */ add.s $f4, $f18, $f2 -/* 03CF90 7F008460 E7B00010 */ swc1 $f16, 0x10($sp) -/* 03CF94 7F008464 C5300004 */ lwc1 $f16, 4($t1) -/* 03CF98 7F008468 460C3200 */ add.s $f8, $f6, $f12 -/* 03CF9C 7F00846C C5320008 */ lwc1 $f18, 8($t1) -/* 03CFA0 7F008470 C52A0000 */ lwc1 $f10, ($t1) -/* 03CFA4 7F008474 44050000 */ mfc1 $a1, $f0 -/* 03CFA8 7F008478 44061000 */ mfc1 $a2, $f2 -/* 03CFAC 7F00847C 44076000 */ mfc1 $a3, $f12 -/* 03CFB0 7F008480 E7A80018 */ swc1 $f8, 0x18($sp) -/* 03CFB4 7F008484 E7A40014 */ swc1 $f4, 0x14($sp) -/* 03CFB8 7F008488 27A40060 */ addiu $a0, $sp, 0x60 -/* 03CFBC 7F00848C E7B00020 */ swc1 $f16, 0x20($sp) -/* 03CFC0 7F008490 E7B20024 */ swc1 $f18, 0x24($sp) -/* 03CFC4 7F008494 0FC165A5 */ jal matrix_4x4_7F059694 -/* 03CFC8 7F008498 E7AA001C */ swc1 $f10, 0x1c($sp) -/* 03CFCC 7F00849C 02002025 */ move $a0, $s0 -/* 03CFD0 7F0084A0 24050002 */ li $a1, 2 -/* 03CFD4 7F0084A4 0FC01FCC */ jal sub_GAME_7F007F30 -/* 03CFD8 7F0084A8 27A60060 */ addiu $a2, $sp, 0x60 -/* 03CFDC 7F0084AC 8FBF0034 */ lw $ra, 0x34($sp) -/* 03CFE0 7F0084B0 8FB00030 */ lw $s0, 0x30($sp) -/* 03CFE4 7F0084B4 27BD00A0 */ addiu $sp, $sp, 0xa0 -/* 03CFE8 7F0084B8 03E00008 */ jr $ra -/* 03CFEC 7F0084BC 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void load_display_rare_logo(void) { - -} -#else -GLOBAL_ASM( -.text -glabel load_display_rare_logo -/* 03CFF0 7F0084C0 44872000 */ mtc1 $a3, $f4 -/* 03CFF4 7F0084C4 27BDFF18 */ addiu $sp, $sp, -0xe8 -/* 03CFF8 7F0084C8 AFB0002C */ sw $s0, 0x2c($sp) -/* 03CFFC 7F0084CC 468021A0 */ cvt.s.w $f6, $f4 -/* 03D000 7F0084D0 3C018003 */ lui $at, %hi(D_8002A880) -/* 03D004 7F0084D4 AFBF0034 */ sw $ra, 0x34($sp) -/* 03D008 7F0084D8 AFB10030 */ sw $s1, 0x30($sp) -/* 03D00C 7F0084DC AFA500EC */ sw $a1, 0xec($sp) -/* 03D010 7F0084E0 AFA600F0 */ sw $a2, 0xf0($sp) -/* 03D014 7F0084E4 E426A880 */ swc1 $f6, %lo(D_8002A880)($at) -/* 03D018 7F0084E8 3C0F0100 */ lui $t7, 0x100 -/* 03D01C 7F0084EC 25EF0000 */ addiu $t7, $t7, 0 -/* 03D020 7F0084F0 3C0E0600 */ lui $t6, 0x600 -/* 03D024 7F0084F4 AC8E0000 */ sw $t6, ($a0) -/* 03D028 7F0084F8 AC8F0004 */ sw $t7, 4($a0) -/* 03D02C 7F0084FC 24900008 */ addiu $s0, $a0, 8 -/* 03D030 7F008500 0FC07034 */ jal insert_imageDL -/* 03D034 7F008504 02002025 */ move $a0, $s0 -/* 03D038 7F008508 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 03D03C 7F00850C 44814000 */ mtc1 $at, $f8 -/* 03D040 7F008510 3C118003 */ lui $s1, %hi(D_8002A7D0) -/* 03D044 7F008514 2631A7D0 */ addiu $s1, %lo(D_8002A7D0) # addiu $s1, $s1, -0x5830 -/* 03D048 7F008518 3C018005 */ lui $at, %hi(D_8004F2D8) -/* 03D04C 7F00851C C42AF2D8 */ lwc1 $f10, %lo(D_8004F2D8)($at) -/* 03D050 7F008520 8E380000 */ lw $t8, ($s1) -/* 03D054 7F008524 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 03D058 7F008528 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_0) -/* 03D05C 7F00852C 8DCE9558 */ lw $t6, %lo(matrix_buffer_rarelogo_0)($t6) -/* 03D060 7F008530 44818000 */ mtc1 $at, $f16 -/* 03D064 7F008534 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa -/* 03D068 7F008538 0018C980 */ sll $t9, $t8, 6 -/* 03D06C 7F00853C 00408025 */ move $s0, $v0 -/* 03D070 7F008540 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab -/* 03D074 7F008544 27A500E2 */ addiu $a1, $sp, 0xe2 -/* 03D078 7F008548 3C064270 */ lui $a2, 0x4270 -/* 03D07C 7F00854C E7A80010 */ swc1 $f8, 0x10($sp) -/* 03D080 7F008550 E7AA0014 */ swc1 $f10, 0x14($sp) -/* 03D084 7F008554 032E2021 */ addu $a0, $t9, $t6 -/* 03D088 7F008558 0C003FAC */ jal guPerspective -/* 03D08C 7F00855C E7B00018 */ swc1 $f16, 0x18($sp) -/* 03D090 7F008560 3C0FBC00 */ lui $t7, (0xBC00000E >> 16) # lui $t7, 0xbc00 -/* 03D094 7F008564 35EF000E */ ori $t7, (0xBC00000E & 0xFFFF) # ori $t7, $t7, 0xe -/* 03D098 7F008568 02001025 */ move $v0, $s0 -/* 03D09C 7F00856C AC4F0000 */ sw $t7, ($v0) -/* 03D0A0 7F008570 97B800E2 */ lhu $t8, 0xe2($sp) -/* 03D0A4 7F008574 26100008 */ addiu $s0, $s0, 8 -/* 03D0A8 7F008578 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103 -/* 03D0AC 7F00857C 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40 -/* 03D0B0 7F008580 02005825 */ move $t3, $s0 -/* 03D0B4 7F008584 AC580004 */ sw $t8, 4($v0) -/* 03D0B8 7F008588 AD790000 */ sw $t9, ($t3) -/* 03D0BC 7F00858C 8E2E0000 */ lw $t6, ($s1) -/* 03D0C0 7F008590 3C188007 */ lui $t8, %hi(matrix_buffer_rarelogo_0) -/* 03D0C4 7F008594 8F189558 */ lw $t8, %lo(matrix_buffer_rarelogo_0)($t8) -/* 03D0C8 7F008598 000E7980 */ sll $t7, $t6, 6 -/* 03D0CC 7F00859C AFAB00D8 */ sw $t3, 0xd8($sp) -/* 03D0D0 7F0085A0 26100008 */ addiu $s0, $s0, 8 -/* 03D0D4 7F0085A4 0C003A2C */ jal osVirtualToPhysical -/* 03D0D8 7F0085A8 01F82021 */ addu $a0, $t7, $t8 -/* 03D0DC 7F0085AC 8FAB00D8 */ lw $t3, 0xd8($sp) -/* 03D0E0 7F0085B0 02001825 */ move $v1, $s0 -/* 03D0E4 7F0085B4 240EFFFF */ li $t6, -1 -/* 03D0E8 7F0085B8 AD620004 */ sw $v0, 4($t3) -/* 03D0EC 7F0085BC AC6E0004 */ sw $t6, 4($v1) -/* 03D0F0 7F0085C0 26100008 */ addiu $s0, $s0, 8 -/* 03D0F4 7F0085C4 3C19B600 */ lui $t9, 0xb600 -/* 03D0F8 7F0085C8 AC790000 */ sw $t9, ($v1) -/* 03D0FC 7F0085CC 02004025 */ move $t0, $s0 -/* 03D100 7F0085D0 3C0FB700 */ lui $t7, 0xb700 -/* 03D104 7F0085D4 3C180006 */ lui $t8, (0x00062204 >> 16) # lui $t8, 6 -/* 03D108 7F0085D8 37182204 */ ori $t8, (0x00062204 & 0xFFFF) # ori $t8, $t8, 0x2204 -/* 03D10C 7F0085DC AD0F0000 */ sw $t7, ($t0) -/* 03D110 7F0085E0 AD180004 */ sw $t8, 4($t0) -/* 03D114 7F0085E4 3C098003 */ lui $t1, %hi(D_8002A884) -/* 03D118 7F0085E8 3C0C8003 */ lui $t4, %hi(D_8002A878) -/* 03D11C 7F0085EC 258CA878 */ addiu $t4, %lo(D_8002A878) # addiu $t4, $t4, -0x5788 -/* 03D120 7F0085F0 2529A884 */ addiu $t1, %lo(D_8002A884) # addiu $t1, $t1, -0x577c -/* 03D124 7F0085F4 C5320000 */ lwc1 $f18, ($t1) -/* 03D128 7F0085F8 C5800000 */ lwc1 $f0, ($t4) -/* 03D12C 7F0085FC C5260004 */ lwc1 $f6, 4($t1) -/* 03D130 7F008600 C5820004 */ lwc1 $f2, 4($t4) -/* 03D134 7F008604 46009100 */ add.s $f4, $f18, $f0 -/* 03D138 7F008608 C52A0008 */ lwc1 $f10, 8($t1) -/* 03D13C 7F00860C C58C0008 */ lwc1 $f12, 8($t4) -/* 03D140 7F008610 3C0A8003 */ lui $t2, %hi(D_8002A890) -/* 03D144 7F008614 254AA890 */ addiu $t2, %lo(D_8002A890) # addiu $t2, $t2, -0x5770 -/* 03D148 7F008618 46023200 */ add.s $f8, $f6, $f2 -/* 03D14C 7F00861C 8E390000 */ lw $t9, ($s1) -/* 03D150 7F008620 E7A40010 */ swc1 $f4, 0x10($sp) -/* 03D154 7F008624 460C5400 */ add.s $f16, $f10, $f12 -/* 03D158 7F008628 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) -/* 03D15C 7F00862C 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) -/* 03D160 7F008630 C5440004 */ lwc1 $f4, 4($t2) -/* 03D164 7F008634 C5460008 */ lwc1 $f6, 8($t2) -/* 03D168 7F008638 C5520000 */ lwc1 $f18, ($t2) -/* 03D16C 7F00863C 44050000 */ mfc1 $a1, $f0 -/* 03D170 7F008640 44061000 */ mfc1 $a2, $f2 -/* 03D174 7F008644 44076000 */ mfc1 $a3, $f12 -/* 03D178 7F008648 00197180 */ sll $t6, $t9, 6 -/* 03D17C 7F00864C 26100008 */ addiu $s0, $s0, 8 -/* 03D180 7F008650 E7B00018 */ swc1 $f16, 0x18($sp) -/* 03D184 7F008654 E7A80014 */ swc1 $f8, 0x14($sp) -/* 03D188 7F008658 01CF2021 */ addu $a0, $t6, $t7 -/* 03D18C 7F00865C E7A40020 */ swc1 $f4, 0x20($sp) -/* 03D190 7F008660 E7A60024 */ swc1 $f6, 0x24($sp) -/* 03D194 7F008664 0C005DAA */ jal guLookAt -/* 03D198 7F008668 E7B2001C */ swc1 $f18, 0x1c($sp) -/* 03D19C 7F00866C 3C180102 */ lui $t8, (0x01020040 >> 16) # lui $t8, 0x102 -/* 03D1A0 7F008670 37180040 */ ori $t8, (0x01020040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 03D1A4 7F008674 02001825 */ move $v1, $s0 -/* 03D1A8 7F008678 AC780000 */ sw $t8, ($v1) -/* 03D1AC 7F00867C 8E390000 */ lw $t9, ($s1) -/* 03D1B0 7F008680 3C0F8007 */ lui $t7, %hi(matrix_buffer_rarelogo_1) -/* 03D1B4 7F008684 8DEF9560 */ lw $t7, %lo(matrix_buffer_rarelogo_1)($t7) -/* 03D1B8 7F008688 00197180 */ sll $t6, $t9, 6 -/* 03D1BC 7F00868C AFA300CC */ sw $v1, 0xcc($sp) -/* 03D1C0 7F008690 26100008 */ addiu $s0, $s0, 8 -/* 03D1C4 7F008694 0C003A2C */ jal osVirtualToPhysical -/* 03D1C8 7F008698 01CF2021 */ addu $a0, $t6, $t7 -/* 03D1CC 7F00869C 8FA300CC */ lw $v1, 0xcc($sp) -/* 03D1D0 7F0086A0 44800000 */ mtc1 $zero, $f0 -/* 03D1D4 7F0086A4 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) -/* 03D1D8 7F0086A8 AC620004 */ sw $v0, 4($v1) -/* 03D1DC 7F0086AC 8E380000 */ lw $t8, ($s1) -/* 03D1E0 7F0086B0 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) -/* 03D1E4 7F0086B4 3C058003 */ lui $a1, %hi(D_8002A89C) -/* 03D1E8 7F0086B8 44060000 */ mfc1 $a2, $f0 -/* 03D1EC 7F0086BC 0018C980 */ sll $t9, $t8, 6 -/* 03D1F0 7F0086C0 8CA5A89C */ lw $a1, %lo(D_8002A89C)($a1) -/* 03D1F4 7F0086C4 3C073F80 */ lui $a3, %hi(0x3F800004) # $a3, 0x3f80 -/* 03D1F8 7F0086C8 E7A00010 */ swc1 $f0, 0x10($sp) -/* 03D1FC 7F0086CC 0C005E2D */ jal guRotate -/* 03D200 7F0086D0 032E2021 */ addu $a0, $t9, $t6 -/* 03D204 7F0086D4 3C028003 */ lui $v0, %hi(D_8002A89C) -/* 03D208 7F0086D8 2442A89C */ addiu $v0, %lo(D_8002A89C) # addiu $v0, $v0, -0x5764 -/* 03D20C 7F0086DC 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 03D210 7F0086E0 44815000 */ mtc1 $at, $f10 -/* 03D214 7F0086E4 C4480000 */ lwc1 $f8, ($v0) -/* 03D218 7F0086E8 3C0F0100 */ lui $t7, (0x01000040 >> 16) # lui $t7, 0x100 -/* 03D21C 7F0086EC 35EF0040 */ ori $t7, (0x01000040 & 0xFFFF) # ori $t7, $t7, 0x40 -/* 03D220 7F0086F0 460A4400 */ add.s $f16, $f8, $f10 -/* 03D224 7F0086F4 02005025 */ move $t2, $s0 -/* 03D228 7F0086F8 3C0E8007 */ lui $t6, %hi(matrix_buffer_rarelogo_2) -/* 03D22C 7F0086FC 26100008 */ addiu $s0, $s0, 8 -/* 03D230 7F008700 E4500000 */ swc1 $f16, ($v0) -/* 03D234 7F008704 AD4F0000 */ sw $t7, ($t2) -/* 03D238 7F008708 8E380000 */ lw $t8, ($s1) -/* 03D23C 7F00870C 8DCE9564 */ lw $t6, %lo(matrix_buffer_rarelogo_2)($t6) -/* 03D240 7F008710 AFAA00C8 */ sw $t2, 0xc8($sp) -/* 03D244 7F008714 0018C980 */ sll $t9, $t8, 6 -/* 03D248 7F008718 0C003A2C */ jal osVirtualToPhysical -/* 03D24C 7F00871C 032E2021 */ addu $a0, $t9, $t6 -/* 03D250 7F008720 8FA800F8 */ lw $t0, 0xf8($sp) -/* 03D254 7F008724 8FAA00C8 */ lw $t2, 0xc8($sp) -/* 03D258 7F008728 02002025 */ move $a0, $s0 -/* 03D25C 7F00872C 3C0FBC00 */ lui $t7, (0xBC000002 >> 16) # lui $t7, 0xbc00 -/* 03D260 7F008730 35EF0002 */ ori $t7, (0xBC000002 & 0xFFFF) # ori $t7, $t7, 2 -/* 03D264 7F008734 26100008 */ addiu $s0, $s0, 8 -/* 03D268 7F008738 3C188000 */ lui $t8, (0x80000040 >> 16) # lui $t8, 0x8000 -/* 03D26C 7F00873C AD420004 */ sw $v0, 4($t2) -/* 03D270 7F008740 AC8F0000 */ sw $t7, ($a0) -/* 03D274 7F008744 37180040 */ ori $t8, (0x80000040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 03D278 7F008748 02002825 */ move $a1, $s0 -/* 03D27C 7F00874C AC980004 */ sw $t8, 4($a0) -/* 03D280 7F008750 3C190386 */ lui $t9, (0x03860010 >> 16) # lui $t9, 0x386 -/* 03D284 7F008754 3C0E8003 */ lui $t6, %hi(D_8002A868) -/* 03D288 7F008758 25CEA868 */ addiu $t6, %lo(D_8002A868) # addiu $t6, $t6, -0x5798 -/* 03D28C 7F00875C 37390010 */ ori $t9, (0x03860010 & 0xFFFF) # ori $t9, $t9, 0x10 -/* 03D290 7F008760 26100008 */ addiu $s0, $s0, 8 -/* 03D294 7F008764 3C038003 */ lui $v1, %hi(D_8002A860) -/* 03D298 7F008768 02003025 */ move $a2, $s0 -/* 03D29C 7F00876C ACB90000 */ sw $t9, ($a1) -/* 03D2A0 7F008770 ACAE0004 */ sw $t6, 4($a1) -/* 03D2A4 7F008774 3C0F0388 */ lui $t7, (0x03880010 >> 16) # lui $t7, 0x388 -/* 03D2A8 7F008778 2463A860 */ addiu $v1, %lo(D_8002A860) # addiu $v1, $v1, -0x57a0 -/* 03D2AC 7F00877C 35EF0010 */ ori $t7, (0x03880010 & 0xFFFF) # ori $t7, $t7, 0x10 -/* 03D2B0 7F008780 ACCF0000 */ sw $t7, ($a2) -/* 03D2B4 7F008784 ACC30004 */ sw $v1, 4($a2) -/* 03D2B8 7F008788 26100008 */ addiu $s0, $s0, 8 -/* 03D2BC 7F00878C 02003825 */ move $a3, $s0 -/* 03D2C0 7F008790 A0680000 */ sb $t0, ($v1) -/* 03D2C4 7F008794 A0680001 */ sb $t0, 1($v1) -/* 03D2C8 7F008798 A0680002 */ sb $t0, 2($v1) -/* 03D2CC 7F00879C A0680004 */ sb $t0, 4($v1) -/* 03D2D0 7F0087A0 A0680005 */ sb $t0, 5($v1) -/* 03D2D4 7F0087A4 A0680006 */ sb $t0, 6($v1) -/* 03D2D8 7F0087A8 26100008 */ addiu $s0, $s0, 8 -/* 03D2DC 7F0087AC 3C09E700 */ lui $t1, 0xe700 -/* 03D2E0 7F0087B0 02005825 */ move $t3, $s0 -/* 03D2E4 7F0087B4 ACE90000 */ sw $t1, ($a3) -/* 03D2E8 7F0087B8 ACE00004 */ sw $zero, %lo(0x3F800004)($a3) -/* 03D2EC 7F0087BC 26100008 */ addiu $s0, $s0, 8 -/* 03D2F0 7F0087C0 02001025 */ move $v0, $s0 -/* 03D2F4 7F0087C4 AD600004 */ sw $zero, 4($t3) -/* 03D2F8 7F0087C8 AD690000 */ sw $t1, ($t3) -/* 03D2FC 7F0087CC 26100008 */ addiu $s0, $s0, 8 -/* 03D300 7F0087D0 3C18FC12 */ lui $t8, (0xFC127E24 >> 16) # lui $t8, 0xfc12 -/* 03D304 7F0087D4 37187E24 */ ori $t8, (0xFC127E24 & 0xFFFF) # ori $t8, $t8, 0x7e24 -/* 03D308 7F0087D8 2419F9FC */ li $t9, -1540 -/* 03D30C 7F0087DC 02001825 */ move $v1, $s0 -/* 03D310 7F0087E0 AC590004 */ sw $t9, 4($v0) -/* 03D314 7F0087E4 AC580000 */ sw $t8, ($v0) -/* 03D318 7F0087E8 3C0EBA00 */ lui $t6, (0xBA001301 >> 16) # lui $t6, 0xba00 -/* 03D31C 7F0087EC 35CE1301 */ ori $t6, (0xBA001301 & 0xFFFF) # ori $t6, $t6, 0x1301 -/* 03D320 7F0087F0 3C0F0008 */ lui $t7, 8 -/* 03D324 7F0087F4 AC6F0004 */ sw $t7, 4($v1) -/* 03D328 7F0087F8 AC6E0000 */ sw $t6, ($v1) -/* 03D32C 7F0087FC 26100008 */ addiu $s0, $s0, 8 -/* 03D330 7F008800 02002025 */ move $a0, $s0 -/* 03D334 7F008804 3C18BA00 */ lui $t8, (0xBA001102 >> 16) # lui $t8, 0xba00 -/* 03D338 7F008808 37181102 */ ori $t8, (0xBA001102 & 0xFFFF) # ori $t8, $t8, 0x1102 -/* 03D33C 7F00880C 26100008 */ addiu $s0, $s0, 8 -/* 03D340 7F008810 AC980000 */ sw $t8, ($a0) -/* 03D344 7F008814 02002825 */ move $a1, $s0 -/* 03D348 7F008818 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00 -/* 03D34C 7F00881C AC800004 */ sw $zero, 4($a0) -/* 03D350 7F008820 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001 -/* 03D354 7F008824 26100008 */ addiu $s0, $s0, 8 -/* 03D358 7F008828 ACB90000 */ sw $t9, ($a1) -/* 03D35C 7F00882C 02003025 */ move $a2, $s0 -/* 03D360 7F008830 ACA00004 */ sw $zero, 4($a1) -/* 03D364 7F008834 26100008 */ addiu $s0, $s0, 8 -/* 03D368 7F008838 3C0EBA00 */ lui $t6, (0xBA000E02 >> 16) # lui $t6, 0xba00 -/* 03D36C 7F00883C 35CE0E02 */ ori $t6, (0xBA000E02 & 0xFFFF) # ori $t6, $t6, 0xe02 -/* 03D370 7F008840 02001025 */ move $v0, $s0 -/* 03D374 7F008844 ACCE0000 */ sw $t6, ($a2) -/* 03D378 7F008848 ACC00004 */ sw $zero, 4($a2) -/* 03D37C 7F00884C 3C0FBA00 */ lui $t7, (0xBA000C02 >> 16) # lui $t7, 0xba00 -/* 03D380 7F008850 35EF0C02 */ ori $t7, (0xBA000C02 & 0xFFFF) # ori $t7, $t7, 0xc02 -/* 03D384 7F008854 26100008 */ addiu $s0, $s0, 8 -/* 03D388 7F008858 24182000 */ li $t8, 8192 -/* 03D38C 7F00885C AC580004 */ sw $t8, 4($v0) -/* 03D390 7F008860 AC4F0000 */ sw $t7, ($v0) -/* 03D394 7F008864 02001825 */ move $v1, $s0 -/* 03D398 7F008868 3C19BA00 */ lui $t9, (0xBA000903 >> 16) # lui $t9, 0xba00 -/* 03D39C 7F00886C 37390903 */ ori $t9, (0xBA000903 & 0xFFFF) # ori $t9, $t9, 0x903 -/* 03D3A0 7F008870 26100008 */ addiu $s0, $s0, 8 -/* 03D3A4 7F008874 AC790000 */ sw $t9, ($v1) -/* 03D3A8 7F008878 240E0C00 */ li $t6, 3072 -/* 03D3AC 7F00887C 02002025 */ move $a0, $s0 -/* 03D3B0 7F008880 AC6E0004 */ sw $t6, 4($v1) -/* 03D3B4 7F008884 26100008 */ addiu $s0, $s0, 8 -/* 03D3B8 7F008888 02002825 */ move $a1, $s0 -/* 03D3BC 7F00888C AC800004 */ sw $zero, 4($a0) -/* 03D3C0 7F008890 AC890000 */ sw $t1, ($a0) -/* 03D3C4 7F008894 26100008 */ addiu $s0, $s0, 8 -/* 03D3C8 7F008898 ACA00004 */ sw $zero, 4($a1) -/* 03D3CC 7F00889C ACA90000 */ sw $t1, ($a1) -/* 03D3D0 7F0088A0 02003825 */ move $a3, $s0 -/* 03D3D4 7F0088A4 26100008 */ addiu $s0, $s0, 8 -/* 03D3D8 7F0088A8 3C0FBB00 */ lui $t7, (0xBB000001 >> 16) # lui $t7, 0xbb00 -/* 03D3DC 7F0088AC 3C180800 */ lui $t8, (0x08000800 >> 16) # lui $t8, 0x800 -/* 03D3E0 7F0088B0 37180800 */ ori $t8, (0x08000800 & 0xFFFF) # ori $t8, $t8, 0x800 -/* 03D3E4 7F0088B4 35EF0001 */ ori $t7, (0xBB000001 & 0xFFFF) # ori $t7, $t7, 1 -/* 03D3E8 7F0088B8 02001025 */ move $v0, $s0 -/* 03D3EC 7F0088BC ACEF0000 */ sw $t7, ($a3) -/* 03D3F0 7F0088C0 ACF80004 */ sw $t8, %lo(0x3F800004)($a3) -/* 03D3F4 7F0088C4 26100008 */ addiu $s0, $s0, 8 -/* 03D3F8 7F0088C8 3C190200 */ lui $t9, %hi(0x02004FE8) # $t9, 0x200 -/* 03D3FC 7F0088CC 3C0BFD10 */ lui $t3, 0xfd10 -/* 03D400 7F0088D0 27394FE8 */ addiu $t9, %lo(0x02004FE8) # addiu $t9, $t9, 0x4fe8 -/* 03D404 7F0088D4 02001825 */ move $v1, $s0 -/* 03D408 7F0088D8 3C0D0701 */ lui $t5, (0x07014050 >> 16) # lui $t5, 0x701 -/* 03D40C 7F0088DC 26100008 */ addiu $s0, $s0, 8 -/* 03D410 7F0088E0 AC590004 */ sw $t9, 4($v0) -/* 03D414 7F0088E4 AC4B0000 */ sw $t3, ($v0) -/* 03D418 7F0088E8 35AD4050 */ ori $t5, (0x07014050 & 0xFFFF) # ori $t5, $t5, 0x4050 -/* 03D41C 7F0088EC 3C0CF510 */ lui $t4, 0xf510 -/* 03D420 7F0088F0 02002025 */ move $a0, $s0 -/* 03D424 7F0088F4 AC6C0000 */ sw $t4, ($v1) -/* 03D428 7F0088F8 AC6D0004 */ sw $t5, 4($v1) -/* 03D42C 7F0088FC 3C1FE600 */ lui $ra, 0xe600 -/* 03D430 7F008900 26100008 */ addiu $s0, $s0, 8 -/* 03D434 7F008904 02002825 */ move $a1, $s0 -/* 03D438 7F008908 AC9F0000 */ sw $ra, ($a0) -/* 03D43C 7F00890C AC800004 */ sw $zero, 4($a0) -/* 03D440 7F008910 3C0E073F */ lui $t6, (0x073FF100 >> 16) # lui $t6, 0x73f -/* 03D444 7F008914 35CEF100 */ ori $t6, (0x073FF100 & 0xFFFF) # ori $t6, $t6, 0xf100 -/* 03D448 7F008918 26100008 */ addiu $s0, $s0, 8 -/* 03D44C 7F00891C 3C11F300 */ lui $s1, 0xf300 -/* 03D450 7F008920 02003025 */ move $a2, $s0 -/* 03D454 7F008924 ACAE0004 */ sw $t6, 4($a1) -/* 03D458 7F008928 26100008 */ addiu $s0, $s0, 8 -/* 03D45C 7F00892C ACB10000 */ sw $s1, ($a1) -/* 03D460 7F008930 02001825 */ move $v1, $s0 -/* 03D464 7F008934 ACC00004 */ sw $zero, 4($a2) -/* 03D468 7F008938 ACC90000 */ sw $t1, ($a2) -/* 03D46C 7F00893C 3C180001 */ lui $t8, (0x00014050 >> 16) # lui $t8, 1 -/* 03D470 7F008940 3C0FF510 */ lui $t7, (0xF5101000 >> 16) # lui $t7, 0xf510 -/* 03D474 7F008944 35EF1000 */ ori $t7, (0xF5101000 & 0xFFFF) # ori $t7, $t7, 0x1000 -/* 03D478 7F008948 37184050 */ ori $t8, (0x00014050 & 0xFFFF) # ori $t8, $t8, 0x4050 -/* 03D47C 7F00894C 26100008 */ addiu $s0, $s0, 8 -/* 03D480 7F008950 02002025 */ move $a0, $s0 -/* 03D484 7F008954 AC780004 */ sw $t8, 4($v1) -/* 03D488 7F008958 AC6F0000 */ sw $t7, ($v1) -/* 03D48C 7F00895C 3C0E0007 */ lui $t6, (0x0007C07C >> 16) # lui $t6, 7 -/* 03D490 7F008960 3C19F200 */ lui $t9, 0xf200 -/* 03D494 7F008964 AC990000 */ sw $t9, ($a0) -/* 03D498 7F008968 35CEC07C */ ori $t6, (0x0007C07C & 0xFFFF) # ori $t6, $t6, 0xc07c -/* 03D49C 7F00896C 26100008 */ addiu $s0, $s0, 8 -/* 03D4A0 7F008970 310200FF */ andi $v0, $t0, 0xff -/* 03D4A4 7F008974 AC8E0004 */ sw $t6, 4($a0) -/* 03D4A8 7F008978 02002825 */ move $a1, $s0 -/* 03D4AC 7F00897C 3C0FFA00 */ lui $t7, 0xfa00 -/* 03D4B0 7F008980 ACAF0000 */ sw $t7, ($a1) -/* 03D4B4 7F008984 0002C600 */ sll $t8, $v0, 0x18 -/* 03D4B8 7F008988 0002CC00 */ sll $t9, $v0, 0x10 -/* 03D4BC 7F00898C 03197025 */ or $t6, $t8, $t9 -/* 03D4C0 7F008990 00027A00 */ sll $t7, $v0, 8 -/* 03D4C4 7F008994 01CFC025 */ or $t8, $t6, $t7 -/* 03D4C8 7F008998 26100008 */ addiu $s0, $s0, 8 -/* 03D4CC 7F00899C 371900FF */ ori $t9, $t8, 0xff -/* 03D4D0 7F0089A0 02003825 */ move $a3, $s0 -/* 03D4D4 7F0089A4 ACB90004 */ sw $t9, 4($a1) -/* 03D4D8 7F0089A8 26100008 */ addiu $s0, $s0, 8 -/* 03D4DC 7F0089AC 3C0E0200 */ lui $t6, %hi(0x020043E8) # $t6, 0x200 -/* 03D4E0 7F0089B0 25CE43E8 */ addiu $t6, %lo(0x020043E8) # addiu $t6, $t6, 0x43e8 -/* 03D4E4 7F0089B4 3C060600 */ lui $a2, 0x600 -/* 03D4E8 7F0089B8 02001025 */ move $v0, $s0 -/* 03D4EC 7F0089BC ACE60000 */ sw $a2, ($a3) -/* 03D4F0 7F0089C0 ACEE0004 */ sw $t6, 4($a3) -/* 03D4F4 7F0089C4 26100008 */ addiu $s0, $s0, 8 -/* 03D4F8 7F0089C8 3C0F0200 */ lui $t7, %hi(0x020044B0) # $t7, 0x200 -/* 03D4FC 7F0089CC 25EF44B0 */ addiu $t7, %lo(0x020044B0) # addiu $t7, $t7, 0x44b0 -/* 03D500 7F0089D0 02001825 */ move $v1, $s0 -/* 03D504 7F0089D4 AC4F0004 */ sw $t7, 4($v0) -/* 03D508 7F0089D8 AC460000 */ sw $a2, ($v0) -/* 03D50C 7F0089DC 3C180200 */ lui $t8, %hi(0x02005FF0) # $t8, 0x200 -/* 03D510 7F0089E0 27185FF0 */ addiu $t8, %lo(0x02005FF0) # addiu $t8, $t8, 0x5ff0 -/* 03D514 7F0089E4 26100008 */ addiu $s0, $s0, 8 -/* 03D518 7F0089E8 02002025 */ move $a0, $s0 -/* 03D51C 7F0089EC AC780004 */ sw $t8, 4($v1) -/* 03D520 7F0089F0 AC6B0000 */ sw $t3, ($v1) -/* 03D524 7F0089F4 26100008 */ addiu $s0, $s0, 8 -/* 03D528 7F0089F8 02002825 */ move $a1, $s0 -/* 03D52C 7F0089FC 26100008 */ addiu $s0, $s0, 8 -/* 03D530 7F008A00 AC8D0004 */ sw $t5, 4($a0) -/* 03D534 7F008A04 AC8C0000 */ sw $t4, ($a0) -/* 03D538 7F008A08 02005025 */ move $t2, $s0 -/* 03D53C 7F008A0C 26100008 */ addiu $s0, $s0, 8 -/* 03D540 7F008A10 ACA00004 */ sw $zero, 4($a1) -/* 03D544 7F008A14 ACBF0000 */ sw $ra, ($a1) -/* 03D548 7F008A18 3C19073F */ lui $t9, (0x073FF100 >> 16) # lui $t9, 0x73f -/* 03D54C 7F008A1C 3739F100 */ ori $t9, (0x073FF100 & 0xFFFF) # ori $t9, $t9, 0xf100 -/* 03D550 7F008A20 02001025 */ move $v0, $s0 -/* 03D554 7F008A24 240700FF */ li $a3, 255 -/* 03D558 7F008A28 AD590004 */ sw $t9, 4($t2) -/* 03D55C 7F008A2C AD510000 */ sw $s1, ($t2) -/* 03D560 7F008A30 26100008 */ addiu $s0, $s0, 8 -/* 03D564 7F008A34 3C0F0001 */ lui $t7, (0x00014050 >> 16) # lui $t7, 1 -/* 03D568 7F008A38 35EF4050 */ ori $t7, (0x00014050 & 0xFFFF) # ori $t7, $t7, 0x4050 -/* 03D56C 7F008A3C 02001825 */ move $v1, $s0 -/* 03D570 7F008A40 AC400004 */ sw $zero, 4($v0) -/* 03D574 7F008A44 AC490000 */ sw $t1, ($v0) -/* 03D578 7F008A48 AC6F0004 */ sw $t7, 4($v1) -/* 03D57C 7F008A4C 00087900 */ sll $t7, $t0, 4 -/* 03D580 7F008A50 01E87823 */ subu $t7, $t7, $t0 -/* 03D584 7F008A54 000F7900 */ sll $t7, $t7, 4 -/* 03D588 7F008A58 01E7001A */ div $zero, $t7, $a3 -/* 03D58C 7F008A5C 3C0EF510 */ lui $t6, (0xF5101000 >> 16) # lui $t6, 0xf510 -/* 03D590 7F008A60 35CE1000 */ ori $t6, (0xF5101000 & 0xFFFF) # ori $t6, $t6, 0x1000 -/* 03D594 7F008A64 26100008 */ addiu $s0, $s0, 8 -/* 03D598 7F008A68 02002025 */ move $a0, $s0 -/* 03D59C 7F008A6C AC6E0000 */ sw $t6, ($v1) -/* 03D5A0 7F008A70 3C190007 */ lui $t9, (0x0007C07C >> 16) # lui $t9, 7 -/* 03D5A4 7F008A74 3739C07C */ ori $t9, (0x0007C07C & 0xFFFF) # ori $t9, $t9, 0xc07c -/* 03D5A8 7F008A78 26100008 */ addiu $s0, $s0, 8 -/* 03D5AC 7F008A7C 3C18F200 */ lui $t8, 0xf200 -/* 03D5B0 7F008A80 AC980000 */ sw $t8, ($a0) -/* 03D5B4 7F008A84 AC990004 */ sw $t9, 4($a0) -/* 03D5B8 7F008A88 02002825 */ move $a1, $s0 -/* 03D5BC 7F008A8C 3C0EFA00 */ lui $t6, 0xfa00 -/* 03D5C0 7F008A90 ACAE0000 */ sw $t6, ($a1) -/* 03D5C4 7F008A94 00087080 */ sll $t6, $t0, 2 -/* 03D5C8 7F008A98 01C87023 */ subu $t6, $t6, $t0 -/* 03D5CC 7F008A9C 000E7080 */ sll $t6, $t6, 2 -/* 03D5D0 7F008AA0 01C87021 */ addu $t6, $t6, $t0 -/* 03D5D4 7F008AA4 000E7100 */ sll $t6, $t6, 4 -/* 03D5D8 7F008AA8 00003012 */ mflo $a2 -/* 03D5DC 7F008AAC 30D800FF */ andi $t8, $a2, 0xff -/* 03D5E0 7F008AB0 03003025 */ move $a2, $t8 -/* 03D5E4 7F008AB4 01C7001A */ div $zero, $t6, $a3 -/* 03D5E8 7F008AB8 0018CE00 */ sll $t9, $t8, 0x18 -/* 03D5EC 7F008ABC 26100008 */ addiu $s0, $s0, 8 -/* 03D5F0 7F008AC0 14E00002 */ bnez $a3, .L7F008ACC -/* 03D5F4 7F008AC4 00000000 */ nop -/* 03D5F8 7F008AC8 0007000D */ break 7 -.L7F008ACC: -/* 03D5FC 7F008ACC 2401FFFF */ li $at, -1 -/* 03D600 7F008AD0 14E10004 */ bne $a3, $at, .L7F008AE4 -/* 03D604 7F008AD4 3C018000 */ lui $at, 0x8000 -/* 03D608 7F008AD8 15E10002 */ bne $t7, $at, .L7F008AE4 -/* 03D60C 7F008ADC 00000000 */ nop -/* 03D610 7F008AE0 0006000D */ break 6 -.L7F008AE4: -/* 03D614 7F008AE4 00007812 */ mflo $t7 -/* 03D618 7F008AE8 31F800FF */ andi $t8, $t7, 0xff -/* 03D61C 7F008AEC 14E00002 */ bnez $a3, .L7F008AF8 -/* 03D620 7F008AF0 00000000 */ nop -/* 03D624 7F008AF4 0007000D */ break 7 -.L7F008AF8: -/* 03D628 7F008AF8 2401FFFF */ li $at, -1 -/* 03D62C 7F008AFC 14E10004 */ bne $a3, $at, .L7F008B10 -/* 03D630 7F008B00 3C018000 */ lui $at, 0x8000 -/* 03D634 7F008B04 15C10002 */ bne $t6, $at, .L7F008B10 -/* 03D638 7F008B08 00000000 */ nop -/* 03D63C 7F008B0C 0006000D */ break 6 -.L7F008B10: -/* 03D640 7F008B10 00187400 */ sll $t6, $t8, 0x10 -/* 03D644 7F008B14 032E7825 */ or $t7, $t9, $t6 -/* 03D648 7F008B18 0006C200 */ sll $t8, $a2, 8 -/* 03D64C 7F008B1C 01F8C825 */ or $t9, $t7, $t8 -/* 03D650 7F008B20 372E00FF */ ori $t6, $t9, 0xff -/* 03D654 7F008B24 ACAE0004 */ sw $t6, 4($a1) -/* 03D658 7F008B28 3C180200 */ lui $t8, %hi(0x02004758) # $t8, 0x200 -/* 03D65C 7F008B2C 02001825 */ move $v1, $s0 -/* 03D660 7F008B30 27184758 */ addiu $t8, %lo(0x02004758) # addiu $t8, $t8, 0x4758 -/* 03D664 7F008B34 3C0F0600 */ lui $t7, 0x600 -/* 03D668 7F008B38 AC6F0000 */ sw $t7, ($v1) -/* 03D66C 7F008B3C AC780004 */ sw $t8, 4($v1) -/* 03D670 7F008B40 8FBF0034 */ lw $ra, 0x34($sp) -/* 03D674 7F008B44 26020008 */ addiu $v0, $s0, 8 -/* 03D678 7F008B48 8FB0002C */ lw $s0, 0x2c($sp) -/* 03D67C 7F008B4C 8FB10030 */ lw $s1, 0x30($sp) -/* 03D680 7F008B50 03E00008 */ jr $ra -/* 03D684 7F008B54 27BD00E8 */ addiu $sp, $sp, 0xe8 -) -#endif - - - -#ifdef NONMATCHING -void sub_GAME_7F008B58(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F008B58 -/* 03D688 7F008B58 3C018003 */ lui $at, %hi(D_8002A7D4) -/* 03D68C 7F008B5C A020A7D4 */ sb $zero, %lo(D_8002A7D4)($at) -/* 03D690 7F008B60 3C01445C */ li $at, 0x445C0000 # 880.000000 -/* 03D694 7F008B64 44812000 */ mtc1 $at, $f4 -/* 03D698 7F008B68 3C018007 */ lui $at, %hi(x) -/* 03D69C 7F008B6C 3C0E0200 */ lui $t6, %hi(0x020067F0) # $t6, 0x200 -/* 03D6A0 7F008B70 E4249574 */ swc1 $f4, %lo(x)($at) -/* 03D6A4 7F008B74 3C01C220 */ li $at, 0xC2200000 # -40.000000 -/* 03D6A8 7F008B78 44813000 */ mtc1 $at, $f6 -/* 03D6AC 7F008B7C 3C0F0200 */ lui $t7, 0x200 -/* 03D6B0 7F008B80 3C018003 */ lui $at, %hi(D_8002A89C) -/* 03D6B4 7F008B84 25EF0000 */ addiu $t7, $t7, 0 -/* 03D6B8 7F008B88 25CE67F0 */ addiu $t6, %lo(0x020067F0) # addiu $t6, $t6, 0x67f0 -/* 03D6BC 7F008B8C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03D6C0 7F008B90 01CF3023 */ subu $a2, $t6, $t7 -/* 03D6C4 7F008B94 E426A89C */ swc1 $f6, %lo(D_8002A89C)($at) -/* 03D6C8 7F008B98 AFA5001C */ sw $a1, 0x1c($sp) -/* 03D6CC 7F008B9C 3C028007 */ lui $v0, %hi(virtualaddress) -/* 03D6D0 7F008BA0 3C018003 */ lui $at, %hi(intro_eye_counter) -/* 03D6D4 7F008BA4 24C6003F */ addiu $a2, $a2, 0x3f -/* 03D6D8 7F008BA8 24429590 */ addiu $v0, %lo(virtualaddress) # addiu $v0, $v0, -0x6a70 -/* 03D6DC 7F008BAC AFBF0014 */ sw $ra, 0x14($sp) -/* 03D6E0 7F008BB0 AC20A8A0 */ sw $zero, %lo(intro_eye_counter)($at) -/* 03D6E4 7F008BB4 34D8003F */ ori $t8, $a2, 0x3f -/* 03D6E8 7F008BB8 3C05002A */ lui $a1, %hi(_GlobalimagetablecmdblkSegmentRomStart) # $a1, 0x2a -/* 03D6EC 7F008BBC AC440000 */ sw $a0, ($v0) -/* 03D6F0 7F008BC0 24A5E560 */ addiu $a1, %lo(_GlobalimagetablecmdblkSegmentRomStart) # addiu $a1, $a1, -0x1aa0 -/* 03D6F4 7F008BC4 0C001707 */ jal romCopy -/* 03D6F8 7F008BC8 3B06003F */ xori $a2, $t8, 0x3f -/* 03D6FC 7F008BCC 8FBF0014 */ lw $ra, 0x14($sp) -/* 03D700 7F008BD0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03D704 7F008BD4 03E00008 */ jr $ra -/* 03D708 7F008BD8 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void retrieve_display_rareware_logo(void) { - -} -#else -GLOBAL_ASM( -.text -glabel retrieve_display_rareware_logo -/* 03D70C 7F008BDC 3C028003 */ lui $v0, %hi(D_8002A7D0) -/* 03D710 7F008BE0 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 -/* 03D714 7F008BE4 8C4E0000 */ lw $t6, ($v0) -/* 03D718 7F008BE8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 03D71C 7F008BEC 240F0001 */ li $t7, 1 -/* 03D720 7F008BF0 AFB00020 */ sw $s0, 0x20($sp) -/* 03D724 7F008BF4 3C19BC00 */ lui $t9, (0xBC000806 >> 16) # lui $t9, 0xbc00 -/* 03D728 7F008BF8 01EEC023 */ subu $t8, $t7, $t6 -/* 03D72C 7F008BFC AFBF0024 */ sw $ra, 0x24($sp) -/* 03D730 7F008C00 AC580000 */ sw $t8, ($v0) -/* 03D734 7F008C04 37390806 */ ori $t9, (0xBC000806 & 0xFFFF) # ori $t9, $t9, 0x806 -/* 03D738 7F008C08 AC990000 */ sw $t9, ($a0) -/* 03D73C 7F008C0C 24900008 */ addiu $s0, $a0, 8 -/* 03D740 7F008C10 00801825 */ move $v1, $a0 -/* 03D744 7F008C14 3C048007 */ lui $a0, %hi(virtualaddress) -/* 03D748 7F008C18 8C849590 */ lw $a0, %lo(virtualaddress)($a0) -/* 03D74C 7F008C1C 0C003A2C */ jal osVirtualToPhysical -/* 03D750 7F008C20 AFA3002C */ sw $v1, 0x2c($sp) -/* 03D754 7F008C24 8FA3002C */ lw $v1, 0x2c($sp) -/* 03D758 7F008C28 3C098003 */ lui $t1, %hi(D_8002A7D4) -/* 03D75C 7F008C2C 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c -/* 03D760 7F008C30 AC620004 */ sw $v0, 4($v1) -/* 03D764 7F008C34 91240000 */ lbu $a0, ($t1) -/* 03D768 7F008C38 3C088003 */ lui $t0, %hi(intro_eye_counter) -/* 03D76C 7F008C3C 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 -/* 03D770 7F008C40 50800005 */ beql $a0, $zero, .L7F008C58 -/* 03D774 7F008C44 8D0B0000 */ lw $t3, ($t0) -/* 03D778 7F008C48 24010001 */ li $at, 1 -/* 03D77C 7F008C4C 5481005C */ bnel $a0, $at, .L7F008DC0 -/* 03D780 7F008C50 8FBF0024 */ lw $ra, 0x24($sp) -/* 03D784 7F008C54 8D0B0000 */ lw $t3, ($t0) -.L7F008C58: -/* 03D788 7F008C58 240A00FF */ li $t2, 255 -/* 03D78C 7F008C5C 24050046 */ li $a1, 70 -/* 03D790 7F008C60 016A0019 */ multu $t3, $t2 -/* 03D794 7F008C64 00002012 */ mflo $a0 -/* 03D798 7F008C68 00000000 */ nop -/* 03D79C 7F008C6C 00000000 */ nop -/* 03D7A0 7F008C70 0085001A */ div $zero, $a0, $a1 -/* 03D7A4 7F008C74 14A00002 */ bnez $a1, .L7F008C80 -/* 03D7A8 7F008C78 00000000 */ nop -/* 03D7AC 7F008C7C 0007000D */ break 7 -.L7F008C80: -/* 03D7B0 7F008C80 2401FFFF */ li $at, -1 -/* 03D7B4 7F008C84 14A10004 */ bne $a1, $at, .L7F008C98 -/* 03D7B8 7F008C88 3C018000 */ lui $at, 0x8000 -/* 03D7BC 7F008C8C 14810002 */ bne $a0, $at, .L7F008C98 -/* 03D7C0 7F008C90 00000000 */ nop -/* 03D7C4 7F008C94 0006000D */ break 6 -.L7F008C98: -/* 03D7C8 7F008C98 00001812 */ mflo $v1 -/* 03D7CC 7F008C9C 28610100 */ slti $at, $v1, 0x100 -/* 03D7D0 7F008CA0 14200002 */ bnez $at, .L7F008CAC -/* 03D7D4 7F008CA4 00000000 */ nop -/* 03D7D8 7F008CA8 01401825 */ move $v1, $t2 -.L7F008CAC: -/* 03D7DC 7F008CAC 04610002 */ bgez $v1, .L7F008CB8 -/* 03D7E0 7F008CB0 3C01FFFF */ lui $at, (0xFFFF60A0 >> 16) # lui $at, 0xffff -/* 03D7E4 7F008CB4 00001825 */ move $v1, $zero -.L7F008CB8: -/* 03D7E8 7F008CB8 342160A0 */ ori $at, (0xFFFF60A0 & 0xFFFF) # ori $at, $at, 0x60a0 -/* 03D7EC 7F008CBC 00816021 */ addu $t4, $a0, $at -/* 03D7F0 7F008CC0 0185001A */ div $zero, $t4, $a1 -/* 03D7F4 7F008CC4 14A00002 */ bnez $a1, .L7F008CD0 -/* 03D7F8 7F008CC8 00000000 */ nop -/* 03D7FC 7F008CCC 0007000D */ break 7 -.L7F008CD0: -/* 03D800 7F008CD0 2401FFFF */ li $at, -1 -/* 03D804 7F008CD4 14A10004 */ bne $a1, $at, .L7F008CE8 -/* 03D808 7F008CD8 3C018000 */ lui $at, 0x8000 -/* 03D80C 7F008CDC 15810002 */ bne $t4, $at, .L7F008CE8 -/* 03D810 7F008CE0 00000000 */ nop -/* 03D814 7F008CE4 0006000D */ break 6 -.L7F008CE8: -/* 03D818 7F008CE8 00006812 */ mflo $t5 -/* 03D81C 7F008CEC 014D1023 */ subu $v0, $t2, $t5 -/* 03D820 7F008CF0 28410100 */ slti $at, $v0, 0x100 -/* 03D824 7F008CF4 14200002 */ bnez $at, .L7F008D00 -/* 03D828 7F008CF8 00000000 */ nop -/* 03D82C 7F008CFC 01401025 */ move $v0, $t2 -.L7F008D00: -/* 03D830 7F008D00 04410002 */ bgez $v0, .L7F008D0C -/* 03D834 7F008D04 00000000 */ nop -/* 03D838 7F008D08 00001025 */ move $v0, $zero -.L7F008D0C: -/* 03D83C 7F008D0C 00620019 */ multu $v1, $v0 -/* 03D840 7F008D10 3C018007 */ lui $at, %hi(x) -/* 03D844 7F008D14 C4249574 */ lwc1 $f4, %lo(x)($at) -/* 03D848 7F008D18 02002025 */ move $a0, $s0 -/* 03D84C 7F008D1C 24050193 */ li $a1, 403 -/* 03D850 7F008D20 4600218D */ trunc.w.s $f6, $f4 -/* 03D854 7F008D24 240601E8 */ li $a2, 488 -/* 03D858 7F008D28 44073000 */ mfc1 $a3, $f6 -/* 03D85C 7F008D2C 00007012 */ mflo $t6 -/* 03D860 7F008D30 00000000 */ nop -/* 03D864 7F008D34 00000000 */ nop -/* 03D868 7F008D38 01CA001A */ div $zero, $t6, $t2 -/* 03D86C 7F008D3C 0000C012 */ mflo $t8 -/* 03D870 7F008D40 AFB80010 */ sw $t8, 0x10($sp) -/* 03D874 7F008D44 15400002 */ bnez $t2, .L7F008D50 -/* 03D878 7F008D48 00000000 */ nop -/* 03D87C 7F008D4C 0007000D */ break 7 -.L7F008D50: -/* 03D880 7F008D50 2401FFFF */ li $at, -1 -/* 03D884 7F008D54 15410004 */ bne $t2, $at, .L7F008D68 -/* 03D888 7F008D58 3C018000 */ lui $at, 0x8000 -/* 03D88C 7F008D5C 15C10002 */ bne $t6, $at, .L7F008D68 -/* 03D890 7F008D60 00000000 */ nop -/* 03D894 7F008D64 0006000D */ break 6 -.L7F008D68: -/* 03D898 7F008D68 0FC02130 */ jal load_display_rare_logo -/* 03D89C 7F008D6C 00000000 */ nop -/* 03D8A0 7F008D70 3C088003 */ lui $t0, %hi(intro_eye_counter) -/* 03D8A4 7F008D74 2508A8A0 */ addiu $t0, %lo(intro_eye_counter) # addiu $t0, $t0, -0x5760 -/* 03D8A8 7F008D78 8D030000 */ lw $v1, ($t0) -/* 03D8AC 7F008D7C 3C098003 */ lui $t1, %hi(D_8002A7D4) -/* 03D8B0 7F008D80 2529A7D4 */ addiu $t1, %lo(D_8002A7D4) # addiu $t1, $t1, -0x582c -/* 03D8B4 7F008D84 28640104 */ slti $a0, $v1, 0x104 -/* 03D8B8 7F008D88 24790001 */ addiu $t9, $v1, 1 -/* 03D8BC 7F008D8C 00408025 */ move $s0, $v0 -/* 03D8C0 7F008D90 1480000A */ bnez $a0, .L7F008DBC -/* 03D8C4 7F008D94 AD190000 */ sw $t9, ($t0) -/* 03D8C8 7F008D98 2B210122 */ slti $at, $t9, 0x122 -/* 03D8CC 7F008D9C 54200008 */ bnezl $at, .L7F008DC0 -/* 03D8D0 7F008DA0 8FBF0024 */ lw $ra, 0x24($sp) -/* 03D8D4 7F008DA4 912C0000 */ lbu $t4, ($t1) -/* 03D8D8 7F008DA8 AD000000 */ sw $zero, ($t0) -/* 03D8DC 7F008DAC 258F0001 */ addiu $t7, $t4, 1 -/* 03D8E0 7F008DB0 A12F0000 */ sb $t7, ($t1) -/* 03D8E4 7F008DB4 25EE0001 */ addiu $t6, $t7, 1 -/* 03D8E8 7F008DB8 A12E0000 */ sb $t6, ($t1) -.L7F008DBC: -/* 03D8EC 7F008DBC 8FBF0024 */ lw $ra, 0x24($sp) -.L7F008DC0: -/* 03D8F0 7F008DC0 02001025 */ move $v0, $s0 -/* 03D8F4 7F008DC4 8FB00020 */ lw $s0, 0x20($sp) -/* 03D8F8 7F008DC8 03E00008 */ jr $ra -/* 03D8FC 7F008DCC 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - -s32 sub_GAME_7F008DD0(void) -{ - return (D_8002A7D4 == 2); + return sub_GAME_7F007F30(gdl, 2, &matrix); } +extern Gfx *D_020043E8; +extern Gfx *D_020044B0; +extern Gfx *D_02004758; +extern u8 *D_02004FE8; +extern u8 *D_02005FF0; +void guPerspective(Mtx *m, u16 *perspNorm, float fovy, float aspect, float near, float far, float scale); +void guLookAt(Mtx *m, float xEye, float yEye, float zEye, float xAt, float yAt, float zAt, float xUp, float yUp, float zUp); +void guRotate(Mtx *m, float a, float x, float y, float z); +Gfx *load_display_rare_logo(Gfx *gdl, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + D_8002A878[2] = arg3; + gSPDisplayList(gdl++, &D_01000000); + gdl = insert_imageDL(gdl); + { + u16 perspNorm; + guPerspective(&matrix_buffer_rarelogo_0[D_8002A7D0], &perspNorm, 60.0f, (320.0f / 240.0f), 100.0f, 5000.0f, 1.0f); + gSPPerspNormalize(gdl++, perspNorm); + } + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_rarelogo_0[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION)); + gSPClearGeometryMode(gdl++, -1); + gSPSetGeometryMode(gdl++, (G_SHADE | G_CULL_BACK | G_LIGHTING | G_TEXTURE_GEN | G_SHADING_SMOOTH)); + guLookAt(&matrix_buffer_rarelogo_1[D_8002A7D0], D_8002A878[0], D_8002A878[1], D_8002A878[2], (D_8002A878[0] + D_8002A884[0]), (D_8002A878[1] + D_8002A884[1]), (D_8002A878[2] + D_8002A884[2]), D_8002A890[0], D_8002A890[1], D_8002A890[2]); + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_rarelogo_1[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW)); + guRotate(&matrix_buffer_rarelogo_2[D_8002A7D0], D_8002A89C, 0.0f, 1.0f, 0.0f); + D_8002A89C += 2.0f; + gSPMatrix(gdl++, osVirtualToPhysical(&matrix_buffer_rarelogo_2[D_8002A7D0]), (G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW)); + gSPSetLights1(gdl++, D_8002A860); + D_8002A860.a.l.col[0] = D_8002A860.a.l.col[1] = D_8002A860.a.l.col[2] = D_8002A860.a.l.colc[0] = D_8002A860.a.l.colc[1] = D_8002A860.a.l.colc[2] = arg4; + gDPPipeSync(gdl++); + gDPPipeSync(gdl++); + gDPSetCombineMode(gdl++, G_CC_MODULATEI, G_CC_MODULATEI); + gDPSetTexturePersp(gdl++, G_TP_PERSP); + gDPSetTextureDetail(gdl++, G_TD_CLAMP); + gDPSetTextureLOD(gdl++, G_TL_TILE); + gDPSetTextureLUT(gdl++, G_TT_NONE); + gDPSetTextureFilter(gdl++, G_TF_BILERP); + gDPSetTextureConvert(gdl++, G_TC_FILT); + gDPPipeSync(gdl++); + gDPPipeSync(gdl++); + gSPTexture(gdl++, 0x0800, 0x0800, 0, G_TX_RENDERTILE, G_ON); + gDPLoadTextureBlock(gdl++, &D_02004FE8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, (G_TX_NOMIRROR | G_TX_WRAP), (G_TX_NOMIRROR | G_TX_WRAP), 5, 5, G_TX_NOLOD, G_TX_NOLOD); + gDPSetPrimColor(gdl++, 0, 0, arg4, arg4, arg4, 0xFF); + gSPDisplayList(gdl++, &D_020043E8); + gSPDisplayList(gdl++, &D_020044B0); + gDPLoadTextureBlock(gdl++, &D_02005FF0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, (G_TX_NOMIRROR | G_TX_WRAP), (G_TX_NOMIRROR | G_TX_WRAP), 5, 5, G_TX_NOLOD, G_TX_NOLOD); + gDPSetPrimColor(gdl++, 0, 0, ((arg4 * 0xF0) / 0xFF), ((arg4 * 0xD0) / 0xFF), ((arg4 * 0xF0) / 0xFF), 0xFF); + gSPDisplayList(gdl++, &D_02004758); + return gdl; +} +#define ALIGN64(val) ((((u32)val) + 0x3f | 0x3f) ^ 0x3f) +extern void *_GlobalimagetablecmdblkSegmentRomStart; +extern void *D_02000000; +extern void *D_020067F0; +void sub_GAME_7F008B58(s32 address, s32 size) { + D_8002A7D4 = 0; + x = 880.0f; + D_8002A89C = -40.0f; + intro_eye_counter = 0; + virtualaddress = address; + romCopy(virtualaddress, &_GlobalimagetablecmdblkSegmentRomStart, ALIGN64((u32)&D_020067F0 - (u32)&D_02000000)); +} + +Gfx *retrieve_display_rareware_logo(Gfx *gdl) { + D_8002A7D0 = (1 - D_8002A7D0); + gSPSegment(gdl++, 2, osVirtualToPhysical(virtualaddress)); + if ((D_8002A7D4 == 0) || (D_8002A7D4 == 1)) { + s32 var1; + s32 var2; + var1 = (intro_eye_counter * 255) / 70; + if (var1 > 255) { + var1 = 255; + } + if (var1 < 0) { + var1 = 0; + } + var2 = 255 - (((intro_eye_counter * 255) - 40800) / 70); + if (var2 > 255) { + var2 = 255; + } + if (var2 < 0) { + var2 = 0; + } + gdl = load_display_rare_logo(gdl, 403, 488, x, (var1 * var2) / 255); + if (intro_eye_counter++ >= 260) { + if (intro_eye_counter >= 290) { + intro_eye_counter = 0; + D_8002A7D4++; + D_8002A7D4++; + } + } + } + + return gdl; +} + +s32 sub_GAME_7F008DD0(void) { + return (D_8002A7D4 == 2); +} #ifdef NONMATCHING -void sub_GAME_7F008DE4(void *arg0, void *arg1) -{ - - dword_CODE_bss_8006958C = (s32) *arg0; - *arg1 = (s32) (*arg1 + -0x40400); - *arg0 = *arg0 + 0x40400; - - dword_CODE_bss_80069588 = arg0; - romCopy(arg0, &unknown2, (((&unknown2_end - &unknown2) + 0x3F) | 0x3F) ^ 0x3F); +// Minor reordering + regalloc +void sub_GAME_7F01B0E0(s32, s32); +extern void *unknown2; +extern void *unknown2_end; +void sub_GAME_7F008DE4(u8 **arg0, s32 *arg1) { + dword_CODE_bss_8006958C = *arg0; + *arg1 -= 0x40400; + *arg0 += 0x40400; + dword_CODE_bss_80069588 = *arg0; + romCopy(dword_CODE_bss_80069588, &unknown2, ALIGN64(((u32)&unknown2_end - (u32)&unknown2))); sub_GAME_7F01B0E0(dword_CODE_bss_80069588, dword_CODE_bss_8006958C); } - #else GLOBAL_ASM( .text @@ -1607,6 +601,9 @@ void sub_GAME_7F008E80(void) { } #else GLOBAL_ASM( +.late_rodata +glabel D_8004F2DC +.word 0x3f68f5c3 .text glabel sub_GAME_7F008E80 /* 03D9B0 7F008E80 240E0002 */ li $t6, 2 @@ -1854,365 +851,100 @@ void sub_GAME_7F00920C(void) } } +signed short sins(unsigned short x); +Gfx *sub_GAME_7F009254(Gfx *gdl) { + D_8002A7D0 = (1 - D_8002A7D0); + switch (D_8002A7D4 - 2) + { + case 0: + gdl = something_with_gunbarrel_and_rareware_logo_matrix_manip(gdl); + x += 6.0f; + if (word_CODE_bss_80069584 < 0) { + word_CODE_bss_80069584 = 0xC8; + dword_CODE_bss_8006957C = (x - 12.0f); + } else { + word_CODE_bss_80069584 -= 6; + } + if (x > 1390.0f) { + D_8002A7D4++; + x = 1276.0f; + } + break; -#ifdef NONMATCHING -void sub_GAME_7F009254(void) { + case 1: + gSPDisplayList(gdl++, &D_01000000); + gdl = insert_sight_backdrop_eye_intro(insert_sniper_sight_eye_intro(insert_imageDL(insert_imageDL(insert_imageDL(insert_imageDL(insert_imageDL(gdl))))))); + if (x < 600.0f) { + gdl = insert_bond_eye_intro(gdl); + } + x -= 5.8183274f; + if (x <= -80.0f) { + D_8002A7D4++; + intro_eye_counter = 20; + } + break; + case 2: + gdl = insert_bond_eye_intro(insert_sight_backdrop_eye_intro(insert_sniper_sight_eye_intro(gdl))); + intro_eye_counter--; + if (intro_eye_counter < 0) { + D_8002A7D4++; + die_blood_image_routine(0); + intro_state_blood_animation = 0; + intro_eye_counter = 1; + } + break; + + case 3: + intro_eye_counter--; + if (intro_eye_counter == 0) { + intro_state_blood_animation = die_blood_image_routine(1); + intro_eye_counter = 2; + } + gdl = sub_GAME_7F01C400(insert_bond_eye_intro(insert_sight_backdrop_eye_intro(insert_sniper_sight_eye_intro(gdl)))); + if (intro_state_blood_animation != 0) { + D_8002A7D4++; + word_CODE_bss_80069584 = 0; + dword_CODE_bss_8006957C = x; + intro_eye_counter = 0; + } + break; + + case 4: + word_CODE_bss_80069584 += 0x38E; + intro_eye_counter++; + x = ((sins(word_CODE_bss_80069584) * 64.0f) / 32768.0f) + dword_CODE_bss_8006957C; + gdl = sub_GAME_7F01CA18(insert_bond_eye_intro(insert_sight_backdrop_eye_intro(insert_sniper_sight_eye_intro(gdl)))); + if (intro_eye_counter >= 0x6C) { + intro_eye_counter = 0; + D_8002A7D4++; + } + break; + + case 5: + word_CODE_bss_80069584 += 0x38E; + x = ((sins(word_CODE_bss_80069584) * 64.0f) / 32768.0f) + dword_CODE_bss_8006957C; + gdl = sub_GAME_7F01CA18(insert_bond_eye_intro(insert_sight_backdrop_eye_intro(insert_sniper_sight_eye_intro(gdl)))); + intro_eye_counter += 8; + gdl = sub_GAME_7F007E70(gdl, intro_eye_counter); + if (intro_eye_counter >= 0xF7) { + intro_eye_counter = 0; + D_8002A7D4++; + } + break; + + case 6: + gSPDisplayList(gdl++, &D_01000000); + gdl = insert_imageDL(gdl); + if (intro_eye_counter++ >= 0x1E) { + intro_eye_counter = 0; + D_8002A7D4++; + } + break; + }; + + return gdl; } -#else -GLOBAL_ASM( -.late_rodata -glabel jpt_8004F2E0 - .word .L7F0092A4 - .word .L7F009344 - .word .L7F009428 - .word .L7F00949C - .word .L7F009550 - .word .L7F009610 - .word .L7F0096D8 -glabel D_8004F2FC -.word 0x44adc000 -glabel D_8004F300 -.word 0x449f8000 -glabel D_8004F304 -.word 0x40ba2fbd -.text -glabel sub_GAME_7F009254 -/* 03DD84 7F009254 3C028003 */ lui $v0, %hi(D_8002A7D0) -/* 03DD88 7F009258 2442A7D0 */ addiu $v0, %lo(D_8002A7D0) # addiu $v0, $v0, -0x5830 -/* 03DD8C 7F00925C 8C4E0000 */ lw $t6, ($v0) -/* 03DD90 7F009260 240F0001 */ li $t7, 1 -/* 03DD94 7F009264 3C198003 */ lui $t9, %hi(D_8002A7D4) -/* 03DD98 7F009268 01EEC023 */ subu $t8, $t7, $t6 -/* 03DD9C 7F00926C AC580000 */ sw $t8, ($v0) -/* 03DDA0 7F009270 9339A7D4 */ lbu $t9, %lo(D_8002A7D4)($t9) -/* 03DDA4 7F009274 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03DDA8 7F009278 AFBF0014 */ sw $ra, 0x14($sp) -/* 03DDAC 7F00927C 2728FFFE */ addiu $t0, $t9, -2 -/* 03DDB0 7F009280 2D010007 */ sltiu $at, $t0, 7 -/* 03DDB4 7F009284 1020012A */ beqz $at, .L7F009730 -/* 03DDB8 7F009288 00802825 */ move $a1, $a0 -/* 03DDBC 7F00928C 00084080 */ sll $t0, $t0, 2 -/* 03DDC0 7F009290 3C018005 */ lui $at, %hi(jpt_8004F2E0) -/* 03DDC4 7F009294 00280821 */ addu $at, $at, $t0 -/* 03DDC8 7F009298 8C28F2E0 */ lw $t0, %lo(jpt_8004F2E0)($at) -/* 03DDCC 7F00929C 01000008 */ jr $t0 -/* 03DDD0 7F0092A0 00000000 */ nop -.L7F0092A4: -/* 03DDD4 7F0092A4 0FC01E90 */ jal something_with_gunbarrel_and_rareware_logo_matrix_manip -/* 03DDD8 7F0092A8 00A02025 */ move $a0, $a1 -/* 03DDDC 7F0092AC 3C078007 */ lui $a3, %hi(x) -/* 03DDE0 7F0092B0 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03DDE4 7F0092B4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 03DDE8 7F0092B8 44813000 */ mtc1 $at, $f6 -/* 03DDEC 7F0092BC C4E40000 */ lwc1 $f4, ($a3) -/* 03DDF0 7F0092C0 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) -/* 03DDF4 7F0092C4 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c -/* 03DDF8 7F0092C8 46062200 */ add.s $f8, $f4, $f6 -/* 03DDFC 7F0092CC 84640000 */ lh $a0, ($v1) -/* 03DE00 7F0092D0 00402825 */ move $a1, $v0 -/* 03DE04 7F0092D4 0481000A */ bgez $a0, .L7F009300 -/* 03DE08 7F0092D8 E4E80000 */ swc1 $f8, ($a3) -/* 03DE0C 7F0092DC 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 03DE10 7F0092E0 44815000 */ mtc1 $at, $f10 -/* 03DE14 7F0092E4 C4E00000 */ lwc1 $f0, ($a3) -/* 03DE18 7F0092E8 240900C8 */ li $t1, 200 -/* 03DE1C 7F0092EC A4690000 */ sh $t1, ($v1) -/* 03DE20 7F0092F0 460A0401 */ sub.s $f16, $f0, $f10 -/* 03DE24 7F0092F4 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) -/* 03DE28 7F0092F8 10000004 */ b .L7F00930C -/* 03DE2C 7F0092FC E430957C */ swc1 $f16, %lo(dword_CODE_bss_8006957C)($at) -.L7F009300: -/* 03DE30 7F009300 248AFFFA */ addiu $t2, $a0, -6 -/* 03DE34 7F009304 A46A0000 */ sh $t2, ($v1) -/* 03DE38 7F009308 C4E00000 */ lwc1 $f0, ($a3) -.L7F00930C: -/* 03DE3C 7F00930C 3C018005 */ lui $at, %hi(D_8004F2FC) -/* 03DE40 7F009310 C432F2FC */ lwc1 $f18, %lo(D_8004F2FC)($at) -/* 03DE44 7F009314 4600903C */ c.lt.s $f18, $f0 -/* 03DE48 7F009318 00000000 */ nop -/* 03DE4C 7F00931C 45000104 */ bc1f .L7F009730 -/* 03DE50 7F009320 3C0B8003 */ lui $t3, %hi(D_8002A7D4) -/* 03DE54 7F009324 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) -/* 03DE58 7F009328 3C018003 */ lui $at, %hi(D_8002A7D4) -/* 03DE5C 7F00932C 256C0001 */ addiu $t4, $t3, 1 -/* 03DE60 7F009330 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) -/* 03DE64 7F009334 3C018005 */ lui $at, %hi(D_8004F300) -/* 03DE68 7F009338 C424F300 */ lwc1 $f4, %lo(D_8004F300)($at) -/* 03DE6C 7F00933C 100000FC */ b .L7F009730 -/* 03DE70 7F009340 E4E40000 */ swc1 $f4, ($a3) -.L7F009344: -/* 03DE74 7F009344 3C0F0100 */ lui $t7, 0x100 -/* 03DE78 7F009348 25EF0000 */ addiu $t7, $t7, 0 -/* 03DE7C 7F00934C 00A01025 */ move $v0, $a1 -/* 03DE80 7F009350 3C0D0600 */ lui $t5, 0x600 -/* 03DE84 7F009354 AC4D0000 */ sw $t5, ($v0) -/* 03DE88 7F009358 AC4F0004 */ sw $t7, 4($v0) -/* 03DE8C 7F00935C 0FC07034 */ jal insert_imageDL -/* 03DE90 7F009360 24A40008 */ addiu $a0, $a1, 8 -/* 03DE94 7F009364 0FC07034 */ jal insert_imageDL -/* 03DE98 7F009368 00402025 */ move $a0, $v0 -/* 03DE9C 7F00936C 0FC07034 */ jal insert_imageDL -/* 03DEA0 7F009370 00402025 */ move $a0, $v0 -/* 03DEA4 7F009374 0FC07034 */ jal insert_imageDL -/* 03DEA8 7F009378 00402025 */ move $a0, $v0 -/* 03DEAC 7F00937C 0FC07034 */ jal insert_imageDL -/* 03DEB0 7F009380 00402025 */ move $a0, $v0 -/* 03DEB4 7F009384 0FC01F63 */ jal insert_sniper_sight_eye_intro -/* 03DEB8 7F009388 00402025 */ move $a0, $v0 -/* 03DEBC 7F00938C 0FC01EE5 */ jal insert_sight_backdrop_eye_intro -/* 03DEC0 7F009390 00402025 */ move $a0, $v0 -/* 03DEC4 7F009394 3C078007 */ lui $a3, %hi(x) -/* 03DEC8 7F009398 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03DECC 7F00939C 3C014416 */ li $at, 0x44160000 # 600.000000 -/* 03DED0 7F0093A0 44813000 */ mtc1 $at, $f6 -/* 03DED4 7F0093A4 C4E00000 */ lwc1 $f0, ($a3) -/* 03DED8 7F0093A8 00402825 */ move $a1, $v0 -/* 03DEDC 7F0093AC 4606003C */ c.lt.s $f0, $f6 -/* 03DEE0 7F0093B0 00000000 */ nop -/* 03DEE4 7F0093B4 45000007 */ bc1f .L7F0093D4 -/* 03DEE8 7F0093B8 00000000 */ nop -/* 03DEEC 7F0093BC 0FC020B2 */ jal insert_bond_eye_intro -/* 03DEF0 7F0093C0 00402025 */ move $a0, $v0 -/* 03DEF4 7F0093C4 3C078007 */ lui $a3, %hi(x) -/* 03DEF8 7F0093C8 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03DEFC 7F0093CC C4E00000 */ lwc1 $f0, ($a3) -/* 03DF00 7F0093D0 00402825 */ move $a1, $v0 -.L7F0093D4: -/* 03DF04 7F0093D4 3C018005 */ lui $at, %hi(D_8004F304) -/* 03DF08 7F0093D8 C428F304 */ lwc1 $f8, %lo(D_8004F304)($at) -/* 03DF0C 7F0093DC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 -/* 03DF10 7F0093E0 44818000 */ mtc1 $at, $f16 -/* 03DF14 7F0093E4 46080281 */ sub.s $f10, $f0, $f8 -/* 03DF18 7F0093E8 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03DF1C 7F0093EC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03DF20 7F0093F0 3C0E8003 */ lui $t6, %hi(D_8002A7D4) -/* 03DF24 7F0093F4 E4EA0000 */ swc1 $f10, ($a3) -/* 03DF28 7F0093F8 C4F20000 */ lwc1 $f18, ($a3) -/* 03DF2C 7F0093FC 4610903E */ c.le.s $f18, $f16 -/* 03DF30 7F009400 00000000 */ nop -/* 03DF34 7F009404 450200CB */ bc1fl .L7F009734 -/* 03DF38 7F009408 8FBF0014 */ lw $ra, 0x14($sp) -/* 03DF3C 7F00940C 91CEA7D4 */ lbu $t6, %lo(D_8002A7D4)($t6) -/* 03DF40 7F009410 3C018003 */ lui $at, %hi(D_8002A7D4) -/* 03DF44 7F009414 24190014 */ li $t9, 20 -/* 03DF48 7F009418 25D80001 */ addiu $t8, $t6, 1 -/* 03DF4C 7F00941C A038A7D4 */ sb $t8, %lo(D_8002A7D4)($at) -/* 03DF50 7F009420 100000C3 */ b .L7F009730 -/* 03DF54 7F009424 ACD90000 */ sw $t9, ($a2) -.L7F009428: -/* 03DF58 7F009428 0FC01F63 */ jal insert_sniper_sight_eye_intro -/* 03DF5C 7F00942C 00A02025 */ move $a0, $a1 -/* 03DF60 7F009430 0FC01EE5 */ jal insert_sight_backdrop_eye_intro -/* 03DF64 7F009434 00402025 */ move $a0, $v0 -/* 03DF68 7F009438 0FC020B2 */ jal insert_bond_eye_intro -/* 03DF6C 7F00943C 00402025 */ move $a0, $v0 -/* 03DF70 7F009440 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03DF74 7F009444 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03DF78 7F009448 8CC80000 */ lw $t0, ($a2) -/* 03DF7C 7F00944C 00402825 */ move $a1, $v0 -/* 03DF80 7F009450 3C0B8003 */ lui $t3, %hi(D_8002A7D4) -/* 03DF84 7F009454 2509FFFF */ addiu $t1, $t0, -1 -/* 03DF88 7F009458 052100B5 */ bgez $t1, .L7F009730 -/* 03DF8C 7F00945C ACC90000 */ sw $t1, ($a2) -/* 03DF90 7F009460 916BA7D4 */ lbu $t3, %lo(D_8002A7D4)($t3) -/* 03DF94 7F009464 3C018003 */ lui $at, %hi(D_8002A7D4) -/* 03DF98 7F009468 00002025 */ move $a0, $zero -/* 03DF9C 7F00946C 256C0001 */ addiu $t4, $t3, 1 -/* 03DFA0 7F009470 A02CA7D4 */ sb $t4, %lo(D_8002A7D4)($at) -/* 03DFA4 7F009474 0FC070A1 */ jal die_blood_image_routine -/* 03DFA8 7F009478 AFA20018 */ sw $v0, 0x18($sp) -/* 03DFAC 7F00947C 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03DFB0 7F009480 3C018003 */ lui $at, %hi(intro_state_blood_animation) -/* 03DFB4 7F009484 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03DFB8 7F009488 AC20A8A4 */ sw $zero, %lo(intro_state_blood_animation)($at) -/* 03DFBC 7F00948C 240D0001 */ li $t5, 1 -/* 03DFC0 7F009490 8FA50018 */ lw $a1, 0x18($sp) -/* 03DFC4 7F009494 100000A6 */ b .L7F009730 -/* 03DFC8 7F009498 ACCD0000 */ sw $t5, ($a2) -.L7F00949C: -/* 03DFCC 7F00949C 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03DFD0 7F0094A0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03DFD4 7F0094A4 8CCF0000 */ lw $t7, ($a2) -/* 03DFD8 7F0094A8 24040001 */ li $a0, 1 -/* 03DFDC 7F0094AC 25EEFFFF */ addiu $t6, $t7, -1 -/* 03DFE0 7F0094B0 15C0000A */ bnez $t6, .L7F0094DC -/* 03DFE4 7F0094B4 ACCE0000 */ sw $t6, ($a2) -/* 03DFE8 7F0094B8 0FC070A1 */ jal die_blood_image_routine -/* 03DFEC 7F0094BC AFA50018 */ sw $a1, 0x18($sp) -/* 03DFF0 7F0094C0 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03DFF4 7F0094C4 3C018003 */ lui $at, %hi(intro_state_blood_animation) -/* 03DFF8 7F0094C8 AC22A8A4 */ sw $v0, %lo(intro_state_blood_animation)($at) -/* 03DFFC 7F0094CC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E000 7F0094D0 24190002 */ li $t9, 2 -/* 03E004 7F0094D4 8FA50018 */ lw $a1, 0x18($sp) -/* 03E008 7F0094D8 ACD90000 */ sw $t9, ($a2) -.L7F0094DC: -/* 03E00C 7F0094DC 0FC01F63 */ jal insert_sniper_sight_eye_intro -/* 03E010 7F0094E0 00A02025 */ move $a0, $a1 -/* 03E014 7F0094E4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro -/* 03E018 7F0094E8 00402025 */ move $a0, $v0 -/* 03E01C 7F0094EC 0FC020B2 */ jal insert_bond_eye_intro -/* 03E020 7F0094F0 00402025 */ move $a0, $v0 -/* 03E024 7F0094F4 0FC07100 */ jal sub_GAME_7F01C400 -/* 03E028 7F0094F8 00402025 */ move $a0, $v0 -/* 03E02C 7F0094FC 3C088003 */ lui $t0, %hi(intro_state_blood_animation) -/* 03E030 7F009500 8D08A8A4 */ lw $t0, %lo(intro_state_blood_animation)($t0) -/* 03E034 7F009504 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E038 7F009508 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E03C 7F00950C 11000088 */ beqz $t0, .L7F009730 -/* 03E040 7F009510 00402825 */ move $a1, $v0 -/* 03E044 7F009514 3C098003 */ lui $t1, %hi(D_8002A7D4) -/* 03E048 7F009518 9129A7D4 */ lbu $t1, %lo(D_8002A7D4)($t1) -/* 03E04C 7F00951C 3C078007 */ lui $a3, %hi(x) -/* 03E050 7F009520 3C018003 */ lui $at, %hi(D_8002A7D4) -/* 03E054 7F009524 252A0001 */ addiu $t2, $t1, 1 -/* 03E058 7F009528 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03E05C 7F00952C A02AA7D4 */ sb $t2, %lo(D_8002A7D4)($at) -/* 03E060 7F009530 C4E40000 */ lwc1 $f4, ($a3) -/* 03E064 7F009534 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) -/* 03E068 7F009538 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c -/* 03E06C 7F00953C A4600000 */ sh $zero, ($v1) -/* 03E070 7F009540 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) -/* 03E074 7F009544 E424957C */ swc1 $f4, %lo(dword_CODE_bss_8006957C)($at) -/* 03E078 7F009548 10000079 */ b .L7F009730 -/* 03E07C 7F00954C ACC00000 */ sw $zero, ($a2) -.L7F009550: -/* 03E080 7F009550 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) -/* 03E084 7F009554 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E088 7F009558 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E08C 7F00955C 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c -/* 03E090 7F009560 846B0000 */ lh $t3, ($v1) -/* 03E094 7F009564 8CCD0000 */ lw $t5, ($a2) -/* 03E098 7F009568 AFA50018 */ sw $a1, 0x18($sp) -/* 03E09C 7F00956C 256C038E */ addiu $t4, $t3, 0x38e -/* 03E0A0 7F009570 25AF0001 */ addiu $t7, $t5, 1 -/* 03E0A4 7F009574 A46C0000 */ sh $t4, ($v1) -/* 03E0A8 7F009578 ACCF0000 */ sw $t7, ($a2) -/* 03E0AC 7F00957C 0C005B18 */ jal sins -/* 03E0B0 7F009580 3184FFFF */ andi $a0, $t4, 0xffff -/* 03E0B4 7F009584 44823000 */ mtc1 $v0, $f6 -/* 03E0B8 7F009588 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 03E0BC 7F00958C 44815000 */ mtc1 $at, $f10 -/* 03E0C0 7F009590 46803220 */ cvt.s.w $f8, $f6 -/* 03E0C4 7F009594 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 03E0C8 7F009598 44819000 */ mtc1 $at, $f18 -/* 03E0CC 7F00959C 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) -/* 03E0D0 7F0095A0 C426957C */ lwc1 $f6, %lo(dword_CODE_bss_8006957C)($at) -/* 03E0D4 7F0095A4 3C078007 */ lui $a3, %hi(x) -/* 03E0D8 7F0095A8 460A4402 */ mul.s $f16, $f8, $f10 -/* 03E0DC 7F0095AC 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03E0E0 7F0095B0 8FA40018 */ lw $a0, 0x18($sp) -/* 03E0E4 7F0095B4 46128103 */ div.s $f4, $f16, $f18 -/* 03E0E8 7F0095B8 46062200 */ add.s $f8, $f4, $f6 -/* 03E0EC 7F0095BC 0FC01F63 */ jal insert_sniper_sight_eye_intro -/* 03E0F0 7F0095C0 E4E80000 */ swc1 $f8, ($a3) -/* 03E0F4 7F0095C4 0FC01EE5 */ jal insert_sight_backdrop_eye_intro -/* 03E0F8 7F0095C8 00402025 */ move $a0, $v0 -/* 03E0FC 7F0095CC 0FC020B2 */ jal insert_bond_eye_intro -/* 03E100 7F0095D0 00402025 */ move $a0, $v0 -/* 03E104 7F0095D4 0FC07286 */ jal sub_GAME_7F01CA18 -/* 03E108 7F0095D8 00402025 */ move $a0, $v0 -/* 03E10C 7F0095DC 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E110 7F0095E0 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E114 7F0095E4 8CCE0000 */ lw $t6, ($a2) -/* 03E118 7F0095E8 00402825 */ move $a1, $v0 -/* 03E11C 7F0095EC 3C028003 */ lui $v0, %hi(D_8002A7D4) -/* 03E120 7F0095F0 29C1006C */ slti $at, $t6, 0x6c -/* 03E124 7F0095F4 1420004E */ bnez $at, .L7F009730 -/* 03E128 7F0095F8 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c -/* 03E12C 7F0095FC 90580000 */ lbu $t8, ($v0) -/* 03E130 7F009600 ACC00000 */ sw $zero, ($a2) -/* 03E134 7F009604 27190001 */ addiu $t9, $t8, 1 -/* 03E138 7F009608 10000049 */ b .L7F009730 -/* 03E13C 7F00960C A0590000 */ sb $t9, ($v0) -.L7F009610: -/* 03E140 7F009610 3C038007 */ lui $v1, %hi(word_CODE_bss_80069584) -/* 03E144 7F009614 24639584 */ addiu $v1, %lo(word_CODE_bss_80069584) # addiu $v1, $v1, -0x6a7c -/* 03E148 7F009618 84680000 */ lh $t0, ($v1) -/* 03E14C 7F00961C AFA50018 */ sw $a1, 0x18($sp) -/* 03E150 7F009620 2509038E */ addiu $t1, $t0, 0x38e -/* 03E154 7F009624 A4690000 */ sh $t1, ($v1) -/* 03E158 7F009628 0C005B18 */ jal sins -/* 03E15C 7F00962C 3124FFFF */ andi $a0, $t1, 0xffff -/* 03E160 7F009630 44825000 */ mtc1 $v0, $f10 -/* 03E164 7F009634 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 03E168 7F009638 44819000 */ mtc1 $at, $f18 -/* 03E16C 7F00963C 46805420 */ cvt.s.w $f16, $f10 -/* 03E170 7F009640 3C014700 */ li $at, 0x47000000 # 32768.000000 -/* 03E174 7F009644 44813000 */ mtc1 $at, $f6 -/* 03E178 7F009648 3C018007 */ lui $at, %hi(dword_CODE_bss_8006957C) -/* 03E17C 7F00964C C42A957C */ lwc1 $f10, %lo(dword_CODE_bss_8006957C)($at) -/* 03E180 7F009650 3C078007 */ lui $a3, %hi(x) -/* 03E184 7F009654 46128102 */ mul.s $f4, $f16, $f18 -/* 03E188 7F009658 24E79574 */ addiu $a3, %lo(x) # addiu $a3, $a3, -0x6a8c -/* 03E18C 7F00965C 8FA40018 */ lw $a0, 0x18($sp) -/* 03E190 7F009660 46062203 */ div.s $f8, $f4, $f6 -/* 03E194 7F009664 460A4400 */ add.s $f16, $f8, $f10 -/* 03E198 7F009668 0FC01F63 */ jal insert_sniper_sight_eye_intro -/* 03E19C 7F00966C E4F00000 */ swc1 $f16, ($a3) -/* 03E1A0 7F009670 0FC01EE5 */ jal insert_sight_backdrop_eye_intro -/* 03E1A4 7F009674 00402025 */ move $a0, $v0 -/* 03E1A8 7F009678 0FC020B2 */ jal insert_bond_eye_intro -/* 03E1AC 7F00967C 00402025 */ move $a0, $v0 -/* 03E1B0 7F009680 0FC07286 */ jal sub_GAME_7F01CA18 -/* 03E1B4 7F009684 00402025 */ move $a0, $v0 -/* 03E1B8 7F009688 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E1BC 7F00968C 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E1C0 7F009690 8CCA0000 */ lw $t2, ($a2) -/* 03E1C4 7F009694 00402025 */ move $a0, $v0 -/* 03E1C8 7F009698 25450008 */ addiu $a1, $t2, 8 -/* 03E1CC 7F00969C 0FC01F9C */ jal sub_GAME_7F007E70 -/* 03E1D0 7F0096A0 ACC50000 */ sw $a1, ($a2) -/* 03E1D4 7F0096A4 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E1D8 7F0096A8 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E1DC 7F0096AC 8CCC0000 */ lw $t4, ($a2) -/* 03E1E0 7F0096B0 00402825 */ move $a1, $v0 -/* 03E1E4 7F0096B4 3C028003 */ lui $v0, %hi(D_8002A7D4) -/* 03E1E8 7F0096B8 298100F7 */ slti $at, $t4, 0xf7 -/* 03E1EC 7F0096BC 1420001C */ bnez $at, .L7F009730 -/* 03E1F0 7F0096C0 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c -/* 03E1F4 7F0096C4 904D0000 */ lbu $t5, ($v0) -/* 03E1F8 7F0096C8 ACC00000 */ sw $zero, ($a2) -/* 03E1FC 7F0096CC 25AF0001 */ addiu $t7, $t5, 1 -/* 03E200 7F0096D0 10000017 */ b .L7F009730 -/* 03E204 7F0096D4 A04F0000 */ sb $t7, ($v0) -.L7F0096D8: -/* 03E208 7F0096D8 3C180100 */ lui $t8, 0x100 -/* 03E20C 7F0096DC 27180000 */ addiu $t8, $t8, 0 -/* 03E210 7F0096E0 00A01025 */ move $v0, $a1 -/* 03E214 7F0096E4 3C0E0600 */ lui $t6, 0x600 -/* 03E218 7F0096E8 AC4E0000 */ sw $t6, ($v0) -/* 03E21C 7F0096EC AC580004 */ sw $t8, 4($v0) -/* 03E220 7F0096F0 0FC07034 */ jal insert_imageDL -/* 03E224 7F0096F4 24A40008 */ addiu $a0, $a1, 8 -/* 03E228 7F0096F8 3C068003 */ lui $a2, %hi(intro_eye_counter) -/* 03E22C 7F0096FC 24C6A8A0 */ addiu $a2, %lo(intro_eye_counter) # addiu $a2, $a2, -0x5760 -/* 03E230 7F009700 8CC30000 */ lw $v1, ($a2) -/* 03E234 7F009704 00402825 */ move $a1, $v0 -/* 03E238 7F009708 3C028003 */ lui $v0, %hi(D_8002A7D4) -/* 03E23C 7F00970C 2864001E */ slti $a0, $v1, 0x1e -/* 03E240 7F009710 24790001 */ addiu $t9, $v1, 1 -/* 03E244 7F009714 14800006 */ bnez $a0, .L7F009730 -/* 03E248 7F009718 ACD90000 */ sw $t9, ($a2) -/* 03E24C 7F00971C 2442A7D4 */ addiu $v0, %lo(D_8002A7D4) # addiu $v0, $v0, -0x582c -/* 03E250 7F009720 90480000 */ lbu $t0, ($v0) -/* 03E254 7F009724 ACC00000 */ sw $zero, ($a2) -/* 03E258 7F009728 25090001 */ addiu $t1, $t0, 1 -/* 03E25C 7F00972C A0490000 */ sb $t1, ($v0) -def_7F00929C: -.L7F009730: -/* 03E260 7F009730 8FBF0014 */ lw $ra, 0x14($sp) -.L7F009734: -/* 03E264 7F009734 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03E268 7F009738 00A01025 */ move $v0, $a1 -/* 03E26C 7F00973C 03E00008 */ jr $ra -/* 03E270 7F009740 00000000 */ nop -) -#endif - - - s32 sub_GAME_7F009744(void) { return (D_8002A7D4 == 9); diff --git a/src/game/intro_logos.h b/src/game/intro_logos.h index c702b60..71bdf72 100644 --- a/src/game/intro_logos.h +++ b/src/game/intro_logos.h @@ -3,19 +3,19 @@ #include "ultra64.h" extern s32 dword_CODE_bss_80069550; -extern s32 dword_CODE_bss_80069554; -extern s32 matrix_buffer_rarelogo_0; -extern s32 matrix_buffer_gunbarrel_0; -extern s32 matrix_buffer_rarelogo_1; -extern s32 matrix_buffer_rarelogo_2; -extern s32 matrix_buffer_gunbarrel_1; -extern s32 matrix_buffer_intro_backdrop; -extern s32 matrix_buffer_intro_bond; -extern s32 x; -extern s32 y; -extern s32 dword_CODE_bss_8006957C; -extern s32 dword_CODE_bss_80069580; -extern s32 word_CODE_bss_80069584; +extern Gfx *dword_CODE_bss_80069554; +extern Mtx *matrix_buffer_rarelogo_0; +extern Mtx *matrix_buffer_gunbarrel_0; +extern Mtx *matrix_buffer_rarelogo_1; +extern Mtx *matrix_buffer_rarelogo_2; +extern Mtx *matrix_buffer_gunbarrel_1; +extern Mtx *matrix_buffer_intro_backdrop; +extern Mtx *matrix_buffer_intro_bond; +extern f32 x; +extern f32 y; +extern f32 dword_CODE_bss_8006957C; +extern f32 dword_CODE_bss_80069580; +extern s16 word_CODE_bss_80069584; extern s32 dword_CODE_bss_80069588; extern s32 dword_CODE_bss_8006958C; extern s32 virtualaddress; diff --git a/src/game/lvl.c b/src/game/lvl.c index 4551e9e..2db3f7b 100644 --- a/src/game/lvl.c +++ b/src/game/lvl.c @@ -4,6 +4,8 @@ #include "game/initunk_0072B0.h" #include "game/mainmenu.h" #include "game/bondinv.h" +#include "music.h" +#include "tlb_manage.h" // bss //CODE.bss:8008C260 @@ -52,7 +54,14 @@ s32 global_timer = 0; s32 D_80048380 = 0; f32 global_timer_delta = 0; #endif - +#ifdef VERSION_EU +u32 jp_global_timer_delta = 0; +//D:8004837C +s32 global_timer = 0; +//D:80048380 +s32 D_80048380 = 0; +f32 global_timer_delta = 0; +#endif //D:80048384 s32 difficulty_0 = 0; //D:80048388 @@ -157,7 +166,7 @@ void sub_GAME_7F0BD8FC(s32 arg0) { #ifdef NONMATCHING void lvInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&lvl_c_debug_notice_list, "lv_c_debug"); + debTryAdd(&lvl_c_debug_notice_list, "lv_c_debug"); lvl_c_debug_notice_list = 1; ptr_jfont_DL = mempAllocBytesInBank(0xc0,'\x06'); romCopy(ptr_jfont_DL, _jfontdlSegmentStart, 0xc0); @@ -171,7 +180,7 @@ glabel lvInitDebugNoticeList /* 0F2440 7F0BD910 3C048005 */ lui $a0, %hi(lvl_c_debug_notice_list) /* 0F2444 7F0BD914 3C058006 */ lui $a1, %hi(aLv_c_debug) /* 0F2448 7F0BD918 24A5B6B0 */ addiu $a1, %lo(aLv_c_debug) # addiu $a1, $a1, -0x4950 -/* 0F244C 7F0BD91C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F244C 7F0BD91C 0C001398 */ jal debTryAdd /* 0F2450 7F0BD920 24848360 */ addiu $a0, %lo(lvl_c_debug_notice_list) # addiu $a0, $a0, -0x7ca0 /* 0F2454 7F0BD924 3C0F0011 */ lui $t7, %hi(_jfontdlSegmentEnd) # $t7, 0x11 /* 0F2458 7F0BD928 3C180011 */ lui $t8, %hi(_jfontdlSegmentStart) # $t8, 0x11 @@ -207,7 +216,7 @@ glabel lvInitDebugNoticeList #ifdef NONMATCHING void playrandommusictrack1(void) { - musictrack1_playing = get_random_value() % 0x3d + M_INTRO; + musictrack1_playing = randomGetNext() % 0x3d + M_INTRO; musicTrack1Play(musictrack1_playing); } #else @@ -216,7 +225,7 @@ GLOBAL_ASM( glabel sub_GAME_7F0BD984 /* 0F24B4 7F0BD984 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0F24B8 7F0BD988 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F24BC 7F0BD98C 0C002914 */ jal get_random_value +/* 0F24BC 7F0BD98C 0C002914 */ jal randomGetNext /* 0F24C0 7F0BD990 00000000 */ nop /* 0F24C4 7F0BD994 2401003D */ li $at, 61 /* 0F24C8 7F0BD998 0041001B */ divu $zero, $v0, $at @@ -394,6 +403,611 @@ glabel stage_load /* 0F2650 7F0BDB20 AC208390 */ sw $zero, %lo(D_80048390)($at) /* 0F2654 7F0BDB24 26108394 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c6c +/* 0F2658 7F0BDB28 AE000000 */ sw $zero, ($s0) +/* 0F265C 7F0BDB2C 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F2660 7F0BDB30 E42083A4 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F2664 7F0BDB34 3C018005 */ lui $at, %hi(D_800483B0) +/* 0F2668 7F0BDB38 AC2083B0 */ sw $zero, %lo(D_800483B0)($at) +/* 0F266C 7F0BDB3C 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F2670 7F0BDB40 E42083B4 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F2674 7F0BDB44 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F2678 7F0BDB48 3C018005 */ lui $at, %hi(D_800483A0) +/* 0F267C 7F0BDB4C AFB40030 */ sw $s4, 0x30($sp) +/* 0F2680 7F0BDB50 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F2684 7F0BDB54 AFB20028 */ sw $s2, 0x28($sp) +/* 0F2688 7F0BDB58 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F268C 7F0BDB5C AFA40038 */ sw $a0, 0x38($sp) +/* 0F2690 7F0BDB60 0C00248E */ jal sfx_c_70009238 +/* 0F2694 7F0BDB64 AC2083A0 */ sw $zero, %lo(D_800483A0)($at) +/* 0F2698 7F0BDB68 0C001C0F */ jal musicTrack1ApplySeqpVol +/* 0F269C 7F0BDB6C 24047FFF */ li $a0, 32767 +/* 0F26A0 7F0BDB70 0C001CF1 */ jal musicTrack2ApplySeqpVol +/* 0F26A4 7F0BDB74 24047FFF */ li $a0, 32767 +/* 0F26A8 7F0BDB78 0C001DD3 */ jal musicTrack3ApplySeqpVol +/* 0F26AC 7F0BDB7C 24047FFF */ li $a0, 32767 +/* 0F26B0 7F0BDB80 0FC304D9 */ jal sub_GAME_7F0C1364 +/* 0F26B4 7F0BDB84 00000000 */ nop +/* 0F26B8 7F0BDB88 0FC0154D */ jal set_contents_of_80036078 +/* 0F26BC 7F0BDB8C 24040001 */ li $a0, 1 +/* 0F26C0 7F0BDB90 0FC01CC8 */ jal set_mt_tex_alloc +/* 0F26C4 7F0BDB94 00000000 */ nop +/* 0F26C8 7F0BDB98 0FC291F5 */ jal sub_GAME_7F0A47D4 +/* 0F26CC 7F0BDB9C 00000000 */ nop +/* 0F26D0 7F0BDBA0 0FC32FEC */ jal load_prepare_global_image_bank +/* 0F26D4 7F0BDBA4 00000000 */ nop +/* 0F26D8 7F0BDBA8 0FC2B2EB */ jal load_font_tables +/* 0F26DC 7F0BDBAC 00000000 */ nop +/* 0F26E0 7F0BDBB0 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F26E4 7F0BDBB4 2401005A */ li $at, 90 +/* 0F26E8 7F0BDBB8 15E10005 */ bne $t7, $at, .L7F0BDBD0 +/* 0F26EC 7F0BDBBC 00000000 */ nop +/* 0F26F0 7F0BDBC0 0FC00348 */ jal init_menus_or_reset +/* 0F26F4 7F0BDBC4 00000000 */ nop +/* 0F26F8 7F0BDBC8 10000073 */ b .L7F0BDD98 +/* 0F26FC 7F0BDBCC 00000000 */ nop +.L7F0BDBD0: +/* 0F2700 7F0BDBD0 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2704 7F0BDBD4 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F2708 7F0BDBD8 3C018007 */ lui $at, %hi(newcheatunlocked) # -0.000000 +/* 0F270C 7F0BDBDC AC209790 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F2710 7F0BDBE0 2401005A */ li $at, 90 +/* 0F2714 7F0BDBE4 1081001C */ beq $a0, $at, .L7F0BDC58 +/* 0F2718 7F0BDBE8 00000000 */ nop +/* 0F271C 7F0BDBEC 8E180000 */ lw $t8, ($s0) +/* 0F2720 7F0BDBF0 17000019 */ bnez $t8, .L7F0BDC58 +/* 0F2724 7F0BDBF4 00000000 */ nop +/* 0F2728 7F0BDBF8 8E390000 */ lw $t9, ($s1) +/* 0F272C 7F0BDBFC 3C088003 */ lui $t0, %hi(append_cheat_sp) +/* 0F2730 7F0BDC00 1B200015 */ blez $t9, .L7F0BDC58 +/* 0F2734 7F0BDC04 00000000 */ nop +/* 0F2738 7F0BDC08 8D08A900 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F273C 7F0BDC0C 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F2740 7F0BDC10 263196A1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x695f +/* 0F2744 7F0BDC14 11000010 */ beqz $t0, .L7F0BDC58 +/* 0F2748 7F0BDC18 24100001 */ li $s0, 1 +/* 0F274C 7F0BDC1C 2412004B */ li $s2, 75 +.L7F0BDC20: +/* 0F2750 7F0BDC20 92290000 */ lbu $t1, ($s1) +/* 0F2754 7F0BDC24 51200008 */ beql $t1, $zero, .L7F0BDC48 +/* 0F2758 7F0BDC28 26100001 */ addiu $s0, $s0, 1 +/* 0F275C 7F0BDC2C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F2760 7F0BDC30 02002025 */ move $a0, $s0 +/* 0F2764 7F0BDC34 50400004 */ beql $v0, $zero, .L7F0BDC48 +/* 0F2768 7F0BDC38 26100001 */ addiu $s0, $s0, 1 +/* 0F276C 7F0BDC3C 0FC246AB */ jal turn_on_cheat_for_players +/* 0F2770 7F0BDC40 02002025 */ move $a0, $s0 +/* 0F2774 7F0BDC44 26100001 */ addiu $s0, $s0, 1 +.L7F0BDC48: +/* 0F2778 7F0BDC48 1612FFF5 */ bne $s0, $s2, .L7F0BDC20 +/* 0F277C 7F0BDC4C 26310001 */ addiu $s1, $s1, 1 +/* 0F2780 7F0BDC50 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2784 7F0BDC54 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +.L7F0BDC58: +/* 0F2788 7F0BDC58 0FC2D049 */ jal load_bg_file +/* 0F278C 7F0BDC5C 00000000 */ nop +/* 0F2790 7F0BDC60 3C048005 */ lui $a0, %hi(current_stage_to_load) +/* 0F2794 7F0BDC64 0FC2510B */ jal store_stagenum_to_copyof_stagenum +/* 0F2798 7F0BDC68 8C848364 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F279C 7F0BDC6C 0FC2921A */ jal init_watch_at_start_of_stage +/* 0F27A0 7F0BDC70 00000000 */ nop +/* 0F27A4 7F0BDC74 0FC3047F */ jal sub_GAME_7F0C11FC +/* 0F27A8 7F0BDC78 8FA40038 */ lw $a0, 0x38($sp) +/* 0F27AC 7F0BDC7C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F27B0 7F0BDC80 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F27B4 7F0BDC84 25529EF0 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F27B8 7F0BDC88 4481A000 */ mtc1 $at, $f20 +/* 0F27BC 7F0BDC8C 0240A025 */ move $s4, $s2 +/* 0F27C0 7F0BDC90 24130004 */ li $s3, 4 +.L7F0BDC94: +/* 0F27C4 7F0BDC94 0FC26919 */ jal getPlayerCount +/* 0F27C8 7F0BDC98 00000000 */ nop +/* 0F27CC 7F0BDC9C 24010001 */ li $at, 1 +/* 0F27D0 7F0BDCA0 14410009 */ bne $v0, $at, .L7F0BDCC8 +/* 0F27D4 7F0BDCA4 00008025 */ move $s0, $zero +/* 0F27D8 7F0BDCA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F27DC 7F0BDCAC 44812000 */ mtc1 $at, $f4 +/* 0F27E0 7F0BDCB0 44813000 */ mtc1 $at, $f6 +/* 0F27E4 7F0BDCB4 A280006A */ sb $zero, 0x6a($s4) +/* 0F27E8 7F0BDCB8 A280006B */ sb $zero, 0x6b($s4) +/* 0F27EC 7F0BDCBC E684005C */ swc1 $f4, 0x5c($s4) +/* 0F27F0 7F0BDCC0 1000001C */ b .L7F0BDD34 +/* 0F27F4 7F0BDCC4 E6860064 */ swc1 $f6, 0x64($s4) +.L7F0BDCC8: +/* 0F27F8 7F0BDCC8 3C118008 */ lui $s1, %hi(player1_player_data) +/* 0F27FC 7F0BDCCC 26319EF0 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x6110 +.L7F0BDCD0: +/* 0F2800 7F0BDCD0 0FC051D6 */ jal get_scenario +/* 0F2804 7F0BDCD4 00000000 */ nop +/* 0F2808 7F0BDCD8 14530003 */ bne $v0, $s3, .L7F0BDCE8 +/* 0F280C 7F0BDCDC 00000000 */ nop +/* 0F2810 7F0BDCE0 10000004 */ b .L7F0BDCF4 +/* 0F2814 7F0BDCE4 E634005C */ swc1 $f20, 0x5c($s1) +.L7F0BDCE8: +/* 0F2818 7F0BDCE8 0FC040EB */ jal get_player_mp_handicap +/* 0F281C 7F0BDCEC 02002025 */ move $a0, $s0 +/* 0F2820 7F0BDCF0 E620005C */ swc1 $f0, 0x5c($s1) +.L7F0BDCF4: +/* 0F2824 7F0BDCF4 0FC040F4 */ jal get_player_mp_char_height +/* 0F2828 7F0BDCF8 02002025 */ move $a0, $s0 +/* 0F282C 7F0BDCFC 26100001 */ addiu $s0, $s0, 1 +/* 0F2830 7F0BDD00 26310070 */ addiu $s1, $s1, 0x70 +/* 0F2834 7F0BDD04 1613FFF2 */ bne $s0, $s3, .L7F0BDCD0 +/* 0F2838 7F0BDD08 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F283C 7F0BDD0C 0FC04108 */ jal get_mp_timelimit +/* 0F2840 7F0BDD10 00000000 */ nop +/* 0F2844 7F0BDD14 0FC2FF0A */ jal set_mp_time +/* 0F2848 7F0BDD18 00402025 */ move $a0, $v0 +/* 0F284C 7F0BDD1C 0FC04111 */ jal get_mp_pointlimit +/* 0F2850 7F0BDD20 00000000 */ nop +/* 0F2854 7F0BDD24 0FC2FF0D */ jal set_mp_point +/* 0F2858 7F0BDD28 00402025 */ move $a0, $v0 +/* 0F285C 7F0BDD2C 0FC04076 */ jal copy_aim_settings_to_playerdata +/* 0F2860 7F0BDD30 00000000 */ nop +.L7F0BDD34: +/* 0F2864 7F0BDD34 44804000 */ mtc1 $zero, $f8 +/* 0F2868 7F0BDD38 44805000 */ mtc1 $zero, $f10 +/* 0F286C 7F0BDD3C 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F2870 7F0BDD40 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F2874 7F0BDD44 AE800034 */ sw $zero, 0x34($s4) +/* 0F2878 7F0BDD48 AE80003C */ sw $zero, 0x3c($s4) +/* 0F287C 7F0BDD4C AE820044 */ sw $v0, 0x44($s4) +/* 0F2880 7F0BDD50 AE800048 */ sw $zero, 0x48($s4) +/* 0F2884 7F0BDD54 AE800054 */ sw $zero, 0x54($s4) +/* 0F2888 7F0BDD58 AE800058 */ sw $zero, 0x58($s4) +/* 0F288C 7F0BDD5C AE80004C */ sw $zero, 0x4c($s4) +/* 0F2890 7F0BDD60 AE820050 */ sw $v0, 0x50($s4) +/* 0F2894 7F0BDD64 A2800068 */ sb $zero, 0x68($s4) +/* 0F2898 7F0BDD68 AE800060 */ sw $zero, 0x60($s4) +/* 0F289C 7F0BDD6C E6880038 */ swc1 $f8, 0x38($s4) +/* 0F28A0 7F0BDD70 E68A0040 */ swc1 $f10, 0x40($s4) +/* 0F28A4 7F0BDD74 3C0B8008 */ lui $t3, %hi(pPlayer) +/* 0F28A8 7F0BDD78 256BA0B0 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5f50 +/* 0F28AC 7F0BDD7C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F28B0 7F0BDD80 26940070 */ addiu $s4, $s4, 0x70 +/* 0F28B4 7F0BDD84 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F28B8 7F0BDD88 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F28BC 7F0BDD8C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F28C0 7F0BDD90 164BFFC0 */ bne $s2, $t3, .L7F0BDC94 +/* 0F28C4 7F0BDD94 AE40FFB4 */ sw $zero, -0x4c($s2) +.L7F0BDD98: +/* 0F28C8 7F0BDD98 0FC013B0 */ jal something_with_stage_objectives +/* 0F28CC 7F0BDD9C 00000000 */ nop +/* 0F28D0 7F0BDDA0 0FC30802 */ jal unpause_game +/* 0F28D4 7F0BDDA4 00000000 */ nop +/* 0F28D8 7F0BDDA8 0FC26E08 */ jal sub_GAME_7F09B820 +/* 0F28DC 7F0BDDAC 00000000 */ nop +/* 0F28E0 7F0BDDB0 0FC01514 */ jal sub_GAME_7F005450 +/* 0F28E4 7F0BDDB4 00000000 */ nop +/* 0F28E8 7F0BDDB8 0FC01548 */ jal zero_contents_of_80036070_74 +/* 0F28EC 7F0BDDBC 00000000 */ nop +/* 0F28F0 7F0BDDC0 0FC00538 */ jal init_load_objpos_table +/* 0F28F4 7F0BDDC4 00000000 */ nop +/* 0F28F8 7F0BDDC8 0FC005D4 */ jal reinit_between_menus +/* 0F28FC 7F0BDDCC 00000000 */ nop +/* 0F2900 7F0BDDD0 0FC0052C */ jal init_sound_effects_registers +/* 0F2904 7F0BDDD4 00000000 */ nop +/* 0F2908 7F0BDDD8 0FC00390 */ jal init_guards +/* 0F290C 7F0BDDDC 00000000 */ nop +/* 0F2910 7F0BDDE0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F2914 7F0BDDE4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2918 7F0BDDE8 0FC00EFC */ jal proplvreset2 +/* 0F291C 7F0BDDEC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F2920 7F0BDDF0 0FC01B64 */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F2924 7F0BDDF4 00000000 */ nop +/* 0F2928 7F0BDDF8 0FC01C60 */ jal sub_GAME_7F007180 +/* 0F292C 7F0BDDFC 00000000 */ nop +/* 0F2930 7F0BDE00 0FC01CA4 */ jal sub_GAME_7F007290 +/* 0F2934 7F0BDE04 00000000 */ nop +/* 0F2938 7F0BDE08 0FC01CAC */ jal sub_GAME_7F0072B0 +/* 0F293C 7F0BDE0C 00000000 */ nop +/* 0F2940 7F0BDE10 3C0C8005 */ lui $t4, %hi(current_stage_to_load) +/* 0F2944 7F0BDE14 8D8C8364 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F2948 7F0BDE18 2401005A */ li $at, 90 +/* 0F294C 7F0BDE1C 15810005 */ bne $t4, $at, .L7F0BDE34 +/* 0F2950 7F0BDE20 00000000 */ nop +/* 0F2954 7F0BDE24 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F2958 7F0BDE28 00000000 */ nop +/* 0F295C 7F0BDE2C 10000020 */ b .L7F0BDEB0 +/* 0F2960 7F0BDE30 00000000 */ nop +.L7F0BDE34: +/* 0F2964 7F0BDE34 0FC01A24 */ jal init_path_table_links +/* 0F2968 7F0BDE38 00000000 */ nop +/* 0F296C 7F0BDE3C 0FC01410 */ jal something_with_ejected_cartridges +/* 0F2970 7F0BDE40 00000000 */ nop +/* 0F2974 7F0BDE44 0FC26919 */ jal getPlayerCount +/* 0F2978 7F0BDE48 00008025 */ move $s0, $zero +/* 0F297C 7F0BDE4C 18400016 */ blez $v0, .L7F0BDEA8 +/* 0F2980 7F0BDE50 00000000 */ nop +.L7F0BDE54: +/* 0F2984 7F0BDE54 0FC26C43 */ jal set_cur_player +/* 0F2988 7F0BDE58 02002025 */ move $a0, $s0 +/* 0F298C 7F0BDE5C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F2990 7F0BDE60 00000000 */ nop +/* 0F2994 7F0BDE64 0FC01434 */ jal init_player_BONDdata_stats +/* 0F2998 7F0BDE68 00000000 */ nop +/* 0F299C 7F0BDE6C 0FC1E4FB */ jal init_player_BONDdata +/* 0F29A0 7F0BDE70 00000000 */ nop +/* 0F29A4 7F0BDE74 0FC015F1 */ jal load_camera_intro_type_values +/* 0F29A8 7F0BDE78 00000000 */ nop +/* 0F29AC 7F0BDE7C 0FC1E62E */ jal sub_GAME_7F0798B8 +/* 0F29B0 7F0BDE80 00000000 */ nop +/* 0F29B4 7F0BDE84 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F29B8 7F0BDE88 00000000 */ nop +/* 0F29BC 7F0BDE8C 0FC01CBE */ jal disable_onscreen_cheat_text +/* 0F29C0 7F0BDE90 00000000 */ nop +/* 0F29C4 7F0BDE94 0FC26919 */ jal getPlayerCount +/* 0F29C8 7F0BDE98 26100001 */ addiu $s0, $s0, 1 +/* 0F29CC 7F0BDE9C 0202082A */ slt $at, $s0, $v0 +/* 0F29D0 7F0BDEA0 1420FFEC */ bnez $at, .L7F0BDE54 +/* 0F29D4 7F0BDEA4 00000000 */ nop +.L7F0BDEA8: +/* 0F29D8 7F0BDEA8 0FC26C43 */ jal set_cur_player +/* 0F29DC 7F0BDEAC 00002025 */ move $a0, $zero +.L7F0BDEB0: +/* 0F29E0 7F0BDEB0 0FC0154D */ jal set_contents_of_80036078 +/* 0F29E4 7F0BDEB4 00002025 */ move $a0, $zero +/* 0F29E8 7F0BDEB8 0FC348E0 */ jal zbufDeallocate +/* 0F29EC 7F0BDEBC 00000000 */ nop +/* 0F29F0 7F0BDEC0 0C000EEC */ jal viSetVideoMode +/* 0F29F4 7F0BDEC4 24040001 */ li $a0, 1 +/* 0F29F8 7F0BDEC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F29FC 7F0BDECC 44818000 */ mtc1 $at, $f16 +/* 0F2A00 7F0BDED0 3C018005 */ lui $at, %hi(D_80048368) +/* 0F2A04 7F0BDED4 00002025 */ move $a0, $zero +/* 0F2A08 7F0BDED8 0FC2FEFE */ jal set_controls_locked_flag +/* 0F2A0C 7F0BDEDC E4308368 */ swc1 $f16, %lo(D_80048368)($at) +/* 0F2A10 7F0BDEE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F2A14 7F0BDEE4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F2A18 7F0BDEE8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F2A1C 7F0BDEEC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F2A20 7F0BDEF0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F2A24 7F0BDEF4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F2A28 7F0BDEF8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F2A2C 7F0BDEFC 03E00008 */ jr $ra +/* 0F2A30 7F0BDF00 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel stage_load +/* 0F31D0 7F0BE660 3C018005 */ lui $at, %hi(current_stage_to_load) # $at, 0x8005 +/* 0F31D4 7F0BE664 AC248394 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F31D8 7F0BE668 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F31DC 7F0BE66C 44816000 */ mtc1 $at, $f12 +/* 0F31E0 7F0BE670 24020001 */ li $v0, 1 +/* 0F31E4 7F0BE674 3C018005 */ lui $at, %hi(D_800483C0) # $at, 0x8005 +/* 0F31E8 7F0BE678 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F31EC 7F0BE67C AC2283F4 */ sw $v0, %lo(D_800483C0)($at) +/* 0F31F0 7F0BE680 AFB10024 */ sw $s1, 0x24($sp) +/* 0F31F4 7F0BE684 3C018005 */ lui $at, %hi(controls_locked_flag) # $at, 0x8005 +/* 0F31F8 7F0BE688 3C118005 */ lui $s1, %hi(clock_timer) # $s1, 0x8005 +/* 0F31FC 7F0BE68C AC2083A0 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F3200 7F0BE690 263183A4 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c5c +/* 0F3204 7F0BE694 AE220000 */ sw $v0, ($s1) +/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 +/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(jp_global_timer_delta)($at) +/* 0F3210 7F0BE6A0 3C018005 */ lui $at, %hi(D_80048380) # $at, 0x8005 +/* 0F3214 7F0BE6A4 AC2083B0 */ sw $zero, %lo(D_80048380)($at) +/* 0F3218 7F0BE6A8 3C018005 */ lui $at, %hi(global_timer) # $at, 0x8005 +/* 0F321C 7F0BE6AC AC2083AC */ sw $zero, %lo(global_timer)($at) +/* 0F3220 7F0BE6B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3224 7F0BE6B4 44812000 */ mtc1 $at, $f4 + +/* 0F3228 7F0BE6B8 3C018005 */ lui $at, %hi(0x800483B4) # $at, 0x8005 +/* 0F322C 7F0BE6BC AFB00020 */ sw $s0, 0x20($sp) +/* 0F3230 7F0BE6C0 E42483B4 */ swc1 $f4, %lo(0x800483B4)($at) +/* 0F3234 7F0BE6C4 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F3238 7F0BE6C8 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F323C 7F0BE6CC 3C018005 */ lui $at, %hi(D_8004838C) # $at, 0x8005 +/* 0F3240 7F0BE6D0 AC2083C0 */ sw $zero, %lo(D_8004838C)($at) +/* 0F3244 7F0BE6D4 3C018005 */ lui $at, %hi(D_80048390) # $at, 0x8005 +/* 0F3248 7F0BE6D8 44800000 */ mtc1 $zero, $f0 +/* 0F324C 7F0BE6DC 3C108005 */ lui $s0, %hi(D_80048394) # $s0, 0x8005 +/* 0F3250 7F0BE6E0 AC2083C4 */ sw $zero, %lo(D_80048390)($at) +/* 0F3254 7F0BE6E4 261083C8 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c38 + +/* 0F3258 7F0BE6E8 AE000000 */ sw $zero, ($s0) +/* 0F325C 7F0BE6EC 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F3260 7F0BE6F0 E42083D8 */ swc1 $f0, %lo(cur_mp_sec)($at) +/* 0F3264 7F0BE6F4 3C018005 */ lui $at, %hi(D_800483B0) # $at, 0x8005 +/* 0F3268 7F0BE6F8 AC2083E4 */ sw $zero, %lo(D_800483B0)($at) +/* 0F326C 7F0BE6FC 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F3270 7F0BE700 E42083E8 */ swc1 $f0, %lo(stage_time_sec)($at) +/* 0F3274 7F0BE704 AFBF0034 */ sw $ra, 0x34($sp) +/* 0F3278 7F0BE708 3C018005 */ lui $at, %hi(D_800483A0) # $at, 0x8005 +/* 0F327C 7F0BE70C AFB40030 */ sw $s4, 0x30($sp) +/* 0F3280 7F0BE710 AFB3002C */ sw $s3, 0x2c($sp) +/* 0F3284 7F0BE714 AFB20028 */ sw $s2, 0x28($sp) +/* 0F3288 7F0BE718 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0F328C 7F0BE71C AFA40038 */ sw $a0, 0x38($sp) +/* 0F3290 7F0BE720 0C002492 */ jal sfx_c_70009238 +/* 0F3294 7F0BE724 AC2083D4 */ sw $zero, %lo(D_800483A0)($at) +/* 0F3298 7F0BE728 0C001C13 */ jal musicTrack1ApplySeqpVol +/* 0F329C 7F0BE72C 24047FFF */ li $a0, 32767 +/* 0F32A0 7F0BE730 0C001CF5 */ jal musicTrack2ApplySeqpVol +/* 0F32A4 7F0BE734 24047FFF */ li $a0, 32767 +/* 0F32A8 7F0BE738 0C001DD7 */ jal musicTrack3ApplySeqpVol +/* 0F32AC 7F0BE73C 24047FFF */ li $a0, 32767 +/* 0F32B0 7F0BE740 0FC30805 */ jal sub_GAME_7F0C1364 +/* 0F32B4 7F0BE744 00000000 */ nop +/* 0F32B8 7F0BE748 0FC01555 */ jal set_contents_of_80036078 +/* 0F32BC 7F0BE74C 24040001 */ li $a0, 1 +/* 0F32C0 7F0BE750 0FC01CD0 */ jal set_mt_tex_alloc +/* 0F32C4 7F0BE754 00000000 */ nop +/* 0F32C8 7F0BE758 0FC294DD */ jal sub_GAME_7F0A47D4 +/* 0F32CC 7F0BE75C 00000000 */ nop +/* 0F32D0 7F0BE760 0FC33324 */ jal load_prepare_global_image_bank +/* 0F32D4 7F0BE764 00000000 */ nop +/* 0F32D8 7F0BE768 0FC2B5D7 */ jal load_font_tables +/* 0F32DC 7F0BE76C 00000000 */ nop +/* 0F32E0 7F0BE770 8FAF0038 */ lw $t7, 0x38($sp) +/* 0F32E4 7F0BE774 2401005A */ li $at, 90 +/* 0F32E8 7F0BE778 15E10005 */ bne $t7, $at, .Ljp7F0BE790 +/* 0F32EC 7F0BE77C 00000000 */ nop +/* 0F32F0 7F0BE780 0FC00348 */ jal init_menus_or_reset +/* 0F32F4 7F0BE784 00000000 */ nop +/* 0F32F8 7F0BE788 10000073 */ b .Ljp7F0BE958 +/* 0F32FC 7F0BE78C 00000000 */ nop +.Ljp7F0BE790: +/* 0F3300 7F0BE790 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3304 7F0BE794 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F3308 7F0BE798 3C018007 */ lui $at, %hi(newcheatunlocked) +/* 0F330C 7F0BE79C AC2097D0 */ sw $zero, %lo(newcheatunlocked)($at) +/* 0F3310 7F0BE7A0 2401005A */ li $at, 90 +/* 0F3314 7F0BE7A4 1081001C */ beq $a0, $at, .Ljp7F0BE818 +/* 0F3318 7F0BE7A8 00000000 */ nop +/* 0F331C 7F0BE7AC 8E180000 */ lw $t8, ($s0) +/* 0F3320 7F0BE7B0 17000019 */ bnez $t8, .Ljp7F0BE818 +/* 0F3324 7F0BE7B4 00000000 */ nop +/* 0F3328 7F0BE7B8 8E390000 */ lw $t9, ($s1) +/* 0F332C 7F0BE7BC 3C088003 */ lui $t0, %hi(append_cheat_sp) # $t0, 0x8003 +/* 0F3330 7F0BE7C0 1B200015 */ blez $t9, .Ljp7F0BE818 +/* 0F3334 7F0BE7C4 00000000 */ nop +/* 0F3338 7F0BE7C8 8D08A940 */ lw $t0, %lo(append_cheat_sp)($t0) +/* 0F333C 7F0BE7CC 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $s1, 0x8007 +/* 0F3340 7F0BE7D0 263196E1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x691f +/* 0F3344 7F0BE7D4 11000010 */ beqz $t0, .Ljp7F0BE818 +/* 0F3348 7F0BE7D8 24100001 */ li $s0, 1 +/* 0F334C 7F0BE7DC 2412004B */ li $s2, 75 +.Ljp7F0BE7E0: +/* 0F3350 7F0BE7E0 92290000 */ lbu $t1, ($s1) +/* 0F3354 7F0BE7E4 51200008 */ beql $t1, $zero, .Ljp7F0BE808 +/* 0F3358 7F0BE7E8 26100001 */ addiu $s0, $s0, 1 +/* 0F335C 7F0BE7EC 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F3360 7F0BE7F0 02002025 */ move $a0, $s0 +/* 0F3364 7F0BE7F4 50400004 */ beql $v0, $zero, .Ljp7F0BE808 +/* 0F3368 7F0BE7F8 26100001 */ addiu $s0, $s0, 1 +/* 0F336C 7F0BE7FC 0FC24963 */ jal turn_on_cheat_for_players +/* 0F3370 7F0BE800 02002025 */ move $a0, $s0 +/* 0F3374 7F0BE804 26100001 */ addiu $s0, $s0, 1 +.Ljp7F0BE808: +/* 0F3378 7F0BE808 1612FFF5 */ bne $s0, $s2, .Ljp7F0BE7E0 +/* 0F337C 7F0BE80C 26310001 */ addiu $s1, $s1, 1 +/* 0F3380 7F0BE810 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3384 7F0BE814 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +.Ljp7F0BE818: +/* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file +/* 0F338C 7F0BE81C 00000000 */ nop +/* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 +/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum +/* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) +/* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage +/* 0F33A0 7F0BE830 00000000 */ nop +/* 0F33A4 7F0BE834 0FC307AB */ jal sub_GAME_7F0C11FC +/* 0F33A8 7F0BE838 8FA40038 */ lw $a0, 0x38($sp) +/* 0F33AC 7F0BE83C 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0F33B0 7F0BE840 3C014348 */ li $at, 0x43480000 # 200.000000 +/* 0F33B4 7F0BE844 25529F60 */ addiu $s2, $t2, %lo(player1_player_data) +/* 0F33B8 7F0BE848 4481A000 */ mtc1 $at, $f20 +/* 0F33BC 7F0BE84C 0240A025 */ move $s4, $s2 +/* 0F33C0 7F0BE850 24130004 */ li $s3, 4 +.Ljp7F0BE854: +/* 0F33C4 7F0BE854 0FC26C01 */ jal getPlayerCount +/* 0F33C8 7F0BE858 00000000 */ nop +/* 0F33CC 7F0BE85C 24010001 */ li $at, 1 +/* 0F33D0 7F0BE860 14410009 */ bne $v0, $at, .Ljp7F0BE888 +/* 0F33D4 7F0BE864 00008025 */ move $s0, $zero +/* 0F33D8 7F0BE868 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F33DC 7F0BE86C 44813000 */ mtc1 $at, $f6 +/* 0F33E0 7F0BE870 44814000 */ mtc1 $at, $f8 +/* 0F33E4 7F0BE874 A280006A */ sb $zero, 0x6a($s4) +/* 0F33E8 7F0BE878 A280006B */ sb $zero, 0x6b($s4) +/* 0F33EC 7F0BE87C E686005C */ swc1 $f6, 0x5c($s4) +/* 0F33F0 7F0BE880 1000001C */ b .Ljp7F0BE8F4 +/* 0F33F4 7F0BE884 E6880064 */ swc1 $f8, 0x64($s4) +.Ljp7F0BE888: +/* 0F33F8 7F0BE888 3C118008 */ lui $s1, %hi(player1_player_data) # $s1, 0x8008 +/* 0F33FC 7F0BE88C 26319F60 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x60a0 +.Ljp7F0BE890: +/* 0F3400 7F0BE890 0FC05202 */ jal get_scenario +/* 0F3404 7F0BE894 00000000 */ nop +/* 0F3408 7F0BE898 14530003 */ bne $v0, $s3, .Ljp7F0BE8A8 +/* 0F340C 7F0BE89C 00000000 */ nop +/* 0F3410 7F0BE8A0 10000004 */ b .Ljp7F0BE8B4 +/* 0F3414 7F0BE8A4 E634005C */ swc1 $f20, 0x5c($s1) +.Ljp7F0BE8A8: +/* 0F3418 7F0BE8A8 0FC040FB */ jal get_player_mp_handicap +/* 0F341C 7F0BE8AC 02002025 */ move $a0, $s0 +/* 0F3420 7F0BE8B0 E620005C */ swc1 $f0, 0x5c($s1) +.Ljp7F0BE8B4: +/* 0F3424 7F0BE8B4 0FC04104 */ jal get_player_mp_char_height +/* 0F3428 7F0BE8B8 02002025 */ move $a0, $s0 +/* 0F342C 7F0BE8BC 26100001 */ addiu $s0, $s0, 1 +/* 0F3430 7F0BE8C0 26310070 */ addiu $s1, $s1, 0x70 +/* 0F3434 7F0BE8C4 1613FFF2 */ bne $s0, $s3, .Ljp7F0BE890 +/* 0F3438 7F0BE8C8 E620FFF4 */ swc1 $f0, -0xc($s1) +/* 0F343C 7F0BE8CC 0FC04118 */ jal get_mp_timelimit +/* 0F3440 7F0BE8D0 00000000 */ nop +/* 0F3444 7F0BE8D4 0FC30224 */ jal set_mp_time +/* 0F3448 7F0BE8D8 00402025 */ move $a0, $v0 +/* 0F344C 7F0BE8DC 0FC04121 */ jal get_mp_pointlimit +/* 0F3450 7F0BE8E0 00000000 */ nop +/* 0F3454 7F0BE8E4 0FC30227 */ jal set_mp_point +/* 0F3458 7F0BE8E8 00402025 */ move $a0, $v0 +/* 0F345C 7F0BE8EC 0FC04086 */ jal copy_aim_settings_to_playerdata +/* 0F3460 7F0BE8F0 00000000 */ nop +.Ljp7F0BE8F4: +/* 0F3464 7F0BE8F4 44805000 */ mtc1 $zero, $f10 +/* 0F3468 7F0BE8F8 44808000 */ mtc1 $zero, $f16 +/* 0F346C 7F0BE8FC 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff +/* 0F3470 7F0BE900 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff +/* 0F3474 7F0BE904 AE800034 */ sw $zero, 0x34($s4) +/* 0F3478 7F0BE908 AE80003C */ sw $zero, 0x3c($s4) +/* 0F347C 7F0BE90C AE820044 */ sw $v0, 0x44($s4) +/* 0F3480 7F0BE910 AE800048 */ sw $zero, 0x48($s4) +/* 0F3484 7F0BE914 AE800054 */ sw $zero, 0x54($s4) +/* 0F3488 7F0BE918 AE800058 */ sw $zero, 0x58($s4) +/* 0F348C 7F0BE91C AE80004C */ sw $zero, 0x4c($s4) +/* 0F3490 7F0BE920 AE820050 */ sw $v0, 0x50($s4) +/* 0F3494 7F0BE924 A2800068 */ sb $zero, 0x68($s4) +/* 0F3498 7F0BE928 AE800060 */ sw $zero, 0x60($s4) +/* 0F349C 7F0BE92C E68A0038 */ swc1 $f10, 0x38($s4) +/* 0F34A0 7F0BE930 E6900040 */ swc1 $f16, 0x40($s4) +/* 0F34A4 7F0BE934 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 +/* 0F34A8 7F0BE938 256BA120 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5ee0 +/* 0F34AC 7F0BE93C 26520070 */ addiu $s2, $s2, 0x70 +/* 0F34B0 7F0BE940 26940070 */ addiu $s4, $s4, 0x70 +/* 0F34B4 7F0BE944 AE40FFC0 */ sw $zero, -0x40($s2) +/* 0F34B8 7F0BE948 AE40FFBC */ sw $zero, -0x44($s2) +/* 0F34BC 7F0BE94C AE40FFB8 */ sw $zero, -0x48($s2) +/* 0F34C0 7F0BE950 164BFFC0 */ bne $s2, $t3, .Ljp7F0BE854 +/* 0F34C4 7F0BE954 AE40FFB4 */ sw $zero, -0x4c($s2) +.Ljp7F0BE958: +/* 0F34C8 7F0BE958 0FC013B4 */ jal something_with_stage_objectives +/* 0F34CC 7F0BE95C 00000000 */ nop +/* 0F34D0 7F0BE960 0FC30B2E */ jal unpause_game +/* 0F34D4 7F0BE964 00000000 */ nop +/* 0F34D8 7F0BE968 0FC270F0 */ jal sub_GAME_7F09B820 +/* 0F34DC 7F0BE96C 00000000 */ nop +/* 0F34E0 7F0BE970 0FC0151C */ jal sub_GAME_7F005450 +/* 0F34E4 7F0BE974 00000000 */ nop +/* 0F34E8 7F0BE978 0FC01550 */ jal zero_contents_of_80036070_74 +/* 0F34EC 7F0BE97C 00000000 */ nop +/* 0F34F0 7F0BE980 0FC00538 */ jal init_load_objpos_table +/* 0F34F4 7F0BE984 00000000 */ nop +/* 0F34F8 7F0BE988 0FC005D4 */ jal reinit_between_menus +/* 0F34FC 7F0BE98C 00000000 */ nop +/* 0F3500 7F0BE990 0FC0052C */ jal init_sound_effects_registers +/* 0F3504 7F0BE994 00000000 */ nop +/* 0F3508 7F0BE998 0FC00390 */ jal init_guards +/* 0F350C 7F0BE99C 00000000 */ nop +/* 0F3510 7F0BE9A0 0FC003D4 */ jal set_new_rand_head_bodies +/* 0F3514 7F0BE9A4 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3518 7F0BE9A8 0FC00EFC */ jal proplvreset2 +/* 0F351C 7F0BE9AC 8FA40038 */ lw $a0, 0x38($sp) +/* 0F3520 7F0BE9B0 0FC01B6C */ jal alloc_explosion_smoke_casing_scorch_impact_buffers +/* 0F3524 7F0BE9B4 00000000 */ nop +/* 0F3528 7F0BE9B8 0FC01C68 */ jal sub_GAME_7F007180 +/* 0F352C 7F0BE9BC 00000000 */ nop +/* 0F3530 7F0BE9C0 0FC01CAC */ jal sub_GAME_7F007290 +/* 0F3534 7F0BE9C4 00000000 */ nop +/* 0F3538 7F0BE9C8 0FC01CB4 */ jal sub_GAME_7F0072B0 +/* 0F353C 7F0BE9CC 00000000 */ nop +/* 0F3540 7F0BE9D0 3C0C8005 */ lui $t4, %hi(current_stage_to_load) # $t4, 0x8005 +/* 0F3544 7F0BE9D4 8D8C8394 */ lw $t4, %lo(current_stage_to_load)($t4) +/* 0F3548 7F0BE9D8 2401005A */ li $at, 90 +/* 0F354C 7F0BE9DC 15810005 */ bne $t4, $at, .Ljp7F0BE9F4 +/* 0F3550 7F0BE9E0 00000000 */ nop +/* 0F3554 7F0BE9E4 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F3558 7F0BE9E8 00000000 */ nop +/* 0F355C 7F0BE9EC 10000020 */ b .Ljp7F0BEA70 +/* 0F3560 7F0BE9F0 00000000 */ nop +.Ljp7F0BE9F4: +/* 0F3564 7F0BE9F4 0FC01A2C */ jal init_path_table_links +/* 0F3568 7F0BE9F8 00000000 */ nop +/* 0F356C 7F0BE9FC 0FC01418 */ jal something_with_ejected_cartridges +/* 0F3570 7F0BEA00 00000000 */ nop +/* 0F3574 7F0BEA04 0FC26C01 */ jal getPlayerCount +/* 0F3578 7F0BEA08 00008025 */ move $s0, $zero +/* 0F357C 7F0BEA0C 18400016 */ blez $v0, .Ljp7F0BEA68 +/* 0F3580 7F0BEA10 00000000 */ nop +.Ljp7F0BEA14: +/* 0F3584 7F0BEA14 0FC26F2B */ jal set_cur_player +/* 0F3588 7F0BEA18 02002025 */ move $a0, $s0 +/* 0F358C 7F0BEA1C 0FC0187C */ jal sub_GAME_7F0061F0 +/* 0F3590 7F0BEA20 00000000 */ nop +/* 0F3594 7F0BEA24 0FC0143C */ jal init_player_BONDdata_stats +/* 0F3598 7F0BEA28 00000000 */ nop +/* 0F359C 7F0BEA2C 0FC1E677 */ jal init_player_BONDdata +/* 0F35A0 7F0BEA30 00000000 */ nop +/* 0F35A4 7F0BEA34 0FC015F9 */ jal load_camera_intro_type_values +/* 0F35A8 7F0BEA38 00000000 */ nop +/* 0F35AC 7F0BEA3C 0FC1E7AA */ jal sub_GAME_7F0798B8 +/* 0F35B0 7F0BEA40 00000000 */ nop +/* 0F35B4 7F0BEA44 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default +/* 0F35B8 7F0BEA48 00000000 */ nop +/* 0F35BC 7F0BEA4C 0FC01CC6 */ jal disable_onscreen_cheat_text +/* 0F35C0 7F0BEA50 00000000 */ nop +/* 0F35C4 7F0BEA54 0FC26C01 */ jal getPlayerCount +/* 0F35C8 7F0BEA58 26100001 */ addiu $s0, $s0, 1 +/* 0F35CC 7F0BEA5C 0202082A */ slt $at, $s0, $v0 +/* 0F35D0 7F0BEA60 1420FFEC */ bnez $at, .Ljp7F0BEA14 +/* 0F35D4 7F0BEA64 00000000 */ nop +.Ljp7F0BEA68: +/* 0F35D8 7F0BEA68 0FC26F2B */ jal set_cur_player +/* 0F35DC 7F0BEA6C 00002025 */ move $a0, $zero +.Ljp7F0BEA70: +/* 0F35E0 7F0BEA70 0FC01555 */ jal set_contents_of_80036078 +/* 0F35E4 7F0BEA74 00002025 */ move $a0, $zero +/* 0F35E8 7F0BEA78 0FC34C18 */ jal zbufDeallocate +/* 0F35EC 7F0BEA7C 00000000 */ nop +/* 0F35F0 7F0BEA80 0C000EEC */ jal viSetVideoMode +/* 0F35F4 7F0BEA84 24040001 */ li $a0, 1 +/* 0F35F8 7F0BEA88 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35FC 7F0BEA8C 44819000 */ mtc1 $at, $f18 +/* 0F3600 7F0BEA90 3C018005 */ lui $at, %hi(D_80048368) # $at, 0x8005 +/* 0F3604 7F0BEA94 00002025 */ move $a0, $zero +/* 0F3608 7F0BEA98 0FC3020C */ jal set_controls_locked_flag +/* 0F360C 7F0BEA9C E4328398 */ swc1 $f18, %lo(D_80048368)($at) +/* 0F3610 7F0BEAA0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0F3614 7F0BEAA4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0F3618 7F0BEAA8 8FB00020 */ lw $s0, 0x20($sp) +/* 0F361C 7F0BEAAC 8FB10024 */ lw $s1, 0x24($sp) +/* 0F3620 7F0BEAB0 8FB20028 */ lw $s2, 0x28($sp) +/* 0F3624 7F0BEAB4 8FB3002C */ lw $s3, 0x2c($sp) +/* 0F3628 7F0BEAB8 8FB40030 */ lw $s4, 0x30($sp) +/* 0F362C 7F0BEABC 03E00008 */ jr $ra +/* 0F3630 7F0BEAC0 27BD0038 */ addiu $sp, $sp, 0x38 +) +#endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel stage_load +/* 0F25E0 7F0BDAB0 3C018005 */ lui $at, %hi(current_stage_to_load) +/* 0F25E4 7F0BDAB4 AC248364 */ sw $a0, %lo(current_stage_to_load)($at) +/* 0F25E8 7F0BDAB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F25EC 7F0BDABC 44816000 */ mtc1 $at, $f12 +/* 0F25F0 7F0BDAC0 24020001 */ li $v0, 1 +/* 0F25F4 7F0BDAC4 3C018005 */ lui $at, %hi(D_800483C0) +/* 0F25F8 7F0BDAC8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0F25FC 7F0BDACC AC2283C0 */ sw $v0, %lo(D_800483C0)($at) +/* 0F2600 7F0BDAD0 AFB10024 */ sw $s1, 0x24($sp) +/* 0F2604 7F0BDAD4 3C018005 */ lui $at, %hi(controls_locked_flag) +/* 0F2608 7F0BDAD8 3C118005 */ lui $s1, %hi(clock_timer) +/* 0F260C 7F0BDADC AC208370 */ sw $zero, %lo(controls_locked_flag)($at) +/* 0F2610 7F0BDAE0 26318374 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c8c +/* 0F2614 7F0BDAE4 AE220000 */ sw $v0, ($s1) +/* 0F2618 7F0BDAE8 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F261C 7F0BDAEC E42C8378 */ swc1 $f12, %lo(global_timer_delta)($at) +/* 0F2620 7F0BDAF0 3C018005 */ lui $at, %hi(D_80048380) +/* 0F2624 7F0BDAF4 AC208380 */ sw $zero, %lo(D_80048380)($at) +/* 0F2628 7F0BDAF8 3C018005 */ lui $at, %hi(global_timer) +/* 0F262C 7F0BDAFC AC20837C */ sw $zero, %lo(global_timer)($at) + +/* 0F2630 7F0BDB00 3C018005 */ lui $at, %hi(D_80048388) +/* 0F2634 7F0BDB04 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F2638 7F0BDB08 3C018005 */ lui $at, %hi(D_8004838C) +/* 0F263C 7F0BDB0C AC20838C */ sw $zero, %lo(D_8004838C)($at) +/* 0F2640 7F0BDB10 AFB00020 */ sw $s0, 0x20($sp) +/* 0F2644 7F0BDB14 3C018005 */ lui $at, %hi(D_80048390) +/* 0F2648 7F0BDB18 44800000 */ mtc1 $zero, $f0 +/* 0F264C 7F0BDB1C 3C108005 */ lui $s0, %hi(D_80048394) +/* 0F2650 7F0BDB20 AC208390 */ sw $zero, %lo(D_80048390)($at) +/* 0F2654 7F0BDB24 26108394 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c6c + /* 0F2658 7F0BDB28 AE000000 */ sw $zero, ($s0) /* 0F265C 7F0BDB2C 3C018005 */ lui $at, %hi(cur_mp_sec) /* 0F2660 7F0BDB30 E42083A4 */ swc1 $f0, %lo(cur_mp_sec)($at) @@ -639,7 +1253,7 @@ glabel stage_load /* 0F29E4 7F0BDEB4 00002025 */ move $a0, $zero /* 0F29E8 7F0BDEB8 0FC348E0 */ jal zbufDeallocate /* 0F29EC 7F0BDEBC 00000000 */ nop -/* 0F29F0 7F0BDEC0 0C000EEC */ jal setVideoWidthHeightToMode +/* 0F29F0 7F0BDEC0 0C000EEC */ jal viSetVideoMode /* 0F29F4 7F0BDEC4 24040001 */ li $a0, 1 /* 0F29F8 7F0BDEC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F29FC 7F0BDECC 44818000 */ mtc1 $at, $f16 @@ -658,312 +1272,6 @@ glabel stage_load /* 0F2A30 7F0BDF00 27BD0038 */ addiu $sp, $sp, 0x38 ) #endif - -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel stage_load -/* 0F31D0 7F0BE660 3C018005 */ lui $at, %hi(current_stage_to_load) # $at, 0x8005 -/* 0F31D4 7F0BE664 AC248394 */ sw $a0, %lo(current_stage_to_load)($at) -/* 0F31D8 7F0BE668 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F31DC 7F0BE66C 44816000 */ mtc1 $at, $f12 -/* 0F31E0 7F0BE670 24020001 */ li $v0, 1 -/* 0F31E4 7F0BE674 3C018005 */ lui $at, %hi(D_800483C0) # $at, 0x8005 -/* 0F31E8 7F0BE678 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0F31EC 7F0BE67C AC2283F4 */ sw $v0, %lo(D_800483C0)($at) -/* 0F31F0 7F0BE680 AFB10024 */ sw $s1, 0x24($sp) -/* 0F31F4 7F0BE684 3C018005 */ lui $at, %hi(controls_locked_flag) # $at, 0x8005 -/* 0F31F8 7F0BE688 3C118005 */ lui $s1, %hi(clock_timer) # $s1, 0x8005 -/* 0F31FC 7F0BE68C AC2083A0 */ sw $zero, %lo(controls_locked_flag)($at) -/* 0F3200 7F0BE690 263183A4 */ addiu $s1, %lo(clock_timer) # addiu $s1, $s1, -0x7c5c -/* 0F3204 7F0BE694 AE220000 */ sw $v0, ($s1) -/* 0F3208 7F0BE698 3C018005 */ lui $at, %hi(jp_global_timer_delta) # $at, 0x8005 -/* 0F320C 7F0BE69C E42C83A8 */ swc1 $f12, %lo(jp_global_timer_delta)($at) -/* 0F3210 7F0BE6A0 3C018005 */ lui $at, %hi(D_80048380) # $at, 0x8005 -/* 0F3214 7F0BE6A4 AC2083B0 */ sw $zero, %lo(D_80048380)($at) -/* 0F3218 7F0BE6A8 3C018005 */ lui $at, %hi(global_timer) # $at, 0x8005 -/* 0F321C 7F0BE6AC AC2083AC */ sw $zero, %lo(global_timer)($at) -/* 0F3220 7F0BE6B0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F3224 7F0BE6B4 44812000 */ mtc1 $at, $f4 - -/* 0F3228 7F0BE6B8 3C018005 */ lui $at, %hi(0x800483B4) # $at, 0x8005 -/* 0F322C 7F0BE6BC AFB00020 */ sw $s0, 0x20($sp) -/* 0F3230 7F0BE6C0 E42483B4 */ swc1 $f4, %lo(0x800483B4)($at) -/* 0F3234 7F0BE6C4 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 -/* 0F3238 7F0BE6C8 AC2083BC */ sw $zero, %lo(D_80048388)($at) -/* 0F323C 7F0BE6CC 3C018005 */ lui $at, %hi(D_8004838C) # $at, 0x8005 -/* 0F3240 7F0BE6D0 AC2083C0 */ sw $zero, %lo(D_8004838C)($at) -/* 0F3244 7F0BE6D4 3C018005 */ lui $at, %hi(D_80048390) # $at, 0x8005 -/* 0F3248 7F0BE6D8 44800000 */ mtc1 $zero, $f0 -/* 0F324C 7F0BE6DC 3C108005 */ lui $s0, %hi(D_80048394) # $s0, 0x8005 -/* 0F3250 7F0BE6E0 AC2083C4 */ sw $zero, %lo(D_80048390)($at) -/* 0F3254 7F0BE6E4 261083C8 */ addiu $s0, %lo(D_80048394) # addiu $s0, $s0, -0x7c38 - -/* 0F3258 7F0BE6E8 AE000000 */ sw $zero, ($s0) -/* 0F325C 7F0BE6EC 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 -/* 0F3260 7F0BE6F0 E42083D8 */ swc1 $f0, %lo(cur_mp_sec)($at) -/* 0F3264 7F0BE6F4 3C018005 */ lui $at, %hi(D_800483B0) # $at, 0x8005 -/* 0F3268 7F0BE6F8 AC2083E4 */ sw $zero, %lo(D_800483B0)($at) -/* 0F326C 7F0BE6FC 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 -/* 0F3270 7F0BE700 E42083E8 */ swc1 $f0, %lo(stage_time_sec)($at) -/* 0F3274 7F0BE704 AFBF0034 */ sw $ra, 0x34($sp) -/* 0F3278 7F0BE708 3C018005 */ lui $at, %hi(D_800483A0) # $at, 0x8005 -/* 0F327C 7F0BE70C AFB40030 */ sw $s4, 0x30($sp) -/* 0F3280 7F0BE710 AFB3002C */ sw $s3, 0x2c($sp) -/* 0F3284 7F0BE714 AFB20028 */ sw $s2, 0x28($sp) -/* 0F3288 7F0BE718 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 0F328C 7F0BE71C AFA40038 */ sw $a0, 0x38($sp) -/* 0F3290 7F0BE720 0C002492 */ jal sfx_c_70009238 -/* 0F3294 7F0BE724 AC2083D4 */ sw $zero, %lo(D_800483A0)($at) -/* 0F3298 7F0BE728 0C001C13 */ jal musicTrack1Vol -/* 0F329C 7F0BE72C 24047FFF */ li $a0, 32767 -/* 0F32A0 7F0BE730 0C001CF5 */ jal musicTrack2Vol -/* 0F32A4 7F0BE734 24047FFF */ li $a0, 32767 -/* 0F32A8 7F0BE738 0C001DD7 */ jal musicTrack3Vol -/* 0F32AC 7F0BE73C 24047FFF */ li $a0, 32767 -/* 0F32B0 7F0BE740 0FC30805 */ jal sub_GAME_7F0C1364 -/* 0F32B4 7F0BE744 00000000 */ nop -/* 0F32B8 7F0BE748 0FC01555 */ jal set_contents_of_80036078 -/* 0F32BC 7F0BE74C 24040001 */ li $a0, 1 -/* 0F32C0 7F0BE750 0FC01CD0 */ jal set_mt_tex_alloc -/* 0F32C4 7F0BE754 00000000 */ nop -/* 0F32C8 7F0BE758 0FC294DD */ jal sub_GAME_7F0A47D4 -/* 0F32CC 7F0BE75C 00000000 */ nop -/* 0F32D0 7F0BE760 0FC33324 */ jal load_prepare_global_image_bank -/* 0F32D4 7F0BE764 00000000 */ nop -/* 0F32D8 7F0BE768 0FC2B5D7 */ jal load_font_tables -/* 0F32DC 7F0BE76C 00000000 */ nop -/* 0F32E0 7F0BE770 8FAF0038 */ lw $t7, 0x38($sp) -/* 0F32E4 7F0BE774 2401005A */ li $at, 90 -/* 0F32E8 7F0BE778 15E10005 */ bne $t7, $at, .Ljp7F0BE790 -/* 0F32EC 7F0BE77C 00000000 */ nop -/* 0F32F0 7F0BE780 0FC00348 */ jal init_menus_or_reset -/* 0F32F4 7F0BE784 00000000 */ nop -/* 0F32F8 7F0BE788 10000073 */ b .Ljp7F0BE958 -/* 0F32FC 7F0BE78C 00000000 */ nop -.Ljp7F0BE790: -/* 0F3300 7F0BE790 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 -/* 0F3304 7F0BE794 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) -/* 0F3308 7F0BE798 3C018007 */ lui $at, %hi(newcheatunlocked) -/* 0F330C 7F0BE79C AC2097D0 */ sw $zero, %lo(newcheatunlocked)($at) -/* 0F3310 7F0BE7A0 2401005A */ li $at, 90 -/* 0F3314 7F0BE7A4 1081001C */ beq $a0, $at, .Ljp7F0BE818 -/* 0F3318 7F0BE7A8 00000000 */ nop -/* 0F331C 7F0BE7AC 8E180000 */ lw $t8, ($s0) -/* 0F3320 7F0BE7B0 17000019 */ bnez $t8, .Ljp7F0BE818 -/* 0F3324 7F0BE7B4 00000000 */ nop -/* 0F3328 7F0BE7B8 8E390000 */ lw $t9, ($s1) -/* 0F332C 7F0BE7BC 3C088003 */ lui $t0, %hi(append_cheat_sp) # $t0, 0x8003 -/* 0F3330 7F0BE7C0 1B200015 */ blez $t9, .Ljp7F0BE818 -/* 0F3334 7F0BE7C4 00000000 */ nop -/* 0F3338 7F0BE7C8 8D08A940 */ lw $t0, %lo(append_cheat_sp)($t0) -/* 0F333C 7F0BE7CC 3C118007 */ lui $s1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $s1, 0x8007 -/* 0F3340 7F0BE7D0 263196E1 */ addiu $s1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $s1, $s1, -0x691f -/* 0F3344 7F0BE7D4 11000010 */ beqz $t0, .Ljp7F0BE818 -/* 0F3348 7F0BE7D8 24100001 */ li $s0, 1 -/* 0F334C 7F0BE7DC 2412004B */ li $s2, 75 -.Ljp7F0BE7E0: -/* 0F3350 7F0BE7E0 92290000 */ lbu $t1, ($s1) -/* 0F3354 7F0BE7E4 51200008 */ beql $t1, $zero, .Ljp7F0BE808 -/* 0F3358 7F0BE7E8 26100001 */ addiu $s0, $s0, 1 -/* 0F335C 7F0BE7EC 0FC2494F */ jal is_cheat_index_equal_to_1C -/* 0F3360 7F0BE7F0 02002025 */ move $a0, $s0 -/* 0F3364 7F0BE7F4 50400004 */ beql $v0, $zero, .Ljp7F0BE808 -/* 0F3368 7F0BE7F8 26100001 */ addiu $s0, $s0, 1 -/* 0F336C 7F0BE7FC 0FC24963 */ jal turn_on_cheat_for_players -/* 0F3370 7F0BE800 02002025 */ move $a0, $s0 -/* 0F3374 7F0BE804 26100001 */ addiu $s0, $s0, 1 -.Ljp7F0BE808: -/* 0F3378 7F0BE808 1612FFF5 */ bne $s0, $s2, .Ljp7F0BE7E0 -/* 0F337C 7F0BE80C 26310001 */ addiu $s1, $s1, 1 -/* 0F3380 7F0BE810 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 -/* 0F3384 7F0BE814 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) -.Ljp7F0BE818: -/* 0F3388 7F0BE818 0FC2D335 */ jal load_bg_file -/* 0F338C 7F0BE81C 00000000 */ nop -/* 0F3390 7F0BE820 3C048005 */ lui $a0, %hi(current_stage_to_load) # $a0, 0x8005 -/* 0F3394 7F0BE824 0FC253F3 */ jal store_stagenum_to_copyof_stagenum -/* 0F3398 7F0BE828 8C848394 */ lw $a0, %lo(current_stage_to_load)($a0) -/* 0F339C 7F0BE82C 0FC29502 */ jal init_watch_at_start_of_stage -/* 0F33A0 7F0BE830 00000000 */ nop -/* 0F33A4 7F0BE834 0FC307AB */ jal sub_GAME_7F0C11FC -/* 0F33A8 7F0BE838 8FA40038 */ lw $a0, 0x38($sp) -/* 0F33AC 7F0BE83C 3C0A8008 */ lui $t2, %hi(player1_player_data) -/* 0F33B0 7F0BE840 3C014348 */ li $at, 0x43480000 # 200.000000 -/* 0F33B4 7F0BE844 25529F60 */ addiu $s2, $t2, %lo(player1_player_data) -/* 0F33B8 7F0BE848 4481A000 */ mtc1 $at, $f20 -/* 0F33BC 7F0BE84C 0240A025 */ move $s4, $s2 -/* 0F33C0 7F0BE850 24130004 */ li $s3, 4 -.Ljp7F0BE854: -/* 0F33C4 7F0BE854 0FC26C01 */ jal getPlayerCount -/* 0F33C8 7F0BE858 00000000 */ nop -/* 0F33CC 7F0BE85C 24010001 */ li $at, 1 -/* 0F33D0 7F0BE860 14410009 */ bne $v0, $at, .Ljp7F0BE888 -/* 0F33D4 7F0BE864 00008025 */ move $s0, $zero -/* 0F33D8 7F0BE868 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F33DC 7F0BE86C 44813000 */ mtc1 $at, $f6 -/* 0F33E0 7F0BE870 44814000 */ mtc1 $at, $f8 -/* 0F33E4 7F0BE874 A280006A */ sb $zero, 0x6a($s4) -/* 0F33E8 7F0BE878 A280006B */ sb $zero, 0x6b($s4) -/* 0F33EC 7F0BE87C E686005C */ swc1 $f6, 0x5c($s4) -/* 0F33F0 7F0BE880 1000001C */ b .Ljp7F0BE8F4 -/* 0F33F4 7F0BE884 E6880064 */ swc1 $f8, 0x64($s4) -.Ljp7F0BE888: -/* 0F33F8 7F0BE888 3C118008 */ lui $s1, %hi(player1_player_data) # $s1, 0x8008 -/* 0F33FC 7F0BE88C 26319F60 */ addiu $s1, %lo(player1_player_data) # addiu $s1, $s1, -0x60a0 -.Ljp7F0BE890: -/* 0F3400 7F0BE890 0FC05202 */ jal get_scenario -/* 0F3404 7F0BE894 00000000 */ nop -/* 0F3408 7F0BE898 14530003 */ bne $v0, $s3, .Ljp7F0BE8A8 -/* 0F340C 7F0BE89C 00000000 */ nop -/* 0F3410 7F0BE8A0 10000004 */ b .Ljp7F0BE8B4 -/* 0F3414 7F0BE8A4 E634005C */ swc1 $f20, 0x5c($s1) -.Ljp7F0BE8A8: -/* 0F3418 7F0BE8A8 0FC040FB */ jal get_player_mp_handicap -/* 0F341C 7F0BE8AC 02002025 */ move $a0, $s0 -/* 0F3420 7F0BE8B0 E620005C */ swc1 $f0, 0x5c($s1) -.Ljp7F0BE8B4: -/* 0F3424 7F0BE8B4 0FC04104 */ jal get_player_mp_char_height -/* 0F3428 7F0BE8B8 02002025 */ move $a0, $s0 -/* 0F342C 7F0BE8BC 26100001 */ addiu $s0, $s0, 1 -/* 0F3430 7F0BE8C0 26310070 */ addiu $s1, $s1, 0x70 -/* 0F3434 7F0BE8C4 1613FFF2 */ bne $s0, $s3, .Ljp7F0BE890 -/* 0F3438 7F0BE8C8 E620FFF4 */ swc1 $f0, -0xc($s1) -/* 0F343C 7F0BE8CC 0FC04118 */ jal get_mp_timelimit -/* 0F3440 7F0BE8D0 00000000 */ nop -/* 0F3444 7F0BE8D4 0FC30224 */ jal set_mp_time -/* 0F3448 7F0BE8D8 00402025 */ move $a0, $v0 -/* 0F344C 7F0BE8DC 0FC04121 */ jal get_mp_pointlimit -/* 0F3450 7F0BE8E0 00000000 */ nop -/* 0F3454 7F0BE8E4 0FC30227 */ jal set_mp_point -/* 0F3458 7F0BE8E8 00402025 */ move $a0, $v0 -/* 0F345C 7F0BE8EC 0FC04086 */ jal copy_aim_settings_to_playerdata -/* 0F3460 7F0BE8F0 00000000 */ nop -.Ljp7F0BE8F4: -/* 0F3464 7F0BE8F4 44805000 */ mtc1 $zero, $f10 -/* 0F3468 7F0BE8F8 44808000 */ mtc1 $zero, $f16 -/* 0F346C 7F0BE8FC 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff -/* 0F3470 7F0BE900 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff -/* 0F3474 7F0BE904 AE800034 */ sw $zero, 0x34($s4) -/* 0F3478 7F0BE908 AE80003C */ sw $zero, 0x3c($s4) -/* 0F347C 7F0BE90C AE820044 */ sw $v0, 0x44($s4) -/* 0F3480 7F0BE910 AE800048 */ sw $zero, 0x48($s4) -/* 0F3484 7F0BE914 AE800054 */ sw $zero, 0x54($s4) -/* 0F3488 7F0BE918 AE800058 */ sw $zero, 0x58($s4) -/* 0F348C 7F0BE91C AE80004C */ sw $zero, 0x4c($s4) -/* 0F3490 7F0BE920 AE820050 */ sw $v0, 0x50($s4) -/* 0F3494 7F0BE924 A2800068 */ sb $zero, 0x68($s4) -/* 0F3498 7F0BE928 AE800060 */ sw $zero, 0x60($s4) -/* 0F349C 7F0BE92C E68A0038 */ swc1 $f10, 0x38($s4) -/* 0F34A0 7F0BE930 E6900040 */ swc1 $f16, 0x40($s4) -/* 0F34A4 7F0BE934 3C0B8008 */ lui $t3, %hi(pPlayer) # $t3, 0x8008 -/* 0F34A8 7F0BE938 256BA120 */ addiu $t3, %lo(pPlayer) # addiu $t3, $t3, -0x5ee0 -/* 0F34AC 7F0BE93C 26520070 */ addiu $s2, $s2, 0x70 -/* 0F34B0 7F0BE940 26940070 */ addiu $s4, $s4, 0x70 -/* 0F34B4 7F0BE944 AE40FFC0 */ sw $zero, -0x40($s2) -/* 0F34B8 7F0BE948 AE40FFBC */ sw $zero, -0x44($s2) -/* 0F34BC 7F0BE94C AE40FFB8 */ sw $zero, -0x48($s2) -/* 0F34C0 7F0BE950 164BFFC0 */ bne $s2, $t3, .Ljp7F0BE854 -/* 0F34C4 7F0BE954 AE40FFB4 */ sw $zero, -0x4c($s2) -.Ljp7F0BE958: -/* 0F34C8 7F0BE958 0FC013B4 */ jal something_with_stage_objectives -/* 0F34CC 7F0BE95C 00000000 */ nop -/* 0F34D0 7F0BE960 0FC30B2E */ jal unpause_game -/* 0F34D4 7F0BE964 00000000 */ nop -/* 0F34D8 7F0BE968 0FC270F0 */ jal sub_GAME_7F09B820 -/* 0F34DC 7F0BE96C 00000000 */ nop -/* 0F34E0 7F0BE970 0FC0151C */ jal sub_GAME_7F005450 -/* 0F34E4 7F0BE974 00000000 */ nop -/* 0F34E8 7F0BE978 0FC01550 */ jal zero_contents_of_80036070_74 -/* 0F34EC 7F0BE97C 00000000 */ nop -/* 0F34F0 7F0BE980 0FC00538 */ jal init_load_objpos_table -/* 0F34F4 7F0BE984 00000000 */ nop -/* 0F34F8 7F0BE988 0FC005D4 */ jal reinit_between_menus -/* 0F34FC 7F0BE98C 00000000 */ nop -/* 0F3500 7F0BE990 0FC0052C */ jal init_sound_effects_registers -/* 0F3504 7F0BE994 00000000 */ nop -/* 0F3508 7F0BE998 0FC00390 */ jal init_guards -/* 0F350C 7F0BE99C 00000000 */ nop -/* 0F3510 7F0BE9A0 0FC003D4 */ jal set_new_rand_head_bodies -/* 0F3514 7F0BE9A4 8FA40038 */ lw $a0, 0x38($sp) -/* 0F3518 7F0BE9A8 0FC00EFC */ jal proplvreset2 -/* 0F351C 7F0BE9AC 8FA40038 */ lw $a0, 0x38($sp) -/* 0F3520 7F0BE9B0 0FC01B6C */ jal alloc_explosion_smoke_casing_scorch_impact_buffers -/* 0F3524 7F0BE9B4 00000000 */ nop -/* 0F3528 7F0BE9B8 0FC01C68 */ jal sub_GAME_7F007180 -/* 0F352C 7F0BE9BC 00000000 */ nop -/* 0F3530 7F0BE9C0 0FC01CAC */ jal sub_GAME_7F007290 -/* 0F3534 7F0BE9C4 00000000 */ nop -/* 0F3538 7F0BE9C8 0FC01CB4 */ jal sub_GAME_7F0072B0 -/* 0F353C 7F0BE9CC 00000000 */ nop -/* 0F3540 7F0BE9D0 3C0C8005 */ lui $t4, %hi(current_stage_to_load) # $t4, 0x8005 -/* 0F3544 7F0BE9D4 8D8C8394 */ lw $t4, %lo(current_stage_to_load)($t4) -/* 0F3548 7F0BE9D8 2401005A */ li $at, 90 -/* 0F354C 7F0BE9DC 15810005 */ bne $t4, $at, .Ljp7F0BE9F4 -/* 0F3550 7F0BE9E0 00000000 */ nop -/* 0F3554 7F0BE9E4 0FC01CC6 */ jal disable_onscreen_cheat_text -/* 0F3558 7F0BE9E8 00000000 */ nop -/* 0F355C 7F0BE9EC 10000020 */ b .Ljp7F0BEA70 -/* 0F3560 7F0BE9F0 00000000 */ nop -.Ljp7F0BE9F4: -/* 0F3564 7F0BE9F4 0FC01A2C */ jal init_path_table_links -/* 0F3568 7F0BE9F8 00000000 */ nop -/* 0F356C 7F0BE9FC 0FC01418 */ jal something_with_ejected_cartridges -/* 0F3570 7F0BEA00 00000000 */ nop -/* 0F3574 7F0BEA04 0FC26C01 */ jal getPlayerCount -/* 0F3578 7F0BEA08 00008025 */ move $s0, $zero -/* 0F357C 7F0BEA0C 18400016 */ blez $v0, .Ljp7F0BEA68 -/* 0F3580 7F0BEA10 00000000 */ nop -.Ljp7F0BEA14: -/* 0F3584 7F0BEA14 0FC26F2B */ jal set_cur_player -/* 0F3588 7F0BEA18 02002025 */ move $a0, $s0 -/* 0F358C 7F0BEA1C 0FC0187C */ jal sub_GAME_7F0061F0 -/* 0F3590 7F0BEA20 00000000 */ nop -/* 0F3594 7F0BEA24 0FC0143C */ jal init_player_BONDdata_stats -/* 0F3598 7F0BEA28 00000000 */ nop -/* 0F359C 7F0BEA2C 0FC1E677 */ jal init_player_BONDdata -/* 0F35A0 7F0BEA30 00000000 */ nop -/* 0F35A4 7F0BEA34 0FC015F9 */ jal load_camera_intro_type_values -/* 0F35A8 7F0BEA38 00000000 */ nop -/* 0F35AC 7F0BEA3C 0FC1E7AA */ jal sub_GAME_7F0798B8 -/* 0F35B0 7F0BEA40 00000000 */ nop -/* 0F35B4 7F0BEA44 0FC018E3 */ jal sets_a_bunch_of_BONDdata_values_to_default -/* 0F35B8 7F0BEA48 00000000 */ nop -/* 0F35BC 7F0BEA4C 0FC01CC6 */ jal disable_onscreen_cheat_text -/* 0F35C0 7F0BEA50 00000000 */ nop -/* 0F35C4 7F0BEA54 0FC26C01 */ jal getPlayerCount -/* 0F35C8 7F0BEA58 26100001 */ addiu $s0, $s0, 1 -/* 0F35CC 7F0BEA5C 0202082A */ slt $at, $s0, $v0 -/* 0F35D0 7F0BEA60 1420FFEC */ bnez $at, .Ljp7F0BEA14 -/* 0F35D4 7F0BEA64 00000000 */ nop -.Ljp7F0BEA68: -/* 0F35D8 7F0BEA68 0FC26F2B */ jal set_cur_player -/* 0F35DC 7F0BEA6C 00002025 */ move $a0, $zero -.Ljp7F0BEA70: -/* 0F35E0 7F0BEA70 0FC01555 */ jal set_contents_of_80036078 -/* 0F35E4 7F0BEA74 00002025 */ move $a0, $zero -/* 0F35E8 7F0BEA78 0FC34C18 */ jal zbufDeallocate -/* 0F35EC 7F0BEA7C 00000000 */ nop -/* 0F35F0 7F0BEA80 0C000EEC */ jal setVideoWidthHeightToMode -/* 0F35F4 7F0BEA84 24040001 */ li $a0, 1 -/* 0F35F8 7F0BEA88 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F35FC 7F0BEA8C 44819000 */ mtc1 $at, $f18 -/* 0F3600 7F0BEA90 3C018005 */ lui $at, %hi(D_80048368) # $at, 0x8005 -/* 0F3604 7F0BEA94 00002025 */ move $a0, $zero -/* 0F3608 7F0BEA98 0FC3020C */ jal set_controls_locked_flag -/* 0F360C 7F0BEA9C E4328398 */ swc1 $f18, %lo(D_80048368)($at) -/* 0F3610 7F0BEAA0 8FBF0034 */ lw $ra, 0x34($sp) -/* 0F3614 7F0BEAA4 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 0F3618 7F0BEAA8 8FB00020 */ lw $s0, 0x20($sp) -/* 0F361C 7F0BEAAC 8FB10024 */ lw $s1, 0x24($sp) -/* 0F3620 7F0BEAB0 8FB20028 */ lw $s2, 0x28($sp) -/* 0F3624 7F0BEAB4 8FB3002C */ lw $s3, 0x2c($sp) -/* 0F3628 7F0BEAB8 8FB40030 */ lw $s4, 0x30($sp) -/* 0F362C 7F0BEABC 03E00008 */ jr $ra -/* 0F3630 7F0BEAC0 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - #endif @@ -1011,11 +1319,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2AA0 7F0BDF70 AFA20028 */ sw $v0, 0x28($sp) /* 0F2AA4 7F0BDF74 00002025 */ move $a0, $zero /* 0F2AA8 7F0BDF78 34058000 */ li $a1, 32768 -/* 0F2AAC 7F0BDF7C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2AAC 7F0BDF7C 0C0030C3 */ jal joyGetButtons /* 0F2AB0 7F0BDF80 AC2383DC */ sw $v1, %lo(D_800483DC)($at) /* 0F2AB4 7F0BDF84 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2AB8 7F0BDF88 24040001 */ li $a0, 1 -/* 0F2ABC 7F0BDF8C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2ABC 7F0BDF8C 0C0030C3 */ jal joyGetButtons /* 0F2AC0 7F0BDF90 34058000 */ li $a1, 32768 /* 0F2AC4 7F0BDF94 3C198005 */ lui $t9, %hi(D_800483DC) /* 0F2AC8 7F0BDF98 8F3983DC */ lw $t9, %lo(D_800483DC)($t9) @@ -1053,11 +1361,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2B38 7F0BE008 8FA20028 */ lw $v0, 0x28($sp) .L7F0BE00C: /* 0F2B3C 7F0BE00C 00002025 */ move $a0, $zero -/* 0F2B40 7F0BE010 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B40 7F0BE010 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2B44 7F0BE014 24050200 */ li $a1, 512 /* 0F2B48 7F0BE018 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2B4C 7F0BE01C 24040001 */ li $a0, 1 -/* 0F2B50 7F0BE020 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B50 7F0BE020 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2B54 7F0BE024 24050200 */ li $a1, 512 /* 0F2B58 7F0BE028 0050C025 */ or $t8, $v0, $s0 /* 0F2B5C 7F0BE02C 1300000B */ beqz $t8, .L7F0BE05C @@ -1073,11 +1381,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2B84 7F0BE054 3C018005 */ lui $at, %hi(D_800483CC) /* 0F2B88 7F0BE058 AC2083CC */ sw $zero, %lo(D_800483CC)($at) .L7F0BE05C: -/* 0F2B8C 7F0BE05C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B8C 7F0BE05C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2B90 7F0BE060 00002025 */ move $a0, $zero /* 0F2B94 7F0BE064 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2B98 7F0BE068 24040001 */ li $a0, 1 -/* 0F2B9C 7F0BE06C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2B9C 7F0BE06C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2BA0 7F0BE070 24050100 */ li $a1, 256 /* 0F2BA4 7F0BE074 00504025 */ or $t0, $v0, $s0 /* 0F2BA8 7F0BE078 11000008 */ beqz $t0, .L7F0BE09C @@ -1090,25 +1398,25 @@ glabel sub_GAME_7F0BDF10 /* 0F2BC4 7F0BE094 AC2483CC */ sw $a0, %lo(D_800483CC)($at) /* 0F2BC8 7F0BE098 AFA90020 */ sw $t1, 0x20($sp) .L7F0BE09C: -/* 0F2BCC 7F0BE09C 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BCC 7F0BE09C 0C0030C3 */ jal joyGetButtons /* 0F2BD0 7F0BE0A0 00002025 */ move $a0, $zero /* 0F2BD4 7F0BE0A4 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2BD8 7F0BE0A8 24040001 */ li $a0, 1 -/* 0F2BDC 7F0BE0AC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BDC 7F0BE0AC 0C0030C3 */ jal joyGetButtons /* 0F2BE0 7F0BE0B0 24050010 */ li $a1, 16 /* 0F2BE4 7F0BE0B4 00505025 */ or $t2, $v0, $s0 /* 0F2BE8 7F0BE0B8 11400012 */ beqz $t2, .L7F0BE104 /* 0F2BEC 7F0BE0BC 00002025 */ move $a0, $zero -/* 0F2BF0 7F0BE0C0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2BF0 7F0BE0C0 0C0030C3 */ jal joyGetButtons /* 0F2BF4 7F0BE0C4 24050020 */ li $a1, 32 /* 0F2BF8 7F0BE0C8 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2BFC 7F0BE0CC 24040001 */ li $a0, 1 -/* 0F2C00 7F0BE0D0 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C00 7F0BE0D0 0C0030C3 */ jal joyGetButtons /* 0F2C04 7F0BE0D4 24050020 */ li $a1, 32 /* 0F2C08 7F0BE0D8 00505825 */ or $t3, $v0, $s0 /* 0F2C0C 7F0BE0DC 11600009 */ beqz $t3, .L7F0BE104 /* 0F2C10 7F0BE0E0 00002025 */ move $a0, $zero -/* 0F2C14 7F0BE0E4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C14 7F0BE0E4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2C18 7F0BE0E8 24050400 */ li $a1, 1024 /* 0F2C1C 7F0BE0EC 10400081 */ beqz $v0, .L7F0BE2F4 /* 0F2C20 7F0BE0F0 3C048005 */ lui $a0, %hi(D_800483CC) @@ -1118,21 +1426,21 @@ glabel sub_GAME_7F0BDF10 /* 0F2C30 7F0BE100 00001025 */ move $v0, $zero .L7F0BE104: /* 0F2C34 7F0BE104 00002025 */ move $a0, $zero -/* 0F2C38 7F0BE108 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C38 7F0BE108 0C0030C3 */ jal joyGetButtons /* 0F2C3C 7F0BE10C 24050010 */ li $a1, 16 /* 0F2C40 7F0BE110 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2C44 7F0BE114 24040001 */ li $a0, 1 -/* 0F2C48 7F0BE118 0C0030C3 */ jal get_controller_buttons_held +/* 0F2C48 7F0BE118 0C0030C3 */ jal joyGetButtons /* 0F2C4C 7F0BE11C 24050010 */ li $a1, 16 /* 0F2C50 7F0BE120 00506025 */ or $t4, $v0, $s0 /* 0F2C54 7F0BE124 11800029 */ beqz $t4, .L7F0BE1CC /* 0F2C58 7F0BE128 00002025 */ move $a0, $zero /* 0F2C5C 7F0BE12C 00002025 */ move $a0, $zero -/* 0F2C60 7F0BE130 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C60 7F0BE130 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2C64 7F0BE134 24050400 */ li $a1, 1024 /* 0F2C68 7F0BE138 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2C6C 7F0BE13C 24040001 */ li $a0, 1 -/* 0F2C70 7F0BE140 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2C70 7F0BE140 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2C74 7F0BE144 24050400 */ li $a1, 1024 /* 0F2C78 7F0BE148 00506825 */ or $t5, $v0, $s0 /* 0F2C7C 7F0BE14C 11A0000A */ beqz $t5, .L7F0BE178 @@ -1148,11 +1456,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2CA4 7F0BE174 00002825 */ move $a1, $zero .L7F0BE178: /* 0F2CA8 7F0BE178 00002025 */ move $a0, $zero -/* 0F2CAC 7F0BE17C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CAC 7F0BE17C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2CB0 7F0BE180 24050800 */ li $a1, 2048 /* 0F2CB4 7F0BE184 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2CB8 7F0BE188 24040001 */ li $a0, 1 -/* 0F2CBC 7F0BE18C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2CBC 7F0BE18C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2CC0 7F0BE190 24050800 */ li $a1, 2048 /* 0F2CC4 7F0BE194 00507825 */ or $t7, $v0, $s0 /* 0F2CC8 7F0BE198 11E00056 */ beqz $t7, .L7F0BE2F4 @@ -1169,21 +1477,21 @@ glabel sub_GAME_7F0BDF10 /* 0F2CF4 7F0BE1C4 1000004C */ b .L7F0BE2F8 /* 0F2CF8 7F0BE1C8 00001025 */ move $v0, $zero .L7F0BE1CC: -/* 0F2CFC 7F0BE1CC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2CFC 7F0BE1CC 0C0030C3 */ jal joyGetButtons /* 0F2D00 7F0BE1D0 24050020 */ li $a1, 32 /* 0F2D04 7F0BE1D4 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2D08 7F0BE1D8 24040001 */ li $a0, 1 -/* 0F2D0C 7F0BE1DC 0C0030C3 */ jal get_controller_buttons_held +/* 0F2D0C 7F0BE1DC 0C0030C3 */ jal joyGetButtons /* 0F2D10 7F0BE1E0 24050020 */ li $a1, 32 /* 0F2D14 7F0BE1E4 0050C825 */ or $t9, $v0, $s0 /* 0F2D18 7F0BE1E8 13200027 */ beqz $t9, .L7F0BE288 /* 0F2D1C 7F0BE1EC 00002025 */ move $a0, $zero /* 0F2D20 7F0BE1F0 00002025 */ move $a0, $zero -/* 0F2D24 7F0BE1F4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D24 7F0BE1F4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2D28 7F0BE1F8 24050400 */ li $a1, 1024 /* 0F2D2C 7F0BE1FC 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2D30 7F0BE200 24040001 */ li $a0, 1 -/* 0F2D34 7F0BE204 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D34 7F0BE204 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2D38 7F0BE208 24050400 */ li $a1, 1024 /* 0F2D3C 7F0BE20C 00504025 */ or $t0, $v0, $s0 /* 0F2D40 7F0BE210 11000009 */ beqz $t0, .L7F0BE238 @@ -1198,11 +1506,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2D64 7F0BE234 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) .L7F0BE238: /* 0F2D68 7F0BE238 00002025 */ move $a0, $zero -/* 0F2D6C 7F0BE23C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D6C 7F0BE23C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2D70 7F0BE240 24050800 */ li $a1, 2048 /* 0F2D74 7F0BE244 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2D78 7F0BE248 24040001 */ li $a0, 1 -/* 0F2D7C 7F0BE24C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2D7C 7F0BE24C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2D80 7F0BE250 24050800 */ li $a1, 2048 /* 0F2D84 7F0BE254 00505025 */ or $t2, $v0, $s0 /* 0F2D88 7F0BE258 11400026 */ beqz $t2, .L7F0BE2F4 @@ -1218,11 +1526,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2DB0 7F0BE280 1000001D */ b .L7F0BE2F8 /* 0F2DB4 7F0BE284 00001025 */ move $v0, $zero .L7F0BE288: -/* 0F2DB8 7F0BE288 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DB8 7F0BE288 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2DBC 7F0BE28C 24050400 */ li $a1, 1024 /* 0F2DC0 7F0BE290 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2DC4 7F0BE294 24040001 */ li $a0, 1 -/* 0F2DC8 7F0BE298 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DC8 7F0BE298 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2DCC 7F0BE29C 24050400 */ li $a1, 1024 /* 0F2DD0 7F0BE2A0 00506025 */ or $t4, $v0, $s0 /* 0F2DD4 7F0BE2A4 11800005 */ beqz $t4, .L7F0BE2BC @@ -1233,11 +1541,11 @@ glabel sub_GAME_7F0BDF10 /* 0F2DE8 7F0BE2B8 8C8483CC */ lw $a0, %lo(D_800483CC)($a0) .L7F0BE2BC: /* 0F2DEC 7F0BE2BC 00002025 */ move $a0, $zero -/* 0F2DF0 7F0BE2C0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2DF0 7F0BE2C0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2DF4 7F0BE2C4 24050800 */ li $a1, 2048 /* 0F2DF8 7F0BE2C8 3050FFFF */ andi $s0, $v0, 0xffff /* 0F2DFC 7F0BE2CC 24040001 */ li $a0, 1 -/* 0F2E00 7F0BE2D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F2E00 7F0BE2D0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F2E04 7F0BE2D4 24050800 */ li $a1, 2048 /* 0F2E08 7F0BE2D8 00507025 */ or $t6, $v0, $s0 /* 0F2E0C 7F0BE2DC 11C00005 */ beqz $t6, .L7F0BE2F4 @@ -1311,7 +1619,7 @@ glabel sub_GAME_7F0BE30C /* 0F2ED4 7F0BE3A4 2401005A */ li $at, 90 /* 0F2ED8 7F0BE3A8 17210025 */ bne $t9, $at, .L7F0BE440 /* 0F2EDC 7F0BE3AC 00000000 */ nop -/* 0F2EE0 7F0BE3B0 0C000FAD */ jal video_related_10 +/* 0F2EE0 7F0BE3B0 0C000FAD */ jal viClearZBufCurrentPlayer /* 0F2EE4 7F0BE3B4 8FA40060 */ lw $a0, 0x60($sp) /* 0F2EE8 7F0BE3B8 AFA20060 */ sw $v0, 0x60($sp) /* 0F2EEC 7F0BE3BC 0C000F16 */ jal video_related_F @@ -1320,9 +1628,9 @@ glabel sub_GAME_7F0BE30C /* 0F2EF8 7F0BE3C8 AFA90060 */ sw $t1, 0x60($sp) /* 0F2EFC 7F0BE3CC 3C0AED00 */ lui $t2, 0xed00 /* 0F2F00 7F0BE3D0 AC4A0000 */ sw $t2, ($v0) -/* 0F2F04 7F0BE3D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F2F04 7F0BE3D4 0C001107 */ jal viGetX /* 0F2F08 7F0BE3D8 00408025 */ move $s0, $v0 -/* 0F2F0C 7F0BE3DC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F2F0C 7F0BE3DC 0C00110B */ jal viGetY /* 0F2F10 7F0BE3E0 A7A20022 */ sh $v0, 0x22($sp) /* 0F2F14 7F0BE3E4 87B10022 */ lh $s1, 0x22($sp) /* 0F2F18 7F0BE3E8 44822000 */ mtc1 $v0, $f4 @@ -1392,19 +1700,19 @@ glabel sub_GAME_7F0BE30C /* 0F3010 7F0BE4E0 00402025 */ move $a0, $v0 /* 0F3014 7F0BE4E4 8E020000 */ lw $v0, ($s0) /* 0F3018 7F0BE4E8 844407F0 */ lh $a0, 0x7f0($v0) -/* 0F301C 7F0BE4EC 0C00110F */ jal set_video2_width_height +/* 0F301C 7F0BE4EC 0C00110F */ jal viSetViewSize /* 0F3020 7F0BE4F0 844507F2 */ lh $a1, 0x7f2($v0) /* 0F3024 7F0BE4F4 8E020000 */ lw $v0, ($s0) /* 0F3028 7F0BE4F8 844407F4 */ lh $a0, 0x7f4($v0) -/* 0F302C 7F0BE4FC 0C00112F */ jal set_video2_ulx_uly +/* 0F302C 7F0BE4FC 0C00112F */ jal viSetViewPosition /* 0F3030 7F0BE500 844507F6 */ lh $a1, 0x7f6($v0) /* 0F3034 7F0BE504 8E0E0000 */ lw $t6, ($s0) -/* 0F3038 7F0BE508 0C001151 */ jal setvideo_far +/* 0F3038 7F0BE508 0C001151 */ jal viSetFovY /* 0F303C 7F0BE50C C5CC11D0 */ lwc1 $f12, 0x11d0($t6) /* 0F3040 7F0BE510 8E0F0000 */ lw $t7, ($s0) -/* 0F3044 7F0BE514 0C001164 */ jal set_page_aspect +/* 0F3044 7F0BE514 0C001164 */ jal viSetAspect /* 0F3048 7F0BE518 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) -/* 0F304C 7F0BE51C 0C000FAD */ jal video_related_10 +/* 0F304C 7F0BE51C 0C000FAD */ jal viClearZBufCurrentPlayer /* 0F3050 7F0BE520 8FA40060 */ lw $a0, 0x60($sp) /* 0F3054 7F0BE524 AFA20060 */ sw $v0, 0x60($sp) /* 0F3058 7F0BE528 0C000F16 */ jal video_related_F @@ -1508,12 +1816,12 @@ glabel sub_GAME_7F0BE30C .L7F0BE694: /* 0F31C4 7F0BE694 3C058006 */ lui $a1, %hi(aStanshow_) /* 0F31C8 7F0BE698 24A5B6BC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4944 -/* 0F31CC 7F0BE69C 0C0029A8 */ jal check_token +/* 0F31CC 7F0BE69C 0C0029A8 */ jal tokenFind /* 0F31D0 7F0BE6A0 24040001 */ li $a0, 1 /* 0F31D4 7F0BE6A4 10400011 */ beqz $v0, .L7F0BE6EC /* 0F31D8 7F0BE6A8 24040001 */ li $a0, 1 /* 0F31DC 7F0BE6AC 3C058006 */ lui $a1, %hi(aStanshow__5) -/* 0F31E0 7F0BE6B0 0C0029A8 */ jal check_token +/* 0F31E0 7F0BE6B0 0C0029A8 */ jal tokenFind /* 0F31E4 7F0BE6B4 24A5B6C8 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x4938 /* 0F31E8 7F0BE6B8 0FC2CB96 */ jal stanMatchTileName /* 0F31EC 7F0BE6BC 00402025 */ move $a0, $v0 @@ -1531,12 +1839,12 @@ glabel sub_GAME_7F0BE30C .L7F0BE6EC: /* 0F321C 7F0BE6EC 3C058006 */ lui $a1, %hi(aStanshow__0) /* 0F3220 7F0BE6F0 24A5B6D4 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x492c -/* 0F3224 7F0BE6F4 0C0029A8 */ jal check_token +/* 0F3224 7F0BE6F4 0C0029A8 */ jal tokenFind /* 0F3228 7F0BE6F8 24040002 */ li $a0, 2 /* 0F322C 7F0BE6FC 10400011 */ beqz $v0, .L7F0BE744 /* 0F3230 7F0BE700 24040002 */ li $a0, 2 /* 0F3234 7F0BE704 3C058006 */ lui $a1, %hi(aStanshow__1) -/* 0F3238 7F0BE708 0C0029A8 */ jal check_token +/* 0F3238 7F0BE708 0C0029A8 */ jal tokenFind /* 0F323C 7F0BE70C 24A5B6E0 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x4920 /* 0F3240 7F0BE710 0FC2CB96 */ jal stanMatchTileName /* 0F3244 7F0BE714 00402025 */ move $a0, $v0 @@ -1554,12 +1862,12 @@ glabel sub_GAME_7F0BE30C .L7F0BE744: /* 0F3274 7F0BE744 3C058006 */ lui $a1, %hi(aStanshow__2) /* 0F3278 7F0BE748 24A5B6EC */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x4914 -/* 0F327C 7F0BE74C 0C0029A8 */ jal check_token +/* 0F327C 7F0BE74C 0C0029A8 */ jal tokenFind /* 0F3280 7F0BE750 24040003 */ li $a0, 3 /* 0F3284 7F0BE754 10400010 */ beqz $v0, .L7F0BE798 /* 0F3288 7F0BE758 24040003 */ li $a0, 3 /* 0F328C 7F0BE75C 3C058006 */ lui $a1, %hi(aStanshow__3) -/* 0F3290 7F0BE760 0C0029A8 */ jal check_token +/* 0F3290 7F0BE760 0C0029A8 */ jal tokenFind /* 0F3294 7F0BE764 24A5B6F8 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x4908 /* 0F3298 7F0BE768 0FC2CB96 */ jal stanMatchTileName /* 0F329C 7F0BE76C 00402025 */ move $a0, $v0 @@ -1625,11 +1933,11 @@ glabel sub_GAME_7F0BE30C /* 0F3378 7F0BE848 3C09ED00 */ lui $t1, 0xed00 /* 0F337C 7F0BE84C 26190008 */ addiu $t9, $s0, 8 /* 0F3380 7F0BE850 AFB90060 */ sw $t9, 0x60($sp) -/* 0F3384 7F0BE854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3384 7F0BE854 0C001107 */ jal viGetX /* 0F3388 7F0BE858 AE090000 */ sw $t1, ($s0) /* 0F338C 7F0BE85C 00028C00 */ sll $s1, $v0, 0x10 /* 0F3390 7F0BE860 00115403 */ sra $t2, $s1, 0x10 -/* 0F3394 7F0BE864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3394 7F0BE864 0C00110B */ jal viGetY /* 0F3398 7F0BE868 01408825 */ move $s1, $t2 /* 0F339C 7F0BE86C 44824000 */ mtc1 $v0, $f8 /* 0F33A0 7F0BE870 44913000 */ mtc1 $s1, $f6 @@ -1704,7 +2012,7 @@ glabel sub_GAME_7F0BE30C /* 0F3AD4 7F0BEF64 2401005A */ li $at, 90 /* 0F3AD8 7F0BEF68 17210025 */ bne $t9, $at, .Ljp7F0BF000 /* 0F3ADC 7F0BEF6C 00000000 */ nop -/* 0F3AE0 7F0BEF70 0C000FAD */ jal video_related_10 +/* 0F3AE0 7F0BEF70 0C000FAD */ jal viClearZBufCurrentPlayer /* 0F3AE4 7F0BEF74 8FA40060 */ lw $a0, 0x60($sp) /* 0F3AE8 7F0BEF78 AFA20060 */ sw $v0, 0x60($sp) /* 0F3AEC 7F0BEF7C 0C000F16 */ jal video_related_F @@ -1713,9 +2021,9 @@ glabel sub_GAME_7F0BE30C /* 0F3AF8 7F0BEF88 AFA90060 */ sw $t1, 0x60($sp) /* 0F3AFC 7F0BEF8C 3C0AED00 */ lui $t2, 0xed00 /* 0F3B00 7F0BEF90 AC4A0000 */ sw $t2, ($v0) -/* 0F3B04 7F0BEF94 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3B04 7F0BEF94 0C001107 */ jal viGetX /* 0F3B08 7F0BEF98 00408025 */ move $s0, $v0 -/* 0F3B0C 7F0BEF9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3B0C 7F0BEF9C 0C00110B */ jal viGetY /* 0F3B10 7F0BEFA0 A7A20022 */ sh $v0, 0x22($sp) /* 0F3B14 7F0BEFA4 87B10022 */ lh $s1, 0x22($sp) /* 0F3B18 7F0BEFA8 44822000 */ mtc1 $v0, $f4 @@ -1785,19 +2093,19 @@ glabel sub_GAME_7F0BE30C /* 0F3C10 7F0BF0A0 00402025 */ move $a0, $v0 /* 0F3C14 7F0BF0A4 8E020000 */ lw $v0, ($s0) /* 0F3C18 7F0BF0A8 844407F0 */ lh $a0, 0x7f0($v0) -/* 0F3C1C 7F0BF0AC 0C00110F */ jal set_video2_width_height +/* 0F3C1C 7F0BF0AC 0C00110F */ jal viSetViewSize /* 0F3C20 7F0BF0B0 844507F2 */ lh $a1, 0x7f2($v0) /* 0F3C24 7F0BF0B4 8E020000 */ lw $v0, ($s0) /* 0F3C28 7F0BF0B8 844407F4 */ lh $a0, 0x7f4($v0) -/* 0F3C2C 7F0BF0BC 0C00112F */ jal set_video2_ulx_uly +/* 0F3C2C 7F0BF0BC 0C00112F */ jal viSetViewPosition /* 0F3C30 7F0BF0C0 844507F6 */ lh $a1, 0x7f6($v0) /* 0F3C34 7F0BF0C4 8E0E0000 */ lw $t6, ($s0) -/* 0F3C38 7F0BF0C8 0C001151 */ jal setvideo_far +/* 0F3C38 7F0BF0C8 0C001151 */ jal viSetFovY /* 0F3C3C 7F0BF0CC C5CC11D0 */ lwc1 $f12, 0x11d0($t6) /* 0F3C40 7F0BF0D0 8E0F0000 */ lw $t7, ($s0) -/* 0F3C44 7F0BF0D4 0C001164 */ jal set_page_aspect +/* 0F3C44 7F0BF0D4 0C001164 */ jal viSetAspect /* 0F3C48 7F0BF0D8 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) -/* 0F3C4C 7F0BF0DC 0C000FAD */ jal video_related_10 +/* 0F3C4C 7F0BF0DC 0C000FAD */ jal viClearZBufCurrentPlayer /* 0F3C50 7F0BF0E0 8FA40060 */ lw $a0, 0x60($sp) /* 0F3C54 7F0BF0E4 AFA20060 */ sw $v0, 0x60($sp) /* 0F3C58 7F0BF0E8 0C000F16 */ jal video_related_F @@ -1901,12 +2209,12 @@ glabel sub_GAME_7F0BE30C .Ljp7F0BF254: /* 0F3DC4 7F0BF254 3C058006 */ lui $a1, %hi(aStanshow_) # $a1, 0x8006 /* 0F3DC8 7F0BF258 24A5B6FC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4904 -/* 0F3DCC 7F0BF25C 0C0029AC */ jal check_token +/* 0F3DCC 7F0BF25C 0C0029AC */ jal tokenFind /* 0F3DD0 7F0BF260 24040001 */ li $a0, 1 /* 0F3DD4 7F0BF264 10400011 */ beqz $v0, .Ljp7F0BF2AC /* 0F3DD8 7F0BF268 24040001 */ li $a0, 1 /* 0F3DDC 7F0BF26C 3C058006 */ lui $a1, %hi(aStanshow__5) # $a1, 0x8006 -/* 0F3DE0 7F0BF270 0C0029AC */ jal check_token +/* 0F3DE0 7F0BF270 0C0029AC */ jal tokenFind /* 0F3DE4 7F0BF274 24A5B708 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x48f8 /* 0F3DE8 7F0BF278 0FC2CE82 */ jal stanMatchTileName /* 0F3DEC 7F0BF27C 00402025 */ move $a0, $v0 @@ -1924,12 +2232,12 @@ glabel sub_GAME_7F0BE30C .Ljp7F0BF2AC: /* 0F3E1C 7F0BF2AC 3C058006 */ lui $a1, %hi(aStanshow__0) # $a1, 0x8006 /* 0F3E20 7F0BF2B0 24A5B714 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x48ec -/* 0F3E24 7F0BF2B4 0C0029AC */ jal check_token +/* 0F3E24 7F0BF2B4 0C0029AC */ jal tokenFind /* 0F3E28 7F0BF2B8 24040002 */ li $a0, 2 /* 0F3E2C 7F0BF2BC 10400011 */ beqz $v0, .Ljp7F0BF304 /* 0F3E30 7F0BF2C0 24040002 */ li $a0, 2 /* 0F3E34 7F0BF2C4 3C058006 */ lui $a1, %hi(aStanshow__1) # $a1, 0x8006 -/* 0F3E38 7F0BF2C8 0C0029AC */ jal check_token +/* 0F3E38 7F0BF2C8 0C0029AC */ jal tokenFind /* 0F3E3C 7F0BF2CC 24A5B720 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x48e0 /* 0F3E40 7F0BF2D0 0FC2CE82 */ jal stanMatchTileName /* 0F3E44 7F0BF2D4 00402025 */ move $a0, $v0 @@ -1947,12 +2255,12 @@ glabel sub_GAME_7F0BE30C .Ljp7F0BF304: /* 0F3E74 7F0BF304 3C058006 */ lui $a1, %hi(aStanshow__2) # $a1, 0x8006 /* 0F3E78 7F0BF308 24A5B72C */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x48d4 -/* 0F3E7C 7F0BF30C 0C0029AC */ jal check_token +/* 0F3E7C 7F0BF30C 0C0029AC */ jal tokenFind /* 0F3E80 7F0BF310 24040003 */ li $a0, 3 /* 0F3E84 7F0BF314 10400010 */ beqz $v0, .Ljp7F0BF358 /* 0F3E88 7F0BF318 24040003 */ li $a0, 3 /* 0F3E8C 7F0BF31C 3C058006 */ lui $a1, %hi(aStanshow__3) # $a1, 0x8006 -/* 0F3E90 7F0BF320 0C0029AC */ jal check_token +/* 0F3E90 7F0BF320 0C0029AC */ jal tokenFind /* 0F3E94 7F0BF324 24A5B738 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x48c8 /* 0F3E98 7F0BF328 0FC2CE82 */ jal stanMatchTileName /* 0F3E9C 7F0BF32C 00402025 */ move $a0, $v0 @@ -2028,11 +2336,11 @@ glabel sub_GAME_7F0BE30C /* 0F3F9C 7F0BF42C 3C0BED00 */ lui $t3, 0xed00 /* 0F3FA0 7F0BF430 260A0008 */ addiu $t2, $s0, 8 /* 0F3FA4 7F0BF434 AFAA0060 */ sw $t2, 0x60($sp) -/* 0F3FA8 7F0BF438 0C001107 */ jal get_video2_settings_txtClipW +/* 0F3FA8 7F0BF438 0C001107 */ jal viGetX /* 0F3FAC 7F0BF43C AE0B0000 */ sw $t3, ($s0) /* 0F3FB0 7F0BF440 00028C00 */ sll $s1, $v0, 0x10 /* 0F3FB4 7F0BF444 00116403 */ sra $t4, $s1, 0x10 -/* 0F3FB8 7F0BF448 0C00110B */ jal get_video2_settings_txtClipH +/* 0F3FB8 7F0BF448 0C00110B */ jal viGetY /* 0F3FBC 7F0BF44C 01808825 */ move $s1, $t4 /* 0F3FC0 7F0BF450 44824000 */ mtc1 $v0, $f8 /* 0F3FC4 7F0BF454 44913000 */ mtc1 $s1, $f6 @@ -2062,6 +2370,399 @@ glabel sub_GAME_7F0BE30C ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F0BE30C +/* 0F2E3C 7F0BE30C 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0F2E40 7F0BE310 AFA40060 */ sw $a0, 0x60($sp) +/* 0F2E44 7F0BE314 248F0008 */ addiu $t7, $a0, 8 +/* 0F2E48 7F0BE318 AFBF001C */ sw $ra, 0x1c($sp) +/* 0F2E4C 7F0BE31C AFB10018 */ sw $s1, 0x18($sp) +/* 0F2E50 7F0BE320 AFB00014 */ sw $s0, 0x14($sp) +/* 0F2E54 7F0BE324 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2E58 7F0BE328 3C18BC00 */ lui $t8, (0xBC000006 >> 16) # lui $t8, 0xbc00 +/* 0F2E5C 7F0BE32C 37180006 */ ori $t8, (0xBC000006 & 0xFFFF) # ori $t8, $t8, 6 +/* 0F2E60 7F0BE330 AC980000 */ sw $t8, ($a0) +/* 0F2E64 7F0BE334 AC800004 */ sw $zero, 4($a0) +/* 0F2E68 7F0BE338 8FB00060 */ lw $s0, 0x60($sp) +/* 0F2E6C 7F0BE33C 3C0ABC00 */ lui $t2, (0xBC000406 >> 16) # lui $t2, 0xbc00 +/* 0F2E70 7F0BE340 354A0406 */ ori $t2, (0xBC000406 & 0xFFFF) # ori $t2, $t2, 0x406 +/* 0F2E74 7F0BE344 26090008 */ addiu $t1, $s0, 8 +/* 0F2E78 7F0BE348 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2E7C 7F0BE34C 3C048009 */ lui $a0, %hi(ptr_jfont_DL) +/* 0F2E80 7F0BE350 AE0A0000 */ sw $t2, ($s0) +/* 0F2E84 7F0BE354 0C003A2C */ jal osVirtualToPhysical +/* 0F2E88 7F0BE358 8C84C260 */ lw $a0, %lo(ptr_jfont_DL)($a0) +/* 0F2E8C 7F0BE35C AE020004 */ sw $v0, 4($s0) +/* 0F2E90 7F0BE360 8FAB0060 */ lw $t3, 0x60($sp) +/* 0F2E94 7F0BE364 3C0D0100 */ lui $t5, 0x100 +/* 0F2E98 7F0BE368 3C050600 */ lui $a1, 0x600 +/* 0F2E9C 7F0BE36C 256C0008 */ addiu $t4, $t3, 8 +/* 0F2EA0 7F0BE370 AFAC0060 */ sw $t4, 0x60($sp) +/* 0F2EA4 7F0BE374 25AD0040 */ addiu $t5, $t5, 0x40 +/* 0F2EA8 7F0BE378 AD6D0004 */ sw $t5, 4($t3) +/* 0F2EAC 7F0BE37C AD650000 */ sw $a1, ($t3) +/* 0F2EB0 7F0BE380 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2EB4 7F0BE384 3C180100 */ lui $t8, 0x100 +/* 0F2EB8 7F0BE388 27180020 */ addiu $t8, $t8, 0x20 +/* 0F2EBC 7F0BE38C 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2EC0 7F0BE390 AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2EC4 7F0BE394 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F2EC8 7F0BE398 ADD80004 */ sw $t8, 4($t6) +/* 0F2ECC 7F0BE39C ADC50000 */ sw $a1, ($t6) +/* 0F2ED0 7F0BE3A0 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F2ED4 7F0BE3A4 2401005A */ li $at, 90 +/* 0F2ED8 7F0BE3A8 17210025 */ bne $t9, $at, .L7F0BE440 +/* 0F2EDC 7F0BE3AC 00000000 */ nop +/* 0F2EE0 7F0BE3B0 0C000FAD */ jal viClearZBufCurrentPlayer +/* 0F2EE4 7F0BE3B4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2EE8 7F0BE3B8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F2EEC 7F0BE3BC 0C000F16 */ jal video_related_F +/* 0F2EF0 7F0BE3C0 00402025 */ move $a0, $v0 +/* 0F2EF4 7F0BE3C4 24490008 */ addiu $t1, $v0, 8 +/* 0F2EF8 7F0BE3C8 AFA90060 */ sw $t1, 0x60($sp) +/* 0F2EFC 7F0BE3CC 3C0AED00 */ lui $t2, 0xed00 +/* 0F2F00 7F0BE3D0 AC4A0000 */ sw $t2, ($v0) +/* 0F2F04 7F0BE3D4 0C001107 */ jal viGetX +/* 0F2F08 7F0BE3D8 00408025 */ move $s0, $v0 +/* 0F2F0C 7F0BE3DC 0C00110B */ jal viGetY +/* 0F2F10 7F0BE3E0 A7A20022 */ sh $v0, 0x22($sp) +/* 0F2F14 7F0BE3E4 87B10022 */ lh $s1, 0x22($sp) +/* 0F2F18 7F0BE3E8 44822000 */ mtc1 $v0, $f4 +/* 0F2F1C 7F0BE3EC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F2F20 7F0BE3F0 44918000 */ mtc1 $s1, $f16 +/* 0F2F24 7F0BE3F4 468021A0 */ cvt.s.w $f6, $f4 +/* 0F2F28 7F0BE3F8 44810000 */ mtc1 $at, $f0 +/* 0F2F2C 7F0BE3FC 468084A0 */ cvt.s.w $f18, $f16 +/* 0F2F30 7F0BE400 46003202 */ mul.s $f8, $f6, $f0 +/* 0F2F34 7F0BE404 00000000 */ nop +/* 0F2F38 7F0BE408 46009102 */ mul.s $f4, $f18, $f0 +/* 0F2F3C 7F0BE40C 4600428D */ trunc.w.s $f10, $f8 +/* 0F2F40 7F0BE410 4600218D */ trunc.w.s $f6, $f4 +/* 0F2F44 7F0BE414 440C5000 */ mfc1 $t4, $f10 +/* 0F2F48 7F0BE418 440F3000 */ mfc1 $t7, $f6 +/* 0F2F4C 7F0BE41C 318D0FFF */ andi $t5, $t4, 0xfff +/* 0F2F50 7F0BE420 31F80FFF */ andi $t8, $t7, 0xfff +/* 0F2F54 7F0BE424 0018CB00 */ sll $t9, $t8, 0xc +/* 0F2F58 7F0BE428 01B94825 */ or $t1, $t5, $t9 +/* 0F2F5C 7F0BE42C AE090004 */ sw $t1, 4($s0) +/* 0F2F60 7F0BE430 0FC06BBF */ jal menu_jump_constructor_handler +/* 0F2F64 7F0BE434 8FA40060 */ lw $a0, 0x60($sp) +/* 0F2F68 7F0BE438 10000102 */ b .L7F0BE844 +/* 0F2F6C 7F0BE43C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE440: +/* 0F2F70 7F0BE440 0FC26919 */ jal getPlayerCount +/* 0F2F74 7F0BE444 00000000 */ nop +/* 0F2F78 7F0BE448 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2F7C 7F0BE44C AFA20044 */ sw $v0, 0x44($sp) +/* 0F2F80 7F0BE450 3C0CBC00 */ lui $t4, (0xBC000404 >> 16) # lui $t4, 0xbc00 +/* 0F2F84 7F0BE454 254B0008 */ addiu $t3, $t2, 8 +/* 0F2F88 7F0BE458 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2F8C 7F0BE45C 24070002 */ li $a3, 2 +/* 0F2F90 7F0BE460 358C0404 */ ori $t4, (0xBC000404 & 0xFFFF) # ori $t4, $t4, 0x404 +/* 0F2F94 7F0BE464 AD4C0000 */ sw $t4, ($t2) +/* 0F2F98 7F0BE468 AD470004 */ sw $a3, 4($t2) +/* 0F2F9C 7F0BE46C 8FAE0060 */ lw $t6, 0x60($sp) +/* 0F2FA0 7F0BE470 3C18BC00 */ lui $t8, (0xBC000C04 >> 16) # lui $t8, 0xbc00 +/* 0F2FA4 7F0BE474 37180C04 */ ori $t8, (0xBC000C04 & 0xFFFF) # ori $t8, $t8, 0xc04 +/* 0F2FA8 7F0BE478 25CF0008 */ addiu $t7, $t6, 8 +/* 0F2FAC 7F0BE47C AFAF0060 */ sw $t7, 0x60($sp) +/* 0F2FB0 7F0BE480 ADC70004 */ sw $a3, 4($t6) +/* 0F2FB4 7F0BE484 ADD80000 */ sw $t8, ($t6) +/* 0F2FB8 7F0BE488 8FAD0060 */ lw $t5, 0x60($sp) +/* 0F2FBC 7F0BE48C 3C09BC00 */ lui $t1, (0xBC001404 >> 16) # lui $t1, 0xbc00 +/* 0F2FC0 7F0BE490 3408FFFE */ li $t0, 65534 +/* 0F2FC4 7F0BE494 25B90008 */ addiu $t9, $t5, 8 +/* 0F2FC8 7F0BE498 AFB90060 */ sw $t9, 0x60($sp) +/* 0F2FCC 7F0BE49C 35291404 */ ori $t1, (0xBC001404 & 0xFFFF) # ori $t1, $t1, 0x1404 +/* 0F2FD0 7F0BE4A0 ADA90000 */ sw $t1, ($t5) +/* 0F2FD4 7F0BE4A4 ADA80004 */ sw $t0, 4($t5) +/* 0F2FD8 7F0BE4A8 8FAA0060 */ lw $t2, 0x60($sp) +/* 0F2FDC 7F0BE4AC 3C0CBC00 */ lui $t4, (0xBC001C04 >> 16) # lui $t4, 0xbc00 +/* 0F2FE0 7F0BE4B0 358C1C04 */ ori $t4, (0xBC001C04 & 0xFFFF) # ori $t4, $t4, 0x1c04 +/* 0F2FE4 7F0BE4B4 254B0008 */ addiu $t3, $t2, 8 +/* 0F2FE8 7F0BE4B8 AFAB0060 */ sw $t3, 0x60($sp) +/* 0F2FEC 7F0BE4BC 00008825 */ move $s1, $zero +/* 0F2FF0 7F0BE4C0 AD480004 */ sw $t0, 4($t2) +/* 0F2FF4 7F0BE4C4 184000DF */ blez $v0, .L7F0BE844 +/* 0F2FF8 7F0BE4C8 AD4C0000 */ sw $t4, ($t2) +/* 0F2FFC 7F0BE4CC 3C108008 */ lui $s0, %hi(pPlayer) +/* 0F3000 7F0BE4D0 2610A0B0 */ addiu $s0, %lo(pPlayer) # addiu $s0, $s0, -0x5f50 +.L7F0BE4D4: +/* 0F3004 7F0BE4D4 0FC26D4A */ jal sub_GAME_7F09B528 +/* 0F3008 7F0BE4D8 02202025 */ move $a0, $s1 +/* 0F300C 7F0BE4DC 0FC26C43 */ jal set_cur_player +/* 0F3010 7F0BE4E0 00402025 */ move $a0, $v0 +/* 0F3014 7F0BE4E4 8E020000 */ lw $v0, ($s0) +/* 0F3018 7F0BE4E8 844407F0 */ lh $a0, 0x7f0($v0) +/* 0F301C 7F0BE4EC 0C00110F */ jal viSetViewSize +/* 0F3020 7F0BE4F0 844507F2 */ lh $a1, 0x7f2($v0) +/* 0F3024 7F0BE4F4 8E020000 */ lw $v0, ($s0) +/* 0F3028 7F0BE4F8 844407F4 */ lh $a0, 0x7f4($v0) +/* 0F302C 7F0BE4FC 0C00112F */ jal viSetViewPosition +/* 0F3030 7F0BE500 844507F6 */ lh $a1, 0x7f6($v0) +/* 0F3034 7F0BE504 8E0E0000 */ lw $t6, ($s0) +/* 0F3038 7F0BE508 0C001151 */ jal viSetFovY +/* 0F303C 7F0BE50C C5CC11D0 */ lwc1 $f12, 0x11d0($t6) +/* 0F3040 7F0BE510 8E0F0000 */ lw $t7, ($s0) +/* 0F3044 7F0BE514 0C001164 */ jal viSetAspect +/* 0F3048 7F0BE518 C5EC11D4 */ lwc1 $f12, 0x11d4($t7) +/* 0F304C 7F0BE51C 0C000FAD */ jal viClearZBufCurrentPlayer +/* 0F3050 7F0BE520 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3054 7F0BE524 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3058 7F0BE528 0C000F16 */ jal video_related_F +/* 0F305C 7F0BE52C 00402025 */ move $a0, $v0 +/* 0F3060 7F0BE530 0FC243BF */ jal get_debug_render_raster +/* 0F3064 7F0BE534 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3068 7F0BE538 14400004 */ bnez $v0, .L7F0BE54C +/* 0F306C 7F0BE53C 00000000 */ nop +/* 0F3070 7F0BE540 0FC24560 */ jal sub_GAME_7F091580 +/* 0F3074 7F0BE544 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3078 7F0BE548 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE54C: +/* 0F307C 7F0BE54C 0FC243BF */ jal get_debug_render_raster +/* 0F3080 7F0BE550 00000000 */ nop +/* 0F3084 7F0BE554 24010001 */ li $at, 1 +/* 0F3088 7F0BE558 14410004 */ bne $v0, $at, .L7F0BE56C +/* 0F308C 7F0BE55C 00000000 */ nop +/* 0F3090 7F0BE560 0FC2CB52 */ jal sub_GAME_7F0B2D48 +/* 0F3094 7F0BE564 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3098 7F0BE568 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE56C: +/* 0F309C 7F0BE56C 0FC243BF */ jal get_debug_render_raster +/* 0F30A0 7F0BE570 00000000 */ nop +/* 0F30A4 7F0BE574 24010002 */ li $at, 2 +/* 0F30A8 7F0BE578 14410004 */ bne $v0, $at, .L7F0BE58C +/* 0F30AC 7F0BE57C 00000000 */ nop +/* 0F30B0 7F0BE580 0FC21E82 */ jal sub_GAME_7F087A08 +/* 0F30B4 7F0BE584 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30B8 7F0BE588 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE58C: +/* 0F30BC 7F0BE58C 0C000FD9 */ jal setupscreensfornumplayers +/* 0F30C0 7F0BE590 8FA40060 */ lw $a0, 0x60($sp) +/* 0F30C4 7F0BE594 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30C8 7F0BE598 0FC25122 */ jal sub_GAME_7F094488 +/* 0F30CC 7F0BE59C 00402025 */ move $a0, $v0 +/* 0F30D0 7F0BE5A0 0FC2D221 */ jal sub_GAME_7F0B4884 +/* 0F30D4 7F0BE5A4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F30D8 7F0BE5A8 0FC0F28C */ jal determing_type_of_object_and_detection +/* 0F30DC 7F0BE5AC 00000000 */ nop +/* 0F30E0 7F0BE5B0 0FC0E890 */ jal sub_GAME_7F03A240 +/* 0F30E4 7F0BE5B4 00000000 */ nop +/* 0F30E8 7F0BE5B8 0FC0F5E3 */ jal sub_GAME_7F03D78C +/* 0F30EC 7F0BE5BC 00000000 */ nop +/* 0F30F0 7F0BE5C0 0FC0F0A5 */ jal sub_GAME_7F03C294 +/* 0F30F4 7F0BE5C4 00000000 */ nop +/* 0F30F8 7F0BE5C8 0FC227CE */ jal sub_GAME_7F089F38 +/* 0F30FC 7F0BE5CC 00000000 */ nop +/* 0F3100 7F0BE5D0 10400009 */ beqz $v0, .L7F0BE5F8 +/* 0F3104 7F0BE5D4 00000000 */ nop +/* 0F3108 7F0BE5D8 0FC0F13C */ jal sub_GAME_7F03C4F0 +/* 0F310C 7F0BE5DC 00000000 */ nop +/* 0F3110 7F0BE5E0 10400005 */ beqz $v0, .L7F0BE5F8 +/* 0F3114 7F0BE5E4 00000000 */ nop +/* 0F3118 7F0BE5E8 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F311C 7F0BE5EC 00002025 */ move $a0, $zero +/* 0F3120 7F0BE5F0 0FC17659 */ jal attempt_reload_item_in_hand +/* 0F3124 7F0BE5F4 24040001 */ li $a0, 1 +.L7F0BE5F8: +/* 0F3128 7F0BE5F8 0FC0F435 */ jal sub_GAME_7F03D0D4 +/* 0F312C 7F0BE5FC 00000000 */ nop +/* 0F3130 7F0BE600 0FC2D390 */ jal sub_GAME_7F0B4E40 +/* 0F3134 7F0BE604 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3138 7F0BE608 0FC2440F */ jal get_debug_portal_flag +/* 0F313C 7F0BE60C AFA20060 */ sw $v0, 0x60($sp) +/* 0F3140 7F0BE610 10400004 */ beqz $v0, .L7F0BE624 +/* 0F3144 7F0BE614 00000000 */ nop +/* 0F3148 7F0BE618 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F314C 7F0BE61C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3150 7F0BE620 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE624: +/* 0F3154 7F0BE624 0FC243DC */ jal get_turbo_mode_flag +/* 0F3158 7F0BE628 00000000 */ nop +/* 0F315C 7F0BE62C 10400004 */ beqz $v0, .L7F0BE640 +/* 0F3160 7F0BE630 00000000 */ nop +/* 0F3164 7F0BE634 0FC2CC0F */ jal sub_GAME_7F0B303C +/* 0F3168 7F0BE638 8FA40060 */ lw $a0, 0x60($sp) +/* 0F316C 7F0BE63C AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE640: +/* 0F3170 7F0BE640 0FC243D6 */ jal get_debug_stanhit_flag +/* 0F3174 7F0BE644 00000000 */ nop +/* 0F3178 7F0BE648 10400007 */ beqz $v0, .L7F0BE668 +/* 0F317C 7F0BE64C 00000000 */ nop +/* 0F3180 7F0BE650 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3184 7F0BE654 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3188 7F0BE658 AFA20060 */ sw $v0, 0x60($sp) +/* 0F318C 7F0BE65C 0FC225B0 */ jal write_stan_tiles_in_yellow +/* 0F3190 7F0BE660 00402025 */ move $a0, $v0 +/* 0F3194 7F0BE664 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE668: +/* 0F3198 7F0BE668 0FC243D9 */ jal get_debug_stanregion_flag +/* 0F319C 7F0BE66C 00000000 */ nop +/* 0F31A0 7F0BE670 10400008 */ beqz $v0, .L7F0BE694 +/* 0F31A4 7F0BE674 00000000 */ nop +/* 0F31A8 7F0BE678 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31AC 7F0BE67C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31B0 7F0BE680 AFA20060 */ sw $v0, 0x60($sp) +/* 0F31B4 7F0BE684 00402025 */ move $a0, $v0 +/* 0F31B8 7F0BE688 0FC2CC4B */ jal sub_GAME_7F0B312C +/* 0F31BC 7F0BE68C 24058040 */ li $a1, -32704 +/* 0F31C0 7F0BE690 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE694: +/* 0F31C4 7F0BE694 3C058006 */ lui $a1, %hi(aStanshow_) +/* 0F31C8 7F0BE698 24A5B6BC */ addiu $a1, %lo(aStanshow_) # addiu $a1, $a1, -0x4944 +/* 0F31CC 7F0BE69C 0C0029A8 */ jal tokenFind +/* 0F31D0 7F0BE6A0 24040001 */ li $a0, 1 +/* 0F31D4 7F0BE6A4 10400011 */ beqz $v0, .L7F0BE6EC +/* 0F31D8 7F0BE6A8 24040001 */ li $a0, 1 +/* 0F31DC 7F0BE6AC 3C058006 */ lui $a1, %hi(aStanshow__5) +/* 0F31E0 7F0BE6B0 0C0029A8 */ jal tokenFind +/* 0F31E4 7F0BE6B4 24A5B6C8 */ addiu $a1, %lo(aStanshow__5) # addiu $a1, $a1, -0x4938 +/* 0F31E8 7F0BE6B8 0FC2CB96 */ jal stanMatchTileName +/* 0F31EC 7F0BE6BC 00402025 */ move $a0, $v0 +/* 0F31F0 7F0BE6C0 1040000A */ beqz $v0, .L7F0BE6EC +/* 0F31F4 7F0BE6C4 8FA40060 */ lw $a0, 0x60($sp) +/* 0F31F8 7F0BE6C8 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F31FC 7F0BE6CC AFA20030 */ sw $v0, 0x30($sp) +/* 0F3200 7F0BE6D0 3C06FF00 */ lui $a2, (0xFF0000FF >> 16) # lui $a2, 0xff00 +/* 0F3204 7F0BE6D4 8FA50030 */ lw $a1, 0x30($sp) +/* 0F3208 7F0BE6D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F320C 7F0BE6DC 34C600FF */ ori $a2, (0xFF0000FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3210 7F0BE6E0 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F3214 7F0BE6E4 00402025 */ move $a0, $v0 +/* 0F3218 7F0BE6E8 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE6EC: +/* 0F321C 7F0BE6EC 3C058006 */ lui $a1, %hi(aStanshow__0) +/* 0F3220 7F0BE6F0 24A5B6D4 */ addiu $a1, %lo(aStanshow__0) # addiu $a1, $a1, -0x492c +/* 0F3224 7F0BE6F4 0C0029A8 */ jal tokenFind +/* 0F3228 7F0BE6F8 24040002 */ li $a0, 2 +/* 0F322C 7F0BE6FC 10400011 */ beqz $v0, .L7F0BE744 +/* 0F3230 7F0BE700 24040002 */ li $a0, 2 +/* 0F3234 7F0BE704 3C058006 */ lui $a1, %hi(aStanshow__1) +/* 0F3238 7F0BE708 0C0029A8 */ jal tokenFind +/* 0F323C 7F0BE70C 24A5B6E0 */ addiu $a1, %lo(aStanshow__1) # addiu $a1, $a1, -0x4920 +/* 0F3240 7F0BE710 0FC2CB96 */ jal stanMatchTileName +/* 0F3244 7F0BE714 00402025 */ move $a0, $v0 +/* 0F3248 7F0BE718 1040000A */ beqz $v0, .L7F0BE744 +/* 0F324C 7F0BE71C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3250 7F0BE720 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F3254 7F0BE724 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F3258 7F0BE728 3C0600FF */ lui $a2, (0x00FF00FF >> 16) # lui $a2, 0xff +/* 0F325C 7F0BE72C 8FA5002C */ lw $a1, 0x2c($sp) +/* 0F3260 7F0BE730 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3264 7F0BE734 34C600FF */ ori $a2, (0x00FF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 0F3268 7F0BE738 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F326C 7F0BE73C 00402025 */ move $a0, $v0 +/* 0F3270 7F0BE740 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE744: +/* 0F3274 7F0BE744 3C058006 */ lui $a1, %hi(aStanshow__2) +/* 0F3278 7F0BE748 24A5B6EC */ addiu $a1, %lo(aStanshow__2) # addiu $a1, $a1, -0x4914 +/* 0F327C 7F0BE74C 0C0029A8 */ jal tokenFind +/* 0F3280 7F0BE750 24040003 */ li $a0, 3 +/* 0F3284 7F0BE754 10400010 */ beqz $v0, .L7F0BE798 +/* 0F3288 7F0BE758 24040003 */ li $a0, 3 +/* 0F328C 7F0BE75C 3C058006 */ lui $a1, %hi(aStanshow__3) +/* 0F3290 7F0BE760 0C0029A8 */ jal tokenFind +/* 0F3294 7F0BE764 24A5B6F8 */ addiu $a1, %lo(aStanshow__3) # addiu $a1, $a1, -0x4908 +/* 0F3298 7F0BE768 0FC2CB96 */ jal stanMatchTileName +/* 0F329C 7F0BE76C 00402025 */ move $a0, $v0 +/* 0F32A0 7F0BE770 10400009 */ beqz $v0, .L7F0BE798 +/* 0F32A4 7F0BE774 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32A8 7F0BE778 0FC2CC0D */ jal sub_GAME_7F0B3034 +/* 0F32AC 7F0BE77C AFA20028 */ sw $v0, 0x28($sp) +/* 0F32B0 7F0BE780 8FA50028 */ lw $a1, 0x28($sp) +/* 0F32B4 7F0BE784 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32B8 7F0BE788 00402025 */ move $a0, $v0 +/* 0F32BC 7F0BE78C 0FC2CC09 */ jal sub_GAME_7F0B3024 +/* 0F32C0 7F0BE790 3406FFFF */ li $a2, 65535 +/* 0F32C4 7F0BE794 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE798: +/* 0F32C8 7F0BE798 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F32CC 7F0BE79C 00000000 */ nop +/* 0F32D0 7F0BE7A0 38440008 */ xori $a0, $v0, 8 +/* 0F32D4 7F0BE7A4 0FC08B89 */ jal sub_GAME_7F022E24 +/* 0F32D8 7F0BE7A8 2C840001 */ sltiu $a0, $a0, 1 +/* 0F32DC 7F0BE7AC 0FC126D6 */ jal sub_GAME_7F049B58 +/* 0F32E0 7F0BE7B0 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32E4 7F0BE7B4 AFA20060 */ sw $v0, 0x60($sp) +/* 0F32E8 7F0BE7B8 27A40060 */ addiu $a0, $sp, 0x60 +/* 0F32EC 7F0BE7BC 0FC29209 */ jal sub_GAME_7F0A4824 +/* 0F32F0 7F0BE7C0 24050001 */ li $a1, 1 +/* 0F32F4 7F0BE7C4 0FC28B11 */ jal sub_GAME_7F0A2C44 +/* 0F32F8 7F0BE7C8 8FA40060 */ lw $a0, 0x60($sp) +/* 0F32FC 7F0BE7CC AFA20060 */ sw $v0, 0x60($sp) +/* 0F3300 7F0BE7D0 0FC2800D */ jal sub_GAME_7F0A0034 +/* 0F3304 7F0BE7D4 00402025 */ move $a0, $v0 +/* 0F3308 7F0BE7D8 AFA20060 */ sw $v0, 0x60($sp) +/* 0F330C 7F0BE7DC 0FC249EF */ jal cheatCheckIfOn +/* 0F3310 7F0BE7E0 2404000B */ li $a0, 11 +/* 0F3314 7F0BE7E4 10400003 */ beqz $v0, .L7F0BE7F4 +/* 0F3318 7F0BE7E8 00000000 */ nop +/* 0F331C 7F0BE7EC 0FC1A4BC */ jal set_max_ammo_for_cur_player +/* 0F3320 7F0BE7F0 00000000 */ nop +.L7F0BE7F4: +/* 0F3324 7F0BE7F4 0FC243BF */ jal get_debug_render_raster +/* 0F3328 7F0BE7F8 00000000 */ nop +/* 0F332C 7F0BE7FC 24010002 */ li $at, 2 +/* 0F3330 7F0BE800 14410005 */ bne $v0, $at, .L7F0BE818 +/* 0F3334 7F0BE804 00000000 */ nop +/* 0F3338 7F0BE808 0FC22482 */ jal maybe_mp_interface +/* 0F333C 7F0BE80C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3340 7F0BE810 10000004 */ b .L7F0BE824 +/* 0F3344 7F0BE814 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE818: +/* 0F3348 7F0BE818 0FC22F2E */ jal sub_GAME_7F08BCB8 +/* 0F334C 7F0BE81C 8FA40060 */ lw $a0, 0x60($sp) +/* 0F3350 7F0BE820 AFA20060 */ sw $v0, 0x60($sp) +.L7F0BE824: +/* 0F3354 7F0BE824 0FC31009 */ jal mp_watch_menu_display +/* 0F3358 7F0BE828 8FA40060 */ lw $a0, 0x60($sp) +/* 0F335C 7F0BE82C 8FB80044 */ lw $t8, 0x44($sp) +/* 0F3360 7F0BE830 26310001 */ addiu $s1, $s1, 1 +/* 0F3364 7F0BE834 AFA20060 */ sw $v0, 0x60($sp) +/* 0F3368 7F0BE838 0238082A */ slt $at, $s1, $t8 +/* 0F336C 7F0BE83C 1420FF25 */ bnez $at, .L7F0BE4D4 +/* 0F3370 7F0BE840 00000000 */ nop +.L7F0BE844: +/* 0F3374 7F0BE844 8FB00060 */ lw $s0, 0x60($sp) +/* 0F3378 7F0BE848 3C09ED00 */ lui $t1, 0xed00 +/* 0F337C 7F0BE84C 26190008 */ addiu $t9, $s0, 8 +/* 0F3380 7F0BE850 AFB90060 */ sw $t9, 0x60($sp) +/* 0F3384 7F0BE854 0C001107 */ jal viGetX +/* 0F3388 7F0BE858 AE090000 */ sw $t1, ($s0) +/* 0F338C 7F0BE85C 00028C00 */ sll $s1, $v0, 0x10 +/* 0F3390 7F0BE860 00115403 */ sra $t2, $s1, 0x10 +/* 0F3394 7F0BE864 0C00110B */ jal viGetY +/* 0F3398 7F0BE868 01408825 */ move $s1, $t2 +/* 0F339C 7F0BE86C 44824000 */ mtc1 $v0, $f8 +/* 0F33A0 7F0BE870 44913000 */ mtc1 $s1, $f6 +/* 0F33A4 7F0BE874 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0F33A8 7F0BE878 468042A0 */ cvt.s.w $f10, $f8 +/* 0F33AC 7F0BE87C 44818000 */ mtc1 $at, $f16 +/* 0F33B0 7F0BE880 46803220 */ cvt.s.w $f8, $f6 +/* 0F33B4 7F0BE884 46105482 */ mul.s $f18, $f10, $f16 +/* 0F33B8 7F0BE888 44815000 */ mtc1 $at, $f10 +/* 0F33BC 7F0BE88C 00000000 */ nop +/* 0F33C0 7F0BE890 460A4402 */ mul.s $f16, $f8, $f10 +/* 0F33C4 7F0BE894 4600910D */ trunc.w.s $f4, $f18 +/* 0F33C8 7F0BE898 4600848D */ trunc.w.s $f18, $f16 +/* 0F33CC 7F0BE89C 440C2000 */ mfc1 $t4, $f4 +/* 0F33D0 7F0BE8A0 44189000 */ mfc1 $t8, $f18 +/* 0F33D4 7F0BE8A4 318E0FFF */ andi $t6, $t4, 0xfff +/* 0F33D8 7F0BE8A8 330D0FFF */ andi $t5, $t8, 0xfff +/* 0F33DC 7F0BE8AC 000DCB00 */ sll $t9, $t5, 0xc +/* 0F33E0 7F0BE8B0 01D94825 */ or $t1, $t6, $t9 +/* 0F33E4 7F0BE8B4 AE090004 */ sw $t1, 4($s0) +/* 0F33E8 7F0BE8B8 8FBF001C */ lw $ra, 0x1c($sp) +/* 0F33EC 7F0BE8BC 8FB10018 */ lw $s1, 0x18($sp) +/* 0F33F0 7F0BE8C0 8FB00014 */ lw $s0, 0x14($sp) +/* 0F33F4 7F0BE8C4 8FA20060 */ lw $v0, 0x60($sp) +/* 0F33F8 7F0BE8C8 03E00008 */ jr $ra +/* 0F33FC 7F0BE8CC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + #endif @@ -2489,6 +3190,204 @@ glabel sub_GAME_7F0BE8D0 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_8005B73C +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B740 +.word 0x3ef33334 /*0.47500002*/ +glabel D_8005B744 +.word 0x3f19999a /*0.60000002*/ +glabel D_8005B748 +.word 0x3e4ccccd /*0.2*/ +glabel D_8005B74C +.word 0x3e4ccccd /*0.2*/ +.text +glabel sub_GAME_7F0BE8D0 +/* 0F3400 7F0BE8D0 3C028005 */ lui $v0, %hi(difficulty_0) +/* 0F3404 7F0BE8D4 8C428384 */ lw $v0, %lo(difficulty_0)($v0) +/* 0F3408 7F0BE8D8 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0F340C 7F0BE8DC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F3410 7F0BE8E0 14400048 */ bnez $v0, .L7F0BEA04 +/* 0F3414 7F0BE8E4 24010001 */ li $at, 1 +/* 0F3418 7F0BE8E8 0FC228BB */ jal get_BONDdata_watch_health +/* 0F341C 7F0BE8EC 00000000 */ nop +/* 0F3420 7F0BE8F0 0FC228BF */ jal get_BONDdata_watch_armor +/* 0F3424 7F0BE8F4 E7A0001C */ swc1 $f0, 0x1c($sp) +/* 0F3428 7F0BE8F8 C7A4001C */ lwc1 $f4, 0x1c($sp) +/* 0F342C 7F0BE8FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3430 7F0BE900 44816000 */ mtc1 $at, $f12 +/* 0F3434 7F0BE904 46040380 */ add.s $f14, $f0, $f4 +/* 0F3438 7F0BE908 3C013E00 */ li $at, 0x3E000000 # 0.125000 +/* 0F343C 7F0BE90C 44818000 */ mtc1 $at, $f16 +/* 0F3440 7F0BE910 3C018006 */ lui $at, %hi(D_8005B73C) +/* 0F3444 7F0BE914 4610703E */ c.le.s $f14, $f16 +/* 0F3448 7F0BE918 00000000 */ nop +/* 0F344C 7F0BE91C 45000005 */ bc1f .L7F0BE934 +/* 0F3450 7F0BE920 00000000 */ nop +/* 0F3454 7F0BE924 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F3458 7F0BE928 44816000 */ mtc1 $at, $f12 +/* 0F345C 7F0BE92C 1000000F */ b .L7F0BE96C +/* 0F3460 7F0BE930 3C014000 */ lui $at, 0x4000 +.L7F0BE934: +/* 0F3464 7F0BE934 C426B73C */ lwc1 $f6, %lo(D_8005B73C)($at) +/* 0F3468 7F0BE938 3C013F00 */ lui $at, 0x3f00 +/* 0F346C 7F0BE93C 4606703E */ c.le.s $f14, $f6 +/* 0F3470 7F0BE940 00000000 */ nop +/* 0F3474 7F0BE944 45020009 */ bc1fl .L7F0BE96C +/* 0F3478 7F0BE948 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F347C 7F0BE94C 46107201 */ sub.s $f8, $f14, $f16 +/* 0F3480 7F0BE950 44819000 */ mtc1 $at, $f18 +/* 0F3484 7F0BE954 3C018006 */ lui $at, %hi(D_8005B740) +/* 0F3488 7F0BE958 C424B740 */ lwc1 $f4, %lo(D_8005B740)($at) +/* 0F348C 7F0BE95C 46124282 */ mul.s $f10, $f8, $f18 +/* 0F3490 7F0BE960 46045183 */ div.s $f6, $f10, $f4 +/* 0F3494 7F0BE964 46123300 */ add.s $f12, $f6, $f18 +/* 0F3498 7F0BE968 3C014000 */ li $at, 0x40000000 # 2.000000 +.L7F0BE96C: +/* 0F349C 7F0BE96C 44811000 */ mtc1 $at, $f2 +/* 0F34A0 7F0BE970 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F34A4 7F0BE974 44819000 */ mtc1 $at, $f18 +/* 0F34A8 7F0BE978 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F34AC 7F0BE97C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F34B0 7F0BE980 460C9002 */ mul.s $f0, $f18, $f12 +/* 0F34B4 7F0BE984 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F34B8 7F0BE988 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F34BC 7F0BE98C 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F34C0 7F0BE990 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F34C4 7F0BE994 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F34C8 7F0BE998 E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F34CC 7F0BE99C 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F34D0 7F0BE9A0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F34D4 7F0BE9A4 3C018006 */ lui $at, %hi(D_8005B744) +/* 0F34D8 7F0BE9A8 C428B744 */ lwc1 $f8, %lo(D_8005B744)($at) +/* 0F34DC 7F0BE9AC 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F34E0 7F0BE9B0 E428CE40 */ swc1 $f8, %lo(ai_accuracy_modifier)($at) +/* 0F34E4 7F0BE9B4 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F34E8 7F0BE9B8 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F34EC 7F0BE9BC 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F34F0 7F0BE9C0 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F34F4 7F0BE9C4 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 0F34F8 7F0BE9C8 44815000 */ mtc1 $at, $f10 +/* 0F34FC 7F0BE9CC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3500 7F0BE9D0 460C5102 */ mul.s $f4, $f10, $f12 +/* 0F3504 7F0BE9D4 E4240178 */ swc1 $f4, %lo(D_80040178)($at) +/* 0F3508 7F0BE9D8 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F350C 7F0BE9DC 44813000 */ mtc1 $at, $f6 +/* 0F3510 7F0BE9E0 3C018003 */ lui $at, %hi(difficulty) +/* 0F3514 7F0BE9E4 E4260AAC */ swc1 $f6, %lo(difficulty)($at) +/* 0F3518 7F0BE9E8 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F351C 7F0BE9EC E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F3520 7F0BE9F0 3C018006 */ lui $at, %hi(D_8005B748) +/* 0F3524 7F0BE9F4 C428B748 */ lwc1 $f8, %lo(D_8005B748)($at) +/* 0F3528 7F0BE9F8 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F352C 7F0BE9FC 1000005E */ b .L7F0BEB78 +/* 0F3530 7F0BEA00 E428CE4C */ swc1 $f8, %lo(ai_reaction_speed)($at) +.L7F0BEA04: +/* 0F3534 7F0BEA04 14410021 */ bne $v0, $at, .L7F0BEA8C +/* 0F3538 7F0BEA08 3C013F40 */ li $at, 0x3F400000 # 0.750000 +/* 0F353C 7F0BEA0C 44810000 */ mtc1 $at, $f0 +/* 0F3540 7F0BEA10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3544 7F0BEA14 44811000 */ mtc1 $at, $f2 +/* 0F3548 7F0BEA18 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F354C 7F0BEA1C 44819000 */ mtc1 $at, $f18 +/* 0F3550 7F0BEA20 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F3554 7F0BEA24 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3558 7F0BEA28 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F355C 7F0BEA2C E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3560 7F0BEA30 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F3564 7F0BEA34 E4200B1C */ swc1 $f0, %lo(D_80030B1C)($at) +/* 0F3568 7F0BEA38 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F356C 7F0BEA3C E4200B20 */ swc1 $f0, %lo(D_80030B20)($at) +/* 0F3570 7F0BEA40 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F3574 7F0BEA44 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3578 7F0BEA48 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F357C 7F0BEA4C E420CE40 */ swc1 $f0, %lo(ai_accuracy_modifier)($at) +/* 0F3580 7F0BEA50 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3584 7F0BEA54 E420CE44 */ swc1 $f0, %lo(ai_damage_modifier)($at) +/* 0F3588 7F0BEA58 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F358C 7F0BEA5C E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3590 7F0BEA60 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3594 7F0BEA64 E4200178 */ swc1 $f0, %lo(D_80040178)($at) +/* 0F3598 7F0BEA68 3C018003 */ lui $at, %hi(difficulty) +/* 0F359C 7F0BEA6C E4200AAC */ swc1 $f0, %lo(difficulty)($at) +/* 0F35A0 7F0BEA70 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0F35A4 7F0BEA74 44815000 */ mtc1 $at, $f10 +/* 0F35A8 7F0BEA78 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F35AC 7F0BEA7C E42A0B28 */ swc1 $f10, %lo(solo_ammo_multiplier)($at) +/* 0F35B0 7F0BEA80 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F35B4 7F0BEA84 1000003C */ b .L7F0BEB78 +/* 0F35B8 7F0BEA88 E432CE4C */ swc1 $f18, %lo(ai_reaction_speed)($at) +.L7F0BEA8C: +/* 0F35BC 7F0BEA8C 24010002 */ li $at, 2 +/* 0F35C0 7F0BEA90 1441001D */ bne $v0, $at, .L7F0BEB08 +/* 0F35C4 7F0BEA94 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F35C8 7F0BEA98 44811000 */ mtc1 $at, $f2 +/* 0F35CC 7F0BEA9C 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F35D0 7F0BEAA0 E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F35D4 7F0BEAA4 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F35D8 7F0BEAA8 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F35DC 7F0BEAAC 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F35E0 7F0BEAB0 E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F35E4 7F0BEAB4 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F35E8 7F0BEAB8 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F35EC 7F0BEABC 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F35F0 7F0BEAC0 E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F35F4 7F0BEAC4 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F35F8 7F0BEAC8 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F35FC 7F0BEACC 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F3600 7F0BEAD0 E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3604 7F0BEAD4 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3608 7F0BEAD8 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F360C 7F0BEADC 3C018004 */ lui $at, %hi(D_80040178) +/* 0F3610 7F0BEAE0 E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3614 7F0BEAE4 3C018006 */ lui $at, %hi(D_8005B74C) +/* 0F3618 7F0BEAE8 C424B74C */ lwc1 $f4, %lo(D_8005B74C)($at) +/* 0F361C 7F0BEAEC 3C018003 */ lui $at, %hi(difficulty) +/* 0F3620 7F0BEAF0 E4240AAC */ swc1 $f4, %lo(difficulty)($at) +/* 0F3624 7F0BEAF4 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F3628 7F0BEAF8 E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F362C 7F0BEAFC 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F3630 7F0BEB00 1000001D */ b .L7F0BEB78 +/* 0F3634 7F0BEB04 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB08: +/* 0F3638 7F0BEB08 24010003 */ li $at, 3 +/* 0F363C 7F0BEB0C 1441001A */ bne $v0, $at, .L7F0BEB78 +/* 0F3640 7F0BEB10 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F3644 7F0BEB14 44811000 */ mtc1 $at, $f2 +/* 0F3648 7F0BEB18 3C018003 */ lui $at, %hi(D_80030B14) +/* 0F364C 7F0BEB1C E4220B14 */ swc1 $f2, %lo(D_80030B14)($at) +/* 0F3650 7F0BEB20 3C018003 */ lui $at, %hi(D_80030B18) +/* 0F3654 7F0BEB24 E4220B18 */ swc1 $f2, %lo(D_80030B18)($at) +/* 0F3658 7F0BEB28 3C018003 */ lui $at, %hi(D_80030B1C) +/* 0F365C 7F0BEB2C E4220B1C */ swc1 $f2, %lo(D_80030B1C)($at) +/* 0F3660 7F0BEB30 3C018003 */ lui $at, %hi(D_80030B20) +/* 0F3664 7F0BEB34 E4220B20 */ swc1 $f2, %lo(D_80030B20)($at) +/* 0F3668 7F0BEB38 3C018003 */ lui $at, %hi(D_80030B24) +/* 0F366C 7F0BEB3C E4220B24 */ swc1 $f2, %lo(D_80030B24)($at) +/* 0F3670 7F0BEB40 3C018003 */ lui $at, %hi(ai_accuracy_modifier) +/* 0F3674 7F0BEB44 E422CE40 */ swc1 $f2, %lo(ai_accuracy_modifier)($at) +/* 0F3678 7F0BEB48 3C018003 */ lui $at, %hi(ai_damage_modifier) +/* 0F367C 7F0BEB4C E422CE44 */ swc1 $f2, %lo(ai_damage_modifier)($at) +/* 0F3680 7F0BEB50 3C018003 */ lui $at, %hi(ai_health_modifier) +/* 0F3684 7F0BEB54 E422CE48 */ swc1 $f2, %lo(ai_health_modifier)($at) +/* 0F3688 7F0BEB58 3C018004 */ lui $at, %hi(D_80040178) +/* 0F368C 7F0BEB5C E4220178 */ swc1 $f2, %lo(D_80040178)($at) +/* 0F3690 7F0BEB60 3C018003 */ lui $at, %hi(difficulty) +/* 0F3694 7F0BEB64 E4220AAC */ swc1 $f2, %lo(difficulty)($at) +/* 0F3698 7F0BEB68 3C018003 */ lui $at, %hi(solo_ammo_multiplier) +/* 0F369C 7F0BEB6C E4220B28 */ swc1 $f2, %lo(solo_ammo_multiplier)($at) +/* 0F36A0 7F0BEB70 3C018003 */ lui $at, %hi(ai_reaction_speed) +/* 0F36A4 7F0BEB74 E422CE4C */ swc1 $f2, %lo(ai_reaction_speed)($at) +.L7F0BEB78: +/* 0F36A8 7F0BEB78 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F36AC 7F0BEB7C 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0F36B0 7F0BEB80 03E00008 */ jr $ra +/* 0F36B4 7F0BEB84 00000000 */ nop +) +#endif + #endif @@ -2505,7 +3404,1758 @@ GLOBAL_ASM( glabel manage_mp_game /* 0F36B8 7F0BEB88 27BDFE68 */ addiu $sp, $sp, -0x198 /* 0F36BC 7F0BEB8C AFBF0014 */ sw $ra, 0x14($sp) -/* 0F36C0 7F0BEB90 0C000626 */ jal mp_tlb_related +/* 0F36C0 7F0BEB90 0C000626 */ jal tlbmanageResetCurrentEntriesCount +/* 0F36C4 7F0BEB94 00000000 */ nop +/* 0F36C8 7F0BEB98 3C0E8005 */ lui $t6, %hi(controls_locked_flag) +/* 0F36CC 7F0BEB9C 8DCE8370 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F36D0 7F0BEBA0 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36D4 7F0BEBA4 11C00003 */ beqz $t6, .L7F0BEBB4 +/* 0F36D8 7F0BEBA8 00000000 */ nop +/* 0F36DC 7F0BEBAC 10000010 */ b .L7F0BEBF0 +/* 0F36E0 7F0BEBB0 AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBB4: +/* 0F36E4 7F0BEBB4 0FC31820 */ jal checkGamePaused +/* 0F36E8 7F0BEBB8 00000000 */ nop +/* 0F36EC 7F0BEBBC 10400004 */ beqz $v0, .L7F0BEBD0 +/* 0F36F0 7F0BEBC0 3C0F8005 */ lui $t7, %hi(D_80048498) +/* 0F36F4 7F0BEBC4 3C018005 */ lui $at, %hi(clock_timer) +/* 0F36F8 7F0BEBC8 10000009 */ b .L7F0BEBF0 +/* 0F36FC 7F0BEBCC AC208374 */ sw $zero, %lo(clock_timer)($at) +.L7F0BEBD0: +/* 0F3700 7F0BEBD0 8DEF8498 */ lw $t7, %lo(D_80048498)($t7) +/* 0F3704 7F0BEBD4 3C028005 */ lui $v0, %hi(D_80048380) +/* 0F3708 7F0BEBD8 3C018005 */ lui $at, %hi(clock_timer) +/* 0F370C 7F0BEBDC 24428380 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c80 +/* 0F3710 7F0BEBE0 AC2F8374 */ sw $t7, %lo(clock_timer)($at) +/* 0F3714 7F0BEBE4 8C580000 */ lw $t8, ($v0) +/* 0F3718 7F0BEBE8 27190001 */ addiu $t9, $t8, 1 +/* 0F371C 7F0BEBEC AC590000 */ sw $t9, ($v0) +.L7F0BEBF0: +/* 0F3720 7F0BEBF0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3724 7F0BEBF4 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3728 7F0BEBF8 3C038005 */ lui $v1, %hi(global_timer) +/* 0F372C 7F0BEBFC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 0F3730 7F0BEC00 44822000 */ mtc1 $v0, $f4 +/* 0F3734 7F0BEC04 2463837C */ addiu $v1, %lo(global_timer) # addiu $v1, $v1, -0x7c84 +/* 0F3738 7F0BEC08 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F373C 7F0BEC0C 468021A0 */ cvt.s.w $f6, $f4 +/* 0F3740 7F0BEC10 3C198005 */ lui $t9, %hi(D_80048394) +/* 0F3744 7F0BEC14 E4268378 */ swc1 $f6, %lo(global_timer_delta)($at) +/* 0F3748 7F0BEC18 8C6E0000 */ lw $t6, ($v1) +/* 0F374C 7F0BEC1C 2401005A */ li $at, 90 +/* 0F3750 7F0BEC20 01C27821 */ addu $t7, $t6, $v0 +/* 0F3754 7F0BEC24 AC6F0000 */ sw $t7, ($v1) +/* 0F3758 7F0BEC28 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F375C 7F0BEC2C 1301001D */ beq $t8, $at, .L7F0BECA4 +/* 0F3760 7F0BEC30 00000000 */ nop +/* 0F3764 7F0BEC34 8F398394 */ lw $t9, %lo(D_80048394)($t9) +/* 0F3768 7F0BEC38 1720001A */ bnez $t9, .L7F0BECA4 +/* 0F376C 7F0BEC3C 00000000 */ nop +/* 0F3770 7F0BEC40 18400018 */ blez $v0, .L7F0BECA4 +/* 0F3774 7F0BEC44 3C0E8003 */ lui $t6, %hi(append_cheat_sp) +/* 0F3778 7F0BEC48 8DCEA900 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F377C 7F0BEC4C 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) +/* 0F3780 7F0BEC50 246396A1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x695f +/* 0F3784 7F0BEC54 11C00013 */ beqz $t6, .L7F0BECA4 +/* 0F3788 7F0BEC58 24040001 */ li $a0, 1 +.L7F0BEC5C: +/* 0F378C 7F0BEC5C 906F0000 */ lbu $t7, ($v1) +/* 0F3790 7F0BEC60 51E0000D */ beql $t7, $zero, .L7F0BEC98 +/* 0F3794 7F0BEC64 24840001 */ addiu $a0, $a0, 1 +/* 0F3798 7F0BEC68 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F379C 7F0BEC6C 0FC24697 */ jal is_cheat_index_equal_to_1C +/* 0F37A0 7F0BEC70 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37A4 7F0BEC74 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37A8 7F0BEC78 14400006 */ bnez $v0, .L7F0BEC94 +/* 0F37AC 7F0BEC7C 8FA40194 */ lw $a0, 0x194($sp) +/* 0F37B0 7F0BEC80 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F37B4 7F0BEC84 0FC246AB */ jal turn_on_cheat_for_players +/* 0F37B8 7F0BEC88 AFA40194 */ sw $a0, 0x194($sp) +/* 0F37BC 7F0BEC8C 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F37C0 7F0BEC90 8FA40194 */ lw $a0, 0x194($sp) +.L7F0BEC94: +/* 0F37C4 7F0BEC94 24840001 */ addiu $a0, $a0, 1 +.L7F0BEC98: +/* 0F37C8 7F0BEC98 2401004B */ li $at, 75 +/* 0F37CC 7F0BEC9C 1481FFEF */ bne $a0, $at, .L7F0BEC5C +/* 0F37D0 7F0BECA0 24630001 */ addiu $v1, $v1, 1 +.L7F0BECA4: +/* 0F37D4 7F0BECA4 0FC26919 */ jal getPlayerCount +/* 0F37D8 7F0BECA8 00000000 */ nop +/* 0F37DC 7F0BECAC 28410002 */ slti $at, $v0, 2 +/* 0F37E0 7F0BECB0 1420014B */ bnez $at, .L7F0BF1E0 +/* 0F37E4 7F0BECB4 3C188005 */ lui $t8, %hi(current_stage_to_load) +/* 0F37E8 7F0BECB8 8F188364 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F37EC 7F0BECBC 2401005A */ li $at, 90 +/* 0F37F0 7F0BECC0 13010147 */ beq $t8, $at, .L7F0BF1E0 +/* 0F37F4 7F0BECC4 00000000 */ nop +/* 0F37F8 7F0BECC8 0FC3030C */ jal get_mission_state +/* 0F37FC 7F0BECCC 00000000 */ nop +/* 0F3800 7F0BECD0 24010006 */ li $at, 6 +/* 0F3804 7F0BECD4 14410029 */ bne $v0, $at, .L7F0BED7C +/* 0F3808 7F0BECD8 00000000 */ nop +/* 0F380C 7F0BECDC AFA00190 */ sw $zero, 0x190($sp) +/* 0F3810 7F0BECE0 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F3814 7F0BECE4 0FC26919 */ jal getPlayerCount +/* 0F3818 7F0BECE8 AFA00188 */ sw $zero, 0x188($sp) +/* 0F381C 7F0BECEC 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3820 7F0BECF0 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3824 7F0BECF4 1840001B */ blez $v0, .L7F0BED64 +/* 0F3828 7F0BECF8 8FA60188 */ lw $a2, 0x188($sp) +/* 0F382C 7F0BECFC 3C0E8008 */ lui $t6, %hi(players) +/* 0F3830 7F0BED00 25CE9EE0 */ addiu $t6, %lo(players) # addiu $t6, $t6, -0x6120 +/* 0F3834 7F0BED04 0003C880 */ sll $t9, $v1, 2 +/* 0F3838 7F0BED08 032E2021 */ addu $a0, $t9, $t6 +.L7F0BED0C: +/* 0F383C 7F0BED0C 8C820000 */ lw $v0, ($a0) +/* 0F3840 7F0BED10 24630001 */ addiu $v1, $v1, 1 +/* 0F3844 7F0BED14 24840004 */ addiu $a0, $a0, 4 +/* 0F3848 7F0BED18 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F384C 7F0BED1C 51E00007 */ beql $t7, $zero, .L7F0BED3C +/* 0F3850 7F0BED20 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3854 7F0BED24 8C580424 */ lw $t8, 0x424($v0) +/* 0F3858 7F0BED28 24A50001 */ addiu $a1, $a1, 1 +/* 0F385C 7F0BED2C 53000003 */ beql $t8, $zero, .L7F0BED3C +/* 0F3860 7F0BED30 AFA30190 */ sw $v1, 0x190($sp) +/* 0F3864 7F0BED34 24C60001 */ addiu $a2, $a2, 1 +/* 0F3868 7F0BED38 AFA30190 */ sw $v1, 0x190($sp) +.L7F0BED3C: +/* 0F386C 7F0BED3C AFA4001C */ sw $a0, 0x1c($sp) +/* 0F3870 7F0BED40 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F3874 7F0BED44 0FC26919 */ jal getPlayerCount +/* 0F3878 7F0BED48 AFA60188 */ sw $a2, 0x188($sp) +/* 0F387C 7F0BED4C 8FA30190 */ lw $v1, 0x190($sp) +/* 0F3880 7F0BED50 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F3884 7F0BED54 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F3888 7F0BED58 0062082A */ slt $at, $v1, $v0 +/* 0F388C 7F0BED5C 1420FFEB */ bnez $at, .L7F0BED0C +/* 0F3890 7F0BED60 8FA60188 */ lw $a2, 0x188($sp) +.L7F0BED64: +/* 0F3894 7F0BED64 18A00005 */ blez $a1, .L7F0BED7C +/* 0F3898 7F0BED68 00000000 */ nop +/* 0F389C 7F0BED6C 14A60003 */ bne $a1, $a2, .L7F0BED7C +/* 0F38A0 7F0BED70 00000000 */ nop +/* 0F38A4 7F0BED74 0FC3030F */ jal set_missionstate +/* 0F38A8 7F0BED78 24040001 */ li $a0, 1 +.L7F0BED7C: +/* 0F38AC 7F0BED7C 3C038005 */ lui $v1, %hi(mp_time) +/* 0F38B0 7F0BED80 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F38B4 7F0BED84 3C028005 */ lui $v0, %hi(D_80048394) +/* 0F38B8 7F0BED88 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F38BC 7F0BED8C 18600049 */ blez $v1, .L7F0BEEB4 +/* 0F38C0 7F0BED90 00000000 */ nop +/* 0F38C4 7F0BED94 8C428394 */ lw $v0, %lo(D_80048394)($v0) +/* 0F38C8 7F0BED98 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F38CC 7F0BED9C 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F38D0 7F0BEDA0 0044082A */ slt $at, $v0, $a0 +/* 0F38D4 7F0BEDA4 03227021 */ addu $t6, $t9, $v0 +/* 0F38D8 7F0BEDA8 AFAE0180 */ sw $t6, 0x180($sp) +/* 0F38DC 7F0BEDAC 10200015 */ beqz $at, .L7F0BEE04 +/* 0F38E0 7F0BEDB0 AFA20184 */ sw $v0, 0x184($sp) +/* 0F38E4 7F0BEDB4 01C4082A */ slt $at, $t6, $a0 +/* 0F38E8 7F0BEDB8 14200012 */ bnez $at, .L7F0BEE04 +/* 0F38EC 7F0BEDBC 00000000 */ nop +/* 0F38F0 7F0BEDC0 0FC26919 */ jal getPlayerCount +/* 0F38F4 7F0BEDC4 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F38F8 7F0BEDC8 1840000E */ blez $v0, .L7F0BEE04 +/* 0F38FC 7F0BEDCC 00000000 */ nop +.L7F0BEDD0: +/* 0F3900 7F0BEDD0 0FC26C43 */ jal set_cur_player +/* 0F3904 7F0BEDD4 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F3908 7F0BEDD8 3C048006 */ lui $a0, %hi(aOneMinuteLeft) +/* 0F390C 7F0BEDDC 0FC228F2 */ jal display_string_in_lower_left_corner +/* 0F3910 7F0BEDE0 2484B704 */ addiu $a0, %lo(aOneMinuteLeft) # addiu $a0, $a0, -0x48fc +/* 0F3914 7F0BEDE4 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F3918 7F0BEDE8 25F80001 */ addiu $t8, $t7, 1 +/* 0F391C 7F0BEDEC 0FC26919 */ jal getPlayerCount +/* 0F3920 7F0BEDF0 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F3924 7F0BEDF4 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F3928 7F0BEDF8 0322082A */ slt $at, $t9, $v0 +/* 0F392C 7F0BEDFC 1420FFF4 */ bnez $at, .L7F0BEDD0 +/* 0F3930 7F0BEE00 00000000 */ nop +.L7F0BEE04: +/* 0F3934 7F0BEE04 3C0F8005 */ lui $t7, %hi(mp_time) +/* 0F3938 7F0BEE08 8DEF8398 */ lw $t7, %lo(mp_time)($t7) +/* 0F393C 7F0BEE0C 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F3940 7F0BEE10 3C198005 */ lui $t9, %hi(D_800483A0) +/* 0F3944 7F0BEE14 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F3948 7F0BEE18 01D8082A */ slt $at, $t6, $t8 +/* 0F394C 7F0BEE1C 1420000D */ bnez $at, .L7F0BEE54 +/* 0F3950 7F0BEE20 00000000 */ nop +/* 0F3954 7F0BEE24 8F3983A0 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F3958 7F0BEE28 1720000A */ bnez $t9, .L7F0BEE54 +/* 0F395C 7F0BEE2C 00000000 */ nop +/* 0F3960 7F0BEE30 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3964 7F0BEE34 00000000 */ nop +/* 0F3968 7F0BEE38 14400006 */ bnez $v0, .L7F0BEE54 +/* 0F396C 7F0BEE3C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0F3970 7F0BEE40 3C068005 */ lui $a2, %hi(D_800483A0) +/* 0F3974 7F0BEE44 24C683A0 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c60 +/* 0F3978 7F0BEE48 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F397C 7F0BEE4C 0C002382 */ jal play_sfx_a1 +/* 0F3980 7F0BEE50 240500A1 */ li $a1, 161 +.L7F0BEE54: +/* 0F3984 7F0BEE54 0FC2FF01 */ jal get_controls_locked_flag +/* 0F3988 7F0BEE58 00000000 */ nop +/* 0F398C 7F0BEE5C 1040000A */ beqz $v0, .L7F0BEE88 +/* 0F3990 7F0BEE60 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F3994 7F0BEE64 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F3998 7F0BEE68 10800007 */ beqz $a0, .L7F0BEE88 +/* 0F399C 7F0BEE6C 00000000 */ nop +/* 0F39A0 7F0BEE70 0C00237C */ jal sfxGetArg0Unk3F +/* 0F39A4 7F0BEE74 00000000 */ nop +/* 0F39A8 7F0BEE78 10400003 */ beqz $v0, .L7F0BEE88 +/* 0F39AC 7F0BEE7C 3C048005 */ lui $a0, %hi(D_800483A0) +/* 0F39B0 7F0BEE80 0C002408 */ jal sfxDeactivate +/* 0F39B4 7F0BEE84 8C8483A0 */ lw $a0, %lo(D_800483A0)($a0) +.L7F0BEE88: +/* 0F39B8 7F0BEE88 3C038005 */ lui $v1, %hi(mp_time) +/* 0F39BC 7F0BEE8C 8C638398 */ lw $v1, %lo(mp_time)($v1) +/* 0F39C0 7F0BEE90 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F39C4 7F0BEE94 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F39C8 7F0BEE98 01E3082A */ slt $at, $t7, $v1 +/* 0F39CC 7F0BEE9C 10200005 */ beqz $at, .L7F0BEEB4 +/* 0F39D0 7F0BEEA0 01C3082A */ slt $at, $t6, $v1 +/* 0F39D4 7F0BEEA4 14200003 */ bnez $at, .L7F0BEEB4 +/* 0F39D8 7F0BEEA8 00000000 */ nop +/* 0F39DC 7F0BEEAC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F39E0 7F0BEEB0 00002025 */ move $a0, $zero +.L7F0BEEB4: +/* 0F39E4 7F0BEEB4 3C188005 */ lui $t8, %hi(mp_point) +/* 0F39E8 7F0BEEB8 8F18839C */ lw $t8, %lo(mp_point)($t8) +/* 0F39EC 7F0BEEBC 3C198005 */ lui $t9, %hi(clock_timer) +/* 0F39F0 7F0BEEC0 1B00003D */ blez $t8, .L7F0BEFB8 +/* 0F39F4 7F0BEEC4 00000000 */ nop +/* 0F39F8 7F0BEEC8 8F398374 */ lw $t9, %lo(clock_timer)($t9) +/* 0F39FC 7F0BEECC 1320003A */ beqz $t9, .L7F0BEFB8 +/* 0F3A00 7F0BEED0 00000000 */ nop +/* 0F3A04 7F0BEED4 0FC26919 */ jal getPlayerCount +/* 0F3A08 7F0BEED8 00000000 */ nop +/* 0F3A0C 7F0BEEDC 00403825 */ move $a3, $v0 +/* 0F3A10 7F0BEEE0 00002825 */ move $a1, $zero +/* 0F3A14 7F0BEEE4 00003025 */ move $a2, $zero +/* 0F3A18 7F0BEEE8 18400029 */ blez $v0, .L7F0BEF90 +/* 0F3A1C 7F0BEEEC 00002025 */ move $a0, $zero +/* 0F3A20 7F0BEEF0 3C038008 */ lui $v1, %hi(players) +/* 0F3A24 7F0BEEF4 44800000 */ mtc1 $zero, $f0 +/* 0F3A28 7F0BEEF8 24639EE0 */ addiu $v1, %lo(players) # addiu $v1, $v1, -0x6120 +.L7F0BEEFC: +/* 0F3A2C 7F0BEEFC 8C620000 */ lw $v0, ($v1) +/* 0F3A30 7F0BEF00 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F3A34 7F0BEF04 51E0000E */ beql $t7, $zero, .L7F0BEF40 +/* 0F3A38 7F0BEF08 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A3C 7F0BEF0C 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F3A40 7F0BEF10 51C0000A */ beql $t6, $zero, .L7F0BEF3C +/* 0F3A44 7F0BEF14 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A48 7F0BEF18 8C580428 */ lw $t8, 0x428($v0) +/* 0F3A4C 7F0BEF1C 53000007 */ beql $t8, $zero, .L7F0BEF3C +/* 0F3A50 7F0BEF20 24A50001 */ addiu $a1, $a1, 1 +/* 0F3A54 7F0BEF24 C44803E4 */ lwc1 $f8, 0x3e4($v0) +/* 0F3A58 7F0BEF28 4608003E */ c.le.s $f0, $f8 +/* 0F3A5C 7F0BEF2C 00000000 */ nop +/* 0F3A60 7F0BEF30 45020003 */ bc1fl .L7F0BEF40 +/* 0F3A64 7F0BEF34 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F3A68 7F0BEF38 24A50001 */ addiu $a1, $a1, 1 +.L7F0BEF3C: +/* 0F3A6C 7F0BEF3C AFA3001C */ sw $v1, 0x1c($sp) +.L7F0BEF40: +/* 0F3A70 7F0BEF40 AFA40174 */ sw $a0, 0x174($sp) +/* 0F3A74 7F0BEF44 AFA50170 */ sw $a1, 0x170($sp) +/* 0F3A78 7F0BEF48 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F3A7C 7F0BEF4C 0FC30E36 */ jal get_points_for_mp_player +/* 0F3A80 7F0BEF50 AFA70178 */ sw $a3, 0x178($sp) +/* 0F3A84 7F0BEF54 3C198005 */ lui $t9, %hi(mp_point) +/* 0F3A88 7F0BEF58 8F39839C */ lw $t9, %lo(mp_point)($t9) +/* 0F3A8C 7F0BEF5C 44800000 */ mtc1 $zero, $f0 +/* 0F3A90 7F0BEF60 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F3A94 7F0BEF64 0059082A */ slt $at, $v0, $t9 +/* 0F3A98 7F0BEF68 8FA40174 */ lw $a0, 0x174($sp) +/* 0F3A9C 7F0BEF6C 8FA50170 */ lw $a1, 0x170($sp) +/* 0F3AA0 7F0BEF70 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F3AA4 7F0BEF74 14200002 */ bnez $at, .L7F0BEF80 +/* 0F3AA8 7F0BEF78 8FA70178 */ lw $a3, 0x178($sp) +/* 0F3AAC 7F0BEF7C 24C60001 */ addiu $a2, $a2, 1 +.L7F0BEF80: +/* 0F3AB0 7F0BEF80 24840001 */ addiu $a0, $a0, 1 +/* 0F3AB4 7F0BEF84 0087082A */ slt $at, $a0, $a3 +/* 0F3AB8 7F0BEF88 1420FFDC */ bnez $at, .L7F0BEEFC +/* 0F3ABC 7F0BEF8C 24630004 */ addiu $v1, $v1, 4 +.L7F0BEF90: +/* 0F3AC0 7F0BEF90 18C00009 */ blez $a2, .L7F0BEFB8 +/* 0F3AC4 7F0BEF94 00000000 */ nop +/* 0F3AC8 7F0BEF98 14A00005 */ bnez $a1, .L7F0BEFB0 +/* 0F3ACC 7F0BEF9C 00000000 */ nop +/* 0F3AD0 7F0BEFA0 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3AD4 7F0BEFA4 00002025 */ move $a0, $zero +/* 0F3AD8 7F0BEFA8 10000003 */ b .L7F0BEFB8 +/* 0F3ADC 7F0BEFAC 00000000 */ nop +.L7F0BEFB0: +/* 0F3AE0 7F0BEFB0 0FC30948 */ jal set_stopplay_flag +/* 0F3AE4 7F0BEFB4 00000000 */ nop +.L7F0BEFB8: +/* 0F3AE8 7F0BEFB8 0FC051D6 */ jal get_scenario +/* 0F3AEC 7F0BEFBC 00000000 */ nop +/* 0F3AF0 7F0BEFC0 24010001 */ li $at, 1 +/* 0F3AF4 7F0BEFC4 14410086 */ bne $v0, $at, .L7F0BF1E0 +/* 0F3AF8 7F0BEFC8 3C0F8005 */ lui $t7, %hi(clock_timer) +/* 0F3AFC 7F0BEFCC 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) +/* 0F3B00 7F0BEFD0 11E00083 */ beqz $t7, .L7F0BF1E0 +/* 0F3B04 7F0BEFD4 00000000 */ nop +/* 0F3B08 7F0BEFD8 0FC26919 */ jal getPlayerCount +/* 0F3B0C 7F0BEFDC 00000000 */ nop +/* 0F3B10 7F0BEFE0 44800000 */ mtc1 $zero, $f0 +/* 0F3B14 7F0BEFE4 00405025 */ move $t2, $v0 +/* 0F3B18 7F0BEFE8 00006825 */ move $t5, $zero +/* 0F3B1C 7F0BEFEC 0000F825 */ move $ra, $zero +/* 0F3B20 7F0BEFF0 1840006E */ blez $v0, .L7F0BF1AC +/* 0F3B24 7F0BEFF4 00006025 */ move $t4, $zero +/* 0F3B28 7F0BEFF8 00002825 */ move $a1, $zero +.L7F0BEFFC: +/* 0F3B2C 7F0BEFFC 00003025 */ move $a2, $zero +/* 0F3B30 7F0BF000 18400048 */ blez $v0, .L7F0BF124 +/* 0F3B34 7F0BF004 00003825 */ move $a3, $zero +/* 0F3B38 7F0BF008 30490003 */ andi $t1, $v0, 3 +/* 0F3B3C 7F0BF00C 11200019 */ beqz $t1, .L7F0BF074 +/* 0F3B40 7F0BF010 000C5880 */ sll $t3, $t4, 2 +/* 0F3B44 7F0BF014 3C188008 */ lui $t8, %hi(players) +/* 0F3B48 7F0BF018 27189EE0 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x6120 +/* 0F3B4C 7F0BF01C 00007080 */ sll $t6, $zero, 2 +/* 0F3B50 7F0BF020 0000C8C0 */ sll $t9, $zero, 3 +/* 0F3B54 7F0BF024 0320C823 */ subu $t9, $t9, $zero +/* 0F3B58 7F0BF028 01D81821 */ addu $v1, $t6, $t8 +/* 0F3B5C 7F0BF02C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3B60 7F0BF030 0019C900 */ sll $t9, $t9, 4 +/* 0F3B64 7F0BF034 032B7821 */ addu $t7, $t9, $t3 +/* 0F3B68 7F0BF038 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3B6C 7F0BF03C 01EE2021 */ addu $a0, $t7, $t6 +/* 0F3B70 7F0BF040 01204025 */ move $t0, $t1 +.L7F0BF044: +/* 0F3B74 7F0BF044 8C780000 */ lw $t8, ($v1) +/* 0F3B78 7F0BF048 24E70001 */ addiu $a3, $a3, 1 +/* 0F3B7C 7F0BF04C 24630004 */ addiu $v1, $v1, 4 +/* 0F3B80 7F0BF050 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F3B84 7F0BF054 57200003 */ bnezl $t9, .L7F0BF064 +/* 0F3B88 7F0BF058 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F3B8C 7F0BF05C 24C60001 */ addiu $a2, $a2, 1 +/* 0F3B90 7F0BF060 8C8F0024 */ lw $t7, 0x24($a0) +.L7F0BF064: +/* 0F3B94 7F0BF064 24840070 */ addiu $a0, $a0, 0x70 +/* 0F3B98 7F0BF068 1507FFF6 */ bne $t0, $a3, .L7F0BF044 +/* 0F3B9C 7F0BF06C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3BA0 7F0BF070 10E2002C */ beq $a3, $v0, .L7F0BF124 +.L7F0BF074: +/* 0F3BA4 7F0BF074 3C188008 */ lui $t8, %hi(players) +/* 0F3BA8 7F0BF078 0007C8C0 */ sll $t9, $a3, 3 +/* 0F3BAC 7F0BF07C 0327C823 */ subu $t9, $t9, $a3 +/* 0F3BB0 7F0BF080 27189EE0 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x6120 +/* 0F3BB4 7F0BF084 00077080 */ sll $t6, $a3, 2 +/* 0F3BB8 7F0BF088 01D81821 */ addu $v1, $t6, $t8 +/* 0F3BBC 7F0BF08C 0019C900 */ sll $t9, $t9, 4 +/* 0F3BC0 7F0BF090 032B7821 */ addu $t7, $t9, $t3 +/* 0F3BC4 7F0BF094 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3BC8 7F0BF098 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3BCC 7F0BF09C 000AC880 */ sll $t9, $t2, 2 +/* 0F3BD0 7F0BF0A0 03384021 */ addu $t0, $t9, $t8 +/* 0F3BD4 7F0BF0A4 01EE2021 */ addu $a0, $t7, $t6 +.L7F0BF0A8: +/* 0F3BD8 7F0BF0A8 8C6F0000 */ lw $t7, ($v1) +/* 0F3BDC 7F0BF0AC 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F3BE0 7F0BF0B0 55C00003 */ bnezl $t6, .L7F0BF0C0 +/* 0F3BE4 7F0BF0B4 8C780004 */ lw $t8, 4($v1) +/* 0F3BE8 7F0BF0B8 24C60001 */ addiu $a2, $a2, 1 +/* 0F3BEC 7F0BF0BC 8C780004 */ lw $t8, 4($v1) +.L7F0BF0C0: +/* 0F3BF0 7F0BF0C0 8C990024 */ lw $t9, 0x24($a0) +/* 0F3BF4 7F0BF0C4 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F3BF8 7F0BF0C8 00B92821 */ addu $a1, $a1, $t9 +/* 0F3BFC 7F0BF0CC 55E00003 */ bnezl $t7, .L7F0BF0DC +/* 0F3C00 7F0BF0D0 8C790008 */ lw $t9, 8($v1) +/* 0F3C04 7F0BF0D4 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C08 7F0BF0D8 8C790008 */ lw $t9, 8($v1) +.L7F0BF0DC: +/* 0F3C0C 7F0BF0DC 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F3C10 7F0BF0E0 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F3C14 7F0BF0E4 00AE2821 */ addu $a1, $a1, $t6 +/* 0F3C18 7F0BF0E8 57000003 */ bnezl $t8, .L7F0BF0F8 +/* 0F3C1C 7F0BF0EC 8C6E000C */ lw $t6, 0xc($v1) +/* 0F3C20 7F0BF0F0 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C24 7F0BF0F4 8C6E000C */ lw $t6, 0xc($v1) +.L7F0BF0F8: +/* 0F3C28 7F0BF0F8 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F3C2C 7F0BF0FC 24630010 */ addiu $v1, $v1, 0x10 +/* 0F3C30 7F0BF100 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F3C34 7F0BF104 00AF2821 */ addu $a1, $a1, $t7 +/* 0F3C38 7F0BF108 57200003 */ bnezl $t9, .L7F0BF118 +/* 0F3C3C 7F0BF10C 8C980174 */ lw $t8, 0x174($a0) +/* 0F3C40 7F0BF110 24C60001 */ addiu $a2, $a2, 1 +/* 0F3C44 7F0BF114 8C980174 */ lw $t8, 0x174($a0) +.L7F0BF118: +/* 0F3C48 7F0BF118 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F3C4C 7F0BF11C 1468FFE2 */ bne $v1, $t0, .L7F0BF0A8 +/* 0F3C50 7F0BF120 00B82821 */ addu $a1, $a1, $t8 +.L7F0BF124: +/* 0F3C54 7F0BF124 28A10002 */ slti $at, $a1, 2 +/* 0F3C58 7F0BF128 1420001C */ bnez $at, .L7F0BF19C +/* 0F3C5C 7F0BF12C 000C78C0 */ sll $t7, $t4, 3 +/* 0F3C60 7F0BF130 01EC7823 */ subu $t7, $t7, $t4 +/* 0F3C64 7F0BF134 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F3C68 7F0BF138 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F3C6C 7F0BF13C 000F7900 */ sll $t7, $t7, 4 +/* 0F3C70 7F0BF140 01EE1821 */ addu $v1, $t7, $t6 +/* 0F3C74 7F0BF144 906F0068 */ lbu $t7, 0x68($v1) +/* 0F3C78 7F0BF148 3C188008 */ lui $t8, %hi(players) +/* 0F3C7C 7F0BF14C 27189EE0 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x6120 +/* 0F3C80 7F0BF150 000CC880 */ sll $t9, $t4, 2 +/* 0F3C84 7F0BF154 15E00003 */ bnez $t7, .L7F0BF164 +/* 0F3C88 7F0BF158 03382021 */ addu $a0, $t9, $t8 +/* 0F3C8C 7F0BF15C 24CE0001 */ addiu $t6, $a2, 1 +/* 0F3C90 7F0BF160 A06E0068 */ sb $t6, 0x68($v1) +.L7F0BF164: +/* 0F3C94 7F0BF164 8C830000 */ lw $v1, ($a0) +/* 0F3C98 7F0BF168 25AD0001 */ addiu $t5, $t5, 1 +/* 0F3C9C 7F0BF16C 8C790424 */ lw $t9, 0x424($v1) +/* 0F3CA0 7F0BF170 5320000B */ beql $t9, $zero, .L7F0BF1A0 +/* 0F3CA4 7F0BF174 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CA8 7F0BF178 8C780428 */ lw $t8, 0x428($v1) +/* 0F3CAC 7F0BF17C 53000008 */ beql $t8, $zero, .L7F0BF1A0 +/* 0F3CB0 7F0BF180 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CB4 7F0BF184 C46A03E4 */ lwc1 $f10, 0x3e4($v1) +/* 0F3CB8 7F0BF188 4600503C */ c.lt.s $f10, $f0 +/* 0F3CBC 7F0BF18C 00000000 */ nop +/* 0F3CC0 7F0BF190 45020003 */ bc1fl .L7F0BF1A0 +/* 0F3CC4 7F0BF194 258C0001 */ addiu $t4, $t4, 1 +/* 0F3CC8 7F0BF198 27FF0001 */ addiu $ra, $ra, 1 +.L7F0BF19C: +/* 0F3CCC 7F0BF19C 258C0001 */ addiu $t4, $t4, 1 +.L7F0BF1A0: +/* 0F3CD0 7F0BF1A0 018A082A */ slt $at, $t4, $t2 +/* 0F3CD4 7F0BF1A4 5420FF95 */ bnezl $at, .L7F0BEFFC +/* 0F3CD8 7F0BF1A8 00002825 */ move $a1, $zero +.L7F0BF1AC: +/* 0F3CDC 7F0BF1AC 2443FFFF */ addiu $v1, $v0, -1 +/* 0F3CE0 7F0BF1B0 03E3082A */ slt $at, $ra, $v1 +/* 0F3CE4 7F0BF1B4 54200006 */ bnezl $at, .L7F0BF1D0 +/* 0F3CE8 7F0BF1B8 01A3082A */ slt $at, $t5, $v1 +/* 0F3CEC 7F0BF1BC 0FC3094C */ jal sub_GAME_7F0C2530 +/* 0F3CF0 7F0BF1C0 00002025 */ move $a0, $zero +/* 0F3CF4 7F0BF1C4 10000006 */ b .L7F0BF1E0 +/* 0F3CF8 7F0BF1C8 00000000 */ nop +/* 0F3CFC 7F0BF1CC 01A3082A */ slt $at, $t5, $v1 +.L7F0BF1D0: +/* 0F3D00 7F0BF1D0 14200003 */ bnez $at, .L7F0BF1E0 +/* 0F3D04 7F0BF1D4 00000000 */ nop +/* 0F3D08 7F0BF1D8 0FC30948 */ jal set_stopplay_flag +/* 0F3D0C 7F0BF1DC 00000000 */ nop +.L7F0BF1E0: +/* 0F3D10 7F0BF1E0 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3D14 7F0BF1E4 3C0F8005 */ lui $t7, %hi(D_80048394) +/* 0F3D18 7F0BF1E8 8DEF8394 */ lw $t7, %lo(D_80048394)($t7) +/* 0F3D1C 7F0BF1EC 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3D20 7F0BF1F0 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D24 7F0BF1F4 44810000 */ mtc1 $at, $f0 +/* 0F3D28 7F0BF1F8 01E27021 */ addu $t6, $t7, $v0 +/* 0F3D2C 7F0BF1FC 448E8000 */ mtc1 $t6, $f16 +/* 0F3D30 7F0BF200 3C018005 */ lui $at, %hi(D_80048394) +/* 0F3D34 7F0BF204 AC2E8394 */ sw $t6, %lo(D_80048394)($at) +/* 0F3D38 7F0BF208 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3D3C 7F0BF20C 3C038005 */ lui $v1, %hi(D_800483A8) +/* 0F3D40 7F0BF210 3C018005 */ lui $at, %hi(cur_mp_sec) +/* 0F3D44 7F0BF214 246383A8 */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c58 +/* 0F3D48 7F0BF218 00002025 */ move $a0, $zero +/* 0F3D4C 7F0BF21C 3405FFFF */ li $a1, 65535 +/* 0F3D50 7F0BF220 46009103 */ div.s $f4, $f18, $f0 +/* 0F3D54 7F0BF224 E42483A4 */ swc1 $f4, %lo(cur_mp_sec)($at) +/* 0F3D58 7F0BF228 8C790000 */ lw $t9, ($v1) +/* 0F3D5C 7F0BF22C 3C018005 */ lui $at, %hi(cur_mp_min) +/* 0F3D60 7F0BF230 03227821 */ addu $t7, $t9, $v0 +/* 0F3D64 7F0BF234 448F3000 */ mtc1 $t7, $f6 +/* 0F3D68 7F0BF238 AC6F0000 */ sw $t7, ($v1) +/* 0F3D6C 7F0BF23C 46803220 */ cvt.s.w $f8, $f6 +/* 0F3D70 7F0BF240 46004283 */ div.s $f10, $f8, $f0 +/* 0F3D74 7F0BF244 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F3D78 7F0BF248 E42A83AC */ swc1 $f10, %lo(cur_mp_min)($at) +/* 0F3D7C 7F0BF24C 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F3D80 7F0BF250 44810000 */ mtc1 $at, $f0 +/* 0F3D84 7F0BF254 10400009 */ beqz $v0, .L7F0BF27C +/* 0F3D88 7F0BF258 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D8C 7F0BF25C 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F3D90 7F0BF260 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3D94 7F0BF264 24638390 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c70 +/* 0F3D98 7F0BF268 AC208388 */ sw $zero, %lo(D_80048388)($at) +/* 0F3D9C 7F0BF26C AC600000 */ sw $zero, ($v1) +/* 0F3DA0 7F0BF270 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DA4 7F0BF274 1000000C */ b .L7F0BF2A8 +/* 0F3DA8 7F0BF278 8C428374 */ lw $v0, %lo(clock_timer)($v0) +.L7F0BF27C: +/* 0F3DAC 7F0BF27C 24638390 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F3DB0 7F0BF280 3C028005 */ lui $v0, %hi(clock_timer) +/* 0F3DB4 7F0BF284 8C428374 */ lw $v0, %lo(clock_timer)($v0) +/* 0F3DB8 7F0BF288 8C6E0000 */ lw $t6, ($v1) +/* 0F3DBC 7F0BF28C 240F0001 */ li $t7, 1 +/* 0F3DC0 7F0BF290 01C2C821 */ addu $t9, $t6, $v0 +/* 0F3DC4 7F0BF294 2B210708 */ slti $at, $t9, 0x708 +/* 0F3DC8 7F0BF298 14200003 */ bnez $at, .L7F0BF2A8 +/* 0F3DCC 7F0BF29C AC790000 */ sw $t9, ($v1) +/* 0F3DD0 7F0BF2A0 3C018005 */ lui $at, %hi(D_80048388) +/* 0F3DD4 7F0BF2A4 AC2F8388 */ sw $t7, %lo(D_80048388)($at) +.L7F0BF2A8: +/* 0F3DD8 7F0BF2A8 3C0E8005 */ lui $t6, %hi(D_80048388) +/* 0F3DDC 7F0BF2AC 8DCE8388 */ lw $t6, %lo(D_80048388)($t6) +/* 0F3DE0 7F0BF2B0 3C038005 */ lui $v1, %hi(D_8004838C) +/* 0F3DE4 7F0BF2B4 2463838C */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c74 +/* 0F3DE8 7F0BF2B8 11C00005 */ beqz $t6, .L7F0BF2D0 +/* 0F3DEC 7F0BF2BC 00000000 */ nop +/* 0F3DF0 7F0BF2C0 8C790000 */ lw $t9, ($v1) +/* 0F3DF4 7F0BF2C4 0322C021 */ addu $t8, $t9, $v0 +/* 0F3DF8 7F0BF2C8 10000015 */ b .L7F0BF320 +/* 0F3DFC 7F0BF2CC AC780000 */ sw $t8, ($v1) +.L7F0BF2D0: +/* 0F3E00 7F0BF2D0 3C038005 */ lui $v1, %hi(D_800483B0) +/* 0F3E04 7F0BF2D4 246383B0 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c50 +/* 0F3E08 7F0BF2D8 8C6F0000 */ lw $t7, ($v1) +/* 0F3E0C 7F0BF2DC 3C048005 */ lui $a0, %hi(D_800483B8) +/* 0F3E10 7F0BF2E0 3C018005 */ lui $at, %hi(stage_time_sec) +/* 0F3E14 7F0BF2E4 01E2C821 */ addu $t9, $t7, $v0 +/* 0F3E18 7F0BF2E8 44998000 */ mtc1 $t9, $f16 +/* 0F3E1C 7F0BF2EC AC790000 */ sw $t9, ($v1) +/* 0F3E20 7F0BF2F0 248483B8 */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c48 +/* 0F3E24 7F0BF2F4 468084A0 */ cvt.s.w $f18, $f16 +/* 0F3E28 7F0BF2F8 46009103 */ div.s $f4, $f18, $f0 +/* 0F3E2C 7F0BF2FC E42483B4 */ swc1 $f4, %lo(stage_time_sec)($at) +/* 0F3E30 7F0BF300 8C980000 */ lw $t8, ($a0) +/* 0F3E34 7F0BF304 3C018005 */ lui $at, %hi(poweron_time_sec) +/* 0F3E38 7F0BF308 03027021 */ addu $t6, $t8, $v0 +/* 0F3E3C 7F0BF30C 448E3000 */ mtc1 $t6, $f6 +/* 0F3E40 7F0BF310 AC8E0000 */ sw $t6, ($a0) +/* 0F3E44 7F0BF314 46803220 */ cvt.s.w $f8, $f6 +/* 0F3E48 7F0BF318 46004283 */ div.s $f10, $f8, $f0 +/* 0F3E4C 7F0BF31C E42A83BC */ swc1 $f10, %lo(poweron_time_sec)($at) +.L7F0BF320: +/* 0F3E50 7F0BF320 0C00114D */ jal viSetUseZBuf +/* 0F3E54 7F0BF324 24040001 */ li $a0, 1 +/* 0F3E58 7F0BF328 3C198005 */ lui $t9, %hi(current_stage_to_load) +/* 0F3E5C 7F0BF32C 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F3E60 7F0BF330 2401005A */ li $at, 90 +/* 0F3E64 7F0BF334 17210009 */ bne $t9, $at, .L7F0BF35C +/* 0F3E68 7F0BF338 00000000 */ nop +/* 0F3E6C 7F0BF33C 0FC2464F */ jal cheat_buttons_mp_related +/* 0F3E70 7F0BF340 00000000 */ nop +/* 0F3E74 7F0BF344 0FC06987 */ jal menu_init +/* 0F3E78 7F0BF348 00000000 */ nop +/* 0F3E7C 7F0BF34C 0FC30650 */ jal something_with_LnameJ +/* 0F3E80 7F0BF350 00000000 */ nop +/* 0F3E84 7F0BF354 100000A9 */ b .L7F0BF5FC +/* 0F3E88 7F0BF358 00000000 */ nop +.L7F0BF35C: +/* 0F3E8C 7F0BF35C 0FC26EEF */ jal sub_GAME_7F09BBBC +/* 0F3E90 7F0BF360 00000000 */ nop +/* 0F3E94 7F0BF364 0FC2FA34 */ jal sub_GAME_7F0BE8D0 +/* 0F3E98 7F0BF368 00000000 */ nop +/* 0F3E9C 7F0BF36C 0FC2F1F5 */ jal sub_GAME_7F0BC7D4 +/* 0F3EA0 7F0BF370 00000000 */ nop +/* 0F3EA4 7F0BF374 0FC24B94 */ jal sub_GAME_7F092E50 +/* 0F3EA8 7F0BF378 00000000 */ nop +/* 0F3EAC 7F0BF37C 0FC2510E */ jal sub_GAME_7F094438 +/* 0F3EB0 7F0BF380 00000000 */ nop +/* 0F3EB4 7F0BF384 0FC291FF */ jal sub_GAME_7F0A47FC +/* 0F3EB8 7F0BF388 00000000 */ nop +/* 0F3EBC 7F0BF38C 0FC1A39B */ jal sub_GAME_7F068E6C +/* 0F3EC0 7F0BF390 00000000 */ nop +/* 0F3EC4 7F0BF394 0FC28A35 */ jal sub_GAME_7F0A28D4 +/* 0F3EC8 7F0BF398 00000000 */ nop +/* 0F3ECC 7F0BF39C 0FC27F4F */ jal sub_GAME_7F09FD3C +/* 0F3ED0 7F0BF3A0 00000000 */ nop +/* 0F3ED4 7F0BF3A4 0FC0F192 */ jal handle_mp_respawn_and_some_things +/* 0F3ED8 7F0BF3A8 00000000 */ nop +/* 0F3EDC 7F0BF3AC 0FC304F2 */ jal reset_all_music_slots +/* 0F3EE0 7F0BF3B0 00000000 */ nop +/* 0F3EE4 7F0BF3B4 0FC30650 */ jal something_with_LnameJ +/* 0F3EE8 7F0BF3B8 00000000 */ nop +/* 0F3EEC 7F0BF3BC 0FC243EE */ jal get_debug_joy2detailedit_flag +/* 0F3EF0 7F0BF3C0 00000000 */ nop +/* 0F3EF4 7F0BF3C4 1040004D */ beqz $v0, .L7F0BF4FC +/* 0F3EF8 7F0BF3C8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3EFC 7F0BF3CC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F00 7F0BF3D0 8CD80000 */ lw $t8, ($a2) +/* 0F3F04 7F0BF3D4 24043000 */ li $a0, 12288 +/* 0F3F08 7F0BF3D8 17000048 */ bnez $t8, .L7F0BF4FC +/* 0F3F0C 7F0BF3DC 00000000 */ nop +/* 0F3F10 7F0BF3E0 0C0025C8 */ jal mempAllocBytesInBank +/* 0F3F14 7F0BF3E4 24050004 */ li $a1, 4 +/* 0F3F18 7F0BF3E8 3C068005 */ lui $a2, %hi(D_800483C8) +/* 0F3F1C 7F0BF3EC 24C683C8 */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c38 +/* 0F3F20 7F0BF3F0 10400042 */ beqz $v0, .L7F0BF4FC +/* 0F3F24 7F0BF3F4 ACC20000 */ sw $v0, ($a2) +/* 0F3F28 7F0BF3F8 00001825 */ move $v1, $zero +/* 0F3F2C 7F0BF3FC 24052EE0 */ li $a1, 12000 +/* 0F3F30 7F0BF400 240400FF */ li $a0, 255 +.L7F0BF404: +/* 0F3F34 7F0BF404 8CCE0000 */ lw $t6, ($a2) +/* 0F3F38 7F0BF408 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3F3C 7F0BF40C A3240000 */ sb $a0, ($t9) +/* 0F3F40 7F0BF410 8CD80000 */ lw $t8, ($a2) +/* 0F3F44 7F0BF414 03031021 */ addu $v0, $t8, $v1 +/* 0F3F48 7F0BF418 904F0001 */ lbu $t7, 1($v0) +/* 0F3F4C 7F0BF41C 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3F50 7F0BF420 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3F54 7F0BF424 A0590001 */ sb $t9, 1($v0) +/* 0F3F58 7F0BF428 8CD80000 */ lw $t8, ($a2) +/* 0F3F5C 7F0BF42C 03031021 */ addu $v0, $t8, $v1 +/* 0F3F60 7F0BF430 904F0001 */ lbu $t7, 1($v0) +/* 0F3F64 7F0BF434 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3F68 7F0BF438 35D90004 */ ori $t9, $t6, 4 +/* 0F3F6C 7F0BF43C A0590001 */ sb $t9, 1($v0) +/* 0F3F70 7F0BF440 8CD80000 */ lw $t8, ($a2) +/* 0F3F74 7F0BF444 03037821 */ addu $t7, $t8, $v1 +/* 0F3F78 7F0BF448 A1E40004 */ sb $a0, 4($t7) +/* 0F3F7C 7F0BF44C 8CCE0000 */ lw $t6, ($a2) +/* 0F3F80 7F0BF450 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F84 7F0BF454 90590005 */ lbu $t9, 5($v0) +/* 0F3F88 7F0BF458 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F3F8C 7F0BF45C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F3F90 7F0BF460 A04F0005 */ sb $t7, 5($v0) +/* 0F3F94 7F0BF464 8CCE0000 */ lw $t6, ($a2) +/* 0F3F98 7F0BF468 01C31021 */ addu $v0, $t6, $v1 +/* 0F3F9C 7F0BF46C 90590005 */ lbu $t9, 5($v0) +/* 0F3FA0 7F0BF470 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F3FA4 7F0BF474 370F0004 */ ori $t7, $t8, 4 +/* 0F3FA8 7F0BF478 A04F0005 */ sb $t7, 5($v0) +/* 0F3FAC 7F0BF47C 8CCE0000 */ lw $t6, ($a2) +/* 0F3FB0 7F0BF480 01C3C821 */ addu $t9, $t6, $v1 +/* 0F3FB4 7F0BF484 A3240008 */ sb $a0, 8($t9) +/* 0F3FB8 7F0BF488 8CD80000 */ lw $t8, ($a2) +/* 0F3FBC 7F0BF48C 03031021 */ addu $v0, $t8, $v1 +/* 0F3FC0 7F0BF490 904F0009 */ lbu $t7, 9($v0) +/* 0F3FC4 7F0BF494 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F3FC8 7F0BF498 35D90020 */ ori $t9, $t6, 0x20 +/* 0F3FCC 7F0BF49C A0590009 */ sb $t9, 9($v0) +/* 0F3FD0 7F0BF4A0 8CD80000 */ lw $t8, ($a2) +/* 0F3FD4 7F0BF4A4 03031021 */ addu $v0, $t8, $v1 +/* 0F3FD8 7F0BF4A8 904F0009 */ lbu $t7, 9($v0) +/* 0F3FDC 7F0BF4AC 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F3FE0 7F0BF4B0 35D90004 */ ori $t9, $t6, 4 +/* 0F3FE4 7F0BF4B4 A0590009 */ sb $t9, 9($v0) +/* 0F3FE8 7F0BF4B8 8CD80000 */ lw $t8, ($a2) +/* 0F3FEC 7F0BF4BC 03037821 */ addu $t7, $t8, $v1 +/* 0F3FF0 7F0BF4C0 A1E4000C */ sb $a0, 0xc($t7) +/* 0F3FF4 7F0BF4C4 8CCE0000 */ lw $t6, ($a2) +/* 0F3FF8 7F0BF4C8 01C31021 */ addu $v0, $t6, $v1 +/* 0F3FFC 7F0BF4CC 9059000D */ lbu $t9, 0xd($v0) +/* 0F4000 7F0BF4D0 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4004 7F0BF4D4 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4008 7F0BF4D8 A04F000D */ sb $t7, 0xd($v0) +/* 0F400C 7F0BF4DC 8CCE0000 */ lw $t6, ($a2) +/* 0F4010 7F0BF4E0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4014 7F0BF4E4 9059000D */ lbu $t9, 0xd($v0) +/* 0F4018 7F0BF4E8 24630010 */ addiu $v1, $v1, 0x10 +/* 0F401C 7F0BF4EC 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4020 7F0BF4F0 370F0004 */ ori $t7, $t8, 4 +/* 0F4024 7F0BF4F4 1465FFC3 */ bne $v1, $a1, .L7F0BF404 +/* 0F4028 7F0BF4F8 A04F000D */ sb $t7, 0xd($v0) +.L7F0BF4FC: +/* 0F402C 7F0BF4FC 0FC2440F */ jal get_debug_portal_flag +/* 0F4030 7F0BF500 00000000 */ nop +/* 0F4034 7F0BF504 10400003 */ beqz $v0, .L7F0BF514 +/* 0F4038 7F0BF508 00000000 */ nop +/* 0F403C 7F0BF50C 0FC2F7C4 */ jal sub_GAME_7F0BDF10 +/* 0F4040 7F0BF510 00002025 */ move $a0, $zero +.L7F0BF514: +/* 0F4044 7F0BF514 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4048 7F0BF518 00000000 */ nop +/* 0F404C 7F0BF51C 24010004 */ li $at, 4 +/* 0F4050 7F0BF520 10410006 */ beq $v0, $at, .L7F0BF53C +/* 0F4054 7F0BF524 00002025 */ move $a0, $zero +/* 0F4058 7F0BF528 24010008 */ li $at, 8 +/* 0F405C 7F0BF52C 1041001A */ beq $v0, $at, .L7F0BF598 +/* 0F4060 7F0BF530 00002025 */ move $a0, $zero +/* 0F4064 7F0BF534 10000031 */ b .L7F0BF5FC +/* 0F4068 7F0BF538 00000000 */ nop +.L7F0BF53C: +/* 0F406C 7F0BF53C 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F4070 7F0BF540 24050002 */ li $a1, 2 +/* 0F4074 7F0BF544 50400008 */ beql $v0, $zero, .L7F0BF568 +/* 0F4078 7F0BF548 00002025 */ move $a0, $zero +/* 0F407C 7F0BF54C 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F4080 7F0BF550 2404FFFF */ li $a0, -1 +/* 0F4084 7F0BF554 00002025 */ move $a0, $zero +/* 0F4088 7F0BF558 00002825 */ move $a1, $zero +/* 0F408C 7F0BF55C 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F4090 7F0BF560 00003025 */ move $a2, $zero +/* 0F4094 7F0BF564 00002025 */ move $a0, $zero +.L7F0BF568: +/* 0F4098 7F0BF568 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F409C 7F0BF56C 24050001 */ li $a1, 1 +/* 0F40A0 7F0BF570 10400022 */ beqz $v0, .L7F0BF5FC +/* 0F40A4 7F0BF574 00000000 */ nop +/* 0F40A8 7F0BF578 0FC2BD8C */ jal sub_GAME_7F0AF630 +/* 0F40AC 7F0BF57C 24040001 */ li $a0, 1 +/* 0F40B0 7F0BF580 00002025 */ move $a0, $zero +/* 0F40B4 7F0BF584 00002825 */ move $a1, $zero +/* 0F40B8 7F0BF588 0FC2CB4E */ jal sub_GAME_7F0B2D38 +/* 0F40BC 7F0BF58C 00003025 */ move $a2, $zero +/* 0F40C0 7F0BF590 1000001A */ b .L7F0BF5FC +/* 0F40C4 7F0BF594 00000000 */ nop +.L7F0BF598: +/* 0F40C8 7F0BF598 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F40CC 7F0BF59C 24050002 */ li $a1, 2 +/* 0F40D0 7F0BF5A0 50400004 */ beql $v0, $zero, .L7F0BF5B4 +/* 0F40D4 7F0BF5A4 00002025 */ move $a0, $zero +/* 0F40D8 7F0BF5A8 0FC08B8C */ jal sub_GAME_7F022E30 +/* 0F40DC 7F0BF5AC 00000000 */ nop +/* 0F40E0 7F0BF5B0 00002025 */ move $a0, $zero +.L7F0BF5B4: +/* 0F40E4 7F0BF5B4 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F40E8 7F0BF5B8 24050001 */ li $a1, 1 +/* 0F40EC 7F0BF5BC 50400004 */ beql $v0, $zero, .L7F0BF5D0 +/* 0F40F0 7F0BF5C0 00002025 */ move $a0, $zero +/* 0F40F4 7F0BF5C4 0FC08BA4 */ jal sub_GAME_7F022E90 +/* 0F40F8 7F0BF5C8 00000000 */ nop +/* 0F40FC 7F0BF5CC 00002025 */ move $a0, $zero +.L7F0BF5D0: +/* 0F4100 7F0BF5D0 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F4104 7F0BF5D4 24050020 */ li $a1, 32 +/* 0F4108 7F0BF5D8 50400004 */ beql $v0, $zero, .L7F0BF5EC +/* 0F410C 7F0BF5DC 00002025 */ move $a0, $zero +/* 0F4110 7F0BF5E0 0FC08BB2 */ jal sub_GAME_7F022EC8 +/* 0F4114 7F0BF5E4 00000000 */ nop +/* 0F4118 7F0BF5E8 00002025 */ move $a0, $zero +.L7F0BF5EC: +/* 0F411C 7F0BF5EC 0C0030C3 */ jal joyGetButtons +/* 0F4120 7F0BF5F0 24050010 */ li $a1, 16 +/* 0F4124 7F0BF5F4 0FC08BB8 */ jal sub_GAME_7F022EE0 +/* 0F4128 7F0BF5F8 0002202B */ sltu $a0, $zero, $v0 +.L7F0BF5FC: +/* 0F412C 7F0BF5FC 0FC243C5 */ jal get_debug_limit_controller_input +/* 0F4130 7F0BF600 00000000 */ nop +/* 0F4134 7F0BF604 2401000C */ li $at, 12 +/* 0F4138 7F0BF608 1041002E */ beq $v0, $at, .L7F0BF6C4 +/* 0F413C 7F0BF60C 00002025 */ move $a0, $zero +/* 0F4140 7F0BF610 2401000D */ li $at, 13 +/* 0F4144 7F0BF614 10410048 */ beq $v0, $at, .L7F0BF738 +/* 0F4148 7F0BF618 00002025 */ move $a0, $zero +/* 0F414C 7F0BF61C 24010038 */ li $at, 56 +/* 0F4150 7F0BF620 54410074 */ bnel $v0, $at, .L7F0BF7F4 +/* 0F4154 7F0BF624 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4158 7F0BF628 0C0010EA */ jal viGet8002329C +/* 0F415C 7F0BF62C 00000000 */ nop +/* 0F4160 7F0BF630 0C0010E4 */ jal viGet800232A0 +/* 0F4164 7F0BF634 AFA20030 */ sw $v0, 0x30($sp) +/* 0F4168 7F0BF638 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F416C 7F0BF63C 00002025 */ move $a0, $zero +/* 0F4170 7F0BF640 0C0030C3 */ jal joyGetButtons +/* 0F4174 7F0BF644 24050004 */ li $a1, 4 +/* 0F4178 7F0BF648 10400004 */ beqz $v0, .L7F0BF65C +/* 0F417C 7F0BF64C 00002025 */ move $a0, $zero +/* 0F4180 7F0BF650 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4184 7F0BF654 25D90001 */ addiu $t9, $t6, 1 +/* 0F4188 7F0BF658 AFB9002C */ sw $t9, 0x2c($sp) +.L7F0BF65C: +/* 0F418C 7F0BF65C 0C0030C3 */ jal joyGetButtons +/* 0F4190 7F0BF660 24050008 */ li $a1, 8 +/* 0F4194 7F0BF664 10400004 */ beqz $v0, .L7F0BF678 +/* 0F4198 7F0BF668 00002025 */ move $a0, $zero +/* 0F419C 7F0BF66C 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F41A0 7F0BF670 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41A4 7F0BF674 AFAF002C */ sw $t7, 0x2c($sp) +.L7F0BF678: +/* 0F41A8 7F0BF678 0C0030C3 */ jal joyGetButtons +/* 0F41AC 7F0BF67C 24050001 */ li $a1, 1 +/* 0F41B0 7F0BF680 10400004 */ beqz $v0, .L7F0BF694 +/* 0F41B4 7F0BF684 00002025 */ move $a0, $zero +/* 0F41B8 7F0BF688 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F41BC 7F0BF68C 25D90001 */ addiu $t9, $t6, 1 +/* 0F41C0 7F0BF690 AFB90030 */ sw $t9, 0x30($sp) +.L7F0BF694: +/* 0F41C4 7F0BF694 0C0030C3 */ jal joyGetButtons +/* 0F41C8 7F0BF698 24050002 */ li $a1, 2 +/* 0F41CC 7F0BF69C 10400003 */ beqz $v0, .L7F0BF6AC +/* 0F41D0 7F0BF6A0 8FB80030 */ lw $t8, 0x30($sp) +/* 0F41D4 7F0BF6A4 270FFFFF */ addiu $t7, $t8, -1 +/* 0F41D8 7F0BF6A8 AFAF0030 */ sw $t7, 0x30($sp) +.L7F0BF6AC: +/* 0F41DC 7F0BF6AC 0C0010E7 */ jal viSet8002329C +/* 0F41E0 7F0BF6B0 8FA40030 */ lw $a0, 0x30($sp) +/* 0F41E4 7F0BF6B4 0C0010E1 */ jal viSet800232A0 +/* 0F41E8 7F0BF6B8 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F41EC 7F0BF6BC 1000004D */ b .L7F0BF7F4 +/* 0F41F0 7F0BF6C0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF6C4: +/* 0F41F4 7F0BF6C4 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F41F8 7F0BF6C8 24050202 */ li $a1, 514 +/* 0F41FC 7F0BF6CC 50400004 */ beql $v0, $zero, .L7F0BF6E0 +/* 0F4200 7F0BF6D0 00002025 */ move $a0, $zero +/* 0F4204 7F0BF6D4 0FC2F68E */ jal music_append_play_endtheme +/* 0F4208 7F0BF6D8 00000000 */ nop +/* 0F420C 7F0BF6DC 00002025 */ move $a0, $zero +.L7F0BF6E0: +/* 0F4210 7F0BF6E0 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F4214 7F0BF6E4 24050101 */ li $a1, 257 +/* 0F4218 7F0BF6E8 50400004 */ beql $v0, $zero, .L7F0BF6FC +/* 0F421C 7F0BF6EC 00002025 */ move $a0, $zero +/* 0F4220 7F0BF6F0 0FC2F67B */ jal music_append_play_solo_death_short +/* 0F4224 7F0BF6F4 00000000 */ nop +/* 0F4228 7F0BF6F8 00002025 */ move $a0, $zero +.L7F0BF6FC: +/* 0F422C 7F0BF6FC 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F4230 7F0BF700 24050400 */ li $a1, 1024 +/* 0F4234 7F0BF704 50400004 */ beql $v0, $zero, .L7F0BF718 +/* 0F4238 7F0BF708 00002025 */ move $a0, $zero +/* 0F423C 7F0BF70C 0C001BF4 */ jal musicTrack1Stop +/* 0F4240 7F0BF710 00000000 */ nop +/* 0F4244 7F0BF714 00002025 */ move $a0, $zero +.L7F0BF718: +/* 0F4248 7F0BF718 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F424C 7F0BF71C 24054000 */ li $a1, 16384 +/* 0F4250 7F0BF720 50400034 */ beql $v0, $zero, .L7F0BF7F4 +/* 0F4254 7F0BF724 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4258 7F0BF728 0C001C28 */ jal musicTrack1SaveCurrentVolumeAsTrackDefault +/* 0F425C 7F0BF72C 00000000 */ nop +/* 0F4260 7F0BF730 10000030 */ b .L7F0BF7F4 +/* 0F4264 7F0BF734 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF738: +/* 0F4268 7F0BF738 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F426C 7F0BF73C 24050622 */ li $a1, 1570 +/* 0F4270 7F0BF740 1040000B */ beqz $v0, .L7F0BF770 +/* 0F4274 7F0BF744 3C058005 */ lui $a1, 0x8005 +/* 0F4278 7F0BF748 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F427C 7F0BF74C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0F4280 7F0BF750 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F4284 7F0BF754 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4288 7F0BF758 00057400 */ sll $t6, $a1, 0x10 +/* 0F428C 7F0BF75C 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4290 7F0BF760 A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4294 7F0BF764 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F4298 7F0BF768 0C002382 */ jal play_sfx_a1 +/* 0F429C 7F0BF76C 00003025 */ move $a2, $zero +.L7F0BF770: +/* 0F42A0 7F0BF770 00002025 */ move $a0, $zero +/* 0F42A4 7F0BF774 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F42A8 7F0BF778 24050911 */ li $a1, 2321 +/* 0F42AC 7F0BF77C 1040000B */ beqz $v0, .L7F0BF7AC +/* 0F42B0 7F0BF780 3C058005 */ lui $a1, 0x8005 +/* 0F42B4 7F0BF784 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F42B8 7F0BF788 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0F42BC 7F0BF78C 3C018005 */ lui $at, %hi(D_800483E4) +/* 0F42C0 7F0BF790 24A50001 */ addiu $a1, $a1, 1 +/* 0F42C4 7F0BF794 0005C400 */ sll $t8, $a1, 0x10 +/* 0F42C8 7F0BF798 00182C03 */ sra $a1, $t8, 0x10 +/* 0F42CC 7F0BF79C A42583E4 */ sh $a1, %lo(D_800483E4)($at) +/* 0F42D0 7F0BF7A0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F42D4 7F0BF7A4 0C002382 */ jal play_sfx_a1 +/* 0F42D8 7F0BF7A8 00003025 */ move $a2, $zero +.L7F0BF7AC: +/* 0F42DC 7F0BF7AC 00002025 */ move $a0, $zero +/* 0F42E0 7F0BF7B0 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F42E4 7F0BF7B4 24050004 */ li $a1, 4 +/* 0F42E8 7F0BF7B8 50400004 */ beql $v0, $zero, .L7F0BF7CC +/* 0F42EC 7F0BF7BC 00002025 */ move $a0, $zero +/* 0F42F0 7F0BF7C0 0C002449 */ jal sfx_c_70009124 +/* 0F42F4 7F0BF7C4 00000000 */ nop +/* 0F42F8 7F0BF7C8 00002025 */ move $a0, $zero +.L7F0BF7CC: +/* 0F42FC 7F0BF7CC 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0F4300 7F0BF7D0 24050008 */ li $a1, 8 +/* 0F4304 7F0BF7D4 10400006 */ beqz $v0, .L7F0BF7F0 +/* 0F4308 7F0BF7D8 3C058005 */ lui $a1, %hi(D_800483E4) +/* 0F430C 7F0BF7DC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 0F4310 7F0BF7E0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F4314 7F0BF7E4 84A583E4 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4318 7F0BF7E8 0C002382 */ jal play_sfx_a1 +/* 0F431C 7F0BF7EC 00003025 */ move $a2, $zero +.L7F0BF7F0: +/* 0F4320 7F0BF7F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0BF7F4: +/* 0F4324 7F0BF7F4 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4328 7F0BF7F8 03E00008 */ jr $ra +/* 0F432C 7F0BF7FC 00000000 */ nop +) +#endif + +#ifdef VERSION_JP +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F431C 7F0BF7AC 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F4320 7F0BF7B0 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F4324 7F0BF7B4 0C000626 */ jal tlbmanageResetCurrentEntriesCount +/* 0F4328 7F0BF7B8 00000000 */ nop +/* 0F432C 7F0BF7BC 3C0E8005 */ lui $t6, %hi(controls_locked_flag) # $t6, 0x8005 +/* 0F4330 7F0BF7C0 8DCE83A0 */ lw $t6, %lo(controls_locked_flag)($t6) +/* 0F4334 7F0BF7C4 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4338 7F0BF7C8 11C00003 */ beqz $t6, .Ljp7F0BF7D8 +/* 0F433C 7F0BF7CC 00000000 */ nop +/* 0F4340 7F0BF7D0 10000010 */ b .Ljp7F0BF814 +/* 0F4344 7F0BF7D4 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7D8: +/* 0F4348 7F0BF7D8 0FC31B59 */ jal checkGamePaused +/* 0F434C 7F0BF7DC 00000000 */ nop +/* 0F4350 7F0BF7E0 10400004 */ beqz $v0, .Ljp7F0BF7F4 +/* 0F4354 7F0BF7E4 3C0F8005 */ lui $t7, %hi(D_80048498) # $t7, 0x8005 +/* 0F4358 7F0BF7E8 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F435C 7F0BF7EC 10000009 */ b .Ljp7F0BF814 +/* 0F4360 7F0BF7F0 AC2083A4 */ sw $zero, %lo(clock_timer)($at) +.Ljp7F0BF7F4: +/* 0F4364 7F0BF7F4 8DEF84C8 */ lw $t7, %lo(D_80048498)($t7) +/* 0F4368 7F0BF7F8 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 +/* 0F436C 7F0BF7FC 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 +/* 0F4370 7F0BF800 244283B0 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c50 +/* 0F4374 7F0BF804 AC2F83A4 */ sw $t7, %lo(clock_timer)($at) +/* 0F4378 7F0BF808 8C580000 */ lw $t8, ($v0) +/* 0F437C 7F0BF80C 27190001 */ addiu $t9, $t8, 1 +/* 0F4380 7F0BF810 AC590000 */ sw $t9, ($v0) +.Ljp7F0BF814: +/* 0F4384 7F0BF814 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4388 7F0BF818 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(jp_global_timer_delta) # $v1, 0x8005 +/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(jp_global_timer_delta) # addiu $v1, $v1, -0x7c58 +/* 0F4394 7F0BF824 44822000 */ mtc1 $v0, $f4 +/* 0F4398 7F0BF828 3C048005 */ lui $a0, %hi(global_timer) # $a0, 0x8005 +/* 0F439C 7F0BF82C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 +/* 0F43A0 7F0BF830 468021A0 */ cvt.s.w $f6, $f4 +/* 0F43A4 7F0BF834 248483AC */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c54 +/* 0F43A8 7F0BF838 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F43AC 7F0BF83C 3C198005 */ lui $t9, %hi(D_80048394) # $t9, 0x8005 +/* 0F43B0 7F0BF840 E4660000 */ swc1 $f6, ($v1) +/* 0F43B4 7F0BF844 C4680000 */ lwc1 $f8, ($v1) +/* 0F43B8 7F0BF848 E42883B4 */ swc1 $f8, %lo(global_timer_delta)($at) +/* 0F43BC 7F0BF84C 8C8E0000 */ lw $t6, ($a0) +/* 0F43C0 7F0BF850 2401005A */ li $at, 90 +/* 0F43C4 7F0BF854 01C27821 */ addu $t7, $t6, $v0 +/* 0F43C8 7F0BF858 AC8F0000 */ sw $t7, ($a0) +/* 0F43CC 7F0BF85C 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F43D0 7F0BF860 1301001D */ beq $t8, $at, .Ljp7F0BF8D8 +/* 0F43D4 7F0BF864 00000000 */ nop +/* 0F43D8 7F0BF868 8F3983C8 */ lw $t9, %lo(D_80048394)($t9) +/* 0F43DC 7F0BF86C 1720001A */ bnez $t9, .Ljp7F0BF8D8 +/* 0F43E0 7F0BF870 00000000 */ nop +/* 0F43E4 7F0BF874 18400018 */ blez $v0, .Ljp7F0BF8D8 +/* 0F43E8 7F0BF878 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 +/* 0F43EC 7F0BF87C 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) +/* 0F43F0 7F0BF880 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $v1, 0x8007 +/* 0F43F4 7F0BF884 246396E1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x691f +/* 0F43F8 7F0BF888 11C00013 */ beqz $t6, .Ljp7F0BF8D8 +/* 0F43FC 7F0BF88C 24040001 */ li $a0, 1 +.Ljp7F0BF890: +/* 0F4400 7F0BF890 906F0000 */ lbu $t7, ($v1) +/* 0F4404 7F0BF894 51E0000D */ beql $t7, $zero, .Ljp7F0BF8CC +/* 0F4408 7F0BF898 24840001 */ addiu $a0, $a0, 1 +/* 0F440C 7F0BF89C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4410 7F0BF8A0 0FC2494F */ jal is_cheat_index_equal_to_1C +/* 0F4414 7F0BF8A4 AFA40194 */ sw $a0, 0x194($sp) +/* 0F4418 7F0BF8A8 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F441C 7F0BF8AC 14400006 */ bnez $v0, .Ljp7F0BF8C8 +/* 0F4420 7F0BF8B0 8FA40194 */ lw $a0, 0x194($sp) +/* 0F4424 7F0BF8B4 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F4428 7F0BF8B8 0FC24963 */ jal turn_on_cheat_for_players +/* 0F442C 7F0BF8BC AFA40194 */ sw $a0, 0x194($sp) +/* 0F4430 7F0BF8C0 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F4434 7F0BF8C4 8FA40194 */ lw $a0, 0x194($sp) +.Ljp7F0BF8C8: +/* 0F4438 7F0BF8C8 24840001 */ addiu $a0, $a0, 1 +.Ljp7F0BF8CC: +/* 0F443C 7F0BF8CC 2401004B */ li $at, 75 +/* 0F4440 7F0BF8D0 1481FFEF */ bne $a0, $at, .Ljp7F0BF890 +/* 0F4444 7F0BF8D4 24630001 */ addiu $v1, $v1, 1 +.Ljp7F0BF8D8: +/* 0F4448 7F0BF8D8 0FC26C01 */ jal getPlayerCount +/* 0F444C 7F0BF8DC 00000000 */ nop +/* 0F4450 7F0BF8E0 28410002 */ slti $at, $v0, 2 +/* 0F4454 7F0BF8E4 1420014C */ bnez $at, .Ljp7F0BFE18 +/* 0F4458 7F0BF8E8 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 +/* 0F445C 7F0BF8EC 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) +/* 0F4460 7F0BF8F0 2401005A */ li $at, 90 +/* 0F4464 7F0BF8F4 13010148 */ beq $t8, $at, .Ljp7F0BFE18 +/* 0F4468 7F0BF8F8 00000000 */ nop +/* 0F446C 7F0BF8FC 0FC30630 */ jal get_mission_state +/* 0F4470 7F0BF900 00000000 */ nop +/* 0F4474 7F0BF904 24010006 */ li $at, 6 +/* 0F4478 7F0BF908 14410029 */ bne $v0, $at, .Ljp7F0BF9B0 +/* 0F447C 7F0BF90C 00000000 */ nop +/* 0F4480 7F0BF910 AFA00190 */ sw $zero, 0x190($sp) +/* 0F4484 7F0BF914 AFA0018C */ sw $zero, 0x18c($sp) +/* 0F4488 7F0BF918 0FC26C01 */ jal getPlayerCount +/* 0F448C 7F0BF91C AFA00188 */ sw $zero, 0x188($sp) +/* 0F4490 7F0BF920 8FA30190 */ lw $v1, 0x190($sp) +/* 0F4494 7F0BF924 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F4498 7F0BF928 1840001B */ blez $v0, .Ljp7F0BF998 +/* 0F449C 7F0BF92C 8FA60188 */ lw $a2, 0x188($sp) +/* 0F44A0 7F0BF930 3C0E8008 */ lui $t6, %hi(players) # $t6, 0x8008 +/* 0F44A4 7F0BF934 25CE9F50 */ addiu $t6, %lo(players) # addiu $t6, $t6, -0x60b0 +/* 0F44A8 7F0BF938 0003C880 */ sll $t9, $v1, 2 +/* 0F44AC 7F0BF93C 032E2021 */ addu $a0, $t9, $t6 +.Ljp7F0BF940: +/* 0F44B0 7F0BF940 8C820000 */ lw $v0, ($a0) +/* 0F44B4 7F0BF944 24630001 */ addiu $v1, $v1, 1 +/* 0F44B8 7F0BF948 24840004 */ addiu $a0, $a0, 4 +/* 0F44BC 7F0BF94C 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F44C0 7F0BF950 51E00007 */ beql $t7, $zero, .Ljp7F0BF970 +/* 0F44C4 7F0BF954 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44C8 7F0BF958 8C580424 */ lw $t8, 0x424($v0) +/* 0F44CC 7F0BF95C 24A50001 */ addiu $a1, $a1, 1 +/* 0F44D0 7F0BF960 53000003 */ beql $t8, $zero, .Ljp7F0BF970 +/* 0F44D4 7F0BF964 AFA30190 */ sw $v1, 0x190($sp) +/* 0F44D8 7F0BF968 24C60001 */ addiu $a2, $a2, 1 +/* 0F44DC 7F0BF96C AFA30190 */ sw $v1, 0x190($sp) +.Ljp7F0BF970: +/* 0F44E0 7F0BF970 AFA4001C */ sw $a0, 0x1c($sp) +/* 0F44E4 7F0BF974 AFA5018C */ sw $a1, 0x18c($sp) +/* 0F44E8 7F0BF978 0FC26C01 */ jal getPlayerCount +/* 0F44EC 7F0BF97C AFA60188 */ sw $a2, 0x188($sp) +/* 0F44F0 7F0BF980 8FA30190 */ lw $v1, 0x190($sp) +/* 0F44F4 7F0BF984 8FA4001C */ lw $a0, 0x1c($sp) +/* 0F44F8 7F0BF988 8FA5018C */ lw $a1, 0x18c($sp) +/* 0F44FC 7F0BF98C 0062082A */ slt $at, $v1, $v0 +/* 0F4500 7F0BF990 1420FFEB */ bnez $at, .Ljp7F0BF940 +/* 0F4504 7F0BF994 8FA60188 */ lw $a2, 0x188($sp) +.Ljp7F0BF998: +/* 0F4508 7F0BF998 18A00005 */ blez $a1, .Ljp7F0BF9B0 +/* 0F450C 7F0BF99C 00000000 */ nop +/* 0F4510 7F0BF9A0 14A60003 */ bne $a1, $a2, .Ljp7F0BF9B0 +/* 0F4514 7F0BF9A4 00000000 */ nop +/* 0F4518 7F0BF9A8 0FC30633 */ jal set_missionstate +/* 0F451C 7F0BF9AC 24040001 */ li $a0, 1 +.Ljp7F0BF9B0: +/* 0F4520 7F0BF9B0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4524 7F0BF9B4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4528 7F0BF9B8 3C028005 */ lui $v0, %hi(D_80048394) # $v0, 0x8005 +/* 0F452C 7F0BF9BC 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4530 7F0BF9C0 1860004A */ blez $v1, .Ljp7F0BFAEC +/* 0F4534 7F0BF9C4 00000000 */ nop +/* 0F4538 7F0BF9C8 8C4283C8 */ lw $v0, %lo(D_80048394)($v0) +/* 0F453C 7F0BF9CC 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4540 7F0BF9D0 2464F1F0 */ addiu $a0, $v1, -0xe10 +/* 0F4544 7F0BF9D4 0044082A */ slt $at, $v0, $a0 +/* 0F4548 7F0BF9D8 03227021 */ addu $t6, $t9, $v0 +/* 0F454C 7F0BF9DC AFAE0180 */ sw $t6, 0x180($sp) +/* 0F4550 7F0BF9E0 10200016 */ beqz $at, .Ljp7F0BFA3C +/* 0F4554 7F0BF9E4 AFA20184 */ sw $v0, 0x184($sp) +/* 0F4558 7F0BF9E8 01C4082A */ slt $at, $t6, $a0 +/* 0F455C 7F0BF9EC 14200013 */ bnez $at, .Ljp7F0BFA3C +/* 0F4560 7F0BF9F0 00000000 */ nop +/* 0F4564 7F0BF9F4 0FC26C01 */ jal getPlayerCount +/* 0F4568 7F0BF9F8 AFA0017C */ sw $zero, 0x17c($sp) +/* 0F456C 7F0BF9FC 1840000F */ blez $v0, .Ljp7F0BFA3C +/* 0F4570 7F0BFA00 00000000 */ nop +.Ljp7F0BFA04: +/* 0F4574 7F0BFA04 0FC26F2B */ jal set_cur_player +/* 0F4578 7F0BFA08 8FA4017C */ lw $a0, 0x17c($sp) +/* 0F457C 7F0BFA0C 0FC30AA2 */ jal get_textptr_for_textID +/* 0F4580 7F0BFA10 3404B044 */ li $a0, 45124 +/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_display_string_in_lower_left_corner +/* 0F4588 7F0BFA18 00402025 */ move $a0, $v0 +/* 0F458C 7F0BFA1C 8FAF017C */ lw $t7, 0x17c($sp) +/* 0F4590 7F0BFA20 25F80001 */ addiu $t8, $t7, 1 +/* 0F4594 7F0BFA24 0FC26C01 */ jal getPlayerCount +/* 0F4598 7F0BFA28 AFB8017C */ sw $t8, 0x17c($sp) +/* 0F459C 7F0BFA2C 8FB9017C */ lw $t9, 0x17c($sp) +/* 0F45A0 7F0BFA30 0322082A */ slt $at, $t9, $v0 +/* 0F45A4 7F0BFA34 1420FFF3 */ bnez $at, .Ljp7F0BFA04 +/* 0F45A8 7F0BFA38 00000000 */ nop +.Ljp7F0BFA3C: +/* 0F45AC 7F0BFA3C 3C0F8005 */ lui $t7, %hi(mp_time) # $t7, 0x8005 +/* 0F45B0 7F0BFA40 8DEF83CC */ lw $t7, %lo(mp_time)($t7) +/* 0F45B4 7F0BFA44 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F45B8 7F0BFA48 3C198005 */ lui $t9, %hi(D_800483A0) # $t9, 0x8005 +/* 0F45BC 7F0BFA4C 25F8FDA8 */ addiu $t8, $t7, -0x258 +/* 0F45C0 7F0BFA50 01D8082A */ slt $at, $t6, $t8 +/* 0F45C4 7F0BFA54 1420000D */ bnez $at, .Ljp7F0BFA8C +/* 0F45C8 7F0BFA58 00000000 */ nop +/* 0F45CC 7F0BFA5C 8F3983D4 */ lw $t9, %lo(D_800483A0)($t9) +/* 0F45D0 7F0BFA60 1720000A */ bnez $t9, .Ljp7F0BFA8C +/* 0F45D4 7F0BFA64 00000000 */ nop +/* 0F45D8 7F0BFA68 0FC3021B */ jal get_controls_locked_flag +/* 0F45DC 7F0BFA6C 00000000 */ nop +/* 0F45E0 7F0BFA70 14400006 */ bnez $v0, .Ljp7F0BFA8C +/* 0F45E4 7F0BFA74 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0F45E8 7F0BFA78 3C068005 */ lui $a2, %hi(D_800483A0) # $a2, 0x8005 +/* 0F45EC 7F0BFA7C 24C683D4 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c2c +/* 0F45F0 7F0BFA80 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F45F4 7F0BFA84 0C002386 */ jal play_sfx_a1 +/* 0F45F8 7F0BFA88 240500A1 */ li $a1, 161 +.Ljp7F0BFA8C: +/* 0F45FC 7F0BFA8C 0FC3021B */ jal get_controls_locked_flag +/* 0F4600 7F0BFA90 00000000 */ nop +/* 0F4604 7F0BFA94 1040000A */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4608 7F0BFA98 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F460C 7F0BFA9C 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +/* 0F4610 7F0BFAA0 10800007 */ beqz $a0, .Ljp7F0BFAC0 +/* 0F4614 7F0BFAA4 00000000 */ nop +/* 0F4618 7F0BFAA8 0C002380 */ jal sfxGetArg0Unk3F +/* 0F461C 7F0BFAAC 00000000 */ nop +/* 0F4620 7F0BFAB0 10400003 */ beqz $v0, .Ljp7F0BFAC0 +/* 0F4624 7F0BFAB4 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 +/* 0F4628 7F0BFAB8 0C00240C */ jal sfxDeactivate +/* 0F462C 7F0BFABC 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) +.Ljp7F0BFAC0: +/* 0F4630 7F0BFAC0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 +/* 0F4634 7F0BFAC4 8C6383CC */ lw $v1, %lo(mp_time)($v1) +/* 0F4638 7F0BFAC8 8FAF0184 */ lw $t7, 0x184($sp) +/* 0F463C 7F0BFACC 8FAE0180 */ lw $t6, 0x180($sp) +/* 0F4640 7F0BFAD0 01E3082A */ slt $at, $t7, $v1 +/* 0F4644 7F0BFAD4 10200005 */ beqz $at, .Ljp7F0BFAEC +/* 0F4648 7F0BFAD8 01C3082A */ slt $at, $t6, $v1 +/* 0F464C 7F0BFADC 14200003 */ bnez $at, .Ljp7F0BFAEC +/* 0F4650 7F0BFAE0 00000000 */ nop +/* 0F4654 7F0BFAE4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4658 7F0BFAE8 00002025 */ move $a0, $zero +.Ljp7F0BFAEC: +/* 0F465C 7F0BFAEC 3C188005 */ lui $t8, %hi(mp_point) # $t8, 0x8005 +/* 0F4660 7F0BFAF0 8F1883D0 */ lw $t8, %lo(mp_point)($t8) +/* 0F4664 7F0BFAF4 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 +/* 0F4668 7F0BFAF8 1B00003D */ blez $t8, .Ljp7F0BFBF0 +/* 0F466C 7F0BFAFC 00000000 */ nop +/* 0F4670 7F0BFB00 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) +/* 0F4674 7F0BFB04 1320003A */ beqz $t9, .Ljp7F0BFBF0 +/* 0F4678 7F0BFB08 00000000 */ nop +/* 0F467C 7F0BFB0C 0FC26C01 */ jal getPlayerCount +/* 0F4680 7F0BFB10 00000000 */ nop +/* 0F4684 7F0BFB14 00403825 */ move $a3, $v0 +/* 0F4688 7F0BFB18 00002825 */ move $a1, $zero +/* 0F468C 7F0BFB1C 00003025 */ move $a2, $zero +/* 0F4690 7F0BFB20 18400029 */ blez $v0, .Ljp7F0BFBC8 +/* 0F4694 7F0BFB24 00002025 */ move $a0, $zero +/* 0F4698 7F0BFB28 3C038008 */ lui $v1, %hi(players) # $v1, 0x8008 +/* 0F469C 7F0BFB2C 44800000 */ mtc1 $zero, $f0 +/* 0F46A0 7F0BFB30 24639F50 */ addiu $v1, %lo(players) # addiu $v1, $v1, -0x60b0 +.Ljp7F0BFB34: +/* 0F46A4 7F0BFB34 8C620000 */ lw $v0, ($v1) +/* 0F46A8 7F0BFB38 8C4F00D8 */ lw $t7, 0xd8($v0) +/* 0F46AC 7F0BFB3C 51E0000E */ beql $t7, $zero, .Ljp7F0BFB78 +/* 0F46B0 7F0BFB40 AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46B4 7F0BFB44 8C4E0424 */ lw $t6, 0x424($v0) +/* 0F46B8 7F0BFB48 51C0000A */ beql $t6, $zero, .Ljp7F0BFB74 +/* 0F46BC 7F0BFB4C 24A50001 */ addiu $a1, $a1, 1 +/* 0F46C0 7F0BFB50 8C580428 */ lw $t8, 0x428($v0) +/* 0F46C4 7F0BFB54 53000007 */ beql $t8, $zero, .Ljp7F0BFB74 +/* 0F46C8 7F0BFB58 24A50001 */ addiu $a1, $a1, 1 +/* 0F46CC 7F0BFB5C C44A03E4 */ lwc1 $f10, 0x3e4($v0) +/* 0F46D0 7F0BFB60 460A003E */ c.le.s $f0, $f10 +/* 0F46D4 7F0BFB64 00000000 */ nop +/* 0F46D8 7F0BFB68 45020003 */ bc1fl .Ljp7F0BFB78 +/* 0F46DC 7F0BFB6C AFA3001C */ sw $v1, 0x1c($sp) +/* 0F46E0 7F0BFB70 24A50001 */ addiu $a1, $a1, 1 +.Ljp7F0BFB74: +/* 0F46E4 7F0BFB74 AFA3001C */ sw $v1, 0x1c($sp) +.Ljp7F0BFB78: +/* 0F46E8 7F0BFB78 AFA40174 */ sw $a0, 0x174($sp) +/* 0F46EC 7F0BFB7C AFA50170 */ sw $a1, 0x170($sp) +/* 0F46F0 7F0BFB80 AFA6016C */ sw $a2, 0x16c($sp) +/* 0F46F4 7F0BFB84 0FC31162 */ jal get_points_for_mp_player +/* 0F46F8 7F0BFB88 AFA70178 */ sw $a3, 0x178($sp) +/* 0F46FC 7F0BFB8C 3C198005 */ lui $t9, %hi(mp_point) # $t9, 0x8005 +/* 0F4700 7F0BFB90 8F3983D0 */ lw $t9, %lo(mp_point)($t9) +/* 0F4704 7F0BFB94 44800000 */ mtc1 $zero, $f0 +/* 0F4708 7F0BFB98 8FA3001C */ lw $v1, 0x1c($sp) +/* 0F470C 7F0BFB9C 0059082A */ slt $at, $v0, $t9 +/* 0F4710 7F0BFBA0 8FA40174 */ lw $a0, 0x174($sp) +/* 0F4714 7F0BFBA4 8FA50170 */ lw $a1, 0x170($sp) +/* 0F4718 7F0BFBA8 8FA6016C */ lw $a2, 0x16c($sp) +/* 0F471C 7F0BFBAC 14200002 */ bnez $at, .Ljp7F0BFBB8 +/* 0F4720 7F0BFBB0 8FA70178 */ lw $a3, 0x178($sp) +/* 0F4724 7F0BFBB4 24C60001 */ addiu $a2, $a2, 1 +.Ljp7F0BFBB8: +/* 0F4728 7F0BFBB8 24840001 */ addiu $a0, $a0, 1 +/* 0F472C 7F0BFBBC 0087082A */ slt $at, $a0, $a3 +/* 0F4730 7F0BFBC0 1420FFDC */ bnez $at, .Ljp7F0BFB34 +/* 0F4734 7F0BFBC4 24630004 */ addiu $v1, $v1, 4 +.Ljp7F0BFBC8: +/* 0F4738 7F0BFBC8 18C00009 */ blez $a2, .Ljp7F0BFBF0 +/* 0F473C 7F0BFBCC 00000000 */ nop +/* 0F4740 7F0BFBD0 14A00005 */ bnez $a1, .Ljp7F0BFBE8 +/* 0F4744 7F0BFBD4 00000000 */ nop +/* 0F4748 7F0BFBD8 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F474C 7F0BFBDC 00002025 */ move $a0, $zero +/* 0F4750 7F0BFBE0 10000003 */ b .Ljp7F0BFBF0 +/* 0F4754 7F0BFBE4 00000000 */ nop +.Ljp7F0BFBE8: +/* 0F4758 7F0BFBE8 0FC30C74 */ jal set_stopplay_flag +/* 0F475C 7F0BFBEC 00000000 */ nop +.Ljp7F0BFBF0: +/* 0F4760 7F0BFBF0 0FC05202 */ jal get_scenario +/* 0F4764 7F0BFBF4 00000000 */ nop +/* 0F4768 7F0BFBF8 24010001 */ li $at, 1 +/* 0F476C 7F0BFBFC 14410086 */ bne $v0, $at, .Ljp7F0BFE18 +/* 0F4770 7F0BFC00 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 +/* 0F4774 7F0BFC04 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) +/* 0F4778 7F0BFC08 11E00083 */ beqz $t7, .Ljp7F0BFE18 +/* 0F477C 7F0BFC0C 00000000 */ nop +/* 0F4780 7F0BFC10 0FC26C01 */ jal getPlayerCount +/* 0F4784 7F0BFC14 00000000 */ nop +/* 0F4788 7F0BFC18 44800000 */ mtc1 $zero, $f0 +/* 0F478C 7F0BFC1C 00405025 */ move $t2, $v0 +/* 0F4790 7F0BFC20 00006825 */ move $t5, $zero +/* 0F4794 7F0BFC24 0000F825 */ move $ra, $zero +/* 0F4798 7F0BFC28 1840006E */ blez $v0, .Ljp7F0BFDE4 +/* 0F479C 7F0BFC2C 00006025 */ move $t4, $zero +/* 0F47A0 7F0BFC30 00002825 */ move $a1, $zero +.Ljp7F0BFC34: +/* 0F47A4 7F0BFC34 00003025 */ move $a2, $zero +/* 0F47A8 7F0BFC38 18400048 */ blez $v0, .Ljp7F0BFD5C +/* 0F47AC 7F0BFC3C 00003825 */ move $a3, $zero +/* 0F47B0 7F0BFC40 30490003 */ andi $t1, $v0, 3 +/* 0F47B4 7F0BFC44 11200019 */ beqz $t1, .Ljp7F0BFCAC +/* 0F47B8 7F0BFC48 000C5880 */ sll $t3, $t4, 2 +/* 0F47BC 7F0BFC4C 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 +/* 0F47C0 7F0BFC50 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 +/* 0F47C4 7F0BFC54 00007080 */ sll $t6, $zero, 2 +/* 0F47C8 7F0BFC58 0000C8C0 */ sll $t9, $zero, 3 +/* 0F47CC 7F0BFC5C 0320C823 */ subu $t9, $t9, $zero +/* 0F47D0 7F0BFC60 01D81821 */ addu $v1, $t6, $t8 +/* 0F47D4 7F0BFC64 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F47D8 7F0BFC68 0019C900 */ sll $t9, $t9, 4 +/* 0F47DC 7F0BFC6C 032B7821 */ addu $t7, $t9, $t3 +/* 0F47E0 7F0BFC70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F47E4 7F0BFC74 01EE2021 */ addu $a0, $t7, $t6 +/* 0F47E8 7F0BFC78 01204025 */ move $t0, $t1 +.Ljp7F0BFC7C: +/* 0F47EC 7F0BFC7C 8C780000 */ lw $t8, ($v1) +/* 0F47F0 7F0BFC80 24E70001 */ addiu $a3, $a3, 1 +/* 0F47F4 7F0BFC84 24630004 */ addiu $v1, $v1, 4 +/* 0F47F8 7F0BFC88 8F1900D8 */ lw $t9, 0xd8($t8) +/* 0F47FC 7F0BFC8C 57200003 */ bnezl $t9, .Ljp7F0BFC9C +/* 0F4800 7F0BFC90 8C8F0024 */ lw $t7, 0x24($a0) +/* 0F4804 7F0BFC94 24C60001 */ addiu $a2, $a2, 1 +/* 0F4808 7F0BFC98 8C8F0024 */ lw $t7, 0x24($a0) +.Ljp7F0BFC9C: +/* 0F480C 7F0BFC9C 24840070 */ addiu $a0, $a0, 0x70 +/* 0F4810 7F0BFCA0 1507FFF6 */ bne $t0, $a3, .Ljp7F0BFC7C +/* 0F4814 7F0BFCA4 00AF2821 */ addu $a1, $a1, $t7 +/* 0F4818 7F0BFCA8 10E2002C */ beq $a3, $v0, .Ljp7F0BFD5C +.Ljp7F0BFCAC: +/* 0F481C 7F0BFCAC 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 +/* 0F4820 7F0BFCB0 0007C8C0 */ sll $t9, $a3, 3 +/* 0F4824 7F0BFCB4 0327C823 */ subu $t9, $t9, $a3 +/* 0F4828 7F0BFCB8 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 +/* 0F482C 7F0BFCBC 00077080 */ sll $t6, $a3, 2 +/* 0F4830 7F0BFCC0 01D81821 */ addu $v1, $t6, $t8 +/* 0F4834 7F0BFCC4 0019C900 */ sll $t9, $t9, 4 +/* 0F4838 7F0BFCC8 032B7821 */ addu $t7, $t9, $t3 +/* 0F483C 7F0BFCCC 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F4840 7F0BFCD0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F4844 7F0BFCD4 000AC880 */ sll $t9, $t2, 2 +/* 0F4848 7F0BFCD8 03384021 */ addu $t0, $t9, $t8 +/* 0F484C 7F0BFCDC 01EE2021 */ addu $a0, $t7, $t6 +.Ljp7F0BFCE0: +/* 0F4850 7F0BFCE0 8C6F0000 */ lw $t7, ($v1) +/* 0F4854 7F0BFCE4 8DEE00D8 */ lw $t6, 0xd8($t7) +/* 0F4858 7F0BFCE8 55C00003 */ bnezl $t6, .Ljp7F0BFCF8 +/* 0F485C 7F0BFCEC 8C780004 */ lw $t8, 4($v1) +/* 0F4860 7F0BFCF0 24C60001 */ addiu $a2, $a2, 1 +/* 0F4864 7F0BFCF4 8C780004 */ lw $t8, 4($v1) +.Ljp7F0BFCF8: +/* 0F4868 7F0BFCF8 8C990024 */ lw $t9, 0x24($a0) +/* 0F486C 7F0BFCFC 8F0F00D8 */ lw $t7, 0xd8($t8) +/* 0F4870 7F0BFD00 00B92821 */ addu $a1, $a1, $t9 +/* 0F4874 7F0BFD04 55E00003 */ bnezl $t7, .Ljp7F0BFD14 +/* 0F4878 7F0BFD08 8C790008 */ lw $t9, 8($v1) +/* 0F487C 7F0BFD0C 24C60001 */ addiu $a2, $a2, 1 +/* 0F4880 7F0BFD10 8C790008 */ lw $t9, 8($v1) +.Ljp7F0BFD14: +/* 0F4884 7F0BFD14 8C8E0094 */ lw $t6, 0x94($a0) +/* 0F4888 7F0BFD18 8F3800D8 */ lw $t8, 0xd8($t9) +/* 0F488C 7F0BFD1C 00AE2821 */ addu $a1, $a1, $t6 +/* 0F4890 7F0BFD20 57000003 */ bnezl $t8, .Ljp7F0BFD30 +/* 0F4894 7F0BFD24 8C6E000C */ lw $t6, 0xc($v1) +/* 0F4898 7F0BFD28 24C60001 */ addiu $a2, $a2, 1 +/* 0F489C 7F0BFD2C 8C6E000C */ lw $t6, 0xc($v1) +.Ljp7F0BFD30: +/* 0F48A0 7F0BFD30 8C8F0104 */ lw $t7, 0x104($a0) +/* 0F48A4 7F0BFD34 24630010 */ addiu $v1, $v1, 0x10 +/* 0F48A8 7F0BFD38 8DD900D8 */ lw $t9, 0xd8($t6) +/* 0F48AC 7F0BFD3C 00AF2821 */ addu $a1, $a1, $t7 +/* 0F48B0 7F0BFD40 57200003 */ bnezl $t9, .Ljp7F0BFD50 +/* 0F48B4 7F0BFD44 8C980174 */ lw $t8, 0x174($a0) +/* 0F48B8 7F0BFD48 24C60001 */ addiu $a2, $a2, 1 +/* 0F48BC 7F0BFD4C 8C980174 */ lw $t8, 0x174($a0) +.Ljp7F0BFD50: +/* 0F48C0 7F0BFD50 248401C0 */ addiu $a0, $a0, 0x1c0 +/* 0F48C4 7F0BFD54 1468FFE2 */ bne $v1, $t0, .Ljp7F0BFCE0 +/* 0F48C8 7F0BFD58 00B82821 */ addu $a1, $a1, $t8 +.Ljp7F0BFD5C: +/* 0F48CC 7F0BFD5C 28A10002 */ slti $at, $a1, 2 +/* 0F48D0 7F0BFD60 1420001C */ bnez $at, .Ljp7F0BFDD4 +/* 0F48D4 7F0BFD64 000C78C0 */ sll $t7, $t4, 3 +/* 0F48D8 7F0BFD68 01EC7823 */ subu $t7, $t7, $t4 +/* 0F48DC 7F0BFD6C 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 +/* 0F48E0 7F0BFD70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 +/* 0F48E4 7F0BFD74 000F7900 */ sll $t7, $t7, 4 +/* 0F48E8 7F0BFD78 01EE1821 */ addu $v1, $t7, $t6 +/* 0F48EC 7F0BFD7C 906F0068 */ lbu $t7, 0x68($v1) +/* 0F48F0 7F0BFD80 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 +/* 0F48F4 7F0BFD84 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 +/* 0F48F8 7F0BFD88 000CC880 */ sll $t9, $t4, 2 +/* 0F48FC 7F0BFD8C 15E00003 */ bnez $t7, .Ljp7F0BFD9C +/* 0F4900 7F0BFD90 03382021 */ addu $a0, $t9, $t8 +/* 0F4904 7F0BFD94 24CE0001 */ addiu $t6, $a2, 1 +/* 0F4908 7F0BFD98 A06E0068 */ sb $t6, 0x68($v1) +.Ljp7F0BFD9C: +/* 0F490C 7F0BFD9C 8C830000 */ lw $v1, ($a0) +/* 0F4910 7F0BFDA0 25AD0001 */ addiu $t5, $t5, 1 +/* 0F4914 7F0BFDA4 8C790424 */ lw $t9, 0x424($v1) +/* 0F4918 7F0BFDA8 5320000B */ beql $t9, $zero, .Ljp7F0BFDD8 +/* 0F491C 7F0BFDAC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4920 7F0BFDB0 8C780428 */ lw $t8, 0x428($v1) +/* 0F4924 7F0BFDB4 53000008 */ beql $t8, $zero, .Ljp7F0BFDD8 +/* 0F4928 7F0BFDB8 258C0001 */ addiu $t4, $t4, 1 +/* 0F492C 7F0BFDBC C47003E4 */ lwc1 $f16, 0x3e4($v1) +/* 0F4930 7F0BFDC0 4600803C */ c.lt.s $f16, $f0 +/* 0F4934 7F0BFDC4 00000000 */ nop +/* 0F4938 7F0BFDC8 45020003 */ bc1fl .Ljp7F0BFDD8 +/* 0F493C 7F0BFDCC 258C0001 */ addiu $t4, $t4, 1 +/* 0F4940 7F0BFDD0 27FF0001 */ addiu $ra, $ra, 1 +.Ljp7F0BFDD4: +/* 0F4944 7F0BFDD4 258C0001 */ addiu $t4, $t4, 1 +.Ljp7F0BFDD8: +/* 0F4948 7F0BFDD8 018A082A */ slt $at, $t4, $t2 +/* 0F494C 7F0BFDDC 5420FF95 */ bnezl $at, .Ljp7F0BFC34 +/* 0F4950 7F0BFDE0 00002825 */ move $a1, $zero +.Ljp7F0BFDE4: +/* 0F4954 7F0BFDE4 2443FFFF */ addiu $v1, $v0, -1 +/* 0F4958 7F0BFDE8 03E3082A */ slt $at, $ra, $v1 +/* 0F495C 7F0BFDEC 54200006 */ bnezl $at, .Ljp7F0BFE08 +/* 0F4960 7F0BFDF0 01A3082A */ slt $at, $t5, $v1 +/* 0F4964 7F0BFDF4 0FC30C78 */ jal sub_GAME_7F0C2530 +/* 0F4968 7F0BFDF8 00002025 */ move $a0, $zero +/* 0F496C 7F0BFDFC 10000006 */ b .Ljp7F0BFE18 +/* 0F4970 7F0BFE00 00000000 */ nop +/* 0F4974 7F0BFE04 01A3082A */ slt $at, $t5, $v1 +.Ljp7F0BFE08: +/* 0F4978 7F0BFE08 14200003 */ bnez $at, .Ljp7F0BFE18 +/* 0F497C 7F0BFE0C 00000000 */ nop +/* 0F4980 7F0BFE10 0FC30C74 */ jal set_stopplay_flag +/* 0F4984 7F0BFE14 00000000 */ nop +.Ljp7F0BFE18: +/* 0F4988 7F0BFE18 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F498C 7F0BFE1C 3C0F8005 */ lui $t7, %hi(D_80048394) # $t7, 0x8005 +/* 0F4990 7F0BFE20 8DEF83C8 */ lw $t7, %lo(D_80048394)($t7) +/* 0F4994 7F0BFE24 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4998 7F0BFE28 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F499C 7F0BFE2C 44810000 */ mtc1 $at, $f0 +/* 0F49A0 7F0BFE30 01E27021 */ addu $t6, $t7, $v0 +/* 0F49A4 7F0BFE34 448E9000 */ mtc1 $t6, $f18 +/* 0F49A8 7F0BFE38 3C018005 */ lui $at, %hi(D_80048394) # $at, 0x8005 +/* 0F49AC 7F0BFE3C AC2E83C8 */ sw $t6, %lo(D_80048394)($at) +/* 0F49B0 7F0BFE40 46809120 */ cvt.s.w $f4, $f18 +/* 0F49B4 7F0BFE44 3C038005 */ lui $v1, %hi(D_800483A8) # $v1, 0x8005 +/* 0F49B8 7F0BFE48 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 +/* 0F49BC 7F0BFE4C 246383DC */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c24 +/* 0F49C0 7F0BFE50 00002025 */ move $a0, $zero +/* 0F49C4 7F0BFE54 3405FFFF */ li $a1, 65535 +/* 0F49C8 7F0BFE58 46002183 */ div.s $f6, $f4, $f0 +/* 0F49CC 7F0BFE5C E42683D8 */ swc1 $f6, %lo(cur_mp_sec)($at) +/* 0F49D0 7F0BFE60 8C790000 */ lw $t9, ($v1) +/* 0F49D4 7F0BFE64 3C018005 */ lui $at, %hi(cur_mp_min) # $at, 0x8005 +/* 0F49D8 7F0BFE68 03227821 */ addu $t7, $t9, $v0 +/* 0F49DC 7F0BFE6C 448F4000 */ mtc1 $t7, $f8 +/* 0F49E0 7F0BFE70 AC6F0000 */ sw $t7, ($v1) +/* 0F49E4 7F0BFE74 468042A0 */ cvt.s.w $f10, $f8 +/* 0F49E8 7F0BFE78 46005403 */ div.s $f16, $f10, $f0 +/* 0F49EC 7F0BFE7C 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F49F0 7F0BFE80 E43083E0 */ swc1 $f16, %lo(cur_mp_min)($at) +/* 0F49F4 7F0BFE84 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0F49F8 7F0BFE88 44810000 */ mtc1 $at, $f0 +/* 0F49FC 7F0BFE8C 10400009 */ beqz $v0, .Ljp7F0BFEB4 +/* 0F4A00 7F0BFE90 3C038005 */ lui $v1, %hi(D_80048390) +/* 0F4A04 7F0BFE94 3C038005 */ lui $v1, %hi(D_80048390) # $v1, 0x8005 +/* 0F4A08 7F0BFE98 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A0C 7F0BFE9C 246383C4 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c3c +/* 0F4A10 7F0BFEA0 AC2083BC */ sw $zero, %lo(D_80048388)($at) +/* 0F4A14 7F0BFEA4 AC600000 */ sw $zero, ($v1) +/* 0F4A18 7F0BFEA8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A1C 7F0BFEAC 1000000C */ b .Ljp7F0BFEE0 +/* 0F4A20 7F0BFEB0 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +.Ljp7F0BFEB4: +/* 0F4A24 7F0BFEB4 246383C4 */ addiu $v1, $v1, %lo(D_80048390) +/* 0F4A28 7F0BFEB8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 +/* 0F4A2C 7F0BFEBC 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) +/* 0F4A30 7F0BFEC0 8C6E0000 */ lw $t6, ($v1) +/* 0F4A34 7F0BFEC4 240F0001 */ li $t7, 1 +/* 0F4A38 7F0BFEC8 01C2C821 */ addu $t9, $t6, $v0 +/* 0F4A3C 7F0BFECC 2B210708 */ slti $at, $t9, 0x708 +/* 0F4A40 7F0BFED0 14200003 */ bnez $at, .Ljp7F0BFEE0 +/* 0F4A44 7F0BFED4 AC790000 */ sw $t9, ($v1) +/* 0F4A48 7F0BFED8 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 +/* 0F4A4C 7F0BFEDC AC2F83BC */ sw $t7, %lo(D_80048388)($at) +.Ljp7F0BFEE0: +/* 0F4A50 7F0BFEE0 3C0E8005 */ lui $t6, %hi(D_80048388) # $t6, 0x8005 +/* 0F4A54 7F0BFEE4 8DCE83BC */ lw $t6, %lo(D_80048388)($t6) +/* 0F4A58 7F0BFEE8 3C038005 */ lui $v1, %hi(D_8004838C) # $v1, 0x8005 +/* 0F4A5C 7F0BFEEC 246383C0 */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c40 +/* 0F4A60 7F0BFEF0 11C00005 */ beqz $t6, .Ljp7F0BFF08 +/* 0F4A64 7F0BFEF4 00000000 */ nop +/* 0F4A68 7F0BFEF8 8C790000 */ lw $t9, ($v1) +/* 0F4A6C 7F0BFEFC 0322C021 */ addu $t8, $t9, $v0 +/* 0F4A70 7F0BFF00 10000015 */ b .Ljp7F0BFF58 +/* 0F4A74 7F0BFF04 AC780000 */ sw $t8, ($v1) +.Ljp7F0BFF08: +/* 0F4A78 7F0BFF08 3C038005 */ lui $v1, %hi(D_800483B0) # $v1, 0x8005 +/* 0F4A7C 7F0BFF0C 246383E4 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c1c +/* 0F4A80 7F0BFF10 8C6F0000 */ lw $t7, ($v1) +/* 0F4A84 7F0BFF14 3C048005 */ lui $a0, %hi(D_800483B8) # $a0, 0x8005 +/* 0F4A88 7F0BFF18 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 +/* 0F4A8C 7F0BFF1C 01E2C821 */ addu $t9, $t7, $v0 +/* 0F4A90 7F0BFF20 44999000 */ mtc1 $t9, $f18 +/* 0F4A94 7F0BFF24 AC790000 */ sw $t9, ($v1) +/* 0F4A98 7F0BFF28 248483EC */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c14 +/* 0F4A9C 7F0BFF2C 46809120 */ cvt.s.w $f4, $f18 +/* 0F4AA0 7F0BFF30 46002183 */ div.s $f6, $f4, $f0 +/* 0F4AA4 7F0BFF34 E42683E8 */ swc1 $f6, %lo(stage_time_sec)($at) +/* 0F4AA8 7F0BFF38 8C980000 */ lw $t8, ($a0) +/* 0F4AAC 7F0BFF3C 3C018005 */ lui $at, %hi(poweron_time_sec) # $at, 0x8005 +/* 0F4AB0 7F0BFF40 03027021 */ addu $t6, $t8, $v0 +/* 0F4AB4 7F0BFF44 448E4000 */ mtc1 $t6, $f8 +/* 0F4AB8 7F0BFF48 AC8E0000 */ sw $t6, ($a0) +/* 0F4ABC 7F0BFF4C 468042A0 */ cvt.s.w $f10, $f8 +/* 0F4AC0 7F0BFF50 46005403 */ div.s $f16, $f10, $f0 +/* 0F4AC4 7F0BFF54 E43083F0 */ swc1 $f16, %lo(poweron_time_sec)($at) +.Ljp7F0BFF58: +/* 0F4AC8 7F0BFF58 0C00114D */ jal viSetUseZBuf +/* 0F4ACC 7F0BFF5C 24040001 */ li $a0, 1 +/* 0F4AD0 7F0BFF60 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 +/* 0F4AD4 7F0BFF64 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) +/* 0F4AD8 7F0BFF68 2401005A */ li $at, 90 +/* 0F4ADC 7F0BFF6C 17210009 */ bne $t9, $at, .Ljp7F0BFF94 +/* 0F4AE0 7F0BFF70 00000000 */ nop +/* 0F4AE4 7F0BFF74 0FC24907 */ jal cheat_buttons_mp_related +/* 0F4AE8 7F0BFF78 00000000 */ nop +/* 0F4AEC 7F0BFF7C 0FC069F4 */ jal menu_init +/* 0F4AF0 7F0BFF80 00000000 */ nop +/* 0F4AF4 7F0BFF84 0FC3097C */ jal something_with_LnameJ +/* 0F4AF8 7F0BFF88 00000000 */ nop +/* 0F4AFC 7F0BFF8C 100000A9 */ b .Ljp7F0C0234 +/* 0F4B00 7F0BFF90 00000000 */ nop +.Ljp7F0BFF94: +/* 0F4B04 7F0BFF94 0FC271D7 */ jal sub_GAME_7F09BBBC +/* 0F4B08 7F0BFF98 00000000 */ nop +/* 0F4B0C 7F0BFF9C 0FC2FD2D */ jal sub_GAME_7F0BE8D0 +/* 0F4B10 7F0BFFA0 00000000 */ nop +/* 0F4B14 7F0BFFA4 0FC2F4E1 */ jal sub_GAME_7F0BC7D4 +/* 0F4B18 7F0BFFA8 00000000 */ nop +/* 0F4B1C 7F0BFFAC 0FC24E7C */ jal sub_GAME_7F092E50 +/* 0F4B20 7F0BFFB0 00000000 */ nop +/* 0F4B24 7F0BFFB4 0FC253F6 */ jal sub_GAME_7F094438 +/* 0F4B28 7F0BFFB8 00000000 */ nop +/* 0F4B2C 7F0BFFBC 0FC294E7 */ jal sub_GAME_7F0A47FC +/* 0F4B30 7F0BFFC0 00000000 */ nop +/* 0F4B34 7F0BFFC4 0FC1A516 */ jal sub_GAME_7F068E6C +/* 0F4B38 7F0BFFC8 00000000 */ nop +/* 0F4B3C 7F0BFFCC 0FC28D1D */ jal sub_GAME_7F0A28D4 +/* 0F4B40 7F0BFFD0 00000000 */ nop +/* 0F4B44 7F0BFFD4 0FC28238 */ jal sub_GAME_7F09FD3C +/* 0F4B48 7F0BFFD8 00000000 */ nop +/* 0F4B4C 7F0BFFDC 0FC0F252 */ jal handle_mp_respawn_and_some_things +/* 0F4B50 7F0BFFE0 00000000 */ nop +/* 0F4B54 7F0BFFE4 0FC3081E */ jal reset_all_music_slots +/* 0F4B58 7F0BFFE8 00000000 */ nop +/* 0F4B5C 7F0BFFEC 0FC3097C */ jal something_with_LnameJ +/* 0F4B60 7F0BFFF0 00000000 */ nop +/* 0F4B64 7F0BFFF4 0FC246A6 */ jal get_debug_joy2detailedit_flag +/* 0F4B68 7F0BFFF8 00000000 */ nop +/* 0F4B6C 7F0BFFFC 1040004D */ beqz $v0, .Ljp7F0C0134 +/* 0F4B70 7F0C0000 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B74 7F0C0004 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B78 7F0C0008 8CD80000 */ lw $t8, ($a2) +/* 0F4B7C 7F0C000C 24043000 */ li $a0, 12288 +/* 0F4B80 7F0C0010 17000048 */ bnez $t8, .Ljp7F0C0134 +/* 0F4B84 7F0C0014 00000000 */ nop +/* 0F4B88 7F0C0018 0C0025CC */ jal mempAllocBytesInBank +/* 0F4B8C 7F0C001C 24050004 */ li $a1, 4 +/* 0F4B90 7F0C0020 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 +/* 0F4B94 7F0C0024 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 +/* 0F4B98 7F0C0028 10400042 */ beqz $v0, .Ljp7F0C0134 +/* 0F4B9C 7F0C002C ACC20000 */ sw $v0, ($a2) +/* 0F4BA0 7F0C0030 00001825 */ move $v1, $zero +/* 0F4BA4 7F0C0034 24052EE0 */ li $a1, 12000 +/* 0F4BA8 7F0C0038 240400FF */ li $a0, 255 +.Ljp7F0C003C: +/* 0F4BAC 7F0C003C 8CCE0000 */ lw $t6, ($a2) +/* 0F4BB0 7F0C0040 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4BB4 7F0C0044 A3240000 */ sb $a0, ($t9) +/* 0F4BB8 7F0C0048 8CD80000 */ lw $t8, ($a2) +/* 0F4BBC 7F0C004C 03031021 */ addu $v0, $t8, $v1 +/* 0F4BC0 7F0C0050 904F0001 */ lbu $t7, 1($v0) +/* 0F4BC4 7F0C0054 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4BC8 7F0C0058 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4BCC 7F0C005C A0590001 */ sb $t9, 1($v0) +/* 0F4BD0 7F0C0060 8CD80000 */ lw $t8, ($a2) +/* 0F4BD4 7F0C0064 03031021 */ addu $v0, $t8, $v1 +/* 0F4BD8 7F0C0068 904F0001 */ lbu $t7, 1($v0) +/* 0F4BDC 7F0C006C 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4BE0 7F0C0070 35D90004 */ ori $t9, $t6, 4 +/* 0F4BE4 7F0C0074 A0590001 */ sb $t9, 1($v0) +/* 0F4BE8 7F0C0078 8CD80000 */ lw $t8, ($a2) +/* 0F4BEC 7F0C007C 03037821 */ addu $t7, $t8, $v1 +/* 0F4BF0 7F0C0080 A1E40004 */ sb $a0, 4($t7) +/* 0F4BF4 7F0C0084 8CCE0000 */ lw $t6, ($a2) +/* 0F4BF8 7F0C0088 01C31021 */ addu $v0, $t6, $v1 +/* 0F4BFC 7F0C008C 90590005 */ lbu $t9, 5($v0) +/* 0F4C00 7F0C0090 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C04 7F0C0094 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C08 7F0C0098 A04F0005 */ sb $t7, 5($v0) +/* 0F4C0C 7F0C009C 8CCE0000 */ lw $t6, ($a2) +/* 0F4C10 7F0C00A0 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C14 7F0C00A4 90590005 */ lbu $t9, 5($v0) +/* 0F4C18 7F0C00A8 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C1C 7F0C00AC 370F0004 */ ori $t7, $t8, 4 +/* 0F4C20 7F0C00B0 A04F0005 */ sb $t7, 5($v0) +/* 0F4C24 7F0C00B4 8CCE0000 */ lw $t6, ($a2) +/* 0F4C28 7F0C00B8 01C3C821 */ addu $t9, $t6, $v1 +/* 0F4C2C 7F0C00BC A3240008 */ sb $a0, 8($t9) +/* 0F4C30 7F0C00C0 8CD80000 */ lw $t8, ($a2) +/* 0F4C34 7F0C00C4 03031021 */ addu $v0, $t8, $v1 +/* 0F4C38 7F0C00C8 904F0009 */ lbu $t7, 9($v0) +/* 0F4C3C 7F0C00CC 31EEFF1F */ andi $t6, $t7, 0xff1f +/* 0F4C40 7F0C00D0 35D90020 */ ori $t9, $t6, 0x20 +/* 0F4C44 7F0C00D4 A0590009 */ sb $t9, 9($v0) +/* 0F4C48 7F0C00D8 8CD80000 */ lw $t8, ($a2) +/* 0F4C4C 7F0C00DC 03031021 */ addu $v0, $t8, $v1 +/* 0F4C50 7F0C00E0 904F0009 */ lbu $t7, 9($v0) +/* 0F4C54 7F0C00E4 31EEFFE3 */ andi $t6, $t7, 0xffe3 +/* 0F4C58 7F0C00E8 35D90004 */ ori $t9, $t6, 4 +/* 0F4C5C 7F0C00EC A0590009 */ sb $t9, 9($v0) +/* 0F4C60 7F0C00F0 8CD80000 */ lw $t8, ($a2) +/* 0F4C64 7F0C00F4 03037821 */ addu $t7, $t8, $v1 +/* 0F4C68 7F0C00F8 A1E4000C */ sb $a0, 0xc($t7) +/* 0F4C6C 7F0C00FC 8CCE0000 */ lw $t6, ($a2) +/* 0F4C70 7F0C0100 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C74 7F0C0104 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C78 7F0C0108 3338FF1F */ andi $t8, $t9, 0xff1f +/* 0F4C7C 7F0C010C 370F0020 */ ori $t7, $t8, 0x20 +/* 0F4C80 7F0C0110 A04F000D */ sb $t7, 0xd($v0) +/* 0F4C84 7F0C0114 8CCE0000 */ lw $t6, ($a2) +/* 0F4C88 7F0C0118 01C31021 */ addu $v0, $t6, $v1 +/* 0F4C8C 7F0C011C 9059000D */ lbu $t9, 0xd($v0) +/* 0F4C90 7F0C0120 24630010 */ addiu $v1, $v1, 0x10 +/* 0F4C94 7F0C0124 3338FFE3 */ andi $t8, $t9, 0xffe3 +/* 0F4C98 7F0C0128 370F0004 */ ori $t7, $t8, 4 +/* 0F4C9C 7F0C012C 1465FFC3 */ bne $v1, $a1, .Ljp7F0C003C +/* 0F4CA0 7F0C0130 A04F000D */ sb $t7, 0xd($v0) +.Ljp7F0C0134: +/* 0F4CA4 7F0C0134 0FC246C7 */ jal get_debug_portal_flag +/* 0F4CA8 7F0C0138 00000000 */ nop +/* 0F4CAC 7F0C013C 10400003 */ beqz $v0, .Ljp7F0C014C +/* 0F4CB0 7F0C0140 00000000 */ nop +/* 0F4CB4 7F0C0144 0FC2FAB4 */ jal sub_GAME_7F0BDF10 +/* 0F4CB8 7F0C0148 00002025 */ move $a0, $zero +.Ljp7F0C014C: +/* 0F4CBC 7F0C014C 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4CC0 7F0C0150 00000000 */ nop +/* 0F4CC4 7F0C0154 24010004 */ li $at, 4 +/* 0F4CC8 7F0C0158 10410006 */ beq $v0, $at, .Ljp7F0C0174 +/* 0F4CCC 7F0C015C 00002025 */ move $a0, $zero +/* 0F4CD0 7F0C0160 24010008 */ li $at, 8 +/* 0F4CD4 7F0C0164 1041001A */ beq $v0, $at, .Ljp7F0C01D0 +/* 0F4CD8 7F0C0168 00002025 */ move $a0, $zero +/* 0F4CDC 7F0C016C 10000031 */ b .Ljp7F0C0234 +/* 0F4CE0 7F0C0170 00000000 */ nop +.Ljp7F0C0174: +/* 0F4CE4 7F0C0174 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4CE8 7F0C0178 24050002 */ li $a1, 2 +/* 0F4CEC 7F0C017C 50400008 */ beql $v0, $zero, .Ljp7F0C01A0 +/* 0F4CF0 7F0C0180 00002025 */ move $a0, $zero +/* 0F4CF4 7F0C0184 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4CF8 7F0C0188 2404FFFF */ li $a0, -1 +/* 0F4CFC 7F0C018C 00002025 */ move $a0, $zero +/* 0F4D00 7F0C0190 00002825 */ move $a1, $zero +/* 0F4D04 7F0C0194 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D08 7F0C0198 00003025 */ move $a2, $zero +/* 0F4D0C 7F0C019C 00002025 */ move $a0, $zero +.Ljp7F0C01A0: +/* 0F4D10 7F0C01A0 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4D14 7F0C01A4 24050001 */ li $a1, 1 +/* 0F4D18 7F0C01A8 10400022 */ beqz $v0, .Ljp7F0C0234 +/* 0F4D1C 7F0C01AC 00000000 */ nop +/* 0F4D20 7F0C01B0 0FC2C078 */ jal sub_GAME_7F0AF630 +/* 0F4D24 7F0C01B4 24040001 */ li $a0, 1 +/* 0F4D28 7F0C01B8 00002025 */ move $a0, $zero +/* 0F4D2C 7F0C01BC 00002825 */ move $a1, $zero +/* 0F4D30 7F0C01C0 0FC2CE3A */ jal sub_GAME_7F0B2D38 +/* 0F4D34 7F0C01C4 00003025 */ move $a2, $zero +/* 0F4D38 7F0C01C8 1000001A */ b .Ljp7F0C0234 +/* 0F4D3C 7F0C01CC 00000000 */ nop +.Ljp7F0C01D0: +/* 0F4D40 7F0C01D0 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4D44 7F0C01D4 24050002 */ li $a1, 2 +/* 0F4D48 7F0C01D8 50400004 */ beql $v0, $zero, .Ljp7F0C01EC +/* 0F4D4C 7F0C01DC 00002025 */ move $a0, $zero +/* 0F4D50 7F0C01E0 0FC08C46 */ jal sub_GAME_7F022E30 +/* 0F4D54 7F0C01E4 00000000 */ nop +/* 0F4D58 7F0C01E8 00002025 */ move $a0, $zero +.Ljp7F0C01EC: +/* 0F4D5C 7F0C01EC 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4D60 7F0C01F0 24050001 */ li $a1, 1 +/* 0F4D64 7F0C01F4 50400004 */ beql $v0, $zero, .Ljp7F0C0208 +/* 0F4D68 7F0C01F8 00002025 */ move $a0, $zero +/* 0F4D6C 7F0C01FC 0FC08C5E */ jal sub_GAME_7F022E90 +/* 0F4D70 7F0C0200 00000000 */ nop +/* 0F4D74 7F0C0204 00002025 */ move $a0, $zero +.Ljp7F0C0208: +/* 0F4D78 7F0C0208 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4D7C 7F0C020C 24050020 */ li $a1, 32 +/* 0F4D80 7F0C0210 50400004 */ beql $v0, $zero, .Ljp7F0C0224 +/* 0F4D84 7F0C0214 00002025 */ move $a0, $zero +/* 0F4D88 7F0C0218 0FC08C6C */ jal sub_GAME_7F022EC8 +/* 0F4D8C 7F0C021C 00000000 */ nop +/* 0F4D90 7F0C0220 00002025 */ move $a0, $zero +.Ljp7F0C0224: +/* 0F4D94 7F0C0224 0C0030DC */ jal joyGetButtons +/* 0F4D98 7F0C0228 24050010 */ li $a1, 16 +/* 0F4D9C 7F0C022C 0FC08C72 */ jal sub_GAME_7F022EE0 +/* 0F4DA0 7F0C0230 0002202B */ sltu $a0, $zero, $v0 +.Ljp7F0C0234: +/* 0F4DA4 7F0C0234 0FC2467D */ jal get_debug_limit_controller_input +/* 0F4DA8 7F0C0238 00000000 */ nop +/* 0F4DAC 7F0C023C 2401000C */ li $at, 12 +/* 0F4DB0 7F0C0240 1041002E */ beq $v0, $at, .Ljp7F0C02FC +/* 0F4DB4 7F0C0244 00002025 */ move $a0, $zero +/* 0F4DB8 7F0C0248 2401000D */ li $at, 13 +/* 0F4DBC 7F0C024C 10410048 */ beq $v0, $at, .Ljp7F0C0370 +/* 0F4DC0 7F0C0250 00002025 */ move $a0, $zero +/* 0F4DC4 7F0C0254 24010038 */ li $at, 56 +/* 0F4DC8 7F0C0258 54410074 */ bnel $v0, $at, .Ljp7F0C042C +/* 0F4DCC 7F0C025C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4DD0 7F0C0260 0C0010EA */ jal viGet8002329C +/* 0F4DD4 7F0C0264 00000000 */ nop +/* 0F4DD8 7F0C0268 0C0010E4 */ jal viGet800232A0 +/* 0F4DDC 7F0C026C AFA20030 */ sw $v0, 0x30($sp) +/* 0F4DE0 7F0C0270 AFA2002C */ sw $v0, 0x2c($sp) +/* 0F4DE4 7F0C0274 00002025 */ move $a0, $zero +/* 0F4DE8 7F0C0278 0C0030DC */ jal joyGetButtons +/* 0F4DEC 7F0C027C 24050004 */ li $a1, 4 +/* 0F4DF0 7F0C0280 10400004 */ beqz $v0, .Ljp7F0C0294 +/* 0F4DF4 7F0C0284 00002025 */ move $a0, $zero +/* 0F4DF8 7F0C0288 8FAE002C */ lw $t6, 0x2c($sp) +/* 0F4DFC 7F0C028C 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E00 7F0C0290 AFB9002C */ sw $t9, 0x2c($sp) +.Ljp7F0C0294: +/* 0F4E04 7F0C0294 0C0030DC */ jal joyGetButtons +/* 0F4E08 7F0C0298 24050008 */ li $a1, 8 +/* 0F4E0C 7F0C029C 10400004 */ beqz $v0, .Ljp7F0C02B0 +/* 0F4E10 7F0C02A0 00002025 */ move $a0, $zero +/* 0F4E14 7F0C02A4 8FB8002C */ lw $t8, 0x2c($sp) +/* 0F4E18 7F0C02A8 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E1C 7F0C02AC AFAF002C */ sw $t7, 0x2c($sp) +.Ljp7F0C02B0: +/* 0F4E20 7F0C02B0 0C0030DC */ jal joyGetButtons +/* 0F4E24 7F0C02B4 24050001 */ li $a1, 1 +/* 0F4E28 7F0C02B8 10400004 */ beqz $v0, .Ljp7F0C02CC +/* 0F4E2C 7F0C02BC 00002025 */ move $a0, $zero +/* 0F4E30 7F0C02C0 8FAE0030 */ lw $t6, 0x30($sp) +/* 0F4E34 7F0C02C4 25D90001 */ addiu $t9, $t6, 1 +/* 0F4E38 7F0C02C8 AFB90030 */ sw $t9, 0x30($sp) +.Ljp7F0C02CC: +/* 0F4E3C 7F0C02CC 0C0030DC */ jal joyGetButtons +/* 0F4E40 7F0C02D0 24050002 */ li $a1, 2 +/* 0F4E44 7F0C02D4 10400003 */ beqz $v0, .Ljp7F0C02E4 +/* 0F4E48 7F0C02D8 8FB80030 */ lw $t8, 0x30($sp) +/* 0F4E4C 7F0C02DC 270FFFFF */ addiu $t7, $t8, -1 +/* 0F4E50 7F0C02E0 AFAF0030 */ sw $t7, 0x30($sp) +.Ljp7F0C02E4: +/* 0F4E54 7F0C02E4 0C0010E7 */ jal viSet8002329C +/* 0F4E58 7F0C02E8 8FA40030 */ lw $a0, 0x30($sp) +/* 0F4E5C 7F0C02EC 0C0010E1 */ jal viSet800232A0 +/* 0F4E60 7F0C02F0 8FA4002C */ lw $a0, 0x2c($sp) +/* 0F4E64 7F0C02F4 1000004D */ b .Ljp7F0C042C +/* 0F4E68 7F0C02F8 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C02FC: +/* 0F4E6C 7F0C02FC 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4E70 7F0C0300 24050202 */ li $a1, 514 +/* 0F4E74 7F0C0304 50400004 */ beql $v0, $zero, .Ljp7F0C0318 +/* 0F4E78 7F0C0308 00002025 */ move $a0, $zero +/* 0F4E7C 7F0C030C 0FC2F97A */ jal music_append_play_endtheme +/* 0F4E80 7F0C0310 00000000 */ nop +/* 0F4E84 7F0C0314 00002025 */ move $a0, $zero +.Ljp7F0C0318: +/* 0F4E88 7F0C0318 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4E8C 7F0C031C 24050101 */ li $a1, 257 +/* 0F4E90 7F0C0320 50400004 */ beql $v0, $zero, .Ljp7F0C0334 +/* 0F4E94 7F0C0324 00002025 */ move $a0, $zero +/* 0F4E98 7F0C0328 0FC2F967 */ jal music_append_play_solo_death_short +/* 0F4E9C 7F0C032C 00000000 */ nop +/* 0F4EA0 7F0C0330 00002025 */ move $a0, $zero +.Ljp7F0C0334: +/* 0F4EA4 7F0C0334 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4EA8 7F0C0338 24050400 */ li $a1, 1024 +/* 0F4EAC 7F0C033C 50400004 */ beql $v0, $zero, .Ljp7F0C0350 +/* 0F4EB0 7F0C0340 00002025 */ move $a0, $zero +/* 0F4EB4 7F0C0344 0C001BF8 */ jal musicTrack1Stop +/* 0F4EB8 7F0C0348 00000000 */ nop +/* 0F4EBC 7F0C034C 00002025 */ move $a0, $zero +.Ljp7F0C0350: +/* 0F4EC0 7F0C0350 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4EC4 7F0C0354 24054000 */ li $a1, 16384 +/* 0F4EC8 7F0C0358 50400034 */ beql $v0, $zero, .Ljp7F0C042C +/* 0F4ECC 7F0C035C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F4ED0 7F0C0360 0C001C2C */ jal musicTrack1SaveCurrentVolumeAsTrackDefault +/* 0F4ED4 7F0C0364 00000000 */ nop +/* 0F4ED8 7F0C0368 10000030 */ b .Ljp7F0C042C +/* 0F4EDC 7F0C036C 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C0370: +/* 0F4EE0 7F0C0370 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4EE4 7F0C0374 24050622 */ li $a1, 1570 +/* 0F4EE8 7F0C0378 1040000B */ beqz $v0, .Ljp7F0C03A8 +/* 0F4EEC 7F0C037C 3C058005 */ lui $a1, 0x8005 +/* 0F4EF0 7F0C0380 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4EF4 7F0C0384 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0F4EF8 7F0C0388 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4EFC 7F0C038C 24A5FFFF */ addiu $a1, $a1, -1 +/* 0F4F00 7F0C0390 00057400 */ sll $t6, $a1, 0x10 +/* 0F4F04 7F0C0394 000E2C03 */ sra $a1, $t6, 0x10 +/* 0F4F08 7F0C0398 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F0C 7F0C039C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F4F10 7F0C03A0 0C002386 */ jal play_sfx_a1 +/* 0F4F14 7F0C03A4 00003025 */ move $a2, $zero +.Ljp7F0C03A8: +/* 0F4F18 7F0C03A8 00002025 */ move $a0, $zero +/* 0F4F1C 7F0C03AC 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4F20 7F0C03B0 24050911 */ li $a1, 2321 +/* 0F4F24 7F0C03B4 1040000B */ beqz $v0, .Ljp7F0C03E4 +/* 0F4F28 7F0C03B8 3C058005 */ lui $a1, 0x8005 +/* 0F4F2C 7F0C03BC 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F30 7F0C03C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0F4F34 7F0C03C4 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 +/* 0F4F38 7F0C03C8 24A50001 */ addiu $a1, $a1, 1 +/* 0F4F3C 7F0C03CC 0005C400 */ sll $t8, $a1, 0x10 +/* 0F4F40 7F0C03D0 00182C03 */ sra $a1, $t8, 0x10 +/* 0F4F44 7F0C03D4 A4258418 */ sh $a1, %lo(D_800483E4)($at) +/* 0F4F48 7F0C03D8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F4F4C 7F0C03DC 0C002386 */ jal play_sfx_a1 +/* 0F4F50 7F0C03E0 00003025 */ move $a2, $zero +.Ljp7F0C03E4: +/* 0F4F54 7F0C03E4 00002025 */ move $a0, $zero +/* 0F4F58 7F0C03E8 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4F5C 7F0C03EC 24050004 */ li $a1, 4 +/* 0F4F60 7F0C03F0 50400004 */ beql $v0, $zero, .Ljp7F0C0404 +/* 0F4F64 7F0C03F4 00002025 */ move $a0, $zero +/* 0F4F68 7F0C03F8 0C00244D */ jal sfx_c_70009124 +/* 0F4F6C 7F0C03FC 00000000 */ nop +/* 0F4F70 7F0C0400 00002025 */ move $a0, $zero +.Ljp7F0C0404: +/* 0F4F74 7F0C0404 0C003104 */ jal joyGetButtonsPressedThisFrame +/* 0F4F78 7F0C0408 24050008 */ li $a1, 8 +/* 0F4F7C 7F0C040C 10400006 */ beqz $v0, .Ljp7F0C0428 +/* 0F4F80 7F0C0410 3C058005 */ lui $a1, %hi(D_800483E4) # $a1, 0x8005 +/* 0F4F84 7F0C0414 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 0F4F88 7F0C0418 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) +/* 0F4F8C 7F0C041C 84A58418 */ lh $a1, %lo(D_800483E4)($a1) +/* 0F4F90 7F0C0420 0C002386 */ jal play_sfx_a1 +/* 0F4F94 7F0C0424 00003025 */ move $a2, $zero +.Ljp7F0C0428: +/* 0F4F98 7F0C0428 8FBF0014 */ lw $ra, 0x14($sp) +.Ljp7F0C042C: +/* 0F4F9C 7F0C042C 27BD0198 */ addiu $sp, $sp, 0x198 +/* 0F4FA0 7F0C0430 03E00008 */ jr $ra +/* 0F4FA4 7F0C0434 00000000 */ nop +) +#endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel manage_mp_game +/* 0F36B8 7F0BEB88 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 0F36BC 7F0BEB8C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F36C0 7F0BEB90 0C000626 */ jal tlbmanageResetCurrentEntriesCount /* 0F36C4 7F0BEB94 00000000 */ nop /* 0F36C8 7F0BEB98 3C0E8005 */ lui $t6, %hi(controls_locked_flag) /* 0F36CC 7F0BEB9C 8DCE8370 */ lw $t6, %lo(controls_locked_flag)($t6) @@ -2973,7 +5623,7 @@ glabel manage_mp_game /* 0F3D68 7F0BF238 AC6F0000 */ sw $t7, ($v1) /* 0F3D6C 7F0BF23C 46803220 */ cvt.s.w $f8, $f6 /* 0F3D70 7F0BF240 46004283 */ div.s $f10, $f8, $f0 -/* 0F3D74 7F0BF244 0C0030EB */ jal get_controller_buttons_pressed +/* 0F3D74 7F0BF244 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F3D78 7F0BF248 E42A83AC */ swc1 $f10, %lo(cur_mp_min)($at) /* 0F3D7C 7F0BF24C 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0F3D80 7F0BF250 44810000 */ mtc1 $at, $f0 @@ -3032,7 +5682,7 @@ glabel manage_mp_game /* 0F3E48 7F0BF318 46004283 */ div.s $f10, $f8, $f0 /* 0F3E4C 7F0BF31C E42A83BC */ swc1 $f10, %lo(poweron_time_sec)($at) .L7F0BF320: -/* 0F3E50 7F0BF320 0C00114D */ jal set_video2_settings_offset_24 +/* 0F3E50 7F0BF320 0C00114D */ jal viSetUseZBuf /* 0F3E54 7F0BF324 24040001 */ li $a0, 1 /* 0F3E58 7F0BF328 3C198005 */ lui $t9, %hi(current_stage_to_load) /* 0F3E5C 7F0BF32C 8F398364 */ lw $t9, %lo(current_stage_to_load)($t9) @@ -3172,7 +5822,7 @@ glabel manage_mp_game /* 0F4064 7F0BF534 10000031 */ b .L7F0BF5FC /* 0F4068 7F0BF538 00000000 */ nop .L7F0BF53C: -/* 0F406C 7F0BF53C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F406C 7F0BF53C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4070 7F0BF540 24050002 */ li $a1, 2 /* 0F4074 7F0BF544 50400008 */ beql $v0, $zero, .L7F0BF568 /* 0F4078 7F0BF548 00002025 */ move $a0, $zero @@ -3184,7 +5834,7 @@ glabel manage_mp_game /* 0F4090 7F0BF560 00003025 */ move $a2, $zero /* 0F4094 7F0BF564 00002025 */ move $a0, $zero .L7F0BF568: -/* 0F4098 7F0BF568 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4098 7F0BF568 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F409C 7F0BF56C 24050001 */ li $a1, 1 /* 0F40A0 7F0BF570 10400022 */ beqz $v0, .L7F0BF5FC /* 0F40A4 7F0BF574 00000000 */ nop @@ -3197,7 +5847,7 @@ glabel manage_mp_game /* 0F40C0 7F0BF590 1000001A */ b .L7F0BF5FC /* 0F40C4 7F0BF594 00000000 */ nop .L7F0BF598: -/* 0F40C8 7F0BF598 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40C8 7F0BF598 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F40CC 7F0BF59C 24050002 */ li $a1, 2 /* 0F40D0 7F0BF5A0 50400004 */ beql $v0, $zero, .L7F0BF5B4 /* 0F40D4 7F0BF5A4 00002025 */ move $a0, $zero @@ -3205,7 +5855,7 @@ glabel manage_mp_game /* 0F40DC 7F0BF5AC 00000000 */ nop /* 0F40E0 7F0BF5B0 00002025 */ move $a0, $zero .L7F0BF5B4: -/* 0F40E4 7F0BF5B4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F40E4 7F0BF5B4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F40E8 7F0BF5B8 24050001 */ li $a1, 1 /* 0F40EC 7F0BF5BC 50400004 */ beql $v0, $zero, .L7F0BF5D0 /* 0F40F0 7F0BF5C0 00002025 */ move $a0, $zero @@ -3213,7 +5863,7 @@ glabel manage_mp_game /* 0F40F8 7F0BF5C8 00000000 */ nop /* 0F40FC 7F0BF5CC 00002025 */ move $a0, $zero .L7F0BF5D0: -/* 0F4100 7F0BF5D0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4100 7F0BF5D0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4104 7F0BF5D4 24050020 */ li $a1, 32 /* 0F4108 7F0BF5D8 50400004 */ beql $v0, $zero, .L7F0BF5EC /* 0F410C 7F0BF5DC 00002025 */ move $a0, $zero @@ -3221,7 +5871,7 @@ glabel manage_mp_game /* 0F4114 7F0BF5E4 00000000 */ nop /* 0F4118 7F0BF5E8 00002025 */ move $a0, $zero .L7F0BF5EC: -/* 0F411C 7F0BF5EC 0C0030C3 */ jal get_controller_buttons_held +/* 0F411C 7F0BF5EC 0C0030C3 */ jal joyGetButtons /* 0F4120 7F0BF5F0 24050010 */ li $a1, 16 /* 0F4124 7F0BF5F4 0FC08BB8 */ jal sub_GAME_7F022EE0 /* 0F4128 7F0BF5F8 0002202B */ sltu $a0, $zero, $v0 @@ -3237,13 +5887,13 @@ glabel manage_mp_game /* 0F414C 7F0BF61C 24010038 */ li $at, 56 /* 0F4150 7F0BF620 54410074 */ bnel $v0, $at, .L7F0BF7F4 /* 0F4154 7F0BF624 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F4158 7F0BF628 0C0010EA */ jal get_D_8002329C +/* 0F4158 7F0BF628 0C0010EA */ jal viGet8002329C /* 0F415C 7F0BF62C 00000000 */ nop -/* 0F4160 7F0BF630 0C0010E4 */ jal get_D_800232A0 +/* 0F4160 7F0BF630 0C0010E4 */ jal viGet800232A0 /* 0F4164 7F0BF634 AFA20030 */ sw $v0, 0x30($sp) /* 0F4168 7F0BF638 AFA2002C */ sw $v0, 0x2c($sp) /* 0F416C 7F0BF63C 00002025 */ move $a0, $zero -/* 0F4170 7F0BF640 0C0030C3 */ jal get_controller_buttons_held +/* 0F4170 7F0BF640 0C0030C3 */ jal joyGetButtons /* 0F4174 7F0BF644 24050004 */ li $a1, 4 /* 0F4178 7F0BF648 10400004 */ beqz $v0, .L7F0BF65C /* 0F417C 7F0BF64C 00002025 */ move $a0, $zero @@ -3251,7 +5901,7 @@ glabel manage_mp_game /* 0F4184 7F0BF654 25D90001 */ addiu $t9, $t6, 1 /* 0F4188 7F0BF658 AFB9002C */ sw $t9, 0x2c($sp) .L7F0BF65C: -/* 0F418C 7F0BF65C 0C0030C3 */ jal get_controller_buttons_held +/* 0F418C 7F0BF65C 0C0030C3 */ jal joyGetButtons /* 0F4190 7F0BF660 24050008 */ li $a1, 8 /* 0F4194 7F0BF664 10400004 */ beqz $v0, .L7F0BF678 /* 0F4198 7F0BF668 00002025 */ move $a0, $zero @@ -3259,7 +5909,7 @@ glabel manage_mp_game /* 0F41A0 7F0BF670 270FFFFF */ addiu $t7, $t8, -1 /* 0F41A4 7F0BF674 AFAF002C */ sw $t7, 0x2c($sp) .L7F0BF678: -/* 0F41A8 7F0BF678 0C0030C3 */ jal get_controller_buttons_held +/* 0F41A8 7F0BF678 0C0030C3 */ jal joyGetButtons /* 0F41AC 7F0BF67C 24050001 */ li $a1, 1 /* 0F41B0 7F0BF680 10400004 */ beqz $v0, .L7F0BF694 /* 0F41B4 7F0BF684 00002025 */ move $a0, $zero @@ -3267,21 +5917,21 @@ glabel manage_mp_game /* 0F41BC 7F0BF68C 25D90001 */ addiu $t9, $t6, 1 /* 0F41C0 7F0BF690 AFB90030 */ sw $t9, 0x30($sp) .L7F0BF694: -/* 0F41C4 7F0BF694 0C0030C3 */ jal get_controller_buttons_held +/* 0F41C4 7F0BF694 0C0030C3 */ jal joyGetButtons /* 0F41C8 7F0BF698 24050002 */ li $a1, 2 /* 0F41CC 7F0BF69C 10400003 */ beqz $v0, .L7F0BF6AC /* 0F41D0 7F0BF6A0 8FB80030 */ lw $t8, 0x30($sp) /* 0F41D4 7F0BF6A4 270FFFFF */ addiu $t7, $t8, -1 /* 0F41D8 7F0BF6A8 AFAF0030 */ sw $t7, 0x30($sp) .L7F0BF6AC: -/* 0F41DC 7F0BF6AC 0C0010E7 */ jal set_D_8002329C +/* 0F41DC 7F0BF6AC 0C0010E7 */ jal viSet8002329C /* 0F41E0 7F0BF6B0 8FA40030 */ lw $a0, 0x30($sp) -/* 0F41E4 7F0BF6B4 0C0010E1 */ jal set_D_800232A0 +/* 0F41E4 7F0BF6B4 0C0010E1 */ jal viSet800232A0 /* 0F41E8 7F0BF6B8 8FA4002C */ lw $a0, 0x2c($sp) /* 0F41EC 7F0BF6BC 1000004D */ b .L7F0BF7F4 /* 0F41F0 7F0BF6C0 8FBF0014 */ lw $ra, 0x14($sp) .L7F0BF6C4: -/* 0F41F4 7F0BF6C4 0C0030EB */ jal get_controller_buttons_pressed +/* 0F41F4 7F0BF6C4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F41F8 7F0BF6C8 24050202 */ li $a1, 514 /* 0F41FC 7F0BF6CC 50400004 */ beql $v0, $zero, .L7F0BF6E0 /* 0F4200 7F0BF6D0 00002025 */ move $a0, $zero @@ -3289,7 +5939,7 @@ glabel manage_mp_game /* 0F4208 7F0BF6D8 00000000 */ nop /* 0F420C 7F0BF6DC 00002025 */ move $a0, $zero .L7F0BF6E0: -/* 0F4210 7F0BF6E0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4210 7F0BF6E0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4214 7F0BF6E4 24050101 */ li $a1, 257 /* 0F4218 7F0BF6E8 50400004 */ beql $v0, $zero, .L7F0BF6FC /* 0F421C 7F0BF6EC 00002025 */ move $a0, $zero @@ -3297,7 +5947,7 @@ glabel manage_mp_game /* 0F4224 7F0BF6F4 00000000 */ nop /* 0F4228 7F0BF6F8 00002025 */ move $a0, $zero .L7F0BF6FC: -/* 0F422C 7F0BF6FC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F422C 7F0BF6FC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4230 7F0BF700 24050400 */ li $a1, 1024 /* 0F4234 7F0BF704 50400004 */ beql $v0, $zero, .L7F0BF718 /* 0F4238 7F0BF708 00002025 */ move $a0, $zero @@ -3305,7 +5955,7 @@ glabel manage_mp_game /* 0F4240 7F0BF710 00000000 */ nop /* 0F4244 7F0BF714 00002025 */ move $a0, $zero .L7F0BF718: -/* 0F4248 7F0BF718 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4248 7F0BF718 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F424C 7F0BF71C 24054000 */ li $a1, 16384 /* 0F4250 7F0BF720 50400034 */ beql $v0, $zero, .L7F0BF7F4 /* 0F4254 7F0BF724 8FBF0014 */ lw $ra, 0x14($sp) @@ -3314,7 +5964,7 @@ glabel manage_mp_game /* 0F4260 7F0BF730 10000030 */ b .L7F0BF7F4 /* 0F4264 7F0BF734 8FBF0014 */ lw $ra, 0x14($sp) .L7F0BF738: -/* 0F4268 7F0BF738 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4268 7F0BF738 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F426C 7F0BF73C 24050622 */ li $a1, 1570 /* 0F4270 7F0BF740 1040000B */ beqz $v0, .L7F0BF770 /* 0F4274 7F0BF744 3C058005 */ lui $a1, 0x8005 @@ -3330,7 +5980,7 @@ glabel manage_mp_game /* 0F429C 7F0BF76C 00003025 */ move $a2, $zero .L7F0BF770: /* 0F42A0 7F0BF770 00002025 */ move $a0, $zero -/* 0F42A4 7F0BF774 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42A4 7F0BF774 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F42A8 7F0BF778 24050911 */ li $a1, 2321 /* 0F42AC 7F0BF77C 1040000B */ beqz $v0, .L7F0BF7AC /* 0F42B0 7F0BF780 3C058005 */ lui $a1, 0x8005 @@ -3346,7 +5996,7 @@ glabel manage_mp_game /* 0F42D8 7F0BF7A8 00003025 */ move $a2, $zero .L7F0BF7AC: /* 0F42DC 7F0BF7AC 00002025 */ move $a0, $zero -/* 0F42E0 7F0BF7B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42E0 7F0BF7B0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F42E4 7F0BF7B4 24050004 */ li $a1, 4 /* 0F42E8 7F0BF7B8 50400004 */ beql $v0, $zero, .L7F0BF7CC /* 0F42EC 7F0BF7BC 00002025 */ move $a0, $zero @@ -3354,7 +6004,7 @@ glabel manage_mp_game /* 0F42F4 7F0BF7C4 00000000 */ nop /* 0F42F8 7F0BF7C8 00002025 */ move $a0, $zero .L7F0BF7CC: -/* 0F42FC 7F0BF7CC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F42FC 7F0BF7CC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4300 7F0BF7D0 24050008 */ li $a1, 8 /* 0F4304 7F0BF7D4 10400006 */ beqz $v0, .L7F0BF7F0 /* 0F4308 7F0BF7D8 3C058005 */ lui $a1, %hi(D_800483E4) @@ -3372,884 +6022,6 @@ glabel manage_mp_game ) #endif -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel manage_mp_game -/* 0F431C 7F0BF7AC 27BDFE68 */ addiu $sp, $sp, -0x198 -/* 0F4320 7F0BF7B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F4324 7F0BF7B4 0C000626 */ jal mp_tlb_related -/* 0F4328 7F0BF7B8 00000000 */ nop -/* 0F432C 7F0BF7BC 3C0E8005 */ lui $t6, %hi(controls_locked_flag) # $t6, 0x8005 -/* 0F4330 7F0BF7C0 8DCE83A0 */ lw $t6, %lo(controls_locked_flag)($t6) -/* 0F4334 7F0BF7C4 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 -/* 0F4338 7F0BF7C8 11C00003 */ beqz $t6, .Ljp7F0BF7D8 -/* 0F433C 7F0BF7CC 00000000 */ nop -/* 0F4340 7F0BF7D0 10000010 */ b .Ljp7F0BF814 -/* 0F4344 7F0BF7D4 AC2083A4 */ sw $zero, %lo(clock_timer)($at) -.Ljp7F0BF7D8: -/* 0F4348 7F0BF7D8 0FC31B59 */ jal checkGamePaused -/* 0F434C 7F0BF7DC 00000000 */ nop -/* 0F4350 7F0BF7E0 10400004 */ beqz $v0, .Ljp7F0BF7F4 -/* 0F4354 7F0BF7E4 3C0F8005 */ lui $t7, %hi(D_80048498) # $t7, 0x8005 -/* 0F4358 7F0BF7E8 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 -/* 0F435C 7F0BF7EC 10000009 */ b .Ljp7F0BF814 -/* 0F4360 7F0BF7F0 AC2083A4 */ sw $zero, %lo(clock_timer)($at) -.Ljp7F0BF7F4: -/* 0F4364 7F0BF7F4 8DEF84C8 */ lw $t7, %lo(D_80048498)($t7) -/* 0F4368 7F0BF7F8 3C028005 */ lui $v0, %hi(D_80048380) # $v0, 0x8005 -/* 0F436C 7F0BF7FC 3C018005 */ lui $at, %hi(clock_timer) # $at, 0x8005 -/* 0F4370 7F0BF800 244283B0 */ addiu $v0, %lo(D_80048380) # addiu $v0, $v0, -0x7c50 -/* 0F4374 7F0BF804 AC2F83A4 */ sw $t7, %lo(clock_timer)($at) -/* 0F4378 7F0BF808 8C580000 */ lw $t8, ($v0) -/* 0F437C 7F0BF80C 27190001 */ addiu $t9, $t8, 1 -/* 0F4380 7F0BF810 AC590000 */ sw $t9, ($v0) -.Ljp7F0BF814: -/* 0F4384 7F0BF814 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 -/* 0F4388 7F0BF818 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) -/* 0F438C 7F0BF81C 3C038005 */ lui $v1, %hi(jp_global_timer_delta) # $v1, 0x8005 -/* 0F4390 7F0BF820 246383A8 */ addiu $v1, %lo(jp_global_timer_delta) # addiu $v1, $v1, -0x7c58 -/* 0F4394 7F0BF824 44822000 */ mtc1 $v0, $f4 -/* 0F4398 7F0BF828 3C048005 */ lui $a0, %hi(global_timer) # $a0, 0x8005 -/* 0F439C 7F0BF82C 3C018005 */ lui $at, %hi(global_timer_delta) # $at, 0x8005 -/* 0F43A0 7F0BF830 468021A0 */ cvt.s.w $f6, $f4 -/* 0F43A4 7F0BF834 248483AC */ addiu $a0, %lo(global_timer) # addiu $a0, $a0, -0x7c54 -/* 0F43A8 7F0BF838 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 -/* 0F43AC 7F0BF83C 3C198005 */ lui $t9, %hi(D_80048394) # $t9, 0x8005 -/* 0F43B0 7F0BF840 E4660000 */ swc1 $f6, ($v1) -/* 0F43B4 7F0BF844 C4680000 */ lwc1 $f8, ($v1) -/* 0F43B8 7F0BF848 E42883B4 */ swc1 $f8, %lo(global_timer_delta)($at) -/* 0F43BC 7F0BF84C 8C8E0000 */ lw $t6, ($a0) -/* 0F43C0 7F0BF850 2401005A */ li $at, 90 -/* 0F43C4 7F0BF854 01C27821 */ addu $t7, $t6, $v0 -/* 0F43C8 7F0BF858 AC8F0000 */ sw $t7, ($a0) -/* 0F43CC 7F0BF85C 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) -/* 0F43D0 7F0BF860 1301001D */ beq $t8, $at, .Ljp7F0BF8D8 -/* 0F43D4 7F0BF864 00000000 */ nop -/* 0F43D8 7F0BF868 8F3983C8 */ lw $t9, %lo(D_80048394)($t9) -/* 0F43DC 7F0BF86C 1720001A */ bnez $t9, .Ljp7F0BF8D8 -/* 0F43E0 7F0BF870 00000000 */ nop -/* 0F43E4 7F0BF874 18400018 */ blez $v0, .Ljp7F0BF8D8 -/* 0F43E8 7F0BF878 3C0E8003 */ lui $t6, %hi(append_cheat_sp) # $t6, 0x8003 -/* 0F43EC 7F0BF87C 8DCEA940 */ lw $t6, %lo(append_cheat_sp)($t6) -/* 0F43F0 7F0BF880 3C038007 */ lui $v1, %hi(CHEAT_AVAILABLE_EXTRA_CHARS) # $v1, 0x8007 -/* 0F43F4 7F0BF884 246396E1 */ addiu $v1, %lo(CHEAT_AVAILABLE_EXTRA_CHARS) # addiu $v1, $v1, -0x691f -/* 0F43F8 7F0BF888 11C00013 */ beqz $t6, .Ljp7F0BF8D8 -/* 0F43FC 7F0BF88C 24040001 */ li $a0, 1 -.Ljp7F0BF890: -/* 0F4400 7F0BF890 906F0000 */ lbu $t7, ($v1) -/* 0F4404 7F0BF894 51E0000D */ beql $t7, $zero, .Ljp7F0BF8CC -/* 0F4408 7F0BF898 24840001 */ addiu $a0, $a0, 1 -/* 0F440C 7F0BF89C AFA3001C */ sw $v1, 0x1c($sp) -/* 0F4410 7F0BF8A0 0FC2494F */ jal is_cheat_index_equal_to_1C -/* 0F4414 7F0BF8A4 AFA40194 */ sw $a0, 0x194($sp) -/* 0F4418 7F0BF8A8 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F441C 7F0BF8AC 14400006 */ bnez $v0, .Ljp7F0BF8C8 -/* 0F4420 7F0BF8B0 8FA40194 */ lw $a0, 0x194($sp) -/* 0F4424 7F0BF8B4 AFA3001C */ sw $v1, 0x1c($sp) -/* 0F4428 7F0BF8B8 0FC24963 */ jal turn_on_cheat_for_players -/* 0F442C 7F0BF8BC AFA40194 */ sw $a0, 0x194($sp) -/* 0F4430 7F0BF8C0 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F4434 7F0BF8C4 8FA40194 */ lw $a0, 0x194($sp) -.Ljp7F0BF8C8: -/* 0F4438 7F0BF8C8 24840001 */ addiu $a0, $a0, 1 -.Ljp7F0BF8CC: -/* 0F443C 7F0BF8CC 2401004B */ li $at, 75 -/* 0F4440 7F0BF8D0 1481FFEF */ bne $a0, $at, .Ljp7F0BF890 -/* 0F4444 7F0BF8D4 24630001 */ addiu $v1, $v1, 1 -.Ljp7F0BF8D8: -/* 0F4448 7F0BF8D8 0FC26C01 */ jal getPlayerCount -/* 0F444C 7F0BF8DC 00000000 */ nop -/* 0F4450 7F0BF8E0 28410002 */ slti $at, $v0, 2 -/* 0F4454 7F0BF8E4 1420014C */ bnez $at, .Ljp7F0BFE18 -/* 0F4458 7F0BF8E8 3C188005 */ lui $t8, %hi(current_stage_to_load) # $t8, 0x8005 -/* 0F445C 7F0BF8EC 8F188394 */ lw $t8, %lo(current_stage_to_load)($t8) -/* 0F4460 7F0BF8F0 2401005A */ li $at, 90 -/* 0F4464 7F0BF8F4 13010148 */ beq $t8, $at, .Ljp7F0BFE18 -/* 0F4468 7F0BF8F8 00000000 */ nop -/* 0F446C 7F0BF8FC 0FC30630 */ jal get_mission_state -/* 0F4470 7F0BF900 00000000 */ nop -/* 0F4474 7F0BF904 24010006 */ li $at, 6 -/* 0F4478 7F0BF908 14410029 */ bne $v0, $at, .Ljp7F0BF9B0 -/* 0F447C 7F0BF90C 00000000 */ nop -/* 0F4480 7F0BF910 AFA00190 */ sw $zero, 0x190($sp) -/* 0F4484 7F0BF914 AFA0018C */ sw $zero, 0x18c($sp) -/* 0F4488 7F0BF918 0FC26C01 */ jal getPlayerCount -/* 0F448C 7F0BF91C AFA00188 */ sw $zero, 0x188($sp) -/* 0F4490 7F0BF920 8FA30190 */ lw $v1, 0x190($sp) -/* 0F4494 7F0BF924 8FA5018C */ lw $a1, 0x18c($sp) -/* 0F4498 7F0BF928 1840001B */ blez $v0, .Ljp7F0BF998 -/* 0F449C 7F0BF92C 8FA60188 */ lw $a2, 0x188($sp) -/* 0F44A0 7F0BF930 3C0E8008 */ lui $t6, %hi(players) # $t6, 0x8008 -/* 0F44A4 7F0BF934 25CE9F50 */ addiu $t6, %lo(players) # addiu $t6, $t6, -0x60b0 -/* 0F44A8 7F0BF938 0003C880 */ sll $t9, $v1, 2 -/* 0F44AC 7F0BF93C 032E2021 */ addu $a0, $t9, $t6 -.Ljp7F0BF940: -/* 0F44B0 7F0BF940 8C820000 */ lw $v0, ($a0) -/* 0F44B4 7F0BF944 24630001 */ addiu $v1, $v1, 1 -/* 0F44B8 7F0BF948 24840004 */ addiu $a0, $a0, 4 -/* 0F44BC 7F0BF94C 8C4F00D8 */ lw $t7, 0xd8($v0) -/* 0F44C0 7F0BF950 51E00007 */ beql $t7, $zero, .Ljp7F0BF970 -/* 0F44C4 7F0BF954 AFA30190 */ sw $v1, 0x190($sp) -/* 0F44C8 7F0BF958 8C580424 */ lw $t8, 0x424($v0) -/* 0F44CC 7F0BF95C 24A50001 */ addiu $a1, $a1, 1 -/* 0F44D0 7F0BF960 53000003 */ beql $t8, $zero, .Ljp7F0BF970 -/* 0F44D4 7F0BF964 AFA30190 */ sw $v1, 0x190($sp) -/* 0F44D8 7F0BF968 24C60001 */ addiu $a2, $a2, 1 -/* 0F44DC 7F0BF96C AFA30190 */ sw $v1, 0x190($sp) -.Ljp7F0BF970: -/* 0F44E0 7F0BF970 AFA4001C */ sw $a0, 0x1c($sp) -/* 0F44E4 7F0BF974 AFA5018C */ sw $a1, 0x18c($sp) -/* 0F44E8 7F0BF978 0FC26C01 */ jal getPlayerCount -/* 0F44EC 7F0BF97C AFA60188 */ sw $a2, 0x188($sp) -/* 0F44F0 7F0BF980 8FA30190 */ lw $v1, 0x190($sp) -/* 0F44F4 7F0BF984 8FA4001C */ lw $a0, 0x1c($sp) -/* 0F44F8 7F0BF988 8FA5018C */ lw $a1, 0x18c($sp) -/* 0F44FC 7F0BF98C 0062082A */ slt $at, $v1, $v0 -/* 0F4500 7F0BF990 1420FFEB */ bnez $at, .Ljp7F0BF940 -/* 0F4504 7F0BF994 8FA60188 */ lw $a2, 0x188($sp) -.Ljp7F0BF998: -/* 0F4508 7F0BF998 18A00005 */ blez $a1, .Ljp7F0BF9B0 -/* 0F450C 7F0BF99C 00000000 */ nop -/* 0F4510 7F0BF9A0 14A60003 */ bne $a1, $a2, .Ljp7F0BF9B0 -/* 0F4514 7F0BF9A4 00000000 */ nop -/* 0F4518 7F0BF9A8 0FC30633 */ jal set_missionstate -/* 0F451C 7F0BF9AC 24040001 */ li $a0, 1 -.Ljp7F0BF9B0: -/* 0F4520 7F0BF9B0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 -/* 0F4524 7F0BF9B4 8C6383CC */ lw $v1, %lo(mp_time)($v1) -/* 0F4528 7F0BF9B8 3C028005 */ lui $v0, %hi(D_80048394) # $v0, 0x8005 -/* 0F452C 7F0BF9BC 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 -/* 0F4530 7F0BF9C0 1860004A */ blez $v1, .Ljp7F0BFAEC -/* 0F4534 7F0BF9C4 00000000 */ nop -/* 0F4538 7F0BF9C8 8C4283C8 */ lw $v0, %lo(D_80048394)($v0) -/* 0F453C 7F0BF9CC 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) -/* 0F4540 7F0BF9D0 2464F1F0 */ addiu $a0, $v1, -0xe10 -/* 0F4544 7F0BF9D4 0044082A */ slt $at, $v0, $a0 -/* 0F4548 7F0BF9D8 03227021 */ addu $t6, $t9, $v0 -/* 0F454C 7F0BF9DC AFAE0180 */ sw $t6, 0x180($sp) -/* 0F4550 7F0BF9E0 10200016 */ beqz $at, .Ljp7F0BFA3C -/* 0F4554 7F0BF9E4 AFA20184 */ sw $v0, 0x184($sp) -/* 0F4558 7F0BF9E8 01C4082A */ slt $at, $t6, $a0 -/* 0F455C 7F0BF9EC 14200013 */ bnez $at, .Ljp7F0BFA3C -/* 0F4560 7F0BF9F0 00000000 */ nop -/* 0F4564 7F0BF9F4 0FC26C01 */ jal getPlayerCount -/* 0F4568 7F0BF9F8 AFA0017C */ sw $zero, 0x17c($sp) -/* 0F456C 7F0BF9FC 1840000F */ blez $v0, .Ljp7F0BFA3C -/* 0F4570 7F0BFA00 00000000 */ nop -.Ljp7F0BFA04: -/* 0F4574 7F0BFA04 0FC26F2B */ jal set_cur_player -/* 0F4578 7F0BFA08 8FA4017C */ lw $a0, 0x17c($sp) -/* 0F457C 7F0BFA0C 0FC30AA2 */ jal get_textptr_for_textID -/* 0F4580 7F0BFA10 3404B044 */ li $a0, 45124 -/* 0F4584 7F0BFA14 0FC22B10 */ jal jp_display_string_in_lower_left_corner -/* 0F4588 7F0BFA18 00402025 */ move $a0, $v0 -/* 0F458C 7F0BFA1C 8FAF017C */ lw $t7, 0x17c($sp) -/* 0F4590 7F0BFA20 25F80001 */ addiu $t8, $t7, 1 -/* 0F4594 7F0BFA24 0FC26C01 */ jal getPlayerCount -/* 0F4598 7F0BFA28 AFB8017C */ sw $t8, 0x17c($sp) -/* 0F459C 7F0BFA2C 8FB9017C */ lw $t9, 0x17c($sp) -/* 0F45A0 7F0BFA30 0322082A */ slt $at, $t9, $v0 -/* 0F45A4 7F0BFA34 1420FFF3 */ bnez $at, .Ljp7F0BFA04 -/* 0F45A8 7F0BFA38 00000000 */ nop -.Ljp7F0BFA3C: -/* 0F45AC 7F0BFA3C 3C0F8005 */ lui $t7, %hi(mp_time) # $t7, 0x8005 -/* 0F45B0 7F0BFA40 8DEF83CC */ lw $t7, %lo(mp_time)($t7) -/* 0F45B4 7F0BFA44 8FAE0180 */ lw $t6, 0x180($sp) -/* 0F45B8 7F0BFA48 3C198005 */ lui $t9, %hi(D_800483A0) # $t9, 0x8005 -/* 0F45BC 7F0BFA4C 25F8FDA8 */ addiu $t8, $t7, -0x258 -/* 0F45C0 7F0BFA50 01D8082A */ slt $at, $t6, $t8 -/* 0F45C4 7F0BFA54 1420000D */ bnez $at, .Ljp7F0BFA8C -/* 0F45C8 7F0BFA58 00000000 */ nop -/* 0F45CC 7F0BFA5C 8F3983D4 */ lw $t9, %lo(D_800483A0)($t9) -/* 0F45D0 7F0BFA60 1720000A */ bnez $t9, .Ljp7F0BFA8C -/* 0F45D4 7F0BFA64 00000000 */ nop -/* 0F45D8 7F0BFA68 0FC3021B */ jal get_controls_locked_flag -/* 0F45DC 7F0BFA6C 00000000 */ nop -/* 0F45E0 7F0BFA70 14400006 */ bnez $v0, .Ljp7F0BFA8C -/* 0F45E4 7F0BFA74 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0F45E8 7F0BFA78 3C068005 */ lui $a2, %hi(D_800483A0) # $a2, 0x8005 -/* 0F45EC 7F0BFA7C 24C683D4 */ addiu $a2, %lo(D_800483A0) # addiu $a2, $a2, -0x7c2c -/* 0F45F0 7F0BFA80 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0F45F4 7F0BFA84 0C002386 */ jal play_sfx_a1 -/* 0F45F8 7F0BFA88 240500A1 */ li $a1, 161 -.Ljp7F0BFA8C: -/* 0F45FC 7F0BFA8C 0FC3021B */ jal get_controls_locked_flag -/* 0F4600 7F0BFA90 00000000 */ nop -/* 0F4604 7F0BFA94 1040000A */ beqz $v0, .Ljp7F0BFAC0 -/* 0F4608 7F0BFA98 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 -/* 0F460C 7F0BFA9C 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) -/* 0F4610 7F0BFAA0 10800007 */ beqz $a0, .Ljp7F0BFAC0 -/* 0F4614 7F0BFAA4 00000000 */ nop -/* 0F4618 7F0BFAA8 0C002380 */ jal sfxGetArg0Unk3F -/* 0F461C 7F0BFAAC 00000000 */ nop -/* 0F4620 7F0BFAB0 10400003 */ beqz $v0, .Ljp7F0BFAC0 -/* 0F4624 7F0BFAB4 3C048005 */ lui $a0, %hi(D_800483A0) # $a0, 0x8005 -/* 0F4628 7F0BFAB8 0C00240C */ jal sfxDeactivate -/* 0F462C 7F0BFABC 8C8483D4 */ lw $a0, %lo(D_800483A0)($a0) -.Ljp7F0BFAC0: -/* 0F4630 7F0BFAC0 3C038005 */ lui $v1, %hi(mp_time) # $v1, 0x8005 -/* 0F4634 7F0BFAC4 8C6383CC */ lw $v1, %lo(mp_time)($v1) -/* 0F4638 7F0BFAC8 8FAF0184 */ lw $t7, 0x184($sp) -/* 0F463C 7F0BFACC 8FAE0180 */ lw $t6, 0x180($sp) -/* 0F4640 7F0BFAD0 01E3082A */ slt $at, $t7, $v1 -/* 0F4644 7F0BFAD4 10200005 */ beqz $at, .Ljp7F0BFAEC -/* 0F4648 7F0BFAD8 01C3082A */ slt $at, $t6, $v1 -/* 0F464C 7F0BFADC 14200003 */ bnez $at, .Ljp7F0BFAEC -/* 0F4650 7F0BFAE0 00000000 */ nop -/* 0F4654 7F0BFAE4 0FC30C78 */ jal sub_GAME_7F0C2530 -/* 0F4658 7F0BFAE8 00002025 */ move $a0, $zero -.Ljp7F0BFAEC: -/* 0F465C 7F0BFAEC 3C188005 */ lui $t8, %hi(mp_point) # $t8, 0x8005 -/* 0F4660 7F0BFAF0 8F1883D0 */ lw $t8, %lo(mp_point)($t8) -/* 0F4664 7F0BFAF4 3C198005 */ lui $t9, %hi(clock_timer) # $t9, 0x8005 -/* 0F4668 7F0BFAF8 1B00003D */ blez $t8, .Ljp7F0BFBF0 -/* 0F466C 7F0BFAFC 00000000 */ nop -/* 0F4670 7F0BFB00 8F3983A4 */ lw $t9, %lo(clock_timer)($t9) -/* 0F4674 7F0BFB04 1320003A */ beqz $t9, .Ljp7F0BFBF0 -/* 0F4678 7F0BFB08 00000000 */ nop -/* 0F467C 7F0BFB0C 0FC26C01 */ jal getPlayerCount -/* 0F4680 7F0BFB10 00000000 */ nop -/* 0F4684 7F0BFB14 00403825 */ move $a3, $v0 -/* 0F4688 7F0BFB18 00002825 */ move $a1, $zero -/* 0F468C 7F0BFB1C 00003025 */ move $a2, $zero -/* 0F4690 7F0BFB20 18400029 */ blez $v0, .Ljp7F0BFBC8 -/* 0F4694 7F0BFB24 00002025 */ move $a0, $zero -/* 0F4698 7F0BFB28 3C038008 */ lui $v1, %hi(players) # $v1, 0x8008 -/* 0F469C 7F0BFB2C 44800000 */ mtc1 $zero, $f0 -/* 0F46A0 7F0BFB30 24639F50 */ addiu $v1, %lo(players) # addiu $v1, $v1, -0x60b0 -.Ljp7F0BFB34: -/* 0F46A4 7F0BFB34 8C620000 */ lw $v0, ($v1) -/* 0F46A8 7F0BFB38 8C4F00D8 */ lw $t7, 0xd8($v0) -/* 0F46AC 7F0BFB3C 51E0000E */ beql $t7, $zero, .Ljp7F0BFB78 -/* 0F46B0 7F0BFB40 AFA3001C */ sw $v1, 0x1c($sp) -/* 0F46B4 7F0BFB44 8C4E0424 */ lw $t6, 0x424($v0) -/* 0F46B8 7F0BFB48 51C0000A */ beql $t6, $zero, .Ljp7F0BFB74 -/* 0F46BC 7F0BFB4C 24A50001 */ addiu $a1, $a1, 1 -/* 0F46C0 7F0BFB50 8C580428 */ lw $t8, 0x428($v0) -/* 0F46C4 7F0BFB54 53000007 */ beql $t8, $zero, .Ljp7F0BFB74 -/* 0F46C8 7F0BFB58 24A50001 */ addiu $a1, $a1, 1 -/* 0F46CC 7F0BFB5C C44A03E4 */ lwc1 $f10, 0x3e4($v0) -/* 0F46D0 7F0BFB60 460A003E */ c.le.s $f0, $f10 -/* 0F46D4 7F0BFB64 00000000 */ nop -/* 0F46D8 7F0BFB68 45020003 */ bc1fl .Ljp7F0BFB78 -/* 0F46DC 7F0BFB6C AFA3001C */ sw $v1, 0x1c($sp) -/* 0F46E0 7F0BFB70 24A50001 */ addiu $a1, $a1, 1 -.Ljp7F0BFB74: -/* 0F46E4 7F0BFB74 AFA3001C */ sw $v1, 0x1c($sp) -.Ljp7F0BFB78: -/* 0F46E8 7F0BFB78 AFA40174 */ sw $a0, 0x174($sp) -/* 0F46EC 7F0BFB7C AFA50170 */ sw $a1, 0x170($sp) -/* 0F46F0 7F0BFB80 AFA6016C */ sw $a2, 0x16c($sp) -/* 0F46F4 7F0BFB84 0FC31162 */ jal get_points_for_mp_player -/* 0F46F8 7F0BFB88 AFA70178 */ sw $a3, 0x178($sp) -/* 0F46FC 7F0BFB8C 3C198005 */ lui $t9, %hi(mp_point) # $t9, 0x8005 -/* 0F4700 7F0BFB90 8F3983D0 */ lw $t9, %lo(mp_point)($t9) -/* 0F4704 7F0BFB94 44800000 */ mtc1 $zero, $f0 -/* 0F4708 7F0BFB98 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F470C 7F0BFB9C 0059082A */ slt $at, $v0, $t9 -/* 0F4710 7F0BFBA0 8FA40174 */ lw $a0, 0x174($sp) -/* 0F4714 7F0BFBA4 8FA50170 */ lw $a1, 0x170($sp) -/* 0F4718 7F0BFBA8 8FA6016C */ lw $a2, 0x16c($sp) -/* 0F471C 7F0BFBAC 14200002 */ bnez $at, .Ljp7F0BFBB8 -/* 0F4720 7F0BFBB0 8FA70178 */ lw $a3, 0x178($sp) -/* 0F4724 7F0BFBB4 24C60001 */ addiu $a2, $a2, 1 -.Ljp7F0BFBB8: -/* 0F4728 7F0BFBB8 24840001 */ addiu $a0, $a0, 1 -/* 0F472C 7F0BFBBC 0087082A */ slt $at, $a0, $a3 -/* 0F4730 7F0BFBC0 1420FFDC */ bnez $at, .Ljp7F0BFB34 -/* 0F4734 7F0BFBC4 24630004 */ addiu $v1, $v1, 4 -.Ljp7F0BFBC8: -/* 0F4738 7F0BFBC8 18C00009 */ blez $a2, .Ljp7F0BFBF0 -/* 0F473C 7F0BFBCC 00000000 */ nop -/* 0F4740 7F0BFBD0 14A00005 */ bnez $a1, .Ljp7F0BFBE8 -/* 0F4744 7F0BFBD4 00000000 */ nop -/* 0F4748 7F0BFBD8 0FC30C78 */ jal sub_GAME_7F0C2530 -/* 0F474C 7F0BFBDC 00002025 */ move $a0, $zero -/* 0F4750 7F0BFBE0 10000003 */ b .Ljp7F0BFBF0 -/* 0F4754 7F0BFBE4 00000000 */ nop -.Ljp7F0BFBE8: -/* 0F4758 7F0BFBE8 0FC30C74 */ jal set_stopplay_flag -/* 0F475C 7F0BFBEC 00000000 */ nop -.Ljp7F0BFBF0: -/* 0F4760 7F0BFBF0 0FC05202 */ jal get_scenario -/* 0F4764 7F0BFBF4 00000000 */ nop -/* 0F4768 7F0BFBF8 24010001 */ li $at, 1 -/* 0F476C 7F0BFBFC 14410086 */ bne $v0, $at, .Ljp7F0BFE18 -/* 0F4770 7F0BFC00 3C0F8005 */ lui $t7, %hi(clock_timer) # $t7, 0x8005 -/* 0F4774 7F0BFC04 8DEF83A4 */ lw $t7, %lo(clock_timer)($t7) -/* 0F4778 7F0BFC08 11E00083 */ beqz $t7, .Ljp7F0BFE18 -/* 0F477C 7F0BFC0C 00000000 */ nop -/* 0F4780 7F0BFC10 0FC26C01 */ jal getPlayerCount -/* 0F4784 7F0BFC14 00000000 */ nop -/* 0F4788 7F0BFC18 44800000 */ mtc1 $zero, $f0 -/* 0F478C 7F0BFC1C 00405025 */ move $t2, $v0 -/* 0F4790 7F0BFC20 00006825 */ move $t5, $zero -/* 0F4794 7F0BFC24 0000F825 */ move $ra, $zero -/* 0F4798 7F0BFC28 1840006E */ blez $v0, .Ljp7F0BFDE4 -/* 0F479C 7F0BFC2C 00006025 */ move $t4, $zero -/* 0F47A0 7F0BFC30 00002825 */ move $a1, $zero -.Ljp7F0BFC34: -/* 0F47A4 7F0BFC34 00003025 */ move $a2, $zero -/* 0F47A8 7F0BFC38 18400048 */ blez $v0, .Ljp7F0BFD5C -/* 0F47AC 7F0BFC3C 00003825 */ move $a3, $zero -/* 0F47B0 7F0BFC40 30490003 */ andi $t1, $v0, 3 -/* 0F47B4 7F0BFC44 11200019 */ beqz $t1, .Ljp7F0BFCAC -/* 0F47B8 7F0BFC48 000C5880 */ sll $t3, $t4, 2 -/* 0F47BC 7F0BFC4C 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 -/* 0F47C0 7F0BFC50 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 -/* 0F47C4 7F0BFC54 00007080 */ sll $t6, $zero, 2 -/* 0F47C8 7F0BFC58 0000C8C0 */ sll $t9, $zero, 3 -/* 0F47CC 7F0BFC5C 0320C823 */ subu $t9, $t9, $zero -/* 0F47D0 7F0BFC60 01D81821 */ addu $v1, $t6, $t8 -/* 0F47D4 7F0BFC64 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 -/* 0F47D8 7F0BFC68 0019C900 */ sll $t9, $t9, 4 -/* 0F47DC 7F0BFC6C 032B7821 */ addu $t7, $t9, $t3 -/* 0F47E0 7F0BFC70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 -/* 0F47E4 7F0BFC74 01EE2021 */ addu $a0, $t7, $t6 -/* 0F47E8 7F0BFC78 01204025 */ move $t0, $t1 -.Ljp7F0BFC7C: -/* 0F47EC 7F0BFC7C 8C780000 */ lw $t8, ($v1) -/* 0F47F0 7F0BFC80 24E70001 */ addiu $a3, $a3, 1 -/* 0F47F4 7F0BFC84 24630004 */ addiu $v1, $v1, 4 -/* 0F47F8 7F0BFC88 8F1900D8 */ lw $t9, 0xd8($t8) -/* 0F47FC 7F0BFC8C 57200003 */ bnezl $t9, .Ljp7F0BFC9C -/* 0F4800 7F0BFC90 8C8F0024 */ lw $t7, 0x24($a0) -/* 0F4804 7F0BFC94 24C60001 */ addiu $a2, $a2, 1 -/* 0F4808 7F0BFC98 8C8F0024 */ lw $t7, 0x24($a0) -.Ljp7F0BFC9C: -/* 0F480C 7F0BFC9C 24840070 */ addiu $a0, $a0, 0x70 -/* 0F4810 7F0BFCA0 1507FFF6 */ bne $t0, $a3, .Ljp7F0BFC7C -/* 0F4814 7F0BFCA4 00AF2821 */ addu $a1, $a1, $t7 -/* 0F4818 7F0BFCA8 10E2002C */ beq $a3, $v0, .Ljp7F0BFD5C -.Ljp7F0BFCAC: -/* 0F481C 7F0BFCAC 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 -/* 0F4820 7F0BFCB0 0007C8C0 */ sll $t9, $a3, 3 -/* 0F4824 7F0BFCB4 0327C823 */ subu $t9, $t9, $a3 -/* 0F4828 7F0BFCB8 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 -/* 0F482C 7F0BFCBC 00077080 */ sll $t6, $a3, 2 -/* 0F4830 7F0BFCC0 01D81821 */ addu $v1, $t6, $t8 -/* 0F4834 7F0BFCC4 0019C900 */ sll $t9, $t9, 4 -/* 0F4838 7F0BFCC8 032B7821 */ addu $t7, $t9, $t3 -/* 0F483C 7F0BFCCC 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 -/* 0F4840 7F0BFCD0 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 -/* 0F4844 7F0BFCD4 000AC880 */ sll $t9, $t2, 2 -/* 0F4848 7F0BFCD8 03384021 */ addu $t0, $t9, $t8 -/* 0F484C 7F0BFCDC 01EE2021 */ addu $a0, $t7, $t6 -.Ljp7F0BFCE0: -/* 0F4850 7F0BFCE0 8C6F0000 */ lw $t7, ($v1) -/* 0F4854 7F0BFCE4 8DEE00D8 */ lw $t6, 0xd8($t7) -/* 0F4858 7F0BFCE8 55C00003 */ bnezl $t6, .Ljp7F0BFCF8 -/* 0F485C 7F0BFCEC 8C780004 */ lw $t8, 4($v1) -/* 0F4860 7F0BFCF0 24C60001 */ addiu $a2, $a2, 1 -/* 0F4864 7F0BFCF4 8C780004 */ lw $t8, 4($v1) -.Ljp7F0BFCF8: -/* 0F4868 7F0BFCF8 8C990024 */ lw $t9, 0x24($a0) -/* 0F486C 7F0BFCFC 8F0F00D8 */ lw $t7, 0xd8($t8) -/* 0F4870 7F0BFD00 00B92821 */ addu $a1, $a1, $t9 -/* 0F4874 7F0BFD04 55E00003 */ bnezl $t7, .Ljp7F0BFD14 -/* 0F4878 7F0BFD08 8C790008 */ lw $t9, 8($v1) -/* 0F487C 7F0BFD0C 24C60001 */ addiu $a2, $a2, 1 -/* 0F4880 7F0BFD10 8C790008 */ lw $t9, 8($v1) -.Ljp7F0BFD14: -/* 0F4884 7F0BFD14 8C8E0094 */ lw $t6, 0x94($a0) -/* 0F4888 7F0BFD18 8F3800D8 */ lw $t8, 0xd8($t9) -/* 0F488C 7F0BFD1C 00AE2821 */ addu $a1, $a1, $t6 -/* 0F4890 7F0BFD20 57000003 */ bnezl $t8, .Ljp7F0BFD30 -/* 0F4894 7F0BFD24 8C6E000C */ lw $t6, 0xc($v1) -/* 0F4898 7F0BFD28 24C60001 */ addiu $a2, $a2, 1 -/* 0F489C 7F0BFD2C 8C6E000C */ lw $t6, 0xc($v1) -.Ljp7F0BFD30: -/* 0F48A0 7F0BFD30 8C8F0104 */ lw $t7, 0x104($a0) -/* 0F48A4 7F0BFD34 24630010 */ addiu $v1, $v1, 0x10 -/* 0F48A8 7F0BFD38 8DD900D8 */ lw $t9, 0xd8($t6) -/* 0F48AC 7F0BFD3C 00AF2821 */ addu $a1, $a1, $t7 -/* 0F48B0 7F0BFD40 57200003 */ bnezl $t9, .Ljp7F0BFD50 -/* 0F48B4 7F0BFD44 8C980174 */ lw $t8, 0x174($a0) -/* 0F48B8 7F0BFD48 24C60001 */ addiu $a2, $a2, 1 -/* 0F48BC 7F0BFD4C 8C980174 */ lw $t8, 0x174($a0) -.Ljp7F0BFD50: -/* 0F48C0 7F0BFD50 248401C0 */ addiu $a0, $a0, 0x1c0 -/* 0F48C4 7F0BFD54 1468FFE2 */ bne $v1, $t0, .Ljp7F0BFCE0 -/* 0F48C8 7F0BFD58 00B82821 */ addu $a1, $a1, $t8 -.Ljp7F0BFD5C: -/* 0F48CC 7F0BFD5C 28A10002 */ slti $at, $a1, 2 -/* 0F48D0 7F0BFD60 1420001C */ bnez $at, .Ljp7F0BFDD4 -/* 0F48D4 7F0BFD64 000C78C0 */ sll $t7, $t4, 3 -/* 0F48D8 7F0BFD68 01EC7823 */ subu $t7, $t7, $t4 -/* 0F48DC 7F0BFD6C 3C0E8008 */ lui $t6, %hi(player1_player_data) # $t6, 0x8008 -/* 0F48E0 7F0BFD70 25CE9F60 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x60a0 -/* 0F48E4 7F0BFD74 000F7900 */ sll $t7, $t7, 4 -/* 0F48E8 7F0BFD78 01EE1821 */ addu $v1, $t7, $t6 -/* 0F48EC 7F0BFD7C 906F0068 */ lbu $t7, 0x68($v1) -/* 0F48F0 7F0BFD80 3C188008 */ lui $t8, %hi(players) # $t8, 0x8008 -/* 0F48F4 7F0BFD84 27189F50 */ addiu $t8, %lo(players) # addiu $t8, $t8, -0x60b0 -/* 0F48F8 7F0BFD88 000CC880 */ sll $t9, $t4, 2 -/* 0F48FC 7F0BFD8C 15E00003 */ bnez $t7, .Ljp7F0BFD9C -/* 0F4900 7F0BFD90 03382021 */ addu $a0, $t9, $t8 -/* 0F4904 7F0BFD94 24CE0001 */ addiu $t6, $a2, 1 -/* 0F4908 7F0BFD98 A06E0068 */ sb $t6, 0x68($v1) -.Ljp7F0BFD9C: -/* 0F490C 7F0BFD9C 8C830000 */ lw $v1, ($a0) -/* 0F4910 7F0BFDA0 25AD0001 */ addiu $t5, $t5, 1 -/* 0F4914 7F0BFDA4 8C790424 */ lw $t9, 0x424($v1) -/* 0F4918 7F0BFDA8 5320000B */ beql $t9, $zero, .Ljp7F0BFDD8 -/* 0F491C 7F0BFDAC 258C0001 */ addiu $t4, $t4, 1 -/* 0F4920 7F0BFDB0 8C780428 */ lw $t8, 0x428($v1) -/* 0F4924 7F0BFDB4 53000008 */ beql $t8, $zero, .Ljp7F0BFDD8 -/* 0F4928 7F0BFDB8 258C0001 */ addiu $t4, $t4, 1 -/* 0F492C 7F0BFDBC C47003E4 */ lwc1 $f16, 0x3e4($v1) -/* 0F4930 7F0BFDC0 4600803C */ c.lt.s $f16, $f0 -/* 0F4934 7F0BFDC4 00000000 */ nop -/* 0F4938 7F0BFDC8 45020003 */ bc1fl .Ljp7F0BFDD8 -/* 0F493C 7F0BFDCC 258C0001 */ addiu $t4, $t4, 1 -/* 0F4940 7F0BFDD0 27FF0001 */ addiu $ra, $ra, 1 -.Ljp7F0BFDD4: -/* 0F4944 7F0BFDD4 258C0001 */ addiu $t4, $t4, 1 -.Ljp7F0BFDD8: -/* 0F4948 7F0BFDD8 018A082A */ slt $at, $t4, $t2 -/* 0F494C 7F0BFDDC 5420FF95 */ bnezl $at, .Ljp7F0BFC34 -/* 0F4950 7F0BFDE0 00002825 */ move $a1, $zero -.Ljp7F0BFDE4: -/* 0F4954 7F0BFDE4 2443FFFF */ addiu $v1, $v0, -1 -/* 0F4958 7F0BFDE8 03E3082A */ slt $at, $ra, $v1 -/* 0F495C 7F0BFDEC 54200006 */ bnezl $at, .Ljp7F0BFE08 -/* 0F4960 7F0BFDF0 01A3082A */ slt $at, $t5, $v1 -/* 0F4964 7F0BFDF4 0FC30C78 */ jal sub_GAME_7F0C2530 -/* 0F4968 7F0BFDF8 00002025 */ move $a0, $zero -/* 0F496C 7F0BFDFC 10000006 */ b .Ljp7F0BFE18 -/* 0F4970 7F0BFE00 00000000 */ nop -/* 0F4974 7F0BFE04 01A3082A */ slt $at, $t5, $v1 -.Ljp7F0BFE08: -/* 0F4978 7F0BFE08 14200003 */ bnez $at, .Ljp7F0BFE18 -/* 0F497C 7F0BFE0C 00000000 */ nop -/* 0F4980 7F0BFE10 0FC30C74 */ jal set_stopplay_flag -/* 0F4984 7F0BFE14 00000000 */ nop -.Ljp7F0BFE18: -/* 0F4988 7F0BFE18 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 -/* 0F498C 7F0BFE1C 3C0F8005 */ lui $t7, %hi(D_80048394) # $t7, 0x8005 -/* 0F4990 7F0BFE20 8DEF83C8 */ lw $t7, %lo(D_80048394)($t7) -/* 0F4994 7F0BFE24 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) -/* 0F4998 7F0BFE28 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0F499C 7F0BFE2C 44810000 */ mtc1 $at, $f0 -/* 0F49A0 7F0BFE30 01E27021 */ addu $t6, $t7, $v0 -/* 0F49A4 7F0BFE34 448E9000 */ mtc1 $t6, $f18 -/* 0F49A8 7F0BFE38 3C018005 */ lui $at, %hi(D_80048394) # $at, 0x8005 -/* 0F49AC 7F0BFE3C AC2E83C8 */ sw $t6, %lo(D_80048394)($at) -/* 0F49B0 7F0BFE40 46809120 */ cvt.s.w $f4, $f18 -/* 0F49B4 7F0BFE44 3C038005 */ lui $v1, %hi(D_800483A8) # $v1, 0x8005 -/* 0F49B8 7F0BFE48 3C018005 */ lui $at, %hi(cur_mp_sec) # $at, 0x8005 -/* 0F49BC 7F0BFE4C 246383DC */ addiu $v1, %lo(D_800483A8) # addiu $v1, $v1, -0x7c24 -/* 0F49C0 7F0BFE50 00002025 */ move $a0, $zero -/* 0F49C4 7F0BFE54 3405FFFF */ li $a1, 65535 -/* 0F49C8 7F0BFE58 46002183 */ div.s $f6, $f4, $f0 -/* 0F49CC 7F0BFE5C E42683D8 */ swc1 $f6, %lo(cur_mp_sec)($at) -/* 0F49D0 7F0BFE60 8C790000 */ lw $t9, ($v1) -/* 0F49D4 7F0BFE64 3C018005 */ lui $at, %hi(cur_mp_min) # $at, 0x8005 -/* 0F49D8 7F0BFE68 03227821 */ addu $t7, $t9, $v0 -/* 0F49DC 7F0BFE6C 448F4000 */ mtc1 $t7, $f8 -/* 0F49E0 7F0BFE70 AC6F0000 */ sw $t7, ($v1) -/* 0F49E4 7F0BFE74 468042A0 */ cvt.s.w $f10, $f8 -/* 0F49E8 7F0BFE78 46005403 */ div.s $f16, $f10, $f0 -/* 0F49EC 7F0BFE7C 0C003104 */ jal get_controller_buttons_pressed -/* 0F49F0 7F0BFE80 E43083E0 */ swc1 $f16, %lo(cur_mp_min)($at) -/* 0F49F4 7F0BFE84 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0F49F8 7F0BFE88 44810000 */ mtc1 $at, $f0 -/* 0F49FC 7F0BFE8C 10400009 */ beqz $v0, .Ljp7F0BFEB4 -/* 0F4A00 7F0BFE90 3C038005 */ lui $v1, %hi(D_80048390) -/* 0F4A04 7F0BFE94 3C038005 */ lui $v1, %hi(D_80048390) # $v1, 0x8005 -/* 0F4A08 7F0BFE98 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 -/* 0F4A0C 7F0BFE9C 246383C4 */ addiu $v1, %lo(D_80048390) # addiu $v1, $v1, -0x7c3c -/* 0F4A10 7F0BFEA0 AC2083BC */ sw $zero, %lo(D_80048388)($at) -/* 0F4A14 7F0BFEA4 AC600000 */ sw $zero, ($v1) -/* 0F4A18 7F0BFEA8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 -/* 0F4A1C 7F0BFEAC 1000000C */ b .Ljp7F0BFEE0 -/* 0F4A20 7F0BFEB0 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) -.Ljp7F0BFEB4: -/* 0F4A24 7F0BFEB4 246383C4 */ addiu $v1, $v1, %lo(D_80048390) -/* 0F4A28 7F0BFEB8 3C028005 */ lui $v0, %hi(clock_timer) # $v0, 0x8005 -/* 0F4A2C 7F0BFEBC 8C4283A4 */ lw $v0, %lo(clock_timer)($v0) -/* 0F4A30 7F0BFEC0 8C6E0000 */ lw $t6, ($v1) -/* 0F4A34 7F0BFEC4 240F0001 */ li $t7, 1 -/* 0F4A38 7F0BFEC8 01C2C821 */ addu $t9, $t6, $v0 -/* 0F4A3C 7F0BFECC 2B210708 */ slti $at, $t9, 0x708 -/* 0F4A40 7F0BFED0 14200003 */ bnez $at, .Ljp7F0BFEE0 -/* 0F4A44 7F0BFED4 AC790000 */ sw $t9, ($v1) -/* 0F4A48 7F0BFED8 3C018005 */ lui $at, %hi(D_80048388) # $at, 0x8005 -/* 0F4A4C 7F0BFEDC AC2F83BC */ sw $t7, %lo(D_80048388)($at) -.Ljp7F0BFEE0: -/* 0F4A50 7F0BFEE0 3C0E8005 */ lui $t6, %hi(D_80048388) # $t6, 0x8005 -/* 0F4A54 7F0BFEE4 8DCE83BC */ lw $t6, %lo(D_80048388)($t6) -/* 0F4A58 7F0BFEE8 3C038005 */ lui $v1, %hi(D_8004838C) # $v1, 0x8005 -/* 0F4A5C 7F0BFEEC 246383C0 */ addiu $v1, %lo(D_8004838C) # addiu $v1, $v1, -0x7c40 -/* 0F4A60 7F0BFEF0 11C00005 */ beqz $t6, .Ljp7F0BFF08 -/* 0F4A64 7F0BFEF4 00000000 */ nop -/* 0F4A68 7F0BFEF8 8C790000 */ lw $t9, ($v1) -/* 0F4A6C 7F0BFEFC 0322C021 */ addu $t8, $t9, $v0 -/* 0F4A70 7F0BFF00 10000015 */ b .Ljp7F0BFF58 -/* 0F4A74 7F0BFF04 AC780000 */ sw $t8, ($v1) -.Ljp7F0BFF08: -/* 0F4A78 7F0BFF08 3C038005 */ lui $v1, %hi(D_800483B0) # $v1, 0x8005 -/* 0F4A7C 7F0BFF0C 246383E4 */ addiu $v1, %lo(D_800483B0) # addiu $v1, $v1, -0x7c1c -/* 0F4A80 7F0BFF10 8C6F0000 */ lw $t7, ($v1) -/* 0F4A84 7F0BFF14 3C048005 */ lui $a0, %hi(D_800483B8) # $a0, 0x8005 -/* 0F4A88 7F0BFF18 3C018005 */ lui $at, %hi(stage_time_sec) # $at, 0x8005 -/* 0F4A8C 7F0BFF1C 01E2C821 */ addu $t9, $t7, $v0 -/* 0F4A90 7F0BFF20 44999000 */ mtc1 $t9, $f18 -/* 0F4A94 7F0BFF24 AC790000 */ sw $t9, ($v1) -/* 0F4A98 7F0BFF28 248483EC */ addiu $a0, %lo(D_800483B8) # addiu $a0, $a0, -0x7c14 -/* 0F4A9C 7F0BFF2C 46809120 */ cvt.s.w $f4, $f18 -/* 0F4AA0 7F0BFF30 46002183 */ div.s $f6, $f4, $f0 -/* 0F4AA4 7F0BFF34 E42683E8 */ swc1 $f6, %lo(stage_time_sec)($at) -/* 0F4AA8 7F0BFF38 8C980000 */ lw $t8, ($a0) -/* 0F4AAC 7F0BFF3C 3C018005 */ lui $at, %hi(poweron_time_sec) # $at, 0x8005 -/* 0F4AB0 7F0BFF40 03027021 */ addu $t6, $t8, $v0 -/* 0F4AB4 7F0BFF44 448E4000 */ mtc1 $t6, $f8 -/* 0F4AB8 7F0BFF48 AC8E0000 */ sw $t6, ($a0) -/* 0F4ABC 7F0BFF4C 468042A0 */ cvt.s.w $f10, $f8 -/* 0F4AC0 7F0BFF50 46005403 */ div.s $f16, $f10, $f0 -/* 0F4AC4 7F0BFF54 E43083F0 */ swc1 $f16, %lo(poweron_time_sec)($at) -.Ljp7F0BFF58: -/* 0F4AC8 7F0BFF58 0C00114D */ jal set_video2_settings_offset_24 -/* 0F4ACC 7F0BFF5C 24040001 */ li $a0, 1 -/* 0F4AD0 7F0BFF60 3C198005 */ lui $t9, %hi(current_stage_to_load) # $t9, 0x8005 -/* 0F4AD4 7F0BFF64 8F398394 */ lw $t9, %lo(current_stage_to_load)($t9) -/* 0F4AD8 7F0BFF68 2401005A */ li $at, 90 -/* 0F4ADC 7F0BFF6C 17210009 */ bne $t9, $at, .Ljp7F0BFF94 -/* 0F4AE0 7F0BFF70 00000000 */ nop -/* 0F4AE4 7F0BFF74 0FC24907 */ jal cheat_buttons_mp_related -/* 0F4AE8 7F0BFF78 00000000 */ nop -/* 0F4AEC 7F0BFF7C 0FC069F4 */ jal menu_init -/* 0F4AF0 7F0BFF80 00000000 */ nop -/* 0F4AF4 7F0BFF84 0FC3097C */ jal something_with_LnameJ -/* 0F4AF8 7F0BFF88 00000000 */ nop -/* 0F4AFC 7F0BFF8C 100000A9 */ b .Ljp7F0C0234 -/* 0F4B00 7F0BFF90 00000000 */ nop -.Ljp7F0BFF94: -/* 0F4B04 7F0BFF94 0FC271D7 */ jal sub_GAME_7F09BBBC -/* 0F4B08 7F0BFF98 00000000 */ nop -/* 0F4B0C 7F0BFF9C 0FC2FD2D */ jal sub_GAME_7F0BE8D0 -/* 0F4B10 7F0BFFA0 00000000 */ nop -/* 0F4B14 7F0BFFA4 0FC2F4E1 */ jal sub_GAME_7F0BC7D4 -/* 0F4B18 7F0BFFA8 00000000 */ nop -/* 0F4B1C 7F0BFFAC 0FC24E7C */ jal sub_GAME_7F092E50 -/* 0F4B20 7F0BFFB0 00000000 */ nop -/* 0F4B24 7F0BFFB4 0FC253F6 */ jal sub_GAME_7F094438 -/* 0F4B28 7F0BFFB8 00000000 */ nop -/* 0F4B2C 7F0BFFBC 0FC294E7 */ jal sub_GAME_7F0A47FC -/* 0F4B30 7F0BFFC0 00000000 */ nop -/* 0F4B34 7F0BFFC4 0FC1A516 */ jal sub_GAME_7F068E6C -/* 0F4B38 7F0BFFC8 00000000 */ nop -/* 0F4B3C 7F0BFFCC 0FC28D1D */ jal sub_GAME_7F0A28D4 -/* 0F4B40 7F0BFFD0 00000000 */ nop -/* 0F4B44 7F0BFFD4 0FC28238 */ jal sub_GAME_7F09FD3C -/* 0F4B48 7F0BFFD8 00000000 */ nop -/* 0F4B4C 7F0BFFDC 0FC0F252 */ jal handle_mp_respawn_and_some_things -/* 0F4B50 7F0BFFE0 00000000 */ nop -/* 0F4B54 7F0BFFE4 0FC3081E */ jal reset_all_music_slots -/* 0F4B58 7F0BFFE8 00000000 */ nop -/* 0F4B5C 7F0BFFEC 0FC3097C */ jal something_with_LnameJ -/* 0F4B60 7F0BFFF0 00000000 */ nop -/* 0F4B64 7F0BFFF4 0FC246A6 */ jal get_debug_joy2detailedit_flag -/* 0F4B68 7F0BFFF8 00000000 */ nop -/* 0F4B6C 7F0BFFFC 1040004D */ beqz $v0, .Ljp7F0C0134 -/* 0F4B70 7F0C0000 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 -/* 0F4B74 7F0C0004 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 -/* 0F4B78 7F0C0008 8CD80000 */ lw $t8, ($a2) -/* 0F4B7C 7F0C000C 24043000 */ li $a0, 12288 -/* 0F4B80 7F0C0010 17000048 */ bnez $t8, .Ljp7F0C0134 -/* 0F4B84 7F0C0014 00000000 */ nop -/* 0F4B88 7F0C0018 0C0025CC */ jal mempAllocBytesInBank -/* 0F4B8C 7F0C001C 24050004 */ li $a1, 4 -/* 0F4B90 7F0C0020 3C068005 */ lui $a2, %hi(D_800483C8) # $a2, 0x8005 -/* 0F4B94 7F0C0024 24C683FC */ addiu $a2, %lo(D_800483C8) # addiu $a2, $a2, -0x7c04 -/* 0F4B98 7F0C0028 10400042 */ beqz $v0, .Ljp7F0C0134 -/* 0F4B9C 7F0C002C ACC20000 */ sw $v0, ($a2) -/* 0F4BA0 7F0C0030 00001825 */ move $v1, $zero -/* 0F4BA4 7F0C0034 24052EE0 */ li $a1, 12000 -/* 0F4BA8 7F0C0038 240400FF */ li $a0, 255 -.Ljp7F0C003C: -/* 0F4BAC 7F0C003C 8CCE0000 */ lw $t6, ($a2) -/* 0F4BB0 7F0C0040 01C3C821 */ addu $t9, $t6, $v1 -/* 0F4BB4 7F0C0044 A3240000 */ sb $a0, ($t9) -/* 0F4BB8 7F0C0048 8CD80000 */ lw $t8, ($a2) -/* 0F4BBC 7F0C004C 03031021 */ addu $v0, $t8, $v1 -/* 0F4BC0 7F0C0050 904F0001 */ lbu $t7, 1($v0) -/* 0F4BC4 7F0C0054 31EEFF1F */ andi $t6, $t7, 0xff1f -/* 0F4BC8 7F0C0058 35D90020 */ ori $t9, $t6, 0x20 -/* 0F4BCC 7F0C005C A0590001 */ sb $t9, 1($v0) -/* 0F4BD0 7F0C0060 8CD80000 */ lw $t8, ($a2) -/* 0F4BD4 7F0C0064 03031021 */ addu $v0, $t8, $v1 -/* 0F4BD8 7F0C0068 904F0001 */ lbu $t7, 1($v0) -/* 0F4BDC 7F0C006C 31EEFFE3 */ andi $t6, $t7, 0xffe3 -/* 0F4BE0 7F0C0070 35D90004 */ ori $t9, $t6, 4 -/* 0F4BE4 7F0C0074 A0590001 */ sb $t9, 1($v0) -/* 0F4BE8 7F0C0078 8CD80000 */ lw $t8, ($a2) -/* 0F4BEC 7F0C007C 03037821 */ addu $t7, $t8, $v1 -/* 0F4BF0 7F0C0080 A1E40004 */ sb $a0, 4($t7) -/* 0F4BF4 7F0C0084 8CCE0000 */ lw $t6, ($a2) -/* 0F4BF8 7F0C0088 01C31021 */ addu $v0, $t6, $v1 -/* 0F4BFC 7F0C008C 90590005 */ lbu $t9, 5($v0) -/* 0F4C00 7F0C0090 3338FF1F */ andi $t8, $t9, 0xff1f -/* 0F4C04 7F0C0094 370F0020 */ ori $t7, $t8, 0x20 -/* 0F4C08 7F0C0098 A04F0005 */ sb $t7, 5($v0) -/* 0F4C0C 7F0C009C 8CCE0000 */ lw $t6, ($a2) -/* 0F4C10 7F0C00A0 01C31021 */ addu $v0, $t6, $v1 -/* 0F4C14 7F0C00A4 90590005 */ lbu $t9, 5($v0) -/* 0F4C18 7F0C00A8 3338FFE3 */ andi $t8, $t9, 0xffe3 -/* 0F4C1C 7F0C00AC 370F0004 */ ori $t7, $t8, 4 -/* 0F4C20 7F0C00B0 A04F0005 */ sb $t7, 5($v0) -/* 0F4C24 7F0C00B4 8CCE0000 */ lw $t6, ($a2) -/* 0F4C28 7F0C00B8 01C3C821 */ addu $t9, $t6, $v1 -/* 0F4C2C 7F0C00BC A3240008 */ sb $a0, 8($t9) -/* 0F4C30 7F0C00C0 8CD80000 */ lw $t8, ($a2) -/* 0F4C34 7F0C00C4 03031021 */ addu $v0, $t8, $v1 -/* 0F4C38 7F0C00C8 904F0009 */ lbu $t7, 9($v0) -/* 0F4C3C 7F0C00CC 31EEFF1F */ andi $t6, $t7, 0xff1f -/* 0F4C40 7F0C00D0 35D90020 */ ori $t9, $t6, 0x20 -/* 0F4C44 7F0C00D4 A0590009 */ sb $t9, 9($v0) -/* 0F4C48 7F0C00D8 8CD80000 */ lw $t8, ($a2) -/* 0F4C4C 7F0C00DC 03031021 */ addu $v0, $t8, $v1 -/* 0F4C50 7F0C00E0 904F0009 */ lbu $t7, 9($v0) -/* 0F4C54 7F0C00E4 31EEFFE3 */ andi $t6, $t7, 0xffe3 -/* 0F4C58 7F0C00E8 35D90004 */ ori $t9, $t6, 4 -/* 0F4C5C 7F0C00EC A0590009 */ sb $t9, 9($v0) -/* 0F4C60 7F0C00F0 8CD80000 */ lw $t8, ($a2) -/* 0F4C64 7F0C00F4 03037821 */ addu $t7, $t8, $v1 -/* 0F4C68 7F0C00F8 A1E4000C */ sb $a0, 0xc($t7) -/* 0F4C6C 7F0C00FC 8CCE0000 */ lw $t6, ($a2) -/* 0F4C70 7F0C0100 01C31021 */ addu $v0, $t6, $v1 -/* 0F4C74 7F0C0104 9059000D */ lbu $t9, 0xd($v0) -/* 0F4C78 7F0C0108 3338FF1F */ andi $t8, $t9, 0xff1f -/* 0F4C7C 7F0C010C 370F0020 */ ori $t7, $t8, 0x20 -/* 0F4C80 7F0C0110 A04F000D */ sb $t7, 0xd($v0) -/* 0F4C84 7F0C0114 8CCE0000 */ lw $t6, ($a2) -/* 0F4C88 7F0C0118 01C31021 */ addu $v0, $t6, $v1 -/* 0F4C8C 7F0C011C 9059000D */ lbu $t9, 0xd($v0) -/* 0F4C90 7F0C0120 24630010 */ addiu $v1, $v1, 0x10 -/* 0F4C94 7F0C0124 3338FFE3 */ andi $t8, $t9, 0xffe3 -/* 0F4C98 7F0C0128 370F0004 */ ori $t7, $t8, 4 -/* 0F4C9C 7F0C012C 1465FFC3 */ bne $v1, $a1, .Ljp7F0C003C -/* 0F4CA0 7F0C0130 A04F000D */ sb $t7, 0xd($v0) -.Ljp7F0C0134: -/* 0F4CA4 7F0C0134 0FC246C7 */ jal get_debug_portal_flag -/* 0F4CA8 7F0C0138 00000000 */ nop -/* 0F4CAC 7F0C013C 10400003 */ beqz $v0, .Ljp7F0C014C -/* 0F4CB0 7F0C0140 00000000 */ nop -/* 0F4CB4 7F0C0144 0FC2FAB4 */ jal sub_GAME_7F0BDF10 -/* 0F4CB8 7F0C0148 00002025 */ move $a0, $zero -.Ljp7F0C014C: -/* 0F4CBC 7F0C014C 0FC2467D */ jal get_debug_limit_controller_input -/* 0F4CC0 7F0C0150 00000000 */ nop -/* 0F4CC4 7F0C0154 24010004 */ li $at, 4 -/* 0F4CC8 7F0C0158 10410006 */ beq $v0, $at, .Ljp7F0C0174 -/* 0F4CCC 7F0C015C 00002025 */ move $a0, $zero -/* 0F4CD0 7F0C0160 24010008 */ li $at, 8 -/* 0F4CD4 7F0C0164 1041001A */ beq $v0, $at, .Ljp7F0C01D0 -/* 0F4CD8 7F0C0168 00002025 */ move $a0, $zero -/* 0F4CDC 7F0C016C 10000031 */ b .Ljp7F0C0234 -/* 0F4CE0 7F0C0170 00000000 */ nop -.Ljp7F0C0174: -/* 0F4CE4 7F0C0174 0C003104 */ jal get_controller_buttons_pressed -/* 0F4CE8 7F0C0178 24050002 */ li $a1, 2 -/* 0F4CEC 7F0C017C 50400008 */ beql $v0, $zero, .Ljp7F0C01A0 -/* 0F4CF0 7F0C0180 00002025 */ move $a0, $zero -/* 0F4CF4 7F0C0184 0FC2C078 */ jal sub_GAME_7F0AF630 -/* 0F4CF8 7F0C0188 2404FFFF */ li $a0, -1 -/* 0F4CFC 7F0C018C 00002025 */ move $a0, $zero -/* 0F4D00 7F0C0190 00002825 */ move $a1, $zero -/* 0F4D04 7F0C0194 0FC2CE3A */ jal sub_GAME_7F0B2D38 -/* 0F4D08 7F0C0198 00003025 */ move $a2, $zero -/* 0F4D0C 7F0C019C 00002025 */ move $a0, $zero -.Ljp7F0C01A0: -/* 0F4D10 7F0C01A0 0C003104 */ jal get_controller_buttons_pressed -/* 0F4D14 7F0C01A4 24050001 */ li $a1, 1 -/* 0F4D18 7F0C01A8 10400022 */ beqz $v0, .Ljp7F0C0234 -/* 0F4D1C 7F0C01AC 00000000 */ nop -/* 0F4D20 7F0C01B0 0FC2C078 */ jal sub_GAME_7F0AF630 -/* 0F4D24 7F0C01B4 24040001 */ li $a0, 1 -/* 0F4D28 7F0C01B8 00002025 */ move $a0, $zero -/* 0F4D2C 7F0C01BC 00002825 */ move $a1, $zero -/* 0F4D30 7F0C01C0 0FC2CE3A */ jal sub_GAME_7F0B2D38 -/* 0F4D34 7F0C01C4 00003025 */ move $a2, $zero -/* 0F4D38 7F0C01C8 1000001A */ b .Ljp7F0C0234 -/* 0F4D3C 7F0C01CC 00000000 */ nop -.Ljp7F0C01D0: -/* 0F4D40 7F0C01D0 0C003104 */ jal get_controller_buttons_pressed -/* 0F4D44 7F0C01D4 24050002 */ li $a1, 2 -/* 0F4D48 7F0C01D8 50400004 */ beql $v0, $zero, .Ljp7F0C01EC -/* 0F4D4C 7F0C01DC 00002025 */ move $a0, $zero -/* 0F4D50 7F0C01E0 0FC08C46 */ jal sub_GAME_7F022E30 -/* 0F4D54 7F0C01E4 00000000 */ nop -/* 0F4D58 7F0C01E8 00002025 */ move $a0, $zero -.Ljp7F0C01EC: -/* 0F4D5C 7F0C01EC 0C003104 */ jal get_controller_buttons_pressed -/* 0F4D60 7F0C01F0 24050001 */ li $a1, 1 -/* 0F4D64 7F0C01F4 50400004 */ beql $v0, $zero, .Ljp7F0C0208 -/* 0F4D68 7F0C01F8 00002025 */ move $a0, $zero -/* 0F4D6C 7F0C01FC 0FC08C5E */ jal sub_GAME_7F022E90 -/* 0F4D70 7F0C0200 00000000 */ nop -/* 0F4D74 7F0C0204 00002025 */ move $a0, $zero -.Ljp7F0C0208: -/* 0F4D78 7F0C0208 0C003104 */ jal get_controller_buttons_pressed -/* 0F4D7C 7F0C020C 24050020 */ li $a1, 32 -/* 0F4D80 7F0C0210 50400004 */ beql $v0, $zero, .Ljp7F0C0224 -/* 0F4D84 7F0C0214 00002025 */ move $a0, $zero -/* 0F4D88 7F0C0218 0FC08C6C */ jal sub_GAME_7F022EC8 -/* 0F4D8C 7F0C021C 00000000 */ nop -/* 0F4D90 7F0C0220 00002025 */ move $a0, $zero -.Ljp7F0C0224: -/* 0F4D94 7F0C0224 0C0030DC */ jal get_controller_buttons_held -/* 0F4D98 7F0C0228 24050010 */ li $a1, 16 -/* 0F4D9C 7F0C022C 0FC08C72 */ jal sub_GAME_7F022EE0 -/* 0F4DA0 7F0C0230 0002202B */ sltu $a0, $zero, $v0 -.Ljp7F0C0234: -/* 0F4DA4 7F0C0234 0FC2467D */ jal get_debug_limit_controller_input -/* 0F4DA8 7F0C0238 00000000 */ nop -/* 0F4DAC 7F0C023C 2401000C */ li $at, 12 -/* 0F4DB0 7F0C0240 1041002E */ beq $v0, $at, .Ljp7F0C02FC -/* 0F4DB4 7F0C0244 00002025 */ move $a0, $zero -/* 0F4DB8 7F0C0248 2401000D */ li $at, 13 -/* 0F4DBC 7F0C024C 10410048 */ beq $v0, $at, .Ljp7F0C0370 -/* 0F4DC0 7F0C0250 00002025 */ move $a0, $zero -/* 0F4DC4 7F0C0254 24010038 */ li $at, 56 -/* 0F4DC8 7F0C0258 54410074 */ bnel $v0, $at, .Ljp7F0C042C -/* 0F4DCC 7F0C025C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F4DD0 7F0C0260 0C0010EA */ jal get_D_8002329C -/* 0F4DD4 7F0C0264 00000000 */ nop -/* 0F4DD8 7F0C0268 0C0010E4 */ jal get_D_800232A0 -/* 0F4DDC 7F0C026C AFA20030 */ sw $v0, 0x30($sp) -/* 0F4DE0 7F0C0270 AFA2002C */ sw $v0, 0x2c($sp) -/* 0F4DE4 7F0C0274 00002025 */ move $a0, $zero -/* 0F4DE8 7F0C0278 0C0030DC */ jal get_controller_buttons_held -/* 0F4DEC 7F0C027C 24050004 */ li $a1, 4 -/* 0F4DF0 7F0C0280 10400004 */ beqz $v0, .Ljp7F0C0294 -/* 0F4DF4 7F0C0284 00002025 */ move $a0, $zero -/* 0F4DF8 7F0C0288 8FAE002C */ lw $t6, 0x2c($sp) -/* 0F4DFC 7F0C028C 25D90001 */ addiu $t9, $t6, 1 -/* 0F4E00 7F0C0290 AFB9002C */ sw $t9, 0x2c($sp) -.Ljp7F0C0294: -/* 0F4E04 7F0C0294 0C0030DC */ jal get_controller_buttons_held -/* 0F4E08 7F0C0298 24050008 */ li $a1, 8 -/* 0F4E0C 7F0C029C 10400004 */ beqz $v0, .Ljp7F0C02B0 -/* 0F4E10 7F0C02A0 00002025 */ move $a0, $zero -/* 0F4E14 7F0C02A4 8FB8002C */ lw $t8, 0x2c($sp) -/* 0F4E18 7F0C02A8 270FFFFF */ addiu $t7, $t8, -1 -/* 0F4E1C 7F0C02AC AFAF002C */ sw $t7, 0x2c($sp) -.Ljp7F0C02B0: -/* 0F4E20 7F0C02B0 0C0030DC */ jal get_controller_buttons_held -/* 0F4E24 7F0C02B4 24050001 */ li $a1, 1 -/* 0F4E28 7F0C02B8 10400004 */ beqz $v0, .Ljp7F0C02CC -/* 0F4E2C 7F0C02BC 00002025 */ move $a0, $zero -/* 0F4E30 7F0C02C0 8FAE0030 */ lw $t6, 0x30($sp) -/* 0F4E34 7F0C02C4 25D90001 */ addiu $t9, $t6, 1 -/* 0F4E38 7F0C02C8 AFB90030 */ sw $t9, 0x30($sp) -.Ljp7F0C02CC: -/* 0F4E3C 7F0C02CC 0C0030DC */ jal get_controller_buttons_held -/* 0F4E40 7F0C02D0 24050002 */ li $a1, 2 -/* 0F4E44 7F0C02D4 10400003 */ beqz $v0, .Ljp7F0C02E4 -/* 0F4E48 7F0C02D8 8FB80030 */ lw $t8, 0x30($sp) -/* 0F4E4C 7F0C02DC 270FFFFF */ addiu $t7, $t8, -1 -/* 0F4E50 7F0C02E0 AFAF0030 */ sw $t7, 0x30($sp) -.Ljp7F0C02E4: -/* 0F4E54 7F0C02E4 0C0010E7 */ jal set_D_8002329C -/* 0F4E58 7F0C02E8 8FA40030 */ lw $a0, 0x30($sp) -/* 0F4E5C 7F0C02EC 0C0010E1 */ jal set_D_800232A0 -/* 0F4E60 7F0C02F0 8FA4002C */ lw $a0, 0x2c($sp) -/* 0F4E64 7F0C02F4 1000004D */ b .Ljp7F0C042C -/* 0F4E68 7F0C02F8 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F0C02FC: -/* 0F4E6C 7F0C02FC 0C003104 */ jal get_controller_buttons_pressed -/* 0F4E70 7F0C0300 24050202 */ li $a1, 514 -/* 0F4E74 7F0C0304 50400004 */ beql $v0, $zero, .Ljp7F0C0318 -/* 0F4E78 7F0C0308 00002025 */ move $a0, $zero -/* 0F4E7C 7F0C030C 0FC2F97A */ jal music_append_play_endtheme -/* 0F4E80 7F0C0310 00000000 */ nop -/* 0F4E84 7F0C0314 00002025 */ move $a0, $zero -.Ljp7F0C0318: -/* 0F4E88 7F0C0318 0C003104 */ jal get_controller_buttons_pressed -/* 0F4E8C 7F0C031C 24050101 */ li $a1, 257 -/* 0F4E90 7F0C0320 50400004 */ beql $v0, $zero, .Ljp7F0C0334 -/* 0F4E94 7F0C0324 00002025 */ move $a0, $zero -/* 0F4E98 7F0C0328 0FC2F967 */ jal music_append_play_solo_death_short -/* 0F4E9C 7F0C032C 00000000 */ nop -/* 0F4EA0 7F0C0330 00002025 */ move $a0, $zero -.Ljp7F0C0334: -/* 0F4EA4 7F0C0334 0C003104 */ jal get_controller_buttons_pressed -/* 0F4EA8 7F0C0338 24050400 */ li $a1, 1024 -/* 0F4EAC 7F0C033C 50400004 */ beql $v0, $zero, .Ljp7F0C0350 -/* 0F4EB0 7F0C0340 00002025 */ move $a0, $zero -/* 0F4EB4 7F0C0344 0C001BF8 */ jal musicTrack1Stop -/* 0F4EB8 7F0C0348 00000000 */ nop -/* 0F4EBC 7F0C034C 00002025 */ move $a0, $zero -.Ljp7F0C0350: -/* 0F4EC0 7F0C0350 0C003104 */ jal get_controller_buttons_pressed -/* 0F4EC4 7F0C0354 24054000 */ li $a1, 16384 -/* 0F4EC8 7F0C0358 50400034 */ beql $v0, $zero, .Ljp7F0C042C -/* 0F4ECC 7F0C035C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F4ED0 7F0C0360 0C001C2C */ jal musicTrack1Tempo -/* 0F4ED4 7F0C0364 00000000 */ nop -/* 0F4ED8 7F0C0368 10000030 */ b .Ljp7F0C042C -/* 0F4EDC 7F0C036C 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F0C0370: -/* 0F4EE0 7F0C0370 0C003104 */ jal get_controller_buttons_pressed -/* 0F4EE4 7F0C0374 24050622 */ li $a1, 1570 -/* 0F4EE8 7F0C0378 1040000B */ beqz $v0, .Ljp7F0C03A8 -/* 0F4EEC 7F0C037C 3C058005 */ lui $a1, 0x8005 -/* 0F4EF0 7F0C0380 84A58418 */ lh $a1, %lo(D_800483E4)($a1) -/* 0F4EF4 7F0C0384 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0F4EF8 7F0C0388 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 -/* 0F4EFC 7F0C038C 24A5FFFF */ addiu $a1, $a1, -1 -/* 0F4F00 7F0C0390 00057400 */ sll $t6, $a1, 0x10 -/* 0F4F04 7F0C0394 000E2C03 */ sra $a1, $t6, 0x10 -/* 0F4F08 7F0C0398 A4258418 */ sh $a1, %lo(D_800483E4)($at) -/* 0F4F0C 7F0C039C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0F4F10 7F0C03A0 0C002386 */ jal play_sfx_a1 -/* 0F4F14 7F0C03A4 00003025 */ move $a2, $zero -.Ljp7F0C03A8: -/* 0F4F18 7F0C03A8 00002025 */ move $a0, $zero -/* 0F4F1C 7F0C03AC 0C003104 */ jal get_controller_buttons_pressed -/* 0F4F20 7F0C03B0 24050911 */ li $a1, 2321 -/* 0F4F24 7F0C03B4 1040000B */ beqz $v0, .Ljp7F0C03E4 -/* 0F4F28 7F0C03B8 3C058005 */ lui $a1, 0x8005 -/* 0F4F2C 7F0C03BC 84A58418 */ lh $a1, %lo(D_800483E4)($a1) -/* 0F4F30 7F0C03C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0F4F34 7F0C03C4 3C018005 */ lui $at, %hi(D_800483E4) # $at, 0x8005 -/* 0F4F38 7F0C03C8 24A50001 */ addiu $a1, $a1, 1 -/* 0F4F3C 7F0C03CC 0005C400 */ sll $t8, $a1, 0x10 -/* 0F4F40 7F0C03D0 00182C03 */ sra $a1, $t8, 0x10 -/* 0F4F44 7F0C03D4 A4258418 */ sh $a1, %lo(D_800483E4)($at) -/* 0F4F48 7F0C03D8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0F4F4C 7F0C03DC 0C002386 */ jal play_sfx_a1 -/* 0F4F50 7F0C03E0 00003025 */ move $a2, $zero -.Ljp7F0C03E4: -/* 0F4F54 7F0C03E4 00002025 */ move $a0, $zero -/* 0F4F58 7F0C03E8 0C003104 */ jal get_controller_buttons_pressed -/* 0F4F5C 7F0C03EC 24050004 */ li $a1, 4 -/* 0F4F60 7F0C03F0 50400004 */ beql $v0, $zero, .Ljp7F0C0404 -/* 0F4F64 7F0C03F4 00002025 */ move $a0, $zero -/* 0F4F68 7F0C03F8 0C00244D */ jal sfx_c_70009124 -/* 0F4F6C 7F0C03FC 00000000 */ nop -/* 0F4F70 7F0C0400 00002025 */ move $a0, $zero -.Ljp7F0C0404: -/* 0F4F74 7F0C0404 0C003104 */ jal get_controller_buttons_pressed -/* 0F4F78 7F0C0408 24050008 */ li $a1, 8 -/* 0F4F7C 7F0C040C 10400006 */ beqz $v0, .Ljp7F0C0428 -/* 0F4F80 7F0C0410 3C058005 */ lui $a1, %hi(D_800483E4) # $a1, 0x8005 -/* 0F4F84 7F0C0414 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 0F4F88 7F0C0418 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) -/* 0F4F8C 7F0C041C 84A58418 */ lh $a1, %lo(D_800483E4)($a1) -/* 0F4F90 7F0C0420 0C002386 */ jal play_sfx_a1 -/* 0F4F94 7F0C0424 00003025 */ move $a2, $zero -.Ljp7F0C0428: -/* 0F4F98 7F0C0428 8FBF0014 */ lw $ra, 0x14($sp) -.Ljp7F0C042C: -/* 0F4F9C 7F0C042C 27BD0198 */ addiu $sp, $sp, 0x198 -/* 0F4FA0 7F0C0430 03E00008 */ jr $ra -/* 0F4FA4 7F0C0434 00000000 */ nop -) -#endif - #endif @@ -4291,14 +6063,14 @@ glabel sub_GAME_7F0BF800 /* 0F4398 7F0BF868 05C10010 */ bgez $t6, .L7F0BF8AC /* 0F439C 7F0BF86C 00000000 */ nop .L7F0BF870: -/* 0F43A0 7F0BF870 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43A0 7F0BF870 0C00303B */ jal joyGetStickX /* 0F43A4 7F0BF874 83A4002F */ lb $a0, 0x2f($sp) /* 0F43A8 7F0BF878 A3A20018 */ sb $v0, 0x18($sp) -/* 0F43AC 7F0BF87C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43AC 7F0BF87C 0C00307F */ jal joyGetStickY /* 0F43B0 7F0BF880 83A4002F */ lb $a0, 0x2f($sp) /* 0F43B4 7F0BF884 A3A20019 */ sb $v0, 0x19($sp) /* 0F43B8 7F0BF888 83A4002F */ lb $a0, 0x2f($sp) -/* 0F43BC 7F0BF88C 0C0030C3 */ jal get_controller_buttons_held +/* 0F43BC 7F0BF88C 0C0030C3 */ jal joyGetButtons /* 0F43C0 7F0BF890 3405FFFF */ li $a1, 65535 /* 0F43C4 7F0BF894 83A40018 */ lb $a0, 0x18($sp) /* 0F43C8 7F0BF898 83A50019 */ lb $a1, 0x19($sp) @@ -4307,10 +6079,10 @@ glabel sub_GAME_7F0BF800 /* 0F43D4 7F0BF8A4 10000050 */ b .L7F0BF9E8 /* 0F43D8 7F0BF8A8 00000000 */ nop .L7F0BF8AC: -/* 0F43DC 7F0BF8AC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F43DC 7F0BF8AC 0C00303B */ jal joyGetStickX /* 0F43E0 7F0BF8B0 83A4002F */ lb $a0, 0x2f($sp) /* 0F43E4 7F0BF8B4 A3A20018 */ sb $v0, 0x18($sp) -/* 0F43E8 7F0BF8B8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F43E8 7F0BF8B8 0C00307F */ jal joyGetStickY /* 0F43EC 7F0BF8BC 83A4002F */ lb $a0, 0x2f($sp) /* 0F43F0 7F0BF8C0 00022E00 */ sll $a1, $v0, 0x18 /* 0F43F4 7F0BF8C4 00057E03 */ sra $t7, $a1, 0x18 @@ -4326,14 +6098,14 @@ glabel sub_GAME_7F0BF800 /* 0F4418 7F0BF8E8 24010001 */ li $at, 1 /* 0F441C 7F0BF8EC 14410010 */ bne $v0, $at, .L7F0BF930 /* 0F4420 7F0BF8F0 00000000 */ nop -/* 0F4424 7F0BF8F4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4424 7F0BF8F4 0C00303B */ jal joyGetStickX /* 0F4428 7F0BF8F8 83A4002F */ lb $a0, 0x2f($sp) /* 0F442C 7F0BF8FC A3A20018 */ sb $v0, 0x18($sp) -/* 0F4430 7F0BF900 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F4430 7F0BF900 0C00307F */ jal joyGetStickY /* 0F4434 7F0BF904 83A4002F */ lb $a0, 0x2f($sp) /* 0F4438 7F0BF908 A3A20019 */ sb $v0, 0x19($sp) /* 0F443C 7F0BF90C 83A4002F */ lb $a0, 0x2f($sp) -/* 0F4440 7F0BF910 0C0030C3 */ jal get_controller_buttons_held +/* 0F4440 7F0BF910 0C0030C3 */ jal joyGetButtons /* 0F4444 7F0BF914 3405FFFF */ li $a1, 65535 /* 0F4448 7F0BF918 83A40018 */ lb $a0, 0x18($sp) /* 0F444C 7F0BF91C 83A50019 */ lb $a1, 0x19($sp) @@ -4342,10 +6114,10 @@ glabel sub_GAME_7F0BF800 /* 0F4458 7F0BF928 1000002F */ b .L7F0BF9E8 /* 0F445C 7F0BF92C 00000000 */ nop .L7F0BF930: -/* 0F4460 7F0BF930 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F4460 7F0BF930 0C00303B */ jal joyGetStickX /* 0F4464 7F0BF934 83A4002F */ lb $a0, 0x2f($sp) /* 0F4468 7F0BF938 A3A20018 */ sb $v0, 0x18($sp) -/* 0F446C 7F0BF93C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F446C 7F0BF93C 0C00307F */ jal joyGetStickY /* 0F4470 7F0BF940 83A4002F */ lb $a0, 0x2f($sp) /* 0F4474 7F0BF944 00022E00 */ sll $a1, $v0, 0x18 /* 0F4478 7F0BF948 0005C603 */ sra $t8, $a1, 0x18 @@ -4361,14 +6133,14 @@ glabel sub_GAME_7F0BF800 /* 0F449C 7F0BF96C 24010002 */ li $at, 2 /* 0F44A0 7F0BF970 14410010 */ bne $v0, $at, .L7F0BF9B4 /* 0F44A4 7F0BF974 00000000 */ nop -/* 0F44A8 7F0BF978 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44A8 7F0BF978 0C00303B */ jal joyGetStickX /* 0F44AC 7F0BF97C 83A4002F */ lb $a0, 0x2f($sp) /* 0F44B0 7F0BF980 A3A20018 */ sb $v0, 0x18($sp) -/* 0F44B4 7F0BF984 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44B4 7F0BF984 0C00307F */ jal joyGetStickY /* 0F44B8 7F0BF988 83A4002F */ lb $a0, 0x2f($sp) /* 0F44BC 7F0BF98C A3A20019 */ sb $v0, 0x19($sp) /* 0F44C0 7F0BF990 83A4002F */ lb $a0, 0x2f($sp) -/* 0F44C4 7F0BF994 0C0030C3 */ jal get_controller_buttons_held +/* 0F44C4 7F0BF994 0C0030C3 */ jal joyGetButtons /* 0F44C8 7F0BF998 3405FFFF */ li $a1, 65535 /* 0F44CC 7F0BF99C 83A40018 */ lb $a0, 0x18($sp) /* 0F44D0 7F0BF9A0 83A50019 */ lb $a1, 0x19($sp) @@ -4377,10 +6149,10 @@ glabel sub_GAME_7F0BF800 /* 0F44DC 7F0BF9AC 1000000C */ b .L7F0BF9E0 /* 0F44E0 7F0BF9B0 00000000 */ nop .L7F0BF9B4: -/* 0F44E4 7F0BF9B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0F44E4 7F0BF9B4 0C00303B */ jal joyGetStickX /* 0F44E8 7F0BF9B8 83A4002F */ lb $a0, 0x2f($sp) /* 0F44EC 7F0BF9BC A3A20018 */ sb $v0, 0x18($sp) -/* 0F44F0 7F0BF9C0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0F44F0 7F0BF9C0 0C00307F */ jal joyGetStickY /* 0F44F4 7F0BF9C4 83A4002F */ lb $a0, 0x2f($sp) /* 0F44F8 7F0BF9C8 00022E00 */ sll $a1, $v0, 0x18 /* 0F44FC 7F0BF9CC 0005CE03 */ sra $t9, $a1, 0x18 @@ -4515,7 +6287,7 @@ void unload_stage_text_data(void) { void set_controls_locked_flag(s32 arg0) { #ifdef VERSION_JP if ((arg0 != 0) && (controls_locked_flag == 0)) { - reset_cont_rumble_detect(); + joyRumblePakStop(); } #endif controls_locked_flag = arg0; diff --git a/src/game/lvl.h b/src/game/lvl.h index 8d4958b..6e93547 100644 --- a/src/game/lvl.h +++ b/src/game/lvl.h @@ -1,6 +1,7 @@ #ifndef _LVL_H_ #define _LVL_H_ #include "ultra64.h" +#include "bondconstants.h" struct ramrom_struct { u32 *address; @@ -21,5 +22,12 @@ extern s32 *address_demo_loaded; extern s32 dword_CODE_bss_8008C5F8; void lvInitDebugNoticeList(void); +Gfx * sub_GAME_7F0BE30C(Gfx *); +void set_difficulty(s32 arg0); +void manage_mp_game(void); +void sub_GAME_7F0BF800(void); +void unload_stage_text_data(void); +DIFFICULTY get_current_difficulty(void); +void stage_load(s32 arg0); #endif diff --git a/src/game/lvl_text.h b/src/game/lvl_text.h index c059aa9..ab8636e 100644 --- a/src/game/lvl_text.h +++ b/src/game/lvl_text.h @@ -3,7 +3,7 @@ #include "ultra64.h" struct stringentry { - char *string[]; + char *string; }; extern s32 j_text_trigger; diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c index 90346e8..005ae72 100644 --- a/src/game/mainmenu.c +++ b/src/game/mainmenu.c @@ -1,5 +1,7 @@ #include "ultra64.h" #include "bondgame.h" +#include "bondconstants.h" +#include "boss.h" #include "game/spectrum.h" #include "game/mainmenu.h" #include "game/unk_093880.h" @@ -475,10 +477,10 @@ s32 is_emulating_spectrum = FALSE; s32 is_cheat_menu_available = FALSE; -s32 ptr_logo_and_walletbond_DL = 0; -s32 ptr_menu_videobuffer = 0; +Gfx * ptr_logo_and_walletbond_DL = 0; +u8 * ptr_menu_videobuffer = 0; s32 something_legalscreen_constructor = 0; -s32 ptr_folder_object_instance = 0; +struct object_standard * ptr_folder_object_instance = 0; s32 set0_never_used = 0; s32 set0_never_used_0 = 0; s32 D_8002A968 = 0; @@ -838,6 +840,74 @@ struct MP_selectable_chars mp_chr_setup[] = { {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} }; #endif +#ifdef VERSION_EU +struct MP_selectable_chars mp_chr_setup[] = { + {TEXT(LTITLE, 0xB8), MALE, 0, BODY_Tuxedo, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBF), FEMALE, 9, BODY_Natalya_Skirt, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.96609998}, + {TEXT(LTITLE, 0xBC), MALE, 6, BODY_Trevelyan_Janus, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBE), FEMALE, 8, BODY_Xenia, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xBB), MALE, 5, BODY_Ourumov, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0778}, + {TEXT(LTITLE, 0xBA), MALE, 4, BODY_Boris, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.9702}, + {TEXT(LTITLE, 0xBD), MALE, 7, BODY_Valentin_, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 0.93239999}, + {TEXT(LTITLE, 0xB9), MALE, 0xF, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Mishkin, 1.0}, + {TEXT(LTITLE, 0xC2), FEMALE, 0xC, BODY_Mayday, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0xC1), MALE, 0xB, BODY_Jaws, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.199}, + {TEXT(LTITLE, 0xC3), MALE, 0xD, BODY_Oddjob, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,0.78780001}, + {TEXT(LTITLE, 0xC0), MALE, 0xA, BODY_Baron_Samedi, HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT, 1.0}, + {TEXT(LTITLE, 0x11F), MALE, 0xE, BODY_Russian_Soldier, HEAD_Male_Mark, 1.0}, + {TEXT(LTITLE, 0x120), MALE, 0xE, BODY_Russian_Infantry, HEAD_Male_Karl, 1.0}, + {TEXT(LTITLE, 0x121), MALE, 0xE, BODY_Scientist_1_Male, HEAD_Male_Dave_Dr_Doak, 1.0}, + {TEXT(LTITLE, 0x121), FEMALE, 0xE, BODY_Scientist_2_Female, HEAD_Female_Sally, 1.0}, + {TEXT(LTITLE, 0x122), MALE, 0xE, BODY_Russian_Commandant, HEAD_Male_Martin, 1.0}, + {TEXT(LTITLE, 0x123), MALE, 0xE, BODY_Janus_Marine, HEAD_Male_Steve_Ellis, 1.0}, + {TEXT(LTITLE, 0x124), MALE, 0xE, BODY_Naval_Officer, HEAD_Male_Duncan, 1.0}, + {TEXT(LTITLE, 0x125), MALE, 0xE, BODY_Helicopter_Pilot, HEAD_Male_Pete, 1.0}, + {TEXT(LTITLE, 0x126), MALE, 0xE, BODY_St_Petersburg_Guard, HEAD_Male_Ken, 1.0}, + {TEXT(LTITLE, 0x127), FEMALE, 0xE, BODY_Civilian_1_Female, HEAD_Female_Marion_Rosika, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_2, HEAD_Male_Graeme, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_3, HEAD_Male_Grant, 1.0}, + {TEXT(LTITLE, 0x127), MALE, 0xE, BODY_Civilian_4, HEAD_Male_Dwayne, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_1_Mishkin, HEAD_Male_Lee, 1.0}, + {TEXT(LTITLE, 0x129), MALE, 0xE, BODY_Arctic_Commando, HEAD_Male_Chris, 1.0}, + {TEXT(LTITLE, 0x128), MALE, 0xE, BODY_Siberian_Guard_2, HEAD_Male_Scott, 1.0}, + {TEXT(LTITLE, 0x12A), MALE, 0xE, BODY_Siberian_Special_Forces, HEAD_Male_Alan, 1.0}, + {TEXT(LTITLE, 0x12B), MALE, 0xE, BODY_Jungle_Commando, HEAD_Male_Joel, 1.0}, + {TEXT(LTITLE, 0x12C), MALE, 0xE, BODY_Janus_Special_Forces, HEAD_Male_B, 1.0}, + {TEXT(LTITLE, 0x12D), MALE, 0xE, BODY_Moonraker_Elite_1_Male, HEAD_Male_Neil, 1.0}, + {TEXT(LTITLE, 0x12D), FEMALE, 0xE, BODY_Moonraker_Elite_2_Female, HEAD_Female_Vivien, 1.0}, + {TEXT(LTITLE, 0xC4), FEMALE, 0xE, BODY_Rosika, HEAD_Female_Marion_Rosika, 0.88529998}, + {TEXT(LTITLE, 0xC5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Karl, 1.0446}, + {TEXT(LTITLE, 0xC6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Martin, 1.0446}, + {TEXT(LTITLE, 0xC7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Mark, 1.0446}, + {TEXT(LTITLE, 0xC8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dave_Dr_Doak, 1.0446}, + {TEXT(LTITLE, 0xC9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Duncan, 1.0446}, + {TEXT(LTITLE, 0xCA), FEMALE, 0xE, BODY_Tuxedo, HEAD_Male_B, 1.0446}, + {TEXT(LTITLE, 0xCB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_Ellis, 1.0446}, + {TEXT(LTITLE, 0xCC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Grant, 1.0446}, + {TEXT(LTITLE, 0xCD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Graeme, 1.0446}, + {TEXT(LTITLE, 0xCE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Ken, 1.0446}, + {TEXT(LTITLE, 0xCF), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Alan, 1.0446}, + {TEXT(LTITLE, 0xD0), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Pete, 1.0446}, + {TEXT(LTITLE, 0xD1), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Shaun, 1.0446}, + {TEXT(LTITLE, 0xD2), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Dwayne, 1.0446}, + {TEXT(LTITLE, 0xD3), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Des, 1.0446}, + {TEXT(LTITLE, 0xD4), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Chris, 1.0446}, + {TEXT(LTITLE, 0xD5), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Lee, 1.0446}, + {TEXT(LTITLE, 0xD6), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Neil, 1.0446}, + {TEXT(LTITLE, 0xD7), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Jim, 1.0446}, + {TEXT(LTITLE, 0xD8), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Robin, 1.0446}, + {TEXT(LTITLE, 0xD9), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Steve_H, 1.0446}, + {TEXT(LTITLE, 0xDA), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Terrorist, 1.0446}, + {TEXT(LTITLE, 0xDB), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Biker, 1.0446}, + {TEXT(LTITLE, 0xDC), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joel, 1.0446}, + {TEXT(LTITLE, 0xDD), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Scott, 1.0446}, + {TEXT(LTITLE, 0xDE), MALE, 0xE, BODY_Tuxedo, HEAD_Male_Joe, 1.0446}, + {TEXT(LTITLE, 0xDF), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Sally, 1.0446}, + {TEXT(LTITLE, 0xE0), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Marion_Rosika, 1.0446}, + {TEXT(LTITLE, 0xE1), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Mandy, 1.0446}, + {TEXT(LTITLE, 0xE2), FEMALE, 0xE, BODY_Tuxedo, HEAD_Female_Vivien, 1.0446} +}; +#endif struct MP_handicap_menu MP_handicap_table[] = { {TEXT(LTITLE, 0x3D), 0, 10.0}, @@ -1145,15 +1215,11 @@ glabel write_text_at_abs_coord -#ifdef NONMATCHING + s32 check_if_cheat_available(s32 cheat) { - s32 uVar1; - save_file *folder; - u32 uVar2; - u32 BVar3; - - switch(cheat) { + switch(cheat) + { case 1: case 4: case 5: @@ -1205,397 +1271,83 @@ s32 check_if_cheat_available(s32 cheat) case 0x48: case 0x49: case 0x4a: - uVar1 = 0; - break; + return 0; + case 2: - folder = getEEPROMforFoldernum(selected_folder_num); - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),1); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),1); + case 3: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x13); - break; - case 10: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),10); - break; - case 0xb: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xf); - break; - case 0xc: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),2); - break; - case 0xe: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),7); - break; - case 0xf: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0); - break; - case 0x11: - uVar2 = check_cradle_completed_in_folder(selected_folder_num); - uVar1 = SEXT48((int)uVar2); - break; - case 0x12: - uVar2 = check_aztec_completed_in_folder_secret_00(selected_folder_num); - uVar1 = SEXT48((int)uVar2); - break; - case 0x13: - BVar3 = check_egypt_completed_in_folder_00(selected_folder_num); - uVar1 = SEXT48((int)BVar3); - break; - case 0x14: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xd); - break; - case 0x15: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x11); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0x13); + case 0x17: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),6); - break; - case 0x18: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),5); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),6); + case 0x1a: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),9); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),9); + + case 10: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),10); + + case 0xb: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0xf); + + case 0xc: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),2); + + case 0xe: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),7); + case 0x1b: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xc); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0xc); + + case 0xf: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0); + + case 0x14: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0xd); + + case 0x15: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0x11); + case 0x1c: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xb); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0xb); + case 0x1d: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),4); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),4); + case 0x1e: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),3); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),3); + case 0x1f: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x10); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0x10); + case 0x20: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),8); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),8); + case 0x21: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0xe); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0xe); + case 0x22: - uVar1 = check_if_cheat_unlocked(getEEPROMforFoldernum(selected_folder_num),0x12); - break; + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),0x12); + + case 0x18: + return check_if_cheat_unlocked(get_save_folder_ptr(selected_folder_num),5); + + case 0x11: + return check_cradle_completed_in_folder(selected_folder_num); + + case 0x12: + return check_aztec_completed_in_folder_secret_00(selected_folder_num); + + case 0x13: + return check_egypt_completed_in_folder_00(selected_folder_num); + default: do { /* WARNING: Do nothing block with infinite loop */ - } while( true ); + } while( 1 ); } - return uVar1; } -#else -GLOBAL_ASM( -.late_rodata - -glabel cheat_available_table - .word default_nonmenucheats - .word cheat_invincible - .word cheat_allguns - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word cheat_invisible - .word cheat_infinite_ammo - .word cheat_dk_mode - .word default_nonmenucheats - .word cheat_tinybond - .word cheat_paintball - .word default_nonmenucheats - .word cheat_unlockcradle - .word cheat_unlockaztec - .word cheat_unlockegypt - .word cheat_silverpp7 - .word cheat_goldpp7 - .word default_nonmenucheats - .word cheat_noradar - .word cheat_turbo - .word default_nonmenucheats - .word cheat_fast - .word cheat_slow - .word cheat_enemyrockets - .word cheat_2xrocket - .word cheat_2xgrenadelauncher - .word cheat_2xrcp90 - .word cheat_2xthrowingknife - .word cheat_2xhuntingknife - .word cheat_2xlaser - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - .word default_nonmenucheats - /*HACK FIXME*/ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ -/* .word default_nonmenucheats */ - -.text -glabel check_if_cheat_available -/* 03E378 7F009848 248EFFFF */ addiu $t6, $a0, -1 -/* 03E37C 7F00984C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03E380 7F009850 2DC1004A */ sltiu $at, $t6, 0x4a -/* 03E384 7F009854 102000B8 */ beqz $at, .L7F009B38 -/* 03E388 7F009858 AFBF0014 */ sw $ra, 0x14($sp) -/* 03E38C 7F00985C 000E7080 */ sll $t6, $t6, 2 -/* 03E390 7F009860 3C018005 */ lui $at, %hi(cheat_available_table) -/* 03E394 7F009864 002E0821 */ addu $at, $at, $t6 -/* 03E398 7F009868 8C2E18A0 */ lw $t6, %lo(cheat_available_table)($at) -/* 03E39C 7F00986C 01C00008 */ jr $t6 -/* 03E3A0 7F009870 00000000 */ nop -default_nonmenucheats: -/* 03E3A4 7F009874 100000B2 */ b .L7F009B40 -/* 03E3A8 7F009878 00001025 */ move $v0, $zero -cheat_invincible: -/* 03E3AC 7F00987C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E3B0 7F009880 0FC07771 */ jal get_save_folder_ptr -/* 03E3B4 7F009884 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E3B8 7F009888 00402025 */ move $a0, $v0 -/* 03E3BC 7F00988C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E3C0 7F009890 24050001 */ li $a1, 1 -/* 03E3C4 7F009894 100000AB */ b .L7F009B44 -/* 03E3C8 7F009898 8FBF0014 */ lw $ra, 0x14($sp) -cheat_allguns: -/* 03E3CC 7F00989C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E3D0 7F0098A0 0FC07771 */ jal get_save_folder_ptr -/* 03E3D4 7F0098A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E3D8 7F0098A8 00402025 */ move $a0, $v0 -/* 03E3DC 7F0098AC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E3E0 7F0098B0 24050013 */ li $a1, 19 -/* 03E3E4 7F0098B4 100000A3 */ b .L7F009B44 -/* 03E3E8 7F0098B8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_noradar: -/* 03E3EC 7F0098BC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E3F0 7F0098C0 0FC07771 */ jal get_save_folder_ptr -/* 03E3F4 7F0098C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E3F8 7F0098C8 00402025 */ move $a0, $v0 -/* 03E3FC 7F0098CC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E400 7F0098D0 24050006 */ li $a1, 6 -/* 03E404 7F0098D4 1000009B */ b .L7F009B44 -/* 03E408 7F0098D8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_fast: -/* 03E40C 7F0098DC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E410 7F0098E0 0FC07771 */ jal get_save_folder_ptr -/* 03E414 7F0098E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E418 7F0098E8 00402025 */ move $a0, $v0 -/* 03E41C 7F0098EC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E420 7F0098F0 24050009 */ li $a1, 9 -/* 03E424 7F0098F4 10000093 */ b .L7F009B44 -/* 03E428 7F0098F8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_invisible: -/* 03E42C 7F0098FC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E430 7F009900 0FC07771 */ jal get_save_folder_ptr -/* 03E434 7F009904 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E438 7F009908 00402025 */ move $a0, $v0 -/* 03E43C 7F00990C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E440 7F009910 2405000A */ li $a1, 10 -/* 03E444 7F009914 1000008B */ b .L7F009B44 -/* 03E448 7F009918 8FBF0014 */ lw $ra, 0x14($sp) -cheat_infinite_ammo: -/* 03E44C 7F00991C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E450 7F009920 0FC07771 */ jal get_save_folder_ptr -/* 03E454 7F009924 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E458 7F009928 00402025 */ move $a0, $v0 -/* 03E45C 7F00992C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E460 7F009930 2405000F */ li $a1, 15 -/* 03E464 7F009934 10000083 */ b .L7F009B44 -/* 03E468 7F009938 8FBF0014 */ lw $ra, 0x14($sp) -cheat_dk_mode: -/* 03E46C 7F00993C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E470 7F009940 0FC07771 */ jal get_save_folder_ptr -/* 03E474 7F009944 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E478 7F009948 00402025 */ move $a0, $v0 -/* 03E47C 7F00994C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E480 7F009950 24050002 */ li $a1, 2 -/* 03E484 7F009954 1000007B */ b .L7F009B44 -/* 03E488 7F009958 8FBF0014 */ lw $ra, 0x14($sp) -cheat_tinybond: -/* 03E48C 7F00995C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E490 7F009960 0FC07771 */ jal get_save_folder_ptr -/* 03E494 7F009964 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E498 7F009968 00402025 */ move $a0, $v0 -/* 03E49C 7F00996C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E4A0 7F009970 24050007 */ li $a1, 7 -/* 03E4A4 7F009974 10000073 */ b .L7F009B44 -/* 03E4A8 7F009978 8FBF0014 */ lw $ra, 0x14($sp) -cheat_slow: -/* 03E4AC 7F00997C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E4B0 7F009980 0FC07771 */ jal get_save_folder_ptr -/* 03E4B4 7F009984 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E4B8 7F009988 00402025 */ move $a0, $v0 -/* 03E4BC 7F00998C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E4C0 7F009990 2405000C */ li $a1, 12 -/* 03E4C4 7F009994 1000006B */ b .L7F009B44 -/* 03E4C8 7F009998 8FBF0014 */ lw $ra, 0x14($sp) -cheat_paintball: -/* 03E4CC 7F00999C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E4D0 7F0099A0 0FC07771 */ jal get_save_folder_ptr -/* 03E4D4 7F0099A4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E4D8 7F0099A8 00402025 */ move $a0, $v0 -/* 03E4DC 7F0099AC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E4E0 7F0099B0 00002825 */ move $a1, $zero -/* 03E4E4 7F0099B4 10000063 */ b .L7F009B44 -/* 03E4E8 7F0099B8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_silverpp7: -/* 03E4EC 7F0099BC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E4F0 7F0099C0 0FC07771 */ jal get_save_folder_ptr -/* 03E4F4 7F0099C4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E4F8 7F0099C8 00402025 */ move $a0, $v0 -/* 03E4FC 7F0099CC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E500 7F0099D0 2405000D */ li $a1, 13 -/* 03E504 7F0099D4 1000005B */ b .L7F009B44 -/* 03E508 7F0099D8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_goldpp7: -/* 03E50C 7F0099DC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E510 7F0099E0 0FC07771 */ jal get_save_folder_ptr -/* 03E514 7F0099E4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E518 7F0099E8 00402025 */ move $a0, $v0 -/* 03E51C 7F0099EC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E520 7F0099F0 24050011 */ li $a1, 17 -/* 03E524 7F0099F4 10000053 */ b .L7F009B44 -/* 03E528 7F0099F8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_enemyrockets: -/* 03E52C 7F0099FC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E530 7F009A00 0FC07771 */ jal get_save_folder_ptr -/* 03E534 7F009A04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E538 7F009A08 00402025 */ move $a0, $v0 -/* 03E53C 7F009A0C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E540 7F009A10 2405000B */ li $a1, 11 -/* 03E544 7F009A14 1000004B */ b .L7F009B44 -/* 03E548 7F009A18 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xrocket: -/* 03E54C 7F009A1C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E550 7F009A20 0FC07771 */ jal get_save_folder_ptr -/* 03E554 7F009A24 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E558 7F009A28 00402025 */ move $a0, $v0 -/* 03E55C 7F009A2C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E560 7F009A30 24050004 */ li $a1, 4 -/* 03E564 7F009A34 10000043 */ b .L7F009B44 -/* 03E568 7F009A38 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xgrenadelauncher: -/* 03E56C 7F009A3C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E570 7F009A40 0FC07771 */ jal get_save_folder_ptr -/* 03E574 7F009A44 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E578 7F009A48 00402025 */ move $a0, $v0 -/* 03E57C 7F009A4C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E580 7F009A50 24050003 */ li $a1, 3 -/* 03E584 7F009A54 1000003B */ b .L7F009B44 -/* 03E588 7F009A58 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xrcp90: -/* 03E58C 7F009A5C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E590 7F009A60 0FC07771 */ jal get_save_folder_ptr -/* 03E594 7F009A64 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E598 7F009A68 00402025 */ move $a0, $v0 -/* 03E59C 7F009A6C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E5A0 7F009A70 24050010 */ li $a1, 16 -/* 03E5A4 7F009A74 10000033 */ b .L7F009B44 -/* 03E5A8 7F009A78 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xthrowingknife: -/* 03E5AC 7F009A7C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E5B0 7F009A80 0FC07771 */ jal get_save_folder_ptr -/* 03E5B4 7F009A84 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E5B8 7F009A88 00402025 */ move $a0, $v0 -/* 03E5BC 7F009A8C 0FC07748 */ jal check_if_cheat_unlocked -/* 03E5C0 7F009A90 24050008 */ li $a1, 8 -/* 03E5C4 7F009A94 1000002B */ b .L7F009B44 -/* 03E5C8 7F009A98 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xhuntingknife: -/* 03E5CC 7F009A9C 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E5D0 7F009AA0 0FC07771 */ jal get_save_folder_ptr -/* 03E5D4 7F009AA4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E5D8 7F009AA8 00402025 */ move $a0, $v0 -/* 03E5DC 7F009AAC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E5E0 7F009AB0 2405000E */ li $a1, 14 -/* 03E5E4 7F009AB4 10000023 */ b .L7F009B44 -/* 03E5E8 7F009AB8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_2xlaser: -/* 03E5EC 7F009ABC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E5F0 7F009AC0 0FC07771 */ jal get_save_folder_ptr -/* 03E5F4 7F009AC4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E5F8 7F009AC8 00402025 */ move $a0, $v0 -/* 03E5FC 7F009ACC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E600 7F009AD0 24050012 */ li $a1, 18 -/* 03E604 7F009AD4 1000001B */ b .L7F009B44 -/* 03E608 7F009AD8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_turbo: -/* 03E60C 7F009ADC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E610 7F009AE0 0FC07771 */ jal get_save_folder_ptr -/* 03E614 7F009AE4 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E618 7F009AE8 00402025 */ move $a0, $v0 -/* 03E61C 7F009AEC 0FC07748 */ jal check_if_cheat_unlocked -/* 03E620 7F009AF0 24050005 */ li $a1, 5 -/* 03E624 7F009AF4 10000013 */ b .L7F009B44 -/* 03E628 7F009AF8 8FBF0014 */ lw $ra, 0x14($sp) -cheat_unlockcradle: -/* 03E62C 7F009AFC 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E630 7F009B00 0FC07A7D */ jal check_cradle_completed_in_folder -/* 03E634 7F009B04 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E638 7F009B08 1000000E */ b .L7F009B44 -/* 03E63C 7F009B0C 8FBF0014 */ lw $ra, 0x14($sp) -cheat_unlockaztec: -/* 03E640 7F009B10 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E644 7F009B14 0FC07A97 */ jal check_aztec_completed_in_folder_secret_00 -/* 03E648 7F009B18 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E64C 7F009B1C 10000009 */ b .L7F009B44 -/* 03E650 7F009B20 8FBF0014 */ lw $ra, 0x14($sp) -cheat_unlockegypt: -/* 03E654 7F009B24 3C048003 */ lui $a0, %hi(selected_folder_num) -/* 03E658 7F009B28 0FC07AAA */ jal check_egypt_completed_in_folder_00 -/* 03E65C 7F009B2C 8C84A8E8 */ lw $a0, %lo(selected_folder_num)($a0) -/* 03E660 7F009B30 10000004 */ b .L7F009B44 -/* 03E664 7F009B34 8FBF0014 */ lw $ra, 0x14($sp) -def_7F00986C: -.L7F009B38: -/* 03E668 7F009B38 1000FFFF */ b .L7F009B38 -/* 03E66C 7F009B3C 00000000 */ nop -.L7F009B40: -/* 03E670 7F009B40 8FBF0014 */ lw $ra, 0x14($sp) -.L7F009B44: -/* 03E674 7F009B44 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03E678 7F009B48 03E00008 */ jr $ra -/* 03E67C 7F009B4C 00000000 */ nop -) -#endif - - int getplayerfavoredweapon(int player,int hand) { @@ -1613,8 +1365,8 @@ void menu_control_stick_tracking(void) { s32 temp_t2; // Node 0 - sp1F = get_cur_controller_horz_stick_pos(0); - temp_t2 = ((s32) (-get_cur_controller_vert_stick_pos(0) << 0x18) >> 0x18); + sp1F = joyGetStickX(0); + temp_t2 = ((s32) (-joyGetStickY(0) << 0x18) >> 0x18); if (sp1F < -5) { // Node 1 @@ -1745,20 +1497,6 @@ void menu_control_stick_tracking(void) { #ifdef VERSION_US GLOBAL_ASM( .late_rodata -/*HACK FIXME*/ -/*from above to add bytes till fixed*/ -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -/*end from above to add bytes till fixed*/ - glabel folder_menu_x_dim .word 0x3D99999A /* 0.075000003;*/ glabel folder_menu_z_dim @@ -1772,10 +1510,10 @@ glabel D_800519D4 glabel menu_control_stick_tracking /* 03E6B4 7F009B84 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 03E6B8 7F009B88 AFBF0014 */ sw $ra, 0x14($sp) -/* 03E6BC 7F009B8C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 03E6BC 7F009B8C 0C00303B */ jal joyGetStickX /* 03E6C0 7F009B90 00002025 */ move $a0, $zero /* 03E6C4 7F009B94 00002025 */ move $a0, $zero -/* 03E6C8 7F009B98 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 03E6C8 7F009B98 0C00307F */ jal joyGetStickY /* 03E6CC 7F009B9C A3A2001F */ sb $v0, 0x1f($sp) /* 03E6D0 7F009BA0 83A5001F */ lb $a1, 0x1f($sp) /* 03E6D4 7F009BA4 00021823 */ negu $v1, $v0 @@ -2019,20 +1757,6 @@ glabel menu_control_stick_tracking #ifdef VERSION_JP GLOBAL_ASM( .late_rodata -/*HACK FIXME*/ -/*from above to add bytes till fixed*/ -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -.word default_nonmenucheats -/*end from above to add bytes till fixed*/ - glabel folder_menu_x_dim .word 0x3D99999A /* 0.075000003;*/ glabel folder_menu_z_dim @@ -2046,10 +1770,10 @@ glabel D_800519D4 glabel menu_control_stick_tracking /* 03E714 7F009BA4 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 03E718 7F009BA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 03E71C 7F009BAC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 03E71C 7F009BAC 0C003054 */ jal joyGetStickX /* 03E720 7F009BB0 00002025 */ move $a0, $zero /* 03E724 7F009BB4 00002025 */ move $a0, $zero -/* 03E728 7F009BB8 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 03E728 7F009BB8 0C003098 */ jal joyGetStickY /* 03E72C 7F009BBC A3A2001F */ sb $v0, 0x1f($sp) /* 03E730 7F009BC0 83A5001F */ lb $a1, 0x1f($sp) /* 03E734 7F009BC4 00021823 */ negu $v1, $v0 @@ -2290,6 +2014,268 @@ glabel menu_control_stick_tracking /* 03EA94 7F009F24 00000000 */ nop ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel folder_menu_x_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel folder_menu_z_dim +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D0 +.word 0x3D99999A /* 0.075000003;*/ +glabel D_800519D4 +.word 0x3D99999A /* 0.075000003;*/ + +.text +glabel menu_control_stick_tracking +/* 03E6B4 7F009B84 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 03E6B8 7F009B88 AFBF0014 */ sw $ra, 0x14($sp) +/* 03E6BC 7F009B8C 0C00303B */ jal joyGetStickX +/* 03E6C0 7F009B90 00002025 */ move $a0, $zero +/* 03E6C4 7F009B94 00002025 */ move $a0, $zero +/* 03E6C8 7F009B98 0C00307F */ jal joyGetStickY +/* 03E6CC 7F009B9C A3A2001F */ sb $v0, 0x1f($sp) +/* 03E6D0 7F009BA0 83A5001F */ lb $a1, 0x1f($sp) +/* 03E6D4 7F009BA4 00021823 */ negu $v1, $v0 +/* 03E6D8 7F009BA8 00034E00 */ sll $t1, $v1, 0x18 +/* 03E6DC 7F009BAC 28A1FFFB */ slti $at, $a1, -5 +/* 03E6E0 7F009BB0 10200005 */ beqz $at, .L7F009BC8 +/* 03E6E4 7F009BB4 00095603 */ sra $t2, $t1, 0x18 +/* 03E6E8 7F009BB8 24A50005 */ addiu $a1, $a1, 5 +/* 03E6EC 7F009BBC 00057E00 */ sll $t7, $a1, 0x18 +/* 03E6F0 7F009BC0 10000008 */ b .L7F009BE4 +/* 03E6F4 7F009BC4 000F2E03 */ sra $a1, $t7, 0x18 +.L7F009BC8: +/* 03E6F8 7F009BC8 28A10006 */ slti $at, $a1, 6 +/* 03E6FC 7F009BCC 14200004 */ bnez $at, .L7F009BE0 +/* 03E700 7F009BD0 24A5FFFB */ addiu $a1, $a1, -5 +/* 03E704 7F009BD4 0005CE00 */ sll $t9, $a1, 0x18 +/* 03E708 7F009BD8 10000002 */ b .L7F009BE4 +/* 03E70C 7F009BDC 00192E03 */ sra $a1, $t9, 0x18 +.L7F009BE0: +/* 03E710 7F009BE0 00002825 */ move $a1, $zero +.L7F009BE4: +/* 03E714 7F009BE4 28A10047 */ slti $at, $a1, 0x47 +/* 03E718 7F009BE8 54200004 */ bnezl $at, .L7F009BFC +/* 03E71C 7F009BEC 28A1FFBA */ slti $at, $a1, -0x46 +/* 03E720 7F009BF0 10000005 */ b .L7F009C08 +/* 03E724 7F009BF4 24050046 */ li $a1, 70 +/* 03E728 7F009BF8 28A1FFBA */ slti $at, $a1, -0x46 +.L7F009BFC: +/* 03E72C 7F009BFC 50200003 */ beql $at, $zero, .L7F009C0C +/* 03E730 7F009C00 2941FFFB */ slti $at, $t2, -5 +/* 03E734 7F009C04 2405FFBA */ li $a1, -70 +.L7F009C08: +/* 03E738 7F009C08 2941FFFB */ slti $at, $t2, -5 +.L7F009C0C: +/* 03E73C 7F009C0C 10200005 */ beqz $at, .L7F009C24 +/* 03E740 7F009C10 01401825 */ move $v1, $t2 +/* 03E744 7F009C14 25420005 */ addiu $v0, $t2, 5 +/* 03E748 7F009C18 00025E00 */ sll $t3, $v0, 0x18 +/* 03E74C 7F009C1C 10000008 */ b .L7F009C40 +/* 03E750 7F009C20 000B1603 */ sra $v0, $t3, 0x18 +.L7F009C24: +/* 03E754 7F009C24 28610006 */ slti $at, $v1, 6 +/* 03E758 7F009C28 14200005 */ bnez $at, .L7F009C40 +/* 03E75C 7F009C2C 00001025 */ move $v0, $zero +/* 03E760 7F009C30 2462FFFB */ addiu $v0, $v1, -5 +/* 03E764 7F009C34 00026E00 */ sll $t5, $v0, 0x18 +/* 03E768 7F009C38 10000001 */ b .L7F009C40 +/* 03E76C 7F009C3C 000D1603 */ sra $v0, $t5, 0x18 +.L7F009C40: +/* 03E770 7F009C40 28410047 */ slti $at, $v0, 0x47 +/* 03E774 7F009C44 54200004 */ bnezl $at, .L7F009C58 +/* 03E778 7F009C48 2841FFBA */ slti $at, $v0, -0x46 +/* 03E77C 7F009C4C 10000005 */ b .L7F009C64 +/* 03E780 7F009C50 24020046 */ li $v0, 70 +/* 03E784 7F009C54 2841FFBA */ slti $at, $v0, -0x46 +.L7F009C58: +/* 03E788 7F009C58 10200002 */ beqz $at, .L7F009C64 +/* 03E78C 7F009C5C 00000000 */ nop +/* 03E790 7F009C60 2402FFBA */ li $v0, -70 +.L7F009C64: +/* 03E794 7F009C64 18A00011 */ blez $a1, .L7F009CAC +/* 03E798 7F009C68 00000000 */ nop +/* 03E79C 7F009C6C 44852000 */ mtc1 $a1, $f4 +/* 03E7A0 7F009C70 3C018005 */ lui $at, %hi(folder_menu_x_dim) +/* 03E7A4 7F009C74 C42819C8 */ lwc1 $f8, %lo(folder_menu_x_dim)($at) +/* 03E7A8 7F009C78 468021A0 */ cvt.s.w $f6, $f4 +/* 03E7AC 7F009C7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7B0 7F009C80 44818000 */ mtc1 $at, $f16 +/* 03E7B4 7F009C84 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E7B8 7F009C88 C4248378 */ lwc1 $f4, %lo(global_timer_delta)($at) +/* 03E7BC 7F009C8C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E7C0 7F009C90 46083282 */ mul.s $f10, $f6, $f8 +/* 03E7C4 7F009C94 C428A908 */ lwc1 $f8, %lo(cursor_h_pos)($at) +/* 03E7C8 7F009C98 46105480 */ add.s $f18, $f10, $f16 +/* 03E7CC 7F009C9C 46049182 */ mul.s $f6, $f18, $f4 +/* 03E7D0 7F009CA0 46064280 */ add.s $f10, $f8, $f6 +/* 03E7D4 7F009CA4 10000012 */ b .L7F009CF0 +/* 03E7D8 7F009CA8 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009CAC: +/* 03E7DC 7F009CAC 04A10010 */ bgez $a1, .L7F009CF0 +/* 03E7E0 7F009CB0 00000000 */ nop +/* 03E7E4 7F009CB4 44858000 */ mtc1 $a1, $f16 +/* 03E7E8 7F009CB8 3C018005 */ lui $at, %hi(folder_menu_z_dim) +/* 03E7EC 7F009CBC C42419CC */ lwc1 $f4, %lo(folder_menu_z_dim)($at) +/* 03E7F0 7F009CC0 468084A0 */ cvt.s.w $f18, $f16 +/* 03E7F4 7F009CC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E7F8 7F009CC8 44813000 */ mtc1 $at, $f6 +/* 03E7FC 7F009CCC 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E800 7F009CD0 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E804 7F009CD4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E808 7F009CD8 46049202 */ mul.s $f8, $f18, $f4 +/* 03E80C 7F009CDC C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E810 7F009CE0 46064281 */ sub.s $f10, $f8, $f6 +/* 03E814 7F009CE4 46105482 */ mul.s $f18, $f10, $f16 +/* 03E818 7F009CE8 46122200 */ add.s $f8, $f4, $f18 +/* 03E81C 7F009CEC E428A908 */ swc1 $f8, %lo(cursor_h_pos)($at) +.L7F009CF0: +/* 03E820 7F009CF0 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E824 7F009CF4 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E828 7F009CF8 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E82C 7F009CFC E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E830 7F009D00 C7A60018 */ lwc1 $f6, 0x18($sp) +/* 03E834 7F009D04 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E838 7F009D08 44818000 */ mtc1 $at, $f16 +/* 03E83C 7F009D0C 46060280 */ add.s $f10, $f0, $f6 +/* 03E840 7F009D10 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E844 7F009D14 C432A908 */ lwc1 $f18, %lo(cursor_h_pos)($at) +/* 03E848 7F009D18 83A2001E */ lb $v0, 0x1e($sp) +/* 03E84C 7F009D1C 46105101 */ sub.s $f4, $f10, $f16 +/* 03E850 7F009D20 4612203C */ c.lt.s $f4, $f18 +/* 03E854 7F009D24 00000000 */ nop +/* 03E858 7F009D28 4500000E */ bc1f .L7F009D64 +/* 03E85C 7F009D2C 00000000 */ nop +/* 03E860 7F009D30 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E864 7F009D34 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E868 7F009D38 0FC1E129 */ jal getPlayer_c_screenwidth +/* 03E86C 7F009D3C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E870 7F009D40 C7A80018 */ lwc1 $f8, 0x18($sp) +/* 03E874 7F009D44 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E878 7F009D48 44815000 */ mtc1 $at, $f10 +/* 03E87C 7F009D4C 46080180 */ add.s $f6, $f0, $f8 +/* 03E880 7F009D50 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E884 7F009D54 83A2001E */ lb $v0, 0x1e($sp) +/* 03E888 7F009D58 460A3401 */ sub.s $f16, $f6, $f10 +/* 03E88C 7F009D5C 10000015 */ b .L7F009DB4 +/* 03E890 7F009D60 E430A908 */ swc1 $f16, %lo(cursor_h_pos)($at) +.L7F009D64: +/* 03E894 7F009D64 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E898 7F009D68 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E89C 7F009D6C 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8A0 7F009D70 C424A908 */ lwc1 $f4, %lo(cursor_h_pos)($at) +/* 03E8A4 7F009D74 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8A8 7F009D78 44819000 */ mtc1 $at, $f18 +/* 03E8AC 7F009D7C 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8B0 7F009D80 46120200 */ add.s $f8, $f0, $f18 +/* 03E8B4 7F009D84 4608203C */ c.lt.s $f4, $f8 +/* 03E8B8 7F009D88 00000000 */ nop +/* 03E8BC 7F009D8C 45000009 */ bc1f .L7F009DB4 +/* 03E8C0 7F009D90 00000000 */ nop +/* 03E8C4 7F009D94 0FC1E131 */ jal getPlayer_c_screenleft +/* 03E8C8 7F009D98 A3A2001E */ sb $v0, 0x1e($sp) +/* 03E8CC 7F009D9C 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E8D0 7F009DA0 44813000 */ mtc1 $at, $f6 +/* 03E8D4 7F009DA4 3C018003 */ lui $at, %hi(cursor_h_pos) +/* 03E8D8 7F009DA8 83A2001E */ lb $v0, 0x1e($sp) +/* 03E8DC 7F009DAC 46060280 */ add.s $f10, $f0, $f6 +/* 03E8E0 7F009DB0 E42AA908 */ swc1 $f10, %lo(cursor_h_pos)($at) +.L7F009DB4: +/* 03E8E4 7F009DB4 18400011 */ blez $v0, .L7F009DFC +/* 03E8E8 7F009DB8 00000000 */ nop +/* 03E8EC 7F009DBC 44828000 */ mtc1 $v0, $f16 +/* 03E8F0 7F009DC0 3C018005 */ lui $at, %hi(D_800519D0) +/* 03E8F4 7F009DC4 C42419D0 */ lwc1 $f4, %lo(D_800519D0)($at) +/* 03E8F8 7F009DC8 468084A0 */ cvt.s.w $f18, $f16 +/* 03E8FC 7F009DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E900 7F009DD0 44813000 */ mtc1 $at, $f6 +/* 03E904 7F009DD4 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E908 7F009DD8 C4308378 */ lwc1 $f16, %lo(global_timer_delta)($at) +/* 03E90C 7F009DDC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E910 7F009DE0 46049202 */ mul.s $f8, $f18, $f4 +/* 03E914 7F009DE4 C424A90C */ lwc1 $f4, %lo(cursor_v_pos)($at) +/* 03E918 7F009DE8 46064280 */ add.s $f10, $f8, $f6 +/* 03E91C 7F009DEC 46105482 */ mul.s $f18, $f10, $f16 +/* 03E920 7F009DF0 46122200 */ add.s $f8, $f4, $f18 +/* 03E924 7F009DF4 10000012 */ b .L7F009E40 +/* 03E928 7F009DF8 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009DFC: +/* 03E92C 7F009DFC 04410010 */ bgez $v0, .L7F009E40 +/* 03E930 7F009E00 00000000 */ nop +/* 03E934 7F009E04 44823000 */ mtc1 $v0, $f6 +/* 03E938 7F009E08 3C018005 */ lui $at, %hi(D_800519D4) +/* 03E93C 7F009E0C C43019D4 */ lwc1 $f16, %lo(D_800519D4)($at) +/* 03E940 7F009E10 468032A0 */ cvt.s.w $f10, $f6 +/* 03E944 7F009E14 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 03E948 7F009E18 44819000 */ mtc1 $at, $f18 +/* 03E94C 7F009E1C 3C018005 */ lui $at, %hi(global_timer_delta) +/* 03E950 7F009E20 C4268378 */ lwc1 $f6, %lo(global_timer_delta)($at) +/* 03E954 7F009E24 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E958 7F009E28 46105102 */ mul.s $f4, $f10, $f16 +/* 03E95C 7F009E2C C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E960 7F009E30 46122201 */ sub.s $f8, $f4, $f18 +/* 03E964 7F009E34 46064282 */ mul.s $f10, $f8, $f6 +/* 03E968 7F009E38 460A8100 */ add.s $f4, $f16, $f10 +/* 03E96C 7F009E3C E424A90C */ swc1 $f4, %lo(cursor_v_pos)($at) +.L7F009E40: +/* 03E970 7F009E40 0FC1E135 */ jal getPlayer_c_screentop +/* 03E974 7F009E44 00000000 */ nop +/* 03E978 7F009E48 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E97C 7F009E4C E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E980 7F009E50 C7B20018 */ lwc1 $f18, 0x18($sp) +/* 03E984 7F009E54 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E988 7F009E58 44813000 */ mtc1 $at, $f6 +/* 03E98C 7F009E5C 46120200 */ add.s $f8, $f0, $f18 +/* 03E990 7F009E60 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E994 7F009E64 C42AA90C */ lwc1 $f10, %lo(cursor_v_pos)($at) +/* 03E998 7F009E68 46064401 */ sub.s $f16, $f8, $f6 +/* 03E99C 7F009E6C 460A803C */ c.lt.s $f16, $f10 +/* 03E9A0 7F009E70 00000000 */ nop +/* 03E9A4 7F009E74 4500000D */ bc1f .L7F009EAC +/* 03E9A8 7F009E78 00000000 */ nop +/* 03E9AC 7F009E7C 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9B0 7F009E80 00000000 */ nop +/* 03E9B4 7F009E84 0FC1E12D */ jal getPlayer_c_screenheight +/* 03E9B8 7F009E88 E7A00018 */ swc1 $f0, 0x18($sp) +/* 03E9BC 7F009E8C C7A40018 */ lwc1 $f4, 0x18($sp) +/* 03E9C0 7F009E90 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9C4 7F009E94 44814000 */ mtc1 $at, $f8 +/* 03E9C8 7F009E98 46040480 */ add.s $f18, $f0, $f4 +/* 03E9CC 7F009E9C 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9D0 7F009EA0 46089181 */ sub.s $f6, $f18, $f8 +/* 03E9D4 7F009EA4 10000014 */ b .L7F009EF8 +/* 03E9D8 7F009EA8 E426A90C */ swc1 $f6, %lo(cursor_v_pos)($at) +.L7F009EAC: +/* 03E9DC 7F009EAC 0FC1E135 */ jal getPlayer_c_screentop +/* 03E9E0 7F009EB0 00000000 */ nop +/* 03E9E4 7F009EB4 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03E9E8 7F009EB8 C430A90C */ lwc1 $f16, %lo(cursor_v_pos)($at) +/* 03E9EC 7F009EBC 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03E9F0 7F009EC0 44815000 */ mtc1 $at, $f10 +/* 03E9F4 7F009EC4 00000000 */ nop +/* 03E9F8 7F009EC8 460A0100 */ add.s $f4, $f0, $f10 +/* 03E9FC 7F009ECC 4604803C */ c.lt.s $f16, $f4 +/* 03EA00 7F009ED0 00000000 */ nop +/* 03EA04 7F009ED4 45020009 */ bc1fl .L7F009EFC +/* 03EA08 7F009ED8 8FBF0014 */ lw $ra, 0x14($sp) +/* 03EA0C 7F009EDC 0FC1E135 */ jal getPlayer_c_screentop +/* 03EA10 7F009EE0 00000000 */ nop +/* 03EA14 7F009EE4 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 03EA18 7F009EE8 44819000 */ mtc1 $at, $f18 +/* 03EA1C 7F009EEC 3C018003 */ lui $at, %hi(cursor_v_pos) +/* 03EA20 7F009EF0 46120200 */ add.s $f8, $f0, $f18 +/* 03EA24 7F009EF4 E428A90C */ swc1 $f8, %lo(cursor_v_pos)($at) +.L7F009EF8: +/* 03EA28 7F009EF8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F009EFC: +/* 03EA2C 7F009EFC 27BD0020 */ addiu $sp, $sp, 0x20 +/* 03EA30 7F009F00 03E00008 */ jr $ra +/* 03EA34 7F009F04 00000000 */ nop +) +#endif + #endif @@ -2483,12 +2469,12 @@ s32 add_tab1_start(s32 arg0) { } // Node 6 sp54 = (s32) (0x54 - (sp48 >> 1)); - sp44 = get_video2_settings_txtClipH(); - en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + sp44 = viGetY(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0); setTextOrientation(0); setTextSpacingInverted(0); return; - // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069770, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0)) } #else GLOBAL_ASM( @@ -2553,9 +2539,9 @@ glabel add_tab1_start /* 03EC88 7F00A158 00016843 */ sra $t5, $at, 1 .L7F00A15C: /* 03EC8C 7F00A15C 01CD7823 */ subu $t7, $t6, $t5 -/* 03EC90 7F00A160 0C00110B */ jal get_video2_settings_txtClipH +/* 03EC90 7F00A160 0C00110B */ jal viGetY /* 03EC94 7F00A164 AFAF0054 */ sw $t7, 0x54($sp) -/* 03EC98 7F00A168 0C001107 */ jal get_video2_settings_txtClipW +/* 03EC98 7F00A168 0C001107 */ jal viGetX /* 03EC9C 7F00A16C A7A20044 */ sh $v0, 0x44($sp) /* 03ECA0 7F00A170 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) /* 03ECA4 7F00A174 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -2637,12 +2623,12 @@ s32 add_tab3_previous(s32 arg0) { } // Node 6 sp54 = (s32) (0x10d - (sp48 >> 1)); - sp44 = get_video2_settings_txtClipH(); - en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + sp44 = viGetY(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0); setTextOrientation(0); setTextSpacingInverted(0); return; - // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069778, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0)) } #else GLOBAL_ASM( @@ -2707,9 +2693,9 @@ glabel add_tab3_previous /* 03EE40 7F00A310 00016843 */ sra $t5, $at, 1 .L7F00A314: /* 03EE44 7F00A314 01CD7823 */ subu $t7, $t6, $t5 -/* 03EE48 7F00A318 0C00110B */ jal get_video2_settings_txtClipH +/* 03EE48 7F00A318 0C00110B */ jal viGetY /* 03EE4C 7F00A31C AFAF0054 */ sw $t7, 0x54($sp) -/* 03EE50 7F00A320 0C001107 */ jal get_video2_settings_txtClipW +/* 03EE50 7F00A320 0C001107 */ jal viGetX /* 03EE54 7F00A324 A7A20044 */ sh $v0, 0x44($sp) /* 03EE58 7F00A328 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) /* 03EE5C 7F00A32C 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -2799,12 +2785,12 @@ s32 add_tab2_next(s32 arg0) { } // Node 6 sp54 = (s32) (0xb1 - (sp48 >> 1)); - sp44 = get_video2_settings_txtClipH(); - en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0); + sp44 = viGetY(); + en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0); setTextOrientation(0); setTextSpacingInverted(0); return; - // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, get_video2_settings_txtClipW(), 0, 0)) + // (possible return value: en_text_write_stuff(arg0, &sp54, &sp50, dword_CODE_bss_80069774, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0xff, sp44, viGetX(), 0, 0)) } #else GLOBAL_ASM( @@ -2869,9 +2855,9 @@ glabel add_tab2_next /* 03F01C 7F00A4EC 00016843 */ sra $t5, $at, 1 .L7F00A4F0: /* 03F020 7F00A4F0 01CD7823 */ subu $t7, $t6, $t5 -/* 03F024 7F00A4F4 0C00110B */ jal get_video2_settings_txtClipH +/* 03F024 7F00A4F4 0C00110B */ jal viGetY /* 03F028 7F00A4F8 AFAF0054 */ sw $t7, 0x54($sp) -/* 03F02C 7F00A4FC 0C001107 */ jal get_video2_settings_txtClipW +/* 03F02C 7F00A4FC 0C001107 */ jal viGetX /* 03F030 7F00A500 A7A20044 */ sh $v0, 0x44($sp) /* 03F034 7F00A504 3C088004 */ lui $t0, %hi(ptrSecondFontTableSmall) /* 03F038 7F00A508 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -2920,6 +2906,7 @@ u32 isontab2(void) #ifdef NONMATCHING +// void init_menu00_legalscreen(void) { struct point sp20; @@ -2927,11 +2914,13 @@ void init_menu00_legalscreen(void) musicTrack1Stop(); maybe_is_in_menu = 1; menu_timer = 0; - sp20 = D_8002A9C0; - load_object_fill_header(&PitemZ_entries[0xEF4], &PitemZ_entries[0xEF8], ptr_logo_and_walletbond_DL, 0x3c000, 0); - set_objuse_flag_compute_grp_nums_set_obj_loaded(&PlegalpageZ_header); + sp20.x = D_8002A9C0.x; + sp20.y = D_8002A9C0.y; + sp20.z = D_8002A9C0.z; + load_object_fill_header(&PitemZ_entries[319].header, &PitemZ_entries[319].filename, ptr_logo_and_walletbond_DL, 0x3c000, 0); + set_objuse_flag_compute_grp_nums_set_obj_loaded(&PitemZ_entries[319].header); - something_legalscreen_constructor = get_obj_instance_controller_for_header(PlegalpageZ_header); + something_legalscreen_constructor = get_obj_instance_controller_for_header(&PitemZ_entries[319].header); set_obj_instance_controller_scale(something_legalscreen_constructor, 1.0f); setsuboffset(something_legalscreen_constructor, &sp20); sub_GAME_7F01DF90(); @@ -3004,33 +2993,27 @@ void update_menu00_legalscreen(void) } - - - -#ifdef NONMATCHING void interface_menu00_legalscreen(void) { - setvideo_far(60.0f); - set_page_aspect(1.333333f); - set_page_height(100.0f, 10000.0f); - set_video2_settings_offset_24(0); + viSetFovY(60.0f); + viSetAspect(1.3333334f); + viSetZRange(100.0f, 10000.0f); + viSetUseZBuf(0); menu_timer += clock_timer; if (menu_timer >= 0xF1) { - if ((get_attached_controller_count() > 0) && (is_first_time_on_legal_screen == 0)) + if ((joyGetControllerCount() < 1) && (is_first_time_on_legal_screen)) { - set_menu_to_mode(MENU_NINTENDO_LOGO,1); + set_menu_to_mode(MENU_NO_CONTROLLERS,1); return; - } else - { - set_menu_to_mode(MENU_NO_CONTROLLERS,1); - return; } + set_menu_to_mode(MENU_NINTENDO_LOGO,1); + return; } - if (get_controller_buttons_pressed(0, 0xFFFF)) + if (joyGetButtonsPressedThisFrame(0, ANY_BUTTON) && (is_first_time_on_legal_screen == 0)) { - if ((is_first_time_on_legal_screen == 0) && (is_first_time_on_main_menu == 0)) + if (is_first_time_on_main_menu == 0) { set_menu_to_mode(MENU_FILE_SELECT,1); return; @@ -3038,90 +3021,6 @@ void interface_menu00_legalscreen(void) set_menu_to_mode(MENU_NINTENDO_LOGO,1); } } -#else -GLOBAL_ASM( -.late_rodata -glabel D_800519E4 -.word 0x3FAAAAAB /* 1.3333334;*/ -glabel D_800519E8 -.word 0x461C4000 /* 10000.0;*/ -.text -glabel interface_menu00_legalscreen -/* 03F20C 7F00A6DC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03F210 7F00A6E0 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 03F214 7F00A6E4 AFBF0014 */ sw $ra, 0x14($sp) -/* 03F218 7F00A6E8 44816000 */ mtc1 $at, $f12 -/* 03F21C 7F00A6EC 0C001151 */ jal setvideo_far -/* 03F220 7F00A6F0 00000000 */ nop -/* 03F224 7F00A6F4 3C018005 */ lui $at, %hi(D_800519E4) -/* 03F228 7F00A6F8 0C001164 */ jal set_page_aspect -/* 03F22C 7F00A6FC C42C19E4 */ lwc1 $f12, %lo(D_800519E4)($at) -/* 03F230 7F00A700 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 03F234 7F00A704 44816000 */ mtc1 $at, $f12 -/* 03F238 7F00A708 3C018005 */ lui $at, %hi(D_800519E8) -/* 03F23C 7F00A70C 0C001194 */ jal set_page_height -/* 03F240 7F00A710 C42E19E8 */ lwc1 $f14, %lo(D_800519E8)($at) -/* 03F244 7F00A714 0C00114D */ jal set_video2_settings_offset_24 -/* 03F248 7F00A718 00002025 */ move $a0, $zero -/* 03F24C 7F00A71C 3C028003 */ lui $v0, %hi(menu_timer) -/* 03F250 7F00A720 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 -/* 03F254 7F00A724 3C0F8005 */ lui $t7, %hi(clock_timer) -/* 03F258 7F00A728 8DEF8374 */ lw $t7, %lo(clock_timer)($t7) -/* 03F25C 7F00A72C 8C4E0000 */ lw $t6, ($v0) -/* 03F260 7F00A730 00002025 */ move $a0, $zero -/* 03F264 7F00A734 01CFC021 */ addu $t8, $t6, $t7 -/* 03F268 7F00A738 2B0100F1 */ slti $at, $t8, 0xf1 -/* 03F26C 7F00A73C 14200012 */ bnez $at, .L7F00A788 -/* 03F270 7F00A740 AC580000 */ sw $t8, ($v0) -/* 03F274 7F00A744 0C002E7E */ jal get_attached_controller_count -/* 03F278 7F00A748 00000000 */ nop -/* 03F27C 7F00A74C 1C400009 */ bgtz $v0, .L7F00A774 -/* 03F280 7F00A750 3C088003 */ lui $t0, %hi(is_first_time_on_legal_screen) -/* 03F284 7F00A754 8D08A92C */ lw $t0, %lo(is_first_time_on_legal_screen)($t0) -/* 03F288 7F00A758 24040016 */ li $a0, 22 -/* 03F28C 7F00A75C 51000006 */ beql $t0, $zero, .L7F00A778 -/* 03F290 7F00A760 24040001 */ li $a0, 1 -/* 03F294 7F00A764 0FC06975 */ jal set_menu_to_mode -/* 03F298 7F00A768 24050001 */ li $a1, 1 -/* 03F29C 7F00A76C 1000001A */ b .L7F00A7D8 -/* 03F2A0 7F00A770 8FBF0014 */ lw $ra, 0x14($sp) -.L7F00A774: -/* 03F2A4 7F00A774 24040001 */ li $a0, 1 -.L7F00A778: -/* 03F2A8 7F00A778 0FC06975 */ jal set_menu_to_mode -/* 03F2AC 7F00A77C 24050001 */ li $a1, 1 -/* 03F2B0 7F00A780 10000015 */ b .L7F00A7D8 -/* 03F2B4 7F00A784 8FBF0014 */ lw $ra, 0x14($sp) -.L7F00A788: -/* 03F2B8 7F00A788 0C0030EB */ jal get_controller_buttons_pressed -/* 03F2BC 7F00A78C 3405FFFF */ li $a1, 65535 -/* 03F2C0 7F00A790 10400010 */ beqz $v0, .L7F00A7D4 -/* 03F2C4 7F00A794 3C098003 */ lui $t1, %hi(is_first_time_on_legal_screen) -/* 03F2C8 7F00A798 8D29A92C */ lw $t1, %lo(is_first_time_on_legal_screen)($t1) -/* 03F2CC 7F00A79C 3C0A8003 */ lui $t2, %hi(is_first_time_on_main_menu) -/* 03F2D0 7F00A7A0 5520000D */ bnezl $t1, .L7F00A7D8 -/* 03F2D4 7F00A7A4 8FBF0014 */ lw $ra, 0x14($sp) -/* 03F2D8 7F00A7A8 8D4AA930 */ lw $t2, %lo(is_first_time_on_main_menu)($t2) -/* 03F2DC 7F00A7AC 24050001 */ li $a1, 1 -/* 03F2E0 7F00A7B0 24040001 */ li $a0, 1 -/* 03F2E4 7F00A7B4 15400005 */ bnez $t2, .L7F00A7CC -/* 03F2E8 7F00A7B8 00000000 */ nop -/* 03F2EC 7F00A7BC 0FC06975 */ jal set_menu_to_mode -/* 03F2F0 7F00A7C0 24040005 */ li $a0, 5 -/* 03F2F4 7F00A7C4 10000004 */ b .L7F00A7D8 -/* 03F2F8 7F00A7C8 8FBF0014 */ lw $ra, 0x14($sp) -.L7F00A7CC: -/* 03F2FC 7F00A7CC 0FC06975 */ jal set_menu_to_mode -/* 03F300 7F00A7D0 24050001 */ li $a1, 1 -.L7F00A7D4: -/* 03F304 7F00A7D4 8FBF0014 */ lw $ra, 0x14($sp) -.L7F00A7D8: -/* 03F308 7F00A7D8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03F30C 7F00A7DC 03E00008 */ jr $ra -/* 03F310 7F00A7E0 00000000 */ nop -) -#endif - #ifdef NONMATCHING @@ -3154,8 +3053,8 @@ void display_aligned_white_text_to_screen(s32 arg0, s32 arg1, s32 arg2, s32 arg3 phi_t6 = (s32) (temp_lo_2 + 1) >> 1; } sp40 = (s32) (arg2 - phi_t6); - sp3C = get_video2_settings_txtClipW(); - en_text_write_stuff(arg0, &sp44, &sp40, arg5, arg6, arg7, -1, sp3C, get_video2_settings_txtClipH(), 0, 0); + sp3C = viGetX(); + en_text_write_stuff(arg0, &sp44, &sp40, arg5, arg6, arg7, -1, sp3C, viGetY(), 0, 0); } #else GLOBAL_ASM( @@ -3202,9 +3101,9 @@ glabel display_aligned_white_text_to_screen /* 03F3A8 7F00A878 00017043 */ sra $t6, $at, 1 .L7F00A87C: /* 03F3AC 7F00A87C 01EEC023 */ subu $t8, $t7, $t6 -/* 03F3B0 7F00A880 0C001107 */ jal get_video2_settings_txtClipW +/* 03F3B0 7F00A880 0C001107 */ jal viGetX /* 03F3B4 7F00A884 AFB80040 */ sw $t8, 0x40($sp) -/* 03F3B8 7F00A888 0C00110B */ jal get_video2_settings_txtClipH +/* 03F3B8 7F00A888 0C00110B */ jal viGetY /* 03F3BC 7F00A88C A7A2003C */ sh $v0, 0x3c($sp) /* 03F3C0 7F00A890 8FB90068 */ lw $t9, 0x68($sp) /* 03F3C4 7F00A894 8FA9006C */ lw $t1, 0x6c($sp) @@ -3271,7 +3170,7 @@ loop_1: temp_t0->unk0 = (s32) temp_t6->unk0; insert_imageDL(arg0); matrix_4x4_7F059694(&spA0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); - temp_ret = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + temp_ret = dynAllocate(something_legalscreen_constructor->unk8->unkE << 6); spF4 = temp_ret; matrix_4x4_copy(&spA0, temp_ret); something_legalscreen_constructor->unkC = spF4; @@ -3359,7 +3258,7 @@ glabel constructor_menu00_legalscreen /* 03F4C8 7F00A998 8D2A0008 */ lw $t2, 8($t1) /* 03F4CC 7F00A99C 8544000E */ lh $a0, 0xe($t2) /* 03F4D0 7F00A9A0 00045980 */ sll $t3, $a0, 6 -/* 03F4D4 7F00A9A4 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03F4D4 7F00A9A4 0FC2F5C5 */ jal dynAllocate /* 03F4D8 7F00A9A8 01602025 */ move $a0, $t3 /* 03F4DC 7F00A9AC AFA200F4 */ sw $v0, 0xf4($sp) /* 03F4E0 7F00A9B0 02002025 */ move $a0, $s0 @@ -3463,10 +3362,10 @@ void dummy7F00AAF8(void) { void interface_menu17_switchscreens(void) { - setvideo_far(60.0f); - set_page_aspect(1.3333334f); - set_page_height(100.0f, 10000.0f); - set_video2_settings_offset_24(0); + viSetFovY(60.0f); + viSetAspect(1.3333334f); + viSetZRange(100.0f, 10000.0f); + viSetUseZBuf(0); menu_timer++; if ((menu_timer >= 4) && (spectrum_related_flag == 0) && (is_emulating_spectrum == 0)) @@ -3588,10 +3487,10 @@ void update_menu01_nintendo(void) void interface_menu01_nintendo(void) { - setvideo_far(60.0f); - set_page_aspect(1.3333334f); - set_page_height(100.0f, 10000.0f); - set_video2_settings_offset_24(0); + viSetFovY(60.0f); + viSetAspect(1.3333334f); + viSetZRange(100.0f, 10000.0f); + viSetUseZBuf(0); menu_timer = menu_timer + clock_timer; if (menu_timer >= 0x1F5) @@ -3599,7 +3498,7 @@ void interface_menu01_nintendo(void) set_menu_to_mode(MENU_RAREWARE_LOGO, 1); return; } - if (get_controller_buttons_pressed(0, 0xFFFF)) + if (joyGetButtonsPressedThisFrame(0, ANY_BUTTON)) { if (is_first_time_on_main_menu == 0) { @@ -3689,7 +3588,7 @@ loop_1: matrix_4x4_7F059694(&spE0, 0.0f, 0.0f, 0x457a0000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); matrix_4x4_multiply_in_place(&spE0, &sp90); matrix_4x4_copy(&sp90, &spE0); - temp_ret_2 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + temp_ret_2 = dynAllocate(something_legalscreen_constructor->unk8->unkE << 6); sp138 = temp_ret_2; matrix_4x4_copy(&spE0, temp_ret_2); something_legalscreen_constructor->unkC = sp138; @@ -3855,7 +3754,7 @@ glabel constructor_menu01_nintendo /* 03FAAC 7F00AF7C 8D2A0008 */ lw $t2, 8($t1) /* 03FAB0 7F00AF80 8544000E */ lh $a0, 0xe($t2) /* 03FAB4 7F00AF84 00045980 */ sll $t3, $a0, 6 -/* 03FAB8 7F00AF88 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 03FAB8 7F00AF88 0FC2F5C5 */ jal dynAllocate /* 03FABC 7F00AF8C 01602025 */ move $a0, $t3 /* 03FAC0 7F00AF90 AFA20138 */ sw $v0, 0x138($sp) /* 03FAC4 7F00AF94 02002025 */ move $a0, $s0 @@ -3920,7 +3819,7 @@ glabel constructor_menu01_nintendo void init_menu02_rarelogo(void) { sub_GAME_7F008B58(ptr_logo_and_walletbond_DL, 0x78000); - play_sfx_a1(ptr_sfx_buf, 0x102, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x102, 0); } void update_menu02_rareware(void) { @@ -3929,13 +3828,13 @@ void update_menu02_rareware(void) { void interface_menu02_rareware(void) { - set_video2_settings_offset_24(0); + viSetUseZBuf(0); if (sub_GAME_7F008DD0() != 0) { set_menu_to_mode(MENU_EYE_INTRO, 1); return; } - if (get_controller_buttons_pressed(0, 0xffff) != 0) + if (joyGetButtonsPressedThisFrame(0, ANY_BUTTON) != 0) { if (is_first_time_on_main_menu == 0) { @@ -3955,7 +3854,7 @@ void constructor_menu02_rareware(Gfx * DL) { void init_menu03_eyeintro(void) { sub_GAME_7F008E80(ptr_logo_and_walletbond_DL, 0x78000); - musicTrack1Play(2); + musicTrack1Play(M_INTRO); maybe_is_in_menu = 1; } @@ -3964,12 +3863,12 @@ void update_menu_03_eye(void) { } void interface_menu03_eye(void) { - set_video2_settings_offset_24(0); + viSetUseZBuf(0); if (sub_GAME_7F009744() != 0) { set_menu_to_mode(MENU_GOLDENEYE_LOGO, 1); return; } - if (get_controller_buttons_pressed(0, 0xffff) != 0) { + if (joyGetButtonsPressedThisFrame(0, ANY_BUTTON) != 0) { if (is_first_time_on_main_menu == 0) { set_menu_to_mode(MENU_FILE_SELECT, 1); return; @@ -4072,15 +3971,15 @@ void interface_menu04_goldeneyelogo(void) { u32 uVar1; - setvideo_far(60.00000000); - set_page_aspect(menu04_aspect); - set_page_height(100.00000000,(f32)menu04_pageheight); - set_video2_settings_offset_24(0); + viSetFovY(60.00000000); + viSetAspect(menu04_aspect); + viSetZRange(100.00000000,(f32)menu04_pageheight); + viSetUseZBuf(0); menu_timer += clock_timer; if (((is_first_time_on_main_menu == FALSE) || (0xb4 < menu_timer)) || ((ge_logo_bool != FALSE && (0x5a < menu_timer)))) { if (menu_timer < 0xb5) { - uVar1 = get_controller_buttons_pressed + uVar1 = joyGetButtonsPressedThisFrame ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG| DUMMY_2|DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG| B_BUTTON|A_BUTTON); @@ -4100,7 +3999,7 @@ void interface_menu04_goldeneyelogo(void) } } else { - uVar1 = get_controller_buttons_pressed + uVar1 = joyGetButtonsPressedThisFrame ('\0',R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2| DUMMY_1|R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON| A_BUTTON); @@ -4124,17 +4023,17 @@ glabel interface_menu04_goldeneyelogo /* 03FE64 7F00B334 3C014270 */ li $at, 0x42700000 # 60.000000 /* 03FE68 7F00B338 AFBF0014 */ sw $ra, 0x14($sp) /* 03FE6C 7F00B33C 44816000 */ mtc1 $at, $f12 -/* 03FE70 7F00B340 0C001151 */ jal setvideo_far +/* 03FE70 7F00B340 0C001151 */ jal viSetFovY /* 03FE74 7F00B344 00000000 */ nop /* 03FE78 7F00B348 3C018005 */ lui $at, %hi(D_80051A10) -/* 03FE7C 7F00B34C 0C001164 */ jal set_page_aspect +/* 03FE7C 7F00B34C 0C001164 */ jal viSetAspect /* 03FE80 7F00B350 C42C1A10 */ lwc1 $f12, %lo(D_80051A10)($at) /* 03FE84 7F00B354 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 03FE88 7F00B358 44816000 */ mtc1 $at, $f12 /* 03FE8C 7F00B35C 3C018005 */ lui $at, %hi(D_80051A14) -/* 03FE90 7F00B360 0C001194 */ jal set_page_height +/* 03FE90 7F00B360 0C001194 */ jal viSetZRange /* 03FE94 7F00B364 C42E1A14 */ lwc1 $f14, %lo(D_80051A14)($at) -/* 03FE98 7F00B368 0C00114D */ jal set_video2_settings_offset_24 +/* 03FE98 7F00B368 0C00114D */ jal viSetUseZBuf /* 03FE9C 7F00B36C 00002025 */ move $a0, $zero /* 03FEA0 7F00B370 3C038003 */ lui $v1, %hi(menu_timer) /* 03FEA4 7F00B374 2463A8CC */ addiu $v1, %lo(menu_timer) # addiu $v1, $v1, -0x5734 @@ -4182,7 +4081,7 @@ glabel interface_menu04_goldeneyelogo /* 03FF40 7F00B410 10000017 */ b .L7F00B470 /* 03FF44 7F00B414 8FBF0014 */ lw $ra, 0x14($sp) .L7F00B418: -/* 03FF48 7F00B418 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF48 7F00B418 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 03FF4C 7F00B41C 3405FFFF */ li $a1, 65535 /* 03FF50 7F00B420 14400007 */ bnez $v0, .L7F00B440 /* 03FF54 7F00B424 3C0B8003 */ lui $t3, %hi(is_first_time_on_main_menu) @@ -4199,7 +4098,7 @@ glabel interface_menu04_goldeneyelogo /* 03FF7C 7F00B44C 10000008 */ b .L7F00B470 /* 03FF80 7F00B450 8FBF0014 */ lw $ra, 0x14($sp) .L7F00B454: -/* 03FF84 7F00B454 0C0030EB */ jal get_controller_buttons_pressed +/* 03FF84 7F00B454 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 03FF88 7F00B458 3405FFFF */ li $a1, 65535 /* 03FF8C 7F00B45C 10400003 */ beqz $v0, .L7F00B46C /* 03FF90 7F00B460 240D0001 */ li $t5, 1 @@ -4255,8 +4154,8 @@ loop_1: goto loop_1; } temp_t1->unk0 = (s32) temp_t6->unk0; - temp_s4 = insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)); - temp_ret = sub_GAME_7F0BD6F8(2); + temp_s4 = viFillScreen(viSetFillColor(arg0, 0, 0, 0)); + temp_ret = dynAllocate7F0BD6F8(2); temp_s0 = temp_ret; guLookAtReflect(&spB0, temp_ret, 0.0f, 0.0f, 4000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); temp_v0 = temp_s4; @@ -4277,7 +4176,7 @@ loop_1: temp_s4->unk4 = (s32) (temp_s0 + 0x10); temp_s4->unk0 = 0x3820010; matrix_4x4_7F059694(&spF8, 0.0f, 0.0f, 0x453b8000, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); - sp150 = sub_GAME_7F0BD714(something_legalscreen_constructor->unk8->unkE << 6); + sp150 = dynAllocate(something_legalscreen_constructor->unk8->unkE << 6); matrix_scalar_multiply(D_80051A18, &spF8); matrix_4x4_copy(&spF8, sp150); something_legalscreen_constructor->unkC = sp150; @@ -4337,12 +4236,12 @@ glabel constructor_menu04_goldeneyelogo /* 04000C 7F00B4DC 00002825 */ move $a1, $zero /* 040010 7F00B4E0 00003025 */ move $a2, $zero /* 040014 7F00B4E4 00003825 */ move $a3, $zero -/* 040018 7F00B4E8 0C0011B4 */ jal set_setfillcolor +/* 040018 7F00B4E8 0C0011B4 */ jal viSetFillColor /* 04001C 7F00B4EC AD210000 */ sw $at, ($t1) -/* 040020 7F00B4F0 0C000FBE */ jal insert_generic_fillrect +/* 040020 7F00B4F0 0C000FBE */ jal viFillScreen /* 040024 7F00B4F4 00402025 */ move $a0, $v0 /* 040028 7F00B4F8 0040A025 */ move $s4, $v0 -/* 04002C 7F00B4FC 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 04002C 7F00B4FC 0FC2F5BE */ jal dynAllocate7F0BD6F8 /* 040030 7F00B500 24040002 */ li $a0, 2 /* 040034 7F00B504 44800000 */ mtc1 $zero, $f0 /* 040038 7F00B508 3C01457A */ li $at, 0x457A0000 # 4000.000000 @@ -4422,7 +4321,7 @@ glabel constructor_menu04_goldeneyelogo /* 040160 7F00B630 8D4B0008 */ lw $t3, 8($t2) /* 040164 7F00B634 8564000E */ lh $a0, 0xe($t3) /* 040168 7F00B638 00046180 */ sll $t4, $a0, 6 -/* 04016C 7F00B63C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04016C 7F00B63C 0FC2F5C5 */ jal dynAllocate /* 040170 7F00B640 01802025 */ move $a0, $t4 /* 040174 7F00B644 3C018005 */ lui $at, %hi(D_80051A18) /* 040178 7F00B648 AFA20150 */ sw $v0, 0x150($sp) @@ -4812,7 +4711,7 @@ void *init_menu05_fileselect(void) load_walletbond(); if (maybe_is_in_menu != 0) { - musicTrack1Play(0x17); + musicTrack1Play(M_FOLDERS); maybe_is_in_menu = 0; } menu_timer = 0; @@ -5050,7 +4949,7 @@ s32 interface_menu05_fileselect(void) s32 phi_s2_2; s32 phi_return; - if (((((get_controller_buttons_pressed(0, 0xffff) != 0) || (get_cur_controller_horz_stick_pos(0) < -5)) || (get_cur_controller_horz_stick_pos(0) >= 6)) || (get_cur_controller_vert_stick_pos(0) < -5)) || (get_cur_controller_vert_stick_pos(0) >= 6)) + if (((((joyGetButtonsPressedThisFrame(0, ANY_BUTTON) != 0) || (joyGetStickX(0) < -5)) || (joyGetStickX(0) >= 6)) || (joyGetStickY(0) < -5)) || (joyGetStickY(0) >= 6)) { menu_timer = 0; } @@ -5058,10 +4957,10 @@ s32 interface_menu05_fileselect(void) { menu_timer = (s32) (menu_timer + clock_timer); } - setvideo_far(0x42700000); - set_page_aspect(D_80051A1C); - set_page_height(0x42c80000, D_80051A20); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051A1C); + viSetZRange(0x42c80000, D_80051A20); + viSetUseZBuf(0); sp54 = &D_8002AB94; phi_s0 = &ptr_folder_object_instance; phi_s1 = &dword_CODE_bss_80069620; @@ -5071,7 +4970,7 @@ loop_8: matrix_4x4_set_identity_and_position(sp54, &sp88); matrix_scalar_multiply(D_80051A24, &sp88); matrix_4x4_multiply_in_place(&spC8, &sp88); - (*phi_s0)->unkC = sub_GAME_7F0BD714((*phi_s0)->unk8->unkE << 6); + (*phi_s0)->unkC = dynAllocate((*phi_s0)->unk8->unkE << 6); matrix_4x4_copy(&sp88, (*phi_s0)->unkC); temp_a0 = *phi_s0; phi_s1->unk0 = (f32) temp_a0->unkC->unk30; @@ -5112,61 +5011,61 @@ loop_8: } if (folder_selected_for_deletion >= 0) { - if ((get_controller_buttons_pressed(0, 0x222) != 0) && (folder_selected_for_deletion_choice == 0)) + if ((joyGetButtonsPressedThisFrame(0, 0x222) != 0) && (folder_selected_for_deletion_choice == 0)) { folder_selected_for_deletion_choice = 1; - play_sfx_a1(ptr_sfx_buf, 0x12, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x12, 0); } else { - if (get_controller_buttons_pressed(0, 0x111) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x111) != 0) { if (folder_selected_for_deletion_choice != 0) { folder_selected_for_deletion_choice = 0; - play_sfx_a1(ptr_sfx_buf, 0x12, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x12, 0); } } } - if ((get_cur_controller_horz_stick_pos(0) < -0x2d) && (*&folder_selected_for_deletion_choice == 0)) + if ((joyGetStickX(0) < -0x2d) && (*&folder_selected_for_deletion_choice == 0)) { *&folder_selected_for_deletion_choice = 1; - play_sfx_a1(ptr_sfx_buf, 0x12, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x12, 0); } else { - if (get_cur_controller_horz_stick_pos(0) >= 0x2e) + if (joyGetStickX(0) >= 0x2e) { if (*&folder_selected_for_deletion_choice != 0) { *&folder_selected_for_deletion_choice = 0; - play_sfx_a1(ptr_sfx_buf, 0x12, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x12, 0); } } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (*&folder_selected_for_deletion_choice == 0) { delete_eeprom_folder(folder_selected_for_deletion, 0x76, 0); - play_sfx_a1(ptr_sfx_buf, 0x76, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x76, 0); } else { - play_sfx_a1(ptr_sfx_buf, 0x76, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x76, 0); } folder_selected_for_deletion = -1; phi_return = toggle_deletion_menu_for_folder(folder_selected_for_deletion); } else { - temp_ret = get_controller_buttons_pressed(0, 0x4000); + temp_ret = joyGetButtonsPressedThisFrame(0, 0x4000); phi_return = temp_ret; if (temp_ret != 0) { toggle_deletion_menu_for_folder(folder_selected_for_deletion); folder_selected_for_deletion = -1; - phi_return = play_sfx_a1(ptr_sfx_buf, 0x76, 0); + phi_return = play_sfx_a1(g_musicSfxBufferPtr, 0x76, 0); } } } @@ -5178,12 +5077,12 @@ loop_8: loop_38: sub_GAME_7F03F90C(*phi_s0_2, &sp80, &sp7C, &sp78, &sp74); sub_GAME_7F03F948(phi_s1_2, &sp7C, &sp74, &sp6C, &sp64); - if (((((sp6C <= cursor_h_pos) && (cursor_h_pos <= sp64)) && (sp70 <= cursor_v_pos)) && (cursor_v_pos <= sp68)) && (get_controller_buttons_pressed(0, 0xb000) != 0)) + if (((((sp6C <= cursor_h_pos) && (cursor_h_pos <= sp64)) && (sp70 <= cursor_v_pos)) && (cursor_v_pos <= sp68)) && (joyGetButtonsPressedThisFrame(0, 0xb000) != 0)) { if (folder_selection_screen_option_icon == 0) { selected_folder_num = (s32) phi_s2_2; - play_sfx_a1(ptr_sfx_buf, 0x4d, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x4d, 0); } else { @@ -5191,7 +5090,7 @@ loop_38: { sub_GAME_7F01EDA0(phi_s2_2); folder_selection_screen_option_icon = 0; - play_sfx_a1(ptr_sfx_buf, 0x4f, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x4f, 0); } else { @@ -5206,7 +5105,7 @@ loop_38: } } folder_selection_screen_option_icon = 0; - play_sfx_a1(ptr_sfx_buf, 0x12, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x12, 0); } } } @@ -5222,38 +5121,38 @@ loop_38: goto loop_38; } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if ((((folder_option_COPY_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_COPY_left_bound.unk8)) && (folder_option_COPY_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_COPY_left_bound.unkC)) { *&folder_selection_screen_option_icon = 1; - play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + play_sfx_a1(*&g_musicSfxBufferPtr, 0xde, 0); } else { if ((((folder_option_ERASE_left_bound.unk0 <= cursor_h_pos) && (cursor_h_pos <= folder_option_ERASE_left_bound.unk8)) && (folder_option_ERASE_left_bound.unk4 <= cursor_v_pos)) && (cursor_v_pos <= folder_option_ERASE_left_bound.unkC)) { *&folder_selection_screen_option_icon = 2; - play_sfx_a1(*&ptr_sfx_buf, 0xde, 0); + play_sfx_a1(*&g_musicSfxBufferPtr, 0xde, 0); } else { if (*&folder_selection_screen_option_icon != 0) { *&folder_selection_screen_option_icon = 0; - play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + play_sfx_a1(*&g_musicSfxBufferPtr, 0x76, 0); } } } } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { if (*&folder_selection_screen_option_icon != 0) { *&folder_selection_screen_option_icon = 0; - play_sfx_a1(*&ptr_sfx_buf, 0x76, 0); + play_sfx_a1(*&g_musicSfxBufferPtr, 0x76, 0); } } } @@ -5289,26 +5188,26 @@ glabel interface_menu05_fileselect /* 040710 7F00BBE0 AFB00034 */ sw $s0, 0x34($sp) /* 040714 7F00BBE4 F7B40028 */ sdc1 $f20, 0x28($sp) /* 040718 7F00BBE8 00002025 */ move $a0, $zero -/* 04071C 7F00BBEC 0C0030EB */ jal get_controller_buttons_pressed +/* 04071C 7F00BBEC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040720 7F00BBF0 3405FFFF */ li $a1, 65535 /* 040724 7F00BBF4 14400015 */ bnez $v0, .L7F00BC4C /* 040728 7F00BBF8 00000000 */ nop -/* 04072C 7F00BBFC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 04072C 7F00BBFC 0C00303B */ jal joyGetStickX /* 040730 7F00BC00 00002025 */ move $a0, $zero /* 040734 7F00BC04 2841FFFB */ slti $at, $v0, -5 /* 040738 7F00BC08 14200010 */ bnez $at, .L7F00BC4C /* 04073C 7F00BC0C 00000000 */ nop -/* 040740 7F00BC10 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040740 7F00BC10 0C00303B */ jal joyGetStickX /* 040744 7F00BC14 00002025 */ move $a0, $zero /* 040748 7F00BC18 28410006 */ slti $at, $v0, 6 /* 04074C 7F00BC1C 1020000B */ beqz $at, .L7F00BC4C /* 040750 7F00BC20 00000000 */ nop -/* 040754 7F00BC24 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 040754 7F00BC24 0C00307F */ jal joyGetStickY /* 040758 7F00BC28 00002025 */ move $a0, $zero /* 04075C 7F00BC2C 2841FFFB */ slti $at, $v0, -5 /* 040760 7F00BC30 14200006 */ bnez $at, .L7F00BC4C /* 040764 7F00BC34 00000000 */ nop -/* 040768 7F00BC38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 040768 7F00BC38 0C00307F */ jal joyGetStickY /* 04076C 7F00BC3C 00002025 */ move $a0, $zero /* 040770 7F00BC40 28410006 */ slti $at, $v0, 6 /* 040774 7F00BC44 14200004 */ bnez $at, .L7F00BC58 @@ -5327,17 +5226,17 @@ glabel interface_menu05_fileselect .L7F00BC70: /* 0407A0 7F00BC70 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0407A4 7F00BC74 44816000 */ mtc1 $at, $f12 -/* 0407A8 7F00BC78 0C001151 */ jal setvideo_far +/* 0407A8 7F00BC78 0C001151 */ jal viSetFovY /* 0407AC 7F00BC7C 00000000 */ nop /* 0407B0 7F00BC80 3C018005 */ lui $at, %hi(D_80051A1C) -/* 0407B4 7F00BC84 0C001164 */ jal set_page_aspect +/* 0407B4 7F00BC84 0C001164 */ jal viSetAspect /* 0407B8 7F00BC88 C42C1A1C */ lwc1 $f12, %lo(D_80051A1C)($at) /* 0407BC 7F00BC8C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 0407C0 7F00BC90 44816000 */ mtc1 $at, $f12 /* 0407C4 7F00BC94 3C018005 */ lui $at, %hi(D_80051A20) -/* 0407C8 7F00BC98 0C001194 */ jal set_page_height +/* 0407C8 7F00BC98 0C001194 */ jal viSetZRange /* 0407CC 7F00BC9C C42E1A20 */ lwc1 $f14, %lo(D_80051A20)($at) -/* 0407D0 7F00BCA0 0C00114D */ jal set_video2_settings_offset_24 +/* 0407D0 7F00BCA0 0C00114D */ jal viSetUseZBuf /* 0407D4 7F00BCA4 00002025 */ move $a0, $zero /* 0407D8 7F00BCA8 3C198003 */ lui $t9, %hi(D_8002AB94) /* 0407DC 7F00BCAC 2739AB94 */ addiu $t9, %lo(D_8002AB94) # addiu $t9, $t9, -0x546c @@ -5377,7 +5276,7 @@ glabel interface_menu05_fileselect /* 040860 7F00BD30 8D090008 */ lw $t1, 8($t0) /* 040864 7F00BD34 8524000E */ lh $a0, 0xe($t1) /* 040868 7F00BD38 00045180 */ sll $t2, $a0, 6 -/* 04086C 7F00BD3C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04086C 7F00BD3C 0FC2F5C5 */ jal dynAllocate /* 040870 7F00BD40 01402025 */ move $a0, $t2 /* 040874 7F00BD44 8E0B0000 */ lw $t3, ($s0) /* 040878 7F00BD48 02602025 */ move $a0, $s3 @@ -5449,14 +5348,14 @@ glabel interface_menu05_fileselect /* 040970 7F00BE40 0520006A */ bltz $t1, .L7F00BFEC /* 040974 7F00BE44 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) /* 040978 7F00BE48 00002025 */ move $a0, $zero -/* 04097C 7F00BE4C 0C0030EB */ jal get_controller_buttons_pressed +/* 04097C 7F00BE4C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040980 7F00BE50 24050222 */ li $a1, 546 /* 040984 7F00BE54 1040000E */ beqz $v0, .L7F00BE90 /* 040988 7F00BE58 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) /* 04098C 7F00BE5C 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 /* 040990 7F00BE60 8E0A0000 */ lw $t2, ($s0) -/* 040994 7F00BE64 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 040998 7F00BE68 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040994 7F00BE64 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 040998 7F00BE68 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 04099C 7F00BE6C 15400008 */ bnez $t2, .L7F00BE90 /* 0409A0 7F00BE70 240B0001 */ li $t3, 1 /* 0409A4 7F00BE74 AE0B0000 */ sw $t3, ($s0) @@ -5470,13 +5369,13 @@ glabel interface_menu05_fileselect /* 0409C0 7F00BE90 3C108003 */ lui $s0, %hi(folder_selected_for_deletion_choice) /* 0409C4 7F00BE94 2610A920 */ addiu $s0, %lo(folder_selected_for_deletion_choice) # addiu $s0, $s0, -0x56e0 /* 0409C8 7F00BE98 00002025 */ move $a0, $zero -/* 0409CC 7F00BE9C 0C0030EB */ jal get_controller_buttons_pressed +/* 0409CC 7F00BE9C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0409D0 7F00BEA0 24050111 */ li $a1, 273 /* 0409D4 7F00BEA4 1040000A */ beqz $v0, .L7F00BED0 /* 0409D8 7F00BEA8 00000000 */ nop /* 0409DC 7F00BEAC 8E0C0000 */ lw $t4, ($s0) -/* 0409E0 7F00BEB0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 0409E4 7F00BEB4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 0409E0 7F00BEB0 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 0409E4 7F00BEB4 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 0409E8 7F00BEB8 11800005 */ beqz $t4, .L7F00BED0 /* 0409EC 7F00BEBC 24050012 */ li $a1, 18 /* 0409F0 7F00BEC0 AE000000 */ sw $zero, ($s0) @@ -5484,9 +5383,9 @@ glabel interface_menu05_fileselect /* 0409F8 7F00BEC8 0C002382 */ jal play_sfx_a1 /* 0409FC 7F00BECC 00003025 */ move $a2, $zero .L7F00BED0: -/* 040A00 7F00BED0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 040A04 7F00BED4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 -/* 040A08 7F00BED8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A00 7F00BED0 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 040A04 7F00BED4 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 +/* 040A08 7F00BED8 0C00303B */ jal joyGetStickX /* 040A0C 7F00BEDC 00002025 */ move $a0, $zero /* 040A10 7F00BEE0 2841FFD3 */ slti $at, $v0, -0x2d /* 040A14 7F00BEE4 1020000B */ beqz $at, .L7F00BF14 @@ -5502,7 +5401,7 @@ glabel interface_menu05_fileselect /* 040A3C 7F00BF0C 1000000F */ b .L7F00BF4C /* 040A40 7F00BF10 00002025 */ move $a0, $zero .L7F00BF14: -/* 040A44 7F00BF14 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 040A44 7F00BF14 0C00303B */ jal joyGetStickX /* 040A48 7F00BF18 00002025 */ move $a0, $zero /* 040A4C 7F00BF1C 2841002E */ slti $at, $v0, 0x2e /* 040A50 7F00BF20 5420000A */ bnezl $at, .L7F00BF4C @@ -5517,7 +5416,7 @@ glabel interface_menu05_fileselect /* 040A74 7F00BF44 8E640000 */ lw $a0, ($s3) /* 040A78 7F00BF48 00002025 */ move $a0, $zero .L7F00BF4C: -/* 040A7C 7F00BF4C 0C0030EB */ jal get_controller_buttons_pressed +/* 040A7C 7F00BF4C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040A80 7F00BF50 3405B000 */ li $a1, 45056 /* 040A84 7F00BF54 50400017 */ beql $v0, $zero, .L7F00BFB4 /* 040A88 7F00BF58 00002025 */ move $a0, $zero @@ -5546,7 +5445,7 @@ glabel interface_menu05_fileselect /* 040ADC 7F00BFAC AC31A91C */ sw $s1, %lo(folder_selected_for_deletion)($at) /* 040AE0 7F00BFB0 00002025 */ move $a0, $zero .L7F00BFB4: -/* 040AE4 7F00BFB4 0C0030EB */ jal get_controller_buttons_pressed +/* 040AE4 7F00BFB4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040AE8 7F00BFB8 24054000 */ li $a1, 16384 /* 040AEC 7F00BFBC 104000D7 */ beqz $v0, .L7F00C31C /* 040AF0 7F00BFC0 3C048003 */ lui $a0, %hi(folder_selected_for_deletion) @@ -5607,15 +5506,15 @@ glabel interface_menu05_fileselect /* 040BC4 7F00C094 0FC07A1D */ jal get_highest_stage_difficulty_completed_in_folder /* 040BC8 7F00C098 27A6005C */ addiu $a2, $sp, 0x5c /* 040BCC 7F00C09C 00002025 */ move $a0, $zero -/* 040BD0 7F00C0A0 0C0030EB */ jal get_controller_buttons_pressed +/* 040BD0 7F00C0A0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040BD4 7F00C0A4 3405B000 */ li $a1, 45056 /* 040BD8 7F00C0A8 50400037 */ beql $v0, $zero, .L7F00C188 /* 040BDC 7F00C0AC 26520001 */ addiu $s2, $s2, 1 /* 040BE0 7F00C0B0 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) /* 040BE4 7F00C0B4 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 /* 040BE8 7F00C0B8 8E220000 */ lw $v0, ($s1) -/* 040BEC 7F00C0BC 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 040BF0 7F00C0C0 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040BEC 7F00C0BC 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 040BF0 7F00C0C0 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 040BF4 7F00C0C4 14400009 */ bnez $v0, .L7F00C0EC /* 040BF8 7F00C0C8 3C018003 */ lui $at, %hi(selected_folder_num) /* 040BFC 7F00C0CC AC32A8E8 */ sw $s2, %lo(selected_folder_num)($at) @@ -5623,32 +5522,32 @@ glabel interface_menu05_fileselect /* 040C04 7F00C0D4 2405004D */ li $a1, 77 /* 040C08 7F00C0D8 0C002382 */ jal play_sfx_a1 /* 040C0C 7F00C0DC 00003025 */ move $a2, $zero -/* 040C10 7F00C0E0 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C10 7F00C0E0 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) /* 040C14 7F00C0E4 10000030 */ b .L7F00C1A8 -/* 040C18 7F00C0E8 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C18 7F00C0E8 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 .L7F00C0EC: /* 040C1C 7F00C0EC 24010001 */ li $at, 1 /* 040C20 7F00C0F0 5441000E */ bnel $v0, $at, .L7F00C12C /* 040C24 7F00C0F4 24010002 */ li $at, 2 /* 040C28 7F00C0F8 0FC07B68 */ jal sub_GAME_7F01EDA0 /* 040C2C 7F00C0FC 02402025 */ move $a0, $s2 -/* 040C30 7F00C100 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 040C34 7F00C104 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C30 7F00C100 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 040C34 7F00C104 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 040C38 7F00C108 AE200000 */ sw $zero, ($s1) /* 040C3C 7F00C10C 8E640000 */ lw $a0, ($s3) /* 040C40 7F00C110 2405004F */ li $a1, 79 /* 040C44 7F00C114 0C002382 */ jal play_sfx_a1 /* 040C48 7F00C118 00003025 */ move $a2, $zero -/* 040C4C 7F00C11C 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040C4C 7F00C11C 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) /* 040C50 7F00C120 10000021 */ b .L7F00C1A8 -/* 040C54 7F00C124 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C54 7F00C124 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 040C58 7F00C128 24010002 */ li $at, 2 .L7F00C12C: /* 040C5C 7F00C12C 14410012 */ bne $v0, $at, .L7F00C178 /* 040C60 7F00C130 00000000 */ nop /* 040C64 7F00C134 8FA90060 */ lw $t1, 0x60($sp) -/* 040C68 7F00C138 3C138006 */ lui $s3, %hi(ptr_sfx_buf) -/* 040C6C 7F00C13C 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040C68 7F00C138 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) +/* 040C6C 7F00C13C 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 040C70 7F00C140 05200009 */ bltz $t1, .L7F00C168 /* 040C74 7F00C144 24050012 */ li $a1, 18 /* 040C78 7F00C148 8FAA005C */ lw $t2, 0x5c($sp) @@ -5665,22 +5564,22 @@ glabel interface_menu05_fileselect /* 040CA0 7F00C170 0C002382 */ jal play_sfx_a1 /* 040CA4 7F00C174 00003025 */ move $a2, $zero .L7F00C178: -/* 040CA8 7F00C178 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CA8 7F00C178 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) /* 040CAC 7F00C17C 1000000A */ b .L7F00C1A8 -/* 040CB0 7F00C180 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040CB0 7F00C180 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 /* 040CB4 7F00C184 26520001 */ addiu $s2, $s2, 1 .L7F00C188: /* 040CB8 7F00C188 24010004 */ li $at, 4 /* 040CBC 7F00C18C 26100004 */ addiu $s0, $s0, 4 /* 040CC0 7F00C190 1641FF9A */ bne $s2, $at, .L7F00BFFC /* 040CC4 7F00C194 2631000C */ addiu $s1, $s1, 0xc -/* 040CC8 7F00C198 3C138006 */ lui $s3, %hi(ptr_sfx_buf) +/* 040CC8 7F00C198 3C138006 */ lui $s3, %hi(g_musicSfxBufferPtr) /* 040CCC 7F00C19C 3C118003 */ lui $s1, %hi(folder_selection_screen_option_icon) /* 040CD0 7F00C1A0 2631A918 */ addiu $s1, %lo(folder_selection_screen_option_icon) # addiu $s1, $s1, -0x56e8 -/* 040CD4 7F00C1A4 26733720 */ addiu $s3, %lo(ptr_sfx_buf) # addiu $s3, $s3, 0x3720 +/* 040CD4 7F00C1A4 26733720 */ addiu $s3, %lo(g_musicSfxBufferPtr) # addiu $s3, $s3, 0x3720 .L7F00C1A8: /* 040CD8 7F00C1A8 00002025 */ move $a0, $zero -/* 040CDC 7F00C1AC 0C0030EB */ jal get_controller_buttons_pressed +/* 040CDC 7F00C1AC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040CE0 7F00C1B0 3405B000 */ li $a1, 45056 /* 040CE4 7F00C1B4 1040004A */ beqz $v0, .L7F00C2E0 /* 040CE8 7F00C1B8 3C028003 */ lui $v0, %hi(folder_option_COPY_left_bound) @@ -5761,7 +5660,7 @@ glabel interface_menu05_fileselect /* 040E0C 7F00C2DC 00000000 */ nop .L7F00C2E0: /* 040E10 7F00C2E0 00002025 */ move $a0, $zero -/* 040E14 7F00C2E4 0C0030EB */ jal get_controller_buttons_pressed +/* 040E14 7F00C2E4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 040E18 7F00C2E8 24054000 */ li $a1, 16384 /* 040E1C 7F00C2EC 10400009 */ beqz $v0, .L7F00C314 /* 040E20 7F00C2F0 00000000 */ nop @@ -5976,7 +5875,7 @@ void *constructor_menu05_fileselect(void *arg0) arg0 = (void *) (temp_t7 + 8); temp_t7->unk4 = -0xec; temp_t7->unk0 = &0xFB00000C; - temp_ret_2 = sub_GAME_7F007CC8(arg0, (s32) truncf(((f32) get_video2_settings_txtClipW() * -80.0f) / 1280.0f), &sp1A8, &sp19C); + temp_ret_2 = sub_GAME_7F007CC8(arg0, (s32) truncf(((f32) viGetX() * -80.0f) / 1280.0f), &sp1A8, &sp19C); arg0 = (void *) (temp_ret_2 + 8); temp_v0_2 = temp_ret_2; temp_v0_2->unk4 = 0x1000000; @@ -6042,8 +5941,8 @@ loop_7: arg0 = microcode_constructor_related_to_menus(arg0, sp100, temp_a2, sp100 + 0x63, (s32) (temp_a2 + 0x2a), 0x32); truncf(spE4); truncf(spE8); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, get_textptr_for_textID(TEXT(LTITLE, 0x17)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, get_textptr_for_textID(TEXT(LTITLE, 0x17)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, viGetY(), 0, 0); temp_s1_2 = get_textptr_for_textID(TEXT(LTITLE, 0x18)); truncf(spE4); truncf(spE8); @@ -6055,13 +5954,13 @@ loop_7: spF8 = 0; sub_GAME_7F0AE98C(temp_a0, temp_a1, temp_s1_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, viGetY(), 0, 0); } else { - get_video2_settings_txtClipW(temp_a0, temp_a1, temp_s1_2); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + viGetX(temp_a0, temp_a1, temp_s1_2); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, viGetY(), 0, 0); } temp_s1_3 = get_textptr_for_textID(TEXT(LTITLE, 0x19)); truncf(spE4); @@ -6074,8 +5973,8 @@ loop_7: temp_a1_2 = &spF4; if (folder_selected_for_deletion_choice != 0) { - get_video2_settings_txtClipW(temp_a0_2, temp_a1_2, temp_s1_3); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + viGetX(temp_a0_2, temp_a1_2, temp_s1_3); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, viGetY(), 0, 0); } else { @@ -6083,8 +5982,8 @@ loop_7: spF8 = 0; sub_GAME_7F0AE98C(temp_a0_2, temp_a1_2, temp_s1_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); arg0 = microcode_constructor_related_to_menus(arg0, sp100 + -1, spFC + -1, (sp100 + spF4) + 3, (s32) (spFC + spF8), 0x32); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_s1_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, viGetY(), 0, 0); } } else @@ -6097,8 +5996,8 @@ loop_7: temp_ret_3 = get_ptr_difficulty_name(spEC); if (temp_ret_3 != 0) { - textpointer_load_parse_something(&spD0, temp_ret_3); - string_append_from_obseg_textbank(&spD0, &asc_D_8004F488); + strcpy(&spD0, temp_ret_3); + strcat(&spD0, &asc_D_8004F488); spF4 = 0; spF8 = 0; sub_GAME_7F0AE98C(&spF8, &spF4, &spD0, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -6108,12 +6007,12 @@ loop_7: } truncf(spE8); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spD0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spD0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, viGetY(), 0, 0); } if (spEC != 3) { - textpointer_load_parse_something(&spBC, get_textptr_for_textID(TEXT(LTITLE, 0x1a)); + strcpy(&spBC, get_textptr_for_textID(TEXT(LTITLE, 0x1a)); phi_s0_2 = &mission_folder_setup_entries; phi_s1_2 = 0; phi_s2_2 = -1; @@ -6141,11 +6040,11 @@ loop_24: } if (phi_s2_2 >= 0) { - string_append_from_obseg_textbank(&spBC, *((((phi_s2_2 * 8) - phi_s2_2) * 4) + &mission_folder_setup_entries)); - string_append_from_obseg_textbank(&spBC, &a_); + strcat(&spBC, *((((phi_s2_2 * 8) - phi_s2_2) * 4) + &mission_folder_setup_entries)); + strcat(&spBC, &a_); } - string_append_from_obseg_textbank(&spBC, *((((phi_s1_3 * 8) - phi_s1_3) * 4) + &mission_folder_setup_entries)); - string_append_from_obseg_textbank(&spBC, &asc_D_8004F490); + strcat(&spBC, *((((phi_s1_3 * 8) - phi_s1_3) * 4) + &mission_folder_setup_entries)); + strcat(&spBC, &asc_D_8004F490); spF4 = 0; spF8 = 0; sub_GAME_7F0AE98C(&spF8, &spF4, &spBC, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -6155,8 +6054,8 @@ loop_24: } truncf(spE8); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spBC, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, &spBC, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, viGetY(), 0, 0); } } } @@ -6177,8 +6076,8 @@ loop_24: { } - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, viGetY(), 0, 0); folder_option_COPY_left_bound.unk8 = (f32) (sp100 + spF4); temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x1c)); spF4 = 0; @@ -6188,9 +6087,9 @@ loop_24: { } - get_video2_settings_txtClipW(); + viGetX(); folder_option_ERASE_left_bound.unk8 = (f32) (sp100 + spF4); - arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_5, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, get_video2_settings_txtClipH(), 0, 0); + arg0 = en_text_write_stuff(arg0, &sp100, &spFC, temp_ret_5, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, -1, viGetY(), 0, 0); spAC = 225.0f; spB0 = (f32) D_80051A28; temp_f10 = (f32) (u32) mainfolderimages->unk4 * 0.5f; @@ -6310,7 +6209,7 @@ glabel constructor_menu05_fileselect /* 040FE4 7F00C4B4 25EE0008 */ addiu $t6, $t7, 8 /* 040FE8 7F00C4B8 AFAE01B8 */ sw $t6, 0x1b8($sp) /* 040FEC 7F00C4BC ADEA0004 */ sw $t2, 4($t7) -/* 040FF0 7F00C4C0 0C001107 */ jal get_video2_settings_txtClipW +/* 040FF0 7F00C4C0 0C001107 */ jal viGetX /* 040FF4 7F00C4C4 ADF90000 */ sw $t9, ($t7) /* 040FF8 7F00C4C8 44822000 */ mtc1 $v0, $f4 /* 040FFC 7F00C4CC 3C01C2A0 */ li $at, 0xC2A00000 # -80.000000 @@ -6472,11 +6371,11 @@ glabel constructor_menu05_fileselect /* 041258 7F00C728 44105000 */ mfc1 $s0, $f10 /* 04125C 7F00C72C 00000000 */ nop /* 041260 7F00C730 2610001E */ addiu $s0, $s0, 0x1e -/* 041264 7F00C734 0C001107 */ jal get_video2_settings_txtClipW +/* 041264 7F00C734 0C001107 */ jal viGetX /* 041268 7F00C738 AFB000FC */ sw $s0, 0xfc($sp) /* 04126C 7F00C73C 00028400 */ sll $s0, $v0, 0x10 /* 041270 7F00C740 00104C03 */ sra $t1, $s0, 0x10 -/* 041274 7F00C744 0C00110B */ jal get_video2_settings_txtClipH +/* 041274 7F00C744 0C00110B */ jal viGetY /* 041278 7F00C748 01208025 */ move $s0, $t1 /* 04127C 7F00C74C 8E680000 */ lw $t0, ($s3) /* 041280 7F00C750 8E8B0000 */ lw $t3, ($s4) @@ -6536,11 +6435,11 @@ glabel constructor_menu05_fileselect /* 041358 7F00C828 2606FFFF */ addiu $a2, $s0, -1 /* 04135C 7F00C82C 0FC2B405 */ jal microcode_constructor_related_to_menus /* 041360 7F00C830 2645FFFF */ addiu $a1, $s2, -1 -/* 041364 7F00C834 0C001107 */ jal get_video2_settings_txtClipW +/* 041364 7F00C834 0C001107 */ jal viGetX /* 041368 7F00C838 AFA201B8 */ sw $v0, 0x1b8($sp) /* 04136C 7F00C83C 00028400 */ sll $s0, $v0, 0x10 /* 041370 7F00C840 00104403 */ sra $t0, $s0, 0x10 -/* 041374 7F00C844 0C00110B */ jal get_video2_settings_txtClipH +/* 041374 7F00C844 0C00110B */ jal viGetY /* 041378 7F00C848 01008025 */ move $s0, $t0 /* 04137C 7F00C84C 8E6B0000 */ lw $t3, ($s3) /* 041380 7F00C850 8E8C0000 */ lw $t4, ($s4) @@ -6560,11 +6459,11 @@ glabel constructor_menu05_fileselect /* 0413B8 7F00C888 10000016 */ b .L7F00C8E4 /* 0413BC 7F00C88C AFA201B8 */ sw $v0, 0x1b8($sp) .L7F00C890: -/* 0413C0 7F00C890 0C001107 */ jal get_video2_settings_txtClipW +/* 0413C0 7F00C890 0C001107 */ jal viGetX /* 0413C4 7F00C894 00000000 */ nop /* 0413C8 7F00C898 00028400 */ sll $s0, $v0, 0x10 /* 0413CC 7F00C89C 0010C403 */ sra $t8, $s0, 0x10 -/* 0413D0 7F00C8A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0413D0 7F00C8A0 0C00110B */ jal viGetY /* 0413D4 7F00C8A4 03008025 */ move $s0, $t8 /* 0413D8 7F00C8A8 8E6F0000 */ lw $t7, ($s3) /* 0413DC 7F00C8AC 8E8E0000 */ lw $t6, ($s4) @@ -6612,11 +6511,11 @@ glabel constructor_menu05_fileselect /* 04147C 7F00C94C 26100032 */ addiu $s0, $s0, 0x32 /* 041480 7F00C950 11600017 */ beqz $t3, .L7F00C9B0 /* 041484 7F00C954 AFB000FC */ sw $s0, 0xfc($sp) -/* 041488 7F00C958 0C001107 */ jal get_video2_settings_txtClipW +/* 041488 7F00C958 0C001107 */ jal viGetX /* 04148C 7F00C95C 00000000 */ nop /* 041490 7F00C960 00028400 */ sll $s0, $v0, 0x10 /* 041494 7F00C964 00106403 */ sra $t4, $s0, 0x10 -/* 041498 7F00C968 0C00110B */ jal get_video2_settings_txtClipH +/* 041498 7F00C968 0C00110B */ jal viGetY /* 04149C 7F00C96C 01808025 */ move $s0, $t4 /* 0414A0 7F00C970 8E6D0000 */ lw $t5, ($s3) /* 0414A4 7F00C974 8E980000 */ lw $t8, ($s4) @@ -6656,11 +6555,11 @@ glabel constructor_menu05_fileselect /* 041528 7F00C9F8 2606FFFF */ addiu $a2, $s0, -1 /* 04152C 7F00C9FC 0FC2B405 */ jal microcode_constructor_related_to_menus /* 041530 7F00CA00 2645FFFF */ addiu $a1, $s2, -1 -/* 041534 7F00CA04 0C001107 */ jal get_video2_settings_txtClipW +/* 041534 7F00CA04 0C001107 */ jal viGetX /* 041538 7F00CA08 AFA201B8 */ sw $v0, 0x1b8($sp) /* 04153C 7F00CA0C 00028400 */ sll $s0, $v0, 0x10 /* 041540 7F00CA10 00104403 */ sra $t0, $s0, 0x10 -/* 041544 7F00CA14 0C00110B */ jal get_video2_settings_txtClipH +/* 041544 7F00CA14 0C00110B */ jal viGetY /* 041548 7F00CA18 01008025 */ move $s0, $t0 /* 04154C 7F00CA1C 8E6B0000 */ lw $t3, ($s3) /* 041550 7F00CA20 8E8C0000 */ lw $t4, ($s4) @@ -6692,11 +6591,11 @@ glabel constructor_menu05_fileselect /* 0415B4 7F00CA84 00000000 */ nop /* 0415B8 7F00CA88 10400038 */ beqz $v0, .L7F00CB6C /* 0415BC 7F00CA8C 27A400D0 */ addiu $a0, $sp, 0xd0 -/* 0415C0 7F00CA90 0C0029DC */ jal textpointer_load_parse_something +/* 0415C0 7F00CA90 0C0029DC */ jal strcpy /* 0415C4 7F00CA94 00402825 */ move $a1, $v0 /* 0415C8 7F00CA98 3C058005 */ lui $a1, %hi(asc_D_8004F488) /* 0415CC 7F00CA9C 24A5F488 */ addiu $a1, %lo(asc_D_8004F488) # addiu $a1, $a1, -0xb78 -/* 0415D0 7F00CAA0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0415D0 7F00CAA0 0C0029FF */ jal strcat /* 0415D4 7F00CAA4 27A400D0 */ addiu $a0, $sp, 0xd0 /* 0415D8 7F00CAA8 8E980000 */ lw $t8, ($s4) /* 0415DC 7F00CAAC AFA000F4 */ sw $zero, 0xf4($sp) @@ -6727,11 +6626,11 @@ glabel constructor_menu05_fileselect /* 04163C 7F00CB0C 44105000 */ mfc1 $s0, $f10 /* 041640 7F00CB10 00000000 */ nop /* 041644 7F00CB14 26100015 */ addiu $s0, $s0, 0x15 -/* 041648 7F00CB18 0C001107 */ jal get_video2_settings_txtClipW +/* 041648 7F00CB18 0C001107 */ jal viGetX /* 04164C 7F00CB1C AFB000FC */ sw $s0, 0xfc($sp) /* 041650 7F00CB20 00028400 */ sll $s0, $v0, 0x10 /* 041654 7F00CB24 00104403 */ sra $t0, $s0, 0x10 -/* 041658 7F00CB28 0C00110B */ jal get_video2_settings_txtClipH +/* 041658 7F00CB28 0C00110B */ jal viGetY /* 04165C 7F00CB2C 01008025 */ move $s0, $t0 /* 041660 7F00CB30 8E6B0000 */ lw $t3, ($s3) /* 041664 7F00CB34 8E8C0000 */ lw $t4, ($s4) @@ -6757,7 +6656,7 @@ glabel constructor_menu05_fileselect /* 0416B0 7F00CB80 0FC30776 */ jal get_textptr_for_textID /* 0416B4 7F00CB84 34049C1A */ li $a0, 39962 /* 0416B8 7F00CB88 02A02025 */ move $a0, $s5 -/* 0416BC 7F00CB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0416BC 7F00CB8C 0C0029DC */ jal strcpy /* 0416C0 7F00CB90 00402825 */ move $a1, $v0 /* 0416C4 7F00CB94 3C0D8003 */ lui $t5, %hi(mission_folder_setup_entries+0x4) /* 0416C8 7F00CB98 95ADABE8 */ lhu $t5, %lo(mission_folder_setup_entries+0x4)($t5) @@ -6792,19 +6691,19 @@ glabel constructor_menu05_fileselect /* 041730 7F00CC00 000A5080 */ sll $t2, $t2, 2 /* 041734 7F00CC04 014E4821 */ addu $t1, $t2, $t6 /* 041738 7F00CC08 8D250000 */ lw $a1, ($t1) -/* 04173C 7F00CC0C 0C0029FF */ jal string_append_from_obseg_textbank +/* 04173C 7F00CC0C 0C0029FF */ jal strcat /* 041740 7F00CC10 02A02025 */ move $a0, $s5 /* 041744 7F00CC14 3C058005 */ lui $a1, %hi(a_) /* 041748 7F00CC18 24A5F48C */ addiu $a1, %lo(a_) # addiu $a1, $a1, -0xb74 -/* 04174C 7F00CC1C 0C0029FF */ jal string_append_from_obseg_textbank +/* 04174C 7F00CC1C 0C0029FF */ jal strcat /* 041750 7F00CC20 02A02025 */ move $a0, $s5 .L7F00CC24: /* 041754 7F00CC24 02A02025 */ move $a0, $s5 -/* 041758 7F00CC28 0C0029FF */ jal string_append_from_obseg_textbank +/* 041758 7F00CC28 0C0029FF */ jal strcat /* 04175C 7F00CC2C 8E050000 */ lw $a1, ($s0) /* 041760 7F00CC30 3C058005 */ lui $a1, %hi(asc_D_8004F490) /* 041764 7F00CC34 24A5F490 */ addiu $a1, %lo(asc_D_8004F490) # addiu $a1, $a1, -0xb70 -/* 041768 7F00CC38 0C0029FF */ jal string_append_from_obseg_textbank +/* 041768 7F00CC38 0C0029FF */ jal strcat /* 04176C 7F00CC3C 02A02025 */ move $a0, $s5 /* 041770 7F00CC40 8E880000 */ lw $t0, ($s4) /* 041774 7F00CC44 AFA000F4 */ sw $zero, 0xf4($sp) @@ -6835,11 +6734,11 @@ glabel constructor_menu05_fileselect /* 0417D4 7F00CCA4 44109000 */ mfc1 $s0, $f18 /* 0417D8 7F00CCA8 00000000 */ nop /* 0417DC 7F00CCAC 2610002D */ addiu $s0, $s0, 0x2d -/* 0417E0 7F00CCB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0417E0 7F00CCB0 0C001107 */ jal viGetX /* 0417E4 7F00CCB4 AFB000FC */ sw $s0, 0xfc($sp) /* 0417E8 7F00CCB8 00028400 */ sll $s0, $v0, 0x10 /* 0417EC 7F00CCBC 0010CC03 */ sra $t9, $s0, 0x10 -/* 0417F0 7F00CCC0 0C00110B */ jal get_video2_settings_txtClipH +/* 0417F0 7F00CCC0 0C00110B */ jal viGetY /* 0417F4 7F00CCC4 03208025 */ move $s0, $t9 /* 0417F8 7F00CCC8 8E6A0000 */ lw $t2, ($s3) /* 0417FC 7F00CCCC 8E8E0000 */ lw $t6, ($s4) @@ -6891,11 +6790,11 @@ glabel constructor_menu05_fileselect .L7F00CD7C: /* 0418AC 7F00CD7C 03CF8023 */ subu $s0, $fp, $t7 /* 0418B0 7F00CD80 AFB000FC */ sw $s0, 0xfc($sp) -/* 0418B4 7F00CD84 0C001107 */ jal get_video2_settings_txtClipW +/* 0418B4 7F00CD84 0C001107 */ jal viGetX /* 0418B8 7F00CD88 AFB20100 */ sw $s2, 0x100($sp) /* 0418BC 7F00CD8C 00028400 */ sll $s0, $v0, 0x10 /* 0418C0 7F00CD90 0010CC03 */ sra $t9, $s0, 0x10 -/* 0418C4 7F00CD94 0C00110B */ jal get_video2_settings_txtClipH +/* 0418C4 7F00CD94 0C00110B */ jal viGetY /* 0418C8 7F00CD98 03208025 */ move $s0, $t9 /* 0418CC 7F00CD9C 8E6A0000 */ lw $t2, ($s3) /* 0418D0 7F00CDA0 8E8E0000 */ lw $t6, ($s4) @@ -6943,11 +6842,11 @@ glabel constructor_menu05_fileselect /* 041978 7F00CE48 0001C043 */ sra $t8, $at, 1 .L7F00CE4C: /* 04197C 7F00CE4C 03D88023 */ subu $s0, $fp, $t8 -/* 041980 7F00CE50 0C001107 */ jal get_video2_settings_txtClipW +/* 041980 7F00CE50 0C001107 */ jal viGetX /* 041984 7F00CE54 AFB000FC */ sw $s0, 0xfc($sp) /* 041988 7F00CE58 00028400 */ sll $s0, $v0, 0x10 /* 04198C 7F00CE5C 00107C03 */ sra $t7, $s0, 0x10 -/* 041990 7F00CE60 0C00110B */ jal get_video2_settings_txtClipH +/* 041990 7F00CE60 0C00110B */ jal viGetY /* 041994 7F00CE64 01E08025 */ move $s0, $t7 /* 041998 7F00CE68 8E790000 */ lw $t9, ($s3) /* 04199C 7F00CE6C 8E8A0000 */ lw $t2, ($s4) @@ -7247,10 +7146,10 @@ void interface_menu06_modesel(void) is_cheat_menu_available = TRUE; } } - setvideo_far(60.f); - set_page_aspect(1.333333f); - set_page_height(100.0f, 10000.0f); - set_video2_settings_offset_24(0); + viSetFovY(60.f); + viSetAspect(1.333333f); + viSetZRange(100.0f, 10000.0f); + viSetUseZBuf(0); disable_all_switches(ptr_folder_object_instance); select_load_bond_picture(ptr_folder_object_instance, removed_would_have_returned_bond_for_folder_num(selected_folder_num)); @@ -7264,44 +7163,44 @@ void interface_menu06_modesel(void) if (isontab3() != 0) { tab_3_highlight = 1; - if (get_controller_buttons_pressed(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xC7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xC7, 0); } } else if ((is_cheat_menu_available != 0) && (275.0f <= cursor_v_pos)) { mission_difficulty_highlighted = 2; - if (get_controller_buttons_pressed(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) { gamemode = 2; - play_sfx_a1(ptr_sfx_buf, 0xC5, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xC5, 0); } } - else if ((243.0f <= cursor_v_pos) && (get_attached_controller_count() >= 2)) + else if ((243.0f <= cursor_v_pos) && (joyGetControllerCount() >= 2)) { mission_difficulty_highlighted = 1; - if (get_controller_buttons_pressed(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) { gamemode = 1; - play_sfx_a1(ptr_sfx_buf, 0xC5, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xC5, 0); } } else { mission_difficulty_highlighted = 0; - if (get_controller_buttons_pressed(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, START_BUTTON|Z_TRIG|A_BUTTON) != 0) { gamemode = 0; - play_sfx_a1(ptr_sfx_buf, 0xC5, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xC5, 0); } } - if (get_controller_buttons_pressed(0, B_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, B_BUTTON) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xC7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xC7, 0); } menu_control_stick_tracking(); if (gamemode == GAMEMODE_SOLO) @@ -7365,17 +7264,17 @@ glabel interface_menu06_modesel /* 041E24 7F00D2F4 24630001 */ addiu $v1, $v1, 1 /* 041E28 7F00D2F8 3C014270 */ li $at, 0x42700000 # 60.000000 /* 041E2C 7F00D2FC 44816000 */ mtc1 $at, $f12 -/* 041E30 7F00D300 0C001151 */ jal setvideo_far +/* 041E30 7F00D300 0C001151 */ jal viSetFovY /* 041E34 7F00D304 00000000 */ nop /* 041E38 7F00D308 3C018005 */ lui $at, %hi(D_80051A38) -/* 041E3C 7F00D30C 0C001164 */ jal set_page_aspect +/* 041E3C 7F00D30C 0C001164 */ jal viSetAspect /* 041E40 7F00D310 C42C1A38 */ lwc1 $f12, %lo(D_80051A38)($at) /* 041E44 7F00D314 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 041E48 7F00D318 44816000 */ mtc1 $at, $f12 /* 041E4C 7F00D31C 3C018005 */ lui $at, %hi(D_80051A3C) -/* 041E50 7F00D320 0C001194 */ jal set_page_height +/* 041E50 7F00D320 0C001194 */ jal viSetZRange /* 041E54 7F00D324 C42E1A3C */ lwc1 $f14, %lo(D_80051A3C)($at) -/* 041E58 7F00D328 0C00114D */ jal set_video2_settings_offset_24 +/* 041E58 7F00D328 0C00114D */ jal viSetUseZBuf /* 041E5C 7F00D32C 00002025 */ move $a0, $zero /* 041E60 7F00D330 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) /* 041E64 7F00D334 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 @@ -7420,14 +7319,14 @@ glabel interface_menu06_modesel /* 041F00 7F00D3D0 3C018003 */ lui $at, %hi(tab_3_highlight) /* 041F04 7F00D3D4 AC39A8E4 */ sw $t9, %lo(tab_3_highlight)($at) /* 041F08 7F00D3D8 00002025 */ move $a0, $zero -/* 041F0C 7F00D3DC 0C0030EB */ jal get_controller_buttons_pressed +/* 041F0C 7F00D3DC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 041F10 7F00D3E0 3405B000 */ li $a1, 45056 /* 041F14 7F00D3E4 1040004D */ beqz $v0, .L7F00D51C /* 041F18 7F00D3E8 24080001 */ li $t0, 1 /* 041F1C 7F00D3EC 3C018003 */ lui $at, %hi(tab_3_selected) -/* 041F20 7F00D3F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F20 7F00D3F0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 041F24 7F00D3F4 AC28A8D8 */ sw $t0, %lo(tab_3_selected)($at) -/* 041F28 7F00D3F8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F28 7F00D3F8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 041F2C 7F00D3FC 240500C7 */ li $a1, 199 /* 041F30 7F00D400 0C002382 */ jal play_sfx_a1 /* 041F34 7F00D404 00003025 */ move $a2, $zero @@ -7447,14 +7346,14 @@ glabel interface_menu06_modesel /* 041F68 7F00D438 3405B000 */ li $a1, 45056 /* 041F6C 7F00D43C 4500000E */ bc1f .L7F00D478 /* 041F70 7F00D440 00000000 */ nop -/* 041F74 7F00D444 0C0030EB */ jal get_controller_buttons_pressed +/* 041F74 7F00D444 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 041F78 7F00D448 AE0A0000 */ sw $t2, ($s0) /* 041F7C 7F00D44C 10400033 */ beqz $v0, .L7F00D51C /* 041F80 7F00D450 240B0002 */ li $t3, 2 /* 041F84 7F00D454 3C018003 */ lui $at, %hi(gamemode) -/* 041F88 7F00D458 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041F88 7F00D458 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 041F8C 7F00D45C AC2BA8F0 */ sw $t3, %lo(gamemode)($at) -/* 041F90 7F00D460 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 041F90 7F00D460 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 041F94 7F00D464 240500C5 */ li $a1, 197 /* 041F98 7F00D468 0C002382 */ jal play_sfx_a1 /* 041F9C 7F00D46C 00003025 */ move $a2, $zero @@ -7470,21 +7369,21 @@ glabel interface_menu06_modesel /* 041FC0 7F00D490 00000000 */ nop /* 041FC4 7F00D494 45020016 */ bc1fl .L7F00D4F0 /* 041FC8 7F00D498 AE000000 */ sw $zero, ($s0) -/* 041FCC 7F00D49C 0C002E7E */ jal get_attached_controller_count +/* 041FCC 7F00D49C 0C002E7E */ jal joyGetControllerCount /* 041FD0 7F00D4A0 00000000 */ nop /* 041FD4 7F00D4A4 28410002 */ slti $at, $v0, 2 /* 041FD8 7F00D4A8 14200010 */ bnez $at, .L7F00D4EC /* 041FDC 7F00D4AC 240C0001 */ li $t4, 1 /* 041FE0 7F00D4B0 AE0C0000 */ sw $t4, ($s0) /* 041FE4 7F00D4B4 00002025 */ move $a0, $zero -/* 041FE8 7F00D4B8 0C0030EB */ jal get_controller_buttons_pressed +/* 041FE8 7F00D4B8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 041FEC 7F00D4BC 3405B000 */ li $a1, 45056 /* 041FF0 7F00D4C0 10400016 */ beqz $v0, .L7F00D51C /* 041FF4 7F00D4C4 240D0001 */ li $t5, 1 /* 041FF8 7F00D4C8 3C018003 */ lui $at, %hi(gamemode) -/* 041FFC 7F00D4CC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 041FFC 7F00D4CC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042000 7F00D4D0 AC2DA8F0 */ sw $t5, %lo(gamemode)($at) -/* 042004 7F00D4D4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042004 7F00D4D4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042008 7F00D4D8 240500C5 */ li $a1, 197 /* 04200C 7F00D4DC 0C002382 */ jal play_sfx_a1 /* 042010 7F00D4E0 00003025 */ move $a2, $zero @@ -7494,27 +7393,27 @@ glabel interface_menu06_modesel /* 04201C 7F00D4EC AE000000 */ sw $zero, ($s0) .L7F00D4F0: /* 042020 7F00D4F0 00002025 */ move $a0, $zero -/* 042024 7F00D4F4 0C0030EB */ jal get_controller_buttons_pressed +/* 042024 7F00D4F4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 042028 7F00D4F8 3405B000 */ li $a1, 45056 /* 04202C 7F00D4FC 10400007 */ beqz $v0, .L7F00D51C /* 042030 7F00D500 3C018003 */ lui $at, %hi(gamemode) -/* 042034 7F00D504 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042034 7F00D504 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042038 7F00D508 AC20A8F0 */ sw $zero, %lo(gamemode)($at) -/* 04203C 7F00D50C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04203C 7F00D50C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042040 7F00D510 240500C5 */ li $a1, 197 /* 042044 7F00D514 0C002382 */ jal play_sfx_a1 /* 042048 7F00D518 00003025 */ move $a2, $zero .L7F00D51C: /* 04204C 7F00D51C 00002025 */ move $a0, $zero .L7F00D520: -/* 042050 7F00D520 0C0030EB */ jal get_controller_buttons_pressed +/* 042050 7F00D520 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 042054 7F00D524 24054000 */ li $a1, 16384 /* 042058 7F00D528 10400008 */ beqz $v0, .L7F00D54C /* 04205C 7F00D52C 240E0001 */ li $t6, 1 /* 042060 7F00D530 3C018003 */ lui $at, %hi(tab_3_selected) -/* 042064 7F00D534 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042064 7F00D534 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042068 7F00D538 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) -/* 04206C 7F00D53C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04206C 7F00D53C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042070 7F00D540 240500C7 */ li $a1, 199 /* 042074 7F00D544 0C002382 */ jal play_sfx_a1 /* 042078 7F00D548 00003025 */ move $a2, $zero @@ -7612,7 +7511,7 @@ loop_1: matrix_4x4_set_identity_and_position(&D_8002AB94 + (selected_folder_num * 0xc), &sp88); matrix_scalar_multiply(0x3e800000, &sp88); matrix_4x4_multiply_in_place(&spC8, &sp88); - temp_ret = sub_GAME_7F0BD714(ptr_folder_object_instance->unk8->unkE << 6); + temp_ret = dynAllocate(ptr_folder_object_instance->unk8->unkE << 6); sp11C = temp_ret; matrix_4x4_copy(&sp88, temp_ret); ptr_folder_object_instance->unkC = sp11C; @@ -7723,7 +7622,7 @@ glabel sub_GAME_7F00D5E8 /* 04224C 7F00D71C 8DAE0008 */ lw $t6, 8($t5) /* 042250 7F00D720 85C4000E */ lh $a0, 0xe($t6) /* 042254 7F00D724 00047980 */ sll $t7, $a0, 6 -/* 042258 7F00D728 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 042258 7F00D728 0FC2F5C5 */ jal dynAllocate /* 04225C 7F00D72C 01E02025 */ move $a0, $t7 /* 042260 7F00D730 AFA2011C */ sw $v0, 0x11c($sp) /* 042264 7F00D734 02002025 */ move $a0, $s0 @@ -7819,8 +7718,8 @@ void constructor_menu06_modesel(void) sp58 = 0x96; sp54 = 0xdc; - sp44 = get_video2_settings_txtClipW(); - temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, &a1_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(0, 0, 0)))), &sp58, &sp54, &a1_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); if (append_cheat_sp != 0) { phi_a0 = TEXT(LTITLE, 0x75); @@ -7839,11 +7738,11 @@ void constructor_menu06_modesel(void) { phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x94, 0xda, sp50 + 0xaf, 0xea, 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sp58 = 0x96; sp54 = 0xfc; - if (get_attached_controller_count() >= 2) + if (joyGetControllerCount() >= 2) { sp48 = 0xff; } @@ -7851,8 +7750,8 @@ void constructor_menu06_modesel(void) { sp48 = 0x70; } - sp44 = get_video2_settings_txtClipW(); - temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &sp58, &sp54, &a2_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &sp58, &sp54, &a2_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, viGetY(), 0, 0); phi_a0_2 = TEXT(LTITLE, 0x1e); if (append_cheat_mp != 0) { @@ -7868,15 +7767,15 @@ void constructor_menu06_modesel(void) { phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_3, 0x94, 0xfa, sp50 + 0xaf, 0x10a, 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, sp48, sp44, viGetY(), 0, 0); phi_s0_4 = temp_s0_4; if (is_cheat_menu_available != 0) { sp58 = 0x96; sp54 = 0x11c; - sp44 = get_video2_settings_txtClipW(); - temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &sp58, &sp54, &a3_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &sp58, &sp54, &a3_, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x1f)); sp5C = temp_ret_3; sub_GAME_7F0AE98C(&sp4C, &sp50, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -7887,8 +7786,8 @@ void constructor_menu06_modesel(void) { phi_s0_3 = microcode_constructor_related_to_menus(temp_s0_5, 0x94, 0x11a, sp50 + 0xaf, 0x12a, 0x32); } - sp44 = get_video2_settings_txtClipW(); - phi_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + phi_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); } load_draw_selected_icon_folder_select(add_tab3_previous(phi_s0_4)); } @@ -7904,9 +7803,9 @@ glabel constructor_menu06_modesel /* 042360 7F00D830 AFB00038 */ sw $s0, 0x38($sp) /* 042364 7F00D834 00002825 */ move $a1, $zero /* 042368 7F00D838 00003025 */ move $a2, $zero -/* 04236C 7F00D83C 0C0011B4 */ jal set_setfillcolor +/* 04236C 7F00D83C 0C0011B4 */ jal viSetFillColor /* 042370 7F00D840 00003825 */ move $a3, $zero -/* 042374 7F00D844 0C000FBE */ jal insert_generic_fillrect +/* 042374 7F00D844 0C000FBE */ jal viFillScreen /* 042378 7F00D848 00402025 */ move $a0, $v0 /* 04237C 7F00D84C 0FC0357A */ jal sub_GAME_7F00D5E8 /* 042380 7F00D850 00402025 */ move $a0, $v0 @@ -7916,9 +7815,9 @@ glabel constructor_menu06_modesel /* 042390 7F00D860 240F00DC */ li $t7, 220 /* 042394 7F00D864 00408025 */ move $s0, $v0 /* 042398 7F00D868 AFAE0058 */ sw $t6, 0x58($sp) -/* 04239C 7F00D86C 0C001107 */ jal get_video2_settings_txtClipW +/* 04239C 7F00D86C 0C001107 */ jal viGetX /* 0423A0 7F00D870 AFAF0054 */ sw $t7, 0x54($sp) -/* 0423A4 7F00D874 0C00110B */ jal get_video2_settings_txtClipH +/* 0423A4 7F00D874 0C00110B */ jal viGetY /* 0423A8 7F00D878 A7A20044 */ sh $v0, 0x44($sp) /* 0423AC 7F00D87C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 0423B0 7F00D880 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -7980,9 +7879,9 @@ glabel constructor_menu06_modesel /* 04248C 7F00D95C 24E700AF */ addiu $a3, $a3, 0xaf /* 042490 7F00D960 00408025 */ move $s0, $v0 .L7F00D964: -/* 042494 7F00D964 0C001107 */ jal get_video2_settings_txtClipW +/* 042494 7F00D964 0C001107 */ jal viGetX /* 042498 7F00D968 00000000 */ nop -/* 04249C 7F00D96C 0C00110B */ jal get_video2_settings_txtClipH +/* 04249C 7F00D96C 0C00110B */ jal viGetY /* 0424A0 7F00D970 A7A20044 */ sh $v0, 0x44($sp) /* 0424A4 7F00D974 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 0424A8 7F00D978 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -8006,7 +7905,7 @@ glabel constructor_menu06_modesel /* 0424F0 7F00D9C0 240C00FC */ li $t4, 252 /* 0424F4 7F00D9C4 00408025 */ move $s0, $v0 /* 0424F8 7F00D9C8 AFAB0058 */ sw $t3, 0x58($sp) -/* 0424FC 7F00D9CC 0C002E7E */ jal get_attached_controller_count +/* 0424FC 7F00D9CC 0C002E7E */ jal joyGetControllerCount /* 042500 7F00D9D0 AFAC0054 */ sw $t4, 0x54($sp) /* 042504 7F00D9D4 28410002 */ slti $at, $v0, 2 /* 042508 7F00D9D8 14200003 */ bnez $at, .L7F00D9E8 @@ -8017,9 +7916,9 @@ glabel constructor_menu06_modesel /* 042518 7F00D9E8 240E0070 */ li $t6, 112 /* 04251C 7F00D9EC AFAE0048 */ sw $t6, 0x48($sp) .L7F00D9F0: -/* 042520 7F00D9F0 0C001107 */ jal get_video2_settings_txtClipW +/* 042520 7F00D9F0 0C001107 */ jal viGetX /* 042524 7F00D9F4 00000000 */ nop -/* 042528 7F00D9F8 0C00110B */ jal get_video2_settings_txtClipH +/* 042528 7F00D9F8 0C00110B */ jal viGetY /* 04252C 7F00D9FC A7A20044 */ sh $v0, 0x44($sp) /* 042530 7F00DA00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) /* 042534 7F00DA04 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) @@ -8082,9 +7981,9 @@ glabel constructor_menu06_modesel /* 042614 7F00DAE4 24E700AF */ addiu $a3, $a3, 0xaf /* 042618 7F00DAE8 00408025 */ move $s0, $v0 .L7F00DAEC: -/* 04261C 7F00DAEC 0C001107 */ jal get_video2_settings_txtClipW +/* 04261C 7F00DAEC 0C001107 */ jal viGetX /* 042620 7F00DAF0 00000000 */ nop -/* 042624 7F00DAF4 0C00110B */ jal get_video2_settings_txtClipH +/* 042624 7F00DAF4 0C00110B */ jal viGetY /* 042628 7F00DAF8 A7A20044 */ sh $v0, 0x44($sp) /* 04262C 7F00DAFC 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 042630 7F00DB00 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -8111,9 +8010,9 @@ glabel constructor_menu06_modesel /* 042684 7F00DB54 11400051 */ beqz $t2, .L7F00DC9C /* 042688 7F00DB58 240C011C */ li $t4, 284 /* 04268C 7F00DB5C AFAB0058 */ sw $t3, 0x58($sp) -/* 042690 7F00DB60 0C001107 */ jal get_video2_settings_txtClipW +/* 042690 7F00DB60 0C001107 */ jal viGetX /* 042694 7F00DB64 AFAC0054 */ sw $t4, 0x54($sp) -/* 042698 7F00DB68 0C00110B */ jal get_video2_settings_txtClipH +/* 042698 7F00DB68 0C00110B */ jal viGetY /* 04269C 7F00DB6C A7A20044 */ sh $v0, 0x44($sp) /* 0426A0 7F00DB70 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 0426A4 7F00DB74 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -8168,9 +8067,9 @@ glabel constructor_menu06_modesel /* 042768 7F00DC38 24E700AF */ addiu $a3, $a3, 0xaf /* 04276C 7F00DC3C 00408025 */ move $s0, $v0 .L7F00DC40: -/* 042770 7F00DC40 0C001107 */ jal get_video2_settings_txtClipW +/* 042770 7F00DC40 0C001107 */ jal viGetX /* 042774 7F00DC44 00000000 */ nop -/* 042778 7F00DC48 0C00110B */ jal get_video2_settings_txtClipH +/* 042778 7F00DC48 0C00110B */ jal viGetY /* 04277C 7F00DC4C A7A20044 */ sh $v0, 0x44($sp) /* 042780 7F00DC50 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 042784 7F00DC54 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -8441,7 +8340,7 @@ void init_menu07_missionselect(void) tab_3_selected = 0; if (maybe_is_in_menu != 0) { - musicTrack1Play(0x17); + musicTrack1Play(M_FOLDERS); maybe_is_in_menu = 0; } load_walletbond(); @@ -8492,10 +8391,10 @@ void interface_menu07_missionsel(void) s32 phi_a0; s32 phi_s5; - setvideo_far(0x42700000); - set_page_aspect(D_80051A44); - set_page_height(0x42c80000, D_80051A48); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051A44); + viSetZRange(0x42c80000, D_80051A48); + viSetUseZBuf(0); disable_all_switches(ptr_folder_object_instance); set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x13, 1); @@ -8622,7 +8521,7 @@ loop_23: if (ptr_folder_object_instance->unk8->unk8->unk54 != 0) { temp_s1_2 = extract_id_from_object_structure_microcode(ptr_folder_object_instance, ptr_folder_object_instance->unk8->unk8->unk54); - *temp_s1_2 = sub_GAME_7F0BD6C4(ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC); + *temp_s1_2 = dynAllocate7F0BD6C4(ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC); if (ptr_folder_object_instance->unk8->unk8->unk54->unk4->unkC > 0) { phi_s0_4 = 0; @@ -8672,12 +8571,12 @@ loop_29: } } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (tab_3_highlight != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { @@ -8686,16 +8585,16 @@ loop_29: briefingpage = pull_and_display_text_for_folder_a0((void *)0x80070000->unk-687C); selected_stage = (s32) (0x80030000 + (briefingpage * 0x1c))->unk-5414; tab_2_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } menu_control_stick_tracking(); @@ -8731,17 +8630,17 @@ glabel interface_menu07_missionsel /* 042A00 7F00DED0 AFB30020 */ sw $s3, 0x20($sp) /* 042A04 7F00DED4 AFB2001C */ sw $s2, 0x1c($sp) /* 042A08 7F00DED8 AFB10018 */ sw $s1, 0x18($sp) -/* 042A0C 7F00DEDC 0C001151 */ jal setvideo_far +/* 042A0C 7F00DEDC 0C001151 */ jal viSetFovY /* 042A10 7F00DEE0 AFB00014 */ sw $s0, 0x14($sp) /* 042A14 7F00DEE4 3C018005 */ lui $at, %hi(D_80051A44) -/* 042A18 7F00DEE8 0C001164 */ jal set_page_aspect +/* 042A18 7F00DEE8 0C001164 */ jal viSetAspect /* 042A1C 7F00DEEC C42C1A44 */ lwc1 $f12, %lo(D_80051A44)($at) /* 042A20 7F00DEF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 042A24 7F00DEF4 44816000 */ mtc1 $at, $f12 /* 042A28 7F00DEF8 3C018005 */ lui $at, %hi(D_80051A48) -/* 042A2C 7F00DEFC 0C001194 */ jal set_page_height +/* 042A2C 7F00DEFC 0C001194 */ jal viSetZRange /* 042A30 7F00DF00 C42E1A48 */ lwc1 $f14, %lo(D_80051A48)($at) -/* 042A34 7F00DF04 0C00114D */ jal set_video2_settings_offset_24 +/* 042A34 7F00DF04 0C00114D */ jal viSetUseZBuf /* 042A38 7F00DF08 00002025 */ move $a0, $zero /* 042A3C 7F00DF0C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) /* 042A40 7F00DF10 0FC02DC9 */ jal disable_all_switches @@ -8892,7 +8791,7 @@ glabel interface_menu07_missionsel /* 042C44 7F00E114 0FC1B1E7 */ jal extract_id_from_object_structure_microcode /* 042C48 7F00E118 8CB40004 */ lw $s4, 4($a1) /* 042C4C 7F00E11C 00408825 */ move $s1, $v0 -/* 042C50 7F00E120 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 042C50 7F00E120 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 042C54 7F00E124 8684000C */ lh $a0, 0xc($s4) /* 042C58 7F00E128 AE220000 */ sw $v0, ($s1) /* 042C5C 7F00E12C 8699000C */ lh $t9, 0xc($s4) @@ -8979,7 +8878,7 @@ glabel interface_menu07_missionsel .L7F00E25C: /* 042D8C 7F00E25C 00002025 */ move $a0, $zero .L7F00E260: -/* 042D90 7F00E260 0C0030EB */ jal get_controller_buttons_pressed +/* 042D90 7F00E260 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 042D94 7F00E264 3405B000 */ li $a1, 45056 /* 042D98 7F00E268 1040002A */ beqz $v0, .L7F00E314 /* 042D9C 7F00E26C 00002025 */ move $a0, $zero @@ -8989,9 +8888,9 @@ glabel interface_menu07_missionsel /* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_3_selected) /* 042DB0 7F00E280 11800009 */ beqz $t4, .L7F00E2A8 /* 042DB4 7F00E284 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) -/* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_3_selected)($at) -/* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042DC4 7F00E294 240500C7 */ li $a1, 199 /* 042DC8 7F00E298 0C002382 */ jal play_sfx_a1 /* 042DCC 7F00E29C 00003025 */ move $a2, $zero @@ -9015,25 +8914,25 @@ glabel interface_menu07_missionsel /* 042E10 7F00E2E0 01CD7021 */ addu $t6, $t6, $t5 /* 042E14 7F00E2E4 8DCEABEC */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) /* 042E18 7F00E2E8 240F0001 */ li $t7, 1 -/* 042E1C 7F00E2EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E1C 7F00E2EC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042E20 7F00E2F0 AC2EA8F4 */ sw $t6, %lo(selected_stage)($at) /* 042E24 7F00E2F4 3C018003 */ lui $at, %hi(tab_2_selected) /* 042E28 7F00E2F8 AC2FA8D4 */ sw $t7, %lo(tab_2_selected)($at) -/* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E30 7F00E300 240500C7 */ li $a1, 199 /* 042E34 7F00E304 0C002382 */ jal play_sfx_a1 /* 042E38 7F00E308 00003025 */ move $a2, $zero /* 042E3C 7F00E30C 1000000C */ b .L7F00E340 /* 042E40 7F00E310 00000000 */ nop .L7F00E314: -/* 042E44 7F00E314 0C0030EB */ jal get_controller_buttons_pressed +/* 042E44 7F00E314 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 042E48 7F00E318 24054000 */ li $a1, 16384 /* 042E4C 7F00E31C 10400008 */ beqz $v0, .L7F00E340 /* 042E50 7F00E320 24180001 */ li $t8, 1 /* 042E54 7F00E324 3C018003 */ lui $at, %hi(tab_3_selected) -/* 042E58 7F00E328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E58 7F00E328 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) -/* 042E60 7F00E330 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E60 7F00E330 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E64 7F00E334 240500C7 */ li $a1, 199 /* 042E68 7F00E338 0C002382 */ jal play_sfx_a1 /* 042E6C 7F00E33C 00003025 */ move $a2, $zero @@ -9101,17 +9000,17 @@ glabel interface_menu07_missionsel /* 042A60 7F00DEF0 AFB30020 */ sw $s3, 0x20($sp) /* 042A64 7F00DEF4 AFB2001C */ sw $s2, 0x1c($sp) /* 042A68 7F00DEF8 AFB10018 */ sw $s1, 0x18($sp) -/* 042A6C 7F00DEFC 0C001151 */ jal setvideo_far +/* 042A6C 7F00DEFC 0C001151 */ jal viSetFovY /* 042A70 7F00DF00 AFB00014 */ sw $s0, 0x14($sp) /* 042A74 7F00DF04 3C018005 */ lui $at, %hi(D_80051A44) # $at, 0x8005 -/* 042A78 7F00DF08 0C001164 */ jal set_page_aspect +/* 042A78 7F00DF08 0C001164 */ jal viSetAspect /* 042A7C 7F00DF0C C42C1A74 */ lwc1 $f12, %lo(D_80051A44)($at) /* 042A80 7F00DF10 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 042A84 7F00DF14 44816000 */ mtc1 $at, $f12 /* 042A88 7F00DF18 3C018005 */ lui $at, %hi(D_80051A48) # $at, 0x8005 -/* 042A8C 7F00DF1C 0C001194 */ jal set_page_height +/* 042A8C 7F00DF1C 0C001194 */ jal viSetZRange /* 042A90 7F00DF20 C42E1A78 */ lwc1 $f14, %lo(D_80051A48)($at) -/* 042A94 7F00DF24 0C00114D */ jal set_video2_settings_offset_24 +/* 042A94 7F00DF24 0C00114D */ jal viSetUseZBuf /* 042A98 7F00DF28 00002025 */ move $a0, $zero /* 042A9C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) # $a0, 0x8003 /* 042AA0 7F00DF30 0FC02DD1 */ jal disable_all_switches @@ -9262,7 +9161,7 @@ glabel interface_menu07_missionsel /* 042CA4 7F00E134 0FC1B363 */ jal extract_id_from_object_structure_microcode /* 042CA8 7F00E138 8CB40004 */ lw $s4, 4($a1) /* 042CAC 7F00E13C 00408825 */ move $s1, $v0 -/* 042CB0 7F00E140 0FC2F89D */ jal sub_GAME_7F0BD6C4 +/* 042CB0 7F00E140 0FC2F89D */ jal dynAllocate7F0BD6C4 /* 042CB4 7F00E144 8684000C */ lh $a0, 0xc($s4) /* 042CB8 7F00E148 AE220000 */ sw $v0, ($s1) /* 042CBC 7F00E14C 8699000C */ lh $t9, 0xc($s4) @@ -9349,7 +9248,7 @@ glabel interface_menu07_missionsel .L7F00E27C: /* 042DEC 7F00E27C 00002025 */ move $a0, $zero .L7F00E280: -/* 042DF0 7F00E280 0C003104 */ jal get_controller_buttons_pressed +/* 042DF0 7F00E280 0C003104 */ jal joyGetButtonsPressedThisFrame /* 042DF4 7F00E284 3405B000 */ li $a1, 45056 /* 042DF8 7F00E288 1040002A */ beqz $v0, .L7F00E334 /* 042DFC 7F00E28C 00002025 */ move $a0, $zero @@ -9359,9 +9258,9 @@ glabel interface_menu07_missionsel /* 042E0C 7F00E29C 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 /* 042E10 7F00E2A0 11800009 */ beqz $t4, .L7F00E2C8 /* 042E14 7F00E2A4 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) -/* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E18 7F00E2A8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 042E1C 7F00E2AC AC29A918 */ sw $t1, %lo(tab_3_selected)($at) -/* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E20 7F00E2B0 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E24 7F00E2B4 240500C7 */ li $a1, 199 /* 042E28 7F00E2B8 0C002386 */ jal play_sfx_a1 /* 042E2C 7F00E2BC 00003025 */ move $a2, $zero @@ -9385,25 +9284,25 @@ glabel interface_menu07_missionsel /* 042E70 7F00E300 01CD7021 */ addu $t6, $t6, $t5 /* 042E74 7F00E304 8DCEAC2C */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) /* 042E78 7F00E308 240F0001 */ li $t7, 1 -/* 042E7C 7F00E30C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042E7C 7F00E30C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 042E80 7F00E310 AC2EA934 */ sw $t6, %lo(selected_stage)($at) /* 042E84 7F00E314 3C018003 */ lui $at, %hi(tab_2_selected) # $at, 0x8003 /* 042E88 7F00E318 AC2FA914 */ sw $t7, %lo(tab_2_selected)($at) -/* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E8C 7F00E31C 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042E90 7F00E320 240500C7 */ li $a1, 199 /* 042E94 7F00E324 0C002386 */ jal play_sfx_a1 /* 042E98 7F00E328 00003025 */ move $a2, $zero /* 042E9C 7F00E32C 1000000C */ b .L7F00E360 /* 042EA0 7F00E330 00000000 */ nop .L7F00E334: -/* 042EA4 7F00E334 0C003104 */ jal get_controller_buttons_pressed +/* 042EA4 7F00E334 0C003104 */ jal joyGetButtonsPressedThisFrame /* 042EA8 7F00E338 24054000 */ li $a1, 16384 /* 042EAC 7F00E33C 10400008 */ beqz $v0, .L7F00E360 /* 042EB0 7F00E340 24180001 */ li $t8, 1 /* 042EB4 7F00E344 3C018003 */ lui $at, %hi(tab_3_selected) # $at, 0x8003 -/* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 042EB8 7F00E348 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 042EBC 7F00E34C AC38A918 */ sw $t8, %lo(tab_3_selected)($at) -/* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042EC0 7F00E350 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 042EC4 7F00E354 240500C7 */ li $a1, 199 /* 042EC8 7F00E358 0C002386 */ jal play_sfx_a1 /* 042ECC 7F00E35C 00003025 */ move $a2, $zero @@ -9463,6 +9362,376 @@ glabel interface_menu07_missionsel ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051A44 +.word 0x3FAAAAAB /* 1.3333334;*/ +glabel D_80051A48 +.word 0x461C4000 /* 10000.0;*/ +.text +glabel interface_menu07_missionsel +/* 0429E8 7F00DEB8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 0429EC 7F00DEBC 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0429F0 7F00DEC0 AFBF002C */ sw $ra, 0x2c($sp) +/* 0429F4 7F00DEC4 44816000 */ mtc1 $at, $f12 +/* 0429F8 7F00DEC8 AFB50028 */ sw $s5, 0x28($sp) +/* 0429FC 7F00DECC AFB40024 */ sw $s4, 0x24($sp) +/* 042A00 7F00DED0 AFB30020 */ sw $s3, 0x20($sp) +/* 042A04 7F00DED4 AFB2001C */ sw $s2, 0x1c($sp) +/* 042A08 7F00DED8 AFB10018 */ sw $s1, 0x18($sp) +/* 042A0C 7F00DEDC 0C001151 */ jal viSetFovY +/* 042A10 7F00DEE0 AFB00014 */ sw $s0, 0x14($sp) +/* 042A14 7F00DEE4 3C018005 */ lui $at, %hi(D_80051A44) +/* 042A18 7F00DEE8 0C001164 */ jal viSetAspect +/* 042A1C 7F00DEEC C42C1A44 */ lwc1 $f12, %lo(D_80051A44)($at) +/* 042A20 7F00DEF0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 042A24 7F00DEF4 44816000 */ mtc1 $at, $f12 +/* 042A28 7F00DEF8 3C018005 */ lui $at, %hi(D_80051A48) +/* 042A2C 7F00DEFC 0C001194 */ jal viSetZRange +/* 042A30 7F00DF00 C42E1A48 */ lwc1 $f14, %lo(D_80051A48)($at) +/* 042A34 7F00DF04 0C00114D */ jal viSetUseZBuf +/* 042A38 7F00DF08 00002025 */ move $a0, $zero +/* 042A3C 7F00DF0C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A40 7F00DF10 0FC02DC9 */ jal disable_all_switches +/* 042A44 7F00DF14 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A48 7F00DF18 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A4C 7F00DF1C 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A50 7F00DF20 00002825 */ move $a1, $zero +/* 042A54 7F00DF24 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A58 7F00DF28 24060001 */ li $a2, 1 +/* 042A5C 7F00DF2C 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A60 7F00DF30 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A64 7F00DF34 24050013 */ li $a1, 19 +/* 042A68 7F00DF38 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A6C 7F00DF3C 24060001 */ li $a2, 1 +/* 042A70 7F00DF40 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042A74 7F00DF44 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042A78 7F00DF48 24050014 */ li $a1, 20 +/* 042A7C 7F00DF4C 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 042A80 7F00DF50 24060001 */ li $a2, 1 +/* 042A84 7F00DF54 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042A88 7F00DF58 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) +/* 042A8C 7F00DF5C 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042A90 7F00DF60 240EFFFF */ li $t6, -1 +/* 042A94 7F00DF64 0FC028E7 */ jal isontab3 +/* 042A98 7F00DF68 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +/* 042A9C 7F00DF6C 10400005 */ beqz $v0, .L7F00DF84 +/* 042AA0 7F00DF70 0000A025 */ move $s4, $zero +/* 042AA4 7F00DF74 240F0001 */ li $t7, 1 +/* 042AA8 7F00DF78 3C018003 */ lui $at, %hi(tab_3_highlight) +/* 042AAC 7F00DF7C 1000005E */ b .L7F00E0F8 +/* 042AB0 7F00DF80 AC2FA8E4 */ sw $t7, %lo(tab_3_highlight)($at) +.L7F00DF84: +/* 042AB4 7F00DF84 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 042AB8 7F00DF88 3C048003 */ lui $a0, %hi(cursor_xpos_table_mission_select) +/* 042ABC 7F00DF8C 3C038003 */ lui $v1, %hi(cursor_h_pos) +/* 042AC0 7F00DF90 44810000 */ mtc1 $at, $f0 +/* 042AC4 7F00DF94 2463A908 */ addiu $v1, %lo(cursor_h_pos) # addiu $v1, $v1, -0x56f8 +/* 042AC8 7F00DF98 2484AFD0 */ addiu $a0, %lo(cursor_xpos_table_mission_select) # addiu $a0, $a0, -0x5030 +/* 042ACC 7F00DF9C 24130005 */ li $s3, 5 +/* 042AD0 7F00DFA0 2A810004 */ slti $at, $s4, 4 +.L7F00DFA4: +/* 042AD4 7F00DFA4 10200011 */ beqz $at, .L7F00DFEC +/* 042AD8 7F00DFA8 0014C080 */ sll $t8, $s4, 2 +/* 042ADC 7F00DFAC 00981021 */ addu $v0, $a0, $t8 +/* 042AE0 7F00DFB0 8C590004 */ lw $t9, 4($v0) +/* 042AE4 7F00DFB4 8C480000 */ lw $t0, ($v0) +/* 042AE8 7F00DFB8 C4640000 */ lwc1 $f4, ($v1) +/* 042AEC 7F00DFBC 03284821 */ addu $t1, $t9, $t0 +/* 042AF0 7F00DFC0 44893000 */ mtc1 $t1, $f6 +/* 042AF4 7F00DFC4 00000000 */ nop +/* 042AF8 7F00DFC8 46803220 */ cvt.s.w $f8, $f6 +/* 042AFC 7F00DFCC 46004282 */ mul.s $f10, $f8, $f0 +/* 042B00 7F00DFD0 460A203C */ c.lt.s $f4, $f10 +/* 042B04 7F00DFD4 00000000 */ nop +/* 042B08 7F00DFD8 45010004 */ bc1t .L7F00DFEC +/* 042B0C 7F00DFDC 00000000 */ nop +/* 042B10 7F00DFE0 26940001 */ addiu $s4, $s4, 1 +/* 042B14 7F00DFE4 5693FFEF */ bnel $s4, $s3, .L7F00DFA4 +/* 042B18 7F00DFE8 2A810004 */ slti $at, $s4, 4 +.L7F00DFEC: +/* 042B1C 7F00DFEC 3C048003 */ lui $a0, %hi(cursor_ypos_table_mission_select) +/* 042B20 7F00DFF0 3C038003 */ lui $v1, %hi(cursor_v_pos) +/* 042B24 7F00DFF4 2463A90C */ addiu $v1, %lo(cursor_v_pos) # addiu $v1, $v1, -0x56f4 +/* 042B28 7F00DFF8 2484AFE4 */ addiu $a0, %lo(cursor_ypos_table_mission_select) # addiu $a0, $a0, -0x501c +/* 042B2C 7F00DFFC 00009025 */ move $s2, $zero +/* 042B30 7F00E000 24050004 */ li $a1, 4 +/* 042B34 7F00E004 2A410003 */ slti $at, $s2, 3 +.L7F00E008: +/* 042B38 7F00E008 10200011 */ beqz $at, .L7F00E050 +/* 042B3C 7F00E00C 00125080 */ sll $t2, $s2, 2 +/* 042B40 7F00E010 008A1021 */ addu $v0, $a0, $t2 +/* 042B44 7F00E014 8C4B0004 */ lw $t3, 4($v0) +/* 042B48 7F00E018 8C4C0000 */ lw $t4, ($v0) +/* 042B4C 7F00E01C C4700000 */ lwc1 $f16, ($v1) +/* 042B50 7F00E020 016C6821 */ addu $t5, $t3, $t4 +/* 042B54 7F00E024 448D9000 */ mtc1 $t5, $f18 +/* 042B58 7F00E028 00000000 */ nop +/* 042B5C 7F00E02C 468091A0 */ cvt.s.w $f6, $f18 +/* 042B60 7F00E030 46003202 */ mul.s $f8, $f6, $f0 +/* 042B64 7F00E034 4608803C */ c.lt.s $f16, $f8 +/* 042B68 7F00E038 00000000 */ nop +/* 042B6C 7F00E03C 45010004 */ bc1t .L7F00E050 +/* 042B70 7F00E040 00000000 */ nop +/* 042B74 7F00E044 26520001 */ addiu $s2, $s2, 1 +/* 042B78 7F00E048 5645FFEF */ bnel $s2, $a1, .L7F00E008 +/* 042B7C 7F00E04C 2A410003 */ slti $at, $s2, 3 +.L7F00E050: +/* 042B80 7F00E050 1A400011 */ blez $s2, .L7F00E098 +/* 042B84 7F00E054 0012A880 */ sll $s5, $s2, 2 +/* 042B88 7F00E058 02B2A821 */ addu $s5, $s5, $s2 +.L7F00E05C: +/* 042B8C 7F00E05C 00008825 */ move $s1, $zero +/* 042B90 7F00E060 02A08025 */ move $s0, $s5 +.L7F00E064: +/* 042B94 7F00E064 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042B98 7F00E068 02002025 */ move $a0, $s0 +/* 042B9C 7F00E06C 04430005 */ bgezl $v0, .L7F00E084 +/* 042BA0 7F00E070 2A210005 */ slti $at, $s1, 5 +/* 042BA4 7F00E074 26310001 */ addiu $s1, $s1, 1 +/* 042BA8 7F00E078 1633FFFA */ bne $s1, $s3, .L7F00E064 +/* 042BAC 7F00E07C 26100001 */ addiu $s0, $s0, 1 +/* 042BB0 7F00E080 2A210005 */ slti $at, $s1, 5 +.L7F00E084: +/* 042BB4 7F00E084 54200005 */ bnezl $at, .L7F00E09C +/* 042BB8 7F00E088 0012A880 */ sll $s5, $s2, 2 +/* 042BBC 7F00E08C 2652FFFF */ addiu $s2, $s2, -1 +/* 042BC0 7F00E090 1E40FFF2 */ bgtz $s2, .L7F00E05C +/* 042BC4 7F00E094 26B5FFFB */ addiu $s5, $s5, -5 +.L7F00E098: +/* 042BC8 7F00E098 0012A880 */ sll $s5, $s2, 2 +.L7F00E09C: +/* 042BCC 7F00E09C 06800009 */ bltz $s4, .L7F00E0C4 +/* 042BD0 7F00E0A0 02B2A821 */ addu $s5, $s5, $s2 +/* 042BD4 7F00E0A4 02B48021 */ addu $s0, $s5, $s4 +.L7F00E0A8: +/* 042BD8 7F00E0A8 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042BDC 7F00E0AC 02002025 */ move $a0, $s0 +/* 042BE0 7F00E0B0 04410004 */ bgez $v0, .L7F00E0C4 +/* 042BE4 7F00E0B4 00000000 */ nop +/* 042BE8 7F00E0B8 2694FFFF */ addiu $s4, $s4, -1 +/* 042BEC 7F00E0BC 0681FFFA */ bgez $s4, .L7F00E0A8 +/* 042BF0 7F00E0C0 2610FFFF */ addiu $s0, $s0, -1 +.L7F00E0C4: +/* 042BF4 7F00E0C4 06810009 */ bgez $s4, .L7F00E0EC +/* 042BF8 7F00E0C8 02A08025 */ move $s0, $s5 +/* 042BFC 7F00E0CC 0000A025 */ move $s4, $zero +.L7F00E0D0: +/* 042C00 7F00E0D0 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042C04 7F00E0D4 02002025 */ move $a0, $s0 +/* 042C08 7F00E0D8 04430005 */ bgezl $v0, .L7F00E0F0 +/* 042C0C 7F00E0DC 02B47021 */ addu $t6, $s5, $s4 +/* 042C10 7F00E0E0 26940001 */ addiu $s4, $s4, 1 +/* 042C14 7F00E0E4 1693FFFA */ bne $s4, $s3, .L7F00E0D0 +/* 042C18 7F00E0E8 26100001 */ addiu $s0, $s0, 1 +.L7F00E0EC: +/* 042C1C 7F00E0EC 02B47021 */ addu $t6, $s5, $s4 +.L7F00E0F0: +/* 042C20 7F00E0F0 3C018007 */ lui $at, %hi(mission_difficulty_highlighted) +/* 042C24 7F00E0F4 AC2E9784 */ sw $t6, %lo(mission_difficulty_highlighted)($at) +.L7F00E0F8: +/* 042C28 7F00E0F8 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) +/* 042C2C 7F00E0FC 8C84A95C */ lw $a0, %lo(ptr_folder_object_instance)($a0) +/* 042C30 7F00E100 8C8F0008 */ lw $t7, 8($a0) +/* 042C34 7F00E104 8DF80008 */ lw $t8, 8($t7) +/* 042C38 7F00E108 8F050054 */ lw $a1, 0x54($t8) +/* 042C3C 7F00E10C 50A00054 */ beql $a1, $zero, .L7F00E260 +/* 042C40 7F00E110 00002025 */ move $a0, $zero +/* 042C44 7F00E114 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 042C48 7F00E118 8CB40004 */ lw $s4, 4($a1) +/* 042C4C 7F00E11C 00408825 */ move $s1, $v0 +/* 042C50 7F00E120 0FC2F5B1 */ jal dynAllocate7F0BD6C4 +/* 042C54 7F00E124 8684000C */ lh $a0, 0xc($s4) +/* 042C58 7F00E128 AE220000 */ sw $v0, ($s1) +/* 042C5C 7F00E12C 8699000C */ lh $t9, 0xc($s4) +/* 042C60 7F00E130 00009025 */ move $s2, $zero +/* 042C64 7F00E134 00008025 */ move $s0, $zero +/* 042C68 7F00E138 1B200048 */ blez $t9, .L7F00E25C +/* 042C6C 7F00E13C 241500F5 */ li $s5, 245 +/* 042C70 7F00E140 2413006E */ li $s3, 110 +/* 042C74 7F00E144 8E8A0008 */ lw $t2, 8($s4) +.L7F00E148: +/* 042C78 7F00E148 8E280000 */ lw $t0, ($s1) +/* 042C7C 7F00E14C 01505821 */ addu $t3, $t2, $s0 +/* 042C80 7F00E150 8D610000 */ lw $at, ($t3) +/* 042C84 7F00E154 01104821 */ addu $t1, $t0, $s0 +/* 042C88 7F00E158 AD210000 */ sw $at, ($t1) +/* 042C8C 7F00E15C 8D6D0004 */ lw $t5, 4($t3) +/* 042C90 7F00E160 AD2D0004 */ sw $t5, 4($t1) +/* 042C94 7F00E164 8D610008 */ lw $at, 8($t3) +/* 042C98 7F00E168 AD210008 */ sw $at, 8($t1) +/* 042C9C 7F00E16C 8D6D000C */ lw $t5, 0xc($t3) +/* 042CA0 7F00E170 AD2D000C */ sw $t5, 0xc($t1) +/* 042CA4 7F00E174 06410003 */ bgez $s2, .L7F00E184 +/* 042CA8 7F00E178 00122083 */ sra $a0, $s2, 2 +/* 042CAC 7F00E17C 26410003 */ addiu $at, $s2, 3 +/* 042CB0 7F00E180 00012083 */ sra $a0, $at, 2 +.L7F00E184: +/* 042CB4 7F00E184 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042CB8 7F00E188 AFA40030 */ sw $a0, 0x30($sp) +/* 042CBC 7F00E18C 240300FF */ li $v1, 255 +/* 042CC0 7F00E190 8FA40030 */ lw $a0, 0x30($sp) +/* 042CC4 7F00E194 0440001F */ bltz $v0, .L7F00E214 +/* 042CC8 7F00E198 2405000F */ li $a1, 15 +/* 042CCC 7F00E19C 3C0E8007 */ lui $t6, %hi(mission_difficulty_highlighted) +/* 042CD0 7F00E1A0 8DCE9784 */ lw $t6, %lo(mission_difficulty_highlighted)($t6) +/* 042CD4 7F00E1A4 548E000F */ bnel $a0, $t6, .L7F00E1E4 +/* 042CD8 7F00E1A8 8E2D0000 */ lw $t5, ($s1) +/* 042CDC 7F00E1AC 8E2F0000 */ lw $t7, ($s1) +/* 042CE0 7F00E1B0 01F0C021 */ addu $t8, $t7, $s0 +/* 042CE4 7F00E1B4 A303000C */ sb $v1, 0xc($t8) +/* 042CE8 7F00E1B8 8E390000 */ lw $t9, ($s1) +/* 042CEC 7F00E1BC 03304021 */ addu $t0, $t9, $s0 +/* 042CF0 7F00E1C0 A103000D */ sb $v1, 0xd($t0) +/* 042CF4 7F00E1C4 8E2A0000 */ lw $t2, ($s1) +/* 042CF8 7F00E1C8 01506021 */ addu $t4, $t2, $s0 +/* 042CFC 7F00E1CC A183000E */ sb $v1, 0xe($t4) +/* 042D00 7F00E1D0 8E290000 */ lw $t1, ($s1) +/* 042D04 7F00E1D4 01305821 */ addu $t3, $t1, $s0 +/* 042D08 7F00E1D8 1000001A */ b .L7F00E244 +/* 042D0C 7F00E1DC A175000F */ sb $s5, 0xf($t3) +/* 042D10 7F00E1E0 8E2D0000 */ lw $t5, ($s1) +.L7F00E1E4: +/* 042D14 7F00E1E4 01B07021 */ addu $t6, $t5, $s0 +/* 042D18 7F00E1E8 A1D3000C */ sb $s3, 0xc($t6) +/* 042D1C 7F00E1EC 8E2F0000 */ lw $t7, ($s1) +/* 042D20 7F00E1F0 01F0C021 */ addu $t8, $t7, $s0 +/* 042D24 7F00E1F4 A313000D */ sb $s3, 0xd($t8) +/* 042D28 7F00E1F8 8E390000 */ lw $t9, ($s1) +/* 042D2C 7F00E1FC 03304021 */ addu $t0, $t9, $s0 +/* 042D30 7F00E200 A113000E */ sb $s3, 0xe($t0) +/* 042D34 7F00E204 8E2A0000 */ lw $t2, ($s1) +/* 042D38 7F00E208 01506021 */ addu $t4, $t2, $s0 +/* 042D3C 7F00E20C 1000000D */ b .L7F00E244 +/* 042D40 7F00E210 A183000F */ sb $v1, 0xf($t4) +.L7F00E214: +/* 042D44 7F00E214 8E290000 */ lw $t1, ($s1) +/* 042D48 7F00E218 01305821 */ addu $t3, $t1, $s0 +/* 042D4C 7F00E21C A165000C */ sb $a1, 0xc($t3) +/* 042D50 7F00E220 8E2D0000 */ lw $t5, ($s1) +/* 042D54 7F00E224 01B07021 */ addu $t6, $t5, $s0 +/* 042D58 7F00E228 A1C5000D */ sb $a1, 0xd($t6) +/* 042D5C 7F00E22C 8E2F0000 */ lw $t7, ($s1) +/* 042D60 7F00E230 01F0C021 */ addu $t8, $t7, $s0 +/* 042D64 7F00E234 A305000E */ sb $a1, 0xe($t8) +/* 042D68 7F00E238 8E390000 */ lw $t9, ($s1) +/* 042D6C 7F00E23C 03304021 */ addu $t0, $t9, $s0 +/* 042D70 7F00E240 A103000F */ sb $v1, 0xf($t0) +.L7F00E244: +/* 042D74 7F00E244 868A000C */ lh $t2, 0xc($s4) +/* 042D78 7F00E248 26520001 */ addiu $s2, $s2, 1 +/* 042D7C 7F00E24C 26100010 */ addiu $s0, $s0, 0x10 +/* 042D80 7F00E250 024A082A */ slt $at, $s2, $t2 +/* 042D84 7F00E254 5420FFBC */ bnezl $at, .L7F00E148 +/* 042D88 7F00E258 8E8A0008 */ lw $t2, 8($s4) +.L7F00E25C: +/* 042D8C 7F00E25C 00002025 */ move $a0, $zero +.L7F00E260: +/* 042D90 7F00E260 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 042D94 7F00E264 3405B000 */ li $a1, 45056 +/* 042D98 7F00E268 1040002A */ beqz $v0, .L7F00E314 +/* 042D9C 7F00E26C 00002025 */ move $a0, $zero +/* 042DA0 7F00E270 3C0C8003 */ lui $t4, %hi(tab_3_highlight) +/* 042DA4 7F00E274 8D8CA8E4 */ lw $t4, %lo(tab_3_highlight)($t4) +/* 042DA8 7F00E278 24090001 */ li $t1, 1 +/* 042DAC 7F00E27C 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042DB0 7F00E280 11800009 */ beqz $t4, .L7F00E2A8 +/* 042DB4 7F00E284 3C048007 */ lui $a0, %hi(mission_difficulty_highlighted) +/* 042DB8 7F00E288 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042DBC 7F00E28C AC29A8D8 */ sw $t1, %lo(tab_3_selected)($at) +/* 042DC0 7F00E290 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042DC4 7F00E294 240500C7 */ li $a1, 199 +/* 042DC8 7F00E298 0C002382 */ jal play_sfx_a1 +/* 042DCC 7F00E29C 00003025 */ move $a2, $zero +/* 042DD0 7F00E2A0 10000027 */ b .L7F00E340 +/* 042DD4 7F00E2A4 00000000 */ nop +.L7F00E2A8: +/* 042DD8 7F00E2A8 8C849784 */ lw $a0, %lo(mission_difficulty_highlighted)($a0) +/* 042DDC 7F00E2AC 04800024 */ bltz $a0, .L7F00E340 +/* 042DE0 7F00E2B0 00000000 */ nop +/* 042DE4 7F00E2B4 0FC03730 */ jal pull_and_display_text_for_folder_a0 +/* 042DE8 7F00E2B8 00000000 */ nop +/* 042DEC 7F00E2BC 3C018003 */ lui $at, %hi(briefingpage) +/* 042DF0 7F00E2C0 AC22A8F8 */ sw $v0, %lo(briefingpage)($at) +/* 042DF4 7F00E2C4 3C0B8003 */ lui $t3, %hi(briefingpage) +/* 042DF8 7F00E2C8 8D6BA8F8 */ lw $t3, %lo(briefingpage)($t3) +/* 042DFC 7F00E2CC 3C0E8003 */ lui $t6, %hi(mission_folder_setup_entries+8) +/* 042E00 7F00E2D0 3C018003 */ lui $at, %hi(selected_stage) +/* 042E04 7F00E2D4 000B68C0 */ sll $t5, $t3, 3 +/* 042E08 7F00E2D8 01AB6823 */ subu $t5, $t5, $t3 +/* 042E0C 7F00E2DC 000D6880 */ sll $t5, $t5, 2 +/* 042E10 7F00E2E0 01CD7021 */ addu $t6, $t6, $t5 +/* 042E14 7F00E2E4 8DCEABEC */ lw $t6, %lo(mission_folder_setup_entries+8)($t6) +/* 042E18 7F00E2E8 240F0001 */ li $t7, 1 +/* 042E1C 7F00E2EC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E20 7F00E2F0 AC2EA8F4 */ sw $t6, %lo(selected_stage)($at) +/* 042E24 7F00E2F4 3C018003 */ lui $at, %hi(tab_2_selected) +/* 042E28 7F00E2F8 AC2FA8D4 */ sw $t7, %lo(tab_2_selected)($at) +/* 042E2C 7F00E2FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E30 7F00E300 240500C7 */ li $a1, 199 +/* 042E34 7F00E304 0C002382 */ jal play_sfx_a1 +/* 042E38 7F00E308 00003025 */ move $a2, $zero +/* 042E3C 7F00E30C 1000000C */ b .L7F00E340 +/* 042E40 7F00E310 00000000 */ nop +.L7F00E314: +/* 042E44 7F00E314 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 042E48 7F00E318 24054000 */ li $a1, 16384 +/* 042E4C 7F00E31C 10400008 */ beqz $v0, .L7F00E340 +/* 042E50 7F00E320 24180001 */ li $t8, 1 +/* 042E54 7F00E324 3C018003 */ lui $at, %hi(tab_3_selected) +/* 042E58 7F00E328 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 042E5C 7F00E32C AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) +/* 042E60 7F00E330 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 042E64 7F00E334 240500C7 */ li $a1, 199 +/* 042E68 7F00E338 0C002382 */ jal play_sfx_a1 +/* 042E6C 7F00E33C 00003025 */ move $a2, $zero +.L7F00E340: +/* 042E70 7F00E340 0FC026E1 */ jal menu_control_stick_tracking +/* 042E74 7F00E344 00000000 */ nop +/* 042E78 7F00E348 3C198003 */ lui $t9, %hi(tab_2_selected) +/* 042E7C 7F00E34C 8F39A8D4 */ lw $t9, %lo(tab_2_selected)($t9) +/* 042E80 7F00E350 24040008 */ li $a0, 8 +/* 042E84 7F00E354 3C0C8003 */ lui $t4, %hi(tab_3_selected) +/* 042E88 7F00E358 13200010 */ beqz $t9, .L7F00E39C +/* 042E8C 7F00E35C 00000000 */ nop +/* 042E90 7F00E360 0FC06975 */ jal set_menu_to_mode +/* 042E94 7F00E364 00002825 */ move $a1, $zero +/* 042E98 7F00E368 3C088003 */ lui $t0, %hi(briefingpage) +/* 042E9C 7F00E36C 8D08A8F8 */ lw $t0, %lo(briefingpage)($t0) +/* 042EA0 7F00E370 3C048003 */ lui $a0, %hi(mission_folder_setup_entries+20) +/* 042EA4 7F00E374 000850C0 */ sll $t2, $t0, 3 +/* 042EA8 7F00E378 01485023 */ subu $t2, $t2, $t0 +/* 042EAC 7F00E37C 000A5080 */ sll $t2, $t2, 2 +/* 042EB0 7F00E380 008A2021 */ addu $a0, $a0, $t2 +/* 042EB4 7F00E384 0FC03758 */ jal get_highest_unlocked_difficulty_for_level +/* 042EB8 7F00E388 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+20)($a0) +/* 042EBC 7F00E38C 0FC03B59 */ jal set_cursor_pos_difficulty +/* 042EC0 7F00E390 00402025 */ move $a0, $v0 +/* 042EC4 7F00E394 1000000A */ b .L7F00E3C0 +/* 042EC8 7F00E398 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E39C: +/* 042ECC 7F00E39C 8D8CA8D8 */ lw $t4, %lo(tab_3_selected)($t4) +/* 042ED0 7F00E3A0 24040006 */ li $a0, 6 +/* 042ED4 7F00E3A4 51800006 */ beql $t4, $zero, .L7F00E3C0 +/* 042ED8 7F00E3A8 8FBF002C */ lw $ra, 0x2c($sp) +/* 042EDC 7F00E3AC 0FC06975 */ jal set_menu_to_mode +/* 042EE0 7F00E3B0 00002825 */ move $a1, $zero +/* 042EE4 7F00E3B4 0FC035FF */ jal setCursorPOSforMode +/* 042EE8 7F00E3B8 00002025 */ move $a0, $zero +/* 042EEC 7F00E3BC 8FBF002C */ lw $ra, 0x2c($sp) +.L7F00E3C0: +/* 042EF0 7F00E3C0 8FB00014 */ lw $s0, 0x14($sp) +/* 042EF4 7F00E3C4 8FB10018 */ lw $s1, 0x18($sp) +/* 042EF8 7F00E3C8 8FB2001C */ lw $s2, 0x1c($sp) +/* 042EFC 7F00E3CC 8FB30020 */ lw $s3, 0x20($sp) +/* 042F00 7F00E3D0 8FB40024 */ lw $s4, 0x24($sp) +/* 042F04 7F00E3D4 8FB50028 */ lw $s5, 0x28($sp) +/* 042F08 7F00E3D8 03E00008 */ jr $ra +/* 042F0C 7F00E3DC 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif + #endif @@ -9543,7 +9812,7 @@ void constructor_menu07_missionsel(void) s32 phi_s6; s32 phi_s4_2; - temp_ret = insert_generic_fillrect(set_setfillcolor(0, 0, 0)); + temp_ret = viFillScreen(viSetFillColor(0, 0, 0)); temp_ret->unk4 = -1; temp_ret->unk0 = 0xf8000000; spD8 = 0; @@ -9564,11 +9833,11 @@ loop_2: temp_v0 = (pull_and_display_text_for_folder_a0(phi_s3) * 0x1c) + &mission_folder_setup_entries; if (temp_v0->unk6 != 0) { - textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk6)); + strcpy(&sp90, get_textptr_for_textID(temp_v0->unk6)); } else { - textpointer_load_parse_something(&sp90, get_textptr_for_textID(temp_v0->unk4)); + strcpy(&sp90, get_textptr_for_textID(temp_v0->unk4)); } if (j_text_trigger == 0) { @@ -9590,16 +9859,16 @@ loop_10: } } } - string_append_from_obseg_textbank(&sp90, &asc_D_8004F4A0); + strcat(&sp90, &asc_D_8004F4A0); spC4 = 0; temp_a0 = &spC8; spC8 = 0; sub_GAME_7F0AE98C(temp_a0, &spC4, &sp90, ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, 0); temp_a2 = (subroutine_arg0 - spC8) + 0x1d; temp_a1 = *temp_s7 + -0x1f; - get_video2_settings_txtClipW(); - get_video2_settings_txtClipW(*temp_s7 + -0x1f, (subroutine_arg0 - spC8) + 0x1d); - phi_s4_2 = en_text_write_stuff(en_text_write_stuff(microcode_constructor_related_to_menus(phi_s4, temp_a1, temp_a2, temp_a1 + spC4, (s32) (temp_a2 + spC8), 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0xff), get_video2_settings_txtClipH(), 0, 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0x64), get_video2_settings_txtClipH(), 0, 0); + viGetX(); + viGetX(*temp_s7 + -0x1f, (subroutine_arg0 - spC8) + 0x1d); + phi_s4_2 = en_text_write_stuff(en_text_write_stuff(microcode_constructor_related_to_menus(phi_s4, temp_a1, temp_a2, temp_a1 + spC4, (s32) (temp_a2 + spC8), 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0xff), viGetY(), 0, 0), &sp8C, &sp88, &sp90, (s32) ptrSecondFontTableSmall, (s32) ptrFirstFontTableSmall, (s32) (phi_s5 | 0x64), viGetY(), 0, 0); } temp_s6 = phi_s6 + 1; phi_s3 = phi_s3 + 5; @@ -9636,9 +9905,9 @@ glabel constructor_menu07_missionsel /* 042FB0 7F00E480 AFB00038 */ sw $s0, 0x38($sp) /* 042FB4 7F00E484 00002825 */ move $a1, $zero /* 042FB8 7F00E488 00003025 */ move $a2, $zero -/* 042FBC 7F00E48C 0C0011B4 */ jal set_setfillcolor +/* 042FBC 7F00E48C 0C0011B4 */ jal viSetFillColor /* 042FC0 7F00E490 00003825 */ move $a3, $zero -/* 042FC4 7F00E494 0C000FBE */ jal insert_generic_fillrect +/* 042FC4 7F00E494 0C000FBE */ jal viFillScreen /* 042FC8 7F00E498 00402025 */ move $a0, $v0 /* 042FCC 7F00E49C 3C0EF800 */ lui $t6, 0xf800 /* 042FD0 7F00E4A0 240FFFFF */ li $t7, -1 @@ -9690,7 +9959,7 @@ glabel constructor_menu07_missionsel /* 04307C 7F00E54C 0FC30776 */ jal get_textptr_for_textID /* 043080 7F00E550 00602025 */ move $a0, $v1 /* 043084 7F00E554 02402025 */ move $a0, $s2 -/* 043088 7F00E558 0C0029DC */ jal textpointer_load_parse_something +/* 043088 7F00E558 0C0029DC */ jal strcpy /* 04308C 7F00E55C 00402825 */ move $a1, $v0 /* 043090 7F00E560 10000006 */ b .L7F00E57C /* 043094 7F00E564 00000000 */ nop @@ -9698,7 +9967,7 @@ glabel constructor_menu07_missionsel /* 043098 7F00E568 0FC30776 */ jal get_textptr_for_textID /* 04309C 7F00E56C 94440004 */ lhu $a0, 4($v0) /* 0430A0 7F00E570 02402025 */ move $a0, $s2 -/* 0430A4 7F00E574 0C0029DC */ jal textpointer_load_parse_something +/* 0430A4 7F00E574 0C0029DC */ jal strcpy /* 0430A8 7F00E578 00402825 */ move $a1, $v0 .L7F00E57C: /* 0430AC 7F00E57C 3C0F8005 */ lui $t7, %hi(j_text_trigger) @@ -9724,7 +9993,7 @@ glabel constructor_menu07_missionsel .L7F00E5C4: /* 0430F4 7F00E5C4 3C058005 */ lui $a1, %hi(asc_D_8004F4A0) /* 0430F8 7F00E5C8 24A5F4A0 */ addiu $a1, %lo(asc_D_8004F4A0) # addiu $a1, $a1, -0xb60 -/* 0430FC 7F00E5CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 0430FC 7F00E5CC 0C0029FF */ jal strcat /* 043100 7F00E5D0 02402025 */ move $a0, $s2 /* 043104 7F00E5D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) /* 043108 7F00E5D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) @@ -9753,11 +10022,11 @@ glabel constructor_menu07_missionsel /* 043164 7F00E634 AFA00014 */ sw $zero, 0x14($sp) /* 043168 7F00E638 0FC2B405 */ jal microcode_constructor_related_to_menus /* 04316C 7F00E63C 00A93821 */ addu $a3, $a1, $t1 -/* 043170 7F00E640 0C001107 */ jal get_video2_settings_txtClipW +/* 043170 7F00E640 0C001107 */ jal viGetX /* 043174 7F00E644 0040A025 */ move $s4, $v0 /* 043178 7F00E648 00028400 */ sll $s0, $v0, 0x10 /* 04317C 7F00E64C 00105C03 */ sra $t3, $s0, 0x10 -/* 043180 7F00E650 0C00110B */ jal get_video2_settings_txtClipH +/* 043180 7F00E650 0C00110B */ jal viGetY /* 043184 7F00E654 01608025 */ move $s0, $t3 /* 043188 7F00E658 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) /* 04318C 7F00E65C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) @@ -9784,11 +10053,11 @@ glabel constructor_menu07_missionsel /* 0431E0 7F00E6B0 24C6001D */ addiu $a2, $a2, 0x1d /* 0431E4 7F00E6B4 24A5FFE1 */ addiu $a1, $a1, -0x1f /* 0431E8 7F00E6B8 AFA5008C */ sw $a1, 0x8c($sp) -/* 0431EC 7F00E6BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0431EC 7F00E6BC 0C001107 */ jal viGetX /* 0431F0 7F00E6C0 AFA60088 */ sw $a2, 0x88($sp) /* 0431F4 7F00E6C4 00028400 */ sll $s0, $v0, 0x10 /* 0431F8 7F00E6C8 0010C403 */ sra $t8, $s0, 0x10 -/* 0431FC 7F00E6CC 0C00110B */ jal get_video2_settings_txtClipH +/* 0431FC 7F00E6CC 0C00110B */ jal viGetY /* 043200 7F00E6D0 03008025 */ move $s0, $t8 /* 043204 7F00E6D4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 043208 7F00E6D8 3C088004 */ lui $t0, %hi(ptrFirstFontTableSmall) @@ -9861,10 +10130,10 @@ void interface_menu08_difficulty(void) s32 sp1C; sp1C = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); - setvideo_far(0x42700000); - set_page_aspect(D_80051A4C); - set_page_height(0x42c80000, D_80051A50); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051A4C); + viSetZRange(0x42c80000, D_80051A50); + viSetUseZBuf(0); disable_all_switches(ptr_folder_object_instance); set_item_visibility_in_objinstance(ptr_folder_object_instance, 0, 1); set_item_visibility_in_objinstance(ptr_folder_object_instance, 1, 1); @@ -9901,12 +10170,12 @@ void interface_menu08_difficulty(void) } } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (tab_3_highlight != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0, 1); } else { @@ -9914,16 +10183,16 @@ void interface_menu08_difficulty(void) { selected_difficulty = (s32) mission_difficulty_highlighted; tab_2_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0x4d, 0, 1); + play_sfx_a1(g_musicSfxBufferPtr, 0x4d, 0, 1); } } } else { - if (get_controller_buttons_pressed(0, 0x4000, 1) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000, 1) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0, 1); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0, 1); } } menu_control_stick_tracking(); @@ -9969,17 +10238,17 @@ glabel interface_menu08_difficulty /* 043318 7F00E7E8 8C84ABF8 */ lw $a0, %lo(mission_folder_setup_entries+0x14)($a0) /* 04331C 7F00E7EC 3C014270 */ li $at, 0x42700000 # 60.000000 /* 043320 7F00E7F0 44816000 */ mtc1 $at, $f12 -/* 043324 7F00E7F4 0C001151 */ jal setvideo_far +/* 043324 7F00E7F4 0C001151 */ jal viSetFovY /* 043328 7F00E7F8 AFA2001C */ sw $v0, 0x1c($sp) /* 04332C 7F00E7FC 3C018005 */ lui $at, %hi(D_80051A4C) -/* 043330 7F00E800 0C001164 */ jal set_page_aspect +/* 043330 7F00E800 0C001164 */ jal viSetAspect /* 043334 7F00E804 C42C1A4C */ lwc1 $f12, %lo(D_80051A4C)($at) /* 043338 7F00E808 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04333C 7F00E80C 44816000 */ mtc1 $at, $f12 /* 043340 7F00E810 3C018005 */ lui $at, %hi(D_80051A50) -/* 043344 7F00E814 0C001194 */ jal set_page_height +/* 043344 7F00E814 0C001194 */ jal viSetZRange /* 043348 7F00E818 C42E1A50 */ lwc1 $f14, %lo(D_80051A50)($at) -/* 04334C 7F00E81C 0C00114D */ jal set_video2_settings_offset_24 +/* 04334C 7F00E81C 0C00114D */ jal viSetUseZBuf /* 043350 7F00E820 00002025 */ move $a0, $zero /* 043354 7F00E824 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) /* 043358 7F00E828 0FC02DC9 */ jal disable_all_switches @@ -10065,7 +10334,7 @@ glabel interface_menu08_difficulty /* 043488 7F00E958 AC600000 */ sw $zero, ($v1) .L7F00E95C: /* 04348C 7F00E95C 00002025 */ move $a0, $zero -/* 043490 7F00E960 0C0030EB */ jal get_controller_buttons_pressed +/* 043490 7F00E960 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 043494 7F00E964 3405B000 */ li $a1, 45056 /* 043498 7F00E968 3C038007 */ lui $v1, %hi(mission_difficulty_highlighted) /* 04349C 7F00E96C 24639784 */ addiu $v1, %lo(mission_difficulty_highlighted) # addiu $v1, $v1, -0x687c @@ -10074,11 +10343,11 @@ glabel interface_menu08_difficulty /* 0434A8 7F00E978 3C0A8003 */ lui $t2, %hi(tab_3_highlight) /* 0434AC 7F00E97C 8D4AA8E4 */ lw $t2, %lo(tab_3_highlight)($t2) /* 0434B0 7F00E980 3C018003 */ lui $at, %hi(tab_3_selected) -/* 0434B4 7F00E984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434B4 7F00E984 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0434B8 7F00E988 11400007 */ beqz $t2, .L7F00E9A8 /* 0434BC 7F00E98C 240500C7 */ li $a1, 199 /* 0434C0 7F00E990 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) -/* 0434C4 7F00E994 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434C4 7F00E994 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0434C8 7F00E998 0C002382 */ jal play_sfx_a1 /* 0434CC 7F00E99C 00003025 */ move $a2, $zero /* 0434D0 7F00E9A0 1000001A */ b .L7F00EA0C @@ -10086,27 +10355,27 @@ glabel interface_menu08_difficulty .L7F00E9A8: /* 0434D8 7F00E9A8 8C620000 */ lw $v0, ($v1) /* 0434DC 7F00E9AC 3C018003 */ lui $at, %hi(selected_difficulty) -/* 0434E0 7F00E9B0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0434E0 7F00E9B0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0434E4 7F00E9B4 04400015 */ bltz $v0, .L7F00EA0C /* 0434E8 7F00E9B8 2405004D */ li $a1, 77 /* 0434EC 7F00E9BC AC22A8FC */ sw $v0, %lo(selected_difficulty)($at) /* 0434F0 7F00E9C0 3C018003 */ lui $at, %hi(tab_2_selected) /* 0434F4 7F00E9C4 AC27A8D4 */ sw $a3, %lo(tab_2_selected)($at) -/* 0434F8 7F00E9C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0434F8 7F00E9C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0434FC 7F00E9CC 0C002382 */ jal play_sfx_a1 /* 043500 7F00E9D0 00003025 */ move $a2, $zero /* 043504 7F00E9D4 1000000D */ b .L7F00EA0C /* 043508 7F00E9D8 00000000 */ nop .L7F00E9DC: /* 04350C 7F00E9DC 00002025 */ move $a0, $zero -/* 043510 7F00E9E0 0C0030EB */ jal get_controller_buttons_pressed +/* 043510 7F00E9E0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 043514 7F00E9E4 24054000 */ li $a1, 16384 /* 043518 7F00E9E8 10400008 */ beqz $v0, .L7F00EA0C /* 04351C 7F00E9EC 24070001 */ li $a3, 1 /* 043520 7F00E9F0 3C018003 */ lui $at, %hi(tab_3_selected) -/* 043524 7F00E9F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 043524 7F00E9F4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 043528 7F00E9F8 AC27A8D8 */ sw $a3, %lo(tab_3_selected)($at) -/* 04352C 7F00E9FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04352C 7F00E9FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 043530 7F00EA00 240500C7 */ li $a1, 199 /* 043534 7F00EA04 0C002382 */ jal play_sfx_a1 /* 043538 7F00EA08 00003025 */ move $a2, $zero @@ -10176,38 +10445,38 @@ void print_current_solo_briefing_stage_name(s32 arg0, s32 arg1) if (selected_difficulty >= DIFFICULTY_AGENT) { - textpointer_load_parse_something(arg1, get_ptr_difficulty_name(selected_difficulty, selected_difficulty)); - string_append_from_obseg_textbank(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x20))); + strcpy(arg1, get_ptr_difficulty_name(selected_difficulty, selected_difficulty)); + strcat(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x20))); sp54 = 0x37; sp50 = 0x57; - sp44 = get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); } temp_ret = get_chapter_briefing_entry(briefingpage); sp4C = temp_ret; if (temp_ret >= 0) { - textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x21))); + strcpy(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x21))); temp_v1 = (sp4C * 0x1c) + &mission_folder_setup_entries; sp40 = temp_v1; - string_append_from_obseg_textbank(arg1, *temp_v1); - string_append_from_obseg_textbank(arg1, &asc_D_8004F4A4); - string_append_from_obseg_textbank(arg1, get_textptr_for_textID(sp40->unk4)); - string_append_from_obseg_textbank(arg1, &asc_D_8004F4A8); + strcat(arg1, *temp_v1); + strcat(arg1, &asc_D_8004F4A4); + strcat(arg1, get_textptr_for_textID(sp40->unk4)); + strcat(arg1, &asc_D_8004F4A8); sp54 = 0x37; sp50 = 0x67; - sp44 = get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + arg0 = write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); } - textpointer_load_parse_something(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x22))); - string_append_from_obseg_textbank(arg1, *(&mission_folder_setup_entries + (briefingpage * 0x1c))); - string_append_from_obseg_textbank(arg1, &asc_D_8004F4AC); - string_append_from_obseg_textbank(arg1, get_textptr_for_textID(*(&mission_folder_setup_entries + (briefingpage * 0x1c)))); - string_append_from_obseg_textbank(arg1, &asc_D_8004F4B0); + strcpy(arg1, get_textptr_for_textID(TEXT(LTITLE, 0x22))); + strcat(arg1, *(&mission_folder_setup_entries + (briefingpage * 0x1c))); + strcat(arg1, &asc_D_8004F4AC); + strcat(arg1, get_textptr_for_textID(*(&mission_folder_setup_entries + (briefingpage * 0x1c)))); + strcat(arg1, &asc_D_8004F4B0); sp54 = 0x37; sp50 = 0x77; - sp44 = get_video2_settings_txtClipW(); - write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + write_text_at_abs_coord(arg0, &sp54, &sp50, arg1, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); } #else const char asc_D_8004F4A4[] = ": "; @@ -10228,19 +10497,19 @@ glabel print_current_solo_briefing_stage_name /* 04360C 7F00EADC 0FC030E1 */ jal get_ptr_difficulty_name /* 043610 7F00EAE0 00C02025 */ move $a0, $a2 /* 043614 7F00EAE4 02002025 */ move $a0, $s0 -/* 043618 7F00EAE8 0C0029DC */ jal textpointer_load_parse_something +/* 043618 7F00EAE8 0C0029DC */ jal strcpy /* 04361C 7F00EAEC 00402825 */ move $a1, $v0 /* 043620 7F00EAF0 0FC30776 */ jal get_textptr_for_textID /* 043624 7F00EAF4 34049C20 */ li $a0, 39968 /* 043628 7F00EAF8 02002025 */ move $a0, $s0 -/* 04362C 7F00EAFC 0C0029FF */ jal string_append_from_obseg_textbank +/* 04362C 7F00EAFC 0C0029FF */ jal strcat /* 043630 7F00EB00 00402825 */ move $a1, $v0 /* 043634 7F00EB04 240E0037 */ li $t6, 55 /* 043638 7F00EB08 240F0057 */ li $t7, 87 /* 04363C 7F00EB0C AFAE0054 */ sw $t6, 0x54($sp) -/* 043640 7F00EB10 0C001107 */ jal get_video2_settings_txtClipW +/* 043640 7F00EB10 0C001107 */ jal viGetX /* 043644 7F00EB14 AFAF0050 */ sw $t7, 0x50($sp) -/* 043648 7F00EB18 0C00110B */ jal get_video2_settings_txtClipH +/* 043648 7F00EB18 0C00110B */ jal viGetY /* 04364C 7F00EB1C A7A20044 */ sh $v0, 0x44($sp) /* 043650 7F00EB20 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 043654 7F00EB24 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -10270,7 +10539,7 @@ glabel print_current_solo_briefing_stage_name /* 0436B0 7F00EB80 0FC30776 */ jal get_textptr_for_textID /* 0436B4 7F00EB84 34049C21 */ li $a0, 39969 /* 0436B8 7F00EB88 02002025 */ move $a0, $s0 -/* 0436BC 7F00EB8C 0C0029DC */ jal textpointer_load_parse_something +/* 0436BC 7F00EB8C 0C0029DC */ jal strcpy /* 0436C0 7F00EB90 00402825 */ move $a1, $v0 /* 0436C4 7F00EB94 8FAA004C */ lw $t2, 0x4c($sp) /* 0436C8 7F00EB98 3C0C8003 */ lui $t4, %hi(mission_folder_setup_entries) @@ -10281,28 +10550,28 @@ glabel print_current_solo_briefing_stage_name /* 0436DC 7F00EBAC 016C1821 */ addu $v1, $t3, $t4 /* 0436E0 7F00EBB0 8C650000 */ lw $a1, ($v1) /* 0436E4 7F00EBB4 AFA30040 */ sw $v1, 0x40($sp) -/* 0436E8 7F00EBB8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436E8 7F00EBB8 0C0029FF */ jal strcat /* 0436EC 7F00EBBC 02002025 */ move $a0, $s0 /* 0436F0 7F00EBC0 3C058005 */ lui $a1, %hi(asc_D_8004F4A4) /* 0436F4 7F00EBC4 24A5F4A4 */ addiu $a1, %lo(asc_D_8004F4A4) # addiu $a1, $a1, -0xb5c -/* 0436F8 7F00EBC8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0436F8 7F00EBC8 0C0029FF */ jal strcat /* 0436FC 7F00EBCC 02002025 */ move $a0, $s0 /* 043700 7F00EBD0 8FAD0040 */ lw $t5, 0x40($sp) /* 043704 7F00EBD4 0FC30776 */ jal get_textptr_for_textID /* 043708 7F00EBD8 95A40004 */ lhu $a0, 4($t5) /* 04370C 7F00EBDC 02002025 */ move $a0, $s0 -/* 043710 7F00EBE0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043710 7F00EBE0 0C0029FF */ jal strcat /* 043714 7F00EBE4 00402825 */ move $a1, $v0 /* 043718 7F00EBE8 3C058005 */ lui $a1, %hi(asc_D_8004F4A8) /* 04371C 7F00EBEC 24A5F4A8 */ addiu $a1, %lo(asc_D_8004F4A8) # addiu $a1, $a1, -0xb58 -/* 043720 7F00EBF0 0C0029FF */ jal string_append_from_obseg_textbank +/* 043720 7F00EBF0 0C0029FF */ jal strcat /* 043724 7F00EBF4 02002025 */ move $a0, $s0 /* 043728 7F00EBF8 240E0037 */ li $t6, 55 /* 04372C 7F00EBFC 240F0067 */ li $t7, 103 /* 043730 7F00EC00 AFAE0054 */ sw $t6, 0x54($sp) -/* 043734 7F00EC04 0C001107 */ jal get_video2_settings_txtClipW +/* 043734 7F00EC04 0C001107 */ jal viGetX /* 043738 7F00EC08 AFAF0050 */ sw $t7, 0x50($sp) -/* 04373C 7F00EC0C 0C00110B */ jal get_video2_settings_txtClipH +/* 04373C 7F00EC0C 0C00110B */ jal viGetY /* 043740 7F00EC10 A7A20044 */ sh $v0, 0x44($sp) /* 043744 7F00EC14 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 043748 7F00EC18 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -10327,7 +10596,7 @@ glabel print_current_solo_briefing_stage_name /* 043790 7F00EC60 0FC30776 */ jal get_textptr_for_textID /* 043794 7F00EC64 34049C22 */ li $a0, 39970 /* 043798 7F00EC68 02002025 */ move $a0, $s0 -/* 04379C 7F00EC6C 0C0029DC */ jal textpointer_load_parse_something +/* 04379C 7F00EC6C 0C0029DC */ jal strcpy /* 0437A0 7F00EC70 00402825 */ move $a1, $v0 /* 0437A4 7F00EC74 3C0A8003 */ lui $t2, %hi(briefingpage) /* 0437A8 7F00EC78 8D4AA8F8 */ lw $t2, %lo(briefingpage)($t2) @@ -10337,11 +10606,11 @@ glabel print_current_solo_briefing_stage_name /* 0437B8 7F00EC88 016A5823 */ subu $t3, $t3, $t2 /* 0437BC 7F00EC8C 000B5880 */ sll $t3, $t3, 2 /* 0437C0 7F00EC90 00AB2821 */ addu $a1, $a1, $t3 -/* 0437C4 7F00EC94 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437C4 7F00EC94 0C0029FF */ jal strcat /* 0437C8 7F00EC98 8CA5ABE4 */ lw $a1, %lo(mission_folder_setup_entries)($a1) /* 0437CC 7F00EC9C 3C058005 */ lui $a1, %hi(asc_D_8004F4AC) /* 0437D0 7F00ECA0 24A5F4AC */ addiu $a1, %lo(asc_D_8004F4AC) # addiu $a1, $a1, -0xb54 -/* 0437D4 7F00ECA4 0C0029FF */ jal string_append_from_obseg_textbank +/* 0437D4 7F00ECA4 0C0029FF */ jal strcat /* 0437D8 7F00ECA8 02002025 */ move $a0, $s0 /* 0437DC 7F00ECAC 3C0C8003 */ lui $t4, %hi(briefingpage) /* 0437E0 7F00ECB0 8D8CA8F8 */ lw $t4, %lo(briefingpage)($t4) @@ -10353,18 +10622,18 @@ glabel print_current_solo_briefing_stage_name /* 0437F8 7F00ECC8 0FC30776 */ jal get_textptr_for_textID /* 0437FC 7F00ECCC 9484ABE8 */ lhu $a0, %lo(mission_folder_setup_entries+0x4)($a0) /* 043800 7F00ECD0 02002025 */ move $a0, $s0 -/* 043804 7F00ECD4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043804 7F00ECD4 0C0029FF */ jal strcat /* 043808 7F00ECD8 00402825 */ move $a1, $v0 /* 04380C 7F00ECDC 3C058005 */ lui $a1, %hi(asc_D_8004F4B0) /* 043810 7F00ECE0 24A5F4B0 */ addiu $a1, %lo(asc_D_8004F4B0) # addiu $a1, $a1, -0xb50 -/* 043814 7F00ECE4 0C0029FF */ jal string_append_from_obseg_textbank +/* 043814 7F00ECE4 0C0029FF */ jal strcat /* 043818 7F00ECE8 02002025 */ move $a0, $s0 /* 04381C 7F00ECEC 240E0037 */ li $t6, 55 /* 043820 7F00ECF0 240F0077 */ li $t7, 119 /* 043824 7F00ECF4 AFAE0054 */ sw $t6, 0x54($sp) -/* 043828 7F00ECF8 0C001107 */ jal get_video2_settings_txtClipW +/* 043828 7F00ECF8 0C001107 */ jal viGetX /* 04382C 7F00ECFC AFAF0050 */ sw $t7, 0x50($sp) -/* 043830 7F00ED00 0C00110B */ jal get_video2_settings_txtClipH +/* 043830 7F00ED00 0C00110B */ jal viGetY /* 043834 7F00ED04 A7A20044 */ sh $v0, 0x44($sp) /* 043838 7F00ED08 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 04383C 7F00ED0C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -10468,10 +10737,10 @@ void constructor_menu08_difficulty(s32 arg0) void *phi_s2_3; spC68 = get_highest_unlocked_difficulty_for_level((0x80030000 + (briefingpage * 0x1c))->unk-5408); - temp_ret = set_setfillcolor(arg0, 0, 0, 0); + temp_ret = viSetFillColor(arg0, 0, 0, 0); arg0 = temp_ret; temp_v0 = temp_ret; - temp_ret_2 = insert_generic_fillrect(temp_v0); + temp_ret_2 = viFillScreen(temp_v0); arg0 = temp_ret_2; temp_v0_2 = temp_ret_2; temp_ret_3 = sub_GAME_7F00D5E8(temp_v0_2); @@ -10497,8 +10766,8 @@ loop_1: arg0 = print_current_solo_briefing_stage_name(temp_v0_4, &spA4); spC60 = 0x37; spC5C = 0x8f; - get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, get_textptr_for_textID(TEXT(LTITLE, 0x23)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, get_textptr_for_textID(TEXT(LTITLE, 0x23)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, viGetY(), 0, 0); if (mission_difficulty_highlighted >= 0) { if (j_text_trigger != 0) @@ -10566,8 +10835,8 @@ block_21: phi_v0_2 = sp9C + -0xa; } spC60 = (s32) (0x82 - phi_v0_2); - get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, viGetY(), 0, 0); if (phi_s1 != 0) { if (phi_s1 != 1) @@ -10602,8 +10871,8 @@ block_33: goto block_33; } spC60 = (s32) 0x96; - get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = write_text_at_abs_coord(arg0, &spC60, &spC5C, phi_s2_2, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, viGetY(), 0, 0); phi_s2_3 = phi_s2_2; } else @@ -10688,10 +10957,10 @@ glabel constructor_menu08_difficulty /* 043924 7F00EDF4 8FA40C70 */ lw $a0, 0xc70($sp) /* 043928 7F00EDF8 00002825 */ move $a1, $zero /* 04392C 7F00EDFC 00003025 */ move $a2, $zero -/* 043930 7F00EE00 0C0011B4 */ jal set_setfillcolor +/* 043930 7F00EE00 0C0011B4 */ jal viSetFillColor /* 043934 7F00EE04 00003825 */ move $a3, $zero /* 043938 7F00EE08 AFA20C70 */ sw $v0, 0xc70($sp) -/* 04393C 7F00EE0C 0C000FBE */ jal insert_generic_fillrect +/* 04393C 7F00EE0C 0C000FBE */ jal viFillScreen /* 043940 7F00EE10 00402025 */ move $a0, $v0 /* 043944 7F00EE14 AFA20C70 */ sw $v0, 0xc70($sp) /* 043948 7F00EE18 0FC0357A */ jal sub_GAME_7F00D5E8 @@ -10724,11 +10993,11 @@ glabel constructor_menu08_difficulty /* 0439B0 7F00EE80 240D008F */ li $t5, 143 /* 0439B4 7F00EE84 00408825 */ move $s1, $v0 /* 0439B8 7F00EE88 AFAC0C60 */ sw $t4, 0xc60($sp) -/* 0439BC 7F00EE8C 0C001107 */ jal get_video2_settings_txtClipW +/* 0439BC 7F00EE8C 0C001107 */ jal viGetX /* 0439C0 7F00EE90 AFAD0C5C */ sw $t5, 0xc5c($sp) /* 0439C4 7F00EE94 00028400 */ sll $s0, $v0, 0x10 /* 0439C8 7F00EE98 00107403 */ sra $t6, $s0, 0x10 -/* 0439CC 7F00EE9C 0C00110B */ jal get_video2_settings_txtClipH +/* 0439CC 7F00EE9C 0C00110B */ jal viGetY /* 0439D0 7F00EEA0 01C08025 */ move $s0, $t6 /* 0439D4 7F00EEA4 3C158004 */ lui $s5, %hi(ptrSecondFontTableLarge) /* 0439D8 7F00EEA8 3C168004 */ lui $s6, %hi(ptrFirstFontTableLarge) @@ -10853,11 +11122,11 @@ glabel constructor_menu08_difficulty .L7F00F054: /* 043B84 7F00F054 0162C823 */ subu $t9, $t3, $v0 /* 043B88 7F00F058 AFB90C60 */ sw $t9, 0xc60($sp) -/* 043B8C 7F00F05C 0C001107 */ jal get_video2_settings_txtClipW +/* 043B8C 7F00F05C 0C001107 */ jal viGetX /* 043B90 7F00F060 AFB30C5C */ sw $s3, 0xc5c($sp) /* 043B94 7F00F064 00028400 */ sll $s0, $v0, 0x10 /* 043B98 7F00F068 0010C403 */ sra $t8, $s0, 0x10 -/* 043B9C 7F00F06C 0C00110B */ jal get_video2_settings_txtClipH +/* 043B9C 7F00F06C 0C00110B */ jal viGetY /* 043BA0 7F00F070 03008025 */ move $s0, $t8 /* 043BA4 7F00F074 8EAC0000 */ lw $t4, ($s5) /* 043BA8 7F00F078 8ECD0000 */ lw $t5, ($s6) @@ -10907,11 +11176,11 @@ glabel constructor_menu08_difficulty /* 043C44 7F00F114 240F0096 */ li $t7, 150 .L7F00F118: /* 043C48 7F00F118 AFAF0C60 */ sw $t7, 0xc60($sp) -/* 043C4C 7F00F11C 0C001107 */ jal get_video2_settings_txtClipW +/* 043C4C 7F00F11C 0C001107 */ jal viGetX /* 043C50 7F00F120 AFB30C5C */ sw $s3, 0xc5c($sp) /* 043C54 7F00F124 00028400 */ sll $s0, $v0, 0x10 /* 043C58 7F00F128 00105403 */ sra $t2, $s0, 0x10 -/* 043C5C 7F00F12C 0C00110B */ jal get_video2_settings_txtClipH +/* 043C5C 7F00F12C 0C00110B */ jal viGetY /* 043C60 7F00F130 01408025 */ move $s0, $t2 /* 043C64 7F00F134 8EA90000 */ lw $t1, ($s5) /* 043C68 7F00F138 8ECB0000 */ lw $t3, ($s6) @@ -11072,11 +11341,11 @@ void interface_menu09_007options(void) f32 phi_f0; f32 phi_f0_2; - setvideo_far(0x42700000); - set_page_aspect(D_80051A58); - set_page_height(0x42c80000, D_80051A5C); - set_video2_settings_offset_24(0); - if (get_controller_buttons_held(0, 0xa000) == 0) + viSetFovY(0x42700000); + viSetAspect(D_80051A58); + viSetZRange(0x42c80000, D_80051A5C); + viSetUseZBuf(0); + if (joyGetButtons(0, 0xa000) == 0) { tab_3_highlight = 0; tab_2_highlight = 0; @@ -11137,14 +11406,14 @@ void interface_menu09_007options(void) } } } - if (get_controller_buttons_pressed(0, 0x1000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x1000) != 0) { tab_1_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0xa000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xa000) != 0) { if (tab_2_highlight != 0) { @@ -11164,18 +11433,18 @@ void interface_menu09_007options(void) } } } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } - if (get_controller_buttons_held(0, 0xa000) != 0) + if (joyGetButtons(0, 0xa000) != 0) { temp_f0 = (cursor_h_pos - 55.0f) / 300.0f; phi_f0 = temp_f0; @@ -11249,20 +11518,20 @@ glabel interface_menu09_007options /* 043EA8 7F00F378 3C014270 */ li $at, 0x42700000 # 60.000000 /* 043EAC 7F00F37C AFBF0014 */ sw $ra, 0x14($sp) /* 043EB0 7F00F380 44816000 */ mtc1 $at, $f12 -/* 043EB4 7F00F384 0C001151 */ jal setvideo_far +/* 043EB4 7F00F384 0C001151 */ jal viSetFovY /* 043EB8 7F00F388 00000000 */ nop /* 043EBC 7F00F38C 3C018005 */ lui $at, %hi(D_80051A58) -/* 043EC0 7F00F390 0C001164 */ jal set_page_aspect +/* 043EC0 7F00F390 0C001164 */ jal viSetAspect /* 043EC4 7F00F394 C42C1A58 */ lwc1 $f12, %lo(D_80051A58)($at) /* 043EC8 7F00F398 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 043ECC 7F00F39C 44816000 */ mtc1 $at, $f12 /* 043ED0 7F00F3A0 3C018005 */ lui $at, %hi(D_80051A5C) -/* 043ED4 7F00F3A4 0C001194 */ jal set_page_height +/* 043ED4 7F00F3A4 0C001194 */ jal viSetZRange /* 043ED8 7F00F3A8 C42E1A5C */ lwc1 $f14, %lo(D_80051A5C)($at) -/* 043EDC 7F00F3AC 0C00114D */ jal set_video2_settings_offset_24 +/* 043EDC 7F00F3AC 0C00114D */ jal viSetUseZBuf /* 043EE0 7F00F3B0 00002025 */ move $a0, $zero /* 043EE4 7F00F3B4 00002025 */ move $a0, $zero -/* 043EE8 7F00F3B8 0C0030C3 */ jal get_controller_buttons_held +/* 043EE8 7F00F3B8 0C0030C3 */ jal joyGetButtons /* 043EEC 7F00F3BC 3405A000 */ li $a1, 40960 /* 043EF0 7F00F3C0 14400042 */ bnez $v0, .L7F00F4CC /* 043EF4 7F00F3C4 3C018003 */ lui $at, %hi(tab_3_highlight) @@ -11340,14 +11609,14 @@ glabel interface_menu09_007options /* 043FF8 7F00F4C8 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) .L7F00F4CC: /* 043FFC 7F00F4CC 00002025 */ move $a0, $zero -/* 044000 7F00F4D0 0C0030EB */ jal get_controller_buttons_pressed +/* 044000 7F00F4D0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 044004 7F00F4D4 24051000 */ li $a1, 4096 /* 044008 7F00F4D8 1040000A */ beqz $v0, .L7F00F504 /* 04400C 7F00F4DC 24030001 */ li $v1, 1 /* 044010 7F00F4E0 3C018003 */ lui $at, %hi(tab_1_selected) -/* 044014 7F00F4E4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044014 7F00F4E4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 044018 7F00F4E8 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) -/* 04401C 7F00F4EC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04401C 7F00F4EC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 044020 7F00F4F0 240500C7 */ li $a1, 199 /* 044024 7F00F4F4 0C002382 */ jal play_sfx_a1 /* 044028 7F00F4F8 00003025 */ move $a2, $zero @@ -11355,13 +11624,13 @@ glabel interface_menu09_007options /* 044030 7F00F500 00002025 */ move $a0, $zero .L7F00F504: /* 044034 7F00F504 00002025 */ move $a0, $zero -/* 044038 7F00F508 0C0030EB */ jal get_controller_buttons_pressed +/* 044038 7F00F508 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04403C 7F00F50C 3405A000 */ li $a1, 40960 /* 044040 7F00F510 1040001B */ beqz $v0, .L7F00F580 /* 044044 7F00F514 24030001 */ li $v1, 1 /* 044048 7F00F518 3C188003 */ lui $t8, %hi(tab_2_highlight) /* 04404C 7F00F51C 8F18A8E0 */ lw $t8, %lo(tab_2_highlight)($t8) -/* 044050 7F00F520 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 044050 7F00F520 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 044054 7F00F524 240500C7 */ li $a1, 199 /* 044058 7F00F528 13000004 */ beqz $t8, .L7F00F53C /* 04405C 7F00F52C 00003025 */ move $a2, $zero @@ -11385,26 +11654,26 @@ glabel interface_menu09_007options /* 04409C 7F00F56C AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) .L7F00F570: /* 0440A0 7F00F570 0C002382 */ jal play_sfx_a1 -/* 0440A4 7F00F574 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440A4 7F00F574 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0440A8 7F00F578 1000000E */ b .L7F00F5B4 /* 0440AC 7F00F57C 00002025 */ move $a0, $zero .L7F00F580: /* 0440B0 7F00F580 00002025 */ move $a0, $zero -/* 0440B4 7F00F584 0C0030EB */ jal get_controller_buttons_pressed +/* 0440B4 7F00F584 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0440B8 7F00F588 24054000 */ li $a1, 16384 /* 0440BC 7F00F58C 10400008 */ beqz $v0, .L7F00F5B0 /* 0440C0 7F00F590 24030001 */ li $v1, 1 /* 0440C4 7F00F594 3C018003 */ lui $at, %hi(tab_3_selected) -/* 0440C8 7F00F598 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0440C8 7F00F598 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0440CC 7F00F59C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 0440D0 7F00F5A0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0440D0 7F00F5A0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0440D4 7F00F5A4 240500C7 */ li $a1, 199 /* 0440D8 7F00F5A8 0C002382 */ jal play_sfx_a1 /* 0440DC 7F00F5AC 00003025 */ move $a2, $zero .L7F00F5B0: /* 0440E0 7F00F5B0 00002025 */ move $a0, $zero .L7F00F5B4: -/* 0440E4 7F00F5B4 0C0030C3 */ jal get_controller_buttons_held +/* 0440E4 7F00F5B4 0C0030C3 */ jal joyGetButtons /* 0440E8 7F00F5B8 3405A000 */ li $a1, 40960 /* 0440EC 7F00F5BC 1040003E */ beqz $v0, .L7F00F6B8 /* 0440F0 7F00F5C0 3C048003 */ lui $a0, %hi(ptr_folder_object_instance) @@ -11589,8 +11858,8 @@ loop_1: spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x28)); spC10 = 0x37; spC0C = 0x8f; - sp44 = get_video2_settings_txtClipW(); - temp_s0 = write_text_at_abs_coord(print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp54), &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0 = write_text_at_abs_coord(print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(0, 0, 0)))), &sp54), &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2a)); spC10 = 0x39; spC0C = 0xa4; @@ -11600,16 +11869,16 @@ loop_1: { phi_s0 = microcode_constructor_related_to_menus(temp_ret, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_2 = write_text_at_abs_coord(phi_s0, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sprintf(&sp54, &aD, (s32) (slider_007_mode_health * 100.0f)); sp4C = 0; sp50 = 0; sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spC10 = (s32) (0x11d - sp4C); spC0C = 0xa4; - sp44 = get_video2_settings_txtClipW(); - temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_3 = write_text_at_abs_coord(temp_s0_2, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2b)); spC10 = 0x39; spC0C = 0xc5; @@ -11619,16 +11888,16 @@ loop_1: { phi_s0_2 = microcode_constructor_related_to_menus(temp_ret_2, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_2, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sprintf(&sp54, &aD_0, (s32) (slider_007_mode_accuracy * 100.0f)); sp4C = 0; sp50 = 0; sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spC10 = (s32) (0x11d - sp4C); spC0C = 0xc5; - sp44 = get_video2_settings_txtClipW(); - temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_5 = write_text_at_abs_coord(temp_s0_4, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x2c)); spC10 = 0x39; spC0C = 0xe6; @@ -11638,16 +11907,16 @@ loop_1: { phi_s0_3 = microcode_constructor_related_to_menus(temp_ret_3, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_6 = write_text_at_abs_coord(phi_s0_3, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_3, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sprintf(&sp54, &aD_1, (s32) (slider_007_mode_damage * 10.0f)); sp4C = 0; sp50 = 0; sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spC10 = (s32) (0x11d - sp4C); spC0C = 0xe6; - sp44 = get_video2_settings_txtClipW(); - temp_s0_7 = write_text_at_abs_coord(temp_s0_6, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_7 = write_text_at_abs_coord(temp_s0_6, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); spC14 = get_textptr_for_textID(TEXT(LTITLE, 0x29)); spC10 = 0x39; spC0C = 0x107; @@ -11657,16 +11926,16 @@ loop_1: { phi_s0_4 = microcode_constructor_related_to_menus(temp_ret_4, 0x37, spC0C + -1, 0xc7, (s32) (spC0C + 0xe), 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_8 = write_text_at_abs_coord(phi_s0_4, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_4, &spC10, &spC0C, spC14, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sprintf(&sp54, &aD_2, (s32) (slider_007_mode_reaction * 100.0f)); sp4C = 0; sp50 = 0; sub_GAME_7F0AE98C(&sp50, &sp4C, &sp54, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spC10 = (s32) (0x11d - sp4C); spC0C = 0x107; - sp44 = get_video2_settings_txtClipW(); - load_draw_selected_icon_folder_select(add_tab2_next(add_tab3_previous(add_tab1_start(write_text_at_abs_coord(temp_s0_8, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0))))); + sp44 = viGetX(); + load_draw_selected_icon_folder_select(add_tab2_next(add_tab3_previous(add_tab1_start(write_text_at_abs_coord(temp_s0_8, &spC10, &spC0C, &sp54, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0))))); } #else const char asc_D_80050074[3000] = {0xA, 0}; @@ -11682,9 +11951,9 @@ glabel constructor_menu09_007options /* 0442D0 7F00F7A0 AFB00038 */ sw $s0, 0x38($sp) /* 0442D4 7F00F7A4 00002825 */ move $a1, $zero /* 0442D8 7F00F7A8 00003025 */ move $a2, $zero -/* 0442DC 7F00F7AC 0C0011B4 */ jal set_setfillcolor +/* 0442DC 7F00F7AC 0C0011B4 */ jal viSetFillColor /* 0442E0 7F00F7B0 00003825 */ move $a3, $zero -/* 0442E4 7F00F7B4 0C000FBE */ jal insert_generic_fillrect +/* 0442E4 7F00F7B4 0C000FBE */ jal viFillScreen /* 0442E8 7F00F7B8 00402025 */ move $a0, $v0 /* 0442EC 7F00F7BC 0FC0357A */ jal sub_GAME_7F00D5E8 /* 0442F0 7F00F7C0 00402025 */ move $a0, $v0 @@ -11714,9 +11983,9 @@ glabel constructor_menu09_007options /* 04434C 7F00F81C 2403008F */ li $v1, 143 /* 044350 7F00F820 AFA20C14 */ sw $v0, 0xc14($sp) /* 044354 7F00F824 AFA90C10 */ sw $t1, 0xc10($sp) -/* 044358 7F00F828 0C001107 */ jal get_video2_settings_txtClipW +/* 044358 7F00F828 0C001107 */ jal viGetX /* 04435C 7F00F82C AFA30C0C */ sw $v1, 0xc0c($sp) -/* 044360 7F00F830 0C00110B */ jal get_video2_settings_txtClipH +/* 044360 7F00F830 0C00110B */ jal viGetY /* 044364 7F00F834 A7A20044 */ sh $v0, 0x44($sp) /* 044368 7F00F838 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 04436C 7F00F83C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) @@ -11792,9 +12061,9 @@ glabel constructor_menu09_007options /* 044484 7F00F954 2466FFFF */ addiu $a2, $v1, -1 /* 044488 7F00F958 00408025 */ move $s0, $v0 .L7F00F95C: -/* 04448C 7F00F95C 0C001107 */ jal get_video2_settings_txtClipW +/* 04448C 7F00F95C 0C001107 */ jal viGetX /* 044490 7F00F960 00000000 */ nop -/* 044494 7F00F964 0C00110B */ jal get_video2_settings_txtClipH +/* 044494 7F00F964 0C00110B */ jal viGetY /* 044498 7F00F968 A7A20044 */ sh $v0, 0x44($sp) /* 04449C 7F00F96C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 0444A0 7F00F970 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -11844,9 +12113,9 @@ glabel constructor_menu09_007options /* 044550 7F00FA20 240300A4 */ li $v1, 164 /* 044554 7F00FA24 01495823 */ subu $t3, $t2, $t1 /* 044558 7F00FA28 AFAB0C10 */ sw $t3, 0xc10($sp) -/* 04455C 7F00FA2C 0C001107 */ jal get_video2_settings_txtClipW +/* 04455C 7F00FA2C 0C001107 */ jal viGetX /* 044560 7F00FA30 AFA30C0C */ sw $v1, 0xc0c($sp) -/* 044564 7F00FA34 0C00110B */ jal get_video2_settings_txtClipH +/* 044564 7F00FA34 0C00110B */ jal viGetY /* 044568 7F00FA38 A7A20044 */ sh $v0, 0x44($sp) /* 04456C 7F00FA3C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 044570 7F00FA40 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -11922,9 +12191,9 @@ glabel constructor_menu09_007options /* 044688 7F00FB58 2466FFFF */ addiu $a2, $v1, -1 /* 04468C 7F00FB5C 00408025 */ move $s0, $v0 .L7F00FB60: -/* 044690 7F00FB60 0C001107 */ jal get_video2_settings_txtClipW +/* 044690 7F00FB60 0C001107 */ jal viGetX /* 044694 7F00FB64 00000000 */ nop -/* 044698 7F00FB68 0C00110B */ jal get_video2_settings_txtClipH +/* 044698 7F00FB68 0C00110B */ jal viGetY /* 04469C 7F00FB6C A7A20044 */ sh $v0, 0x44($sp) /* 0446A0 7F00FB70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 0446A4 7F00FB74 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -11974,9 +12243,9 @@ glabel constructor_menu09_007options /* 044754 7F00FC24 240300C5 */ li $v1, 197 /* 044758 7F00FC28 018B6823 */ subu $t5, $t4, $t3 /* 04475C 7F00FC2C AFAD0C10 */ sw $t5, 0xc10($sp) -/* 044760 7F00FC30 0C001107 */ jal get_video2_settings_txtClipW +/* 044760 7F00FC30 0C001107 */ jal viGetX /* 044764 7F00FC34 AFA30C0C */ sw $v1, 0xc0c($sp) -/* 044768 7F00FC38 0C00110B */ jal get_video2_settings_txtClipH +/* 044768 7F00FC38 0C00110B */ jal viGetY /* 04476C 7F00FC3C A7A20044 */ sh $v0, 0x44($sp) /* 044770 7F00FC40 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 044774 7F00FC44 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) @@ -12052,9 +12321,9 @@ glabel constructor_menu09_007options /* 04488C 7F00FD5C 2466FFFF */ addiu $a2, $v1, -1 /* 044890 7F00FD60 00408025 */ move $s0, $v0 .L7F00FD64: -/* 044894 7F00FD64 0C001107 */ jal get_video2_settings_txtClipW +/* 044894 7F00FD64 0C001107 */ jal viGetX /* 044898 7F00FD68 00000000 */ nop -/* 04489C 7F00FD6C 0C00110B */ jal get_video2_settings_txtClipH +/* 04489C 7F00FD6C 0C00110B */ jal viGetY /* 0448A0 7F00FD70 A7A20044 */ sh $v0, 0x44($sp) /* 0448A4 7F00FD74 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) /* 0448A8 7F00FD78 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -12104,9 +12373,9 @@ glabel constructor_menu09_007options /* 044958 7F00FE28 240300E6 */ li $v1, 230 /* 04495C 7F00FE2C 032DC023 */ subu $t8, $t9, $t5 /* 044960 7F00FE30 AFB80C10 */ sw $t8, 0xc10($sp) -/* 044964 7F00FE34 0C001107 */ jal get_video2_settings_txtClipW +/* 044964 7F00FE34 0C001107 */ jal viGetX /* 044968 7F00FE38 AFA30C0C */ sw $v1, 0xc0c($sp) -/* 04496C 7F00FE3C 0C00110B */ jal get_video2_settings_txtClipH +/* 04496C 7F00FE3C 0C00110B */ jal viGetY /* 044970 7F00FE40 A7A20044 */ sh $v0, 0x44($sp) /* 044974 7F00FE44 3C088004 */ lui $t0, %hi(ptrSecondFontTableLarge) /* 044978 7F00FE48 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) @@ -12180,9 +12449,9 @@ glabel constructor_menu09_007options /* 044A88 7F00FF58 2466FFFF */ addiu $a2, $v1, -1 /* 044A8C 7F00FF5C 00408025 */ move $s0, $v0 .L7F00FF60: -/* 044A90 7F00FF60 0C001107 */ jal get_video2_settings_txtClipW +/* 044A90 7F00FF60 0C001107 */ jal viGetX /* 044A94 7F00FF64 00000000 */ nop -/* 044A98 7F00FF68 0C00110B */ jal get_video2_settings_txtClipH +/* 044A98 7F00FF68 0C00110B */ jal viGetY /* 044A9C 7F00FF6C A7A20044 */ sh $v0, 0x44($sp) /* 044AA0 7F00FF70 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 044AA4 7F00FF74 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) @@ -12232,9 +12501,9 @@ glabel constructor_menu09_007options /* 044B54 7F010024 24030107 */ li $v1, 263 /* 044B58 7F010028 01187823 */ subu $t7, $t0, $t8 /* 044B5C 7F01002C AFAF0C10 */ sw $t7, 0xc10($sp) -/* 044B60 7F010030 0C001107 */ jal get_video2_settings_txtClipW +/* 044B60 7F010030 0C001107 */ jal viGetX /* 044B64 7F010034 AFA30C0C */ sw $v1, 0xc0c($sp) -/* 044B68 7F010038 0C00110B */ jal get_video2_settings_txtClipH +/* 044B68 7F010038 0C00110B */ jal viGetY /* 044B6C 7F01003C A7A20044 */ sh $v0, 0x44($sp) /* 044B70 7F010040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) /* 044B74 7F010044 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -12763,15 +13032,15 @@ void init_menu0E_mpoptions(void) if (maybe_is_in_menu != FALSE) { sfx_c_700091E8(0x7fff); - musicTrack1Vol(0x7fff); - music1_playing = FALSE; + musicTrack1ApplySeqpVol(0x7fff); + g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; musicTrack1Play(M_FOLDERS); maybe_is_in_menu = FALSE; } if (selected_num_players == 0) { - numplayers = get_attached_controller_count(); + numplayers = joyGetControllerCount(); init_mp_options_for_scenario(numplayers); } @@ -12832,20 +13101,20 @@ void interface_menu0E_mpoptions(void) health_selected = 0; controlstyle_selected = 0; aimadjustment_selected = 0; - setvideo_far(60.0f); - set_page_aspect(menu0E_aspect); - set_page_height(100.0f, menu0E_pageheight); - set_video2_settings_offset_24(0); - if (get_attached_controller_count() < 2) + viSetFovY(60.0f); + viSetAspect(menu0E_aspect); + viSetZRange(100.0f, menu0E_pageheight); + viSetUseZBuf(0); + if (joyGetControllerCount() < 2) { set_menu_to_mode(MENU_MODE_SELECT, 0); setCursorPOSforMode(gamemode); } - if (get_attached_controller_count() < selected_num_players) + if (joyGetControllerCount() < selected_num_players) { - init_mp_options_for_scenario(get_attached_controller_count()); + init_mp_options_for_scenario(joyGetControllerCount()); } - if (get_controller_buttons_held(0, Z_TRIG|A_BUTTON) == 0) + if (joyGetButtons(0, Z_TRIG|A_BUTTON) == 0) { tab_3_highlight = 0; tab_2_highlight = 0; @@ -12915,14 +13184,14 @@ void interface_menu0E_mpoptions(void) } } - if (get_controller_buttons_pressed(0, START_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, START_BUTTON) != 0) { tab_1_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, Z_TRIG|A_BUTTON) != 0) { if (tab_3_highlight != 0) { @@ -12968,14 +13237,14 @@ void interface_menu0E_mpoptions(void) { aimadjustment_selected = 1; } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, B_BUTTON) != 0) + if (joyGetButtonsPressedThisFrame(0, B_BUTTON) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } @@ -12996,7 +13265,7 @@ void interface_menu0E_mpoptions(void) curstageid = multi_stage_setups[MP_stage_selected].stage_id; if (multi_stage_setups[MP_stage_selected].stage_id < 0) { do { - numplayers = get_random_value(); + numplayers = randomGetNext(); selected_stage = multi_stage_setups[numplayers % 0xb + 1].stage_id; curstageid = selected_stage; } while (check_if_mp_stage_unlocked(numplayers % 0xb + 1) == FALSE); @@ -13009,7 +13278,7 @@ void interface_menu0E_mpoptions(void) { temp_v1 = selected_num_players + 1; phi_a0 = temp_v1; - if (get_attached_controller_count() < temp_v1) + if (joyGetControllerCount() < temp_v1) { phi_a0 = 2; } @@ -13078,19 +13347,19 @@ glabel interface_menu0E_mpoptions /* 04539C 7F01086C AFA00028 */ sw $zero, 0x28($sp) /* 0453A0 7F010870 AFA00024 */ sw $zero, 0x24($sp) /* 0453A4 7F010874 AFA00020 */ sw $zero, 0x20($sp) -/* 0453A8 7F010878 0C001151 */ jal setvideo_far +/* 0453A8 7F010878 0C001151 */ jal viSetFovY /* 0453AC 7F01087C AFA0001C */ sw $zero, 0x1c($sp) /* 0453B0 7F010880 3C018005 */ lui $at, %hi(menu0E_aspect) -/* 0453B4 7F010884 0C001164 */ jal set_page_aspect +/* 0453B4 7F010884 0C001164 */ jal viSetAspect /* 0453B8 7F010888 C42C1A80 */ lwc1 $f12, %lo(menu0E_aspect)($at) /* 0453BC 7F01088C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 0453C0 7F010890 44816000 */ mtc1 $at, $f12 /* 0453C4 7F010894 3C018005 */ lui $at, %hi(menu0E_pageheight) -/* 0453C8 7F010898 0C001194 */ jal set_page_height +/* 0453C8 7F010898 0C001194 */ jal viSetZRange /* 0453CC 7F01089C C42E1A84 */ lwc1 $f14, %lo(menu0E_pageheight)($at) -/* 0453D0 7F0108A0 0C00114D */ jal set_video2_settings_offset_24 +/* 0453D0 7F0108A0 0C00114D */ jal viSetUseZBuf /* 0453D4 7F0108A4 00002025 */ move $a0, $zero -/* 0453D8 7F0108A8 0C002E7E */ jal get_attached_controller_count +/* 0453D8 7F0108A8 0C002E7E */ jal joyGetControllerCount /* 0453DC 7F0108AC 00000000 */ nop /* 0453E0 7F0108B0 28410002 */ slti $at, $v0, 2 /* 0453E4 7F0108B4 10200006 */ beqz $at, .L7F0108D0 @@ -13101,20 +13370,20 @@ glabel interface_menu0E_mpoptions /* 0453F8 7F0108C8 0FC035FF */ jal setCursorPOSforMode /* 0453FC 7F0108CC 8C84A8F0 */ lw $a0, %lo(gamemode)($a0) .L7F0108D0: -/* 045400 7F0108D0 0C002E7E */ jal get_attached_controller_count +/* 045400 7F0108D0 0C002E7E */ jal joyGetControllerCount /* 045404 7F0108D4 00000000 */ nop /* 045408 7F0108D8 3C0E8003 */ lui $t6, %hi(selected_num_players) /* 04540C 7F0108DC 8DCEB520 */ lw $t6, %lo(selected_num_players)($t6) /* 045410 7F0108E0 004E082A */ slt $at, $v0, $t6 /* 045414 7F0108E4 50200006 */ beql $at, $zero, .L7F010900 /* 045418 7F0108E8 00002025 */ move $a0, $zero -/* 04541C 7F0108EC 0C002E7E */ jal get_attached_controller_count +/* 04541C 7F0108EC 0C002E7E */ jal joyGetControllerCount /* 045420 7F0108F0 00000000 */ nop /* 045424 7F0108F4 0FC04182 */ jal init_mp_options_for_scenario /* 045428 7F0108F8 00402025 */ move $a0, $v0 /* 04542C 7F0108FC 00002025 */ move $a0, $zero .L7F010900: -/* 045430 7F010900 0C0030C3 */ jal get_controller_buttons_held +/* 045430 7F010900 0C0030C3 */ jal joyGetButtons /* 045434 7F010904 3405A000 */ li $a1, 40960 /* 045438 7F010908 1440007A */ bnez $v0, .L7F010AF4 /* 04543C 7F01090C 3C018003 */ lui $at, %hi(tab_3_highlight) @@ -13257,14 +13526,14 @@ glabel interface_menu0E_mpoptions /* 045620 7F010AF0 AC2397C8 */ sw $v1, %lo(highlight_players)($at) .L7F010AF4: /* 045624 7F010AF4 00002025 */ move $a0, $zero -/* 045628 7F010AF8 0C0030EB */ jal get_controller_buttons_pressed +/* 045628 7F010AF8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04562C 7F010AFC 24051000 */ li $a1, 4096 /* 045630 7F010B00 1040000A */ beqz $v0, .L7F010B2C /* 045634 7F010B04 24030001 */ li $v1, 1 /* 045638 7F010B08 3C018003 */ lui $at, %hi(tab_1_selected) -/* 04563C 7F010B0C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04563C 7F010B0C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 045640 7F010B10 AC23A8D0 */ sw $v1, %lo(tab_1_selected)($at) -/* 045644 7F010B14 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 045644 7F010B14 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 045648 7F010B18 240500C7 */ li $a1, 199 /* 04564C 7F010B1C 0C002382 */ jal play_sfx_a1 /* 045650 7F010B20 00003025 */ move $a2, $zero @@ -13272,14 +13541,14 @@ glabel interface_menu0E_mpoptions /* 045658 7F010B28 00000000 */ nop .L7F010B2C: /* 04565C 7F010B2C 00002025 */ move $a0, $zero -/* 045660 7F010B30 0C0030EB */ jal get_controller_buttons_pressed +/* 045660 7F010B30 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 045664 7F010B34 3405A000 */ li $a1, 40960 /* 045668 7F010B38 10400051 */ beqz $v0, .L7F010C80 /* 04566C 7F010B3C 24030001 */ li $v1, 1 /* 045670 7F010B40 3C0E8003 */ lui $t6, %hi(tab_3_highlight) /* 045674 7F010B44 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) /* 045678 7F010B48 3C0F8003 */ lui $t7, %hi(tab_1_highlight) -/* 04567C 7F010B4C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04567C 7F010B4C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 045680 7F010B50 11C00003 */ beqz $t6, .L7F010B60 /* 045684 7F010B54 240500C7 */ li $a1, 199 /* 045688 7F010B58 3C018003 */ lui $at, %hi(tab_3_selected) @@ -13364,19 +13633,19 @@ glabel interface_menu0E_mpoptions /* 04579C 7F010C6C AFAD001C */ sw $t5, 0x1c($sp) .L7F010C70: /* 0457A0 7F010C70 0C002382 */ jal play_sfx_a1 -/* 0457A4 7F010C74 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457A4 7F010C74 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0457A8 7F010C78 1000000D */ b .L7F010CB0 /* 0457AC 7F010C7C 00000000 */ nop .L7F010C80: /* 0457B0 7F010C80 00002025 */ move $a0, $zero -/* 0457B4 7F010C84 0C0030EB */ jal get_controller_buttons_pressed +/* 0457B4 7F010C84 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0457B8 7F010C88 24054000 */ li $a1, 16384 /* 0457BC 7F010C8C 10400008 */ beqz $v0, .L7F010CB0 /* 0457C0 7F010C90 24030001 */ li $v1, 1 /* 0457C4 7F010C94 3C018003 */ lui $at, %hi(tab_3_selected) -/* 0457C8 7F010C98 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0457C8 7F010C98 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0457CC 7F010C9C AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 0457D0 7F010CA0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0457D0 7F010CA0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0457D4 7F010CA4 240500C7 */ li $a1, 199 /* 0457D8 7F010CA8 0C002382 */ jal play_sfx_a1 /* 0457DC 7F010CAC 00003025 */ move $a2, $zero @@ -13436,7 +13705,7 @@ glabel interface_menu0E_mpoptions /* 0458AC 7F010D7C 04410014 */ bgez $v0, .L7F010DD0 /* 0458B0 7F010D80 00000000 */ nop .L7F010D84: -/* 0458B4 7F010D84 0C002914 */ jal get_random_value +/* 0458B4 7F010D84 0C002914 */ jal randomGetNext /* 0458B8 7F010D88 00000000 */ nop /* 0458BC 7F010D8C 2401000B */ li $at, 11 /* 0458C0 7F010D90 0041001B */ divu $zero, $v0, $at @@ -13469,7 +13738,7 @@ glabel interface_menu0E_mpoptions .L7F010DF4: /* 045924 7F010DF4 1160000F */ beqz $t3, .L7F010E34 /* 045928 7F010DF8 8FAC0038 */ lw $t4, 0x38($sp) -/* 04592C 7F010DFC 0C002E7E */ jal get_attached_controller_count +/* 04592C 7F010DFC 0C002E7E */ jal joyGetControllerCount /* 045930 7F010E00 00000000 */ nop /* 045934 7F010E04 3C038003 */ lui $v1, %hi(selected_num_players) /* 045938 7F010E08 8C63B520 */ lw $v1, %lo(selected_num_players)($v1) @@ -13612,8 +13881,8 @@ void constructor_menu0E_mpoptions(void) sp64 = get_textptr_for_textID(TEXT(LTITLE, 0x4c)); sp58 = 0x37; sp54 = 0x5f; - sp44 = get_video2_settings_txtClipW(); - temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(0, 0, 0)))), &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x4d)); sp64 = temp_ret; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13624,8 +13893,8 @@ void constructor_menu0E_mpoptions(void) { phi_s0 = microcode_constructor_related_to_menus(temp_s0, 0x37, 0x78, sp4C + 0x3c, 0x87, 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_2 = write_text_at_abs_coord(phi_s0, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x4e)); sp64 = temp_ret_2; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_2, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13636,8 +13905,8 @@ void constructor_menu0E_mpoptions(void) { phi_s0_2 = microcode_constructor_related_to_menus(temp_s0_2, 0x37, 0x8c, sp4C + 0x3c, 0x9b, 0x32); } - sp44 = get_video2_settings_txtClipW(); - temp_s0_3 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_3 = write_text_at_abs_coord(phi_s0_2, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x4f)); sp64 = temp_ret_3; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13657,8 +13926,8 @@ void constructor_menu0E_mpoptions(void) phi_v1 = 0x70; } sp48 = (s32) phi_v1; - sp44 = get_video2_settings_txtClipW(); - temp_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_4 = write_text_at_abs_coord(phi_s0_3, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, viGetY(), 0, 0); temp_ret_4 = get_textptr_for_textID(TEXT(LTITLE, 0x50)); sp64 = temp_ret_4; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13678,8 +13947,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_2 = 0x70; } sp48 = (s32) phi_v1_2; - sp44 = get_video2_settings_txtClipW(); - temp_s0_5 = write_text_at_abs_coord(phi_s0_4, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_2, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_5 = write_text_at_abs_coord(phi_s0_4, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_2, sp44, viGetY(), 0, 0); temp_ret_5 = get_textptr_for_textID(TEXT(LTITLE, 0x51)); sp64 = temp_ret_5; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_5, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13699,8 +13968,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_3 = 0x70; } sp48 = (s32) phi_v1_3; - sp44 = get_video2_settings_txtClipW(); - temp_s0_6 = write_text_at_abs_coord(phi_s0_5, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_3, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_6 = write_text_at_abs_coord(phi_s0_5, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_3, sp44, viGetY(), 0, 0); temp_ret_6 = get_textptr_for_textID(TEXT(LTITLE, 0x52)); sp64 = temp_ret_6; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_6, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13720,8 +13989,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_4 = 0x70; } sp48 = (s32) phi_v1_4; - sp44 = get_video2_settings_txtClipW(); - temp_s0_7 = write_text_at_abs_coord(phi_s0_6, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_4, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_7 = write_text_at_abs_coord(phi_s0_6, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_4, sp44, viGetY(), 0, 0); temp_ret_7 = get_textptr_for_textID(TEXT(LTITLE, 0x53)); sp64 = temp_ret_7; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_7, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13741,8 +14010,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_5 = 0x70; } sp48 = (s32) phi_v1_5; - sp44 = get_video2_settings_txtClipW(); - temp_s0_8 = write_text_at_abs_coord(phi_s0_7, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_5, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_8 = write_text_at_abs_coord(phi_s0_7, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_5, sp44, viGetY(), 0, 0); temp_ret_8 = get_textptr_for_textID(TEXT(LTITLE, 0x11e)); sp64 = temp_ret_8; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_8, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13762,8 +14031,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_6 = 0x70; } sp48 = (s32) phi_v1_6; - sp44 = get_video2_settings_txtClipW(); - temp_s0_9 = write_text_at_abs_coord(phi_s0_8, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_6, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_9 = write_text_at_abs_coord(phi_s0_8, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_6, sp44, viGetY(), 0, 0); temp_ret_9 = get_textptr_for_textID(TEXT(LTITLE, 0x54)); sp64 = temp_ret_9; sub_GAME_7F0AE98C(&sp50, &sp4C, temp_ret_9, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); @@ -13783,18 +14052,18 @@ void constructor_menu0E_mpoptions(void) phi_v1_7 = 0x70; } sp48 = (s32) phi_v1_7; - sp44 = get_video2_settings_txtClipW(); - temp_s0_10 = write_text_at_abs_coord(phi_s0_9, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_7, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_10 = write_text_at_abs_coord(phi_s0_9, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_7, sp44, viGetY(), 0, 0); sprintf(&sp5C, &aD_7, selected_num_players); sp58 = 0xa0; sp54 = 0x79; - sp44 = get_video2_settings_txtClipW(); - temp_s0_11 = write_text_at_abs_coord(temp_s0_10, &sp58, &sp54, &sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_11 = write_text_at_abs_coord(temp_s0_10, &sp58, &sp54, &sp5C, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sp64 = get_textptr_for_textID((0x80030000 + (scenario * 4))->unk-4FAC); sp58 = 0xa0; sp54 = 0x8d; - sp44 = get_video2_settings_txtClipW(); - temp_s0_12 = write_text_at_abs_coord(temp_s0_11, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_12 = write_text_at_abs_coord(temp_s0_11, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); sp64 = get_textptr_for_textID((0x80030000 + (MP_stage_selected * 0x18))->unk-4F8C); sp58 = 0xa0; sp54 = 0xa1; @@ -13807,8 +14076,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_8 = 0x70; } sp48 = (s32) phi_v1_8; - sp44 = get_video2_settings_txtClipW(); - temp_s0_13 = write_text_at_abs_coord(temp_s0_12, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_8, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_13 = write_text_at_abs_coord(temp_s0_12, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_8, sp44, viGetY(), 0, 0); sp64 = get_textptr_for_textID((0x80030000 + (game_length * 0xc))->unk-500C); sp58 = 0xa0; sp54 = 0xb5; @@ -13821,8 +14090,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_9 = 0x70; } sp48 = (s32) phi_v1_9; - sp44 = get_video2_settings_txtClipW(); - temp_s0_14 = write_text_at_abs_coord(temp_s0_13, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_9, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_14 = write_text_at_abs_coord(temp_s0_13, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_9, sp44, viGetY(), 0, 0); sp64 = get_textptr_for_textID(*getPtrMPWeaponSetTextID()); sp58 = 0xa0; sp54 = 0xc9; @@ -13835,8 +14104,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_10 = 0x70; } sp48 = (s32) phi_v1_10; - sp44 = get_video2_settings_txtClipW(); - temp_s0_15 = write_text_at_abs_coord(temp_s0_14, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_10, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + temp_s0_15 = write_text_at_abs_coord(temp_s0_14, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_10, sp44, viGetY(), 0, 0); sp64 = get_textptr_for_textID((0x80030000 + (aim_sight_adjustment * 4))->unk-4AF0); sp58 = 0xa0; sp54 = 0x119; @@ -13849,8 +14118,8 @@ void constructor_menu0E_mpoptions(void) phi_v1_11 = 0x70; } sp48 = (s32) phi_v1_11; - sp44 = get_video2_settings_txtClipW(); - load_draw_selected_icon_folder_select(add_tab1_start(add_tab3_previous(write_text_at_abs_coord(temp_s0_15, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_11, sp44, get_video2_settings_txtClipH(), 0, 0)))); + sp44 = viGetX(); + load_draw_selected_icon_folder_select(add_tab1_start(add_tab3_previous(write_text_at_abs_coord(temp_s0_15, &sp58, &sp54, sp64, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1_11, sp44, viGetY(), 0, 0)))); } #else const char aD_7[] = "%d"; @@ -13862,9 +14131,9 @@ glabel constructor_menu0E_mpoptions /* 045A48 7F010F18 AFB00038 */ sw $s0, 0x38($sp) /* 045A4C 7F010F1C 00002825 */ move $a1, $zero /* 045A50 7F010F20 00003025 */ move $a2, $zero -/* 045A54 7F010F24 0C0011B4 */ jal set_setfillcolor +/* 045A54 7F010F24 0C0011B4 */ jal viSetFillColor /* 045A58 7F010F28 00003825 */ move $a3, $zero -/* 045A5C 7F010F2C 0C000FBE */ jal insert_generic_fillrect +/* 045A5C 7F010F2C 0C000FBE */ jal viFillScreen /* 045A60 7F010F30 00402025 */ move $a0, $v0 /* 045A64 7F010F34 0FC0357A */ jal sub_GAME_7F00D5E8 /* 045A68 7F010F38 00402025 */ move $a0, $v0 @@ -13877,9 +14146,9 @@ glabel constructor_menu0E_mpoptions /* 045A84 7F010F54 240F005F */ li $t7, 95 /* 045A88 7F010F58 AFA20064 */ sw $v0, 0x64($sp) /* 045A8C 7F010F5C AFAE0058 */ sw $t6, 0x58($sp) -/* 045A90 7F010F60 0C001107 */ jal get_video2_settings_txtClipW +/* 045A90 7F010F60 0C001107 */ jal viGetX /* 045A94 7F010F64 AFAF0054 */ sw $t7, 0x54($sp) -/* 045A98 7F010F68 0C00110B */ jal get_video2_settings_txtClipH +/* 045A98 7F010F68 0C00110B */ jal viGetY /* 045A9C 7F010F6C A7A20044 */ sh $v0, 0x44($sp) /* 045AA0 7F010F70 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 045AA4 7F010F74 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -13932,9 +14201,9 @@ glabel constructor_menu0E_mpoptions /* 045B60 7F011030 24E7003C */ addiu $a3, $a3, 0x3c /* 045B64 7F011034 00408025 */ move $s0, $v0 .L7F011038: -/* 045B68 7F011038 0C001107 */ jal get_video2_settings_txtClipW +/* 045B68 7F011038 0C001107 */ jal viGetX /* 045B6C 7F01103C 00000000 */ nop -/* 045B70 7F011040 0C00110B */ jal get_video2_settings_txtClipH +/* 045B70 7F011040 0C00110B */ jal viGetY /* 045B74 7F011044 A7A20044 */ sh $v0, 0x44($sp) /* 045B78 7F011048 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 045B7C 7F01104C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -13987,9 +14256,9 @@ glabel constructor_menu0E_mpoptions /* 045C38 7F011108 24E7003C */ addiu $a3, $a3, 0x3c /* 045C3C 7F01110C 00408025 */ move $s0, $v0 .L7F011110: -/* 045C40 7F011110 0C001107 */ jal get_video2_settings_txtClipW +/* 045C40 7F011110 0C001107 */ jal viGetX /* 045C44 7F011114 00000000 */ nop -/* 045C48 7F011118 0C00110B */ jal get_video2_settings_txtClipH +/* 045C48 7F011118 0C00110B */ jal viGetY /* 045C4C 7F01111C A7A20044 */ sh $v0, 0x44($sp) /* 045C50 7F011120 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 045C54 7F011124 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -14050,9 +14319,9 @@ glabel constructor_menu0E_mpoptions /* 045D2C 7F0111FC 240300FF */ li $v1, 255 /* 045D30 7F011200 24030070 */ li $v1, 112 .L7F011204: -/* 045D34 7F011204 0C001107 */ jal get_video2_settings_txtClipW +/* 045D34 7F011204 0C001107 */ jal viGetX /* 045D38 7F011208 AFA30048 */ sw $v1, 0x48($sp) -/* 045D3C 7F01120C 0C00110B */ jal get_video2_settings_txtClipH +/* 045D3C 7F01120C 0C00110B */ jal viGetY /* 045D40 7F011210 A7A20044 */ sh $v0, 0x44($sp) /* 045D44 7F011214 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 045D48 7F011218 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14113,9 +14382,9 @@ glabel constructor_menu0E_mpoptions /* 045E20 7F0112F0 240300FF */ li $v1, 255 /* 045E24 7F0112F4 24030070 */ li $v1, 112 .L7F0112F8: -/* 045E28 7F0112F8 0C001107 */ jal get_video2_settings_txtClipW +/* 045E28 7F0112F8 0C001107 */ jal viGetX /* 045E2C 7F0112FC AFA30048 */ sw $v1, 0x48($sp) -/* 045E30 7F011300 0C00110B */ jal get_video2_settings_txtClipH +/* 045E30 7F011300 0C00110B */ jal viGetY /* 045E34 7F011304 A7A20044 */ sh $v0, 0x44($sp) /* 045E38 7F011308 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 045E3C 7F01130C 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14176,9 +14445,9 @@ glabel constructor_menu0E_mpoptions /* 045F14 7F0113E4 240300FF */ li $v1, 255 /* 045F18 7F0113E8 24030070 */ li $v1, 112 .L7F0113EC: -/* 045F1C 7F0113EC 0C001107 */ jal get_video2_settings_txtClipW +/* 045F1C 7F0113EC 0C001107 */ jal viGetX /* 045F20 7F0113F0 AFA30048 */ sw $v1, 0x48($sp) -/* 045F24 7F0113F4 0C00110B */ jal get_video2_settings_txtClipH +/* 045F24 7F0113F4 0C00110B */ jal viGetY /* 045F28 7F0113F8 A7A20044 */ sh $v0, 0x44($sp) /* 045F2C 7F0113FC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 045F30 7F011400 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14239,9 +14508,9 @@ glabel constructor_menu0E_mpoptions /* 046008 7F0114D8 240300FF */ li $v1, 255 /* 04600C 7F0114DC 24030070 */ li $v1, 112 .L7F0114E0: -/* 046010 7F0114E0 0C001107 */ jal get_video2_settings_txtClipW +/* 046010 7F0114E0 0C001107 */ jal viGetX /* 046014 7F0114E4 AFA30048 */ sw $v1, 0x48($sp) -/* 046018 7F0114E8 0C00110B */ jal get_video2_settings_txtClipH +/* 046018 7F0114E8 0C00110B */ jal viGetY /* 04601C 7F0114EC A7A20044 */ sh $v0, 0x44($sp) /* 046020 7F0114F0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 046024 7F0114F4 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14302,9 +14571,9 @@ glabel constructor_menu0E_mpoptions /* 0460FC 7F0115CC 240300FF */ li $v1, 255 /* 046100 7F0115D0 24030070 */ li $v1, 112 .L7F0115D4: -/* 046104 7F0115D4 0C001107 */ jal get_video2_settings_txtClipW +/* 046104 7F0115D4 0C001107 */ jal viGetX /* 046108 7F0115D8 AFA30048 */ sw $v1, 0x48($sp) -/* 04610C 7F0115DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04610C 7F0115DC 0C00110B */ jal viGetY /* 046110 7F0115E0 A7A20044 */ sh $v0, 0x44($sp) /* 046114 7F0115E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 046118 7F0115E8 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14365,9 +14634,9 @@ glabel constructor_menu0E_mpoptions /* 0461F0 7F0116C0 240300FF */ li $v1, 255 /* 0461F4 7F0116C4 24030070 */ li $v1, 112 .L7F0116C8: -/* 0461F8 7F0116C8 0C001107 */ jal get_video2_settings_txtClipW +/* 0461F8 7F0116C8 0C001107 */ jal viGetX /* 0461FC 7F0116CC AFA30048 */ sw $v1, 0x48($sp) -/* 046200 7F0116D0 0C00110B */ jal get_video2_settings_txtClipH +/* 046200 7F0116D0 0C00110B */ jal viGetY /* 046204 7F0116D4 A7A20044 */ sh $v0, 0x44($sp) /* 046208 7F0116D8 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04620C 7F0116DC 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14428,9 +14697,9 @@ glabel constructor_menu0E_mpoptions /* 0462E4 7F0117B4 240300FF */ li $v1, 255 /* 0462E8 7F0117B8 24030070 */ li $v1, 112 .L7F0117BC: -/* 0462EC 7F0117BC 0C001107 */ jal get_video2_settings_txtClipW +/* 0462EC 7F0117BC 0C001107 */ jal viGetX /* 0462F0 7F0117C0 AFA30048 */ sw $v1, 0x48($sp) -/* 0462F4 7F0117C4 0C00110B */ jal get_video2_settings_txtClipH +/* 0462F4 7F0117C4 0C00110B */ jal viGetY /* 0462F8 7F0117C8 A7A20044 */ sh $v0, 0x44($sp) /* 0462FC 7F0117CC 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 046300 7F0117D0 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14460,9 +14729,9 @@ glabel constructor_menu0E_mpoptions /* 046360 7F011830 240A00A0 */ li $t2, 160 /* 046364 7F011834 240B0079 */ li $t3, 121 /* 046368 7F011838 AFAA0058 */ sw $t2, 0x58($sp) -/* 04636C 7F01183C 0C001107 */ jal get_video2_settings_txtClipW +/* 04636C 7F01183C 0C001107 */ jal viGetX /* 046370 7F011840 AFAB0054 */ sw $t3, 0x54($sp) -/* 046374 7F011844 0C00110B */ jal get_video2_settings_txtClipH +/* 046374 7F011844 0C00110B */ jal viGetY /* 046378 7F011848 A7A20044 */ sh $v0, 0x44($sp) /* 04637C 7F01184C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 046380 7F011850 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -14494,9 +14763,9 @@ glabel constructor_menu0E_mpoptions /* 0463E8 7F0118B8 2409008D */ li $t1, 141 /* 0463EC 7F0118BC AFA20064 */ sw $v0, 0x64($sp) /* 0463F0 7F0118C0 AFA80058 */ sw $t0, 0x58($sp) -/* 0463F4 7F0118C4 0C001107 */ jal get_video2_settings_txtClipW +/* 0463F4 7F0118C4 0C001107 */ jal viGetX /* 0463F8 7F0118C8 AFA90054 */ sw $t1, 0x54($sp) -/* 0463FC 7F0118CC 0C00110B */ jal get_video2_settings_txtClipH +/* 0463FC 7F0118CC 0C00110B */ jal viGetY /* 046400 7F0118D0 A7A20044 */ sh $v0, 0x44($sp) /* 046404 7F0118D4 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 046408 7F0118D8 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) @@ -14539,9 +14808,9 @@ glabel constructor_menu0E_mpoptions .L7F01196C: /* 04649C 7F01196C 24030070 */ li $v1, 112 .L7F011970: -/* 0464A0 7F011970 0C001107 */ jal get_video2_settings_txtClipW +/* 0464A0 7F011970 0C001107 */ jal viGetX /* 0464A4 7F011974 AFA30048 */ sw $v1, 0x48($sp) -/* 0464A8 7F011978 0C00110B */ jal get_video2_settings_txtClipH +/* 0464A8 7F011978 0C00110B */ jal viGetY /* 0464AC 7F01197C A7A20044 */ sh $v0, 0x44($sp) /* 0464B0 7F011980 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) /* 0464B4 7F011984 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -14584,9 +14853,9 @@ glabel constructor_menu0E_mpoptions .L7F011A18: /* 046548 7F011A18 24030070 */ li $v1, 112 .L7F011A1C: -/* 04654C 7F011A1C 0C001107 */ jal get_video2_settings_txtClipW +/* 04654C 7F011A1C 0C001107 */ jal viGetX /* 046550 7F011A20 AFA30048 */ sw $v1, 0x48($sp) -/* 046554 7F011A24 0C00110B */ jal get_video2_settings_txtClipH +/* 046554 7F011A24 0C00110B */ jal viGetY /* 046558 7F011A28 A7A20044 */ sh $v0, 0x44($sp) /* 04655C 7F011A2C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 046560 7F011A30 3C088004 */ lui $t0, %hi(ptrFirstFontTableLarge) @@ -14623,9 +14892,9 @@ glabel constructor_menu0E_mpoptions .L7F011AAC: /* 0465DC 7F011AAC 24030070 */ li $v1, 112 .L7F011AB0: -/* 0465E0 7F011AB0 0C001107 */ jal get_video2_settings_txtClipW +/* 0465E0 7F011AB0 0C001107 */ jal viGetX /* 0465E4 7F011AB4 AFA30048 */ sw $v1, 0x48($sp) -/* 0465E8 7F011AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0465E8 7F011AB8 0C00110B */ jal viGetY /* 0465EC 7F011ABC A7A20044 */ sh $v0, 0x44($sp) /* 0465F0 7F011AC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 0465F4 7F011AC4 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -14666,9 +14935,9 @@ glabel constructor_menu0E_mpoptions .L7F011B50: /* 046680 7F011B50 24030070 */ li $v1, 112 .L7F011B54: -/* 046684 7F011B54 0C001107 */ jal get_video2_settings_txtClipW +/* 046684 7F011B54 0C001107 */ jal viGetX /* 046688 7F011B58 AFA30048 */ sw $v1, 0x48($sp) -/* 04668C 7F011B5C 0C00110B */ jal get_video2_settings_txtClipH +/* 04668C 7F011B5C 0C00110B */ jal viGetY /* 046690 7F011B60 A7A20044 */ sh $v0, 0x44($sp) /* 046694 7F011B64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 046698 7F011B68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -15117,10 +15386,10 @@ void interface_menu0F_mpcharsel(void) iVar4 = get_selected_num_players(); iStack12 = 0; - setvideo_far(60.00000000); - set_page_aspect((f32)flt_80051A88); - set_page_height(100.00000000,(f32)flt_80051A8C); - set_video2_settings_offset_24(0); + viSetFovY(60.00000000); + viSetAspect((f32)flt_80051A88); + viSetZRange(100.00000000,(f32)flt_80051A8C); + viSetUseZBuf(0); iVar13 = 0; iVar10 = 0; if (0 < iVar4) { @@ -15135,10 +15404,10 @@ void interface_menu0F_mpcharsel(void) if ((iVar6 < 0xb) && (*piVar12 == *piVar8)) { *(int *)((int)&size_mp_select_image_player1 + iVar10) = iVar6 + 1; } - uVar3 = get_controller_buttons_pressed(controller,B_BUTTON); + uVar3 = joyGetButtonsPressedThisFrame(controller,B_BUTTON); if (uVar3 != 0) { *pBVar11 = FALSE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } } if ((*pBVar11 == FALSE) && @@ -15149,25 +15418,25 @@ LAB_7f012164: } else { if (*pBVar11 != FALSE) goto LAB_7f012164; - uVar3 = get_controller_buttons_pressed(controller,L_CBUTTONS|L_JPAD); + uVar3 = joyGetButtonsPressedThisFrame(controller,L_CBUTTONS|L_JPAD); if (uVar3 != 0) { if (0 < *piVar8) { *piVar8 = *piVar8 + -1; } goto LAB_7f012164; } - uVar3 = get_controller_buttons_pressed(controller,R_CBUTTONS|R_JPAD); + uVar3 = joyGetButtonsPressedThisFrame(controller,R_CBUTTONS|R_JPAD); if (uVar3 != 0) { if (*piVar8 < (int)(num_chars_selectable_mp - 1)) { *piVar8 = *piVar8 + 1; } goto LAB_7f012164; } - uVar3 = get_controller_buttons_pressed(controller,START_BUTTON|Z_TRIG|A_BUTTON); + uVar3 = joyGetButtonsPressedThisFrame(controller,START_BUTTON|Z_TRIG|A_BUTTON); if (uVar3 == 0) { - iVar6 = get_controller_3dstick_L_R(controller,-2,1); + iVar6 = joyGetStickXInRange(controller,-2,1); if (iVar6 < 1) { - iVar6 = get_controller_3dstick_L_R(controller,-2,1); + iVar6 = joyGetStickXInRange(controller,-2,1); if (iVar6 < -1) { if (*piVar9 == 0) { if (0 < *piVar8) { @@ -15197,7 +15466,7 @@ LAB_7f012164: *(int *)((int)&player_1_char + iVar10) = *piVar8; *(s32 *)((int)&size_mp_select_image_player1 + iVar10) = 1; *pBVar11 = TRUE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); iVar6 = *piVar12; } } @@ -15263,17 +15532,17 @@ glabel interface_menu0F_mpcharsel /* 046A34 7F011F04 3C014270 */ li $at, 0x42700000 # 60.000000 /* 046A38 7F011F08 44816000 */ mtc1 $at, $f12 /* 046A3C 7F011F0C AFA2004C */ sw $v0, 0x4c($sp) -/* 046A40 7F011F10 0C001151 */ jal setvideo_far +/* 046A40 7F011F10 0C001151 */ jal viSetFovY /* 046A44 7F011F14 AFA00044 */ sw $zero, 0x44($sp) /* 046A48 7F011F18 3C018005 */ lui $at, %hi(D_80051A88) -/* 046A4C 7F011F1C 0C001164 */ jal set_page_aspect +/* 046A4C 7F011F1C 0C001164 */ jal viSetAspect /* 046A50 7F011F20 C42C1A88 */ lwc1 $f12, %lo(D_80051A88)($at) /* 046A54 7F011F24 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 046A58 7F011F28 44816000 */ mtc1 $at, $f12 /* 046A5C 7F011F2C 3C018005 */ lui $at, %hi(D_80051A8C) -/* 046A60 7F011F30 0C001194 */ jal set_page_height +/* 046A60 7F011F30 0C001194 */ jal viSetZRange /* 046A64 7F011F34 C42E1A8C */ lwc1 $f14, %lo(D_80051A8C)($at) -/* 046A68 7F011F38 0C00114D */ jal set_video2_settings_offset_24 +/* 046A68 7F011F38 0C00114D */ jal viSetUseZBuf /* 046A6C 7F011F3C 00002025 */ move $a0, $zero /* 046A70 7F011F40 8FAE004C */ lw $t6, 0x4c($sp) /* 046A74 7F011F44 0000B025 */ move $s6, $zero @@ -15283,10 +15552,10 @@ glabel interface_menu0F_mpcharsel /* 046A84 7F011F54 3C158007 */ lui $s5, %hi(mp_char_prev_select_player) /* 046A88 7F011F58 3C118007 */ lui $s1, %hi(mp_char_cur_select_player) /* 046A8C 7F011F5C 3C128007 */ lui $s2, %hi(dword_CODE_bss_80069730) -/* 046A90 7F011F60 3C1E8006 */ lui $fp, %hi(ptr_sfx_buf) +/* 046A90 7F011F60 3C1E8006 */ lui $fp, %hi(g_musicSfxBufferPtr) /* 046A94 7F011F64 3C178007 */ lui $s7, %hi(size_mp_select_image_player1) /* 046A98 7F011F68 26F79750 */ addiu $s7, %lo(size_mp_select_image_player1) # addiu $s7, $s7, -0x68b0 -/* 046A9C 7F011F6C 27DE3720 */ addiu $fp, %lo(ptr_sfx_buf) # addiu $fp, $fp, 0x3720 +/* 046A9C 7F011F6C 27DE3720 */ addiu $fp, %lo(g_musicSfxBufferPtr) # addiu $fp, $fp, 0x3720 /* 046AA0 7F011F70 26529730 */ addiu $s2, %lo(dword_CODE_bss_80069730) # addiu $s2, $s2, -0x68d0 /* 046AA4 7F011F74 26319710 */ addiu $s1, %lo(mp_char_cur_select_player) # addiu $s1, $s1, -0x68f0 /* 046AA8 7F011F78 26B59720 */ addiu $s5, %lo(mp_char_prev_select_player) # addiu $s5, $s5, -0x68e0 @@ -15309,7 +15578,7 @@ glabel interface_menu0F_mpcharsel /* 046AE8 7F011FB8 00000000 */ nop /* 046AEC 7F011FBC AC480000 */ sw $t0, ($v0) .L7F011FC0: -/* 046AF0 7F011FC0 0C0030EB */ jal get_controller_buttons_pressed +/* 046AF0 7F011FC0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 046AF4 7F011FC4 24054000 */ li $a1, 16384 /* 046AF8 7F011FC8 10400005 */ beqz $v0, .L7F011FE0 /* 046AFC 7F011FCC 240500C7 */ li $a1, 199 @@ -15335,7 +15604,7 @@ glabel interface_menu0F_mpcharsel /* 046B44 7F012014 00046603 */ sra $t4, $a0, 0x18 /* 046B48 7F012018 01802025 */ move $a0, $t4 /* 046B4C 7F01201C 01608025 */ move $s0, $t3 -/* 046B50 7F012020 0C0030EB */ jal get_controller_buttons_pressed +/* 046B50 7F012020 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 046B54 7F012024 24050202 */ li $a1, 514 /* 046B58 7F012028 10400006 */ beqz $v0, .L7F012044 /* 046B5C 7F01202C 00102600 */ sll $a0, $s0, 0x18 @@ -15347,7 +15616,7 @@ glabel interface_menu0F_mpcharsel .L7F012044: /* 046B74 7F012044 00047603 */ sra $t6, $a0, 0x18 /* 046B78 7F012048 01C02025 */ move $a0, $t6 -/* 046B7C 7F01204C 0C0030EB */ jal get_controller_buttons_pressed +/* 046B7C 7F01204C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 046B80 7F012050 24050101 */ li $a1, 257 /* 046B84 7F012054 1040000A */ beqz $v0, .L7F012080 /* 046B88 7F012058 00102600 */ sll $a0, $s0, 0x18 @@ -15363,7 +15632,7 @@ glabel interface_menu0F_mpcharsel .L7F012080: /* 046BB0 7F012080 00044603 */ sra $t0, $a0, 0x18 /* 046BB4 7F012084 01002025 */ move $a0, $t0 -/* 046BB8 7F012088 0C0030EB */ jal get_controller_buttons_pressed +/* 046BB8 7F012088 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 046BBC 7F01208C 3405B000 */ li $a1, 45056 /* 046BC0 7F012090 10400012 */ beqz $v0, .L7F0120DC /* 046BC4 7F012094 00102600 */ sll $a0, $s0, 0x18 @@ -15388,7 +15657,7 @@ glabel interface_menu0F_mpcharsel /* 046C0C 7F0120DC 00045E03 */ sra $t3, $a0, 0x18 /* 046C10 7F0120E0 01602025 */ move $a0, $t3 /* 046C14 7F0120E4 2405FFFE */ li $a1, -2 -/* 046C18 7F0120E8 0C00312D */ jal get_controller_3dstick_L_R +/* 046C18 7F0120E8 0C00312D */ jal joyGetStickXInRange /* 046C1C 7F0120EC 24060001 */ li $a2, 1 /* 046C20 7F0120F0 1840000D */ blez $v0, .L7F012128 /* 046C24 7F0120F4 00102600 */ sll $a0, $s0, 0x18 @@ -15408,7 +15677,7 @@ glabel interface_menu0F_mpcharsel /* 046C58 7F012128 0004C603 */ sra $t8, $a0, 0x18 /* 046C5C 7F01212C 03002025 */ move $a0, $t8 /* 046C60 7F012130 2405FFFE */ li $a1, -2 -/* 046C64 7F012134 0C00312D */ jal get_controller_3dstick_L_R +/* 046C64 7F012134 0C00312D */ jal joyGetStickXInRange /* 046C68 7F012138 24060001 */ li $a2, 1 /* 046C6C 7F01213C 2841FFFF */ slti $at, $v0, -1 /* 046C70 7F012140 50200009 */ beql $at, $zero, .L7F012168 @@ -15609,9 +15878,9 @@ s32 sub_GAME_7F01231C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5 s32 phi_s2; s8 phi_v0; - spD4 = sub_GAME_7F0BD6E0(); - spD0 = sub_GAME_7F0BD6E0(); - spCC = sub_GAME_7F0BD6C4(0x10); + spD4 = dynAllocateMatrix(); + spD0 = dynAllocateMatrix(); + spCC = dynAllocate7F0BD6C4(0x10); arg0 = microcode_constructor(arg0); guOrtho(spD4, 0, 0x43dc0000, 0, 330.0f, 1.0f, 10.0f, 1.0f); guRotate(spD0, 0x40490fdb, 0x3f800000, 0.0f, 0.0f); @@ -15757,12 +16026,12 @@ glabel sub_GAME_7F01231C /* 046E78 7F012348 AFA400D8 */ sw $a0, 0xd8($sp) /* 046E7C 7F01234C AFA500DC */ sw $a1, 0xdc($sp) /* 046E80 7F012350 AFA600E0 */ sw $a2, 0xe0($sp) -/* 046E84 7F012354 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E84 7F012354 0FC2F5B8 */ jal dynAllocateMatrix /* 046E88 7F012358 AFA700E4 */ sw $a3, 0xe4($sp) -/* 046E8C 7F01235C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 046E8C 7F01235C 0FC2F5B8 */ jal dynAllocateMatrix /* 046E90 7F012360 AFA200D4 */ sw $v0, 0xd4($sp) /* 046E94 7F012364 AFA200D0 */ sw $v0, 0xd0($sp) -/* 046E98 7F012368 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 046E98 7F012368 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 046E9C 7F01236C 24040010 */ li $a0, 16 /* 046EA0 7F012370 AFA200CC */ sw $v0, 0xcc($sp) /* 046EA4 7F012374 0FC2B366 */ jal microcode_constructor @@ -16104,7 +16373,7 @@ void constructor_menu0F_mpcharsel(s32 arg0) s32 phi_v1_4; spE4 = get_selected_num_players(); - temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); temp_s1 = temp_ret; phi_v0 = temp_ret; phi_s1_7 = temp_s1; @@ -16173,8 +16442,8 @@ loop_4: temp_ret_3 = get_textptr_for_textID(TEXT(LTITLE, 0x55)); sub_GAME_7F0AE98C(&spBC, &spB8, temp_ret_3, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spB4 = (s32) ((((s32) phi_s4 >> 1) + phi_s2) - (spB8 >> 1)); - get_video2_settings_txtClipW(); - phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &spB4, &spB0, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &spB4, &spB0, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, viGetY(), 0, 0); } } temp_s6 = ((s32) phi_s4 >> 1) + phi_s2; @@ -16182,10 +16451,10 @@ loop_4: sub_GAME_7F0AE98C(&spA8, &spA4, temp_ret_4, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); sp9C = (s32) (phi_s7 + 0x78); spA0 = (s32) (temp_s6 - (spA4 >> 1)); - get_video2_settings_txtClipW(); + viGetX(); temp_s3 = phi_s2 + 0xd; temp_s4 = sp8C + -0xe; - temp_ret_5 = sub_GAME_7F01231C(write_text_at_abs_coord(microcode_constructor(phi_s1), &spA0, &sp9C, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, get_video2_settings_txtClipH(), 0, 0), temp_s3, temp_s4, temp_s6 - *sp74, (s32) *sp70, (s32) subroutine_arg0); + temp_ret_5 = sub_GAME_7F01231C(write_text_at_abs_coord(microcode_constructor(phi_s1), &spA0, &sp9C, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, viGetY(), 0, 0), temp_s3, temp_s4, temp_s6 - *sp74, (s32) *sp70, (s32) subroutine_arg0); temp_s1_3 = temp_ret_5; if ((*sp88 != 0) || (subroutine_arg0 != 0)) { @@ -16292,9 +16561,9 @@ glabel constructor_menu0F_mpcharsel /* 047300 7F0127D0 02202025 */ move $a0, $s1 /* 047304 7F0127D4 00002825 */ move $a1, $zero /* 047308 7F0127D8 00003025 */ move $a2, $zero -/* 04730C 7F0127DC 0C0011B4 */ jal set_setfillcolor +/* 04730C 7F0127DC 0C0011B4 */ jal viSetFillColor /* 047310 7F0127E0 00003825 */ move $a3, $zero -/* 047314 7F0127E4 0C000FBE */ jal insert_generic_fillrect +/* 047314 7F0127E4 0C000FBE */ jal viFillScreen /* 047318 7F0127E8 00402025 */ move $a0, $v0 /* 04731C 7F0127EC 0FC0357A */ jal sub_GAME_7F00D5E8 /* 047320 7F0127F0 00402025 */ move $a0, $v0 @@ -16449,11 +16718,11 @@ glabel constructor_menu0F_mpcharsel /* 047550 7F012A20 AFB000B0 */ sw $s0, 0xb0($sp) /* 047554 7F012A24 0FC2B366 */ jal microcode_constructor /* 047558 7F012A28 02202025 */ move $a0, $s1 -/* 04755C 7F012A2C 0C001107 */ jal get_video2_settings_txtClipW +/* 04755C 7F012A2C 0C001107 */ jal viGetX /* 047560 7F012A30 00408825 */ move $s1, $v0 /* 047564 7F012A34 00028400 */ sll $s0, $v0, 0x10 /* 047568 7F012A38 00104C03 */ sra $t1, $s0, 0x10 -/* 04756C 7F012A3C 0C00110B */ jal get_video2_settings_txtClipH +/* 04756C 7F012A3C 0C00110B */ jal viGetY /* 047570 7F012A40 01208025 */ move $s0, $t1 /* 047574 7F012A44 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 047578 7F012A48 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -16504,11 +16773,11 @@ glabel constructor_menu0F_mpcharsel /* 047628 7F012AF8 AFAC00A0 */ sw $t4, 0xa0($sp) /* 04762C 7F012AFC 0FC2B366 */ jal microcode_constructor /* 047630 7F012B00 02202025 */ move $a0, $s1 -/* 047634 7F012B04 0C001107 */ jal get_video2_settings_txtClipW +/* 047634 7F012B04 0C001107 */ jal viGetX /* 047638 7F012B08 00408825 */ move $s1, $v0 /* 04763C 7F012B0C 00028400 */ sll $s0, $v0, 0x10 /* 047640 7F012B10 00107403 */ sra $t6, $s0, 0x10 -/* 047644 7F012B14 0C00110B */ jal get_video2_settings_txtClipH +/* 047644 7F012B14 0C00110B */ jal viGetY /* 047648 7F012B18 01C08025 */ move $s0, $t6 /* 04764C 7F012B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 047650 7F012B20 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) @@ -16767,10 +17036,10 @@ void interface_menu10_mphandicap(void) s32 phi_fp_2; sp44 = get_selected_num_players(); - setvideo_far(0x42700000); - set_page_aspect(D_80051A90); - set_page_height(0x42c80000, D_80051A94); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051A90); + viSetZRange(0x42c80000, D_80051A94); + viSetUseZBuf(0); phi_fp = 0; if (sp44 > 0) { @@ -16781,17 +17050,17 @@ void interface_menu10_mphandicap(void) loop_2: if (*phi_s1 != 0) { - if (get_controller_buttons_pressed((s32) (phi_s3 << 0x18) >> 0x18, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame((s32) (phi_s3 << 0x18) >> 0x18, 0x4000) != 0) { *phi_s1 = 0; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } temp_t9 = (s32) (phi_s3 << 0x18) >> 0x18; if (*phi_s1 == 0) { temp_s2 = phi_s4 + &handicap_player1; - if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) < -1)) + if ((joyGetButtonsPressedThisFrame((s32) (temp_t9 << 0x18) >> 0x18, 0x202) == 0) && (joyGetStickXInRange((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) < -1)) { if ((*temp_s2 != 0) && (*temp_v0 > 0)) { @@ -16800,7 +17069,7 @@ block_10: } else { - if ((get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) > 0)) + if ((joyGetButtonsPressedThisFrame((s32) (temp_t9 << 0x18) >> 0x18, 0x101) == 0) && (joyGetStickXInRange((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) > 0)) { if ((*temp_s2 != 0) && (*temp_v0_2 < 0xa)) { @@ -16809,10 +17078,10 @@ block_15: } else { - if (get_controller_buttons_pressed((s32) (temp_t9 << 0x18) >> 0x18, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame((s32) (temp_t9 << 0x18) >> 0x18, 0xb000) != 0) { *phi_s1 = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } @@ -16834,7 +17103,7 @@ block_15: goto block_10; } } - if ((get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == 0)) + if ((joyGetStickXInRange((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == -1) || (joyGetStickXInRange((s32) (temp_t9 << 0x18) >> 0x18, -2, 1) == 0)) { *temp_s2 = 1; } @@ -16892,17 +17161,17 @@ glabel interface_menu10_mphandicap /* 047A24 7F012EF4 3C014270 */ li $at, 0x42700000 # 60.000000 /* 047A28 7F012EF8 44816000 */ mtc1 $at, $f12 /* 047A2C 7F012EFC AFA20044 */ sw $v0, 0x44($sp) -/* 047A30 7F012F00 0C001151 */ jal setvideo_far +/* 047A30 7F012F00 0C001151 */ jal viSetFovY /* 047A34 7F012F04 0000F025 */ move $fp, $zero /* 047A38 7F012F08 3C018005 */ lui $at, %hi(D_80051A90) -/* 047A3C 7F012F0C 0C001164 */ jal set_page_aspect +/* 047A3C 7F012F0C 0C001164 */ jal viSetAspect /* 047A40 7F012F10 C42C1A90 */ lwc1 $f12, %lo(D_80051A90)($at) /* 047A44 7F012F14 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 047A48 7F012F18 44816000 */ mtc1 $at, $f12 /* 047A4C 7F012F1C 3C018005 */ lui $at, %hi(D_80051A94) -/* 047A50 7F012F20 0C001194 */ jal set_page_height +/* 047A50 7F012F20 0C001194 */ jal viSetZRange /* 047A54 7F012F24 C42E1A94 */ lwc1 $f14, %lo(D_80051A94)($at) -/* 047A58 7F012F28 0C00114D */ jal set_video2_settings_offset_24 +/* 047A58 7F012F28 0C00114D */ jal viSetUseZBuf /* 047A5C 7F012F2C 00002025 */ move $a0, $zero /* 047A60 7F012F30 8FAE0044 */ lw $t6, 0x44($sp) /* 047A64 7F012F34 00009825 */ move $s3, $zero @@ -16910,8 +17179,8 @@ glabel interface_menu10_mphandicap /* 047A6C 7F012F3C 19C0006F */ blez $t6, .L7F0130FC /* 047A70 7F012F40 3C118007 */ lui $s1, %hi(has_selected_char_player1) /* 047A74 7F012F44 3C168007 */ lui $s6, %hi(handicap_player1) -/* 047A78 7F012F48 3C158006 */ lui $s5, %hi(ptr_sfx_buf) -/* 047A7C 7F012F4C 26B53720 */ addiu $s5, %lo(ptr_sfx_buf) # addiu $s5, $s5, 0x3720 +/* 047A78 7F012F48 3C158006 */ lui $s5, %hi(g_musicSfxBufferPtr) +/* 047A7C 7F012F4C 26B53720 */ addiu $s5, %lo(g_musicSfxBufferPtr) # addiu $s5, $s5, 0x3720 /* 047A80 7F012F50 26D697A8 */ addiu $s6, %lo(handicap_player1) # addiu $s6, $s6, -0x6858 /* 047A84 7F012F54 26319740 */ addiu $s1, %lo(has_selected_char_player1) # addiu $s1, $s1, -0x68c0 /* 047A88 7F012F58 24170001 */ li $s7, 1 @@ -16921,7 +17190,7 @@ glabel interface_menu10_mphandicap /* 047A94 7F012F64 0004C603 */ sra $t8, $a0, 0x18 /* 047A98 7F012F68 11E00009 */ beqz $t7, .L7F012F90 /* 047A9C 7F012F6C 03002025 */ move $a0, $t8 -/* 047AA0 7F012F70 0C0030EB */ jal get_controller_buttons_pressed +/* 047AA0 7F012F70 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 047AA4 7F012F74 24054000 */ li $a1, 16384 /* 047AA8 7F012F78 10400005 */ beqz $v0, .L7F012F90 /* 047AAC 7F012F7C 240500C7 */ li $a1, 199 @@ -16941,14 +17210,14 @@ glabel interface_menu10_mphandicap /* 047AE0 7F012FB0 00044603 */ sra $t0, $a0, 0x18 /* 047AE4 7F012FB4 01002025 */ move $a0, $t0 /* 047AE8 7F012FB8 02899021 */ addu $s2, $s4, $t1 -/* 047AEC 7F012FBC 0C0030EB */ jal get_controller_buttons_pressed +/* 047AEC 7F012FBC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 047AF0 7F012FC0 24050202 */ li $a1, 514 /* 047AF4 7F012FC4 1440000B */ bnez $v0, .L7F012FF4 /* 047AF8 7F012FC8 00102600 */ sll $a0, $s0, 0x18 /* 047AFC 7F012FCC 00045603 */ sra $t2, $a0, 0x18 /* 047B00 7F012FD0 01402025 */ move $a0, $t2 /* 047B04 7F012FD4 2405FFFE */ li $a1, -2 -/* 047B08 7F012FD8 0C00312D */ jal get_controller_3dstick_L_R +/* 047B08 7F012FD8 0C00312D */ jal joyGetStickXInRange /* 047B0C 7F012FDC 02E03025 */ move $a2, $s7 /* 047B10 7F012FE0 2841FFFF */ slti $at, $v0, -1 /* 047B14 7F012FE4 10200009 */ beqz $at, .L7F01300C @@ -16965,14 +17234,14 @@ glabel interface_menu10_mphandicap .L7F01300C: /* 047B3C 7F01300C 00046E03 */ sra $t5, $a0, 0x18 /* 047B40 7F013010 01A02025 */ move $a0, $t5 -/* 047B44 7F013014 0C0030EB */ jal get_controller_buttons_pressed +/* 047B44 7F013014 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 047B48 7F013018 24050101 */ li $a1, 257 /* 047B4C 7F01301C 1440000A */ bnez $v0, .L7F013048 /* 047B50 7F013020 00102600 */ sll $a0, $s0, 0x18 /* 047B54 7F013024 00047603 */ sra $t6, $a0, 0x18 /* 047B58 7F013028 01C02025 */ move $a0, $t6 /* 047B5C 7F01302C 2405FFFE */ li $a1, -2 -/* 047B60 7F013030 0C00312D */ jal get_controller_3dstick_L_R +/* 047B60 7F013030 0C00312D */ jal joyGetStickXInRange /* 047B64 7F013034 02E03025 */ move $a2, $s7 /* 047B68 7F013038 1840000A */ blez $v0, .L7F013064 /* 047B6C 7F01303C 00102600 */ sll $a0, $s0, 0x18 @@ -16989,7 +17258,7 @@ glabel interface_menu10_mphandicap .L7F013064: /* 047B94 7F013064 0004CE03 */ sra $t9, $a0, 0x18 /* 047B98 7F013068 03202025 */ move $a0, $t9 -/* 047B9C 7F01306C 0C0030EB */ jal get_controller_buttons_pressed +/* 047B9C 7F01306C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 047BA0 7F013070 3405B000 */ li $a1, 45056 /* 047BA4 7F013074 10400005 */ beqz $v0, .L7F01308C /* 047BA8 7F013078 240500C7 */ li $a1, 199 @@ -17002,7 +17271,7 @@ glabel interface_menu10_mphandicap /* 047BC0 7F013090 00044603 */ sra $t0, $a0, 0x18 /* 047BC4 7F013094 01002025 */ move $a0, $t0 /* 047BC8 7F013098 2405FFFE */ li $a1, -2 -/* 047BCC 7F01309C 0C00312D */ jal get_controller_3dstick_L_R +/* 047BCC 7F01309C 0C00312D */ jal joyGetStickXInRange /* 047BD0 7F0130A0 02E03025 */ move $a2, $s7 /* 047BD4 7F0130A4 2401FFFF */ li $at, -1 /* 047BD8 7F0130A8 10410008 */ beq $v0, $at, .L7F0130CC @@ -17010,7 +17279,7 @@ glabel interface_menu10_mphandicap /* 047BE0 7F0130B0 00044E03 */ sra $t1, $a0, 0x18 /* 047BE4 7F0130B4 01202025 */ move $a0, $t1 /* 047BE8 7F0130B8 2405FFFE */ li $a1, -2 -/* 047BEC 7F0130BC 0C00312D */ jal get_controller_3dstick_L_R +/* 047BEC 7F0130BC 0C00312D */ jal joyGetStickXInRange /* 047BF0 7F0130C0 02E03025 */ move $a2, $s7 /* 047BF4 7F0130C4 54400005 */ bnezl $v0, .L7F0130DC /* 047BF8 7F0130C8 AE400000 */ sw $zero, ($s2) @@ -17102,7 +17371,7 @@ void constructor_menu10_mphandicap(s32 arg0) s32 phi_v1_2; spCC = get_selected_num_players(); - temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); temp_s1 = temp_ret; phi_v0 = temp_ret; phi_s1_2 = temp_s1; @@ -17165,17 +17434,17 @@ loop_4: sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); - get_video2_settings_txtClipW(); - phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, viGetY(), 0, 0); } temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 8))->unk-4B68); sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); - get_video2_settings_txtClipW(); + viGetX(); temp_s6 = phi_s6 + 1; sp70 = (void *) (sp70 + 4); - temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, viGetY(), 0, 0); sp74 = (void *) (sp74 + 4); phi_s6 = temp_s6; phi_v0 = temp_v0; @@ -17209,9 +17478,9 @@ glabel constructor_menu10_mphandicap /* 047CE8 7F0131B8 02202025 */ move $a0, $s1 /* 047CEC 7F0131BC 00002825 */ move $a1, $zero /* 047CF0 7F0131C0 00003025 */ move $a2, $zero -/* 047CF4 7F0131C4 0C0011B4 */ jal set_setfillcolor +/* 047CF4 7F0131C4 0C0011B4 */ jal viSetFillColor /* 047CF8 7F0131C8 00003825 */ move $a3, $zero -/* 047CFC 7F0131CC 0C000FBE */ jal insert_generic_fillrect +/* 047CFC 7F0131CC 0C000FBE */ jal viFillScreen /* 047D00 7F0131D0 00402025 */ move $a0, $v0 /* 047D04 7F0131D4 0FC0357A */ jal sub_GAME_7F00D5E8 /* 047D08 7F0131D8 00402025 */ move $a0, $v0 @@ -17356,11 +17625,11 @@ glabel constructor_menu10_mphandicap /* 047F10 7F0133E0 AFAA0098 */ sw $t2, 0x98($sp) /* 047F14 7F0133E4 0FC2B366 */ jal microcode_constructor /* 047F18 7F0133E8 02202025 */ move $a0, $s1 -/* 047F1C 7F0133EC 0C001107 */ jal get_video2_settings_txtClipW +/* 047F1C 7F0133EC 0C001107 */ jal viGetX /* 047F20 7F0133F0 00408825 */ move $s1, $v0 /* 047F24 7F0133F4 00028400 */ sll $s0, $v0, 0x10 /* 047F28 7F0133F8 0010CC03 */ sra $t9, $s0, 0x10 -/* 047F2C 7F0133FC 0C00110B */ jal get_video2_settings_txtClipH +/* 047F2C 7F0133FC 0C00110B */ jal viGetY /* 047F30 7F013400 03208025 */ move $s0, $t9 /* 047F34 7F013404 8EED0000 */ lw $t5, ($s7) /* 047F38 7F013408 8FCC0000 */ lw $t4, ($fp) @@ -17409,11 +17678,11 @@ glabel constructor_menu10_mphandicap /* 047FE0 7F0134B0 AFAC0088 */ sw $t4, 0x88($sp) /* 047FE4 7F0134B4 0FC2B366 */ jal microcode_constructor /* 047FE8 7F0134B8 AFB80084 */ sw $t8, 0x84($sp) -/* 047FEC 7F0134BC 0C001107 */ jal get_video2_settings_txtClipW +/* 047FEC 7F0134BC 0C001107 */ jal viGetX /* 047FF0 7F0134C0 00408825 */ move $s1, $v0 /* 047FF4 7F0134C4 00028400 */ sll $s0, $v0, 0x10 /* 047FF8 7F0134C8 00104C03 */ sra $t1, $s0, 0x10 -/* 047FFC 7F0134CC 0C00110B */ jal get_video2_settings_txtClipH +/* 047FFC 7F0134CC 0C00110B */ jal viGetY /* 048000 7F0134D0 01208025 */ move $s0, $t1 /* 048004 7F0134D4 8EEA0000 */ lw $t2, ($s7) /* 048008 7F0134D8 8FD90000 */ lw $t9, ($fp) @@ -17506,10 +17775,10 @@ void interface_menu11_mpcontrols(void) temp_s6 = get_selected_num_players(); sp44 = 0; - setvideo_far(0x42700000); - set_page_aspect(D_80051A98); - set_page_height(0x42c80000, D_80051A9C); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051A98); + viSetZRange(0x42c80000, D_80051A9C); + viSetUseZBuf(0); if (temp_s6 > 0) { phi_s2 = &has_selected_char_player1; @@ -17518,17 +17787,17 @@ void interface_menu11_mpcontrols(void) loop_2: if (*phi_s2 != 0) { - if (get_controller_buttons_pressed((s32) (phi_s1 << 0x18) >> 0x18, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame((s32) (phi_s1 << 0x18) >> 0x18, 0x4000) != 0) { *phi_s2 = 0; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } temp_t8 = (s32) (phi_s1 << 0x18) >> 0x18; if (*phi_s2 == 0) { temp_s4 = phi_s5 + &handicap_player1; - if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x202) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) < -1)) + if ((joyGetButtonsPressedThisFrame((s32) (temp_t8 << 0x18) >> 0x18, 0x202) == 0) && (joyGetStickXInRange((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) < -1)) { if ((*temp_s4 != 0) && (*temp_v1 > 0)) { @@ -17557,7 +17826,7 @@ block_10: } else { - if ((get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0x101) == 0) && (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) > 0)) + if ((joyGetButtonsPressedThisFrame((s32) (temp_t8 << 0x18) >> 0x18, 0x101) == 0) && (joyGetStickXInRange((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) > 0)) { if ((*temp_s4 != 0) && (temp_s6 == 2)) { @@ -17590,10 +17859,10 @@ block_31: } else { - if (get_controller_buttons_pressed((s32) (temp_t8 << 0x18) >> 0x18, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame((s32) (temp_t8 << 0x18) >> 0x18, 0xb000) != 0) { *phi_s2 = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } @@ -17626,7 +17895,7 @@ block_31: goto block_10; } } - if ((get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == -1) || (get_controller_3dstick_L_R((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == 0)) + if ((joyGetStickXInRange((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == -1) || (joyGetStickXInRange((s32) (temp_t8 << 0x18) >> 0x18, -2, 1) == 0)) { *temp_s4 = 1; } @@ -17684,17 +17953,17 @@ glabel interface_menu11_mpcontrols /* 048168 7F013638 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04816C 7F01363C 44816000 */ mtc1 $at, $f12 /* 048170 7F013640 0040B025 */ move $s6, $v0 -/* 048174 7F013644 0C001151 */ jal setvideo_far +/* 048174 7F013644 0C001151 */ jal viSetFovY /* 048178 7F013648 AFA00044 */ sw $zero, 0x44($sp) /* 04817C 7F01364C 3C018005 */ lui $at, %hi(D_80051A98) -/* 048180 7F013650 0C001164 */ jal set_page_aspect +/* 048180 7F013650 0C001164 */ jal viSetAspect /* 048184 7F013654 C42C1A98 */ lwc1 $f12, %lo(D_80051A98)($at) /* 048188 7F013658 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04818C 7F01365C 44816000 */ mtc1 $at, $f12 /* 048190 7F013660 3C018005 */ lui $at, %hi(D_80051A9C) -/* 048194 7F013664 0C001194 */ jal set_page_height +/* 048194 7F013664 0C001194 */ jal viSetZRange /* 048198 7F013668 C42E1A9C */ lwc1 $f14, %lo(D_80051A9C)($at) -/* 04819C 7F01366C 0C00114D */ jal set_video2_settings_offset_24 +/* 04819C 7F01366C 0C00114D */ jal viSetUseZBuf /* 0481A0 7F013670 00002025 */ move $a0, $zero /* 0481A4 7F013674 1AC000A2 */ blez $s6, .L7F013900 /* 0481A8 7F013678 00008825 */ move $s1, $zero @@ -17711,12 +17980,12 @@ glabel interface_menu11_mpcontrols /* 0481D0 7F0136A0 00047E03 */ sra $t7, $a0, 0x18 /* 0481D4 7F0136A4 11C0000A */ beqz $t6, .L7F0136D0 /* 0481D8 7F0136A8 01E02025 */ move $a0, $t7 -/* 0481DC 7F0136AC 0C0030EB */ jal get_controller_buttons_pressed +/* 0481DC 7F0136AC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0481E0 7F0136B0 24054000 */ li $a1, 16384 /* 0481E4 7F0136B4 10400006 */ beqz $v0, .L7F0136D0 -/* 0481E8 7F0136B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0481E8 7F0136B8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0481EC 7F0136BC AE400000 */ sw $zero, ($s2) -/* 0481F0 7F0136C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0481F0 7F0136C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0481F4 7F0136C4 240500C7 */ li $a1, 199 /* 0481F8 7F0136C8 0C002382 */ jal play_sfx_a1 /* 0481FC 7F0136CC 00003025 */ move $a2, $zero @@ -17732,14 +18001,14 @@ glabel interface_menu11_mpcontrols /* 048220 7F0136F0 0004CE03 */ sra $t9, $a0, 0x18 /* 048224 7F0136F4 03202025 */ move $a0, $t9 /* 048228 7F0136F8 02A8A021 */ addu $s4, $s5, $t0 -/* 04822C 7F0136FC 0C0030EB */ jal get_controller_buttons_pressed +/* 04822C 7F0136FC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 048230 7F013700 24050202 */ li $a1, 514 /* 048234 7F013704 1440000B */ bnez $v0, .L7F013734 /* 048238 7F013708 00102600 */ sll $a0, $s0, 0x18 /* 04823C 7F01370C 00044E03 */ sra $t1, $a0, 0x18 /* 048240 7F013710 01202025 */ move $a0, $t1 /* 048244 7F013714 2405FFFE */ li $a1, -2 -/* 048248 7F013718 0C00312D */ jal get_controller_3dstick_L_R +/* 048248 7F013718 0C00312D */ jal joyGetStickXInRange /* 04824C 7F01371C 03C03025 */ move $a2, $fp /* 048250 7F013720 2841FFFF */ slti $at, $v0, -1 /* 048254 7F013724 10200020 */ beqz $at, .L7F0137A8 @@ -17781,14 +18050,14 @@ glabel interface_menu11_mpcontrols .L7F0137A8: /* 0482D8 7F0137A8 00047E03 */ sra $t7, $a0, 0x18 /* 0482DC 7F0137AC 01E02025 */ move $a0, $t7 -/* 0482E0 7F0137B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0482E0 7F0137B0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0482E4 7F0137B4 24050101 */ li $a1, 257 /* 0482E8 7F0137B8 1440000B */ bnez $v0, .L7F0137E8 /* 0482EC 7F0137BC 00102600 */ sll $a0, $s0, 0x18 /* 0482F0 7F0137C0 0004C603 */ sra $t8, $a0, 0x18 /* 0482F4 7F0137C4 03002025 */ move $a0, $t8 /* 0482F8 7F0137C8 2405FFFE */ li $a1, -2 -/* 0482FC 7F0137CC 0C00312D */ jal get_controller_3dstick_L_R +/* 0482FC 7F0137CC 0C00312D */ jal joyGetStickXInRange /* 048300 7F0137D0 03C03025 */ move $a2, $fp /* 048304 7F0137D4 18400022 */ blez $v0, .L7F013860 /* 048308 7F0137D8 00102600 */ sll $a0, $s0, 0x18 @@ -17833,12 +18102,12 @@ glabel interface_menu11_mpcontrols /* 048390 7F013860 00046E03 */ sra $t5, $a0, 0x18 .L7F013864: /* 048394 7F013864 01A02025 */ move $a0, $t5 -/* 048398 7F013868 0C0030EB */ jal get_controller_buttons_pressed +/* 048398 7F013868 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04839C 7F01386C 3405B000 */ li $a1, 45056 /* 0483A0 7F013870 10400006 */ beqz $v0, .L7F01388C -/* 0483A4 7F013874 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0483A4 7F013874 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0483A8 7F013878 AE5E0000 */ sw $fp, ($s2) -/* 0483AC 7F01387C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0483AC 7F01387C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0483B0 7F013880 240500C7 */ li $a1, 199 /* 0483B4 7F013884 0C002382 */ jal play_sfx_a1 /* 0483B8 7F013888 00003025 */ move $a2, $zero @@ -17848,7 +18117,7 @@ glabel interface_menu11_mpcontrols /* 0483C0 7F013890 00047603 */ sra $t6, $a0, 0x18 /* 0483C4 7F013894 01C02025 */ move $a0, $t6 /* 0483C8 7F013898 2405FFFE */ li $a1, -2 -/* 0483CC 7F01389C 0C00312D */ jal get_controller_3dstick_L_R +/* 0483CC 7F01389C 0C00312D */ jal joyGetStickXInRange /* 0483D0 7F0138A0 03C03025 */ move $a2, $fp /* 0483D4 7F0138A4 2401FFFF */ li $at, -1 /* 0483D8 7F0138A8 10410008 */ beq $v0, $at, .L7F0138CC @@ -17856,7 +18125,7 @@ glabel interface_menu11_mpcontrols /* 0483E0 7F0138B0 00047E03 */ sra $t7, $a0, 0x18 /* 0483E4 7F0138B4 01E02025 */ move $a0, $t7 /* 0483E8 7F0138B8 2405FFFE */ li $a1, -2 -/* 0483EC 7F0138BC 0C00312D */ jal get_controller_3dstick_L_R +/* 0483EC 7F0138BC 0C00312D */ jal joyGetStickXInRange /* 0483F0 7F0138C0 03C03025 */ move $a2, $fp /* 0483F4 7F0138C4 54400005 */ bnezl $v0, .L7F0138DC /* 0483F8 7F0138C8 AE800000 */ sw $zero, ($s4) @@ -17938,17 +18207,17 @@ glabel interface_menu11_mpcontrols /* 0481E8 7F013678 3C014270 */ li $at, 0x42700000 # 60.000000 /* 0481EC 7F01367C 44816000 */ mtc1 $at, $f12 /* 0481F0 7F013680 0040B825 */ move $s7, $v0 -/* 0481F4 7F013684 0C001151 */ jal setvideo_far +/* 0481F4 7F013684 0C001151 */ jal viSetFovY /* 0481F8 7F013688 AFA00054 */ sw $zero, 0x54($sp) /* 0481FC 7F01368C 3C018005 */ lui $at, %hi(D_80051A98) # $at, 0x8005 -/* 048200 7F013690 0C001164 */ jal set_page_aspect +/* 048200 7F013690 0C001164 */ jal viSetAspect /* 048204 7F013694 C42C1AC8 */ lwc1 $f12, %lo(D_80051A98)($at) /* 048208 7F013698 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04820C 7F01369C 44816000 */ mtc1 $at, $f12 /* 048210 7F0136A0 3C018005 */ lui $at, %hi(D_80051A9C) # $at, 0x8005 -/* 048214 7F0136A4 0C001194 */ jal set_page_height +/* 048214 7F0136A4 0C001194 */ jal viSetZRange /* 048218 7F0136A8 C42E1ACC */ lwc1 $f14, %lo(D_80051A9C)($at) -/* 04821C 7F0136AC 0C00114D */ jal set_video2_settings_offset_24 +/* 04821C 7F0136AC 0C00114D */ jal viSetUseZBuf /* 048220 7F0136B0 00002025 */ move $a0, $zero /* 048224 7F0136B4 1AE000BE */ blez $s7, .L7F0139B0 /* 048228 7F0136B8 00009025 */ move $s2, $zero @@ -17965,12 +18234,12 @@ glabel interface_menu11_mpcontrols /* 048250 7F0136E0 00047E03 */ sra $t7, $a0, 0x18 /* 048254 7F0136E4 11C0000A */ beqz $t6, .L7F013710 /* 048258 7F0136E8 01E02025 */ move $a0, $t7 -/* 04825C 7F0136EC 0C003104 */ jal get_controller_buttons_pressed +/* 04825C 7F0136EC 0C003104 */ jal joyGetButtonsPressedThisFrame /* 048260 7F0136F0 24054000 */ li $a1, 16384 /* 048264 7F0136F4 10400006 */ beqz $v0, .L7F013710 -/* 048268 7F0136F8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 048268 7F0136F8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 04826C 7F0136FC AE600000 */ sw $zero, ($s3) -/* 048270 7F013700 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048270 7F013700 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 048274 7F013704 240500C7 */ li $a1, 199 /* 048278 7F013708 0C002386 */ jal play_sfx_a1 /* 04827C 7F01370C 00003025 */ move $a2, $zero @@ -17986,14 +18255,14 @@ glabel interface_menu11_mpcontrols /* 0482A0 7F013730 0004CE03 */ sra $t9, $a0, 0x18 /* 0482A4 7F013734 03202025 */ move $a0, $t9 /* 0482A8 7F013738 02C8A821 */ addu $s5, $s6, $t0 -/* 0482AC 7F01373C 0C003104 */ jal get_controller_buttons_pressed +/* 0482AC 7F01373C 0C003104 */ jal joyGetButtonsPressedThisFrame /* 0482B0 7F013740 24050202 */ li $a1, 514 /* 0482B4 7F013744 1440000B */ bnez $v0, .L7F013774 /* 0482B8 7F013748 00112600 */ sll $a0, $s1, 0x18 /* 0482BC 7F01374C 00044E03 */ sra $t1, $a0, 0x18 /* 0482C0 7F013750 01202025 */ move $a0, $t1 /* 0482C4 7F013754 2405FFFE */ li $a1, -2 -/* 0482C8 7F013758 0C003146 */ jal get_controller_3dstick_L_R +/* 0482C8 7F013758 0C003146 */ jal joyGetStickXInRange /* 0482CC 7F01375C 24060001 */ li $a2, 1 /* 0482D0 7F013760 2841FFFF */ slti $at, $v0, -1 /* 0482D4 7F013764 1020002C */ beqz $at, .L7F013818 @@ -18009,7 +18278,7 @@ glabel interface_menu11_mpcontrols /* 0482F8 7F013788 24010001 */ li $at, 1 /* 0482FC 7F01378C 5641000E */ bnel $s2, $at, .L7F0137C8 /* 048300 7F013790 8C6E0000 */ lw $t6, ($v1) -/* 048304 7F013794 0C002E82 */ jal get_attached_controller_count +/* 048304 7F013794 0C002E82 */ jal joyGetControllerCount /* 048308 7F013798 AFA30040 */ sw $v1, 0x40($sp) /* 04830C 7F01379C 14540009 */ bne $v0, $s4, .L7F0137C4 /* 048310 7F0137A0 8FA30040 */ lw $v1, 0x40($sp) @@ -18031,7 +18300,7 @@ glabel interface_menu11_mpcontrols /* 048344 7F0137D4 00000000 */ nop /* 048348 7F0137D8 1640004B */ bnez $s2, .L7F013908 /* 04834C 7F0137DC 00000000 */ nop -/* 048350 7F0137E0 0C002E82 */ jal get_attached_controller_count +/* 048350 7F0137E0 0C002E82 */ jal joyGetControllerCount /* 048354 7F0137E4 00000000 */ nop /* 048358 7F0137E8 14540047 */ bne $v0, $s4, .L7F013908 /* 04835C 7F0137EC 00000000 */ nop @@ -18048,14 +18317,14 @@ glabel interface_menu11_mpcontrols .L7F013818: /* 048388 7F013818 00044603 */ sra $t0, $a0, 0x18 /* 04838C 7F01381C 01002025 */ move $a0, $t0 -/* 048390 7F013820 0C003104 */ jal get_controller_buttons_pressed +/* 048390 7F013820 0C003104 */ jal joyGetButtonsPressedThisFrame /* 048394 7F013824 24050101 */ li $a1, 257 /* 048398 7F013828 1440000B */ bnez $v0, .L7F013858 /* 04839C 7F01382C 00112600 */ sll $a0, $s1, 0x18 /* 0483A0 7F013830 00044E03 */ sra $t1, $a0, 0x18 /* 0483A4 7F013834 01202025 */ move $a0, $t1 /* 0483A8 7F013838 2405FFFE */ li $a1, -2 -/* 0483AC 7F01383C 0C003146 */ jal get_controller_3dstick_L_R +/* 0483AC 7F01383C 0C003146 */ jal joyGetStickXInRange /* 0483B0 7F013840 24060001 */ li $a2, 1 /* 0483B4 7F013844 18400024 */ blez $v0, .L7F0138D8 /* 0483B8 7F013848 00112600 */ sll $a0, $s1, 0x18 @@ -18067,7 +18336,7 @@ glabel interface_menu11_mpcontrols /* 0483CC 7F01385C 02161821 */ addu $v1, $s0, $s6 /* 0483D0 7F013860 56400006 */ bnezl $s2, .L7F01387C /* 0483D4 7F013864 8C620000 */ lw $v0, ($v1) -/* 0483D8 7F013868 0C002E82 */ jal get_attached_controller_count +/* 0483D8 7F013868 0C002E82 */ jal joyGetControllerCount /* 0483DC 7F01386C AFA30040 */ sw $v1, 0x40($sp) /* 0483E0 7F013870 10540005 */ beq $v0, $s4, .L7F013888 /* 0483E4 7F013874 8FA30040 */ lw $v1, 0x40($sp) @@ -18103,18 +18372,18 @@ glabel interface_menu11_mpcontrols /* 048448 7F0138D8 00047E03 */ sra $t7, $a0, 0x18 .L7F0138DC: /* 04844C 7F0138DC 01E02025 */ move $a0, $t7 -/* 048450 7F0138E0 0C003104 */ jal get_controller_buttons_pressed +/* 048450 7F0138E0 0C003104 */ jal joyGetButtonsPressedThisFrame /* 048454 7F0138E4 3405B000 */ li $a1, 45056 /* 048458 7F0138E8 10400007 */ beqz $v0, .L7F013908 /* 04845C 7F0138EC 24180001 */ li $t8, 1 /* 048460 7F0138F0 AE780000 */ sw $t8, ($s3) -/* 048464 7F0138F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 -/* 048468 7F0138F8 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048464 7F0138F4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 +/* 048468 7F0138F8 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04846C 7F0138FC 240500C7 */ li $a1, 199 /* 048470 7F013900 0C002386 */ jal play_sfx_a1 /* 048474 7F013904 00003025 */ move $a2, $zero .L7F013908: -/* 048478 7F013908 0C002E82 */ jal get_attached_controller_count +/* 048478 7F013908 0C002E82 */ jal joyGetControllerCount /* 04847C 7F01390C 00000000 */ nop /* 048480 7F013910 1054000B */ beq $v0, $s4, .L7F013940 /* 048484 7F013914 00112600 */ sll $a0, $s1, 0x18 @@ -18134,7 +18403,7 @@ glabel interface_menu11_mpcontrols .L7F013944: /* 0484B4 7F013944 01202025 */ move $a0, $t1 /* 0484B8 7F013948 2405FFFE */ li $a1, -2 -/* 0484BC 7F01394C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484BC 7F01394C 0C003146 */ jal joyGetStickXInRange /* 0484C0 7F013950 24060001 */ li $a2, 1 /* 0484C4 7F013954 2401FFFF */ li $at, -1 /* 0484C8 7F013958 10410007 */ beq $v0, $at, .L7F013978 @@ -18142,7 +18411,7 @@ glabel interface_menu11_mpcontrols /* 0484D0 7F013960 00045603 */ sra $t2, $a0, 0x18 /* 0484D4 7F013964 01402025 */ move $a0, $t2 /* 0484D8 7F013968 2405FFFE */ li $a1, -2 -/* 0484DC 7F01396C 0C003146 */ jal get_controller_3dstick_L_R +/* 0484DC 7F01396C 0C003146 */ jal joyGetStickXInRange /* 0484E0 7F013970 24060001 */ li $a2, 1 /* 0484E4 7F013974 14400004 */ bnez $v0, .L7F013988 .L7F013978: @@ -18198,6 +18467,260 @@ glabel interface_menu11_mpcontrols /* 048598 7F013A28 03E00008 */ jr $ra /* 04859C 7F013A2C 27BD0060 */ addiu $sp, $sp, 0x60 +) +#endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80051A98 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051A9C +.word 0x461C4000 /*10000.0;*/ + +.text +glabel interface_menu11_mpcontrols +/* 048138 7F013608 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 04813C 7F01360C AFBF003C */ sw $ra, 0x3c($sp) +/* 048140 7F013610 AFBE0038 */ sw $fp, 0x38($sp) +/* 048144 7F013614 AFB70034 */ sw $s7, 0x34($sp) +/* 048148 7F013618 AFB60030 */ sw $s6, 0x30($sp) +/* 04814C 7F01361C AFB5002C */ sw $s5, 0x2c($sp) +/* 048150 7F013620 AFB40028 */ sw $s4, 0x28($sp) +/* 048154 7F013624 AFB30024 */ sw $s3, 0x24($sp) +/* 048158 7F013628 AFB20020 */ sw $s2, 0x20($sp) +/* 04815C 7F01362C AFB1001C */ sw $s1, 0x1c($sp) +/* 048160 7F013630 0FC040A4 */ jal get_selected_num_players +/* 048164 7F013634 AFB00018 */ sw $s0, 0x18($sp) +/* 048168 7F013638 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 04816C 7F01363C 44816000 */ mtc1 $at, $f12 +/* 048170 7F013640 0040B025 */ move $s6, $v0 +/* 048174 7F013644 0C001151 */ jal viSetFovY +/* 048178 7F013648 AFA00044 */ sw $zero, 0x44($sp) +/* 04817C 7F01364C 3C018005 */ lui $at, %hi(D_80051A98) +/* 048180 7F013650 0C001164 */ jal viSetAspect +/* 048184 7F013654 C42C1A98 */ lwc1 $f12, %lo(D_80051A98)($at) +/* 048188 7F013658 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04818C 7F01365C 44816000 */ mtc1 $at, $f12 +/* 048190 7F013660 3C018005 */ lui $at, %hi(D_80051A9C) +/* 048194 7F013664 0C001194 */ jal viSetZRange +/* 048198 7F013668 C42E1A9C */ lwc1 $f14, %lo(D_80051A9C)($at) +/* 04819C 7F01366C 0C00114D */ jal viSetUseZBuf +/* 0481A0 7F013670 00002025 */ move $a0, $zero +/* 0481A4 7F013674 1AC000A2 */ blez $s6, .L7F013900 +/* 0481A8 7F013678 00008825 */ move $s1, $zero +/* 0481AC 7F01367C 3C128007 */ lui $s2, %hi(has_selected_char_player1) +/* 0481B0 7F013680 3C138007 */ lui $s3, %hi(controlstyle_player) +/* 0481B4 7F013684 267397B8 */ addiu $s3, %lo(controlstyle_player) # addiu $s3, $s3, -0x6848 +/* 0481B8 7F013688 26529740 */ addiu $s2, %lo(has_selected_char_player1) # addiu $s2, $s2, -0x68c0 +/* 0481BC 7F01368C 0000A825 */ move $s5, $zero +/* 0481C0 7F013690 241E0001 */ li $fp, 1 +/* 0481C4 7F013694 24170002 */ li $s7, 2 +.L7F013698: +/* 0481C8 7F013698 8E4E0000 */ lw $t6, ($s2) +/* 0481CC 7F01369C 00112600 */ sll $a0, $s1, 0x18 +/* 0481D0 7F0136A0 00047E03 */ sra $t7, $a0, 0x18 +/* 0481D4 7F0136A4 11C0000A */ beqz $t6, .L7F0136D0 +/* 0481D8 7F0136A8 01E02025 */ move $a0, $t7 +/* 0481DC 7F0136AC 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0481E0 7F0136B0 24054000 */ li $a1, 16384 +/* 0481E4 7F0136B4 10400006 */ beqz $v0, .L7F0136D0 +/* 0481E8 7F0136B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0481EC 7F0136BC AE400000 */ sw $zero, ($s2) +/* 0481F0 7F0136C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0481F4 7F0136C4 240500C7 */ li $a1, 199 +/* 0481F8 7F0136C8 0C002382 */ jal play_sfx_a1 +/* 0481FC 7F0136CC 00003025 */ move $a2, $zero +.L7F0136D0: +/* 048200 7F0136D0 8E420000 */ lw $v0, ($s2) +/* 048204 7F0136D4 00118600 */ sll $s0, $s1, 0x18 +/* 048208 7F0136D8 0010C603 */ sra $t8, $s0, 0x18 +/* 04820C 7F0136DC 14400080 */ bnez $v0, .L7F0138E0 +/* 048210 7F0136E0 03008025 */ move $s0, $t8 +/* 048214 7F0136E4 00182600 */ sll $a0, $t8, 0x18 +/* 048218 7F0136E8 3C088007 */ lui $t0, %hi(dword_CODE_bss_80069760) +/* 04821C 7F0136EC 25089760 */ addiu $t0, $t0, %lo(dword_CODE_bss_80069760) +/* 048220 7F0136F0 0004CE03 */ sra $t9, $a0, 0x18 +/* 048224 7F0136F4 03202025 */ move $a0, $t9 +/* 048228 7F0136F8 02A8A021 */ addu $s4, $s5, $t0 +/* 04822C 7F0136FC 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 048230 7F013700 24050202 */ li $a1, 514 +/* 048234 7F013704 1440000B */ bnez $v0, .L7F013734 +/* 048238 7F013708 00102600 */ sll $a0, $s0, 0x18 +/* 04823C 7F01370C 00044E03 */ sra $t1, $a0, 0x18 +/* 048240 7F013710 01202025 */ move $a0, $t1 +/* 048244 7F013714 2405FFFE */ li $a1, -2 +/* 048248 7F013718 0C00312D */ jal joyGetStickXInRange +/* 04824C 7F01371C 03C03025 */ move $a2, $fp +/* 048250 7F013720 2841FFFF */ slti $at, $v0, -1 +/* 048254 7F013724 10200020 */ beqz $at, .L7F0137A8 +/* 048258 7F013728 00102600 */ sll $a0, $s0, 0x18 +/* 04825C 7F01372C 8E8A0000 */ lw $t2, ($s4) +/* 048260 7F013730 1140001D */ beqz $t2, .L7F0137A8 +.L7F013734: +/* 048264 7F013734 02751821 */ addu $v1, $s3, $s5 +/* 048268 7F013738 8C620000 */ lw $v0, ($v1) +/* 04826C 7F01373C 58400054 */ blezl $v0, .L7F013890 +/* 048270 7F013740 00102600 */ sll $a0, $s0, 0x18 +/* 048274 7F013744 16D70009 */ bne $s6, $s7, .L7F01376C +/* 048278 7F013748 244CFFFF */ addiu $t4, $v0, -1 +/* 04827C 7F01374C 563E0008 */ bnel $s1, $fp, .L7F013770 +/* 048280 7F013750 AC6C0000 */ sw $t4, ($v1) +/* 048284 7F013754 8E6B0000 */ lw $t3, ($s3) +/* 048288 7F013758 29610004 */ slti $at, $t3, 4 +/* 04828C 7F01375C 14200003 */ bnez $at, .L7F01376C +/* 048290 7F013760 28410005 */ slti $at, $v0, 5 +/* 048294 7F013764 14200002 */ bnez $at, .L7F013770 +/* 048298 7F013768 00000000 */ nop +.L7F01376C: +/* 04829C 7F01376C AC6C0000 */ sw $t4, ($v1) +.L7F013770: +/* 0482A0 7F013770 56D70047 */ bnel $s6, $s7, .L7F013890 +/* 0482A4 7F013774 00102600 */ sll $a0, $s0, 0x18 +/* 0482A8 7F013778 56200045 */ bnezl $s1, .L7F013890 +/* 0482AC 7F01377C 00102600 */ sll $a0, $s0, 0x18 +/* 0482B0 7F013780 8E6D0000 */ lw $t5, ($s3) +/* 0482B4 7F013784 29A10004 */ slti $at, $t5, 4 +/* 0482B8 7F013788 50200041 */ beql $at, $zero, .L7F013890 +/* 0482BC 7F01378C 00102600 */ sll $a0, $s0, 0x18 +/* 0482C0 7F013790 8E6E0004 */ lw $t6, 4($s3) +/* 0482C4 7F013794 29C10004 */ slti $at, $t6, 4 +/* 0482C8 7F013798 5420003D */ bnezl $at, .L7F013890 +/* 0482CC 7F01379C 00102600 */ sll $a0, $s0, 0x18 +/* 0482D0 7F0137A0 1000003A */ b .L7F01388C +/* 0482D4 7F0137A4 AE600004 */ sw $zero, 4($s3) +.L7F0137A8: +/* 0482D8 7F0137A8 00047E03 */ sra $t7, $a0, 0x18 +/* 0482DC 7F0137AC 01E02025 */ move $a0, $t7 +/* 0482E0 7F0137B0 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 0482E4 7F0137B4 24050101 */ li $a1, 257 +/* 0482E8 7F0137B8 1440000B */ bnez $v0, .L7F0137E8 +/* 0482EC 7F0137BC 00102600 */ sll $a0, $s0, 0x18 +/* 0482F0 7F0137C0 0004C603 */ sra $t8, $a0, 0x18 +/* 0482F4 7F0137C4 03002025 */ move $a0, $t8 +/* 0482F8 7F0137C8 2405FFFE */ li $a1, -2 +/* 0482FC 7F0137CC 0C00312D */ jal joyGetStickXInRange +/* 048300 7F0137D0 03C03025 */ move $a2, $fp +/* 048304 7F0137D4 18400022 */ blez $v0, .L7F013860 +/* 048308 7F0137D8 00102600 */ sll $a0, $s0, 0x18 +/* 04830C 7F0137DC 8E990000 */ lw $t9, ($s4) +/* 048310 7F0137E0 53200020 */ beql $t9, $zero, .L7F013864 +/* 048314 7F0137E4 00046E03 */ sra $t5, $a0, 0x18 +.L7F0137E8: +/* 048318 7F0137E8 16D70003 */ bne $s6, $s7, .L7F0137F8 +/* 04831C 7F0137EC 02751821 */ addu $v1, $s3, $s5 +/* 048320 7F0137F0 52200006 */ beql $s1, $zero, .L7F01380C +/* 048324 7F0137F4 8C620000 */ lw $v0, ($v1) +.L7F0137F8: +/* 048328 7F0137F8 8C620000 */ lw $v0, ($v1) +/* 04832C 7F0137FC 28410004 */ slti $at, $v0, 4 +/* 048330 7F013800 54200013 */ bnezl $at, .L7F013850 +/* 048334 7F013804 28410003 */ slti $at, $v0, 3 +/* 048338 7F013808 8C620000 */ lw $v0, ($v1) +.L7F01380C: +/* 04833C 7F01380C 28410007 */ slti $at, $v0, 7 +/* 048340 7F013810 1020001E */ beqz $at, .L7F01388C +/* 048344 7F013814 24480001 */ addiu $t0, $v0, 1 +/* 048348 7F013818 1620001C */ bnez $s1, .L7F01388C +/* 04834C 7F01381C AC680000 */ sw $t0, ($v1) +/* 048350 7F013820 8E690000 */ lw $t1, ($s3) +/* 048354 7F013824 24010004 */ li $at, 4 +/* 048358 7F013828 55210019 */ bnel $t1, $at, .L7F013890 +/* 04835C 7F01382C 00102600 */ sll $a0, $s0, 0x18 +/* 048360 7F013830 8E6A0004 */ lw $t2, 4($s3) +/* 048364 7F013834 240B0004 */ li $t3, 4 +/* 048368 7F013838 29410004 */ slti $at, $t2, 4 +/* 04836C 7F01383C 50200014 */ beql $at, $zero, .L7F013890 +/* 048370 7F013840 00102600 */ sll $a0, $s0, 0x18 +/* 048374 7F013844 10000011 */ b .L7F01388C +/* 048378 7F013848 AE6B0004 */ sw $t3, 4($s3) +/* 04837C 7F01384C 28410003 */ slti $at, $v0, 3 +.L7F013850: +/* 048380 7F013850 1020000E */ beqz $at, .L7F01388C +/* 048384 7F013854 244C0001 */ addiu $t4, $v0, 1 +/* 048388 7F013858 1000000C */ b .L7F01388C +/* 04838C 7F01385C AC6C0000 */ sw $t4, ($v1) +.L7F013860: +/* 048390 7F013860 00046E03 */ sra $t5, $a0, 0x18 +.L7F013864: +/* 048394 7F013864 01A02025 */ move $a0, $t5 +/* 048398 7F013868 0C0030EB */ jal joyGetButtonsPressedThisFrame +/* 04839C 7F01386C 3405B000 */ li $a1, 45056 +/* 0483A0 7F013870 10400006 */ beqz $v0, .L7F01388C +/* 0483A4 7F013874 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0483A8 7F013878 AE5E0000 */ sw $fp, ($s2) +/* 0483AC 7F01387C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0483B0 7F013880 240500C7 */ li $a1, 199 +/* 0483B4 7F013884 0C002382 */ jal play_sfx_a1 +/* 0483B8 7F013888 00003025 */ move $a2, $zero +.L7F01388C: +/* 0483BC 7F01388C 00102600 */ sll $a0, $s0, 0x18 +.L7F013890: +/* 0483C0 7F013890 00047603 */ sra $t6, $a0, 0x18 +/* 0483C4 7F013894 01C02025 */ move $a0, $t6 +/* 0483C8 7F013898 2405FFFE */ li $a1, -2 +/* 0483CC 7F01389C 0C00312D */ jal joyGetStickXInRange +/* 0483D0 7F0138A0 03C03025 */ move $a2, $fp +/* 0483D4 7F0138A4 2401FFFF */ li $at, -1 +/* 0483D8 7F0138A8 10410008 */ beq $v0, $at, .L7F0138CC +/* 0483DC 7F0138AC 00102600 */ sll $a0, $s0, 0x18 +/* 0483E0 7F0138B0 00047E03 */ sra $t7, $a0, 0x18 +/* 0483E4 7F0138B4 01E02025 */ move $a0, $t7 +/* 0483E8 7F0138B8 2405FFFE */ li $a1, -2 +/* 0483EC 7F0138BC 0C00312D */ jal joyGetStickXInRange +/* 0483F0 7F0138C0 03C03025 */ move $a2, $fp +/* 0483F4 7F0138C4 54400005 */ bnezl $v0, .L7F0138DC +/* 0483F8 7F0138C8 AE800000 */ sw $zero, ($s4) +.L7F0138CC: +/* 0483FC 7F0138CC AE9E0000 */ sw $fp, ($s4) +/* 048400 7F0138D0 10000003 */ b .L7F0138E0 +/* 048404 7F0138D4 8E420000 */ lw $v0, ($s2) +/* 048408 7F0138D8 AE800000 */ sw $zero, ($s4) +.L7F0138DC: +/* 04840C 7F0138DC 8E420000 */ lw $v0, ($s2) +.L7F0138E0: +/* 048410 7F0138E0 10400004 */ beqz $v0, .L7F0138F4 +/* 048414 7F0138E4 26310001 */ addiu $s1, $s1, 1 +/* 048418 7F0138E8 8FB80044 */ lw $t8, 0x44($sp) +/* 04841C 7F0138EC 27190001 */ addiu $t9, $t8, 1 +/* 048420 7F0138F0 AFB90044 */ sw $t9, 0x44($sp) +.L7F0138F4: +/* 048424 7F0138F4 26B50004 */ addiu $s5, $s5, 4 +/* 048428 7F0138F8 1636FF67 */ bne $s1, $s6, .L7F013698 +/* 04842C 7F0138FC 26520004 */ addiu $s2, $s2, 4 +.L7F013900: +/* 048430 7F013900 3C108003 */ lui $s0, %hi(ptr_folder_object_instance) +/* 048434 7F013904 2610A95C */ addiu $s0, %lo(ptr_folder_object_instance) # addiu $s0, $s0, -0x56a4 +/* 048438 7F013908 0FC02DC9 */ jal disable_all_switches +/* 04843C 7F01390C 8E040000 */ lw $a0, ($s0) +/* 048440 7F013910 8E040000 */ lw $a0, ($s0) +/* 048444 7F013914 00002825 */ move $a1, $zero +/* 048448 7F013918 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04844C 7F01391C 24060001 */ li $a2, 1 +/* 048450 7F013920 8E040000 */ lw $a0, ($s0) +/* 048454 7F013924 2405002A */ li $a1, 42 +/* 048458 7F013928 0FC02DF0 */ jal set_item_visibility_in_objinstance +/* 04845C 7F01392C 24060001 */ li $a2, 1 +/* 048460 7F013930 0FC026E1 */ jal menu_control_stick_tracking +/* 048464 7F013934 00000000 */ nop +/* 048468 7F013938 8FA80044 */ lw $t0, 0x44($sp) +/* 04846C 7F01393C 2404000E */ li $a0, 14 +/* 048470 7F013940 55160004 */ bnel $t0, $s6, .L7F013954 +/* 048474 7F013944 8FBF003C */ lw $ra, 0x3c($sp) +/* 048478 7F013948 0FC06975 */ jal set_menu_to_mode +/* 04847C 7F01394C 00002825 */ move $a1, $zero +/* 048480 7F013950 8FBF003C */ lw $ra, 0x3c($sp) +.L7F013954: +/* 048484 7F013954 8FB00018 */ lw $s0, 0x18($sp) +/* 048488 7F013958 8FB1001C */ lw $s1, 0x1c($sp) +/* 04848C 7F01395C 8FB20020 */ lw $s2, 0x20($sp) +/* 048490 7F013960 8FB30024 */ lw $s3, 0x24($sp) +/* 048494 7F013964 8FB40028 */ lw $s4, 0x28($sp) +/* 048498 7F013968 8FB5002C */ lw $s5, 0x2c($sp) +/* 04849C 7F01396C 8FB60030 */ lw $s6, 0x30($sp) +/* 0484A0 7F013970 8FB70034 */ lw $s7, 0x34($sp) +/* 0484A4 7F013974 8FBE0038 */ lw $fp, 0x38($sp) +/* 0484A8 7F013978 03E00008 */ jr $ra +/* 0484AC 7F01397C 27BD0050 */ addiu $sp, $sp, 0x50 ) #endif @@ -18237,7 +18760,7 @@ void constructor_menu11_mpcontrol(s32 arg0) s32 phi_v1_2; spCC = get_selected_num_players(); - temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); temp_s1 = temp_ret; phi_v0 = temp_ret; phi_s1_2 = temp_s1; @@ -18300,17 +18823,17 @@ loop_4: sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_3, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); sp9C = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (spA0 >> 1)); sp98 = (s32) ((phi_s2 - (spA4 >> 1)) + 0x37); - get_video2_settings_txtClipW(); - phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + phi_s1 = write_text_at_abs_coord(microcode_constructor(temp_s1_2), &sp9C, &sp98, temp_ret_3, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, viGetY(), 0, 0); } temp_ret_4 = get_textptr_for_textID((0x80030000 + (*sp70 * 4))->unk-4B10); sub_GAME_7F0AE98C(&sp90, &sp8C, temp_ret_4, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); sp88 = (s32) ((((s32) phi_s5 >> 1) + phi_s3) - (sp8C >> 1)); sp84 = (s32) (((phi_s2 + 0x46) - (sp90 >> 1)) + 0xf); - get_video2_settings_txtClipW(); + viGetX(); temp_s6 = phi_s6 + 1; sp70 = (void *) (sp70 + 4); - temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + temp_v0 = write_text_at_abs_coord(microcode_constructor(phi_s1), &sp88, &sp84, temp_ret_4, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, viGetY(), 0, 0); sp74 = (void *) (sp74 + 4); phi_s6 = temp_s6; phi_v0 = temp_v0; @@ -18344,9 +18867,9 @@ glabel constructor_menu11_mpcontrol /* 0484EC 7F0139BC 02202025 */ move $a0, $s1 /* 0484F0 7F0139C0 00002825 */ move $a1, $zero /* 0484F4 7F0139C4 00003025 */ move $a2, $zero -/* 0484F8 7F0139C8 0C0011B4 */ jal set_setfillcolor +/* 0484F8 7F0139C8 0C0011B4 */ jal viSetFillColor /* 0484FC 7F0139CC 00003825 */ move $a3, $zero -/* 048500 7F0139D0 0C000FBE */ jal insert_generic_fillrect +/* 048500 7F0139D0 0C000FBE */ jal viFillScreen /* 048504 7F0139D4 00402025 */ move $a0, $v0 /* 048508 7F0139D8 0FC0357A */ jal sub_GAME_7F00D5E8 /* 04850C 7F0139DC 00402025 */ move $a0, $v0 @@ -18491,11 +19014,11 @@ glabel constructor_menu11_mpcontrol /* 048714 7F013BE4 AFAA0098 */ sw $t2, 0x98($sp) /* 048718 7F013BE8 0FC2B366 */ jal microcode_constructor /* 04871C 7F013BEC 02202025 */ move $a0, $s1 -/* 048720 7F013BF0 0C001107 */ jal get_video2_settings_txtClipW +/* 048720 7F013BF0 0C001107 */ jal viGetX /* 048724 7F013BF4 00408825 */ move $s1, $v0 /* 048728 7F013BF8 00028400 */ sll $s0, $v0, 0x10 /* 04872C 7F013BFC 0010CC03 */ sra $t9, $s0, 0x10 -/* 048730 7F013C00 0C00110B */ jal get_video2_settings_txtClipH +/* 048730 7F013C00 0C00110B */ jal viGetY /* 048734 7F013C04 03208025 */ move $s0, $t9 /* 048738 7F013C08 8EED0000 */ lw $t5, ($s7) /* 04873C 7F013C0C 8FCC0000 */ lw $t4, ($fp) @@ -18544,11 +19067,11 @@ glabel constructor_menu11_mpcontrol /* 0487E4 7F013CB4 AFAC0088 */ sw $t4, 0x88($sp) /* 0487E8 7F013CB8 0FC2B366 */ jal microcode_constructor /* 0487EC 7F013CBC AFB80084 */ sw $t8, 0x84($sp) -/* 0487F0 7F013CC0 0C001107 */ jal get_video2_settings_txtClipW +/* 0487F0 7F013CC0 0C001107 */ jal viGetX /* 0487F4 7F013CC4 00408825 */ move $s1, $v0 /* 0487F8 7F013CC8 00028400 */ sll $s0, $v0, 0x10 /* 0487FC 7F013CCC 00104C03 */ sra $t1, $s0, 0x10 -/* 048800 7F013CD0 0C00110B */ jal get_video2_settings_txtClipH +/* 048800 7F013CD0 0C00110B */ jal viGetY /* 048804 7F013CD4 01208025 */ move $s0, $t1 /* 048808 7F013CD8 8EEA0000 */ lw $t2, ($s7) /* 04880C 7F013CDC 8FD90000 */ lw $t9, ($fp) @@ -18628,11 +19151,11 @@ void interface_menu12_mpstage(void) s32 phi_v1; s32 phi_v0; - setvideo_far(0x42700000); - set_page_aspect(D_80051AA0); - set_page_height(0x42c80000, D_80051AA4); - set_video2_settings_offset_24(0); - if (get_controller_buttons_held(0, 0xb000) == 0) + viSetFovY(0x42700000); + viSetAspect(D_80051AA0); + viSetZRange(0x42c80000, D_80051AA4); + viSetUseZBuf(0); + if (joyGetButtons(0, 0xb000) == 0) { tab_3_highlight = 0; tab_2_highlight = 0; @@ -18690,7 +19213,7 @@ loop_14: } } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (tab_3_highlight != 0) { @@ -18704,14 +19227,14 @@ loop_14: MP_stage_selected = (s32) current_mp_stage_highlighted; } } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } disable_all_switches(ptr_folder_object_instance); @@ -18743,20 +19266,20 @@ glabel interface_menu12_mpstage /* 048908 7F013DD8 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04890C 7F013DDC AFBF001C */ sw $ra, 0x1c($sp) /* 048910 7F013DE0 44816000 */ mtc1 $at, $f12 -/* 048914 7F013DE4 0C001151 */ jal setvideo_far +/* 048914 7F013DE4 0C001151 */ jal viSetFovY /* 048918 7F013DE8 AFB00018 */ sw $s0, 0x18($sp) /* 04891C 7F013DEC 3C018005 */ lui $at, %hi(D_80051AA0) -/* 048920 7F013DF0 0C001164 */ jal set_page_aspect +/* 048920 7F013DF0 0C001164 */ jal viSetAspect /* 048924 7F013DF4 C42C1AA0 */ lwc1 $f12, %lo(D_80051AA0)($at) /* 048928 7F013DF8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04892C 7F013DFC 44816000 */ mtc1 $at, $f12 /* 048930 7F013E00 3C018005 */ lui $at, %hi(D_80051AA4) -/* 048934 7F013E04 0C001194 */ jal set_page_height +/* 048934 7F013E04 0C001194 */ jal viSetZRange /* 048938 7F013E08 C42E1AA4 */ lwc1 $f14, %lo(D_80051AA4)($at) -/* 04893C 7F013E0C 0C00114D */ jal set_video2_settings_offset_24 +/* 04893C 7F013E0C 0C00114D */ jal viSetUseZBuf /* 048940 7F013E10 00002025 */ move $a0, $zero /* 048944 7F013E14 00002025 */ move $a0, $zero -/* 048948 7F013E18 0C0030C3 */ jal get_controller_buttons_held +/* 048948 7F013E18 0C0030C3 */ jal joyGetButtons /* 04894C 7F013E1C 3405B000 */ li $a1, 45056 /* 048950 7F013E20 1440003D */ bnez $v0, .L7F013F18 /* 048954 7F013E24 3C018003 */ lui $at, %hi(tab_3_highlight) @@ -18831,13 +19354,13 @@ glabel interface_menu12_mpstage /* 048A48 7F013F18 3C108007 */ lui $s0, %hi(current_mp_stage_highlighted) /* 048A4C 7F013F1C 2610977C */ addiu $s0, %lo(current_mp_stage_highlighted) # addiu $s0, $s0, -0x6884 /* 048A50 7F013F20 00002025 */ move $a0, $zero -/* 048A54 7F013F24 0C0030EB */ jal get_controller_buttons_pressed +/* 048A54 7F013F24 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 048A58 7F013F28 3405B000 */ li $a1, 45056 /* 048A5C 7F013F2C 10400015 */ beqz $v0, .L7F013F84 /* 048A60 7F013F30 24030001 */ li $v1, 1 /* 048A64 7F013F34 3C0B8003 */ lui $t3, %hi(tab_3_highlight) /* 048A68 7F013F38 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) -/* 048A6C 7F013F3C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048A6C 7F013F3C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 048A70 7F013F40 240500C7 */ li $a1, 199 /* 048A74 7F013F44 11600004 */ beqz $t3, .L7F013F58 /* 048A78 7F013F48 00003025 */ move $a2, $zero @@ -18854,19 +19377,19 @@ glabel interface_menu12_mpstage /* 048AA0 7F013F70 AC22B534 */ sw $v0, %lo(MP_stage_selected)($at) .L7F013F74: /* 048AA4 7F013F74 0C002382 */ jal play_sfx_a1 -/* 048AA8 7F013F78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AA8 7F013F78 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 048AAC 7F013F7C 1000000D */ b .L7F013FB4 /* 048AB0 7F013F80 00000000 */ nop .L7F013F84: /* 048AB4 7F013F84 00002025 */ move $a0, $zero -/* 048AB8 7F013F88 0C0030EB */ jal get_controller_buttons_pressed +/* 048AB8 7F013F88 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 048ABC 7F013F8C 24054000 */ li $a1, 16384 /* 048AC0 7F013F90 10400008 */ beqz $v0, .L7F013FB4 /* 048AC4 7F013F94 24030001 */ li $v1, 1 /* 048AC8 7F013F98 3C018003 */ lui $at, %hi(tab_3_selected) -/* 048ACC 7F013F9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 048ACC 7F013F9C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 048AD0 7F013FA0 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 048AD4 7F013FA4 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 048AD4 7F013FA4 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 048AD8 7F013FA8 240500C7 */ li $a1, 199 /* 048ADC 7F013FAC 0C002382 */ jal play_sfx_a1 /* 048AE0 7F013FB0 00003025 */ move $a2, $zero @@ -18975,9 +19498,9 @@ void constructor_menu12_mpstage(s32 arg0) s32 phi_s2_2; s32 phi_s7; - temp_ret = set_setfillcolor(0, 0, 0); + temp_ret = viSetFillColor(0, 0, 0); arg0 = temp_ret; - temp_ret_2 = insert_generic_fillrect(temp_ret); + temp_ret_2 = viFillScreen(temp_ret); arg0 = temp_ret_2; temp_ret_3 = sub_GAME_7F00D5E8(temp_ret_2); arg0 = temp_ret_3; @@ -19106,10 +19629,10 @@ loop_17: temp_s4_3 = phi_s6 + -0x1f; temp_a2 = sp90 - sp128; arg0 = microcode_constructor_related_to_menus(arg0, temp_s4_3, temp_a2, temp_s4_3 + sp124, (s32) (temp_a2 + sp128), 0); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0xff), get_video2_settings_txtClipH(), 0, 0); - get_video2_settings_txtClipW(); - arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2, sp90 - sp128), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0x64), get_video2_settings_txtClipH(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0xff), viGetY(), 0, 0); + viGetX(); + arg0 = en_text_write_stuff(arg0, &sp130, &sp12C, get_textptr_for_textID(temp_s3_2->unk2, sp90 - sp128), (s32) subroutine_arg0, (s32) ptrFirstFontTableSmall, (s32) (phi_s2_2 | 0x64), viGetY(), 0, 0); } } temp_s7 = phi_s7 + 1; @@ -19157,10 +19680,10 @@ glabel constructor_menu12_mpstage /* 048BB4 7F014084 AFA40138 */ sw $a0, 0x138($sp) /* 048BB8 7F014088 00002825 */ move $a1, $zero /* 048BBC 7F01408C 00003025 */ move $a2, $zero -/* 048BC0 7F014090 0C0011B4 */ jal set_setfillcolor +/* 048BC0 7F014090 0C0011B4 */ jal viSetFillColor /* 048BC4 7F014094 00003825 */ move $a3, $zero /* 048BC8 7F014098 AFA20138 */ sw $v0, 0x138($sp) -/* 048BCC 7F01409C 0C000FBE */ jal insert_generic_fillrect +/* 048BCC 7F01409C 0C000FBE */ jal viFillScreen /* 048BD0 7F0140A0 00402025 */ move $a0, $v0 /* 048BD4 7F0140A4 AFA20138 */ sw $v0, 0x138($sp) /* 048BD8 7F0140A8 0FC0357A */ jal sub_GAME_7F00D5E8 @@ -19513,11 +20036,11 @@ glabel constructor_menu12_mpstage /* 04911C 7F0145EC AFA20138 */ sw $v0, 0x138($sp) /* 049120 7F0145F0 0FC30776 */ jal get_textptr_for_textID /* 049124 7F0145F4 96640002 */ lhu $a0, 2($s3) -/* 049128 7F0145F8 0C001107 */ jal get_video2_settings_txtClipW +/* 049128 7F0145F8 0C001107 */ jal viGetX /* 04912C 7F0145FC 00408825 */ move $s1, $v0 /* 049130 7F014600 00028400 */ sll $s0, $v0, 0x10 /* 049134 7F014604 00107C03 */ sra $t7, $s0, 0x10 -/* 049138 7F014608 0C00110B */ jal get_video2_settings_txtClipH +/* 049138 7F014608 0C00110B */ jal viGetY /* 04913C 7F01460C 01E08025 */ move $s0, $t7 /* 049140 7F014610 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) /* 049144 7F014614 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) @@ -19543,11 +20066,11 @@ glabel constructor_menu12_mpstage /* 049194 7F014664 AFA6012C */ sw $a2, 0x12c($sp) /* 049198 7F014668 0FC30776 */ jal get_textptr_for_textID /* 04919C 7F01466C AFB40130 */ sw $s4, 0x130($sp) -/* 0491A0 7F014670 0C001107 */ jal get_video2_settings_txtClipW +/* 0491A0 7F014670 0C001107 */ jal viGetX /* 0491A4 7F014674 00408825 */ move $s1, $v0 /* 0491A8 7F014678 00028400 */ sll $s0, $v0, 0x10 /* 0491AC 7F01467C 00105C03 */ sra $t3, $s0, 0x10 -/* 0491B0 7F014680 0C00110B */ jal get_video2_settings_txtClipH +/* 0491B0 7F014680 0C00110B */ jal viGetY /* 0491B4 7F014684 01608025 */ move $s0, $t3 /* 0491B8 7F014688 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) /* 0491BC 7F01468C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) @@ -19645,11 +20168,11 @@ void interface_menu13_mpscenario(void) s32 phi_s1; sp2C = 0; - setvideo_far(0x42700000); - set_page_aspect(D_80051AA8); - set_page_height(0x42c80000, D_80051AAC); - set_video2_settings_offset_24(0); - if (get_controller_buttons_held(0, 0xa000) == 0) + viSetFovY(0x42700000); + viSetAspect(D_80051AA8); + viSetZRange(0x42c80000, D_80051AAC); + viSetUseZBuf(0); + if (joyGetButtons(0, 0xa000) == 0) { tab_3_highlight = 0; tab_2_highlight = 0; @@ -19681,7 +20204,7 @@ loop_4: } } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (tab_3_highlight != 0) { @@ -19701,14 +20224,14 @@ loop_4: tab_3_selected = 1; } } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } disable_all_switches(ptr_folder_object_instance); @@ -19744,20 +20267,20 @@ glabel interface_menu13_mpscenario /* 0492F8 7F0147C8 AFB20020 */ sw $s2, 0x20($sp) /* 0492FC 7F0147CC AFB1001C */ sw $s1, 0x1c($sp) /* 049300 7F0147D0 AFB00018 */ sw $s0, 0x18($sp) -/* 049304 7F0147D4 0C001151 */ jal setvideo_far +/* 049304 7F0147D4 0C001151 */ jal viSetFovY /* 049308 7F0147D8 AFA0002C */ sw $zero, 0x2c($sp) /* 04930C 7F0147DC 3C018005 */ lui $at, %hi(D_80051AA8) -/* 049310 7F0147E0 0C001164 */ jal set_page_aspect +/* 049310 7F0147E0 0C001164 */ jal viSetAspect /* 049314 7F0147E4 C42C1AA8 */ lwc1 $f12, %lo(D_80051AA8)($at) /* 049318 7F0147E8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04931C 7F0147EC 44816000 */ mtc1 $at, $f12 /* 049320 7F0147F0 3C018005 */ lui $at, %hi(D_80051AAC) -/* 049324 7F0147F4 0C001194 */ jal set_page_height +/* 049324 7F0147F4 0C001194 */ jal viSetZRange /* 049328 7F0147F8 C42E1AAC */ lwc1 $f14, %lo(D_80051AAC)($at) -/* 04932C 7F0147FC 0C00114D */ jal set_video2_settings_offset_24 +/* 04932C 7F0147FC 0C00114D */ jal viSetUseZBuf /* 049330 7F014800 00002025 */ move $a0, $zero /* 049334 7F014804 00002025 */ move $a0, $zero -/* 049338 7F014808 0C0030C3 */ jal get_controller_buttons_held +/* 049338 7F014808 0C0030C3 */ jal joyGetButtons /* 04933C 7F01480C 3405A000 */ li $a1, 40960 /* 049340 7F014810 14400030 */ bnez $v0, .L7F0148D4 /* 049344 7F014814 3C018003 */ lui $at, %hi(tab_3_highlight) @@ -19814,7 +20337,7 @@ glabel interface_menu13_mpscenario /* 049400 7F0148D0 2652FFEA */ addiu $s2, $s2, -0x16 .L7F0148D4: /* 049404 7F0148D4 00002025 */ move $a0, $zero -/* 049408 7F0148D8 0C0030EB */ jal get_controller_buttons_pressed +/* 049408 7F0148D8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04940C 7F0148DC 3405B000 */ li $a1, 45056 /* 049410 7F0148E0 10400023 */ beqz $v0, .L7F014970 /* 049414 7F0148E4 00002025 */ move $a0, $zero @@ -19849,22 +20372,22 @@ glabel interface_menu13_mpscenario /* 04947C 7F01494C 3C018003 */ lui $at, %hi(tab_3_selected) /* 049480 7F014950 AC38A8D8 */ sw $t8, %lo(tab_3_selected)($at) .L7F014954: -/* 049484 7F014954 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 049488 7F014958 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049484 7F014954 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 049488 7F014958 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04948C 7F01495C 240500C7 */ li $a1, 199 /* 049490 7F014960 0C002382 */ jal play_sfx_a1 /* 049494 7F014964 00003025 */ move $a2, $zero /* 049498 7F014968 1000000C */ b .L7F01499C /* 04949C 7F01496C 00000000 */ nop .L7F014970: -/* 0494A0 7F014970 0C0030EB */ jal get_controller_buttons_pressed +/* 0494A0 7F014970 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0494A4 7F014974 24054000 */ li $a1, 16384 /* 0494A8 7F014978 10400008 */ beqz $v0, .L7F01499C /* 0494AC 7F01497C 24190001 */ li $t9, 1 /* 0494B0 7F014980 3C018003 */ lui $at, %hi(tab_3_selected) -/* 0494B4 7F014984 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0494B4 7F014984 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0494B8 7F014988 AC39A8D8 */ sw $t9, %lo(tab_3_selected)($at) -/* 0494BC 7F01498C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0494BC 7F01498C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0494C0 7F014990 240500C7 */ li $a1, 199 /* 0494C4 7F014994 0C002382 */ jal play_sfx_a1 /* 0494C8 7F014998 00003025 */ move $a2, $zero @@ -19941,14 +20464,14 @@ void constructor_menu13_mpscenario(void) sp88 = 0x37; sp84 = 0x66; - get_video2_settings_txtClipW(); - sp20 = get_video2_settings_txtClipH(); + viGetX(); + sp20 = viGetY(); sp24 = 0; sp28 = 0; phi_s1 = &mp_player_counts; phi_s2 = 0; phi_s5 = 0x83; - phi_s4 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp88, &sp84, get_textptr_for_textID(TEXT(LTITLE, 0x57)), (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff); + phi_s4 = write_text_at_abs_coord(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(0, 0, 0)))), &sp88, &sp84, get_textptr_for_textID(TEXT(LTITLE, 0x57)), (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff); loop_1: if ((phi_s1->unk3 < get_selected_num_players()) || (get_selected_num_players() < phi_s1->unk2)) { @@ -19968,8 +20491,8 @@ loop_1: sp84 = temp_v1; phi_s4_2 = microcode_constructor_related_to_menus(phi_s4, 0x37, temp_v1 + -1, sp78 + 0x3c, (s32) (temp_v1 + 0xe), 0x32); } - get_video2_settings_txtClipW(); - sp20 = get_video2_settings_txtClipH(); + viGetX(); + sp20 = viGetY(); sp24 = 0; sp28 = 0; temp_ret_2 = write_text_at_abs_coord(phi_s4_2, &sp88, &sp84, temp_ret, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0); @@ -20001,9 +20524,9 @@ glabel constructor_menu13_mpscenario /* 0495A0 7F014A70 AFB00038 */ sw $s0, 0x38($sp) /* 0495A4 7F014A74 00002825 */ move $a1, $zero /* 0495A8 7F014A78 00003025 */ move $a2, $zero -/* 0495AC 7F014A7C 0C0011B4 */ jal set_setfillcolor +/* 0495AC 7F014A7C 0C0011B4 */ jal viSetFillColor /* 0495B0 7F014A80 00003825 */ move $a3, $zero -/* 0495B4 7F014A84 0C000FBE */ jal insert_generic_fillrect +/* 0495B4 7F014A84 0C000FBE */ jal viFillScreen /* 0495B8 7F014A88 00402025 */ move $a0, $v0 /* 0495BC 7F014A8C 0FC0357A */ jal sub_GAME_7F00D5E8 /* 0495C0 7F014A90 00402025 */ move $a0, $v0 @@ -20016,11 +20539,11 @@ glabel constructor_menu13_mpscenario /* 0495DC 7F014AAC 24030066 */ li $v1, 102 /* 0495E0 7F014AB0 0040B025 */ move $s6, $v0 /* 0495E4 7F014AB4 AFAE0088 */ sw $t6, 0x88($sp) -/* 0495E8 7F014AB8 0C001107 */ jal get_video2_settings_txtClipW +/* 0495E8 7F014AB8 0C001107 */ jal viGetX /* 0495EC 7F014ABC AFA30084 */ sw $v1, 0x84($sp) /* 0495F0 7F014AC0 00028400 */ sll $s0, $v0, 0x10 /* 0495F4 7F014AC4 00107C03 */ sra $t7, $s0, 0x10 -/* 0495F8 7F014AC8 0C00110B */ jal get_video2_settings_txtClipH +/* 0495F8 7F014AC8 0C00110B */ jal viGetY /* 0495FC 7F014ACC 01E08025 */ move $s0, $t7 /* 049600 7F014AD0 3C178004 */ lui $s7, %hi(ptrSecondFontTableLarge) /* 049604 7F014AD4 3C1E8004 */ lui $fp, %hi(ptrFirstFontTableLarge) @@ -20093,11 +20616,11 @@ glabel constructor_menu13_mpscenario /* 049708 7F014BD8 24E7003C */ addiu $a3, $a3, 0x3c /* 04970C 7F014BDC 0040A025 */ move $s4, $v0 .L7F014BE0: -/* 049710 7F014BE0 0C001107 */ jal get_video2_settings_txtClipW +/* 049710 7F014BE0 0C001107 */ jal viGetX /* 049714 7F014BE4 00000000 */ nop /* 049718 7F014BE8 00028400 */ sll $s0, $v0, 0x10 /* 04971C 7F014BEC 0010CC03 */ sra $t9, $s0, 0x10 -/* 049720 7F014BF0 0C00110B */ jal get_video2_settings_txtClipH +/* 049720 7F014BF0 0C00110B */ jal viGetY /* 049724 7F014BF4 03208025 */ move $s0, $t9 /* 049728 7F014BF8 8EE80000 */ lw $t0, ($s7) /* 04972C 7F014BFC 8FC90000 */ lw $t1, ($fp) @@ -20224,19 +20747,19 @@ void interface_menu14_mpteams(void) s32 phi_a1_2; s32 phi_s0_2; - setvideo_far(0x42700000); - set_page_aspect(D_80051AB0); - set_page_height(0x42c80000, D_80051AB4); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051AB0); + viSetZRange(0x42c80000, D_80051AB4); + viSetUseZBuf(0); D_8002B560 = (s32) ((s32) (D_8002B560 + 1) % 0x14); - if ((get_controller_buttons_pressed(0, 0x101) != 0) || (get_controller_3dstick_L_R(0, -2, 1) > 0)) + if ((joyGetButtonsPressedThisFrame(0, 0x101) != 0) || (joyGetStickXInRange(0, -2, 1) > 0)) { if (scenario == 7) { if ((teamsize & 1) == 0) { teamsize = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } else @@ -20244,20 +20767,20 @@ void interface_menu14_mpteams(void) if ((teamsize & 1) == 0) { teamsize = (s32) (teamsize + 1); - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } else { - if ((get_controller_buttons_pressed(0, 0x808) != 0) || (get_controller_3dstick_U_D(0, -2, 1) > 0)) + if ((joyGetButtonsPressedThisFrame(0, 0x808) != 0) || (joyGetStickYInRange(0, -2, 1) > 0)) { if (scenario == 5) { if ((teamsize & 2) != 0) { teamsize = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } else @@ -20265,20 +20788,20 @@ void interface_menu14_mpteams(void) if ((teamsize & 2) != 0) { teamsize = (s32) (teamsize + -2); - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } else { - if ((get_controller_buttons_pressed(0, 0x202) != 0) || (get_controller_3dstick_L_R(0, -2, 1) < -1)) + if ((joyGetButtonsPressedThisFrame(0, 0x202) != 0) || (joyGetStickXInRange(0, -2, 1) < -1)) { if (scenario == 5) { if ((teamsize & 1) != 0) { teamsize = 2; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } else @@ -20286,20 +20809,20 @@ void interface_menu14_mpteams(void) if ((teamsize & 1) != 0) { teamsize = (s32) (teamsize + -1); - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } else { - if ((get_controller_buttons_pressed(0, 0x404) != 0) || (get_controller_3dstick_U_D(0, -2, 1) < -1)) + if ((joyGetButtonsPressedThisFrame(0, 0x404) != 0) || (joyGetStickYInRange(0, -2, 1) < -1)) { if (scenario == 7) { if ((teamsize & 2) == 0) { teamsize = 2; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } else @@ -20307,7 +20830,7 @@ void interface_menu14_mpteams(void) if ((teamsize & 2) == 0) { teamsize = (s32) (teamsize + 2); - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } @@ -20323,7 +20846,7 @@ void interface_menu14_mpteams(void) set_item_visibility_in_objinstance(ptr_folder_object_instance, 0x2a, 1); menu_control_stick_tracking(); phi_s0 = 0; - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { loop_29: if (scenario == 5) @@ -20355,7 +20878,7 @@ loop_29: goto loop_29; } set_menu_to_mode(MENU_MP_OPTIONS, 0); - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } #else @@ -20373,17 +20896,17 @@ glabel interface_menu14_mpteams /* 049880 7F014D50 AFBF001C */ sw $ra, 0x1c($sp) /* 049884 7F014D54 44816000 */ mtc1 $at, $f12 /* 049888 7F014D58 AFB10018 */ sw $s1, 0x18($sp) -/* 04988C 7F014D5C 0C001151 */ jal setvideo_far +/* 04988C 7F014D5C 0C001151 */ jal viSetFovY /* 049890 7F014D60 AFB00014 */ sw $s0, 0x14($sp) /* 049894 7F014D64 3C018005 */ lui $at, %hi(D_80051AB0) -/* 049898 7F014D68 0C001164 */ jal set_page_aspect +/* 049898 7F014D68 0C001164 */ jal viSetAspect /* 04989C 7F014D6C C42C1AB0 */ lwc1 $f12, %lo(D_80051AB0)($at) /* 0498A0 7F014D70 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 0498A4 7F014D74 44816000 */ mtc1 $at, $f12 /* 0498A8 7F014D78 3C018005 */ lui $at, %hi(D_80051AB4) -/* 0498AC 7F014D7C 0C001194 */ jal set_page_height +/* 0498AC 7F014D7C 0C001194 */ jal viSetZRange /* 0498B0 7F014D80 C42E1AB4 */ lwc1 $f14, %lo(D_80051AB4)($at) -/* 0498B4 7F014D84 0C00114D */ jal set_video2_settings_offset_24 +/* 0498B4 7F014D84 0C00114D */ jal viSetUseZBuf /* 0498B8 7F014D88 00002025 */ move $a0, $zero /* 0498BC 7F014D8C 3C028003 */ lui $v0, %hi(D_8002B560) /* 0498C0 7F014D90 2442B560 */ addiu $v0, %lo(D_8002B560) # addiu $v0, $v0, -0x4aa0 @@ -20394,12 +20917,12 @@ glabel interface_menu14_mpteams /* 0498D4 7F014DA4 01E1001A */ div $zero, $t7, $at /* 0498D8 7F014DA8 0000C010 */ mfhi $t8 /* 0498DC 7F014DAC AC580000 */ sw $t8, ($v0) -/* 0498E0 7F014DB0 0C0030EB */ jal get_controller_buttons_pressed +/* 0498E0 7F014DB0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0498E4 7F014DB4 24050101 */ li $a1, 257 /* 0498E8 7F014DB8 14400005 */ bnez $v0, .L7F014DD0 /* 0498EC 7F014DBC 00002025 */ move $a0, $zero /* 0498F0 7F014DC0 2405FFFE */ li $a1, -2 -/* 0498F4 7F014DC4 0C00312D */ jal get_controller_3dstick_L_R +/* 0498F4 7F014DC4 0C00312D */ jal joyGetStickXInRange /* 0498F8 7F014DC8 24060001 */ li $a2, 1 /* 0498FC 7F014DCC 18400020 */ blez $v0, .L7F014E50 .L7F014DD0: @@ -20413,37 +20936,37 @@ glabel interface_menu14_mpteams /* 04991C 7F014DEC 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 /* 049920 7F014DF0 8E280000 */ lw $t0, ($s1) /* 049924 7F014DF4 240A0001 */ li $t2, 1 -/* 049928 7F014DF8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049928 7F014DF8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04992C 7F014DFC 31090001 */ andi $t1, $t0, 1 /* 049930 7F014E00 1520008E */ bnez $t1, .L7F01503C /* 049934 7F014E04 240500C7 */ li $a1, 199 /* 049938 7F014E08 AE2A0000 */ sw $t2, ($s1) -/* 04993C 7F014E0C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04993C 7F014E0C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049940 7F014E10 0C002382 */ jal play_sfx_a1 /* 049944 7F014E14 00003025 */ move $a2, $zero /* 049948 7F014E18 10000088 */ b .L7F01503C /* 04994C 7F014E1C 00000000 */ nop .L7F014E20: /* 049950 7F014E20 8E220000 */ lw $v0, ($s1) -/* 049954 7F014E24 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049954 7F014E24 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049958 7F014E28 240500C7 */ li $a1, 199 /* 04995C 7F014E2C 304B0001 */ andi $t3, $v0, 1 /* 049960 7F014E30 15600082 */ bnez $t3, .L7F01503C /* 049964 7F014E34 244C0001 */ addiu $t4, $v0, 1 /* 049968 7F014E38 AE2C0000 */ sw $t4, ($s1) -/* 04996C 7F014E3C 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04996C 7F014E3C 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049970 7F014E40 0C002382 */ jal play_sfx_a1 /* 049974 7F014E44 00003025 */ move $a2, $zero /* 049978 7F014E48 1000007C */ b .L7F01503C /* 04997C 7F014E4C 00000000 */ nop .L7F014E50: /* 049980 7F014E50 00002025 */ move $a0, $zero -/* 049984 7F014E54 0C0030EB */ jal get_controller_buttons_pressed +/* 049984 7F014E54 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 049988 7F014E58 24050808 */ li $a1, 2056 /* 04998C 7F014E5C 14400005 */ bnez $v0, .L7F014E74 /* 049990 7F014E60 00002025 */ move $a0, $zero /* 049994 7F014E64 2405FFFE */ li $a1, -2 -/* 049998 7F014E68 0C00314A */ jal get_controller_3dstick_U_D +/* 049998 7F014E68 0C00314A */ jal joyGetStickYInRange /* 04999C 7F014E6C 24060001 */ li $a2, 1 /* 0499A0 7F014E70 18400020 */ blez $v0, .L7F014EF4 .L7F014E74: @@ -20457,37 +20980,37 @@ glabel interface_menu14_mpteams /* 0499C0 7F014E90 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 /* 0499C4 7F014E94 8E2E0000 */ lw $t6, ($s1) /* 0499C8 7F014E98 24180001 */ li $t8, 1 -/* 0499CC 7F014E9C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499CC 7F014E9C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0499D0 7F014EA0 31CF0002 */ andi $t7, $t6, 2 /* 0499D4 7F014EA4 11E00065 */ beqz $t7, .L7F01503C /* 0499D8 7F014EA8 240500C7 */ li $a1, 199 /* 0499DC 7F014EAC AE380000 */ sw $t8, ($s1) -/* 0499E0 7F014EB0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0499E0 7F014EB0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0499E4 7F014EB4 0C002382 */ jal play_sfx_a1 /* 0499E8 7F014EB8 00003025 */ move $a2, $zero /* 0499EC 7F014EBC 1000005F */ b .L7F01503C /* 0499F0 7F014EC0 00000000 */ nop .L7F014EC4: /* 0499F4 7F014EC4 8E220000 */ lw $v0, ($s1) -/* 0499F8 7F014EC8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0499F8 7F014EC8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0499FC 7F014ECC 240500C7 */ li $a1, 199 /* 049A00 7F014ED0 30590002 */ andi $t9, $v0, 2 /* 049A04 7F014ED4 13200059 */ beqz $t9, .L7F01503C /* 049A08 7F014ED8 2448FFFE */ addiu $t0, $v0, -2 /* 049A0C 7F014EDC AE280000 */ sw $t0, ($s1) -/* 049A10 7F014EE0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A10 7F014EE0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049A14 7F014EE4 0C002382 */ jal play_sfx_a1 /* 049A18 7F014EE8 00003025 */ move $a2, $zero /* 049A1C 7F014EEC 10000053 */ b .L7F01503C /* 049A20 7F014EF0 00000000 */ nop .L7F014EF4: /* 049A24 7F014EF4 00002025 */ move $a0, $zero -/* 049A28 7F014EF8 0C0030EB */ jal get_controller_buttons_pressed +/* 049A28 7F014EF8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 049A2C 7F014EFC 24050202 */ li $a1, 514 /* 049A30 7F014F00 14400006 */ bnez $v0, .L7F014F1C /* 049A34 7F014F04 00002025 */ move $a0, $zero /* 049A38 7F014F08 2405FFFE */ li $a1, -2 -/* 049A3C 7F014F0C 0C00312D */ jal get_controller_3dstick_L_R +/* 049A3C 7F014F0C 0C00312D */ jal joyGetStickXInRange /* 049A40 7F014F10 24060001 */ li $a2, 1 /* 049A44 7F014F14 2841FFFF */ slti $at, $v0, -1 /* 049A48 7F014F18 10200020 */ beqz $at, .L7F014F9C @@ -20502,37 +21025,37 @@ glabel interface_menu14_mpteams /* 049A68 7F014F38 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 /* 049A6C 7F014F3C 8E2A0000 */ lw $t2, ($s1) /* 049A70 7F014F40 240C0002 */ li $t4, 2 -/* 049A74 7F014F44 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049A74 7F014F44 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049A78 7F014F48 314B0001 */ andi $t3, $t2, 1 /* 049A7C 7F014F4C 1160003B */ beqz $t3, .L7F01503C /* 049A80 7F014F50 240500C7 */ li $a1, 199 /* 049A84 7F014F54 AE2C0000 */ sw $t4, ($s1) -/* 049A88 7F014F58 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049A88 7F014F58 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049A8C 7F014F5C 0C002382 */ jal play_sfx_a1 /* 049A90 7F014F60 00003025 */ move $a2, $zero /* 049A94 7F014F64 10000035 */ b .L7F01503C /* 049A98 7F014F68 00000000 */ nop .L7F014F6C: /* 049A9C 7F014F6C 8E220000 */ lw $v0, ($s1) -/* 049AA0 7F014F70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049AA0 7F014F70 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049AA4 7F014F74 240500C7 */ li $a1, 199 /* 049AA8 7F014F78 304D0001 */ andi $t5, $v0, 1 /* 049AAC 7F014F7C 11A0002F */ beqz $t5, .L7F01503C /* 049AB0 7F014F80 244EFFFF */ addiu $t6, $v0, -1 /* 049AB4 7F014F84 AE2E0000 */ sw $t6, ($s1) -/* 049AB8 7F014F88 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049AB8 7F014F88 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049ABC 7F014F8C 0C002382 */ jal play_sfx_a1 /* 049AC0 7F014F90 00003025 */ move $a2, $zero /* 049AC4 7F014F94 10000029 */ b .L7F01503C /* 049AC8 7F014F98 00000000 */ nop .L7F014F9C: /* 049ACC 7F014F9C 00002025 */ move $a0, $zero -/* 049AD0 7F014FA0 0C0030EB */ jal get_controller_buttons_pressed +/* 049AD0 7F014FA0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 049AD4 7F014FA4 24050404 */ li $a1, 1028 /* 049AD8 7F014FA8 14400006 */ bnez $v0, .L7F014FC4 /* 049ADC 7F014FAC 00002025 */ move $a0, $zero /* 049AE0 7F014FB0 2405FFFE */ li $a1, -2 -/* 049AE4 7F014FB4 0C00314A */ jal get_controller_3dstick_U_D +/* 049AE4 7F014FB4 0C00314A */ jal joyGetStickYInRange /* 049AE8 7F014FB8 24060001 */ li $a2, 1 /* 049AEC 7F014FBC 2841FFFF */ slti $at, $v0, -1 /* 049AF0 7F014FC0 1020001E */ beqz $at, .L7F01503C @@ -20547,25 +21070,25 @@ glabel interface_menu14_mpteams /* 049B10 7F014FE0 26319788 */ addiu $s1, %lo(teamsize) # addiu $s1, $s1, -0x6878 /* 049B14 7F014FE4 8E380000 */ lw $t8, ($s1) /* 049B18 7F014FE8 24080002 */ li $t0, 2 -/* 049B1C 7F014FEC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B1C 7F014FEC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049B20 7F014FF0 33190002 */ andi $t9, $t8, 2 /* 049B24 7F014FF4 17200011 */ bnez $t9, .L7F01503C /* 049B28 7F014FF8 240500C7 */ li $a1, 199 /* 049B2C 7F014FFC AE280000 */ sw $t0, ($s1) -/* 049B30 7F015000 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B30 7F015000 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049B34 7F015004 0C002382 */ jal play_sfx_a1 /* 049B38 7F015008 00003025 */ move $a2, $zero /* 049B3C 7F01500C 1000000B */ b .L7F01503C /* 049B40 7F015010 00000000 */ nop .L7F015014: /* 049B44 7F015014 8E220000 */ lw $v0, ($s1) -/* 049B48 7F015018 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 049B48 7F015018 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 049B4C 7F01501C 240500C7 */ li $a1, 199 /* 049B50 7F015020 30490002 */ andi $t1, $v0, 2 /* 049B54 7F015024 15200005 */ bnez $t1, .L7F01503C /* 049B58 7F015028 244A0002 */ addiu $t2, $v0, 2 /* 049B5C 7F01502C AE2A0000 */ sw $t2, ($s1) -/* 049B60 7F015030 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049B60 7F015030 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049B64 7F015034 0C002382 */ jal play_sfx_a1 /* 049B68 7F015038 00003025 */ move $a2, $zero .L7F01503C: @@ -20586,7 +21109,7 @@ glabel interface_menu14_mpteams /* 049BA4 7F015074 0FC026E1 */ jal menu_control_stick_tracking /* 049BA8 7F015078 00000000 */ nop /* 049BAC 7F01507C 00002025 */ move $a0, $zero -/* 049BB0 7F015080 0C0030EB */ jal get_controller_buttons_pressed +/* 049BB0 7F015080 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 049BB4 7F015084 3405B000 */ li $a1, 45056 /* 049BB8 7F015088 10400026 */ beqz $v0, .L7F015124 /* 049BBC 7F01508C 00008025 */ move $s0, $zero @@ -20628,8 +21151,8 @@ glabel interface_menu14_mpteams /* 049C34 7F015104 2404000E */ li $a0, 14 /* 049C38 7F015108 0FC06975 */ jal set_menu_to_mode /* 049C3C 7F01510C 00002825 */ move $a1, $zero -/* 049C40 7F015110 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 049C44 7F015114 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 049C40 7F015110 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 049C44 7F015114 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 049C48 7F015118 240500C7 */ li $a1, 199 /* 049C4C 7F01511C 0C002382 */ jal play_sfx_a1 /* 049C50 7F015120 00003025 */ move $a2, $zero @@ -20676,7 +21199,7 @@ void constructor_menu14_mpteams(s32 arg0) u32 phi_v0_3; spCC = get_selected_num_players(); - temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); + temp_ret = microcode_constructor_related_to_menus(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(arg0, 0, 0, 0)))), 0x26, 0xa9, 0x184, 0xab, 0x90); phi_s5_5 = temp_ret; if (spCC >= 3) { @@ -20716,8 +21239,8 @@ loop_4: temp_ret_2 = get_textptr_for_textID(TEXT(LTITLE, 0x58)); sub_GAME_7F0AE98C(&spA4, &spA0, temp_ret_2, ptrSecondFontTableLarge, (s32) subroutine_arg0, 0); sp9C = (s32) ((phi_v0 + 0x7d) - (spA0 >> 1)); - get_video2_settings_txtClipW(); - phi_s5_2 = write_text_at_abs_coord(temp_s5, &sp9C, &sp98, temp_ret_2, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + phi_s5_2 = write_text_at_abs_coord(temp_s5, &sp9C, &sp98, temp_ret_2, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, 0xff, viGetY(), 0, 0); } if (scenario == 5) { @@ -20757,8 +21280,8 @@ loop_4: if (D_8002B560 < 0xa) { block_26: - get_video2_settings_txtClipW(); - phi_s5_4 = write_text_at_abs_coord(phi_s5_2, &sp88, &sp84, phi_s1, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, get_video2_settings_txtClipH(), 0, 0); + viGetX(); + phi_s5_4 = write_text_at_abs_coord(phi_s5_2, &sp88, &sp84, phi_s1, (s32) ptrSecondFontTableLarge, (s32) subroutine_arg0, viGetY(), 0, 0); } } else @@ -20798,9 +21321,9 @@ glabel constructor_menu14_mpteams /* 049CA4 7F015174 02A02025 */ move $a0, $s5 /* 049CA8 7F015178 00002825 */ move $a1, $zero /* 049CAC 7F01517C 00003025 */ move $a2, $zero -/* 049CB0 7F015180 0C0011B4 */ jal set_setfillcolor +/* 049CB0 7F015180 0C0011B4 */ jal viSetFillColor /* 049CB4 7F015184 00003825 */ move $a3, $zero -/* 049CB8 7F015188 0C000FBE */ jal insert_generic_fillrect +/* 049CB8 7F015188 0C000FBE */ jal viFillScreen /* 049CBC 7F01518C 00402025 */ move $a0, $v0 /* 049CC0 7F015190 0FC0357A */ jal sub_GAME_7F00D5E8 /* 049CC4 7F015194 00402025 */ move $a0, $v0 @@ -20912,11 +21435,11 @@ glabel constructor_menu14_mpteams /* 049E54 7F015324 AFB00098 */ sw $s0, 0x98($sp) /* 049E58 7F015328 000C6843 */ sra $t5, $t4, 1 /* 049E5C 7F01532C 022D7023 */ subu $t6, $s1, $t5 -/* 049E60 7F015330 0C001107 */ jal get_video2_settings_txtClipW +/* 049E60 7F015330 0C001107 */ jal viGetX /* 049E64 7F015334 AFAE009C */ sw $t6, 0x9c($sp) /* 049E68 7F015338 00028400 */ sll $s0, $v0, 0x10 /* 049E6C 7F01533C 0010CC03 */ sra $t9, $s0, 0x10 -/* 049E70 7F015340 0C00110B */ jal get_video2_settings_txtClipH +/* 049E70 7F015340 0C00110B */ jal viGetY /* 049E74 7F015344 03208025 */ move $s0, $t9 /* 049E78 7F015348 8EE80000 */ lw $t0, ($s7) /* 049E7C 7F01534C 8FD80000 */ lw $t8, ($fp) @@ -21001,11 +21524,11 @@ glabel constructor_menu14_mpteams /* 049F98 7F015468 50200017 */ beql $at, $zero, .L7F0154C8 /* 049F9C 7F01546C 8FB900CC */ lw $t9, 0xcc($sp) .L7F015470: -/* 049FA0 7F015470 0C001107 */ jal get_video2_settings_txtClipW +/* 049FA0 7F015470 0C001107 */ jal viGetX /* 049FA4 7F015474 00000000 */ nop /* 049FA8 7F015478 00028400 */ sll $s0, $v0, 0x10 /* 049FAC 7F01547C 00106403 */ sra $t4, $s0, 0x10 -/* 049FB0 7F015480 0C00110B */ jal get_video2_settings_txtClipH +/* 049FB0 7F015480 0C00110B */ jal viGetY /* 049FB4 7F015484 01808025 */ move $s0, $t4 /* 049FB8 7F015488 8EEE0000 */ lw $t6, ($s7) /* 049FBC 7F01548C 8FCD0000 */ lw $t5, ($fp) @@ -21189,10 +21712,10 @@ void update_menu0A_briefing(void) #ifdef NONMATCHING void interface_menu0A_briefing(void) { - setvideo_far(0x42700000); - set_page_aspect(D_80051AB8); - set_page_height(0x42c80000, D_80051ABC); - set_video2_settings_offset_24(0); + viSetFovY(0x42700000); + viSetAspect(D_80051AB8); + viSetZRange(0x42c80000, D_80051ABC); + viSetUseZBuf(0); tab_3_highlight = 0; tab_2_highlight = 0; tab_1_highlight = 0; @@ -21225,14 +21748,14 @@ void interface_menu0A_briefing(void) } } } - if (get_controller_buttons_pressed(0, 0x1000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x1000) != 0) { tab_2_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0xa000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xa000) != 0) { if (tab_2_highlight != 0) { @@ -21259,11 +21782,11 @@ void interface_menu0A_briefing(void) } } } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { if (current_menu_briefing_page > 0) { @@ -21273,7 +21796,7 @@ void interface_menu0A_briefing(void) { tab_3_selected = 1; } - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } @@ -21309,17 +21832,17 @@ glabel interface_menu0A_briefing /* 04A1D0 7F0156A0 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04A1D4 7F0156A4 AFBF0014 */ sw $ra, 0x14($sp) /* 04A1D8 7F0156A8 44816000 */ mtc1 $at, $f12 -/* 04A1DC 7F0156AC 0C001151 */ jal setvideo_far +/* 04A1DC 7F0156AC 0C001151 */ jal viSetFovY /* 04A1E0 7F0156B0 00000000 */ nop /* 04A1E4 7F0156B4 3C018005 */ lui $at, %hi(D_80051AB8) -/* 04A1E8 7F0156B8 0C001164 */ jal set_page_aspect +/* 04A1E8 7F0156B8 0C001164 */ jal viSetAspect /* 04A1EC 7F0156BC C42C1AB8 */ lwc1 $f12, %lo(D_80051AB8)($at) /* 04A1F0 7F0156C0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04A1F4 7F0156C4 44816000 */ mtc1 $at, $f12 /* 04A1F8 7F0156C8 3C018005 */ lui $at, %hi(D_80051ABC) -/* 04A1FC 7F0156CC 0C001194 */ jal set_page_height +/* 04A1FC 7F0156CC 0C001194 */ jal viSetZRange /* 04A200 7F0156D0 C42E1ABC */ lwc1 $f14, %lo(D_80051ABC)($at) -/* 04A204 7F0156D4 0C00114D */ jal set_video2_settings_offset_24 +/* 04A204 7F0156D4 0C00114D */ jal viSetUseZBuf /* 04A208 7F0156D8 00002025 */ move $a0, $zero /* 04A20C 7F0156DC 3C018003 */ lui $at, %hi(tab_3_highlight) /* 04A210 7F0156E0 AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) @@ -21375,14 +21898,14 @@ glabel interface_menu0A_briefing /* 04A2C8 7F015798 AC23A8DC */ sw $v1, %lo(tab_1_highlight)($at) .L7F01579C: /* 04A2CC 7F01579C 00002025 */ move $a0, $zero -/* 04A2D0 7F0157A0 0C0030EB */ jal get_controller_buttons_pressed +/* 04A2D0 7F0157A0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04A2D4 7F0157A4 24051000 */ li $a1, 4096 /* 04A2D8 7F0157A8 1040000A */ beqz $v0, .L7F0157D4 /* 04A2DC 7F0157AC 24030001 */ li $v1, 1 /* 04A2E0 7F0157B0 3C018003 */ lui $at, %hi(tab_2_selected) -/* 04A2E4 7F0157B4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04A2E4 7F0157B4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04A2E8 7F0157B8 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) -/* 04A2EC 7F0157BC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A2EC 7F0157BC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04A2F0 7F0157C0 240500C7 */ li $a1, 199 /* 04A2F4 7F0157C4 0C002382 */ jal play_sfx_a1 /* 04A2F8 7F0157C8 00003025 */ move $a2, $zero @@ -21390,7 +21913,7 @@ glabel interface_menu0A_briefing /* 04A300 7F0157D0 00000000 */ nop .L7F0157D4: /* 04A304 7F0157D4 00002025 */ move $a0, $zero -/* 04A308 7F0157D8 0C0030EB */ jal get_controller_buttons_pressed +/* 04A308 7F0157D8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04A30C 7F0157DC 3405A000 */ li $a1, 40960 /* 04A310 7F0157E0 10400027 */ beqz $v0, .L7F015880 /* 04A314 7F0157E4 24030001 */ li $v1, 1 @@ -21429,8 +21952,8 @@ glabel interface_menu0A_briefing /* 04A38C 7F01585C 00000000 */ nop /* 04A390 7F015860 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) .L7F015864: -/* 04A394 7F015864 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 04A398 7F015868 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A394 7F015864 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 04A398 7F015868 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04A39C 7F01586C 240500C7 */ li $a1, 199 /* 04A3A0 7F015870 0C002382 */ jal play_sfx_a1 /* 04A3A4 7F015874 00003025 */ move $a2, $zero @@ -21438,7 +21961,7 @@ glabel interface_menu0A_briefing /* 04A3AC 7F01587C 00000000 */ nop .L7F015880: /* 04A3B0 7F015880 00002025 */ move $a0, $zero -/* 04A3B4 7F015884 0C0030EB */ jal get_controller_buttons_pressed +/* 04A3B4 7F015884 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04A3B8 7F015888 24054000 */ li $a1, 16384 /* 04A3BC 7F01588C 10400010 */ beqz $v0, .L7F0158D0 /* 04A3C0 7F015890 24030001 */ li $v1, 1 @@ -21454,8 +21977,8 @@ glabel interface_menu0A_briefing .L7F0158B8: /* 04A3E8 7F0158B8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) .L7F0158BC: -/* 04A3EC 7F0158BC 3C048006 */ lui $a0, %hi(ptr_sfx_buf) -/* 04A3F0 7F0158C0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04A3EC 7F0158BC 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) +/* 04A3F0 7F0158C0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04A3F4 7F0158C4 240500C7 */ li $a1, 199 /* 04A3F8 7F0158C8 0C002382 */ jal play_sfx_a1 /* 04A3FC 7F0158CC 00003025 */ move $a2, $zero @@ -21583,7 +22106,7 @@ u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,i } else { pbVar2 = get_textptr_for_textID((u32)uVar1); - textpointer_load_parse_something((char *)param_3,aA_); + strcpy((char *)param_3,aA_); *param_3 = *param_3 + (char)iStack8; iStack12 = 0; iStack16 = 0; @@ -21591,8 +22114,8 @@ u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,i ); uStack20 = 0x37; uStack24 = iStack12 * iVar9 + param_2; - sVar5 = get_video2_settings_txtClipW(); - sVar6 = get_video2_settings_txtClipH(); + sVar5 = viGetX(); + sVar6 = viGetY(); puVar3 = write_text_at_abs_coord (param_1,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); @@ -21606,8 +22129,8 @@ u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,i proc_7F0AEB64(0xdc,pbVar2,param_3,(int)ptrSecondFontTableLarge,(int *)ptrFirstFontTableLarge); proc_7F0ACB94(0); } - sVar5 = get_video2_settings_txtClipW(); - sVar6 = get_video2_settings_txtClipH(); + sVar5 = viGetX(); + sVar6 = viGetY(); param_1 = write_text_at_abs_coord (puVar3,&uStack20,&uStack24,param_3,(int)ptrSecondFontTableLarge, (int)ptrFirstFontTableLarge,0xff,(int)sVar5,(int)sVar6,0,0); @@ -21623,8 +22146,8 @@ u32 * print_objectives_and_status_to_menu(u32 *param_1,int param_2,u8 *param_3,i } uStack20 = 0x136; uStack24 = iStack12 * iVar9 + param_2; - sVar5 = get_video2_settings_txtClipW(); - sVar6 = get_video2_settings_txtClipH(); + sVar5 = viGetX(); + sVar6 = viGetY(); param_1 = write_text_at_abs_coord (param_1,&uStack20,&uStack24,pbVar2,(int)ptrSecondFontTableLarge, (int)ptrFirstFontTableLarge,uVar8,(int)sVar5,(int)sVar6,0,0); @@ -21688,7 +22211,7 @@ glabel print_objectives_and_status_to_menu /* 04A5D8 7F015AA8 3C058005 */ lui $a1, %hi(aA_) /* 04A5DC 7F015AAC 00408825 */ move $s1, $v0 /* 04A5E0 7F015AB0 24A50C50 */ addiu $a1, %lo(aA_) # addiu $a1, $a1, 0xc50 -/* 04A5E4 7F015AB4 0C0029DC */ jal textpointer_load_parse_something +/* 04A5E4 7F015AB4 0C0029DC */ jal strcpy /* 04A5E8 7F015AB8 02602025 */ move $a0, $s3 /* 04A5EC 7F015ABC 92790000 */ lbu $t9, ($s3) /* 04A5F0 7F015AC0 8FAA0098 */ lw $t2, 0x98($sp) @@ -21712,11 +22235,11 @@ glabel print_objectives_and_status_to_menu /* 04A638 7F015B08 00007812 */ mflo $t7 /* 04A63C 7F015B0C 01F8C821 */ addu $t9, $t7, $t8 /* 04A640 7F015B10 03375021 */ addu $t2, $t9, $s7 -/* 04A644 7F015B14 0C001107 */ jal get_video2_settings_txtClipW +/* 04A644 7F015B14 0C001107 */ jal viGetX /* 04A648 7F015B18 AFAA0088 */ sw $t2, 0x88($sp) /* 04A64C 7F015B1C 00028400 */ sll $s0, $v0, 0x10 /* 04A650 7F015B20 00105C03 */ sra $t3, $s0, 0x10 -/* 04A654 7F015B24 0C00110B */ jal get_video2_settings_txtClipH +/* 04A654 7F015B24 0C00110B */ jal viGetY /* 04A658 7F015B28 01608025 */ move $s0, $t3 /* 04A65C 7F015B2C 8E8C0000 */ lw $t4, ($s4) /* 04A660 7F015B30 8EAD0000 */ lw $t5, ($s5) @@ -21767,11 +22290,11 @@ glabel print_objectives_and_status_to_menu /* 04A710 7F015BE0 0FC2BAD9 */ jal sub_GAME_7F0AEB64 /* 04A714 7F015BE4 AFAF0010 */ sw $t7, 0x10($sp) .L7F015BE8: -/* 04A718 7F015BE8 0C001107 */ jal get_video2_settings_txtClipW +/* 04A718 7F015BE8 0C001107 */ jal viGetX /* 04A71C 7F015BEC 00000000 */ nop /* 04A720 7F015BF0 00028400 */ sll $s0, $v0, 0x10 /* 04A724 7F015BF4 0010C403 */ sra $t8, $s0, 0x10 -/* 04A728 7F015BF8 0C00110B */ jal get_video2_settings_txtClipH +/* 04A728 7F015BF8 0C00110B */ jal viGetY /* 04A72C 7F015BFC 03008025 */ move $s0, $t8 /* 04A730 7F015C00 8E990000 */ lw $t9, ($s4) /* 04A734 7F015C04 8EAA0000 */ lw $t2, ($s5) @@ -21824,11 +22347,11 @@ glabel print_objectives_and_status_to_menu /* 04A7E0 7F015CB0 00007812 */ mflo $t7 /* 04A7E4 7F015CB4 01F8C821 */ addu $t9, $t7, $t8 /* 04A7E8 7F015CB8 03375021 */ addu $t2, $t9, $s7 -/* 04A7EC 7F015CBC 0C001107 */ jal get_video2_settings_txtClipW +/* 04A7EC 7F015CBC 0C001107 */ jal viGetX /* 04A7F0 7F015CC0 AFAA0088 */ sw $t2, 0x88($sp) /* 04A7F4 7F015CC4 00028400 */ sll $s0, $v0, 0x10 /* 04A7F8 7F015CC8 00105C03 */ sra $t3, $s0, 0x10 -/* 04A7FC 7F015CCC 0C00110B */ jal get_video2_settings_txtClipH +/* 04A7FC 7F015CCC 0C00110B */ jal viGetY /* 04A800 7F015CD0 01608025 */ move $s0, $t3 /* 04A804 7F015CD4 8E8C0000 */ lw $t4, ($s4) /* 04A808 7F015CD8 8EAD0000 */ lw $t5, ($s5) @@ -21893,8 +22416,8 @@ s32 constructor_menu0A_briefing(s32 *param_1) u32 uStack8; u8 *pbStack4; - puVar1 = set_setfillcolor(param_1,0,0,0); - puVar1 = insert_generic_fillrect(puVar1); + puVar1 = viSetFillColor(param_1,0,0,0); + puVar1 = viFillScreen(puVar1); DL = (s32 *)proc_7F00D5E8(puVar1); puVar1 = (s32 *)array_80050C54; puVar6 = auStack3012; @@ -21926,8 +22449,8 @@ s32 constructor_menu0A_briefing(s32 *param_1) } uStack8 = 0x37; uStack12 = 0x8f; - sVar4 = get_video2_settings_txtClipW(); - sVar5 = get_video2_settings_txtClipH(); + sVar4 = viGetX(); + sVar5 = viGetY(); puVar2 = write_text_at_abs_coord (puVar2,&uStack8,&uStack12,pbStack4,(int)ptrSecondFontTableLarge, (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); @@ -21958,8 +22481,8 @@ s32 constructor_menu0A_briefing(s32 *param_1) proc_7F0AEB64(0x140,pbStack4,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, (int *)ptrFirstFontTableLarge); proc_7F0ACBA0(8); - sVar4 = get_video2_settings_txtClipW(); - sVar5 = get_video2_settings_txtClipH(); + sVar4 = viGetX(); + sVar5 = viGetY(); puVar2 = write_text_at_abs_coord (puVar2,&uStack8,&uStack12,(u8 *)auStack3012,(int)ptrSecondFontTableLarge, (int)ptrFirstFontTableLarge,0xff,(int)sVar4,(int)sVar5,0,0); @@ -21991,9 +22514,9 @@ glabel constructor_menu0A_briefing /* 04A8AC 7F015D7C AFB00038 */ sw $s0, 0x38($sp) /* 04A8B0 7F015D80 00002825 */ move $a1, $zero /* 04A8B4 7F015D84 00003025 */ move $a2, $zero -/* 04A8B8 7F015D88 0C0011B4 */ jal set_setfillcolor +/* 04A8B8 7F015D88 0C0011B4 */ jal viSetFillColor /* 04A8BC 7F015D8C 00003825 */ move $a3, $zero -/* 04A8C0 7F015D90 0C000FBE */ jal insert_generic_fillrect +/* 04A8C0 7F015D90 0C000FBE */ jal viFillScreen /* 04A8C4 7F015D94 00402025 */ move $a0, $v0 /* 04A8C8 7F015D98 0FC0357A */ jal sub_GAME_7F00D5E8 /* 04A8CC 7F015D9C 00402025 */ move $a0, $v0 @@ -22056,9 +22579,9 @@ def_7F015E0C: /* 04A990 7F015E60 240A0037 */ li $t2, 55 /* 04A994 7F015E64 240B008F */ li $t3, 143 /* 04A998 7F015E68 AFAA0C08 */ sw $t2, 0xc08($sp) -/* 04A99C 7F015E6C 0C001107 */ jal get_video2_settings_txtClipW +/* 04A99C 7F015E6C 0C001107 */ jal viGetX /* 04A9A0 7F015E70 AFAB0C04 */ sw $t3, 0xc04($sp) -/* 04A9A4 7F015E74 0C00110B */ jal get_video2_settings_txtClipH +/* 04A9A4 7F015E74 0C00110B */ jal viGetY /* 04A9A8 7F015E78 A7A20048 */ sh $v0, 0x48($sp) /* 04A9AC 7F015E7C 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04A9B0 7F015E80 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -22143,9 +22666,9 @@ def_7F015E0C: /* 04AAD4 7F015FA4 AFAC0010 */ sw $t4, 0x10($sp) /* 04AAD8 7F015FA8 0FC2B2E8 */ jal setTextOverlapCorrection /* 04AADC 7F015FAC 24040008 */ li $a0, 8 -/* 04AAE0 7F015FB0 0C001107 */ jal get_video2_settings_txtClipW +/* 04AAE0 7F015FB0 0C001107 */ jal viGetX /* 04AAE4 7F015FB4 00000000 */ nop -/* 04AAE8 7F015FB8 0C00110B */ jal get_video2_settings_txtClipH +/* 04AAE8 7F015FB8 0C00110B */ jal viGetY /* 04AAEC 7F015FBC A7A20048 */ sh $v0, 0x48($sp) /* 04AAF0 7F015FC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 04AAF4 7F015FC4 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -22197,7 +22720,7 @@ def_7F015E0C: void init_menu0B_runstage(void) { - set_loaded_stage(selected_stage); + bossSetLoadedStage(selected_stage); set_difficulty(selected_difficulty); } @@ -22210,8 +22733,8 @@ void init_menu0C_missionfailed(void) set_cursor_pos_tab2(); if (maybe_is_in_menu != FALSE) { sfx_c_700091E8(0x7fff); - musicTrack1Vol(0x7fff); - music1_playing = FALSE; + musicTrack1ApplySeqpVol(0x7fff); + g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; musicTrack1Play(M_FOLDERS); maybe_is_in_menu = FALSE; } @@ -22233,10 +22756,10 @@ void interface_menu0C_missionfailed(void) const f32 menu0C_aspect = 1.3333334; const f32 menu0C_pageheight = 10000.0; - setvideo_far(60.00000000); - set_page_aspect(menu0C_aspect); - set_page_height(100.00000000, menu0C_pageheight); - set_video2_settings_offset_24(0); + viSetFovY(60.00000000); + viSetAspect(menu0C_aspect); + viSetZRange(100.00000000, menu0C_pageheight); + viSetUseZBuf(0); tab_2_highlight = 0; tab_3_highlight = 0; if (isontab3() != 0) @@ -22254,28 +22777,28 @@ void interface_menu0C_missionfailed(void) tab_2_highlight = 1; } } - if (get_controller_buttons_pressed(0, 0xb000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0xb000) != 0) { if (tab_3_highlight != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } else { if (tab_2_highlight != 0) { tab_2_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } } else { - if (get_controller_buttons_pressed(0, 0x4000) != 0) + if (joyGetButtonsPressedThisFrame(0, 0x4000) != 0) { tab_3_selected = 1; - play_sfx_a1(ptr_sfx_buf, 0xc7, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0xc7, 0); } } disable_all_switches(ptr_folder_object_instance); @@ -22308,17 +22831,17 @@ glabel interface_menu0C_missionfailed /* 04AC44 7F016114 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04AC48 7F016118 AFBF0014 */ sw $ra, 0x14($sp) /* 04AC4C 7F01611C 44816000 */ mtc1 $at, $f12 -/* 04AC50 7F016120 0C001151 */ jal setvideo_far +/* 04AC50 7F016120 0C001151 */ jal viSetFovY /* 04AC54 7F016124 00000000 */ nop /* 04AC58 7F016128 3C018005 */ lui $at, %hi(menu0C_aspect) -/* 04AC5C 7F01612C 0C001164 */ jal set_page_aspect +/* 04AC5C 7F01612C 0C001164 */ jal viSetAspect /* 04AC60 7F016130 C42C1AD4 */ lwc1 $f12, %lo(menu0C_aspect)($at) /* 04AC64 7F016134 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04AC68 7F016138 44816000 */ mtc1 $at, $f12 /* 04AC6C 7F01613C 3C018005 */ lui $at, %hi(menu0C_pageheight) -/* 04AC70 7F016140 0C001194 */ jal set_page_height +/* 04AC70 7F016140 0C001194 */ jal viSetZRange /* 04AC74 7F016144 C42E1AD8 */ lwc1 $f14, %lo(menu0C_pageheight)($at) -/* 04AC78 7F016148 0C00114D */ jal set_video2_settings_offset_24 +/* 04AC78 7F016148 0C00114D */ jal viSetUseZBuf /* 04AC7C 7F01614C 00002025 */ move $a0, $zero /* 04AC80 7F016150 3C018003 */ lui $at, %hi(tab_2_highlight) /* 04AC84 7F016154 AC20A8E0 */ sw $zero, %lo(tab_2_highlight)($at) @@ -22344,18 +22867,18 @@ glabel interface_menu0C_missionfailed /* 04ACCC 7F01619C AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) .L7F0161A0: /* 04ACD0 7F0161A0 00002025 */ move $a0, $zero -/* 04ACD4 7F0161A4 0C0030EB */ jal get_controller_buttons_pressed +/* 04ACD4 7F0161A4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04ACD8 7F0161A8 3405B000 */ li $a1, 45056 /* 04ACDC 7F0161AC 10400019 */ beqz $v0, .L7F016214 /* 04ACE0 7F0161B0 24030001 */ li $v1, 1 /* 04ACE4 7F0161B4 3C0E8003 */ lui $t6, %hi(tab_3_highlight) /* 04ACE8 7F0161B8 8DCEA8E4 */ lw $t6, %lo(tab_3_highlight)($t6) /* 04ACEC 7F0161BC 3C018003 */ lui $at, %hi(tab_3_selected) -/* 04ACF0 7F0161C0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04ACF0 7F0161C0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04ACF4 7F0161C4 11C00008 */ beqz $t6, .L7F0161E8 /* 04ACF8 7F0161C8 3C0F8003 */ lui $t7, %hi(tab_2_highlight) /* 04ACFC 7F0161CC AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 04AD00 7F0161D0 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD00 7F0161D0 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04AD04 7F0161D4 240500C7 */ li $a1, 199 /* 04AD08 7F0161D8 0C002382 */ jal play_sfx_a1 /* 04AD0C 7F0161DC 00003025 */ move $a2, $zero @@ -22364,25 +22887,25 @@ glabel interface_menu0C_missionfailed .L7F0161E8: /* 04AD18 7F0161E8 8DEFA8E0 */ lw $t7, %lo(tab_2_highlight)($t7) /* 04AD1C 7F0161EC 3C018003 */ lui $at, %hi(tab_2_selected) -/* 04AD20 7F0161F0 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD20 7F0161F0 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04AD24 7F0161F4 11E00013 */ beqz $t7, .L7F016244 /* 04AD28 7F0161F8 240500C7 */ li $a1, 199 /* 04AD2C 7F0161FC AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) -/* 04AD30 7F016200 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD30 7F016200 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04AD34 7F016204 0C002382 */ jal play_sfx_a1 /* 04AD38 7F016208 00003025 */ move $a2, $zero /* 04AD3C 7F01620C 1000000D */ b .L7F016244 /* 04AD40 7F016210 00000000 */ nop .L7F016214: /* 04AD44 7F016214 00002025 */ move $a0, $zero -/* 04AD48 7F016218 0C0030EB */ jal get_controller_buttons_pressed +/* 04AD48 7F016218 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04AD4C 7F01621C 24054000 */ li $a1, 16384 /* 04AD50 7F016220 10400008 */ beqz $v0, .L7F016244 /* 04AD54 7F016224 24030001 */ li $v1, 1 /* 04AD58 7F016228 3C018003 */ lui $at, %hi(tab_3_selected) -/* 04AD5C 7F01622C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04AD5C 7F01622C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04AD60 7F016230 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 04AD64 7F016234 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04AD64 7F016234 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04AD68 7F016238 240500C7 */ li $a1, 199 /* 04AD6C 7F01623C 0C002382 */ jal play_sfx_a1 /* 04AD70 7F016240 00003025 */ move $a2, $zero @@ -22569,19 +23092,19 @@ void constructor_menu0C_missionfailed(s32 arg0) s32 phi_v1; s32 phi_s0; - arg0 = print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(insert_generic_fillrect(set_setfillcolor(0, 0, 0)))), &sp58); + arg0 = print_current_solo_briefing_stage_name(microcode_constructor(sub_GAME_7F00D5E8(viFillScreen(viSetFillColor(0, 0, 0)))), &sp58); spC14 = 0x37; spC10 = 0x8f; - sp44 = get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, get_textptr_for_textID(TEXT(LTITLE, 0x62)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, get_textptr_for_textID(TEXT(LTITLE, 0x62)), (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); temp_ret = get_textptr_for_textID(TEXT(LTITLE, 0x63)); sp48 = 0; sp4C = 0; sub_GAME_7F0AE98C(&sp4C, &sp48, temp_ret, ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0); spC14 = 0x37; spC10 = 0xa7; - sp44 = get_video2_settings_txtClipW(); - arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, temp_ret, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, get_video2_settings_txtClipH(), 0, 0); + sp44 = viGetX(); + arg0 = write_text_at_abs_coord(arg0, &spC14, &spC10, temp_ret, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, 0xff, sp44, viGetY(), 0, 0); if (mission_kia_flag != 0) { phi_v1 = 0x780000ff; @@ -22611,8 +23134,8 @@ void constructor_menu0C_missionfailed(s32 arg0) spC10 = 0xa7; spC14 = (s32) (sp48 + 0x37); sp50 = (s32) phi_v1; - sp44 = get_video2_settings_txtClipW(); - load_draw_selected_icon_folder_select(add_tab3_previous(add_tab2_next(print_objectives_and_status_to_menu(write_text_at_abs_coord(arg0, &spC14, &spC10, phi_s0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, get_video2_settings_txtClipH(), 0, 0), 0xbf, &sp58, 1)))); + sp44 = viGetX(); + load_draw_selected_icon_folder_select(add_tab3_previous(add_tab2_next(print_objectives_and_status_to_menu(write_text_at_abs_coord(arg0, &spC14, &spC10, phi_s0, (s32) ptrSecondFontTableLarge, (s32) ptrFirstFontTableLarge, (s32) phi_v1, sp44, viGetY(), 0, 0), 0xbf, &sp58, 1)))); } #else GLOBAL_ASM( @@ -22623,9 +23146,9 @@ glabel constructor_menu0C_missionfailed /* 04AF24 7F0163F4 AFB00038 */ sw $s0, 0x38($sp) /* 04AF28 7F0163F8 00002825 */ move $a1, $zero /* 04AF2C 7F0163FC 00003025 */ move $a2, $zero -/* 04AF30 7F016400 0C0011B4 */ jal set_setfillcolor +/* 04AF30 7F016400 0C0011B4 */ jal viSetFillColor /* 04AF34 7F016404 00003825 */ move $a3, $zero -/* 04AF38 7F016408 0C000FBE */ jal insert_generic_fillrect +/* 04AF38 7F016408 0C000FBE */ jal viFillScreen /* 04AF3C 7F01640C 00402025 */ move $a0, $v0 /* 04AF40 7F016410 0FC0357A */ jal sub_GAME_7F00D5E8 /* 04AF44 7F016414 00402025 */ move $a0, $v0 @@ -22641,9 +23164,9 @@ glabel constructor_menu0C_missionfailed /* 04AF6C 7F01643C 240F008F */ li $t7, 143 /* 04AF70 7F016440 00408025 */ move $s0, $v0 /* 04AF74 7F016444 AFAE0C14 */ sw $t6, 0xc14($sp) -/* 04AF78 7F016448 0C001107 */ jal get_video2_settings_txtClipW +/* 04AF78 7F016448 0C001107 */ jal viGetX /* 04AF7C 7F01644C AFAF0C10 */ sw $t7, 0xc10($sp) -/* 04AF80 7F016450 0C00110B */ jal get_video2_settings_txtClipH +/* 04AF80 7F016450 0C00110B */ jal viGetY /* 04AF84 7F016454 A7A20044 */ sh $v0, 0x44($sp) /* 04AF88 7F016458 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 04AF8C 7F01645C 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -22682,9 +23205,9 @@ glabel constructor_menu0C_missionfailed /* 04B010 7F0164E0 240B0037 */ li $t3, 55 /* 04B014 7F0164E4 240C00A7 */ li $t4, 167 /* 04B018 7F0164E8 AFAB0C14 */ sw $t3, 0xc14($sp) -/* 04B01C 7F0164EC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B01C 7F0164EC 0C001107 */ jal viGetX /* 04B020 7F0164F0 AFAC0C10 */ sw $t4, 0xc10($sp) -/* 04B024 7F0164F4 0C00110B */ jal get_video2_settings_txtClipH +/* 04B024 7F0164F4 0C00110B */ jal viGetY /* 04B028 7F0164F8 A7A20044 */ sh $v0, 0x44($sp) /* 04B02C 7F0164FC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 04B030 7F016500 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -22748,9 +23271,9 @@ glabel constructor_menu0C_missionfailed /* 04B108 7F0165D8 AFAB0C10 */ sw $t3, 0xc10($sp) /* 04B10C 7F0165DC 252A0037 */ addiu $t2, $t1, 0x37 /* 04B110 7F0165E0 AFAA0C14 */ sw $t2, 0xc14($sp) -/* 04B114 7F0165E4 0C001107 */ jal get_video2_settings_txtClipW +/* 04B114 7F0165E4 0C001107 */ jal viGetX /* 04B118 7F0165E8 AFA30050 */ sw $v1, 0x50($sp) -/* 04B11C 7F0165EC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B11C 7F0165EC 0C00110B */ jal viGetY /* 04B120 7F0165F0 A7A20044 */ sh $v0, 0x44($sp) /* 04B124 7F0165F4 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04B128 7F0165F8 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -22802,7 +23325,7 @@ void init_menu0D_missioncomplete(void) load_briefing_text_for_stage(); if (newcheatunlocked != 0) { - play_sfx_a1(ptr_sfx_buf, 0x102, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x102, 0); } } @@ -22828,10 +23351,10 @@ void interface_menu0D_missioncomplete(u32 param_1,u32 param_2) short sVar6; int iVar7; - setvideo_far(60.00000000); - set_page_aspect((f32)menu0D_aspect); - set_page_height(100.00000000,(f32)menu0D_pageheight); - set_video2_settings_offset_24(0); + viSetFovY(60.00000000); + viSetAspect((f32)menu0D_aspect); + viSetZRange(100.00000000,(f32)menu0D_pageheight); + viSetUseZBuf(0); tab_3_highlight = FALSE; tab_2_highlight = FALSE; if (isontab3() == FALSE) { @@ -22845,22 +23368,22 @@ void interface_menu0D_missioncomplete(u32 param_1,u32 param_2) else { tab_3_highlight = TRUE; } - if (get_controller_buttons_pressed(0,START_BUTTON|Z_TRIG|A_BUTTON) == 0) { - if (get_controller_buttons_pressed(0,B_BUTTON) != 0) { + if (joyGetButtonsPressedThisFrame(0,START_BUTTON|Z_TRIG|A_BUTTON) == 0) { + if (joyGetButtonsPressedThisFrame(0,B_BUTTON) != 0) { tab_3_selected = TRUE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } } else { if (tab_2_highlight == FALSE) { if (tab_3_highlight != FALSE) { tab_3_selected = TRUE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } } else { tab_2_selected = TRUE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } } disable_all_switches((int)ptr_folder_object_instance); @@ -22932,17 +23455,17 @@ glabel interface_menu0D_missioncomplete /* 04B20C 7F0166DC 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04B210 7F0166E0 AFBF0014 */ sw $ra, 0x14($sp) /* 04B214 7F0166E4 44816000 */ mtc1 $at, $f12 -/* 04B218 7F0166E8 0C001151 */ jal setvideo_far +/* 04B218 7F0166E8 0C001151 */ jal viSetFovY /* 04B21C 7F0166EC 00000000 */ nop /* 04B220 7F0166F0 3C018005 */ lui $at, %hi(menu0D_aspect) -/* 04B224 7F0166F4 0C001164 */ jal set_page_aspect +/* 04B224 7F0166F4 0C001164 */ jal viSetAspect /* 04B228 7F0166F8 C42C1ADC */ lwc1 $f12, %lo(menu0D_aspect)($at) /* 04B22C 7F0166FC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04B230 7F016700 44816000 */ mtc1 $at, $f12 /* 04B234 7F016704 3C018005 */ lui $at, %hi(menu0D_pageheight) -/* 04B238 7F016708 0C001194 */ jal set_page_height +/* 04B238 7F016708 0C001194 */ jal viSetZRange /* 04B23C 7F01670C C42E1AE0 */ lwc1 $f14, %lo(menu0D_pageheight)($at) -/* 04B240 7F016710 0C00114D */ jal set_video2_settings_offset_24 +/* 04B240 7F016710 0C00114D */ jal viSetUseZBuf /* 04B244 7F016714 00002025 */ move $a0, $zero /* 04B248 7F016718 3C018003 */ lui $at, %hi(tab_3_highlight) /* 04B24C 7F01671C AC20A8E4 */ sw $zero, %lo(tab_3_highlight)($at) @@ -22968,18 +23491,18 @@ glabel interface_menu0D_missioncomplete /* 04B294 7F016764 AC23A8E0 */ sw $v1, %lo(tab_2_highlight)($at) .L7F016768: /* 04B298 7F016768 00002025 */ move $a0, $zero -/* 04B29C 7F01676C 0C0030EB */ jal get_controller_buttons_pressed +/* 04B29C 7F01676C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04B2A0 7F016770 3405B000 */ li $a1, 45056 /* 04B2A4 7F016774 10400019 */ beqz $v0, .L7F0167DC /* 04B2A8 7F016778 24030001 */ li $v1, 1 /* 04B2AC 7F01677C 3C0E8003 */ lui $t6, %hi(tab_2_highlight) /* 04B2B0 7F016780 8DCEA8E0 */ lw $t6, %lo(tab_2_highlight)($t6) /* 04B2B4 7F016784 3C018003 */ lui $at, %hi(tab_2_selected) -/* 04B2B8 7F016788 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2B8 7F016788 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04B2BC 7F01678C 11C00008 */ beqz $t6, .L7F0167B0 /* 04B2C0 7F016790 3C0F8003 */ lui $t7, %hi(tab_3_highlight) /* 04B2C4 7F016794 AC23A8D4 */ sw $v1, %lo(tab_2_selected)($at) -/* 04B2C8 7F016798 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2C8 7F016798 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04B2CC 7F01679C 240500C7 */ li $a1, 199 /* 04B2D0 7F0167A0 0C002382 */ jal play_sfx_a1 /* 04B2D4 7F0167A4 00003025 */ move $a2, $zero @@ -22988,25 +23511,25 @@ glabel interface_menu0D_missioncomplete .L7F0167B0: /* 04B2E0 7F0167B0 8DEFA8E4 */ lw $t7, %lo(tab_3_highlight)($t7) /* 04B2E4 7F0167B4 3C018003 */ lui $at, %hi(tab_3_selected) -/* 04B2E8 7F0167B8 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B2E8 7F0167B8 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04B2EC 7F0167BC 11E00013 */ beqz $t7, .L7F01680C /* 04B2F0 7F0167C0 240500C7 */ li $a1, 199 /* 04B2F4 7F0167C4 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 04B2F8 7F0167C8 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B2F8 7F0167C8 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04B2FC 7F0167CC 0C002382 */ jal play_sfx_a1 /* 04B300 7F0167D0 00003025 */ move $a2, $zero /* 04B304 7F0167D4 1000000D */ b .L7F01680C /* 04B308 7F0167D8 00000000 */ nop .L7F0167DC: /* 04B30C 7F0167DC 00002025 */ move $a0, $zero -/* 04B310 7F0167E0 0C0030EB */ jal get_controller_buttons_pressed +/* 04B310 7F0167E0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04B314 7F0167E4 24054000 */ li $a1, 16384 /* 04B318 7F0167E8 10400008 */ beqz $v0, .L7F01680C /* 04B31C 7F0167EC 24030001 */ li $v1, 1 /* 04B320 7F0167F0 3C018003 */ lui $at, %hi(tab_3_selected) -/* 04B324 7F0167F4 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04B324 7F0167F4 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04B328 7F0167F8 AC23A8D8 */ sw $v1, %lo(tab_3_selected)($at) -/* 04B32C 7F0167FC 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04B32C 7F0167FC 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04B330 7F016800 240500C7 */ li $a1, 199 /* 04B334 7F016804 0C002382 */ jal play_sfx_a1 /* 04B338 7F016808 00003025 */ move $a2, $zero @@ -23181,9 +23704,9 @@ glabel constructor_menu0D_missioncomplete /* 04B544 7F016A14 AFB00034 */ sw $s0, 0x34($sp) /* 04B548 7F016A18 00002825 */ move $a1, $zero /* 04B54C 7F016A1C 00003025 */ move $a2, $zero -/* 04B550 7F016A20 0C0011B4 */ jal set_setfillcolor +/* 04B550 7F016A20 0C0011B4 */ jal viSetFillColor /* 04B554 7F016A24 00003825 */ move $a3, $zero -/* 04B558 7F016A28 0C000FBE */ jal insert_generic_fillrect +/* 04B558 7F016A28 0C000FBE */ jal viFillScreen /* 04B55C 7F016A2C 00402025 */ move $a0, $v0 /* 04B560 7F016A30 0FC0357A */ jal sub_GAME_7F00D5E8 /* 04B564 7F016A34 00402025 */ move $a0, $v0 @@ -23239,11 +23762,11 @@ glabel constructor_menu0D_missioncomplete /* 04B628 7F016AF8 2418008F */ li $t8, 143 /* 04B62C 7F016AFC AFA200A4 */ sw $v0, 0xa4($sp) /* 04B630 7F016B00 AFAF0C64 */ sw $t7, 0xc64($sp) -/* 04B634 7F016B04 0C001107 */ jal get_video2_settings_txtClipW +/* 04B634 7F016B04 0C001107 */ jal viGetX /* 04B638 7F016B08 AFB80C60 */ sw $t8, 0xc60($sp) /* 04B63C 7F016B0C 00028400 */ sll $s0, $v0, 0x10 /* 04B640 7F016B10 0010CC03 */ sra $t9, $s0, 0x10 -/* 04B644 7F016B14 0C00110B */ jal get_video2_settings_txtClipH +/* 04B644 7F016B14 0C00110B */ jal viGetY /* 04B648 7F016B18 03208025 */ move $s0, $t9 /* 04B64C 7F016B1C 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 04B650 7F016B20 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) @@ -23281,11 +23804,11 @@ glabel constructor_menu0D_missioncomplete /* 04B6D0 7F016BA0 240F00A7 */ li $t7, 167 /* 04B6D4 7F016BA4 AFA200A4 */ sw $v0, 0xa4($sp) /* 04B6D8 7F016BA8 AFAE0C64 */ sw $t6, 0xc64($sp) -/* 04B6DC 7F016BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B6DC 7F016BAC 0C001107 */ jal viGetX /* 04B6E0 7F016BB0 AFAF0C60 */ sw $t7, 0xc60($sp) /* 04B6E4 7F016BB4 00028400 */ sll $s0, $v0, 0x10 /* 04B6E8 7F016BB8 0010C403 */ sra $t8, $s0, 0x10 -/* 04B6EC 7F016BBC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B6EC 7F016BBC 0C00110B */ jal viGetY /* 04B6F0 7F016BC0 03008025 */ move $s0, $t8 /* 04B6F4 7F016BC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04B6F8 7F016BC8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -23393,11 +23916,11 @@ glabel constructor_menu0D_missioncomplete /* 04B870 7F016D40 24180082 */ li $t8, 130 /* 04B874 7F016D44 241900A7 */ li $t9, 167 /* 04B878 7F016D48 AFB80C64 */ sw $t8, 0xc64($sp) -/* 04B87C 7F016D4C 0C001107 */ jal get_video2_settings_txtClipW +/* 04B87C 7F016D4C 0C001107 */ jal viGetX /* 04B880 7F016D50 AFB90C60 */ sw $t9, 0xc60($sp) /* 04B884 7F016D54 00028400 */ sll $s0, $v0, 0x10 /* 04B888 7F016D58 00105403 */ sra $t2, $s0, 0x10 -/* 04B88C 7F016D5C 0C00110B */ jal get_video2_settings_txtClipH +/* 04B88C 7F016D5C 0C00110B */ jal viGetY /* 04B890 7F016D60 01408025 */ move $s0, $t2 /* 04B894 7F016D64 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 04B898 7F016D68 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -23429,11 +23952,11 @@ glabel constructor_menu0D_missioncomplete /* 04B900 7F016DD0 27A400A8 */ addiu $a0, $sp, 0xa8 /* 04B904 7F016DD4 0C002B25 */ jal sprintf /* 04B908 7F016DD8 00403025 */ move $a2, $v0 -/* 04B90C 7F016DDC 0C001107 */ jal get_video2_settings_txtClipW +/* 04B90C 7F016DDC 0C001107 */ jal viGetX /* 04B910 7F016DE0 00000000 */ nop /* 04B914 7F016DE4 00028400 */ sll $s0, $v0, 0x10 /* 04B918 7F016DE8 00107C03 */ sra $t7, $s0, 0x10 -/* 04B91C 7F016DEC 0C00110B */ jal get_video2_settings_txtClipH +/* 04B91C 7F016DEC 0C00110B */ jal viGetY /* 04B920 7F016DF0 01E08025 */ move $s0, $t7 /* 04B924 7F016DF4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 04B928 7F016DF8 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -23469,11 +23992,11 @@ glabel constructor_menu0D_missioncomplete /* 04B99C 7F016E6C AFA200A4 */ sw $v0, 0xa4($sp) /* 04B9A0 7F016E70 25CF00A9 */ addiu $t7, $t6, 0xa9 /* 04B9A4 7F016E74 AFAD0C64 */ sw $t5, 0xc64($sp) -/* 04B9A8 7F016E78 0C001107 */ jal get_video2_settings_txtClipW +/* 04B9A8 7F016E78 0C001107 */ jal viGetX /* 04B9AC 7F016E7C AFAF0C60 */ sw $t7, 0xc60($sp) /* 04B9B0 7F016E80 00028400 */ sll $s0, $v0, 0x10 /* 04B9B4 7F016E84 0010C403 */ sra $t8, $s0, 0x10 -/* 04B9B8 7F016E88 0C00110B */ jal get_video2_settings_txtClipH +/* 04B9B8 7F016E88 0C00110B */ jal viGetY /* 04B9BC 7F016E8C 03008025 */ move $s0, $t8 /* 04B9C0 7F016E90 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04B9C4 7F016E94 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -23519,11 +24042,11 @@ glabel constructor_menu0D_missioncomplete /* 04BA5C 7F016F2C 240D0082 */ li $t5, 130 /* 04BA60 7F016F30 AFAD0C64 */ sw $t5, 0xc64($sp) /* 04BA64 7F016F34 25CF00A9 */ addiu $t7, $t6, 0xa9 -/* 04BA68 7F016F38 0C001107 */ jal get_video2_settings_txtClipW +/* 04BA68 7F016F38 0C001107 */ jal viGetX /* 04BA6C 7F016F3C AFAF0C60 */ sw $t7, 0xc60($sp) /* 04BA70 7F016F40 00028400 */ sll $s0, $v0, 0x10 /* 04BA74 7F016F44 0010C403 */ sra $t8, $s0, 0x10 -/* 04BA78 7F016F48 0C00110B */ jal get_video2_settings_txtClipH +/* 04BA78 7F016F48 0C00110B */ jal viGetY /* 04BA7C 7F016F4C 03008025 */ move $s0, $t8 /* 04BA80 7F016F50 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04BA84 7F016F54 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -23583,11 +24106,11 @@ glabel constructor_menu0D_missioncomplete /* 04BB50 7F017020 0C002B25 */ jal sprintf /* 04BB54 7F017024 27A400A8 */ addiu $a0, $sp, 0xa8 .L7F017028: -/* 04BB58 7F017028 0C001107 */ jal get_video2_settings_txtClipW +/* 04BB58 7F017028 0C001107 */ jal viGetX /* 04BB5C 7F01702C 00000000 */ nop /* 04BB60 7F017030 00028400 */ sll $s0, $v0, 0x10 /* 04BB64 7F017034 00106C03 */ sra $t5, $s0, 0x10 -/* 04BB68 7F017038 0C00110B */ jal get_video2_settings_txtClipH +/* 04BB68 7F017038 0C00110B */ jal viGetY /* 04BB6C 7F01703C 01A08025 */ move $s0, $t5 /* 04BB70 7F017040 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) /* 04BB74 7F017044 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) @@ -23622,11 +24145,11 @@ glabel constructor_menu0D_missioncomplete /* 04BBE0 7F0170B0 AFA200A4 */ sw $v0, 0xa4($sp) /* 04BBE4 7F0170B4 254B00A9 */ addiu $t3, $t2, 0xa9 /* 04BBE8 7F0170B8 AFB90C64 */ sw $t9, 0xc64($sp) -/* 04BBEC 7F0170BC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BBEC 7F0170BC 0C001107 */ jal viGetX /* 04BBF0 7F0170C0 AFAB0C60 */ sw $t3, 0xc60($sp) /* 04BBF4 7F0170C4 00028400 */ sll $s0, $v0, 0x10 /* 04BBF8 7F0170C8 00106403 */ sra $t4, $s0, 0x10 -/* 04BBFC 7F0170CC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BBFC 7F0170CC 0C00110B */ jal viGetY /* 04BC00 7F0170D0 01808025 */ move $s0, $t4 /* 04BC04 7F0170D4 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 04BC08 7F0170D8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -23660,11 +24183,11 @@ glabel constructor_menu0D_missioncomplete /* 04BC78 7F017148 24190082 */ li $t9, 130 /* 04BC7C 7F01714C AFB90C64 */ sw $t9, 0xc64($sp) /* 04BC80 7F017150 254B00A9 */ addiu $t3, $t2, 0xa9 -/* 04BC84 7F017154 0C001107 */ jal get_video2_settings_txtClipW +/* 04BC84 7F017154 0C001107 */ jal viGetX /* 04BC88 7F017158 AFAB0C60 */ sw $t3, 0xc60($sp) /* 04BC8C 7F01715C 00028400 */ sll $s0, $v0, 0x10 /* 04BC90 7F017160 00106403 */ sra $t4, $s0, 0x10 -/* 04BC94 7F017164 0C00110B */ jal get_video2_settings_txtClipH +/* 04BC94 7F017164 0C00110B */ jal viGetY /* 04BC98 7F017168 01808025 */ move $s0, $t4 /* 04BC9C 7F01716C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 04BCA0 7F017170 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -23691,11 +24214,11 @@ glabel constructor_menu0D_missioncomplete /* 04BCF0 7F0171C0 241900CC */ li $t9, 204 /* 04BCF4 7F0171C4 AFA200A4 */ sw $v0, 0xa4($sp) /* 04BCF8 7F0171C8 AFB80C64 */ sw $t8, 0xc64($sp) -/* 04BCFC 7F0171CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BCFC 7F0171CC 0C001107 */ jal viGetX /* 04BD00 7F0171D0 AFB90C60 */ sw $t9, 0xc60($sp) /* 04BD04 7F0171D4 00028400 */ sll $s0, $v0, 0x10 /* 04BD08 7F0171D8 00105403 */ sra $t2, $s0, 0x10 -/* 04BD0C 7F0171DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BD0C 7F0171DC 0C00110B */ jal viGetY /* 04BD10 7F0171E0 01408025 */ move $s0, $t2 /* 04BD14 7F0171E4 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 04BD18 7F0171E8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -23742,11 +24265,11 @@ glabel constructor_menu0D_missioncomplete /* 04BDB4 7F017284 240F0082 */ li $t7, 130 /* 04BDB8 7F017288 241800CC */ li $t8, 204 /* 04BDBC 7F01728C AFAF0C64 */ sw $t7, 0xc64($sp) -/* 04BDC0 7F017290 0C001107 */ jal get_video2_settings_txtClipW +/* 04BDC0 7F017290 0C001107 */ jal viGetX /* 04BDC4 7F017294 AFB80C60 */ sw $t8, 0xc60($sp) /* 04BDC8 7F017298 00028400 */ sll $s0, $v0, 0x10 /* 04BDCC 7F01729C 0010CC03 */ sra $t9, $s0, 0x10 -/* 04BDD0 7F0172A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04BDD0 7F0172A0 0C00110B */ jal viGetY /* 04BDD4 7F0172A4 03208025 */ move $s0, $t9 /* 04BDD8 7F0172A8 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableLarge) /* 04BDDC 7F0172AC 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) @@ -23772,11 +24295,11 @@ glabel constructor_menu0D_missioncomplete /* 04BE2C 7F0172FC 240E00DC */ li $t6, 220 /* 04BE30 7F017300 AFA200A4 */ sw $v0, 0xa4($sp) /* 04BE34 7F017304 AFAD0C64 */ sw $t5, 0xc64($sp) -/* 04BE38 7F017308 0C001107 */ jal get_video2_settings_txtClipW +/* 04BE38 7F017308 0C001107 */ jal viGetX /* 04BE3C 7F01730C AFAE0C60 */ sw $t6, 0xc60($sp) /* 04BE40 7F017310 00028400 */ sll $s0, $v0, 0x10 /* 04BE44 7F017314 00107C03 */ sra $t7, $s0, 0x10 -/* 04BE48 7F017318 0C00110B */ jal get_video2_settings_txtClipH +/* 04BE48 7F017318 0C00110B */ jal viGetY /* 04BE4C 7F01731C 01E08025 */ move $s0, $t7 /* 04BE50 7F017320 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 04BE54 7F017324 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -23800,7 +24323,7 @@ glabel constructor_menu0D_missioncomplete /* 04BE9C 7F01736C 0FC026D4 */ jal getplayerfavoredweapon /* 04BEA0 7F017370 00002825 */ move $a1, $zero /* 04BEA4 7F017374 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 04BEA8 7F017378 0C0029DC */ jal textpointer_load_parse_something +/* 04BEA8 7F017378 0C0029DC */ jal strcpy /* 04BEAC 7F01737C 00402825 */ move $a1, $v0 /* 04BEB0 7F017380 3C048007 */ lui $a0, %hi(array_favweapon) /* 04BEB4 7F017384 248496F0 */ addiu $a0, %lo(array_favweapon) # addiu $a0, $a0, -0x6910 @@ -23822,11 +24345,11 @@ glabel constructor_menu0D_missioncomplete .L7F0173C4: /* 04BEF4 7F0173C4 240F00DC */ li $t7, 220 /* 04BEF8 7F0173C8 AFAE0C64 */ sw $t6, 0xc64($sp) -/* 04BEFC 7F0173CC 0C001107 */ jal get_video2_settings_txtClipW +/* 04BEFC 7F0173CC 0C001107 */ jal viGetX /* 04BF00 7F0173D0 AFAF0C60 */ sw $t7, 0xc60($sp) /* 04BF04 7F0173D4 00028400 */ sll $s0, $v0, 0x10 /* 04BF08 7F0173D8 0010C403 */ sra $t8, $s0, 0x10 -/* 04BF0C 7F0173DC 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF0C 7F0173DC 0C00110B */ jal viGetY /* 04BF10 7F0173E0 03008025 */ move $s0, $t8 /* 04BF14 7F0173E4 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04BF18 7F0173E8 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -23852,11 +24375,11 @@ glabel constructor_menu0D_missioncomplete /* 04BF68 7F017438 240D00F4 */ li $t5, 244 /* 04BF6C 7F01743C AFA200A4 */ sw $v0, 0xa4($sp) /* 04BF70 7F017440 AFAC0C64 */ sw $t4, 0xc64($sp) -/* 04BF74 7F017444 0C001107 */ jal get_video2_settings_txtClipW +/* 04BF74 7F017444 0C001107 */ jal viGetX /* 04BF78 7F017448 AFAD0C60 */ sw $t5, 0xc60($sp) /* 04BF7C 7F01744C 00028400 */ sll $s0, $v0, 0x10 /* 04BF80 7F017450 00107403 */ sra $t6, $s0, 0x10 -/* 04BF84 7F017454 0C00110B */ jal get_video2_settings_txtClipH +/* 04BF84 7F017454 0C00110B */ jal viGetY /* 04BF88 7F017458 01C08025 */ move $s0, $t6 /* 04BF8C 7F01745C 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) /* 04BF90 7F017460 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) @@ -23884,11 +24407,11 @@ glabel constructor_menu0D_missioncomplete /* 04BFE8 7F0174B8 240A0082 */ li $t2, 130 /* 04BFEC 7F0174BC 240B00F4 */ li $t3, 244 /* 04BFF0 7F0174C0 AFAA0C64 */ sw $t2, 0xc64($sp) -/* 04BFF4 7F0174C4 0C001107 */ jal get_video2_settings_txtClipW +/* 04BFF4 7F0174C4 0C001107 */ jal viGetX /* 04BFF8 7F0174C8 AFAB0C60 */ sw $t3, 0xc60($sp) /* 04BFFC 7F0174CC 00028400 */ sll $s0, $v0, 0x10 /* 04C000 7F0174D0 00106403 */ sra $t4, $s0, 0x10 -/* 04C004 7F0174D4 0C00110B */ jal get_video2_settings_txtClipH +/* 04C004 7F0174D4 0C00110B */ jal viGetY /* 04C008 7F0174D8 01808025 */ move $s0, $t4 /* 04C00C 7F0174DC 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableLarge) /* 04C010 7F0174E0 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) @@ -23914,11 +24437,11 @@ glabel constructor_menu0D_missioncomplete /* 04C060 7F017530 241900F4 */ li $t9, 244 /* 04C064 7F017534 AFA200A4 */ sw $v0, 0xa4($sp) /* 04C068 7F017538 AFB80C64 */ sw $t8, 0xc64($sp) -/* 04C06C 7F01753C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C06C 7F01753C 0C001107 */ jal viGetX /* 04C070 7F017540 AFB90C60 */ sw $t9, 0xc60($sp) /* 04C074 7F017544 00028400 */ sll $s0, $v0, 0x10 /* 04C078 7F017548 00105403 */ sra $t2, $s0, 0x10 -/* 04C07C 7F01754C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C07C 7F01754C 0C00110B */ jal viGetY /* 04C080 7F017550 01408025 */ move $s0, $t2 /* 04C084 7F017554 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 04C088 7F017558 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -23963,11 +24486,11 @@ glabel constructor_menu0D_missioncomplete /* 04C124 7F0175F4 2419012C */ li $t9, 300 /* 04C128 7F0175F8 240A00F4 */ li $t2, 244 /* 04C12C 7F0175FC AFB90C64 */ sw $t9, 0xc64($sp) -/* 04C130 7F017600 0C001107 */ jal get_video2_settings_txtClipW +/* 04C130 7F017600 0C001107 */ jal viGetX /* 04C134 7F017604 AFAA0C60 */ sw $t2, 0xc60($sp) /* 04C138 7F017608 00028400 */ sll $s0, $v0, 0x10 /* 04C13C 7F01760C 00105C03 */ sra $t3, $s0, 0x10 -/* 04C140 7F017610 0C00110B */ jal get_video2_settings_txtClipH +/* 04C140 7F017610 0C00110B */ jal viGetY /* 04C144 7F017614 01608025 */ move $s0, $t3 /* 04C148 7F017618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04C14C 7F01761C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -23994,11 +24517,11 @@ glabel constructor_menu0D_missioncomplete /* 04C1A0 7F017670 AFA200A4 */ sw $v0, 0xa4($sp) /* 04C1A4 7F017674 271900F4 */ addiu $t9, $t8, 0xf4 /* 04C1A8 7F017678 AFAF0C64 */ sw $t7, 0xc64($sp) -/* 04C1AC 7F01767C 0C001107 */ jal get_video2_settings_txtClipW +/* 04C1AC 7F01767C 0C001107 */ jal viGetX /* 04C1B0 7F017680 AFB90C60 */ sw $t9, 0xc60($sp) /* 04C1B4 7F017684 00028400 */ sll $s0, $v0, 0x10 /* 04C1B8 7F017688 00105403 */ sra $t2, $s0, 0x10 -/* 04C1BC 7F01768C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C1BC 7F01768C 0C00110B */ jal viGetY /* 04C1C0 7F017690 01408025 */ move $s0, $t2 /* 04C1C4 7F017694 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) /* 04C1C8 7F017698 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) @@ -24041,11 +24564,11 @@ glabel constructor_menu0D_missioncomplete /* 04C25C 7F01772C 2418012C */ li $t8, 300 /* 04C260 7F017730 AFB80C64 */ sw $t8, 0xc64($sp) /* 04C264 7F017734 272A00F4 */ addiu $t2, $t9, 0xf4 -/* 04C268 7F017738 0C001107 */ jal get_video2_settings_txtClipW +/* 04C268 7F017738 0C001107 */ jal viGetX /* 04C26C 7F01773C AFAA0C60 */ sw $t2, 0xc60($sp) /* 04C270 7F017740 00028400 */ sll $s0, $v0, 0x10 /* 04C274 7F017744 00105C03 */ sra $t3, $s0, 0x10 -/* 04C278 7F017748 0C00110B */ jal get_video2_settings_txtClipH +/* 04C278 7F017748 0C00110B */ jal viGetY /* 04C27C 7F01774C 01608025 */ move $s0, $t3 /* 04C280 7F017750 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04C284 7F017754 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -24073,11 +24596,11 @@ glabel constructor_menu0D_missioncomplete /* 04C2DC 7F0177AC 0018C840 */ sll $t9, $t8, 1 /* 04C2E0 7F0177B0 272A00F4 */ addiu $t2, $t9, 0xf4 /* 04C2E4 7F0177B4 AFAF0C64 */ sw $t7, 0xc64($sp) -/* 04C2E8 7F0177B8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C2E8 7F0177B8 0C001107 */ jal viGetX /* 04C2EC 7F0177BC AFAA0C60 */ sw $t2, 0xc60($sp) /* 04C2F0 7F0177C0 00028400 */ sll $s0, $v0, 0x10 /* 04C2F4 7F0177C4 00105C03 */ sra $t3, $s0, 0x10 -/* 04C2F8 7F0177C8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C2F8 7F0177C8 0C00110B */ jal viGetY /* 04C2FC 7F0177CC 01608025 */ move $s0, $t3 /* 04C300 7F0177D0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04C304 7F0177D4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -24121,11 +24644,11 @@ glabel constructor_menu0D_missioncomplete /* 04C39C 7F01786C AFB90C64 */ sw $t9, 0xc64($sp) /* 04C3A0 7F017870 000A5840 */ sll $t3, $t2, 1 /* 04C3A4 7F017874 256C00F4 */ addiu $t4, $t3, 0xf4 -/* 04C3A8 7F017878 0C001107 */ jal get_video2_settings_txtClipW +/* 04C3A8 7F017878 0C001107 */ jal viGetX /* 04C3AC 7F01787C AFAC0C60 */ sw $t4, 0xc60($sp) /* 04C3B0 7F017880 00028400 */ sll $s0, $v0, 0x10 /* 04C3B4 7F017884 00106C03 */ sra $t5, $s0, 0x10 -/* 04C3B8 7F017888 0C00110B */ jal get_video2_settings_txtClipH +/* 04C3B8 7F017888 0C00110B */ jal viGetY /* 04C3BC 7F01788C 01A08025 */ move $s0, $t5 /* 04C3C0 7F017890 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) /* 04C3C4 7F017894 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) @@ -24154,11 +24677,11 @@ glabel constructor_menu0D_missioncomplete /* 04C420 7F0178F0 016A5823 */ subu $t3, $t3, $t2 /* 04C424 7F0178F4 256C00F4 */ addiu $t4, $t3, 0xf4 /* 04C428 7F0178F8 AFB90C64 */ sw $t9, 0xc64($sp) -/* 04C42C 7F0178FC 0C001107 */ jal get_video2_settings_txtClipW +/* 04C42C 7F0178FC 0C001107 */ jal viGetX /* 04C430 7F017900 AFAC0C60 */ sw $t4, 0xc60($sp) /* 04C434 7F017904 00028400 */ sll $s0, $v0, 0x10 /* 04C438 7F017908 00106C03 */ sra $t5, $s0, 0x10 -/* 04C43C 7F01790C 0C00110B */ jal get_video2_settings_txtClipH +/* 04C43C 7F01790C 0C00110B */ jal viGetY /* 04C440 7F017910 01A08025 */ move $s0, $t5 /* 04C444 7F017914 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableLarge) /* 04C448 7F017918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableLarge) @@ -24205,11 +24728,11 @@ glabel constructor_menu0D_missioncomplete /* 04C4EC 7F0179BC 000D7080 */ sll $t6, $t5, 2 /* 04C4F0 7F0179C0 01CD7023 */ subu $t6, $t6, $t5 /* 04C4F4 7F0179C4 25CF00F4 */ addiu $t7, $t6, 0xf4 -/* 04C4F8 7F0179C8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C4F8 7F0179C8 0C001107 */ jal viGetX /* 04C4FC 7F0179CC AFAF0C60 */ sw $t7, 0xc60($sp) /* 04C500 7F0179D0 00028400 */ sll $s0, $v0, 0x10 /* 04C504 7F0179D4 0010C403 */ sra $t8, $s0, 0x10 -/* 04C508 7F0179D8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C508 7F0179D8 0C00110B */ jal viGetY /* 04C50C 7F0179DC 03008025 */ move $s0, $t8 /* 04C510 7F0179E0 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04C514 7F0179E4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableLarge) @@ -24236,11 +24759,11 @@ glabel constructor_menu0D_missioncomplete /* 04C568 7F017A38 AFA200A4 */ sw $v0, 0xa4($sp) /* 04C56C 7F017A3C 25AE00F4 */ addiu $t6, $t5, 0xf4 /* 04C570 7F017A40 AFAC0C64 */ sw $t4, 0xc64($sp) -/* 04C574 7F017A44 0C001107 */ jal get_video2_settings_txtClipW +/* 04C574 7F017A44 0C001107 */ jal viGetX /* 04C578 7F017A48 AFAE0C60 */ sw $t6, 0xc60($sp) /* 04C57C 7F017A4C 00028400 */ sll $s0, $v0, 0x10 /* 04C580 7F017A50 00107C03 */ sra $t7, $s0, 0x10 -/* 04C584 7F017A54 0C00110B */ jal get_video2_settings_txtClipH +/* 04C584 7F017A54 0C00110B */ jal viGetY /* 04C588 7F017A58 01E08025 */ move $s0, $t7 /* 04C58C 7F017A5C 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) /* 04C590 7F017A60 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) @@ -24269,11 +24792,11 @@ glabel constructor_menu0D_missioncomplete /* 04C5EC 7F017ABC 240B0082 */ li $t3, 130 /* 04C5F0 7F017AC0 AFAB0C64 */ sw $t3, 0xc64($sp) /* 04C5F4 7F017AC4 258D00F4 */ addiu $t5, $t4, 0xf4 -/* 04C5F8 7F017AC8 0C001107 */ jal get_video2_settings_txtClipW +/* 04C5F8 7F017AC8 0C001107 */ jal viGetX /* 04C5FC 7F017ACC AFAD0C60 */ sw $t5, 0xc60($sp) /* 04C600 7F017AD0 00028400 */ sll $s0, $v0, 0x10 /* 04C604 7F017AD4 00107403 */ sra $t6, $s0, 0x10 -/* 04C608 7F017AD8 0C00110B */ jal get_video2_settings_txtClipH +/* 04C608 7F017AD8 0C00110B */ jal viGetY /* 04C60C 7F017ADC 01C08025 */ move $s0, $t6 /* 04C610 7F017AE0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) /* 04C614 7F017AE4 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) @@ -24470,13 +24993,13 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) int iVar4; int iVar5; - setvideo_far(60.00000000); - set_page_aspect(menu15_aspect); - set_page_height(100.00000000, menu15_pageheight); - set_video2_settings_offset_24(0); + viSetFovY(60.00000000); + viSetAspect(menu15_aspect); + viSetZRange(100.00000000, menu15_pageheight); + viSetUseZBuf(0); MP_menu_selected_option = 0; iVar1 = dword_8002B5E0; - if (get_controller_buttons_held(0,Z_TRIG|A_BUTTON) == 0) { + if (joyGetButtons(0,Z_TRIG|A_BUTTON) == 0) { tab_3_highlight = FALSE; tab_2_highlight = FALSE; tab_1_highlight = FALSE; @@ -24522,12 +25045,12 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) } } dword_8002B5E0 = iVar1; - uVar2 = get_controller_buttons_pressed(0,Z_TRIG|A_BUTTON); + uVar2 = joyGetButtonsPressedThisFrame(0,Z_TRIG|A_BUTTON); if (uVar2 == 0) { - uVar2 = get_controller_buttons_pressed(0,B_BUTTON); + uVar2 = joyGetButtonsPressedThisFrame(0,B_BUTTON); if (uVar2 != 0) { tab_3_selected = TRUE; - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } } else { @@ -24537,7 +25060,7 @@ void interface_menu15_cheat(u32 param_1,u32 param_2) else { tab_3_selected = TRUE; } - play_sfx_a1((s32)(int)ptr_sfx_buf,199,NULL); + play_sfx_a1((s32)(int)g_musicSfxBufferPtr,199,NULL); } disable_all_switches((int)ptr_folder_object_instance); set_item_visibility_in_objinstance((int)ptr_folder_object_instance,0,1); @@ -24568,22 +25091,22 @@ glabel interface_menu15_cheat /* 04C7BC 7F017C8C 3C014270 */ li $at, 0x42700000 # 60.000000 /* 04C7C0 7F017C90 AFBF0014 */ sw $ra, 0x14($sp) /* 04C7C4 7F017C94 44816000 */ mtc1 $at, $f12 -/* 04C7C8 7F017C98 0C001151 */ jal setvideo_far +/* 04C7C8 7F017C98 0C001151 */ jal viSetFovY /* 04C7CC 7F017C9C 00000000 */ nop /* 04C7D0 7F017CA0 3C018005 */ lui $at, %hi(menu15_aspect) -/* 04C7D4 7F017CA4 0C001164 */ jal set_page_aspect +/* 04C7D4 7F017CA4 0C001164 */ jal viSetAspect /* 04C7D8 7F017CA8 C42C1AE4 */ lwc1 $f12, %lo(menu15_aspect)($at) /* 04C7DC 7F017CAC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 /* 04C7E0 7F017CB0 44816000 */ mtc1 $at, $f12 /* 04C7E4 7F017CB4 3C018005 */ lui $at, %hi(menu15_pageheight) -/* 04C7E8 7F017CB8 0C001194 */ jal set_page_height +/* 04C7E8 7F017CB8 0C001194 */ jal viSetZRange /* 04C7EC 7F017CBC C42E1AE8 */ lwc1 $f14, %lo(menu15_pageheight)($at) -/* 04C7F0 7F017CC0 0C00114D */ jal set_video2_settings_offset_24 +/* 04C7F0 7F017CC0 0C00114D */ jal viSetUseZBuf /* 04C7F4 7F017CC4 00002025 */ move $a0, $zero /* 04C7F8 7F017CC8 3C018003 */ lui $at, %hi(MP_menu_selected_option) /* 04C7FC 7F017CCC AC20B5E4 */ sw $zero, %lo(MP_menu_selected_option)($at) /* 04C800 7F017CD0 00002025 */ move $a0, $zero -/* 04C804 7F017CD4 0C0030C3 */ jal get_controller_buttons_held +/* 04C804 7F017CD4 0C0030C3 */ jal joyGetButtons /* 04C808 7F017CD8 3405A000 */ li $a1, 40960 /* 04C80C 7F017CDC 14400049 */ bnez $v0, .L7F017E04 /* 04C810 7F017CE0 3C018003 */ lui $at, %hi(tab_3_highlight) @@ -24669,13 +25192,13 @@ glabel interface_menu15_cheat .L7F017E04: /* 04C934 7F017E04 00002025 */ move $a0, $zero .L7F017E08: -/* 04C938 7F017E08 0C0030EB */ jal get_controller_buttons_pressed +/* 04C938 7F017E08 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04C93C 7F017E0C 3405A000 */ li $a1, 40960 /* 04C940 7F017E10 10400012 */ beqz $v0, .L7F017E5C /* 04C944 7F017E14 00002025 */ move $a0, $zero /* 04C948 7F017E18 3C0B8003 */ lui $t3, %hi(tab_3_highlight) /* 04C94C 7F017E1C 8D6BA8E4 */ lw $t3, %lo(tab_3_highlight)($t3) -/* 04C950 7F017E20 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04C950 7F017E20 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04C954 7F017E24 240500C7 */ li $a1, 199 /* 04C958 7F017E28 11600005 */ beqz $t3, .L7F017E40 /* 04C95C 7F017E2C 00003025 */ move $a2, $zero @@ -24689,18 +25212,18 @@ glabel interface_menu15_cheat /* 04C978 7F017E48 AC2DB5E4 */ sw $t5, %lo(MP_menu_selected_option)($at) .L7F017E4C: /* 04C97C 7F017E4C 0C002382 */ jal play_sfx_a1 -/* 04C980 7F017E50 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C980 7F017E50 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04C984 7F017E54 1000000C */ b .L7F017E88 /* 04C988 7F017E58 00000000 */ nop .L7F017E5C: -/* 04C98C 7F017E5C 0C0030EB */ jal get_controller_buttons_pressed +/* 04C98C 7F017E5C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04C990 7F017E60 24054000 */ li $a1, 16384 /* 04C994 7F017E64 10400008 */ beqz $v0, .L7F017E88 /* 04C998 7F017E68 240E0001 */ li $t6, 1 /* 04C99C 7F017E6C 3C018003 */ lui $at, %hi(tab_3_selected) -/* 04C9A0 7F017E70 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 04C9A0 7F017E70 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 04C9A4 7F017E74 AC2EA8D8 */ sw $t6, %lo(tab_3_selected)($at) -/* 04C9A8 7F017E78 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 04C9A8 7F017E78 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 04C9AC 7F017E7C 240500C7 */ li $a1, 199 /* 04C9B0 7F017E80 0C002382 */ jal play_sfx_a1 /* 04C9B4 7F017E84 00003025 */ move $a2, $zero @@ -24786,9 +25309,9 @@ glabel constructor_menu15_cheat /* 04CAB4 7F017F84 AFB00038 */ sw $s0, 0x38($sp) /* 04CAB8 7F017F88 00002825 */ move $a1, $zero /* 04CABC 7F017F8C 00003025 */ move $a2, $zero -/* 04CAC0 7F017F90 0C0011B4 */ jal set_setfillcolor +/* 04CAC0 7F017F90 0C0011B4 */ jal viSetFillColor /* 04CAC4 7F017F94 00003825 */ move $a3, $zero -/* 04CAC8 7F017F98 0C000FBE */ jal insert_generic_fillrect +/* 04CAC8 7F017F98 0C000FBE */ jal viFillScreen /* 04CACC 7F017F9C 00402025 */ move $a0, $v0 /* 04CAD0 7F017FA0 0FC0357A */ jal sub_GAME_7F00D5E8 /* 04CAD4 7F017FA4 00402025 */ move $a0, $v0 @@ -24853,11 +25376,11 @@ glabel constructor_menu15_cheat /* 04CBB8 7F018088 2445FFFE */ addiu $a1, $v0, -2 /* 04CBBC 7F01808C 0040A025 */ move $s4, $v0 .L7F018090: -/* 04CBC0 7F018090 0C001107 */ jal get_video2_settings_txtClipW +/* 04CBC0 7F018090 0C001107 */ jal viGetX /* 04CBC4 7F018094 00000000 */ nop /* 04CBC8 7F018098 00028400 */ sll $s0, $v0, 0x10 /* 04CBCC 7F01809C 00105C03 */ sra $t3, $s0, 0x10 -/* 04CBD0 7F0180A0 0C00110B */ jal get_video2_settings_txtClipH +/* 04CBD0 7F0180A0 0C00110B */ jal viGetY /* 04CBD4 7F0180A4 01608025 */ move $s0, $t3 /* 04CBD8 7F0180A8 8ECC0000 */ lw $t4, ($s6) /* 04CBDC 7F0180AC 8EED0000 */ lw $t5, ($s7) @@ -24909,11 +25432,11 @@ glabel constructor_menu15_cheat /* 04CC90 7F018160 10000001 */ b .L7F018168 /* 04CC94 7F018164 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff .L7F018168: -/* 04CC98 7F018168 0C001107 */ jal get_video2_settings_txtClipW +/* 04CC98 7F018168 0C001107 */ jal viGetX /* 04CC9C 7F01816C 00000000 */ nop /* 04CCA0 7F018170 00028400 */ sll $s0, $v0, 0x10 /* 04CCA4 7F018174 00105403 */ sra $t2, $s0, 0x10 -/* 04CCA8 7F018178 0C00110B */ jal get_video2_settings_txtClipH +/* 04CCA8 7F018178 0C00110B */ jal viGetY /* 04CCAC 7F01817C 01408025 */ move $s0, $t2 /* 04CCB0 7F018180 8ECB0000 */ lw $t3, ($s6) /* 04CCB4 7F018184 8EEC0000 */ lw $t4, ($s7) @@ -24995,11 +25518,11 @@ glabel constructor_menu15_cheat /* 04CDD4 7F0182A4 2445FFFE */ addiu $a1, $v0, -2 /* 04CDD8 7F0182A8 0040A025 */ move $s4, $v0 .L7F0182AC: -/* 04CDDC 7F0182AC 0C001107 */ jal get_video2_settings_txtClipW +/* 04CDDC 7F0182AC 0C001107 */ jal viGetX /* 04CDE0 7F0182B0 00000000 */ nop /* 04CDE4 7F0182B4 00028400 */ sll $s0, $v0, 0x10 /* 04CDE8 7F0182B8 00105403 */ sra $t2, $s0, 0x10 -/* 04CDEC 7F0182BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04CDEC 7F0182BC 0C00110B */ jal viGetY /* 04CDF0 7F0182C0 01408025 */ move $s0, $t2 /* 04CDF4 7F0182C4 8ECB0000 */ lw $t3, ($s6) /* 04CDF8 7F0182C8 8EEC0000 */ lw $t4, ($s7) @@ -25051,11 +25574,11 @@ glabel constructor_menu15_cheat /* 04CEAC 7F01837C 10000001 */ b .L7F018384 /* 04CEB0 7F018380 363100FF */ ori $s1, (0xA00000FF & 0xFFFF) # ori $s1, $s1, 0xff .L7F018384: -/* 04CEB4 7F018384 0C001107 */ jal get_video2_settings_txtClipW +/* 04CEB4 7F018384 0C001107 */ jal viGetX /* 04CEB8 7F018388 00000000 */ nop /* 04CEBC 7F01838C 00028400 */ sll $s0, $v0, 0x10 /* 04CEC0 7F018390 00104C03 */ sra $t1, $s0, 0x10 -/* 04CEC4 7F018394 0C00110B */ jal get_video2_settings_txtClipH +/* 04CEC4 7F018394 0C00110B */ jal viGetY /* 04CEC8 7F018398 01208025 */ move $s0, $t1 /* 04CECC 7F01839C 8ECA0000 */ lw $t2, ($s6) /* 04CED0 7F0183A0 8EEB0000 */ lw $t3, ($s7) @@ -25133,7 +25656,7 @@ GLOBAL_ASM( glabel constructor_menu16_nocontrollers /* 04CF80 7F018450 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 04CF84 7F018454 AFBF0034 */ sw $ra, 0x34($sp) -/* 04CF88 7F018458 0C002E9C */ jal get_num_controllers_plugged_in +/* 04CF88 7F018458 0C002E9C */ jal joyGetConnectedControllers /* 04CF8C 7F01845C AFA40060 */ sw $a0, 0x60($sp) /* 04CF90 7F018460 304E0008 */ andi $t6, $v0, 8 /* 04CF94 7F018464 00004025 */ move $t0, $zero @@ -25192,9 +25715,9 @@ glabel constructor_menu16_nocontrollers /* 04D050 7F018520 016A6023 */ subu $t4, $t3, $t2 /* 04D054 7F018524 01EEC023 */ subu $t8, $t7, $t6 /* 04D058 7F018528 AFAC0054 */ sw $t4, 0x54($sp) -/* 04D05C 7F01852C 0C001107 */ jal get_video2_settings_txtClipW +/* 04D05C 7F01852C 0C001107 */ jal viGetX /* 04D060 7F018530 AFB80050 */ sw $t8, 0x50($sp) -/* 04D064 7F018534 0C00110B */ jal get_video2_settings_txtClipH +/* 04D064 7F018534 0C00110B */ jal viGetY /* 04D068 7F018538 A7A2003C */ sh $v0, 0x3c($sp) /* 04D06C 7F01853C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) /* 04D070 7F018540 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) @@ -25249,9 +25772,9 @@ glabel constructor_menu16_nocontrollers /* 04D12C 7F0185FC 01CFC023 */ subu $t8, $t6, $t7 /* 04D130 7F018600 01695023 */ subu $t2, $t3, $t1 /* 04D134 7F018604 AFB80054 */ sw $t8, 0x54($sp) -/* 04D138 7F018608 0C001107 */ jal get_video2_settings_txtClipW +/* 04D138 7F018608 0C001107 */ jal viGetX /* 04D13C 7F01860C AFAA0050 */ sw $t2, 0x50($sp) -/* 04D140 7F018610 0C00110B */ jal get_video2_settings_txtClipH +/* 04D140 7F018610 0C00110B */ jal viGetY /* 04D144 7F018614 A7A2003C */ sh $v0, 0x3c($sp) /* 04D148 7F018618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) /* 04D14C 7F01861C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) @@ -25284,7 +25807,7 @@ GLOBAL_ASM( glabel constructor_menu16_nocontrollers /* 04D070 7F018500 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 04D074 7F018504 AFBF0034 */ sw $ra, 0x34($sp) -/* 04D078 7F018508 0C002EA0 */ jal get_num_controllers_plugged_in +/* 04D078 7F018508 0C002EA0 */ jal joyGetConnectedControllers /* 04D07C 7F01850C AFA40060 */ sw $a0, 0x60($sp) /* 04D080 7F018510 304E0008 */ andi $t6, $v0, 8 /* 04D084 7F018514 00004025 */ move $t0, $zero @@ -25347,9 +25870,9 @@ glabel constructor_menu16_nocontrollers /* 04D154 7F0185E4 AFAC0054 */ sw $t4, 0x54($sp) /* 04D158 7F0185E8 1320001D */ beqz $t9, .L7F018660 /* 04D15C 7F0185EC AFB80050 */ sw $t8, 0x50($sp) -/* 04D160 7F0185F0 0C001107 */ jal get_video2_settings_txtClipW +/* 04D160 7F0185F0 0C001107 */ jal viGetX /* 04D164 7F0185F4 AFA80044 */ sw $t0, 0x44($sp) -/* 04D168 7F0185F8 0C00110B */ jal get_video2_settings_txtClipH +/* 04D168 7F0185F8 0C00110B */ jal viGetY /* 04D16C 7F0185FC A7A2003C */ sh $v0, 0x3c($sp) /* 04D170 7F018600 3C098004 */ lui $t1, %hi(ptrSecondFontTableLarge) # $t1, 0x8004 /* 04D174 7F018604 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableLarge) # $t3, 0x8004 @@ -25376,9 +25899,9 @@ glabel constructor_menu16_nocontrollers /* 04D1C8 7F018658 10000019 */ b .L7F0186C0 /* 04D1CC 7F01865C AFA20060 */ sw $v0, 0x60($sp) .L7F018660: -/* 04D1D0 7F018660 0C001107 */ jal get_video2_settings_txtClipW +/* 04D1D0 7F018660 0C001107 */ jal viGetX /* 04D1D4 7F018664 AFA80044 */ sw $t0, 0x44($sp) -/* 04D1D8 7F018668 0C00110B */ jal get_video2_settings_txtClipH +/* 04D1D8 7F018668 0C00110B */ jal viGetY /* 04D1DC 7F01866C A7A2003C */ sh $v0, 0x3c($sp) /* 04D1E0 7F018670 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableLarge) # $t7, 0x8004 /* 04D1E4 7F018674 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 @@ -25437,9 +25960,9 @@ glabel constructor_menu16_nocontrollers /* 04D2AC 7F01873C AFAD0054 */ sw $t5, 0x54($sp) /* 04D2B0 7F018740 1120001C */ beqz $t1, .L7F0187B4 /* 04D2B4 7F018744 AFB90050 */ sw $t9, 0x50($sp) -/* 04D2B8 7F018748 0C001107 */ jal get_video2_settings_txtClipW +/* 04D2B8 7F018748 0C001107 */ jal viGetX /* 04D2BC 7F01874C 00000000 */ nop -/* 04D2C0 7F018750 0C00110B */ jal get_video2_settings_txtClipH +/* 04D2C0 7F018750 0C00110B */ jal viGetY /* 04D2C4 7F018754 A7A2003C */ sh $v0, 0x3c($sp) /* 04D2C8 7F018758 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableLarge) # $t3, 0x8004 /* 04D2CC 7F01875C 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) # $t4, 0x8004 @@ -25465,9 +25988,9 @@ glabel constructor_menu16_nocontrollers /* 04D31C 7F0187AC 10000018 */ b .L7F018810 /* 04D320 7F0187B0 AFA20060 */ sw $v0, 0x60($sp) .L7F0187B4: -/* 04D324 7F0187B4 0C001107 */ jal get_video2_settings_txtClipW +/* 04D324 7F0187B4 0C001107 */ jal viGetX /* 04D328 7F0187B8 00000000 */ nop -/* 04D32C 7F0187BC 0C00110B */ jal get_video2_settings_txtClipH +/* 04D32C 7F0187BC 0C00110B */ jal viGetY /* 04D330 7F0187C0 A7A2003C */ sh $v0, 0x3c($sp) /* 04D334 7F0187C4 3C188004 */ lui $t8, %hi(ptrSecondFontTableLarge) # $t8, 0x8004 /* 04D338 7F0187C8 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableLarge) # $t6, 0x8004 @@ -25497,41 +26020,171 @@ glabel constructor_menu16_nocontrollers ) #endif -#endif - -#ifdef NONMATCHING -void do_extended_cast_display(u32 flag) -{ - if (flag != FALSE) { - do_not_play_intro_movie = 0; - full_actor_intro = flag; - return; - } - do_not_play_intro_movie = 1; - full_actor_intro = flag; -} -#else +#ifdef VERSION_EU GLOBAL_ASM( .text -glabel do_extended_cast_display -/* 04D1A0 7F018670 3C018003 */ lui $at, %hi(full_actor_intro) -/* 04D1A4 7F018674 10800004 */ beqz $a0, .L7F018688 -/* 04D1A8 7F018678 AC24B5FC */ sw $a0, %lo(full_actor_intro)($at) -/* 04D1AC 7F01867C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) -/* 04D1B0 7F018680 03E00008 */ jr $ra -/* 04D1B4 7F018684 AC20B5E8 */ sw $zero, %lo(do_not_play_intro_movie)($at) -.L7F018688: -/* 04D1B8 7F018688 240E0001 */ li $t6, 1 -/* 04D1BC 7F01868C 3C018003 */ lui $at, %hi(do_not_play_intro_movie) -/* 04D1C0 7F018690 AC2EB5E8 */ sw $t6, %lo(do_not_play_intro_movie)($at) -/* 04D1C4 7F018694 03E00008 */ jr $ra -/* 04D1C8 7F018698 00000000 */ nop +glabel constructor_menu16_nocontrollers +/* 04CF80 7F018450 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 04CF84 7F018454 AFBF0034 */ sw $ra, 0x34($sp) +/* 04CF88 7F018458 0C002E9C */ jal joyGetConnectedControllers +/* 04CF8C 7F01845C AFA40060 */ sw $a0, 0x60($sp) +/* 04CF90 7F018460 304E0008 */ andi $t6, $v0, 8 +/* 04CF94 7F018464 00004025 */ move $t0, $zero +/* 04CF98 7F018468 11C00002 */ beqz $t6, .L7F018474 +/* 04CF9C 7F01846C 00401825 */ move $v1, $v0 +/* 04CFA0 7F018470 24080001 */ li $t0, 1 +.L7F018474: +/* 04CFA4 7F018474 306F0004 */ andi $t7, $v1, 4 +/* 04CFA8 7F018478 11E00002 */ beqz $t7, .L7F018484 +/* 04CFAC 7F01847C 30780002 */ andi $t8, $v1, 2 +/* 04CFB0 7F018480 25080001 */ addiu $t0, $t0, 1 +.L7F018484: +/* 04CFB4 7F018484 13000002 */ beqz $t8, .L7F018490 +/* 04CFB8 7F018488 8FA40060 */ lw $a0, 0x60($sp) +/* 04CFBC 7F01848C 25080001 */ addiu $t0, $t0, 1 +.L7F018490: +/* 04CFC0 7F018490 0FC07034 */ jal insert_imageDL +/* 04CFC4 7F018494 AFA80044 */ sw $t0, 0x44($sp) +/* 04CFC8 7F018498 0FC2B366 */ jal microcode_constructor +/* 04CFCC 7F01849C 00402025 */ move $a0, $v0 +/* 04CFD0 7F0184A0 8FA80044 */ lw $t0, 0x44($sp) +/* 04CFD4 7F0184A4 AFA20060 */ sw $v0, 0x60($sp) +/* 04CFD8 7F0184A8 24010001 */ li $at, 1 +/* 04CFDC 7F0184AC 51000007 */ beql $t0, $zero, .L7F0184CC +/* 04CFE0 7F0184B0 34049C76 */ li $a0, 40054 +/* 04CFE4 7F0184B4 11010004 */ beq $t0, $at, .L7F0184C8 +/* 04CFE8 7F0184B8 24010002 */ li $at, 2 +/* 04CFEC 7F0184BC 11010002 */ beq $t0, $at, .L7F0184C8 +/* 04CFF0 7F0184C0 24010003 */ li $at, 3 +/* 04CFF4 7F0184C4 15010005 */ bne $t0, $at, .L7F0184DC +.L7F0184C8: +/* 04CFF8 7F0184C8 34049C76 */ li $a0, 40054 +.L7F0184CC: +/* 04CFFC 7F0184CC 0FC30776 */ jal get_textptr_for_textID +/* 04D000 7F0184D0 AFA80044 */ sw $t0, 0x44($sp) +/* 04D004 7F0184D4 8FA80044 */ lw $t0, 0x44($sp) +/* 04D008 7F0184D8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0184DC: +/* 04D00C 7F0184DC 3C198004 */ lui $t9, %hi(ptrFirstFontTableLarge) +/* 04D010 7F0184E0 8F390EB4 */ lw $t9, %lo(ptrFirstFontTableLarge)($t9) +/* 04D014 7F0184E4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D018 7F0184E8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D01C 7F0184EC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D020 7F0184F0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D024 7F0184F4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D028 7F0184F8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D02C 7F0184FC AFA80044 */ sw $t0, 0x44($sp) +/* 04D030 7F018500 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D034 7F018504 AFB90010 */ sw $t9, 0x10($sp) +/* 04D038 7F018508 8FA90058 */ lw $t1, 0x58($sp) +/* 04D03C 7F01850C 8FAD005C */ lw $t5, 0x5c($sp) +/* 04D040 7F018510 240B00DC */ li $t3, 220 +/* 04D044 7F018514 240F0099 */ li $t7, 153 +/* 04D048 7F018518 00095043 */ sra $t2, $t1, 1 +/* 04D04C 7F01851C 000D7043 */ sra $t6, $t5, 1 +/* 04D050 7F018520 016A6023 */ subu $t4, $t3, $t2 +/* 04D054 7F018524 01EEC023 */ subu $t8, $t7, $t6 +/* 04D058 7F018528 AFAC0054 */ sw $t4, 0x54($sp) +/* 04D05C 7F01852C 0C001107 */ jal viGetX +/* 04D060 7F018530 AFB80050 */ sw $t8, 0x50($sp) +/* 04D064 7F018534 0C00110B */ jal viGetY +/* 04D068 7F018538 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D06C 7F01853C 3C198004 */ lui $t9, %hi(ptrSecondFontTableLarge) +/* 04D070 7F018540 3C098004 */ lui $t1, %hi(ptrFirstFontTableLarge) +/* 04D074 7F018544 8D290EB4 */ lw $t1, %lo(ptrFirstFontTableLarge)($t1) +/* 04D078 7F018548 8F390EB8 */ lw $t9, %lo(ptrSecondFontTableLarge)($t9) +/* 04D07C 7F01854C 87AA003C */ lh $t2, 0x3c($sp) +/* 04D080 7F018550 240BFFFF */ li $t3, -1 +/* 04D084 7F018554 AFAB0018 */ sw $t3, 0x18($sp) +/* 04D088 7F018558 8FA40060 */ lw $a0, 0x60($sp) +/* 04D08C 7F01855C 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D090 7F018560 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D094 7F018564 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D098 7F018568 AFA20020 */ sw $v0, 0x20($sp) +/* 04D09C 7F01856C AFA00024 */ sw $zero, 0x24($sp) +/* 04D0A0 7F018570 AFA00028 */ sw $zero, 0x28($sp) +/* 04D0A4 7F018574 AFA90014 */ sw $t1, 0x14($sp) +/* 04D0A8 7F018578 AFB90010 */ sw $t9, 0x10($sp) +/* 04D0AC 7F01857C 0FC2B6AF */ jal en_text_write_stuff +/* 04D0B0 7F018580 AFAA001C */ sw $t2, 0x1c($sp) +/* 04D0B4 7F018584 8FA80044 */ lw $t0, 0x44($sp) +/* 04D0B8 7F018588 AFA20060 */ sw $v0, 0x60($sp) +/* 04D0BC 7F01858C 24010001 */ li $at, 1 +/* 04D0C0 7F018590 11000007 */ beqz $t0, .L7F0185B0 +/* 04D0C4 7F018594 00000000 */ nop +/* 04D0C8 7F018598 11010005 */ beq $t0, $at, .L7F0185B0 +/* 04D0CC 7F01859C 24010002 */ li $at, 2 +/* 04D0D0 7F0185A0 11010003 */ beq $t0, $at, .L7F0185B0 +/* 04D0D4 7F0185A4 24010003 */ li $at, 3 +/* 04D0D8 7F0185A8 15010004 */ bne $t0, $at, .L7F0185BC +/* 04D0DC 7F0185AC 00000000 */ nop +.L7F0185B0: +/* 04D0E0 7F0185B0 0FC30776 */ jal get_textptr_for_textID +/* 04D0E4 7F0185B4 34049C77 */ li $a0, 40055 +/* 04D0E8 7F0185B8 AFA2004C */ sw $v0, 0x4c($sp) +.L7F0185BC: +/* 04D0EC 7F0185BC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableLarge) +/* 04D0F0 7F0185C0 8D8C0EB4 */ lw $t4, %lo(ptrFirstFontTableLarge)($t4) +/* 04D0F4 7F0185C4 3C078004 */ lui $a3, %hi(ptrSecondFontTableLarge) +/* 04D0F8 7F0185C8 8CE70EB8 */ lw $a3, %lo(ptrSecondFontTableLarge)($a3) +/* 04D0FC 7F0185CC 27A4005C */ addiu $a0, $sp, 0x5c +/* 04D100 7F0185D0 27A50058 */ addiu $a1, $sp, 0x58 +/* 04D104 7F0185D4 8FA6004C */ lw $a2, 0x4c($sp) +/* 04D108 7F0185D8 AFA00014 */ sw $zero, 0x14($sp) +/* 04D10C 7F0185DC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 04D110 7F0185E0 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D114 7F0185E4 8FAD0058 */ lw $t5, 0x58($sp) +/* 04D118 7F0185E8 8FB9005C */ lw $t9, 0x5c($sp) +/* 04D11C 7F0185EC 240E00DC */ li $t6, 220 +/* 04D120 7F0185F0 240B00B1 */ li $t3, 177 +/* 04D124 7F0185F4 000D7843 */ sra $t7, $t5, 1 +/* 04D128 7F0185F8 00194843 */ sra $t1, $t9, 1 +/* 04D12C 7F0185FC 01CFC023 */ subu $t8, $t6, $t7 +/* 04D130 7F018600 01695023 */ subu $t2, $t3, $t1 +/* 04D134 7F018604 AFB80054 */ sw $t8, 0x54($sp) +/* 04D138 7F018608 0C001107 */ jal viGetX +/* 04D13C 7F01860C AFAA0050 */ sw $t2, 0x50($sp) +/* 04D140 7F018610 0C00110B */ jal viGetY +/* 04D144 7F018614 A7A2003C */ sh $v0, 0x3c($sp) +/* 04D148 7F018618 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableLarge) +/* 04D14C 7F01861C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) +/* 04D150 7F018620 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) +/* 04D154 7F018624 8D8C0EB8 */ lw $t4, %lo(ptrSecondFontTableLarge)($t4) +/* 04D158 7F018628 87AF003C */ lh $t7, 0x3c($sp) +/* 04D15C 7F01862C 240EFFFF */ li $t6, -1 +/* 04D160 7F018630 AFAE0018 */ sw $t6, 0x18($sp) +/* 04D164 7F018634 8FA40060 */ lw $a0, 0x60($sp) +/* 04D168 7F018638 27A50054 */ addiu $a1, $sp, 0x54 +/* 04D16C 7F01863C 27A60050 */ addiu $a2, $sp, 0x50 +/* 04D170 7F018640 8FA7004C */ lw $a3, 0x4c($sp) +/* 04D174 7F018644 AFA20020 */ sw $v0, 0x20($sp) +/* 04D178 7F018648 AFA00024 */ sw $zero, 0x24($sp) +/* 04D17C 7F01864C AFA00028 */ sw $zero, 0x28($sp) +/* 04D180 7F018650 AFAD0014 */ sw $t5, 0x14($sp) +/* 04D184 7F018654 AFAC0010 */ sw $t4, 0x10($sp) +/* 04D188 7F018658 0FC2B6AF */ jal en_text_write_stuff +/* 04D18C 7F01865C AFAF001C */ sw $t7, 0x1c($sp) +/* 04D190 7F018660 8FBF0034 */ lw $ra, 0x34($sp) +/* 04D194 7F018664 27BD0060 */ addiu $sp, $sp, 0x60 +/* 04D198 7F018668 03E00008 */ jr $ra +/* 04D19C 7F01866C 00000000 */ nop ) #endif +#endif +void do_extended_cast_display(s32 flag) +{ + full_actor_intro = flag; + if (flag != 0) + { + do_not_play_intro_movie = 0; + return; + } + do_not_play_intro_movie = 1; +} #ifdef NONMATCHING @@ -25576,10 +26229,10 @@ void init_menu18_displaycast(void) local_14 = DAT_8002ba30; local_10 = DAT_8002ba34; headHeader = NULL; - uVar2 = get_random_value(); + uVar2 = randomGetNext(); if ((full_actor_intro != FALSE) && (do_not_play_intro_movie == 0)) { - musicTrack1Vol(0x7fff); - music1_playing = FALSE; + musicTrack1ApplySeqpVol(0x7fff); + g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; musicTrack1Play(M_INTRO); } intro_animation_count = 0; @@ -25589,7 +26242,7 @@ void init_menu18_displaycast(void) intro_animation_count += 1; } } - randomly_selected_intro_animation = get_random_value(); + randomly_selected_intro_animation = randomGetNext(); randomly_selected_intro_animation %= intro_animation_count; bodyID = intro_char_table[do_not_play_intro_movie].body; headID = intro_char_table[do_not_play_intro_movie].head; @@ -25598,7 +26251,7 @@ void init_menu18_displaycast(void) trap(0x1c00); } if (bodyID == BODY_Special_Operations_Uniform) { - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if (true) { switch(uVar3 % 5) { case 1: @@ -25621,13 +26274,13 @@ void init_menu18_displaycast(void) } else { if (bodyID == BODY_Natalya_Skirt) { - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if ((uVar3 & 1) != 0) { bodyID = BODY_Natalya_Jungle_Fatigues; } } else { - if ((bodyID == BODY_Trevelyan_006) && (uVar3 = get_random_value(), (uVar3 & 1) != 0)) { + if ((bodyID == BODY_Trevelyan_006) && (uVar3 = randomGetNext(), (uVar3 & 1) != 0)) { bodyID = BODY_Trevelyan_Janus; } } @@ -25671,7 +26324,7 @@ void init_menu18_displaycast(void) rifles[2] = random_rifles_in_intro[2]; rifles[4] = random_rifles_in_intro[4]; rifles[5] = random_rifles_in_intro[5]; - uVar3 = get_random_value(); + uVar3 = randomGetNext(); iVar6 = rifles[uVar3 % 6]; } else { @@ -25687,7 +26340,7 @@ void init_menu18_displaycast(void) piVar9 = piVar10; } while (piVar8 != random_pistols_in_intro + 9); *piVar10 = random_pistols_in_intro[9]; - uVar3 = get_random_value(); + uVar3 = randomGetNext(); iVar6 = local_8c[uVar3 % 10]; } if ((iVar6 == 0xbe) && (lVar1 = check_cradle_completed_any_folder(), lVar1 == 0)) { @@ -25728,37 +26381,37 @@ void init_menu18_displaycast(void) intro_animation_table[randomly_selected_intro_animation].startframeoffset, extraout_f14_00); menu_timer = 0; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; } DAT_800695a4 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; } DAT_800695a8 = fVar11 * 0.00000000 * 80.00000000 + 70.00000000; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; } DAT_800695b0 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B00; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; } DAT_800695b4 = (fVar11 * 0.00000000 - 0.50000000) * flt_80051B04; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; } DAT_800695bc = fVar11 * 0.00000000 * 200.00000000 + -100.00000000; - iVar6 = get_random_value(); + iVar6 = randomGetNext(); fVar11 = (float)iVar6; if (iVar6 < 0) { fVar11 = fVar11 + 4294967296.00000000; @@ -25811,14 +26464,7 @@ glabel D_80051B34 .word 0x3D4CCCD0 /*0.050000012;*/ glabel D_80051B38 .word 0x40490FDB /*3.1415927;*/ -glabel D_80051B3C -.word 0x3FAAAAAB /*1.3333334;*/ -glabel D_80051B40 -.word 0x461C4000 /*10000.0;*/ -glabel D_80051B44 -.word 0x3FAAAAAB /*1.3333334;*/ -glabel D_80051B48 -.word 0x3FAAAAAB /*1.3333334;*/ + .text glabel init_menu18_displaycast /* 04D1CC 7F01869C 3C0E8003 */ lui $t6, %hi(ptr_logo_and_walletbond_DL) @@ -25835,7 +26481,7 @@ glabel init_menu18_displaycast /* 04D1F8 7F0186C8 8F010008 */ lw $at, 8($t8) /* 04D1FC 7F0186CC ADE90004 */ sw $t1, 4($t7) /* 04D200 7F0186D0 ADE10008 */ sw $at, 8($t7) -/* 04D204 7F0186D4 0C002914 */ jal get_random_value +/* 04D204 7F0186D4 0C002914 */ jal randomGetNext /* 04D208 7F0186D8 AFA0007C */ sw $zero, 0x7c($sp) /* 04D20C 7F0186DC 3C0B8003 */ lui $t3, %hi(full_actor_intro) /* 04D210 7F0186E0 8D6BB5FC */ lw $t3, %lo(full_actor_intro)($t3) @@ -25846,10 +26492,10 @@ glabel init_menu18_displaycast /* 04D224 7F0186F4 8D8CB5E8 */ lw $t4, %lo(do_not_play_intro_movie)($t4) /* 04D228 7F0186F8 15800007 */ bnez $t4, .L7F018718 /* 04D22C 7F0186FC 00000000 */ nop -/* 04D230 7F018700 0C001C0F */ jal musicTrack1Vol +/* 04D230 7F018700 0C001C0F */ jal musicTrack1ApplySeqpVol /* 04D234 7F018704 24047FFF */ li $a0, 32767 -/* 04D238 7F018708 3C018002 */ lui $at, %hi(music1_playing) -/* 04D23C 7F01870C AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 04D238 7F018708 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) +/* 04D23C 7F01870C AC20434C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 04D240 7F018710 0C001B9F */ jal musicTrack1Play /* 04D244 7F018714 24040002 */ li $a0, 2 .L7F018718: @@ -25873,7 +26519,7 @@ glabel init_menu18_displaycast /* 04D288 7F018758 0523FFFA */ bgezl $t1, .L7F018744 /* 04D28C 7F01875C 24590001 */ addiu $t9, $v0, 1 .L7F018760: -/* 04D290 7F018760 0C002914 */ jal get_random_value +/* 04D290 7F018760 0C002914 */ jal randomGetNext /* 04D294 7F018764 00000000 */ nop /* 04D298 7F018768 3C038003 */ lui $v1, %hi(intro_animation_count) /* 04D29C 7F01876C 2463B5F0 */ addiu $v1, %lo(intro_animation_count) # addiu $v1, $v1, -0x4a10 @@ -25908,7 +26554,7 @@ glabel init_menu18_displaycast /* 04D30C 7F0187DC AFB90088 */ sw $t9, 0x88($sp) /* 04D310 7F0187E0 15010022 */ bne $t0, $at, .L7F01886C /* 04D314 7F0187E4 AFA9006C */ sw $t1, 0x6c($sp) -/* 04D318 7F0187E8 0C002914 */ jal get_random_value +/* 04D318 7F0187E8 0C002914 */ jal randomGetNext /* 04D31C 7F0187EC 00000000 */ nop /* 04D320 7F0187F0 24010005 */ li $at, 5 /* 04D324 7F0187F4 0041001B */ divu $zero, $v0, $at @@ -25951,7 +26597,7 @@ set_body_5: /* 04D3A4 7F018874 8FAD008C */ lw $t5, 0x8c($sp) /* 04D3A8 7F018878 55410009 */ bnel $t2, $at, .L7F0188A0 /* 04D3AC 7F01887C 24010009 */ li $at, 9 -/* 04D3B0 7F018880 0C002914 */ jal get_random_value +/* 04D3B0 7F018880 0C002914 */ jal randomGetNext /* 04D3B4 7F018884 00000000 */ nop /* 04D3B8 7F018888 304B0001 */ andi $t3, $v0, 1 /* 04D3BC 7F01888C 1160000C */ beqz $t3, .L7F0188C0 @@ -25962,7 +26608,7 @@ set_body_5: .L7F0188A0: /* 04D3D0 7F0188A0 55A10008 */ bnel $t5, $at, .L7F0188C4 /* 04D3D4 7F0188A4 8FB90088 */ lw $t9, 0x88($sp) -/* 04D3D8 7F0188A8 0C002914 */ jal get_random_value +/* 04D3D8 7F0188A8 0C002914 */ jal randomGetNext /* 04D3DC 7F0188AC 00000000 */ nop /* 04D3E0 7F0188B0 304E0001 */ andi $t6, $v0, 1 /* 04D3E4 7F0188B4 11C00002 */ beqz $t6, .L7F0188C0 @@ -26092,7 +26738,7 @@ set_body_mp_choice_maybe: /* 04D5C0 7F018A90 8DE10010 */ lw $at, 0x10($t7) /* 04D5C4 7F018A94 8DEE0014 */ lw $t6, 0x14($t7) /* 04D5C8 7F018A98 AD210010 */ sw $at, 0x10($t1) -/* 04D5CC 7F018A9C 0C002914 */ jal get_random_value +/* 04D5CC 7F018A9C 0C002914 */ jal randomGetNext /* 04D5D0 7F018AA0 AD2E0014 */ sw $t6, 0x14($t1) /* 04D5D4 7F018AA4 24010006 */ li $at, 6 /* 04D5D8 7F018AA8 0041001B */ divu $zero, $v0, $at @@ -26116,7 +26762,7 @@ set_body_mp_choice_maybe: /* 04D618 7F018AE8 154CFFF8 */ bne $t2, $t4, .L7F018ACC /* 04D61C 7F018AEC AF01FFFC */ sw $at, -4($t8) /* 04D620 7F018AF0 8D410000 */ lw $at, ($t2) -/* 04D624 7F018AF4 0C002914 */ jal get_random_value +/* 04D624 7F018AF4 0C002914 */ jal randomGetNext /* 04D628 7F018AF8 AF010000 */ sw $at, ($t8) /* 04D62C 7F018AFC 2401000A */ li $at, 10 /* 04D630 7F018B00 0041001B */ divu $zero, $v0, $at @@ -26252,7 +26898,7 @@ set_body_mp_choice_maybe: /* 04D810 7F018CE0 0FC1BF2A */ jal sub_GAME_7F06FCA8 /* 04D814 7F018CE4 E7A60014 */ swc1 $f6, 0x14($sp) /* 04D818 7F018CE8 3C018003 */ lui $at, %hi(menu_timer) -/* 04D81C 7F018CEC 0C002914 */ jal get_random_value +/* 04D81C 7F018CEC 0C002914 */ jal randomGetNext /* 04D820 7F018CF0 AC20A8CC */ sw $zero, %lo(menu_timer)($at) /* 04D824 7F018CF4 44824000 */ mtc1 $v0, $f8 /* 04D828 7F018CF8 04410005 */ bgez $v0, .L7F018D10 @@ -26272,7 +26918,7 @@ set_body_mp_choice_maybe: /* 04D85C 7F018D2C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) /* 04D860 7F018D30 46062202 */ mul.s $f8, $f4, $f6 /* 04D864 7F018D34 46104280 */ add.s $f10, $f8, $f16 -/* 04D868 7F018D38 0C002914 */ jal get_random_value +/* 04D868 7F018D38 0C002914 */ jal randomGetNext /* 04D86C 7F018D3C E42A95A4 */ swc1 $f10, %lo(flt_CODE_bss_800695A4)($at) /* 04D870 7F018D40 44829000 */ mtc1 $v0, $f18 /* 04D874 7F018D44 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -26292,7 +26938,7 @@ set_body_mp_choice_maybe: /* 04D8A8 7F018D78 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A8) /* 04D8AC 7F018D7C 460A8482 */ mul.s $f18, $f16, $f10 /* 04D8B0 7F018D80 46069100 */ add.s $f4, $f18, $f6 -/* 04D8B4 7F018D84 0C002914 */ jal get_random_value +/* 04D8B4 7F018D84 0C002914 */ jal randomGetNext /* 04D8B8 7F018D88 E42495A8 */ swc1 $f4, %lo(flt_CODE_bss_800695A8)($at) /* 04D8BC 7F018D8C 44824000 */ mtc1 $v0, $f8 /* 04D8C0 7F018D90 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -26312,7 +26958,7 @@ set_body_mp_choice_maybe: /* 04D8F4 7F018DC4 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B0) /* 04D8F8 7F018DC8 46043201 */ sub.s $f8, $f6, $f4 /* 04D8FC 7F018DCC 460A4402 */ mul.s $f16, $f8, $f10 -/* 04D900 7F018DD0 0C002914 */ jal get_random_value +/* 04D900 7F018DD0 0C002914 */ jal randomGetNext /* 04D904 7F018DD4 E43095B0 */ swc1 $f16, %lo(flt_CODE_bss_800695B0)($at) /* 04D908 7F018DD8 44829000 */ mtc1 $v0, $f18 /* 04D90C 7F018DDC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -26332,7 +26978,7 @@ set_body_mp_choice_maybe: /* 04D940 7F018E10 3C018007 */ lui $at, %hi(flt_CODE_bss_800695B4) /* 04D944 7F018E14 46105481 */ sub.s $f18, $f10, $f16 /* 04D948 7F018E18 46049182 */ mul.s $f6, $f18, $f4 -/* 04D94C 7F018E1C 0C002914 */ jal get_random_value +/* 04D94C 7F018E1C 0C002914 */ jal randomGetNext /* 04D950 7F018E20 E42695B4 */ swc1 $f6, %lo(flt_CODE_bss_800695B4)($at) /* 04D954 7F018E24 44824000 */ mtc1 $v0, $f8 /* 04D958 7F018E28 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -26352,7 +26998,7 @@ set_body_mp_choice_maybe: /* 04D98C 7F018E5C 3C018007 */ lui $at, %hi(flt_CODE_bss_800695BC) /* 04D990 7F018E60 46062202 */ mul.s $f8, $f4, $f6 /* 04D994 7F018E64 46104280 */ add.s $f10, $f8, $f16 -/* 04D998 7F018E68 0C002914 */ jal get_random_value +/* 04D998 7F018E68 0C002914 */ jal randomGetNext /* 04D99C 7F018E6C E42A95BC */ swc1 $f10, %lo(flt_CODE_bss_800695BC)($at) /* 04D9A0 7F018E70 44829000 */ mtc1 $v0, $f18 /* 04D9A4 7F018E74 3C038007 */ lui $v1, %hi(flt_CODE_bss_800695E8) @@ -26425,17 +27071,17 @@ void interface_menu18_displaycast(u32 param_1,u32 param_2) s32 uVar1; int iVar4; - setvideo_far(46.00000000); - set_page_height(10.00000000,2000.00000000); - set_video2_settings_offset_24(1); - set_page_aspect((f32)flt_80051B08); + viSetFovY(46.00000000); + viSetZRange(10.00000000,2000.00000000); + viSetUseZBuf(1); + viSetAspect((f32)flt_80051B08); set_cur_player_screen_size(0x1b8,0x14a); - set_video2_width_height(0x1b8,0x14a); + viSetViewSize(0x1b8,0x14a); set_cur_player_viewport_size(0,0); - set_video2_ulx_uly(0,0); + viSetViewPosition(0,0); menu_timer += clock_timer; if (menu_timer < 0xb5) { - uVar1 = get_controller_buttons_pressed + uVar1 = joyGetButtonsPressedThisFrame (0,R_CBUTTONS|L_CBUTTONS|D_CBUTTONS|U_CBUTTONS|R_TRIG|L_TRIG|DUMMY_2|DUMMY_1| R_JPAD|L_JPAD|D_JPAD|U_JPAD|START_BUTTON|Z_TRIG|B_BUTTON|A_BUTTON); if ((uVar1 != 0) && (full_actor_intro == FALSE)) { @@ -26465,7 +27111,7 @@ LAB_7f019068: } if ((intro_char_table[do_not_play_intro_movie].body == 0xe) && (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if (false) { trap(0x1c00); } @@ -26476,7 +27122,7 @@ LAB_7f019068: } if ((intro_char_table[do_not_play_intro_movie].body == 0xd) && (BVar2 = check_aztec_completed_any_folder_secret_00(), BVar2 == FALSE)) { - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if (false) { trap(0x1c00); } @@ -26487,7 +27133,7 @@ LAB_7f019068: } if ((intro_char_table[do_not_play_intro_movie].body == 0xf) && (BVar2 = check_egypt_completed_any_folder_00(), BVar2 == FALSE)) { - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if (false) { trap(0x1c00); } @@ -26515,7 +27161,7 @@ LAB_7f019268: set_menu_to_mode(MENU_DISPLAY_CAST,1); return; } - uVar3 = get_random_value(); + uVar3 = randomGetNext(); if (false) { trap(0x1c00); } @@ -26535,30 +27181,30 @@ glabel interface_menu18_displaycast /* 04DAA0 7F018F70 AFB30020 */ sw $s3, 0x20($sp) /* 04DAA4 7F018F74 AFB2001C */ sw $s2, 0x1c($sp) /* 04DAA8 7F018F78 AFB10018 */ sw $s1, 0x18($sp) -/* 04DAAC 7F018F7C 0C001151 */ jal setvideo_far +/* 04DAAC 7F018F7C 0C001151 */ jal viSetFovY /* 04DAB0 7F018F80 AFB00014 */ sw $s0, 0x14($sp) /* 04DAB4 7F018F84 3C014120 */ li $at, 0x41200000 # 10.000000 /* 04DAB8 7F018F88 44816000 */ mtc1 $at, $f12 /* 04DABC 7F018F8C 3C0144FA */ li $at, 0x44FA0000 # 2000.000000 /* 04DAC0 7F018F90 44817000 */ mtc1 $at, $f14 -/* 04DAC4 7F018F94 0C001194 */ jal set_page_height +/* 04DAC4 7F018F94 0C001194 */ jal viSetZRange /* 04DAC8 7F018F98 00000000 */ nop -/* 04DACC 7F018F9C 0C00114D */ jal set_video2_settings_offset_24 +/* 04DACC 7F018F9C 0C00114D */ jal viSetUseZBuf /* 04DAD0 7F018FA0 24040001 */ li $a0, 1 /* 04DAD4 7F018FA4 3C018005 */ lui $at, %hi(D_80051B08) -/* 04DAD8 7F018FA8 0C001164 */ jal set_page_aspect +/* 04DAD8 7F018FA8 0C001164 */ jal viSetAspect /* 04DADC 7F018FAC C42C1B08 */ lwc1 $f12, %lo(D_80051B08)($at) /* 04DAE0 7F018FB0 240401B8 */ li $a0, 440 /* 04DAE4 7F018FB4 0FC26C77 */ jal set_cur_player_screen_size /* 04DAE8 7F018FB8 2405014A */ li $a1, 330 /* 04DAEC 7F018FBC 240401B8 */ li $a0, 440 -/* 04DAF0 7F018FC0 0C00110F */ jal set_video2_width_height +/* 04DAF0 7F018FC0 0C00110F */ jal viSetViewSize /* 04DAF4 7F018FC4 2405014A */ li $a1, 330 /* 04DAF8 7F018FC8 00002025 */ move $a0, $zero /* 04DAFC 7F018FCC 0FC26C7E */ jal set_cur_player_viewport_size /* 04DB00 7F018FD0 00002825 */ move $a1, $zero /* 04DB04 7F018FD4 00002025 */ move $a0, $zero -/* 04DB08 7F018FD8 0C00112F */ jal set_video2_ulx_uly +/* 04DB08 7F018FD8 0C00112F */ jal viSetViewPosition /* 04DB0C 7F018FDC 00002825 */ move $a1, $zero /* 04DB10 7F018FE0 3C028003 */ lui $v0, %hi(menu_timer) /* 04DB14 7F018FE4 2442A8CC */ addiu $v0, %lo(menu_timer) # addiu $v0, $v0, -0x5734 @@ -26637,7 +27283,7 @@ glabel interface_menu18_displaycast /* 04DC28 7F0190F8 00000000 */ nop /* 04DC2C 7F0190FC 5440000F */ bnezl $v0, .L7F01913C /* 04DC30 7F019100 8E0A0000 */ lw $t2, ($s0) -/* 04DC34 7F019104 0C002914 */ jal get_random_value +/* 04DC34 7F019104 0C002914 */ jal randomGetNext /* 04DC38 7F019108 00000000 */ nop /* 04DC3C 7F01910C 0053001B */ divu $zero, $v0, $s3 /* 04DC40 7F019110 0000C810 */ mfhi $t9 @@ -26664,7 +27310,7 @@ glabel interface_menu18_displaycast /* 04DC8C 7F01915C 00000000 */ nop /* 04DC90 7F019160 5440000F */ bnezl $v0, .L7F0191A0 /* 04DC94 7F019164 8E190000 */ lw $t9, ($s0) -/* 04DC98 7F019168 0C002914 */ jal get_random_value +/* 04DC98 7F019168 0C002914 */ jal randomGetNext /* 04DC9C 7F01916C 00000000 */ nop /* 04DCA0 7F019170 0053001B */ divu $zero, $v0, $s3 /* 04DCA4 7F019174 00007010 */ mfhi $t6 @@ -26691,7 +27337,7 @@ glabel interface_menu18_displaycast /* 04DCF0 7F0191C0 00000000 */ nop /* 04DCF4 7F0191C4 5440000F */ bnezl $v0, .L7F019204 /* 04DCF8 7F0191C8 8E0E0000 */ lw $t6, ($s0) -/* 04DCFC 7F0191CC 0C002914 */ jal get_random_value +/* 04DCFC 7F0191CC 0C002914 */ jal randomGetNext /* 04DD00 7F0191D0 00000000 */ nop /* 04DD04 7F0191D4 0053001B */ divu $zero, $v0, $s3 /* 04DD08 7F0191D8 00005810 */ mfhi $t3 @@ -26718,7 +27364,7 @@ glabel interface_menu18_displaycast /* 04DD54 7F019224 00000000 */ nop /* 04DD58 7F019228 5440000F */ bnezl $v0, .L7F019268 /* 04DD5C 7F01922C 8E030000 */ lw $v1, ($s0) -/* 04DD60 7F019230 0C002914 */ jal get_random_value +/* 04DD60 7F019230 0C002914 */ jal randomGetNext /* 04DD64 7F019234 00000000 */ nop /* 04DD68 7F019238 0053001B */ divu $zero, $v0, $s3 /* 04DD6C 7F01923C 00004010 */ mfhi $t0 @@ -26769,7 +27415,7 @@ glabel interface_menu18_displaycast /* 04DE0C 7F0192DC 1000000C */ b .L7F019310 /* 04DE10 7F0192E0 8FBF0024 */ lw $ra, 0x24($sp) .L7F0192E4: -/* 04DE14 7F0192E4 0C0030EB */ jal get_controller_buttons_pressed +/* 04DE14 7F0192E4 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 04DE18 7F0192E8 3405FFFF */ li $a1, 65535 /* 04DE1C 7F0192EC 10400007 */ beqz $v0, .L7F01930C /* 04DE20 7F0192F0 3C0F8003 */ lui $t7, %hi(full_actor_intro) @@ -26907,9 +27553,9 @@ glabel constructor_menu18_displaycast /* 04DFDC 7F0194AC 00002825 */ move $a1, $zero /* 04DFE0 7F0194B0 00003025 */ move $a2, $zero /* 04DFE4 7F0194B4 00003825 */ move $a3, $zero -/* 04DFE8 7F0194B8 0C0011B4 */ jal set_setfillcolor +/* 04DFE8 7F0194B8 0C0011B4 */ jal viSetFillColor /* 04DFEC 7F0194BC E7B00148 */ swc1 $f16, 0x148($sp) -/* 04DFF0 7F0194C0 0C000FBE */ jal insert_generic_fillrect +/* 04DFF0 7F0194C0 0C000FBE */ jal viFillScreen /* 04DFF4 7F0194C4 00402025 */ move $a0, $v0 /* 04DFF8 7F0194C8 3C018007 */ lui $at, %hi(flt_CODE_bss_800695A4) /* 04DFFC 7F0194CC C42095A4 */ lwc1 $f0, %lo(flt_CODE_bss_800695A4)($at) @@ -27006,7 +27652,7 @@ glabel constructor_menu18_displaycast /* 04E164 7F019634 24040002 */ li $a0, 2 /* 04E168 7F019638 46062282 */ mul.s $f10, $f4, $f6 /* 04E16C 7F01963C 460A4100 */ add.s $f4, $f8, $f10 -/* 04E170 7F019640 0FC2F5BE */ jal sub_GAME_7F0BD6F8 +/* 04E170 7F019640 0FC2F5BE */ jal dynAllocate7F0BD6F8 /* 04E174 7F019644 E7A40240 */ swc1 $f4, 0x240($sp) /* 04E178 7F019648 44800000 */ mtc1 $zero, $f0 /* 04E17C 7F01964C 3C01457A */ li $at, 0x457A0000 # 4000.000000 @@ -27106,7 +27752,7 @@ glabel constructor_menu18_displaycast /* 04E2EC 7F0197BC 8DAB0008 */ lw $t3, 8($t5) /* 04E2F0 7F0197C0 8564000E */ lh $a0, 0xe($t3) /* 04E2F4 7F0197C4 0004C180 */ sll $t8, $a0, 6 -/* 04E2F8 7F0197C8 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E2F8 7F0197C8 0FC2F5C5 */ jal dynAllocate /* 04E2FC 7F0197CC 03002025 */ move $a0, $t8 /* 04E300 7F0197D0 27B201E8 */ addiu $s2, $sp, 0x1e8 /* 04E304 7F0197D4 AFA201B8 */ sw $v0, 0x1b8($sp) @@ -27387,7 +28033,7 @@ glabel constructor_menu18_displaycast /* 04E72C 7F019BFC 8DCF0008 */ lw $t7, 8($t6) /* 04E730 7F019C00 85E4000E */ lh $a0, 0xe($t7) /* 04E734 7F019C04 00046980 */ sll $t5, $a0, 6 -/* 04E738 7F019C08 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E738 7F019C08 0FC2F5C5 */ jal dynAllocate /* 04E73C 7F019C0C 01A02025 */ move $a0, $t5 /* 04E740 7F019C10 AFA201B8 */ sw $v0, 0x1b8($sp) /* 04E744 7F019C14 27A401A8 */ addiu $a0, $sp, 0x1a8 @@ -27426,7 +28072,7 @@ glabel constructor_menu18_displaycast .L7F019C98: /* 04E7C8 7F019C98 85E4000E */ lh $a0, 0xe($t7) /* 04E7CC 7F019C9C 00046980 */ sll $t5, $a0, 6 -/* 04E7D0 7F019CA0 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 04E7D0 7F019CA0 0FC2F5C5 */ jal dynAllocate /* 04E7D4 7F019CA4 01A02025 */ move $a0, $t5 /* 04E7D8 7F019CA8 3C058003 */ lui $a1, %hi(ptrobjinstance) /* 04E7DC 7F019CAC AFA201B8 */ sw $v0, 0x1b8($sp) @@ -27662,11 +28308,11 @@ glabel constructor_menu18_displaycast /* 04EB58 7F01A028 2406006C */ li $a2, 108 /* 04EB5C 7F01A02C 0FC2B405 */ jal microcode_constructor_related_to_menus /* 04EB60 7F01A030 AFA00014 */ sw $zero, 0x14($sp) -/* 04EB64 7F01A034 0C001107 */ jal get_video2_settings_txtClipW +/* 04EB64 7F01A034 0C001107 */ jal viGetX /* 04EB68 7F01A038 00409825 */ move $s3, $v0 /* 04EB6C 7F01A03C 00028400 */ sll $s0, $v0, 0x10 /* 04EB70 7F01A040 00105C03 */ sra $t3, $s0, 0x10 -/* 04EB74 7F01A044 0C00110B */ jal get_video2_settings_txtClipH +/* 04EB74 7F01A044 0C00110B */ jal viGetY /* 04EB78 7F01A048 01608025 */ move $s0, $t3 /* 04EB7C 7F01A04C 444FF800 */ cfc1 $t7, $31 /* 04EB80 7F01A050 240C0001 */ li $t4, 1 @@ -27799,11 +28445,11 @@ glabel constructor_menu18_displaycast /* 04ED5C 7F01A22C 24060098 */ li $a2, 152 /* 04ED60 7F01A230 0FC2B405 */ jal microcode_constructor_related_to_menus /* 04ED64 7F01A234 AFA00014 */ sw $zero, 0x14($sp) -/* 04ED68 7F01A238 0C001107 */ jal get_video2_settings_txtClipW +/* 04ED68 7F01A238 0C001107 */ jal viGetX /* 04ED6C 7F01A23C 00409825 */ move $s3, $v0 /* 04ED70 7F01A240 00028400 */ sll $s0, $v0, 0x10 /* 04ED74 7F01A244 00106C03 */ sra $t5, $s0, 0x10 -/* 04ED78 7F01A248 0C00110B */ jal get_video2_settings_txtClipH +/* 04ED78 7F01A248 0C00110B */ jal viGetY /* 04ED7C 7F01A24C 01A08025 */ move $s0, $t5 /* 04ED80 7F01A250 3C188004 */ lui $t8, %hi(ptrFirstFontTableLarge) /* 04ED84 7F01A254 8F180EB4 */ lw $t8, %lo(ptrFirstFontTableLarge)($t8) @@ -27860,11 +28506,11 @@ glabel constructor_menu18_displaycast /* 04EE4C 7F01A31C 240600AE */ li $a2, 174 /* 04EE50 7F01A320 0FC2B405 */ jal microcode_constructor_related_to_menus /* 04EE54 7F01A324 AFA00014 */ sw $zero, 0x14($sp) -/* 04EE58 7F01A328 0C001107 */ jal get_video2_settings_txtClipW +/* 04EE58 7F01A328 0C001107 */ jal viGetX /* 04EE5C 7F01A32C 00409825 */ move $s3, $v0 /* 04EE60 7F01A330 00028400 */ sll $s0, $v0, 0x10 /* 04EE64 7F01A334 0010CC03 */ sra $t9, $s0, 0x10 -/* 04EE68 7F01A338 0C00110B */ jal get_video2_settings_txtClipH +/* 04EE68 7F01A338 0C00110B */ jal viGetY /* 04EE6C 7F01A33C 03208025 */ move $s0, $t9 /* 04EE70 7F01A340 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableLarge) /* 04EE74 7F01A344 8DAD0EB4 */ lw $t5, %lo(ptrFirstFontTableLarge)($t5) @@ -27894,153 +28540,48 @@ glabel constructor_menu18_displaycast -#ifdef NONMATCHING -void init_menu19_spectrum(void) { - u8 rom; - // Node 0 - rom = 0; - if (get_controller_buttons_held(2, 2) == 0) +void init_menu19_spectrum(void) +{ + SPECTRUMROMS rom = ROM_SABRE; + + if (!joyGetButtons(2, L_CBUTTONS)) { - // Node 1 - if (get_controller_buttons_held(2, 1) != 0) + if (joyGetButtons(2, R_CBUTTONS)) { - // Node 2 - rom = 1; + rom = ROM_ATIC; + } + else if (joyGetButtons(2, U_CBUTTONS)) + { + rom = ROM_JETPAC; + } + else if (joyGetButtons(2, D_CBUTTONS)) + { + rom = ROM_JETMAN; + } + else if (joyGetButtons(2, L_JPAD)) + { + rom = ROM_ALIEN8; + } + else if (joyGetButtons(2, R_JPAD)) + { + rom = ROM_GUNFRIGHT; + } + else if (joyGetButtons(2, U_JPAD)) + { + rom = ROM_UNDER; } else { - // Node 3 - if (get_controller_buttons_held(2, 8) != 0) + rom = ROM_SABRE; + if (joyGetButtons(2, D_JPAD)) { - // Node 4 - rom = 2; - } - else - { - // Node 5 - if (get_controller_buttons_held(2, 4) != 0) - { - // Node 6 - rom = 3; - } - else - { - // Node 7 - if (get_controller_buttons_held(2, 0x200) != 0) - { - // Node 8 - rom = 4; - } - else - { - // Node 9 - if (get_controller_buttons_held(2, 0x100) != 0) - { - // Node 10 - rom = 5; - } - else - { - // Node 11 - if (get_controller_buttons_held(2, 0x800) != 0) - { - // Node 12 - rom = 6; - } - else - { - // Node 13 - rom = 0; - if (get_controller_buttons_held(2, 0x400) != 0) - { - // Node 14 - rom = 7; - } - } - } - } - } + rom = ROM_KNIGHTLORE; } } } - // Node 15 - return init_spectrum_game(rom); + init_spectrum_game(rom); } -#else -GLOBAL_ASM( -.text -glabel init_menu19_spectrum -/* 04EECC 7F01A39C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 04EED0 7F01A3A0 AFBF001C */ sw $ra, 0x1c($sp) -/* 04EED4 7F01A3A4 AFB00018 */ sw $s0, 0x18($sp) -/* 04EED8 7F01A3A8 00008025 */ move $s0, $zero -/* 04EEDC 7F01A3AC 24040002 */ li $a0, 2 -/* 04EEE0 7F01A3B0 0C0030C3 */ jal get_controller_buttons_held -/* 04EEE4 7F01A3B4 24050002 */ li $a1, 2 -/* 04EEE8 7F01A3B8 1440002A */ bnez $v0, .L7F01A464 -/* 04EEEC 7F01A3BC 24040002 */ li $a0, 2 -/* 04EEF0 7F01A3C0 0C0030C3 */ jal get_controller_buttons_held -/* 04EEF4 7F01A3C4 24050001 */ li $a1, 1 -/* 04EEF8 7F01A3C8 10400003 */ beqz $v0, .L7F01A3D8 -/* 04EEFC 7F01A3CC 24040002 */ li $a0, 2 -/* 04EF00 7F01A3D0 10000024 */ b .L7F01A464 -/* 04EF04 7F01A3D4 24100001 */ li $s0, 1 -.L7F01A3D8: -/* 04EF08 7F01A3D8 0C0030C3 */ jal get_controller_buttons_held -/* 04EF0C 7F01A3DC 24050008 */ li $a1, 8 -/* 04EF10 7F01A3E0 10400003 */ beqz $v0, .L7F01A3F0 -/* 04EF14 7F01A3E4 24040002 */ li $a0, 2 -/* 04EF18 7F01A3E8 1000001E */ b .L7F01A464 -/* 04EF1C 7F01A3EC 24100002 */ li $s0, 2 -.L7F01A3F0: -/* 04EF20 7F01A3F0 0C0030C3 */ jal get_controller_buttons_held -/* 04EF24 7F01A3F4 24050004 */ li $a1, 4 -/* 04EF28 7F01A3F8 10400003 */ beqz $v0, .L7F01A408 -/* 04EF2C 7F01A3FC 24040002 */ li $a0, 2 -/* 04EF30 7F01A400 10000018 */ b .L7F01A464 -/* 04EF34 7F01A404 24100003 */ li $s0, 3 -.L7F01A408: -/* 04EF38 7F01A408 0C0030C3 */ jal get_controller_buttons_held -/* 04EF3C 7F01A40C 24050200 */ li $a1, 512 -/* 04EF40 7F01A410 10400003 */ beqz $v0, .L7F01A420 -/* 04EF44 7F01A414 24040002 */ li $a0, 2 -/* 04EF48 7F01A418 10000012 */ b .L7F01A464 -/* 04EF4C 7F01A41C 24100004 */ li $s0, 4 -.L7F01A420: -/* 04EF50 7F01A420 0C0030C3 */ jal get_controller_buttons_held -/* 04EF54 7F01A424 24050100 */ li $a1, 256 -/* 04EF58 7F01A428 10400003 */ beqz $v0, .L7F01A438 -/* 04EF5C 7F01A42C 24040002 */ li $a0, 2 -/* 04EF60 7F01A430 1000000C */ b .L7F01A464 -/* 04EF64 7F01A434 24100005 */ li $s0, 5 -.L7F01A438: -/* 04EF68 7F01A438 0C0030C3 */ jal get_controller_buttons_held -/* 04EF6C 7F01A43C 24050800 */ li $a1, 2048 -/* 04EF70 7F01A440 10400003 */ beqz $v0, .L7F01A450 -/* 04EF74 7F01A444 24040002 */ li $a0, 2 -/* 04EF78 7F01A448 10000006 */ b .L7F01A464 -/* 04EF7C 7F01A44C 24100006 */ li $s0, 6 -.L7F01A450: -/* 04EF80 7F01A450 0C0030C3 */ jal get_controller_buttons_held -/* 04EF84 7F01A454 24050400 */ li $a1, 1024 -/* 04EF88 7F01A458 10400002 */ beqz $v0, .L7F01A464 -/* 04EF8C 7F01A45C 00000000 */ nop -/* 04EF90 7F01A460 24100007 */ li $s0, 7 -.L7F01A464: -/* 04EF94 7F01A464 0FC34BF1 */ jal init_spectrum_game -/* 04EF98 7F01A468 02002025 */ move $a0, $s0 -/* 04EF9C 7F01A46C 8FBF001C */ lw $ra, 0x1c($sp) -/* 04EFA0 7F01A470 8FB00018 */ lw $s0, 0x18($sp) -/* 04EFA4 7F01A474 27BD0020 */ addiu $sp, $sp, 0x20 -/* 04EFA8 7F01A478 03E00008 */ jr $ra -/* 04EFAC 7F01A47C 00000000 */ nop -) -#endif - - - - void update_menu19_spectrum(void) { @@ -28048,44 +28589,14 @@ void update_menu19_spectrum(void) { } - -#ifdef NONMATCHING -void interface_menu19_spectrum(void) { - setvideo_far(60.0f); - set_page_aspect(D_80051B3C); - set_page_height(100.0f, D_80051B40); - set_video2_settings_offset_24(0); +void interface_menu19_spectrum(void) +{ + viSetFovY(60.0f); + viSetAspect(1.3333334f); + viSetZRange(100.0f, 10000.0f); + viSetUseZBuf(0); run_spectrum_game(); } -#else -GLOBAL_ASM( -.text -glabel interface_menu19_spectrum -/* 04EFB8 7F01A488 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 04EFBC 7F01A48C 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 04EFC0 7F01A490 AFBF0014 */ sw $ra, 0x14($sp) -/* 04EFC4 7F01A494 44816000 */ mtc1 $at, $f12 -/* 04EFC8 7F01A498 0C001151 */ jal setvideo_far -/* 04EFCC 7F01A49C 00000000 */ nop -/* 04EFD0 7F01A4A0 3C018005 */ lui $at, %hi(D_80051B3C) -/* 04EFD4 7F01A4A4 0C001164 */ jal set_page_aspect -/* 04EFD8 7F01A4A8 C42C1B3C */ lwc1 $f12, %lo(D_80051B3C)($at) -/* 04EFDC 7F01A4AC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 04EFE0 7F01A4B0 44816000 */ mtc1 $at, $f12 -/* 04EFE4 7F01A4B4 3C018005 */ lui $at, %hi(D_80051B40) -/* 04EFE8 7F01A4B8 0C001194 */ jal set_page_height -/* 04EFEC 7F01A4BC C42E1B40 */ lwc1 $f14, %lo(D_80051B40)($at) -/* 04EFF0 7F01A4C0 0C00114D */ jal set_video2_settings_offset_24 -/* 04EFF4 7F01A4C4 00002025 */ move $a0, $zero -/* 04EFF8 7F01A4C8 0FC34CDD */ jal run_spectrum_game -/* 04EFFC 7F01A4CC 00000000 */ nop -/* 04F000 7F01A4D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 04F004 7F01A4D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 04F008 7F01A4D8 03E00008 */ jr $ra -/* 04F00C 7F01A4DC 00000000 */ nop -) -#endif - @@ -28196,44 +28707,20 @@ glabel constructor_menu19_spectrum -#ifdef NONMATCHING + void set_menu_to_mode(MENU menu, s32 mode) { - if ((menu == MENU_RUN_STAGE) || (menu == MENU_SPECTRUM_EMU)) { - is_emulating_spectrum = TRUE; - } - if (mode == 0) { + if ((menu == MENU_RUN_STAGE) || (menu == MENU_SPECTRUM_EMU)) + { + is_emulating_spectrum = 1; + } + if (mode != 0) + { + menu_update = menu; + return; + } maybe_prev_menu = menu; - return; - } - menu_update = menu; - return; } -#else -GLOBAL_ASM( -.text -glabel set_menu_to_mode -/* 04F104 7F01A5D4 2401000B */ li $at, 11 -/* 04F108 7F01A5D8 10810003 */ beq $a0, $at, .L7F01A5E8 -/* 04F10C 7F01A5DC 240E0001 */ li $t6, 1 -/* 04F110 7F01A5E0 24010019 */ li $at, 25 -/* 04F114 7F01A5E4 14810002 */ bne $a0, $at, .L7F01A5F0 -.L7F01A5E8: -/* 04F118 7F01A5E8 3C018003 */ lui $at, %hi(is_emulating_spectrum) -/* 04F11C 7F01A5EC AC2EA948 */ sw $t6, %lo(is_emulating_spectrum)($at) -.L7F01A5F0: -/* 04F120 7F01A5F0 10A00004 */ beqz $a1, .L7F01A604 -/* 04F124 7F01A5F4 3C018003 */ lui $at, %hi(maybe_prev_menu) -/* 04F128 7F01A5F8 3C018003 */ lui $at, %hi(menu_update) -/* 04F12C 7F01A5FC 03E00008 */ jr $ra -/* 04F130 7F01A600 AC24A8C4 */ sw $a0, %lo(menu_update)($at) -.L7F01A604: -/* 04F134 7F01A604 AC24A8C8 */ sw $a0, %lo(maybe_prev_menu)($at) -/* 04F138 7F01A608 03E00008 */ jr $ra -/* 04F13C 7F01A60C 00000000 */ nop -) -#endif - MENU get_currentmenu(void) @@ -28246,50 +28733,57 @@ MENU get_currentmenu(void) #ifdef NONMATCHING -void menu_init(u32 param_1,u32 param_2) +void menu_init() { MENU MVar1; - if (current_menu == MENU_SWITCH_SCREENS) { - if (spectrum_related_flag == FALSE) { - if ((is_emulating_spectrum != FALSE) && - (get_video_settings2_frameb() == cfb_16)) { + if (current_menu == MENU_SWITCH_SCREENS) + { + if (spectrum_related_flag == FALSE) + { + if ((is_emulating_spectrum != FALSE) && (viGetFrameBuf2() == cfb_16[0])) + { screen_size = SCREEN_SIZE_320x240; is_emulating_spectrum = FALSE; } } else { - if (get_video_settings2_frameb() == cfb_16[1]) { + if (viGetFrameBuf2() == cfb_16[1]) + { screen_size = SCREEN_SIZE_440x330; spectrum_related_flag = FALSE; } } } - if (screen_size == SCREEN_SIZE_320x240) { - set_page_aspect((f32)flt_80051B48); - set_video2_text_clip_size(320,240); - set_video2_settings_offset_18_1A(320,240); + if (screen_size == SCREEN_SIZE_320x240) + { + viSetAspect((f32)flt_80051B48); + viSetXY(320,240); + viSetBuf(320,240); set_cur_player_screen_size(320,240); - set_video2_width_height(320,240); + viSetViewSize(320,240); set_cur_player_viewport_size(0,0); - set_video2_ulx_uly(0,0); + viSetViewPosition(0,0); } - else { - if (get_video_settings2_frameb() == cfb_16[1]) { + else + { + if (viGetFrameBuf2() == cfb_16[1]) + { set_video_settings2_frameb(ptr_menu_videobuffer); } - set_page_aspect((f32)flt_80051B44); - set_video2_text_clip_size(440,330); - set_video2_settings_offset_18_1A(440,330); + viSetAspect((f32)flt_80051B44); + viSetXY(440,330); + viSetBuf(440,330); set_cur_player_screen_size(440,330); - set_video2_width_height(440,330); + viSetViewSize(440,330); set_cur_player_viewport_size(0,0); - set_video2_ulx_uly(0,0); + viSetViewPosition(0,0); } - if (((-1 < menu_update) || (-1 < maybe_prev_menu)) && - (current_menu != MENU_SWITCH_SCREENS)) { - if (true) { + if (((-1 < menu_update) || (-1 < maybe_prev_menu)) && (current_menu != MENU_SWITCH_SCREENS)) + { + if (true) + { switch(current_menu) { case MENU_LEGAL_SCREEN: update_menu00_legalscreen(); @@ -28552,6 +29046,10 @@ void menu_init(u32 param_1,u32 param_2) #else GLOBAL_ASM( .late_rodata +glabel D_80051B44 +.word 0x3FAAAAAB /*1.3333334;*/ +glabel D_80051B48 +.word 0x3FAAAAAB /*1.3333334;*/ glabel jpt_menu_update .word menu_legal_screen_update .word menu_nintendo_logo_update @@ -28648,7 +29146,7 @@ glabel menu_init /* 04F16C 7F01A63C 3C088003 */ lui $t0, %hi(is_emulating_spectrum) /* 04F170 7F01A640 11E0000C */ beqz $t7, .L7F01A674 /* 04F174 7F01A644 00000000 */ nop -/* 04F178 7F01A648 0C000F07 */ jal get_video_settings2_frameb +/* 04F178 7F01A648 0C000F07 */ jal viGetFrameBuf2 /* 04F17C 7F01A64C 00000000 */ nop /* 04F180 7F01A650 3C18803E */ lui $t8, %hi(cfb_16+0x25800) # $t8, 0x803e /* 04F184 7F01A654 2718A800 */ addiu $t8, %lo(cfb_16+0x25800) # addiu $t8, $t8, -0x5800 @@ -28663,7 +29161,7 @@ glabel menu_init /* 04F1A4 7F01A674 8D08A948 */ lw $t0, %lo(is_emulating_spectrum)($t0) /* 04F1A8 7F01A678 1100000A */ beqz $t0, .L7F01A6A4 /* 04F1AC 7F01A67C 00000000 */ nop -/* 04F1B0 7F01A680 0C000F07 */ jal get_video_settings2_frameb +/* 04F1B0 7F01A680 0C000F07 */ jal viGetFrameBuf2 /* 04F1B4 7F01A684 00000000 */ nop /* 04F1B8 7F01A688 3C09803B */ lui $t1, %hi(cfb_16) # $t1, 0x803b /* 04F1BC 7F01A68C 25295000 */ addiu $t1, %lo(cfb_16) # addiu $t1, $t1, 0x5000 @@ -28678,58 +29176,58 @@ glabel menu_init /* 04F1DC 7F01A6AC 3C018005 */ lui $at, %hi(D_80051B48) /* 04F1E0 7F01A6B0 11400020 */ beqz $t2, .L7F01A734 /* 04F1E4 7F01A6B4 00000000 */ nop -/* 04F1E8 7F01A6B8 0C000F07 */ jal get_video_settings2_frameb +/* 04F1E8 7F01A6B8 0C000F07 */ jal viGetFrameBuf2 /* 04F1EC 7F01A6BC 00000000 */ nop /* 04F1F0 7F01A6C0 3C0B803E */ lui $t3, %hi(cfb_16+0x25800) # $t3, 0x803e /* 04F1F4 7F01A6C4 256BA800 */ addiu $t3, %lo(cfb_16+0x25800) # addiu $t3, $t3, -0x5800 /* 04F1F8 7F01A6C8 144B0003 */ bne $v0, $t3, .L7F01A6D8 /* 04F1FC 7F01A6CC 3C048003 */ lui $a0, %hi(ptr_menu_videobuffer) -/* 04F200 7F01A6D0 0C000F0F */ jal set_video2buf_frameb +/* 04F200 7F01A6D0 0C000F0F */ jal viSetFrameBuf2 /* 04F204 7F01A6D4 8C84A954 */ lw $a0, %lo(ptr_menu_videobuffer)($a0) .L7F01A6D8: /* 04F208 7F01A6D8 3C018005 */ lui $at, %hi(D_80051B48) -/* 04F20C 7F01A6DC 0C001164 */ jal set_page_aspect +/* 04F20C 7F01A6DC 0C001164 */ jal viSetAspect /* 04F210 7F01A6E0 C42C1B44 */ lwc1 $f12, %lo(D_80051B44)($at) /* 04F214 7F01A6E4 240401B8 */ li $a0, 440 -/* 04F218 7F01A6E8 0C0010FE */ jal set_video2_text_clip_size +/* 04F218 7F01A6E8 0C0010FE */ jal viSetXY /* 04F21C 7F01A6EC 2405014A */ li $a1, 330 /* 04F220 7F01A6F0 240401B8 */ li $a0, 440 -/* 04F224 7F01A6F4 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F224 7F01A6F4 0C0010ED */ jal viSetBuf /* 04F228 7F01A6F8 2405014A */ li $a1, 330 /* 04F22C 7F01A6FC 240401B8 */ li $a0, 440 /* 04F230 7F01A700 0FC26C77 */ jal set_cur_player_screen_size /* 04F234 7F01A704 2405014A */ li $a1, 330 /* 04F238 7F01A708 240401B8 */ li $a0, 440 -/* 04F23C 7F01A70C 0C00110F */ jal set_video2_width_height +/* 04F23C 7F01A70C 0C00110F */ jal viSetViewSize /* 04F240 7F01A710 2405014A */ li $a1, 330 /* 04F244 7F01A714 00002025 */ move $a0, $zero /* 04F248 7F01A718 0FC26C7E */ jal set_cur_player_viewport_size /* 04F24C 7F01A71C 00002825 */ move $a1, $zero /* 04F250 7F01A720 00002025 */ move $a0, $zero -/* 04F254 7F01A724 0C00112F */ jal set_video2_ulx_uly +/* 04F254 7F01A724 0C00112F */ jal viSetViewPosition /* 04F258 7F01A728 00002825 */ move $a1, $zero /* 04F25C 7F01A72C 10000015 */ b .L7F01A784 /* 04F260 7F01A730 00000000 */ nop .L7F01A734: -/* 04F264 7F01A734 0C001164 */ jal set_page_aspect +/* 04F264 7F01A734 0C001164 */ jal viSetAspect /* 04F268 7F01A738 C42C1B48 */ lwc1 $f12, %lo(D_80051B48)($at) /* 04F26C 7F01A73C 24040140 */ li $a0, 320 -/* 04F270 7F01A740 0C0010FE */ jal set_video2_text_clip_size +/* 04F270 7F01A740 0C0010FE */ jal viSetXY /* 04F274 7F01A744 240500F0 */ li $a1, 240 /* 04F278 7F01A748 24040140 */ li $a0, 320 -/* 04F27C 7F01A74C 0C0010ED */ jal set_video2_settings_offset_18_1A +/* 04F27C 7F01A74C 0C0010ED */ jal viSetBuf /* 04F280 7F01A750 240500F0 */ li $a1, 240 /* 04F284 7F01A754 24040140 */ li $a0, 320 /* 04F288 7F01A758 0FC26C77 */ jal set_cur_player_screen_size /* 04F28C 7F01A75C 240500F0 */ li $a1, 240 /* 04F290 7F01A760 24040140 */ li $a0, 320 -/* 04F294 7F01A764 0C00110F */ jal set_video2_width_height +/* 04F294 7F01A764 0C00110F */ jal viSetViewSize /* 04F298 7F01A768 240500F0 */ li $a1, 240 /* 04F29C 7F01A76C 00002025 */ move $a0, $zero /* 04F2A0 7F01A770 0FC26C7E */ jal set_cur_player_viewport_size /* 04F2A4 7F01A774 00002825 */ move $a1, $zero /* 04F2A8 7F01A778 00002025 */ move $a0, $zero -/* 04F2AC 7F01A77C 0C00112F */ jal set_video2_ulx_uly +/* 04F2AC 7F01A77C 0C00112F */ jal viSetViewPosition /* 04F2B0 7F01A780 00002825 */ move $a1, $zero .L7F01A784: /* 04F2B4 7F01A784 3C028003 */ lui $v0, %hi(menu_update) diff --git a/src/game/mainmenu.h b/src/game/mainmenu.h index 26d03e1..efe42fc 100644 --- a/src/game/mainmenu.h +++ b/src/game/mainmenu.h @@ -498,10 +498,10 @@ extern s32 screen_size; extern s32 spectrum_related_flag; extern s32 is_emulating_spectrum; extern s32 is_cheat_menu_available; -extern s32 ptr_logo_and_walletbond_DL; -extern s32 ptr_menu_videobuffer; +extern Gfx * ptr_logo_and_walletbond_DL; +extern u8 * ptr_menu_videobuffer; extern s32 something_legalscreen_constructor; -extern s32 ptr_folder_object_instance; +extern struct object_standard * ptr_folder_object_instance; extern s32 set0_never_used; extern s32 set0_never_used_0; extern s32 D_8002A968; @@ -780,6 +780,8 @@ extern u32 intro_animation_count; extern u32 objinstance; extern u32 ptrobjinstance; extern u32 full_actor_intro; + void set_menu_to_mode(MENU menu, s32 mode); +s32 get_selected_num_players(void); #endif diff --git a/src/game/matrixmath.h b/src/game/matrixmath.h index 3d547e8..f9003ee 100644 --- a/src/game/matrixmath.h +++ b/src/game/matrixmath.h @@ -15,5 +15,7 @@ typedef union { } Mtxf; void matrix_4x4_rotate_vector_in_place(Mtxf *matrix, vec3 vector); +void matrix_4x4_7F059694(Mtxf *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9); + #endif diff --git a/src/game/mp_music.c b/src/game/mp_music.c index 8c07481..1f0fba0 100644 --- a/src/game/mp_music.c +++ b/src/game/mp_music.c @@ -1,5 +1,6 @@ #include "ultra64.h" -//#include "" +#include "music.h" +#include "music_0D2720.h" // bss //CODE.bss:8008C600 @@ -173,11 +174,11 @@ glabel set_missionstate .L7F0C0C94: /* 0F57C4 7F0C0C94 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F57C8 7F0C0C98 00000000 */ nop -/* 0F57CC 7F0C0C9C 0C001C0F */ jal musicTrack1Vol +/* 0F57CC 7F0C0C9C 0C001C0F */ jal musicTrack1ApplySeqpVol /* 0F57D0 7F0C0CA0 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(music1_playing) +/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) /* 0F57D8 7F0C0CA8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 0F57E0 7F0C0CB0 0FC349C8 */ jal getmusictrack_or_randomtrack /* 0F57E4 7F0C0CB4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F57E8 7F0C0CB8 0C001B9F */ jal musicTrack1Play @@ -187,25 +188,25 @@ glabel set_missionstate .L7F0C0CC8: /* 0F57F8 7F0C0CC8 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F57FC 7F0C0CCC 00000000 */ nop -/* 0F5800 7F0C0CD0 0C001C0F */ jal musicTrack1Vol +/* 0F5800 7F0C0CD0 0C001C0F */ jal musicTrack1ApplySeqpVol /* 0F5804 7F0C0CD4 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(music1_playing) +/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) /* 0F580C 7F0C0CDC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 0F5814 7F0C0CE4 0FC349C8 */ jal getmusictrack_or_randomtrack /* 0F5818 7F0C0CE8 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F581C 7F0C0CEC 0C001B9F */ jal musicTrack1Play /* 0F5820 7F0C0CF0 00402025 */ move $a0, $v0 /* 0F5824 7F0C0CF4 0FC30304 */ jal sub_GAME_7F0C0C10 /* 0F5828 7F0C0CF8 00000000 */ nop -/* 0F582C 7F0C0CFC 0C001DD3 */ jal musicTrack3Vol +/* 0F582C 7F0C0CFC 0C001DD3 */ jal musicTrack3ApplySeqpVol /* 0F5830 7F0C0D00 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5834 7F0C0D04 3C018002 */ lui $at, %hi(music3_playing) +/* 0F5834 7F0C0D04 3C018002 */ lui $at, %hi(g_musicXTrack3Fade) /* 0F5838 7F0C0D08 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F583C 7F0C0D0C AC204354 */ sw $zero, %lo(music3_playing)($at) -/* 0F5840 7F0C0D10 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F583C 7F0C0D0C AC204354 */ sw $zero, %lo(g_musicXTrack3Fade)($at) +/* 0F5840 7F0C0D10 0FC34A12 */ jal musicGetBgTrackForStage /* 0F5844 7F0C0D14 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) -/* 0F5848 7F0C0D18 0C001D63 */ jal music_related_3rd_block +/* 0F5848 7F0C0D18 0C001D63 */ jal musicTrack3Play /* 0F584C 7F0C0D1C 00402025 */ move $a0, $v0 /* 0F5850 7F0C0D20 10000133 */ b .L7F0C11F0 /* 0F5854 7F0C0D24 8FBF0014 */ lw $ra, 0x14($sp) @@ -230,46 +231,46 @@ glabel set_missionstate .L7F0C0D68: /* 0F5898 7F0C0D68 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F589C 7F0C0D6C 00000000 */ nop -/* 0F58A0 7F0C0D70 0C001CF1 */ jal musicTrack2Vol +/* 0F58A0 7F0C0D70 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F58A4 7F0C0D74 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F58A8 7F0C0D78 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58A8 7F0C0D78 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) /* 0F58AC 7F0C0D7C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F58B0 7F0C0D80 AC204350 */ sw $zero, %lo(music2_playing)($at) -/* 0F58B4 7F0C0D84 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F58B0 7F0C0D80 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F58B4 7F0C0D84 0FC34A24 */ jal musicGetXTrackForStage /* 0F58B8 7F0C0D88 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F58BC 7F0C0D8C 0C001C81 */ jal musicTrack2Play /* 0F58C0 7F0C0D90 00402025 */ move $a0, $v0 /* 0F58C4 7F0C0D94 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F58C8 7F0C0D98 44816000 */ mtc1 $at, $f12 -/* 0F58CC 7F0C0D9C 0C001C3E */ jal music_related_1 +/* 0F58CC 7F0C0D9C 0C001C3E */ jal musicTrack1FadeOut /* 0F58D0 7F0C0DA0 00000000 */ nop /* 0F58D4 7F0C0DA4 10000112 */ b .L7F0C11F0 /* 0F58D8 7F0C0DA8 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C0DAC: /* 0F58DC 7F0C0DAC 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F58E0 7F0C0DB0 00000000 */ nop -/* 0F58E4 7F0C0DB4 0C001CF1 */ jal musicTrack2Vol +/* 0F58E4 7F0C0DB4 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F58E8 7F0C0DB8 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F58EC 7F0C0DBC 3C018002 */ lui $at, %hi(music2_playing) -/* 0F58F0 7F0C0DC0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58EC 7F0C0DBC 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F58F0 7F0C0DC0 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F58F4 7F0C0DC4 0C001C81 */ jal musicTrack2Play /* 0F58F8 7F0C0DC8 24040018 */ li $a0, 24 /* 0F58FC 7F0C0DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5900 7F0C0DD0 44816000 */ mtc1 $at, $f12 -/* 0F5904 7F0C0DD4 0C001C3E */ jal music_related_1 +/* 0F5904 7F0C0DD4 0C001C3E */ jal musicTrack1FadeOut /* 0F5908 7F0C0DD8 00000000 */ nop /* 0F590C 7F0C0DDC 10000104 */ b .L7F0C11F0 /* 0F5910 7F0C0DE0 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C0DE4: /* 0F5914 7F0C0DE4 3C018006 */ lui $at, %hi(music_rate_8005B7E4) -/* 0F5918 7F0C0DE8 0C001C3E */ jal music_related_1 +/* 0F5918 7F0C0DE8 0C001C3E */ jal musicTrack1FadeOut /* 0F591C 7F0C0DEC C42CB7E4 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) /* 0F5920 7F0C0DF0 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5924 7F0C0DF4 00000000 */ nop -/* 0F5928 7F0C0DF8 0C001CF1 */ jal musicTrack2Vol +/* 0F5928 7F0C0DF8 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F592C 7F0C0DFC 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5930 7F0C0E00 3C018002 */ lui $at, %hi(music2_playing) -/* 0F5934 7F0C0E04 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5930 7F0C0E00 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F5934 7F0C0E04 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F5938 7F0C0E08 0C001C81 */ jal musicTrack2Play /* 0F593C 7F0C0E0C 2404003A */ li $a0, 58 /* 0F5940 7F0C0E10 100000F7 */ b .L7F0C11F0 @@ -297,21 +298,21 @@ glabel set_missionstate /* 0F598C 7F0C0E5C 00000000 */ nop /* 0F5990 7F0C0E60 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5994 7F0C0E64 44816000 */ mtc1 $at, $f12 -/* 0F5998 7F0C0E68 0C001C5A */ jal music_related_3 +/* 0F5998 7F0C0E68 0C001C5A */ jal musicTrack1FadeIn /* 0F599C 7F0C0E6C 3045FFFF */ andi $a1, $v0, 0xffff /* 0F59A0 7F0C0E70 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F59A4 7F0C0E74 44816000 */ mtc1 $at, $f12 -/* 0F59A8 7F0C0E78 0C001D20 */ jal music_related_6 +/* 0F59A8 7F0C0E78 0C001D20 */ jal musicTrack2FadeOut /* 0F59AC 7F0C0E7C 00000000 */ nop /* 0F59B0 7F0C0E80 100000DB */ b .L7F0C11F0 /* 0F59B4 7F0C0E84 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C0E88: /* 0F59B8 7F0C0E88 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F59BC 7F0C0E8C 00000000 */ nop -/* 0F59C0 7F0C0E90 0C001CF1 */ jal musicTrack2Vol +/* 0F59C0 7F0C0E90 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F59C4 7F0C0E94 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F59C8 7F0C0E98 3C018002 */ lui $at, %hi(music2_playing) -/* 0F59CC 7F0C0E9C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F59C8 7F0C0E98 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F59CC 7F0C0E9C AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F59D0 7F0C0EA0 0C001C81 */ jal musicTrack2Play /* 0F59D4 7F0C0EA4 24040018 */ li $a0, 24 /* 0F59D8 7F0C0EA8 100000D1 */ b .L7F0C11F0 @@ -339,23 +340,23 @@ glabel set_missionstate /* 0F5A24 7F0C0EF4 00000000 */ nop /* 0F5A28 7F0C0EF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5A2C 7F0C0EFC 44816000 */ mtc1 $at, $f12 -/* 0F5A30 7F0C0F00 0C001C5A */ jal music_related_3 +/* 0F5A30 7F0C0F00 0C001C5A */ jal musicTrack1FadeIn /* 0F5A34 7F0C0F04 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5A38 7F0C0F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5A3C 7F0C0F0C 44816000 */ mtc1 $at, $f12 -/* 0F5A40 7F0C0F10 0C001D20 */ jal music_related_6 +/* 0F5A40 7F0C0F10 0C001D20 */ jal musicTrack2FadeOut /* 0F5A44 7F0C0F14 00000000 */ nop /* 0F5A48 7F0C0F18 100000B5 */ b .L7F0C11F0 /* 0F5A4C 7F0C0F1C 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C0F20: /* 0F5A50 7F0C0F20 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5A54 7F0C0F24 00000000 */ nop -/* 0F5A58 7F0C0F28 0C001CF1 */ jal musicTrack2Vol +/* 0F5A58 7F0C0F28 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F5A5C 7F0C0F2C 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5A60 7F0C0F30 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5A60 7F0C0F30 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) /* 0F5A64 7F0C0F34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F5A68 7F0C0F38 AC204350 */ sw $zero, %lo(music2_playing)($at) -/* 0F5A6C 7F0C0F3C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5A68 7F0C0F38 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F5A6C 7F0C0F3C 0FC34A24 */ jal musicGetXTrackForStage /* 0F5A70 7F0C0F40 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F5A74 7F0C0F44 0C001C81 */ jal musicTrack2Play /* 0F5A78 7F0C0F48 00402025 */ move $a0, $v0 @@ -366,17 +367,17 @@ glabel set_missionstate /* 0F5A88 7F0C0F58 00000000 */ nop /* 0F5A8C 7F0C0F5C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5A90 7F0C0F60 44816000 */ mtc1 $at, $f12 -/* 0F5A94 7F0C0F64 0C001C5A */ jal music_related_3 +/* 0F5A94 7F0C0F64 0C001C5A */ jal musicTrack1FadeIn /* 0F5A98 7F0C0F68 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5A9C 7F0C0F6C 0FC30304 */ jal sub_GAME_7F0C0C10 /* 0F5AA0 7F0C0F70 00000000 */ nop /* 0F5AA4 7F0C0F74 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5AA8 7F0C0F78 44816000 */ mtc1 $at, $f12 -/* 0F5AAC 7F0C0F7C 0C001E1E */ jal music_related_13 +/* 0F5AAC 7F0C0F7C 0C001E1E */ jal musicTrack3FadeIn /* 0F5AB0 7F0C0F80 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5AB4 7F0C0F84 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5AB8 7F0C0F88 44816000 */ mtc1 $at, $f12 -/* 0F5ABC 7F0C0F8C 0C001D20 */ jal music_related_6 +/* 0F5ABC 7F0C0F8C 0C001D20 */ jal musicTrack2FadeOut /* 0F5AC0 7F0C0F90 00000000 */ nop /* 0F5AC4 7F0C0F94 10000096 */ b .L7F0C11F0 /* 0F5AC8 7F0C0F98 8FBF0014 */ lw $ra, 0x14($sp) @@ -385,16 +386,16 @@ glabel set_missionstate /* 0F5AD0 7F0C0FA0 00000000 */ nop /* 0F5AD4 7F0C0FA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F5AD8 7F0C0FA8 44816000 */ mtc1 $at, $f12 -/* 0F5ADC 7F0C0FAC 0C001E1E */ jal music_related_13 +/* 0F5ADC 7F0C0FAC 0C001E1E */ jal musicTrack3FadeIn /* 0F5AE0 7F0C0FB0 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5AE4 7F0C0FB4 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5AE8 7F0C0FB8 00000000 */ nop -/* 0F5AEC 7F0C0FBC 0C001CF1 */ jal musicTrack2Vol +/* 0F5AEC 7F0C0FBC 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F5AF0 7F0C0FC0 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5AF4 7F0C0FC4 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5AF4 7F0C0FC4 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) /* 0F5AF8 7F0C0FC8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F5AFC 7F0C0FCC AC204350 */ sw $zero, %lo(music2_playing)($at) -/* 0F5B00 7F0C0FD0 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5AFC 7F0C0FCC AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F5B00 7F0C0FD0 0FC34A24 */ jal musicGetXTrackForStage /* 0F5B04 7F0C0FD4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F5B08 7F0C0FD8 0C001C81 */ jal musicTrack2Play /* 0F5B0C 7F0C0FDC 00402025 */ move $a0, $v0 @@ -421,37 +422,37 @@ glabel set_missionstate .L7F0C1028: /* 0F5B58 7F0C1028 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5B5C 7F0C102C 00000000 */ nop -/* 0F5B60 7F0C1030 0C001CF1 */ jal musicTrack2Vol +/* 0F5B60 7F0C1030 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F5B64 7F0C1034 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5B68 7F0C1038 3C018002 */ lui $at, %hi(music2_playing) -/* 0F5B6C 7F0C103C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B68 7F0C1038 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F5B6C 7F0C103C AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F5B70 7F0C1040 0C001C81 */ jal musicTrack2Play /* 0F5B74 7F0C1044 24040018 */ li $a0, 24 /* 0F5B78 7F0C1048 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5B7C 7F0C104C 44816000 */ mtc1 $at, $f12 -/* 0F5B80 7F0C1050 0C001C3E */ jal music_related_1 +/* 0F5B80 7F0C1050 0C001C3E */ jal musicTrack1FadeOut /* 0F5B84 7F0C1054 00000000 */ nop /* 0F5B88 7F0C1058 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5B8C 7F0C105C 44816000 */ mtc1 $at, $f12 -/* 0F5B90 7F0C1060 0C001E02 */ jal music_related_11 +/* 0F5B90 7F0C1060 0C001E02 */ jal musicTrack3FadeOut /* 0F5B94 7F0C1064 00000000 */ nop /* 0F5B98 7F0C1068 10000061 */ b .L7F0C11F0 /* 0F5B9C 7F0C106C 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C1070: /* 0F5BA0 7F0C1070 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5BA4 7F0C1074 00000000 */ nop -/* 0F5BA8 7F0C1078 0C001CF1 */ jal musicTrack2Vol +/* 0F5BA8 7F0C1078 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F5BAC 7F0C107C 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5BB0 7F0C1080 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5BB0 7F0C1080 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) /* 0F5BB4 7F0C1084 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) -/* 0F5BB8 7F0C1088 AC204350 */ sw $zero, %lo(music2_playing)($at) -/* 0F5BBC 7F0C108C 0FC34A24 */ jal sub_GAME_7F0D2890 +/* 0F5BB8 7F0C1088 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F5BBC 7F0C108C 0FC34A24 */ jal musicGetXTrackForStage /* 0F5BC0 7F0C1090 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F5BC4 7F0C1094 0C001C81 */ jal musicTrack2Play /* 0F5BC8 7F0C1098 00402025 */ move $a0, $v0 /* 0F5BCC 7F0C109C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5BD0 7F0C10A0 44816000 */ mtc1 $at, $f12 -/* 0F5BD4 7F0C10A4 0C001C3E */ jal music_related_1 +/* 0F5BD4 7F0C10A4 0C001C3E */ jal musicTrack1FadeOut /* 0F5BD8 7F0C10A8 00000000 */ nop /* 0F5BDC 7F0C10AC 10000050 */ b .L7F0C11F0 /* 0F5BE0 7F0C10B0 8FBF0014 */ lw $ra, 0x14($sp) @@ -476,15 +477,15 @@ glabel set_missionstate .L7F0C10F4: /* 0F5C24 7F0C10F4 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F5C28 7F0C10F8 00000000 */ nop -/* 0F5C2C 7F0C10FC 0C001CF1 */ jal musicTrack2Vol +/* 0F5C2C 7F0C10FC 0C001CF1 */ jal musicTrack2ApplySeqpVol /* 0F5C30 7F0C1100 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F5C34 7F0C1104 3C018002 */ lui $at, %hi(music2_playing) -/* 0F5C38 7F0C1108 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5C34 7F0C1104 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F5C38 7F0C1108 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F5C3C 7F0C110C 0C001C81 */ jal musicTrack2Play /* 0F5C40 7F0C1110 24040018 */ li $a0, 24 /* 0F5C44 7F0C1114 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5C48 7F0C1118 44816000 */ mtc1 $at, $f12 -/* 0F5C4C 7F0C111C 0C001E02 */ jal music_related_11 +/* 0F5C4C 7F0C111C 0C001E02 */ jal musicTrack3FadeOut /* 0F5C50 7F0C1120 00000000 */ nop /* 0F5C54 7F0C1124 10000032 */ b .L7F0C11F0 /* 0F5C58 7F0C1128 8FBF0014 */ lw $ra, 0x14($sp) @@ -493,11 +494,11 @@ glabel set_missionstate /* 0F5C60 7F0C1130 00000000 */ nop /* 0F5C64 7F0C1134 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5C68 7F0C1138 44816000 */ mtc1 $at, $f12 -/* 0F5C6C 7F0C113C 0C001C5A */ jal music_related_3 +/* 0F5C6C 7F0C113C 0C001C5A */ jal musicTrack1FadeIn /* 0F5C70 7F0C1140 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5C74 7F0C1144 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F5C78 7F0C1148 44816000 */ mtc1 $at, $f12 -/* 0F5C7C 7F0C114C 0C001D20 */ jal music_related_6 +/* 0F5C7C 7F0C114C 0C001D20 */ jal musicTrack2FadeOut /* 0F5C80 7F0C1150 00000000 */ nop /* 0F5C84 7F0C1154 10000026 */ b .L7F0C11F0 /* 0F5C88 7F0C1158 8FBF0014 */ lw $ra, 0x14($sp) @@ -524,17 +525,17 @@ glabel set_missionstate /* 0F5CD0 7F0C11A0 00000000 */ nop /* 0F5CD4 7F0C11A4 3C014000 */ li $at, 0x40000000 # 2.000000 /* 0F5CD8 7F0C11A8 44816000 */ mtc1 $at, $f12 -/* 0F5CDC 7F0C11AC 0C001C5A */ jal music_related_3 +/* 0F5CDC 7F0C11AC 0C001C5A */ jal musicTrack1FadeIn /* 0F5CE0 7F0C11B0 3045FFFF */ andi $a1, $v0, 0xffff /* 0F5CE4 7F0C11B4 3C014000 */ li $at, 0x40000000 # 2.000000 /* 0F5CE8 7F0C11B8 44816000 */ mtc1 $at, $f12 -/* 0F5CEC 7F0C11BC 0C001D20 */ jal music_related_6 +/* 0F5CEC 7F0C11BC 0C001D20 */ jal musicTrack2FadeOut /* 0F5CF0 7F0C11C0 00000000 */ nop /* 0F5CF4 7F0C11C4 1000000A */ b .L7F0C11F0 /* 0F5CF8 7F0C11C8 8FBF0014 */ lw $ra, 0x14($sp) .L7F0C11CC: -/* 0F5CFC 7F0C11CC 3C018002 */ lui $at, %hi(music2_playing) -/* 0F5D00 7F0C11D0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5CFC 7F0C11CC 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) +/* 0F5D00 7F0C11D0 AC204350 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F5D04 7F0C11D4 0C001C81 */ jal musicTrack2Play /* 0F5D08 7F0C11D8 2404003A */ li $a0, 58 /* 0F5D0C 7F0C11DC 10000004 */ b .L7F0C11F0 @@ -675,11 +676,11 @@ glabel set_missionstate .Ljp7F0C1944: /* 0F64B4 7F0C1944 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F64B8 7F0C1948 00000000 */ nop -/* 0F64BC 7F0C194C 0C001C13 */ jal musicTrack1Vol +/* 0F64BC 7F0C194C 0C001C13 */ jal musicTrack1ApplySeqpVol /* 0F64C0 7F0C1950 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F64C4 7F0C1954 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64C4 7F0C1954 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) # $at, 0x8002 /* 0F64C8 7F0C1958 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F64CC 7F0C195C AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F64CC 7F0C195C AC20438C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 0F64D0 7F0C1960 0FC34D00 */ jal getmusictrack_or_randomtrack /* 0F64D4 7F0C1964 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F64D8 7F0C1968 0C001BA3 */ jal musicTrack1Play @@ -689,25 +690,25 @@ glabel set_missionstate .Ljp7F0C1978: /* 0F64E8 7F0C1978 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F64EC 7F0C197C 00000000 */ nop -/* 0F64F0 7F0C1980 0C001C13 */ jal musicTrack1Vol +/* 0F64F0 7F0C1980 0C001C13 */ jal musicTrack1ApplySeqpVol /* 0F64F4 7F0C1984 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F64F8 7F0C1988 3C018002 */ lui $at, %hi(music1_playing) # $at, 0x8002 +/* 0F64F8 7F0C1988 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) # $at, 0x8002 /* 0F64FC 7F0C198C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F6500 7F0C1990 AC20438C */ sw $zero, %lo(music1_playing)($at) +/* 0F6500 7F0C1990 AC20438C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 0F6504 7F0C1994 0FC34D00 */ jal getmusictrack_or_randomtrack /* 0F6508 7F0C1998 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F650C 7F0C199C 0C001BA3 */ jal musicTrack1Play /* 0F6510 7F0C19A0 00402025 */ move $a0, $v0 /* 0F6514 7F0C19A4 0FC30628 */ jal sub_GAME_7F0C0C10 /* 0F6518 7F0C19A8 00000000 */ nop -/* 0F651C 7F0C19AC 0C001DD7 */ jal musicTrack3Vol +/* 0F651C 7F0C19AC 0C001DD7 */ jal musicTrack3ApplySeqpVol /* 0F6520 7F0C19B0 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6524 7F0C19B4 3C018002 */ lui $at, %hi(music3_playing) # $at, 0x8002 +/* 0F6524 7F0C19B4 3C018002 */ lui $at, %hi(g_musicXTrack3Fade) # $at, 0x8002 /* 0F6528 7F0C19B8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F652C 7F0C19BC AC204394 */ sw $zero, %lo(music3_playing)($at) -/* 0F6530 7F0C19C0 0FC34D4A */ jal sub_GAME_7F0D2848 +/* 0F652C 7F0C19BC AC204394 */ sw $zero, %lo(g_musicXTrack3Fade)($at) +/* 0F6530 7F0C19C0 0FC34D4A */ jal musicGetBgTrackForStage /* 0F6534 7F0C19C4 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) -/* 0F6538 7F0C19C8 0C001D67 */ jal music_related_3rd_block +/* 0F6538 7F0C19C8 0C001D67 */ jal musicTrack3Play /* 0F653C 7F0C19CC 00402025 */ move $a0, $v0 /* 0F6540 7F0C19D0 10000133 */ b .Ljp7F0C1EA0 /* 0F6544 7F0C19D4 8FBF0014 */ lw $ra, 0x14($sp) @@ -732,46 +733,46 @@ glabel set_missionstate .Ljp7F0C1A18: /* 0F6588 7F0C1A18 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F658C 7F0C1A1C 00000000 */ nop -/* 0F6590 7F0C1A20 0C001CF5 */ jal musicTrack2Vol +/* 0F6590 7F0C1A20 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F6594 7F0C1A24 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6598 7F0C1A28 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6598 7F0C1A28 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 /* 0F659C 7F0C1A2C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F65A0 7F0C1A30 AC204390 */ sw $zero, %lo(music2_playing)($at) -/* 0F65A4 7F0C1A34 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F65A0 7F0C1A30 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F65A4 7F0C1A34 0FC34D5C */ jal musicGetXTrackForStage /* 0F65A8 7F0C1A38 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F65AC 7F0C1A3C 0C001C85 */ jal musicTrack2Play /* 0F65B0 7F0C1A40 00402025 */ move $a0, $v0 /* 0F65B4 7F0C1A44 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F65B8 7F0C1A48 44816000 */ mtc1 $at, $f12 -/* 0F65BC 7F0C1A4C 0C001C42 */ jal music_related_1 +/* 0F65BC 7F0C1A4C 0C001C42 */ jal musicTrack1FadeOut /* 0F65C0 7F0C1A50 00000000 */ nop /* 0F65C4 7F0C1A54 10000112 */ b .Ljp7F0C1EA0 /* 0F65C8 7F0C1A58 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1A5C: /* 0F65CC 7F0C1A5C 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F65D0 7F0C1A60 00000000 */ nop -/* 0F65D4 7F0C1A64 0C001CF5 */ jal musicTrack2Vol +/* 0F65D4 7F0C1A64 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F65D8 7F0C1A68 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F65DC 7F0C1A6C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F65E0 7F0C1A70 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F65DC 7F0C1A6C 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F65E0 7F0C1A70 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F65E4 7F0C1A74 0C001C85 */ jal musicTrack2Play /* 0F65E8 7F0C1A78 24040018 */ li $a0, 24 /* 0F65EC 7F0C1A7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F65F0 7F0C1A80 44816000 */ mtc1 $at, $f12 -/* 0F65F4 7F0C1A84 0C001C42 */ jal music_related_1 +/* 0F65F4 7F0C1A84 0C001C42 */ jal musicTrack1FadeOut /* 0F65F8 7F0C1A88 00000000 */ nop /* 0F65FC 7F0C1A8C 10000104 */ b .Ljp7F0C1EA0 /* 0F6600 7F0C1A90 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1A94: /* 0F6604 7F0C1A94 3C018006 */ lui $at, %hi(music_rate_8005B7E4) # $at, 0x8006 -/* 0F6608 7F0C1A98 0C001C42 */ jal music_related_1 +/* 0F6608 7F0C1A98 0C001C42 */ jal musicTrack1FadeOut /* 0F660C 7F0C1A9C C42CB824 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) /* 0F6610 7F0C1AA0 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F6614 7F0C1AA4 00000000 */ nop -/* 0F6618 7F0C1AA8 0C001CF5 */ jal musicTrack2Vol +/* 0F6618 7F0C1AA8 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F661C 7F0C1AAC 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6620 7F0C1AB0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F6624 7F0C1AB4 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6620 7F0C1AB0 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F6624 7F0C1AB4 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F6628 7F0C1AB8 0C001C85 */ jal musicTrack2Play /* 0F662C 7F0C1ABC 2404003A */ li $a0, 58 /* 0F6630 7F0C1AC0 100000F7 */ b .Ljp7F0C1EA0 @@ -799,21 +800,21 @@ glabel set_missionstate /* 0F667C 7F0C1B0C 00000000 */ nop /* 0F6680 7F0C1B10 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F6684 7F0C1B14 44816000 */ mtc1 $at, $f12 -/* 0F6688 7F0C1B18 0C001C5E */ jal music_related_3 +/* 0F6688 7F0C1B18 0C001C5E */ jal musicTrack1FadeIn /* 0F668C 7F0C1B1C 3045FFFF */ andi $a1, $v0, 0xffff /* 0F6690 7F0C1B20 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F6694 7F0C1B24 44816000 */ mtc1 $at, $f12 -/* 0F6698 7F0C1B28 0C001D24 */ jal music_related_6 +/* 0F6698 7F0C1B28 0C001D24 */ jal musicTrack2FadeOut /* 0F669C 7F0C1B2C 00000000 */ nop /* 0F66A0 7F0C1B30 100000DB */ b .Ljp7F0C1EA0 /* 0F66A4 7F0C1B34 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1B38: /* 0F66A8 7F0C1B38 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F66AC 7F0C1B3C 00000000 */ nop -/* 0F66B0 7F0C1B40 0C001CF5 */ jal musicTrack2Vol +/* 0F66B0 7F0C1B40 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F66B4 7F0C1B44 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F66B8 7F0C1B48 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F66BC 7F0C1B4C AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F66B8 7F0C1B48 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F66BC 7F0C1B4C AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F66C0 7F0C1B50 0C001C85 */ jal musicTrack2Play /* 0F66C4 7F0C1B54 24040018 */ li $a0, 24 /* 0F66C8 7F0C1B58 100000D1 */ b .Ljp7F0C1EA0 @@ -841,23 +842,23 @@ glabel set_missionstate /* 0F6714 7F0C1BA4 00000000 */ nop /* 0F6718 7F0C1BA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F671C 7F0C1BAC 44816000 */ mtc1 $at, $f12 -/* 0F6720 7F0C1BB0 0C001C5E */ jal music_related_3 +/* 0F6720 7F0C1BB0 0C001C5E */ jal musicTrack1FadeIn /* 0F6724 7F0C1BB4 3045FFFF */ andi $a1, $v0, 0xffff /* 0F6728 7F0C1BB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F672C 7F0C1BBC 44816000 */ mtc1 $at, $f12 -/* 0F6730 7F0C1BC0 0C001D24 */ jal music_related_6 +/* 0F6730 7F0C1BC0 0C001D24 */ jal musicTrack2FadeOut /* 0F6734 7F0C1BC4 00000000 */ nop /* 0F6738 7F0C1BC8 100000B5 */ b .Ljp7F0C1EA0 /* 0F673C 7F0C1BCC 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1BD0: /* 0F6740 7F0C1BD0 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F6744 7F0C1BD4 00000000 */ nop -/* 0F6748 7F0C1BD8 0C001CF5 */ jal musicTrack2Vol +/* 0F6748 7F0C1BD8 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F674C 7F0C1BDC 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6750 7F0C1BE0 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F6750 7F0C1BE0 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 /* 0F6754 7F0C1BE4 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F6758 7F0C1BE8 AC204390 */ sw $zero, %lo(music2_playing)($at) -/* 0F675C 7F0C1BEC 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F6758 7F0C1BE8 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F675C 7F0C1BEC 0FC34D5C */ jal musicGetXTrackForStage /* 0F6760 7F0C1BF0 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F6764 7F0C1BF4 0C001C85 */ jal musicTrack2Play /* 0F6768 7F0C1BF8 00402025 */ move $a0, $v0 @@ -868,17 +869,17 @@ glabel set_missionstate /* 0F6778 7F0C1C08 00000000 */ nop /* 0F677C 7F0C1C0C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F6780 7F0C1C10 44816000 */ mtc1 $at, $f12 -/* 0F6784 7F0C1C14 0C001C5E */ jal music_related_3 +/* 0F6784 7F0C1C14 0C001C5E */ jal musicTrack1FadeIn /* 0F6788 7F0C1C18 3045FFFF */ andi $a1, $v0, 0xffff /* 0F678C 7F0C1C1C 0FC30628 */ jal sub_GAME_7F0C0C10 /* 0F6790 7F0C1C20 00000000 */ nop /* 0F6794 7F0C1C24 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F6798 7F0C1C28 44816000 */ mtc1 $at, $f12 -/* 0F679C 7F0C1C2C 0C001E22 */ jal music_related_13 +/* 0F679C 7F0C1C2C 0C001E22 */ jal musicTrack3FadeIn /* 0F67A0 7F0C1C30 3045FFFF */ andi $a1, $v0, 0xffff /* 0F67A4 7F0C1C34 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F67A8 7F0C1C38 44816000 */ mtc1 $at, $f12 -/* 0F67AC 7F0C1C3C 0C001D24 */ jal music_related_6 +/* 0F67AC 7F0C1C3C 0C001D24 */ jal musicTrack2FadeOut /* 0F67B0 7F0C1C40 00000000 */ nop /* 0F67B4 7F0C1C44 10000096 */ b .Ljp7F0C1EA0 /* 0F67B8 7F0C1C48 8FBF0014 */ lw $ra, 0x14($sp) @@ -887,16 +888,16 @@ glabel set_missionstate /* 0F67C0 7F0C1C50 00000000 */ nop /* 0F67C4 7F0C1C54 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0F67C8 7F0C1C58 44816000 */ mtc1 $at, $f12 -/* 0F67CC 7F0C1C5C 0C001E22 */ jal music_related_13 +/* 0F67CC 7F0C1C5C 0C001E22 */ jal musicTrack3FadeIn /* 0F67D0 7F0C1C60 3045FFFF */ andi $a1, $v0, 0xffff /* 0F67D4 7F0C1C64 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F67D8 7F0C1C68 00000000 */ nop -/* 0F67DC 7F0C1C6C 0C001CF5 */ jal musicTrack2Vol +/* 0F67DC 7F0C1C6C 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F67E0 7F0C1C70 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F67E4 7F0C1C74 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F67E4 7F0C1C74 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 /* 0F67E8 7F0C1C78 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F67EC 7F0C1C7C AC204390 */ sw $zero, %lo(music2_playing)($at) -/* 0F67F0 7F0C1C80 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F67EC 7F0C1C7C AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F67F0 7F0C1C80 0FC34D5C */ jal musicGetXTrackForStage /* 0F67F4 7F0C1C84 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F67F8 7F0C1C88 0C001C85 */ jal musicTrack2Play /* 0F67FC 7F0C1C8C 00402025 */ move $a0, $v0 @@ -923,37 +924,37 @@ glabel set_missionstate .Ljp7F0C1CD8: /* 0F6848 7F0C1CD8 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F684C 7F0C1CDC 00000000 */ nop -/* 0F6850 7F0C1CE0 0C001CF5 */ jal musicTrack2Vol +/* 0F6850 7F0C1CE0 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F6854 7F0C1CE4 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6858 7F0C1CE8 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F685C 7F0C1CEC AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6858 7F0C1CE8 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F685C 7F0C1CEC AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F6860 7F0C1CF0 0C001C85 */ jal musicTrack2Play /* 0F6864 7F0C1CF4 24040018 */ li $a0, 24 /* 0F6868 7F0C1CF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F686C 7F0C1CFC 44816000 */ mtc1 $at, $f12 -/* 0F6870 7F0C1D00 0C001C42 */ jal music_related_1 +/* 0F6870 7F0C1D00 0C001C42 */ jal musicTrack1FadeOut /* 0F6874 7F0C1D04 00000000 */ nop /* 0F6878 7F0C1D08 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F687C 7F0C1D0C 44816000 */ mtc1 $at, $f12 -/* 0F6880 7F0C1D10 0C001E06 */ jal music_related_11 +/* 0F6880 7F0C1D10 0C001E06 */ jal musicTrack3FadeOut /* 0F6884 7F0C1D14 00000000 */ nop /* 0F6888 7F0C1D18 10000061 */ b .Ljp7F0C1EA0 /* 0F688C 7F0C1D1C 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1D20: /* 0F6890 7F0C1D20 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F6894 7F0C1D24 00000000 */ nop -/* 0F6898 7F0C1D28 0C001CF5 */ jal musicTrack2Vol +/* 0F6898 7F0C1D28 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F689C 7F0C1D2C 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F68A0 7F0C1D30 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 +/* 0F68A0 7F0C1D30 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 /* 0F68A4 7F0C1D34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) # $a0, 0x8009 -/* 0F68A8 7F0C1D38 AC204390 */ sw $zero, %lo(music2_playing)($at) -/* 0F68AC 7F0C1D3C 0FC34D5C */ jal sub_GAME_7F0D2890 +/* 0F68A8 7F0C1D38 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) +/* 0F68AC 7F0C1D3C 0FC34D5C */ jal musicGetXTrackForStage /* 0F68B0 7F0C1D40 8C84C670 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) /* 0F68B4 7F0C1D44 0C001C85 */ jal musicTrack2Play /* 0F68B8 7F0C1D48 00402025 */ move $a0, $v0 /* 0F68BC 7F0C1D4C 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F68C0 7F0C1D50 44816000 */ mtc1 $at, $f12 -/* 0F68C4 7F0C1D54 0C001C42 */ jal music_related_1 +/* 0F68C4 7F0C1D54 0C001C42 */ jal musicTrack1FadeOut /* 0F68C8 7F0C1D58 00000000 */ nop /* 0F68CC 7F0C1D5C 10000050 */ b .Ljp7F0C1EA0 /* 0F68D0 7F0C1D60 8FBF0014 */ lw $ra, 0x14($sp) @@ -978,15 +979,15 @@ glabel set_missionstate .Ljp7F0C1DA4: /* 0F6914 7F0C1DA4 0FC30620 */ jal sub_GAME_7F0C0BF0 /* 0F6918 7F0C1DA8 00000000 */ nop -/* 0F691C 7F0C1DAC 0C001CF5 */ jal musicTrack2Vol +/* 0F691C 7F0C1DAC 0C001CF5 */ jal musicTrack2ApplySeqpVol /* 0F6920 7F0C1DB0 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F6924 7F0C1DB4 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F6928 7F0C1DB8 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F6924 7F0C1DB4 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F6928 7F0C1DB8 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F692C 7F0C1DBC 0C001C85 */ jal musicTrack2Play /* 0F6930 7F0C1DC0 24040018 */ li $a0, 24 /* 0F6934 7F0C1DC4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F6938 7F0C1DC8 44816000 */ mtc1 $at, $f12 -/* 0F693C 7F0C1DCC 0C001E06 */ jal music_related_11 +/* 0F693C 7F0C1DCC 0C001E06 */ jal musicTrack3FadeOut /* 0F6940 7F0C1DD0 00000000 */ nop /* 0F6944 7F0C1DD4 10000032 */ b .Ljp7F0C1EA0 /* 0F6948 7F0C1DD8 8FBF0014 */ lw $ra, 0x14($sp) @@ -995,11 +996,11 @@ glabel set_missionstate /* 0F6950 7F0C1DE0 00000000 */ nop /* 0F6954 7F0C1DE4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F6958 7F0C1DE8 44816000 */ mtc1 $at, $f12 -/* 0F695C 7F0C1DEC 0C001C5E */ jal music_related_3 +/* 0F695C 7F0C1DEC 0C001C5E */ jal musicTrack1FadeIn /* 0F6960 7F0C1DF0 3045FFFF */ andi $a1, $v0, 0xffff /* 0F6964 7F0C1DF4 3C013F00 */ li $at, 0x3F000000 # 0.500000 /* 0F6968 7F0C1DF8 44816000 */ mtc1 $at, $f12 -/* 0F696C 7F0C1DFC 0C001D24 */ jal music_related_6 +/* 0F696C 7F0C1DFC 0C001D24 */ jal musicTrack2FadeOut /* 0F6970 7F0C1E00 00000000 */ nop /* 0F6974 7F0C1E04 10000026 */ b .Ljp7F0C1EA0 /* 0F6978 7F0C1E08 8FBF0014 */ lw $ra, 0x14($sp) @@ -1026,17 +1027,17 @@ glabel set_missionstate /* 0F69C0 7F0C1E50 00000000 */ nop /* 0F69C4 7F0C1E54 3C014000 */ li $at, 0x40000000 # 2.000000 /* 0F69C8 7F0C1E58 44816000 */ mtc1 $at, $f12 -/* 0F69CC 7F0C1E5C 0C001C5E */ jal music_related_3 +/* 0F69CC 7F0C1E5C 0C001C5E */ jal musicTrack1FadeIn /* 0F69D0 7F0C1E60 3045FFFF */ andi $a1, $v0, 0xffff /* 0F69D4 7F0C1E64 3C014000 */ li $at, 0x40000000 # 2.000000 /* 0F69D8 7F0C1E68 44816000 */ mtc1 $at, $f12 -/* 0F69DC 7F0C1E6C 0C001D24 */ jal music_related_6 +/* 0F69DC 7F0C1E6C 0C001D24 */ jal musicTrack2FadeOut /* 0F69E0 7F0C1E70 00000000 */ nop /* 0F69E4 7F0C1E74 1000000A */ b .Ljp7F0C1EA0 /* 0F69E8 7F0C1E78 8FBF0014 */ lw $ra, 0x14($sp) .Ljp7F0C1E7C: -/* 0F69EC 7F0C1E7C 3C018002 */ lui $at, %hi(music2_playing) # $at, 0x8002 -/* 0F69F0 7F0C1E80 AC204390 */ sw $zero, %lo(music2_playing)($at) +/* 0F69EC 7F0C1E7C 3C018002 */ lui $at, %hi(g_musicXTrack2Fade) # $at, 0x8002 +/* 0F69F0 7F0C1E80 AC204390 */ sw $zero, %lo(g_musicXTrack2Fade)($at) /* 0F69F4 7F0C1E84 0C001C85 */ jal musicTrack2Play /* 0F69F8 7F0C1E88 2404003A */ li $a0, 58 /* 0F69FC 7F0C1E8C 10000004 */ b .Ljp7F0C1EA0 @@ -1053,6 +1054,499 @@ glabel set_missionstate ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +/*D:8005B790*/ +glabel jpt_8005B790 +.word .L7F0C0C74 +.word .L7F0C0D28 +.word .L7F0C0E18 +.word .L7F0C0EB0 +.word .L7F0C0FE8 +.word .L7F0C10B4 +.word .L7F0C115C + +/*D:8005B7AC*/ +glabel jpt_8005B7AC +.word .L7F0C11EC +.word .L7F0C0C94 +.word .L7F0C0D28 +.word .L7F0C0D28 +.word .L7F0C0CC8 +.word .L7F0C0D28 +.word .L7F0C0D28 + +/*D:8005B7C8*/ +glabel jpt_8005B7C8 +.word .L7F0C0D48 +.word .L7F0C0E18 +.word .L7F0C0D68 +.word .L7F0C0DAC +.word .L7F0C0E18 +.word .L7F0C0E18 +.word .L7F0C0DE4 + +glabel music_rate_8005B7E4 +.word 0x3ca3d70a /*0.02*/ + +/*D:8005B7E8*/ +glabel jpt_8005B7E8 +.word .L7F0C0E38 +.word .L7F0C0E58 +.word .L7F0C11EC +.word .L7F0C0E88 +.word .L7F0C0EB0 +.word .L7F0C0EB0 +.word .L7F0C0EB0 + +/*D:8005B804*/ +glabel jpt_8005B804 +.word .L7F0C0ED0 +.word .L7F0C0EF0 +.word .L7F0C0F20 +.word .L7F0C0FE8 +.word .L7F0C0F54 +.word .L7F0C0F9C +.word .L7F0C0FE8 + +/*D:8005B820*/ +glabel jpt_8005B820 +.word .L7F0C1008 +.word .L7F0C10B4 +.word .L7F0C10B4 +.word .L7F0C1028 +.word .L7F0C10B4 +.word .L7F0C1070 +.word .L7F0C10B4 + +/*D:8005B83C*/ +glabel jpt_8005B83C +.word .L7F0C10D4 +.word .L7F0C115C +.word .L7F0C115C +.word .L7F0C10F4 +.word .L7F0C112C +.word .L7F0C115C +.word .L7F0C115C + +/*D:8005B858*/ +glabel jpt_8005B858 +.word .L7F0C117C +.word .L7F0C119C +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11E4 +.word .L7F0C11CC + + +.text +glabel set_missionstate +/* 0F576C set_missionstate 3C038005 */ lui $v1, %hi(mission_state) +/* 0F5770 7F0C0C40 246384C0 */ addiu $v1, %lo(mission_state) # addiu $v1, $v1, -0x7b40 +/* 0F5774 7F0C0C44 8C620000 */ lw $v0, ($v1) +/* 0F5778 7F0C0C48 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F577C 7F0C0C4C AFBF0014 */ sw $ra, 0x14($sp) +/* 0F5780 7F0C0C50 2C410007 */ sltiu $at, $v0, 7 +/* 0F5784 7F0C0C54 10200163 */ beqz $at, .L7F0C11E4 +/* 0F5788 7F0C0C58 AC640000 */ sw $a0, ($v1) +/* 0F578C 7F0C0C5C 00027080 */ sll $t6, $v0, 2 +/* 0F5790 7F0C0C60 3C018006 */ lui $at, %hi(jpt_8005B790) +/* 0F5794 7F0C0C64 002E0821 */ addu $at, $at, $t6 +/* 0F5798 7F0C0C68 8C2EB790 */ lw $t6, %lo(jpt_8005B790)($at) +/* 0F579C 7F0C0C6C 01C00008 */ jr $t6 +/* 0F57A0 7F0C0C70 00000000 */ nop +.L7F0C0C74: +/* 0F57A4 7F0C0C74 2C810007 */ sltiu $at, $a0, 7 +/* 0F57A8 7F0C0C78 1020002B */ beqz $at, .L7F0C0D28 +/* 0F57AC 7F0C0C7C 00047880 */ sll $t7, $a0, 2 +/* 0F57B0 7F0C0C80 3C018006 */ lui $at, %hi(jpt_8005B7AC) +/* 0F57B4 7F0C0C84 002F0821 */ addu $at, $at, $t7 +/* 0F57B8 7F0C0C88 8C2FB7AC */ lw $t7, %lo(jpt_8005B7AC)($at) +/* 0F57BC 7F0C0C8C 01E00008 */ jr $t7 +/* 0F57C0 7F0C0C90 00000000 */ nop +.L7F0C0C94: +/* 0F57C4 7F0C0C94 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57C8 7F0C0C98 00000000 */ nop +/* 0F57CC 7F0C0C9C 0C001C0F */ jal musicTrack1Vol +/* 0F57D0 7F0C0CA0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F57D4 7F0C0CA4 3C018002 */ lui $at, %hi(music1_playing) +/* 0F57D8 7F0C0CA8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F57DC 7F0C0CAC AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F57E0 7F0C0CB0 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F57E4 7F0C0CB4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F57E8 7F0C0CB8 0C001B9F */ jal musicTrack1Play +/* 0F57EC 7F0C0CBC 00402025 */ move $a0, $v0 +/* 0F57F0 7F0C0CC0 1000014B */ b .L7F0C11F0 +/* 0F57F4 7F0C0CC4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0CC8: +/* 0F57F8 7F0C0CC8 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F57FC 7F0C0CCC 00000000 */ nop +/* 0F5800 7F0C0CD0 0C001C0F */ jal musicTrack1Vol +/* 0F5804 7F0C0CD4 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5808 7F0C0CD8 3C018002 */ lui $at, %hi(music1_playing) +/* 0F580C 7F0C0CDC 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5810 7F0C0CE0 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F5814 7F0C0CE4 0FC349C8 */ jal getmusictrack_or_randomtrack +/* 0F5818 7F0C0CE8 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F581C 7F0C0CEC 0C001B9F */ jal musicTrack1Play +/* 0F5820 7F0C0CF0 00402025 */ move $a0, $v0 +/* 0F5824 7F0C0CF4 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5828 7F0C0CF8 00000000 */ nop +/* 0F582C 7F0C0CFC 0C001DD3 */ jal musicTrack3Vol +/* 0F5830 7F0C0D00 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5834 7F0C0D04 3C018002 */ lui $at, %hi(music3_playing) +/* 0F5838 7F0C0D08 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F583C 7F0C0D0C AC204354 */ sw $zero, %lo(music3_playing)($at) +/* 0F5840 7F0C0D10 0FC34A12 */ jal musicGetBgTrackForStage +/* 0F5844 7F0C0D14 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5848 7F0C0D18 0C001D63 */ jal music_related_3rd_block +/* 0F584C 7F0C0D1C 00402025 */ move $a0, $v0 +/* 0F5850 7F0C0D20 10000133 */ b .L7F0C11F0 +/* 0F5854 7F0C0D24 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D28: +/* 0F5858 7F0C0D28 2C810007 */ sltiu $at, $a0, 7 +/* 0F585C 7F0C0D2C 1020003A */ beqz $at, .L7F0C0E18 +/* 0F5860 7F0C0D30 0004C080 */ sll $t8, $a0, 2 +/* 0F5864 7F0C0D34 3C018006 */ lui $at, %hi(jpt_8005B7C8) +/* 0F5868 7F0C0D38 00380821 */ addu $at, $at, $t8 +/* 0F586C 7F0C0D3C 8C38B7C8 */ lw $t8, %lo(jpt_8005B7C8)($at) +/* 0F5870 7F0C0D40 03000008 */ jr $t8 +/* 0F5874 7F0C0D44 00000000 */ nop +.L7F0C0D48: +/* 0F5878 7F0C0D48 0C001BF4 */ jal musicTrack1Stop +/* 0F587C 7F0C0D4C 00000000 */ nop +/* 0F5880 7F0C0D50 0C001CD6 */ jal musicTrack2Stop +/* 0F5884 7F0C0D54 00000000 */ nop +/* 0F5888 7F0C0D58 0C001DB8 */ jal musicTrack3Stop +/* 0F588C 7F0C0D5C 00000000 */ nop +/* 0F5890 7F0C0D60 10000123 */ b .L7F0C11F0 +/* 0F5894 7F0C0D64 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0D68: +/* 0F5898 7F0C0D68 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F589C 7F0C0D6C 00000000 */ nop +/* 0F58A0 7F0C0D70 0C001CF1 */ jal musicTrack2Vol +/* 0F58A4 7F0C0D74 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58A8 7F0C0D78 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58AC 7F0C0D7C 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F58B0 7F0C0D80 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58B4 7F0C0D84 0FC34A24 */ jal musicGetXTrackForStage +/* 0F58B8 7F0C0D88 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F58BC 7F0C0D8C 0C001C81 */ jal musicTrack2Play +/* 0F58C0 7F0C0D90 00402025 */ move $a0, $v0 +/* 0F58C4 7F0C0D94 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F58C8 7F0C0D98 44816000 */ mtc1 $at, $f12 +/* 0F58CC 7F0C0D9C 0C001C3E */ jal music_related_1 +/* 0F58D0 7F0C0DA0 00000000 */ nop +/* 0F58D4 7F0C0DA4 10000112 */ b .L7F0C11F0 +/* 0F58D8 7F0C0DA8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DAC: +/* 0F58DC 7F0C0DAC 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F58E0 7F0C0DB0 00000000 */ nop +/* 0F58E4 7F0C0DB4 0C001CF1 */ jal musicTrack2Vol +/* 0F58E8 7F0C0DB8 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F58EC 7F0C0DBC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F58F0 7F0C0DC0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F58F4 7F0C0DC4 0C001C81 */ jal musicTrack2Play +/* 0F58F8 7F0C0DC8 24040018 */ li $a0, 24 +/* 0F58FC 7F0C0DCC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5900 7F0C0DD0 44816000 */ mtc1 $at, $f12 +/* 0F5904 7F0C0DD4 0C001C3E */ jal music_related_1 +/* 0F5908 7F0C0DD8 00000000 */ nop +/* 0F590C 7F0C0DDC 10000104 */ b .L7F0C11F0 +/* 0F5910 7F0C0DE0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0DE4: +/* 0F5914 7F0C0DE4 3C018006 */ lui $at, %hi(music_rate_8005B7E4) +/* 0F5918 7F0C0DE8 0C001C3E */ jal music_related_1 +/* 0F591C 7F0C0DEC C42CB7E4 */ lwc1 $f12, %lo(music_rate_8005B7E4)($at) +/* 0F5920 7F0C0DF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5924 7F0C0DF4 00000000 */ nop +/* 0F5928 7F0C0DF8 0C001CF1 */ jal musicTrack2Vol +/* 0F592C 7F0C0DFC 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5930 7F0C0E00 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5934 7F0C0E04 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5938 7F0C0E08 0C001C81 */ jal musicTrack2Play +/* 0F593C 7F0C0E0C 2404003A */ li $a0, 58 +/* 0F5940 7F0C0E10 100000F7 */ b .L7F0C11F0 +/* 0F5944 7F0C0E14 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E18: +/* 0F5948 7F0C0E18 2C810007 */ sltiu $at, $a0, 7 +/* 0F594C 7F0C0E1C 10200024 */ beqz $at, .L7F0C0EB0 +/* 0F5950 7F0C0E20 0004C880 */ sll $t9, $a0, 2 +/* 0F5954 7F0C0E24 3C018006 */ lui $at, %hi(jpt_8005B7E8) +/* 0F5958 7F0C0E28 00390821 */ addu $at, $at, $t9 +/* 0F595C 7F0C0E2C 8C39B7E8 */ lw $t9, %lo(jpt_8005B7E8)($at) +/* 0F5960 7F0C0E30 03200008 */ jr $t9 +/* 0F5964 7F0C0E34 00000000 */ nop +.L7F0C0E38: +/* 0F5968 7F0C0E38 0C001BF4 */ jal musicTrack1Stop +/* 0F596C 7F0C0E3C 00000000 */ nop +/* 0F5970 7F0C0E40 0C001CD6 */ jal musicTrack2Stop +/* 0F5974 7F0C0E44 00000000 */ nop +/* 0F5978 7F0C0E48 0C001DB8 */ jal musicTrack3Stop +/* 0F597C 7F0C0E4C 00000000 */ nop +/* 0F5980 7F0C0E50 100000E7 */ b .L7F0C11F0 +/* 0F5984 7F0C0E54 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E58: +/* 0F5988 7F0C0E58 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F598C 7F0C0E5C 00000000 */ nop +/* 0F5990 7F0C0E60 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5994 7F0C0E64 44816000 */ mtc1 $at, $f12 +/* 0F5998 7F0C0E68 0C001C5A */ jal music_related_3 +/* 0F599C 7F0C0E6C 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F59A0 7F0C0E70 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F59A4 7F0C0E74 44816000 */ mtc1 $at, $f12 +/* 0F59A8 7F0C0E78 0C001D20 */ jal music_related_6 +/* 0F59AC 7F0C0E7C 00000000 */ nop +/* 0F59B0 7F0C0E80 100000DB */ b .L7F0C11F0 +/* 0F59B4 7F0C0E84 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0E88: +/* 0F59B8 7F0C0E88 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F59BC 7F0C0E8C 00000000 */ nop +/* 0F59C0 7F0C0E90 0C001CF1 */ jal musicTrack2Vol +/* 0F59C4 7F0C0E94 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F59C8 7F0C0E98 3C018002 */ lui $at, %hi(music2_playing) +/* 0F59CC 7F0C0E9C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F59D0 7F0C0EA0 0C001C81 */ jal musicTrack2Play +/* 0F59D4 7F0C0EA4 24040018 */ li $a0, 24 +/* 0F59D8 7F0C0EA8 100000D1 */ b .L7F0C11F0 +/* 0F59DC 7F0C0EAC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EB0: +/* 0F59E0 7F0C0EB0 2C810007 */ sltiu $at, $a0, 7 +/* 0F59E4 7F0C0EB4 1020004C */ beqz $at, .L7F0C0FE8 +/* 0F59E8 7F0C0EB8 00044080 */ sll $t0, $a0, 2 +/* 0F59EC 7F0C0EBC 3C018006 */ lui $at, %hi(jpt_8005B804) +/* 0F59F0 7F0C0EC0 00280821 */ addu $at, $at, $t0 +/* 0F59F4 7F0C0EC4 8C28B804 */ lw $t0, %lo(jpt_8005B804)($at) +/* 0F59F8 7F0C0EC8 01000008 */ jr $t0 +/* 0F59FC 7F0C0ECC 00000000 */ nop +.L7F0C0ED0: +/* 0F5A00 7F0C0ED0 0C001BF4 */ jal musicTrack1Stop +/* 0F5A04 7F0C0ED4 00000000 */ nop +/* 0F5A08 7F0C0ED8 0C001CD6 */ jal musicTrack2Stop +/* 0F5A0C 7F0C0EDC 00000000 */ nop +/* 0F5A10 7F0C0EE0 0C001DB8 */ jal musicTrack3Stop +/* 0F5A14 7F0C0EE4 00000000 */ nop +/* 0F5A18 7F0C0EE8 100000C1 */ b .L7F0C11F0 +/* 0F5A1C 7F0C0EEC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0EF0: +/* 0F5A20 7F0C0EF0 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A24 7F0C0EF4 00000000 */ nop +/* 0F5A28 7F0C0EF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A2C 7F0C0EFC 44816000 */ mtc1 $at, $f12 +/* 0F5A30 7F0C0F00 0C001C5A */ jal music_related_3 +/* 0F5A34 7F0C0F04 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A38 7F0C0F08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A3C 7F0C0F0C 44816000 */ mtc1 $at, $f12 +/* 0F5A40 7F0C0F10 0C001D20 */ jal music_related_6 +/* 0F5A44 7F0C0F14 00000000 */ nop +/* 0F5A48 7F0C0F18 100000B5 */ b .L7F0C11F0 +/* 0F5A4C 7F0C0F1C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F20: +/* 0F5A50 7F0C0F20 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A54 7F0C0F24 00000000 */ nop +/* 0F5A58 7F0C0F28 0C001CF1 */ jal musicTrack2Vol +/* 0F5A5C 7F0C0F2C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5A60 7F0C0F30 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5A64 7F0C0F34 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5A68 7F0C0F38 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5A6C 7F0C0F3C 0FC34A24 */ jal musicGetXTrackForStage +/* 0F5A70 7F0C0F40 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5A74 7F0C0F44 0C001C81 */ jal musicTrack2Play +/* 0F5A78 7F0C0F48 00402025 */ move $a0, $v0 +/* 0F5A7C 7F0C0F4C 100000A8 */ b .L7F0C11F0 +/* 0F5A80 7F0C0F50 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F54: +/* 0F5A84 7F0C0F54 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5A88 7F0C0F58 00000000 */ nop +/* 0F5A8C 7F0C0F5C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5A90 7F0C0F60 44816000 */ mtc1 $at, $f12 +/* 0F5A94 7F0C0F64 0C001C5A */ jal music_related_3 +/* 0F5A98 7F0C0F68 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5A9C 7F0C0F6C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AA0 7F0C0F70 00000000 */ nop +/* 0F5AA4 7F0C0F74 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AA8 7F0C0F78 44816000 */ mtc1 $at, $f12 +/* 0F5AAC 7F0C0F7C 0C001E1E */ jal music_related_13 +/* 0F5AB0 7F0C0F80 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AB4 7F0C0F84 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AB8 7F0C0F88 44816000 */ mtc1 $at, $f12 +/* 0F5ABC 7F0C0F8C 0C001D20 */ jal music_related_6 +/* 0F5AC0 7F0C0F90 00000000 */ nop +/* 0F5AC4 7F0C0F94 10000096 */ b .L7F0C11F0 +/* 0F5AC8 7F0C0F98 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0F9C: +/* 0F5ACC 7F0C0F9C 0FC30304 */ jal sub_GAME_7F0C0C10 +/* 0F5AD0 7F0C0FA0 00000000 */ nop +/* 0F5AD4 7F0C0FA4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F5AD8 7F0C0FA8 44816000 */ mtc1 $at, $f12 +/* 0F5ADC 7F0C0FAC 0C001E1E */ jal music_related_13 +/* 0F5AE0 7F0C0FB0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5AE4 7F0C0FB4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5AE8 7F0C0FB8 00000000 */ nop +/* 0F5AEC 7F0C0FBC 0C001CF1 */ jal musicTrack2Vol +/* 0F5AF0 7F0C0FC0 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5AF4 7F0C0FC4 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5AF8 7F0C0FC8 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5AFC 7F0C0FCC AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B00 7F0C0FD0 0FC34A24 */ jal musicGetXTrackForStage +/* 0F5B04 7F0C0FD4 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5B08 7F0C0FD8 0C001C81 */ jal musicTrack2Play +/* 0F5B0C 7F0C0FDC 00402025 */ move $a0, $v0 +/* 0F5B10 7F0C0FE0 10000083 */ b .L7F0C11F0 +/* 0F5B14 7F0C0FE4 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C0FE8: +/* 0F5B18 7F0C0FE8 2C810007 */ sltiu $at, $a0, 7 +/* 0F5B1C 7F0C0FEC 10200031 */ beqz $at, .L7F0C10B4 +/* 0F5B20 7F0C0FF0 00044880 */ sll $t1, $a0, 2 +/* 0F5B24 7F0C0FF4 3C018006 */ lui $at, %hi(jpt_8005B820) +/* 0F5B28 7F0C0FF8 00290821 */ addu $at, $at, $t1 +/* 0F5B2C 7F0C0FFC 8C29B820 */ lw $t1, %lo(jpt_8005B820)($at) +/* 0F5B30 7F0C1000 01200008 */ jr $t1 +/* 0F5B34 7F0C1004 00000000 */ nop +.L7F0C1008: +/* 0F5B38 7F0C1008 0C001BF4 */ jal musicTrack1Stop +/* 0F5B3C 7F0C100C 00000000 */ nop +/* 0F5B40 7F0C1010 0C001CD6 */ jal musicTrack2Stop +/* 0F5B44 7F0C1014 00000000 */ nop +/* 0F5B48 7F0C1018 0C001DB8 */ jal musicTrack3Stop +/* 0F5B4C 7F0C101C 00000000 */ nop +/* 0F5B50 7F0C1020 10000073 */ b .L7F0C11F0 +/* 0F5B54 7F0C1024 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1028: +/* 0F5B58 7F0C1028 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5B5C 7F0C102C 00000000 */ nop +/* 0F5B60 7F0C1030 0C001CF1 */ jal musicTrack2Vol +/* 0F5B64 7F0C1034 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5B68 7F0C1038 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5B6C 7F0C103C AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5B70 7F0C1040 0C001C81 */ jal musicTrack2Play +/* 0F5B74 7F0C1044 24040018 */ li $a0, 24 +/* 0F5B78 7F0C1048 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B7C 7F0C104C 44816000 */ mtc1 $at, $f12 +/* 0F5B80 7F0C1050 0C001C3E */ jal music_related_1 +/* 0F5B84 7F0C1054 00000000 */ nop +/* 0F5B88 7F0C1058 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5B8C 7F0C105C 44816000 */ mtc1 $at, $f12 +/* 0F5B90 7F0C1060 0C001E02 */ jal music_related_11 +/* 0F5B94 7F0C1064 00000000 */ nop +/* 0F5B98 7F0C1068 10000061 */ b .L7F0C11F0 +/* 0F5B9C 7F0C106C 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C1070: +/* 0F5BA0 7F0C1070 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5BA4 7F0C1074 00000000 */ nop +/* 0F5BA8 7F0C1078 0C001CF1 */ jal musicTrack2Vol +/* 0F5BAC 7F0C107C 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5BB0 7F0C1080 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5BB4 7F0C1084 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008C600) +/* 0F5BB8 7F0C1088 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5BBC 7F0C108C 0FC34A24 */ jal musicGetXTrackForStage +/* 0F5BC0 7F0C1090 8C84C600 */ lw $a0, %lo(dword_CODE_bss_8008C600)($a0) +/* 0F5BC4 7F0C1094 0C001C81 */ jal musicTrack2Play +/* 0F5BC8 7F0C1098 00402025 */ move $a0, $v0 +/* 0F5BCC 7F0C109C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5BD0 7F0C10A0 44816000 */ mtc1 $at, $f12 +/* 0F5BD4 7F0C10A4 0C001C3E */ jal music_related_1 +/* 0F5BD8 7F0C10A8 00000000 */ nop +/* 0F5BDC 7F0C10AC 10000050 */ b .L7F0C11F0 +/* 0F5BE0 7F0C10B0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10B4: +/* 0F5BE4 7F0C10B4 2C810007 */ sltiu $at, $a0, 7 +/* 0F5BE8 7F0C10B8 10200028 */ beqz $at, .L7F0C115C +/* 0F5BEC 7F0C10BC 00045080 */ sll $t2, $a0, 2 +/* 0F5BF0 7F0C10C0 3C018006 */ lui $at, %hi(jpt_8005B83C) +/* 0F5BF4 7F0C10C4 002A0821 */ addu $at, $at, $t2 +/* 0F5BF8 7F0C10C8 8C2AB83C */ lw $t2, %lo(jpt_8005B83C)($at) +/* 0F5BFC 7F0C10CC 01400008 */ jr $t2 +/* 0F5C00 7F0C10D0 00000000 */ nop +.L7F0C10D4: +/* 0F5C04 7F0C10D4 0C001BF4 */ jal musicTrack1Stop +/* 0F5C08 7F0C10D8 00000000 */ nop +/* 0F5C0C 7F0C10DC 0C001CD6 */ jal musicTrack2Stop +/* 0F5C10 7F0C10E0 00000000 */ nop +/* 0F5C14 7F0C10E4 0C001DB8 */ jal musicTrack3Stop +/* 0F5C18 7F0C10E8 00000000 */ nop +/* 0F5C1C 7F0C10EC 10000040 */ b .L7F0C11F0 +/* 0F5C20 7F0C10F0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C10F4: +/* 0F5C24 7F0C10F4 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C28 7F0C10F8 00000000 */ nop +/* 0F5C2C 7F0C10FC 0C001CF1 */ jal musicTrack2Vol +/* 0F5C30 7F0C1100 3044FFFF */ andi $a0, $v0, 0xffff +/* 0F5C34 7F0C1104 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5C38 7F0C1108 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5C3C 7F0C110C 0C001C81 */ jal musicTrack2Play +/* 0F5C40 7F0C1110 24040018 */ li $a0, 24 +/* 0F5C44 7F0C1114 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C48 7F0C1118 44816000 */ mtc1 $at, $f12 +/* 0F5C4C 7F0C111C 0C001E02 */ jal music_related_11 +/* 0F5C50 7F0C1120 00000000 */ nop +/* 0F5C54 7F0C1124 10000032 */ b .L7F0C11F0 +/* 0F5C58 7F0C1128 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C112C: +/* 0F5C5C 7F0C112C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5C60 7F0C1130 00000000 */ nop +/* 0F5C64 7F0C1134 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C68 7F0C1138 44816000 */ mtc1 $at, $f12 +/* 0F5C6C 7F0C113C 0C001C5A */ jal music_related_3 +/* 0F5C70 7F0C1140 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5C74 7F0C1144 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0F5C78 7F0C1148 44816000 */ mtc1 $at, $f12 +/* 0F5C7C 7F0C114C 0C001D20 */ jal music_related_6 +/* 0F5C80 7F0C1150 00000000 */ nop +/* 0F5C84 7F0C1154 10000026 */ b .L7F0C11F0 +/* 0F5C88 7F0C1158 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C115C: +/* 0F5C8C 7F0C115C 2C810007 */ sltiu $at, $a0, 7 +/* 0F5C90 7F0C1160 10200020 */ beqz $at, .L7F0C11E4 +/* 0F5C94 7F0C1164 00045880 */ sll $t3, $a0, 2 +/* 0F5C98 7F0C1168 3C018006 */ lui $at, %hi(jpt_8005B858) +/* 0F5C9C 7F0C116C 002B0821 */ addu $at, $at, $t3 +/* 0F5CA0 7F0C1170 8C2BB858 */ lw $t3, %lo(jpt_8005B858)($at) +/* 0F5CA4 7F0C1174 01600008 */ jr $t3 +/* 0F5CA8 7F0C1178 00000000 */ nop +.L7F0C117C: +/* 0F5CAC 7F0C117C 0C001BF4 */ jal musicTrack1Stop +/* 0F5CB0 7F0C1180 00000000 */ nop +/* 0F5CB4 7F0C1184 0C001CD6 */ jal musicTrack2Stop +/* 0F5CB8 7F0C1188 00000000 */ nop +/* 0F5CBC 7F0C118C 0C001DB8 */ jal musicTrack3Stop +/* 0F5CC0 7F0C1190 00000000 */ nop +/* 0F5CC4 7F0C1194 10000016 */ b .L7F0C11F0 +/* 0F5CC8 7F0C1198 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C119C: +/* 0F5CCC 7F0C119C 0FC302FC */ jal sub_GAME_7F0C0BF0 +/* 0F5CD0 7F0C11A0 00000000 */ nop +/* 0F5CD4 7F0C11A4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CD8 7F0C11A8 44816000 */ mtc1 $at, $f12 +/* 0F5CDC 7F0C11AC 0C001C5A */ jal music_related_3 +/* 0F5CE0 7F0C11B0 3045FFFF */ andi $a1, $v0, 0xffff +/* 0F5CE4 7F0C11B4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0F5CE8 7F0C11B8 44816000 */ mtc1 $at, $f12 +/* 0F5CEC 7F0C11BC 0C001D20 */ jal music_related_6 +/* 0F5CF0 7F0C11C0 00000000 */ nop +/* 0F5CF4 7F0C11C4 1000000A */ b .L7F0C11F0 +/* 0F5CF8 7F0C11C8 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11CC: +/* 0F5CFC 7F0C11CC 3C018002 */ lui $at, %hi(music2_playing) +/* 0F5D00 7F0C11D0 AC204350 */ sw $zero, %lo(music2_playing)($at) +/* 0F5D04 7F0C11D4 0C001C81 */ jal musicTrack2Play +/* 0F5D08 7F0C11D8 2404003A */ li $a0, 58 +/* 0F5D0C 7F0C11DC 10000004 */ b .L7F0C11F0 +/* 0F5D10 7F0C11E0 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11E4: +/* 0F5D14 7F0C11E4 1000FFFF */ b .L7F0C11E4 +/* 0F5D18 7F0C11E8 00000000 */ nop +.L7F0C11EC: +/* 0F5D1C 7F0C11EC 8FBF0014 */ lw $ra, 0x14($sp) +.L7F0C11F0: +/* 0F5D20 7F0C11F0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F5D24 7F0C11F4 03E00008 */ jr $ra +/* 0F5D28 7F0C11F8 00000000 */ nop +) +#endif + #endif @@ -1066,7 +1560,7 @@ void sub_GAME_7F0C11FC(s16 param_1) mission_state = 0; dword_CODE_bss_8008C600 = (int)param_1; - if (sub_GAME_7F0D2848(param_1) < 0) + if (musicGetBgTrackForStage(param_1) < 0) { set_missionstate(1); } @@ -1092,7 +1586,7 @@ glabel sub_GAME_7F0C11FC /* 0F5D54 7F0C1224 3C018005 */ lui $at, %hi(mission_state) /* 0F5D58 7F0C1228 2442C600 */ addiu $v0, %lo(dword_CODE_bss_8008C600) # addiu $v0, $v0, -0x3a00 /* 0F5D5C 7F0C122C AC2084C0 */ sw $zero, %lo(mission_state)($at) -/* 0F5D60 7F0C1230 0FC34A12 */ jal sub_GAME_7F0D2848 +/* 0F5D60 7F0C1230 0FC34A12 */ jal musicGetBgTrackForStage /* 0F5D64 7F0C1234 AC440000 */ sw $a0, ($v0) /* 0F5D68 7F0C1238 04410005 */ bgez $v0, .L7F0C1250 /* 0F5D6C 7F0C123C 00000000 */ nop @@ -1122,7 +1616,7 @@ void sub_GAME_7F0C1268(void) void sub_GAME_7F0C1288(void) { - if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + if (musicGetBgTrackForStage(dword_CODE_bss_8008C600) < 0) { set_missionstate(2); } @@ -1134,7 +1628,7 @@ void sub_GAME_7F0C1288(void) void sub_GAME_7F0C12CC(void) { - if (sub_GAME_7F0D2848(dword_CODE_bss_8008C600) < 0) + if (musicGetBgTrackForStage(dword_CODE_bss_8008C600) < 0) { set_missionstate(1); } diff --git a/src/game/mp_watch.c b/src/game/mp_watch.c index edc45e6..ad69f70 100644 --- a/src/game/mp_watch.c +++ b/src/game/mp_watch.c @@ -1,10 +1,13 @@ #include "ultra64.h" #include "game/unk_0C0A70.h" #include "game/unk_093880.h" +#include "game/mp_watch.h" #include "music.h" #include "bondgame.h" #include "bondconstants.h" - +#include "boss.h" +#include "joy.h" +#include "textrelated.h" // bss s32 stop_play_flag; @@ -35,318 +38,71 @@ const char ascii_pnum_LOSSES[] = "%s%d %s"; // rodata -#ifdef NONMATCHING -u32 check_can_advance_right_on_mpmenu(void) { - switch(pPlayer->mpmenumode) { - case 0: - return 1; - case 1: - return 1; - case 2: - return 1; - case 3: - if (is_gameover_flag == 0) { +s32 check_can_advance_right_on_mpmenu(void) { + switch(pPlayer->mpmenumode) + { + case 0: + case 1: + case 2: + case 4: return 1; - } - return 0; - case 4: - return 1; - case 5: - return 0; - case 6: - return 0; - case 7: - return 0; - default: - return 0; - } -} -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BC40*/ -glabel jpt_MP_menu_page_adv_right -.word page_adv_right_yes -.word page_adv_right_yes -.word page_adv_right_yes -.word page_adv_right_gameover -.word page_adv_right_yes -.word page_adv_right_no -.word page_adv_right_no -.word page_adv_right_no -.text -glabel check_can_advance_right_on_mpmenu -/* 0F6950 7F0C1E20 3C0E8008 */ lui $t6, %hi(pPlayer) -/* 0F6954 7F0C1E24 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) -/* 0F6958 7F0C1E28 00001025 */ move $v0, $zero -/* 0F695C 7F0C1E2C 8DCF29C8 */ lw $t7, 0x29c8($t6) -/* 0F6960 7F0C1E30 2DE10008 */ sltiu $at, $t7, 8 -/* 0F6964 7F0C1E34 10200013 */ beqz $at, .L7F0C1E84 -/* 0F6968 7F0C1E38 000F7880 */ sll $t7, $t7, 2 -/* 0F696C 7F0C1E3C 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_right) -/* 0F6970 7F0C1E40 002F0821 */ addu $at, $at, $t7 -/* 0F6974 7F0C1E44 8C2FBC40 */ lw $t7, %lo(jpt_MP_menu_page_adv_right)($at) -/* 0F6978 7F0C1E48 01E00008 */ jr $t7 -/* 0F697C 7F0C1E4C 00000000 */ nop -page_adv_right_yes: -/* 0F6980 7F0C1E50 03E00008 */ jr $ra -/* 0F6984 7F0C1E54 24020001 */ li $v0, 1 - -page_adv_right_no: -/* 0F6988 7F0C1E58 03E00008 */ jr $ra -/* 0F698C 7F0C1E5C 00001025 */ move $v0, $zero - -page_adv_right_gameover: -/* 0F6990 7F0C1E60 3C188009 */ lui $t8, %hi(is_gameover_flag) -/* 0F6994 7F0C1E64 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) -/* 0F6998 7F0C1E68 24030001 */ li $v1, 1 -/* 0F699C 7F0C1E6C 13000003 */ beqz $t8, .L7F0C1E7C -/* 0F69A0 7F0C1E70 00000000 */ nop -/* 0F69A4 7F0C1E74 03E00008 */ jr $ra -/* 0F69A8 7F0C1E78 00001025 */ move $v0, $zero - -.L7F0C1E7C: -/* 0F69AC 7F0C1E7C 03E00008 */ jr $ra -/* 0F69B0 7F0C1E80 00601025 */ move $v0, $v1 - -.L7F0C1E84: -/* 0F69B4 7F0C1E84 03E00008 */ jr $ra -/* 0F69B8 7F0C1E88 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -u32 check_can_advance_left_on_mpmenu(void) { - switch(pPlayer->mpmenumode) { - case 0: - return 0; - case 1: - if (is_gameover_flag == 0) { + case 5: + case 6: + case 7: + return 0; + case 3: + return is_gameover_flag ? 0 : 1; + default: return 0; - } - return 1; - case 2: - return 1; - case 3: - return 1; - case 4: - return 1; - case 5: - return 1; - case 6: - return 0; - case 7: - return 0; - default: - return 0; } } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BC60*/ -glabel jpt_MP_menu_page_adv_left -.word page_adv_left_no -.word page_adv_left_gameover -.word page_adv_left_yes -.word page_adv_left_yes -.word page_adv_left_yes -.word page_adv_left_yes -.word page_adv_left_no -.word page_adv_left_no -.text -glabel check_can_advance_left_on_mpmenu -/* 0F69BC 7F0C1E8C 3C0E8008 */ lui $t6, %hi(pPlayer) -/* 0F69C0 7F0C1E90 8DCEA0B0 */ lw $t6, %lo(pPlayer)($t6) -/* 0F69C4 7F0C1E94 00001025 */ move $v0, $zero -/* 0F69C8 7F0C1E98 8DCF29C8 */ lw $t7, 0x29c8($t6) -/* 0F69CC 7F0C1E9C 2DE10008 */ sltiu $at, $t7, 8 -/* 0F69D0 7F0C1EA0 10200013 */ beqz $at, .L7F0C1EF0 -/* 0F69D4 7F0C1EA4 000F7880 */ sll $t7, $t7, 2 -/* 0F69D8 7F0C1EA8 3C018006 */ lui $at, %hi(jpt_MP_menu_page_adv_left) -/* 0F69DC 7F0C1EAC 002F0821 */ addu $at, $at, $t7 -/* 0F69E0 7F0C1EB0 8C2FBC60 */ lw $t7, %lo(jpt_MP_menu_page_adv_left)($at) -/* 0F69E4 7F0C1EB4 01E00008 */ jr $t7 -/* 0F69E8 7F0C1EB8 00000000 */ nop -page_adv_left_yes: -/* 0F69EC 7F0C1EBC 03E00008 */ jr $ra -/* 0F69F0 7F0C1EC0 24020001 */ li $v0, 1 - -page_adv_left_no: -/* 0F69F4 7F0C1EC4 03E00008 */ jr $ra -/* 0F69F8 7F0C1EC8 00001025 */ move $v0, $zero - -page_adv_left_gameover: -/* 0F69FC 7F0C1ECC 3C188009 */ lui $t8, %hi(is_gameover_flag) -/* 0F6A00 7F0C1ED0 8F18C704 */ lw $t8, %lo(is_gameover_flag)($t8) -/* 0F6A04 7F0C1ED4 00001825 */ move $v1, $zero -/* 0F6A08 7F0C1ED8 13000003 */ beqz $t8, .L7F0C1EE8 -/* 0F6A0C 7F0C1EDC 00000000 */ nop -/* 0F6A10 7F0C1EE0 03E00008 */ jr $ra -/* 0F6A14 7F0C1EE4 24020001 */ li $v0, 1 - -.L7F0C1EE8: -/* 0F6A18 7F0C1EE8 03E00008 */ jr $ra -/* 0F6A1C 7F0C1EEC 00601025 */ move $v0, $v1 - -def_7F0C1EB4: -.L7F0C1EF0: -/* 0F6A20 7F0C1EF0 03E00008 */ jr $ra -/* 0F6A24 7F0C1EF4 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void check_if_player_is_pressing_anything_right(s32 arg0) { - s32 sp18; - s32 sp1C; - s32 temp_t6; - ? temp_ret; - - // Node 0 - temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); - sp18 = temp_t6; - sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); - temp_ret = get_controller_buttons_pressed(sp18, 0x101); - if ((temp_ret == 0) && (sp1C > 0)) - { - // Node 2 - if (pPlayer->unk29D0 != 0) - { - // Node 3 - } - } - else - { - // Node 3 - } - // Node 4 - return temp_ret; -} -#else -GLOBAL_ASM( -.text -glabel check_if_player_is_pressing_anything_right -/* 0F6A28 7F0C1EF8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6A2C 7F0C1EFC 00042600 */ sll $a0, $a0, 0x18 -/* 0F6A30 7F0C1F00 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6A34 7F0C1F04 00047603 */ sra $t6, $a0, 0x18 -/* 0F6A38 7F0C1F08 01C02025 */ move $a0, $t6 -/* 0F6A3C 7F0C1F0C AFAE0018 */ sw $t6, 0x18($sp) -/* 0F6A40 7F0C1F10 2405FFFE */ li $a1, -2 -/* 0F6A44 7F0C1F14 0C00312D */ jal get_controller_3dstick_L_R -/* 0F6A48 7F0C1F18 24060001 */ li $a2, 1 -/* 0F6A4C 7F0C1F1C 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6A50 7F0C1F20 AFA2001C */ sw $v0, 0x1c($sp) -/* 0F6A54 7F0C1F24 0C0030EB */ jal get_controller_buttons_pressed -/* 0F6A58 7F0C1F28 24050101 */ li $a1, 257 -/* 0F6A5C 7F0C1F2C 1440000A */ bnez $v0, .L7F0C1F58 -/* 0F6A60 7F0C1F30 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6A64 7F0C1F34 8FAF001C */ lw $t7, 0x1c($sp) -/* 0F6A68 7F0C1F38 3C188008 */ lui $t8, %hi(pPlayer) -/* 0F6A6C 7F0C1F3C 00001025 */ move $v0, $zero -/* 0F6A70 7F0C1F40 19E00007 */ blez $t7, .L7F0C1F60 -/* 0F6A74 7F0C1F44 00000000 */ nop -/* 0F6A78 7F0C1F48 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) -/* 0F6A7C 7F0C1F4C 8F1929D0 */ lw $t9, 0x29d0($t8) -/* 0F6A80 7F0C1F50 13200003 */ beqz $t9, .L7F0C1F60 -/* 0F6A84 7F0C1F54 00000000 */ nop -.L7F0C1F58: -/* 0F6A88 7F0C1F58 10000001 */ b .L7F0C1F60 -/* 0F6A8C 7F0C1F5C 24020001 */ li $v0, 1 -.L7F0C1F60: -/* 0F6A90 7F0C1F60 03E00008 */ jr $ra -/* 0F6A94 7F0C1F64 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - - - -#ifdef NONMATCHING -void check_if_player_is_pressing_anything_left(s32 arg0) { - s32 sp18; - s32 sp1C; - s32 temp_t6; - - // Node 0 - temp_t6 = ((s32) (arg0 << 0x18) >> 0x18); - sp18 = temp_t6; - sp1C = get_controller_3dstick_L_R(temp_t6, -2, 1); - if ((get_controller_buttons_pressed(sp18, 0x202) == 0) && (sp1C < -1)) - { - // Node 2 - if (pPlayer->unk29D0 != 0) - { - // Node 3 - return; - // (possible return value: 1) - } - } - else - { - // Node 3 - return; - // (possible return value: 1) - } - // (possible return value: 1) +s32 check_can_advance_left_on_mpmenu(void) { + switch(pPlayer->mpmenumode) + { + case 2: + case 3: + case 4: + case 5: + return 1; + case 0: + case 6: + case 7: + return 0; + case 1: + return is_gameover_flag ? 1 : 0; + default: + return 0; + } } -#else -GLOBAL_ASM( -.text -glabel check_if_player_is_pressing_anything_left -/* 0F6A98 7F0C1F68 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6A9C 7F0C1F6C 00042600 */ sll $a0, $a0, 0x18 -/* 0F6AA0 7F0C1F70 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6AA4 7F0C1F74 00047603 */ sra $t6, $a0, 0x18 -/* 0F6AA8 7F0C1F78 01C02025 */ move $a0, $t6 -/* 0F6AAC 7F0C1F7C AFAE0018 */ sw $t6, 0x18($sp) -/* 0F6AB0 7F0C1F80 2405FFFE */ li $a1, -2 -/* 0F6AB4 7F0C1F84 0C00312D */ jal get_controller_3dstick_L_R -/* 0F6AB8 7F0C1F88 24060001 */ li $a2, 1 -/* 0F6ABC 7F0C1F8C 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6AC0 7F0C1F90 AFA2001C */ sw $v0, 0x1c($sp) -/* 0F6AC4 7F0C1F94 0C0030EB */ jal get_controller_buttons_pressed -/* 0F6AC8 7F0C1F98 24050202 */ li $a1, 514 -/* 0F6ACC 7F0C1F9C 1440000B */ bnez $v0, .L7F0C1FCC -/* 0F6AD0 7F0C1FA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6AD4 7F0C1FA4 8FAF001C */ lw $t7, 0x1c($sp) -/* 0F6AD8 7F0C1FA8 3C188008 */ lui $t8, %hi(pPlayer) -/* 0F6ADC 7F0C1FAC 00001025 */ move $v0, $zero -/* 0F6AE0 7F0C1FB0 29E1FFFF */ slti $at, $t7, -1 -/* 0F6AE4 7F0C1FB4 10200007 */ beqz $at, .L7F0C1FD4 -/* 0F6AE8 7F0C1FB8 00000000 */ nop -/* 0F6AEC 7F0C1FBC 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) -/* 0F6AF0 7F0C1FC0 8F1929D0 */ lw $t9, 0x29d0($t8) -/* 0F6AF4 7F0C1FC4 13200003 */ beqz $t9, .L7F0C1FD4 -/* 0F6AF8 7F0C1FC8 00000000 */ nop -.L7F0C1FCC: -/* 0F6AFC 7F0C1FCC 10000001 */ b .L7F0C1FD4 -/* 0F6B00 7F0C1FD0 24020001 */ li $v0, 1 -.L7F0C1FD4: -/* 0F6B04 7F0C1FD4 03E00008 */ jr $ra -/* 0F6B08 7F0C1FD8 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif +s32 check_if_player_is_pressing_anything_right(s32 param_1) +{ + s32 iVar3 = joyGetStickXInRange(param_1, -2, 1); + if ((joyGetButtonsPressedThisFrame(param_1, R_JPAD|R_CBUTTONS)) || ((iVar3 >= 1 && (pPlayer->mpjoywascentre)))) { + return 1; + } + return 0; +} + +s32 check_if_player_is_pressing_anything_left(s32 param_1) +{ + s32 iVar3 = joyGetStickXInRange(param_1, -2, 1); + + if ((joyGetButtonsPressedThisFrame(param_1, L_JPAD|L_CBUTTONS)) || ((iVar3 < -1 && (pPlayer->mpjoywascentre)))) { + return 1; + } + + return 0; +} void play_watch_sfx_beep(void) { - play_sfx_a1(ptr_sfx_buf, 0x9f, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x9f, 0); } void unpause_game(void) @@ -356,389 +112,148 @@ void unpause_game(void) is_paused = 0; } +s32 sub_GAME_7F0C2024(int param_1, int param_2, int param_3, int param_4, int param_5) +{ + s32 aux; + s32 result; + + if ((param_2 < param_3) || + ((param_3 == param_2 && ((randomGetNext() & 1))))) { + result = 1; + aux = param_3; + } + else { + result = 0; + aux = param_2; + } + if (param_1 >= 3) { + + if ((aux < param_4) || + ((param_4 == aux && ((randomGetNext() & 1))))) { + result = 2; + aux = param_4; + } + if (param_1 >= 4) { + if ((aux < param_5) || + ((param_5 == aux && ((randomGetNext() & 1))))) { + result = 3; + } + } + } -#ifdef NONMATCHING -void sub_GAME_7F0C2024(void) { - + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C2024 -/* 0F6B54 7F0C2024 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6B58 7F0C2028 00A6082A */ slt $at, $a1, $a2 -/* 0F6B5C 7F0C202C AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6B60 7F0C2030 1420000C */ bnez $at, .L7F0C2064 -/* 0F6B64 7F0C2034 AFA40020 */ sw $a0, 0x20($sp) -/* 0F6B68 7F0C2038 54C5000E */ bnel $a2, $a1, .L7F0C2074 -/* 0F6B6C 7F0C203C 00002025 */ move $a0, $zero -/* 0F6B70 7F0C2040 AFA50024 */ sw $a1, 0x24($sp) -/* 0F6B74 7F0C2044 AFA60028 */ sw $a2, 0x28($sp) -/* 0F6B78 7F0C2048 0C002914 */ jal get_random_value -/* 0F6B7C 7F0C204C AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6B80 7F0C2050 304E0001 */ andi $t6, $v0, 1 -/* 0F6B84 7F0C2054 8FA50024 */ lw $a1, 0x24($sp) -/* 0F6B88 7F0C2058 8FA60028 */ lw $a2, 0x28($sp) -/* 0F6B8C 7F0C205C 11C00004 */ beqz $t6, .L7F0C2070 -/* 0F6B90 7F0C2060 8FA7002C */ lw $a3, 0x2c($sp) -.L7F0C2064: -/* 0F6B94 7F0C2064 24040001 */ li $a0, 1 -/* 0F6B98 7F0C2068 10000003 */ b .L7F0C2078 -/* 0F6B9C 7F0C206C 00C01825 */ move $v1, $a2 -.L7F0C2070: -/* 0F6BA0 7F0C2070 00002025 */ move $a0, $zero -.L7F0C2074: -/* 0F6BA4 7F0C2074 00A01825 */ move $v1, $a1 -.L7F0C2078: -/* 0F6BA8 7F0C2078 8FAF0020 */ lw $t7, 0x20($sp) -/* 0F6BAC 7F0C207C 29E10003 */ slti $at, $t7, 3 -/* 0F6BB0 7F0C2080 1420001F */ bnez $at, .L7F0C2100 -/* 0F6BB4 7F0C2084 0067082A */ slt $at, $v1, $a3 -/* 0F6BB8 7F0C2088 5420000D */ bnezl $at, .L7F0C20C0 -/* 0F6BBC 7F0C208C 24040002 */ li $a0, 2 -/* 0F6BC0 7F0C2090 54E3000D */ bnel $a3, $v1, .L7F0C20C8 -/* 0F6BC4 7F0C2094 8FB90020 */ lw $t9, 0x20($sp) -/* 0F6BC8 7F0C2098 AFA3001C */ sw $v1, 0x1c($sp) -/* 0F6BCC 7F0C209C AFA40018 */ sw $a0, 0x18($sp) -/* 0F6BD0 7F0C20A0 0C002914 */ jal get_random_value -/* 0F6BD4 7F0C20A4 AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6BD8 7F0C20A8 30580001 */ andi $t8, $v0, 1 -/* 0F6BDC 7F0C20AC 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F6BE0 7F0C20B0 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6BE4 7F0C20B4 13000003 */ beqz $t8, .L7F0C20C4 -/* 0F6BE8 7F0C20B8 8FA7002C */ lw $a3, 0x2c($sp) -/* 0F6BEC 7F0C20BC 24040002 */ li $a0, 2 -.L7F0C20C0: -/* 0F6BF0 7F0C20C0 00E01825 */ move $v1, $a3 -.L7F0C20C4: -/* 0F6BF4 7F0C20C4 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C20C8: -/* 0F6BF8 7F0C20C8 8FA20030 */ lw $v0, 0x30($sp) -/* 0F6BFC 7F0C20CC 2B210004 */ slti $at, $t9, 4 -/* 0F6C00 7F0C20D0 1420000B */ bnez $at, .L7F0C2100 -/* 0F6C04 7F0C20D4 0062082A */ slt $at, $v1, $v0 -/* 0F6C08 7F0C20D8 54200009 */ bnezl $at, .L7F0C2100 -/* 0F6C0C 7F0C20DC 24040003 */ li $a0, 3 -/* 0F6C10 7F0C20E0 54430008 */ bnel $v0, $v1, .L7F0C2104 -/* 0F6C14 7F0C20E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6C18 7F0C20E8 0C002914 */ jal get_random_value -/* 0F6C1C 7F0C20EC AFA40018 */ sw $a0, 0x18($sp) -/* 0F6C20 7F0C20F0 30480001 */ andi $t0, $v0, 1 -/* 0F6C24 7F0C20F4 11000002 */ beqz $t0, .L7F0C2100 -/* 0F6C28 7F0C20F8 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6C2C 7F0C20FC 24040003 */ li $a0, 3 -.L7F0C2100: -/* 0F6C30 7F0C2100 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C2104: -/* 0F6C34 7F0C2104 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F6C38 7F0C2108 00801025 */ move $v0, $a0 -/* 0F6C3C 7F0C210C 03E00008 */ jr $ra -/* 0F6C40 7F0C2110 00000000 */ nop -) -#endif +s32 sub_GAME_7F0C2114(int param_1, int param_2, int param_3, int param_4, int param_5) +{ + s32 aux; + s32 result; + if ((param_3 < param_2) || + ((param_3 == param_2 && ((randomGetNext() & 1))))) { + result = 1; + aux = param_3; + } + else { + result = 0; + aux = param_2; + } + if (param_1 >= 3) { + + if ((param_4 < aux) || + ((param_4 == aux && ((randomGetNext() & 1))))) { + result = 2; + aux = param_4; + } -#ifdef NONMATCHING -void sub_GAME_7F0C2114(void) { + if (param_1 >= 4) { + if ((param_5 < aux) || + ((param_5 == aux && ((randomGetNext() & 1))))) { + result = 3; + } + } + } + + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C2114 -/* 0F6C44 7F0C2114 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6C48 7F0C2118 00C5082A */ slt $at, $a2, $a1 -/* 0F6C4C 7F0C211C AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6C50 7F0C2120 1420000C */ bnez $at, .L7F0C2154 -/* 0F6C54 7F0C2124 AFA40020 */ sw $a0, 0x20($sp) -/* 0F6C58 7F0C2128 54C5000E */ bnel $a2, $a1, .L7F0C2164 -/* 0F6C5C 7F0C212C 00002025 */ move $a0, $zero -/* 0F6C60 7F0C2130 AFA50024 */ sw $a1, 0x24($sp) -/* 0F6C64 7F0C2134 AFA60028 */ sw $a2, 0x28($sp) -/* 0F6C68 7F0C2138 0C002914 */ jal get_random_value -/* 0F6C6C 7F0C213C AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6C70 7F0C2140 304E0001 */ andi $t6, $v0, 1 -/* 0F6C74 7F0C2144 8FA50024 */ lw $a1, 0x24($sp) -/* 0F6C78 7F0C2148 8FA60028 */ lw $a2, 0x28($sp) -/* 0F6C7C 7F0C214C 11C00004 */ beqz $t6, .L7F0C2160 -/* 0F6C80 7F0C2150 8FA7002C */ lw $a3, 0x2c($sp) -.L7F0C2154: -/* 0F6C84 7F0C2154 24040001 */ li $a0, 1 -/* 0F6C88 7F0C2158 10000003 */ b .L7F0C2168 -/* 0F6C8C 7F0C215C 00C01825 */ move $v1, $a2 -.L7F0C2160: -/* 0F6C90 7F0C2160 00002025 */ move $a0, $zero -.L7F0C2164: -/* 0F6C94 7F0C2164 00A01825 */ move $v1, $a1 -.L7F0C2168: -/* 0F6C98 7F0C2168 8FAF0020 */ lw $t7, 0x20($sp) -/* 0F6C9C 7F0C216C 29E10003 */ slti $at, $t7, 3 -/* 0F6CA0 7F0C2170 1420001F */ bnez $at, .L7F0C21F0 -/* 0F6CA4 7F0C2174 00E3082A */ slt $at, $a3, $v1 -/* 0F6CA8 7F0C2178 5420000D */ bnezl $at, .L7F0C21B0 -/* 0F6CAC 7F0C217C 24040002 */ li $a0, 2 -/* 0F6CB0 7F0C2180 54E3000D */ bnel $a3, $v1, .L7F0C21B8 -/* 0F6CB4 7F0C2184 8FB90020 */ lw $t9, 0x20($sp) -/* 0F6CB8 7F0C2188 AFA3001C */ sw $v1, 0x1c($sp) -/* 0F6CBC 7F0C218C AFA40018 */ sw $a0, 0x18($sp) -/* 0F6CC0 7F0C2190 0C002914 */ jal get_random_value -/* 0F6CC4 7F0C2194 AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6CC8 7F0C2198 30580001 */ andi $t8, $v0, 1 -/* 0F6CCC 7F0C219C 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F6CD0 7F0C21A0 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6CD4 7F0C21A4 13000003 */ beqz $t8, .L7F0C21B4 -/* 0F6CD8 7F0C21A8 8FA7002C */ lw $a3, 0x2c($sp) -/* 0F6CDC 7F0C21AC 24040002 */ li $a0, 2 -.L7F0C21B0: -/* 0F6CE0 7F0C21B0 00E01825 */ move $v1, $a3 -.L7F0C21B4: -/* 0F6CE4 7F0C21B4 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C21B8: -/* 0F6CE8 7F0C21B8 8FA20030 */ lw $v0, 0x30($sp) -/* 0F6CEC 7F0C21BC 2B210004 */ slti $at, $t9, 4 -/* 0F6CF0 7F0C21C0 1420000B */ bnez $at, .L7F0C21F0 -/* 0F6CF4 7F0C21C4 0043082A */ slt $at, $v0, $v1 -/* 0F6CF8 7F0C21C8 54200009 */ bnezl $at, .L7F0C21F0 -/* 0F6CFC 7F0C21CC 24040003 */ li $a0, 3 -/* 0F6D00 7F0C21D0 54430008 */ bnel $v0, $v1, .L7F0C21F4 -/* 0F6D04 7F0C21D4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6D08 7F0C21D8 0C002914 */ jal get_random_value -/* 0F6D0C 7F0C21DC AFA40018 */ sw $a0, 0x18($sp) -/* 0F6D10 7F0C21E0 30480001 */ andi $t0, $v0, 1 -/* 0F6D14 7F0C21E4 11000002 */ beqz $t0, .L7F0C21F0 -/* 0F6D18 7F0C21E8 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6D1C 7F0C21EC 24040003 */ li $a0, 3 -.L7F0C21F0: -/* 0F6D20 7F0C21F0 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C21F4: -/* 0F6D24 7F0C21F4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F6D28 7F0C21F8 00801025 */ move $v0, $a0 -/* 0F6D2C 7F0C21FC 03E00008 */ jr $ra -/* 0F6D30 7F0C2200 00000000 */ nop -) -#endif +s32 sub_GAME_7F0C2204(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + s32 aux; + s32 result; + if ((arg1 < arg2) || + ((arg2 == arg1 && ((randomGetNext() & 1))))) { + aux = (s32) arg2; + result = 1; + } + else { + aux = (s32) arg1; + result = 0; + } + + if (arg0 >= 3) + { + if ((aux < arg3) || + ((arg3 == aux && ((randomGetNext() & 1))))) { + aux = (s32) arg3; + result = 2; + } + if (arg0 >= 4) + { -#ifdef NONMATCHING -void sub_GAME_7F0C2204(void) { - + if ((aux < arg4) || + ((arg4 == aux && ((randomGetNext() & 1))))) { + result = 3; + } + } + } + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C2204 -/* 0F6D34 7F0C2204 44856000 */ mtc1 $a1, $f12 -/* 0F6D38 7F0C2208 44867000 */ mtc1 $a2, $f14 -/* 0F6D3C 7F0C220C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6D40 7F0C2210 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6D44 7F0C2214 460E603C */ c.lt.s $f12, $f14 -/* 0F6D48 7F0C2218 AFA40020 */ sw $a0, 0x20($sp) -/* 0F6D4C 7F0C221C AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6D50 7F0C2220 4503000D */ bc1tl .L7F0C2258 -/* 0F6D54 7F0C2224 4600710D */ trunc.w.s $f4, $f14 -/* 0F6D58 7F0C2228 460C7032 */ c.eq.s $f14, $f12 -/* 0F6D5C 7F0C222C 00000000 */ nop -/* 0F6D60 7F0C2230 4502000E */ bc1fl .L7F0C226C -/* 0F6D64 7F0C2234 4600618D */ trunc.w.s $f6, $f12 -/* 0F6D68 7F0C2238 E7AC0024 */ swc1 $f12, 0x24($sp) -/* 0F6D6C 7F0C223C 0C002914 */ jal get_random_value -/* 0F6D70 7F0C2240 E7AE0028 */ swc1 $f14, 0x28($sp) -/* 0F6D74 7F0C2244 304E0001 */ andi $t6, $v0, 1 -/* 0F6D78 7F0C2248 C7AC0024 */ lwc1 $f12, 0x24($sp) -/* 0F6D7C 7F0C224C 11C00006 */ beqz $t6, .L7F0C2268 -/* 0F6D80 7F0C2250 C7AE0028 */ lwc1 $f14, 0x28($sp) -/* 0F6D84 7F0C2254 4600710D */ trunc.w.s $f4, $f14 -.L7F0C2258: -/* 0F6D88 7F0C2258 24040001 */ li $a0, 1 -/* 0F6D8C 7F0C225C 44032000 */ mfc1 $v1, $f4 -/* 0F6D90 7F0C2260 10000006 */ b .L7F0C227C -/* 0F6D94 7F0C2264 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C2268: -/* 0F6D98 7F0C2268 4600618D */ trunc.w.s $f6, $f12 -.L7F0C226C: -/* 0F6D9C 7F0C226C 00002025 */ move $a0, $zero -/* 0F6DA0 7F0C2270 44033000 */ mfc1 $v1, $f6 -/* 0F6DA4 7F0C2274 00000000 */ nop -/* 0F6DA8 7F0C2278 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C227C: -/* 0F6DAC 7F0C227C 2B210003 */ slti $at, $t9, 3 -/* 0F6DB0 7F0C2280 5420002E */ bnezl $at, .L7F0C233C -/* 0F6DB4 7F0C2284 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6DB8 7F0C2288 44834000 */ mtc1 $v1, $f8 -/* 0F6DBC 7F0C228C C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 0F6DC0 7F0C2290 46804020 */ cvt.s.w $f0, $f8 -/* 0F6DC4 7F0C2294 460A003C */ c.lt.s $f0, $f10 -/* 0F6DC8 7F0C2298 00000000 */ nop -/* 0F6DCC 7F0C229C 4503000D */ bc1tl .L7F0C22D4 -/* 0F6DD0 7F0C22A0 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 0F6DD4 7F0C22A4 46005032 */ c.eq.s $f10, $f0 -/* 0F6DD8 7F0C22A8 00000000 */ nop -/* 0F6DDC 7F0C22AC 4502000E */ bc1fl .L7F0C22E8 -/* 0F6DE0 7F0C22B0 8FAA0020 */ lw $t2, 0x20($sp) -/* 0F6DE4 7F0C22B4 AFA3001C */ sw $v1, 0x1c($sp) -/* 0F6DE8 7F0C22B8 0C002914 */ jal get_random_value -/* 0F6DEC 7F0C22BC AFA40018 */ sw $a0, 0x18($sp) -/* 0F6DF0 7F0C22C0 30480001 */ andi $t0, $v0, 1 -/* 0F6DF4 7F0C22C4 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F6DF8 7F0C22C8 11000006 */ beqz $t0, .L7F0C22E4 -/* 0F6DFC 7F0C22CC 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6E00 7F0C22D0 C7B0002C */ lwc1 $f16, 0x2c($sp) -.L7F0C22D4: -/* 0F6E04 7F0C22D4 24040002 */ li $a0, 2 -/* 0F6E08 7F0C22D8 4600848D */ trunc.w.s $f18, $f16 -/* 0F6E0C 7F0C22DC 44039000 */ mfc1 $v1, $f18 -/* 0F6E10 7F0C22E0 00000000 */ nop -.L7F0C22E4: -/* 0F6E14 7F0C22E4 8FAA0020 */ lw $t2, 0x20($sp) -.L7F0C22E8: -/* 0F6E18 7F0C22E8 29410004 */ slti $at, $t2, 4 -/* 0F6E1C 7F0C22EC 54200013 */ bnezl $at, .L7F0C233C -/* 0F6E20 7F0C22F0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6E24 7F0C22F4 44832000 */ mtc1 $v1, $f4 -/* 0F6E28 7F0C22F8 C7A20030 */ lwc1 $f2, 0x30($sp) -/* 0F6E2C 7F0C22FC 46802020 */ cvt.s.w $f0, $f4 -/* 0F6E30 7F0C2300 4602003C */ c.lt.s $f0, $f2 -/* 0F6E34 7F0C2304 00000000 */ nop -/* 0F6E38 7F0C2308 4503000B */ bc1tl .L7F0C2338 -/* 0F6E3C 7F0C230C 24040003 */ li $a0, 3 -/* 0F6E40 7F0C2310 46001032 */ c.eq.s $f2, $f0 -/* 0F6E44 7F0C2314 00000000 */ nop -/* 0F6E48 7F0C2318 45020008 */ bc1fl .L7F0C233C -/* 0F6E4C 7F0C231C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6E50 7F0C2320 0C002914 */ jal get_random_value -/* 0F6E54 7F0C2324 AFA40018 */ sw $a0, 0x18($sp) -/* 0F6E58 7F0C2328 304B0001 */ andi $t3, $v0, 1 -/* 0F6E5C 7F0C232C 11600002 */ beqz $t3, .L7F0C2338 -/* 0F6E60 7F0C2330 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6E64 7F0C2334 24040003 */ li $a0, 3 -.L7F0C2338: -/* 0F6E68 7F0C2338 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C233C: -/* 0F6E6C 7F0C233C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F6E70 7F0C2340 00801025 */ move $v0, $a0 -/* 0F6E74 7F0C2344 03E00008 */ jr $ra -/* 0F6E78 7F0C2348 00000000 */ nop -) -#endif +s32 sub_GAME_7F0C234C(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + s32 aux; + s32 result; + if ((arg2 < arg1) || + ((arg2 == arg1 && ((randomGetNext() & 1))))) { + aux = (s32) arg2; + result = 1; + } + else { + aux = (s32) arg1; + result = 0; + } + + if (arg0 >= 3) + { + if ((arg3 < aux) || + ((arg3 == aux && ((randomGetNext() & 1))))) { + aux = (s32) arg3; + result = 2; + } + if (arg0 >= 4) + { - -#ifdef NONMATCHING -void sub_GAME_7F0C234C(void) { - + if ((arg4 < aux) || + ((arg4 == aux && ((randomGetNext() & 1))))) { + result = 3; + } + } + } + return result; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C234C -/* 0F6E7C 7F0C234C 44856000 */ mtc1 $a1, $f12 -/* 0F6E80 7F0C2350 44867000 */ mtc1 $a2, $f14 -/* 0F6E84 7F0C2354 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F6E88 7F0C2358 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6E8C 7F0C235C 460C703C */ c.lt.s $f14, $f12 -/* 0F6E90 7F0C2360 AFA40020 */ sw $a0, 0x20($sp) -/* 0F6E94 7F0C2364 AFA7002C */ sw $a3, 0x2c($sp) -/* 0F6E98 7F0C2368 4503000D */ bc1tl .L7F0C23A0 -/* 0F6E9C 7F0C236C 4600710D */ trunc.w.s $f4, $f14 -/* 0F6EA0 7F0C2370 460C7032 */ c.eq.s $f14, $f12 -/* 0F6EA4 7F0C2374 00000000 */ nop -/* 0F6EA8 7F0C2378 4502000E */ bc1fl .L7F0C23B4 -/* 0F6EAC 7F0C237C 4600618D */ trunc.w.s $f6, $f12 -/* 0F6EB0 7F0C2380 E7AC0024 */ swc1 $f12, 0x24($sp) -/* 0F6EB4 7F0C2384 0C002914 */ jal get_random_value -/* 0F6EB8 7F0C2388 E7AE0028 */ swc1 $f14, 0x28($sp) -/* 0F6EBC 7F0C238C 304E0001 */ andi $t6, $v0, 1 -/* 0F6EC0 7F0C2390 C7AC0024 */ lwc1 $f12, 0x24($sp) -/* 0F6EC4 7F0C2394 11C00006 */ beqz $t6, .L7F0C23B0 -/* 0F6EC8 7F0C2398 C7AE0028 */ lwc1 $f14, 0x28($sp) -/* 0F6ECC 7F0C239C 4600710D */ trunc.w.s $f4, $f14 -.L7F0C23A0: -/* 0F6ED0 7F0C23A0 24040001 */ li $a0, 1 -/* 0F6ED4 7F0C23A4 44032000 */ mfc1 $v1, $f4 -/* 0F6ED8 7F0C23A8 10000006 */ b .L7F0C23C4 -/* 0F6EDC 7F0C23AC 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C23B0: -/* 0F6EE0 7F0C23B0 4600618D */ trunc.w.s $f6, $f12 -.L7F0C23B4: -/* 0F6EE4 7F0C23B4 00002025 */ move $a0, $zero -/* 0F6EE8 7F0C23B8 44033000 */ mfc1 $v1, $f6 -/* 0F6EEC 7F0C23BC 00000000 */ nop -/* 0F6EF0 7F0C23C0 8FB90020 */ lw $t9, 0x20($sp) -.L7F0C23C4: -/* 0F6EF4 7F0C23C4 2B210003 */ slti $at, $t9, 3 -/* 0F6EF8 7F0C23C8 5420002E */ bnezl $at, .L7F0C2484 -/* 0F6EFC 7F0C23CC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6F00 7F0C23D0 44834000 */ mtc1 $v1, $f8 -/* 0F6F04 7F0C23D4 C7AA002C */ lwc1 $f10, 0x2c($sp) -/* 0F6F08 7F0C23D8 46804020 */ cvt.s.w $f0, $f8 -/* 0F6F0C 7F0C23DC 4600503C */ c.lt.s $f10, $f0 -/* 0F6F10 7F0C23E0 00000000 */ nop -/* 0F6F14 7F0C23E4 4503000D */ bc1tl .L7F0C241C -/* 0F6F18 7F0C23E8 C7B0002C */ lwc1 $f16, 0x2c($sp) -/* 0F6F1C 7F0C23EC 46005032 */ c.eq.s $f10, $f0 -/* 0F6F20 7F0C23F0 00000000 */ nop -/* 0F6F24 7F0C23F4 4502000E */ bc1fl .L7F0C2430 -/* 0F6F28 7F0C23F8 8FAA0020 */ lw $t2, 0x20($sp) -/* 0F6F2C 7F0C23FC AFA3001C */ sw $v1, 0x1c($sp) -/* 0F6F30 7F0C2400 0C002914 */ jal get_random_value -/* 0F6F34 7F0C2404 AFA40018 */ sw $a0, 0x18($sp) -/* 0F6F38 7F0C2408 30480001 */ andi $t0, $v0, 1 -/* 0F6F3C 7F0C240C 8FA3001C */ lw $v1, 0x1c($sp) -/* 0F6F40 7F0C2410 11000006 */ beqz $t0, .L7F0C242C -/* 0F6F44 7F0C2414 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6F48 7F0C2418 C7B0002C */ lwc1 $f16, 0x2c($sp) -.L7F0C241C: -/* 0F6F4C 7F0C241C 24040002 */ li $a0, 2 -/* 0F6F50 7F0C2420 4600848D */ trunc.w.s $f18, $f16 -/* 0F6F54 7F0C2424 44039000 */ mfc1 $v1, $f18 -/* 0F6F58 7F0C2428 00000000 */ nop -.L7F0C242C: -/* 0F6F5C 7F0C242C 8FAA0020 */ lw $t2, 0x20($sp) -.L7F0C2430: -/* 0F6F60 7F0C2430 29410004 */ slti $at, $t2, 4 -/* 0F6F64 7F0C2434 54200013 */ bnezl $at, .L7F0C2484 -/* 0F6F68 7F0C2438 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6F6C 7F0C243C 44832000 */ mtc1 $v1, $f4 -/* 0F6F70 7F0C2440 C7A20030 */ lwc1 $f2, 0x30($sp) -/* 0F6F74 7F0C2444 46802020 */ cvt.s.w $f0, $f4 -/* 0F6F78 7F0C2448 4600103C */ c.lt.s $f2, $f0 -/* 0F6F7C 7F0C244C 00000000 */ nop -/* 0F6F80 7F0C2450 4503000B */ bc1tl .L7F0C2480 -/* 0F6F84 7F0C2454 24040003 */ li $a0, 3 -/* 0F6F88 7F0C2458 46001032 */ c.eq.s $f2, $f0 -/* 0F6F8C 7F0C245C 00000000 */ nop -/* 0F6F90 7F0C2460 45020008 */ bc1fl .L7F0C2484 -/* 0F6F94 7F0C2464 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F6F98 7F0C2468 0C002914 */ jal get_random_value -/* 0F6F9C 7F0C246C AFA40018 */ sw $a0, 0x18($sp) -/* 0F6FA0 7F0C2470 304B0001 */ andi $t3, $v0, 1 -/* 0F6FA4 7F0C2474 11600002 */ beqz $t3, .L7F0C2480 -/* 0F6FA8 7F0C2478 8FA40018 */ lw $a0, 0x18($sp) -/* 0F6FAC 7F0C247C 24040003 */ li $a0, 3 -.L7F0C2480: -/* 0F6FB0 7F0C2480 8FBF0014 */ lw $ra, 0x14($sp) -.L7F0C2484: -/* 0F6FB4 7F0C2484 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F6FB8 7F0C2488 00801025 */ move $v0, $a0 -/* 0F6FBC 7F0C248C 03E00008 */ jr $ra -/* 0F6FC0 7F0C2490 00000000 */ nop -) -#endif - - - void pauseAndLockControls(void) { @@ -747,51 +262,25 @@ void pauseAndLockControls(void) { } +s32 sub_GAME_7F0C24BC(void) +{ + if (getPlayerCount() == 1) + { + return 1; + } - - - -#ifdef NONMATCHING -void sub_GAME_7F0C24BC(void) { - + if (stop_play_flag != 0) + { + return 0; + } + + if (pPlayer->mpmenuon != 0) + { + return 0; + } + + return 1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C24BC -/* 0F6FEC 7F0C24BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F6FF0 7F0C24C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F6FF4 7F0C24C4 0FC26919 */ jal getPlayerCount -/* 0F6FF8 7F0C24C8 00000000 */ nop -/* 0F6FFC 7F0C24CC 24010001 */ li $at, 1 -/* 0F7000 7F0C24D0 14410003 */ bne $v0, $at, .L7F0C24E0 -/* 0F7004 7F0C24D4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7008 7F0C24D8 1000000F */ b .L7F0C2518 -/* 0F700C 7F0C24DC 24020001 */ li $v0, 1 -.L7F0C24E0: -/* 0F7010 7F0C24E0 3C0E8009 */ lui $t6, %hi(stop_play_flag) -/* 0F7014 7F0C24E4 8DCEC700 */ lw $t6, %lo(stop_play_flag)($t6) -/* 0F7018 7F0C24E8 3C0F8008 */ lui $t7, %hi(pPlayer) -/* 0F701C 7F0C24EC 11C00003 */ beqz $t6, .L7F0C24FC -/* 0F7020 7F0C24F0 00000000 */ nop -/* 0F7024 7F0C24F4 10000008 */ b .L7F0C2518 -/* 0F7028 7F0C24F8 00001025 */ move $v0, $zero -.L7F0C24FC: -/* 0F702C 7F0C24FC 8DEFA0B0 */ lw $t7, %lo(pPlayer)($t7) -/* 0F7030 7F0C2500 24020001 */ li $v0, 1 -/* 0F7034 7F0C2504 8DF829C4 */ lw $t8, 0x29c4($t7) -/* 0F7038 7F0C2508 13000003 */ beqz $t8, .L7F0C2518 -/* 0F703C 7F0C250C 00000000 */ nop -/* 0F7040 7F0C2510 10000001 */ b .L7F0C2518 -/* 0F7044 7F0C2514 00001025 */ move $v0, $zero -.L7F0C2518: -/* 0F7048 7F0C2518 03E00008 */ jr $ra -/* 0F704C 7F0C251C 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - - void set_stopplay_flag(void) { @@ -837,10 +326,10 @@ glabel sub_GAME_7F0C2530 /* 0F70A8 7F0C2578 00002025 */ move $a0, $zero /* 0F70AC 7F0C257C 0FC302FC */ jal sub_GAME_7F0C0BF0 /* 0F70B0 7F0C2580 00000000 */ nop -/* 0F70B4 7F0C2584 0C001C0F */ jal musicTrack1Vol +/* 0F70B4 7F0C2584 0C001C0F */ jal musicTrack1ApplySeqpVol /* 0F70B8 7F0C2588 3044FFFF */ andi $a0, $v0, 0xffff -/* 0F70BC 7F0C258C 3C018002 */ lui $at, %hi(music1_playing) -/* 0F70C0 7F0C2590 AC20434C */ sw $zero, %lo(music1_playing)($at) +/* 0F70BC 7F0C258C 3C018002 */ lui $at, %hi(g_musicXTrack1Fade) +/* 0F70C0 7F0C2590 AC20434C */ sw $zero, %lo(g_musicXTrack1Fade)($at) /* 0F70C4 7F0C2594 0C001B9F */ jal musicTrack1Play /* 0F70C8 7F0C2598 2404002C */ li $a0, 44 /* 0F70CC 7F0C259C 0FC30925 */ jal pauseAndLockControls @@ -1388,7 +877,7 @@ glabel sub_GAME_7F0C2530 /* 0F78AC 7F0C2D7C 00000000 */ nop /* 0F78B0 7F0C2D80 24130001 */ li $s3, 1 .L7F0C2D84: -/* 0F78B4 7F0C2D84 0C002914 */ jal get_random_value +/* 0F78B4 7F0C2D84 0C002914 */ jal randomGetNext /* 0F78B8 7F0C2D88 00000000 */ nop /* 0F78BC 7F0C2D8C 0055001B */ divu $zero, $v0, $s5 /* 0F78C0 7F0C2D90 00002810 */ mfhi $a1 @@ -1402,7 +891,7 @@ glabel sub_GAME_7F0C2530 /* 0F78DC 7F0C2DAC 50200026 */ beql $at, $zero, .L7F0C2E48 /* 0F78E0 7F0C2DB0 26D60001 */ addiu $s6, $s6, 1 .L7F0C2DB4: -/* 0F78E4 7F0C2DB4 0C002914 */ jal get_random_value +/* 0F78E4 7F0C2DB4 0C002914 */ jal randomGetNext /* 0F78E8 7F0C2DB8 00000000 */ nop /* 0F78EC 7F0C2DBC 0055001B */ divu $zero, $v0, $s5 /* 0F78F0 7F0C2DC0 8E50002C */ lw $s0, 0x2c($s2) @@ -1483,7 +972,7 @@ glabel sub_GAME_7F0C2E80 /* 0F79CC 7F0C2E9C 2405FFFE */ li $a1, -2 /* 0F79D0 7F0C2EA0 24060001 */ li $a2, 1 /* 0F79D4 7F0C2EA4 AFA20030 */ sw $v0, 0x30($sp) -/* 0F79D8 7F0C2EA8 0C00312D */ jal get_controller_3dstick_L_R +/* 0F79D8 7F0C2EA8 0C00312D */ jal joyGetStickXInRange /* 0F79DC 7F0C2EAC AFA40018 */ sw $a0, 0x18($sp) /* 0F79E0 7F0C2EB0 AFA2002C */ sw $v0, 0x2c($sp) /* 0F79E4 7F0C2EB4 0FC26D36 */ jal sub_GAME_7F09B4D8 @@ -1689,7 +1178,7 @@ glabel sub_GAME_7F0C2E80 /* 0F7CD8 7F0C31A8 83A4001B */ lb $a0, 0x1b($sp) .L7F0C31AC: /* 0F7CDC 7F0C31AC 34058000 */ li $a1, 32768 -/* 0F7CE0 7F0C31B0 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7CE0 7F0C31B0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7CE4 7F0C31B4 AFA80030 */ sw $t0, 0x30($sp) /* 0F7CE8 7F0C31B8 3C078008 */ lui $a3, %hi(pPlayer) /* 0F7CEC 7F0C31BC 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 @@ -1739,7 +1228,7 @@ glabel sub_GAME_7F0C2E80 /* 0F7D90 7F0C3260 14CB0011 */ bne $a2, $t3, .L7F0C32A8 /* 0F7D94 7F0C3264 00000000 */ nop /* 0F7D98 7F0C3268 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7D9C 7F0C326C 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7D9C 7F0C326C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7DA0 7F0C3270 24054000 */ li $a1, 16384 /* 0F7DA4 7F0C3274 504000A5 */ beql $v0, $zero, .L7F0C350C /* 0F7DA8 7F0C3278 8FA2002C */ lw $v0, 0x2c($sp) @@ -1755,7 +1244,7 @@ glabel sub_GAME_7F0C2E80 /* 0F7DD0 7F0C32A0 10000099 */ b .L7F0C3508 /* 0F7DD4 7F0C32A4 ADED29C8 */ sw $t5, 0x29c8($t7) .L7F0C32A8: -/* 0F7DD8 7F0C32A8 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7DD8 7F0C32A8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7DDC 7F0C32AC AFA80030 */ sw $t0, 0x30($sp) /* 0F7DE0 7F0C32B0 3C078008 */ lui $a3, %hi(pPlayer) /* 0F7DE4 7F0C32B4 24E7A0B0 */ addiu $a3, %lo(pPlayer) # addiu $a3, $a3, -0x5f50 @@ -1779,7 +1268,7 @@ glabel sub_GAME_7F0C2E80 /* 0F7E24 7F0C32F4 83A4001B */ lb $a0, 0x1b($sp) .L7F0C32F8: /* 0F7E28 7F0C32F8 24054000 */ li $a1, 16384 -/* 0F7E2C 7F0C32FC 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7E2C 7F0C32FC 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7E30 7F0C3300 AFA80030 */ sw $t0, 0x30($sp) /* 0F7E34 7F0C3304 10400052 */ beqz $v0, .L7F0C3450 /* 0F7E38 7F0C3308 8FA80030 */ lw $t0, 0x30($sp) @@ -1854,7 +1343,7 @@ glabel sub_GAME_7F0C2E80 .L7F0C33F8: /* 0F7F28 7F0C33F8 54680044 */ bnel $v1, $t0, .L7F0C350C /* 0F7F2C 7F0C33FC 8FA2002C */ lw $v0, 0x2c($sp) -/* 0F7F30 7F0C3400 0C001A54 */ jal set_loaded_stage +/* 0F7F30 7F0C3400 0C001A54 */ jal bossSetLoadedStage /* 0F7F34 7F0C3404 2404005A */ li $a0, 90 /* 0F7F38 7F0C3408 10000040 */ b .L7F0C350C /* 0F7F3C 7F0C340C 8FA2002C */ lw $v0, 0x2c($sp) @@ -1877,7 +1366,7 @@ glabel sub_GAME_7F0C2E80 /* 0F7F7C 7F0C344C 8FA2002C */ lw $v0, 0x2c($sp) .L7F0C3450: /* 0F7F80 7F0C3450 83A4001B */ lb $a0, 0x1b($sp) -/* 0F7F84 7F0C3454 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7F84 7F0C3454 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7F88 7F0C3458 34059000 */ li $a1, 36864 /* 0F7F8C 7F0C345C 3C078008 */ lui $a3, %hi(pPlayer) /* 0F7F90 7F0C3460 10400010 */ beqz $v0, .L7F0C34A4 @@ -1900,7 +1389,7 @@ glabel sub_GAME_7F0C2E80 .L7F0C34A4: /* 0F7FD4 7F0C34A4 83A4001B */ lb $a0, 0x1b($sp) .L7F0C34A8: -/* 0F7FD8 7F0C34A8 0C0030EB */ jal get_controller_buttons_pressed +/* 0F7FD8 7F0C34A8 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F7FDC 7F0C34AC 34059000 */ li $a1, 36864 /* 0F7FE0 7F0C34B0 3C078008 */ lui $a3, %hi(pPlayer) /* 0F7FE4 7F0C34B4 10400014 */ beqz $v0, .L7F0C3508 @@ -1940,7 +1429,7 @@ glabel sub_GAME_7F0C2E80 /* 0F805C 7F0C352C 10000018 */ b .L7F0C3590 /* 0F8060 7F0C3530 AC6029D0 */ sw $zero, 0x29d0($v1) .L7F0C3534: -/* 0F8064 7F0C3534 0C0030EB */ jal get_controller_buttons_pressed +/* 0F8064 7F0C3534 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F8068 7F0C3538 24051000 */ li $a1, 4096 /* 0F806C 7F0C353C 50400015 */ beql $v0, $zero, .L7F0C3594 /* 0F8070 7F0C3540 8FBF0014 */ lw $ra, 0x14($sp) @@ -1976,10 +1465,46 @@ glabel sub_GAME_7F0C2E80 -#ifdef NONMATCHING -void display_text_for_playerdata_on_MP_menu(void) { + + +#ifdef NONMATCHING + +void display_text_for_playerdata_on_MP_menu(u32 *param_1,int param_2,u32 param_3,char* param_4,TEXTCOLORS param_5) +{ + short sVar2; + char textbuf[8]; + int iStack16; + int iStack12; + u32 uStack8; + u32 uStack4; + + sprintf(textbuf,"%d",param_4); + sub_GAME_7F0AE98C(&iStack16,&iStack12,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0); + uStack4 = param_2 - (iStack12 >> 1); + uStack8 = param_3; + switch(param_5) { + case GREEN_NORMAL: + en_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0xff00b0,viGetX(),viGetY(),0,0); + break; + case GREEN_HIGHLIGHT: + jp_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0xa0ffa0f0,0x007000a0,viGetX(),viGetY(),0,0); + break; + case RED_NORMAL: + en_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0xff4040b0,viGetX(),viGetY(),0,0); + break; + case RED_HIGHLIGHT: + jp_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0xffa0a0f0,0x700000a0,viGetX(),viGetY(),0,0); + break; + case BLUE_NORMAL: + en_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0x4040ffb0,viGetX(),viGetY(),0,0); + break; + case BLUE_HIGHLIGHT: + jp_text_write_stuff(param_1,&uStack4,&uStack8,textbuf,ptrSecondFontTableSmall,ptrFirstFontTableSmall,0xa0a0fff0,0x70a0,viGetX(),viGetY(),0,0); + } + return; } + #else GLOBAL_ASM( .late_rodata @@ -2032,11 +1557,11 @@ glabel display_text_for_playerdata_on_MP_menu /* 0F815C 7F0C362C 01200008 */ jr $t1 /* 0F8160 7F0C3630 00000000 */ nop green_text_normal: -/* 0F8164 7F0C3634 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8164 7F0C3634 0C001107 */ jal viGetX /* 0F8168 7F0C3638 00000000 */ nop /* 0F816C 7F0C363C 00028400 */ sll $s0, $v0, 0x10 /* 0F8170 7F0C3640 00105403 */ sra $t2, $s0, 0x10 -/* 0F8174 7F0C3644 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8174 7F0C3644 0C00110B */ jal viGetY /* 0F8178 7F0C3648 01408025 */ move $s0, $t2 /* 0F817C 7F0C364C 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) /* 0F8180 7F0C3650 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -2059,11 +1584,11 @@ green_text_normal: /* 0F81C4 7F0C3694 1000008A */ b .L7F0C38C0 /* 0F81C8 7F0C3698 00408825 */ move $s1, $v0 green_text_highlighted: -/* 0F81CC 7F0C369C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F81CC 7F0C369C 0C001107 */ jal viGetX /* 0F81D0 7F0C36A0 00000000 */ nop /* 0F81D4 7F0C36A4 00028400 */ sll $s0, $v0, 0x10 /* 0F81D8 7F0C36A8 00107403 */ sra $t6, $s0, 0x10 -/* 0F81DC 7F0C36AC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F81DC 7F0C36AC 0C00110B */ jal viGetY /* 0F81E0 7F0C36B0 01C08025 */ move $s0, $t6 /* 0F81E4 7F0C36B4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0F81E8 7F0C36B8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -2089,11 +1614,11 @@ green_text_highlighted: /* 0F8238 7F0C3708 1000006D */ b .L7F0C38C0 /* 0F823C 7F0C370C 00408825 */ move $s1, $v0 red_text_normal: -/* 0F8240 7F0C3710 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8240 7F0C3710 0C001107 */ jal viGetX /* 0F8244 7F0C3714 00000000 */ nop /* 0F8248 7F0C3718 00028400 */ sll $s0, $v0, 0x10 /* 0F824C 7F0C371C 00104C03 */ sra $t1, $s0, 0x10 -/* 0F8250 7F0C3720 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8250 7F0C3720 0C00110B */ jal viGetY /* 0F8254 7F0C3724 01208025 */ move $s0, $t1 /* 0F8258 7F0C3728 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) /* 0F825C 7F0C372C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) @@ -2116,11 +1641,11 @@ red_text_normal: /* 0F82A0 7F0C3770 10000053 */ b .L7F0C38C0 /* 0F82A4 7F0C3774 00408825 */ move $s1, $v0 red_text_highlighted: -/* 0F82A8 7F0C3778 0C001107 */ jal get_video2_settings_txtClipW +/* 0F82A8 7F0C3778 0C001107 */ jal viGetX /* 0F82AC 7F0C377C 00000000 */ nop /* 0F82B0 7F0C3780 00028400 */ sll $s0, $v0, 0x10 /* 0F82B4 7F0C3784 00106C03 */ sra $t5, $s0, 0x10 -/* 0F82B8 7F0C3788 0C00110B */ jal get_video2_settings_txtClipH +/* 0F82B8 7F0C3788 0C00110B */ jal viGetY /* 0F82BC 7F0C378C 01A08025 */ move $s0, $t5 /* 0F82C0 7F0C3790 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) /* 0F82C4 7F0C3794 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) @@ -2146,11 +1671,11 @@ red_text_highlighted: /* 0F8314 7F0C37E4 10000036 */ b .L7F0C38C0 /* 0F8318 7F0C37E8 00408825 */ move $s1, $v0 blue_text_normal: -/* 0F831C 7F0C37EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0F831C 7F0C37EC 0C001107 */ jal viGetX /* 0F8320 7F0C37F0 00000000 */ nop /* 0F8324 7F0C37F4 00028400 */ sll $s0, $v0, 0x10 /* 0F8328 7F0C37F8 00104403 */ sra $t0, $s0, 0x10 -/* 0F832C 7F0C37FC 0C00110B */ jal get_video2_settings_txtClipH +/* 0F832C 7F0C37FC 0C00110B */ jal viGetY /* 0F8330 7F0C3800 01008025 */ move $s0, $t0 /* 0F8334 7F0C3804 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) /* 0F8338 7F0C3808 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) @@ -2173,11 +1698,11 @@ blue_text_normal: /* 0F837C 7F0C384C 1000001C */ b .L7F0C38C0 /* 0F8380 7F0C3850 00408825 */ move $s1, $v0 blue_text_highlighted: -/* 0F8384 7F0C3854 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8384 7F0C3854 0C001107 */ jal viGetX /* 0F8388 7F0C3858 00000000 */ nop /* 0F838C 7F0C385C 00028400 */ sll $s0, $v0, 0x10 /* 0F8390 7F0C3860 00106403 */ sra $t4, $s0, 0x10 -/* 0F8394 7F0C3864 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8394 7F0C3864 0C00110B */ jal viGetY /* 0F8398 7F0C3868 01808025 */ move $s0, $t4 /* 0F839C 7F0C386C 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) /* 0F83A0 7F0C3870 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) @@ -2730,119 +2255,49 @@ glabel write_playerrank_to_buffer #endif - - - -#ifdef NONMATCHING -void true_if_displaying_rank_in_mp(void) { - +s32 true_if_displaying_rank_in_mp(s32 param_1) +{ + switch(get_scenario()) + { + case 0: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + return 1; + case 1: + return param_1 ? 0 : 1; + default: + do { + /* WARNING: Do nothing block with infinite loop */ + } while(1); + } } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BCC0*/ -glabel jpt_MP_overlays_scoring_scenario_1 -.word not_yolt -.word yolt -.word not_yolt -.word not_yolt -.word not_yolt -.word not_yolt -.word not_yolt -.word not_yolt -.text -glabel true_if_displaying_rank_in_mp -/* 0F8A8C 7F0C3F5C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F8A90 7F0C3F60 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F8A94 7F0C3F64 0FC051D6 */ jal get_scenario -/* 0F8A98 7F0C3F68 AFA40018 */ sw $a0, 0x18($sp) -/* 0F8A9C 7F0C3F6C 2C410008 */ sltiu $at, $v0, 8 -/* 0F8AA0 7F0C3F70 10200010 */ beqz $at, .L7F0C3FB4 -/* 0F8AA4 7F0C3F74 00027080 */ sll $t6, $v0, 2 -/* 0F8AA8 7F0C3F78 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_1) -/* 0F8AAC 7F0C3F7C 002E0821 */ addu $at, $at, $t6 -/* 0F8AB0 7F0C3F80 8C2EBCC0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_1)($at) -/* 0F8AB4 7F0C3F84 01C00008 */ jr $t6 -/* 0F8AB8 7F0C3F88 00000000 */ nop -not_yolt: -/* 0F8ABC 7F0C3F8C 1000000B */ b .L7F0C3FBC -/* 0F8AC0 7F0C3F90 24020001 */ li $v0, 1 -yolt: -/* 0F8AC4 7F0C3F94 8FAF0018 */ lw $t7, 0x18($sp) -/* 0F8AC8 7F0C3F98 24030001 */ li $v1, 1 -/* 0F8ACC 7F0C3F9C 11E00003 */ beqz $t7, .L7F0C3FAC -/* 0F8AD0 7F0C3FA0 00000000 */ nop -/* 0F8AD4 7F0C3FA4 10000005 */ b .L7F0C3FBC -/* 0F8AD8 7F0C3FA8 00001025 */ move $v0, $zero -.L7F0C3FAC: -/* 0F8ADC 7F0C3FAC 10000003 */ b .L7F0C3FBC -/* 0F8AE0 7F0C3FB0 00601025 */ move $v0, $v1 -def_7F0C3F84: -.L7F0C3FB4: -/* 0F8AE4 7F0C3FB4 1000FFFF */ b .L7F0C3FB4 -/* 0F8AE8 7F0C3FB8 00000000 */ nop -.L7F0C3FBC: -/* 0F8AEC 7F0C3FBC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F8AF0 7F0C3FC0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F8AF4 7F0C3FC4 03E00008 */ jr $ra -/* 0F8AF8 7F0C3FC8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void true_if_displaying_score_in_mp(void) { +s32 true_if_displaying_score_in_mp(s32 param_1) +{ + switch(get_scenario()) + { + case 0: + case 3: + case 4: + case 5: + case 6: + case 7: + return 1; + break; + case 1: + case 2: + return 0; + break; + default: + do { + /* WARNING: Do nothing block with infinite loop */ + } while(1); + } } -#else -GLOBAL_ASM( -.late_rodata -/*D:8005BCE0*/ -glabel jpt_MP_overlays_scoring_scenario_2 -.word not_yolt_tld -.word yolt_tld -.word yolt_tld -.word not_yolt_tld -.word not_yolt_tld -.word not_yolt_tld -.word not_yolt_tld -/*.word not_yolt_tld*/ -.text -glabel true_if_displaying_score_in_mp -/* 0F8AFC 7F0C3FCC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F8B00 7F0C3FD0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F8B04 7F0C3FD4 0FC051D6 */ jal get_scenario -/* 0F8B08 7F0C3FD8 AFA40018 */ sw $a0, 0x18($sp) -/* 0F8B0C 7F0C3FDC 2C410008 */ sltiu $at, $v0, 8 -/* 0F8B10 7F0C3FE0 1020000A */ beqz $at, .L7F0C400C -/* 0F8B14 7F0C3FE4 00027080 */ sll $t6, $v0, 2 -/* 0F8B18 7F0C3FE8 3C018006 */ lui $at, %hi(jpt_MP_overlays_scoring_scenario_2) -/* 0F8B1C 7F0C3FEC 002E0821 */ addu $at, $at, $t6 -/* 0F8B20 7F0C3FF0 8C2EBCE0 */ lw $t6, %lo(jpt_MP_overlays_scoring_scenario_2)($at) -/* 0F8B24 7F0C3FF4 01C00008 */ jr $t6 -/* 0F8B28 7F0C3FF8 00000000 */ nop -not_yolt_tld: -/* 0F8B2C 7F0C3FFC 10000005 */ b .L7F0C4014 -/* 0F8B30 7F0C4000 24020001 */ li $v0, 1 -yolt_tld: -/* 0F8B34 7F0C4004 10000003 */ b .L7F0C4014 -/* 0F8B38 7F0C4008 00001025 */ move $v0, $zero -def_7F0C3FF4: -.L7F0C400C: -/* 0F8B3C 7F0C400C 1000FFFF */ b .L7F0C400C -/* 0F8B40 7F0C4010 00000000 */ nop -.L7F0C4014: -/* 0F8B44 7F0C4014 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F8B48 7F0C4018 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F8B4C 7F0C401C 03E00008 */ jr $ra -/* 0F8B50 7F0C4020 00000000 */ nop -) -#endif - - @@ -2854,8 +2309,6 @@ void mp_watch_menu_display(void) { #ifdef VERSION_US GLOBAL_ASM( .late_rodata -/*jtbl hacks*/ -.word not_yolt_tld /*D:8005BD00*/ glabel jpt_MP_menu_window_text @@ -2999,11 +2452,11 @@ def_7F0C40C0: /* 0F8D1C 7F0C41EC 25CF0016 */ addiu $t7, $t6, 0x16 /* 0F8D20 7F0C41F0 1200001E */ beqz $s0, .L7F0C426C /* 0F8D24 7F0C41F4 AFAF00C8 */ sw $t7, 0xc8($sp) -/* 0F8D28 7F0C41F8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8D28 7F0C41F8 0C001107 */ jal viGetX /* 0F8D2C 7F0C41FC 00000000 */ nop /* 0F8D30 7F0C4200 00028400 */ sll $s0, $v0, 0x10 /* 0F8D34 7F0C4204 0010C403 */ sra $t8, $s0, 0x10 -/* 0F8D38 7F0C4208 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8D38 7F0C4208 0C00110B */ jal viGetY /* 0F8D3C 7F0C420C 03008025 */ move $s0, $t8 /* 0F8D40 7F0C4210 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 0F8D44 7F0C4214 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) @@ -3029,11 +2482,11 @@ def_7F0C40C0: /* 0F8D94 7F0C4264 1000001A */ b .L7F0C42D0 /* 0F8D98 7F0C4268 00408825 */ move $s1, $v0 .L7F0C426C: -/* 0F8D9C 7F0C426C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8D9C 7F0C426C 0C001107 */ jal viGetX /* 0F8DA0 7F0C4270 00000000 */ nop /* 0F8DA4 7F0C4274 00028400 */ sll $s0, $v0, 0x10 /* 0F8DA8 7F0C4278 00106403 */ sra $t4, $s0, 0x10 -/* 0F8DAC 7F0C427C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8DAC 7F0C427C 0C00110B */ jal viGetY /* 0F8DB0 7F0C4280 01808025 */ move $s0, $t4 /* 0F8DB4 7F0C4284 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) /* 0F8DB8 7F0C4288 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) @@ -3090,11 +2543,11 @@ def_7F0C40C0: /* 0F8E78 7F0C4348 AFAD00C8 */ sw $t5, 0xc8($sp) /* 0F8E7C 7F0C434C 15C0001C */ bnez $t6, .L7F0C43C0 /* 0F8E80 7F0C4350 00000000 */ nop -/* 0F8E84 7F0C4354 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8E84 7F0C4354 0C001107 */ jal viGetX /* 0F8E88 7F0C4358 00000000 */ nop /* 0F8E8C 7F0C435C 00028400 */ sll $s0, $v0, 0x10 /* 0F8E90 7F0C4360 00107C03 */ sra $t7, $s0, 0x10 -/* 0F8E94 7F0C4364 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8E94 7F0C4364 0C00110B */ jal viGetY /* 0F8E98 7F0C4368 01E08025 */ move $s0, $t7 /* 0F8E9C 7F0C436C 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) /* 0F8EA0 7F0C4370 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -3118,11 +2571,11 @@ def_7F0C40C0: /* 0F8EE8 7F0C43B8 1000001E */ b .L7F0C4434 /* 0F8EEC 7F0C43BC 00408825 */ move $s1, $v0 .L7F0C43C0: -/* 0F8EF0 7F0C43C0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8EF0 7F0C43C0 0C001107 */ jal viGetX /* 0F8EF4 7F0C43C4 00000000 */ nop /* 0F8EF8 7F0C43C8 00028400 */ sll $s0, $v0, 0x10 /* 0F8EFC 7F0C43CC 00104C03 */ sra $t1, $s0, 0x10 -/* 0F8F00 7F0C43D0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8F00 7F0C43D0 0C00110B */ jal viGetY /* 0F8F04 7F0C43D4 01208025 */ move $s0, $t1 /* 0F8F08 7F0C43D8 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) /* 0F8F0C 7F0C43DC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -3183,11 +2636,11 @@ def_7F0C40C0: /* 0F8FDC 7F0C44AC AFAC00C8 */ sw $t4, 0xc8($sp) /* 0F8FE0 7F0C44B0 15A0001C */ bnez $t5, .L7F0C4524 /* 0F8FE4 7F0C44B4 00000000 */ nop -/* 0F8FE8 7F0C44B8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F8FE8 7F0C44B8 0C001107 */ jal viGetX /* 0F8FEC 7F0C44BC 00000000 */ nop /* 0F8FF0 7F0C44C0 00028400 */ sll $s0, $v0, 0x10 /* 0F8FF4 7F0C44C4 00107403 */ sra $t6, $s0, 0x10 -/* 0F8FF8 7F0C44C8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F8FF8 7F0C44C8 0C00110B */ jal viGetY /* 0F8FFC 7F0C44CC 01C08025 */ move $s0, $t6 /* 0F9000 7F0C44D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0F9004 7F0C44D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -3211,11 +2664,11 @@ def_7F0C40C0: /* 0F904C 7F0C451C 1000001E */ b .L7F0C4598 /* 0F9050 7F0C4520 00408825 */ move $s1, $v0 .L7F0C4524: -/* 0F9054 7F0C4524 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9054 7F0C4524 0C001107 */ jal viGetX /* 0F9058 7F0C4528 00000000 */ nop /* 0F905C 7F0C452C 00028400 */ sll $s0, $v0, 0x10 /* 0F9060 7F0C4530 00105403 */ sra $t2, $s0, 0x10 -/* 0F9064 7F0C4534 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9064 7F0C4534 0C00110B */ jal viGetY /* 0F9068 7F0C4538 01408025 */ move $s0, $t2 /* 0F906C 7F0C453C 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) /* 0F9070 7F0C4540 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) @@ -3307,11 +2760,11 @@ def_7F0C40C0: /* 0F91B4 7F0C4684 000E7843 */ sra $t7, $t6, 1 /* 0F91B8 7F0C4688 004FC823 */ subu $t9, $v0, $t7 /* 0F91BC 7F0C468C 27380025 */ addiu $t8, $t9, 0x25 -/* 0F91C0 7F0C4690 0C001107 */ jal get_video2_settings_txtClipW +/* 0F91C0 7F0C4690 0C001107 */ jal viGetX /* 0F91C4 7F0C4694 AFB800C8 */ sw $t8, 0xc8($sp) /* 0F91C8 7F0C4698 00028400 */ sll $s0, $v0, 0x10 /* 0F91CC 7F0C469C 00105403 */ sra $t2, $s0, 0x10 -/* 0F91D0 7F0C46A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F91D0 7F0C46A0 0C00110B */ jal viGetY /* 0F91D4 7F0C46A4 01408025 */ move $s0, $t2 /* 0F91D8 7F0C46A8 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) /* 0F91DC 7F0C46AC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -3377,11 +2830,11 @@ def_7F0C40C0: /* 0F92C4 7F0C4794 000C5843 */ sra $t3, $t4, 1 /* 0F92C8 7F0C4798 004B6823 */ subu $t5, $v0, $t3 /* 0F92CC 7F0C479C 25AE0035 */ addiu $t6, $t5, 0x35 -/* 0F92D0 7F0C47A0 0C001107 */ jal get_video2_settings_txtClipW +/* 0F92D0 7F0C47A0 0C001107 */ jal viGetX /* 0F92D4 7F0C47A4 AFAE00C8 */ sw $t6, 0xc8($sp) /* 0F92D8 7F0C47A8 00028400 */ sll $s0, $v0, 0x10 /* 0F92DC 7F0C47AC 00107C03 */ sra $t7, $s0, 0x10 -/* 0F92E0 7F0C47B0 0C00110B */ jal get_video2_settings_txtClipH +/* 0F92E0 7F0C47B0 0C00110B */ jal viGetY /* 0F92E4 7F0C47B4 01E08025 */ move $s0, $t7 /* 0F92E8 7F0C47B8 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 0F92EC 7F0C47BC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) @@ -3747,11 +3200,11 @@ def_7F0C40C0: /* 0F9824 7F0C4CF4 000E5043 */ sra $t2, $t6, 1 /* 0F9828 7F0C4CF8 004AC023 */ subu $t8, $v0, $t2 /* 0F982C 7F0C4CFC 27090025 */ addiu $t1, $t8, 0x25 -/* 0F9830 7F0C4D00 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9830 7F0C4D00 0C001107 */ jal viGetX /* 0F9834 7F0C4D04 AFA900C8 */ sw $t1, 0xc8($sp) /* 0F9838 7F0C4D08 00028400 */ sll $s0, $v0, 0x10 /* 0F983C 7F0C4D0C 00106403 */ sra $t4, $s0, 0x10 -/* 0F9840 7F0C4D10 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9840 7F0C4D10 0C00110B */ jal viGetY /* 0F9844 7F0C4D14 01808025 */ move $s0, $t4 /* 0F9848 7F0C4D18 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) /* 0F984C 7F0C4D1C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) @@ -3810,11 +3263,11 @@ def_7F0C40C0: /* 0F991C 7F0C4DEC 000C5843 */ sra $t3, $t4, 1 /* 0F9920 7F0C4DF0 004B7823 */ subu $t7, $v0, $t3 /* 0F9924 7F0C4DF4 25ED0035 */ addiu $t5, $t7, 0x35 -/* 0F9928 7F0C4DF8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9928 7F0C4DF8 0C001107 */ jal viGetX /* 0F992C 7F0C4DFC AFAD00C8 */ sw $t5, 0xc8($sp) /* 0F9930 7F0C4E00 00028400 */ sll $s0, $v0, 0x10 /* 0F9934 7F0C4E04 0010CC03 */ sra $t9, $s0, 0x10 -/* 0F9938 7F0C4E08 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9938 7F0C4E08 0C00110B */ jal viGetY /* 0F993C 7F0C4E0C 03208025 */ move $s0, $t9 /* 0F9940 7F0C4E10 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) /* 0F9944 7F0C4E14 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -4042,11 +3495,11 @@ def_7F0C40C0: /* 0F9C9C 7F0C516C 00197043 */ sra $t6, $t9, 1 /* 0F9CA0 7F0C5170 004EC023 */ subu $t8, $v0, $t6 /* 0F9CA4 7F0C5174 270A0025 */ addiu $t2, $t8, 0x25 -/* 0F9CA8 7F0C5178 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CA8 7F0C5178 0C001107 */ jal viGetX /* 0F9CAC 7F0C517C AFAA00C8 */ sw $t2, 0xc8($sp) /* 0F9CB0 7F0C5180 00028400 */ sll $s0, $v0, 0x10 /* 0F9CB4 7F0C5184 00104C03 */ sra $t1, $s0, 0x10 -/* 0F9CB8 7F0C5188 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CB8 7F0C5188 0C00110B */ jal viGetY /* 0F9CBC 7F0C518C 01208025 */ move $s0, $t1 /* 0F9CC0 7F0C5190 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) /* 0F9CC4 7F0C5194 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) @@ -4105,11 +3558,11 @@ def_7F0C40C0: /* 0F9D94 7F0C5264 00096043 */ sra $t4, $t1, 1 /* 0F9D98 7F0C5268 004C7823 */ subu $t7, $v0, $t4 /* 0F9D9C 7F0C526C 25EB0035 */ addiu $t3, $t7, 0x35 -/* 0F9DA0 7F0C5270 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9DA0 7F0C5270 0C001107 */ jal viGetX /* 0F9DA4 7F0C5274 AFAB00C8 */ sw $t3, 0xc8($sp) /* 0F9DA8 7F0C5278 00028400 */ sll $s0, $v0, 0x10 /* 0F9DAC 7F0C527C 00106C03 */ sra $t5, $s0, 0x10 -/* 0F9DB0 7F0C5280 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9DB0 7F0C5280 0C00110B */ jal viGetY /* 0F9DB4 7F0C5284 01A08025 */ move $s0, $t5 /* 0F9DB8 7F0C5288 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 0F9DBC 7F0C528C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -4489,11 +3942,11 @@ def_7F0C40C0: /* 0FA350 7F0C5820 000B7043 */ sra $t6, $t3, 1 /* 0FA354 7F0C5824 004E5023 */ subu $t2, $v0, $t6 /* 0FA358 7F0C5828 25490025 */ addiu $t1, $t2, 0x25 -/* 0FA35C 7F0C582C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA35C 7F0C582C 0C001107 */ jal viGetX /* 0FA360 7F0C5830 AFA900C8 */ sw $t1, 0xc8($sp) /* 0FA364 7F0C5834 00028400 */ sll $s0, $v0, 0x10 /* 0FA368 7F0C5838 00106403 */ sra $t4, $s0, 0x10 -/* 0FA36C 7F0C583C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA36C 7F0C583C 0C00110B */ jal viGetY /* 0FA370 7F0C5840 01808025 */ move $s0, $t4 /* 0FA374 7F0C5844 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0FA378 7F0C5848 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) @@ -4554,11 +4007,11 @@ def_7F0C40C0: /* 0FA44C 7F0C591C 000DC043 */ sra $t8, $t5, 1 /* 0FA450 7F0C5920 03385823 */ subu $t3, $t9, $t8 /* 0FA454 7F0C5924 256A0035 */ addiu $t2, $t3, 0x35 -/* 0FA458 7F0C5928 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA458 7F0C5928 0C001107 */ jal viGetX /* 0FA45C 7F0C592C AFAA00C8 */ sw $t2, 0xc8($sp) /* 0FA460 7F0C5930 00028400 */ sll $s0, $v0, 0x10 /* 0FA464 7F0C5934 00107403 */ sra $t6, $s0, 0x10 -/* 0FA468 7F0C5938 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA468 7F0C5938 0C00110B */ jal viGetY /* 0FA46C 7F0C593C 01C08025 */ move $s0, $t6 /* 0FA470 7F0C5940 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) /* 0FA474 7F0C5944 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -4608,11 +4061,11 @@ def_7F0C40C0: /* 0FA524 7F0C59F4 000E4843 */ sra $t1, $t6, 1 /* 0FA528 7F0C59F8 00496023 */ subu $t4, $v0, $t1 /* 0FA52C 7F0C59FC 258F004B */ addiu $t7, $t4, 0x4b -/* 0FA530 7F0C5A00 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA530 7F0C5A00 0C001107 */ jal viGetX /* 0FA534 7F0C5A04 AFAF00C8 */ sw $t7, 0xc8($sp) /* 0FA538 7F0C5A08 00028400 */ sll $s0, $v0, 0x10 /* 0FA53C 7F0C5A0C 00106C03 */ sra $t5, $s0, 0x10 -/* 0FA540 7F0C5A10 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA540 7F0C5A10 0C00110B */ jal viGetY /* 0FA544 7F0C5A14 01A08025 */ move $s0, $t5 /* 0FA548 7F0C5A18 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 0FA54C 7F0C5A1C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) @@ -4663,11 +4116,11 @@ def_7F0C40C0: /* 0FA5FC 7F0C5ACC 000DC843 */ sra $t9, $t5, 1 /* 0FA600 7F0C5AD0 00595823 */ subu $t3, $v0, $t9 /* 0FA604 7F0C5AD4 25780058 */ addiu $t8, $t3, 0x58 -/* 0FA608 7F0C5AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA608 7F0C5AD8 0C001107 */ jal viGetX /* 0FA60C 7F0C5ADC AFB800C8 */ sw $t8, 0xc8($sp) /* 0FA610 7F0C5AE0 00028400 */ sll $s0, $v0, 0x10 /* 0FA614 7F0C5AE4 00105403 */ sra $t2, $s0, 0x10 -/* 0FA618 7F0C5AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA618 7F0C5AE8 0C00110B */ jal viGetY /* 0FA61C 7F0C5AEC 01408025 */ move $s0, $t2 /* 0FA620 7F0C5AF0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) /* 0FA624 7F0C5AF4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -4729,11 +4182,11 @@ def_7F0C40C0: /* 0FA6FC 7F0C5BCC 8DB929CC */ lw $t9, 0x29cc($t5) /* 0FA700 7F0C5BD0 1720001E */ bnez $t9, .L7F0C5C4C /* 0FA704 7F0C5BD4 00000000 */ nop -/* 0FA708 7F0C5BD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA708 7F0C5BD8 0C001107 */ jal viGetX /* 0FA70C 7F0C5BDC 00000000 */ nop /* 0FA710 7F0C5BE0 00028400 */ sll $s0, $v0, 0x10 /* 0FA714 7F0C5BE4 0010C403 */ sra $t8, $s0, 0x10 -/* 0FA718 7F0C5BE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA718 7F0C5BE8 0C00110B */ jal viGetY /* 0FA71C 7F0C5BEC 03008025 */ move $s0, $t8 /* 0FA720 7F0C5BF0 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) /* 0FA724 7F0C5BF4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) @@ -4759,11 +4212,11 @@ def_7F0C40C0: /* 0FA774 7F0C5C44 1000001A */ b .L7F0C5CB0 /* 0FA778 7F0C5C48 00408825 */ move $s1, $v0 .L7F0C5C4C: -/* 0FA77C 7F0C5C4C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA77C 7F0C5C4C 0C001107 */ jal viGetX /* 0FA780 7F0C5C50 00000000 */ nop /* 0FA784 7F0C5C54 00028400 */ sll $s0, $v0, 0x10 /* 0FA788 7F0C5C58 00104C03 */ sra $t1, $s0, 0x10 -/* 0FA78C 7F0C5C5C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA78C 7F0C5C5C 0C00110B */ jal viGetY /* 0FA790 7F0C5C60 01208025 */ move $s0, $t1 /* 0FA794 7F0C5C64 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) /* 0FA798 7F0C5C68 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) @@ -4819,11 +4272,11 @@ def_7F0C40C0: /* 0FA85C 7F0C5D2C 24010001 */ li $at, 1 /* 0FA860 7F0C5D30 1561001E */ bne $t3, $at, .L7F0C5DAC /* 0FA864 7F0C5D34 00000000 */ nop -/* 0FA868 7F0C5D38 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA868 7F0C5D38 0C001107 */ jal viGetX /* 0FA86C 7F0C5D3C 00000000 */ nop /* 0FA870 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 /* 0FA874 7F0C5D44 00107403 */ sra $t6, $s0, 0x10 -/* 0FA878 7F0C5D48 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA878 7F0C5D48 0C00110B */ jal viGetY /* 0FA87C 7F0C5D4C 01C08025 */ move $s0, $t6 /* 0FA880 7F0C5D50 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) /* 0FA884 7F0C5D54 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) @@ -4849,11 +4302,11 @@ def_7F0C40C0: /* 0FA8D4 7F0C5DA4 1000001A */ b .L7F0C5E10 /* 0FA8D8 7F0C5DA8 00408825 */ move $s1, $v0 .L7F0C5DAC: -/* 0FA8DC 7F0C5DAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA8DC 7F0C5DAC 0C001107 */ jal viGetX /* 0FA8E0 7F0C5DB0 00000000 */ nop /* 0FA8E4 7F0C5DB4 00028400 */ sll $s0, $v0, 0x10 /* 0FA8E8 7F0C5DB8 00106C03 */ sra $t5, $s0, 0x10 -/* 0FA8EC 7F0C5DBC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA8EC 7F0C5DBC 0C00110B */ jal viGetY /* 0FA8F0 7F0C5DC0 01A08025 */ move $s0, $t5 /* 0FA8F4 7F0C5DC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) /* 0FA8F8 7F0C5DC8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) @@ -4990,11 +4443,11 @@ def_7F0C40C0: /* 0FAAE8 7F0C5FB8 01434821 */ addu $t1, $t2, $v1 /* 0FAAEC 7F0C5FBC 000C7843 */ sra $t7, $t4, 1 /* 0FAAF0 7F0C5FC0 012F6823 */ subu $t5, $t1, $t7 -/* 0FAAF4 7F0C5FC4 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAAF4 7F0C5FC4 0C001107 */ jal viGetX /* 0FAAF8 7F0C5FC8 AFAD006C */ sw $t5, 0x6c($sp) /* 0FAAFC 7F0C5FCC 00028400 */ sll $s0, $v0, 0x10 /* 0FAB00 7F0C5FD0 0010CC03 */ sra $t9, $s0, 0x10 -/* 0FAB04 7F0C5FD4 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAB04 7F0C5FD4 0C00110B */ jal viGetY /* 0FAB08 7F0C5FD8 03208025 */ move $s0, $t9 /* 0FAB0C 7F0C5FDC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) /* 0FAB10 7F0C5FE0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) @@ -5031,8 +4484,6 @@ def_7F0C40C0: #ifdef VERSION_JP GLOBAL_ASM( .late_rodata -/*jtbl hacks*/ -.word not_yolt_tld /*D:8005BD00*/ glabel jpt_MP_menu_window_text @@ -5176,11 +4627,11 @@ def_7F0C40C0: /* 0F9A0C 7F0C4E9C 256C0016 */ addiu $t4, $t3, 0x16 /* 0F9A10 7F0C4EA0 1200001E */ beqz $s0, .Ljp7F0C4F1C /* 0F9A14 7F0C4EA4 AFAC00C8 */ sw $t4, 0xc8($sp) -/* 0F9A18 7F0C4EA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A18 7F0C4EA8 0C001107 */ jal viGetX /* 0F9A1C 7F0C4EAC 00000000 */ nop /* 0F9A20 7F0C4EB0 00028400 */ sll $s0, $v0, 0x10 /* 0F9A24 7F0C4EB4 00107403 */ sra $t6, $s0, 0x10 -/* 0F9A28 7F0C4EB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9A28 7F0C4EB8 0C00110B */ jal viGetY /* 0F9A2C 7F0C4EBC 01C08025 */ move $s0, $t6 /* 0F9A30 7F0C4EC0 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 /* 0F9A34 7F0C4EC4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -5206,11 +4657,11 @@ def_7F0C40C0: /* 0F9A84 7F0C4F14 1000001A */ b .Ljp7F0C4F80 /* 0F9A88 7F0C4F18 00408825 */ move $s1, $v0 .Ljp7F0C4F1C: -/* 0F9A8C 7F0C4F1C 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9A8C 7F0C4F1C 0C001107 */ jal viGetX /* 0F9A90 7F0C4F20 00000000 */ nop /* 0F9A94 7F0C4F24 00028400 */ sll $s0, $v0, 0x10 /* 0F9A98 7F0C4F28 00105C03 */ sra $t3, $s0, 0x10 -/* 0F9A9C 7F0C4F2C 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9A9C 7F0C4F2C 0C00110B */ jal viGetY /* 0F9AA0 7F0C4F30 01608025 */ move $s0, $t3 /* 0F9AA4 7F0C4F34 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0F9AA8 7F0C4F38 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) # $t6, 0x8004 @@ -5267,11 +4718,11 @@ def_7F0C40C0: /* 0F9B68 7F0C4FF8 AFAD00C8 */ sw $t5, 0xc8($sp) /* 0F9B6C 7F0C4FFC 15E0001C */ bnez $t7, .Ljp7F0C5070 /* 0F9B70 7F0C5000 00000000 */ nop -/* 0F9B74 7F0C5004 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9B74 7F0C5004 0C001107 */ jal viGetX /* 0F9B78 7F0C5008 00000000 */ nop /* 0F9B7C 7F0C500C 00028400 */ sll $s0, $v0, 0x10 /* 0F9B80 7F0C5010 0010C403 */ sra $t8, $s0, 0x10 -/* 0F9B84 7F0C5014 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9B84 7F0C5014 0C00110B */ jal viGetY /* 0F9B88 7F0C5018 03008025 */ move $s0, $t8 /* 0F9B8C 7F0C501C 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 /* 0F9B90 7F0C5020 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 @@ -5295,11 +4746,11 @@ def_7F0C40C0: /* 0F9BD8 7F0C5068 1000001E */ b .Ljp7F0C50E4 /* 0F9BDC 7F0C506C 00408825 */ move $s1, $v0 .Ljp7F0C5070: -/* 0F9BE0 7F0C5070 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9BE0 7F0C5070 0C001107 */ jal viGetX /* 0F9BE4 7F0C5074 00000000 */ nop /* 0F9BE8 7F0C5078 00028400 */ sll $s0, $v0, 0x10 /* 0F9BEC 7F0C507C 00107403 */ sra $t6, $s0, 0x10 -/* 0F9BF0 7F0C5080 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9BF0 7F0C5080 0C00110B */ jal viGetY /* 0F9BF4 7F0C5084 01C08025 */ move $s0, $t6 /* 0F9BF8 7F0C5088 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) # $t5, 0x8004 /* 0F9BFC 7F0C508C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -5360,11 +4811,11 @@ def_7F0C40C0: /* 0F9CCC 7F0C515C AFB900C8 */ sw $t9, 0xc8($sp) /* 0F9CD0 7F0C5160 1560001C */ bnez $t3, .Ljp7F0C51D4 /* 0F9CD4 7F0C5164 00000000 */ nop -/* 0F9CD8 7F0C5168 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9CD8 7F0C5168 0C001107 */ jal viGetX /* 0F9CDC 7F0C516C 00000000 */ nop /* 0F9CE0 7F0C5170 00028400 */ sll $s0, $v0, 0x10 /* 0F9CE4 7F0C5174 00107403 */ sra $t6, $s0, 0x10 -/* 0F9CE8 7F0C5178 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9CE8 7F0C5178 0C00110B */ jal viGetY /* 0F9CEC 7F0C517C 01C08025 */ move $s0, $t6 /* 0F9CF0 7F0C5180 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0F9CF4 7F0C5184 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -5388,11 +4839,11 @@ def_7F0C40C0: /* 0F9D3C 7F0C51CC 1000001E */ b .Ljp7F0C5248 /* 0F9D40 7F0C51D0 00408825 */ move $s1, $v0 .Ljp7F0C51D4: -/* 0F9D44 7F0C51D4 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9D44 7F0C51D4 0C001107 */ jal viGetX /* 0F9D48 7F0C51D8 00000000 */ nop /* 0F9D4C 7F0C51DC 00028400 */ sll $s0, $v0, 0x10 /* 0F9D50 7F0C51E0 0010C403 */ sra $t8, $s0, 0x10 -/* 0F9D54 7F0C51E4 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9D54 7F0C51E4 0C00110B */ jal viGetY /* 0F9D58 7F0C51E8 03008025 */ move $s0, $t8 /* 0F9D5C 7F0C51EC 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) # $t9, 0x8004 /* 0F9D60 7F0C51F0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) # $t3, 0x8004 @@ -5484,11 +4935,11 @@ def_7F0C40C0: /* 0F9EA4 7F0C5334 0018C843 */ sra $t9, $t8, 1 /* 0F9EA8 7F0C5338 00595823 */ subu $t3, $v0, $t9 /* 0F9EAC 7F0C533C 256E0025 */ addiu $t6, $t3, 0x25 -/* 0F9EB0 7F0C5340 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9EB0 7F0C5340 0C001107 */ jal viGetX /* 0F9EB4 7F0C5344 AFAE00C8 */ sw $t6, 0xc8($sp) /* 0F9EB8 7F0C5348 00028400 */ sll $s0, $v0, 0x10 /* 0F9EBC 7F0C534C 00106C03 */ sra $t5, $s0, 0x10 -/* 0F9EC0 7F0C5350 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9EC0 7F0C5350 0C00110B */ jal viGetY /* 0F9EC4 7F0C5354 01A08025 */ move $s0, $t5 /* 0F9EC8 7F0C5358 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0F9ECC 7F0C535C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -5554,11 +5005,11 @@ def_7F0C40C0: /* 0F9FB4 7F0C5444 00195843 */ sra $t3, $t9, 1 /* 0F9FB8 7F0C5448 004B7023 */ subu $t6, $v0, $t3 /* 0F9FBC 7F0C544C 25CD0035 */ addiu $t5, $t6, 0x35 -/* 0F9FC0 7F0C5450 0C001107 */ jal get_video2_settings_txtClipW +/* 0F9FC0 7F0C5450 0C001107 */ jal viGetX /* 0F9FC4 7F0C5454 AFAD00C8 */ sw $t5, 0xc8($sp) /* 0F9FC8 7F0C5458 00028400 */ sll $s0, $v0, 0x10 /* 0F9FCC 7F0C545C 00107C03 */ sra $t7, $s0, 0x10 -/* 0F9FD0 7F0C5460 0C00110B */ jal get_video2_settings_txtClipH +/* 0F9FD0 7F0C5460 0C00110B */ jal viGetY /* 0F9FD4 7F0C5464 01E08025 */ move $s0, $t7 /* 0F9FD8 7F0C5468 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0F9FDC 7F0C546C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 @@ -5924,11 +5375,11 @@ def_7F0C40C0: /* 0FA514 7F0C59A4 000B6843 */ sra $t5, $t3, 1 /* 0FA518 7F0C59A8 004D7823 */ subu $t7, $v0, $t5 /* 0FA51C 7F0C59AC 25EE0025 */ addiu $t6, $t7, 0x25 -/* 0FA520 7F0C59B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA520 7F0C59B0 0C001107 */ jal viGetX /* 0FA524 7F0C59B4 AFAE00C8 */ sw $t6, 0xc8($sp) /* 0FA528 7F0C59B8 00028400 */ sll $s0, $v0, 0x10 /* 0FA52C 7F0C59BC 0010C403 */ sra $t8, $s0, 0x10 -/* 0FA530 7F0C59C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA530 7F0C59C0 0C00110B */ jal viGetY /* 0FA534 7F0C59C4 03008025 */ move $s0, $t8 /* 0FA538 7F0C59C8 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0FA53C 7F0C59CC 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) # $t9, 0x8004 @@ -5987,11 +5438,11 @@ def_7F0C40C0: /* 0FA60C 7F0C5A9C 00195843 */ sra $t3, $t9, 1 /* 0FA610 7F0C5AA0 004B6823 */ subu $t5, $v0, $t3 /* 0FA614 7F0C5AA4 25AF0035 */ addiu $t7, $t5, 0x35 -/* 0FA618 7F0C5AA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA618 7F0C5AA8 0C001107 */ jal viGetX /* 0FA61C 7F0C5AAC AFAF00C8 */ sw $t7, 0xc8($sp) /* 0FA620 7F0C5AB0 00028400 */ sll $s0, $v0, 0x10 /* 0FA624 7F0C5AB4 0010C403 */ sra $t8, $s0, 0x10 -/* 0FA628 7F0C5AB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA628 7F0C5AB8 0C00110B */ jal viGetY /* 0FA62C 7F0C5ABC 03008025 */ move $s0, $t8 /* 0FA630 7F0C5AC0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 /* 0FA634 7F0C5AC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 @@ -6219,11 +5670,11 @@ def_7F0C40C0: /* 0FA98C 7F0C5E1C 00195843 */ sra $t3, $t9, 1 /* 0FA990 7F0C5E20 004B6823 */ subu $t5, $v0, $t3 /* 0FA994 7F0C5E24 25AF0025 */ addiu $t7, $t5, 0x25 -/* 0FA998 7F0C5E28 0C001107 */ jal get_video2_settings_txtClipW +/* 0FA998 7F0C5E28 0C001107 */ jal viGetX /* 0FA99C 7F0C5E2C AFAF00C8 */ sw $t7, 0xc8($sp) /* 0FA9A0 7F0C5E30 00028400 */ sll $s0, $v0, 0x10 /* 0FA9A4 7F0C5E34 00107403 */ sra $t6, $s0, 0x10 -/* 0FA9A8 7F0C5E38 0C00110B */ jal get_video2_settings_txtClipH +/* 0FA9A8 7F0C5E38 0C00110B */ jal viGetY /* 0FA9AC 7F0C5E3C 01C08025 */ move $s0, $t6 /* 0FA9B0 7F0C5E40 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 /* 0FA9B4 7F0C5E44 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 @@ -6282,11 +5733,11 @@ def_7F0C40C0: /* 0FAA84 7F0C5F14 000CC843 */ sra $t9, $t4, 1 /* 0FAA88 7F0C5F18 00595823 */ subu $t3, $v0, $t9 /* 0FAA8C 7F0C5F1C 256D0035 */ addiu $t5, $t3, 0x35 -/* 0FAA90 7F0C5F20 0C001107 */ jal get_video2_settings_txtClipW +/* 0FAA90 7F0C5F20 0C001107 */ jal viGetX /* 0FAA94 7F0C5F24 AFAD00C8 */ sw $t5, 0xc8($sp) /* 0FAA98 7F0C5F28 00028400 */ sll $s0, $v0, 0x10 /* 0FAA9C 7F0C5F2C 00107403 */ sra $t6, $s0, 0x10 -/* 0FAAA0 7F0C5F30 0C00110B */ jal get_video2_settings_txtClipH +/* 0FAAA0 7F0C5F30 0C00110B */ jal viGetY /* 0FAAA4 7F0C5F34 01C08025 */ move $s0, $t6 /* 0FAAA8 7F0C5F38 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 /* 0FAAAC 7F0C5F3C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 @@ -6666,11 +6117,11 @@ def_7F0C40C0: /* 0FB040 7F0C64D0 000CC843 */ sra $t9, $t4, 1 /* 0FB044 7F0C64D4 00596823 */ subu $t5, $v0, $t9 /* 0FB048 7F0C64D8 25AE0025 */ addiu $t6, $t5, 0x25 -/* 0FB04C 7F0C64DC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB04C 7F0C64DC 0C001107 */ jal viGetX /* 0FB050 7F0C64E0 AFAE00C8 */ sw $t6, 0xc8($sp) /* 0FB054 7F0C64E4 00028400 */ sll $s0, $v0, 0x10 /* 0FB058 7F0C64E8 00105C03 */ sra $t3, $s0, 0x10 -/* 0FB05C 7F0C64EC 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB05C 7F0C64EC 0C00110B */ jal viGetY /* 0FB060 7F0C64F0 01608025 */ move $s0, $t3 /* 0FB064 7F0C64F4 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 /* 0FB068 7F0C64F8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 @@ -6731,11 +6182,11 @@ def_7F0C40C0: /* 0FB13C 7F0C65CC 000D5843 */ sra $t3, $t5, 1 /* 0FB140 7F0C65D0 032B7023 */ subu $t6, $t9, $t3 /* 0FB144 7F0C65D4 25CF0035 */ addiu $t7, $t6, 0x35 -/* 0FB148 7F0C65D8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB148 7F0C65D8 0C001107 */ jal viGetX /* 0FB14C 7F0C65DC AFAF00C8 */ sw $t7, 0xc8($sp) /* 0FB150 7F0C65E0 00028400 */ sll $s0, $v0, 0x10 /* 0FB154 7F0C65E4 0010C403 */ sra $t8, $s0, 0x10 -/* 0FB158 7F0C65E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB158 7F0C65E8 0C00110B */ jal viGetY /* 0FB15C 7F0C65EC 03008025 */ move $s0, $t8 /* 0FB160 7F0C65F0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0FB164 7F0C65F4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -6785,11 +6236,11 @@ def_7F0C40C0: /* 0FB214 7F0C66A4 000DC843 */ sra $t9, $t5, 1 /* 0FB218 7F0C66A8 00595823 */ subu $t3, $v0, $t9 /* 0FB21C 7F0C66AC 256E004B */ addiu $t6, $t3, 0x4b -/* 0FB220 7F0C66B0 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB220 7F0C66B0 0C001107 */ jal viGetX /* 0FB224 7F0C66B4 AFAE00C8 */ sw $t6, 0xc8($sp) /* 0FB228 7F0C66B8 00028400 */ sll $s0, $v0, 0x10 /* 0FB22C 7F0C66BC 0010C403 */ sra $t8, $s0, 0x10 -/* 0FB230 7F0C66C0 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB230 7F0C66C0 0C00110B */ jal viGetY /* 0FB234 7F0C66C4 03008025 */ move $s0, $t8 /* 0FB238 7F0C66C8 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 /* 0FB23C 7F0C66CC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 @@ -6840,11 +6291,11 @@ def_7F0C40C0: /* 0FB2EC 7F0C677C 000C6843 */ sra $t5, $t4, 1 /* 0FB2F0 7F0C6780 004DC823 */ subu $t9, $v0, $t5 /* 0FB2F4 7F0C6784 272B0058 */ addiu $t3, $t9, 0x58 -/* 0FB2F8 7F0C6788 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB2F8 7F0C6788 0C001107 */ jal viGetX /* 0FB2FC 7F0C678C AFAB00C8 */ sw $t3, 0xc8($sp) /* 0FB300 7F0C6790 00028400 */ sll $s0, $v0, 0x10 /* 0FB304 7F0C6794 0010C403 */ sra $t8, $s0, 0x10 -/* 0FB308 7F0C6798 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB308 7F0C6798 0C00110B */ jal viGetY /* 0FB30C 7F0C679C 03008025 */ move $s0, $t8 /* 0FB310 7F0C67A0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) # $t6, 0x8004 /* 0FB314 7F0C67A4 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -6906,11 +6357,11 @@ def_7F0C40C0: /* 0FB3EC 7F0C687C 8DD829CC */ lw $t8, 0x29cc($t6) /* 0FB3F0 7F0C6880 1700001E */ bnez $t8, .Ljp7F0C68FC /* 0FB3F4 7F0C6884 00000000 */ nop -/* 0FB3F8 7F0C6888 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB3F8 7F0C6888 0C001107 */ jal viGetX /* 0FB3FC 7F0C688C 00000000 */ nop /* 0FB400 7F0C6890 00028400 */ sll $s0, $v0, 0x10 /* 0FB404 7F0C6894 00107C03 */ sra $t7, $s0, 0x10 -/* 0FB408 7F0C6898 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB408 7F0C6898 0C00110B */ jal viGetY /* 0FB40C 7F0C689C 01E08025 */ move $s0, $t7 /* 0FB410 7F0C68A0 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) # $t4, 0x8004 /* 0FB414 7F0C68A4 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) # $t5, 0x8004 @@ -6936,11 +6387,11 @@ def_7F0C40C0: /* 0FB464 7F0C68F4 1000001A */ b .Ljp7F0C6960 /* 0FB468 7F0C68F8 00408825 */ move $s1, $v0 .Ljp7F0C68FC: -/* 0FB46C 7F0C68FC 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB46C 7F0C68FC 0C001107 */ jal viGetX /* 0FB470 7F0C6900 00000000 */ nop /* 0FB474 7F0C6904 00028400 */ sll $s0, $v0, 0x10 /* 0FB478 7F0C6908 00107403 */ sra $t6, $s0, 0x10 -/* 0FB47C 7F0C690C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB47C 7F0C690C 0C00110B */ jal viGetY /* 0FB480 7F0C6910 01C08025 */ move $s0, $t6 /* 0FB484 7F0C6914 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 /* 0FB488 7F0C6918 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) # $t7, 0x8004 @@ -6996,11 +6447,11 @@ def_7F0C40C0: /* 0FB54C 7F0C69DC 24010001 */ li $at, 1 /* 0FB550 7F0C69E0 1561001E */ bne $t3, $at, .Ljp7F0C6A5C /* 0FB554 7F0C69E4 00000000 */ nop -/* 0FB558 7F0C69E8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB558 7F0C69E8 0C001107 */ jal viGetX /* 0FB55C 7F0C69EC 00000000 */ nop /* 0FB560 7F0C69F0 00028400 */ sll $s0, $v0, 0x10 /* 0FB564 7F0C69F4 0010C403 */ sra $t8, $s0, 0x10 -/* 0FB568 7F0C69F8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB568 7F0C69F8 0C00110B */ jal viGetY /* 0FB56C 7F0C69FC 03008025 */ move $s0, $t8 /* 0FB570 7F0C6A00 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) # $t7, 0x8004 /* 0FB574 7F0C6A04 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 @@ -7026,11 +6477,11 @@ def_7F0C40C0: /* 0FB5C4 7F0C6A54 1000001A */ b .Ljp7F0C6AC0 /* 0FB5C8 7F0C6A58 00408825 */ move $s1, $v0 .Ljp7F0C6A5C: -/* 0FB5CC 7F0C6A5C 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB5CC 7F0C6A5C 0C001107 */ jal viGetX /* 0FB5D0 7F0C6A60 00000000 */ nop /* 0FB5D4 7F0C6A64 00028400 */ sll $s0, $v0, 0x10 /* 0FB5D8 7F0C6A68 00107403 */ sra $t6, $s0, 0x10 -/* 0FB5DC 7F0C6A6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB5DC 7F0C6A6C 0C00110B */ jal viGetY /* 0FB5E0 7F0C6A70 01C08025 */ move $s0, $t6 /* 0FB5E4 7F0C6A74 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) # $t3, 0x8004 /* 0FB5E8 7F0C6A78 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) # $t8, 0x8004 @@ -7180,11 +6631,11 @@ def_7F0C40C0: /* 0FB80C 7F0C6C9C AFA00014 */ sw $zero, 0x14($sp) /* 0FB810 7F0C6CA0 0FC2B6F1 */ jal microcode_constructor_related_to_menus /* 0FB814 7F0C6CA4 2545FFFF */ addiu $a1, $t2, -1 -/* 0FB818 7F0C6CA8 0C001107 */ jal get_video2_settings_txtClipW +/* 0FB818 7F0C6CA8 0C001107 */ jal viGetX /* 0FB81C 7F0C6CAC 00408825 */ move $s1, $v0 /* 0FB820 7F0C6CB0 00028400 */ sll $s0, $v0, 0x10 /* 0FB824 7F0C6CB4 00105C03 */ sra $t3, $s0, 0x10 -/* 0FB828 7F0C6CB8 0C00110B */ jal get_video2_settings_txtClipH +/* 0FB828 7F0C6CB8 0C00110B */ jal viGetY /* 0FB82C 7F0C6CBC 01608025 */ move $s0, $t3 /* 0FB830 7F0C6CC0 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) # $t8, 0x8004 /* 0FB834 7F0C6CC4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) # $t4, 0x8004 @@ -7218,59 +6669,2189 @@ def_7F0C40C0: ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata + +/*D:8005BD00*/ +glabel jpt_MP_menu_window_text +.word text_play +.word text_play +.word text_play +.word text_play +.word text_pause_unpause +.word text_exit +.word text_exit +.word text_blank + +.text +glabel mp_watch_menu_display +/* 0F8B54 7F0C4024 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* 0F8B58 7F0C4028 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F8B5C 7F0C402C AFB10038 */ sw $s1, 0x38($sp) +/* 0F8B60 7F0C4030 00808825 */ move $s1, $a0 +/* 0F8B64 7F0C4034 0FC26C54 */ jal get_cur_playernum +/* 0F8B68 7F0C4038 AFB00034 */ sw $s0, 0x34($sp) +/* 0F8B6C 7F0C403C 0FC26919 */ jal getPlayerCount +/* 0F8B70 7F0C4040 AFA200D4 */ sw $v0, 0xd4($sp) +/* 0F8B74 7F0C4044 24010001 */ li $at, 1 +/* 0F8B78 7F0C4048 00404025 */ move $t0, $v0 +/* 0F8B7C 7F0C404C 14410003 */ bne $v0, $at, .L7F0C405C +/* 0F8B80 7F0C4050 00008025 */ move $s0, $zero +/* 0F8B84 7F0C4054 100007F7 */ b .L7F0C6034 +/* 0F8B88 7F0C4058 02201025 */ move $v0, $s1 +.L7F0C405C: +/* 0F8B8C 7F0C405C 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F8B90 7F0C4060 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F8B94 7F0C4064 02202025 */ move $a0, $s1 +/* 0F8B98 7F0C4068 8C6E29C4 */ lw $t6, 0x29c4($v1) +/* 0F8B9C 7F0C406C 51C0076D */ beql $t6, $zero, .L7F0C5E24 +/* 0F8BA0 7F0C4070 8C6E00D8 */ lw $t6, 0xd8($v1) +/* 0F8BA4 7F0C4074 0FC2B366 */ jal microcode_constructor +/* 0F8BA8 7F0C4078 AFA800D0 */ sw $t0, 0xd0($sp) +/* 0F8BAC 7F0C407C 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F8BB0 7F0C4080 24010002 */ li $at, 2 +/* 0F8BB4 7F0C4084 00408825 */ move $s1, $v0 +/* 0F8BB8 7F0C4088 15E10004 */ bne $t7, $at, .L7F0C409C +/* 0F8BBC 7F0C408C 3C198008 */ lui $t9, %hi(pPlayer) +/* 0F8BC0 7F0C4090 24180050 */ li $t8, 80 +/* 0F8BC4 7F0C4094 10000002 */ b .L7F0C40A0 +/* 0F8BC8 7F0C4098 AFB800A8 */ sw $t8, 0xa8($sp) +.L7F0C409C: +/* 0F8BCC 7F0C409C AFA000A8 */ sw $zero, 0xa8($sp) +.L7F0C40A0: +/* 0F8BD0 7F0C40A0 8F39A0B0 */ lw $t9, %lo(pPlayer)($t9) +/* 0F8BD4 7F0C40A4 8F2929C8 */ lw $t1, 0x29c8($t9) +/* 0F8BD8 7F0C40A8 2D210008 */ sltiu $at, $t1, 8 +/* 0F8BDC 7F0C40AC 10200038 */ beqz $at, .L7F0C4190 +/* 0F8BE0 7F0C40B0 00094880 */ sll $t1, $t1, 2 +/* 0F8BE4 7F0C40B4 3C018006 */ lui $at, %hi(jpt_MP_menu_window_text) +/* 0F8BE8 7F0C40B8 00290821 */ addu $at, $at, $t1 +/* 0F8BEC 7F0C40BC 8C29BD00 */ lw $t1, %lo(jpt_MP_menu_window_text)($at) +/* 0F8BF0 7F0C40C0 01200008 */ jr $t1 +/* 0F8BF4 7F0C40C4 00000000 */ nop +text_play: +/* 0F8BF8 7F0C40C8 3C0A8009 */ lui $t2, %hi(is_gameover_flag) +/* 0F8BFC 7F0C40CC 8D4AC704 */ lw $t2, %lo(is_gameover_flag)($t2) +/* 0F8C00 7F0C40D0 3C0B8009 */ lui $t3, %hi(time_trigger_alt_gameover_msg) +/* 0F8C04 7F0C40D4 15400005 */ bnez $t2, .L7F0C40EC +/* 0F8C08 7F0C40D8 00000000 */ nop +/* 0F8C0C 7F0C40DC 0FC30776 */ jal get_textptr_for_textID +/* 0F8C10 7F0C40E0 3404A015 */ li $a0, 40981 +/* 0F8C14 7F0C40E4 1000002A */ b .L7F0C4190 +/* 0F8C18 7F0C40E8 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C40EC: +/* 0F8C1C 7F0C40EC 8D6BC710 */ lw $t3, %lo(time_trigger_alt_gameover_msg)($t3) +/* 0F8C20 7F0C40F0 11600005 */ beqz $t3, .L7F0C4108 +/* 0F8C24 7F0C40F4 00000000 */ nop +/* 0F8C28 7F0C40F8 0FC30776 */ jal get_textptr_for_textID +/* 0F8C2C 7F0C40FC 3404A016 */ li $a0, 40982 +/* 0F8C30 7F0C4100 10000023 */ b .L7F0C4190 +/* 0F8C34 7F0C4104 AFA200A4 */ sw $v0, 0xa4($sp) +.L7F0C4108: +/* 0F8C38 7F0C4108 0FC30776 */ jal get_textptr_for_textID +/* 0F8C3C 7F0C410C 3404A017 */ li $a0, 40983 +/* 0F8C40 7F0C4110 1000001F */ b .L7F0C4190 +/* 0F8C44 7F0C4114 AFA200A4 */ sw $v0, 0xa4($sp) +text_blank: +/* 0F8C48 7F0C4118 3C0C8006 */ lui $t4, %hi(ascii_MP_watch_menu_BLANK) +/* 0F8C4C 7F0C411C 258CBC24 */ addiu $t4, %lo(ascii_MP_watch_menu_BLANK) # addiu $t4, $t4, -0x43dc +/* 0F8C50 7F0C4120 1000001B */ b .L7F0C4190 +/* 0F8C54 7F0C4124 AFAC00A4 */ sw $t4, 0xa4($sp) +text_pause_unpause: +/* 0F8C58 7F0C4128 3C0D8009 */ lui $t5, %hi(is_paused) +/* 0F8C5C 7F0C412C 8DADC718 */ lw $t5, %lo(is_paused)($t5) +/* 0F8C60 7F0C4130 11A0000B */ beqz $t5, .L7F0C4160 +/* 0F8C64 7F0C4134 00000000 */ nop +/* 0F8C68 7F0C4138 0FC30776 */ jal get_textptr_for_textID +/* 0F8C6C 7F0C413C 3404A018 */ li $a0, 40984 +/* 0F8C70 7F0C4140 0FC26C54 */ jal get_cur_playernum +/* 0F8C74 7F0C4144 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8C78 7F0C4148 3C0E8009 */ lui $t6, %hi(who_paused) +/* 0F8C7C 7F0C414C 8DCEC71C */ lw $t6, %lo(who_paused)($t6) +/* 0F8C80 7F0C4150 144E000F */ bne $v0, $t6, .L7F0C4190 +/* 0F8C84 7F0C4154 00000000 */ nop +/* 0F8C88 7F0C4158 1000000D */ b .L7F0C4190 +/* 0F8C8C 7F0C415C 24100001 */ li $s0, 1 +.L7F0C4160: +/* 0F8C90 7F0C4160 0FC30776 */ jal get_textptr_for_textID +/* 0F8C94 7F0C4164 3404A019 */ li $a0, 40985 +/* 0F8C98 7F0C4168 10000009 */ b .L7F0C4190 +/* 0F8C9C 7F0C416C AFA200A4 */ sw $v0, 0xa4($sp) +text_exit: +/* 0F8CA0 7F0C4170 0FC30776 */ jal get_textptr_for_textID +/* 0F8CA4 7F0C4174 3404A01A */ li $a0, 40986 +/* 0F8CA8 7F0C4178 0C001145 */ jal viGetViewLeft +/* 0F8CAC 7F0C417C AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F8CB0 7F0C4180 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F8CB4 7F0C4184 004F2021 */ addu $a0, $v0, $t7 +/* 0F8CB8 7F0C4188 24840041 */ addiu $a0, $a0, 0x41 +/* 0F8CBC 7F0C418C AFA400CC */ sw $a0, 0xcc($sp) +def_7F0C40C0: +.L7F0C4190: +/* 0F8CC0 7F0C4190 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F8CC4 7F0C4194 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F8CC8 7F0C4198 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F8CCC 7F0C419C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F8CD0 7F0C41A0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F8CD4 7F0C41A4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F8CD8 7F0C41A8 8FA600A4 */ lw $a2, 0xa4($sp) +/* 0F8CDC 7F0C41AC AFA00014 */ sw $zero, 0x14($sp) +/* 0F8CE0 7F0C41B0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F8CE4 7F0C41B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8CE8 7F0C41B8 0C001145 */ jal viGetViewLeft +/* 0F8CEC 7F0C41BC 00000000 */ nop +/* 0F8CF0 7F0C41C0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F8CF4 7F0C41C4 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F8CF8 7F0C41C8 00594821 */ addu $t1, $v0, $t9 +/* 0F8CFC 7F0C41CC 000A5843 */ sra $t3, $t2, 1 +/* 0F8D00 7F0C41D0 012B2023 */ subu $a0, $t1, $t3 +/* 0F8D04 7F0C41D4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F8D08 7F0C41D8 0C001149 */ jal viGetViewTop +/* 0F8D0C 7F0C41DC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8D10 7F0C41E0 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F8D14 7F0C41E4 000C6843 */ sra $t5, $t4, 1 +/* 0F8D18 7F0C41E8 004D7023 */ subu $t6, $v0, $t5 +/* 0F8D1C 7F0C41EC 25CF0016 */ addiu $t7, $t6, 0x16 +/* 0F8D20 7F0C41F0 1200001E */ beqz $s0, .L7F0C426C +/* 0F8D24 7F0C41F4 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0F8D28 7F0C41F8 0C001107 */ jal viGetX +/* 0F8D2C 7F0C41FC 00000000 */ nop +/* 0F8D30 7F0C4200 00028400 */ sll $s0, $v0, 0x10 +/* 0F8D34 7F0C4204 0010C403 */ sra $t8, $s0, 0x10 +/* 0F8D38 7F0C4208 0C00110B */ jal viGetY +/* 0F8D3C 7F0C420C 03008025 */ move $s0, $t8 +/* 0F8D40 7F0C4210 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F8D44 7F0C4214 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F8D48 7F0C4218 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F8D4C 7F0C421C 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F8D50 7F0C4220 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0F8D54 7F0C4224 3C0B0070 */ lui $t3, (0x007000A0 >> 16) # lui $t3, 0x70 +/* 0F8D58 7F0C4228 356B00A0 */ ori $t3, (0x007000A0 & 0xFFFF) # ori $t3, $t3, 0xa0 +/* 0F8D5C 7F0C422C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0F8D60 7F0C4230 AFA90018 */ sw $t1, 0x18($sp) +/* 0F8D64 7F0C4234 AFAB001C */ sw $t3, 0x1c($sp) +/* 0F8D68 7F0C4238 02202025 */ move $a0, $s1 +/* 0F8D6C 7F0C423C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8D70 7F0C4240 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8D74 7F0C4244 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8D78 7F0C4248 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8D7C 7F0C424C AFA20024 */ sw $v0, 0x24($sp) +/* 0F8D80 7F0C4250 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8D84 7F0C4254 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8D88 7F0C4258 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F8D8C 7F0C425C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8D90 7F0C4260 AFB90010 */ sw $t9, 0x10($sp) +/* 0F8D94 7F0C4264 1000001A */ b .L7F0C42D0 +/* 0F8D98 7F0C4268 00408825 */ move $s1, $v0 +.L7F0C426C: +/* 0F8D9C 7F0C426C 0C001107 */ jal viGetX +/* 0F8DA0 7F0C4270 00000000 */ nop +/* 0F8DA4 7F0C4274 00028400 */ sll $s0, $v0, 0x10 +/* 0F8DA8 7F0C4278 00106403 */ sra $t4, $s0, 0x10 +/* 0F8DAC 7F0C427C 0C00110B */ jal viGetY +/* 0F8DB0 7F0C4280 01808025 */ move $s0, $t4 +/* 0F8DB4 7F0C4284 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0F8DB8 7F0C4288 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) +/* 0F8DBC 7F0C428C 8DCE0EAC */ lw $t6, %lo(ptrFirstFontTableSmall)($t6) +/* 0F8DC0 7F0C4290 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0F8DC4 7F0C4294 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0F8DC8 7F0C4298 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0F8DCC 7F0C429C AFAF0018 */ sw $t7, 0x18($sp) +/* 0F8DD0 7F0C42A0 02202025 */ move $a0, $s1 +/* 0F8DD4 7F0C42A4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8DD8 7F0C42A8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8DDC 7F0C42AC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F8DE0 7F0C42B0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8DE4 7F0C42B4 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8DE8 7F0C42B8 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8DEC 7F0C42BC AFA00028 */ sw $zero, 0x28($sp) +/* 0F8DF0 7F0C42C0 AFAE0014 */ sw $t6, 0x14($sp) +/* 0F8DF4 7F0C42C4 0FC2B6AF */ jal en_text_write_stuff +/* 0F8DF8 7F0C42C8 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F8DFC 7F0C42CC 00408825 */ move $s1, $v0 +.L7F0C42D0: +/* 0F8E00 7F0C42D0 0FC307A3 */ jal check_can_advance_left_on_mpmenu +/* 0F8E04 7F0C42D4 00000000 */ nop +/* 0F8E08 7F0C42D8 10400056 */ beqz $v0, .L7F0C4434 +/* 0F8E0C 7F0C42DC 00000000 */ nop +/* 0F8E10 7F0C42E0 0C001145 */ jal viGetViewLeft +/* 0F8E14 7F0C42E4 00000000 */ nop +/* 0F8E18 7F0C42E8 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8E1C 7F0C42EC 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8E20 7F0C42F0 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8E24 7F0C42F4 2418000A */ li $t8, 10 +/* 0F8E28 7F0C42F8 50600004 */ beql $v1, $zero, .L7F0C430C +/* 0F8E2C 7F0C42FC AFA00050 */ sw $zero, 0x50($sp) +/* 0F8E30 7F0C4300 10000002 */ b .L7F0C430C +/* 0F8E34 7F0C4304 AFB80050 */ sw $t8, 0x50($sp) +/* 0F8E38 7F0C4308 AFA00050 */ sw $zero, 0x50($sp) +.L7F0C430C: +/* 0F8E3C 7F0C430C 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F8E40 7F0C4310 8FAC0050 */ lw $t4, 0x50($sp) +/* 0F8E44 7F0C4314 00195403 */ sra $t2, $t9, 0x10 +/* 0F8E48 7F0C4318 01495821 */ addu $t3, $t2, $t1 +/* 0F8E4C 7F0C431C 016C2023 */ subu $a0, $t3, $t4 +/* 0F8E50 7F0C4320 24840028 */ addiu $a0, $a0, 0x28 +/* 0F8E54 7F0C4324 10600003 */ beqz $v1, .L7F0C4334 +/* 0F8E58 7F0C4328 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8E5C 7F0C432C 2484FFF8 */ addiu $a0, $a0, -8 +/* 0F8E60 7F0C4330 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4334: +/* 0F8E64 7F0C4334 0C001149 */ jal viGetViewTop +/* 0F8E68 7F0C4338 00000000 */ nop +/* 0F8E6C 7F0C433C 3C0E8009 */ lui $t6, %hi(dword_CODE_bss_8008C708) +/* 0F8E70 7F0C4340 8DCEC708 */ lw $t6, %lo(dword_CODE_bss_8008C708)($t6) +/* 0F8E74 7F0C4344 244D0016 */ addiu $t5, $v0, 0x16 +/* 0F8E78 7F0C4348 AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F8E7C 7F0C434C 15C0001C */ bnez $t6, .L7F0C43C0 +/* 0F8E80 7F0C4350 00000000 */ nop +/* 0F8E84 7F0C4354 0C001107 */ jal viGetX +/* 0F8E88 7F0C4358 00000000 */ nop +/* 0F8E8C 7F0C435C 00028400 */ sll $s0, $v0, 0x10 +/* 0F8E90 7F0C4360 00107C03 */ sra $t7, $s0, 0x10 +/* 0F8E94 7F0C4364 0C00110B */ jal viGetY +/* 0F8E98 7F0C4368 01E08025 */ move $s0, $t7 +/* 0F8E9C 7F0C436C 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0F8EA0 7F0C4370 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F8EA4 7F0C4374 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F8EA8 7F0C4378 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0F8EAC 7F0C437C 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F8EB0 7F0C4380 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F8EB4 7F0C4384 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8EB8 7F0C4388 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8EBC 7F0C438C AFAA0018 */ sw $t2, 0x18($sp) +/* 0F8EC0 7F0C4390 02202025 */ move $a0, $s1 +/* 0F8EC4 7F0C4394 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8EC8 7F0C4398 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8ECC 7F0C439C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F8ED0 7F0C43A0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F8ED4 7F0C43A4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F8ED8 7F0C43A8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F8EDC 7F0C43AC AFB90014 */ sw $t9, 0x14($sp) +/* 0F8EE0 7F0C43B0 0FC2B6AF */ jal en_text_write_stuff +/* 0F8EE4 7F0C43B4 AFB80010 */ sw $t8, 0x10($sp) +/* 0F8EE8 7F0C43B8 1000001E */ b .L7F0C4434 +/* 0F8EEC 7F0C43BC 00408825 */ move $s1, $v0 +.L7F0C43C0: +/* 0F8EF0 7F0C43C0 0C001107 */ jal viGetX +/* 0F8EF4 7F0C43C4 00000000 */ nop +/* 0F8EF8 7F0C43C8 00028400 */ sll $s0, $v0, 0x10 +/* 0F8EFC 7F0C43CC 00104C03 */ sra $t1, $s0, 0x10 +/* 0F8F00 7F0C43D0 0C00110B */ jal viGetY +/* 0F8F04 7F0C43D4 01208025 */ move $s0, $t1 +/* 0F8F08 7F0C43D8 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F8F0C 7F0C43DC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F8F10 7F0C43E0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F8F14 7F0C43E4 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F8F18 7F0C43E8 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0F8F1C 7F0C43EC 3C0E0070 */ lui $t6, (0x007000A0 >> 16) # lui $t6, 0x70 +/* 0F8F20 7F0C43F0 35CE00A0 */ ori $t6, (0x007000A0 & 0xFFFF) # ori $t6, $t6, 0xa0 +/* 0F8F24 7F0C43F4 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0F8F28 7F0C43F8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_left_chevron) +/* 0F8F2C 7F0C43FC 24E7BC28 */ addiu $a3, %lo(ascii_MP_watch_menu_left_chevron) # addiu $a3, $a3, -0x43d8 +/* 0F8F30 7F0C4400 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F8F34 7F0C4404 AFAE001C */ sw $t6, 0x1c($sp) +/* 0F8F38 7F0C4408 02202025 */ move $a0, $s1 +/* 0F8F3C 7F0C440C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F8F40 7F0C4410 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F8F44 7F0C4414 AFB00020 */ sw $s0, 0x20($sp) +/* 0F8F48 7F0C4418 AFA20024 */ sw $v0, 0x24($sp) +/* 0F8F4C 7F0C441C AFA00028 */ sw $zero, 0x28($sp) +/* 0F8F50 7F0C4420 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F8F54 7F0C4424 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F8F58 7F0C4428 0FC2B9BB */ jal jp_text_write_stuff +/* 0F8F5C 7F0C442C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F8F60 7F0C4430 00408825 */ move $s1, $v0 +.L7F0C4434: +/* 0F8F64 7F0C4434 0FC30788 */ jal check_can_advance_right_on_mpmenu +/* 0F8F68 7F0C4438 00000000 */ nop +/* 0F8F6C 7F0C443C 10400056 */ beqz $v0, .L7F0C4598 +/* 0F8F70 7F0C4440 00000000 */ nop +/* 0F8F74 7F0C4444 0C001145 */ jal viGetViewLeft +/* 0F8F78 7F0C4448 00000000 */ nop +/* 0F8F7C 7F0C444C 3C038009 */ lui $v1, %hi(is_gameover_flag) +/* 0F8F80 7F0C4450 8C63C704 */ lw $v1, %lo(is_gameover_flag)($v1) +/* 0F8F84 7F0C4454 0002CC00 */ sll $t9, $v0, 0x10 +/* 0F8F88 7F0C4458 240F000A */ li $t7, 10 +/* 0F8F8C 7F0C445C 50600004 */ beql $v1, $zero, .L7F0C4470 +/* 0F8F90 7F0C4460 AFA00050 */ sw $zero, 0x50($sp) +/* 0F8F94 7F0C4464 10000002 */ b .L7F0C4470 +/* 0F8F98 7F0C4468 AFAF0050 */ sw $t7, 0x50($sp) +/* 0F8F9C 7F0C446C AFA00050 */ sw $zero, 0x50($sp) +.L7F0C4470: +/* 0F8FA0 7F0C4470 8FB80050 */ lw $t8, 0x50($sp) +/* 0F8FA4 7F0C4474 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F8FA8 7F0C4478 00195403 */ sra $t2, $t9, 0x10 +/* 0F8FAC 7F0C447C 030A4821 */ addu $t1, $t8, $t2 +/* 0F8FB0 7F0C4480 012B2021 */ addu $a0, $t1, $t3 +/* 0F8FB4 7F0C4484 24840070 */ addiu $a0, $a0, 0x70 +/* 0F8FB8 7F0C4488 10600003 */ beqz $v1, .L7F0C4498 +/* 0F8FBC 7F0C448C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F8FC0 7F0C4490 24840008 */ addiu $a0, $a0, 8 +/* 0F8FC4 7F0C4494 AFA400CC */ sw $a0, 0xcc($sp) +.L7F0C4498: +/* 0F8FC8 7F0C4498 0C001149 */ jal viGetViewTop +/* 0F8FCC 7F0C449C 00000000 */ nop +/* 0F8FD0 7F0C44A0 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008C708) +/* 0F8FD4 7F0C44A4 8DADC708 */ lw $t5, %lo(dword_CODE_bss_8008C708)($t5) +/* 0F8FD8 7F0C44A8 244C0016 */ addiu $t4, $v0, 0x16 +/* 0F8FDC 7F0C44AC AFAC00C8 */ sw $t4, 0xc8($sp) +/* 0F8FE0 7F0C44B0 15A0001C */ bnez $t5, .L7F0C4524 +/* 0F8FE4 7F0C44B4 00000000 */ nop +/* 0F8FE8 7F0C44B8 0C001107 */ jal viGetX +/* 0F8FEC 7F0C44BC 00000000 */ nop +/* 0F8FF0 7F0C44C0 00028400 */ sll $s0, $v0, 0x10 +/* 0F8FF4 7F0C44C4 00107403 */ sra $t6, $s0, 0x10 +/* 0F8FF8 7F0C44C8 0C00110B */ jal viGetY +/* 0F8FFC 7F0C44CC 01C08025 */ move $s0, $t6 +/* 0F9000 7F0C44D0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0F9004 7F0C44D4 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F9008 7F0C44D8 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F900C 7F0C44DC 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0F9010 7F0C44E0 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F9014 7F0C44E4 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9018 7F0C44E8 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F901C 7F0C44EC 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9020 7F0C44F0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9024 7F0C44F4 02202025 */ move $a0, $s1 +/* 0F9028 7F0C44F8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F902C 7F0C44FC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9030 7F0C4500 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9034 7F0C4504 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9038 7F0C4508 AFA00024 */ sw $zero, 0x24($sp) +/* 0F903C 7F0C450C AFA00028 */ sw $zero, 0x28($sp) +/* 0F9040 7F0C4510 AFB90014 */ sw $t9, 0x14($sp) +/* 0F9044 7F0C4514 0FC2B6AF */ jal en_text_write_stuff +/* 0F9048 7F0C4518 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F904C 7F0C451C 1000001E */ b .L7F0C4598 +/* 0F9050 7F0C4520 00408825 */ move $s1, $v0 +.L7F0C4524: +/* 0F9054 7F0C4524 0C001107 */ jal viGetX +/* 0F9058 7F0C4528 00000000 */ nop +/* 0F905C 7F0C452C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9060 7F0C4530 00105403 */ sra $t2, $s0, 0x10 +/* 0F9064 7F0C4534 0C00110B */ jal viGetY +/* 0F9068 7F0C4538 01408025 */ move $s0, $t2 +/* 0F906C 7F0C453C 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F9070 7F0C4540 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0F9074 7F0C4544 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0F9078 7F0C4548 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F907C 7F0C454C 3C0CA0FF */ lui $t4, (0xA0FFA0F0 >> 16) # lui $t4, 0xa0ff +/* 0F9080 7F0C4550 3C0D0070 */ lui $t5, (0x007000A0 >> 16) # lui $t5, 0x70 +/* 0F9084 7F0C4554 35AD00A0 */ ori $t5, (0x007000A0 & 0xFFFF) # ori $t5, $t5, 0xa0 +/* 0F9088 7F0C4558 358CA0F0 */ ori $t4, (0xA0FFA0F0 & 0xFFFF) # ori $t4, $t4, 0xa0f0 +/* 0F908C 7F0C455C 3C078006 */ lui $a3, %hi(ascii_MP_watch_menu_right_chevron) +/* 0F9090 7F0C4560 24E7BC2C */ addiu $a3, %lo(ascii_MP_watch_menu_right_chevron) # addiu $a3, $a3, -0x43d4 +/* 0F9094 7F0C4564 AFAC0018 */ sw $t4, 0x18($sp) +/* 0F9098 7F0C4568 AFAD001C */ sw $t5, 0x1c($sp) +/* 0F909C 7F0C456C 02202025 */ move $a0, $s1 +/* 0F90A0 7F0C4570 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F90A4 7F0C4574 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F90A8 7F0C4578 AFB00020 */ sw $s0, 0x20($sp) +/* 0F90AC 7F0C457C AFA20024 */ sw $v0, 0x24($sp) +/* 0F90B0 7F0C4580 AFA00028 */ sw $zero, 0x28($sp) +/* 0F90B4 7F0C4584 AFA0002C */ sw $zero, 0x2c($sp) +/* 0F90B8 7F0C4588 AFAB0014 */ sw $t3, 0x14($sp) +/* 0F90BC 7F0C458C 0FC2B9BB */ jal jp_text_write_stuff +/* 0F90C0 7F0C4590 AFA90010 */ sw $t1, 0x10($sp) +/* 0F90C4 7F0C4594 00408825 */ move $s1, $v0 +.L7F0C4598: +/* 0F90C8 7F0C4598 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F90CC 7F0C459C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F90D0 7F0C45A0 24010003 */ li $at, 3 +/* 0F90D4 7F0C45A4 8FAE00D0 */ lw $t6, 0xd0($sp) +/* 0F90D8 7F0C45A8 8C6229C8 */ lw $v0, 0x29c8($v1) +/* 0F90DC 7F0C45AC 10410003 */ beq $v0, $at, .L7F0C45BC +/* 0F90E0 7F0C45B0 24010004 */ li $at, 4 +/* 0F90E4 7F0C45B4 544101AA */ bnel $v0, $at, .L7F0C4C60 +/* 0F90E8 7F0C45B8 24010002 */ li $at, 2 +.L7F0C45BC: +/* 0F90EC 7F0C45BC 19C0000D */ blez $t6, .L7F0C45F4 +/* 0F90F0 7F0C45C0 00002025 */ move $a0, $zero +/* 0F90F4 7F0C45C4 27A30094 */ addiu $v1, $sp, 0x94 +/* 0F90F8 7F0C45C8 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45CC: +/* 0F90FC 7F0C45CC 0FC30E36 */ jal get_points_for_mp_player +/* 0F9100 7F0C45D0 AFA40090 */ sw $a0, 0x90($sp) +/* 0F9104 7F0C45D4 8FA30044 */ lw $v1, 0x44($sp) +/* 0F9108 7F0C45D8 8FA40090 */ lw $a0, 0x90($sp) +/* 0F910C 7F0C45DC AC620000 */ sw $v0, ($v1) +/* 0F9110 7F0C45E0 8FAF00D0 */ lw $t7, 0xd0($sp) +/* 0F9114 7F0C45E4 24840001 */ addiu $a0, $a0, 1 +/* 0F9118 7F0C45E8 24630004 */ addiu $v1, $v1, 4 +/* 0F911C 7F0C45EC 548FFFF7 */ bnel $a0, $t7, .L7F0C45CC +/* 0F9120 7F0C45F0 AFA30044 */ sw $v1, 0x44($sp) +.L7F0C45F4: +/* 0F9124 7F0C45F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9128 7F0C45F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F912C 7F0C45FC 2C990001 */ sltiu $t9, $a0, 1 +/* 0F9130 7F0C4600 13200005 */ beqz $t9, .L7F0C4618 +/* 0F9134 7F0C4604 03202025 */ move $a0, $t9 +/* 0F9138 7F0C4608 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F913C 7F0C460C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9140 7F0C4610 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9144 7F0C4614 03002025 */ move $a0, $t8 +.L7F0C4618: +/* 0F9148 7F0C4618 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F914C 7F0C461C 00000000 */ nop +/* 0F9150 7F0C4620 10400034 */ beqz $v0, .L7F0C46F4 +/* 0F9154 7F0C4624 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9158 7F0C4628 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F915C 7F0C462C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9160 7F0C4630 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F9164 7F0C4634 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F9168 7F0C4638 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F916C 7F0C463C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9170 7F0C4640 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9174 7F0C4644 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9178 7F0C4648 27A600AC */ addiu $a2, $sp, 0xac +/* 0F917C 7F0C464C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9180 7F0C4650 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9184 7F0C4654 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9188 7F0C4658 0C001145 */ jal viGetViewLeft +/* 0F918C 7F0C465C 00000000 */ nop +/* 0F9190 7F0C4660 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9194 7F0C4664 8FAC00C0 */ lw $t4, 0xc0($sp) +/* 0F9198 7F0C4668 00495821 */ addu $t3, $v0, $t1 +/* 0F919C 7F0C466C 000C6843 */ sra $t5, $t4, 1 +/* 0F91A0 7F0C4670 016D2023 */ subu $a0, $t3, $t5 +/* 0F91A4 7F0C4674 24840050 */ addiu $a0, $a0, 0x50 +/* 0F91A8 7F0C4678 0C001149 */ jal viGetViewTop +/* 0F91AC 7F0C467C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F91B0 7F0C4680 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F91B4 7F0C4684 000E7843 */ sra $t7, $t6, 1 +/* 0F91B8 7F0C4688 004FC823 */ subu $t9, $v0, $t7 +/* 0F91BC 7F0C468C 27380025 */ addiu $t8, $t9, 0x25 +/* 0F91C0 7F0C4690 0C001107 */ jal viGetX +/* 0F91C4 7F0C4694 AFB800C8 */ sw $t8, 0xc8($sp) +/* 0F91C8 7F0C4698 00028400 */ sll $s0, $v0, 0x10 +/* 0F91CC 7F0C469C 00105403 */ sra $t2, $s0, 0x10 +/* 0F91D0 7F0C46A0 0C00110B */ jal viGetY +/* 0F91D4 7F0C46A4 01408025 */ move $s0, $t2 +/* 0F91D8 7F0C46A8 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0F91DC 7F0C46AC 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F91E0 7F0C46B0 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F91E4 7F0C46B4 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0F91E8 7F0C46B8 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F91EC 7F0C46BC 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F91F0 7F0C46C0 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F91F4 7F0C46C4 02202025 */ move $a0, $s1 +/* 0F91F8 7F0C46C8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F91FC 7F0C46CC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9200 7F0C46D0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9204 7F0C46D4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9208 7F0C46D8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F920C 7F0C46DC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9210 7F0C46E0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9214 7F0C46E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0F9218 7F0C46E8 0FC2B6AF */ jal en_text_write_stuff +/* 0F921C 7F0C46EC AFA90010 */ sw $t1, 0x10($sp) +/* 0F9220 7F0C46F0 00408825 */ move $s1, $v0 +.L7F0C46F4: +/* 0F9224 7F0C46F4 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9228 7F0C46F8 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F922C 7F0C46FC 2C8D0001 */ sltiu $t5, $a0, 1 +/* 0F9230 7F0C4700 11A00005 */ beqz $t5, .L7F0C4718 +/* 0F9234 7F0C4704 01A02025 */ move $a0, $t5 +/* 0F9238 7F0C4708 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F923C 7F0C470C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9240 7F0C4710 2C8E0001 */ sltiu $t6, $a0, 1 +/* 0F9244 7F0C4714 01C02025 */ move $a0, $t6 +.L7F0C4718: +/* 0F9248 7F0C4718 0FC30FF3 */ jal true_if_displaying_score_in_mp +/* 0F924C 7F0C471C 00000000 */ nop +/* 0F9250 7F0C4720 1040014B */ beqz $v0, .L7F0C4C50 +/* 0F9254 7F0C4724 00000000 */ nop +/* 0F9258 7F0C4728 0FC051D6 */ jal get_scenario +/* 0F925C 7F0C472C 00000000 */ nop +/* 0F9260 7F0C4730 AFA20080 */ sw $v0, 0x80($sp) +/* 0F9264 7F0C4734 0FC30776 */ jal get_textptr_for_textID +/* 0F9268 7F0C4738 3404A01B */ li $a0, 40987 +/* 0F926C 7F0C473C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9270 7F0C4740 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9274 7F0C4744 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9278 7F0C4748 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0F927C 7F0C474C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9280 7F0C4750 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9284 7F0C4754 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9288 7F0C4758 00403025 */ move $a2, $v0 +/* 0F928C 7F0C475C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9290 7F0C4760 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9294 7F0C4764 AFAF0010 */ sw $t7, 0x10($sp) +/* 0F9298 7F0C4768 0C001145 */ jal viGetViewLeft +/* 0F929C 7F0C476C 00000000 */ nop +/* 0F92A0 7F0C4770 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F92A4 7F0C4774 8FAA00C0 */ lw $t2, 0xc0($sp) +/* 0F92A8 7F0C4778 0059C021 */ addu $t8, $v0, $t9 +/* 0F92AC 7F0C477C 000A4843 */ sra $t1, $t2, 1 +/* 0F92B0 7F0C4780 03092023 */ subu $a0, $t8, $t1 +/* 0F92B4 7F0C4784 24840050 */ addiu $a0, $a0, 0x50 +/* 0F92B8 7F0C4788 0C001149 */ jal viGetViewTop +/* 0F92BC 7F0C478C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F92C0 7F0C4790 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F92C4 7F0C4794 000C5843 */ sra $t3, $t4, 1 +/* 0F92C8 7F0C4798 004B6823 */ subu $t5, $v0, $t3 +/* 0F92CC 7F0C479C 25AE0035 */ addiu $t6, $t5, 0x35 +/* 0F92D0 7F0C47A0 0C001107 */ jal viGetX +/* 0F92D4 7F0C47A4 AFAE00C8 */ sw $t6, 0xc8($sp) +/* 0F92D8 7F0C47A8 00028400 */ sll $s0, $v0, 0x10 +/* 0F92DC 7F0C47AC 00107C03 */ sra $t7, $s0, 0x10 +/* 0F92E0 7F0C47B0 0C00110B */ jal viGetY +/* 0F92E4 7F0C47B4 01E08025 */ move $s0, $t7 +/* 0F92E8 7F0C47B8 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F92EC 7F0C47BC 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0F92F0 7F0C47C0 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0F92F4 7F0C47C4 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F92F8 7F0C47C8 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0F92FC 7F0C47CC 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0F9300 7F0C47D0 AFB80018 */ sw $t8, 0x18($sp) +/* 0F9304 7F0C47D4 02202025 */ move $a0, $s1 +/* 0F9308 7F0C47D8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F930C 7F0C47DC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9310 7F0C47E0 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0F9314 7F0C47E4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9318 7F0C47E8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F931C 7F0C47EC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9320 7F0C47F0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9324 7F0C47F4 AFAA0014 */ sw $t2, 0x14($sp) +/* 0F9328 7F0C47F8 0FC2B6AF */ jal en_text_write_stuff +/* 0F932C 7F0C47FC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9330 7F0C4800 8FA30080 */ lw $v1, 0x80($sp) +/* 0F9334 7F0C4804 24010005 */ li $at, 5 +/* 0F9338 7F0C4808 00408825 */ move $s1, $v0 +/* 0F933C 7F0C480C 10610009 */ beq $v1, $at, .L7F0C4834 +/* 0F9340 7F0C4810 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9344 7F0C4814 24010006 */ li $at, 6 +/* 0F9348 7F0C4818 10610006 */ beq $v1, $at, .L7F0C4834 +/* 0F934C 7F0C481C 24010007 */ li $at, 7 +/* 0F9350 7F0C4820 10610004 */ beq $v1, $at, .L7F0C4834 +/* 0F9354 7F0C4824 24010002 */ li $at, 2 +/* 0F9358 7F0C4828 10610002 */ beq $v1, $at, .L7F0C4834 +/* 0F935C 7F0C482C 24010003 */ li $at, 3 +/* 0F9360 7F0C4830 14610015 */ bne $v1, $at, .L7F0C4888 +.L7F0C4834: +/* 0F9364 7F0C4834 000960C0 */ sll $t4, $t1, 3 +/* 0F9368 7F0C4838 01896023 */ subu $t4, $t4, $t1 +/* 0F936C 7F0C483C 000C6100 */ sll $t4, $t4, 4 +/* 0F9370 7F0C4840 3C0B8008 */ lui $t3, %hi(player1_player_data+105) +/* 0F9374 7F0C4844 016C5821 */ addu $t3, $t3, $t4 +/* 0F9378 7F0C4848 916B9F59 */ lbu $t3, %lo(player1_player_data+105)($t3) +/* 0F937C 7F0C484C 24190005 */ li $t9, 5 +/* 0F9380 7F0C4850 240A0004 */ li $t2, 4 +/* 0F9384 7F0C4854 15600008 */ bnez $t3, .L7F0C4878 +/* 0F9388 7F0C4858 24180002 */ li $t8, 2 +/* 0F938C 7F0C485C 240D0003 */ li $t5, 3 +/* 0F9390 7F0C4860 240E0002 */ li $t6, 2 +/* 0F9394 7F0C4864 240F0004 */ li $t7, 4 +/* 0F9398 7F0C4868 AFAD008C */ sw $t5, 0x8c($sp) +/* 0F939C 7F0C486C AFAE0088 */ sw $t6, 0x88($sp) +/* 0F93A0 7F0C4870 10000009 */ b .L7F0C4898 +/* 0F93A4 7F0C4874 AFAF0084 */ sw $t7, 0x84($sp) +.L7F0C4878: +/* 0F93A8 7F0C4878 AFB9008C */ sw $t9, 0x8c($sp) +/* 0F93AC 7F0C487C AFAA0088 */ sw $t2, 0x88($sp) +/* 0F93B0 7F0C4880 10000005 */ b .L7F0C4898 +/* 0F93B4 7F0C4884 AFB80084 */ sw $t8, 0x84($sp) +.L7F0C4888: +/* 0F93B8 7F0C4888 24090001 */ li $t1, 1 +/* 0F93BC 7F0C488C AFA9008C */ sw $t1, 0x8c($sp) +/* 0F93C0 7F0C4890 AFA00088 */ sw $zero, 0x88($sp) +/* 0F93C4 7F0C4894 AFA00084 */ sw $zero, 0x84($sp) +.L7F0C4898: +/* 0F93C8 7F0C4898 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0F93CC 7F0C489C 24010002 */ li $at, 2 +/* 0F93D0 7F0C48A0 1581004E */ bne $t4, $at, .L7F0C49DC +/* 0F93D4 7F0C48A4 00000000 */ nop +/* 0F93D8 7F0C48A8 0C001145 */ jal viGetViewLeft +/* 0F93DC 7F0C48AC 00000000 */ nop +/* 0F93E0 7F0C48B0 00028400 */ sll $s0, $v0, 0x10 +/* 0F93E4 7F0C48B4 00105C03 */ sra $t3, $s0, 0x10 +/* 0F93E8 7F0C48B8 0C001149 */ jal viGetViewTop +/* 0F93EC 7F0C48BC 01608025 */ move $s0, $t3 +/* 0F93F0 7F0C48C0 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F93F4 7F0C48C4 00021C00 */ sll $v1, $v0, 0x10 +/* 0F93F8 7F0C48C8 00036C03 */ sra $t5, $v1, 0x10 +/* 0F93FC 7F0C48CC 15000004 */ bnez $t0, .L7F0C48E0 +/* 0F9400 7F0C48D0 01A01825 */ move $v1, $t5 +/* 0F9404 7F0C48D4 8FAE008C */ lw $t6, 0x8c($sp) +/* 0F9408 7F0C48D8 1000000F */ b .L7F0C4918 +/* 0F940C 7F0C48DC AFAE0050 */ sw $t6, 0x50($sp) +.L7F0C48E0: +/* 0F9410 7F0C48E0 0008C8C0 */ sll $t9, $t0, 3 +/* 0F9414 7F0C48E4 0328C823 */ subu $t9, $t9, $t0 +/* 0F9418 7F0C48E8 0019C900 */ sll $t9, $t9, 4 +/* 0F941C 7F0C48EC 3C0A8008 */ lui $t2, %hi(player1_player_data + 0x69) +/* 0F9420 7F0C48F0 01595021 */ addu $t2, $t2, $t9 +/* 0F9424 7F0C48F4 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x69) +/* 0F9428 7F0C48F8 91EF9F59 */ lbu $t7, %lo(player1_player_data + 0x69)($t7) +/* 0F942C 7F0C48FC 914A9F59 */ lbu $t2, %lo(player1_player_data + 0x69)($t2) +/* 0F9430 7F0C4900 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9434 7F0C4904 15EA0003 */ bne $t7, $t2, .L7F0C4914 +/* 0F9438 7F0C4908 00000000 */ nop +/* 0F943C 7F0C490C 10000001 */ b .L7F0C4914 +/* 0F9440 7F0C4910 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4914: +/* 0F9444 7F0C4914 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4918: +/* 0F9448 7F0C4918 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F944C 7F0C491C 8FA90050 */ lw $t1, 0x50($sp) +/* 0F9450 7F0C4920 02202025 */ move $a0, $s1 +/* 0F9454 7F0C4924 02182821 */ addu $a1, $s0, $t8 +/* 0F9458 7F0C4928 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F945C 7F0C492C 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9460 7F0C4930 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9464 7F0C4934 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9468 7F0C4938 AFA90010 */ sw $t1, 0x10($sp) +/* 0F946C 7F0C493C 0C001145 */ jal viGetViewLeft +/* 0F9470 7F0C4940 00408825 */ move $s1, $v0 +/* 0F9474 7F0C4944 00028400 */ sll $s0, $v0, 0x10 +/* 0F9478 7F0C4948 00106403 */ sra $t4, $s0, 0x10 +/* 0F947C 7F0C494C 0C001149 */ jal viGetViewTop +/* 0F9480 7F0C4950 01808025 */ move $s0, $t4 +/* 0F9484 7F0C4954 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9488 7F0C4958 00021C00 */ sll $v1, $v0, 0x10 +/* 0F948C 7F0C495C 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9490 7F0C4960 24010001 */ li $at, 1 +/* 0F9494 7F0C4964 14810004 */ bne $a0, $at, .L7F0C4978 +/* 0F9498 7F0C4968 01601825 */ move $v1, $t3 +/* 0F949C 7F0C496C 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F94A0 7F0C4970 1000000F */ b .L7F0C49B0 +/* 0F94A4 7F0C4974 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4978: +/* 0F94A8 7F0C4978 0004C8C0 */ sll $t9, $a0, 3 +/* 0F94AC 7F0C497C 0324C823 */ subu $t9, $t9, $a0 +/* 0F94B0 7F0C4980 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F94B4 7F0C4984 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F94B8 7F0C4988 0019C900 */ sll $t9, $t9, 4 +/* 0F94BC 7F0C498C 00597821 */ addu $t7, $v0, $t9 +/* 0F94C0 7F0C4990 91EA0069 */ lbu $t2, 0x69($t7) +/* 0F94C4 7F0C4994 904E00D9 */ lbu $t6, 0xd9($v0) +/* 0F94C8 7F0C4998 8FA60084 */ lw $a2, 0x84($sp) +/* 0F94CC 7F0C499C 15CA0003 */ bne $t6, $t2, .L7F0C49AC +/* 0F94D0 7F0C49A0 00000000 */ nop +/* 0F94D4 7F0C49A4 10000001 */ b .L7F0C49AC +/* 0F94D8 7F0C49A8 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C49AC: +/* 0F94DC 7F0C49AC AFA60050 */ sw $a2, 0x50($sp) +.L7F0C49B0: +/* 0F94E0 7F0C49B0 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F94E4 7F0C49B4 8FA90050 */ lw $t1, 0x50($sp) +/* 0F94E8 7F0C49B8 02202025 */ move $a0, $s1 +/* 0F94EC 7F0C49BC 02182821 */ addu $a1, $s0, $t8 +/* 0F94F0 7F0C49C0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F94F4 7F0C49C4 24660056 */ addiu $a2, $v1, 0x56 +/* 0F94F8 7F0C49C8 8FA70098 */ lw $a3, 0x98($sp) +/* 0F94FC 7F0C49CC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9500 7F0C49D0 AFA90010 */ sw $t1, 0x10($sp) +/* 0F9504 7F0C49D4 1000009E */ b .L7F0C4C50 +/* 0F9508 7F0C49D8 00408825 */ move $s1, $v0 +.L7F0C49DC: +/* 0F950C 7F0C49DC 0C001145 */ jal viGetViewLeft +/* 0F9510 7F0C49E0 00000000 */ nop +/* 0F9514 7F0C49E4 00028400 */ sll $s0, $v0, 0x10 +/* 0F9518 7F0C49E8 00106403 */ sra $t4, $s0, 0x10 +/* 0F951C 7F0C49EC 0C001149 */ jal viGetViewTop +/* 0F9520 7F0C49F0 01808025 */ move $s0, $t4 +/* 0F9524 7F0C49F4 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9528 7F0C49F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0F952C 7F0C49FC 00035C03 */ sra $t3, $v1, 0x10 +/* 0F9530 7F0C4A00 15000004 */ bnez $t0, .L7F0C4A14 +/* 0F9534 7F0C4A04 01601825 */ move $v1, $t3 +/* 0F9538 7F0C4A08 8FAD008C */ lw $t5, 0x8c($sp) +/* 0F953C 7F0C4A0C 1000000F */ b .L7F0C4A4C +/* 0F9540 7F0C4A10 AFAD0050 */ sw $t5, 0x50($sp) +.L7F0C4A14: +/* 0F9544 7F0C4A14 000878C0 */ sll $t7, $t0, 3 +/* 0F9548 7F0C4A18 01E87823 */ subu $t7, $t7, $t0 +/* 0F954C 7F0C4A1C 000F7900 */ sll $t7, $t7, 4 +/* 0F9550 7F0C4A20 3C0E8008 */ lui $t6, %hi(player1_player_data + 0x69) +/* 0F9554 7F0C4A24 01CF7021 */ addu $t6, $t6, $t7 +/* 0F9558 7F0C4A28 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F955C 7F0C4A2C 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F9560 7F0C4A30 91CE9F59 */ lbu $t6, %lo(player1_player_data + 0x69)($t6) +/* 0F9564 7F0C4A34 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9568 7F0C4A38 172E0003 */ bne $t9, $t6, .L7F0C4A48 +/* 0F956C 7F0C4A3C 00000000 */ nop +/* 0F9570 7F0C4A40 10000001 */ b .L7F0C4A48 +/* 0F9574 7F0C4A44 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4A48: +/* 0F9578 7F0C4A48 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4A4C: +/* 0F957C 7F0C4A4C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9580 7F0C4A50 8FB80050 */ lw $t8, 0x50($sp) +/* 0F9584 7F0C4A54 02202025 */ move $a0, $s1 +/* 0F9588 7F0C4A58 020A2821 */ addu $a1, $s0, $t2 +/* 0F958C 7F0C4A5C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9590 7F0C4A60 24660046 */ addiu $a2, $v1, 0x46 +/* 0F9594 7F0C4A64 8FA70094 */ lw $a3, 0x94($sp) +/* 0F9598 7F0C4A68 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F959C 7F0C4A6C AFB80010 */ sw $t8, 0x10($sp) +/* 0F95A0 7F0C4A70 0C001145 */ jal viGetViewLeft +/* 0F95A4 7F0C4A74 00408825 */ move $s1, $v0 +/* 0F95A8 7F0C4A78 00028400 */ sll $s0, $v0, 0x10 +/* 0F95AC 7F0C4A7C 00104C03 */ sra $t1, $s0, 0x10 +/* 0F95B0 7F0C4A80 0C001149 */ jal viGetViewTop +/* 0F95B4 7F0C4A84 01208025 */ move $s0, $t1 +/* 0F95B8 7F0C4A88 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F95BC 7F0C4A8C 00021C00 */ sll $v1, $v0, 0x10 +/* 0F95C0 7F0C4A90 00036403 */ sra $t4, $v1, 0x10 +/* 0F95C4 7F0C4A94 24010001 */ li $at, 1 +/* 0F95C8 7F0C4A98 15010004 */ bne $t0, $at, .L7F0C4AAC +/* 0F95CC 7F0C4A9C 01801825 */ move $v1, $t4 +/* 0F95D0 7F0C4AA0 8FAB008C */ lw $t3, 0x8c($sp) +/* 0F95D4 7F0C4AA4 1000000F */ b .L7F0C4AE4 +/* 0F95D8 7F0C4AA8 AFAB0050 */ sw $t3, 0x50($sp) +.L7F0C4AAC: +/* 0F95DC 7F0C4AAC 000878C0 */ sll $t7, $t0, 3 +/* 0F95E0 7F0C4AB0 01E87823 */ subu $t7, $t7, $t0 +/* 0F95E4 7F0C4AB4 000F7900 */ sll $t7, $t7, 4 +/* 0F95E8 7F0C4AB8 3C198008 */ lui $t9, %hi(player1_player_data + 0x69) +/* 0F95EC 7F0C4ABC 032FC821 */ addu $t9, $t9, $t7 +/* 0F95F0 7F0C4AC0 3C0D8008 */ lui $t5, %hi(player2_player_data + 0x69) +/* 0F95F4 7F0C4AC4 91AD9FC9 */ lbu $t5, %lo(player2_player_data + 0x69)($t5) +/* 0F95F8 7F0C4AC8 93399F59 */ lbu $t9, %lo(player1_player_data + 0x69)($t9) +/* 0F95FC 7F0C4ACC 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9600 7F0C4AD0 15B90003 */ bne $t5, $t9, .L7F0C4AE0 +/* 0F9604 7F0C4AD4 00000000 */ nop +/* 0F9608 7F0C4AD8 10000001 */ b .L7F0C4AE0 +/* 0F960C 7F0C4ADC 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4AE0: +/* 0F9610 7F0C4AE0 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4AE4: +/* 0F9614 7F0C4AE4 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F9618 7F0C4AE8 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F961C 7F0C4AEC 02202025 */ move $a0, $s1 +/* 0F9620 7F0C4AF0 020E2821 */ addu $a1, $s0, $t6 +/* 0F9624 7F0C4AF4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9628 7F0C4AF8 24660046 */ addiu $a2, $v1, 0x46 +/* 0F962C 7F0C4AFC 8FA70098 */ lw $a3, 0x98($sp) +/* 0F9630 7F0C4B00 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9634 7F0C4B04 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F9638 7F0C4B08 0C001145 */ jal viGetViewLeft +/* 0F963C 7F0C4B0C 00408825 */ move $s1, $v0 +/* 0F9640 7F0C4B10 00028400 */ sll $s0, $v0, 0x10 +/* 0F9644 7F0C4B14 0010C403 */ sra $t8, $s0, 0x10 +/* 0F9648 7F0C4B18 0C001149 */ jal viGetViewTop +/* 0F964C 7F0C4B1C 03008025 */ move $s0, $t8 +/* 0F9650 7F0C4B20 8FA800D4 */ lw $t0, 0xd4($sp) +/* 0F9654 7F0C4B24 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9658 7F0C4B28 00034C03 */ sra $t1, $v1, 0x10 +/* 0F965C 7F0C4B2C 24010002 */ li $at, 2 +/* 0F9660 7F0C4B30 15010004 */ bne $t0, $at, .L7F0C4B44 +/* 0F9664 7F0C4B34 01201825 */ move $v1, $t1 +/* 0F9668 7F0C4B38 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F966C 7F0C4B3C 1000000F */ b .L7F0C4B7C +/* 0F9670 7F0C4B40 AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4B44: +/* 0F9674 7F0C4B44 000878C0 */ sll $t7, $t0, 3 +/* 0F9678 7F0C4B48 01E87823 */ subu $t7, $t7, $t0 +/* 0F967C 7F0C4B4C 000F7900 */ sll $t7, $t7, 4 +/* 0F9680 7F0C4B50 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x69) +/* 0F9684 7F0C4B54 01AF6821 */ addu $t5, $t5, $t7 +/* 0F9688 7F0C4B58 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x69) +/* 0F968C 7F0C4B5C 916BA039 */ lbu $t3, %lo(player3_player_data + 0x69)($t3) +/* 0F9690 7F0C4B60 91AD9F59 */ lbu $t5, %lo(player1_player_data + 0x69)($t5) +/* 0F9694 7F0C4B64 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9698 7F0C4B68 156D0003 */ bne $t3, $t5, .L7F0C4B78 +/* 0F969C 7F0C4B6C 00000000 */ nop +/* 0F96A0 7F0C4B70 10000001 */ b .L7F0C4B78 +/* 0F96A4 7F0C4B74 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4B78: +/* 0F96A8 7F0C4B78 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4B7C: +/* 0F96AC 7F0C4B7C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F96B0 7F0C4B80 8FAE0050 */ lw $t6, 0x50($sp) +/* 0F96B4 7F0C4B84 02202025 */ move $a0, $s1 +/* 0F96B8 7F0C4B88 02192821 */ addu $a1, $s0, $t9 +/* 0F96BC 7F0C4B8C 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F96C0 7F0C4B90 24660056 */ addiu $a2, $v1, 0x56 +/* 0F96C4 7F0C4B94 8FA7009C */ lw $a3, 0x9c($sp) +/* 0F96C8 7F0C4B98 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F96CC 7F0C4B9C AFAE0010 */ sw $t6, 0x10($sp) +/* 0F96D0 7F0C4BA0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F96D4 7F0C4BA4 24010004 */ li $at, 4 +/* 0F96D8 7F0C4BA8 00408825 */ move $s1, $v0 +/* 0F96DC 7F0C4BAC 15410028 */ bne $t2, $at, .L7F0C4C50 +/* 0F96E0 7F0C4BB0 00000000 */ nop +/* 0F96E4 7F0C4BB4 0C001145 */ jal viGetViewLeft +/* 0F96E8 7F0C4BB8 00000000 */ nop +/* 0F96EC 7F0C4BBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F96F0 7F0C4BC0 0010C403 */ sra $t8, $s0, 0x10 +/* 0F96F4 7F0C4BC4 0C001149 */ jal viGetViewTop +/* 0F96F8 7F0C4BC8 03008025 */ move $s0, $t8 +/* 0F96FC 7F0C4BCC 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0F9700 7F0C4BD0 00021C00 */ sll $v1, $v0, 0x10 +/* 0F9704 7F0C4BD4 00034C03 */ sra $t1, $v1, 0x10 +/* 0F9708 7F0C4BD8 24010003 */ li $at, 3 +/* 0F970C 7F0C4BDC 14810004 */ bne $a0, $at, .L7F0C4BF0 +/* 0F9710 7F0C4BE0 01201825 */ move $v1, $t1 +/* 0F9714 7F0C4BE4 8FAC008C */ lw $t4, 0x8c($sp) +/* 0F9718 7F0C4BE8 1000000F */ b .L7F0C4C28 +/* 0F971C 7F0C4BEC AFAC0050 */ sw $t4, 0x50($sp) +.L7F0C4BF0: +/* 0F9720 7F0C4BF0 000458C0 */ sll $t3, $a0, 3 +/* 0F9724 7F0C4BF4 01645823 */ subu $t3, $t3, $a0 +/* 0F9728 7F0C4BF8 3C028008 */ lui $v0, %hi(player1_player_data) +/* 0F972C 7F0C4BFC 24429EF0 */ addiu $v0, %lo(player1_player_data) # addiu $v0, $v0, -0x6110 +/* 0F9730 7F0C4C00 000B5900 */ sll $t3, $t3, 4 +/* 0F9734 7F0C4C04 004B6821 */ addu $t5, $v0, $t3 +/* 0F9738 7F0C4C08 91B90069 */ lbu $t9, 0x69($t5) +/* 0F973C 7F0C4C0C 904F01B9 */ lbu $t7, 0x1b9($v0) +/* 0F9740 7F0C4C10 8FA60084 */ lw $a2, 0x84($sp) +/* 0F9744 7F0C4C14 15F90003 */ bne $t7, $t9, .L7F0C4C24 +/* 0F9748 7F0C4C18 00000000 */ nop +/* 0F974C 7F0C4C1C 10000001 */ b .L7F0C4C24 +/* 0F9750 7F0C4C20 8FA60088 */ lw $a2, 0x88($sp) +.L7F0C4C24: +/* 0F9754 7F0C4C24 AFA60050 */ sw $a2, 0x50($sp) +.L7F0C4C28: +/* 0F9758 7F0C4C28 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F975C 7F0C4C2C 8FAA0050 */ lw $t2, 0x50($sp) +/* 0F9760 7F0C4C30 02202025 */ move $a0, $s1 +/* 0F9764 7F0C4C34 020E2821 */ addu $a1, $s0, $t6 +/* 0F9768 7F0C4C38 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F976C 7F0C4C3C 24660056 */ addiu $a2, $v1, 0x56 +/* 0F9770 7F0C4C40 8FA700A0 */ lw $a3, 0xa0($sp) +/* 0F9774 7F0C4C44 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9778 7F0C4C48 AFAA0010 */ sw $t2, 0x10($sp) +/* 0F977C 7F0C4C4C 00408825 */ move $s1, $v0 +.L7F0C4C50: +/* 0F9780 7F0C4C50 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9784 7F0C4C54 100003BB */ b .L7F0C5B44 +/* 0F9788 7F0C4C58 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0F978C 7F0C4C5C 24010002 */ li $at, 2 +.L7F0C4C60: +/* 0F9790 7F0C4C60 1441011C */ bne $v0, $at, .L7F0C50D4 +/* 0F9794 7F0C4C64 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9798 7F0C4C68 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F979C 7F0C4C6C 2C980001 */ sltiu $t8, $a0, 1 +/* 0F97A0 7F0C4C70 13000005 */ beqz $t8, .L7F0C4C88 +/* 0F97A4 7F0C4C74 03002025 */ move $a0, $t8 +/* 0F97A8 7F0C4C78 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F97AC 7F0C4C7C 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F97B0 7F0C4C80 2C890001 */ sltiu $t1, $a0, 1 +/* 0F97B4 7F0C4C84 01202025 */ move $a0, $t1 +.L7F0C4C88: +/* 0F97B8 7F0C4C88 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F97BC 7F0C4C8C 00000000 */ nop +/* 0F97C0 7F0C4C90 10400034 */ beqz $v0, .L7F0C4D64 +/* 0F97C4 7F0C4C94 27A400AC */ addiu $a0, $sp, 0xac +/* 0F97C8 7F0C4C98 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F97CC 7F0C4C9C 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F97D0 7F0C4CA0 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0F97D4 7F0C4CA4 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0F97D8 7F0C4CA8 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F97DC 7F0C4CAC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F97E0 7F0C4CB0 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F97E4 7F0C4CB4 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F97E8 7F0C4CB8 27A600AC */ addiu $a2, $sp, 0xac +/* 0F97EC 7F0C4CBC AFA00014 */ sw $zero, 0x14($sp) +/* 0F97F0 7F0C4CC0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F97F4 7F0C4CC4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F97F8 7F0C4CC8 0C001145 */ jal viGetViewLeft +/* 0F97FC 7F0C4CCC 00000000 */ nop +/* 0F9800 7F0C4CD0 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9804 7F0C4CD4 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9808 7F0C4CD8 004B6821 */ addu $t5, $v0, $t3 +/* 0F980C 7F0C4CDC 000FC843 */ sra $t9, $t7, 1 +/* 0F9810 7F0C4CE0 01B92023 */ subu $a0, $t5, $t9 +/* 0F9814 7F0C4CE4 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9818 7F0C4CE8 0C001149 */ jal viGetViewTop +/* 0F981C 7F0C4CEC AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9820 7F0C4CF0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0F9824 7F0C4CF4 000E5043 */ sra $t2, $t6, 1 +/* 0F9828 7F0C4CF8 004AC023 */ subu $t8, $v0, $t2 +/* 0F982C 7F0C4CFC 27090025 */ addiu $t1, $t8, 0x25 +/* 0F9830 7F0C4D00 0C001107 */ jal viGetX +/* 0F9834 7F0C4D04 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0F9838 7F0C4D08 00028400 */ sll $s0, $v0, 0x10 +/* 0F983C 7F0C4D0C 00106403 */ sra $t4, $s0, 0x10 +/* 0F9840 7F0C4D10 0C00110B */ jal viGetY +/* 0F9844 7F0C4D14 01808025 */ move $s0, $t4 +/* 0F9848 7F0C4D18 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0F984C 7F0C4D1C 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9850 7F0C4D20 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9854 7F0C4D24 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0F9858 7F0C4D28 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0F985C 7F0C4D2C 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0F9860 7F0C4D30 AFAD0018 */ sw $t5, 0x18($sp) +/* 0F9864 7F0C4D34 02202025 */ move $a0, $s1 +/* 0F9868 7F0C4D38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F986C 7F0C4D3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9870 7F0C4D40 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9874 7F0C4D44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9878 7F0C4D48 AFA20020 */ sw $v0, 0x20($sp) +/* 0F987C 7F0C4D4C AFA00024 */ sw $zero, 0x24($sp) +/* 0F9880 7F0C4D50 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9884 7F0C4D54 AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9888 7F0C4D58 0FC2B6AF */ jal en_text_write_stuff +/* 0F988C 7F0C4D5C AFAB0010 */ sw $t3, 0x10($sp) +/* 0F9890 7F0C4D60 00408825 */ move $s1, $v0 +.L7F0C4D64: +/* 0F9894 7F0C4D64 0FC30776 */ jal get_textptr_for_textID +/* 0F9898 7F0C4D68 3404A01C */ li $a0, 40988 +/* 0F989C 7F0C4D6C 3404A01D */ li $a0, 40989 +/* 0F98A0 7F0C4D70 0FC30776 */ jal get_textptr_for_textID +/* 0F98A4 7F0C4D74 AFA2004C */ sw $v0, 0x4c($sp) +/* 0F98A8 7F0C4D78 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F98AC 7F0C4D7C 3C058006 */ lui $a1, %hi(ascii_pnum_KILLS) +/* 0F98B0 7F0C4D80 24A5BC30 */ addiu $a1, %lo(ascii_pnum_KILLS) # addiu $a1, $a1, -0x43d0 +/* 0F98B4 7F0C4D84 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F98B8 7F0C4D88 27A400AC */ addiu $a0, $sp, 0xac +/* 0F98BC 7F0C4D8C AFA20010 */ sw $v0, 0x10($sp) +/* 0F98C0 7F0C4D90 0C002B25 */ jal sprintf +/* 0F98C4 7F0C4D94 24E70001 */ addiu $a3, $a3, 1 +/* 0F98C8 7F0C4D98 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0F98CC 7F0C4D9C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0F98D0 7F0C4DA0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F98D4 7F0C4DA4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F98D8 7F0C4DA8 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F98DC 7F0C4DAC 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F98E0 7F0C4DB0 27A600AC */ addiu $a2, $sp, 0xac +/* 0F98E4 7F0C4DB4 AFA00014 */ sw $zero, 0x14($sp) +/* 0F98E8 7F0C4DB8 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F98EC 7F0C4DBC AFB90010 */ sw $t9, 0x10($sp) +/* 0F98F0 7F0C4DC0 0C001145 */ jal viGetViewLeft +/* 0F98F4 7F0C4DC4 00000000 */ nop +/* 0F98F8 7F0C4DC8 8FAE00A8 */ lw $t6, 0xa8($sp) +/* 0F98FC 7F0C4DCC 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9900 7F0C4DD0 004E5021 */ addu $t2, $v0, $t6 +/* 0F9904 7F0C4DD4 00184843 */ sra $t1, $t8, 1 +/* 0F9908 7F0C4DD8 01492023 */ subu $a0, $t2, $t1 +/* 0F990C 7F0C4DDC 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9910 7F0C4DE0 0C001149 */ jal viGetViewTop +/* 0F9914 7F0C4DE4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9918 7F0C4DE8 8FAC00BC */ lw $t4, 0xbc($sp) +/* 0F991C 7F0C4DEC 000C5843 */ sra $t3, $t4, 1 +/* 0F9920 7F0C4DF0 004B7823 */ subu $t7, $v0, $t3 +/* 0F9924 7F0C4DF4 25ED0035 */ addiu $t5, $t7, 0x35 +/* 0F9928 7F0C4DF8 0C001107 */ jal viGetX +/* 0F992C 7F0C4DFC AFAD00C8 */ sw $t5, 0xc8($sp) +/* 0F9930 7F0C4E00 00028400 */ sll $s0, $v0, 0x10 +/* 0F9934 7F0C4E04 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9938 7F0C4E08 0C00110B */ jal viGetY +/* 0F993C 7F0C4E0C 03208025 */ move $s0, $t9 +/* 0F9940 7F0C4E10 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0F9944 7F0C4E14 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9948 7F0C4E18 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F994C 7F0C4E1C 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0F9950 7F0C4E20 3C0A00FF */ lui $t2, (0x00FF00B0 >> 16) # lui $t2, 0xff +/* 0F9954 7F0C4E24 354A00B0 */ ori $t2, (0x00FF00B0 & 0xFFFF) # ori $t2, $t2, 0xb0 +/* 0F9958 7F0C4E28 AFAA0018 */ sw $t2, 0x18($sp) +/* 0F995C 7F0C4E2C 02202025 */ move $a0, $s1 +/* 0F9960 7F0C4E30 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9964 7F0C4E34 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9968 7F0C4E38 27A700AC */ addiu $a3, $sp, 0xac +/* 0F996C 7F0C4E3C AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9970 7F0C4E40 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9974 7F0C4E44 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9978 7F0C4E48 AFA00028 */ sw $zero, 0x28($sp) +/* 0F997C 7F0C4E4C AFB80014 */ sw $t8, 0x14($sp) +/* 0F9980 7F0C4E50 0FC2B6AF */ jal en_text_write_stuff +/* 0F9984 7F0C4E54 AFAE0010 */ sw $t6, 0x10($sp) +/* 0F9988 7F0C4E58 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F998C 7F0C4E5C 00408825 */ move $s1, $v0 +/* 0F9990 7F0C4E60 24010002 */ li $at, 2 +/* 0F9994 7F0C4E64 15210033 */ bne $t1, $at, .L7F0C4F34 +/* 0F9998 7F0C4E68 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F999C 7F0C4E6C 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F99A0 7F0C4E70 50400018 */ beql $v0, $zero, .L7F0C4ED4 +/* 0F99A4 7F0C4E74 24010001 */ li $at, 1 +/* 0F99A8 7F0C4E78 0C001145 */ jal viGetViewLeft +/* 0F99AC 7F0C4E7C 00000000 */ nop +/* 0F99B0 7F0C4E80 00028400 */ sll $s0, $v0, 0x10 +/* 0F99B4 7F0C4E84 00106403 */ sra $t4, $s0, 0x10 +/* 0F99B8 7F0C4E88 0C001149 */ jal viGetViewTop +/* 0F99BC 7F0C4E8C 01808025 */ move $s0, $t4 +/* 0F99C0 7F0C4E90 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F99C4 7F0C4E94 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F99C8 7F0C4E98 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F99CC 7F0C4E9C 000F68C0 */ sll $t5, $t7, 3 +/* 0F99D0 7F0C4EA0 01AF6823 */ subu $t5, $t5, $t7 +/* 0F99D4 7F0C4EA4 000D6900 */ sll $t5, $t5, 4 +/* 0F99D8 7F0C4EA8 00ED3821 */ addu $a3, $a3, $t5 +/* 0F99DC 7F0C4EAC 020B2821 */ addu $a1, $s0, $t3 +/* 0F99E0 7F0C4EB0 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F99E4 7F0C4EB4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F99E8 7F0C4EB8 02202025 */ move $a0, $s1 +/* 0F99EC 7F0C4EBC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F99F0 7F0C4EC0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F99F4 7F0C4EC4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F99F8 7F0C4EC8 00408825 */ move $s1, $v0 +/* 0F99FC 7F0C4ECC 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9A00 7F0C4ED0 24010001 */ li $at, 1 +.L7F0C4ED4: +/* 0F9A04 7F0C4ED4 1041007C */ beq $v0, $at, .L7F0C50C8 +/* 0F9A08 7F0C4ED8 0002C8C0 */ sll $t9, $v0, 3 +/* 0F9A0C 7F0C4EDC 0322C823 */ subu $t9, $t9, $v0 +/* 0F9A10 7F0C4EE0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0F9A14 7F0C4EE4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0F9A18 7F0C4EE8 0019C900 */ sll $t9, $t9, 4 +/* 0F9A1C 7F0C4EEC 032EC021 */ addu $t8, $t9, $t6 +/* 0F9A20 7F0C4EF0 0C001145 */ jal viGetViewLeft +/* 0F9A24 7F0C4EF4 AFB80044 */ sw $t8, 0x44($sp) +/* 0F9A28 7F0C4EF8 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A2C 7F0C4EFC 00105403 */ sra $t2, $s0, 0x10 +/* 0F9A30 7F0C4F00 0C001149 */ jal viGetViewTop +/* 0F9A34 7F0C4F04 01408025 */ move $s0, $t2 +/* 0F9A38 7F0C4F08 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0F9A3C 7F0C4F0C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0F9A40 7F0C4F10 02202025 */ move $a0, $s1 +/* 0F9A44 7F0C4F14 02092821 */ addu $a1, $s0, $t1 +/* 0F9A48 7F0C4F18 8D870028 */ lw $a3, 0x28($t4) +/* 0F9A4C 7F0C4F1C AFA00010 */ sw $zero, 0x10($sp) +/* 0F9A50 7F0C4F20 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9A54 7F0C4F24 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9A58 7F0C4F28 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9A5C 7F0C4F2C 10000066 */ b .L7F0C50C8 +/* 0F9A60 7F0C4F30 00408825 */ move $s1, $v0 +.L7F0C4F34: +/* 0F9A64 7F0C4F34 50400018 */ beql $v0, $zero, .L7F0C4F98 +/* 0F9A68 7F0C4F38 24010001 */ li $at, 1 +/* 0F9A6C 7F0C4F3C 0C001145 */ jal viGetViewLeft +/* 0F9A70 7F0C4F40 00000000 */ nop +/* 0F9A74 7F0C4F44 00028400 */ sll $s0, $v0, 0x10 +/* 0F9A78 7F0C4F48 00105C03 */ sra $t3, $s0, 0x10 +/* 0F9A7C 7F0C4F4C 0C001149 */ jal viGetViewTop +/* 0F9A80 7F0C4F50 01608025 */ move $s0, $t3 +/* 0F9A84 7F0C4F54 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0F9A88 7F0C4F58 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0F9A8C 7F0C4F5C 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9A90 7F0C4F60 000DC8C0 */ sll $t9, $t5, 3 +/* 0F9A94 7F0C4F64 032DC823 */ subu $t9, $t9, $t5 +/* 0F9A98 7F0C4F68 0019C900 */ sll $t9, $t9, 4 +/* 0F9A9C 7F0C4F6C 00F93821 */ addu $a3, $a3, $t9 +/* 0F9AA0 7F0C4F70 020F2821 */ addu $a1, $s0, $t7 +/* 0F9AA4 7F0C4F74 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9AA8 7F0C4F78 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9AAC 7F0C4F7C 02202025 */ move $a0, $s1 +/* 0F9AB0 7F0C4F80 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9AB4 7F0C4F84 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9AB8 7F0C4F88 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9ABC 7F0C4F8C 00408825 */ move $s1, $v0 +/* 0F9AC0 7F0C4F90 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9AC4 7F0C4F94 24010001 */ li $at, 1 +.L7F0C4F98: +/* 0F9AC8 7F0C4F98 10410017 */ beq $v0, $at, .L7F0C4FF8 +/* 0F9ACC 7F0C4F9C 000270C0 */ sll $t6, $v0, 3 +/* 0F9AD0 7F0C4FA0 01C27023 */ subu $t6, $t6, $v0 +/* 0F9AD4 7F0C4FA4 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0F9AD8 7F0C4FA8 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0F9ADC 7F0C4FAC 000E7100 */ sll $t6, $t6, 4 +/* 0F9AE0 7F0C4FB0 01D85021 */ addu $t2, $t6, $t8 +/* 0F9AE4 7F0C4FB4 0C001145 */ jal viGetViewLeft +/* 0F9AE8 7F0C4FB8 AFAA0044 */ sw $t2, 0x44($sp) +/* 0F9AEC 7F0C4FBC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9AF0 7F0C4FC0 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9AF4 7F0C4FC4 0C001149 */ jal viGetViewTop +/* 0F9AF8 7F0C4FC8 01208025 */ move $s0, $t1 +/* 0F9AFC 7F0C4FCC 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9B00 7F0C4FD0 8FAB0044 */ lw $t3, 0x44($sp) +/* 0F9B04 7F0C4FD4 02202025 */ move $a0, $s1 +/* 0F9B08 7F0C4FD8 020C2821 */ addu $a1, $s0, $t4 +/* 0F9B0C 7F0C4FDC 8D670028 */ lw $a3, 0x28($t3) +/* 0F9B10 7F0C4FE0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B14 7F0C4FE4 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9B18 7F0C4FE8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B1C 7F0C4FEC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9B20 7F0C4FF0 00408825 */ move $s1, $v0 +/* 0F9B24 7F0C4FF4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C4FF8: +/* 0F9B28 7F0C4FF8 24010002 */ li $at, 2 +/* 0F9B2C 7F0C4FFC 10410017 */ beq $v0, $at, .L7F0C505C +/* 0F9B30 7F0C5000 000278C0 */ sll $t7, $v0, 3 +/* 0F9B34 7F0C5004 01E27823 */ subu $t7, $t7, $v0 +/* 0F9B38 7F0C5008 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0F9B3C 7F0C500C 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0F9B40 7F0C5010 000F7900 */ sll $t7, $t7, 4 +/* 0F9B44 7F0C5014 01EDC821 */ addu $t9, $t7, $t5 +/* 0F9B48 7F0C5018 0C001145 */ jal viGetViewLeft +/* 0F9B4C 7F0C501C AFB90044 */ sw $t9, 0x44($sp) +/* 0F9B50 7F0C5020 00028400 */ sll $s0, $v0, 0x10 +/* 0F9B54 7F0C5024 00107403 */ sra $t6, $s0, 0x10 +/* 0F9B58 7F0C5028 0C001149 */ jal viGetViewTop +/* 0F9B5C 7F0C502C 01C08025 */ move $s0, $t6 +/* 0F9B60 7F0C5030 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9B64 7F0C5034 8FAA0044 */ lw $t2, 0x44($sp) +/* 0F9B68 7F0C5038 02202025 */ move $a0, $s1 +/* 0F9B6C 7F0C503C 02182821 */ addu $a1, $s0, $t8 +/* 0F9B70 7F0C5040 8D47002C */ lw $a3, 0x2c($t2) +/* 0F9B74 7F0C5044 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9B78 7F0C5048 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9B7C 7F0C504C 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9B80 7F0C5050 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9B84 7F0C5054 00408825 */ move $s1, $v0 +/* 0F9B88 7F0C5058 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C505C: +/* 0F9B8C 7F0C505C 8FA900D0 */ lw $t1, 0xd0($sp) +/* 0F9B90 7F0C5060 24010004 */ li $at, 4 +/* 0F9B94 7F0C5064 15210018 */ bne $t1, $at, .L7F0C50C8 +/* 0F9B98 7F0C5068 24010003 */ li $at, 3 +/* 0F9B9C 7F0C506C 10410016 */ beq $v0, $at, .L7F0C50C8 +/* 0F9BA0 7F0C5070 000260C0 */ sll $t4, $v0, 3 +/* 0F9BA4 7F0C5074 01826023 */ subu $t4, $t4, $v0 +/* 0F9BA8 7F0C5078 3C0B8008 */ lui $t3, %hi(player1_player_data) +/* 0F9BAC 7F0C507C 256B9EF0 */ addiu $t3, %lo(player1_player_data) # addiu $t3, $t3, -0x6110 +/* 0F9BB0 7F0C5080 000C6100 */ sll $t4, $t4, 4 +/* 0F9BB4 7F0C5084 018B7821 */ addu $t7, $t4, $t3 +/* 0F9BB8 7F0C5088 0C001145 */ jal viGetViewLeft +/* 0F9BBC 7F0C508C AFAF0044 */ sw $t7, 0x44($sp) +/* 0F9BC0 7F0C5090 00028400 */ sll $s0, $v0, 0x10 +/* 0F9BC4 7F0C5094 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9BC8 7F0C5098 0C001149 */ jal viGetViewTop +/* 0F9BCC 7F0C509C 01A08025 */ move $s0, $t5 +/* 0F9BD0 7F0C50A0 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9BD4 7F0C50A4 8FAE0044 */ lw $t6, 0x44($sp) +/* 0F9BD8 7F0C50A8 02202025 */ move $a0, $s1 +/* 0F9BDC 7F0C50AC 02192821 */ addu $a1, $s0, $t9 +/* 0F9BE0 7F0C50B0 8DC70030 */ lw $a3, 0x30($t6) +/* 0F9BE4 7F0C50B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9BE8 7F0C50B8 24A50060 */ addiu $a1, $a1, 0x60 +/* 0F9BEC 7F0C50BC 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9BF0 7F0C50C0 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9BF4 7F0C50C4 00408825 */ move $s1, $v0 +.L7F0C50C8: +/* 0F9BF8 7F0C50C8 3C038008 */ lui $v1, %hi(pPlayer) +/* 0F9BFC 7F0C50CC 1000029D */ b .L7F0C5B44 +/* 0F9C00 7F0C50D0 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C50D4: +/* 0F9C04 7F0C50D4 24010001 */ li $at, 1 +/* 0F9C08 7F0C50D8 144101A9 */ bne $v0, $at, .L7F0C5780 +/* 0F9C0C 7F0C50DC 3C048009 */ lui $a0, %hi(is_gameover_flag) +/* 0F9C10 7F0C50E0 8C84C704 */ lw $a0, %lo(is_gameover_flag)($a0) +/* 0F9C14 7F0C50E4 2C980001 */ sltiu $t8, $a0, 1 +/* 0F9C18 7F0C50E8 13000005 */ beqz $t8, .L7F0C5100 +/* 0F9C1C 7F0C50EC 03002025 */ move $a0, $t8 +/* 0F9C20 7F0C50F0 3C048009 */ lui $a0, %hi(stop_play_flag) +/* 0F9C24 7F0C50F4 8C84C700 */ lw $a0, %lo(stop_play_flag)($a0) +/* 0F9C28 7F0C50F8 2C8A0001 */ sltiu $t2, $a0, 1 +/* 0F9C2C 7F0C50FC 01402025 */ move $a0, $t2 +.L7F0C5100: +/* 0F9C30 7F0C5100 0FC30FD7 */ jal true_if_displaying_rank_in_mp +/* 0F9C34 7F0C5104 00000000 */ nop +/* 0F9C38 7F0C5108 10400034 */ beqz $v0, .L7F0C51DC +/* 0F9C3C 7F0C510C 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9C40 7F0C5110 0FC30F25 */ jal write_playerrank_to_buffer +/* 0F9C44 7F0C5114 8FA500D4 */ lw $a1, 0xd4($sp) +/* 0F9C48 7F0C5118 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0F9C4C 7F0C511C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0F9C50 7F0C5120 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9C54 7F0C5124 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9C58 7F0C5128 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9C5C 7F0C512C 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9C60 7F0C5130 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9C64 7F0C5134 AFA00014 */ sw $zero, 0x14($sp) +/* 0F9C68 7F0C5138 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9C6C 7F0C513C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9C70 7F0C5140 0C001145 */ jal viGetViewLeft +/* 0F9C74 7F0C5144 00000000 */ nop +/* 0F9C78 7F0C5148 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9C7C 7F0C514C 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 0F9C80 7F0C5150 004C5821 */ addu $t3, $v0, $t4 +/* 0F9C84 7F0C5154 000F6843 */ sra $t5, $t7, 1 +/* 0F9C88 7F0C5158 016D2023 */ subu $a0, $t3, $t5 +/* 0F9C8C 7F0C515C 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9C90 7F0C5160 0C001149 */ jal viGetViewTop +/* 0F9C94 7F0C5164 AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9C98 7F0C5168 8FB900BC */ lw $t9, 0xbc($sp) +/* 0F9C9C 7F0C516C 00197043 */ sra $t6, $t9, 1 +/* 0F9CA0 7F0C5170 004EC023 */ subu $t8, $v0, $t6 +/* 0F9CA4 7F0C5174 270A0025 */ addiu $t2, $t8, 0x25 +/* 0F9CA8 7F0C5178 0C001107 */ jal viGetX +/* 0F9CAC 7F0C517C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0F9CB0 7F0C5180 00028400 */ sll $s0, $v0, 0x10 +/* 0F9CB4 7F0C5184 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9CB8 7F0C5188 0C00110B */ jal viGetY +/* 0F9CBC 7F0C518C 01208025 */ move $s0, $t1 +/* 0F9CC0 7F0C5190 3C0C8004 */ lui $t4, %hi(ptrSecondFontTableSmall) +/* 0F9CC4 7F0C5194 3C0F8004 */ lui $t7, %hi(ptrFirstFontTableSmall) +/* 0F9CC8 7F0C5198 8DEF0EAC */ lw $t7, %lo(ptrFirstFontTableSmall)($t7) +/* 0F9CCC 7F0C519C 8D8C0EB0 */ lw $t4, %lo(ptrSecondFontTableSmall)($t4) +/* 0F9CD0 7F0C51A0 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0F9CD4 7F0C51A4 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0F9CD8 7F0C51A8 AFAB0018 */ sw $t3, 0x18($sp) +/* 0F9CDC 7F0C51AC 02202025 */ move $a0, $s1 +/* 0F9CE0 7F0C51B0 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9CE4 7F0C51B4 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9CE8 7F0C51B8 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9CEC 7F0C51BC AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9CF0 7F0C51C0 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9CF4 7F0C51C4 AFA00024 */ sw $zero, 0x24($sp) +/* 0F9CF8 7F0C51C8 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9CFC 7F0C51CC AFAF0014 */ sw $t7, 0x14($sp) +/* 0F9D00 7F0C51D0 0FC2B6AF */ jal en_text_write_stuff +/* 0F9D04 7F0C51D4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0F9D08 7F0C51D8 00408825 */ move $s1, $v0 +.L7F0C51DC: +/* 0F9D0C 7F0C51DC 0FC30776 */ jal get_textptr_for_textID +/* 0F9D10 7F0C51E0 3404A01C */ li $a0, 40988 +/* 0F9D14 7F0C51E4 3404A01E */ li $a0, 40990 +/* 0F9D18 7F0C51E8 0FC30776 */ jal get_textptr_for_textID +/* 0F9D1C 7F0C51EC AFA2004C */ sw $v0, 0x4c($sp) +/* 0F9D20 7F0C51F0 8FA700D4 */ lw $a3, 0xd4($sp) +/* 0F9D24 7F0C51F4 3C058006 */ lui $a1, %hi(ascii_pnum_LOSSES) +/* 0F9D28 7F0C51F8 24A5BC38 */ addiu $a1, %lo(ascii_pnum_LOSSES) # addiu $a1, $a1, -0x43c8 +/* 0F9D2C 7F0C51FC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0F9D30 7F0C5200 27A400AC */ addiu $a0, $sp, 0xac +/* 0F9D34 7F0C5204 AFA20010 */ sw $v0, 0x10($sp) +/* 0F9D38 7F0C5208 0C002B25 */ jal sprintf +/* 0F9D3C 7F0C520C 24E70001 */ addiu $a3, $a3, 1 +/* 0F9D40 7F0C5210 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0F9D44 7F0C5214 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0F9D48 7F0C5218 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0F9D4C 7F0C521C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0F9D50 7F0C5220 27A400BC */ addiu $a0, $sp, 0xbc +/* 0F9D54 7F0C5224 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0F9D58 7F0C5228 27A600AC */ addiu $a2, $sp, 0xac +/* 0F9D5C 7F0C522C AFA00014 */ sw $zero, 0x14($sp) +/* 0F9D60 7F0C5230 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0F9D64 7F0C5234 AFAD0010 */ sw $t5, 0x10($sp) +/* 0F9D68 7F0C5238 0C001145 */ jal viGetViewLeft +/* 0F9D6C 7F0C523C 00000000 */ nop +/* 0F9D70 7F0C5240 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9D74 7F0C5244 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0F9D78 7F0C5248 00597021 */ addu $t6, $v0, $t9 +/* 0F9D7C 7F0C524C 00185043 */ sra $t2, $t8, 1 +/* 0F9D80 7F0C5250 01CA2023 */ subu $a0, $t6, $t2 +/* 0F9D84 7F0C5254 24840050 */ addiu $a0, $a0, 0x50 +/* 0F9D88 7F0C5258 0C001149 */ jal viGetViewTop +/* 0F9D8C 7F0C525C AFA400CC */ sw $a0, 0xcc($sp) +/* 0F9D90 7F0C5260 8FA900BC */ lw $t1, 0xbc($sp) +/* 0F9D94 7F0C5264 00096043 */ sra $t4, $t1, 1 +/* 0F9D98 7F0C5268 004C7823 */ subu $t7, $v0, $t4 +/* 0F9D9C 7F0C526C 25EB0035 */ addiu $t3, $t7, 0x35 +/* 0F9DA0 7F0C5270 0C001107 */ jal viGetX +/* 0F9DA4 7F0C5274 AFAB00C8 */ sw $t3, 0xc8($sp) +/* 0F9DA8 7F0C5278 00028400 */ sll $s0, $v0, 0x10 +/* 0F9DAC 7F0C527C 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9DB0 7F0C5280 0C00110B */ jal viGetY +/* 0F9DB4 7F0C5284 01A08025 */ move $s0, $t5 +/* 0F9DB8 7F0C5288 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0F9DBC 7F0C528C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0F9DC0 7F0C5290 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0F9DC4 7F0C5294 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0F9DC8 7F0C5298 3C0EFF40 */ lui $t6, (0xFF4040B0 >> 16) # lui $t6, 0xff40 +/* 0F9DCC 7F0C529C 35CE40B0 */ ori $t6, (0xFF4040B0 & 0xFFFF) # ori $t6, $t6, 0x40b0 +/* 0F9DD0 7F0C52A0 AFAE0018 */ sw $t6, 0x18($sp) +/* 0F9DD4 7F0C52A4 02202025 */ move $a0, $s1 +/* 0F9DD8 7F0C52A8 27A500CC */ addiu $a1, $sp, 0xcc +/* 0F9DDC 7F0C52AC 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0F9DE0 7F0C52B0 27A700AC */ addiu $a3, $sp, 0xac +/* 0F9DE4 7F0C52B4 AFB0001C */ sw $s0, 0x1c($sp) +/* 0F9DE8 7F0C52B8 AFA20020 */ sw $v0, 0x20($sp) +/* 0F9DEC 7F0C52BC AFA00024 */ sw $zero, 0x24($sp) +/* 0F9DF0 7F0C52C0 AFA00028 */ sw $zero, 0x28($sp) +/* 0F9DF4 7F0C52C4 AFB80014 */ sw $t8, 0x14($sp) +/* 0F9DF8 7F0C52C8 0FC2B6AF */ jal en_text_write_stuff +/* 0F9DFC 7F0C52CC AFB90010 */ sw $t9, 0x10($sp) +/* 0F9E00 7F0C52D0 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0F9E04 7F0C52D4 24010002 */ li $at, 2 +/* 0F9E08 7F0C52D8 00408825 */ move $s1, $v0 +/* 0F9E0C 7F0C52DC 15410062 */ bne $t2, $at, .L7F0C5468 +/* 0F9E10 7F0C52E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0F9E14 7F0C52E4 8FA200D4 */ lw $v0, 0xd4($sp) +/* 0F9E18 7F0C52E8 3C0D8008 */ lui $t5, %hi(player1_player_data + 0x24) +/* 0F9E1C 7F0C52EC 10400016 */ beqz $v0, .L7F0C5348 +/* 0F9E20 7F0C52F0 00000000 */ nop +/* 0F9E24 7F0C52F4 0C001145 */ jal viGetViewLeft +/* 0F9E28 7F0C52F8 00000000 */ nop +/* 0F9E2C 7F0C52FC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E30 7F0C5300 00104C03 */ sra $t1, $s0, 0x10 +/* 0F9E34 7F0C5304 0C001149 */ jal viGetViewTop +/* 0F9E38 7F0C5308 01208025 */ move $s0, $t1 +/* 0F9E3C 7F0C530C 8FAF00D4 */ lw $t7, 0xd4($sp) +/* 0F9E40 7F0C5310 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0F9E44 7F0C5314 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9E48 7F0C5318 000F5880 */ sll $t3, $t7, 2 +/* 0F9E4C 7F0C531C 00EB3821 */ addu $a3, $a3, $t3 +/* 0F9E50 7F0C5320 020C2821 */ addu $a1, $s0, $t4 +/* 0F9E54 7F0C5324 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9E58 7F0C5328 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9E5C 7F0C532C 02202025 */ move $a0, $s1 +/* 0F9E60 7F0C5330 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9E64 7F0C5334 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9E68 7F0C5338 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9E6C 7F0C533C 00408825 */ move $s1, $v0 +/* 0F9E70 7F0C5340 10000019 */ b .L7F0C53A8 +/* 0F9E74 7F0C5344 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C5348: +/* 0F9E78 7F0C5348 8DAD9F14 */ lw $t5, %lo(player1_player_data + 0x24)($t5) +/* 0F9E7C 7F0C534C 59A00017 */ blezl $t5, .L7F0C53AC +/* 0F9E80 7F0C5350 24010001 */ li $at, 1 +/* 0F9E84 7F0C5354 0C001145 */ jal viGetViewLeft +/* 0F9E88 7F0C5358 00000000 */ nop +/* 0F9E8C 7F0C535C 00028400 */ sll $s0, $v0, 0x10 +/* 0F9E90 7F0C5360 0010CC03 */ sra $t9, $s0, 0x10 +/* 0F9E94 7F0C5364 0C001149 */ jal viGetViewTop +/* 0F9E98 7F0C5368 03208025 */ move $s0, $t9 +/* 0F9E9C 7F0C536C 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0F9EA0 7F0C5370 8FB800A8 */ lw $t8, 0xa8($sp) +/* 0F9EA4 7F0C5374 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9EA8 7F0C5378 000E5080 */ sll $t2, $t6, 2 +/* 0F9EAC 7F0C537C 00EA3821 */ addu $a3, $a3, $t2 +/* 0F9EB0 7F0C5380 24090003 */ li $t1, 3 +/* 0F9EB4 7F0C5384 02182821 */ addu $a1, $s0, $t8 +/* 0F9EB8 7F0C5388 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9EBC 7F0C538C AFA90010 */ sw $t1, 0x10($sp) +/* 0F9EC0 7F0C5390 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9EC4 7F0C5394 02202025 */ move $a0, $s1 +/* 0F9EC8 7F0C5398 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9ECC 7F0C539C 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9ED0 7F0C53A0 00408825 */ move $s1, $v0 +/* 0F9ED4 7F0C53A4 8FA200D4 */ lw $v0, 0xd4($sp) +.L7F0C53A8: +/* 0F9ED8 7F0C53A8 24010001 */ li $at, 1 +.L7F0C53AC: +/* 0F9EDC 7F0C53AC 10410016 */ beq $v0, $at, .L7F0C5408 +/* 0F9EE0 7F0C53B0 3C0E8008 */ lui $t6, %hi(player2_player_data + 0x28) +/* 0F9EE4 7F0C53B4 3C0F8008 */ lui $t7, %hi(player1_player_data) +/* 0F9EE8 7F0C53B8 25EF9EF0 */ addiu $t7, %lo(player1_player_data) # addiu $t7, $t7, -0x6110 +/* 0F9EEC 7F0C53BC 00026080 */ sll $t4, $v0, 2 +/* 0F9EF0 7F0C53C0 018F5821 */ addu $t3, $t4, $t7 +/* 0F9EF4 7F0C53C4 0C001145 */ jal viGetViewLeft +/* 0F9EF8 7F0C53C8 AFAB0044 */ sw $t3, 0x44($sp) +/* 0F9EFC 7F0C53CC 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F00 7F0C53D0 00106C03 */ sra $t5, $s0, 0x10 +/* 0F9F04 7F0C53D4 0C001149 */ jal viGetViewTop +/* 0F9F08 7F0C53D8 01A08025 */ move $s0, $t5 +/* 0F9F0C 7F0C53DC 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0F9F10 7F0C53E0 8FB80044 */ lw $t8, 0x44($sp) +/* 0F9F14 7F0C53E4 02202025 */ move $a0, $s1 +/* 0F9F18 7F0C53E8 02192821 */ addu $a1, $s0, $t9 +/* 0F9F1C 7F0C53EC 8F070094 */ lw $a3, 0x94($t8) +/* 0F9F20 7F0C53F0 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9F24 7F0C53F4 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F28 7F0C53F8 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F2C 7F0C53FC 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F30 7F0C5400 100000DC */ b .L7F0C5774 +/* 0F9F34 7F0C5404 00408825 */ move $s1, $v0 +.L7F0C5408: +/* 0F9F38 7F0C5408 8DCE9F88 */ lw $t6, %lo(player2_player_data + 0x28)($t6) +/* 0F9F3C 7F0C540C 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0F9F40 7F0C5410 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0F9F44 7F0C5414 19C000D7 */ blez $t6, .L7F0C5774 +/* 0F9F48 7F0C5418 00025080 */ sll $t2, $v0, 2 +/* 0F9F4C 7F0C541C 01496021 */ addu $t4, $t2, $t1 +/* 0F9F50 7F0C5420 0C001145 */ jal viGetViewLeft +/* 0F9F54 7F0C5424 AFAC0044 */ sw $t4, 0x44($sp) +/* 0F9F58 7F0C5428 00028400 */ sll $s0, $v0, 0x10 +/* 0F9F5C 7F0C542C 00107C03 */ sra $t7, $s0, 0x10 +/* 0F9F60 7F0C5430 0C001149 */ jal viGetViewTop +/* 0F9F64 7F0C5434 01E08025 */ move $s0, $t7 +/* 0F9F68 7F0C5438 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0F9F6C 7F0C543C 8FAD0044 */ lw $t5, 0x44($sp) +/* 0F9F70 7F0C5440 24190003 */ li $t9, 3 +/* 0F9F74 7F0C5444 020B2821 */ addu $a1, $s0, $t3 +/* 0F9F78 7F0C5448 8DA70094 */ lw $a3, 0x94($t5) +/* 0F9F7C 7F0C544C AFB90010 */ sw $t9, 0x10($sp) +/* 0F9F80 7F0C5450 24A50050 */ addiu $a1, $a1, 0x50 +/* 0F9F84 7F0C5454 02202025 */ move $a0, $s1 +/* 0F9F88 7F0C5458 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9F8C 7F0C545C 24460056 */ addiu $a2, $v0, 0x56 +/* 0F9F90 7F0C5460 100000C4 */ b .L7F0C5774 +/* 0F9F94 7F0C5464 00408825 */ move $s1, $v0 +.L7F0C5468: +/* 0F9F98 7F0C5468 13000015 */ beqz $t8, .L7F0C54C0 +/* 0F9F9C 7F0C546C 3C0F8008 */ lui $t7, %hi(player1_player_data + 0x24) +/* 0F9FA0 7F0C5470 0C001145 */ jal viGetViewLeft +/* 0F9FA4 7F0C5474 00000000 */ nop +/* 0F9FA8 7F0C5478 00028400 */ sll $s0, $v0, 0x10 +/* 0F9FAC 7F0C547C 00107403 */ sra $t6, $s0, 0x10 +/* 0F9FB0 7F0C5480 0C001149 */ jal viGetViewTop +/* 0F9FB4 7F0C5484 01C08025 */ move $s0, $t6 +/* 0F9FB8 7F0C5488 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0F9FBC 7F0C548C 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0F9FC0 7F0C5490 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0F9FC4 7F0C5494 00096080 */ sll $t4, $t1, 2 +/* 0F9FC8 7F0C5498 00EC3821 */ addu $a3, $a3, $t4 +/* 0F9FCC 7F0C549C 020A2821 */ addu $a1, $s0, $t2 +/* 0F9FD0 7F0C54A0 24A50040 */ addiu $a1, $a1, 0x40 +/* 0F9FD4 7F0C54A4 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0F9FD8 7F0C54A8 02202025 */ move $a0, $s1 +/* 0F9FDC 7F0C54AC 24460046 */ addiu $a2, $v0, 0x46 +/* 0F9FE0 7F0C54B0 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0F9FE4 7F0C54B4 AFA00010 */ sw $zero, 0x10($sp) +/* 0F9FE8 7F0C54B8 10000018 */ b .L7F0C551C +/* 0F9FEC 7F0C54BC 00408825 */ move $s1, $v0 +.L7F0C54C0: +/* 0F9FF0 7F0C54C0 8DEF9F14 */ lw $t7, %lo(player1_player_data + 0x24)($t7) +/* 0F9FF4 7F0C54C4 59E00016 */ blezl $t7, .L7F0C5520 +/* 0F9FF8 7F0C54C8 8FAA00D4 */ lw $t2, 0xd4($sp) +/* 0F9FFC 7F0C54CC 0C001145 */ jal viGetViewLeft +/* 0FA000 7F0C54D0 00000000 */ nop +/* 0FA004 7F0C54D4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA008 7F0C54D8 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA00C 7F0C54DC 0C001149 */ jal viGetViewTop +/* 0FA010 7F0C54E0 01608025 */ move $s0, $t3 +/* 0FA014 7F0C54E4 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA018 7F0C54E8 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA01C 7F0C54EC 3C078008 */ lui $a3, %hi(player1_player_data+36) +/* 0FA020 7F0C54F0 0019C080 */ sll $t8, $t9, 2 +/* 0FA024 7F0C54F4 00F83821 */ addu $a3, $a3, $t8 +/* 0FA028 7F0C54F8 240E0003 */ li $t6, 3 +/* 0FA02C 7F0C54FC 020D2821 */ addu $a1, $s0, $t5 +/* 0FA030 7F0C5500 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA034 7F0C5504 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA038 7F0C5508 8CE79F14 */ lw $a3, %lo(player1_player_data+36)($a3) +/* 0FA03C 7F0C550C 02202025 */ move $a0, $s1 +/* 0FA040 7F0C5510 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA044 7F0C5514 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA048 7F0C5518 00408825 */ move $s1, $v0 +.L7F0C551C: +/* 0FA04C 7F0C551C 8FAA00D4 */ lw $t2, 0xd4($sp) +.L7F0C5520: +/* 0FA050 7F0C5520 24010001 */ li $at, 1 +/* 0FA054 7F0C5524 3C188008 */ lui $t8, %hi(player2_player_data + 0x28) +/* 0FA058 7F0C5528 11410015 */ beq $t2, $at, .L7F0C5580 +/* 0FA05C 7F0C552C 000A4880 */ sll $t1, $t2, 2 +/* 0FA060 7F0C5530 3C0C8008 */ lui $t4, %hi(player1_player_data) +/* 0FA064 7F0C5534 258C9EF0 */ addiu $t4, %lo(player1_player_data) # addiu $t4, $t4, -0x6110 +/* 0FA068 7F0C5538 012C7821 */ addu $t7, $t1, $t4 +/* 0FA06C 7F0C553C 0C001145 */ jal viGetViewLeft +/* 0FA070 7F0C5540 AFAF0044 */ sw $t7, 0x44($sp) +/* 0FA074 7F0C5544 00028400 */ sll $s0, $v0, 0x10 +/* 0FA078 7F0C5548 00105C03 */ sra $t3, $s0, 0x10 +/* 0FA07C 7F0C554C 0C001149 */ jal viGetViewTop +/* 0FA080 7F0C5550 01608025 */ move $s0, $t3 +/* 0FA084 7F0C5554 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 0FA088 7F0C5558 8FB90044 */ lw $t9, 0x44($sp) +/* 0FA08C 7F0C555C 02202025 */ move $a0, $s1 +/* 0FA090 7F0C5560 020D2821 */ addu $a1, $s0, $t5 +/* 0FA094 7F0C5564 8F270094 */ lw $a3, 0x94($t9) +/* 0FA098 7F0C5568 AFA00010 */ sw $zero, 0x10($sp) +/* 0FA09C 7F0C556C 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA0A0 7F0C5570 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA0A4 7F0C5574 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA0A8 7F0C5578 10000019 */ b .L7F0C55E0 +/* 0FA0AC 7F0C557C 00408825 */ move $s1, $v0 +.L7F0C5580: +/* 0FA0B0 7F0C5580 8F189F88 */ lw $t8, %lo(player2_player_data + 0x28)($t8) +/* 0FA0B4 7F0C5584 8FAE00D4 */ lw $t6, 0xd4($sp) +/* 0FA0B8 7F0C5588 3C098008 */ lui $t1, %hi(player1_player_data) +/* 0FA0BC 7F0C558C 1B000014 */ blez $t8, .L7F0C55E0 +/* 0FA0C0 7F0C5590 000E5080 */ sll $t2, $t6, 2 +/* 0FA0C4 7F0C5594 25299EF0 */ addiu $t1, %lo(player1_player_data) # addiu $t1, $t1, -0x6110 +/* 0FA0C8 7F0C5598 01496021 */ addu $t4, $t2, $t1 +/* 0FA0CC 7F0C559C 0C001145 */ jal viGetViewLeft +/* 0FA0D0 7F0C55A0 AFAC0044 */ sw $t4, 0x44($sp) +/* 0FA0D4 7F0C55A4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA0D8 7F0C55A8 00107C03 */ sra $t7, $s0, 0x10 +/* 0FA0DC 7F0C55AC 0C001149 */ jal viGetViewTop +/* 0FA0E0 7F0C55B0 01E08025 */ move $s0, $t7 +/* 0FA0E4 7F0C55B4 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA0E8 7F0C55B8 8FAD0044 */ lw $t5, 0x44($sp) +/* 0FA0EC 7F0C55BC 24190003 */ li $t9, 3 +/* 0FA0F0 7F0C55C0 020B2821 */ addu $a1, $s0, $t3 +/* 0FA0F4 7F0C55C4 8DA70094 */ lw $a3, 0x94($t5) +/* 0FA0F8 7F0C55C8 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA0FC 7F0C55CC 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA100 7F0C55D0 02202025 */ move $a0, $s1 +/* 0FA104 7F0C55D4 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA108 7F0C55D8 24460046 */ addiu $a2, $v0, 0x46 +/* 0FA10C 7F0C55DC 00408825 */ move $s1, $v0 +.L7F0C55E0: +/* 0FA110 7F0C55E0 8FB800D4 */ lw $t8, 0xd4($sp) +/* 0FA114 7F0C55E4 24010002 */ li $at, 2 +/* 0FA118 7F0C55E8 3C0D8008 */ lui $t5, %hi(player3_player_data + 0x2C) +/* 0FA11C 7F0C55EC 13010015 */ beq $t8, $at, .L7F0C5644 +/* 0FA120 7F0C55F0 00187080 */ sll $t6, $t8, 2 +/* 0FA124 7F0C55F4 3C0A8008 */ lui $t2, %hi(player1_player_data) +/* 0FA128 7F0C55F8 254A9EF0 */ addiu $t2, %lo(player1_player_data) # addiu $t2, $t2, -0x6110 +/* 0FA12C 7F0C55FC 01CA4821 */ addu $t1, $t6, $t2 +/* 0FA130 7F0C5600 0C001145 */ jal viGetViewLeft +/* 0FA134 7F0C5604 AFA90044 */ sw $t1, 0x44($sp) +/* 0FA138 7F0C5608 00028400 */ sll $s0, $v0, 0x10 +/* 0FA13C 7F0C560C 00106403 */ sra $t4, $s0, 0x10 +/* 0FA140 7F0C5610 0C001149 */ jal viGetViewTop +/* 0FA144 7F0C5614 01808025 */ move $s0, $t4 +/* 0FA148 7F0C5618 8FAF00A8 */ lw $t7, 0xa8($sp) +/* 0FA14C 7F0C561C 8FAB0044 */ lw $t3, 0x44($sp) +/* 0FA150 7F0C5620 02202025 */ move $a0, $s1 +/* 0FA154 7F0C5624 020F2821 */ addu $a1, $s0, $t7 +/* 0FA158 7F0C5628 8D670104 */ lw $a3, 0x104($t3) +/* 0FA15C 7F0C562C AFA00010 */ sw $zero, 0x10($sp) +/* 0FA160 7F0C5630 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA164 7F0C5634 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA168 7F0C5638 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA16C 7F0C563C 10000019 */ b .L7F0C56A4 +/* 0FA170 7F0C5640 00408825 */ move $s1, $v0 +.L7F0C5644: +/* 0FA174 7F0C5644 8DAD9FFC */ lw $t5, %lo(player3_player_data + 0x2C)($t5) +/* 0FA178 7F0C5648 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA17C 7F0C564C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA180 7F0C5650 19A00014 */ blez $t5, .L7F0C56A4 +/* 0FA184 7F0C5654 0019C080 */ sll $t8, $t9, 2 +/* 0FA188 7F0C5658 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA18C 7F0C565C 030E5021 */ addu $t2, $t8, $t6 +/* 0FA190 7F0C5660 0C001145 */ jal viGetViewLeft +/* 0FA194 7F0C5664 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA198 7F0C5668 00028400 */ sll $s0, $v0, 0x10 +/* 0FA19C 7F0C566C 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA1A0 7F0C5670 0C001149 */ jal viGetViewTop +/* 0FA1A4 7F0C5674 01208025 */ move $s0, $t1 +/* 0FA1A8 7F0C5678 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA1AC 7F0C567C 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA1B0 7F0C5680 240B0003 */ li $t3, 3 +/* 0FA1B4 7F0C5684 020C2821 */ addu $a1, $s0, $t4 +/* 0FA1B8 7F0C5688 8DE70104 */ lw $a3, 0x104($t7) +/* 0FA1BC 7F0C568C AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA1C0 7F0C5690 24A50040 */ addiu $a1, $a1, 0x40 +/* 0FA1C4 7F0C5694 02202025 */ move $a0, $s1 +/* 0FA1C8 7F0C5698 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA1CC 7F0C569C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA1D0 7F0C56A0 00408825 */ move $s1, $v0 +.L7F0C56A4: +/* 0FA1D4 7F0C56A4 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA1D8 7F0C56A8 24010004 */ li $at, 4 +/* 0FA1DC 7F0C56AC 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA1E0 7F0C56B0 15A10030 */ bne $t5, $at, .L7F0C5774 +/* 0FA1E4 7F0C56B4 24010003 */ li $at, 3 +/* 0FA1E8 7F0C56B8 13210016 */ beq $t9, $at, .L7F0C5714 +/* 0FA1EC 7F0C56BC 3C0B8008 */ lui $t3, %hi(player3_player_data + 0x30) +/* 0FA1F0 7F0C56C0 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA1F4 7F0C56C4 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA1F8 7F0C56C8 0019C080 */ sll $t8, $t9, 2 +/* 0FA1FC 7F0C56CC 030E5021 */ addu $t2, $t8, $t6 +/* 0FA200 7F0C56D0 0C001145 */ jal viGetViewLeft +/* 0FA204 7F0C56D4 AFAA0044 */ sw $t2, 0x44($sp) +/* 0FA208 7F0C56D8 00028400 */ sll $s0, $v0, 0x10 +/* 0FA20C 7F0C56DC 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA210 7F0C56E0 0C001149 */ jal viGetViewTop +/* 0FA214 7F0C56E4 01208025 */ move $s0, $t1 +/* 0FA218 7F0C56E8 8FAC00A8 */ lw $t4, 0xa8($sp) +/* 0FA21C 7F0C56EC 8FAF0044 */ lw $t7, 0x44($sp) +/* 0FA220 7F0C56F0 02202025 */ move $a0, $s1 +/* 0FA224 7F0C56F4 020C2821 */ addu $a1, $s0, $t4 +/* 0FA228 7F0C56F8 8DE70174 */ lw $a3, 0x174($t7) +/* 0FA22C 7F0C56FC AFA00010 */ sw $zero, 0x10($sp) +/* 0FA230 7F0C5700 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA234 7F0C5704 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA238 7F0C5708 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA23C 7F0C570C 10000019 */ b .L7F0C5774 +/* 0FA240 7F0C5710 00408825 */ move $s1, $v0 +.L7F0C5714: +/* 0FA244 7F0C5714 8D6BA070 */ lw $t3, %lo(player4_player_data+0x30)($t3) +/* 0FA248 7F0C5718 8FAD00D4 */ lw $t5, 0xd4($sp) +/* 0FA24C 7F0C571C 3C188008 */ lui $t8, %hi(player1_player_data) +/* 0FA250 7F0C5720 19600014 */ blez $t3, .L7F0C5774 +/* 0FA254 7F0C5724 000DC880 */ sll $t9, $t5, 2 +/* 0FA258 7F0C5728 27189EF0 */ addiu $t8, %lo(player1_player_data) # addiu $t8, $t8, -0x6110 +/* 0FA25C 7F0C572C 03387021 */ addu $t6, $t9, $t8 +/* 0FA260 7F0C5730 0C001145 */ jal viGetViewLeft +/* 0FA264 7F0C5734 AFAE0044 */ sw $t6, 0x44($sp) +/* 0FA268 7F0C5738 00028400 */ sll $s0, $v0, 0x10 +/* 0FA26C 7F0C573C 00105403 */ sra $t2, $s0, 0x10 +/* 0FA270 7F0C5740 0C001149 */ jal viGetViewTop +/* 0FA274 7F0C5744 01408025 */ move $s0, $t2 +/* 0FA278 7F0C5748 8FA900A8 */ lw $t1, 0xa8($sp) +/* 0FA27C 7F0C574C 8FAC0044 */ lw $t4, 0x44($sp) +/* 0FA280 7F0C5750 240F0003 */ li $t7, 3 +/* 0FA284 7F0C5754 02092821 */ addu $a1, $s0, $t1 +/* 0FA288 7F0C5758 8D870174 */ lw $a3, 0x174($t4) +/* 0FA28C 7F0C575C AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA290 7F0C5760 24A50060 */ addiu $a1, $a1, 0x60 +/* 0FA294 7F0C5764 02202025 */ move $a0, $s1 +/* 0FA298 7F0C5768 0FC30D68 */ jal display_text_for_playerdata_on_MP_menu +/* 0FA29C 7F0C576C 24460056 */ addiu $a2, $v0, 0x56 +/* 0FA2A0 7F0C5770 00408825 */ move $s1, $v0 +.L7F0C5774: +/* 0FA2A4 7F0C5774 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA2A8 7F0C5778 100000F2 */ b .L7F0C5B44 +/* 0FA2AC 7F0C577C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +.L7F0C5780: +/* 0FA2B0 7F0C5780 544000F1 */ bnezl $v0, .L7F0C5B48 +/* 0FA2B4 7F0C5784 8C6F29C8 */ lw $t7, 0x29c8($v1) +/* 0FA2B8 7F0C5788 8FAD00D0 */ lw $t5, 0xd0($sp) +/* 0FA2BC 7F0C578C 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA2C0 7F0C5790 29A10003 */ slti $at, $t5, 3 +/* 0FA2C4 7F0C5794 1420000A */ bnez $at, .L7F0C57C0 +/* 0FA2C8 7F0C5798 AFAB0074 */ sw $t3, 0x74($sp) +/* 0FA2CC 7F0C579C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA2D0 7F0C57A0 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0FA2D4 7F0C57A4 256EFFF9 */ addiu $t6, $t3, -7 +/* 0FA2D8 7F0C57A8 33380001 */ andi $t8, $t9, 1 +/* 0FA2DC 7F0C57AC 13000003 */ beqz $t8, .L7F0C57BC +/* 0FA2E0 7F0C57B0 25490007 */ addiu $t1, $t2, 7 +/* 0FA2E4 7F0C57B4 10000002 */ b .L7F0C57C0 +/* 0FA2E8 7F0C57B8 AFAE0074 */ sw $t6, 0x74($sp) +.L7F0C57BC: +/* 0FA2EC 7F0C57BC AFA90074 */ sw $t1, 0x74($sp) +.L7F0C57C0: +/* 0FA2F0 7F0C57C0 0FC30776 */ jal get_textptr_for_textID +/* 0FA2F4 7F0C57C4 3404A01F */ li $a0, 40991 +/* 0FA2F8 7F0C57C8 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA2FC 7F0C57CC 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA300 7F0C57D0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA304 7F0C57D4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA308 7F0C57D8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA30C 7F0C57DC 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA310 7F0C57E0 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA314 7F0C57E4 00403025 */ move $a2, $v0 +/* 0FA318 7F0C57E8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA31C 7F0C57EC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA320 7F0C57F0 AFAC0010 */ sw $t4, 0x10($sp) +/* 0FA324 7F0C57F4 0C001145 */ jal viGetViewLeft +/* 0FA328 7F0C57F8 00000000 */ nop +/* 0FA32C 7F0C57FC 8FAF0074 */ lw $t7, 0x74($sp) +/* 0FA330 7F0C5800 8FB90078 */ lw $t9, 0x78($sp) +/* 0FA334 7F0C5804 004F6821 */ addu $t5, $v0, $t7 +/* 0FA338 7F0C5808 0019C043 */ sra $t8, $t9, 1 +/* 0FA33C 7F0C580C 01B82023 */ subu $a0, $t5, $t8 +/* 0FA340 7F0C5810 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA344 7F0C5814 0C001149 */ jal viGetViewTop +/* 0FA348 7F0C5818 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA34C 7F0C581C 8FAB007C */ lw $t3, 0x7c($sp) +/* 0FA350 7F0C5820 000B7043 */ sra $t6, $t3, 1 +/* 0FA354 7F0C5824 004E5023 */ subu $t2, $v0, $t6 +/* 0FA358 7F0C5828 25490025 */ addiu $t1, $t2, 0x25 +/* 0FA35C 7F0C582C 0C001107 */ jal viGetX +/* 0FA360 7F0C5830 AFA900C8 */ sw $t1, 0xc8($sp) +/* 0FA364 7F0C5834 00028400 */ sll $s0, $v0, 0x10 +/* 0FA368 7F0C5838 00106403 */ sra $t4, $s0, 0x10 +/* 0FA36C 7F0C583C 0C00110B */ jal viGetY +/* 0FA370 7F0C5840 01808025 */ move $s0, $t4 +/* 0FA374 7F0C5844 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA378 7F0C5848 3C198004 */ lui $t9, %hi(ptrFirstFontTableSmall) +/* 0FA37C 7F0C584C 8F390EAC */ lw $t9, %lo(ptrFirstFontTableSmall)($t9) +/* 0FA380 7F0C5850 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA384 7F0C5854 3C0D00FF */ lui $t5, (0x00FF00B0 >> 16) # lui $t5, 0xff +/* 0FA388 7F0C5858 35AD00B0 */ ori $t5, (0x00FF00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0FA38C 7F0C585C AFAD0018 */ sw $t5, 0x18($sp) +/* 0FA390 7F0C5860 02202025 */ move $a0, $s1 +/* 0FA394 7F0C5864 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA398 7F0C5868 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA39C 7F0C586C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA3A0 7F0C5870 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA3A4 7F0C5874 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA3A8 7F0C5878 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA3AC 7F0C587C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA3B0 7F0C5880 AFB90014 */ sw $t9, 0x14($sp) +/* 0FA3B4 7F0C5884 0FC2B6AF */ jal en_text_write_stuff +/* 0FA3B8 7F0C5888 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA3BC 7F0C588C 00408825 */ move $s1, $v0 +/* 0FA3C0 7F0C5890 8FA400D4 */ lw $a0, 0xd4($sp) +/* 0FA3C4 7F0C5894 0FC026D4 */ jal getplayerfavoredweapon +/* 0FA3C8 7F0C5898 00002825 */ move $a1, $zero +/* 0FA3CC 7F0C589C 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA3D0 7F0C58A0 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA3D4 7F0C58A4 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA3D8 7F0C58A8 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA3DC 7F0C58AC 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA3E0 7F0C58B0 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA3E4 7F0C58B4 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA3E8 7F0C58B8 00403025 */ move $a2, $v0 +/* 0FA3EC 7F0C58BC AFA00014 */ sw $zero, 0x14($sp) +/* 0FA3F0 7F0C58C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA3F4 7F0C58C4 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA3F8 7F0C58C8 0C001145 */ jal viGetViewLeft +/* 0FA3FC 7F0C58CC 00000000 */ nop +/* 0FA400 7F0C58D0 8FAB0074 */ lw $t3, 0x74($sp) +/* 0FA404 7F0C58D4 8FAA0078 */ lw $t2, 0x78($sp) +/* 0FA408 7F0C58D8 004B7021 */ addu $t6, $v0, $t3 +/* 0FA40C 7F0C58DC 000A4843 */ sra $t1, $t2, 1 +/* 0FA410 7F0C58E0 01C92023 */ subu $a0, $t6, $t1 +/* 0FA414 7F0C58E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA418 7F0C58E8 0C001149 */ jal viGetViewTop +/* 0FA41C 7F0C58EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA420 7F0C58F0 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0FA424 7F0C58F4 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0FA428 7F0C58F8 00021C00 */ sll $v1, $v0, 0x10 +/* 0FA42C 7F0C58FC 00036403 */ sra $t4, $v1, 0x10 +/* 0FA430 7F0C5900 11E00003 */ beqz $t7, .L7F0C5910 +/* 0FA434 7F0C5904 01801825 */ move $v1, $t4 +/* 0FA438 7F0C5908 10000002 */ b .L7F0C5914 +/* 0FA43C 7F0C590C 24040004 */ li $a0, 4 +.L7F0C5910: +/* 0FA440 7F0C5910 00002025 */ move $a0, $zero +.L7F0C5914: +/* 0FA444 7F0C5914 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA448 7F0C5918 0083C821 */ addu $t9, $a0, $v1 +/* 0FA44C 7F0C591C 000DC043 */ sra $t8, $t5, 1 +/* 0FA450 7F0C5920 03385823 */ subu $t3, $t9, $t8 +/* 0FA454 7F0C5924 256A0035 */ addiu $t2, $t3, 0x35 +/* 0FA458 7F0C5928 0C001107 */ jal viGetX +/* 0FA45C 7F0C592C AFAA00C8 */ sw $t2, 0xc8($sp) +/* 0FA460 7F0C5930 00028400 */ sll $s0, $v0, 0x10 +/* 0FA464 7F0C5934 00107403 */ sra $t6, $s0, 0x10 +/* 0FA468 7F0C5938 0C00110B */ jal viGetY +/* 0FA46C 7F0C593C 01C08025 */ move $s0, $t6 +/* 0FA470 7F0C5940 3C098004 */ lui $t1, %hi(ptrSecondFontTableSmall) +/* 0FA474 7F0C5944 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA478 7F0C5948 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA47C 7F0C594C 8D290EB0 */ lw $t1, %lo(ptrSecondFontTableSmall)($t1) +/* 0FA480 7F0C5950 3C0F00FF */ lui $t7, (0x00FF00B0 >> 16) # lui $t7, 0xff +/* 0FA484 7F0C5954 35EF00B0 */ ori $t7, (0x00FF00B0 & 0xFFFF) # ori $t7, $t7, 0xb0 +/* 0FA488 7F0C5958 AFAF0018 */ sw $t7, 0x18($sp) +/* 0FA48C 7F0C595C 02202025 */ move $a0, $s1 +/* 0FA490 7F0C5960 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA494 7F0C5964 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA498 7F0C5968 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA49C 7F0C596C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA4A0 7F0C5970 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA4A4 7F0C5974 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA4A8 7F0C5978 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA4AC 7F0C597C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA4B0 7F0C5980 0FC2B6AF */ jal en_text_write_stuff +/* 0FA4B4 7F0C5984 AFA90010 */ sw $t1, 0x10($sp) +/* 0FA4B8 7F0C5988 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA4BC 7F0C598C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA4C0 7F0C5990 00408825 */ move $s1, $v0 +/* 0FA4C4 7F0C5994 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA4C8 7F0C5998 8C682A10 */ lw $t0, 0x2a10($v1) +/* 0FA4CC 7F0C599C 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA4D0 7F0C59A0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA4D4 7F0C59A4 11000031 */ beqz $t0, .L7F0C5A6C +/* 0FA4D8 7F0C59A8 01003025 */ move $a2, $t0 +/* 0FA4DC 7F0C59AC 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA4E0 7F0C59B0 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA4E4 7F0C59B4 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA4E8 7F0C59B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA4EC 7F0C59BC AFA800A4 */ sw $t0, 0xa4($sp) +/* 0FA4F0 7F0C59C0 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA4F4 7F0C59C4 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA4F8 7F0C59C8 0C001145 */ jal viGetViewLeft +/* 0FA4FC 7F0C59CC 00000000 */ nop +/* 0FA500 7F0C59D0 8FB90074 */ lw $t9, 0x74($sp) +/* 0FA504 7F0C59D4 8FAB0078 */ lw $t3, 0x78($sp) +/* 0FA508 7F0C59D8 0059C021 */ addu $t8, $v0, $t9 +/* 0FA50C 7F0C59DC 000B5043 */ sra $t2, $t3, 1 +/* 0FA510 7F0C59E0 030A2023 */ subu $a0, $t8, $t2 +/* 0FA514 7F0C59E4 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA518 7F0C59E8 0C001149 */ jal viGetViewTop +/* 0FA51C 7F0C59EC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA520 7F0C59F0 8FAE007C */ lw $t6, 0x7c($sp) +/* 0FA524 7F0C59F4 000E4843 */ sra $t1, $t6, 1 +/* 0FA528 7F0C59F8 00496023 */ subu $t4, $v0, $t1 +/* 0FA52C 7F0C59FC 258F004B */ addiu $t7, $t4, 0x4b +/* 0FA530 7F0C5A00 0C001107 */ jal viGetX +/* 0FA534 7F0C5A04 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA538 7F0C5A08 00028400 */ sll $s0, $v0, 0x10 +/* 0FA53C 7F0C5A0C 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA540 7F0C5A10 0C00110B */ jal viGetY +/* 0FA544 7F0C5A14 01A08025 */ move $s0, $t5 +/* 0FA548 7F0C5A18 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA54C 7F0C5A1C 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FA550 7F0C5A20 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FA554 7F0C5A24 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA558 7F0C5A28 3C1800FF */ lui $t8, (0x00FF00B0 >> 16) # lui $t8, 0xff +/* 0FA55C 7F0C5A2C 371800B0 */ ori $t8, (0x00FF00B0 & 0xFFFF) # ori $t8, $t8, 0xb0 +/* 0FA560 7F0C5A30 AFB80018 */ sw $t8, 0x18($sp) +/* 0FA564 7F0C5A34 02202025 */ move $a0, $s1 +/* 0FA568 7F0C5A38 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA56C 7F0C5A3C 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA570 7F0C5A40 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA574 7F0C5A44 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA578 7F0C5A48 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA57C 7F0C5A4C AFA00024 */ sw $zero, 0x24($sp) +/* 0FA580 7F0C5A50 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA584 7F0C5A54 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FA588 7F0C5A58 0FC2B6AF */ jal en_text_write_stuff +/* 0FA58C 7F0C5A5C AFB90010 */ sw $t9, 0x10($sp) +/* 0FA590 7F0C5A60 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA594 7F0C5A64 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA598 7F0C5A68 00408825 */ move $s1, $v0 +.L7F0C5A6C: +/* 0FA59C 7F0C5A6C 8C622A14 */ lw $v0, 0x2a14($v1) +/* 0FA5A0 7F0C5A70 27A4007C */ addiu $a0, $sp, 0x7c +/* 0FA5A4 7F0C5A74 27A50078 */ addiu $a1, $sp, 0x78 +/* 0FA5A8 7F0C5A78 10400032 */ beqz $v0, .L7F0C5B44 +/* 0FA5AC 7F0C5A7C 00403025 */ move $a2, $v0 +/* 0FA5B0 7F0C5A80 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA5B4 7F0C5A84 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA5B8 7F0C5A88 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA5BC 7F0C5A8C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA5C0 7F0C5A90 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA5C4 7F0C5A94 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA5C8 7F0C5A98 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA5CC 7F0C5A9C AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA5D0 7F0C5AA0 0C001145 */ jal viGetViewLeft +/* 0FA5D4 7F0C5AA4 00000000 */ nop +/* 0FA5D8 7F0C5AA8 8FAE0074 */ lw $t6, 0x74($sp) +/* 0FA5DC 7F0C5AAC 8FAC0078 */ lw $t4, 0x78($sp) +/* 0FA5E0 7F0C5AB0 004E4821 */ addu $t1, $v0, $t6 +/* 0FA5E4 7F0C5AB4 000C7843 */ sra $t7, $t4, 1 +/* 0FA5E8 7F0C5AB8 012F2023 */ subu $a0, $t1, $t7 +/* 0FA5EC 7F0C5ABC 24840050 */ addiu $a0, $a0, 0x50 +/* 0FA5F0 7F0C5AC0 0C001149 */ jal viGetViewTop +/* 0FA5F4 7F0C5AC4 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA5F8 7F0C5AC8 8FAD007C */ lw $t5, 0x7c($sp) +/* 0FA5FC 7F0C5ACC 000DC843 */ sra $t9, $t5, 1 +/* 0FA600 7F0C5AD0 00595823 */ subu $t3, $v0, $t9 +/* 0FA604 7F0C5AD4 25780058 */ addiu $t8, $t3, 0x58 +/* 0FA608 7F0C5AD8 0C001107 */ jal viGetX +/* 0FA60C 7F0C5ADC AFB800C8 */ sw $t8, 0xc8($sp) +/* 0FA610 7F0C5AE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA614 7F0C5AE4 00105403 */ sra $t2, $s0, 0x10 +/* 0FA618 7F0C5AE8 0C00110B */ jal viGetY +/* 0FA61C 7F0C5AEC 01408025 */ move $s0, $t2 +/* 0FA620 7F0C5AF0 3C0E8004 */ lui $t6, %hi(ptrSecondFontTableSmall) +/* 0FA624 7F0C5AF4 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA628 7F0C5AF8 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA62C 7F0C5AFC 8DCE0EB0 */ lw $t6, %lo(ptrSecondFontTableSmall)($t6) +/* 0FA630 7F0C5B00 3C0900FF */ lui $t1, (0x00FF00B0 >> 16) # lui $t1, 0xff +/* 0FA634 7F0C5B04 352900B0 */ ori $t1, (0x00FF00B0 & 0xFFFF) # ori $t1, $t1, 0xb0 +/* 0FA638 7F0C5B08 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA63C 7F0C5B0C 02202025 */ move $a0, $s1 +/* 0FA640 7F0C5B10 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA644 7F0C5B14 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA648 7F0C5B18 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA64C 7F0C5B1C AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA650 7F0C5B20 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA654 7F0C5B24 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA658 7F0C5B28 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA65C 7F0C5B2C AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA660 7F0C5B30 0FC2B6AF */ jal en_text_write_stuff +/* 0FA664 7F0C5B34 AFAE0010 */ sw $t6, 0x10($sp) +/* 0FA668 7F0C5B38 3C038008 */ lui $v1, %hi(pPlayer) +/* 0FA66C 7F0C5B3C 8C63A0B0 */ lw $v1, %lo(pPlayer)($v1) +/* 0FA670 7F0C5B40 00408825 */ move $s1, $v0 +.L7F0C5B44: +/* 0FA674 7F0C5B44 8C6F29C8 */ lw $t7, 0x29c8($v1) +.L7F0C5B48: +/* 0FA678 7F0C5B48 24010006 */ li $at, 6 +/* 0FA67C 7F0C5B4C 15E100B0 */ bne $t7, $at, .L7F0C5E10 +/* 0FA680 7F0C5B50 00000000 */ nop +/* 0FA684 7F0C5B54 0FC30776 */ jal get_textptr_for_textID +/* 0FA688 7F0C5B58 3404A020 */ li $a0, 40992 +/* 0FA68C 7F0C5B5C 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA690 7F0C5B60 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA694 7F0C5B64 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA698 7F0C5B68 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA69C 7F0C5B6C 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA6A0 7F0C5B70 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA6A4 7F0C5B74 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA6A8 7F0C5B78 00403025 */ move $a2, $v0 +/* 0FA6AC 7F0C5B7C AFA00014 */ sw $zero, 0x14($sp) +/* 0FA6B0 7F0C5B80 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA6B4 7F0C5B84 AFAD0010 */ sw $t5, 0x10($sp) +/* 0FA6B8 7F0C5B88 0C001145 */ jal viGetViewLeft +/* 0FA6BC 7F0C5B8C 00000000 */ nop +/* 0FA6C0 7F0C5B90 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0FA6C4 7F0C5B94 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0FA6C8 7F0C5B98 00595821 */ addu $t3, $v0, $t9 +/* 0FA6CC 7F0C5B9C 00185043 */ sra $t2, $t8, 1 +/* 0FA6D0 7F0C5BA0 016A2023 */ subu $a0, $t3, $t2 +/* 0FA6D4 7F0C5BA4 24840036 */ addiu $a0, $a0, 0x36 +/* 0FA6D8 7F0C5BA8 0C001149 */ jal viGetViewTop +/* 0FA6DC 7F0C5BAC AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA6E0 7F0C5BB0 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0FA6E4 7F0C5BB4 3C0D8008 */ lui $t5, %hi(pPlayer) +/* 0FA6E8 7F0C5BB8 8DADA0B0 */ lw $t5, %lo(pPlayer)($t5) +/* 0FA6EC 7F0C5BBC 000E6043 */ sra $t4, $t6, 1 +/* 0FA6F0 7F0C5BC0 004C4823 */ subu $t1, $v0, $t4 +/* 0FA6F4 7F0C5BC4 252F0036 */ addiu $t7, $t1, 0x36 +/* 0FA6F8 7F0C5BC8 AFAF00C8 */ sw $t7, 0xc8($sp) +/* 0FA6FC 7F0C5BCC 8DB929CC */ lw $t9, 0x29cc($t5) +/* 0FA700 7F0C5BD0 1720001E */ bnez $t9, .L7F0C5C4C +/* 0FA704 7F0C5BD4 00000000 */ nop +/* 0FA708 7F0C5BD8 0C001107 */ jal viGetX +/* 0FA70C 7F0C5BDC 00000000 */ nop +/* 0FA710 7F0C5BE0 00028400 */ sll $s0, $v0, 0x10 +/* 0FA714 7F0C5BE4 0010C403 */ sra $t8, $s0, 0x10 +/* 0FA718 7F0C5BE8 0C00110B */ jal viGetY +/* 0FA71C 7F0C5BEC 03008025 */ move $s0, $t8 +/* 0FA720 7F0C5BF0 3C0B8004 */ lui $t3, %hi(ptrSecondFontTableSmall) +/* 0FA724 7F0C5BF4 3C0A8004 */ lui $t2, %hi(ptrFirstFontTableSmall) +/* 0FA728 7F0C5BF8 8D4A0EAC */ lw $t2, %lo(ptrFirstFontTableSmall)($t2) +/* 0FA72C 7F0C5BFC 8D6B0EB0 */ lw $t3, %lo(ptrSecondFontTableSmall)($t3) +/* 0FA730 7F0C5C00 3C0EA0FF */ lui $t6, (0xA0FFA0F0 >> 16) # lui $t6, 0xa0ff +/* 0FA734 7F0C5C04 3C0C0070 */ lui $t4, (0x007000A0 >> 16) # lui $t4, 0x70 +/* 0FA738 7F0C5C08 358C00A0 */ ori $t4, (0x007000A0 & 0xFFFF) # ori $t4, $t4, 0xa0 +/* 0FA73C 7F0C5C0C 35CEA0F0 */ ori $t6, (0xA0FFA0F0 & 0xFFFF) # ori $t6, $t6, 0xa0f0 +/* 0FA740 7F0C5C10 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FA744 7F0C5C14 AFAC001C */ sw $t4, 0x1c($sp) +/* 0FA748 7F0C5C18 02202025 */ move $a0, $s1 +/* 0FA74C 7F0C5C1C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA750 7F0C5C20 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA754 7F0C5C24 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA758 7F0C5C28 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA75C 7F0C5C2C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA760 7F0C5C30 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA764 7F0C5C34 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA768 7F0C5C38 AFAA0014 */ sw $t2, 0x14($sp) +/* 0FA76C 7F0C5C3C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA770 7F0C5C40 AFAB0010 */ sw $t3, 0x10($sp) +/* 0FA774 7F0C5C44 1000001A */ b .L7F0C5CB0 +/* 0FA778 7F0C5C48 00408825 */ move $s1, $v0 +.L7F0C5C4C: +/* 0FA77C 7F0C5C4C 0C001107 */ jal viGetX +/* 0FA780 7F0C5C50 00000000 */ nop +/* 0FA784 7F0C5C54 00028400 */ sll $s0, $v0, 0x10 +/* 0FA788 7F0C5C58 00104C03 */ sra $t1, $s0, 0x10 +/* 0FA78C 7F0C5C5C 0C00110B */ jal viGetY +/* 0FA790 7F0C5C60 01208025 */ move $s0, $t1 +/* 0FA794 7F0C5C64 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) +/* 0FA798 7F0C5C68 3C0D8004 */ lui $t5, %hi(ptrFirstFontTableSmall) +/* 0FA79C 7F0C5C6C 8DAD0EAC */ lw $t5, %lo(ptrFirstFontTableSmall)($t5) +/* 0FA7A0 7F0C5C70 8DEF0EB0 */ lw $t7, %lo(ptrSecondFontTableSmall)($t7) +/* 0FA7A4 7F0C5C74 3C1900FF */ lui $t9, (0x00FF00B0 >> 16) # lui $t9, 0xff +/* 0FA7A8 7F0C5C78 373900B0 */ ori $t9, (0x00FF00B0 & 0xFFFF) # ori $t9, $t9, 0xb0 +/* 0FA7AC 7F0C5C7C AFB90018 */ sw $t9, 0x18($sp) +/* 0FA7B0 7F0C5C80 02202025 */ move $a0, $s1 +/* 0FA7B4 7F0C5C84 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA7B8 7F0C5C88 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA7BC 7F0C5C8C 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA7C0 7F0C5C90 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA7C4 7F0C5C94 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA7C8 7F0C5C98 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA7CC 7F0C5C9C AFA00028 */ sw $zero, 0x28($sp) +/* 0FA7D0 7F0C5CA0 AFAD0014 */ sw $t5, 0x14($sp) +/* 0FA7D4 7F0C5CA4 0FC2B6AF */ jal en_text_write_stuff +/* 0FA7D8 7F0C5CA8 AFAF0010 */ sw $t7, 0x10($sp) +/* 0FA7DC 7F0C5CAC 00408825 */ move $s1, $v0 +.L7F0C5CB0: +/* 0FA7E0 7F0C5CB0 0FC30776 */ jal get_textptr_for_textID +/* 0FA7E4 7F0C5CB4 3404A021 */ li $a0, 40993 +/* 0FA7E8 7F0C5CB8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA7EC 7F0C5CBC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA7F0 7F0C5CC0 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FA7F4 7F0C5CC4 AFA200A4 */ sw $v0, 0xa4($sp) +/* 0FA7F8 7F0C5CC8 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FA7FC 7F0C5CCC 27A400BC */ addiu $a0, $sp, 0xbc +/* 0FA800 7F0C5CD0 27A500C0 */ addiu $a1, $sp, 0xc0 +/* 0FA804 7F0C5CD4 00403025 */ move $a2, $v0 +/* 0FA808 7F0C5CD8 AFA00014 */ sw $zero, 0x14($sp) +/* 0FA80C 7F0C5CDC 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FA810 7F0C5CE0 AFB80010 */ sw $t8, 0x10($sp) +/* 0FA814 7F0C5CE4 0C001145 */ jal viGetViewLeft +/* 0FA818 7F0C5CE8 00000000 */ nop +/* 0FA81C 7F0C5CEC 8FAB00A8 */ lw $t3, 0xa8($sp) +/* 0FA820 7F0C5CF0 8FAE00C0 */ lw $t6, 0xc0($sp) +/* 0FA824 7F0C5CF4 004B5021 */ addu $t2, $v0, $t3 +/* 0FA828 7F0C5CF8 000E6043 */ sra $t4, $t6, 1 +/* 0FA82C 7F0C5CFC 014C2023 */ subu $a0, $t2, $t4 +/* 0FA830 7F0C5D00 24840068 */ addiu $a0, $a0, 0x68 +/* 0FA834 7F0C5D04 0C001149 */ jal viGetViewTop +/* 0FA838 7F0C5D08 AFA400CC */ sw $a0, 0xcc($sp) +/* 0FA83C 7F0C5D0C 8FA900BC */ lw $t1, 0xbc($sp) +/* 0FA840 7F0C5D10 3C188008 */ lui $t8, %hi(pPlayer) +/* 0FA844 7F0C5D14 8F18A0B0 */ lw $t8, %lo(pPlayer)($t8) +/* 0FA848 7F0C5D18 00097843 */ sra $t7, $t1, 1 +/* 0FA84C 7F0C5D1C 004F6823 */ subu $t5, $v0, $t7 +/* 0FA850 7F0C5D20 25B90036 */ addiu $t9, $t5, 0x36 +/* 0FA854 7F0C5D24 AFB900C8 */ sw $t9, 0xc8($sp) +/* 0FA858 7F0C5D28 8F0B29CC */ lw $t3, 0x29cc($t8) +/* 0FA85C 7F0C5D2C 24010001 */ li $at, 1 +/* 0FA860 7F0C5D30 1561001E */ bne $t3, $at, .L7F0C5DAC +/* 0FA864 7F0C5D34 00000000 */ nop +/* 0FA868 7F0C5D38 0C001107 */ jal viGetX +/* 0FA86C 7F0C5D3C 00000000 */ nop +/* 0FA870 7F0C5D40 00028400 */ sll $s0, $v0, 0x10 +/* 0FA874 7F0C5D44 00107403 */ sra $t6, $s0, 0x10 +/* 0FA878 7F0C5D48 0C00110B */ jal viGetY +/* 0FA87C 7F0C5D4C 01C08025 */ move $s0, $t6 +/* 0FA880 7F0C5D50 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0FA884 7F0C5D54 3C0C8004 */ lui $t4, %hi(ptrFirstFontTableSmall) +/* 0FA888 7F0C5D58 8D8C0EAC */ lw $t4, %lo(ptrFirstFontTableSmall)($t4) +/* 0FA88C 7F0C5D5C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0FA890 7F0C5D60 3C09A0FF */ lui $t1, (0xA0FFA0F0 >> 16) # lui $t1, 0xa0ff +/* 0FA894 7F0C5D64 3C0F0070 */ lui $t7, (0x007000A0 >> 16) # lui $t7, 0x70 +/* 0FA898 7F0C5D68 35EF00A0 */ ori $t7, (0x007000A0 & 0xFFFF) # ori $t7, $t7, 0xa0 +/* 0FA89C 7F0C5D6C 3529A0F0 */ ori $t1, (0xA0FFA0F0 & 0xFFFF) # ori $t1, $t1, 0xa0f0 +/* 0FA8A0 7F0C5D70 AFA90018 */ sw $t1, 0x18($sp) +/* 0FA8A4 7F0C5D74 AFAF001C */ sw $t7, 0x1c($sp) +/* 0FA8A8 7F0C5D78 02202025 */ move $a0, $s1 +/* 0FA8AC 7F0C5D7C 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA8B0 7F0C5D80 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA8B4 7F0C5D84 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA8B8 7F0C5D88 AFB00020 */ sw $s0, 0x20($sp) +/* 0FA8BC 7F0C5D8C AFA20024 */ sw $v0, 0x24($sp) +/* 0FA8C0 7F0C5D90 AFA00028 */ sw $zero, 0x28($sp) +/* 0FA8C4 7F0C5D94 AFA0002C */ sw $zero, 0x2c($sp) +/* 0FA8C8 7F0C5D98 AFAC0014 */ sw $t4, 0x14($sp) +/* 0FA8CC 7F0C5D9C 0FC2B9BB */ jal jp_text_write_stuff +/* 0FA8D0 7F0C5DA0 AFAA0010 */ sw $t2, 0x10($sp) +/* 0FA8D4 7F0C5DA4 1000001A */ b .L7F0C5E10 +/* 0FA8D8 7F0C5DA8 00408825 */ move $s1, $v0 +.L7F0C5DAC: +/* 0FA8DC 7F0C5DAC 0C001107 */ jal viGetX +/* 0FA8E0 7F0C5DB0 00000000 */ nop +/* 0FA8E4 7F0C5DB4 00028400 */ sll $s0, $v0, 0x10 +/* 0FA8E8 7F0C5DB8 00106C03 */ sra $t5, $s0, 0x10 +/* 0FA8EC 7F0C5DBC 0C00110B */ jal viGetY +/* 0FA8F0 7F0C5DC0 01A08025 */ move $s0, $t5 +/* 0FA8F4 7F0C5DC4 3C198004 */ lui $t9, %hi(ptrSecondFontTableSmall) +/* 0FA8F8 7F0C5DC8 3C188004 */ lui $t8, %hi(ptrFirstFontTableSmall) +/* 0FA8FC 7F0C5DCC 8F180EAC */ lw $t8, %lo(ptrFirstFontTableSmall)($t8) +/* 0FA900 7F0C5DD0 8F390EB0 */ lw $t9, %lo(ptrSecondFontTableSmall)($t9) +/* 0FA904 7F0C5DD4 3C0B00FF */ lui $t3, (0x00FF00B0 >> 16) # lui $t3, 0xff +/* 0FA908 7F0C5DD8 356B00B0 */ ori $t3, (0x00FF00B0 & 0xFFFF) # ori $t3, $t3, 0xb0 +/* 0FA90C 7F0C5DDC AFAB0018 */ sw $t3, 0x18($sp) +/* 0FA910 7F0C5DE0 02202025 */ move $a0, $s1 +/* 0FA914 7F0C5DE4 27A500CC */ addiu $a1, $sp, 0xcc +/* 0FA918 7F0C5DE8 27A600C8 */ addiu $a2, $sp, 0xc8 +/* 0FA91C 7F0C5DEC 8FA700A4 */ lw $a3, 0xa4($sp) +/* 0FA920 7F0C5DF0 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FA924 7F0C5DF4 AFA20020 */ sw $v0, 0x20($sp) +/* 0FA928 7F0C5DF8 AFA00024 */ sw $zero, 0x24($sp) +/* 0FA92C 7F0C5DFC AFA00028 */ sw $zero, 0x28($sp) +/* 0FA930 7F0C5E00 AFB80014 */ sw $t8, 0x14($sp) +/* 0FA934 7F0C5E04 0FC2B6AF */ jal en_text_write_stuff +/* 0FA938 7F0C5E08 AFB90010 */ sw $t9, 0x10($sp) +/* 0FA93C 7F0C5E0C 00408825 */ move $s1, $v0 +.L7F0C5E10: +/* 0FA940 7F0C5E10 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FA944 7F0C5E14 02202025 */ move $a0, $s1 +/* 0FA948 7F0C5E18 10000085 */ b .L7F0C6030 +/* 0FA94C 7F0C5E1C 00408825 */ move $s1, $v0 +/* 0FA950 7F0C5E20 8C6E00D8 */ lw $t6, 0xd8($v1) +.L7F0C5E24: +/* 0FA954 7F0C5E24 51C00083 */ beql $t6, $zero, .L7F0C6034 +/* 0FA958 7F0C5E28 02201025 */ move $v0, $s1 +/* 0FA95C 7F0C5E2C 8C6A0428 */ lw $t2, 0x428($v1) +/* 0FA960 7F0C5E30 51400080 */ beql $t2, $zero, .L7F0C6034 +/* 0FA964 7F0C5E34 02201025 */ move $v0, $s1 +/* 0FA968 7F0C5E38 8C6C0424 */ lw $t4, 0x424($v1) +/* 0FA96C 7F0C5E3C 3C098009 */ lui $t1, %hi(stop_play_flag) +/* 0FA970 7F0C5E40 5180007C */ beql $t4, $zero, .L7F0C6034 +/* 0FA974 7F0C5E44 02201025 */ move $v0, $s1 +/* 0FA978 7F0C5E48 8D29C700 */ lw $t1, %lo(stop_play_flag)($t1) +/* 0FA97C 7F0C5E4C 3C0F8009 */ lui $t7, %hi(is_gameover_flag) +/* 0FA980 7F0C5E50 55200078 */ bnezl $t1, .L7F0C6034 +/* 0FA984 7F0C5E54 02201025 */ move $v0, $s1 +/* 0FA988 7F0C5E58 8DEFC704 */ lw $t7, %lo(is_gameover_flag)($t7) +/* 0FA98C 7F0C5E5C 00002025 */ move $a0, $zero +/* 0FA990 7F0C5E60 55E00074 */ bnezl $t7, .L7F0C6034 +/* 0FA994 7F0C5E64 02201025 */ move $v0, $s1 +/* 0FA998 7F0C5E68 18400028 */ blez $v0, .L7F0C5F0C +/* 0FA99C 7F0C5E6C 00002825 */ move $a1, $zero +/* 0FA9A0 7F0C5E70 30470003 */ andi $a3, $v0, 3 +/* 0FA9A4 7F0C5E74 10E00011 */ beqz $a3, .L7F0C5EBC +/* 0FA9A8 7F0C5E78 00E03025 */ move $a2, $a3 +/* 0FA9AC 7F0C5E7C 8FB900D4 */ lw $t9, 0xd4($sp) +/* 0FA9B0 7F0C5E80 000068C0 */ sll $t5, $zero, 3 +/* 0FA9B4 7F0C5E84 01A06823 */ subu $t5, $t5, $zero +/* 0FA9B8 7F0C5E88 000D6900 */ sll $t5, $t5, 4 +/* 0FA9BC 7F0C5E8C 3C0E8008 */ lui $t6, %hi(player1_player_data) +/* 0FA9C0 7F0C5E90 0019C080 */ sll $t8, $t9, 2 +/* 0FA9C4 7F0C5E94 01B85821 */ addu $t3, $t5, $t8 +/* 0FA9C8 7F0C5E98 25CE9EF0 */ addiu $t6, %lo(player1_player_data) # addiu $t6, $t6, -0x6110 +/* 0FA9CC 7F0C5E9C 016E1821 */ addu $v1, $t3, $t6 +.L7F0C5EA0: +/* 0FA9D0 7F0C5EA0 8C6A0024 */ lw $t2, 0x24($v1) +/* 0FA9D4 7F0C5EA4 24A50001 */ addiu $a1, $a1, 1 +/* 0FA9D8 7F0C5EA8 24630070 */ addiu $v1, $v1, 0x70 +/* 0FA9DC 7F0C5EAC 14C5FFFC */ bne $a2, $a1, .L7F0C5EA0 +/* 0FA9E0 7F0C5EB0 008A2021 */ addu $a0, $a0, $t2 +/* 0FA9E4 7F0C5EB4 10A20015 */ beq $a1, $v0, .L7F0C5F0C +/* 0FA9E8 7F0C5EB8 00000000 */ nop +.L7F0C5EBC: +/* 0FA9EC 7F0C5EBC 8FA900D4 */ lw $t1, 0xd4($sp) +/* 0FA9F0 7F0C5EC0 000560C0 */ sll $t4, $a1, 3 +/* 0FA9F4 7F0C5EC4 01856023 */ subu $t4, $t4, $a1 +/* 0FA9F8 7F0C5EC8 000C6100 */ sll $t4, $t4, 4 +/* 0FA9FC 7F0C5ECC 3C0D8008 */ lui $t5, %hi(player1_player_data) +/* 0FAA00 7F0C5ED0 00097880 */ sll $t7, $t1, 2 +/* 0FAA04 7F0C5ED4 018FC821 */ addu $t9, $t4, $t7 +/* 0FAA08 7F0C5ED8 25AD9EF0 */ addiu $t5, %lo(player1_player_data) # addiu $t5, $t5, -0x6110 +/* 0FAA0C 7F0C5EDC 032D1821 */ addu $v1, $t9, $t5 +.L7F0C5EE0: +/* 0FAA10 7F0C5EE0 8C780024 */ lw $t8, 0x24($v1) +/* 0FAA14 7F0C5EE4 8C6B0094 */ lw $t3, 0x94($v1) +/* 0FAA18 7F0C5EE8 8C6E0104 */ lw $t6, 0x104($v1) +/* 0FAA1C 7F0C5EEC 00982021 */ addu $a0, $a0, $t8 +/* 0FAA20 7F0C5EF0 8C6A0174 */ lw $t2, 0x174($v1) +/* 0FAA24 7F0C5EF4 008B2021 */ addu $a0, $a0, $t3 +/* 0FAA28 7F0C5EF8 24A50004 */ addiu $a1, $a1, 4 +/* 0FAA2C 7F0C5EFC 008E2021 */ addu $a0, $a0, $t6 +/* 0FAA30 7F0C5F00 246301C0 */ addiu $v1, $v1, 0x1c0 +/* 0FAA34 7F0C5F04 14A8FFF6 */ bne $a1, $t0, .L7F0C5EE0 +/* 0FAA38 7F0C5F08 008A2021 */ addu $a0, $a0, $t2 +.L7F0C5F0C: +/* 0FAA3C 7F0C5F0C 0FC051D6 */ jal get_scenario +/* 0FAA40 7F0C5F10 AFA40058 */ sw $a0, 0x58($sp) +/* 0FAA44 7F0C5F14 24010001 */ li $at, 1 +/* 0FAA48 7F0C5F18 14410004 */ bne $v0, $at, .L7F0C5F2C +/* 0FAA4C 7F0C5F1C 8FA40058 */ lw $a0, 0x58($sp) +/* 0FAA50 7F0C5F20 28810002 */ slti $at, $a0, 2 +/* 0FAA54 7F0C5F24 50200043 */ beql $at, $zero, .L7F0C6034 +/* 0FAA58 7F0C5F28 02201025 */ move $v0, $s1 +.L7F0C5F2C: +/* 0FAA5C 7F0C5F2C 0FC2D3ED */ jal sub_GAME_7F0B4FB4 +/* 0FAA60 7F0C5F30 02202025 */ move $a0, $s1 +/* 0FAA64 7F0C5F34 0FC2B366 */ jal microcode_constructor +/* 0FAA68 7F0C5F38 00402025 */ move $a0, $v0 +/* 0FAA6C 7F0C5F3C 00408825 */ move $s1, $v0 +/* 0FAA70 7F0C5F40 0FC30776 */ jal get_textptr_for_textID +/* 0FAA74 7F0C5F44 3404A022 */ li $a0, 40994 +/* 0FAA78 7F0C5F48 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0FAA7C 7F0C5F4C 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0FAA80 7F0C5F50 3C078004 */ lui $a3, %hi(ptrSecondFontTableSmall) +/* 0FAA84 7F0C5F54 AFA20060 */ sw $v0, 0x60($sp) +/* 0FAA88 7F0C5F58 8CE70EB0 */ lw $a3, %lo(ptrSecondFontTableSmall)($a3) +/* 0FAA8C 7F0C5F5C 27A40064 */ addiu $a0, $sp, 0x64 +/* 0FAA90 7F0C5F60 27A50068 */ addiu $a1, $sp, 0x68 +/* 0FAA94 7F0C5F64 00403025 */ move $a2, $v0 +/* 0FAA98 7F0C5F68 AFA00014 */ sw $zero, 0x14($sp) +/* 0FAA9C 7F0C5F6C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0FAAA0 7F0C5F70 AFA90010 */ sw $t1, 0x10($sp) +/* 0FAAA4 7F0C5F74 0C001145 */ jal viGetViewLeft +/* 0FAAA8 7F0C5F78 00000000 */ nop +/* 0FAAAC 7F0C5F7C 0C001127 */ jal viGetViewWidth +/* 0FAAB0 7F0C5F80 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAAB4 7F0C5F84 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAB8 7F0C5F88 8FAD0068 */ lw $t5, 0x68($sp) +/* 0FAABC 7F0C5F8C 00027843 */ sra $t7, $v0, 1 +/* 0FAAC0 7F0C5F90 01E3C821 */ addu $t9, $t7, $v1 +/* 0FAAC4 7F0C5F94 000DC043 */ sra $t8, $t5, 1 +/* 0FAAC8 7F0C5F98 03385823 */ subu $t3, $t9, $t8 +/* 0FAACC 7F0C5F9C 0C001149 */ jal viGetViewTop +/* 0FAAD0 7F0C5FA0 AFAB0070 */ sw $t3, 0x70($sp) +/* 0FAAD4 7F0C5FA4 0C00112B */ jal viGetViewHeight +/* 0FAAD8 7F0C5FA8 A7A20056 */ sh $v0, 0x56($sp) +/* 0FAADC 7F0C5FAC 87A30056 */ lh $v1, 0x56($sp) +/* 0FAAE0 7F0C5FB0 8FAC0064 */ lw $t4, 0x64($sp) +/* 0FAAE4 7F0C5FB4 00025043 */ sra $t2, $v0, 1 +/* 0FAAE8 7F0C5FB8 01434821 */ addu $t1, $t2, $v1 +/* 0FAAEC 7F0C5FBC 000C7843 */ sra $t7, $t4, 1 +/* 0FAAF0 7F0C5FC0 012F6823 */ subu $t5, $t1, $t7 +/* 0FAAF4 7F0C5FC4 0C001107 */ jal viGetX +/* 0FAAF8 7F0C5FC8 AFAD006C */ sw $t5, 0x6c($sp) +/* 0FAAFC 7F0C5FCC 00028400 */ sll $s0, $v0, 0x10 +/* 0FAB00 7F0C5FD0 0010CC03 */ sra $t9, $s0, 0x10 +/* 0FAB04 7F0C5FD4 0C00110B */ jal viGetY +/* 0FAB08 7F0C5FD8 03208025 */ move $s0, $t9 +/* 0FAB0C 7F0C5FDC 3C188004 */ lui $t8, %hi(ptrSecondFontTableSmall) +/* 0FAB10 7F0C5FE0 3C0B8004 */ lui $t3, %hi(ptrFirstFontTableSmall) +/* 0FAB14 7F0C5FE4 8D6B0EAC */ lw $t3, %lo(ptrFirstFontTableSmall)($t3) +/* 0FAB18 7F0C5FE8 8F180EB0 */ lw $t8, %lo(ptrSecondFontTableSmall)($t8) +/* 0FAB1C 7F0C5FEC 3C0E00FF */ lui $t6, (0x00FF00B0 >> 16) # lui $t6, 0xff +/* 0FAB20 7F0C5FF0 35CE00B0 */ ori $t6, (0x00FF00B0 & 0xFFFF) # ori $t6, $t6, 0xb0 +/* 0FAB24 7F0C5FF4 AFAE0018 */ sw $t6, 0x18($sp) +/* 0FAB28 7F0C5FF8 02202025 */ move $a0, $s1 +/* 0FAB2C 7F0C5FFC 27A50070 */ addiu $a1, $sp, 0x70 +/* 0FAB30 7F0C6000 27A6006C */ addiu $a2, $sp, 0x6c +/* 0FAB34 7F0C6004 8FA70060 */ lw $a3, 0x60($sp) +/* 0FAB38 7F0C6008 AFB0001C */ sw $s0, 0x1c($sp) +/* 0FAB3C 7F0C600C AFA20020 */ sw $v0, 0x20($sp) +/* 0FAB40 7F0C6010 AFA00024 */ sw $zero, 0x24($sp) +/* 0FAB44 7F0C6014 AFA00028 */ sw $zero, 0x28($sp) +/* 0FAB48 7F0C6018 AFAB0014 */ sw $t3, 0x14($sp) +/* 0FAB4C 7F0C601C 0FC2B6AF */ jal en_text_write_stuff +/* 0FAB50 7F0C6020 AFB80010 */ sw $t8, 0x10($sp) +/* 0FAB54 7F0C6024 0FC2B3BC */ jal combiner_bayer_lod_perspective +/* 0FAB58 7F0C6028 00402025 */ move $a0, $v0 +/* 0FAB5C 7F0C602C 00408825 */ move $s1, $v0 +.L7F0C6030: +/* 0FAB60 7F0C6030 02201025 */ move $v0, $s1 +.L7F0C6034: +/* 0FAB64 7F0C6034 8FBF003C */ lw $ra, 0x3c($sp) +/* 0FAB68 7F0C6038 8FB00034 */ lw $s0, 0x34($sp) +/* 0FAB6C 7F0C603C 8FB10038 */ lw $s1, 0x38($sp) +/* 0FAB70 7F0C6040 03E00008 */ jr $ra +/* 0FAB74 7F0C6044 27BD00D8 */ addiu $sp, $sp, 0xd8 +) +#endif + #endif - -#ifdef NONMATCHING s32 sub_GAME_7F0C6048(void) { - if (is_gameover_flag != 0) - { - return 0; - } - return (pPlayer->mpmenuon | (0 < pPlayer->healthdisplaytime)); + return is_gameover_flag ? 0 : (pPlayer->mpmenuon | (pPlayer->healthdisplaytime > 0)); } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0C6048 -/* 0FAB78 7F0C6048 3C0E8009 */ lui $t6, %hi(is_gameover_flag) -/* 0FAB7C 7F0C604C 8DCEC704 */ lw $t6, %lo(is_gameover_flag)($t6) -/* 0FAB80 7F0C6050 3C028008 */ lui $v0, %hi(pPlayer) -/* 0FAB84 7F0C6054 11C00003 */ beqz $t6, .L7F0C6064 -/* 0FAB88 7F0C6058 00000000 */ nop -/* 0FAB8C 7F0C605C 03E00008 */ jr $ra -/* 0FAB90 7F0C6060 00001025 */ move $v0, $zero - -.L7F0C6064: -/* 0FAB94 7F0C6064 8C42A0B0 */ lw $v0, %lo(pPlayer)($v0) -/* 0FAB98 7F0C6068 8C582A00 */ lw $t8, 0x2a00($v0) -/* 0FAB9C 7F0C606C 8C4F29C4 */ lw $t7, 0x29c4($v0) -/* 0FABA0 7F0C6070 0018C82A */ slt $t9, $zero, $t8 -/* 0FABA4 7F0C6074 01F91825 */ or $v1, $t7, $t9 -/* 0FABA8 7F0C6078 03E00008 */ jr $ra -/* 0FABAC 7F0C607C 00601025 */ move $v0, $v1 -) -#endif - - - - - -#ifdef NONMATCHING s32 checkGamePaused(void) { return is_paused; -} -#else -GLOBAL_ASM( -.text -glabel checkGamePaused -/* 0FABB0 7F0C6080 3C028009 */ lui $v0, %hi(is_paused) -/* 0FABB4 7F0C6084 03E00008 */ jr $ra -/* 0FABB8 7F0C6088 8C42C718 */ lw $v0, %lo(is_paused)($v0) -) -#endif - - +} \ No newline at end of file diff --git a/src/game/mp_watch.h b/src/game/mp_watch.h new file mode 100644 index 0000000..bfc4858 --- /dev/null +++ b/src/game/mp_watch.h @@ -0,0 +1,18 @@ +#ifndef _MP_WATCH_H_ +#define _MP_WATCH_H_ +#include "ultra64.h" + +typedef enum TEXTCOLORS { + GREEN_NORMAL=0, + GREEN_HIGHLIGHT, + RED_NORMAL, + RED_HIGHLIGHT, + BLUE_NORMAL, + BLUE_HIGHLIGHT +} TEXTCOLORS; + +s32 sub_GAME_7F0C2024(int param_1, int param_2, int param_3, int param_4, int param_5); + +s32 sub_GAME_7F0C2114(int param_1, int param_2, int param_3, int param_4, int param_5); + +#endif diff --git a/src/game/music_0D2720.c b/src/game/music_0D2720.c index c6ec204..efc74de 100644 --- a/src/game/music_0D2720.c +++ b/src/game/music_0D2720.c @@ -84,7 +84,7 @@ glabel getmusictrack_or_randomtrack /* 1072B0 7F0D2780 5720FFFD */ bnezl $t9, .L7F0D2778 /* 1072B4 7F0D2784 84590002 */ lh $t9, 2($v0) .L7F0D2788: -/* 1072B8 7F0D2788 0C002914 */ jal get_random_value +/* 1072B8 7F0D2788 0C002914 */ jal randomGetNext /* 1072BC 7F0D278C AFA30020 */ sw $v1, 0x20($sp) /* 1072C0 7F0D2790 8FA30020 */ lw $v1, 0x20($sp) /* 1072C4 7F0D2794 3C048005 */ lui $a0, %hi(random_tracks) @@ -121,7 +121,7 @@ glabel getmusictrack_or_randomtrack /* 10732C 7F0D27FC 5560FFFD */ bnezl $t3, .L7F0D27F4 /* 107330 7F0D2800 844B0002 */ lh $t3, 2($v0) .L7F0D2804: -/* 107334 7F0D2804 0C002914 */ jal get_random_value +/* 107334 7F0D2804 0C002914 */ jal randomGetNext /* 107338 7F0D2808 AFA30018 */ sw $v1, 0x18($sp) /* 10733C 7F0D280C 8FA30018 */ lw $v1, 0x18($sp) /* 107340 7F0D2810 3C048005 */ lui $a0, %hi(random_tracks) @@ -148,132 +148,29 @@ glabel getmusictrack_or_randomtrack -#ifdef NONMATCHING -void sub_GAME_7F0D2848(s32 arg0) { - void *temp_v1; - s32 temp_v0; - s32 phi_v0; - void *phi_v1; - - // Node 0 - temp_v1 = (0x80050000 + -0x14f0); - if (music_setup_entries != 0) - { - // Node 1 - phi_v0 = *temp_v1; - phi_v1 = temp_v1; - // Node 2 - if (arg0 == phi_v0) - { - // Node 3 - return phi_v1->unk4; - } - // Node 4 - temp_v0 = phi_v1->unk8; - phi_v0 = temp_v0; - phi_v1 = (phi_v1 + 8); - if (temp_v0 != 0) - { - goto loop_2; - } - } - // Node 5 - return -1; +s32 musicGetBgTrackForStage(s32 stageID) +{ + s32 i; + for (i=0; music_setup_entries[i].stage_id!=0; i++) + { + if (stageID == music_setup_entries[i].stage_id) + { + return music_setup_entries[i].bg_sound; + } + } + return -1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0D2848 -/* 107378 7F0D2848 3C0E8005 */ lui $t6, %hi(music_setup_entries) -/* 10737C 7F0D284C 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) -/* 107380 7F0D2850 3C0F8005 */ lui $t7, %hi(music_setup_entries) -/* 107384 7F0D2854 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) -/* 107388 7F0D2858 51C0000B */ beql $t6, $zero, .L7F0D2888 -/* 10738C 7F0D285C 2402FFFF */ li $v0, -1 -/* 107390 7F0D2860 84620000 */ lh $v0, ($v1) -.L7F0D2864: -/* 107394 7F0D2864 54820004 */ bnel $a0, $v0, .L7F0D2878 -/* 107398 7F0D2868 84620008 */ lh $v0, 8($v1) -/* 10739C 7F0D286C 03E00008 */ jr $ra -/* 1073A0 7F0D2870 84620004 */ lh $v0, 4($v1) -/* 1073A4 7F0D2874 84620008 */ lh $v0, 8($v1) -.L7F0D2878: -/* 1073A8 7F0D2878 24630008 */ addiu $v1, $v1, 8 -/* 1073AC 7F0D287C 1440FFF9 */ bnez $v0, .L7F0D2864 -/* 1073B0 7F0D2880 00000000 */ nop -/* 1073B4 7F0D2884 2402FFFF */ li $v0, -1 -.L7F0D2888: -/* 1073B8 7F0D2888 03E00008 */ jr $ra -/* 1073BC 7F0D288C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F0D2890(s32 arg0) { - void *temp_v1; - s32 temp_v0; - s32 phi_v0; - void *phi_v1; - - // Node 0 - temp_v1 = (0x80050000 + -0x14f0); - if (music_setup_entries != 0) - { - // Node 1 - phi_v0 = *temp_v1; - phi_v1 = temp_v1; - // Node 2 - if (arg0 == phi_v0) - { - // Node 3 - return phi_v1->unk6; - } - // Node 4 - temp_v0 = phi_v1->unk8; - phi_v0 = temp_v0; - phi_v1 = (phi_v1 + 8); - if (temp_v0 != 0) - { - goto loop_2; - } - } - // Node 5 - return -1; +s32 musicGetXTrackForStage(s32 stageID) +{ + s32 i; + for (i=0; music_setup_entries[i].stage_id!=0; i++) + { + if (stageID == music_setup_entries[i].stage_id) + { + return music_setup_entries[i].xtrack; + } + } + return -1; } -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F0D2890 -/* 1073C0 7F0D2890 3C0E8005 */ lui $t6, %hi(music_setup_entries) -/* 1073C4 7F0D2894 85CEEB10 */ lh $t6, %lo(music_setup_entries)($t6) -/* 1073C8 7F0D2898 3C0F8005 */ lui $t7, %hi(music_setup_entries) -/* 1073CC 7F0D289C 25E3EB10 */ addiu $v1, $t7, %lo(music_setup_entries) -/* 1073D0 7F0D28A0 51C0000B */ beql $t6, $zero, .L7F0D28D0 -/* 1073D4 7F0D28A4 2402FFFF */ li $v0, -1 -/* 1073D8 7F0D28A8 84620000 */ lh $v0, ($v1) -.L7F0D28AC: -/* 1073DC 7F0D28AC 54820004 */ bnel $a0, $v0, .L7F0D28C0 -/* 1073E0 7F0D28B0 84620008 */ lh $v0, 8($v1) -/* 1073E4 7F0D28B4 03E00008 */ jr $ra -/* 1073E8 7F0D28B8 84620006 */ lh $v0, 6($v1) - -/* 1073EC 7F0D28BC 84620008 */ lh $v0, 8($v1) -.L7F0D28C0: -/* 1073F0 7F0D28C0 24630008 */ addiu $v1, $v1, 8 -/* 1073F4 7F0D28C4 1440FFF9 */ bnez $v0, .L7F0D28AC -/* 1073F8 7F0D28C8 00000000 */ nop -/* 1073FC 7F0D28CC 2402FFFF */ li $v0, -1 -.L7F0D28D0: -/* 107400 7F0D28D0 03E00008 */ jr $ra -/* 107404 7F0D28D4 00000000 */ nop -) -#endif - - - diff --git a/src/game/music_0D2720.h b/src/game/music_0D2720.h new file mode 100644 index 0000000..75293a8 --- /dev/null +++ b/src/game/music_0D2720.h @@ -0,0 +1,8 @@ +#ifndef _MUSIC_0D2720_H_ +#define _MUSIC_0D2720_H_ +#include "ultra64.h" + +s32 musicGetBgTrackForStage(s32 stageID); +s32 musicGetXTrackForStage(s32 stageID); + +#endif diff --git a/src/game/ob.c b/src/game/ob.c index 983b897..5c1ce2e 100644 --- a/src/game/ob.c +++ b/src/game/ob.c @@ -185,7 +185,7 @@ void obInitDebugNoticeList(void) int file_count; struct fileentry *filetable_entry; - debCheckAddDebugNoticeListEntry(&ob_c_debug_notice_list_entry,"ob_c_debug"); + debTryAdd(&ob_c_debug_notice_list_entry,"ob_c_debug"); filetable_entry = &file_resource_table[0]; file_count = file_entry_max - 1; if (1 < file_count) { @@ -216,7 +216,7 @@ glabel obInitDebugNoticeList /* 0F1760 7F0BCC30 3C048004 */ lui $a0, %hi(ob_c_debug_notice_list_entry) /* 0F1764 7F0BCC34 3C058006 */ lui $a1, %hi(aOb_c_debug) /* 0F1768 7F0BCC38 24A5B674 */ addiu $a1, %lo(aOb_c_debug) # addiu $a1, $a1, -0x498c -/* 0F176C 7F0BCC3C 0C001398 */ jal debCheckAddDebugNoticeListEntry +/* 0F176C 7F0BCC3C 0C001398 */ jal debTryAdd /* 0F1770 7F0BCC40 24846050 */ addiu $a0, %lo(ob_c_debug_notice_list_entry) # addiu $a0, $a0, 0x6050 /* 0F1774 7F0BCC44 3C038005 */ lui $v1, %hi(file_entry_max) /* 0F1778 7F0BCC48 8C6382D4 */ lw $v1, %lo(file_entry_max)($v1) @@ -737,7 +737,7 @@ int get_index_num_of_named_resource(u8 *resname) for (i = 1; i < file_entry_max; i++) { if ((file_resource_table[i].filename) && \ - (something_with_strings_0(resname,file_resource_table[i].filename) == 0)); + (strcmp(resname,file_resource_table[i].filename) == 0)); { return i; } @@ -787,7 +787,7 @@ glabel get_index_num_of_named_resource .L7F0BD294: /* 0F1DC4 7F0BD294 50A00008 */ beql $a1, $zero, .L7F0BD2B8 /* 0F1DC8 7F0BD298 8E420000 */ lw $v0, ($s2) -/* 0F1DCC 7F0BD29C 0C002A13 */ jal something_with_strings_0 +/* 0F1DCC 7F0BD29C 0C002A13 */ jal strcmp /* 0F1DD0 7F0BD2A0 02602025 */ move $a0, $s3 /* 0F1DD4 7F0BD2A4 54400004 */ bnezl $v0, .L7F0BD2B8 /* 0F1DD8 7F0BD2A8 8E420000 */ lw $v0, ($s2) diff --git a/src/game/objecthandler_2.c b/src/game/objecthandler_2.c index 421e354..bb42df8 100644 --- a/src/game/objecthandler_2.c +++ b/src/game/objecthandler_2.c @@ -8746,7 +8746,7 @@ glabel dorottex /* 0A7894 7F072D64 596000A9 */ blezl $t3, .L7F07300C /* 0A7898 7F072D68 8FBF003C */ lw $ra, 0x3c($sp) .L7F072D6C: -/* 0A789C 7F072D6C 0C002914 */ jal get_random_value +/* 0A789C 7F072D6C 0C002914 */ jal randomGetNext /* 0A78A0 7F072D70 00000000 */ nop /* 0A78A4 7F072D74 00026280 */ sll $t4, $v0, 0xa /* 0A78A8 7F072D78 3191FFFF */ andi $s1, $t4, 0xffff @@ -8763,9 +8763,9 @@ glabel dorottex /* 0A78D4 7F072DA4 01F60019 */ multu $t7, $s6 /* 0A78D8 7F072DA8 00009812 */ mflo $s3 /* 0A78DC 7F072DAC 0013C483 */ sra $t8, $s3, 0x12 -/* 0A78E0 7F072DB0 0C002914 */ jal get_random_value +/* 0A78E0 7F072DB0 0C002914 */ jal randomGetNext /* 0A78E4 7F072DB4 03009825 */ move $s3, $t8 -/* 0A78E8 7F072DB8 0C002914 */ jal get_random_value +/* 0A78E8 7F072DB8 0C002914 */ jal randomGetNext /* 0A78EC 7F072DBC 00028FC2 */ srl $s1, $v0, 0x1f /* 0A78F0 7F072DC0 8E410000 */ lw $at, ($s2) /* 0A78F4 7F072DC4 30593FFF */ andi $t9, $v0, 0x3fff @@ -9755,7 +9755,7 @@ glabel dogfnegx /* 0A8600 7F073AD0 E7A000C4 */ swc1 $f0, 0xc4($sp) /* 0A8604 7F073AD4 0FC15FAB */ jal sinf /* 0A8608 7F073AD8 C7AC00DC */ lwc1 $f12, 0xdc($sp) -/* 0A860C 7F073ADC 0C002914 */ jal get_random_value +/* 0A860C 7F073ADC 0C002914 */ jal randomGetNext /* 0A8610 7F073AE0 E7A000C0 */ swc1 $f0, 0xc0($sp) /* 0A8614 7F073AE4 304C007F */ andi $t4, $v0, 0x7f /* 0A8618 7F073AE8 448C5000 */ mtc1 $t4, $f10 @@ -9977,7 +9977,7 @@ glabel dogfnegx /* 0A8970 7F073E40 00002825 */ move $a1, $zero /* 0A8974 7F073E44 10600037 */ beqz $v1, .L7F073F24 /* 0A8978 7F073E48 00000000 */ nop -/* 0A897C 7F073E4C 0C002914 */ jal get_random_value +/* 0A897C 7F073E4C 0C002914 */ jal randomGetNext /* 0A8980 7F073E50 00608825 */ move $s1, $v1 /* 0A8984 7F073E54 0002CA80 */ sll $t9, $v0, 0xa /* 0A8988 7F073E58 A7B90056 */ sh $t9, 0x56($sp) diff --git a/src/game/objective.c b/src/game/objective.c index be7947f..7f3bee9 100644 --- a/src/game/objective.c +++ b/src/game/objective.c @@ -1,4 +1,5 @@ #include "ultra64.h" +#include "boss.h" #ifdef NONMATCHING @@ -13,7 +14,7 @@ GLOBAL_ASM( glabel something_with_stage_objectives /* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0399F8 7F004EC8 0C001A57 */ jal get_stage_num +/* 0399F8 7F004EC8 0C001A57 */ jal bossGetStageNum /* 0399FC 7F004ECC 00000000 */ nop /* 039A00 7F004ED0 2401005A */ li $at, 90 /* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C @@ -73,7 +74,7 @@ GLOBAL_ASM( glabel something_with_stage_objectives /* 039A40 7F004ED0 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 039A44 7F004ED4 AFBF0014 */ sw $ra, 0x14($sp) -/* 039A48 7F004ED8 0C001A57 */ jal get_stage_num +/* 039A48 7F004ED8 0C001A57 */ jal bossGetStageNum /* 039A4C 7F004EDC 00000000 */ nop /* 039A50 7F004EE0 2401005A */ li $at, 90 /* 039A54 7F004EE4 10410011 */ beq $v0, $at, .L7F004F2C @@ -129,6 +130,66 @@ glabel something_with_stage_objectives ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel something_with_stage_objectives +/* 0399F0 7F004EC0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0399F4 7F004EC4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0399F8 7F004EC8 0C001A57 */ jal bossGetStageNum +/* 0399FC 7F004ECC 00000000 */ nop +/* 039A00 7F004ED0 2401005A */ li $at, 90 +/* 039A04 7F004ED4 10410011 */ beq $v0, $at, .L7F004F1C +/* 039A08 7F004ED8 240EFFFF */ li $t6, -1 +/* 039A0C 7F004EDC 3C018003 */ lui $at, %hi(num_objective_ptrs) +/* 039A10 7F004EE0 AC2E22F0 */ sw $t6, %lo(num_objective_ptrs)($at) +/* 039A14 7F004EE4 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D58) +/* 039A18 7F004EE8 AC205D58 */ sw $zero, %lo(dword_CODE_bss_80075D58)($at) +/* 039A1C 7F004EEC 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D5C) +/* 039A20 7F004EF0 3C028007 */ lui $v0, %hi(dword_CODE_bss_80075D60) +/* 039A24 7F004EF4 3C038007 */ lui $v1, %hi(ptr_last_tag_entry_type16) +/* 039A28 7F004EF8 24635D80 */ addiu $v1, %lo(ptr_last_tag_entry_type16) # addiu $v1, $v1, 0x5d80 +/* 039A2C 7F004EFC 24425D60 */ addiu $v0, %lo(dword_CODE_bss_80075D60) # addiu $v0, $v0, 0x5d60 +/* 039A30 7F004F00 AC205D5C */ sw $zero, %lo(dword_CODE_bss_80075D5C)($at) +.L7F004F04: +/* 039A34 7F004F04 24420010 */ addiu $v0, $v0, 0x10 +/* 039A38 7F004F08 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A3C 7F004F0C AC40FFF8 */ sw $zero, -8($v0) +/* 039A40 7F004F10 AC40FFFC */ sw $zero, -4($v0) +/* 039A44 7F004F14 1443FFFB */ bne $v0, $v1, .L7F004F04 +/* 039A48 7F004F18 AC40FFF0 */ sw $zero, -0x10($v0) +.L7F004F1C: +/* 039A4C 7F004F1C 3C018007 */ lui $at, %hi(objective_ptrs) +/* 039A50 7F004F20 AC205D30 */ sw $zero, %lo(objective_ptrs)($at) +/* 039A54 7F004F24 3C018007 */ lui $at, %hi(objective_ptrs+4) +/* 039A58 7F004F28 3C028007 */ lui $v0, %hi(objective_ptrs+8) +/* 039A5C 7F004F2C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D58) +/* 039A60 7F004F30 24635D58 */ addiu $v1, %lo(dword_CODE_bss_80075D58) # addiu $v1, $v1, 0x5d58 +/* 039A64 7F004F34 24425D38 */ addiu $v0, %lo(objective_ptrs+8) # addiu $v0, $v0, 0x5d38 +/* 039A68 7F004F38 AC205D34 */ sw $zero, %lo(objective_ptrs+4)($at) +.L7F004F3C: +/* 039A6C 7F004F3C 24420010 */ addiu $v0, $v0, 0x10 +/* 039A70 7F004F40 AC40FFF4 */ sw $zero, -0xc($v0) +/* 039A74 7F004F44 AC40FFF8 */ sw $zero, -8($v0) +/* 039A78 7F004F48 AC40FFFC */ sw $zero, -4($v0) +/* 039A7C 7F004F4C 1443FFFB */ bne $v0, $v1, .L7F004F3C +/* 039A80 7F004F50 AC40FFF0 */ sw $zero, -0x10($v0) +/* 039A84 7F004F54 3C018007 */ lui $at, %hi(ptr_last_tag_entry_type16) +/* 039A88 7F004F58 AC205D80 */ sw $zero, %lo(ptr_last_tag_entry_type16)($at) +/* 039A8C 7F004F5C 3C018007 */ lui $at, %hi(ptr_last_briefing_setup_entry_type23) +/* 039A90 7F004F60 AC205D84 */ sw $zero, %lo(ptr_last_briefing_setup_entry_type23)($at) +/* 039A94 7F004F64 3C018007 */ lui $at, %hi(ptr_last_enter_room_subobject_entry_type20) +/* 039A98 7F004F68 AC205D88 */ sw $zero, %lo(ptr_last_enter_room_subobject_entry_type20)($at) +/* 039A9C 7F004F6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 039AA0 7F004F70 3C018007 */ lui $at, %hi(ptr_last_deposit_in_room_subobject_entry_type21) +/* 039AA4 7F004F74 AC205D8C */ sw $zero, %lo(ptr_last_deposit_in_room_subobject_entry_type21)($at) +/* 039AA8 7F004F78 3C018007 */ lui $at, %hi(ptr_last_photo_obj_in_room_subobject_entry_type1E) +/* 039AAC 7F004F7C AC205D90 */ sw $zero, %lo(ptr_last_photo_obj_in_room_subobject_entry_type1E)($at) +/* 039AB0 7F004F80 03E00008 */ jr $ra +/* 039AB4 7F004F84 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + #endif diff --git a/src/game/objective_status.c b/src/game/objective_status.c index 7cd0604..f700b62 100644 --- a/src/game/objective_status.c +++ b/src/game/objective_status.c @@ -123,17 +123,17 @@ u8 * get_ptr_text_for_watch_breifing_page(WATCH_BRIEFING_PAGE page) { if (page == 0) { - textptr = get_textptr_for_textID(0xb029); //"E R R O R\n" + textptr = get_textptr_for_textID(TEXT(LMISC, 0x29)); //"E R R O R\n" } else { if (page == 1) { - textptr = get_textptr_for_textID(0xb02a); //"no briefing for this mission\n" + textptr = get_textptr_for_textID(TEXT(LMISC, 0x2a)); //"no briefing for this mission\n" } else { - textptr = get_textptr_for_textID(0xb02b); //"\n" + textptr = get_textptr_for_textID(TEXT(LMISC, 0x2b)); //"\n" } } } @@ -588,7 +588,7 @@ glabel display_objective_status_text_on_status_change /* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID /* 08C1AC 7F05767C 3404B02D */ li $a0, 45101 /* 08C1B0 7F057680 02602025 */ move $a0, $s3 -/* 08C1B4 7F057684 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1B4 7F057684 0C0029FF */ jal strcat /* 08C1B8 7F057688 00402825 */ move $a1, $v0 /* 08C1BC 7F05768C 10000011 */ b .L7F0576D4 /* 08C1C0 7F057690 00000000 */ nop @@ -598,7 +598,7 @@ glabel display_objective_status_text_on_status_change /* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID /* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102 /* 08C1D4 7F0576A4 02602025 */ move $a0, $s3 -/* 08C1D8 7F0576A8 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1D8 7F0576A8 0C0029FF */ jal strcat /* 08C1DC 7F0576AC 00402825 */ move $a1, $v0 /* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4 /* 08C1E4 7F0576B4 00000000 */ nop @@ -608,7 +608,7 @@ glabel display_objective_status_text_on_status_change /* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID /* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103 /* 08C1F8 7F0576C8 02602025 */ move $a0, $s3 -/* 08C1FC 7F0576CC 0C0029FF */ jal string_append_from_obseg_textbank +/* 08C1FC 7F0576CC 0C0029FF */ jal strcat /* 08C200 7F0576D0 00402825 */ move $a1, $v0 .L7F0576D4: /* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner @@ -737,7 +737,7 @@ glabel display_objective_status_text_on_status_change /* 08C704 7F057B94 0FC30AA2 */ jal get_textptr_for_textID /* 08C708 7F057B98 3404B02D */ li $a0, 45101 /* 08C70C 7F057B9C 02602025 */ move $a0, $s3 -/* 08C710 7F057BA0 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C710 7F057BA0 0C002A03 */ jal strcat /* 08C714 7F057BA4 00402825 */ move $a1, $v0 /* 08C718 7F057BA8 10000011 */ b .L7F057BF0 /* 08C71C 7F057BAC 00000000 */ nop @@ -747,7 +747,7 @@ glabel display_objective_status_text_on_status_change /* 08C728 7F057BB8 0FC30AA2 */ jal get_textptr_for_textID /* 08C72C 7F057BBC 3404B02E */ li $a0, 45102 /* 08C730 7F057BC0 02602025 */ move $a0, $s3 -/* 08C734 7F057BC4 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C734 7F057BC4 0C002A03 */ jal strcat /* 08C738 7F057BC8 00402825 */ move $a1, $v0 /* 08C73C 7F057BCC 10000008 */ b .L7F057BF0 /* 08C740 7F057BD0 00000000 */ nop @@ -757,7 +757,7 @@ glabel display_objective_status_text_on_status_change /* 08C74C 7F057BDC 0FC30AA2 */ jal get_textptr_for_textID /* 08C750 7F057BE0 3404B02F */ li $a0, 45103 /* 08C754 7F057BE4 02602025 */ move $a0, $s3 -/* 08C758 7F057BE8 0C002A03 */ jal string_append_from_obseg_textbank +/* 08C758 7F057BE8 0C002A03 */ jal strcat /* 08C75C 7F057BEC 00402825 */ move $a1, $v0 .L7F057BF0: /* 08C760 7F057BF0 0FC22B10 */ jal jp_display_string_in_lower_left_corner @@ -794,6 +794,156 @@ glabel display_objective_status_text_on_status_change /* 08C7CC 7F057C5C 27BD0090 */ addiu $sp, $sp, 0x90 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.rdata +/*glabel D_80053610*/ +/*.word 0,0,0,0,0,0,0,0,0,0*/ +/*glabel D_80053640*/ +/*.word 0*/ +.text +glabel display_objective_status_text_on_status_change +/* 08C070 7F057540 27BDFF70 */ addiu $sp, $sp, -0x90 +/* 08C074 7F057544 AFB60030 */ sw $s6, 0x30($sp) +/* 08C078 7F057548 AFB30024 */ sw $s3, 0x24($sp) +/* 08C07C 7F05754C 3C0E8005 */ lui $t6, %hi(D_80053610) +/* 08C080 7F057550 27B30054 */ addiu $s3, $sp, 0x54 +/* 08C084 7F057554 3C168003 */ lui $s6, %hi(num_objective_ptrs) +/* 08C088 7F057558 AFB40028 */ sw $s4, 0x28($sp) +/* 08C08C 7F05755C 25CE3610 */ addiu $t6, %lo(D_80053610) # addiu $t6, $t6, 0x3610 +/* 08C090 7F057560 26D622F0 */ addiu $s6, %lo(num_objective_ptrs) # addiu $s6, $s6, 0x22f0 +/* 08C094 7F057564 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C098 7F057568 AFBE0038 */ sw $fp, 0x38($sp) +/* 08C09C 7F05756C AFB70034 */ sw $s7, 0x34($sp) +/* 08C0A0 7F057570 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C0A4 7F057574 AFB20020 */ sw $s2, 0x20($sp) +/* 08C0A8 7F057578 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C0AC 7F05757C AFB00018 */ sw $s0, 0x18($sp) +/* 08C0B0 7F057580 0000A025 */ move $s4, $zero +/* 08C0B4 7F057584 25D90030 */ addiu $t9, $t6, 0x30 +/* 08C0B8 7F057588 02604025 */ move $t0, $s3 +.L7F05758C: +/* 08C0BC 7F05758C 8DC10000 */ lw $at, ($t6) +/* 08C0C0 7F057590 25CE000C */ addiu $t6, $t6, 0xc +/* 08C0C4 7F057594 2508000C */ addiu $t0, $t0, 0xc +/* 08C0C8 7F057598 AD01FFF4 */ sw $at, -0xc($t0) +/* 08C0CC 7F05759C 8DC1FFF8 */ lw $at, -8($t6) +/* 08C0D0 7F0575A0 AD01FFF8 */ sw $at, -8($t0) +/* 08C0D4 7F0575A4 8DC1FFFC */ lw $at, -4($t6) +/* 08C0D8 7F0575A8 15D9FFF8 */ bne $t6, $t9, .L7F05758C +/* 08C0DC 7F0575AC AD01FFFC */ sw $at, -4($t0) +/* 08C0E0 7F0575B0 95C10000 */ lhu $at, ($t6) +/* 08C0E4 7F0575B4 3C158007 */ lui $s5, %hi(dword_CODE_bss_80075D58) +/* 08C0E8 7F0575B8 3C1E8005 */ lui $fp, %hi(aSAC) +/* 08C0EC 7F0575BC A5010000 */ sh $at, ($t0) +/* 08C0F0 7F0575C0 8EC90000 */ lw $t1, ($s6) +/* 08C0F4 7F0575C4 27DE3644 */ addiu $fp, %lo(aSAC) # addiu $fp, $fp, 0x3644 +/* 08C0F8 7F0575C8 26B55D58 */ addiu $s5, %lo(dword_CODE_bss_80075D58) # addiu $s5, $s5, 0x5d58 +/* 08C0FC 7F0575CC 05200051 */ bltz $t1, .L7F057714 +/* 08C100 7F0575D0 00009025 */ move $s2, $zero +/* 08C104 7F0575D4 3C178005 */ lui $s7, %hi(j_text_trigger) +/* 08C108 7F0575D8 26F784D0 */ addiu $s7, %lo(j_text_trigger) # addiu $s7, $s7, -0x7b30 +.L7F0575DC: +/* 08C10C 7F0575DC 0FC15C8E */ jal get_status_of_objective +/* 08C110 7F0575E0 02402025 */ move $a0, $s2 +/* 08C114 7F0575E4 8EAA0000 */ lw $t2, ($s5) +/* 08C118 7F0575E8 00408825 */ move $s1, $v0 +/* 08C11C 7F0575EC 02402025 */ move $a0, $s2 +/* 08C120 7F0575F0 104A003A */ beq $v0, $t2, .L7F0576DC +/* 08C124 7F0575F4 00000000 */ nop +/* 08C128 7F0575F8 0FC15C81 */ jal get_difficulty_for_objective +/* 08C12C 7F0575FC AEA20000 */ sw $v0, ($s5) +/* 08C130 7F057600 0FC2FF04 */ jal get_current_difficulty +/* 08C134 7F057604 00408025 */ move $s0, $v0 +/* 08C138 7F057608 0050082A */ slt $at, $v0, $s0 +/* 08C13C 7F05760C 14200033 */ bnez $at, .L7F0576DC +/* 08C140 7F057610 00000000 */ nop +/* 08C144 7F057614 8EEB0000 */ lw $t3, ($s7) +/* 08C148 7F057618 2690001A */ addiu $s0, $s4, 0x1a +/* 08C14C 7F05761C 3404B02C */ li $a0, 45100 +/* 08C150 7F057620 1160000A */ beqz $t3, .L7F05764C +/* 08C154 7F057624 00000000 */ nop +/* 08C158 7F057628 0FC30776 */ jal get_textptr_for_textID +/* 08C15C 7F05762C 3404B02C */ li $a0, 45100 +/* 08C160 7F057630 02602025 */ move $a0, $s3 +/* 08C164 7F057634 03C02825 */ move $a1, $fp +/* 08C168 7F057638 00403025 */ move $a2, $v0 +/* 08C16C 7F05763C 0C002B25 */ jal sprintf +/* 08C170 7F057640 02003825 */ move $a3, $s0 +/* 08C174 7F057644 1000000A */ b .L7F057670 +/* 08C178 7F057648 24010001 */ li $at, 1 +.L7F05764C: +/* 08C17C 7F05764C 0FC30776 */ jal get_textptr_for_textID +/* 08C180 7F057650 26900061 */ addiu $s0, $s4, 0x61 +/* 08C184 7F057654 3C058005 */ lui $a1, %hi(aSC) +/* 08C188 7F057658 24A5364C */ addiu $a1, %lo(aSC) # addiu $a1, $a1, 0x364c +/* 08C18C 7F05765C 02602025 */ move $a0, $s3 +/* 08C190 7F057660 00403025 */ move $a2, $v0 +/* 08C194 7F057664 0C002B25 */ jal sprintf +/* 08C198 7F057668 02003825 */ move $a3, $s0 +/* 08C19C 7F05766C 24010001 */ li $at, 1 +.L7F057670: +/* 08C1A0 7F057670 16210008 */ bne $s1, $at, .L7F057694 +/* 08C1A4 7F057674 00000000 */ nop +/* 08C1A8 7F057678 0FC30776 */ jal get_textptr_for_textID +/* 08C1AC 7F05767C 3404B02D */ li $a0, 45101 +/* 08C1B0 7F057680 02602025 */ move $a0, $s3 +/* 08C1B4 7F057684 0C0029FF */ jal strcat +/* 08C1B8 7F057688 00402825 */ move $a1, $v0 +/* 08C1BC 7F05768C 10000011 */ b .L7F0576D4 +/* 08C1C0 7F057690 00000000 */ nop +.L7F057694: +/* 08C1C4 7F057694 16200008 */ bnez $s1, .L7F0576B8 +/* 08C1C8 7F057698 24010002 */ li $at, 2 +/* 08C1CC 7F05769C 0FC30776 */ jal get_textptr_for_textID +/* 08C1D0 7F0576A0 3404B02E */ li $a0, 45102 +/* 08C1D4 7F0576A4 02602025 */ move $a0, $s3 +/* 08C1D8 7F0576A8 0C0029FF */ jal strcat +/* 08C1DC 7F0576AC 00402825 */ move $a1, $v0 +/* 08C1E0 7F0576B0 10000008 */ b .L7F0576D4 +/* 08C1E4 7F0576B4 00000000 */ nop +.L7F0576B8: +/* 08C1E8 7F0576B8 16210006 */ bne $s1, $at, .L7F0576D4 +/* 08C1EC 7F0576BC 00000000 */ nop +/* 08C1F0 7F0576C0 0FC30776 */ jal get_textptr_for_textID +/* 08C1F4 7F0576C4 3404B02F */ li $a0, 45103 +/* 08C1F8 7F0576C8 02602025 */ move $a0, $s3 +/* 08C1FC 7F0576CC 0C0029FF */ jal strcat +/* 08C200 7F0576D0 00402825 */ move $a1, $v0 +.L7F0576D4: +/* 08C204 7F0576D4 0FC228F2 */ jal display_string_in_lower_left_corner +/* 08C208 7F0576D8 02602025 */ move $a0, $s3 +.L7F0576DC: +/* 08C20C 7F0576DC 0FC15C81 */ jal get_difficulty_for_objective +/* 08C210 7F0576E0 02402025 */ move $a0, $s2 +/* 08C214 7F0576E4 0FC2FF04 */ jal get_current_difficulty +/* 08C218 7F0576E8 00408025 */ move $s0, $v0 +/* 08C21C 7F0576EC 0050082A */ slt $at, $v0, $s0 +/* 08C220 7F0576F0 54200003 */ bnezl $at, .L7F057700 +/* 08C224 7F0576F4 8ECC0000 */ lw $t4, ($s6) +/* 08C228 7F0576F8 26940001 */ addiu $s4, $s4, 1 +/* 08C22C 7F0576FC 8ECC0000 */ lw $t4, ($s6) +.L7F057700: +/* 08C230 7F057700 26520001 */ addiu $s2, $s2, 1 +/* 08C234 7F057704 26B50004 */ addiu $s5, $s5, 4 +/* 08C238 7F057708 0192082A */ slt $at, $t4, $s2 +/* 08C23C 7F05770C 1020FFB3 */ beqz $at, .L7F0575DC +/* 08C240 7F057710 00000000 */ nop +.L7F057714: +/* 08C244 7F057714 8FBF003C */ lw $ra, 0x3c($sp) +/* 08C248 7F057718 8FB00018 */ lw $s0, 0x18($sp) +/* 08C24C 7F05771C 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C250 7F057720 8FB20020 */ lw $s2, 0x20($sp) +/* 08C254 7F057724 8FB30024 */ lw $s3, 0x24($sp) +/* 08C258 7F057728 8FB40028 */ lw $s4, 0x28($sp) +/* 08C25C 7F05772C 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C260 7F057730 8FB60030 */ lw $s6, 0x30($sp) +/* 08C264 7F057734 8FB70034 */ lw $s7, 0x34($sp) +/* 08C268 7F057738 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C26C 7F05773C 03E00008 */ jr $ra +/* 08C270 7F057740 27BD0090 */ addiu $sp, $sp, 0x90 +) +#endif #endif diff --git a/src/game/objective_status2.c b/src/game/objective_status2.c index 5e1d29e..19ebdea 100644 --- a/src/game/objective_status2.c +++ b/src/game/objective_status2.c @@ -17,9 +17,9 @@ void sub_GAME_7F057AC0(float *param_1) firstrandfinal = D_80032300; secondrandfinal = D_80032304; thirdrandfinal = D_80032308; - firstrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; - secondrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; - thirdrandfinal = get_random_value() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + firstrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + secondrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; + thirdrandfinal = randomGetNext() * 0.00000000 * 6.28318548 * 0.03125000 - 0.09817477; matrix_4x4_set_rotation_around_xyz(&firstrandfinal,param_1); return; } @@ -51,7 +51,7 @@ glabel sub_GAME_7F057AC0 /* 08C610 7F057AE0 ADC10000 */ sw $at, ($t6) /* 08C614 7F057AE4 8DE10008 */ lw $at, 8($t7) /* 08C618 7F057AE8 ADC80004 */ sw $t0, 4($t6) -/* 08C61C 7F057AEC 0C002914 */ jal get_random_value +/* 08C61C 7F057AEC 0C002914 */ jal randomGetNext /* 08C620 7F057AF0 ADC10008 */ sw $at, 8($t6) /* 08C624 7F057AF4 44822000 */ mtc1 $v0, $f4 /* 08C628 7F057AF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -74,7 +74,7 @@ glabel sub_GAME_7F057AC0 /* 08C668 7F057B38 00000000 */ nop /* 08C66C 7F057B3C 46082182 */ mul.s $f6, $f4, $f8 /* 08C670 7F057B40 460A3401 */ sub.s $f16, $f6, $f10 -/* 08C674 7F057B44 0C002914 */ jal get_random_value +/* 08C674 7F057B44 0C002914 */ jal randomGetNext /* 08C678 7F057B48 E7B0001C */ swc1 $f16, 0x1c($sp) /* 08C67C 7F057B4C 44829000 */ mtc1 $v0, $f18 /* 08C680 7F057B50 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -97,7 +97,7 @@ glabel sub_GAME_7F057AC0 /* 08C6C0 7F057B90 00000000 */ nop /* 08C6C4 7F057B94 46089102 */ mul.s $f4, $f18, $f8 /* 08C6C8 7F057B98 46062281 */ sub.s $f10, $f4, $f6 -/* 08C6CC 7F057B9C 0C002914 */ jal get_random_value +/* 08C6CC 7F057B9C 0C002914 */ jal randomGetNext /* 08C6D0 7F057BA0 E7AA0020 */ swc1 $f10, 0x20($sp) /* 08C6D4 7F057BA4 44828000 */ mtc1 $v0, $f16 /* 08C6D8 7F057BA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -157,7 +157,7 @@ glabel sub_GAME_7F057C14 /* 08C744 7F057C14 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 08C748 7F057C18 AFBF0014 */ sw $ra, 0x14($sp) /* 08C74C 7F057C1C AFA40018 */ sw $a0, 0x18($sp) -/* 08C750 7F057C20 0C002914 */ jal get_random_value +/* 08C750 7F057C20 0C002914 */ jal randomGetNext /* 08C754 7F057C24 AFA5001C */ sw $a1, 0x1c($sp) /* 08C758 7F057C28 44822000 */ mtc1 $v0, $f4 /* 08C75C 7F057C2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -181,7 +181,7 @@ glabel sub_GAME_7F057C14 /* 08C7A0 7F057C70 00000000 */ nop /* 08C7A4 7F057C74 46082182 */ mul.s $f6, $f4, $f8 /* 08C7A8 7F057C78 460A3401 */ sub.s $f16, $f6, $f10 -/* 08C7AC 7F057C7C 0C002914 */ jal get_random_value +/* 08C7AC 7F057C7C 0C002914 */ jal randomGetNext /* 08C7B0 7F057C80 E5D00000 */ swc1 $f16, ($t6) /* 08C7B4 7F057C84 44829000 */ mtc1 $v0, $f18 /* 08C7B8 7F057C88 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -202,7 +202,7 @@ glabel sub_GAME_7F057C14 /* 08C7F0 7F057CC0 46105482 */ mul.s $f18, $f10, $f16 /* 08C7F4 7F057CC4 00000000 */ nop /* 08C7F8 7F057CC8 46089102 */ mul.s $f4, $f18, $f8 -/* 08C7FC 7F057CCC 0C002914 */ jal get_random_value +/* 08C7FC 7F057CCC 0C002914 */ jal randomGetNext /* 08C800 7F057CD0 E5E40004 */ swc1 $f4, 4($t7) /* 08C804 7F057CD4 44823000 */ mtc1 $v0, $f6 /* 08C808 7F057CD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 diff --git a/src/game/prop.c b/src/game/prop.c index 785686c..4f9fd6a 100644 --- a/src/game/prop.c +++ b/src/game/prop.c @@ -2620,26 +2620,26 @@ glabel proplvreset2 /* 038750 7F003C20 AFB00020 */ sw $s0, 0x20($sp) /* 038754 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) /* 038758 7F003C28 24A5ED90 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1270 -/* 03875C 7F003C2C 0C0029A8 */ jal check_token +/* 03875C 7F003C2C 0C0029A8 */ jal tokenFind /* 038760 7F003C30 24040001 */ li $a0, 1 /* 038764 7F003C34 2C460001 */ sltiu $a2, $v0, 1 /* 038768 7F003C38 10C00005 */ beqz $a2, .L7F003C50 /* 03876C 7F003C3C 24040001 */ li $a0, 1 /* 038770 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) -/* 038774 7F003C44 0C0029A8 */ jal check_token +/* 038774 7F003C44 0C0029A8 */ jal tokenFind /* 038778 7F003C48 24A5ED98 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1268 /* 03877C 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 .L7F003C50: /* 038780 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) /* 038784 7F003C54 AFA60278 */ sw $a2, 0x278($sp) /* 038788 7F003C58 24A5EDA0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1260 -/* 03878C 7F003C5C 0C0029A8 */ jal check_token +/* 03878C 7F003C5C 0C0029A8 */ jal tokenFind /* 038790 7F003C60 24040001 */ li $a0, 1 /* 038794 7F003C64 2C430001 */ sltiu $v1, $v0, 1 /* 038798 7F003C68 10600005 */ beqz $v1, .L7F003C80 /* 03879C 7F003C6C 24040001 */ li $a0, 1 /* 0387A0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) -/* 0387A4 7F003C74 0C0029A8 */ jal check_token +/* 0387A4 7F003C74 0C0029A8 */ jal tokenFind /* 0387A8 7F003C78 24A5EDA8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1258 /* 0387AC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 .L7F003C80: @@ -2693,12 +2693,12 @@ glabel proplvreset2 /* 038864 7F003D34 14200004 */ bnez $at, .L7F003D48 /* 038868 7F003D38 3C058005 */ lui $a1, %hi(aMp_) /* 03886C 7F003D3C 24A5EEB0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1150 -/* 038870 7F003D40 0C0029FF */ jal string_append_from_obseg_textbank +/* 038870 7F003D40 0C0029FF */ jal strcat /* 038874 7F003D44 02202025 */ move $a0, $s1 .L7F003D48: /* 038878 7F003D48 8E050000 */ lw $a1, ($s0) /* 03887C 7F003D4C 02202025 */ move $a0, $s1 -/* 038880 7F003D50 0C0029FF */ jal string_append_from_obseg_textbank +/* 038880 7F003D50 0C0029FF */ jal strcat /* 038884 7F003D54 24A50001 */ addiu $a1, $a1, 1 /* 038888 7F003D58 02202025 */ move $a0, $s1 /* 03888C 7F003D5C 24050001 */ li $a1, 1 @@ -4013,26 +4013,26 @@ glabel jpt_8004F02C /* 038790 7F003C20 AFB00020 */ sw $s0, 0x20($sp) /* 038794 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) /* 038798 7F003C28 24A5EDC0 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1240 -/* 03879C 7F003C2C 0C0029AC */ jal check_token +/* 03879C 7F003C2C 0C0029AC */ jal tokenFind /* 0387A0 7F003C30 24040001 */ li $a0, 1 /* 0387A4 7F003C34 2C460001 */ sltiu $a2, $v0, 1 /* 0387A8 7F003C38 10C00005 */ beqz $a2, .L7F003C50 /* 0387AC 7F003C3C 24040001 */ li $a0, 1 /* 0387B0 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) # $a1, 0x8005 -/* 0387B4 7F003C44 0C0029AC */ jal check_token +/* 0387B4 7F003C44 0C0029AC */ jal tokenFind /* 0387B8 7F003C48 24A5EDC8 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1238 /* 0387BC 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 .L7F003C50: /* 0387C0 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) # $a1, 0x8005 /* 0387C4 7F003C54 AFA60278 */ sw $a2, 0x278($sp) /* 0387C8 7F003C58 24A5EDD0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1230 -/* 0387CC 7F003C5C 0C0029AC */ jal check_token +/* 0387CC 7F003C5C 0C0029AC */ jal tokenFind /* 0387D0 7F003C60 24040001 */ li $a0, 1 /* 0387D4 7F003C64 2C430001 */ sltiu $v1, $v0, 1 /* 0387D8 7F003C68 10600005 */ beqz $v1, .L7F003C80 /* 0387DC 7F003C6C 24040001 */ li $a0, 1 /* 0387E0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) # $a1, 0x8005 -/* 0387E4 7F003C74 0C0029AC */ jal check_token +/* 0387E4 7F003C74 0C0029AC */ jal tokenFind /* 0387E8 7F003C78 24A5EDD8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1228 /* 0387EC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 .L7F003C80: @@ -4086,12 +4086,12 @@ glabel jpt_8004F02C /* 0388A4 7F003D34 14200004 */ bnez $at, .L7F003D48 /* 0388A8 7F003D38 3C058005 */ lui $a1, %hi(aMp_) # $a1, 0x8005 /* 0388AC 7F003D3C 24A5EEE0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1120 -/* 0388B0 7F003D40 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388B0 7F003D40 0C002A03 */ jal strcat /* 0388B4 7F003D44 02202025 */ move $a0, $s1 .L7F003D48: /* 0388B8 7F003D48 8E050000 */ lw $a1, ($s0) /* 0388BC 7F003D4C 02202025 */ move $a0, $s1 -/* 0388C0 7F003D50 0C002A03 */ jal string_append_from_obseg_textbank +/* 0388C0 7F003D50 0C002A03 */ jal strcat /* 0388C4 7F003D54 24A50001 */ addiu $a1, $a1, 1 /* 0388C8 7F003D58 02202025 */ move $a0, $s1 /* 0388CC 7F003D5C 24050001 */ li $a1, 1 @@ -5289,6 +5289,1398 @@ other_obj_expand: ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel jpt_object_type_expansion +.word door_expand +.word door_scale_expand +.word obj_03_expand +.word key_expand +.word obj_03_expand +.word surv_camera_expand +.word obj_03_expand +.word item_expand +.word actor_expand +.word single_screen_display_expand +.word multi_screen_display_expand +.word rack_expand +.word autogun_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word hat_expand +.word actor_attr_expand +.word other_obj_expand +.word ammo_box_expand +.word body_armor_expand +.word tag_expand +.word type17_objective_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word other_obj_expand +.word type1E_subobjective_expand +.word other_obj_expand +.word type20_subobjective_expand +.word type21_subobjective_expand +.word other_obj_expand +.word type23_solo_brief_text +.word obj_03_expand +.word type25_rename +.word other_obj_expand +.word type27_wheeled_vehicle +.word type28_aircraft +.word obj_03_expand +.word obj_03_expand +.word obj_03_expand +.word other_obj_expand +.word type2D_tank +.word type2E_viewport_pos +.word type2F_tinted_glass + +glabel D_8004F024 +.word 0x40c90fdb +glabel D_8004F028 +.word 0x3e2e147c + +glabel jpt_8004F02C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004BD8 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004C2C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004DE4 +.word .L7F004D70 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004B6C +.word .L7F004CA4 +.word .L7F004DE4 +.word .L7F004DE4 +.word .L7F004B6C + +.text +glabel proplvreset2 +/* 038720 7F003BF0 27BDFD80 */ addiu $sp, $sp, -0x280 +/* 038724 7F003BF4 AFB50034 */ sw $s5, 0x34($sp) +/* 038728 7F003BF8 0080A825 */ move $s5, $a0 +/* 03872C 7F003BFC AFBF0044 */ sw $ra, 0x44($sp) +/* 038730 7F003C00 3C058005 */ lui $a1, %hi(aNochr) +/* 038734 7F003C04 AFBE0040 */ sw $fp, 0x40($sp) +/* 038738 7F003C08 AFB7003C */ sw $s7, 0x3c($sp) +/* 03873C 7F003C0C AFB60038 */ sw $s6, 0x38($sp) +/* 038740 7F003C10 AFB40030 */ sw $s4, 0x30($sp) +/* 038744 7F003C14 AFB3002C */ sw $s3, 0x2c($sp) +/* 038748 7F003C18 AFB20028 */ sw $s2, 0x28($sp) +/* 03874C 7F003C1C AFB10024 */ sw $s1, 0x24($sp) +/* 038750 7F003C20 AFB00020 */ sw $s0, 0x20($sp) +/* 038754 7F003C24 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 038758 7F003C28 24A5ED90 */ addiu $a1, %lo(aNochr) # addiu $a1, $a1, -0x1270 +/* 03875C 7F003C2C 0C0029A8 */ jal tokenFind +/* 038760 7F003C30 24040001 */ li $a0, 1 +/* 038764 7F003C34 2C460001 */ sltiu $a2, $v0, 1 +/* 038768 7F003C38 10C00005 */ beqz $a2, .L7F003C50 +/* 03876C 7F003C3C 24040001 */ li $a0, 1 +/* 038770 7F003C40 3C058005 */ lui $a1, %hi(aNoprop) +/* 038774 7F003C44 0C0029A8 */ jal tokenFind +/* 038778 7F003C48 24A5ED98 */ addiu $a1, %lo(aNoprop) # addiu $a1, $a1, -0x1268 +/* 03877C 7F003C4C 2C460001 */ sltiu $a2, $v0, 1 +.L7F003C50: +/* 038780 7F003C50 3C058005 */ lui $a1, %hi(aNoobj) +/* 038784 7F003C54 AFA60278 */ sw $a2, 0x278($sp) +/* 038788 7F003C58 24A5EDA0 */ addiu $a1, %lo(aNoobj) # addiu $a1, $a1, -0x1260 +/* 03878C 7F003C5C 0C0029A8 */ jal tokenFind +/* 038790 7F003C60 24040001 */ li $a0, 1 +/* 038794 7F003C64 2C430001 */ sltiu $v1, $v0, 1 +/* 038798 7F003C68 10600005 */ beqz $v1, .L7F003C80 +/* 03879C 7F003C6C 24040001 */ li $a0, 1 +/* 0387A0 7F003C70 3C058005 */ lui $a1, %hi(aNoprop_0) +/* 0387A4 7F003C74 0C0029A8 */ jal tokenFind +/* 0387A8 7F003C78 24A5EDA8 */ addiu $a1, %lo(aNoprop_0) # addiu $a1, $a1, -0x1258 +/* 0387AC 7F003C7C 2C430001 */ sltiu $v1, $v0, 1 +.L7F003C80: +/* 0387B0 7F003C80 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0387B4 7F003C84 44812000 */ mtc1 $at, $f4 +/* 0387B8 7F003C88 0060F025 */ move $fp, $v1 +/* 0387BC 7F003C8C 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 0387C0 7F003C90 3C038004 */ lui $v1, %hi(PitemZ_entries+0xFF0) +/* 0387C4 7F003C94 3C028004 */ lui $v0, %hi(PitemZ_entries) +/* 0387C8 7F003C98 2442A228 */ addiu $v0, %lo(PitemZ_entries) # addiu $v0, $v0, -0x5dd8 +/* 0387CC 7F003C9C 2463B218 */ addiu $v1, $v1, %lo(PitemZ_entries+0xFF0) +/* 0387D0 7F003CA0 E424A3C0 */ swc1 $f4, %lo(scale_1_0_item_related)($at) +.L7F003CA4: +/* 0387D4 7F003CA4 8C4E0000 */ lw $t6, ($v0) +/* 0387D8 7F003CA8 2442000C */ addiu $v0, $v0, 0xc +/* 0387DC 7F003CAC 0043082B */ sltu $at, $v0, $v1 +/* 0387E0 7F003CB0 1420FFFC */ bnez $at, .L7F003CA4 +/* 0387E4 7F003CB4 ADC00000 */ sw $zero, ($t6) +/* 0387E8 7F003CB8 2AA1003B */ slti $at, $s5, 0x3b +/* 0387EC 7F003CBC 10200454 */ beqz $at, .L7F004E10 +/* 0387F0 7F003CC0 00157880 */ sll $t7, $s5, 2 +/* 0387F4 7F003CC4 3C188003 */ lui $t8, %hi(setup_text_pointers) +/* 0387F8 7F003CC8 271874E4 */ addiu $t8, %lo(setup_text_pointers) # addiu $t8, $t8, 0x74e4 +/* 0387FC 7F003CCC 01F88021 */ addu $s0, $t7, $t8 +/* 038800 7F003CD0 8E020000 */ lw $v0, ($s0) +/* 038804 7F003CD4 3C198005 */ lui $t9, %hi(only_read_by_stageload) +/* 038808 7F003CD8 27B10174 */ addiu $s1, $sp, 0x174 +/* 03880C 7F003CDC 1040044C */ beqz $v0, .L7F004E10 +/* 038810 7F003CE0 2739EDB0 */ addiu $t9, %lo(only_read_by_stageload) # addiu $t9, $t9, -0x1250 +/* 038814 7F003CE4 02205025 */ move $t2, $s1 +/* 038818 7F003CE8 272900FC */ addiu $t1, $t9, 0xfc +.L7F003CEC: +/* 03881C 7F003CEC 8F210000 */ lw $at, ($t9) +/* 038820 7F003CF0 2739000C */ addiu $t9, $t9, 0xc +/* 038824 7F003CF4 254A000C */ addiu $t2, $t2, 0xc +/* 038828 7F003CF8 AD41FFF4 */ sw $at, -0xc($t2) +/* 03882C 7F003CFC 8F21FFF8 */ lw $at, -8($t9) +/* 038830 7F003D00 AD41FFF8 */ sw $at, -8($t2) +/* 038834 7F003D04 8F21FFFC */ lw $at, -4($t9) +/* 038838 7F003D08 1729FFF8 */ bne $t9, $t1, .L7F003CEC +/* 03883C 7F003D0C AD41FFFC */ sw $at, -4($t2) +/* 038840 7F003D10 8F210000 */ lw $at, ($t9) +/* 038844 7F003D14 0000A025 */ move $s4, $zero +/* 038848 7F003D18 00009825 */ move $s3, $zero +/* 03884C 7F003D1C AD410000 */ sw $at, ($t2) +/* 038850 7F003D20 904B0000 */ lbu $t3, ($v0) +/* 038854 7F003D24 A3A00175 */ sb $zero, 0x175($sp) +/* 038858 7F003D28 0FC26919 */ jal getPlayerCount +/* 03885C 7F003D2C A3AB0174 */ sb $t3, 0x174($sp) +/* 038860 7F003D30 28410002 */ slti $at, $v0, 2 +/* 038864 7F003D34 14200004 */ bnez $at, .L7F003D48 +/* 038868 7F003D38 3C058005 */ lui $a1, %hi(aMp_) +/* 03886C 7F003D3C 24A5EEB0 */ addiu $a1, %lo(aMp_) # addiu $a1, $a1, -0x1150 +/* 038870 7F003D40 0C0029FF */ jal strcat +/* 038874 7F003D44 02202025 */ move $a0, $s1 +.L7F003D48: +/* 038878 7F003D48 8E050000 */ lw $a1, ($s0) +/* 03887C 7F003D4C 02202025 */ move $a0, $s1 +/* 038880 7F003D50 0C0029FF */ jal strcat +/* 038884 7F003D54 24A50001 */ addiu $a1, $a1, 1 +/* 038888 7F003D58 02202025 */ move $a0, $s1 +/* 03888C 7F003D5C 24050001 */ li $a1, 1 +/* 038890 7F003D60 24060100 */ li $a2, 256 +/* 038894 7F003D64 0FC2F341 */ jal _load_resource_named_to_membank +/* 038898 7F003D68 24070004 */ li $a3, 4 +/* 03889C 7F003D6C 3C038007 */ lui $v1, %hi(dword_CODE_bss_80075D28) +/* 0388A0 7F003D70 24635D28 */ addiu $v1, %lo(dword_CODE_bss_80075D28) # addiu $v1, $v1, 0x5d28 +/* 0388A4 7F003D74 AC620000 */ sw $v0, ($v1) +/* 0388A8 7F003D78 00408825 */ move $s1, $v0 +/* 0388AC 7F003D7C 0FC30578 */ jal get_textbank_number_for_stagenum +/* 0388B0 7F003D80 02A02025 */ move $a0, $s5 +/* 0388B4 7F003D84 0FC30742 */ jal load_mission_text_bank +/* 0388B8 7F003D88 00402025 */ move $a0, $v0 +/* 0388BC 7F003D8C 8E2C0000 */ lw $t4, ($s1) +/* 0388C0 7F003D90 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 0388C4 7F003D94 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 0388C8 7F003D98 022C6821 */ addu $t5, $s1, $t4 +/* 0388CC 7F003D9C ACED0000 */ sw $t5, ($a3) +/* 0388D0 7F003DA0 8E2E0004 */ lw $t6, 4($s1) +/* 0388D4 7F003DA4 022E7821 */ addu $t7, $s1, $t6 +/* 0388D8 7F003DA8 ACEF0004 */ sw $t7, 4($a3) +/* 0388DC 7F003DAC 8E380008 */ lw $t8, 8($s1) +/* 0388E0 7F003DB0 02384021 */ addu $t0, $s1, $t8 +/* 0388E4 7F003DB4 ACE80008 */ sw $t0, 8($a3) +/* 0388E8 7F003DB8 8E29000C */ lw $t1, 0xc($s1) +/* 0388EC 7F003DBC 0229C821 */ addu $t9, $s1, $t1 +/* 0388F0 7F003DC0 ACF9000C */ sw $t9, 0xc($a3) +/* 0388F4 7F003DC4 8E2A0010 */ lw $t2, 0x10($s1) +/* 0388F8 7F003DC8 022A5821 */ addu $t3, $s1, $t2 +/* 0388FC 7F003DCC ACEB0010 */ sw $t3, 0x10($a3) +/* 038900 7F003DD0 8E2C0014 */ lw $t4, 0x14($s1) +/* 038904 7F003DD4 022C6821 */ addu $t5, $s1, $t4 +/* 038908 7F003DD8 ACED0014 */ sw $t5, 0x14($a3) +/* 03890C 7F003DDC 8E2E0018 */ lw $t6, 0x18($s1) +/* 038910 7F003DE0 022E7821 */ addu $t7, $s1, $t6 +/* 038914 7F003DE4 ACEF0018 */ sw $t7, 0x18($a3) +/* 038918 7F003DE8 8E38001C */ lw $t8, 0x1c($s1) +/* 03891C 7F003DEC 02384021 */ addu $t0, $s1, $t8 +/* 038920 7F003DF0 ACE8001C */ sw $t0, 0x1c($a3) +/* 038924 7F003DF4 8E220020 */ lw $v0, 0x20($s1) +/* 038928 7F003DF8 10400003 */ beqz $v0, .L7F003E08 +/* 03892C 7F003DFC 02224821 */ addu $t1, $s1, $v0 +/* 038930 7F003E00 10000002 */ b .L7F003E0C +/* 038934 7F003E04 ACE90020 */ sw $t1, 0x20($a3) +.L7F003E08: +/* 038938 7F003E08 ACE00020 */ sw $zero, 0x20($a3) +.L7F003E0C: +/* 03893C 7F003E0C 8E220024 */ lw $v0, 0x24($s1) +/* 038940 7F003E10 10400003 */ beqz $v0, .L7F003E20 +/* 038944 7F003E14 0222C821 */ addu $t9, $s1, $v0 +/* 038948 7F003E18 10000002 */ b .L7F003E24 +/* 03894C 7F003E1C ACF90024 */ sw $t9, 0x24($a3) +.L7F003E20: +/* 038950 7F003E20 ACE00024 */ sw $zero, 0x24($a3) +.L7F003E24: +/* 038954 7F003E24 8CE50000 */ lw $a1, ($a3) +/* 038958 7F003E28 50A00010 */ beql $a1, $zero, .L7F003E6C +/* 03895C 7F003E2C 8CE50004 */ lw $a1, 4($a3) +/* 038960 7F003E30 8CAA0000 */ lw $t2, ($a1) +/* 038964 7F003E34 00001825 */ move $v1, $zero +/* 038968 7F003E38 00A01025 */ move $v0, $a1 +/* 03896C 7F003E3C 0542000B */ bltzl $t2, .L7F003E6C +/* 038970 7F003E40 8CE50004 */ lw $a1, 4($a3) +/* 038974 7F003E44 8C4B0004 */ lw $t3, 4($v0) +.L7F003E48: +/* 038978 7F003E48 24630010 */ addiu $v1, $v1, 0x10 +/* 03897C 7F003E4C 01716021 */ addu $t4, $t3, $s1 +/* 038980 7F003E50 AC4C0004 */ sw $t4, 4($v0) +/* 038984 7F003E54 8CED0000 */ lw $t5, ($a3) +/* 038988 7F003E58 01A31021 */ addu $v0, $t5, $v1 +/* 03898C 7F003E5C 8C4E0000 */ lw $t6, ($v0) +/* 038990 7F003E60 05C3FFF9 */ bgezl $t6, .L7F003E48 +/* 038994 7F003E64 8C4B0004 */ lw $t3, 4($v0) +/* 038998 7F003E68 8CE50004 */ lw $a1, 4($a3) +.L7F003E6C: +/* 03899C 7F003E6C 50A00015 */ beql $a1, $zero, .L7F003EC4 +/* 0389A0 7F003E70 8CE60014 */ lw $a2, 0x14($a3) +/* 0389A4 7F003E74 8CAF0000 */ lw $t7, ($a1) +/* 0389A8 7F003E78 00001825 */ move $v1, $zero +/* 0389AC 7F003E7C 00A01025 */ move $v0, $a1 +/* 0389B0 7F003E80 51E00010 */ beql $t7, $zero, .L7F003EC4 +/* 0389B4 7F003E84 8CE60014 */ lw $a2, 0x14($a3) +/* 0389B8 7F003E88 8CA40000 */ lw $a0, ($a1) +/* 0389BC 7F003E8C 0091C021 */ addu $t8, $a0, $s1 +.L7F003E90: +/* 0389C0 7F003E90 AC580000 */ sw $t8, ($v0) +/* 0389C4 7F003E94 8CE80004 */ lw $t0, 4($a3) +/* 0389C8 7F003E98 01031021 */ addu $v0, $t0, $v1 +/* 0389CC 7F003E9C 8C490004 */ lw $t1, 4($v0) +/* 0389D0 7F003EA0 2463000C */ addiu $v1, $v1, 0xc +/* 0389D4 7F003EA4 0131C821 */ addu $t9, $t1, $s1 +/* 0389D8 7F003EA8 AC590004 */ sw $t9, 4($v0) +/* 0389DC 7F003EAC 8CEA0004 */ lw $t2, 4($a3) +/* 0389E0 7F003EB0 01431021 */ addu $v0, $t2, $v1 +/* 0389E4 7F003EB4 8C440000 */ lw $a0, ($v0) +/* 0389E8 7F003EB8 5480FFF5 */ bnezl $a0, .L7F003E90 +/* 0389EC 7F003EBC 0091C021 */ addu $t8, $a0, $s1 +/* 0389F0 7F003EC0 8CE60014 */ lw $a2, 0x14($a3) +.L7F003EC4: +/* 0389F4 7F003EC4 50C00010 */ beql $a2, $zero, .L7F003F08 +/* 0389F8 7F003EC8 8CE20010 */ lw $v0, 0x10($a3) +/* 0389FC 7F003ECC 8CCB0000 */ lw $t3, ($a2) +/* 038A00 7F003ED0 00002825 */ move $a1, $zero +/* 038A04 7F003ED4 00C01025 */ move $v0, $a2 +/* 038A08 7F003ED8 5160000B */ beql $t3, $zero, .L7F003F08 +/* 038A0C 7F003EDC 8CE20010 */ lw $v0, 0x10($a3) +/* 038A10 7F003EE0 8CC30000 */ lw $v1, ($a2) +/* 038A14 7F003EE4 00716021 */ addu $t4, $v1, $s1 +.L7F003EE8: +/* 038A18 7F003EE8 AC4C0000 */ sw $t4, ($v0) +/* 038A1C 7F003EEC 8CED0014 */ lw $t5, 0x14($a3) +/* 038A20 7F003EF0 24A50008 */ addiu $a1, $a1, 8 +/* 038A24 7F003EF4 01A51021 */ addu $v0, $t5, $a1 +/* 038A28 7F003EF8 8C430000 */ lw $v1, ($v0) +/* 038A2C 7F003EFC 5460FFFA */ bnezl $v1, .L7F003EE8 +/* 038A30 7F003F00 00716021 */ addu $t4, $v1, $s1 +/* 038A34 7F003F04 8CE20010 */ lw $v0, 0x10($a3) +.L7F003F08: +/* 038A38 7F003F08 50400020 */ beql $v0, $zero, .L7F003F8C +/* 038A3C 7F003F0C 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A40 7F003F10 8C4E0000 */ lw $t6, ($v0) +/* 038A44 7F003F14 00002825 */ move $a1, $zero +/* 038A48 7F003F18 00403025 */ move $a2, $v0 +/* 038A4C 7F003F1C 51C0001B */ beql $t6, $zero, .L7F003F8C +/* 038A50 7F003F20 8CEA0018 */ lw $t2, 0x18($a3) +/* 038A54 7F003F24 8C440000 */ lw $a0, ($v0) +/* 038A58 7F003F28 00917821 */ addu $t7, $a0, $s1 +.L7F003F2C: +/* 038A5C 7F003F2C ACCF0000 */ sw $t7, ($a2) +/* 038A60 7F003F30 8CF80010 */ lw $t8, 0x10($a3) +/* 038A64 7F003F34 00001825 */ move $v1, $zero +/* 038A68 7F003F38 03053021 */ addu $a2, $t8, $a1 +/* 038A6C 7F003F3C 8CC40000 */ lw $a0, ($a2) +/* 038A70 7F003F40 8C880000 */ lw $t0, ($a0) +/* 038A74 7F003F44 00801025 */ move $v0, $a0 +/* 038A78 7F003F48 05020009 */ bltzl $t0, .L7F003F70 +/* 038A7C 7F003F4C A4C30006 */ sh $v1, 6($a2) +/* 038A80 7F003F50 8C490004 */ lw $t1, 4($v0) +.L7F003F54: +/* 038A84 7F003F54 24630001 */ addiu $v1, $v1, 1 +/* 038A88 7F003F58 24420004 */ addiu $v0, $v0, 4 +/* 038A8C 7F003F5C 0523FFFD */ bgezl $t1, .L7F003F54 +/* 038A90 7F003F60 8C490004 */ lw $t1, 4($v0) +/* 038A94 7F003F64 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038A98 7F003F68 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038A9C 7F003F6C A4C30006 */ sh $v1, 6($a2) +.L7F003F70: +/* 038AA0 7F003F70 8CF90010 */ lw $t9, 0x10($a3) +/* 038AA4 7F003F74 24A50008 */ addiu $a1, $a1, 8 +/* 038AA8 7F003F78 03253021 */ addu $a2, $t9, $a1 +/* 038AAC 7F003F7C 8CC40000 */ lw $a0, ($a2) +/* 038AB0 7F003F80 5480FFEA */ bnezl $a0, .L7F003F2C +/* 038AB4 7F003F84 00917821 */ addu $t7, $a0, $s1 +/* 038AB8 7F003F88 8CEA0018 */ lw $t2, 0x18($a3) +.L7F003F8C: +/* 038ABC 7F003F8C 1140001D */ beqz $t2, .L7F004004 +/* 038AC0 7F003F90 00000000 */ nop +/* 038AC4 7F003F94 0FC2D20C */ jal get_room_data_float2 +/* 038AC8 7F003F98 00000000 */ nop +/* 038ACC 7F003F9C 3C108007 */ lui $s0, %hi(ptr_0xxxpresets) +/* 038AD0 7F003FA0 8E105D18 */ lw $s0, %lo(ptr_0xxxpresets)($s0) +/* 038AD4 7F003FA4 46000086 */ mov.s $f2, $f0 +/* 038AD8 7F003FA8 8E020024 */ lw $v0, 0x24($s0) +/* 038ADC 7F003FAC 10400015 */ beqz $v0, .L7F004004 +/* 038AE0 7F003FB0 00000000 */ nop +/* 038AE4 7F003FB4 C6060000 */ lwc1 $f6, ($s0) +.L7F003FB8: +/* 038AE8 7F003FB8 C60A0004 */ lwc1 $f10, 4($s0) +/* 038AEC 7F003FBC C6120008 */ lwc1 $f18, 8($s0) +/* 038AF0 7F003FC0 46023202 */ mul.s $f8, $f6, $f2 +/* 038AF4 7F003FC4 02222821 */ addu $a1, $s1, $v0 +/* 038AF8 7F003FC8 AE050024 */ sw $a1, 0x24($s0) +/* 038AFC 7F003FCC 46025402 */ mul.s $f16, $f10, $f2 +/* 038B00 7F003FD0 02002025 */ move $a0, $s0 +/* 038B04 7F003FD4 26060028 */ addiu $a2, $s0, 0x28 +/* 038B08 7F003FD8 46029102 */ mul.s $f4, $f18, $f2 +/* 038B0C 7F003FDC E6080000 */ swc1 $f8, ($s0) +/* 038B10 7F003FE0 E6100004 */ swc1 $f16, 4($s0) +/* 038B14 7F003FE4 E6040008 */ swc1 $f4, 8($s0) +/* 038B18 7F003FE8 0FC019F0 */ jal init_pathtable_something +/* 038B1C 7F003FEC E7A2015C */ swc1 $f2, 0x15c($sp) +/* 038B20 7F003FF0 8E020050 */ lw $v0, 0x50($s0) +/* 038B24 7F003FF4 2610002C */ addiu $s0, $s0, 0x2c +/* 038B28 7F003FF8 C7A2015C */ lwc1 $f2, 0x15c($sp) +/* 038B2C 7F003FFC 5440FFEE */ bnezl $v0, .L7F003FB8 +/* 038B30 7F004000 C6060000 */ lwc1 $f6, ($s0) +.L7F004004: +/* 038B34 7F004004 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B38 7F004008 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B3C 7F00400C 8CEC001C */ lw $t4, 0x1c($a3) +/* 038B40 7F004010 51800033 */ beql $t4, $zero, .L7F0040E0 +/* 038B44 7F004014 8CE50020 */ lw $a1, 0x20($a3) +/* 038B48 7F004018 0FC2D20C */ jal get_room_data_float2 +/* 038B4C 7F00401C 00000000 */ nop +/* 038B50 7F004020 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038B54 7F004024 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038B58 7F004028 8CF0001C */ lw $s0, 0x1c($a3) +/* 038B5C 7F00402C 46000086 */ mov.s $f2, $f0 +/* 038B60 7F004030 8E020024 */ lw $v0, 0x24($s0) +/* 038B64 7F004034 5040002A */ beql $v0, $zero, .L7F0040E0 +/* 038B68 7F004038 8CE50020 */ lw $a1, 0x20($a3) +/* 038B6C 7F00403C C6060000 */ lwc1 $f6, ($s0) +.L7F004040: +/* 038B70 7F004040 C60A0004 */ lwc1 $f10, 4($s0) +/* 038B74 7F004044 C6120008 */ lwc1 $f18, 8($s0) +/* 038B78 7F004048 46023202 */ mul.s $f8, $f6, $f2 +/* 038B7C 7F00404C C606002C */ lwc1 $f6, 0x2c($s0) +/* 038B80 7F004050 02222821 */ addu $a1, $s1, $v0 +/* 038B84 7F004054 46025402 */ mul.s $f16, $f10, $f2 +/* 038B88 7F004058 C60A0030 */ lwc1 $f10, 0x30($s0) +/* 038B8C 7F00405C AE050024 */ sw $a1, 0x24($s0) +/* 038B90 7F004060 46029102 */ mul.s $f4, $f18, $f2 +/* 038B94 7F004064 E6080000 */ swc1 $f8, ($s0) +/* 038B98 7F004068 C6120034 */ lwc1 $f18, 0x34($s0) +/* 038B9C 7F00406C 46023202 */ mul.s $f8, $f6, $f2 +/* 038BA0 7F004070 E6100004 */ swc1 $f16, 4($s0) +/* 038BA4 7F004074 C6060038 */ lwc1 $f6, 0x38($s0) +/* 038BA8 7F004078 46025402 */ mul.s $f16, $f10, $f2 +/* 038BAC 7F00407C E6040008 */ swc1 $f4, 8($s0) +/* 038BB0 7F004080 C60A003C */ lwc1 $f10, 0x3c($s0) +/* 038BB4 7F004084 46029102 */ mul.s $f4, $f18, $f2 +/* 038BB8 7F004088 E608002C */ swc1 $f8, 0x2c($s0) +/* 038BBC 7F00408C C6120040 */ lwc1 $f18, 0x40($s0) +/* 038BC0 7F004090 46023202 */ mul.s $f8, $f6, $f2 +/* 038BC4 7F004094 E6100030 */ swc1 $f16, 0x30($s0) +/* 038BC8 7F004098 02002025 */ move $a0, $s0 +/* 038BCC 7F00409C 46025402 */ mul.s $f16, $f10, $f2 +/* 038BD0 7F0040A0 E6040034 */ swc1 $f4, 0x34($s0) +/* 038BD4 7F0040A4 26060028 */ addiu $a2, $s0, 0x28 +/* 038BD8 7F0040A8 46029102 */ mul.s $f4, $f18, $f2 +/* 038BDC 7F0040AC E6080038 */ swc1 $f8, 0x38($s0) +/* 038BE0 7F0040B0 E610003C */ swc1 $f16, 0x3c($s0) +/* 038BE4 7F0040B4 E6040040 */ swc1 $f4, 0x40($s0) +/* 038BE8 7F0040B8 0FC019F0 */ jal init_pathtable_something +/* 038BEC 7F0040BC E7A20150 */ swc1 $f2, 0x150($sp) +/* 038BF0 7F0040C0 8E020068 */ lw $v0, 0x68($s0) +/* 038BF4 7F0040C4 26100044 */ addiu $s0, $s0, 0x44 +/* 038BF8 7F0040C8 C7A20150 */ lwc1 $f2, 0x150($sp) +/* 038BFC 7F0040CC 5440FFDC */ bnezl $v0, .L7F004040 +/* 038C00 7F0040D0 C6060000 */ lwc1 $f6, ($s0) +/* 038C04 7F0040D4 3C078007 */ lui $a3, %hi(ptr_setup_path_tbl) +/* 038C08 7F0040D8 24E75D00 */ addiu $a3, %lo(ptr_setup_path_tbl) # addiu $a3, $a3, 0x5d00 +/* 038C0C 7F0040DC 8CE50020 */ lw $a1, 0x20($a3) +.L7F0040E0: +/* 038C10 7F0040E0 50A00010 */ beql $a1, $zero, .L7F004124 +/* 038C14 7F0040E4 8CE50024 */ lw $a1, 0x24($a3) +/* 038C18 7F0040E8 8CAE0000 */ lw $t6, ($a1) +/* 038C1C 7F0040EC 00001025 */ move $v0, $zero +/* 038C20 7F0040F0 00A01825 */ move $v1, $a1 +/* 038C24 7F0040F4 51C0000B */ beql $t6, $zero, .L7F004124 +/* 038C28 7F0040F8 8CE50024 */ lw $a1, 0x24($a3) +/* 038C2C 7F0040FC 8CA40000 */ lw $a0, ($a1) +/* 038C30 7F004100 00917821 */ addu $t7, $a0, $s1 +.L7F004104: +/* 038C34 7F004104 AC6F0000 */ sw $t7, ($v1) +/* 038C38 7F004108 8CF80020 */ lw $t8, 0x20($a3) +/* 038C3C 7F00410C 24420004 */ addiu $v0, $v0, 4 +/* 038C40 7F004110 03021821 */ addu $v1, $t8, $v0 +/* 038C44 7F004114 8C640000 */ lw $a0, ($v1) +/* 038C48 7F004118 5480FFFA */ bnezl $a0, .L7F004104 +/* 038C4C 7F00411C 00917821 */ addu $t7, $a0, $s1 +/* 038C50 7F004120 8CE50024 */ lw $a1, 0x24($a3) +.L7F004124: +/* 038C54 7F004124 50A0000F */ beql $a1, $zero, .L7F004164 +/* 038C58 7F004128 8FAA0278 */ lw $t2, 0x278($sp) +/* 038C5C 7F00412C 8CA80000 */ lw $t0, ($a1) +/* 038C60 7F004130 00001025 */ move $v0, $zero +/* 038C64 7F004134 00A01825 */ move $v1, $a1 +/* 038C68 7F004138 11000009 */ beqz $t0, .L7F004160 +/* 038C6C 7F00413C 01002025 */ move $a0, $t0 +/* 038C70 7F004140 00914821 */ addu $t1, $a0, $s1 +.L7F004144: +/* 038C74 7F004144 AC690000 */ sw $t1, ($v1) +/* 038C78 7F004148 8CF90024 */ lw $t9, 0x24($a3) +/* 038C7C 7F00414C 24420004 */ addiu $v0, $v0, 4 +/* 038C80 7F004150 03221821 */ addu $v1, $t9, $v0 +/* 038C84 7F004154 8C640000 */ lw $a0, ($v1) +/* 038C88 7F004158 5480FFFA */ bnezl $a0, .L7F004144 +/* 038C8C 7F00415C 00914821 */ addu $t1, $a0, $s1 +.L7F004160: +/* 038C90 7F004160 8FAA0278 */ lw $t2, 0x278($sp) +.L7F004164: +/* 038C94 7F004164 11400012 */ beqz $t2, .L7F0041B0 +/* 038C98 7F004168 00000000 */ nop +/* 038C9C 7F00416C 0FC006D4 */ jal load_proptype +/* 038CA0 7F004170 24040009 */ li $a0, 9 +/* 038CA4 7F004174 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CA8 7F004178 00402025 */ move $a0, $v0 +/* 038CAC 7F00417C 0FC006D4 */ jal load_proptype +/* 038CB0 7F004180 24040009 */ li $a0, 9 +/* 038CB4 7F004184 0040A025 */ move $s4, $v0 +/* 038CB8 7F004188 0FC006D4 */ jal load_proptype +/* 038CBC 7F00418C 24040008 */ li $a0, 8 +/* 038CC0 7F004190 00409825 */ move $s3, $v0 +/* 038CC4 7F004194 0FC006D4 */ jal load_proptype +/* 038CC8 7F004198 24040004 */ li $a0, 4 +/* 038CCC 7F00419C 02629821 */ addu $s3, $s3, $v0 +/* 038CD0 7F0041A0 0FC006D4 */ jal load_proptype +/* 038CD4 7F0041A4 24040011 */ li $a0, 17 +/* 038CD8 7F0041A8 10000003 */ b .L7F0041B8 +/* 038CDC 7F0041AC 02629821 */ addu $s3, $s3, $v0 +.L7F0041B0: +/* 038CE0 7F0041B0 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 038CE4 7F0041B4 00002025 */ move $a0, $zero +.L7F0041B8: +/* 038CE8 7F0041B8 13C0003A */ beqz $fp, .L7F0042A4 +/* 038CEC 7F0041BC 00000000 */ nop +/* 038CF0 7F0041C0 0FC006D4 */ jal load_proptype +/* 038CF4 7F0041C4 24040001 */ li $a0, 1 +/* 038CF8 7F0041C8 02629821 */ addu $s3, $s3, $v0 +/* 038CFC 7F0041CC 0FC006D4 */ jal load_proptype +/* 038D00 7F0041D0 24040006 */ li $a0, 6 +/* 038D04 7F0041D4 02629821 */ addu $s3, $s3, $v0 +/* 038D08 7F0041D8 0FC006D4 */ jal load_proptype +/* 038D0C 7F0041DC 2404000D */ li $a0, 13 +/* 038D10 7F0041E0 02629821 */ addu $s3, $s3, $v0 +/* 038D14 7F0041E4 0FC006D4 */ jal load_proptype +/* 038D18 7F0041E8 2404000C */ li $a0, 12 +/* 038D1C 7F0041EC 02629821 */ addu $s3, $s3, $v0 +/* 038D20 7F0041F0 0FC006D4 */ jal load_proptype +/* 038D24 7F0041F4 2404000A */ li $a0, 10 +/* 038D28 7F0041F8 02629821 */ addu $s3, $s3, $v0 +/* 038D2C 7F0041FC 0FC006D4 */ jal load_proptype +/* 038D30 7F004200 2404000B */ li $a0, 11 +/* 038D34 7F004204 02629821 */ addu $s3, $s3, $v0 +/* 038D38 7F004208 0FC006D4 */ jal load_proptype +/* 038D3C 7F00420C 24040015 */ li $a0, 21 +/* 038D40 7F004210 02629821 */ addu $s3, $s3, $v0 +/* 038D44 7F004214 0FC006D4 */ jal load_proptype +/* 038D48 7F004218 24040003 */ li $a0, 3 +/* 038D4C 7F00421C 02629821 */ addu $s3, $s3, $v0 +/* 038D50 7F004220 0FC006D4 */ jal load_proptype +/* 038D54 7F004224 2404002A */ li $a0, 42 +/* 038D58 7F004228 02629821 */ addu $s3, $s3, $v0 +/* 038D5C 7F00422C 0FC006D4 */ jal load_proptype +/* 038D60 7F004230 2404002F */ li $a0, 47 +/* 038D64 7F004234 02629821 */ addu $s3, $s3, $v0 +/* 038D68 7F004238 0FC006D4 */ jal load_proptype +/* 038D6C 7F00423C 2404002B */ li $a0, 43 +/* 038D70 7F004240 02629821 */ addu $s3, $s3, $v0 +/* 038D74 7F004244 0FC006D4 */ jal load_proptype +/* 038D78 7F004248 24040029 */ li $a0, 41 +/* 038D7C 7F00424C 02629821 */ addu $s3, $s3, $v0 +/* 038D80 7F004250 0FC006D4 */ jal load_proptype +/* 038D84 7F004254 24040024 */ li $a0, 36 +/* 038D88 7F004258 02629821 */ addu $s3, $s3, $v0 +/* 038D8C 7F00425C 0FC006D4 */ jal load_proptype +/* 038D90 7F004260 24040005 */ li $a0, 5 +/* 038D94 7F004264 02629821 */ addu $s3, $s3, $v0 +/* 038D98 7F004268 0FC006D4 */ jal load_proptype +/* 038D9C 7F00426C 24040007 */ li $a0, 7 +/* 038DA0 7F004270 02629821 */ addu $s3, $s3, $v0 +/* 038DA4 7F004274 0FC006D4 */ jal load_proptype +/* 038DA8 7F004278 24040014 */ li $a0, 20 +/* 038DAC 7F00427C 02629821 */ addu $s3, $s3, $v0 +/* 038DB0 7F004280 0FC006D4 */ jal load_proptype +/* 038DB4 7F004284 24040027 */ li $a0, 39 +/* 038DB8 7F004288 02629821 */ addu $s3, $s3, $v0 +/* 038DBC 7F00428C 0FC006D4 */ jal load_proptype +/* 038DC0 7F004290 2404002D */ li $a0, 45 +/* 038DC4 7F004294 02629821 */ addu $s3, $s3, $v0 +/* 038DC8 7F004298 0FC006D4 */ jal load_proptype +/* 038DCC 7F00429C 24040028 */ li $a0, 40 +/* 038DD0 7F0042A0 0282A021 */ addu $s4, $s4, $v0 +.L7F0042A4: +/* 038DD4 7F0042A4 0FC01550 */ jal sub_GAME_7F005540 +/* 038DD8 7F0042A8 02602025 */ move $a0, $s3 +/* 038DDC 7F0042AC 0FC01589 */ jal sub_GAME_7F005624 +/* 038DE0 7F0042B0 02802025 */ move $a0, $s4 +/* 038DE4 7F0042B4 0FC26919 */ jal getPlayerCount +/* 038DE8 7F0042B8 00008025 */ move $s0, $zero +/* 038DEC 7F0042BC 1840000C */ blez $v0, .L7F0042F0 +/* 038DF0 7F0042C0 00000000 */ nop +.L7F0042C4: +/* 038DF4 7F0042C4 0FC26C43 */ jal set_cur_player +/* 038DF8 7F0042C8 02002025 */ move $a0, $s0 +/* 038DFC 7F0042CC 0FC006D4 */ jal load_proptype +/* 038E00 7F0042D0 2404000E */ li $a0, 14 +/* 038E04 7F0042D4 0FC01897 */ jal alloc_additional_item_slots +/* 038E08 7F0042D8 00402025 */ move $a0, $v0 +/* 038E0C 7F0042DC 0FC26919 */ jal getPlayerCount +/* 038E10 7F0042E0 26100001 */ addiu $s0, $s0, 1 +/* 038E14 7F0042E4 0202082A */ slt $at, $s0, $v0 +/* 038E18 7F0042E8 1420FFF6 */ bnez $at, .L7F0042C4 +/* 038E1C 7F0042EC 00000000 */ nop +.L7F0042F0: +/* 038E20 7F0042F0 3C0B8007 */ lui $t3, %hi(ptr_setup_objects) +/* 038E24 7F0042F4 8D6B5D0C */ lw $t3, %lo(ptr_setup_objects)($t3) +/* 038E28 7F0042F8 116002DF */ beqz $t3, .L7F004E78 +/* 038E2C 7F0042FC 00000000 */ nop +/* 038E30 7F004300 0FC2FF04 */ jal get_current_difficulty +/* 038E34 7F004304 00000000 */ nop +/* 038E38 7F004308 244C0004 */ addiu $t4, $v0, 4 +/* 038E3C 7F00430C 240D0001 */ li $t5, 1 +/* 038E40 7F004310 0FC26919 */ jal getPlayerCount +/* 038E44 7F004314 018DA004 */ sllv $s4, $t5, $t4 +/* 038E48 7F004318 28410002 */ slti $at, $v0, 2 +/* 038E4C 7F00431C 14200007 */ bnez $at, .L7F00433C +/* 038E50 7F004320 00000000 */ nop +/* 038E54 7F004324 0FC26919 */ jal getPlayerCount +/* 038E58 7F004328 00000000 */ nop +/* 038E5C 7F00432C 244E0014 */ addiu $t6, $v0, 0x14 +/* 038E60 7F004330 240F0001 */ li $t7, 1 +/* 038E64 7F004334 01CFC004 */ sllv $t8, $t7, $t6 +/* 038E68 7F004338 0298A025 */ or $s4, $s4, $t8 +.L7F00433C: +/* 038E6C 7F00433C 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 038E70 7F004340 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 038E74 7F004344 24010030 */ li $at, 48 +/* 038E78 7F004348 00009825 */ move $s3, $zero +/* 038E7C 7F00434C 92430003 */ lbu $v1, 3($s2) +/* 038E80 7F004350 24170034 */ li $s7, 52 +/* 038E84 7F004354 506101F6 */ beql $v1, $at, .L7F004B30 +/* 038E88 7F004358 92430003 */ lbu $v1, 3($s2) +/* 038E8C 7F00435C 4480A000 */ mtc1 $zero, $f20 +/* 038E90 7F004360 3416FFFF */ li $s6, 65535 +/* 038E94 7F004364 2468FFFF */ addiu $t0, $v1, -1 +.L7F004368: +/* 038E98 7F004368 2D01002F */ sltiu $at, $t0, 0x2f +/* 038E9C 7F00436C 102001E3 */ beqz $at, other_obj_expand +/* 038EA0 7F004370 00084080 */ sll $t0, $t0, 2 +/* 038EA4 7F004374 3C018005 */ lui $at, %hi(jpt_object_type_expansion) +/* 038EA8 7F004378 00280821 */ addu $at, $at, $t0 +/* 038EAC 7F00437C 8C28EF68 */ lw $t0, %lo(jpt_object_type_expansion)($at) +/* 038EB0 7F004380 01000008 */ jr $t0 +/* 038EB4 7F004384 00000000 */ nop +actor_attr_expand: +/* 038EB8 7F004388 9250000B */ lbu $s0, 0xb($s2) +/* 038EBC 7F00438C 0FC08BF2 */ jal check_if_guardnum_loaded_get_ptr_GUARDdata +/* 038EC0 7F004390 8E440004 */ lw $a0, 4($s2) +/* 038EC4 7F004394 104001D9 */ beqz $v0, other_obj_expand +/* 038EC8 7F004398 00000000 */ nop +/* 038ECC 7F00439C 8C490018 */ lw $t1, 0x18($v0) +/* 038ED0 7F0043A0 112001D6 */ beqz $t1, other_obj_expand +/* 038ED4 7F0043A4 00000000 */ nop +/* 038ED8 7F0043A8 8C59001C */ lw $t9, 0x1c($v0) +/* 038EDC 7F0043AC 132001D3 */ beqz $t9, other_obj_expand +/* 038EE0 7F0043B0 00000000 */ nop +/* 038EE4 7F0043B4 100001D1 */ b other_obj_expand +/* 038EE8 7F0043B8 A0500010 */ sb $s0, 0x10($v0) +actor_expand: +/* 038EEC 7F0043BC 8FAA0278 */ lw $t2, 0x278($sp) +/* 038EF0 7F0043C0 02A02025 */ move $a0, $s5 +/* 038EF4 7F0043C4 02402825 */ move $a1, $s2 +/* 038EF8 7F0043C8 114001CC */ beqz $t2, other_obj_expand +/* 038EFC 7F0043CC 00000000 */ nop +/* 038F00 7F0043D0 0FC08DC3 */ jal expand_09_characters +/* 038F04 7F0043D4 02603025 */ move $a2, $s3 +/* 038F08 7F0043D8 100001C8 */ b other_obj_expand +/* 038F0C 7F0043DC 00000000 */ nop +door_expand: +/* 038F10 7F0043E0 13C001C6 */ beqz $fp, other_obj_expand +/* 038F14 7F0043E4 00000000 */ nop +/* 038F18 7F0043E8 8E4B000C */ lw $t3, 0xc($s2) +/* 038F1C 7F0043EC 02A02025 */ move $a0, $s5 +/* 038F20 7F0043F0 02402825 */ move $a1, $s2 +/* 038F24 7F0043F4 01746824 */ and $t5, $t3, $s4 +/* 038F28 7F0043F8 15A001C0 */ bnez $t5, other_obj_expand +/* 038F2C 7F0043FC 00000000 */ nop +/* 038F30 7F004400 0FC00D20 */ jal sub_GAME_7F003480 +/* 038F34 7F004404 02603025 */ move $a2, $s3 +/* 038F38 7F004408 100001BC */ b other_obj_expand +/* 038F3C 7F00440C 00000000 */ nop +door_scale_expand: +/* 038F40 7F004410 8E4C0004 */ lw $t4, 4($s2) +/* 038F44 7F004414 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 038F48 7F004418 44815000 */ mtc1 $at, $f10 +/* 038F4C 7F00441C 448C3000 */ mtc1 $t4, $f6 +/* 038F50 7F004420 3C018003 */ lui $at, %hi(scale_1_0_item_related) +/* 038F54 7F004424 46803220 */ cvt.s.w $f8, $f6 +/* 038F58 7F004428 460A4403 */ div.s $f16, $f8, $f10 +/* 038F5C 7F00442C 100001B3 */ b other_obj_expand +/* 038F60 7F004430 E430A3C0 */ swc1 $f16, %lo(scale_1_0_item_related)($at) +item_expand: +/* 038F64 7F004434 8FAF0278 */ lw $t7, 0x278($sp) +/* 038F68 7F004438 11E001B0 */ beqz $t7, other_obj_expand +/* 038F6C 7F00443C 00000000 */ nop +/* 038F70 7F004440 8E4E000C */ lw $t6, 0xc($s2) +/* 038F74 7F004444 02A02025 */ move $a0, $s5 +/* 038F78 7F004448 02402825 */ move $a1, $s2 +/* 038F7C 7F00444C 01D4C024 */ and $t8, $t6, $s4 +/* 038F80 7F004450 170001AA */ bnez $t8, other_obj_expand +/* 038F84 7F004454 00000000 */ nop +/* 038F88 7F004458 0FC009CE */ jal expand_08_obj_set_guard_MP_weapons +/* 038F8C 7F00445C 02603025 */ move $a2, $s3 +/* 038F90 7F004460 100001A6 */ b other_obj_expand +/* 038F94 7F004464 00000000 */ nop +key_expand: +/* 038F98 7F004468 8FA80278 */ lw $t0, 0x278($sp) +/* 038F9C 7F00446C 110001A3 */ beqz $t0, other_obj_expand +/* 038FA0 7F004470 00000000 */ nop +/* 038FA4 7F004474 8E49000C */ lw $t1, 0xc($s2) +/* 038FA8 7F004478 02A02025 */ move $a0, $s5 +/* 038FAC 7F00447C 02402825 */ move $a1, $s2 +/* 038FB0 7F004480 0134C824 */ and $t9, $t1, $s4 +/* 038FB4 7F004484 1720019D */ bnez $t9, other_obj_expand +/* 038FB8 7F004488 00000000 */ nop +/* 038FBC 7F00448C 0FC00A87 */ jal jmp_prepare_load_objects +/* 038FC0 7F004490 02603025 */ move $a2, $s3 +/* 038FC4 7F004494 10000199 */ b other_obj_expand +/* 038FC8 7F004498 00000000 */ nop +hat_expand: +/* 038FCC 7F00449C 8FAA0278 */ lw $t2, 0x278($sp) +/* 038FD0 7F0044A0 11400196 */ beqz $t2, other_obj_expand +/* 038FD4 7F0044A4 00000000 */ nop +/* 038FD8 7F0044A8 8E4B000C */ lw $t3, 0xc($s2) +/* 038FDC 7F0044AC 02A02025 */ move $a0, $s5 +/* 038FE0 7F0044B0 02402825 */ move $a1, $s2 +/* 038FE4 7F0044B4 01746824 */ and $t5, $t3, $s4 +/* 038FE8 7F0044B8 15A00190 */ bnez $t5, other_obj_expand +/* 038FEC 7F0044BC 00000000 */ nop +/* 038FF0 7F0044C0 0FC00A6A */ jal MP_weapon_expansion_routine +/* 038FF4 7F0044C4 02603025 */ move $a2, $s3 +/* 038FF8 7F0044C8 1000018C */ b other_obj_expand +/* 038FFC 7F0044CC 00000000 */ nop +surv_camera_expand: +/* 039000 7F0044D0 13C0018A */ beqz $fp, other_obj_expand +/* 039004 7F0044D4 00000000 */ nop +/* 039008 7F0044D8 8E4C000C */ lw $t4, 0xc($s2) +/* 03900C 7F0044DC 02A02025 */ move $a0, $s5 +/* 039010 7F0044E0 02402825 */ move $a1, $s2 +/* 039014 7F0044E4 01947824 */ and $t7, $t4, $s4 +/* 039018 7F0044E8 15E00184 */ bnez $t7, other_obj_expand +/* 03901C 7F0044EC 00000000 */ nop +/* 039020 7F0044F0 0FC00A8F */ jal sub_GAME_7F002A3C +/* 039024 7F0044F4 02603025 */ move $a2, $s3 +/* 039028 7F0044F8 10000180 */ b other_obj_expand +/* 03902C 7F0044FC 00000000 */ nop +autogun_expand: +/* 039030 7F004500 13C0017E */ beqz $fp, other_obj_expand +/* 039034 7F004504 00000000 */ nop +/* 039038 7F004508 8E4E000C */ lw $t6, 0xc($s2) +/* 03903C 7F00450C 02A02025 */ move $a0, $s5 +/* 039040 7F004510 02402825 */ move $a1, $s2 +/* 039044 7F004514 01D4C024 */ and $t8, $t6, $s4 +/* 039048 7F004518 17000178 */ bnez $t8, other_obj_expand +/* 03904C 7F00451C 00000000 */ nop +/* 039050 7F004520 0FC00B16 */ jal expand_type_0D_object_autoturret +/* 039054 7F004524 02603025 */ move $a2, $s3 +/* 039058 7F004528 10000174 */ b other_obj_expand +/* 03905C 7F00452C 00000000 */ nop +rack_expand: +/* 039060 7F004530 13C00172 */ beqz $fp, other_obj_expand +/* 039064 7F004534 00000000 */ nop +/* 039068 7F004538 8E48000C */ lw $t0, 0xc($s2) +/* 03906C 7F00453C 02A02025 */ move $a0, $s5 +/* 039070 7F004540 02402825 */ move $a1, $s2 +/* 039074 7F004544 01144824 */ and $t1, $t0, $s4 +/* 039078 7F004548 1520016C */ bnez $t1, other_obj_expand +/* 03907C 7F00454C 00000000 */ nop +/* 039080 7F004550 0FC00B87 */ jal jmp_prepare_load_objects_0 +/* 039084 7F004554 02603025 */ move $a2, $s3 +/* 039088 7F004558 10000168 */ b other_obj_expand +/* 03908C 7F00455C 00000000 */ nop +single_screen_display_expand: +/* 039090 7F004560 13C00166 */ beqz $fp, other_obj_expand +/* 039094 7F004564 00000000 */ nop +/* 039098 7F004568 8E59000C */ lw $t9, 0xc($s2) +/* 03909C 7F00456C 02A02025 */ move $a0, $s5 +/* 0390A0 7F004570 02402825 */ move $a1, $s2 +/* 0390A4 7F004574 03345024 */ and $t2, $t9, $s4 +/* 0390A8 7F004578 15400160 */ bnez $t2, other_obj_expand +/* 0390AC 7F00457C 00000000 */ nop +/* 0390B0 7F004580 0FC00B8F */ jal sub_GAME_7F002E3C +/* 0390B4 7F004584 02603025 */ move $a2, $s3 +/* 0390B8 7F004588 1000015C */ b other_obj_expand +/* 0390BC 7F00458C 00000000 */ nop +multi_screen_display_expand: +/* 0390C0 7F004590 13C0015A */ beqz $fp, other_obj_expand +/* 0390C4 7F004594 00000000 */ nop +/* 0390C8 7F004598 8E4B000C */ lw $t3, 0xc($s2) +/* 0390CC 7F00459C 02A02025 */ move $a0, $s5 +/* 0390D0 7F0045A0 02402825 */ move $a1, $s2 +/* 0390D4 7F0045A4 01746824 */ and $t5, $t3, $s4 +/* 0390D8 7F0045A8 15A00154 */ bnez $t5, other_obj_expand +/* 0390DC 7F0045AC 00000000 */ nop +/* 0390E0 7F0045B0 0FC00C34 */ jal sub_GAME_7F0030D0 +/* 0390E4 7F0045B4 02603025 */ move $a2, $s3 +/* 0390E8 7F0045B8 10000150 */ b other_obj_expand +/* 0390EC 7F0045BC 00000000 */ nop +body_armor_expand: +/* 0390F0 7F0045C0 13C0014E */ beqz $fp, other_obj_expand +/* 0390F4 7F0045C4 00000000 */ nop +/* 0390F8 7F0045C8 8E4C000C */ lw $t4, 0xc($s2) +/* 0390FC 7F0045CC 01947824 */ and $t7, $t4, $s4 +/* 039100 7F0045D0 15E0014A */ bnez $t7, other_obj_expand +/* 039104 7F0045D4 00000000 */ nop +/* 039108 7F0045D8 8E4E0080 */ lw $t6, 0x80($s2) +/* 03910C 7F0045DC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039110 7F0045E0 44813000 */ mtc1 $at, $f6 +/* 039114 7F0045E4 448E9000 */ mtc1 $t6, $f18 +/* 039118 7F0045E8 02A02025 */ move $a0, $s5 +/* 03911C 7F0045EC 02402825 */ move $a1, $s2 +/* 039120 7F0045F0 46809120 */ cvt.s.w $f4, $f18 +/* 039124 7F0045F4 02603025 */ move $a2, $s3 +/* 039128 7F0045F8 46062203 */ div.s $f8, $f4, $f6 +/* 03912C 7F0045FC E6480080 */ swc1 $f8, 0x80($s2) +/* 039130 7F004600 C64A0080 */ lwc1 $f10, 0x80($s2) +/* 039134 7F004604 0FC00767 */ jal prepare_load_objects +/* 039138 7F004608 E64A0084 */ swc1 $f10, 0x84($s2) +/* 03913C 7F00460C 1000013B */ b other_obj_expand +/* 039140 7F004610 00000000 */ nop +type2F_tinted_glass: +/* 039144 7F004614 13C00139 */ beqz $fp, other_obj_expand +/* 039148 7F004618 00000000 */ nop +/* 03914C 7F00461C 8E58000C */ lw $t8, 0xc($s2) +/* 039150 7F004620 03144024 */ and $t0, $t8, $s4 +/* 039154 7F004624 15000135 */ bnez $t0, other_obj_expand +/* 039158 7F004628 00000000 */ nop +/* 03915C 7F00462C 8E490008 */ lw $t1, 8($s2) +/* 039160 7F004630 0009C8C0 */ sll $t9, $t1, 3 +/* 039164 7F004634 07230039 */ bgezl $t9, .L7F00471C +/* 039168 7F004638 02A02025 */ move $a0, $s5 +/* 03916C 7F00463C 86420006 */ lh $v0, 6($s2) +/* 039170 7F004640 3C0B8007 */ lui $t3, %hi(ptr_2xxxpresets) +/* 039174 7F004644 27A50118 */ addiu $a1, $sp, 0x118 +/* 039178 7F004648 28412710 */ slti $at, $v0, 0x2710 +/* 03917C 7F00464C 14200032 */ bnez $at, .L7F004718 +/* 039180 7F004650 00025100 */ sll $t2, $v0, 4 +/* 039184 7F004654 8D6B5D1C */ lw $t3, %lo(ptr_2xxxpresets)($t3) +/* 039188 7F004658 01425021 */ addu $t2, $t2, $v0 +/* 03918C 7F00465C 000A5080 */ sll $t2, $t2, 2 +/* 039190 7F004660 3C01FFF5 */ lui $at, (0xFFF59FC0 >> 16) # lui $at, 0xfff5 +/* 039194 7F004664 34219FC0 */ ori $at, (0xFFF59FC0 & 0xFFFF) # ori $at, $at, 0x9fc0 +/* 039198 7F004668 014B8021 */ addu $s0, $t2, $t3 +/* 03919C 7F00466C 02018021 */ addu $s0, $s0, $at +/* 0391A0 7F004670 0FC006F5 */ jal sub_GAME_7F001BD4 +/* 0391A4 7F004674 02002025 */ move $a0, $s0 +/* 0391A8 7F004678 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0391AC 7F00467C 44810000 */ mtc1 $at, $f0 +/* 0391B0 7F004680 C610000C */ lwc1 $f16, 0xc($s0) +/* 0391B4 7F004684 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 0391B8 7F004688 27A40118 */ addiu $a0, $sp, 0x118 +/* 0391BC 7F00468C 46008482 */ mul.s $f18, $f16, $f0 +/* 0391C0 7F004690 C7B0011C */ lwc1 $f16, 0x11c($sp) +/* 0391C4 7F004694 27A5010C */ addiu $a1, $sp, 0x10c +/* 0391C8 7F004698 46049180 */ add.s $f6, $f18, $f4 +/* 0391CC 7F00469C E7A6010C */ swc1 $f6, 0x10c($sp) +/* 0391D0 7F0046A0 C6080010 */ lwc1 $f8, 0x10($s0) +/* 0391D4 7F0046A4 46004282 */ mul.s $f10, $f8, $f0 +/* 0391D8 7F0046A8 46105480 */ add.s $f18, $f10, $f16 +/* 0391DC 7F0046AC C7AA0120 */ lwc1 $f10, 0x120($sp) +/* 0391E0 7F0046B0 E7B20110 */ swc1 $f18, 0x110($sp) +/* 0391E4 7F0046B4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 0391E8 7F0046B8 46003202 */ mul.s $f8, $f6, $f0 +/* 0391EC 7F0046BC 460A4480 */ add.s $f18, $f8, $f10 +/* 0391F0 7F0046C0 E7B20114 */ swc1 $f18, 0x114($sp) +/* 0391F4 7F0046C4 C606000C */ lwc1 $f6, 0xc($s0) +/* 0391F8 7F0046C8 46060202 */ mul.s $f8, $f0, $f6 +/* 0391FC 7F0046CC 46082481 */ sub.s $f18, $f4, $f8 +/* 039200 7F0046D0 E7B20118 */ swc1 $f18, 0x118($sp) +/* 039204 7F0046D4 C6060010 */ lwc1 $f6, 0x10($s0) +/* 039208 7F0046D8 46060102 */ mul.s $f4, $f0, $f6 +/* 03920C 7F0046DC 46048201 */ sub.s $f8, $f16, $f4 +/* 039210 7F0046E0 E7A8011C */ swc1 $f8, 0x11c($sp) +/* 039214 7F0046E4 C6120014 */ lwc1 $f18, 0x14($s0) +/* 039218 7F0046E8 46120182 */ mul.s $f6, $f0, $f18 +/* 03921C 7F0046EC 46065401 */ sub.s $f16, $f10, $f6 +/* 039220 7F0046F0 0FC2E781 */ jal sub_GAME_7F0B9E04 +/* 039224 7F0046F4 E7B00120 */ swc1 $f16, 0x120($sp) +/* 039228 7F0046F8 8E4D0090 */ lw $t5, 0x90($s2) +/* 03922C 7F0046FC 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 039230 7F004700 44819000 */ mtc1 $at, $f18 +/* 039234 7F004704 448D2000 */ mtc1 $t5, $f4 +/* 039238 7F004708 AE42008C */ sw $v0, 0x8c($s2) +/* 03923C 7F00470C 46802220 */ cvt.s.w $f8, $f4 +/* 039240 7F004710 46124283 */ div.s $f10, $f8, $f18 +/* 039244 7F004714 E64A0090 */ swc1 $f10, 0x90($s2) +.L7F004718: +/* 039248 7F004718 02A02025 */ move $a0, $s5 +.L7F00471C: +/* 03924C 7F00471C 02402825 */ move $a1, $s2 +/* 039250 7F004720 0FC00767 */ jal prepare_load_objects +/* 039254 7F004724 02603025 */ move $a2, $s3 +/* 039258 7F004728 100000F4 */ b other_obj_expand +/* 03925C 7F00472C 00000000 */ nop +obj_03_expand: +/* 039260 7F004730 13C000F2 */ beqz $fp, other_obj_expand +/* 039264 7F004734 00000000 */ nop +/* 039268 7F004738 8E4C000C */ lw $t4, 0xc($s2) +/* 03926C 7F00473C 02A02025 */ move $a0, $s5 +/* 039270 7F004740 02402825 */ move $a1, $s2 +/* 039274 7F004744 01947824 */ and $t7, $t4, $s4 +/* 039278 7F004748 15E000EC */ bnez $t7, other_obj_expand +/* 03927C 7F00474C 00000000 */ nop +/* 039280 7F004750 0FC00767 */ jal prepare_load_objects +/* 039284 7F004754 02603025 */ move $a2, $s3 +/* 039288 7F004758 100000E8 */ b other_obj_expand +/* 03928C 7F00475C 00000000 */ nop +ammo_box_expand: +/* 039290 7F004760 0FC26919 */ jal getPlayerCount +/* 039294 7F004764 24100001 */ li $s0, 1 +/* 039298 7F004768 28410002 */ slti $at, $v0, 2 +/* 03929C 7F00476C 1420000E */ bnez $at, .L7F0047A8 +/* 0392A0 7F004770 00000000 */ nop +/* 0392A4 7F004774 0FC31985 */ jal getPtrMPWeaponSetData +/* 0392A8 7F004778 00000000 */ nop +/* 0392AC 7F00477C 3C0E8007 */ lui $t6, %hi(lastmpweaponnum) +/* 0392B0 7F004780 8DCE9540 */ lw $t6, %lo(lastmpweaponnum)($t6) +/* 0392B4 7F004784 000EC080 */ sll $t8, $t6, 2 +/* 0392B8 7F004788 030EC023 */ subu $t8, $t8, $t6 +/* 0392BC 7F00478C 0018C0C0 */ sll $t8, $t8, 3 +/* 0392C0 7F004790 00581821 */ addu $v1, $v0, $t8 +/* 0392C4 7F004794 8C64000C */ lw $a0, 0xc($v1) +/* 0392C8 7F004798 8C700010 */ lw $s0, 0x10($v1) +/* 0392CC 7F00479C 00044080 */ sll $t0, $a0, 2 +/* 0392D0 7F0047A0 02484821 */ addu $t1, $s2, $t0 +/* 0392D4 7F0047A4 A530007E */ sh $s0, 0x7e($t1) +.L7F0047A8: +/* 0392D8 7F0047A8 1A0000D4 */ blez $s0, other_obj_expand +/* 0392DC 7F0047AC 00000000 */ nop +/* 0392E0 7F0047B0 13C000D2 */ beqz $fp, other_obj_expand +/* 0392E4 7F0047B4 00000000 */ nop +/* 0392E8 7F0047B8 8E59000C */ lw $t9, 0xc($s2) +/* 0392EC 7F0047BC 00008825 */ move $s1, $zero +/* 0392F0 7F0047C0 02408025 */ move $s0, $s2 +/* 0392F4 7F0047C4 03345024 */ and $t2, $t9, $s4 +/* 0392F8 7F0047C8 154000CC */ bnez $t2, other_obj_expand +/* 0392FC 7F0047CC 00000000 */ nop +.L7F0047D0: +/* 039300 7F0047D0 960B0082 */ lhu $t3, 0x82($s0) +/* 039304 7F0047D4 59600007 */ blezl $t3, .L7F0047F4 +/* 039308 7F0047D8 26310004 */ addiu $s1, $s1, 4 +/* 03930C 7F0047DC 96040080 */ lhu $a0, 0x80($s0) +/* 039310 7F0047E0 52C40004 */ beql $s6, $a0, .L7F0047F4 +/* 039314 7F0047E4 26310004 */ addiu $s1, $s1, 4 +/* 039318 7F0047E8 0FC15B0E */ jal load_model +/* 03931C 7F0047EC 00000000 */ nop +/* 039320 7F0047F0 26310004 */ addiu $s1, $s1, 4 +.L7F0047F4: +/* 039324 7F0047F4 1637FFF6 */ bne $s1, $s7, .L7F0047D0 +/* 039328 7F0047F8 26100004 */ addiu $s0, $s0, 4 +/* 03932C 7F0047FC 02A02025 */ move $a0, $s5 +/* 039330 7F004800 02402825 */ move $a1, $s2 +/* 039334 7F004804 0FC00767 */ jal prepare_load_objects +/* 039338 7F004808 02603025 */ move $a2, $s3 +/* 03933C 7F00480C 100000BB */ b other_obj_expand +/* 039340 7F004810 00000000 */ nop +type2D_tank: +/* 039344 7F004814 13C000B9 */ beqz $fp, other_obj_expand +/* 039348 7F004818 00000000 */ nop +/* 03934C 7F00481C 8E4D000C */ lw $t5, 0xc($s2) +/* 039350 7F004820 24040020 */ li $a0, 32 +/* 039354 7F004824 01B46024 */ and $t4, $t5, $s4 +/* 039358 7F004828 158000B4 */ bnez $t4, other_obj_expand +/* 03935C 7F00482C 00000000 */ nop +/* 039360 7F004830 0FC015C4 */ jal set_weapon_model_generated_thrown_object +/* 039364 7F004834 E7B400E8 */ swc1 $f20, 0xe8($sp) +/* 039368 7F004838 02A02025 */ move $a0, $s5 +/* 03936C 7F00483C 02402825 */ move $a1, $s2 +/* 039370 7F004840 0FC00767 */ jal prepare_load_objects +/* 039374 7F004844 02603025 */ move $a2, $s3 +/* 039378 7F004848 E65400C8 */ swc1 $f20, 0xc8($s2) +/* 03937C 7F00484C E65400CC */ swc1 $f20, 0xcc($s2) +/* 039380 7F004850 C64C0038 */ lwc1 $f12, 0x38($s2) +/* 039384 7F004854 0FC16A8C */ jal atan2f +/* 039388 7F004858 C64E0040 */ lwc1 $f14, 0x40($s2) +/* 03938C 7F00485C 3C018005 */ lui $at, %hi(D_8004F024) +/* 039390 7F004860 C426F024 */ lwc1 $f6, %lo(D_8004F024)($at) +/* 039394 7F004864 8E420010 */ lw $v0, 0x10($s2) +/* 039398 7F004868 46003401 */ sub.s $f16, $f6, $f0 +/* 03939C 7F00486C 10400006 */ beqz $v0, .L7F004888 +/* 0393A0 7F004870 E65000DC */ swc1 $f16, 0xdc($s2) +/* 0393A4 7F004874 8C440014 */ lw $a0, 0x14($v0) +/* 0393A8 7F004878 8C450008 */ lw $a1, 8($v0) +/* 0393AC 7F00487C 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0393B0 7F004880 8C460010 */ lw $a2, 0x10($v0) +/* 0393B4 7F004884 E7A000E8 */ swc1 $f0, 0xe8($sp) +.L7F004888: +/* 0393B8 7F004888 C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 0393BC 7F00488C 3C018005 */ lui $at, %hi(D_8004F028) +/* 0393C0 7F004890 E64200D4 */ swc1 $f2, 0xd4($s2) +/* 0393C4 7F004894 C424F028 */ lwc1 $f4, %lo(D_8004F028)($at) +/* 0393C8 7F004898 46041203 */ div.s $f8, $f2, $f4 +/* 0393CC 7F00489C 10000097 */ b other_obj_expand +/* 0393D0 7F0048A0 E64800D0 */ swc1 $f8, 0xd0($s2) +type27_wheeled_vehicle: +/* 0393D4 7F0048A4 13C00095 */ beqz $fp, other_obj_expand +/* 0393D8 7F0048A8 00000000 */ nop +/* 0393DC 7F0048AC 8E4F000C */ lw $t7, 0xc($s2) +/* 0393E0 7F0048B0 02A02025 */ move $a0, $s5 +/* 0393E4 7F0048B4 02402825 */ move $a1, $s2 +/* 0393E8 7F0048B8 01F47024 */ and $t6, $t7, $s4 +/* 0393EC 7F0048BC 15C0008F */ bnez $t6, other_obj_expand +/* 0393F0 7F0048C0 00000000 */ nop +/* 0393F4 7F0048C4 0FC00767 */ jal prepare_load_objects +/* 0393F8 7F0048C8 02603025 */ move $a2, $s3 +/* 0393FC 7F0048CC 8E440014 */ lw $a0, 0x14($s2) +/* 039400 7F0048D0 5080000E */ beql $a0, $zero, .L7F00490C +/* 039404 7F0048D4 3C01BF80 */ lui $at, 0xbf80 +/* 039408 7F0048D8 8C980008 */ lw $t8, 8($a0) +/* 03940C 7F0048DC 8F080008 */ lw $t0, 8($t8) +/* 039410 7F0048E0 8D050014 */ lw $a1, 0x14($t0) +/* 039414 7F0048E4 50A00009 */ beql $a1, $zero, .L7F00490C +/* 039418 7F0048E8 3C01BF80 */ lui $at, 0xbf80 +/* 03941C 7F0048EC 0FC1B1E7 */ jal extract_id_from_object_structure_microcode +/* 039420 7F0048F0 00000000 */ nop +/* 039424 7F0048F4 8E490008 */ lw $t1, 8($s2) +/* 039428 7F0048F8 3C011000 */ li $at, 0x10000000 # 0.000000 +/* 03942C 7F0048FC 0121C824 */ and $t9, $t1, $at +/* 039430 7F004900 2F2A0001 */ sltiu $t2, $t9, 1 +/* 039434 7F004904 AC4A0000 */ sw $t2, ($v0) +/* 039438 7F004908 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L7F00490C: +/* 03943C 7F00490C 44819000 */ mtc1 $at, $f18 +/* 039440 7F004910 E6540088 */ swc1 $f20, 0x88($s2) +/* 039444 7F004914 E654008C */ swc1 $f20, 0x8c($s2) +/* 039448 7F004918 E6540090 */ swc1 $f20, 0x90($s2) +/* 03944C 7F00491C E6540094 */ swc1 $f20, 0x94($s2) +/* 039450 7F004920 E654009C */ swc1 $f20, 0x9c($s2) +/* 039454 7F004924 E65400A0 */ swc1 $f20, 0xa0($s2) +/* 039458 7F004928 8E440080 */ lw $a0, 0x80($s2) +/* 03945C 7F00492C 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 039460 7F004930 E6520098 */ swc1 $f18, 0x98($s2) +/* 039464 7F004934 240BFFFF */ li $t3, -1 +/* 039468 7F004938 AE420080 */ sw $v0, 0x80($s2) +/* 03946C 7F00493C A6400084 */ sh $zero, 0x84($s2) +/* 039470 7F004940 A64B0086 */ sh $t3, 0x86($s2) +/* 039474 7F004944 AE4000A4 */ sw $zero, 0xa4($s2) +/* 039478 7F004948 AE4000A8 */ sw $zero, 0xa8($s2) +/* 03947C 7F00494C 1000006B */ b other_obj_expand +/* 039480 7F004950 AE4000AC */ sw $zero, 0xac($s2) +type28_aircraft: +/* 039484 7F004954 13C00069 */ beqz $fp, other_obj_expand +/* 039488 7F004958 00000000 */ nop +/* 03948C 7F00495C 8E4D000C */ lw $t5, 0xc($s2) +/* 039490 7F004960 02A02025 */ move $a0, $s5 +/* 039494 7F004964 02402825 */ move $a1, $s2 +/* 039498 7F004968 01B46024 */ and $t4, $t5, $s4 +/* 03949C 7F00496C 15800063 */ bnez $t4, other_obj_expand +/* 0394A0 7F004970 00000000 */ nop +/* 0394A4 7F004974 0FC00767 */ jal prepare_load_objects +/* 0394A8 7F004978 02603025 */ move $a2, $s3 +/* 0394AC 7F00497C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0394B0 7F004980 44810000 */ mtc1 $at, $f0 +/* 0394B4 7F004984 E6540098 */ swc1 $f20, 0x98($s2) +/* 0394B8 7F004988 E654009C */ swc1 $f20, 0x9c($s2) +/* 0394BC 7F00498C E6540088 */ swc1 $f20, 0x88($s2) +/* 0394C0 7F004990 E654008C */ swc1 $f20, 0x8c($s2) +/* 0394C4 7F004994 E6540090 */ swc1 $f20, 0x90($s2) +/* 0394C8 7F004998 E65400A4 */ swc1 $f20, 0xa4($s2) +/* 0394CC 7F00499C 8E440080 */ lw $a0, 0x80($s2) +/* 0394D0 7F0049A0 E64000A0 */ swc1 $f0, 0xa0($s2) +/* 0394D4 7F0049A4 0FC0D4E6 */ jal LoadNext_PrevActionBlock +/* 0394D8 7F0049A8 E6400094 */ swc1 $f0, 0x94($s2) +/* 0394DC 7F0049AC 240FFFFF */ li $t7, -1 +/* 0394E0 7F0049B0 AE420080 */ sw $v0, 0x80($s2) +/* 0394E4 7F0049B4 A6400084 */ sh $zero, 0x84($s2) +/* 0394E8 7F0049B8 A64F0086 */ sh $t7, 0x86($s2) +/* 0394EC 7F0049BC AE4000A8 */ sw $zero, 0xa8($s2) +/* 0394F0 7F0049C0 AE4000AC */ sw $zero, 0xac($s2) +/* 0394F4 7F0049C4 1000004D */ b other_obj_expand +/* 0394F8 7F0049C8 AE4000B0 */ sw $zero, 0xb0($s2) +tag_expand: +/* 0394FC 7F0049CC 864E0006 */ lh $t6, 6($s2) +/* 039500 7F0049D0 02A02025 */ move $a0, $s5 +/* 039504 7F0049D4 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039508 7F0049D8 01D32821 */ addu $a1, $t6, $s3 +/* 03950C 7F0049DC 10400004 */ beqz $v0, .L7F0049F0 +/* 039510 7F0049E0 AE42000C */ sw $v0, 0xc($s2) +/* 039514 7F0049E4 8C580064 */ lw $t8, 0x64($v0) +/* 039518 7F0049E8 37080010 */ ori $t0, $t8, 0x10 +/* 03951C 7F0049EC AC480064 */ sw $t0, 0x64($v0) +.L7F0049F0: +/* 039520 7F0049F0 0FC013E2 */ jal set_parent_cur_tag_entry +/* 039524 7F0049F4 02402025 */ move $a0, $s2 +/* 039528 7F0049F8 10000040 */ b other_obj_expand +/* 03952C 7F0049FC 00000000 */ nop +type25_rename: +/* 039530 7F004A00 8E490004 */ lw $t1, 4($s2) +/* 039534 7F004A04 02A02025 */ move $a0, $s5 +/* 039538 7F004A08 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03953C 7F004A0C 01332821 */ addu $a1, $t1, $s3 +/* 039540 7F004A10 10400004 */ beqz $v0, .L7F004A24 +/* 039544 7F004A14 AE420024 */ sw $v0, 0x24($s2) +/* 039548 7F004A18 8C590064 */ lw $t9, 0x64($v0) +/* 03954C 7F004A1C 372A0400 */ ori $t2, $t9, 0x400 +/* 039550 7F004A20 AC4A0064 */ sw $t2, 0x64($v0) +.L7F004A24: +/* 039554 7F004A24 0FC23628 */ jal sub_GAME_7F08D8A0 +/* 039558 7F004A28 02402025 */ move $a0, $s2 +/* 03955C 7F004A2C 10000033 */ b other_obj_expand +/* 039560 7F004A30 00000000 */ nop +type23_solo_brief_text: +/* 039564 7F004A34 0FC013E8 */ jal setup_briefing_text_entry_parent +/* 039568 7F004A38 02402025 */ move $a0, $s2 +/* 03956C 7F004A3C 1000002F */ b other_obj_expand +/* 039570 7F004A40 00000000 */ nop +type2E_viewport_pos: +/* 039574 7F004A44 8E4B0004 */ lw $t3, 4($s2) +/* 039578 7F004A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 03957C 7F004A4C 44810000 */ mtc1 $at, $f0 +/* 039580 7F004A50 448B5000 */ mtc1 $t3, $f10 +/* 039584 7F004A54 8E4C000C */ lw $t4, 0xc($s2) +/* 039588 7F004A58 8E4D0008 */ lw $t5, 8($s2) +/* 03958C 7F004A5C 468051A0 */ cvt.s.w $f6, $f10 +/* 039590 7F004A60 448C5000 */ mtc1 $t4, $f10 +/* 039594 7F004A64 448D2000 */ mtc1 $t5, $f4 +/* 039598 7F004A68 8E4F0010 */ lw $t7, 0x10($s2) +/* 03959C 7F004A6C 8E4E0014 */ lw $t6, 0x14($s2) +/* 0395A0 7F004A70 46802220 */ cvt.s.w $f8, $f4 +/* 0395A4 7F004A74 448F2000 */ mtc1 $t7, $f4 +/* 0395A8 7F004A78 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0395AC 7F004A7C 46003403 */ div.s $f16, $f6, $f0 +/* 0395B0 7F004A80 468051A0 */ cvt.s.w $f6, $f10 +/* 0395B4 7F004A84 46004483 */ div.s $f18, $f8, $f0 +/* 0395B8 7F004A88 E6500004 */ swc1 $f16, 4($s2) +/* 0395BC 7F004A8C 46802220 */ cvt.s.w $f8, $f4 +/* 0395C0 7F004A90 44812000 */ mtc1 $at, $f4 +/* 0395C4 7F004A94 46003403 */ div.s $f16, $f6, $f0 +/* 0395C8 7F004A98 448E3000 */ mtc1 $t6, $f6 +/* 0395CC 7F004A9C E6520008 */ swc1 $f18, 8($s2) +/* 0395D0 7F004AA0 44819000 */ mtc1 $at, $f18 +/* 0395D4 7F004AA4 00000000 */ nop +/* 0395D8 7F004AA8 46124283 */ div.s $f10, $f8, $f18 +/* 0395DC 7F004AAC E650000C */ swc1 $f16, 0xc($s2) +/* 0395E0 7F004AB0 46803420 */ cvt.s.w $f16, $f6 +/* 0395E4 7F004AB4 46048203 */ div.s $f8, $f16, $f4 +/* 0395E8 7F004AB8 E64A0010 */ swc1 $f10, 0x10($s2) +/* 0395EC 7F004ABC 1000000F */ b other_obj_expand +/* 0395F0 7F004AC0 E6480014 */ swc1 $f8, 0x14($s2) +type17_objective_expand: +/* 0395F4 7F004AC4 0FC013EE */ jal add_ptr_to_objective +/* 0395F8 7F004AC8 02402025 */ move $a0, $s2 +/* 0395FC 7F004ACC 1000000B */ b other_obj_expand +/* 039600 7F004AD0 00000000 */ nop +type20_subobjective_expand: +/* 039604 7F004AD4 0FC013FD */ jal set_parent_cur_obj_enter_room +/* 039608 7F004AD8 02402025 */ move $a0, $s2 +/* 03960C 7F004ADC 10000007 */ b other_obj_expand +/* 039610 7F004AE0 00000000 */ nop +type21_subobjective_expand: +/* 039614 7F004AE4 0FC01403 */ jal set_parent_cur_obj_deposited_in_room +/* 039618 7F004AE8 02402025 */ move $a0, $s2 +/* 03961C 7F004AEC 10000003 */ b other_obj_expand +/* 039620 7F004AF0 00000000 */ nop +type1E_subobjective_expand: +/* 039624 7F004AF4 0FC01409 */ jal set_parent_cur_obj_photograph +/* 039628 7F004AF8 02402025 */ move $a0, $s2 +other_obj_expand: +/* 03962C 7F004AFC 0FC15A3D */ jal get_size_of_setup_object_type +/* 039630 7F004B00 02402025 */ move $a0, $s2 +/* 039634 7F004B04 0002C080 */ sll $t8, $v0, 2 +/* 039638 7F004B08 03129021 */ addu $s2, $t8, $s2 +/* 03963C 7F004B0C 92430003 */ lbu $v1, 3($s2) +/* 039640 7F004B10 24010030 */ li $at, 48 +/* 039644 7F004B14 26730001 */ addiu $s3, $s3, 1 +/* 039648 7F004B18 5461FE13 */ bnel $v1, $at, .L7F004368 +/* 03964C 7F004B1C 2468FFFF */ addiu $t0, $v1, -1 +/* 039650 7F004B20 3C128007 */ lui $s2, %hi(ptr_setup_objects) +/* 039654 7F004B24 8E525D0C */ lw $s2, %lo(ptr_setup_objects)($s2) +/* 039658 7F004B28 00009825 */ move $s3, $zero +/* 03965C 7F004B2C 92430003 */ lbu $v1, 3($s2) +.L7F004B30: +/* 039660 7F004B30 24010030 */ li $at, 48 +/* 039664 7F004B34 3C170008 */ lui $s7, 8 +/* 039668 7F004B38 106100CF */ beq $v1, $at, .L7F004E78 +/* 03966C 7F004B3C 24160008 */ li $s6, 8 +/* 039670 7F004B40 241E002B */ li $fp, 43 +/* 039674 7F004B44 24140001 */ li $s4, 1 +/* 039678 7F004B48 2468FFFD */ addiu $t0, $v1, -3 +.L7F004B4C: +/* 03967C 7F004B4C 2D01002D */ sltiu $at, $t0, 0x2d +/* 039680 7F004B50 102000A4 */ beqz $at, .L7F004DE4 +/* 039684 7F004B54 00084080 */ sll $t0, $t0, 2 +/* 039688 7F004B58 3C018005 */ lui $at, %hi(jpt_8004F02C) +/* 03968C 7F004B5C 00280821 */ addu $at, $at, $t0 +/* 039690 7F004B60 8C28F02C */ lw $t0, %lo(jpt_8004F02C)($at) +/* 039694 7F004B64 01000008 */ jr $t0 +/* 039698 7F004B68 00000000 */ nop +.L7F004B6C: +/* 03969C 7F004B6C 8E490010 */ lw $t1, 0x10($s2) +/* 0396A0 7F004B70 1120009C */ beqz $t1, .L7F004DE4 +/* 0396A4 7F004B74 00000000 */ nop +/* 0396A8 7F004B78 8E590008 */ lw $t9, 8($s2) +/* 0396AC 7F004B7C 332A8000 */ andi $t2, $t9, 0x8000 +/* 0396B0 7F004B80 11400098 */ beqz $t2, .L7F004DE4 +/* 0396B4 7F004B84 00000000 */ nop +/* 0396B8 7F004B88 86420006 */ lh $v0, 6($s2) +/* 0396BC 7F004B8C 02A02025 */ move $a0, $s5 +/* 0396C0 7F004B90 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0396C4 7F004B94 02622821 */ addu $a1, $s3, $v0 +/* 0396C8 7F004B98 10400092 */ beqz $v0, .L7F004DE4 +/* 0396CC 7F004B9C 00408025 */ move $s0, $v0 +/* 0396D0 7F004BA0 8C4B0010 */ lw $t3, 0x10($v0) +/* 0396D4 7F004BA4 1160008F */ beqz $t3, .L7F004DE4 +/* 0396D8 7F004BA8 00000000 */ nop +/* 0396DC 7F004BAC 8E4D0064 */ lw $t5, 0x64($s2) +/* 0396E0 7F004BB0 8E440014 */ lw $a0, 0x14($s2) +/* 0396E4 7F004BB4 01B76025 */ or $t4, $t5, $s7 +/* 0396E8 7F004BB8 AE4C0064 */ sw $t4, 0x64($s2) +/* 0396EC 7F004BBC 0FC1B39E */ jal set_obj_instance_controller_scale +/* 0396F0 7F004BC0 8C850014 */ lw $a1, 0x14($a0) +/* 0396F4 7F004BC4 8E440010 */ lw $a0, 0x10($s2) +/* 0396F8 7F004BC8 0FC0E969 */ jal attachNewChild +/* 0396FC 7F004BCC 8E050010 */ lw $a1, 0x10($s0) +/* 039700 7F004BD0 10000084 */ b .L7F004DE4 +/* 039704 7F004BD4 00000000 */ nop +.L7F004BD8: +/* 039708 7F004BD8 8E4F0004 */ lw $t7, 4($s2) +/* 03970C 7F004BDC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039710 7F004BE0 01F32021 */ addu $a0, $t7, $s3 +/* 039714 7F004BE4 8E4E0008 */ lw $t6, 8($s2) +/* 039718 7F004BE8 00408025 */ move $s0, $v0 +/* 03971C 7F004BEC 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039720 7F004BF0 01D32021 */ addu $a0, $t6, $s3 +/* 039724 7F004BF4 1200007B */ beqz $s0, .L7F004DE4 +/* 039728 7F004BF8 00402825 */ move $a1, $v0 +/* 03972C 7F004BFC 10400079 */ beqz $v0, .L7F004DE4 +/* 039730 7F004C00 00000000 */ nop +/* 039734 7F004C04 92180003 */ lbu $t8, 3($s0) +/* 039738 7F004C08 16D80076 */ bne $s6, $t8, .L7F004DE4 +/* 03973C 7F004C0C 00000000 */ nop +/* 039740 7F004C10 90480003 */ lbu $t0, 3($v0) +/* 039744 7F004C14 16C80073 */ bne $s6, $t0, .L7F004DE4 +/* 039748 7F004C18 00000000 */ nop +/* 03974C 7F004C1C 0FC1475D */ jal link_objects +/* 039750 7F004C20 02002025 */ move $a0, $s0 +/* 039754 7F004C24 1000006F */ b .L7F004DE4 +/* 039758 7F004C28 00000000 */ nop +.L7F004C2C: +/* 03975C 7F004C2C 8E420004 */ lw $v0, 4($s2) +/* 039760 7F004C30 8E510008 */ lw $s1, 8($s2) +/* 039764 7F004C34 02A02025 */ move $a0, $s5 +/* 039768 7F004C38 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 03976C 7F004C3C 02622821 */ addu $a1, $s3, $v0 +/* 039770 7F004C40 00408025 */ move $s0, $v0 +/* 039774 7F004C44 0FC15AA2 */ jal sub_GAME_7F056A88 +/* 039778 7F004C48 02712021 */ addu $a0, $s3, $s1 +/* 03977C 7F004C4C 12000065 */ beqz $s0, .L7F004DE4 +/* 039780 7F004C50 00000000 */ nop +/* 039784 7F004C54 8E030010 */ lw $v1, 0x10($s0) +/* 039788 7F004C58 10600062 */ beqz $v1, .L7F004DE4 +/* 03978C 7F004C5C 00000000 */ nop +/* 039790 7F004C60 10400060 */ beqz $v0, .L7F004DE4 +/* 039794 7F004C64 00000000 */ nop +/* 039798 7F004C68 90490003 */ lbu $t1, 3($v0) +/* 03979C 7F004C6C 1689005D */ bne $s4, $t1, .L7F004DE4 +/* 0397A0 7F004C70 00000000 */ nop +/* 0397A4 7F004C74 8C590010 */ lw $t9, 0x10($v0) +/* 0397A8 7F004C78 1320005A */ beqz $t9, .L7F004DE4 +/* 0397AC 7F004C7C 00000000 */ nop +/* 0397B0 7F004C80 AE430004 */ sw $v1, 4($s2) +/* 0397B4 7F004C84 8C4A0010 */ lw $t2, 0x10($v0) +/* 0397B8 7F004C88 02402025 */ move $a0, $s2 +/* 0397BC 7F004C8C 0FC00644 */ jal sub_GAME_7F001910 +/* 0397C0 7F004C90 AE4A0008 */ sw $t2, 8($s2) +/* 0397C4 7F004C94 8E0B0064 */ lw $t3, 0x64($s0) +/* 0397C8 7F004C98 356D0001 */ ori $t5, $t3, 1 +/* 0397CC 7F004C9C 10000051 */ b .L7F004DE4 +/* 0397D0 7F004CA0 AE0D0064 */ sw $t5, 0x64($s0) +.L7F004CA4: +/* 0397D4 7F004CA4 8E420004 */ lw $v0, 4($s2) +/* 0397D8 7F004CA8 8E4C000C */ lw $t4, 0xc($s2) +/* 0397DC 7F004CAC 8E510008 */ lw $s1, 8($s2) +/* 0397E0 7F004CB0 02A02025 */ move $a0, $s5 +/* 0397E4 7F004CB4 02622821 */ addu $a1, $s3, $v0 +/* 0397E8 7F004CB8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397EC 7F004CBC AFAC0080 */ sw $t4, 0x80($sp) +/* 0397F0 7F004CC0 00408025 */ move $s0, $v0 +/* 0397F4 7F004CC4 02A02025 */ move $a0, $s5 +/* 0397F8 7F004CC8 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0397FC 7F004CCC 02712821 */ addu $a1, $s3, $s1 +/* 039800 7F004CD0 8FAF0080 */ lw $t7, 0x80($sp) +/* 039804 7F004CD4 00408825 */ move $s1, $v0 +/* 039808 7F004CD8 02A02025 */ move $a0, $s5 +/* 03980C 7F004CDC 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 039810 7F004CE0 026F2821 */ addu $a1, $s3, $t7 +/* 039814 7F004CE4 1200003F */ beqz $s0, .L7F004DE4 +/* 039818 7F004CE8 00000000 */ nop +/* 03981C 7F004CEC 8E0E0010 */ lw $t6, 0x10($s0) +/* 039820 7F004CF0 11C0003C */ beqz $t6, .L7F004DE4 +/* 039824 7F004CF4 00000000 */ nop +/* 039828 7F004CF8 1220003A */ beqz $s1, .L7F004DE4 +/* 03982C 7F004CFC 00000000 */ nop +/* 039830 7F004D00 8E380010 */ lw $t8, 0x10($s1) +/* 039834 7F004D04 13000037 */ beqz $t8, .L7F004DE4 +/* 039838 7F004D08 00000000 */ nop +/* 03983C 7F004D0C 92280003 */ lbu $t0, 3($s1) +/* 039840 7F004D10 17C80034 */ bne $fp, $t0, .L7F004DE4 +/* 039844 7F004D14 00000000 */ nop +/* 039848 7F004D18 10400032 */ beqz $v0, .L7F004DE4 +/* 03984C 7F004D1C 00000000 */ nop +/* 039850 7F004D20 8C490010 */ lw $t1, 0x10($v0) +/* 039854 7F004D24 1120002F */ beqz $t1, .L7F004DE4 +/* 039858 7F004D28 00000000 */ nop +/* 03985C 7F004D2C 90590003 */ lbu $t9, 3($v0) +/* 039860 7F004D30 02402025 */ move $a0, $s2 +/* 039864 7F004D34 1699002B */ bne $s4, $t9, .L7F004DE4 +/* 039868 7F004D38 00000000 */ nop +/* 03986C 7F004D3C AE500004 */ sw $s0, 4($s2) +/* 039870 7F004D40 AE510008 */ sw $s1, 8($s2) +/* 039874 7F004D44 AE42000C */ sw $v0, 0xc($s2) +/* 039878 7F004D48 0FC00650 */ jal sub_GAME_7F001940 +/* 03987C 7F004D4C AFA20074 */ sw $v0, 0x74($sp) +/* 039880 7F004D50 8E0A000C */ lw $t2, 0xc($s0) +/* 039884 7F004D54 8FA30074 */ lw $v1, 0x74($sp) +/* 039888 7F004D58 354B0400 */ ori $t3, $t2, 0x400 +/* 03988C 7F004D5C AE0B000C */ sw $t3, 0xc($s0) +/* 039890 7F004D60 8C6D000C */ lw $t5, 0xc($v1) +/* 039894 7F004D64 35AC0400 */ ori $t4, $t5, 0x400 +/* 039898 7F004D68 1000001E */ b .L7F004DE4 +/* 03989C 7F004D6C AC6C000C */ sw $t4, 0xc($v1) +.L7F004D70: +/* 0398A0 7F004D70 8E420004 */ lw $v0, 4($s2) +/* 0398A4 7F004D74 8E510008 */ lw $s1, 8($s2) +/* 0398A8 7F004D78 02A02025 */ move $a0, $s5 +/* 0398AC 7F004D7C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398B0 7F004D80 02622821 */ addu $a1, $s3, $v0 +/* 0398B4 7F004D84 00408025 */ move $s0, $v0 +/* 0398B8 7F004D88 02A02025 */ move $a0, $s5 +/* 0398BC 7F004D8C 0FC15BA8 */ jal sub_GAME_7F056EA0 +/* 0398C0 7F004D90 02712821 */ addu $a1, $s3, $s1 +/* 0398C4 7F004D94 12000013 */ beqz $s0, .L7F004DE4 +/* 0398C8 7F004D98 00000000 */ nop +/* 0398CC 7F004D9C 8E0F0010 */ lw $t7, 0x10($s0) +/* 0398D0 7F004DA0 11E00010 */ beqz $t7, .L7F004DE4 +/* 0398D4 7F004DA4 00000000 */ nop +/* 0398D8 7F004DA8 1040000E */ beqz $v0, .L7F004DE4 +/* 0398DC 7F004DAC 00000000 */ nop +/* 0398E0 7F004DB0 8C4E0010 */ lw $t6, 0x10($v0) +/* 0398E4 7F004DB4 11C0000B */ beqz $t6, .L7F004DE4 +/* 0398E8 7F004DB8 00000000 */ nop +/* 0398EC 7F004DBC 92180003 */ lbu $t8, 3($s0) +/* 0398F0 7F004DC0 02402025 */ move $a0, $s2 +/* 0398F4 7F004DC4 16980007 */ bne $s4, $t8, .L7F004DE4 +/* 0398F8 7F004DC8 00000000 */ nop +/* 0398FC 7F004DCC AE500004 */ sw $s0, 4($s2) +/* 039900 7F004DD0 0FC0064A */ jal sub_GAME_7F001928 +/* 039904 7F004DD4 AE420008 */ sw $v0, 8($s2) +/* 039908 7F004DD8 8E080064 */ lw $t0, 0x64($s0) +/* 03990C 7F004DDC 35092000 */ ori $t1, $t0, 0x2000 +/* 039910 7F004DE0 AE090064 */ sw $t1, 0x64($s0) +.L7F004DE4: +/* 039914 7F004DE4 0FC15A3D */ jal get_size_of_setup_object_type +/* 039918 7F004DE8 02402025 */ move $a0, $s2 +/* 03991C 7F004DEC 0002C880 */ sll $t9, $v0, 2 +/* 039920 7F004DF0 03329021 */ addu $s2, $t9, $s2 +/* 039924 7F004DF4 92430003 */ lbu $v1, 3($s2) +/* 039928 7F004DF8 24010030 */ li $at, 48 +/* 03992C 7F004DFC 26730001 */ addiu $s3, $s3, 1 +/* 039930 7F004E00 5461FF52 */ bnel $v1, $at, .L7F004B4C +/* 039934 7F004E04 2468FFFD */ addiu $t0, $v1, -3 +/* 039938 7F004E08 1000001B */ b .L7F004E78 +/* 03993C 7F004E0C 00000000 */ nop +.L7F004E10: +/* 039940 7F004E10 3C018007 */ lui $at, %hi(ptr_setup_path_tbl) +/* 039944 7F004E14 AC205D00 */ sw $zero, %lo(ptr_setup_path_tbl)($at) +/* 039948 7F004E18 3C018007 */ lui $at, %hi(ptr_setup_path_link) +/* 03994C 7F004E1C AC205D04 */ sw $zero, %lo(ptr_setup_path_link)($at) +/* 039950 7F004E20 3C018007 */ lui $at, %hi(ptr_setup_intro) +/* 039954 7F004E24 AC205D08 */ sw $zero, %lo(ptr_setup_intro)($at) +/* 039958 7F004E28 3C018007 */ lui $at, %hi(ptr_setup_objects) +/* 03995C 7F004E2C AC205D0C */ sw $zero, %lo(ptr_setup_objects)($at) +/* 039960 7F004E30 3C018007 */ lui $at, %hi(ptr_setup_path_sets) +/* 039964 7F004E34 AC205D10 */ sw $zero, %lo(ptr_setup_path_sets)($at) +/* 039968 7F004E38 3C018007 */ lui $at, %hi(ptr_setup_actions) +/* 03996C 7F004E3C AC205D14 */ sw $zero, %lo(ptr_setup_actions)($at) +/* 039970 7F004E40 3C018007 */ lui $at, %hi(ptr_0xxxpresets) +/* 039974 7F004E44 AC205D18 */ sw $zero, %lo(ptr_0xxxpresets)($at) +/* 039978 7F004E48 3C018007 */ lui $at, %hi(ptr_2xxxpresets) +/* 03997C 7F004E4C AC205D1C */ sw $zero, %lo(ptr_2xxxpresets)($at) +/* 039980 7F004E50 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D20) +/* 039984 7F004E54 AC205D20 */ sw $zero, %lo(dword_CODE_bss_80075D20)($at) +/* 039988 7F004E58 3C018007 */ lui $at, %hi(dword_CODE_bss_80075D24) +/* 03998C 7F004E5C AC205D24 */ sw $zero, %lo(dword_CODE_bss_80075D24)($at) +/* 039990 7F004E60 0FC003AE */ jal alloc_init_GUARDdata_entries +/* 039994 7F004E64 00002025 */ move $a0, $zero +/* 039998 7F004E68 0FC01550 */ jal sub_GAME_7F005540 +/* 03999C 7F004E6C 00002025 */ move $a0, $zero +/* 0399A0 7F004E70 0FC01589 */ jal sub_GAME_7F005624 +/* 0399A4 7F004E74 00002025 */ move $a0, $zero +.L7F004E78: +/* 0399A8 7F004E78 0FC00417 */ jal alloc_false_GUARDdata_to_exec_global_action +/* 0399AC 7F004E7C 00000000 */ nop +/* 0399B0 7F004E80 8FBF0044 */ lw $ra, 0x44($sp) +/* 0399B4 7F004E84 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0399B8 7F004E88 8FB00020 */ lw $s0, 0x20($sp) +/* 0399BC 7F004E8C 8FB10024 */ lw $s1, 0x24($sp) +/* 0399C0 7F004E90 8FB20028 */ lw $s2, 0x28($sp) +/* 0399C4 7F004E94 8FB3002C */ lw $s3, 0x2c($sp) +/* 0399C8 7F004E98 8FB40030 */ lw $s4, 0x30($sp) +/* 0399CC 7F004E9C 8FB50034 */ lw $s5, 0x34($sp) +/* 0399D0 7F004EA0 8FB60038 */ lw $s6, 0x38($sp) +/* 0399D4 7F004EA4 8FB7003C */ lw $s7, 0x3c($sp) +/* 0399D8 7F004EA8 8FBE0040 */ lw $fp, 0x40($sp) +/* 0399DC 7F004EAC 03E00008 */ jr $ra +/* 0399E0 7F004EB0 27BD0280 */ addiu $sp, $sp, 0x280 +) +#endif + #endif diff --git a/src/game/prop.h b/src/game/prop.h index 9e396fd..8209f58 100644 --- a/src/game/prop.h +++ b/src/game/prop.h @@ -2,6 +2,6 @@ #define _PROP_H_ #include "ultra64.h" -extern u32 only_read_by_stageload[] +extern u32 only_read_by_stageload[]; #endif diff --git a/src/game/ramromreplay.c b/src/game/ramromreplay.c index 485ae76..7e78d57 100644 --- a/src/game/ramromreplay.c +++ b/src/game/ramromreplay.c @@ -251,7 +251,7 @@ glabel load_ramrom_from_devtool /* 0F494C 7F0BFE1C 3C048006 */ lui $a0, %hi(aReplayDemo_load) /* 0F4950 7F0BFE20 2484B770 */ addiu $a0, %lo(aReplayDemo_load) # addiu $a0, $a0, -0x4890 /* 0F4954 7F0BFE24 3C0500F0 */ lui $a1, 0xf0 -/* 0F4958 7F0BFE28 0FC34007 */ jal indy_loadfile +/* 0F4958 7F0BFE28 0FC34007 */ jal indy_load_ramrom_file /* 0F495C 7F0BFE2C 8FA6001C */ lw $a2, 0x1c($sp) /* 0F4960 7F0BFE30 3C048009 */ lui $a0, %hi(ramrom_data_target) /* 0F4964 7F0BFE34 2484C270 */ addiu $a0, %lo(ramrom_data_target) # addiu $a0, $a0, -0x3d90 @@ -388,11 +388,11 @@ glabel record_player_input_as_packet /* 0F4B10 7F0BFFE0 3C0D8005 */ lui $t5, %hi(D_80048498) /* 0F4B14 7F0BFFE4 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) /* 0F4B18 7F0BFFE8 8D8E0000 */ lw $t6, ($t4) -/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(randseed + 0x4) +/* 0F4B1C 7F0BFFEC 3C198002 */ lui $t9, %hi(g_randomSeed + 0x4) /* 0F4B20 7F0BFFF0 3C118009 */ lui $s1, %hi(address_demo_loaded) /* 0F4B24 7F0BFFF4 A1CD0000 */ sb $t5, ($t6) /* 0F4B28 7F0BFFF8 8D8D0000 */ lw $t5, ($t4) -/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(randseed + 0x4)($t9) +/* 0F4B2C 7F0BFFFC 8F394464 */ lw $t9, %lo(g_randomSeed + 0x4)($t9) /* 0F4B30 7F0C0000 2631C5F4 */ addiu $s1, %lo(address_demo_loaded) # addiu $s1, $s1, -0x3a0c /* 0F4B34 7F0C0004 A1B90002 */ sb $t9, 2($t5) /* 0F4B38 7F0C0008 8D820000 */ lw $v0, ($t4) @@ -526,8 +526,8 @@ glabel ramrom_replay_handler /* 0F4CE4 7F0C01B4 3C028005 */ lui $v0, %hi(ramrom_blkbuf_2) /* 0F4CE8 7F0C01B8 8C42846C */ lw $v0, %lo(ramrom_blkbuf_2)($v0) .L7F0C01BC: -/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(randseed + 0x4) -/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) +/* 0F4CEC 7F0C01BC 3C0F8002 */ lui $t7, %hi(g_randomSeed + 0x4) +/* 0F4CF0 7F0C01C0 8DEF4464 */ lw $t7, %lo(g_randomSeed + 0x4)($t7) /* 0F4CF4 7F0C01C4 90430002 */ lbu $v1, 2($v0) /* 0F4CF8 7F0C01C8 31F900FF */ andi $t9, $t7, 0xff /* 0F4CFC 7F0C01CC 53230008 */ beql $t9, $v1, .L7F0C01F0 @@ -551,10 +551,10 @@ glabel ramrom_replay_handler /* 0F4D40 7F0C0210 0FC30232 */ jal ensureCameraModeA /* 0F4D44 7F0C0214 00000000 */ nop .L7F0C0218: -/* 0F4D48 7F0C0218 0C00324C */ jal controller_7000C930 +/* 0F4D48 7F0C0218 0C00324C */ jal joySetContDataIndex /* 0F4D4C 7F0C021C 00002025 */ move $a0, $zero /* 0F4D50 7F0C0220 00002025 */ move $a0, $zero -/* 0F4D54 7F0C0224 0C0030EB */ jal get_controller_buttons_pressed +/* 0F4D54 7F0C0224 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0F4D58 7F0C0228 3405FFFF */ li $a1, 65535 /* 0F4D5C 7F0C022C 10400006 */ beqz $v0, .L7F0C0248 /* 0F4D60 7F0C0230 00000000 */ nop @@ -564,7 +564,7 @@ glabel ramrom_replay_handler /* 0F4D70 7F0C0240 3C018003 */ lui $at, %hi(prev_keypresses) /* 0F4D74 7F0C0244 AC2DA934 */ sw $t5, %lo(prev_keypresses)($at) .L7F0C0248: -/* 0F4D78 7F0C0248 0C00324C */ jal controller_7000C930 +/* 0F4D78 7F0C0248 0C00324C */ jal joySetContDataIndex /* 0F4D7C 7F0C024C 24040001 */ li $a0, 1 /* 0F4D80 7F0C0250 8FBF001C */ lw $ra, 0x1c($sp) /* 0F4D84 7F0C0254 02001025 */ move $v0, $s0 @@ -727,262 +727,94 @@ glabel iterate_ramrom_entries_handle_camera_out ) #endif +typedef struct { + u64 unk0; + u64 unk8; + s32 unkC[28]; + s32 unk80; + s32 unk84; + s32 unk88; + s32 unk8C; + s32 unk90; + s32 unk94; + s32 unk98; + s32 unk9C; + s32 unkA0; + s32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8; + s32 unkBC; + s32 unkC0; + s32 unkC4; + s32 unkC8; + s32 unkCC; + s32 unkD0; + s32 unkD4; + s32 unkD8; + s32 unkDC; + s32 unkE0; +} state; - - - -#ifdef NONMATCHING -void copy_current_ingame_registers_before_ramrom_playback(void *arg0) { - ? temp_ret; - - // Node 0 - arg0->unk4 = (?32) randseed + 0x4; - *arg0 = (?32) randseed; - arg0->unkC = (?32) random_val + 0x4; - arg0->unk8 = (?32) random_val; - arg0->unk84 = (?32) gamemode; - arg0->unk8C = (?32) selected_num_players; - arg0->unk90 = (?32) scenario; - arg0->unk94 = (?32) MP_stage_selected; - arg0->unk98 = (?32) game_length; - arg0->unk9C = getMPWeaponSet(); - arg0->unkA0 = (?32) player_1_char; - arg0->unkA4 = (?32) player_1_char.unk4; - arg0->unkA8 = (?32) player_1_char.unk8; - arg0->unkAC = (?32) player_1_char.unkC; - arg0->unkB0 = (?32) handicap_player1; - arg0->unkB4 = (?32) handicap_player1.unk4; - arg0->unkB8 = (?32) handicap_player1.unk8; - arg0->unkBC = (?32) handicap_player1.unkC; - arg0->unkC0 = (?32) controlstyle_player; - arg0->unkC4 = (?32) controlstyle_player.unk4; - arg0->unkC8 = (?32) controlstyle_player.unk8; - arg0->unkCC = (?32) controlstyle_player.unkC; - arg0->unkD0 = (?32) aim_sight_adjustment; - arg0->unkD4 = get_players_team_or_scenario_item_flag(0); - arg0->unkD8 = get_players_team_or_scenario_item_flag(1); - arg0->unkDC = get_players_team_or_scenario_item_flag(2); - arg0->unkE0 = get_players_team_or_scenario_item_flag(3); +extern u64 g_randomSeed; +extern u64 g_chrObjRandomSeed; +void copy_current_ingame_registers_before_ramrom_playback(state *state) { + state->unk0 = g_randomSeed; + state->unk8 = g_chrObjRandomSeed; + state->unk84 = gamemode; + state->unk8C = selected_num_players; + state->unk90 = scenario; + state->unk94 = MP_stage_selected; + state->unk98 = game_length; + state->unk9C = getMPWeaponSet(); + state->unkA0 = (&player_1_char)[0]; + state->unkA4 = (&player_1_char)[1]; + state->unkA8 = (&player_1_char)[2]; + state->unkAC = (&player_1_char)[3]; + state->unkB0 = (&handicap_player1)[0]; + state->unkB4 = (&handicap_player1)[1]; + state->unkB8 = (&handicap_player1)[2]; + state->unkBC = (&handicap_player1)[3]; + state->unkC0 = controlstyle_player[0]; + state->unkC4 = controlstyle_player[1]; + state->unkC8 = controlstyle_player[2]; + state->unkCC = controlstyle_player[3]; + state->unkD0 = aim_sight_adjustment; + state->unkD4 = get_players_team_or_scenario_item_flag(0); + state->unkD8 = get_players_team_or_scenario_item_flag(1); + state->unkDC = get_players_team_or_scenario_item_flag(2); + state->unkE0 = get_players_team_or_scenario_item_flag(3); } -#else -GLOBAL_ASM( -.text -glabel copy_current_ingame_registers_before_ramrom_playback -/* 0F4ED8 7F0C03A8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F4EDC 7F0C03AC 3C0E8002 */ lui $t6, %hi(randseed) -/* 0F4EE0 7F0C03B0 3C0F8002 */ lui $t7, %hi(randseed + 0x4) -/* 0F4EE4 7F0C03B4 8DEF4464 */ lw $t7, %lo(randseed + 0x4)($t7) -/* 0F4EE8 7F0C03B8 8DCE4460 */ lw $t6, %lo(randseed)($t6) -/* 0F4EEC 7F0C03BC AFBF001C */ sw $ra, 0x1c($sp) -/* 0F4EF0 7F0C03C0 AFB00018 */ sw $s0, 0x18($sp) -/* 0F4EF4 7F0C03C4 AC8F0004 */ sw $t7, 4($a0) -/* 0F4EF8 7F0C03C8 AC8E0000 */ sw $t6, ($a0) -/* 0F4EFC 7F0C03CC 3C188004 */ lui $t8, %hi(random_val) -/* 0F4F00 7F0C03D0 3C198004 */ lui $t9, %hi(random_val + 0x4) -/* 0F4F04 7F0C03D4 8F390164 */ lw $t9, %lo(random_val + 0x4)($t9) -/* 0F4F08 7F0C03D8 8F180160 */ lw $t8, %lo(random_val)($t8) -/* 0F4F0C 7F0C03DC 3C088003 */ lui $t0, %hi(gamemode) -/* 0F4F10 7F0C03E0 AC99000C */ sw $t9, 0xc($a0) -/* 0F4F14 7F0C03E4 AC980008 */ sw $t8, 8($a0) -/* 0F4F18 7F0C03E8 8D08A8F0 */ lw $t0, %lo(gamemode)($t0) -/* 0F4F1C 7F0C03EC 3C098003 */ lui $t1, %hi(selected_num_players) -/* 0F4F20 7F0C03F0 3C0A8003 */ lui $t2, %hi(scenario) -/* 0F4F24 7F0C03F4 AC880084 */ sw $t0, 0x84($a0) -/* 0F4F28 7F0C03F8 8D29B520 */ lw $t1, %lo(selected_num_players)($t1) -/* 0F4F2C 7F0C03FC 3C0B8003 */ lui $t3, %hi(MP_stage_selected) -/* 0F4F30 7F0C0400 3C0C8003 */ lui $t4, %hi(game_length) -/* 0F4F34 7F0C0404 AC89008C */ sw $t1, 0x8c($a0) -/* 0F4F38 7F0C0408 8D4AB540 */ lw $t2, %lo(scenario)($t2) -/* 0F4F3C 7F0C040C 00808025 */ move $s0, $a0 -/* 0F4F40 7F0C0410 AC8A0090 */ sw $t2, 0x90($a0) -/* 0F4F44 7F0C0414 8D6BB534 */ lw $t3, %lo(MP_stage_selected)($t3) -/* 0F4F48 7F0C0418 AC8B0094 */ sw $t3, 0x94($a0) -/* 0F4F4C 7F0C041C 8D8CB538 */ lw $t4, %lo(game_length)($t4) -/* 0F4F50 7F0C0420 0FC3198F */ jal getMPWeaponSet -/* 0F4F54 7F0C0424 AC8C0098 */ sw $t4, 0x98($a0) -/* 0F4F58 7F0C0428 3C038003 */ lui $v1, %hi(player_1_char) -/* 0F4F5C 7F0C042C 2463B524 */ addiu $v1, %lo(player_1_char) # addiu $v1, $v1, -0x4adc -/* 0F4F60 7F0C0430 AE02009C */ sw $v0, 0x9c($s0) -/* 0F4F64 7F0C0434 8C6D0000 */ lw $t5, ($v1) -/* 0F4F68 7F0C0438 3C058007 */ lui $a1, %hi(handicap_player1) -/* 0F4F6C 7F0C043C 24A597A8 */ addiu $a1, %lo(handicap_player1) # addiu $a1, $a1, -0x6858 -/* 0F4F70 7F0C0440 AE0D00A0 */ sw $t5, 0xa0($s0) -/* 0F4F74 7F0C0444 8C6E0004 */ lw $t6, 4($v1) -/* 0F4F78 7F0C0448 3C068007 */ lui $a2, %hi(controlstyle_player) -/* 0F4F7C 7F0C044C 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 -/* 0F4F80 7F0C0450 AE0E00A4 */ sw $t6, 0xa4($s0) -/* 0F4F84 7F0C0454 8C6F0008 */ lw $t7, 8($v1) -/* 0F4F88 7F0C0458 00002025 */ move $a0, $zero -/* 0F4F8C 7F0C045C AE0F00A8 */ sw $t7, 0xa8($s0) -/* 0F4F90 7F0C0460 8C78000C */ lw $t8, 0xc($v1) -/* 0F4F94 7F0C0464 3C0F8003 */ lui $t7, %hi(aim_sight_adjustment) -/* 0F4F98 7F0C0468 AE1800AC */ sw $t8, 0xac($s0) -/* 0F4F9C 7F0C046C 8CB90000 */ lw $t9, ($a1) -/* 0F4FA0 7F0C0470 AE1900B0 */ sw $t9, 0xb0($s0) -/* 0F4FA4 7F0C0474 8CA80004 */ lw $t0, 4($a1) -/* 0F4FA8 7F0C0478 AE0800B4 */ sw $t0, 0xb4($s0) -/* 0F4FAC 7F0C047C 8CA90008 */ lw $t1, 8($a1) -/* 0F4FB0 7F0C0480 AE0900B8 */ sw $t1, 0xb8($s0) -/* 0F4FB4 7F0C0484 8CAA000C */ lw $t2, 0xc($a1) -/* 0F4FB8 7F0C0488 AE0A00BC */ sw $t2, 0xbc($s0) -/* 0F4FBC 7F0C048C 8CCB0000 */ lw $t3, ($a2) -/* 0F4FC0 7F0C0490 AE0B00C0 */ sw $t3, 0xc0($s0) -/* 0F4FC4 7F0C0494 8CCC0004 */ lw $t4, 4($a2) -/* 0F4FC8 7F0C0498 AE0C00C4 */ sw $t4, 0xc4($s0) -/* 0F4FCC 7F0C049C 8CCD0008 */ lw $t5, 8($a2) -/* 0F4FD0 7F0C04A0 AE0D00C8 */ sw $t5, 0xc8($s0) -/* 0F4FD4 7F0C04A4 8CCE000C */ lw $t6, 0xc($a2) -/* 0F4FD8 7F0C04A8 AE0E00CC */ sw $t6, 0xcc($s0) -/* 0F4FDC 7F0C04AC 8DEFB53C */ lw $t7, %lo(aim_sight_adjustment)($t7) -/* 0F4FE0 7F0C04B0 0FC05322 */ jal get_players_team_or_scenario_item_flag -/* 0F4FE4 7F0C04B4 AE0F00D0 */ sw $t7, 0xd0($s0) -/* 0F4FE8 7F0C04B8 AE0200D4 */ sw $v0, 0xd4($s0) -/* 0F4FEC 7F0C04BC 0FC05322 */ jal get_players_team_or_scenario_item_flag -/* 0F4FF0 7F0C04C0 24040001 */ li $a0, 1 -/* 0F4FF4 7F0C04C4 AE0200D8 */ sw $v0, 0xd8($s0) -/* 0F4FF8 7F0C04C8 0FC05322 */ jal get_players_team_or_scenario_item_flag -/* 0F4FFC 7F0C04CC 24040002 */ li $a0, 2 -/* 0F5000 7F0C04D0 AE0200DC */ sw $v0, 0xdc($s0) -/* 0F5004 7F0C04D4 0FC05322 */ jal get_players_team_or_scenario_item_flag -/* 0F5008 7F0C04D8 24040003 */ li $a0, 3 -/* 0F500C 7F0C04DC AE0200E0 */ sw $v0, 0xe0($s0) -/* 0F5010 7F0C04E0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F5014 7F0C04E4 8FB00018 */ lw $s0, 0x18($sp) -/* 0F5018 7F0C04E8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F501C 7F0C04EC 03E00008 */ jr $ra -/* 0F5020 7F0C04F0 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void copy_recorded_ramrom_registers_to_proper_place_ingame(void *arg0) { - // Node 0 - randseed = (?32) *arg0; - randseed + 0x4 = (?32) arg0->unk4; - random_val = (?32) arg0->unk8; - random_val + 0x4 = (?32) arg0->unkC; - gamemode = (?32) arg0->unk84; - selected_num_players = (?32) arg0->unk8C; - scenario = (?32) arg0->unk90; - MP_stage_selected = (?32) arg0->unk94; - game_length = (?32) arg0->unk98; - setMPWeaponSet(arg0->unk9C); - player_1_char = (?32) arg0->unkA0; - player_1_char.unk4 = (?32) arg0->unkA4; - player_1_char.unk8 = (?32) arg0->unkA8; - player_1_char.unkC = (?32) arg0->unkAC; - handicap_player1 = (?32) arg0->unkB0; - handicap_player1.unk4 = (?32) arg0->unkB4; - handicap_player1.unk8 = (?32) arg0->unkB8; - handicap_player1.unkC = (?32) arg0->unkBC; - controlstyle_player = (?32) arg0->unkC0; - controlstyle_player.unk4 = (?32) arg0->unkC4; - controlstyle_player.unk8 = (?32) arg0->unkC8; - controlstyle_player.unkC = (?32) arg0->unkCC; - aim_sight_adjustment = (?32) arg0->unkD0; - set_players_team_or_scenario_item_flag(0, arg0->unkD4, &controlstyle_player); - set_players_team_or_scenario_item_flag(1, arg0->unkD8); - set_players_team_or_scenario_item_flag(2, arg0->unkDC); - return set_players_team_or_scenario_item_flag(3, arg0->unkE0); +void copy_recorded_ramrom_registers_to_proper_place_ingame(state *state) { + g_randomSeed = state->unk0; + g_chrObjRandomSeed = state->unk8; + gamemode = state->unk84; + selected_num_players = state->unk8C; + scenario = state->unk90; + MP_stage_selected = state->unk94; + game_length = state->unk98; + setMPWeaponSet(state->unk9C); + (&player_1_char)[0] = state->unkA0; + (&player_1_char)[1] = state->unkA4; + (&player_1_char)[2] = state->unkA8; + (&player_1_char)[3] = state->unkAC; + (&handicap_player1)[0] = state->unkB0; + (&handicap_player1)[1] = state->unkB4; + (&handicap_player1)[2] = state->unkB8; + (&handicap_player1)[3] = state->unkBC; + controlstyle_player[0] = state->unkC0; + controlstyle_player[1] = state->unkC4; + controlstyle_player[2] = state->unkC8; + controlstyle_player[3] = state->unkCC; + aim_sight_adjustment = state->unkD0; + set_players_team_or_scenario_item_flag(0, state->unkD4); + set_players_team_or_scenario_item_flag(1, state->unkD8); + set_players_team_or_scenario_item_flag(2, state->unkDC); + set_players_team_or_scenario_item_flag(3, state->unkE0); } -#else -GLOBAL_ASM( -.text -glabel copy_recorded_ramrom_registers_to_proper_place_ingame -/* 0F5024 7F0C04F4 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0F5028 7F0C04F8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0F502C 7F0C04FC AFB00018 */ sw $s0, 0x18($sp) -/* 0F5030 7F0C0500 8C8E0000 */ lw $t6, ($a0) -/* 0F5034 7F0C0504 8C8F0004 */ lw $t7, 4($a0) -/* 0F5038 7F0C0508 3C018002 */ lui $at, %hi(randseed) -/* 0F503C 7F0C050C AC2E4460 */ sw $t6, %lo(randseed)($at) -/* 0F5040 7F0C0510 3C018002 */ lui $at, %hi(randseed + 0x4) -/* 0F5044 7F0C0514 AC2F4464 */ sw $t7, %lo(randseed + 0x4)($at) -/* 0F5048 7F0C0518 8C980008 */ lw $t8, 8($a0) -/* 0F504C 7F0C051C 8C99000C */ lw $t9, 0xc($a0) -/* 0F5050 7F0C0520 3C018004 */ lui $at, %hi(random_val) -/* 0F5054 7F0C0524 AC380160 */ sw $t8, %lo(random_val)($at) -/* 0F5058 7F0C0528 3C018004 */ lui $at, %hi(random_val + 0x4) -/* 0F505C 7F0C052C AC390164 */ sw $t9, %lo(random_val + 0x4)($at) -/* 0F5060 7F0C0530 8C880084 */ lw $t0, 0x84($a0) -/* 0F5064 7F0C0534 3C018003 */ lui $at, %hi(gamemode) -/* 0F5068 7F0C0538 00808025 */ move $s0, $a0 -/* 0F506C 7F0C053C AC28A8F0 */ sw $t0, %lo(gamemode)($at) -/* 0F5070 7F0C0540 8C89008C */ lw $t1, 0x8c($a0) -/* 0F5074 7F0C0544 3C018003 */ lui $at, %hi(selected_num_players) -/* 0F5078 7F0C0548 AC29B520 */ sw $t1, %lo(selected_num_players)($at) -/* 0F507C 7F0C054C 8C8A0090 */ lw $t2, 0x90($a0) -/* 0F5080 7F0C0550 3C018003 */ lui $at, %hi(scenario) -/* 0F5084 7F0C0554 AC2AB540 */ sw $t2, %lo(scenario)($at) -/* 0F5088 7F0C0558 8C8B0094 */ lw $t3, 0x94($a0) -/* 0F508C 7F0C055C 3C018003 */ lui $at, %hi(MP_stage_selected) -/* 0F5090 7F0C0560 AC2BB534 */ sw $t3, %lo(MP_stage_selected)($at) -/* 0F5094 7F0C0564 8C8C0098 */ lw $t4, 0x98($a0) -/* 0F5098 7F0C0568 3C018003 */ lui $at, %hi(game_length) -/* 0F509C 7F0C056C AC2CB538 */ sw $t4, %lo(game_length)($at) -/* 0F50A0 7F0C0570 0FC3198C */ jal setMPWeaponSet -/* 0F50A4 7F0C0574 8C84009C */ lw $a0, 0x9c($a0) -/* 0F50A8 7F0C0578 8E0D00A0 */ lw $t5, 0xa0($s0) -/* 0F50AC 7F0C057C 3C028003 */ lui $v0, %hi(player_1_char) -/* 0F50B0 7F0C0580 2442B524 */ addiu $v0, %lo(player_1_char) # addiu $v0, $v0, -0x4adc -/* 0F50B4 7F0C0584 AC4D0000 */ sw $t5, ($v0) -/* 0F50B8 7F0C0588 8E0E00A4 */ lw $t6, 0xa4($s0) -/* 0F50BC 7F0C058C 3C038007 */ lui $v1, %hi(handicap_player1) -/* 0F50C0 7F0C0590 246397A8 */ addiu $v1, %lo(handicap_player1) # addiu $v1, $v1, -0x6858 -/* 0F50C4 7F0C0594 AC4E0004 */ sw $t6, 4($v0) -/* 0F50C8 7F0C0598 8E0F00A8 */ lw $t7, 0xa8($s0) -/* 0F50CC 7F0C059C 3C068007 */ lui $a2, %hi(controlstyle_player) -/* 0F50D0 7F0C05A0 24C697B8 */ addiu $a2, %lo(controlstyle_player) # addiu $a2, $a2, -0x6848 -/* 0F50D4 7F0C05A4 AC4F0008 */ sw $t7, 8($v0) -/* 0F50D8 7F0C05A8 8E1800AC */ lw $t8, 0xac($s0) -/* 0F50DC 7F0C05AC 3C018003 */ lui $at, %hi(aim_sight_adjustment) -/* 0F50E0 7F0C05B0 00002025 */ move $a0, $zero -/* 0F50E4 7F0C05B4 AC58000C */ sw $t8, 0xc($v0) -/* 0F50E8 7F0C05B8 8E1900B0 */ lw $t9, 0xb0($s0) -/* 0F50EC 7F0C05BC AC790000 */ sw $t9, ($v1) -/* 0F50F0 7F0C05C0 8E0800B4 */ lw $t0, 0xb4($s0) -/* 0F50F4 7F0C05C4 AC680004 */ sw $t0, 4($v1) -/* 0F50F8 7F0C05C8 8E0900B8 */ lw $t1, 0xb8($s0) -/* 0F50FC 7F0C05CC AC690008 */ sw $t1, 8($v1) -/* 0F5100 7F0C05D0 8E0A00BC */ lw $t2, 0xbc($s0) -/* 0F5104 7F0C05D4 AC6A000C */ sw $t2, 0xc($v1) -/* 0F5108 7F0C05D8 8E0B00C0 */ lw $t3, 0xc0($s0) -/* 0F510C 7F0C05DC ACCB0000 */ sw $t3, ($a2) -/* 0F5110 7F0C05E0 8E0C00C4 */ lw $t4, 0xc4($s0) -/* 0F5114 7F0C05E4 ACCC0004 */ sw $t4, 4($a2) -/* 0F5118 7F0C05E8 8E0D00C8 */ lw $t5, 0xc8($s0) -/* 0F511C 7F0C05EC ACCD0008 */ sw $t5, 8($a2) -/* 0F5120 7F0C05F0 8E0E00CC */ lw $t6, 0xcc($s0) -/* 0F5124 7F0C05F4 ACCE000C */ sw $t6, 0xc($a2) -/* 0F5128 7F0C05F8 8E0F00D0 */ lw $t7, 0xd0($s0) -/* 0F512C 7F0C05FC AC2FB53C */ sw $t7, %lo(aim_sight_adjustment)($at) -/* 0F5130 7F0C0600 0FC05329 */ jal set_players_team_or_scenario_item_flag -/* 0F5134 7F0C0604 8E0500D4 */ lw $a1, 0xd4($s0) -/* 0F5138 7F0C0608 24040001 */ li $a0, 1 -/* 0F513C 7F0C060C 0FC05329 */ jal set_players_team_or_scenario_item_flag -/* 0F5140 7F0C0610 8E0500D8 */ lw $a1, 0xd8($s0) -/* 0F5144 7F0C0614 24040002 */ li $a0, 2 -/* 0F5148 7F0C0618 0FC05329 */ jal set_players_team_or_scenario_item_flag -/* 0F514C 7F0C061C 8E0500DC */ lw $a1, 0xdc($s0) -/* 0F5150 7F0C0620 24040003 */ li $a0, 3 -/* 0F5154 7F0C0624 0FC05329 */ jal set_players_team_or_scenario_item_flag -/* 0F5158 7F0C0628 8E0500E0 */ lw $a1, 0xe0($s0) -/* 0F515C 7F0C062C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0F5160 7F0C0630 8FB00018 */ lw $s0, 0x18($sp) -/* 0F5164 7F0C0634 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0F5168 7F0C0638 03E00008 */ jr $ra -/* 0F516C 7F0C063C 00000000 */ nop -) -#endif - - - - #ifdef NONMATCHING void test_if_recording_demos_this_stage_load(void) { @@ -1011,7 +843,7 @@ glabel test_if_recording_demos_this_stage_load /* 0F51B0 7F0C0680 8E090000 */ lw $t1, ($s0) /* 0F51B4 7F0C0684 AD240010 */ sw $a0, 0x10($t1) /* 0F51B8 7F0C0688 8E0A0000 */ lw $t2, ($s0) -/* 0F51BC 7F0C068C 0C002E7E */ jal get_attached_controller_count +/* 0F51BC 7F0C068C 0C002E7E */ jal joyGetControllerCount /* 0F51C0 7F0C0690 AD450014 */ sw $a1, 0x14($t2) /* 0F51C4 7F0C0694 8E0B0000 */ lw $t3, ($s0) /* 0F51C8 7F0C0698 3C0C8009 */ lui $t4, %hi(record_slot_num) @@ -1030,7 +862,7 @@ glabel test_if_recording_demos_this_stage_load /* 0F51FC 7F0C06CC 3C018005 */ lui $at, %hi(ramrom_demo_related_6) /* 0F5200 7F0C06D0 3C047F0C */ lui $a0, %hi(record_player_input_as_packet) # $a0, 0x7f0c /* 0F5204 7F0C06D4 AC228484 */ sw $v0, %lo(ramrom_demo_related_6)($at) -/* 0F5208 7F0C06D8 0C002EEF */ jal set_ptr_tlb_ramrom_record +/* 0F5208 7F0C06D8 0C002EEF */ jal joySetRecordFunc /* 0F520C 7F0C06DC 2484FE5C */ addiu $a0, %lo(record_player_input_as_packet) # addiu $a0, $a0, -0x1a4 /* 0F5210 7F0C06E0 3C028009 */ lui $v0, %hi(address_demo_loaded) /* 0F5214 7F0C06E4 2442C5F4 */ addiu $v0, %lo(address_demo_loaded) # addiu $v0, $v0, -0x3a0c @@ -1077,9 +909,9 @@ glabel test_if_recording_demos_this_stage_load /* 0F52B4 7F0C0784 8E0A0000 */ lw $t2, ($s0) /* 0F52B8 7F0C0788 3C047F0C */ lui $a0, %hi(ramrom_replay_handler) # $a0, 0x7f0c /* 0F52BC 7F0C078C 24840080 */ addiu $a0, %lo(ramrom_replay_handler) # addiu $a0, $a0, 0x80 -/* 0F52C0 7F0C0790 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F52C0 7F0C0790 0C002EEA */ jal joySetPlaybackFunc /* 0F52C4 7F0C0794 8D450018 */ lw $a1, 0x18($t2) -/* 0F52C8 7F0C0798 0C00324C */ jal controller_7000C930 +/* 0F52C8 7F0C0798 0C00324C */ jal joySetContDataIndex /* 0F52CC 7F0C079C 24040001 */ li $a0, 1 /* 0F52D0 7F0C07A0 3C018005 */ lui $at, %hi(ramrom_demo_related_4) /* 0F52D4 7F0C07A4 AC20847C */ sw $zero, %lo(ramrom_demo_related_4)($at) @@ -1106,7 +938,7 @@ void stop_recording_ramrom(void) { if (ramrom_demo_related_6 != 0) { finalize_ramrom_on_hw(); - set_ptr_tlb_ramrom_record(0); + joySetRecordFunc(0); ramrom_demo_related_6 = 0; recording_ramrom_flag = 0; } @@ -1198,8 +1030,8 @@ void stop_demo_playback(void) if (ramrom_demo_related_6 == 0) { if (ramrom_demo_related_3 != 0) { copy_recorded_ramrom_registers_to_proper_place_ingame(&ramromsettingsbackup); - set_disable_all_rumble_and_something(0,0xffffffff); - controller_7000C930(0); + joySetPlaybackFunc(0,0xffffffff); + joySetContDataIndex(0); ramrom_demo_related_3 = 0; is_ramrom_flag = 0; } @@ -1230,9 +1062,9 @@ glabel stop_demo_playback /* 0F5464 7F0C0934 0FC3013D */ jal copy_recorded_ramrom_registers_to_proper_place_ingame /* 0F5468 7F0C0938 2484C380 */ addiu $a0, %lo(ramrom_data_target + 0x110) # addiu $a0, $a0, -0x3c80 /* 0F546C 7F0C093C 00002025 */ move $a0, $zero -/* 0F5470 7F0C0940 0C002EEA */ jal set_disable_all_rumble_and_something +/* 0F5470 7F0C0940 0C002EEA */ jal joySetPlaybackFunc /* 0F5474 7F0C0944 2405FFFF */ li $a1, -1 -/* 0F5478 7F0C0948 0C00324C */ jal controller_7000C930 +/* 0F5478 7F0C0948 0C00324C */ jal joySetContDataIndex /* 0F547C 7F0C094C 00002025 */ move $a0, $zero /* 0F5480 7F0C0950 3C018005 */ lui $at, %hi(ramrom_demo_related_3) /* 0F5484 7F0C0954 AC208478 */ sw $zero, %lo(ramrom_demo_related_3)($at) @@ -1286,7 +1118,7 @@ glabel select_ramrom_to_play /* 0F5500 7F0C09D0 5020FFF9 */ beql $at, $zero, .L7F0C09B8 /* 0F5504 7F0C09D4 8C480008 */ lw $t0, 8($v0) .L7F0C09D8: -/* 0F5508 7F0C09D8 0C002914 */ jal get_random_value +/* 0F5508 7F0C09D8 0C002914 */ jal randomGetNext /* 0F550C 7F0C09DC AFA3001C */ sw $v1, 0x1c($sp) /* 0F5510 7F0C09E0 8FA3001C */ lw $v1, 0x1c($sp) /* 0F5514 7F0C09E4 3C048005 */ lui $a0, %hi(ramrom_table) diff --git a/src/game/ramromreplay.h b/src/game/ramromreplay.h new file mode 100644 index 0000000..41c3193 --- /dev/null +++ b/src/game/ramromreplay.h @@ -0,0 +1,12 @@ +#ifndef _RAMROMREPLAY_H_ +#define _RAMROMREPLAY_H_ + +#include "ultra64.h" + +void test_if_recording_demos_this_stage_load(s32 arg0, s32 arg1); +s32 iterate_ramrom_entries_handle_camera_out(void); +void stop_demo_playback(void); +s32 get_is_reamrom_flag(void); + +#endif + diff --git a/src/game/rsp.c b/src/game/rsp.c index 3375952..66dfb55 100644 --- a/src/game/rsp.c +++ b/src/game/rsp.c @@ -23,13 +23,13 @@ u32 fast3d_related_1[] = { }; //D:8004EAB0 -u32 *fast3d_related_array = &fast3d_related_0; +u32 **fast3d_related_array = &fast3d_related_0; void rspInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&D_8004E9E0, "rsp_c_debug"); + debTryAdd(&D_8004E9E0, "rsp_c_debug"); } @@ -73,7 +73,7 @@ glabel allocate_init_rsp_buffers #ifdef NONMATCHING -void *load_rsp_microcode(s32 arg0, s32 arg1, ? arg2, ?32 arg3) { +void *load_rsp_microcode(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { void *temp_v0; // Node 0 diff --git a/src/game/rsp.h b/src/game/rsp.h index 17b432c..9d5ed0f 100644 --- a/src/game/rsp.h +++ b/src/game/rsp.h @@ -3,5 +3,8 @@ #include "ultra64.h" void rspInitDebugNoticeList(void); +void *load_rsp_microcode(Gfx *arg0, Gfx *arg1, s32 arg2, s32 *arg3); + +extern u32 **fast3d_related_array; #endif diff --git a/src/game/spectrum.c b/src/game/spectrum.c index 0983077..78aee97 100644 --- a/src/game/spectrum.c +++ b/src/game/spectrum.c @@ -391,20 +391,20 @@ glabel spectrum_p1controller_to_kempston /* 1077C0 7F0D2C90 AFA00030 */ sw $zero, 0x30($sp) /* 1077C4 7F0D2C94 AFA0002C */ sw $zero, 0x2c($sp) /* 1077C8 7F0D2C98 AFA00028 */ sw $zero, 0x28($sp) -/* 1077CC 7F0D2C9C 0C002F43 */ jal redirect_to_ramrom_replay_and_record_handlers_if_set +/* 1077CC 7F0D2C9C 0C002F43 */ jal joyConsumeSamplesWrapper /* 1077D0 7F0D2CA0 AFA00024 */ sw $zero, 0x24($sp) /* 1077D4 7F0D2CA4 00002025 */ move $a0, $zero -/* 1077D8 7F0D2CA8 0C0030C3 */ jal get_controller_buttons_held +/* 1077D8 7F0D2CA8 0C0030C3 */ jal joyGetButtons /* 1077DC 7F0D2CAC 3405FFFF */ li $a1, 65535 /* 1077E0 7F0D2CB0 00002025 */ move $a0, $zero /* 1077E4 7F0D2CB4 2405FFFD */ li $a1, -3 /* 1077E8 7F0D2CB8 24060003 */ li $a2, 3 -/* 1077EC 7F0D2CBC 0C00312D */ jal get_controller_3dstick_L_R +/* 1077EC 7F0D2CBC 0C00312D */ jal joyGetStickXInRange /* 1077F0 7F0D2CC0 AFA20020 */ sw $v0, 0x20($sp) /* 1077F4 7F0D2CC4 00002025 */ move $a0, $zero /* 1077F8 7F0D2CC8 2405FFFD */ li $a1, -3 /* 1077FC 7F0D2CCC 24060003 */ li $a2, 3 -/* 107800 7F0D2CD0 0C00314A */ jal get_controller_3dstick_U_D +/* 107800 7F0D2CD0 0C00314A */ jal joyGetStickYInRange /* 107804 7F0D2CD4 AFA2001C */ sw $v0, 0x1c($sp) /* 107808 7F0D2CD8 240E00FF */ li $t6, 255 /* 10780C 7F0D2CDC 3C018005 */ lui $at, %hi(D_8004EC34) diff --git a/src/game/spectrum.h b/src/game/spectrum.h index 3d3bb9d..3b377f0 100644 --- a/src/game/spectrum.h +++ b/src/game/spectrum.h @@ -2,6 +2,19 @@ #define _SPECTRUM_H_ #include "ultra64.h" +typedef enum SPECTRUMROMS { + ROM_SABRE, + ROM_ATIC, + ROM_JETPAC, + ROM_JETMAN, + ROM_ALIEN8, + ROM_GUNFRIGHT, + ROM_UNDER, + ROM_KNIGHTLORE, + ROM_PSSST, + ROM_COOKIE +} SPECTRUMROMS; + extern void init_spectrum_game(u32 game); extern void run_spectrum_game(void); extern void spectrum_draw_screen(u32); diff --git a/src/game/stan.c b/src/game/stan.c index dc5ded1..3fd49c0 100644 --- a/src/game/stan.c +++ b/src/game/stan.c @@ -234,7 +234,7 @@ u32 stanRemovedAnimationRoutine(s32 arg0) { } void stanInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug"); + debTryAdd(&stan_c_debug_notice_list_entry, &aStan_c_debug);//"stan_c_debug"); } @@ -796,7 +796,7 @@ void stanLoadFile(void *arg0) { stanLoaded = 1; stan_prefix.clippingfile = arg0; standTileStart = (s32) (arg0->unk4 + -0x80); - if (check_token(1, "-stanlinelog") != 0) + if (tokenFind(1, "-stanlinelog") != 0) { stanlinelog_flag = 1; } @@ -822,7 +822,7 @@ glabel stanLoadFile /* 0E4114 7F0AF5E4 2719FF80 */ addiu $t9, $t8, -0x80 /* 0E4118 7F0AF5E8 AC390F58 */ sw $t9, %lo(standTileStart)($at) /* 0E411C 7F0AF5EC 24A585BC */ addiu $a1, %lo(aStanlinelog) # addiu $a1, $a1, -0x7a44 -/* 0E4120 7F0AF5F0 0C0029A8 */ jal check_token +/* 0E4120 7F0AF5F0 0C0029A8 */ jal tokenFind /* 0E4124 7F0AF5F4 24040001 */ li $a0, 1 /* 0E4128 7F0AF5F8 10400003 */ beqz $v0, .L7F0AF608 /* 0E412C 7F0AF5FC 24080001 */ li $t0, 1 @@ -6376,12 +6376,12 @@ GLOBAL_ASM( glabel sub_GAME_7F0B3044 /* 0E7B74 7F0B3044 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0E7B78 7F0B3048 AFBF0014 */ sw $ra, 0x14($sp) -/* 0E7B7C 7F0B304C 0FC2F5DF */ jal num_microcode_cmds_that_fit +/* 0E7B7C 7F0B304C 0FC2F5DF */ jal dynGetFreeGfx /* 0E7B80 7F0B3050 AFA0001C */ sw $zero, 0x1c($sp) /* 0E7B84 7F0B3054 28411000 */ slti $at, $v0, 0x1000 /* 0E7B88 7F0B3058 14200005 */ bnez $at, .L7F0B3070 /* 0E7B8C 7F0B305C 00000000 */ nop -/* 0E7B90 7F0B3060 0FC2F5E9 */ jal sub_GAME_7F0BD7A4 +/* 0E7B90 7F0B3060 0FC2F5E9 */ jal dynGetFreeVtx /* 0E7B94 7F0B3064 00000000 */ nop /* 0E7B98 7F0B3068 28411000 */ slti $at, $v0, 0x1000 /* 0E7B9C 7F0B306C 10200010 */ beqz $at, .L7F0B30B0 diff --git a/src/game/textrelated.c b/src/game/textrelated.c index 9083962..9898f39 100644 --- a/src/game/textrelated.c +++ b/src/game/textrelated.c @@ -270,197 +270,39 @@ glabel load_font_tables ) #endif - - - - -#ifdef NONMATCHING -void microcode_constructor(u32 *DL) - +Gfx *microcode_constructor(Gfx *gdl) { - DL[0] = 0xe7000000; //rdp_pipesync - DL[1] = 0; - DL[2] = 0xba001402; //rsp_uc05_setothermode_h - DL[3] = 0; - DL[5] = 0xc0; - DL[4] = 0xba000602; //rsp_uc05_setothermode_h - DL[6] = 0xb900031d; //rsp_uc05_setothermode_l - DL[7] = 0x5041c8; - DL[8] = 0xfcff97ff; //rdp_setcombine - DL[9] = 0xff2dfeff; //rdp_setcolourimage - DL[10] = 0xba001301; //rsp_uc05_setothermode_h - DL[0xb] = 0; - DL[0xc] = 0xb9000002; //rsp_uc05_setothermode_l - DL[0xd] = 0; - DL[0xe] = 0xba001001; //rsp_uc05_setothermode_h - DL[0xf] = 0; - DL[0x11] = 0xc00; - DL[0x10] = 0xba000903; //rsp_uc05_setothermode_h - DL[0x12] = 0xba000e02; //rsp_uc05_setothermode_h - DL[0x13] = 0; - if (text_bilevel_filter != 0) { - DL[0x15] = 0x3000; - DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h - return; - } - DL[0x15] = 0x2000; - DL[0x14] = 0xba000c02; //rsp_uc05_setothermode_h - return; -} -#else -GLOBAL_ASM( -.text -glabel microcode_constructor -/* 0E18C8 7F0ACD98 00801025 */ move $v0, $a0 -/* 0E18CC 7F0ACD9C 24840008 */ addiu $a0, $a0, 8 -/* 0E18D0 7F0ACDA0 3C0EE700 */ lui $t6, 0xe700 -/* 0E18D4 7F0ACDA4 AC4E0000 */ sw $t6, ($v0) -/* 0E18D8 7F0ACDA8 AC400004 */ sw $zero, 4($v0) -/* 0E18DC 7F0ACDAC 00801825 */ move $v1, $a0 -/* 0E18E0 7F0ACDB0 24840008 */ addiu $a0, $a0, 8 -/* 0E18E4 7F0ACDB4 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00 -/* 0E18E8 7F0ACDB8 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402 -/* 0E18EC 7F0ACDBC 00802825 */ move $a1, $a0 -/* 0E18F0 7F0ACDC0 AC6F0000 */ sw $t7, ($v1) -/* 0E18F4 7F0ACDC4 AC600004 */ sw $zero, 4($v1) -/* 0E18F8 7F0ACDC8 24840008 */ addiu $a0, $a0, 8 -/* 0E18FC 7F0ACDCC 3C18BA00 */ lui $t8, (0xBA000602 >> 16) # lui $t8, 0xba00 -/* 0E1900 7F0ACDD0 37180602 */ ori $t8, (0xBA000602 & 0xFFFF) # ori $t8, $t8, 0x602 -/* 0E1904 7F0ACDD4 241900C0 */ li $t9, 192 -/* 0E1908 7F0ACDD8 00803025 */ move $a2, $a0 -/* 0E190C 7F0ACDDC ACB90004 */ sw $t9, 4($a1) -/* 0E1910 7F0ACDE0 ACB80000 */ sw $t8, ($a1) -/* 0E1914 7F0ACDE4 24840008 */ addiu $a0, $a0, 8 -/* 0E1918 7F0ACDE8 3C08B900 */ lui $t0, (0xB900031D >> 16) # lui $t0, 0xb900 -/* 0E191C 7F0ACDEC 3C090050 */ lui $t1, (0x005041C8 >> 16) # lui $t1, 0x50 -/* 0E1920 7F0ACDF0 352941C8 */ ori $t1, (0x005041C8 & 0xFFFF) # ori $t1, $t1, 0x41c8 -/* 0E1924 7F0ACDF4 3508031D */ ori $t0, (0xB900031D & 0xFFFF) # ori $t0, $t0, 0x31d -/* 0E1928 7F0ACDF8 00803825 */ move $a3, $a0 -/* 0E192C 7F0ACDFC ACC80000 */ sw $t0, ($a2) -/* 0E1930 7F0ACE00 ACC90004 */ sw $t1, 4($a2) -/* 0E1934 7F0ACE04 3C0AFCFF */ lui $t2, (0xFCFF97FF >> 16) # lui $t2, 0xfcff -/* 0E1938 7F0ACE08 3C0BFF2D */ lui $t3, (0xFF2DFEFF >> 16) # lui $t3, 0xff2d -/* 0E193C 7F0ACE0C 356BFEFF */ ori $t3, (0xFF2DFEFF & 0xFFFF) # ori $t3, $t3, 0xfeff -/* 0E1940 7F0ACE10 354A97FF */ ori $t2, (0xFCFF97FF & 0xFFFF) # ori $t2, $t2, 0x97ff -/* 0E1944 7F0ACE14 24840008 */ addiu $a0, $a0, 8 -/* 0E1948 7F0ACE18 ACEA0000 */ sw $t2, ($a3) -/* 0E194C 7F0ACE1C ACEB0004 */ sw $t3, 4($a3) -/* 0E1950 7F0ACE20 00801025 */ move $v0, $a0 -/* 0E1954 7F0ACE24 24840008 */ addiu $a0, $a0, 8 -/* 0E1958 7F0ACE28 3C0CBA00 */ lui $t4, (0xBA001301 >> 16) # lui $t4, 0xba00 -/* 0E195C 7F0ACE2C 358C1301 */ ori $t4, (0xBA001301 & 0xFFFF) # ori $t4, $t4, 0x1301 -/* 0E1960 7F0ACE30 00801825 */ move $v1, $a0 -/* 0E1964 7F0ACE34 AC4C0000 */ sw $t4, ($v0) -/* 0E1968 7F0ACE38 AC400004 */ sw $zero, 4($v0) -/* 0E196C 7F0ACE3C 24840008 */ addiu $a0, $a0, 8 -/* 0E1970 7F0ACE40 3C0DB900 */ lui $t5, (0xB9000002 >> 16) # lui $t5, 0xb900 -/* 0E1974 7F0ACE44 35AD0002 */ ori $t5, (0xB9000002 & 0xFFFF) # ori $t5, $t5, 2 -/* 0E1978 7F0ACE48 00802825 */ move $a1, $a0 -/* 0E197C 7F0ACE4C AC6D0000 */ sw $t5, ($v1) -/* 0E1980 7F0ACE50 AC600004 */ sw $zero, 4($v1) -/* 0E1984 7F0ACE54 24840008 */ addiu $a0, $a0, 8 -/* 0E1988 7F0ACE58 3C0EBA00 */ lui $t6, (0xBA001001 >> 16) # lui $t6, 0xba00 -/* 0E198C 7F0ACE5C 35CE1001 */ ori $t6, (0xBA001001 & 0xFFFF) # ori $t6, $t6, 0x1001 -/* 0E1990 7F0ACE60 00803025 */ move $a2, $a0 -/* 0E1994 7F0ACE64 ACAE0000 */ sw $t6, ($a1) -/* 0E1998 7F0ACE68 ACA00004 */ sw $zero, 4($a1) -/* 0E199C 7F0ACE6C 3C0FBA00 */ lui $t7, (0xBA000903 >> 16) # lui $t7, 0xba00 -/* 0E19A0 7F0ACE70 35EF0903 */ ori $t7, (0xBA000903 & 0xFFFF) # ori $t7, $t7, 0x903 -/* 0E19A4 7F0ACE74 24840008 */ addiu $a0, $a0, 8 -/* 0E19A8 7F0ACE78 24180C00 */ li $t8, 3072 -/* 0E19AC 7F0ACE7C ACD80004 */ sw $t8, 4($a2) -/* 0E19B0 7F0ACE80 ACCF0000 */ sw $t7, ($a2) -/* 0E19B4 7F0ACE84 00803825 */ move $a3, $a0 -/* 0E19B8 7F0ACE88 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00 -/* 0E19BC 7F0ACE8C 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02 -/* 0E19C0 7F0ACE90 ACF90000 */ sw $t9, ($a3) -/* 0E19C4 7F0ACE94 ACE00004 */ sw $zero, 4($a3) -/* 0E19C8 7F0ACE98 3C088004 */ lui $t0, %hi(text_bilevel_filter) -/* 0E19CC 7F0ACE9C 8D080E94 */ lw $t0, %lo(text_bilevel_filter)($t0) -/* 0E19D0 7F0ACEA0 24840008 */ addiu $a0, $a0, 8 -/* 0E19D4 7F0ACEA4 00801025 */ move $v0, $a0 -/* 0E19D8 7F0ACEA8 1100000A */ beqz $t0, .L7F0ACED4 -/* 0E19DC 7F0ACEAC 3C0BBA00 */ lui $t3, 0xba00 -/* 0E19E0 7F0ACEB0 00801025 */ move $v0, $a0 -/* 0E19E4 7F0ACEB4 3C09BA00 */ lui $t1, (0xBA000C02 >> 16) # lui $t1, 0xba00 -/* 0E19E8 7F0ACEB8 35290C02 */ ori $t1, (0xBA000C02 & 0xFFFF) # ori $t1, $t1, 0xc02 -/* 0E19EC 7F0ACEBC 240A3000 */ li $t2, 12288 -/* 0E19F0 7F0ACEC0 AC4A0004 */ sw $t2, 4($v0) -/* 0E19F4 7F0ACEC4 AC490000 */ sw $t1, ($v0) -/* 0E19F8 7F0ACEC8 24840008 */ addiu $a0, $a0, 8 -/* 0E19FC 7F0ACECC 03E00008 */ jr $ra -/* 0E1A00 7F0ACED0 00801025 */ move $v0, $a0 + gDPPipeSync(gdl++); + gDPSetCycleType(gdl++, G_CYC_1CYCLE); + gDPSetColorDither(gdl++, G_CD_DISABLE); + gDPSetRenderMode(gdl++, G_RM_AA_XLU_SURF, G_RM_AA_XLU_SURF2); + gDPSetCombineLERP(gdl++, + 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, + 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0); + gDPSetTexturePersp(gdl++, G_TP_NONE); + gDPSetAlphaCompare(gdl++, G_AC_NONE); + gDPSetTextureLOD(gdl++, G_TL_TILE); + gDPSetTextureConvert(gdl++, G_TC_FILT); + gDPSetTextureLUT(gdl++, G_TT_NONE); -.L7F0ACED4: -/* 0E1A04 7F0ACED4 356B0C02 */ ori $t3, $t3, 0xc02 -/* 0E1A08 7F0ACED8 240C2000 */ li $t4, 8192 -/* 0E1A0C 7F0ACEDC AC4C0004 */ sw $t4, 4($v0) -/* 0E1A10 7F0ACEE0 AC4B0000 */ sw $t3, ($v0) -/* 0E1A14 7F0ACEE4 24840008 */ addiu $a0, $a0, 8 -/* 0E1A18 7F0ACEE8 03E00008 */ jr $ra -/* 0E1A1C 7F0ACEEC 00801025 */ move $v0, $a0 -) -#endif + if (text_bilevel_filter) { + gDPSetTextureFilter(gdl++, G_TF_AVERAGE); + } else { + gDPSetTextureFilter(gdl++, G_TF_BILERP); + } - - - - -#ifdef NONMATCHING -s32 combiner_bayer_lod_perspective(void *arg0) { - void *temp_a1; - void *temp_a2; - void *temp_a3; - - // Node 0 - temp_a1 = (arg0 + 8); - *arg0 = 0xe7000000; - arg0->unk4 = 0; - temp_a2 = (temp_a1 + 8); - temp_a1->unk4 = 0x40; - *temp_a1 = 0xba000602; - temp_a3 = (temp_a2 + 8); - temp_a2->unk4 = 0x80000; - *temp_a2 = 0xba001301; - temp_a3->unk4 = 0x10000; - *temp_a3 = 0xba001001; - return; - // (possible return value: (temp_a3 + 8)) + return gdl; } -#else -GLOBAL_ASM( -.text -glabel combiner_bayer_lod_perspective -/* 0E1A20 7F0ACEF0 24850008 */ addiu $a1, $a0, 8 -/* 0E1A24 7F0ACEF4 3C0EE700 */ lui $t6, 0xe700 -/* 0E1A28 7F0ACEF8 AC8E0000 */ sw $t6, ($a0) -/* 0E1A2C 7F0ACEFC AC800004 */ sw $zero, 4($a0) -/* 0E1A30 7F0ACF00 3C0FBA00 */ lui $t7, (0xBA000602 >> 16) # lui $t7, 0xba00 -/* 0E1A34 7F0ACF04 35EF0602 */ ori $t7, (0xBA000602 & 0xFFFF) # ori $t7, $t7, 0x602 -/* 0E1A38 7F0ACF08 24A60008 */ addiu $a2, $a1, 8 -/* 0E1A3C 7F0ACF0C 24180040 */ li $t8, 64 -/* 0E1A40 7F0ACF10 ACB80004 */ sw $t8, 4($a1) -/* 0E1A44 7F0ACF14 ACAF0000 */ sw $t7, ($a1) -/* 0E1A48 7F0ACF18 3C19BA00 */ lui $t9, (0xBA001301 >> 16) # lui $t9, 0xba00 -/* 0E1A4C 7F0ACF1C 37391301 */ ori $t9, (0xBA001301 & 0xFFFF) # ori $t9, $t9, 0x1301 -/* 0E1A50 7F0ACF20 24C70008 */ addiu $a3, $a2, 8 -/* 0E1A54 7F0ACF24 3C080008 */ lui $t0, 8 -/* 0E1A58 7F0ACF28 3C09BA00 */ lui $t1, (0xBA001001 >> 16) # lui $t1, 0xba00 -/* 0E1A5C 7F0ACF2C ACC80004 */ sw $t0, 4($a2) -/* 0E1A60 7F0ACF30 ACD90000 */ sw $t9, ($a2) -/* 0E1A64 7F0ACF34 35291001 */ ori $t1, (0xBA001001 & 0xFFFF) # ori $t1, $t1, 0x1001 -/* 0E1A68 7F0ACF38 3C0A0001 */ lui $t2, 1 -/* 0E1A6C 7F0ACF3C ACEA0004 */ sw $t2, 4($a3) -/* 0E1A70 7F0ACF40 ACE90000 */ sw $t1, ($a3) -/* 0E1A74 7F0ACF44 03E00008 */ jr $ra -/* 0E1A78 7F0ACF48 24E20008 */ addiu $v0, $a3, 8 -) -#endif - - - +Gfx *combiner_bayer_lod_perspective(Gfx *gdl) +{ + gDPPipeSync(gdl++); + gDPSetColorDither(gdl++, G_CD_BAYER); + gDPSetTexturePersp(gdl++, G_TP_PERSP); + gDPSetTextureLOD(gdl++, G_TL_LOD); + return gdl; +} #ifdef NONMATCHING s32 draw_blackbox_to_screen(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) { @@ -691,7 +533,7 @@ glabel sub_GAME_7F0AD0F8 /* 0E1CAC 7F0AD17C 8FA40108 */ lw $a0, 0x108($sp) /* 0E1CB0 7F0AD180 59A00244 */ blezl $t5, .L7F0ADA94 /* 0E1CB4 7F0AD184 8FAC00F4 */ lw $t4, 0xf4($sp) -/* 0E1CB8 7F0AD188 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1CB8 7F0AD188 0C001107 */ jal viGetX /* 0E1CBC 7F0AD18C AFA900E0 */ sw $t1, 0xe0($sp) /* 0E1CC0 7F0AD190 8FAE00F4 */ lw $t6, 0xf4($sp) /* 0E1CC4 7F0AD194 8FA900E0 */ lw $t1, 0xe0($sp) @@ -699,7 +541,7 @@ glabel sub_GAME_7F0AD0F8 /* 0E1CCC 7F0AD19C 004F082A */ slt $at, $v0, $t7 /* 0E1CD0 7F0AD1A0 5420023C */ bnezl $at, .L7F0ADA94 /* 0E1CD4 7F0AD1A4 8FAC00F4 */ lw $t4, 0xf4($sp) -/* 0E1CD8 7F0AD1A8 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1CD8 7F0AD1A8 0C00110B */ jal viGetY /* 0E1CDC 7F0AD1AC AFA900E0 */ sw $t1, 0xe0($sp) /* 0E1CE0 7F0AD1B0 8FA900E0 */ lw $t1, 0xe0($sp) /* 0E1CE4 7F0AD1B4 8E2C0004 */ lw $t4, 4($s1) @@ -1725,6 +1567,215 @@ glabel en_text_write_stuff /* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel en_text_write_stuff +/* 0E25EC 7F0ADABC 27BDFF58 */ addiu $sp, $sp, -0xa8 +/* 0E25F0 7F0ADAC0 240E0001 */ li $t6, 1 +/* 0E25F4 7F0ADAC4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E25F8 7F0ADAC8 8FB800D0 */ lw $t8, 0xd0($sp) +/* 0E25FC 7F0ADACC AFBF005C */ sw $ra, 0x5c($sp) +/* 0E2600 7F0ADAD0 AFBE0058 */ sw $fp, 0x58($sp) +/* 0E2604 7F0ADAD4 AFB70054 */ sw $s7, 0x54($sp) +/* 0E2608 7F0ADAD8 AFB60050 */ sw $s6, 0x50($sp) +/* 0E260C 7F0ADADC AFB5004C */ sw $s5, 0x4c($sp) +/* 0E2610 7F0ADAE0 AFB40048 */ sw $s4, 0x48($sp) +/* 0E2614 7F0ADAE4 AFB30044 */ sw $s3, 0x44($sp) +/* 0E2618 7F0ADAE8 AFB20040 */ sw $s2, 0x40($sp) +/* 0E261C 7F0ADAEC AFB1003C */ sw $s1, 0x3c($sp) +/* 0E2620 7F0ADAF0 AFB00038 */ sw $s0, 0x38($sp) +/* 0E2624 7F0ADAF4 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E2628 7F0ADAF8 8CCF0000 */ lw $t7, ($a2) +/* 0E262C 7F0ADAFC 8CB40000 */ lw $s4, ($a1) +/* 0E2630 7F0ADB00 00E08025 */ move $s0, $a3 +/* 0E2634 7F0ADB04 00A08825 */ move $s1, $a1 +/* 0E2638 7F0ADB08 00C09025 */ move $s2, $a2 +/* 0E263C 7F0ADB0C 00809825 */ move $s3, $a0 +/* 0E2640 7F0ADB10 24150048 */ li $s5, 72 +/* 0E2644 7F0ADB14 17000006 */ bnez $t8, .L7F0ADB30 +/* 0E2648 7F0ADB18 AFAF00A0 */ sw $t7, 0xa0($sp) +/* 0E264C 7F0ADB1C 8FB900B8 */ lw $t9, 0xb8($sp) +/* 0E2650 7F0ADB20 8F28088C */ lw $t0, 0x88c($t9) +/* 0E2654 7F0ADB24 8F290890 */ lw $t1, 0x890($t9) +/* 0E2658 7F0ADB28 01095021 */ addu $t2, $t0, $t1 +/* 0E265C 7F0ADB2C AFAA00D0 */ sw $t2, 0xd0($sp) +.L7F0ADB30: +/* 0E2660 7F0ADB30 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E2664 7F0ADB34 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E2668 7F0ADB38 8FAC00D0 */ lw $t4, 0xd0($sp) +/* 0E266C 7F0ADB3C 02602025 */ move $a0, $s3 +/* 0E2670 7F0ADB40 11600004 */ beqz $t3, .L7F0ADB54 +/* 0E2674 7F0ADB44 2981000E */ slti $at, $t4, 0xe +/* 0E2678 7F0ADB48 10200002 */ beqz $at, .L7F0ADB54 +/* 0E267C 7F0ADB4C 240D000E */ li $t5, 14 +/* 0E2680 7F0ADB50 AFAD00D0 */ sw $t5, 0xd0($sp) +.L7F0ADB54: +/* 0E2684 7F0ADB54 8FA300C0 */ lw $v1, 0xc0($sp) +/* 0E2688 7F0ADB58 3C0EFA00 */ lui $t6, 0xfa00 +/* 0E268C 7F0ADB5C AC8E0000 */ sw $t6, ($a0) +/* 0E2690 7F0ADB60 0003CE02 */ srl $t9, $v1, 0x18 +/* 0E2694 7F0ADB64 00035402 */ srl $t2, $v1, 0x10 +/* 0E2698 7F0ADB68 314B00FF */ andi $t3, $t2, 0xff +/* 0E269C 7F0ADB6C 00194600 */ sll $t0, $t9, 0x18 +/* 0E26A0 7F0ADB70 00037A02 */ srl $t7, $v1, 8 +/* 0E26A4 7F0ADB74 31F800FF */ andi $t8, $t7, 0xff +/* 0E26A8 7F0ADB78 000B6400 */ sll $t4, $t3, 0x10 +/* 0E26AC 7F0ADB7C 010C6825 */ or $t5, $t0, $t4 +/* 0E26B0 7F0ADB80 0018CA00 */ sll $t9, $t8, 8 +/* 0E26B4 7F0ADB84 01B94825 */ or $t1, $t5, $t9 +/* 0E26B8 7F0ADB88 306B00FF */ andi $t3, $v1, 0xff +/* 0E26BC 7F0ADB8C 012B4025 */ or $t0, $t1, $t3 +/* 0E26C0 7F0ADB90 AC880004 */ sw $t0, 4($a0) +/* 0E26C4 7F0ADB94 92020000 */ lbu $v0, ($s0) +/* 0E26C8 7F0ADB98 26730008 */ addiu $s3, $s3, 8 +/* 0E26CC 7F0ADB9C 8FB700BC */ lw $s7, 0xbc($sp) +/* 0E26D0 7F0ADBA0 10400075 */ beqz $v0, .L7F0ADD78 +/* 0E26D4 7F0ADBA4 8FBE00C4 */ lw $fp, 0xc4($sp) +/* 0E26D8 7F0ADBA8 27B6006C */ addiu $s6, $sp, 0x6c +/* 0E26DC 7F0ADBAC 24010020 */ li $at, 32 +.L7F0ADBB0: +/* 0E26E0 7F0ADBB0 54410008 */ bnel $v0, $at, .L7F0ADBD4 +/* 0E26E4 7F0ADBB4 2401000A */ li $at, 10 +/* 0E26E8 7F0ADBB8 8E2C0000 */ lw $t4, ($s1) +/* 0E26EC 7F0ADBBC 24150048 */ li $s5, 72 +/* 0E26F0 7F0ADBC0 26100001 */ addiu $s0, $s0, 1 +/* 0E26F4 7F0ADBC4 258E0005 */ addiu $t6, $t4, 5 +/* 0E26F8 7F0ADBC8 10000068 */ b .L7F0ADD6C +/* 0E26FC 7F0ADBCC AE2E0000 */ sw $t6, ($s1) +/* 0E2700 7F0ADBD0 2401000A */ li $at, 10 +.L7F0ADBD4: +/* 0E2704 7F0ADBD4 54410014 */ bnel $v0, $at, .L7F0ADC28 +/* 0E2708 7F0ADBD8 28410080 */ slti $at, $v0, 0x80 +/* 0E270C 7F0ADBDC 3C028004 */ lui $v0, %hi(overlap_correction) +/* 0E2710 7F0ADBE0 8C420E90 */ lw $v0, %lo(overlap_correction)($v0) +/* 0E2714 7F0ADBE4 24150048 */ li $s5, 72 +/* 0E2718 7F0ADBE8 8FAA00D0 */ lw $t2, 0xd0($sp) +/* 0E271C 7F0ADBEC 04400008 */ bltz $v0, .L7F0ADC10 +/* 0E2720 7F0ADBF0 26100001 */ addiu $s0, $s0, 1 +/* 0E2724 7F0ADBF4 8E2F0000 */ lw $t7, ($s1) +/* 0E2728 7F0ADBF8 568F0006 */ bnel $s4, $t7, .L7F0ADC14 +/* 0E272C 7F0ADBFC 8E590000 */ lw $t9, ($s2) +/* 0E2730 7F0ADC00 8E580000 */ lw $t8, ($s2) +/* 0E2734 7F0ADC04 03026821 */ addu $t5, $t8, $v0 +/* 0E2738 7F0ADC08 10000004 */ b .L7F0ADC1C +/* 0E273C 7F0ADC0C AE4D0000 */ sw $t5, ($s2) +.L7F0ADC10: +/* 0E2740 7F0ADC10 8E590000 */ lw $t9, ($s2) +.L7F0ADC14: +/* 0E2744 7F0ADC14 032A4821 */ addu $t1, $t9, $t2 +/* 0E2748 7F0ADC18 AE490000 */ sw $t1, ($s2) +.L7F0ADC1C: +/* 0E274C 7F0ADC1C 10000053 */ b .L7F0ADD6C +/* 0E2750 7F0ADC20 AE340000 */ sw $s4, ($s1) +/* 0E2754 7F0ADC24 28410080 */ slti $at, $v0, 0x80 +.L7F0ADC28: +/* 0E2758 7F0ADC28 1020001D */ beqz $at, .L7F0ADCA0 +/* 0E275C 7F0ADC2C 3C0E8004 */ lui $t6, %hi(D_80040EFC) +/* 0E2760 7F0ADC30 24030018 */ li $v1, 24 +/* 0E2764 7F0ADC34 00430019 */ multu $v0, $v1 +/* 0E2768 7F0ADC38 8FA800B8 */ lw $t0, 0xb8($sp) +/* 0E276C 7F0ADC3C 8FB800A0 */ lw $t8, 0xa0($sp) +/* 0E2770 7F0ADC40 8FAD00C8 */ lw $t5, 0xc8($sp) +/* 0E2774 7F0ADC44 8FB900CC */ lw $t9, 0xcc($sp) +/* 0E2778 7F0ADC48 02602025 */ move $a0, $s3 +/* 0E277C 7F0ADC4C 02202825 */ move $a1, $s1 +/* 0E2780 7F0ADC50 02403025 */ move $a2, $s2 +/* 0E2784 7F0ADC54 AFB70014 */ sw $s7, 0x14($sp) +/* 0E2788 7F0ADC58 AFB40018 */ sw $s4, 0x18($sp) +/* 0E278C 7F0ADC5C 00005812 */ mflo $t3 +/* 0E2790 7F0ADC60 01683821 */ addu $a3, $t3, $t0 +/* 0E2794 7F0ADC64 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E2798 7F0ADC68 02A30019 */ multu $s5, $v1 +/* 0E279C 7F0ADC6C AFBE0020 */ sw $fp, 0x20($sp) +/* 0E27A0 7F0ADC70 AFB8001C */ sw $t8, 0x1c($sp) +/* 0E27A4 7F0ADC74 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E27A8 7F0ADC78 AFB90028 */ sw $t9, 0x28($sp) +/* 0E27AC 7F0ADC7C 00006012 */ mflo $t4 +/* 0E27B0 7F0ADC80 01887021 */ addu $t6, $t4, $t0 +/* 0E27B4 7F0ADC84 25CFFCE8 */ addiu $t7, $t6, -0x318 +/* 0E27B8 7F0ADC88 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E27BC 7F0ADC8C AFAF0010 */ sw $t7, 0x10($sp) +/* 0E27C0 7F0ADC90 00409825 */ move $s3, $v0 +/* 0E27C4 7F0ADC94 92150000 */ lbu $s5, ($s0) +/* 0E27C8 7F0ADC98 10000034 */ b .L7F0ADD6C +/* 0E27CC 7F0ADC9C 26100001 */ addiu $s0, $s0, 1 +.L7F0ADCA0: +/* 0E27D0 7F0ADCA0 25CE0EFC */ addiu $t6, $t6, %lo(D_80040EFC) +/* 0E27D4 7F0ADCA4 8DC10000 */ lw $at, ($t6) +/* 0E27D8 7F0ADCA8 920A0001 */ lbu $t2, 1($s0) +/* 0E27DC 7F0ADCAC 304B007F */ andi $t3, $v0, 0x7f +/* 0E27E0 7F0ADCB0 AEC10000 */ sw $at, ($s6) +/* 0E27E4 7F0ADCB4 8DD80004 */ lw $t8, 4($t6) +/* 0E27E8 7F0ADCB8 000B61C0 */ sll $t4, $t3, 7 +/* 0E27EC 7F0ADCBC 3149007F */ andi $t1, $t2, 0x7f +/* 0E27F0 7F0ADCC0 AED80004 */ sw $t8, 4($s6) +/* 0E27F4 7F0ADCC4 8DC10008 */ lw $at, 8($t6) +/* 0E27F8 7F0ADCC8 012C1825 */ or $v1, $t1, $t4 +/* 0E27FC 7F0ADCCC 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E2800 7F0ADCD0 AEC10008 */ sw $at, 8($s6) +/* 0E2804 7F0ADCD4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E2808 7F0ADCD8 308D2000 */ andi $t5, $a0, 0x2000 +/* 0E280C 7F0ADCDC 308B1FFF */ andi $t3, $a0, 0x1fff +/* 0E2810 7F0ADCE0 AED8000C */ sw $t8, 0xc($s6) +/* 0E2814 7F0ADCE4 8DC10010 */ lw $at, 0x10($t6) +/* 0E2818 7F0ADCE8 2419000F */ li $t9, 15 +/* 0E281C 7F0ADCEC 240A0010 */ li $t2, 16 +/* 0E2820 7F0ADCF0 AEC10010 */ sw $at, 0x10($s6) +/* 0E2824 7F0ADCF4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E2828 7F0ADCF8 296103C7 */ slti $at, $t3, 0x3c7 +/* 0E282C 7F0ADCFC 11A00003 */ beqz $t5, .L7F0ADD0C +/* 0E2830 7F0ADD00 AED80014 */ sw $t8, 0x14($s6) +/* 0E2834 7F0ADD04 AFB90078 */ sw $t9, 0x78($sp) +/* 0E2838 7F0ADD08 AFAA0074 */ sw $t2, 0x74($sp) +.L7F0ADD0C: +/* 0E283C 7F0ADD0C 54200003 */ bnezl $at, .L7F0ADD1C +/* 0E2840 7F0ADD10 24890080 */ addiu $t1, $a0, 0x80 +/* 0E2844 7F0ADD14 24040002 */ li $a0, 2 +/* 0E2848 7F0ADD18 24890080 */ addiu $t1, $a0, 0x80 +.L7F0ADD1C: +/* 0E284C 7F0ADD1C 0FC3068C */ jal something_with_LnameX +/* 0E2850 7F0ADD20 AFA9006C */ sw $t1, 0x6c($sp) +/* 0E2854 7F0ADD24 8FAC00A0 */ lw $t4, 0xa0($sp) +/* 0E2858 7F0ADD28 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0E285C 7F0ADD2C 8FAF00CC */ lw $t7, 0xcc($sp) +/* 0E2860 7F0ADD30 AFA20080 */ sw $v0, 0x80($sp) +/* 0E2864 7F0ADD34 02602025 */ move $a0, $s3 +/* 0E2868 7F0ADD38 02202825 */ move $a1, $s1 +/* 0E286C 7F0ADD3C 02403025 */ move $a2, $s2 +/* 0E2870 7F0ADD40 02C03825 */ move $a3, $s6 +/* 0E2874 7F0ADD44 AFB60010 */ sw $s6, 0x10($sp) +/* 0E2878 7F0ADD48 AFB70014 */ sw $s7, 0x14($sp) +/* 0E287C 7F0ADD4C AFB40018 */ sw $s4, 0x18($sp) +/* 0E2880 7F0ADD50 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E2884 7F0ADD54 AFAC001C */ sw $t4, 0x1c($sp) +/* 0E2888 7F0ADD58 AFA80024 */ sw $t0, 0x24($sp) +/* 0E288C 7F0ADD5C 0FC2B43E */ jal sub_GAME_7F0AD0F8 +/* 0E2890 7F0ADD60 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E2894 7F0ADD64 00409825 */ move $s3, $v0 +/* 0E2898 7F0ADD68 26100002 */ addiu $s0, $s0, 2 +.L7F0ADD6C: +/* 0E289C 7F0ADD6C 92020000 */ lbu $v0, ($s0) +/* 0E28A0 7F0ADD70 5440FF8F */ bnezl $v0, .L7F0ADBB0 +/* 0E28A4 7F0ADD74 24010020 */ li $at, 32 +.L7F0ADD78: +/* 0E28A8 7F0ADD78 8FBF005C */ lw $ra, 0x5c($sp) +/* 0E28AC 7F0ADD7C 02601025 */ move $v0, $s3 +/* 0E28B0 7F0ADD80 8FB30044 */ lw $s3, 0x44($sp) +/* 0E28B4 7F0ADD84 8FB00038 */ lw $s0, 0x38($sp) +/* 0E28B8 7F0ADD88 8FB1003C */ lw $s1, 0x3c($sp) +/* 0E28BC 7F0ADD8C 8FB20040 */ lw $s2, 0x40($sp) +/* 0E28C0 7F0ADD90 8FB40048 */ lw $s4, 0x48($sp) +/* 0E28C4 7F0ADD94 8FB5004C */ lw $s5, 0x4c($sp) +/* 0E28C8 7F0ADD98 8FB60050 */ lw $s6, 0x50($sp) +/* 0E28CC 7F0ADD9C 8FB70054 */ lw $s7, 0x54($sp) +/* 0E28D0 7F0ADDA0 8FBE0058 */ lw $fp, 0x58($sp) +/* 0E28D4 7F0ADDA4 03E00008 */ jr $ra +/* 0E28D8 7F0ADDA8 27BD00A8 */ addiu $sp, $sp, 0xa8 +) +#endif + #endif @@ -1779,14 +1830,14 @@ glabel sub_GAME_7F0ADDAC /* 0E2974 7F0ADE44 8CAE0000 */ lw $t6, ($a1) /* 0E2978 7F0ADE48 59C00173 */ blezl $t6, .L7F0AE418 /* 0E297C 7F0ADE4C 8FA50064 */ lw $a1, 0x64($sp) -/* 0E2980 7F0ADE50 0C001107 */ jal get_video2_settings_txtClipW +/* 0E2980 7F0ADE50 0C001107 */ jal viGetX /* 0E2984 7F0ADE54 AFA50064 */ sw $a1, 0x64($sp) /* 0E2988 7F0ADE58 8FAD0064 */ lw $t5, 0x64($sp) /* 0E298C 7F0ADE5C 8DAF0000 */ lw $t7, ($t5) /* 0E2990 7F0ADE60 004F082A */ slt $at, $v0, $t7 /* 0E2994 7F0ADE64 5420016C */ bnezl $at, .L7F0AE418 /* 0E2998 7F0ADE68 8FA50064 */ lw $a1, 0x64($sp) -/* 0E299C 7F0ADE6C 0C00110B */ jal get_video2_settings_txtClipH +/* 0E299C 7F0ADE6C 0C00110B */ jal viGetY /* 0E29A0 7F0ADE70 00000000 */ nop /* 0E29A4 7F0ADE74 8FB80050 */ lw $t8, 0x50($sp) /* 0E29A8 7F0ADE78 8FC90004 */ lw $t1, 4($fp) @@ -2750,6 +2801,192 @@ glabel jp_text_write_stuff /* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 ) #endif + +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel jp_text_write_stuff +/* 0E321C 7F0AE6EC 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 0E3220 7F0AE6F0 240E0001 */ li $t6, 1 +/* 0E3224 7F0AE6F4 3C018004 */ lui $at, %hi(D_80040EA8) +/* 0E3228 7F0AE6F8 8FB800C4 */ lw $t8, 0xc4($sp) +/* 0E322C 7F0AE6FC AFBF0064 */ sw $ra, 0x64($sp) +/* 0E3230 7F0AE700 AFBE0060 */ sw $fp, 0x60($sp) +/* 0E3234 7F0AE704 AFB7005C */ sw $s7, 0x5c($sp) +/* 0E3238 7F0AE708 AFB60058 */ sw $s6, 0x58($sp) +/* 0E323C 7F0AE70C AFB50054 */ sw $s5, 0x54($sp) +/* 0E3240 7F0AE710 AFB40050 */ sw $s4, 0x50($sp) +/* 0E3244 7F0AE714 AFB3004C */ sw $s3, 0x4c($sp) +/* 0E3248 7F0AE718 AFB20048 */ sw $s2, 0x48($sp) +/* 0E324C 7F0AE71C AFB10044 */ sw $s1, 0x44($sp) +/* 0E3250 7F0AE720 AFB00040 */ sw $s0, 0x40($sp) +/* 0E3254 7F0AE724 AC2E0EA8 */ sw $t6, %lo(D_80040EA8)($at) +/* 0E3258 7F0AE728 8CCF0000 */ lw $t7, ($a2) +/* 0E325C 7F0AE72C 8CB60000 */ lw $s6, ($a1) +/* 0E3260 7F0AE730 00E08025 */ move $s0, $a3 +/* 0E3264 7F0AE734 00A08825 */ move $s1, $a1 +/* 0E3268 7F0AE738 00C09825 */ move $s3, $a2 +/* 0E326C 7F0AE73C 0080A825 */ move $s5, $a0 +/* 0E3270 7F0AE740 24140048 */ li $s4, 72 +/* 0E3274 7F0AE744 17000006 */ bnez $t8, .L7F0AE760 +/* 0E3278 7F0AE748 AFAF0090 */ sw $t7, 0x90($sp) +/* 0E327C 7F0AE74C 8FB900A8 */ lw $t9, 0xa8($sp) +/* 0E3280 7F0AE750 8F28088C */ lw $t0, 0x88c($t9) +/* 0E3284 7F0AE754 8F290890 */ lw $t1, 0x890($t9) +/* 0E3288 7F0AE758 01095021 */ addu $t2, $t0, $t1 +/* 0E328C 7F0AE75C AFAA00C4 */ sw $t2, 0xc4($sp) +.L7F0AE760: +/* 0E3290 7F0AE760 3C0B8005 */ lui $t3, %hi(j_text_trigger) +/* 0E3294 7F0AE764 8D6B84D0 */ lw $t3, %lo(j_text_trigger)($t3) +/* 0E3298 7F0AE768 8FAC00C4 */ lw $t4, 0xc4($sp) +/* 0E329C 7F0AE76C 27B20074 */ addiu $s2, $sp, 0x74 +/* 0E32A0 7F0AE770 11600004 */ beqz $t3, .L7F0AE784 +/* 0E32A4 7F0AE774 2981000E */ slti $at, $t4, 0xe +/* 0E32A8 7F0AE778 10200002 */ beqz $at, .L7F0AE784 +/* 0E32AC 7F0AE77C 240D000E */ li $t5, 14 +/* 0E32B0 7F0AE780 AFAD00C4 */ sw $t5, 0xc4($sp) +.L7F0AE784: +/* 0E32B4 7F0AE784 92020000 */ lbu $v0, ($s0) +/* 0E32B8 7F0AE788 8FBE00B0 */ lw $fp, 0xb0($sp) +/* 0E32BC 7F0AE78C 8FB700AC */ lw $s7, 0xac($sp) +/* 0E32C0 7F0AE790 10400071 */ beqz $v0, .L7F0AE958 +/* 0E32C4 7F0AE794 24010020 */ li $at, 32 +.L7F0AE798: +/* 0E32C8 7F0AE798 54410008 */ bnel $v0, $at, .L7F0AE7BC +/* 0E32CC 7F0AE79C 2401000A */ li $at, 10 +/* 0E32D0 7F0AE7A0 8E2E0000 */ lw $t6, ($s1) +/* 0E32D4 7F0AE7A4 24140048 */ li $s4, 72 +/* 0E32D8 7F0AE7A8 26100001 */ addiu $s0, $s0, 1 +/* 0E32DC 7F0AE7AC 25CF0005 */ addiu $t7, $t6, 5 +/* 0E32E0 7F0AE7B0 10000066 */ b .L7F0AE94C +/* 0E32E4 7F0AE7B4 AE2F0000 */ sw $t7, ($s1) +/* 0E32E8 7F0AE7B8 2401000A */ li $at, 10 +.L7F0AE7BC: +/* 0E32EC 7F0AE7BC 5441000A */ bnel $v0, $at, .L7F0AE7E8 +/* 0E32F0 7F0AE7C0 28410080 */ slti $at, $v0, 0x80 +/* 0E32F4 7F0AE7C4 AE360000 */ sw $s6, ($s1) +/* 0E32F8 7F0AE7C8 8E780000 */ lw $t8, ($s3) +/* 0E32FC 7F0AE7CC 8FB900C4 */ lw $t9, 0xc4($sp) +/* 0E3300 7F0AE7D0 24140048 */ li $s4, 72 +/* 0E3304 7F0AE7D4 26100001 */ addiu $s0, $s0, 1 +/* 0E3308 7F0AE7D8 03194021 */ addu $t0, $t8, $t9 +/* 0E330C 7F0AE7DC 1000005B */ b .L7F0AE94C +/* 0E3310 7F0AE7E0 AE680000 */ sw $t0, ($s3) +/* 0E3314 7F0AE7E4 28410080 */ slti $at, $v0, 0x80 +.L7F0AE7E8: +/* 0E3318 7F0AE7E8 10200021 */ beqz $at, .L7F0AE870 +/* 0E331C 7F0AE7EC 3C0E8004 */ lui $t6, %hi(D_80040F14) +/* 0E3320 7F0AE7F0 24030018 */ li $v1, 24 +/* 0E3324 7F0AE7F4 00430019 */ multu $v0, $v1 +/* 0E3328 7F0AE7F8 8FAA00A8 */ lw $t2, 0xa8($sp) +/* 0E332C 7F0AE7FC 8FAE0090 */ lw $t6, 0x90($sp) +/* 0E3330 7F0AE800 8FAF00B4 */ lw $t7, 0xb4($sp) +/* 0E3334 7F0AE804 8FB800B8 */ lw $t8, 0xb8($sp) +/* 0E3338 7F0AE808 8FB900BC */ lw $t9, 0xbc($sp) +/* 0E333C 7F0AE80C 8FA800C0 */ lw $t0, 0xc0($sp) +/* 0E3340 7F0AE810 02A02025 */ move $a0, $s5 +/* 0E3344 7F0AE814 02202825 */ move $a1, $s1 +/* 0E3348 7F0AE818 02603025 */ move $a2, $s3 +/* 0E334C 7F0AE81C 00004812 */ mflo $t1 +/* 0E3350 7F0AE820 012A3821 */ addu $a3, $t1, $t2 +/* 0E3354 7F0AE824 24E7FCE8 */ addiu $a3, $a3, -0x318 +/* 0E3358 7F0AE828 02830019 */ multu $s4, $v1 +/* 0E335C 7F0AE82C AFB70014 */ sw $s7, 0x14($sp) +/* 0E3360 7F0AE830 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3364 7F0AE834 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E3368 7F0AE838 AFAE001C */ sw $t6, 0x1c($sp) +/* 0E336C 7F0AE83C AFAF0024 */ sw $t7, 0x24($sp) +/* 0E3370 7F0AE840 AFB80028 */ sw $t8, 0x28($sp) +/* 0E3374 7F0AE844 AFB9002C */ sw $t9, 0x2c($sp) +/* 0E3378 7F0AE848 AFA80030 */ sw $t0, 0x30($sp) +/* 0E337C 7F0AE84C 00005812 */ mflo $t3 +/* 0E3380 7F0AE850 016A6021 */ addu $t4, $t3, $t2 +/* 0E3384 7F0AE854 258DFCE8 */ addiu $t5, $t4, -0x318 +/* 0E3388 7F0AE858 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E338C 7F0AE85C AFAD0010 */ sw $t5, 0x10($sp) +/* 0E3390 7F0AE860 0040A825 */ move $s5, $v0 +/* 0E3394 7F0AE864 92140000 */ lbu $s4, ($s0) +/* 0E3398 7F0AE868 10000038 */ b .L7F0AE94C +/* 0E339C 7F0AE86C 26100001 */ addiu $s0, $s0, 1 +.L7F0AE870: +/* 0E33A0 7F0AE870 25CE0F14 */ addiu $t6, $t6, %lo(D_80040F14) +/* 0E33A4 7F0AE874 8DC10000 */ lw $at, ($t6) +/* 0E33A8 7F0AE878 92090001 */ lbu $t1, 1($s0) +/* 0E33AC 7F0AE87C 304A007F */ andi $t2, $v0, 0x7f +/* 0E33B0 7F0AE880 AE410000 */ sw $at, ($s2) +/* 0E33B4 7F0AE884 8DD80004 */ lw $t8, 4($t6) +/* 0E33B8 7F0AE888 000A61C0 */ sll $t4, $t2, 7 +/* 0E33BC 7F0AE88C 312B007F */ andi $t3, $t1, 0x7f +/* 0E33C0 7F0AE890 AE580004 */ sw $t8, 4($s2) +/* 0E33C4 7F0AE894 8DC10008 */ lw $at, 8($t6) +/* 0E33C8 7F0AE898 016C1825 */ or $v1, $t3, $t4 +/* 0E33CC 7F0AE89C 3064FFFF */ andi $a0, $v1, 0xffff +/* 0E33D0 7F0AE8A0 AE410008 */ sw $at, 8($s2) +/* 0E33D4 7F0AE8A4 8DD8000C */ lw $t8, 0xc($t6) +/* 0E33D8 7F0AE8A8 30992000 */ andi $t9, $a0, 0x2000 +/* 0E33DC 7F0AE8AC 308A1FFF */ andi $t2, $a0, 0x1fff +/* 0E33E0 7F0AE8B0 AE58000C */ sw $t8, 0xc($s2) +/* 0E33E4 7F0AE8B4 8DC10010 */ lw $at, 0x10($t6) +/* 0E33E8 7F0AE8B8 2408000F */ li $t0, 15 +/* 0E33EC 7F0AE8BC 24090010 */ li $t1, 16 +/* 0E33F0 7F0AE8C0 AE410010 */ sw $at, 0x10($s2) +/* 0E33F4 7F0AE8C4 8DD80014 */ lw $t8, 0x14($t6) +/* 0E33F8 7F0AE8C8 294103C7 */ slti $at, $t2, 0x3c7 +/* 0E33FC 7F0AE8CC 13200003 */ beqz $t9, .L7F0AE8DC +/* 0E3400 7F0AE8D0 AE580014 */ sw $t8, 0x14($s2) +/* 0E3404 7F0AE8D4 AFA80080 */ sw $t0, 0x80($sp) +/* 0E3408 7F0AE8D8 AFA9007C */ sw $t1, 0x7c($sp) +.L7F0AE8DC: +/* 0E340C 7F0AE8DC 54200003 */ bnezl $at, .L7F0AE8EC +/* 0E3410 7F0AE8E0 248B0080 */ addiu $t3, $a0, 0x80 +/* 0E3414 7F0AE8E4 24040002 */ li $a0, 2 +/* 0E3418 7F0AE8E8 248B0080 */ addiu $t3, $a0, 0x80 +.L7F0AE8EC: +/* 0E341C 7F0AE8EC 0FC3068C */ jal something_with_LnameX +/* 0E3420 7F0AE8F0 AFAB0074 */ sw $t3, 0x74($sp) +/* 0E3424 7F0AE8F4 8FAC0090 */ lw $t4, 0x90($sp) +/* 0E3428 7F0AE8F8 8FAD00B4 */ lw $t5, 0xb4($sp) +/* 0E342C 7F0AE8FC 8FAF00B8 */ lw $t7, 0xb8($sp) +/* 0E3430 7F0AE900 8FAE00BC */ lw $t6, 0xbc($sp) +/* 0E3434 7F0AE904 8FB800C0 */ lw $t8, 0xc0($sp) +/* 0E3438 7F0AE908 AFA20088 */ sw $v0, 0x88($sp) +/* 0E343C 7F0AE90C 02A02025 */ move $a0, $s5 +/* 0E3440 7F0AE910 02202825 */ move $a1, $s1 +/* 0E3444 7F0AE914 02603025 */ move $a2, $s3 +/* 0E3448 7F0AE918 02403825 */ move $a3, $s2 +/* 0E344C 7F0AE91C AFB20010 */ sw $s2, 0x10($sp) +/* 0E3450 7F0AE920 AFB70014 */ sw $s7, 0x14($sp) +/* 0E3454 7F0AE924 AFB60018 */ sw $s6, 0x18($sp) +/* 0E3458 7F0AE928 AFBE0020 */ sw $fp, 0x20($sp) +/* 0E345C 7F0AE92C AFAC001C */ sw $t4, 0x1c($sp) +/* 0E3460 7F0AE930 AFAD0024 */ sw $t5, 0x24($sp) +/* 0E3464 7F0AE934 AFAF0028 */ sw $t7, 0x28($sp) +/* 0E3468 7F0AE938 AFAE002C */ sw $t6, 0x2c($sp) +/* 0E346C 7F0AE93C 0FC2B76B */ jal sub_GAME_7F0ADDAC +/* 0E3470 7F0AE940 AFB80030 */ sw $t8, 0x30($sp) +/* 0E3474 7F0AE944 0040A825 */ move $s5, $v0 +/* 0E3478 7F0AE948 26100002 */ addiu $s0, $s0, 2 +.L7F0AE94C: +/* 0E347C 7F0AE94C 92020000 */ lbu $v0, ($s0) +/* 0E3480 7F0AE950 5440FF91 */ bnezl $v0, .L7F0AE798 +/* 0E3484 7F0AE954 24010020 */ li $at, 32 +.L7F0AE958: +/* 0E3488 7F0AE958 8FBF0064 */ lw $ra, 0x64($sp) +/* 0E348C 7F0AE95C 02A01025 */ move $v0, $s5 +/* 0E3490 7F0AE960 8FB50054 */ lw $s5, 0x54($sp) +/* 0E3494 7F0AE964 8FB00040 */ lw $s0, 0x40($sp) +/* 0E3498 7F0AE968 8FB10044 */ lw $s1, 0x44($sp) +/* 0E349C 7F0AE96C 8FB20048 */ lw $s2, 0x48($sp) +/* 0E34A0 7F0AE970 8FB3004C */ lw $s3, 0x4c($sp) +/* 0E34A4 7F0AE974 8FB40050 */ lw $s4, 0x50($sp) +/* 0E34A8 7F0AE978 8FB60058 */ lw $s6, 0x58($sp) +/* 0E34AC 7F0AE97C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0E34B0 7F0AE980 8FBE0060 */ lw $fp, 0x60($sp) +/* 0E34B4 7F0AE984 03E00008 */ jr $ra +/* 0E34B8 7F0AE988 27BD0098 */ addiu $sp, $sp, 0x98 +) +#endif + #endif diff --git a/src/game/unk_007800.c b/src/game/unk_007800.c index 32c318f..dfd8aa5 100644 --- a/src/game/unk_007800.c +++ b/src/game/unk_007800.c @@ -1,79 +1,41 @@ #include "ultra64.h" - - +#include "game/unk_09C250.h" +#include "video.h" #ifdef NONMATCHING -void cleanupExplosions(void) { - ? temp_ret; - void *temp_t8; - s32 temp_s0; - void *temp_t7; - s32 temp_s0_2; - s32 phi_s0; - s32 phi_s0_2; - ? phi_return; - ? phi_return_2; - ? phi_return_3; - ? phi_return_4; - - // Node 0 +//come back once prop for explosions and smoke is merged from AIListLogic branch +//code should match already +// +void cleanupExplosions(void) +{ + s32 i; + D_80040170 = 0; - temp_ret = video_related_9(0); - phi_s0 = 0; - phi_return_3 = temp_ret; - phi_return_4 = temp_ret; - if (ptr_explosion_buf != 0) - { -loop_1: - // Node 1 - temp_t8 = (ptr_explosion_buf + phi_s0); - if (*temp_t8 != 0) + viSet800232B4(0.0); + if (ptr_explosion_buf) { + for (i = 0; i<0x1fe0; i++) { - // Node 2 - sub_GAME_7F03A538(*temp_t8); - unset_stateflag_0x04_for_posdata(*(ptr_explosion_buf + phi_s0)); - *(ptr_explosion_buf + phi_s0) = 0; - phi_return_4 = set_last_obj_pos_data(*(ptr_explosion_buf + phi_s0)); - } - // Node 3 - temp_s0 = (phi_s0 + 0x3e0); - phi_s0 = temp_s0; - phi_return_3 = phi_return_4; - phi_return_4 = phi_return_4; - if (temp_s0 != 0x1740) - { - goto loop_1; + if (ptr_explosion_buf) { + sub_GAME_7F03A538(ptr_explosion_buf[i].prop); + propHide(ptr_explosion_buf[i].prop); + propFree(ptr_explosion_buf[i].prop); + ptr_explosion_buf[i].prop = 0; + } } } - // Node 4 - phi_s0_2 = 0; - phi_return = phi_return_3; - phi_return_2 = phi_return_3; - if (ptr_smoke_buf != 0) - { -loop_5: - // Node 5 - temp_t7 = (ptr_smoke_buf + phi_s0_2); - if (*temp_t7 != 0) + + + if (ptr_smoke_buf) { + for (i = 0; i<0x1fe0; i++) { - // Node 6 - sub_GAME_7F03A538(*temp_t7); - unset_stateflag_0x04_for_posdata(*(ptr_smoke_buf + phi_s0_2)); - *(ptr_smoke_buf + phi_s0_2) = 0; - phi_return_2 = set_last_obj_pos_data(*(ptr_smoke_buf + phi_s0_2)); - } - // Node 7 - temp_s0_2 = (phi_s0_2 + 0x198); - phi_s0_2 = temp_s0_2; - phi_return = phi_return_2; - phi_return_2 = phi_return_2; - if (temp_s0_2 != 0x1fe0) - { - goto loop_5; + if (ptr_smoke_buf) { + sub_GAME_7F03A538(ptr_smoke_buf[i].prop); + propHide(ptr_smoke_buf[i].prop); + propFree(ptr_smoke_buf[i].prop); + ptr_smoke_buf[i].prop = 0; + } } } - // Node 8 - return phi_return; } #else GLOBAL_ASM( @@ -86,7 +48,7 @@ glabel cleanupExplosions /* 03C340 7F007810 AFB20020 */ sw $s2, 0x20($sp) /* 03C344 7F007814 AFB1001C */ sw $s1, 0x1c($sp) /* 03C348 7F007818 AFB00018 */ sw $s0, 0x18($sp) -/* 03C34C 7F00781C 0C000EC1 */ jal video_related_9 +/* 03C34C 7F00781C 0C000EC1 */ jal viSet800232B4 /* 03C350 7F007820 AC200170 */ sw $zero, %lo(D_80040170)($at) /* 03C354 7F007824 3C118008 */ lui $s1, %hi(ptr_explosion_buf) /* 03C358 7F007828 2631A144 */ addiu $s1, %lo(ptr_explosion_buf) # addiu $s1, $s1, -0x5ebc @@ -105,11 +67,11 @@ glabel cleanupExplosions /* 03C388 7F007858 00000000 */ nop /* 03C38C 7F00785C 8E390000 */ lw $t9, ($s1) /* 03C390 7F007860 03304021 */ addu $t0, $t9, $s0 -/* 03C394 7F007864 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C394 7F007864 0FC0E905 */ jal propHide /* 03C398 7F007868 8D040000 */ lw $a0, ($t0) /* 03C39C 7F00786C 8E290000 */ lw $t1, ($s1) /* 03C3A0 7F007870 01305021 */ addu $t2, $t1, $s0 -/* 03C3A4 7F007874 0FC0E921 */ jal set_last_obj_pos_data +/* 03C3A4 7F007874 0FC0E921 */ jal propFree /* 03C3A8 7F007878 8D440000 */ lw $a0, ($t2) /* 03C3AC 7F00787C 8E2B0000 */ lw $t3, ($s1) /* 03C3B0 7F007880 01706021 */ addu $t4, $t3, $s0 @@ -136,11 +98,11 @@ glabel cleanupExplosions /* 03C3F8 7F0078C8 00000000 */ nop /* 03C3FC 7F0078CC 8E380000 */ lw $t8, ($s1) /* 03C400 7F0078D0 0310C821 */ addu $t9, $t8, $s0 -/* 03C404 7F0078D4 0FC0E905 */ jal unset_stateflag_0x04_for_posdata +/* 03C404 7F0078D4 0FC0E905 */ jal propHide /* 03C408 7F0078D8 8F240000 */ lw $a0, ($t9) /* 03C40C 7F0078DC 8E280000 */ lw $t0, ($s1) /* 03C410 7F0078E0 01104821 */ addu $t1, $t0, $s0 -/* 03C414 7F0078E4 0FC0E921 */ jal set_last_obj_pos_data +/* 03C414 7F0078E4 0FC0E921 */ jal propFree /* 03C418 7F0078E8 8D240000 */ lw $a0, ($t1) /* 03C41C 7F0078EC 8E2A0000 */ lw $t2, ($s1) /* 03C420 7F0078F0 01505821 */ addu $t3, $t2, $s0 diff --git a/src/game/unk_08DBB0.c b/src/game/unk_08DBB0.c index a20d024..e7a0fcc 100644 --- a/src/game/unk_08DBB0.c +++ b/src/game/unk_08DBB0.c @@ -65,22 +65,22 @@ void currentPlayerToggle5BC() { pPlayer->field_5BC = !pPlayer->field_5BC; } -u32 get_random_value(); +u32 randomGetNext(); #define U32_MAX 4294967295 void currentPlayerUpdateIdleHeadRoll() { f32 mult = 1.0f / U32_MAX; - pPlayer->standlook[pPlayer->standcnt][0] = ((f32)get_random_value() * mult - 0.5f) * 0.02f; + pPlayer->standlook[pPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f; pPlayer->standlook[pPlayer->standcnt][2] = 1; - pPlayer->standup[pPlayer->standcnt][0] = ((f32)get_random_value() * mult - 0.5f) * 0.02f; + pPlayer->standup[pPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f; pPlayer->standup[pPlayer->standcnt][1] = 1; if (pPlayer->standcnt) { - pPlayer->standlook[pPlayer->standcnt][1] = (f32)get_random_value() * mult * 0.01f; - pPlayer->standup[pPlayer->standcnt][2] = (f32)get_random_value() * mult * -0.01f; + pPlayer->standlook[pPlayer->standcnt][1] = (f32)randomGetNext() * mult * 0.01f; + pPlayer->standup[pPlayer->standcnt][2] = (f32)randomGetNext() * mult * -0.01f; } else { - pPlayer->standlook[pPlayer->standcnt][1] = (f32)get_random_value() * mult * -0.01f; - pPlayer->standup[pPlayer->standcnt][2] = (f32)get_random_value() * mult * 0.01f; + pPlayer->standlook[pPlayer->standcnt][1] = (f32)randomGetNext() * mult * -0.01f; + pPlayer->standup[pPlayer->standcnt][2] = (f32)randomGetNext() * mult * 0.01f; } pPlayer->standcnt = 1 - pPlayer->standcnt; @@ -1967,7 +1967,7 @@ glabel sub_GAME_7F08F6B0 .L7F08F6E0: /* 0C4210 7F08F6E0 AFA40020 */ sw $a0, 0x20($sp) /* 0C4214 7F08F6E4 AFA70024 */ sw $a3, 0x24($sp) -/* 0C4218 7F08F6E8 0C002914 */ jal get_random_value +/* 0C4218 7F08F6E8 0C002914 */ jal randomGetNext /* 0C421C 7F08F6EC AFA9001C */ sw $t1, 0x1c($sp) /* 0C4220 7F08F6F0 8FA9001C */ lw $t1, 0x1c($sp) /* 0C4224 7F08F6F4 8FA70024 */ lw $a3, 0x24($sp) @@ -2154,7 +2154,7 @@ glabel sub_GAME_7F08F908 /* 0C4468 7F08F938 8C4F0004 */ lw $t7, 4($v0) .L7F08F93C: /* 0C446C 7F08F93C AFA40028 */ sw $a0, 0x28($sp) -/* 0C4470 7F08F940 0C002914 */ jal get_random_value +/* 0C4470 7F08F940 0C002914 */ jal randomGetNext /* 0C4474 7F08F944 AFA90024 */ sw $t1, 0x24($sp) /* 0C4478 7F08F948 8FA90024 */ lw $t1, 0x24($sp) /* 0C447C 7F08F94C 8FAC0028 */ lw $t4, 0x28($sp) @@ -2477,7 +2477,7 @@ glabel sub_GAME_7F08FD1C /* 0C4888 7F08FD58 8C4F0010 */ lw $t7, 0x10($v0) /* 0C488C 7F08FD5C AFA300F0 */ sw $v1, 0xf0($sp) .L7F08FD60: -/* 0C4890 7F08FD60 0C002914 */ jal get_random_value +/* 0C4890 7F08FD60 0C002914 */ jal randomGetNext /* 0C4894 7F08FD64 AFA800F4 */ sw $t0, 0xf4($sp) /* 0C4898 7F08FD68 8FA300F0 */ lw $v1, 0xf0($sp) /* 0C489C 7F08FD6C 8FA800F4 */ lw $t0, 0xf4($sp) @@ -2489,7 +2489,7 @@ glabel sub_GAME_7F08FD1C /* 0C48B4 7F08FD84 0007000D */ break 7 .L7F08FD88: /* 0C48B8 7F08FD88 03284821 */ addu $t1, $t9, $t0 -/* 0C48BC 7F08FD8C 0C002914 */ jal get_random_value +/* 0C48BC 7F08FD8C 0C002914 */ jal randomGetNext /* 0C48C0 7F08FD90 AFA900E8 */ sw $t1, 0xe8($sp) /* 0C48C4 7F08FD94 8FA300F0 */ lw $v1, 0xf0($sp) /* 0C48C8 7F08FD98 8FA800F4 */ lw $t0, 0xf4($sp) diff --git a/src/game/unk_092E50.c b/src/game/unk_092E50.c index 21c87a9..de0857c 100644 --- a/src/game/unk_092E50.c +++ b/src/game/unk_092E50.c @@ -13,19 +13,37 @@ f32 flt_CODE_bss_80079E88; //Gfx MipMap2C_Something_Setup[]={}; //D:8003FCC0 u64 MipMap2C_Something_Setup[] = { - 0xF580080000018060,0xF580080001018060,0xF200200200000000,0xF200200201000000, - 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, - 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, - 0xB800000000000000 + 0xF580080000018060, //gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0, 0, 0, G_TX_WRAP, 6, 0, G_TX_WRAP, 4, 0), + 0xF580080001018060, //gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_4b, 4, 0, 1, 0, G_TX_WRAP, 6, 0, G_TX_WRAP, 4, 0), + 0xF200200200000000, //gsDPSetTileSize(0, 2, 2, 0, 0), + 0xF200200201000000, //gsDPSetTileSize(1, 2, 2, 0, 0), + 0xFA00000FFFFFFFFF, //gsDPSetPrimColor(0, 15, 255, 255, 255, 255), + 0xBA00110200000000, //gsDPSetTextureDetail(G_TD_CLAMP), + 0xBA000C0200002000, //gsDPSetTextureFilter(G_TF_BILERP), + 0xFC272C041F1093FF, //gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + 0xB900031D0C192078, //gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), + 0xBA00100100000000, //gsDPSetTextureLOD(G_TL_TILE), + 0xBA00140200100000, //gsDPSetCycleType(G_CYC_2CYCLE), + 0xB700000000002000, //gsDPSetGeometryMode(G_CULL_BACK ), + 0xB800000000000000 //gsSPEndDisplayList() }; //Gfx MipMap2C_Something2_Setup[]={}; //D:8003FD28 u64 MipMap2C_Something2_Setup[] = { - 0xF548040000014050,0xF548040001014050,0xF200200200000000,0xF200200201000000, - 0xFA00000FFFFFFFFF,0xBA00110200000000,0xBA000C0200002000,0xFC272C041F1093FF, - 0xB900031D0C192078,0xBA00100100000000,0xBA00140200100000,0xB700000000002000, - 0xB800000000000000 + 0xF548040000014050, //gsDPSetTile(G_IM_FMT_CI, G_IM_SIZ_8b, 2, 0, 0, 0, G_TX_WRAP, 5, 0, G_TX_WRAP, 2, 0), + 0xF548040001014050, //gsDPSetTile(G_IM_FMT_CI, G_IM_SIZ_8b, 2, 0, 1, 0, G_TX_WRAP, 5, 0, G_TX_WRAP, 2, 0), + 0xF200200200000000, //gsDPSetTileSize(0, 2, 2, 0, 0), + 0xF200200201000000, //gsDPSetTileSize(1, 2, 2, 0, 0), + 0xFA00000FFFFFFFFF, //gsDPSetPrimColor(0, 15, 255, 255, 255, 255), + 0xBA00110200000000, //gsDPSetTextureDetail(G_TD_CLAMP), + 0xBA000C0200002000, //gsDPSetTextureFilter(G_TF_BILERP), + 0xFC272C041F1093FF, //gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, SHADE, 0, COMBINED, 0, SHADE, 0), + 0xB900031D0C192078, //gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_OPA_SURF2), + 0xBA00100100000000, //gsDPSetTextureLOD(G_TL_TILE), + 0xBA00140200100000, //gsDPSetCycleType(G_CYC_2CYCLE), + 0xB700000000002000, //gsDPSetGeometryMode(G_CULL_BACK ), + 0xB800000000000000 //gsSPEndDisplayList(), }; //End Dl means this gfx list cannot go any further. perhaps below is a vtx array? diff --git a/src/game/unk_093880.c b/src/game/unk_093880.c index e6d3eee..f93b99f 100644 --- a/src/game/unk_093880.c +++ b/src/game/unk_093880.c @@ -1191,7 +1191,7 @@ glabel sub_GAME_7F094488 /* 0C9044 7F094514 9207000A */ lbu $a3, 0xa($s0) /* 0C9048 7F094518 92060009 */ lbu $a2, 9($s0) /* 0C904C 7F09451C 92050008 */ lbu $a1, 8($s0) -/* 0C9050 7F094520 0C0011B4 */ jal set_setfillcolor +/* 0C9050 7F094520 0C0011B4 */ jal viSetFillColor /* 0C9054 7F094524 8FA406B0 */ lw $a0, 0x6b0($sp) /* 0C9058 7F094528 244B0008 */ addiu $t3, $v0, 8 /* 0C905C 7F09452C AFAB06B0 */ sw $t3, 0x6b0($sp) @@ -1300,7 +1300,7 @@ glabel sub_GAME_7F094488 /* 0C91F4 7F0946C4 92050008 */ lbu $a1, 8($s0) .L7F0946C8: /* 0C91F8 7F0946C8 92060009 */ lbu $a2, 9($s0) -/* 0C91FC 7F0946CC 0C0011B4 */ jal set_setfillcolor +/* 0C91FC 7F0946CC 0C0011B4 */ jal viSetFillColor /* 0C9200 7F0946D0 9207000A */ lbu $a3, 0xa($s0) /* 0C9204 7F0946D4 44806000 */ mtc1 $zero, $f12 /* 0C9208 7F0946D8 27B106A4 */ addiu $s1, $sp, 0x6a4 @@ -7570,7 +7570,7 @@ void init_player_data_ptrs_construct_viewports(int playercount) players[2] = NULL; players[3] = NULL; - random_byte = get_random_value() & 0xff; + random_byte = randomGetNext() & 0xff; if (playercount < 1) { initBONDdataforPlayer(0); set_cur_player(0); @@ -7600,7 +7600,7 @@ glabel init_player_data_ptrs_construct_viewports /* 0CEED8 7F09A3A8 AC400000 */ sw $zero, ($v0) /* 0CEEDC 7F09A3AC AC400004 */ sw $zero, 4($v0) /* 0CEEE0 7F09A3B0 AC400008 */ sw $zero, 8($v0) -/* 0CEEE4 7F09A3B4 0C002914 */ jal get_random_value +/* 0CEEE4 7F09A3B4 0C002914 */ jal randomGetNext /* 0CEEE8 7F09A3B8 AC40000C */ sw $zero, 0xc($v0) /* 0CEEEC 7F09A3BC 304E00FF */ andi $t6, $v0, 0xff /* 0CEEF0 7F09A3C0 3C018008 */ lui $at, %hi(random_byte) @@ -9681,12 +9681,827 @@ glabel initBONDdataforPlayer ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80057610 +.word 0xc3652ee0 /*-229.18311*/ +glabel D_80057614 +.word 0x411ffffe /*9.9999981*/ +glabel D_80057618 +.word 0x3f6e147b /*0.93000001*/ +glabel D_8005761C +.word 0x4164924b /*14.285716*/ +glabel D_80057620 +.word 0x3f666666 /*0.89999998*/ +glabel D_80057624 +.word 0xc0490fdb /*-3.1415927*/ +glabel D_80057628 +.word 0x3faaaaab /*1.3333334*/ +.text +glabel initBONDdataforPlayer +/* 0CEFEC 7F09A4BC 27BDFC30 */ addiu $sp, $sp, -0x3d0 +/* 0CEFF0 7F09A4C0 3C0F8004 */ lui $t7, %hi(D_8003FD94+0xC) +/* 0CEFF4 7F09A4C4 25EFFDA0 */ addiu $t7, %lo(D_8003FD94+0xC) # addiu $t7, $t7, -0x260 +/* 0CEFF8 7F09A4C8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0CEFFC 7F09A4CC AFA403D0 */ sw $a0, 0x3d0($sp) +/* 0CF000 7F09A4D0 25EB03A8 */ addiu $t3, $t7, 0x3a8 +/* 0CF004 7F09A4D4 27AE0024 */ addiu $t6, $sp, 0x24 +.L7F09A4D8: +/* 0CF008 7F09A4D8 8DE10000 */ lw $at, ($t7) +/* 0CF00C 7F09A4DC 25EF000C */ addiu $t7, $t7, 0xc +/* 0CF010 7F09A4E0 25CE000C */ addiu $t6, $t6, 0xc +/* 0CF014 7F09A4E4 ADC1FFF4 */ sw $at, -0xc($t6) +/* 0CF018 7F09A4E8 8DE1FFF8 */ lw $at, -8($t7) +/* 0CF01C 7F09A4EC ADC1FFF8 */ sw $at, -8($t6) +/* 0CF020 7F09A4F0 8DE1FFFC */ lw $at, -4($t7) +/* 0CF024 7F09A4F4 15EBFFF8 */ bne $t7, $t3, .L7F09A4D8 +/* 0CF028 7F09A4F8 ADC1FFFC */ sw $at, -4($t6) +/* 0CF02C 7F09A4FC 24042A80 */ li $a0, 10880 +/* 0CF030 7F09A500 0C0025C8 */ jal mempAllocBytesInBank +/* 0CF034 7F09A504 24050004 */ li $a1, 4 +/* 0CF038 7F09A508 8FAC03D0 */ lw $t4, 0x3d0($sp) +/* 0CF03C 7F09A50C 3C198008 */ lui $t9, %hi(players) +/* 0CF040 7F09A510 27399EE0 */ addiu $t9, %lo(players) # addiu $t9, $t9, -0x6120 +/* 0CF044 7F09A514 000C6880 */ sll $t5, $t4, 2 +/* 0CF048 7F09A518 01B91821 */ addu $v1, $t5, $t9 +/* 0CF04C 7F09A51C AC620000 */ sw $v0, ($v1) +/* 0CF050 7F09A520 AC400000 */ sw $zero, ($v0) +/* 0CF054 7F09A524 44800000 */ mtc1 $zero, $f0 +/* 0CF058 7F09A528 8C780000 */ lw $t8, ($v1) +/* 0CF05C 7F09A52C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0CF060 7F09A530 44811000 */ mtc1 $at, $f2 +/* 0CF064 7F09A534 E7000004 */ swc1 $f0, 4($t8) +/* 0CF068 7F09A538 8C6B0000 */ lw $t3, ($v1) +/* 0CF06C 7F09A53C 24040002 */ li $a0, 2 +/* 0CF070 7F09A540 24080001 */ li $t0, 1 +/* 0CF074 7F09A544 E5600008 */ swc1 $f0, 8($t3) +/* 0CF078 7F09A548 8C6F0000 */ lw $t7, ($v1) +/* 0CF07C 7F09A54C 2409FFFF */ li $t1, -1 +/* 0CF080 7F09A550 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 0CF084 7F09A554 E5E0000C */ swc1 $f0, 0xc($t7) +/* 0CF088 7F09A558 8C6E0000 */ lw $t6, ($v1) +/* 0CF08C 7F09A55C 44812000 */ mtc1 $at, $f4 +/* 0CF090 7F09A560 3C018005 */ lui $at, %hi(D_80057610) +/* 0CF094 7F09A564 E5C00010 */ swc1 $f0, 0x10($t6) +/* 0CF098 7F09A568 8C6C0000 */ lw $t4, ($v1) +/* 0CF09C 7F09A56C 240200FF */ li $v0, 255 +/* 0CF0A0 7F09A570 27AA0024 */ addiu $t2, $sp, 0x24 +/* 0CF0A4 7F09A574 E5800014 */ swc1 $f0, 0x14($t4) +/* 0CF0A8 7F09A578 8C6D0000 */ lw $t5, ($v1) +/* 0CF0AC 7F09A57C E5A20018 */ swc1 $f2, 0x18($t5) +/* 0CF0B0 7F09A580 8C790000 */ lw $t9, ($v1) +/* 0CF0B4 7F09A584 E720001C */ swc1 $f0, 0x1c($t9) +/* 0CF0B8 7F09A588 8C780000 */ lw $t8, ($v1) +/* 0CF0BC 7F09A58C E7020020 */ swc1 $f2, 0x20($t8) +/* 0CF0C0 7F09A590 8C6B0000 */ lw $t3, ($v1) +/* 0CF0C4 7F09A594 E5600024 */ swc1 $f0, 0x24($t3) +/* 0CF0C8 7F09A598 8C6F0000 */ lw $t7, ($v1) +/* 0CF0CC 7F09A59C E5E00028 */ swc1 $f0, 0x28($t7) +/* 0CF0D0 7F09A5A0 8C6E0000 */ lw $t6, ($v1) +/* 0CF0D4 7F09A5A4 E5C0002C */ swc1 $f0, 0x2c($t6) +/* 0CF0D8 7F09A5A8 8C6C0000 */ lw $t4, ($v1) +/* 0CF0DC 7F09A5AC E5800030 */ swc1 $f0, 0x30($t4) +/* 0CF0E0 7F09A5B0 8C6D0000 */ lw $t5, ($v1) +/* 0CF0E4 7F09A5B4 ADA00034 */ sw $zero, 0x34($t5) +/* 0CF0E8 7F09A5B8 8C790000 */ lw $t9, ($v1) +/* 0CF0EC 7F09A5BC E7200038 */ swc1 $f0, 0x38($t9) +/* 0CF0F0 7F09A5C0 8C780000 */ lw $t8, ($v1) +/* 0CF0F4 7F09A5C4 E700003C */ swc1 $f0, 0x3c($t8) +/* 0CF0F8 7F09A5C8 8C6B0000 */ lw $t3, ($v1) +/* 0CF0FC 7F09A5CC E5600040 */ swc1 $f0, 0x40($t3) +/* 0CF100 7F09A5D0 8C6F0000 */ lw $t7, ($v1) +/* 0CF104 7F09A5D4 E5E00044 */ swc1 $f0, 0x44($t7) +/* 0CF108 7F09A5D8 8C6E0000 */ lw $t6, ($v1) +/* 0CF10C 7F09A5DC E5C00048 */ swc1 $f0, 0x48($t6) +/* 0CF110 7F09A5E0 8C6C0000 */ lw $t4, ($v1) +/* 0CF114 7F09A5E4 E580004C */ swc1 $f0, 0x4c($t4) +/* 0CF118 7F09A5E8 8C6D0000 */ lw $t5, ($v1) +/* 0CF11C 7F09A5EC E5A00050 */ swc1 $f0, 0x50($t5) +/* 0CF120 7F09A5F0 8C790000 */ lw $t9, ($v1) +/* 0CF124 7F09A5F4 E7200054 */ swc1 $f0, 0x54($t9) +/* 0CF128 7F09A5F8 8C780000 */ lw $t8, ($v1) +/* 0CF12C 7F09A5FC E7000058 */ swc1 $f0, 0x58($t8) +/* 0CF130 7F09A600 8C6B0000 */ lw $t3, ($v1) +/* 0CF134 7F09A604 E560006C */ swc1 $f0, 0x6c($t3) +/* 0CF138 7F09A608 8C6F0000 */ lw $t7, ($v1) +/* 0CF13C 7F09A60C E5E00070 */ swc1 $f0, 0x70($t7) +/* 0CF140 7F09A610 8C6E0000 */ lw $t6, ($v1) +/* 0CF144 7F09A614 E5C00074 */ swc1 $f0, 0x74($t6) +/* 0CF148 7F09A618 8C6C0000 */ lw $t4, ($v1) +/* 0CF14C 7F09A61C E5800078 */ swc1 $f0, 0x78($t4) +/* 0CF150 7F09A620 8C6D0000 */ lw $t5, ($v1) +/* 0CF154 7F09A624 E5A0007C */ swc1 $f0, 0x7c($t5) +/* 0CF158 7F09A628 8C790000 */ lw $t9, ($v1) +/* 0CF15C 7F09A62C E7200080 */ swc1 $f0, 0x80($t9) +/* 0CF160 7F09A630 8C780000 */ lw $t8, ($v1) +/* 0CF164 7F09A634 E7000084 */ swc1 $f0, 0x84($t8) +/* 0CF168 7F09A638 8C6B0000 */ lw $t3, ($v1) +/* 0CF16C 7F09A63C E5600088 */ swc1 $f0, 0x88($t3) +/* 0CF170 7F09A640 8C6F0000 */ lw $t7, ($v1) +/* 0CF174 7F09A644 ADE0008C */ sw $zero, 0x8c($t7) +/* 0CF178 7F09A648 8C6E0000 */ lw $t6, ($v1) +/* 0CF17C 7F09A64C E5C00090 */ swc1 $f0, 0x90($t6) +/* 0CF180 7F09A650 8C6C0000 */ lw $t4, ($v1) +/* 0CF184 7F09A654 AD800094 */ sw $zero, 0x94($t4) +/* 0CF188 7F09A658 8C6D0000 */ lw $t5, ($v1) +/* 0CF18C 7F09A65C E5A00098 */ swc1 $f0, 0x98($t5) +/* 0CF190 7F09A660 8C790000 */ lw $t9, ($v1) +/* 0CF194 7F09A664 E7201274 */ swc1 $f0, 0x1274($t9) +/* 0CF198 7F09A668 8C780000 */ lw $t8, ($v1) +/* 0CF19C 7F09A66C E7001278 */ swc1 $f0, 0x1278($t8) +/* 0CF1A0 7F09A670 8C6B0000 */ lw $t3, ($v1) +/* 0CF1A4 7F09A674 E560127C */ swc1 $f0, 0x127c($t3) +/* 0CF1A8 7F09A678 8C6F0000 */ lw $t7, ($v1) +/* 0CF1AC 7F09A67C ADE4009C */ sw $a0, 0x9c($t7) +/* 0CF1B0 7F09A680 8C6E0000 */ lw $t6, ($v1) +/* 0CF1B4 7F09A684 ADC429FC */ sw $a0, 0x29fc($t6) +/* 0CF1B8 7F09A688 8C6C0000 */ lw $t4, ($v1) +/* 0CF1BC 7F09A68C E58000A0 */ swc1 $f0, 0xa0($t4) +/* 0CF1C0 7F09A690 8C6D0000 */ lw $t5, ($v1) +/* 0CF1C4 7F09A694 E5A000A4 */ swc1 $f0, 0xa4($t5) +/* 0CF1C8 7F09A698 8C790000 */ lw $t9, ($v1) +/* 0CF1CC 7F09A69C AF2000A8 */ sw $zero, 0xa8($t9) +/* 0CF1D0 7F09A6A0 8C780000 */ lw $t8, ($v1) +/* 0CF1D4 7F09A6A4 AF0800AC */ sw $t0, 0xac($t8) +/* 0CF1D8 7F09A6A8 8C6B0000 */ lw $t3, ($v1) +/* 0CF1DC 7F09A6AC AD6000D0 */ sw $zero, 0xd0($t3) +/* 0CF1E0 7F09A6B0 8C6F0000 */ lw $t7, ($v1) +/* 0CF1E4 7F09A6B4 ADE000D4 */ sw $zero, 0xd4($t7) +/* 0CF1E8 7F09A6B8 8C6E0000 */ lw $t6, ($v1) +/* 0CF1EC 7F09A6BC ADC000D8 */ sw $zero, 0xd8($t6) +/* 0CF1F0 7F09A6C0 8C6C0000 */ lw $t4, ($v1) +/* 0CF1F4 7F09A6C4 E58200DC */ swc1 $f2, 0xdc($t4) +/* 0CF1F8 7F09A6C8 8C6D0000 */ lw $t5, ($v1) +/* 0CF1FC 7F09A6CC E5A000E0 */ swc1 $f0, 0xe0($t5) +/* 0CF200 7F09A6D0 8C790000 */ lw $t9, ($v1) +/* 0CF204 7F09A6D4 E72200E4 */ swc1 $f2, 0xe4($t9) +/* 0CF208 7F09A6D8 8C780000 */ lw $t8, ($v1) +/* 0CF20C 7F09A6DC E70000E8 */ swc1 $f0, 0xe8($t8) +/* 0CF210 7F09A6E0 8C6B0000 */ lw $t3, ($v1) +/* 0CF214 7F09A6E4 E56200EC */ swc1 $f2, 0xec($t3) +/* 0CF218 7F09A6E8 8C6F0000 */ lw $t7, ($v1) +/* 0CF21C 7F09A6EC E5E000F0 */ swc1 $f0, 0xf0($t7) +/* 0CF220 7F09A6F0 8C6E0000 */ lw $t6, ($v1) +/* 0CF224 7F09A6F4 ADC900F4 */ sw $t1, 0xf4($t6) +/* 0CF228 7F09A6F8 8C6C0000 */ lw $t4, ($v1) +/* 0CF22C 7F09A6FC AD8900F8 */ sw $t1, 0xf8($t4) +/* 0CF230 7F09A700 8C6D0000 */ lw $t5, ($v1) +/* 0CF234 7F09A704 ADA00104 */ sw $zero, 0x104($t5) +/* 0CF238 7F09A708 8C790000 */ lw $t9, ($v1) +/* 0CF23C 7F09A70C AF200108 */ sw $zero, 0x108($t9) +/* 0CF240 7F09A710 8C780000 */ lw $t8, ($v1) +/* 0CF244 7F09A714 AF00010C */ sw $zero, 0x10c($t8) +/* 0CF248 7F09A718 8C6B0000 */ lw $t3, ($v1) +/* 0CF24C 7F09A71C AD600110 */ sw $zero, 0x110($t3) +/* 0CF250 7F09A720 8C6F0000 */ lw $t7, ($v1) +/* 0CF254 7F09A724 ADE80114 */ sw $t0, 0x114($t7) +/* 0CF258 7F09A728 8C6E0000 */ lw $t6, ($v1) +/* 0CF25C 7F09A72C ADC80118 */ sw $t0, 0x118($t6) +/* 0CF260 7F09A730 8C6C0000 */ lw $t4, ($v1) +/* 0CF264 7F09A734 AD80011C */ sw $zero, 0x11c($t4) +/* 0CF268 7F09A738 8C6D0000 */ lw $t5, ($v1) +/* 0CF26C 7F09A73C ADA80120 */ sw $t0, 0x120($t5) +/* 0CF270 7F09A740 8C790000 */ lw $t9, ($v1) +/* 0CF274 7F09A744 AF200124 */ sw $zero, 0x124($t9) +/* 0CF278 7F09A748 8C780000 */ lw $t8, ($v1) +/* 0CF27C 7F09A74C AF080128 */ sw $t0, 0x128($t8) +/* 0CF280 7F09A750 8C6B0000 */ lw $t3, ($v1) +/* 0CF284 7F09A754 E560012C */ swc1 $f0, 0x12c($t3) +/* 0CF288 7F09A758 8C6F0000 */ lw $t7, ($v1) +/* 0CF28C 7F09A75C ADE00130 */ sw $zero, 0x130($t7) +/* 0CF290 7F09A760 8C6E0000 */ lw $t6, ($v1) +/* 0CF294 7F09A764 ADC90134 */ sw $t1, 0x134($t6) +/* 0CF298 7F09A768 8C6C0000 */ lw $t4, ($v1) +/* 0CF29C 7F09A76C AD880138 */ sw $t0, 0x138($t4) +/* 0CF2A0 7F09A770 8C6D0000 */ lw $t5, ($v1) +/* 0CF2A4 7F09A774 E5A0013C */ swc1 $f0, 0x13c($t5) +/* 0CF2A8 7F09A778 8C790000 */ lw $t9, ($v1) +/* 0CF2AC 7F09A77C AF200140 */ sw $zero, 0x140($t9) +/* 0CF2B0 7F09A780 8C780000 */ lw $t8, ($v1) +/* 0CF2B4 7F09A784 AF090144 */ sw $t1, 0x144($t8) +/* 0CF2B8 7F09A788 8C6B0000 */ lw $t3, ($v1) +/* 0CF2BC 7F09A78C E5600148 */ swc1 $f0, 0x148($t3) +/* 0CF2C0 7F09A790 8C6F0000 */ lw $t7, ($v1) +/* 0CF2C4 7F09A794 E5E0014C */ swc1 $f0, 0x14c($t7) +/* 0CF2C8 7F09A798 8C6E0000 */ lw $t6, ($v1) +/* 0CF2CC 7F09A79C E5C20150 */ swc1 $f2, 0x150($t6) +/* 0CF2D0 7F09A7A0 8C6C0000 */ lw $t4, ($v1) +/* 0CF2D4 7F09A7A4 E5800154 */ swc1 $f0, 0x154($t4) +/* 0CF2D8 7F09A7A8 8C6D0000 */ lw $t5, ($v1) +/* 0CF2DC 7F09A7AC E5A40158 */ swc1 $f4, 0x158($t5) +/* 0CF2E0 7F09A7B0 8C790000 */ lw $t9, ($v1) +/* 0CF2E4 7F09A7B4 C4267610 */ lwc1 $f6, %lo(D_80057610)($at) +/* 0CF2E8 7F09A7B8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0CF2EC 7F09A7BC 44816000 */ mtc1 $at, $f12 +/* 0CF2F0 7F09A7C0 E726015C */ swc1 $f6, 0x15c($t9) +/* 0CF2F4 7F09A7C4 8C780000 */ lw $t8, ($v1) +/* 0CF2F8 7F09A7C8 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 +/* 0CF2FC 7F09A7CC 44814000 */ mtc1 $at, $f8 +/* 0CF300 7F09A7D0 E7000160 */ swc1 $f0, 0x160($t8) +/* 0CF304 7F09A7D4 8C6B0000 */ lw $t3, ($v1) +/* 0CF308 7F09A7D8 3C018005 */ lui $at, %hi(D_80057614) +/* 0CF30C 7F09A7DC E5620164 */ swc1 $f2, 0x164($t3) +/* 0CF310 7F09A7E0 8C6F0000 */ lw $t7, ($v1) +/* 0CF314 7F09A7E4 E5E00168 */ swc1 $f0, 0x168($t7) +/* 0CF318 7F09A7E8 8C6E0000 */ lw $t6, ($v1) +/* 0CF31C 7F09A7EC E5C0016C */ swc1 $f0, 0x16c($t6) +/* 0CF320 7F09A7F0 8C6C0000 */ lw $t4, ($v1) +/* 0CF324 7F09A7F4 E5800170 */ swc1 $f0, 0x170($t4) +/* 0CF328 7F09A7F8 8C6D0000 */ lw $t5, ($v1) +/* 0CF32C 7F09A7FC E5A00174 */ swc1 $f0, 0x174($t5) +/* 0CF330 7F09A800 8C790000 */ lw $t9, ($v1) +/* 0CF334 7F09A804 E7202A4C */ swc1 $f0, 0x2a4c($t9) +/* 0CF338 7F09A808 8C780000 */ lw $t8, ($v1) +/* 0CF33C 7F09A80C E7020178 */ swc1 $f2, 0x178($t8) +/* 0CF340 7F09A810 8C6B0000 */ lw $t3, ($v1) +/* 0CF344 7F09A814 E5600180 */ swc1 $f0, 0x180($t3) +/* 0CF348 7F09A818 8C6F0000 */ lw $t7, ($v1) +/* 0CF34C 7F09A81C E5E00184 */ swc1 $f0, 0x184($t7) +/* 0CF350 7F09A820 8C6E0000 */ lw $t6, ($v1) +/* 0CF354 7F09A824 E5C00188 */ swc1 $f0, 0x188($t6) +/* 0CF358 7F09A828 8C6C0000 */ lw $t4, ($v1) +/* 0CF35C 7F09A82C E58C018C */ swc1 $f12, 0x18c($t4) +/* 0CF360 7F09A830 8C6D0000 */ lw $t5, ($v1) +/* 0CF364 7F09A834 E5AC0190 */ swc1 $f12, 0x190($t5) +/* 0CF368 7F09A838 8C790000 */ lw $t9, ($v1) +/* 0CF36C 7F09A83C E7200194 */ swc1 $f0, 0x194($t9) +/* 0CF370 7F09A840 8C780000 */ lw $t8, ($v1) +/* 0CF374 7F09A844 E7000198 */ swc1 $f0, 0x198($t8) +/* 0CF378 7F09A848 8C6B0000 */ lw $t3, ($v1) +/* 0CF37C 7F09A84C E560019C */ swc1 $f0, 0x19c($t3) +/* 0CF380 7F09A850 8C6F0000 */ lw $t7, ($v1) +/* 0CF384 7F09A854 ADE001A0 */ sw $zero, 0x1a0($t7) +/* 0CF388 7F09A858 8C6E0000 */ lw $t6, ($v1) +/* 0CF38C 7F09A85C ADC001C0 */ sw $zero, 0x1c0($t6) +/* 0CF390 7F09A860 8C6C0000 */ lw $t4, ($v1) +/* 0CF394 7F09A864 AD8001C4 */ sw $zero, 0x1c4($t4) +/* 0CF398 7F09A868 8C6D0000 */ lw $t5, ($v1) +/* 0CF39C 7F09A86C ADA001C8 */ sw $zero, 0x1c8($t5) +/* 0CF3A0 7F09A870 8C790000 */ lw $t9, ($v1) +/* 0CF3A4 7F09A874 AF2801CC */ sw $t0, 0x1cc($t9) +/* 0CF3A8 7F09A878 8C780000 */ lw $t8, ($v1) +/* 0CF3AC 7F09A87C AF0001D0 */ sw $zero, 0x1d0($t8) +/* 0CF3B0 7F09A880 8C6B0000 */ lw $t3, ($v1) +/* 0CF3B4 7F09A884 E56001D4 */ swc1 $f0, 0x1d4($t3) +/* 0CF3B8 7F09A888 8C6F0000 */ lw $t7, ($v1) +/* 0CF3BC 7F09A88C E5E001D8 */ swc1 $f0, 0x1d8($t7) +/* 0CF3C0 7F09A890 8C6E0000 */ lw $t6, ($v1) +/* 0CF3C4 7F09A894 E5C801DC */ swc1 $f8, 0x1dc($t6) +/* 0CF3C8 7F09A898 8C6C0000 */ lw $t4, ($v1) +/* 0CF3CC 7F09A89C E58001E0 */ swc1 $f0, 0x1e0($t4) +/* 0CF3D0 7F09A8A0 8C6D0000 */ lw $t5, ($v1) +/* 0CF3D4 7F09A8A4 E5A201E4 */ swc1 $f2, 0x1e4($t5) +/* 0CF3D8 7F09A8A8 8C790000 */ lw $t9, ($v1) +/* 0CF3DC 7F09A8AC E72001E8 */ swc1 $f0, 0x1e8($t9) +/* 0CF3E0 7F09A8B0 8C780000 */ lw $t8, ($v1) +/* 0CF3E4 7F09A8B4 E70001EC */ swc1 $f0, 0x1ec($t8) +/* 0CF3E8 7F09A8B8 8C6B0000 */ lw $t3, ($v1) +/* 0CF3EC 7F09A8BC E56001F0 */ swc1 $f0, 0x1f0($t3) +/* 0CF3F0 7F09A8C0 8C6F0000 */ lw $t7, ($v1) +/* 0CF3F4 7F09A8C4 E5E201F4 */ swc1 $f2, 0x1f4($t7) +/* 0CF3F8 7F09A8C8 8C6E0000 */ lw $t6, ($v1) +/* 0CF3FC 7F09A8CC ADC00200 */ sw $zero, 0x200($t6) +/* 0CF400 7F09A8D0 8C6C0000 */ lw $t4, ($v1) +/* 0CF404 7F09A8D4 E5800204 */ swc1 $f0, 0x204($t4) +/* 0CF408 7F09A8D8 8C6D0000 */ lw $t5, ($v1) +/* 0CF40C 7F09A8DC E5A00208 */ swc1 $f0, 0x208($t5) +/* 0CF410 7F09A8E0 8C790000 */ lw $t9, ($v1) +/* 0CF414 7F09A8E4 E720020C */ swc1 $f0, 0x20c($t9) +/* 0CF418 7F09A8E8 8C780000 */ lw $t8, ($v1) +/* 0CF41C 7F09A8EC E7000210 */ swc1 $f0, 0x210($t8) +/* 0CF420 7F09A8F0 8C6B0000 */ lw $t3, ($v1) +/* 0CF424 7F09A8F4 E5600214 */ swc1 $f0, 0x214($t3) +/* 0CF428 7F09A8F8 8C6F0000 */ lw $t7, ($v1) +/* 0CF42C 7F09A8FC ADE00218 */ sw $zero, 0x218($t7) +/* 0CF430 7F09A900 8C6E0000 */ lw $t6, ($v1) +/* 0CF434 7F09A904 ADC8021C */ sw $t0, 0x21c($t6) +/* 0CF438 7F09A908 8C6C0000 */ lw $t4, ($v1) +/* 0CF43C 7F09A90C AD800220 */ sw $zero, 0x220($t4) +/* 0CF440 7F09A910 8C6D0000 */ lw $t5, ($v1) +/* 0CF444 7F09A914 E5A00224 */ swc1 $f0, 0x224($t5) +/* 0CF448 7F09A918 8C790000 */ lw $t9, ($v1) +/* 0CF44C 7F09A91C A72003B4 */ sh $zero, 0x3b4($t9) +/* 0CF450 7F09A920 8C780000 */ lw $t8, ($v1) +/* 0CF454 7F09A924 A70003B6 */ sh $zero, 0x3b6($t8) +/* 0CF458 7F09A928 8C6B0000 */ lw $t3, ($v1) +/* 0CF45C 7F09A92C E56003B8 */ swc1 $f0, 0x3b8($t3) +/* 0CF460 7F09A930 8C6F0000 */ lw $t7, ($v1) +/* 0CF464 7F09A934 E5E003BC */ swc1 $f0, 0x3bc($t7) +/* 0CF468 7F09A938 8C6E0000 */ lw $t6, ($v1) +/* 0CF46C 7F09A93C C42A7614 */ lwc1 $f10, %lo(D_80057614)($at) +/* 0CF470 7F09A940 E5CA03C0 */ swc1 $f10, 0x3c0($t6) +/* 0CF474 7F09A944 8C6C0000 */ lw $t4, ($v1) +/* 0CF478 7F09A948 E58003C4 */ swc1 $f0, 0x3c4($t4) +/* 0CF47C 7F09A94C 8C6D0000 */ lw $t5, ($v1) +/* 0CF480 7F09A950 E5A003C8 */ swc1 $f0, 0x3c8($t5) +/* 0CF484 7F09A954 8C790000 */ lw $t9, ($v1) +/* 0CF488 7F09A958 E72203CC */ swc1 $f2, 0x3cc($t9) +/* 0CF48C 7F09A95C 8C780000 */ lw $t8, ($v1) +/* 0CF490 7F09A960 AF0203D0 */ sw $v0, 0x3d0($t8) +/* 0CF494 7F09A964 8C6B0000 */ lw $t3, ($v1) +/* 0CF498 7F09A968 AD6203D4 */ sw $v0, 0x3d4($t3) +/* 0CF49C 7F09A96C 8C6F0000 */ lw $t7, ($v1) +/* 0CF4A0 7F09A970 3C018005 */ lui $at, %hi(D_80057618) +/* 0CF4A4 7F09A974 24070020 */ li $a3, 32 +/* 0CF4A8 7F09A978 ADE203D8 */ sw $v0, 0x3d8($t7) +/* 0CF4AC 7F09A97C 8C6E0000 */ lw $t6, ($v1) +/* 0CF4B0 7F09A980 240601FF */ li $a2, 511 +/* 0CF4B4 7F09A984 240501E0 */ li $a1, 480 +/* 0CF4B8 7F09A988 E5C003DC */ swc1 $f0, 0x3dc($t6) +/* 0CF4BC 7F09A98C 8C6C0000 */ lw $t4, ($v1) +/* 0CF4C0 7F09A990 E58C03E0 */ swc1 $f12, 0x3e0($t4) +/* 0CF4C4 7F09A994 8C6D0000 */ lw $t5, ($v1) +/* 0CF4C8 7F09A998 E5AC03E4 */ swc1 $f12, 0x3e4($t5) +/* 0CF4CC 7F09A99C 8C790000 */ lw $t9, ($v1) +/* 0CF4D0 7F09A9A0 AF2203E8 */ sw $v0, 0x3e8($t9) +/* 0CF4D4 7F09A9A4 8C780000 */ lw $t8, ($v1) +/* 0CF4D8 7F09A9A8 AF0203EC */ sw $v0, 0x3ec($t8) +/* 0CF4DC 7F09A9AC 8C6B0000 */ lw $t3, ($v1) +/* 0CF4E0 7F09A9B0 AD6203F0 */ sw $v0, 0x3f0($t3) +/* 0CF4E4 7F09A9B4 8C6F0000 */ lw $t7, ($v1) +/* 0CF4E8 7F09A9B8 ADE203F4 */ sw $v0, 0x3f4($t7) +/* 0CF4EC 7F09A9BC 8C6E0000 */ lw $t6, ($v1) +/* 0CF4F0 7F09A9C0 ADC203F8 */ sw $v0, 0x3f8($t6) +/* 0CF4F4 7F09A9C4 8C6C0000 */ lw $t4, ($v1) +/* 0CF4F8 7F09A9C8 AD8203FC */ sw $v0, 0x3fc($t4) +/* 0CF4FC 7F09A9CC 8C6D0000 */ lw $t5, ($v1) +/* 0CF500 7F09A9D0 00001025 */ move $v0, $zero +/* 0CF504 7F09A9D4 E5A00400 */ swc1 $f0, 0x400($t5) +/* 0CF508 7F09A9D8 8C790000 */ lw $t9, ($v1) +/* 0CF50C 7F09A9DC E7200404 */ swc1 $f0, 0x404($t9) +/* 0CF510 7F09A9E0 8C780000 */ lw $t8, ($v1) +/* 0CF514 7F09A9E4 AF00041C */ sw $zero, 0x41c($t8) +/* 0CF518 7F09A9E8 8C6B0000 */ lw $t3, ($v1) +/* 0CF51C 7F09A9EC AD680420 */ sw $t0, 0x420($t3) +/* 0CF520 7F09A9F0 8C6F0000 */ lw $t7, ($v1) +/* 0CF524 7F09A9F4 ADE00424 */ sw $zero, 0x424($t7) +/* 0CF528 7F09A9F8 8C6E0000 */ lw $t6, ($v1) +/* 0CF52C 7F09A9FC ADC00428 */ sw $zero, 0x428($t6) +/* 0CF530 7F09AA00 8C6C0000 */ lw $t4, ($v1) +/* 0CF534 7F09AA04 AD84042C */ sw $a0, 0x42c($t4) +/* 0CF538 7F09AA08 8C6D0000 */ lw $t5, ($v1) +/* 0CF53C 7F09AA0C 24040280 */ li $a0, 640 +/* 0CF540 7F09AA10 ADA00430 */ sw $zero, 0x430($t5) +/* 0CF544 7F09AA14 8C790000 */ lw $t9, ($v1) +/* 0CF548 7F09AA18 AF2804DC */ sw $t0, 0x4dc($t9) +/* 0CF54C 7F09AA1C 8C780000 */ lw $t8, ($v1) +/* 0CF550 7F09AA20 AF0804E0 */ sw $t0, 0x4e0($t8) +/* 0CF554 7F09AA24 8C6B0000 */ lw $t3, ($v1) +/* 0CF558 7F09AA28 AD6804E4 */ sw $t0, 0x4e4($t3) +/* 0CF55C 7F09AA2C 8C6F0000 */ lw $t7, ($v1) +/* 0CF560 7F09AA30 ADE004E8 */ sw $zero, 0x4e8($t7) +/* 0CF564 7F09AA34 8C6E0000 */ lw $t6, ($v1) +/* 0CF568 7F09AA38 C4327618 */ lwc1 $f18, %lo(D_80057618)($at) +/* 0CF56C 7F09AA3C 3C018005 */ lui $at, %hi(D_8005761C) +/* 0CF570 7F09AA40 E5D204EC */ swc1 $f18, 0x4ec($t6) +/* 0CF574 7F09AA44 8C6C0000 */ lw $t4, ($v1) +/* 0CF578 7F09AA48 AD8004F0 */ sw $zero, 0x4f0($t4) +/* 0CF57C 7F09AA4C 8C6D0000 */ lw $t5, ($v1) +/* 0CF580 7F09AA50 E5A204F4 */ swc1 $f2, 0x4f4($t5) +/* 0CF584 7F09AA54 8C790000 */ lw $t9, ($v1) +/* 0CF588 7F09AA58 E72204F8 */ swc1 $f2, 0x4f8($t9) +/* 0CF58C 7F09AA5C 8C780000 */ lw $t8, ($v1) +/* 0CF590 7F09AA60 E70004FC */ swc1 $f0, 0x4fc($t8) +/* 0CF594 7F09AA64 8C6B0000 */ lw $t3, ($v1) +/* 0CF598 7F09AA68 E5600500 */ swc1 $f0, 0x500($t3) +/* 0CF59C 7F09AA6C 8C6F0000 */ lw $t7, ($v1) +/* 0CF5A0 7F09AA70 E5E00504 */ swc1 $f0, 0x504($t7) +/* 0CF5A4 7F09AA74 8C6E0000 */ lw $t6, ($v1) +/* 0CF5A8 7F09AA78 C42C761C */ lwc1 $f12, %lo(D_8005761C)($at) +/* 0CF5AC 7F09AA7C E5C00508 */ swc1 $f0, 0x508($t6) +/* 0CF5B0 7F09AA80 8C6C0000 */ lw $t4, ($v1) +/* 0CF5B4 7F09AA84 E580050C */ swc1 $f0, 0x50c($t4) +/* 0CF5B8 7F09AA88 8C6D0000 */ lw $t5, ($v1) +/* 0CF5BC 7F09AA8C E5A20510 */ swc1 $f2, 0x510($t5) +/* 0CF5C0 7F09AA90 8C790000 */ lw $t9, ($v1) +/* 0CF5C4 7F09AA94 E7200514 */ swc1 $f0, 0x514($t9) +/* 0CF5C8 7F09AA98 8C780000 */ lw $t8, ($v1) +/* 0CF5CC 7F09AA9C E7020518 */ swc1 $f2, 0x518($t8) +/* 0CF5D0 7F09AAA0 8C6B0000 */ lw $t3, ($v1) +/* 0CF5D4 7F09AAA4 E560051C */ swc1 $f0, 0x51c($t3) +/* 0CF5D8 7F09AAA8 8C6F0000 */ lw $t7, ($v1) +/* 0CF5DC 7F09AAAC E5E00520 */ swc1 $f0, 0x520($t7) +/* 0CF5E0 7F09AAB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF5E4 7F09AAB4 E5C00524 */ swc1 $f0, 0x524($t6) +/* 0CF5E8 7F09AAB8 8C6C0000 */ lw $t4, ($v1) +/* 0CF5EC 7F09AABC E5800528 */ swc1 $f0, 0x528($t4) +/* 0CF5F0 7F09AAC0 8C6D0000 */ lw $t5, ($v1) +/* 0CF5F4 7F09AAC4 E5A0052C */ swc1 $f0, 0x52c($t5) +/* 0CF5F8 7F09AAC8 8C790000 */ lw $t9, ($v1) +/* 0CF5FC 7F09AACC E7200530 */ swc1 $f0, 0x530($t9) +/* 0CF600 7F09AAD0 8C780000 */ lw $t8, ($v1) +/* 0CF604 7F09AAD4 E70C0534 */ swc1 $f12, 0x534($t8) +/* 0CF608 7F09AAD8 8C6B0000 */ lw $t3, ($v1) +/* 0CF60C 7F09AADC E5600538 */ swc1 $f0, 0x538($t3) +/* 0CF610 7F09AAE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF614 7F09AAE4 E5EC053C */ swc1 $f12, 0x53c($t7) +/* 0CF618 7F09AAE8 8C6E0000 */ lw $t6, ($v1) +/* 0CF61C 7F09AAEC E5C00540 */ swc1 $f0, 0x540($t6) +/* 0CF620 7F09AAF0 8C6C0000 */ lw $t4, ($v1) +/* 0CF624 7F09AAF4 E5800544 */ swc1 $f0, 0x544($t4) +/* 0CF628 7F09AAF8 8C6D0000 */ lw $t5, ($v1) +/* 0CF62C 7F09AAFC E5A00548 */ swc1 $f0, 0x548($t5) +/* 0CF630 7F09AB00 8C790000 */ lw $t9, ($v1) +/* 0CF634 7F09AB04 E720054C */ swc1 $f0, 0x54c($t9) +/* 0CF638 7F09AB08 8C780000 */ lw $t8, ($v1) +/* 0CF63C 7F09AB0C E7000550 */ swc1 $f0, 0x550($t8) +/* 0CF640 7F09AB10 8C6B0000 */ lw $t3, ($v1) +/* 0CF644 7F09AB14 E5600554 */ swc1 $f0, 0x554($t3) +/* 0CF648 7F09AB18 8C6F0000 */ lw $t7, ($v1) +/* 0CF64C 7F09AB1C E5E00558 */ swc1 $f0, 0x558($t7) +/* 0CF650 7F09AB20 8C6E0000 */ lw $t6, ($v1) +/* 0CF654 7F09AB24 E5C0055C */ swc1 $f0, 0x55c($t6) +/* 0CF658 7F09AB28 8C6C0000 */ lw $t4, ($v1) +/* 0CF65C 7F09AB2C E5800560 */ swc1 $f0, 0x560($t4) +/* 0CF660 7F09AB30 8C6D0000 */ lw $t5, ($v1) +/* 0CF664 7F09AB34 E5A00564 */ swc1 $f0, 0x564($t5) +/* 0CF668 7F09AB38 8C790000 */ lw $t9, ($v1) +/* 0CF66C 7F09AB3C E7200568 */ swc1 $f0, 0x568($t9) +/* 0CF670 7F09AB40 8C780000 */ lw $t8, ($v1) +/* 0CF674 7F09AB44 E702056C */ swc1 $f2, 0x56c($t8) +/* 0CF678 7F09AB48 8C6B0000 */ lw $t3, ($v1) +/* 0CF67C 7F09AB4C E5600570 */ swc1 $f0, 0x570($t3) +/* 0CF680 7F09AB50 8C6F0000 */ lw $t7, ($v1) +/* 0CF684 7F09AB54 E5E00574 */ swc1 $f0, 0x574($t7) +/* 0CF688 7F09AB58 8C6E0000 */ lw $t6, ($v1) +/* 0CF68C 7F09AB5C E5C20578 */ swc1 $f2, 0x578($t6) +/* 0CF690 7F09AB60 8C6C0000 */ lw $t4, ($v1) +/* 0CF694 7F09AB64 E580057C */ swc1 $f0, 0x57c($t4) +/* 0CF698 7F09AB68 8C6D0000 */ lw $t5, ($v1) +/* 0CF69C 7F09AB6C E5A20580 */ swc1 $f2, 0x580($t5) +/* 0CF6A0 7F09AB70 8C790000 */ lw $t9, ($v1) +/* 0CF6A4 7F09AB74 E7200584 */ swc1 $f0, 0x584($t9) +/* 0CF6A8 7F09AB78 8C780000 */ lw $t8, ($v1) +/* 0CF6AC 7F09AB7C E7000588 */ swc1 $f0, 0x588($t8) +/* 0CF6B0 7F09AB80 8C6B0000 */ lw $t3, ($v1) +/* 0CF6B4 7F09AB84 E562058C */ swc1 $f2, 0x58c($t3) +/* 0CF6B8 7F09AB88 8C6F0000 */ lw $t7, ($v1) +/* 0CF6BC 7F09AB8C E5E00590 */ swc1 $f0, 0x590($t7) +/* 0CF6C0 7F09AB90 8C6E0000 */ lw $t6, ($v1) +/* 0CF6C4 7F09AB94 ADC00594 */ sw $zero, 0x594($t6) +.L7F09AB98: +/* 0CF6C8 7F09AB98 8C6C0000 */ lw $t4, ($v1) +/* 0CF6CC 7F09AB9C 01826821 */ addu $t5, $t4, $v0 +/* 0CF6D0 7F09ABA0 A5A407D0 */ sh $a0, 0x7d0($t5) +/* 0CF6D4 7F09ABA4 8C790000 */ lw $t9, ($v1) +/* 0CF6D8 7F09ABA8 0322C021 */ addu $t8, $t9, $v0 +/* 0CF6DC 7F09ABAC A70507D2 */ sh $a1, 0x7d2($t8) +/* 0CF6E0 7F09ABB0 8C6B0000 */ lw $t3, ($v1) +/* 0CF6E4 7F09ABB4 01627821 */ addu $t7, $t3, $v0 +/* 0CF6E8 7F09ABB8 A5E607D4 */ sh $a2, 0x7d4($t7) +/* 0CF6EC 7F09ABBC 8C6E0000 */ lw $t6, ($v1) +/* 0CF6F0 7F09ABC0 01C26021 */ addu $t4, $t6, $v0 +/* 0CF6F4 7F09ABC4 A58007D6 */ sh $zero, 0x7d6($t4) +/* 0CF6F8 7F09ABC8 8C6D0000 */ lw $t5, ($v1) +/* 0CF6FC 7F09ABCC 01A2C821 */ addu $t9, $t5, $v0 +/* 0CF700 7F09ABD0 A72407D8 */ sh $a0, 0x7d8($t9) +/* 0CF704 7F09ABD4 8C780000 */ lw $t8, ($v1) +/* 0CF708 7F09ABD8 03025821 */ addu $t3, $t8, $v0 +/* 0CF70C 7F09ABDC A56507DA */ sh $a1, 0x7da($t3) +/* 0CF710 7F09ABE0 8C6F0000 */ lw $t7, ($v1) +/* 0CF714 7F09ABE4 01E27021 */ addu $t6, $t7, $v0 +/* 0CF718 7F09ABE8 A5C607DC */ sh $a2, 0x7dc($t6) +/* 0CF71C 7F09ABEC 8C6C0000 */ lw $t4, ($v1) +/* 0CF720 7F09ABF0 01826821 */ addu $t5, $t4, $v0 +/* 0CF724 7F09ABF4 24420010 */ addiu $v0, $v0, 0x10 +/* 0CF728 7F09ABF8 1447FFE7 */ bne $v0, $a3, .L7F09AB98 +/* 0CF72C 7F09ABFC A5A007DE */ sh $zero, 0x7de($t5) +/* 0CF730 7F09AC00 8C790000 */ lw $t9, ($v1) +/* 0CF734 7F09AC04 24020064 */ li $v0, 100 +/* 0CF738 7F09AC08 A72207F0 */ sh $v0, 0x7f0($t9) +/* 0CF73C 7F09AC0C 8C780000 */ lw $t8, ($v1) +/* 0CF740 7F09AC10 A70207F2 */ sh $v0, 0x7f2($t8) +/* 0CF744 7F09AC14 8C6B0000 */ lw $t3, ($v1) +/* 0CF748 7F09AC18 A56007F4 */ sh $zero, 0x7f4($t3) +/* 0CF74C 7F09AC1C 8C6F0000 */ lw $t7, ($v1) +/* 0CF750 7F09AC20 A5E007F6 */ sh $zero, 0x7f6($t7) +/* 0CF754 7F09AC24 8C6E0000 */ lw $t6, ($v1) +/* 0CF758 7F09AC28 ADC007F8 */ sw $zero, 0x7f8($t6) +/* 0CF75C 7F09AC2C 8C6C0000 */ lw $t4, ($v1) +/* 0CF760 7F09AC30 AD8007FC */ sw $zero, 0x7fc($t4) +/* 0CF764 7F09AC34 8C6D0000 */ lw $t5, ($v1) +/* 0CF768 7F09AC38 ADA00800 */ sw $zero, 0x800($t5) +/* 0CF76C 7F09AC3C 8C790000 */ lw $t9, ($v1) +/* 0CF770 7F09AC40 AF200804 */ sw $zero, 0x804($t9) +/* 0CF774 7F09AC44 8C780000 */ lw $t8, ($v1) +/* 0CF778 7F09AC48 AF092A44 */ sw $t1, 0x2a44($t8) +/* 0CF77C 7F09AC4C 8C6B0000 */ lw $t3, ($v1) +/* 0CF780 7F09AC50 0140C025 */ move $t8, $t2 +/* 0CF784 7F09AC54 AD692A48 */ sw $t1, 0x2a48($t3) +/* 0CF788 7F09AC58 8C6F0000 */ lw $t7, ($v1) +/* 0CF78C 7F09AC5C 254B03A8 */ addiu $t3, $t2, 0x3a8 +/* 0CF790 7F09AC60 ADE02A50 */ sw $zero, 0x2a50($t7) +/* 0CF794 7F09AC64 8C6E0000 */ lw $t6, ($v1) +/* 0CF798 7F09AC68 01407825 */ move $t7, $t2 +/* 0CF79C 7F09AC6C ADC02A54 */ sw $zero, 0x2a54($t6) +/* 0CF7A0 7F09AC70 8C6C0000 */ lw $t4, ($v1) +/* 0CF7A4 7F09AC74 AD800808 */ sw $zero, 0x808($t4) +/* 0CF7A8 7F09AC78 8C6D0000 */ lw $t5, ($v1) +/* 0CF7AC 7F09AC7C ADA0080C */ sw $zero, 0x80c($t5) +/* 0CF7B0 7F09AC80 8C790000 */ lw $t9, ($v1) +.L7F09AC84: +/* 0CF7B4 7F09AC84 8DE10000 */ lw $at, ($t7) +/* 0CF7B8 7F09AC88 25EF000C */ addiu $t7, $t7, 0xc +/* 0CF7BC 7F09AC8C 2739000C */ addiu $t9, $t9, 0xc +/* 0CF7C0 7F09AC90 AF210864 */ sw $at, 0x864($t9) +/* 0CF7C4 7F09AC94 8DE1FFF8 */ lw $at, -8($t7) +/* 0CF7C8 7F09AC98 AF210868 */ sw $at, 0x868($t9) +/* 0CF7CC 7F09AC9C 8DE1FFFC */ lw $at, -4($t7) +/* 0CF7D0 7F09ACA0 15EBFFF8 */ bne $t7, $t3, .L7F09AC84 +/* 0CF7D4 7F09ACA4 AF21086C */ sw $at, 0x86c($t9) +/* 0CF7D8 7F09ACA8 8C6E0000 */ lw $t6, ($v1) +/* 0CF7DC 7F09ACAC 254D03A8 */ addiu $t5, $t2, 0x3a8 +.L7F09ACB0: +/* 0CF7E0 7F09ACB0 8F010000 */ lw $at, ($t8) +/* 0CF7E4 7F09ACB4 2718000C */ addiu $t8, $t8, 0xc +/* 0CF7E8 7F09ACB8 25CE000C */ addiu $t6, $t6, 0xc +/* 0CF7EC 7F09ACBC ADC10C0C */ sw $at, 0xc0c($t6) +/* 0CF7F0 7F09ACC0 8F01FFF8 */ lw $at, -8($t8) +/* 0CF7F4 7F09ACC4 ADC10C10 */ sw $at, 0xc10($t6) +/* 0CF7F8 7F09ACC8 8F01FFFC */ lw $at, -4($t8) +/* 0CF7FC 7F09ACCC 170DFFF8 */ bne $t8, $t5, .L7F09ACB0 +/* 0CF800 7F09ACD0 ADC10C14 */ sw $at, 0xc14($t6) +/* 0CF804 7F09ACD4 8C6B0000 */ lw $t3, ($v1) +/* 0CF808 7F09ACD8 3C018005 */ lui $at, %hi(D_80057620) +/* 0CF80C 7F09ACDC 240200FF */ li $v0, 255 +/* 0CF810 7F09ACE0 E5620FC0 */ swc1 $f2, 0xfc0($t3) +/* 0CF814 7F09ACE4 8C6F0000 */ lw $t7, ($v1) +/* 0CF818 7F09ACE8 24040007 */ li $a0, 7 +/* 0CF81C 7F09ACEC E5E20FC4 */ swc1 $f2, 0xfc4($t7) +/* 0CF820 7F09ACF0 8C790000 */ lw $t9, ($v1) +/* 0CF824 7F09ACF4 AF200FC8 */ sw $zero, 0xfc8($t9) +/* 0CF828 7F09ACF8 8C6C0000 */ lw $t4, ($v1) +/* 0CF82C 7F09ACFC AD800FCC */ sw $zero, 0xfcc($t4) +/* 0CF830 7F09AD00 8C6D0000 */ lw $t5, ($v1) +/* 0CF834 7F09AD04 C42C7620 */ lwc1 $f12, %lo(D_80057620)($at) +/* 0CF838 7F09AD08 3C014270 */ li $at, 0x42700000 # 60.000000 +/* 0CF83C 7F09AD0C ADA00FD0 */ sw $zero, 0xfd0($t5) +/* 0CF840 7F09AD10 8C780000 */ lw $t8, ($v1) +/* 0CF844 7F09AD14 AF000FD4 */ sw $zero, 0xfd4($t8) +/* 0CF848 7F09AD18 8C6E0000 */ lw $t6, ($v1) +/* 0CF84C 7F09AD1C ADC00FD8 */ sw $zero, 0xfd8($t6) +/* 0CF850 7F09AD20 8C6B0000 */ lw $t3, ($v1) +/* 0CF854 7F09AD24 A1620FDC */ sb $v0, 0xfdc($t3) +/* 0CF858 7F09AD28 8C6F0000 */ lw $t7, ($v1) +/* 0CF85C 7F09AD2C A1E20FDD */ sb $v0, 0xfdd($t7) +/* 0CF860 7F09AD30 8C790000 */ lw $t9, ($v1) +/* 0CF864 7F09AD34 A3220FDE */ sb $v0, 0xfde($t9) +/* 0CF868 7F09AD38 8C6C0000 */ lw $t4, ($v1) +/* 0CF86C 7F09AD3C 3C028008 */ lui $v0, %hi(random_byte) +/* 0CF870 7F09AD40 2442A0BC */ addiu $v0, %lo(random_byte) # addiu $v0, $v0, -0x5f44 +/* 0CF874 7F09AD44 A1800FDF */ sb $zero, 0xfdf($t4) +/* 0CF878 7F09AD48 8C6D0000 */ lw $t5, ($v1) +/* 0CF87C 7F09AD4C ADA80FE0 */ sw $t0, 0xfe0($t5) +/* 0CF880 7F09AD50 8C780000 */ lw $t8, ($v1) +/* 0CF884 7F09AD54 AF000FE4 */ sw $zero, 0xfe4($t8) +/* 0CF888 7F09AD58 8C6E0000 */ lw $t6, ($v1) +/* 0CF88C 7F09AD5C E5C00FE8 */ swc1 $f0, 0xfe8($t6) +/* 0CF890 7F09AD60 8C6B0000 */ lw $t3, ($v1) +/* 0CF894 7F09AD64 E5600FEC */ swc1 $f0, 0xfec($t3) +/* 0CF898 7F09AD68 8C6F0000 */ lw $t7, ($v1) +/* 0CF89C 7F09AD6C E5E00FF0 */ swc1 $f0, 0xff0($t7) +/* 0CF8A0 7F09AD70 8C790000 */ lw $t9, ($v1) +/* 0CF8A4 7F09AD74 E7200FF4 */ swc1 $f0, 0xff4($t9) +/* 0CF8A8 7F09AD78 8C6C0000 */ lw $t4, ($v1) +/* 0CF8AC 7F09AD7C E58C0FF8 */ swc1 $f12, 0xff8($t4) +/* 0CF8B0 7F09AD80 8C6D0000 */ lw $t5, ($v1) +/* 0CF8B4 7F09AD84 E5A00FFC */ swc1 $f0, 0xffc($t5) +/* 0CF8B8 7F09AD88 8C780000 */ lw $t8, ($v1) +/* 0CF8BC 7F09AD8C E7001000 */ swc1 $f0, 0x1000($t8) +/* 0CF8C0 7F09AD90 8C6E0000 */ lw $t6, ($v1) +/* 0CF8C4 7F09AD94 E5C01004 */ swc1 $f0, 0x1004($t6) +/* 0CF8C8 7F09AD98 8C6B0000 */ lw $t3, ($v1) +/* 0CF8CC 7F09AD9C E5601008 */ swc1 $f0, 0x1008($t3) +/* 0CF8D0 7F09ADA0 8C6F0000 */ lw $t7, ($v1) +/* 0CF8D4 7F09ADA4 E5EC100C */ swc1 $f12, 0x100c($t7) +/* 0CF8D8 7F09ADA8 44816000 */ mtc1 $at, $f12 +/* 0CF8DC 7F09ADAC 8C790000 */ lw $t9, ($v1) +/* 0CF8E0 7F09ADB0 3C0143A0 */ li $at, 0x43A00000 # 320.000000 +/* 0CF8E4 7F09ADB4 44817000 */ mtc1 $at, $f14 +/* 0CF8E8 7F09ADB8 3C014370 */ li $at, 0x43700000 # 240.000000 +/* 0CF8EC 7F09ADBC 44818000 */ mtc1 $at, $f16 +/* 0CF8F0 7F09ADC0 E7201010 */ swc1 $f0, 0x1010($t9) +/* 0CF8F4 7F09ADC4 3C018005 */ lui $at, %hi(D_80057624) +/* 0CF8F8 7F09ADC8 C4247624 */ lwc1 $f4, %lo(D_80057624)($at) +/* 0CF8FC 7F09ADCC 8C6C0000 */ lw $t4, ($v1) +/* 0CF900 7F09ADD0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0CF904 7F09ADD4 44813000 */ mtc1 $at, $f6 +/* 0CF908 7F09ADD8 E5841014 */ swc1 $f4, 0x1014($t4) +/* 0CF90C 7F09ADDC 8C6D0000 */ lw $t5, ($v1) +/* 0CF910 7F09ADE0 3C014238 */ li $at, 0x42380000 # 46.000000 +/* 0CF914 7F09ADE4 44814000 */ mtc1 $at, $f8 +/* 0CF918 7F09ADE8 E5A01018 */ swc1 $f0, 0x1018($t5) +/* 0CF91C 7F09ADEC 8C780000 */ lw $t8, ($v1) +/* 0CF920 7F09ADF0 3C014320 */ li $at, 0x43200000 # 160.000000 +/* 0CF924 7F09ADF4 44815000 */ mtc1 $at, $f10 +/* 0CF928 7F09ADF8 AF00105C */ sw $zero, 0x105c($t8) +/* 0CF92C 7F09ADFC 8C6E0000 */ lw $t6, ($v1) +/* 0CF930 7F09AE00 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 0CF934 7F09AE04 44819000 */ mtc1 $at, $f18 +/* 0CF938 7F09AE08 ADC01060 */ sw $zero, 0x1060($t6) +/* 0CF93C 7F09AE0C 8C6B0000 */ lw $t3, ($v1) +/* 0CF940 7F09AE10 3C018005 */ lui $at, %hi(D_80057628) +/* 0CF944 7F09AE14 AD601064 */ sw $zero, 0x1064($t3) +/* 0CF948 7F09AE18 8C6F0000 */ lw $t7, ($v1) +/* 0CF94C 7F09AE1C E5E0106C */ swc1 $f0, 0x106c($t7) +/* 0CF950 7F09AE20 8C790000 */ lw $t9, ($v1) +/* 0CF954 7F09AE24 E7201070 */ swc1 $f0, 0x1070($t9) +/* 0CF958 7F09AE28 8C6C0000 */ lw $t4, ($v1) +/* 0CF95C 7F09AE2C E5801074 */ swc1 $f0, 0x1074($t4) +/* 0CF960 7F09AE30 8C6D0000 */ lw $t5, ($v1) +/* 0CF964 7F09AE34 ADA01078 */ sw $zero, 0x1078($t5) +/* 0CF968 7F09AE38 8C780000 */ lw $t8, ($v1) +/* 0CF96C 7F09AE3C E700107C */ swc1 $f0, 0x107c($t8) +/* 0CF970 7F09AE40 8C6E0000 */ lw $t6, ($v1) +/* 0CF974 7F09AE44 E5C01080 */ swc1 $f0, 0x1080($t6) +/* 0CF978 7F09AE48 8C6B0000 */ lw $t3, ($v1) +/* 0CF97C 7F09AE4C E56C1084 */ swc1 $f12, 0x1084($t3) +/* 0CF980 7F09AE50 8C6F0000 */ lw $t7, ($v1) +/* 0CF984 7F09AE54 E5EC1088 */ swc1 $f12, 0x1088($t7) +/* 0CF988 7F09AE58 8C790000 */ lw $t9, ($v1) +/* 0CF98C 7F09AE5C AF29108C */ sw $t1, 0x108c($t9) +/* 0CF990 7F09AE60 8C6C0000 */ lw $t4, ($v1) +/* 0CF994 7F09AE64 E58E1090 */ swc1 $f14, 0x1090($t4) +/* 0CF998 7F09AE68 8C6D0000 */ lw $t5, ($v1) +/* 0CF99C 7F09AE6C E5B01094 */ swc1 $f16, 0x1094($t5) +/* 0CF9A0 7F09AE70 8C780000 */ lw $t8, ($v1) +/* 0CF9A4 7F09AE74 E7001098 */ swc1 $f0, 0x1098($t8) +/* 0CF9A8 7F09AE78 8C6E0000 */ lw $t6, ($v1) +/* 0CF9AC 7F09AE7C E5C0109C */ swc1 $f0, 0x109c($t6) +/* 0CF9B0 7F09AE80 8C6B0000 */ lw $t3, ($v1) +/* 0CF9B4 7F09AE84 E56610A0 */ swc1 $f6, 0x10a0($t3) +/* 0CF9B8 7F09AE88 8C6F0000 */ lw $t7, ($v1) +/* 0CF9BC 7F09AE8C E5E810A4 */ swc1 $f8, 0x10a4($t7) +/* 0CF9C0 7F09AE90 8C790000 */ lw $t9, ($v1) +/* 0CF9C4 7F09AE94 E72210A8 */ swc1 $f2, 0x10a8($t9) +/* 0CF9C8 7F09AE98 8C6C0000 */ lw $t4, ($v1) +/* 0CF9CC 7F09AE9C E58A10AC */ swc1 $f10, 0x10ac($t4) +/* 0CF9D0 7F09AEA0 8C6D0000 */ lw $t5, ($v1) +/* 0CF9D4 7F09AEA4 E5B210B0 */ swc1 $f18, 0x10b0($t5) +/* 0CF9D8 7F09AEA8 8C780000 */ lw $t8, ($v1) +/* 0CF9DC 7F09AEAC E70210B4 */ swc1 $f2, 0x10b4($t8) +/* 0CF9E0 7F09AEB0 8C6E0000 */ lw $t6, ($v1) +/* 0CF9E4 7F09AEB4 E5C210B8 */ swc1 $f2, 0x10b8($t6) +/* 0CF9E8 7F09AEB8 8C6B0000 */ lw $t3, ($v1) +/* 0CF9EC 7F09AEBC E56210BC */ swc1 $f2, 0x10bc($t3) +/* 0CF9F0 7F09AEC0 8C6F0000 */ lw $t7, ($v1) +/* 0CF9F4 7F09AEC4 E5E210C0 */ swc1 $f2, 0x10c0($t7) +/* 0CF9F8 7F09AEC8 8C790000 */ lw $t9, ($v1) +/* 0CF9FC 7F09AECC AF2010C4 */ sw $zero, 0x10c4($t9) +/* 0CFA00 7F09AED0 8C6C0000 */ lw $t4, ($v1) +/* 0CFA04 7F09AED4 AD8010C8 */ sw $zero, 0x10c8($t4) +/* 0CFA08 7F09AED8 8C6D0000 */ lw $t5, ($v1) +/* 0CFA0C 7F09AEDC ADA010CC */ sw $zero, 0x10cc($t5) +/* 0CFA10 7F09AEE0 8C780000 */ lw $t8, ($v1) +/* 0CFA14 7F09AEE4 AF0010D0 */ sw $zero, 0x10d0($t8) +/* 0CFA18 7F09AEE8 8C6E0000 */ lw $t6, ($v1) +/* 0CFA1C 7F09AEEC ADC010D4 */ sw $zero, 0x10d4($t6) +/* 0CFA20 7F09AEF0 8C6B0000 */ lw $t3, ($v1) +/* 0CFA24 7F09AEF4 AD6010D8 */ sw $zero, 0x10d8($t3) +/* 0CFA28 7F09AEF8 8C6F0000 */ lw $t7, ($v1) +/* 0CFA2C 7F09AEFC ADE010DC */ sw $zero, 0x10dc($t7) +/* 0CFA30 7F09AF00 8C790000 */ lw $t9, ($v1) +/* 0CFA34 7F09AF04 AF2010E0 */ sw $zero, 0x10e0($t9) +/* 0CFA38 7F09AF08 8C6C0000 */ lw $t4, ($v1) +/* 0CFA3C 7F09AF0C 3C190001 */ lui $t9, 1 +/* 0CFA40 7F09AF10 AD8010E4 */ sw $zero, 0x10e4($t4) +/* 0CFA44 7F09AF14 8C6D0000 */ lw $t5, ($v1) +/* 0CFA48 7F09AF18 ADA010E8 */ sw $zero, 0x10e8($t5) +/* 0CFA4C 7F09AF1C 8C780000 */ lw $t8, ($v1) +/* 0CFA50 7F09AF20 AF0010EC */ sw $zero, 0x10ec($t8) +/* 0CFA54 7F09AF24 8C6E0000 */ lw $t6, ($v1) +/* 0CFA58 7F09AF28 E5C210F0 */ swc1 $f2, 0x10f0($t6) +/* 0CFA5C 7F09AF2C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA60 7F09AF30 E56210F4 */ swc1 $f2, 0x10f4($t3) +/* 0CFA64 7F09AF34 8C6F0000 */ lw $t7, ($v1) +/* 0CFA68 7F09AF38 E5E210F8 */ swc1 $f2, 0x10f8($t7) +/* 0CFA6C 7F09AF3C 8C6C0000 */ lw $t4, ($v1) +/* 0CFA70 7F09AF40 AD9910FC */ sw $t9, 0x10fc($t4) +/* 0CFA74 7F09AF44 8C6D0000 */ lw $t5, ($v1) +/* 0CFA78 7F09AF48 E5A01118 */ swc1 $f0, 0x1118($t5) +/* 0CFA7C 7F09AF4C 8C780000 */ lw $t8, ($v1) +/* 0CFA80 7F09AF50 E700111C */ swc1 $f0, 0x111c($t8) +/* 0CFA84 7F09AF54 8C6E0000 */ lw $t6, ($v1) +/* 0CFA88 7F09AF58 E5CE1120 */ swc1 $f14, 0x1120($t6) +/* 0CFA8C 7F09AF5C 8C6B0000 */ lw $t3, ($v1) +/* 0CFA90 7F09AF60 E5701124 */ swc1 $f16, 0x1124($t3) +/* 0CFA94 7F09AF64 8C6F0000 */ lw $t7, ($v1) +/* 0CFA98 7F09AF68 ADE01128 */ sw $zero, 0x1128($t7) +/* 0CFA9C 7F09AF6C 8C790000 */ lw $t9, ($v1) +/* 0CFAA0 7F09AF70 AF2011B0 */ sw $zero, 0x11b0($t9) +/* 0CFAA4 7F09AF74 8C6C0000 */ lw $t4, ($v1) +/* 0CFAA8 7F09AF78 AD8011B4 */ sw $zero, 0x11b4($t4) +/* 0CFAAC 7F09AF7C 8C6D0000 */ lw $t5, ($v1) +/* 0CFAB0 7F09AF80 ADA011B8 */ sw $zero, 0x11b8($t5) +/* 0CFAB4 7F09AF84 8C780000 */ lw $t8, ($v1) +/* 0CFAB8 7F09AF88 E70011BC */ swc1 $f0, 0x11bc($t8) +/* 0CFABC 7F09AF8C 8C6E0000 */ lw $t6, ($v1) +/* 0CFAC0 7F09AF90 E5C011C0 */ swc1 $f0, 0x11c0($t6) +/* 0CFAC4 7F09AF94 8C6B0000 */ lw $t3, ($v1) +/* 0CFAC8 7F09AF98 E56C11C4 */ swc1 $f12, 0x11c4($t3) +/* 0CFACC 7F09AF9C 8C6F0000 */ lw $t7, ($v1) +/* 0CFAD0 7F09AFA0 E5EC11C8 */ swc1 $f12, 0x11c8($t7) +/* 0CFAD4 7F09AFA4 8C790000 */ lw $t9, ($v1) +/* 0CFAD8 7F09AFA8 E72C11CC */ swc1 $f12, 0x11cc($t9) +/* 0CFADC 7F09AFAC 8C6C0000 */ lw $t4, ($v1) +/* 0CFAE0 7F09AFB0 E58C11D0 */ swc1 $f12, 0x11d0($t4) +/* 0CFAE4 7F09AFB4 8C6D0000 */ lw $t5, ($v1) +/* 0CFAE8 7F09AFB8 C4247628 */ lwc1 $f4, %lo(D_80057628)($at) +/* 0CFAEC 7F09AFBC 3C018003 */ lui $at, %hi(invisible_to_guards_flag) +/* 0CFAF0 7F09AFC0 E5A411D4 */ swc1 $f4, 0x11d4($t5) +/* 0CFAF4 7F09AFC4 8C780000 */ lw $t8, ($v1) +/* 0CFAF8 7F09AFC8 AF0011D8 */ sw $zero, 0x11d8($t8) +/* 0CFAFC 7F09AFCC 8C6E0000 */ lw $t6, ($v1) +/* 0CFB00 7F09AFD0 ADC911DC */ sw $t1, 0x11dc($t6) +/* 0CFB04 7F09AFD4 8C6B0000 */ lw $t3, ($v1) +/* 0CFB08 7F09AFD8 AD6011E0 */ sw $zero, 0x11e0($t3) +/* 0CFB0C 7F09AFDC 8C6F0000 */ lw $t7, ($v1) +/* 0CFB10 7F09AFE0 ADE011E4 */ sw $zero, 0x11e4($t7) +/* 0CFB14 7F09AFE4 8C790000 */ lw $t9, ($v1) +/* 0CFB18 7F09AFE8 AF2011E8 */ sw $zero, 0x11e8($t9) +/* 0CFB1C 7F09AFEC 8C6C0000 */ lw $t4, ($v1) +/* 0CFB20 7F09AFF0 AD8011EC */ sw $zero, 0x11ec($t4) +/* 0CFB24 7F09AFF4 8C6D0000 */ lw $t5, ($v1) +/* 0CFB28 7F09AFF8 ADA011F0 */ sw $zero, 0x11f0($t5) +/* 0CFB2C 7F09AFFC 8C780000 */ lw $t8, ($v1) +/* 0CFB30 7F09B000 AF0011F4 */ sw $zero, 0x11f4($t8) +/* 0CFB34 7F09B004 8C6E0000 */ lw $t6, ($v1) +/* 0CFB38 7F09B008 E5C01280 */ swc1 $f0, 0x1280($t6) +/* 0CFB3C 7F09B00C 8C6B0000 */ lw $t3, ($v1) +/* 0CFB40 7F09B010 AD601284 */ sw $zero, 0x1284($t3) +/* 0CFB44 7F09B014 8C6F0000 */ lw $t7, ($v1) +/* 0CFB48 7F09B018 E5E01288 */ swc1 $f0, 0x1288($t7) +/* 0CFB4C 7F09B01C 8C790000 */ lw $t9, ($v1) +/* 0CFB50 7F09B020 A32012B6 */ sb $zero, 0x12b6($t9) +/* 0CFB54 7F09B024 8C6C0000 */ lw $t4, ($v1) +/* 0CFB58 7F09B028 AD8429B8 */ sw $a0, 0x29b8($t4) +/* 0CFB5C 7F09B02C 8C6D0000 */ lw $t5, ($v1) +/* 0CFB60 7F09B030 E5A229BC */ swc1 $f2, 0x29bc($t5) +/* 0CFB64 7F09B034 8C780000 */ lw $t8, ($v1) +/* 0CFB68 7F09B038 E70029C0 */ swc1 $f0, 0x29c0($t8) +/* 0CFB6C 7F09B03C 8C6E0000 */ lw $t6, ($v1) +/* 0CFB70 7F09B040 ADC029C4 */ sw $zero, 0x29c4($t6) +/* 0CFB74 7F09B044 8C6B0000 */ lw $t3, ($v1) +/* 0CFB78 7F09B048 AD6429D4 */ sw $a0, 0x29d4($t3) +/* 0CFB7C 7F09B04C 8C6F0000 */ lw $t7, ($v1) +/* 0CFB80 7F09B050 ADE029D8 */ sw $zero, 0x29d8($t7) +/* 0CFB84 7F09B054 8C6C0000 */ lw $t4, ($v1) +/* 0CFB88 7F09B058 8C590000 */ lw $t9, ($v0) +/* 0CFB8C 7F09B05C AD9929E0 */ sw $t9, 0x29e0($t4) +/* 0CFB90 7F09B060 8C4D0000 */ lw $t5, ($v0) +/* 0CFB94 7F09B064 8C6E0000 */ lw $t6, ($v1) +/* 0CFB98 7F09B068 25B80001 */ addiu $t8, $t5, 1 +/* 0CFB9C 7F09B06C AC580000 */ sw $t8, ($v0) +/* 0CFBA0 7F09B070 ADC929E4 */ sw $t1, 0x29e4($t6) +/* 0CFBA4 7F09B074 8C6B0000 */ lw $t3, ($v1) +/* 0CFBA8 7F09B078 AD6929E8 */ sw $t1, 0x29e8($t3) +/* 0CFBAC 7F09B07C 8C6F0000 */ lw $t7, ($v1) +/* 0CFBB0 7F09B080 ADE929EC */ sw $t1, 0x29ec($t7) +/* 0CFBB4 7F09B084 8C790000 */ lw $t9, ($v1) +/* 0CFBB8 7F09B088 AF2929F0 */ sw $t1, 0x29f0($t9) +/* 0CFBBC 7F09B08C 8C6C0000 */ lw $t4, ($v1) +/* 0CFBC0 7F09B090 AD802A00 */ sw $zero, 0x2a00($t4) +/* 0CFBC4 7F09B094 8C6D0000 */ lw $t5, ($v1) +/* 0CFBC8 7F09B098 ADA02A30 */ sw $zero, 0x2a30($t5) +/* 0CFBCC 7F09B09C 8C780000 */ lw $t8, ($v1) +/* 0CFBD0 7F09B0A0 AF002A34 */ sw $zero, 0x2a34($t8) +/* 0CFBD4 7F09B0A4 8C6E0000 */ lw $t6, ($v1) +/* 0CFBD8 7F09B0A8 ADC82A38 */ sw $t0, 0x2a38($t6) +/* 0CFBDC 7F09B0AC 8C6B0000 */ lw $t3, ($v1) +/* 0CFBE0 7F09B0B0 E5622A3C */ swc1 $f2, 0x2a3c($t3) +/* 0CFBE4 7F09B0B4 8C6F0000 */ lw $t7, ($v1) +/* 0CFBE8 7F09B0B8 E5E22A40 */ swc1 $f2, 0x2a40($t7) +/* 0CFBEC 7F09B0BC 8C790000 */ lw $t9, ($v1) +/* 0CFBF0 7F09B0C0 AF202A58 */ sw $zero, 0x2a58($t9) +/* 0CFBF4 7F09B0C4 8C6C0000 */ lw $t4, ($v1) +/* 0CFBF8 7F09B0C8 AD802A5C */ sw $zero, 0x2a5c($t4) +/* 0CFBFC 7F09B0CC 8C6D0000 */ lw $t5, ($v1) +/* 0CFC00 7F09B0D0 E5A02A60 */ swc1 $f0, 0x2a60($t5) +/* 0CFC04 7F09B0D4 8C780000 */ lw $t8, ($v1) +/* 0CFC08 7F09B0D8 AF002A64 */ sw $zero, 0x2a64($t8) +/* 0CFC0C 7F09B0DC 8C6E0000 */ lw $t6, ($v1) +/* 0CFC10 7F09B0E0 ADC82A68 */ sw $t0, 0x2a68($t6) +/* 0CFC14 7F09B0E4 8C6B0000 */ lw $t3, ($v1) +/* 0CFC18 7F09B0E8 AD602A6C */ sw $zero, 0x2a6c($t3) +/* 0CFC1C 7F09B0EC 8C6F0000 */ lw $t7, ($v1) +/* 0CFC20 7F09B0F0 ADE02A70 */ sw $zero, 0x2a70($t7) +/* 0CFC24 7F09B0F4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0CFC28 7F09B0F8 AC2864C4 */ sw $t0, %lo(invisible_to_guards_flag)($at) +/* 0CFC2C 7F09B0FC 3C018003 */ lui $at, %hi(obj_collision_flag) +/* 0CFC30 7F09B100 AC2864C8 */ sw $t0, %lo(obj_collision_flag)($at) +/* 0CFC34 7F09B104 03E00008 */ jr $ra +/* 0CFC38 7F09B108 27BD03D0 */ addiu $sp, $sp, 0x3d0 +) +#endif + + #endif #ifdef NONMATCHING -void set_cur_player(PLAYER_ID playernum) +void set_cur_player(s32 playernum) { pPlayer = players[playernum]; pPlayersPerm = player1_playerdata[playernum]; @@ -10180,7 +10995,7 @@ glabel sub_GAME_7F09B41C /* 0CFF98 7F09B468 24140003 */ li $s4, 3 /* 0CFF9C 7F09B46C 24130004 */ li $s3, 4 .L7F09B470: -/* 0CFFA0 7F09B470 0C002914 */ jal get_random_value +/* 0CFFA0 7F09B470 0C002914 */ jal randomGetNext /* 0CFFA4 7F09B474 00000000 */ nop /* 0CFFA8 7F09B478 02707823 */ subu $t7, $s3, $s0 /* 0CFFAC 7F09B47C 004F001B */ divu $zero, $v0, $t7 @@ -10287,7 +11102,7 @@ glabel sub_GAME_7F09B4D8 #ifdef NONMATCHING -int proc_7F09B528(int param_1) +s32 sub_GAME_7F09B528(s32 param_1) { if (players[dword_CODE_bss_8007A0C0] != NULL) { if (param_1 == 0) { diff --git a/src/game/unk_093880.h b/src/game/unk_093880.h index 2e473c3..68e088f 100644 --- a/src/game/unk_093880.h +++ b/src/game/unk_093880.h @@ -46,4 +46,12 @@ extern struct player_data player4_player_data; extern struct player *pPlayer; extern struct player_data *pPlayersPerm; + +void reset_play_data_ptrs(void); +void init_player_data_ptrs_construct_viewports(int playercount); +void sub_GAME_7F09B41C(void); +s32 sub_GAME_7F09B528(s32 param_1); +void set_cur_player(s32 playernum); +s32 getPlayerCount(void); + #endif diff --git a/src/game/unk_09B600.c b/src/game/unk_09B600.c index 6461979..77b2e34 100644 --- a/src/game/unk_09B600.c +++ b/src/game/unk_09B600.c @@ -51,7 +51,7 @@ glabel sub_GAME_7F09B600 /* 0D01B8 7F09B688 01CC7021 */ addu $t6, $t6, $t4 /* 0D01BC 7F09B68C AFAE0048 */ sw $t6, 0x48($sp) /* 0D01C0 7F09B690 AFAF004C */ sw $t7, 0x4c($sp) -/* 0D01C4 7F09B694 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D01C4 7F09B694 0C00292B */ jal randomGetNextFrom /* 0D01C8 7F09B698 02402025 */ move $a0, $s2 /* 0D01CC 7F09B69C 26100001 */ addiu $s0, $s0, 1 /* 0D01D0 7F09B6A0 26310007 */ addiu $s1, $s1, 7 @@ -77,7 +77,7 @@ glabel sub_GAME_7F09B600 /* 0D0218 7F09B6E8 018A6021 */ addu $t4, $t4, $t2 /* 0D021C 7F09B6EC AFAC0048 */ sw $t4, 0x48($sp) /* 0D0220 7F09B6F0 AFAD004C */ sw $t5, 0x4c($sp) -/* 0D0224 7F09B6F4 0C00292B */ jal lotsa_shifting_randomizer_related +/* 0D0224 7F09B6F4 0C00292B */ jal randomGetNextFrom /* 0D0228 7F09B6F8 02402025 */ move $a0, $s2 /* 0D022C 7F09B6FC 2610FFFF */ addiu $s0, $s0, -1 /* 0D0230 7F09B700 26310003 */ addiu $s1, $s1, 3 diff --git a/src/game/unk_09B740.c b/src/game/unk_09B740.c deleted file mode 100644 index 5a5ba7a..0000000 --- a/src/game/unk_09B740.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "ultra64.h" - - -// data -//D:80040160 -u64 random_val = 0xAB8D9F7781280783; - - - -#ifdef NONMATCHING -void sub_GAME_7F09B740(void) { - -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F09B740 -/* 0D0270 7F09B740 3C048004 */ lui $a0, %hi(random_val) -/* 0D0274 7F09B744 DC840160 */ ld $a0, %lo(random_val)($a0) -/* 0D0278 7F09B748 3C018004 */ lui $at, %hi(random_val) -/* 0D027C 7F09B74C 000437FC */ dsll32 $a2, $a0, 0x1f -/* 0D0280 7F09B750 00042FF8 */ dsll $a1, $a0, 0x1f -/* 0D0284 7F09B754 000637FA */ dsrl $a2, $a2, 0x1f -/* 0D0288 7F09B758 0005283E */ dsrl32 $a1, $a1, 0 -/* 0D028C 7F09B75C 0004233C */ dsll32 $a0, $a0, 0xc -/* 0D0290 7F09B760 00C53025 */ or $a2, $a2, $a1 -/* 0D0294 7F09B764 0004203E */ dsrl32 $a0, $a0, 0 -/* 0D0298 7F09B768 00C43026 */ xor $a2, $a2, $a0 -/* 0D029C 7F09B76C 0006253A */ dsrl $a0, $a2, 0x14 -/* 0D02A0 7F09B770 30840FFF */ andi $a0, $a0, 0xfff -/* 0D02A4 7F09B774 00862026 */ xor $a0, $a0, $a2 -/* 0D02A8 7F09B778 0004103C */ dsll32 $v0, $a0, 0 -/* 0D02AC 7F09B77C FC240160 */ sd $a0, %lo(random_val)($at) -/* 0D02B0 7F09B780 03E00008 */ jr $ra -/* 0D02B4 7F09B784 0002103F */ dsra32 $v0, $v0, 0 -) -#endif - - - - - -#ifdef NONMATCHING -void sub_GAME_7F09B788(u64 param_1) -{ - random_val = param_1 + 1; -} -#else -GLOBAL_ASM( -.text -glabel sub_GAME_7F09B788 -/* 0D02B8 7F09B788 64840001 */ daddiu $a0, $a0, 1 -/* 0D02BC 7F09B78C 3C018004 */ lui $at, %hi(random_val) -/* 0D02C0 7F09B790 FC240160 */ sd $a0, %lo(random_val)($at) -/* 0D02C4 7F09B794 03E00008 */ jr $ra -/* 0D02C8 7F09B798 24040000 */ li $a0, 0 -) -#endif - - diff --git a/src/game/unk_09C250.c b/src/game/unk_09C250.c index 0bfe218..5c38ea6 100644 --- a/src/game/unk_09C250.c +++ b/src/game/unk_09C250.c @@ -1,21 +1,22 @@ #include "ultra64.h" #include "game/unk_09C250.h" +#include "structs.h" // bss //CODE.bss:8007A100 char dword_CODE_bss_8007A100[0x40]; //CODE.bss:8007A140 -u32 *ptr_smoke_buf; +struct prop *ptr_smoke_buf; //CODE.bss:8007A144 -u32 *ptr_explosion_buf; +struct prop *ptr_explosion_buf; //CODE.bss:8007A148 s32 max_casings; //CODE.bss:8007A14C -u32 *ptr_ejected_casing_buf; +u8 *ptr_ejected_casing_buf; //CODE.bss:8007A150 -u32 *ptr_scorch_buf; +u8 *ptr_scorch_buf; //CODE.bss:8007A154 -u32 *ptr_bullet_impact_buf; +u8 *ptr_bullet_impact_buf; // data //D:80040170 @@ -243,11 +244,11 @@ glabel sub_GAME_7F09C250 /* 0D0E34 7F09C304 8FA80040 */ lw $t0, 0x40($sp) /* 0D0E38 7F09C308 00403825 */ move $a3, $v0 /* 0D0E3C 7F09C30C 1860000E */ blez $v1, .L7F09C348 -/* 0D0E40 7F09C310 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D0E40 7F09C310 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0D0E44 7F09C314 00032C00 */ sll $a1, $v1, 0x10 /* 0D0E48 7F09C318 0005C403 */ sra $t8, $a1, 0x10 /* 0D0E4C 7F09C31C 03002825 */ move $a1, $t8 -/* 0D0E50 7F09C320 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D0E50 7F09C320 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0D0E54 7F09C324 00003025 */ move $a2, $zero /* 0D0E58 7F09C328 AFA20030 */ sw $v0, 0x30($sp) /* 0D0E5C 7F09C32C 0C002382 */ jal play_sfx_a1 @@ -374,7 +375,7 @@ glabel sub_GAME_7F09C250 /* 0D1028 7F09C4F8 C43276B0 */ lwc1 $f18, %lo(D_800576B0)($at) /* 0D102C 7F09C4FC E51203D0 */ swc1 $f18, 0x3d0($t0) .L7F09C500: -/* 0D1030 7F09C500 0C002914 */ jal get_random_value +/* 0D1030 7F09C500 0C002914 */ jal randomGetNext /* 0D1034 7F09C504 AFA80040 */ sw $t0, 0x40($sp) /* 0D1038 7F09C508 44822000 */ mtc1 $v0, $f4 /* 0D103C 7F09C50C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -395,7 +396,7 @@ glabel sub_GAME_7F09C250 /* 0D1074 7F09C544 46128102 */ mul.s $f4, $f16, $f18 /* 0D1078 7F09C548 46082180 */ add.s $f6, $f4, $f8 /* 0D107C 7F09C54C 460A3402 */ mul.s $f16, $f6, $f10 -/* 0D1080 7F09C550 0C002914 */ jal get_random_value +/* 0D1080 7F09C550 0C002914 */ jal randomGetNext /* 0D1084 7F09C554 E7B0003C */ swc1 $f16, 0x3c($sp) /* 0D1088 7F09C558 44829000 */ mtc1 $v0, $f18 /* 0D108C 7F09C55C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -610,7 +611,7 @@ glabel sub_GAME_7F09C250 /* 0D19F0 7F09CE80 24010010 */ li $at, 16 /* 0D19F4 7F09CE84 00403825 */ move $a3, $v0 /* 0D19F8 7F09CE88 11C10006 */ beq $t6, $at, .Ljp7F09CEA4 -/* 0D19FC 7F09CE8C 3C048006 */ lui $a0, %hi(ptr_sfx_buf) # $a0, 0x8006 +/* 0D19FC 7F09CE8C 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) # $a0, 0x8006 /* 0D1A00 7F09CE90 24010001 */ li $at, 1 /* 0D1A04 7F09CE94 11C10003 */ beq $t6, $at, .Ljp7F09CEA4 /* 0D1A08 7F09CE98 240F0006 */ li $t7, 6 @@ -623,7 +624,7 @@ glabel sub_GAME_7F09C250 /* 0D1A20 7F09CEB0 00022C00 */ sll $a1, $v0, 0x10 /* 0D1A24 7F09CEB4 0005C403 */ sra $t8, $a1, 0x10 /* 0D1A28 7F09CEB8 03002825 */ move $a1, $t8 -/* 0D1A2C 7F09CEBC 8C843760 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D1A2C 7F09CEBC 8C843760 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0D1A30 7F09CEC0 0C002386 */ jal play_sfx_a1 /* 0D1A34 7F09CEC4 AFA70038 */ sw $a3, 0x38($sp) /* 0D1A38 7F09CEC8 00402025 */ move $a0, $v0 @@ -740,7 +741,7 @@ glabel sub_GAME_7F09C250 /* 0D1BDC 7F09D06C C43276E0 */ lwc1 $f18, %lo(D_800576B0)($at) /* 0D1BE0 7F09D070 E69203D0 */ swc1 $f18, 0x3d0($s4) .Ljp7F09D074: -/* 0D1BE4 7F09D074 0C002918 */ jal get_random_value +/* 0D1BE4 7F09D074 0C002918 */ jal randomGetNext /* 0D1BE8 7F09D078 00000000 */ nop /* 0D1BEC 7F09D07C 44822000 */ mtc1 $v0, $f4 /* 0D1BF0 7F09D080 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -761,7 +762,7 @@ glabel sub_GAME_7F09C250 /* 0D1C28 7F09D0B8 46128102 */ mul.s $f4, $f16, $f18 /* 0D1C2C 7F09D0BC 46082180 */ add.s $f6, $f4, $f8 /* 0D1C30 7F09D0C0 460A3402 */ mul.s $f16, $f6, $f10 -/* 0D1C34 7F09D0C4 0C002918 */ jal get_random_value +/* 0D1C34 7F09D0C4 0C002918 */ jal randomGetNext /* 0D1C38 7F09D0C8 E7B00044 */ swc1 $f16, 0x44($sp) /* 0D1C3C 7F09D0CC 44829000 */ mtc1 $v0, $f18 /* 0D1C40 7F09D0D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -925,6 +926,384 @@ glabel sub_GAME_7F09C250 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_800576B0 +.word 0x497423fe /*999999.88*/ +glabel D_800576B4 +.word 0x40c90fdb /*6.2831855*/ +.text +glabel sub_GAME_7F09C250 +/* 0D0D80 7F09C250 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 0D0D84 7F09C254 00077400 */ sll $t6, $a3, 0x10 +/* 0D0D88 7F09C258 000E7C03 */ sra $t7, $t6, 0x10 +/* 0D0D8C 7F09C25C 3C198004 */ lui $t9, %hi(D_8004017C+0x108) +/* 0D0D90 7F09C260 AFB10020 */ sw $s1, 0x20($sp) +/* 0D0D94 7F09C264 27390284 */ addiu $t9, %lo(D_8004017C+0x108) # addiu $t9, $t9, 0x284 +/* 0D0D98 7F09C268 000FC180 */ sll $t8, $t7, 6 +/* 0D0D9C 7F09C26C AFB30028 */ sw $s3, 0x28($sp) +/* 0D0DA0 7F09C270 AFA70054 */ sw $a3, 0x54($sp) +/* 0D0DA4 7F09C274 03198821 */ addu $s1, $t8, $t9 +/* 0D0DA8 7F09C278 24010010 */ li $at, 16 +/* 0D0DAC 7F09C27C 01E03825 */ move $a3, $t7 +/* 0D0DB0 7F09C280 00A09825 */ move $s3, $a1 +/* 0D0DB4 7F09C284 AFBF002C */ sw $ra, 0x2c($sp) +/* 0D0DB8 7F09C288 AFB20024 */ sw $s2, 0x24($sp) +/* 0D0DBC 7F09C28C AFB0001C */ sw $s0, 0x1c($sp) +/* 0D0DC0 7F09C290 AFA40048 */ sw $a0, 0x48($sp) +/* 0D0DC4 7F09C294 AFA60050 */ sw $a2, 0x50($sp) +/* 0D0DC8 7F09C298 AFB10044 */ sw $s1, 0x44($sp) +/* 0D0DCC 7F09C29C 11E10006 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DD0 7F09C2A0 00004025 */ move $t0, $zero +/* 0D0DD4 7F09C2A4 24010001 */ li $at, 1 +/* 0D0DD8 7F09C2A8 11E10003 */ beq $t7, $at, .L7F09C2B8 +/* 0D0DDC 7F09C2AC 240E0006 */ li $t6, 6 +/* 0D0DE0 7F09C2B0 3C018004 */ lui $at, %hi(D_80040170) +/* 0D0DE4 7F09C2B4 AC2E0170 */ sw $t6, %lo(D_80040170)($at) +.L7F09C2B8: +/* 0D0DE8 7F09C2B8 3C048008 */ lui $a0, %hi(ptr_explosion_buf) +/* 0D0DEC 7F09C2BC 8C84A144 */ lw $a0, %lo(ptr_explosion_buf)($a0) +/* 0D0DF0 7F09C2C0 00001025 */ move $v0, $zero +/* 0D0DF4 7F09C2C4 00801825 */ move $v1, $a0 +.L7F09C2C8: +/* 0D0DF8 7F09C2C8 8C6F0000 */ lw $t7, ($v1) +/* 0D0DFC 7F09C2CC 55E00004 */ bnezl $t7, .L7F09C2E0 +/* 0D0E00 7F09C2D0 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D0E04 7F09C2D4 10000005 */ b .L7F09C2EC +/* 0D0E08 7F09C2D8 00444021 */ addu $t0, $v0, $a0 +/* 0D0E0C 7F09C2DC 244203E0 */ addiu $v0, $v0, 0x3e0 +.L7F09C2E0: +/* 0D0E10 7F09C2E0 28411740 */ slti $at, $v0, 0x1740 +/* 0D0E14 7F09C2E4 1420FFF8 */ bnez $at, .L7F09C2C8 +/* 0D0E18 7F09C2E8 246303E0 */ addiu $v1, $v1, 0x3e0 +.L7F09C2EC: +/* 0D0E1C 7F09C2EC 51000129 */ beql $t0, $zero, .L7F09C794 +/* 0D0E20 7F09C2F0 8FBF002C */ lw $ra, 0x2c($sp) +/* 0D0E24 7F09C2F4 A7A70056 */ sh $a3, 0x56($sp) +/* 0D0E28 7F09C2F8 0FC0E90C */ jal remove_last_obj_pos_data_entry +/* 0D0E2C 7F09C2FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E30 7F09C300 92230039 */ lbu $v1, 0x39($s1) +/* 0D0E34 7F09C304 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0E38 7F09C308 00403825 */ move $a3, $v0 +/* 0D0E3C 7F09C30C 1860000E */ blez $v1, .L7F09C348 +/* 0D0E40 7F09C310 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D0E44 7F09C314 00032C00 */ sll $a1, $v1, 0x10 +/* 0D0E48 7F09C318 0005C403 */ sra $t8, $a1, 0x10 +/* 0D0E4C 7F09C31C 03002825 */ move $a1, $t8 +/* 0D0E50 7F09C320 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D0E54 7F09C324 00003025 */ move $a2, $zero +/* 0D0E58 7F09C328 AFA20030 */ sw $v0, 0x30($sp) +/* 0D0E5C 7F09C32C 0C002382 */ jal play_sfx_a1 +/* 0D0E60 7F09C330 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0E64 7F09C334 00402025 */ move $a0, $v0 +/* 0D0E68 7F09C338 0FC14E84 */ jal sub_GAME_7F053A10 +/* 0D0E6C 7F09C33C 02602825 */ move $a1, $s3 +/* 0D0E70 7F09C340 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0E74 7F09C344 8FA80040 */ lw $t0, 0x40($sp) +.L7F09C348: +/* 0D0E78 7F09C348 10E00111 */ beqz $a3, .L7F09C790 +/* 0D0E7C 7F09C34C 8FA60060 */ lw $a2, 0x60($sp) +/* 0D0E80 7F09C350 90EE0001 */ lbu $t6, 1($a3) +/* 0D0E84 7F09C354 24190007 */ li $t9, 7 +/* 0D0E88 7F09C358 A0F90000 */ sb $t9, ($a3) +/* 0D0E8C 7F09C35C 35CF0002 */ ori $t7, $t6, 2 +/* 0D0E90 7F09C360 A0EF0001 */ sb $t7, 1($a3) +/* 0D0E94 7F09C364 ACE80004 */ sw $t0, 4($a3) +/* 0D0E98 7F09C368 8FB80050 */ lw $t8, 0x50($sp) +/* 0D0E9C 7F09C36C 240500FF */ li $a1, 255 +/* 0D0EA0 7F09C370 00008025 */ move $s0, $zero +/* 0D0EA4 7F09C374 ACF80014 */ sw $t8, 0x14($a3) +/* 0D0EA8 7F09C378 C6640000 */ lwc1 $f4, ($s3) +/* 0D0EAC 7F09C37C 240E00FF */ li $t6, 255 +/* 0D0EB0 7F09C380 E4E40008 */ swc1 $f4, 8($a3) +/* 0D0EB4 7F09C384 C6660004 */ lwc1 $f6, 4($s3) +/* 0D0EB8 7F09C388 E4E6000C */ swc1 $f6, 0xc($a3) +/* 0D0EBC 7F09C38C C6680008 */ lwc1 $f8, 8($s3) +/* 0D0EC0 7F09C390 E4E80010 */ swc1 $f8, 0x10($a3) +/* 0D0EC4 7F09C394 90D90000 */ lbu $t9, ($a2) +/* 0D0EC8 7F09C398 10B9000C */ beq $a1, $t9, .L7F09C3CC +/* 0D0ECC 7F09C39C 00E01821 */ addu $v1, $a3, $zero +/* 0D0ED0 7F09C3A0 00C01021 */ addu $v0, $a2, $zero +/* 0D0ED4 7F09C3A4 90C40000 */ lbu $a0, ($a2) +/* 0D0ED8 7F09C3A8 24120007 */ li $s2, 7 +/* 0D0EDC 7F09C3AC A064002C */ sb $a0, 0x2c($v1) +.L7F09C3B0: +/* 0D0EE0 7F09C3B0 90440001 */ lbu $a0, 1($v0) +/* 0D0EE4 7F09C3B4 26100001 */ addiu $s0, $s0, 1 +/* 0D0EE8 7F09C3B8 24630001 */ addiu $v1, $v1, 1 +/* 0D0EEC 7F09C3BC 10A40003 */ beq $a1, $a0, .L7F09C3CC +/* 0D0EF0 7F09C3C0 24420001 */ addiu $v0, $v0, 1 +/* 0D0EF4 7F09C3C4 5612FFFA */ bnel $s0, $s2, .L7F09C3B0 +/* 0D0EF8 7F09C3C8 A064002C */ sb $a0, 0x2c($v1) +.L7F09C3CC: +/* 0D0EFC 7F09C3CC 00F07821 */ addu $t7, $a3, $s0 +/* 0D0F00 7F09C3D0 A1EE002C */ sb $t6, 0x2c($t7) +/* 0D0F04 7F09C3D4 8FB80064 */ lw $t8, 0x64($sp) +/* 0D0F08 7F09C3D8 24120007 */ li $s2, 7 +/* 0D0F0C 7F09C3DC 00008025 */ move $s0, $zero +/* 0D0F10 7F09C3E0 13000004 */ beqz $t8, .L7F09C3F4 +/* 0D0F14 7F09C3E4 00E02025 */ move $a0, $a3 +/* 0D0F18 7F09C3E8 90F90001 */ lbu $t9, 1($a3) +/* 0D0F1C 7F09C3EC 372E0008 */ ori $t6, $t9, 8 +/* 0D0F20 7F09C3F0 A0EE0001 */ sb $t6, 1($a3) +.L7F09C3F4: +/* 0D0F24 7F09C3F4 AFA70030 */ sw $a3, 0x30($sp) +/* 0D0F28 7F09C3F8 0FC0E93C */ jal sub_GAME_7F03A4F0 +/* 0D0F2C 7F09C3FC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0F30 7F09C400 0FC0E901 */ jal set_stateflag_0x04_for_posdata +/* 0D0F34 7F09C404 8FA40030 */ lw $a0, 0x30($sp) +/* 0D0F38 7F09C408 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0F3C 7F09C40C 8FA20058 */ lw $v0, 0x58($sp) +/* 0D0F40 7F09C410 8FA70030 */ lw $a3, 0x30($sp) +/* 0D0F44 7F09C414 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0F48 7F09C418 87AF0056 */ lh $t7, 0x56($sp) +/* 0D0F4C 7F09C41C 2418FFFF */ li $t8, -1 +/* 0D0F50 7F09C420 A50003C8 */ sh $zero, 0x3c8($t0) +/* 0D0F54 7F09C424 A51803CA */ sh $t8, 0x3ca($t0) +/* 0D0F58 7F09C428 A10203CD */ sb $v0, 0x3cd($t0) +/* 0D0F5C 7F09C42C AD070000 */ sw $a3, ($t0) +/* 0D0F60 7F09C430 AD090004 */ sw $t1, 4($t0) +/* 0D0F64 7F09C434 A10F03CC */ sb $t7, 0x3cc($t0) +/* 0D0F68 7F09C438 8FB9005C */ lw $t9, 0x5c($sp) +/* 0D0F6C 7F09C43C 3C018005 */ lui $at, %hi(D_800576B0) +/* 0D0F70 7F09C440 1040002D */ beqz $v0, .L7F09C4F8 +/* 0D0F74 7F09C444 A11903CE */ sb $t9, 0x3ce($t0) +/* 0D0F78 7F09C448 51200019 */ beql $t1, $zero, .L7F09C4B0 +/* 0D0F7C 7F09C44C C6660000 */ lwc1 $f6, ($s3) +/* 0D0F80 7F09C450 8D2E0014 */ lw $t6, 0x14($t1) +/* 0D0F84 7F09C454 51C00016 */ beql $t6, $zero, .L7F09C4B0 +/* 0D0F88 7F09C458 C6660000 */ lwc1 $f6, ($s3) +/* 0D0F8C 7F09C45C C52A0008 */ lwc1 $f10, 8($t1) +/* 0D0F90 7F09C460 E50A03D0 */ swc1 $f10, 0x3d0($t0) +/* 0D0F94 7F09C464 8D260010 */ lw $a2, 0x10($t1) +/* 0D0F98 7F09C468 8D250008 */ lw $a1, 8($t1) +/* 0D0F9C 7F09C46C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FA0 7F09C470 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FA4 7F09C474 AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FA8 7F09C478 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FAC 7F09C47C 44818000 */ mtc1 $at, $f16 +/* 0D0FB0 7F09C480 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FB4 7F09C484 8FA90048 */ lw $t1, 0x48($sp) +/* 0D0FB8 7F09C488 46100480 */ add.s $f18, $f0, $f16 +/* 0D0FBC 7F09C48C E51203D4 */ swc1 $f18, 0x3d4($t0) +/* 0D0FC0 7F09C490 C5240010 */ lwc1 $f4, 0x10($t1) +/* 0D0FC4 7F09C494 E50403D8 */ swc1 $f4, 0x3d8($t0) +/* 0D0FC8 7F09C498 0FC2CBF6 */ jal getTileRoom +/* 0D0FCC 7F09C49C 8D240014 */ lw $a0, 0x14($t1) +/* 0D0FD0 7F09C4A0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D0FD4 7F09C4A4 10000016 */ b .L7F09C500 +/* 0D0FD8 7F09C4A8 A50203DC */ sh $v0, 0x3dc($t0) +/* 0D0FDC 7F09C4AC C6660000 */ lwc1 $f6, ($s3) +.L7F09C4B0: +/* 0D0FE0 7F09C4B0 E50603D0 */ swc1 $f6, 0x3d0($t0) +/* 0D0FE4 7F09C4B4 8E660008 */ lw $a2, 8($s3) +/* 0D0FE8 7F09C4B8 8E650000 */ lw $a1, ($s3) +/* 0D0FEC 7F09C4BC AFA80040 */ sw $t0, 0x40($sp) +/* 0D0FF0 7F09C4C0 0FC2CA5C */ jal sub_GAME_7F0B2970 +/* 0D0FF4 7F09C4C4 8FA40050 */ lw $a0, 0x50($sp) +/* 0D0FF8 7F09C4C8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0D0FFC 7F09C4CC 44814000 */ mtc1 $at, $f8 +/* 0D1000 7F09C4D0 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1004 7F09C4D4 46080280 */ add.s $f10, $f0, $f8 +/* 0D1008 7F09C4D8 E50A03D4 */ swc1 $f10, 0x3d4($t0) +/* 0D100C 7F09C4DC C6700008 */ lwc1 $f16, 8($s3) +/* 0D1010 7F09C4E0 E51003D8 */ swc1 $f16, 0x3d8($t0) +/* 0D1014 7F09C4E4 0FC2CBF6 */ jal getTileRoom +/* 0D1018 7F09C4E8 8FA40050 */ lw $a0, 0x50($sp) +/* 0D101C 7F09C4EC 8FA80040 */ lw $t0, 0x40($sp) +/* 0D1020 7F09C4F0 10000003 */ b .L7F09C500 +/* 0D1024 7F09C4F4 A50203DC */ sh $v0, 0x3dc($t0) +.L7F09C4F8: +/* 0D1028 7F09C4F8 C43276B0 */ lwc1 $f18, %lo(D_800576B0)($at) +/* 0D102C 7F09C4FC E51203D0 */ swc1 $f18, 0x3d0($t0) +.L7F09C500: +/* 0D1030 7F09C500 0C002914 */ jal randomGetNext +/* 0D1034 7F09C504 AFA80040 */ sw $t0, 0x40($sp) +/* 0D1038 7F09C508 44822000 */ mtc1 $v0, $f4 +/* 0D103C 7F09C50C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1040 7F09C510 04410004 */ bgez $v0, .L7F09C524 +/* 0D1044 7F09C514 468021A0 */ cvt.s.w $f6, $f4 +/* 0D1048 7F09C518 44814000 */ mtc1 $at, $f8 +/* 0D104C 7F09C51C 00000000 */ nop +/* 0D1050 7F09C520 46083180 */ add.s $f6, $f6, $f8 +.L7F09C524: +/* 0D1054 7F09C524 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D1058 7F09C528 44815000 */ mtc1 $at, $f10 +/* 0D105C 7F09C52C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0D1060 7F09C530 44819000 */ mtc1 $at, $f18 +/* 0D1064 7F09C534 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1068 7F09C538 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D106C 7F09C53C 44814000 */ mtc1 $at, $f8 +/* 0D1070 7F09C540 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 0D1074 7F09C544 46128102 */ mul.s $f4, $f16, $f18 +/* 0D1078 7F09C548 46082180 */ add.s $f6, $f4, $f8 +/* 0D107C 7F09C54C 460A3402 */ mul.s $f16, $f6, $f10 +/* 0D1080 7F09C550 0C002914 */ jal randomGetNext +/* 0D1084 7F09C554 E7B0003C */ swc1 $f16, 0x3c($sp) +/* 0D1088 7F09C558 44829000 */ mtc1 $v0, $f18 +/* 0D108C 7F09C55C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0D1090 7F09C560 04410004 */ bgez $v0, .L7F09C574 +/* 0D1094 7F09C564 46809120 */ cvt.s.w $f4, $f18 +/* 0D1098 7F09C568 44814000 */ mtc1 $at, $f8 +/* 0D109C 7F09C56C 00000000 */ nop +/* 0D10A0 7F09C570 46082100 */ add.s $f4, $f4, $f8 +.L7F09C574: +/* 0D10A4 7F09C574 3C012F80 */ li $at, 0x2F800000 # 0.000000 +/* 0D10A8 7F09C578 44813000 */ mtc1 $at, $f6 +/* 0D10AC 7F09C57C 3C018005 */ lui $at, %hi(D_800576B4) +/* 0D10B0 7F09C580 C43076B4 */ lwc1 $f16, %lo(D_800576B4)($at) +/* 0D10B4 7F09C584 46062282 */ mul.s $f10, $f4, $f6 +/* 0D10B8 7F09C588 00000000 */ nop +/* 0D10BC 7F09C58C 46105302 */ mul.s $f12, $f10, $f16 +/* 0D10C0 7F09C590 0FC15FA8 */ jal cosf +/* 0D10C4 7F09C594 E7AC0038 */ swc1 $f12, 0x38($sp) +/* 0D10C8 7F09C598 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 0D10CC 7F09C59C 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10D0 7F09C5A0 46120202 */ mul.s $f8, $f0, $f18 +/* 0D10D4 7F09C5A4 E5080014 */ swc1 $f8, 0x14($t0) +/* 0D10D8 7F09C5A8 0FC15FAB */ jal sinf +/* 0D10DC 7F09C5AC C7AC0038 */ lwc1 $f12, 0x38($sp) +/* 0D10E0 7F09C5B0 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 0D10E4 7F09C5B4 8FA80040 */ lw $t0, 0x40($sp) +/* 0D10E8 7F09C5B8 240F0001 */ li $t7, 1 +/* 0D10EC 7F09C5BC 46040182 */ mul.s $f6, $f0, $f4 +/* 0D10F0 7F09C5C0 A50F001C */ sh $t7, 0x1c($t0) +/* 0D10F4 7F09C5C4 E5060018 */ swc1 $f6, 0x18($t0) +/* 0D10F8 7F09C5C8 C66A0000 */ lwc1 $f10, ($s3) +/* 0D10FC 7F09C5CC E50A0008 */ swc1 $f10, 8($t0) +/* 0D1100 7F09C5D0 C6700004 */ lwc1 $f16, 4($s3) +/* 0D1104 7F09C5D4 E510000C */ swc1 $f16, 0xc($t0) +/* 0D1108 7F09C5D8 C6720008 */ lwc1 $f18, 8($s3) +/* 0D110C 7F09C5DC E5120010 */ swc1 $f18, 0x10($t0) +/* 0D1110 7F09C5E0 86380024 */ lh $t8, 0x24($s1) +/* 0D1114 7F09C5E4 1B00000E */ blez $t8, .L7F09C620 +/* 0D1118 7F09C5E8 00000000 */ nop +/* 0D111C 7F09C5EC C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C5F0: +/* 0D1120 7F09C5F0 8E25002C */ lw $a1, 0x2c($s1) +/* 0D1124 7F09C5F4 8E260030 */ lw $a2, 0x30($s1) +/* 0D1128 7F09C5F8 8E270034 */ lw $a3, 0x34($s1) +/* 0D112C 7F09C5FC 02602025 */ move $a0, $s3 +/* 0D1130 7F09C600 0FC27C95 */ jal sub_GAME_7F09F254 +/* 0D1134 7F09C604 E7A80010 */ swc1 $f8, 0x10($sp) +/* 0D1138 7F09C608 8FB90044 */ lw $t9, 0x44($sp) +/* 0D113C 7F09C60C 26100001 */ addiu $s0, $s0, 1 +/* 0D1140 7F09C610 872E0024 */ lh $t6, 0x24($t9) +/* 0D1144 7F09C614 020E082A */ slt $at, $s0, $t6 +/* 0D1148 7F09C618 5420FFF5 */ bnezl $at, .L7F09C5F0 +/* 0D114C 7F09C61C C6280028 */ lwc1 $f8, 0x28($s1) +.L7F09C620: +/* 0D1150 7F09C620 0FC26919 */ jal getPlayerCount +/* 0D1154 7F09C624 00000000 */ nop +/* 0D1158 7F09C628 28410002 */ slti $at, $v0, 2 +/* 0D115C 7F09C62C 14200058 */ bnez $at, .L7F09C790 +/* 0D1160 7F09C630 00003025 */ move $a2, $zero +/* 0D1164 7F09C634 3C0D8008 */ lui $t5, %hi(ptr_smoke_buf) +/* 0D1168 7F09C638 3C0B8004 */ lui $t3, %hi(D_8004017C) +/* 0D116C 7F09C63C 256B017C */ addiu $t3, %lo(D_8004017C) # addiu $t3, $t3, 0x17c +/* 0D1170 7F09C640 25ADA140 */ addiu $t5, %lo(ptr_smoke_buf) # addiu $t5, $t5, -0x5ec0 +/* 0D1174 7F09C644 241F1FE0 */ li $ra, 8160 +/* 0D1178 7F09C648 240C0018 */ li $t4, 24 +/* 0D117C 7F09C64C 240A0009 */ li $t2, 9 +/* 0D1180 7F09C650 24090008 */ li $t1, 8 +/* 0D1184 7F09C654 8DA30000 */ lw $v1, ($t5) +.L7F09C658: +/* 0D1188 7F09C658 00662821 */ addu $a1, $v1, $a2 +/* 0D118C 7F09C65C 8CAF0000 */ lw $t7, ($a1) +/* 0D1190 7F09C660 00C33821 */ addu $a3, $a2, $v1 +/* 0D1194 7F09C664 51E00011 */ beql $t7, $zero, .L7F09C6AC +/* 0D1198 7F09C668 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D119C 7F09C66C 84E20006 */ lh $v0, 6($a3) +/* 0D11A0 7F09C670 5242000E */ beql $s2, $v0, .L7F09C6AC +/* 0D11A4 7F09C674 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11A8 7F09C678 84E80006 */ lh $t0, 6($a3) +/* 0D11AC 7F09C67C 5128000B */ beql $t1, $t0, .L7F09C6AC +/* 0D11B0 7F09C680 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11B4 7F09C684 51480009 */ beql $t2, $t0, .L7F09C6AC +/* 0D11B8 7F09C688 8CAF0198 */ lw $t7, 0x198($a1) +/* 0D11BC 7F09C68C 004C0019 */ multu $v0, $t4 +/* 0D11C0 7F09C690 0000C012 */ mflo $t8 +/* 0D11C4 7F09C694 0178C821 */ addu $t9, $t3, $t8 +/* 0D11C8 7F09C698 872E0000 */ lh $t6, ($t9) +/* 0D11CC 7F09C69C A4EE0004 */ sh $t6, 4($a3) +/* 0D11D0 7F09C6A0 8DA30000 */ lw $v1, ($t5) +/* 0D11D4 7F09C6A4 00662821 */ addu $a1, $v1, $a2 +/* 0D11D8 7F09C6A8 8CAF0198 */ lw $t7, 0x198($a1) +.L7F09C6AC: +/* 0D11DC 7F09C6AC 00C32021 */ addu $a0, $a2, $v1 +/* 0D11E0 7F09C6B0 51E00011 */ beql $t7, $zero, .L7F09C6F8 +/* 0D11E4 7F09C6B4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11E8 7F09C6B8 8482019E */ lh $v0, 0x19e($a0) +/* 0D11EC 7F09C6BC 24840198 */ addiu $a0, $a0, 0x198 +/* 0D11F0 7F09C6C0 5242000D */ beql $s2, $v0, .L7F09C6F8 +/* 0D11F4 7F09C6C4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D11F8 7F09C6C8 5122000B */ beql $t1, $v0, .L7F09C6F8 +/* 0D11FC 7F09C6CC 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1200 7F09C6D0 51420009 */ beql $t2, $v0, .L7F09C6F8 +/* 0D1204 7F09C6D4 8CAF0330 */ lw $t7, 0x330($a1) +/* 0D1208 7F09C6D8 004C0019 */ multu $v0, $t4 +/* 0D120C 7F09C6DC 0000C012 */ mflo $t8 +/* 0D1210 7F09C6E0 0178C821 */ addu $t9, $t3, $t8 +/* 0D1214 7F09C6E4 872E0000 */ lh $t6, ($t9) +/* 0D1218 7F09C6E8 A48E0004 */ sh $t6, 4($a0) +/* 0D121C 7F09C6EC 8DA30000 */ lw $v1, ($t5) +/* 0D1220 7F09C6F0 00662821 */ addu $a1, $v1, $a2 +/* 0D1224 7F09C6F4 8CAF0330 */ lw $t7, 0x330($a1) +.L7F09C6F8: +/* 0D1228 7F09C6F8 00C32021 */ addu $a0, $a2, $v1 +/* 0D122C 7F09C6FC 51E00011 */ beql $t7, $zero, .L7F09C744 +/* 0D1230 7F09C700 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1234 7F09C704 84820336 */ lh $v0, 0x336($a0) +/* 0D1238 7F09C708 24840330 */ addiu $a0, $a0, 0x330 +/* 0D123C 7F09C70C 5242000D */ beql $s2, $v0, .L7F09C744 +/* 0D1240 7F09C710 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1244 7F09C714 5122000B */ beql $t1, $v0, .L7F09C744 +/* 0D1248 7F09C718 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D124C 7F09C71C 51420009 */ beql $t2, $v0, .L7F09C744 +/* 0D1250 7F09C720 8CAF04C8 */ lw $t7, 0x4c8($a1) +/* 0D1254 7F09C724 004C0019 */ multu $v0, $t4 +/* 0D1258 7F09C728 0000C012 */ mflo $t8 +/* 0D125C 7F09C72C 0178C821 */ addu $t9, $t3, $t8 +/* 0D1260 7F09C730 872E0000 */ lh $t6, ($t9) +/* 0D1264 7F09C734 A48E0004 */ sh $t6, 4($a0) +/* 0D1268 7F09C738 8DA30000 */ lw $v1, ($t5) +/* 0D126C 7F09C73C 00662821 */ addu $a1, $v1, $a2 +/* 0D1270 7F09C740 8CAF04C8 */ lw $t7, 0x4c8($a1) +.L7F09C744: +/* 0D1274 7F09C744 00C32021 */ addu $a0, $a2, $v1 +/* 0D1278 7F09C748 51E0000F */ beql $t7, $zero, .L7F09C788 +/* 0D127C 7F09C74C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1280 7F09C750 848204CE */ lh $v0, 0x4ce($a0) +/* 0D1284 7F09C754 248404C8 */ addiu $a0, $a0, 0x4c8 +/* 0D1288 7F09C758 5242000B */ beql $s2, $v0, .L7F09C788 +/* 0D128C 7F09C75C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1290 7F09C760 51220009 */ beql $t1, $v0, .L7F09C788 +/* 0D1294 7F09C764 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D1298 7F09C768 51420007 */ beql $t2, $v0, .L7F09C788 +/* 0D129C 7F09C76C 24C60660 */ addiu $a2, $a2, 0x660 +/* 0D12A0 7F09C770 004C0019 */ multu $v0, $t4 +/* 0D12A4 7F09C774 0000C012 */ mflo $t8 +/* 0D12A8 7F09C778 0178C821 */ addu $t9, $t3, $t8 +/* 0D12AC 7F09C77C 872E0000 */ lh $t6, ($t9) +/* 0D12B0 7F09C780 A48E0004 */ sh $t6, 4($a0) +/* 0D12B4 7F09C784 24C60660 */ addiu $a2, $a2, 0x660 +.L7F09C788: +/* 0D12B8 7F09C788 54DFFFB3 */ bnel $a2, $ra, .L7F09C658 +/* 0D12BC 7F09C78C 8DA30000 */ lw $v1, ($t5) +.L7F09C790: +/* 0D12C0 7F09C790 8FBF002C */ lw $ra, 0x2c($sp) +.L7F09C794: +/* 0D12C4 7F09C794 8FB0001C */ lw $s0, 0x1c($sp) +/* 0D12C8 7F09C798 8FB10020 */ lw $s1, 0x20($sp) +/* 0D12CC 7F09C79C 8FB20024 */ lw $s2, 0x24($sp) +/* 0D12D0 7F09C7A0 8FB30028 */ lw $s3, 0x28($sp) +/* 0D12D4 7F09C7A4 03E00008 */ jr $ra +/* 0D12D8 7F09C7A8 27BD0048 */ addiu $sp, $sp, 0x48 +) +#endif + + #endif @@ -965,7 +1344,7 @@ glabel sub_GAME_7F09C7C4 /* 0D1328 7F09C7F8 15C00006 */ bnez $t6, .L7F09C814 /* 0D132C 7F09C7FC AFA60060 */ sw $a2, 0x60($sp) /* 0D1330 7F09C800 44806000 */ mtc1 $zero, $f12 -/* 0D1334 7F09C804 0C000EC1 */ jal video_related_9 +/* 0D1334 7F09C804 0C000EC1 */ jal viSet800232B4 /* 0D1338 7F09C808 00000000 */ nop /* 0D133C 7F09C80C 10000069 */ b .L7F09C9B4 /* 0D1340 7F09C810 8FBF003C */ lw $ra, 0x3c($sp) @@ -1076,7 +1455,7 @@ glabel sub_GAME_7F09C7C4 /* 0D14CC 7F09C99C 00000000 */ nop /* 0D14D0 7F09C9A0 468084A0 */ cvt.s.w $f18, $f16 /* 0D14D4 7F09C9A4 46149302 */ mul.s $f12, $f18, $f20 -/* 0D14D8 7F09C9A8 0C000EC1 */ jal video_related_9 +/* 0D14D8 7F09C9A8 0C000EC1 */ jal viSet800232B4 /* 0D14DC 7F09C9AC 00000000 */ nop /* 0D14E0 7F09C9B0 8FBF003C */ lw $ra, 0x3c($sp) .L7F09C9B4: @@ -1118,7 +1497,7 @@ glabel sub_GAME_7F09C7C4 /* 0D1EE4 7F09D374 15C00006 */ bnez $t6, .Ljp7F09D390 /* 0D1EE8 7F09D378 AFA60070 */ sw $a2, 0x70($sp) /* 0D1EEC 7F09D37C 44806000 */ mtc1 $zero, $f12 -/* 0D1EF0 7F09D380 0C000EC1 */ jal video_related_9 +/* 0D1EF0 7F09D380 0C000EC1 */ jal viSet800232B4 /* 0D1EF4 7F09D384 00000000 */ nop /* 0D1EF8 7F09D388 10000071 */ b .Ljp7F09D550 /* 0D1EFC 7F09D38C 8FBF004C */ lw $ra, 0x4c($sp) @@ -1238,7 +1617,7 @@ glabel sub_GAME_7F09C7C4 /* 0D20A8 7F09D538 00000000 */ nop /* 0D20AC 7F09D53C 468084A0 */ cvt.s.w $f18, $f16 /* 0D20B0 7F09D540 46149302 */ mul.s $f12, $f18, $f20 -/* 0D20B4 7F09D544 0C000EC1 */ jal video_related_9 +/* 0D20B4 7F09D544 0C000EC1 */ jal viSet800232B4 /* 0D20B8 7F09D548 00000000 */ nop /* 0D20BC 7F09D54C 8FBF004C */ lw $ra, 0x4c($sp) .Ljp7F09D550: @@ -1256,6 +1635,157 @@ glabel sub_GAME_7F09C7C4 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_800576B8 +.word 0x3f4ccccd /*0.80000001*/ +.text +glabel sub_GAME_7F09C7C4 +/* 0D12F4 7F09C7C4 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 0D12F8 7F09C7C8 3C0E8004 */ lui $t6, %hi(D_80040170) +/* 0D12FC 7F09C7CC 8DCE0170 */ lw $t6, %lo(D_80040170)($t6) +/* 0D1300 7F09C7D0 AFB20030 */ sw $s2, 0x30($sp) +/* 0D1304 7F09C7D4 AFB1002C */ sw $s1, 0x2c($sp) +/* 0D1308 7F09C7D8 00808825 */ move $s1, $a0 +/* 0D130C 7F09C7DC 00A09025 */ move $s2, $a1 +/* 0D1310 7F09C7E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 0D1314 7F09C7E4 AFB40038 */ sw $s4, 0x38($sp) +/* 0D1318 7F09C7E8 AFB30034 */ sw $s3, 0x34($sp) +/* 0D131C 7F09C7EC AFB00028 */ sw $s0, 0x28($sp) +/* 0D1320 7F09C7F0 F7B60020 */ sdc1 $f22, 0x20($sp) +/* 0D1324 7F09C7F4 F7B40018 */ sdc1 $f20, 0x18($sp) +/* 0D1328 7F09C7F8 15C00006 */ bnez $t6, .L7F09C814 +/* 0D132C 7F09C7FC AFA60060 */ sw $a2, 0x60($sp) +/* 0D1330 7F09C800 44806000 */ mtc1 $zero, $f12 +/* 0D1334 7F09C804 0C000EC1 */ jal viSet800232B4 +/* 0D1338 7F09C808 00000000 */ nop +/* 0D133C 7F09C80C 10000069 */ b .L7F09C9B4 +/* 0D1340 7F09C810 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09C814: +/* 0D1344 7F09C814 3C018005 */ lui $at, %hi(D_800576B8) +/* 0D1348 7F09C818 C43476B8 */ lwc1 $f20, %lo(D_800576B8)($at) +/* 0D134C 7F09C81C 0FC15FA8 */ jal cosf +/* 0D1350 7F09C820 4600A306 */ mov.s $f12, $f20 +/* 0D1354 7F09C824 46000586 */ mov.s $f22, $f0 +/* 0D1358 7F09C828 0FC15FAB */ jal sinf +/* 0D135C 7F09C82C 4600A306 */ mov.s $f12, $f20 +/* 0D1360 7F09C830 C6440000 */ lwc1 $f4, ($s2) +/* 0D1364 7F09C834 C6480008 */ lwc1 $f8, 8($s2) +/* 0D1368 7F09C838 4600A306 */ mov.s $f12, $f20 +/* 0D136C 7F09C83C 4604B182 */ mul.s $f6, $f22, $f4 +/* 0D1370 7F09C840 00000000 */ nop +/* 0D1374 7F09C844 46004282 */ mul.s $f10, $f8, $f0 +/* 0D1378 7F09C848 460A3401 */ sub.s $f16, $f6, $f10 +/* 0D137C 7F09C84C 0FC15FAB */ jal sinf +/* 0D1380 7F09C850 E7B00044 */ swc1 $f16, 0x44($sp) +/* 0D1384 7F09C854 46000586 */ mov.s $f22, $f0 +/* 0D1388 7F09C858 0FC15FA8 */ jal cosf +/* 0D138C 7F09C85C 4600A306 */ mov.s $f12, $f20 +/* 0D1390 7F09C860 C6520008 */ lwc1 $f18, 8($s2) +/* 0D1394 7F09C864 C6480000 */ lwc1 $f8, ($s2) +/* 0D1398 7F09C868 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0D139C 7F09C86C 46009102 */ mul.s $f4, $f18, $f0 +/* 0D13A0 7F09C870 3C128004 */ lui $s2, %hi(D_8004017C+0x108) +/* 0D13A4 7F09C874 3C028008 */ lui $v0, %hi(ptr_explosion_buf) +/* 0D13A8 7F09C878 4608B182 */ mul.s $f6, $f22, $f8 +/* 0D13AC 7F09C87C 3C138008 */ lui $s3, %hi(ptr_explosion_buf) +/* 0D13B0 7F09C880 4480A000 */ mtc1 $zero, $f20 +/* 0D13B4 7F09C884 4481B000 */ mtc1 $at, $f22 +/* 0D13B8 7F09C888 2673A144 */ addiu $s3, %lo(ptr_explosion_buf) # addiu $s3, $s3, -0x5ebc +/* 0D13BC 7F09C88C 8C42A144 */ lw $v0, %lo(ptr_explosion_buf)($v0) +/* 0D13C0 7F09C890 26520284 */ addiu $s2, %lo(D_8004017C+0x108) # addiu $s2, $s2, 0x284 +/* 0D13C4 7F09C894 46062280 */ add.s $f10, $f4, $f6 +/* 0D13C8 7F09C898 00008025 */ move $s0, $zero +/* 0D13CC 7F09C89C 24141740 */ li $s4, 5952 +/* 0D13D0 7F09C8A0 E7AA0040 */ swc1 $f10, 0x40($sp) +.L7F09C8A4: +/* 0D13D4 7F09C8A4 8C430000 */ lw $v1, ($v0) +/* 0D13D8 7F09C8A8 5060001A */ beql $v1, $zero, .L7F09C914 +/* 0D13DC 7F09C8AC 261003E0 */ addiu $s0, $s0, 0x3e0 +/* 0D13E0 7F09C8B0 C4700008 */ lwc1 $f16, 8($v1) +/* 0D13E4 7F09C8B4 C6320000 */ lwc1 $f18, ($s1) +/* 0D13E8 7F09C8B8 C468000C */ lwc1 $f8, 0xc($v1) +/* 0D13EC 7F09C8BC C6240004 */ lwc1 $f4, 4($s1) +/* 0D13F0 7F09C8C0 46128001 */ sub.s $f0, $f16, $f18 +/* 0D13F4 7F09C8C4 C4660010 */ lwc1 $f6, 0x10($v1) +/* 0D13F8 7F09C8C8 C62A0008 */ lwc1 $f10, 8($s1) +/* 0D13FC 7F09C8CC 46044081 */ sub.s $f2, $f8, $f4 +/* 0D1400 7F09C8D0 46000402 */ mul.s $f16, $f0, $f0 +/* 0D1404 7F09C8D4 460A3381 */ sub.s $f14, $f6, $f10 +/* 0D1408 7F09C8D8 46021482 */ mul.s $f18, $f2, $f2 +/* 0D140C 7F09C8DC 46128200 */ add.s $f8, $f16, $f18 +/* 0D1410 7F09C8E0 460E7102 */ mul.s $f4, $f14, $f14 +/* 0D1414 7F09C8E4 0C007DF8 */ jal sqrtf +/* 0D1418 7F09C8E8 46044300 */ add.s $f12, $f8, $f4 +/* 0D141C 7F09C8EC 8E6F0000 */ lw $t7, ($s3) +/* 0D1420 7F09C8F0 01F01021 */ addu $v0, $t7, $s0 +/* 0D1424 7F09C8F4 805803CC */ lb $t8, 0x3cc($v0) +/* 0D1428 7F09C8F8 0018C980 */ sll $t9, $t8, 6 +/* 0D142C 7F09C8FC 02594021 */ addu $t0, $s2, $t9 +/* 0D1430 7F09C900 C5060010 */ lwc1 $f6, 0x10($t0) +/* 0D1434 7F09C904 46003083 */ div.s $f2, $f6, $f0 +/* 0D1438 7F09C908 46161282 */ mul.s $f10, $f2, $f22 +/* 0D143C 7F09C90C 460AA500 */ add.s $f20, $f20, $f10 +/* 0D1440 7F09C910 261003E0 */ addiu $s0, $s0, 0x3e0 +.L7F09C914: +/* 0D1444 7F09C914 1614FFE3 */ bne $s0, $s4, .L7F09C8A4 +/* 0D1448 7F09C918 244203E0 */ addiu $v0, $v0, 0x3e0 +/* 0D144C 7F09C91C 3C038004 */ lui $v1, %hi(D_80040174) +/* 0D1450 7F09C920 24630174 */ addiu $v1, %lo(D_80040174) # addiu $v1, $v1, 0x174 +/* 0D1454 7F09C924 8C620000 */ lw $v0, ($v1) +/* 0D1458 7F09C928 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0D145C 7F09C92C 18400005 */ blez $v0, .L7F09C944 +/* 0D1460 7F09C930 00000000 */ nop +/* 0D1464 7F09C934 44818000 */ mtc1 $at, $f16 +/* 0D1468 7F09C938 2449FFFF */ addiu $t1, $v0, -1 +/* 0D146C 7F09C93C AC690000 */ sw $t1, ($v1) +/* 0D1470 7F09C940 4610A500 */ add.s $f20, $f20, $f16 +.L7F09C944: +/* 0D1474 7F09C944 3C028004 */ lui $v0, %hi(D_80040170) +/* 0D1478 7F09C948 24420170 */ addiu $v0, %lo(D_80040170) # addiu $v0, $v0, 0x170 +/* 0D147C 7F09C94C 8C4A0000 */ lw $t2, ($v0) +/* 0D1480 7F09C950 254BFFFF */ addiu $t3, $t2, -1 +/* 0D1484 7F09C954 316D0002 */ andi $t5, $t3, 2 +/* 0D1488 7F09C958 11A00005 */ beqz $t5, .L7F09C970 +/* 0D148C 7F09C95C AC4B0000 */ sw $t3, ($v0) +/* 0D1490 7F09C960 8FA30060 */ lw $v1, 0x60($sp) +/* 0D1494 7F09C964 E4740004 */ swc1 $f20, 4($v1) +/* 0D1498 7F09C968 10000004 */ b .L7F09C97C +/* 0D149C 7F09C96C 4600A507 */ neg.s $f20, $f20 +.L7F09C970: +/* 0D14A0 7F09C970 8FA30060 */ lw $v1, 0x60($sp) +/* 0D14A4 7F09C974 4600A487 */ neg.s $f18, $f20 +/* 0D14A8 7F09C978 E4720004 */ swc1 $f18, 4($v1) +.L7F09C97C: +/* 0D14AC 7F09C97C C7A80044 */ lwc1 $f8, 0x44($sp) +/* 0D14B0 7F09C980 4608A102 */ mul.s $f4, $f20, $f8 +/* 0D14B4 7F09C984 E4640000 */ swc1 $f4, ($v1) +/* 0D14B8 7F09C988 C7A60040 */ lwc1 $f6, 0x40($sp) +/* 0D14BC 7F09C98C 4606A282 */ mul.s $f10, $f20, $f6 +/* 0D14C0 7F09C990 E46A0008 */ swc1 $f10, 8($v1) +/* 0D14C4 7F09C994 8C4F0000 */ lw $t7, ($v0) +/* 0D14C8 7F09C998 448F8000 */ mtc1 $t7, $f16 +/* 0D14CC 7F09C99C 00000000 */ nop +/* 0D14D0 7F09C9A0 468084A0 */ cvt.s.w $f18, $f16 +/* 0D14D4 7F09C9A4 46149302 */ mul.s $f12, $f18, $f20 +/* 0D14D8 7F09C9A8 0C000EC1 */ jal viSet800232B4 +/* 0D14DC 7F09C9AC 00000000 */ nop +/* 0D14E0 7F09C9B0 8FBF003C */ lw $ra, 0x3c($sp) +.L7F09C9B4: +/* 0D14E4 7F09C9B4 D7B40018 */ ldc1 $f20, 0x18($sp) +/* 0D14E8 7F09C9B8 D7B60020 */ ldc1 $f22, 0x20($sp) +/* 0D14EC 7F09C9BC 8FB00028 */ lw $s0, 0x28($sp) +/* 0D14F0 7F09C9C0 8FB1002C */ lw $s1, 0x2c($sp) +/* 0D14F4 7F09C9C4 8FB20030 */ lw $s2, 0x30($sp) +/* 0D14F8 7F09C9C8 8FB30034 */ lw $s3, 0x34($sp) +/* 0D14FC 7F09C9CC 8FB40038 */ lw $s4, 0x38($sp) +/* 0D1500 7F09C9D0 03E00008 */ jr $ra +/* 0D1504 7F09C9D4 27BD0058 */ addiu $sp, $sp, 0x58 +) +#endif + + #endif @@ -1417,7 +1947,7 @@ glabel sub_GAME_7F09C9D8 /* 0D1730 7F09CC00 01E1C024 */ and $t8, $t7, $at /* 0D1734 7F09CC04 1700001B */ bnez $t8, .L7F09CC74 /* 0D1738 7F09CC08 00000000 */ nop -/* 0D173C 7F09CC0C 0C002914 */ jal get_random_value +/* 0D173C 7F09CC0C 0C002914 */ jal randomGetNext /* 0D1740 7F09CC10 AFA300CC */ sw $v1, 0xcc($sp) /* 0D1744 7F09CC14 44822000 */ mtc1 $v0, $f4 /* 0D1748 7F09CC18 8FA300CC */ lw $v1, 0xcc($sp) @@ -1760,7 +2290,7 @@ glabel sub_GAME_7F09CEE8 /* 0D1BE4 7F09D0B4 24420018 */ addiu $v0, $v0, 0x18 /* 0D1BE8 7F09D0B8 15400051 */ bnez $t2, .L7F09D200 /* 0D1BEC 7F09D0BC 00000000 */ nop -/* 0D1BF0 7F09D0C0 0C002914 */ jal get_random_value +/* 0D1BF0 7F09D0C0 0C002914 */ jal randomGetNext /* 0D1BF4 7F09D0C4 A616001C */ sh $s6, 0x1c($s0) /* 0D1BF8 7F09D0C8 44823000 */ mtc1 $v0, $f6 /* 0D1BFC 7F09D0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1775,7 +2305,7 @@ glabel sub_GAME_7F09CEE8 /* 0D1C1C 7F09D0EC 461A8201 */ sub.s $f8, $f16, $f26 /* 0D1C20 7F09D0F0 461C4102 */ mul.s $f4, $f8, $f28 /* 0D1C24 7F09D0F4 46062280 */ add.s $f10, $f4, $f6 -/* 0D1C28 7F09D0F8 0C002914 */ jal get_random_value +/* 0D1C28 7F09D0F8 0C002914 */ jal randomGetNext /* 0D1C2C 7F09D0FC E60A0008 */ swc1 $f10, 8($s0) /* 0D1C30 7F09D100 44829000 */ mtc1 $v0, $f18 /* 0D1C34 7F09D104 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1790,7 +2320,7 @@ glabel sub_GAME_7F09CEE8 /* 0D1C54 7F09D124 461A2181 */ sub.s $f6, $f4, $f26 /* 0D1C58 7F09D128 461E3282 */ mul.s $f10, $f6, $f30 /* 0D1C5C 7F09D12C 46125200 */ add.s $f8, $f10, $f18 -/* 0D1C60 7F09D130 0C002914 */ jal get_random_value +/* 0D1C60 7F09D130 0C002914 */ jal randomGetNext /* 0D1C64 7F09D134 E608000C */ swc1 $f8, 0xc($s0) /* 0D1C68 7F09D138 44828000 */ mtc1 $v0, $f16 /* 0D1C6C 7F09D13C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1805,7 +2335,7 @@ glabel sub_GAME_7F09CEE8 /* 0D1C8C 7F09D15C 461A5481 */ sub.s $f18, $f10, $f26 /* 0D1C90 7F09D160 461C9202 */ mul.s $f8, $f18, $f28 /* 0D1C94 7F09D164 46104180 */ add.s $f6, $f8, $f16 -/* 0D1C98 7F09D168 0C002914 */ jal get_random_value +/* 0D1C98 7F09D168 0C002914 */ jal randomGetNext /* 0D1C9C 7F09D16C E6060010 */ swc1 $f6, 0x10($s0) /* 0D1CA0 7F09D170 44822000 */ mtc1 $v0, $f4 /* 0D1CA4 7F09D174 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1822,7 +2352,7 @@ glabel sub_GAME_7F09CEE8 /* 0D1CCC 7F09D19C 461A4402 */ mul.s $f16, $f8, $f26 /* 0D1CD0 7F09D1A0 46068100 */ add.s $f4, $f16, $f6 /* 0D1CD4 7F09D1A4 46122502 */ mul.s $f20, $f4, $f18 -/* 0D1CD8 7F09D1A8 0C002914 */ jal get_random_value +/* 0D1CD8 7F09D1A8 0C002914 */ jal randomGetNext /* 0D1CDC 7F09D1AC 00000000 */ nop /* 0D1CE0 7F09D1B0 44825000 */ mtc1 $v0, $f10 /* 0D1CE4 7F09D1B4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -2408,7 +2938,7 @@ glabel sub_GAME_7F09D82C /* 0D24AC 7F09D97C E7A00054 */ swc1 $f0, 0x54($sp) /* 0D24B0 7F09D980 460A4100 */ add.s $f4, $f8, $f10 /* 0D24B4 7F09D984 AFA3009C */ sw $v1, 0x9c($sp) -/* 0D24B8 7F09D988 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D24B8 7F09D988 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0D24BC 7F09D98C E7A40044 */ swc1 $f4, 0x44($sp) /* 0D24C0 7F09D990 27A400A0 */ addiu $a0, $sp, 0xa0 /* 0D24C4 7F09D994 8C810000 */ lw $at, ($a0) @@ -2820,7 +3350,7 @@ glabel sub_GAME_7F09DDA4 /* 0D2AA8 7F09DF78 00000000 */ nop .L7F09DF7C: /* 0D2AAC 7F09DF7C 24040004 */ li $a0, 4 -/* 0D2AB0 7F09DF80 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D2AB0 7F09DF80 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0D2AB4 7F09DF84 AFA300BC */ sw $v1, 0xbc($sp) /* 0D2AB8 7F09DF88 27A400C0 */ addiu $a0, $sp, 0xc0 /* 0D2ABC 7F09DF8C 8C810000 */ lw $at, ($a0) @@ -3555,7 +4085,7 @@ glabel sub_GAME_7F09E8AC /* 0D3524 7F09E9F4 A60D0024 */ sh $t5, 0x24($s0) /* 0D3528 7F09E9F8 E6040010 */ swc1 $f4, 0x10($s0) /* 0D352C 7F09E9FC 46083281 */ sub.s $f10, $f6, $f8 -/* 0D3530 7F09EA00 0C002914 */ jal get_random_value +/* 0D3530 7F09EA00 0C002914 */ jal randomGetNext /* 0D3534 7F09EA04 E60A0020 */ swc1 $f10, 0x20($s0) /* 0D3538 7F09EA08 44824000 */ mtc1 $v0, $f8 /* 0D353C 7F09EA0C C6060018 */ lwc1 $f6, 0x18($s0) @@ -3571,7 +4101,7 @@ glabel sub_GAME_7F09E8AC /* 0D3560 7F09EA30 46189102 */ mul.s $f4, $f18, $f24 /* 0D3564 7F09EA34 4604B200 */ add.s $f8, $f22, $f4 /* 0D3568 7F09EA38 46083400 */ add.s $f16, $f6, $f8 -/* 0D356C 7F09EA3C 0C002914 */ jal get_random_value +/* 0D356C 7F09EA3C 0C002914 */ jal randomGetNext /* 0D3570 7F09EA40 E6100018 */ swc1 $f16, 0x18($s0) /* 0D3574 7F09EA44 44829000 */ mtc1 $v0, $f18 /* 0D3578 7F09EA48 C60A001C */ lwc1 $f10, 0x1c($s0) @@ -3635,7 +4165,7 @@ glabel sub_GAME_7F09E8AC /* 0D3648 7F09EB18 00000000 */ nop /* 0D364C 7F09EB1C 45000083 */ bc1f .L7F09ED2C /* 0D3650 7F09EB20 00000000 */ nop -/* 0D3654 7F09EB24 0C002914 */ jal get_random_value +/* 0D3654 7F09EB24 0C002914 */ jal randomGetNext /* 0D3658 7F09EB28 00000000 */ nop /* 0D365C 7F09EB2C 44825000 */ mtc1 $v0, $f10 /* 0D3660 7F09EB30 26300008 */ addiu $s0, $s1, 8 @@ -3662,7 +4192,7 @@ glabel sub_GAME_7F09E8AC /* 0D36B0 7F09EB80 00000000 */ nop /* 0D36B4 7F09EB84 46809120 */ cvt.s.w $f4, $f18 /* 0D36B8 7F09EB88 46043202 */ mul.s $f8, $f6, $f4 -/* 0D36BC 7F09EB8C 0C002914 */ jal get_random_value +/* 0D36BC 7F09EB8C 0C002914 */ jal randomGetNext /* 0D36C0 7F09EB90 E608000C */ swc1 $f8, 0xc($s0) /* 0D36C4 7F09EB94 24010046 */ li $at, 70 /* 0D36C8 7F09EB98 0041001B */ divu $zero, $v0, $at @@ -3679,7 +4209,7 @@ glabel sub_GAME_7F09E8AC /* 0D36F0 7F09EBC0 44813000 */ mtc1 $at, $f6 /* 0D36F4 7F09EBC4 A6000024 */ sh $zero, 0x24($s0) /* 0D36F8 7F09EBC8 46065100 */ add.s $f4, $f10, $f6 -/* 0D36FC 7F09EBCC 0C002914 */ jal get_random_value +/* 0D36FC 7F09EBCC 0C002914 */ jal randomGetNext /* 0D3700 7F09EBD0 E6040020 */ swc1 $f4, 0x20($s0) /* 0D3704 7F09EBD4 44824000 */ mtc1 $v0, $f8 /* 0D3708 7F09EBD8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -3693,7 +4223,7 @@ glabel sub_GAME_7F09E8AC /* 0D3724 7F09EBF4 3C018005 */ lui $at, %hi(D_800576DC) /* 0D3728 7F09EBF8 C42676DC */ lwc1 $f6, %lo(D_800576DC)($at) /* 0D372C 7F09EBFC 46065102 */ mul.s $f4, $f10, $f6 -/* 0D3730 7F09EC00 0C002914 */ jal get_random_value +/* 0D3730 7F09EC00 0C002914 */ jal randomGetNext /* 0D3734 7F09EC04 E6040010 */ swc1 $f4, 0x10($s0) /* 0D3738 7F09EC08 44829000 */ mtc1 $v0, $f18 /* 0D373C 7F09EC0C 3C013F00 */ li $at, 0x3F000000 # 0.500000 @@ -3719,7 +4249,7 @@ glabel sub_GAME_7F09E8AC /* 0D3788 7F09EC58 C6E8000C */ lwc1 $f8, 0xc($s7) /* 0D378C 7F09EC5C E6080004 */ swc1 $f8, 4($s0) /* 0D3790 7F09EC60 C6E60010 */ lwc1 $f6, 0x10($s7) -/* 0D3794 7F09EC64 0C002914 */ jal get_random_value +/* 0D3794 7F09EC64 0C002914 */ jal randomGetNext /* 0D3798 7F09EC68 E6060008 */ swc1 $f6, 8($s0) /* 0D379C 7F09EC6C 44829000 */ mtc1 $v0, $f18 /* 0D37A0 7F09EC70 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -3734,7 +4264,7 @@ glabel sub_GAME_7F09E8AC /* 0D37C0 7F09EC90 44814000 */ mtc1 $at, $f8 /* 0D37C4 7F09EC94 00000000 */ nop /* 0D37C8 7F09EC98 46088182 */ mul.s $f6, $f16, $f8 -/* 0D37CC 7F09EC9C 0C002914 */ jal get_random_value +/* 0D37CC 7F09EC9C 0C002914 */ jal randomGetNext /* 0D37D0 7F09ECA0 E6060018 */ swc1 $f6, 0x18($s0) /* 0D37D4 7F09ECA4 44829000 */ mtc1 $v0, $f18 /* 0D37D8 7F09ECA8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4191,7 +4721,7 @@ glabel sub_GAME_7F09F254 /* 0D3DA0 7F09F270 AFA40050 */ sw $a0, 0x50($sp) /* 0D3DA4 7F09F274 AFA50054 */ sw $a1, 0x54($sp) /* 0D3DA8 7F09F278 AFA60058 */ sw $a2, 0x58($sp) -/* 0D3DAC 7F09F27C 0C002914 */ jal get_random_value +/* 0D3DAC 7F09F27C 0C002914 */ jal randomGetNext /* 0D3DB0 7F09F280 AFA7005C */ sw $a3, 0x5c($sp) /* 0D3DB4 7F09F284 44822000 */ mtc1 $v0, $f4 /* 0D3DB8 7F09F288 3C012F80 */ li $at, 0x2F800000 # 0.000000 @@ -4207,7 +4737,7 @@ glabel sub_GAME_7F09F254 /* 0D3DDC 7F09F2AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0D3DE0 7F09F2B0 44819000 */ mtc1 $at, $f18 /* 0D3DE4 7F09F2B4 46000280 */ add.s $f10, $f0, $f0 -/* 0D3DE8 7F09F2B8 0C002914 */ jal get_random_value +/* 0D3DE8 7F09F2B8 0C002914 */ jal randomGetNext /* 0D3DEC 7F09F2BC 46125501 */ sub.s $f20, $f10, $f18 /* 0D3DF0 7F09F2C0 44822000 */ mtc1 $v0, $f4 /* 0D3DF4 7F09F2C4 04410005 */ bgez $v0, .L7F09F2DC @@ -4224,7 +4754,7 @@ glabel sub_GAME_7F09F254 /* 0D3E1C 7F09F2EC C42676E4 */ lwc1 $f6, %lo(D_800576E4)($at) /* 0D3E20 7F09F2F0 46125102 */ mul.s $f4, $f10, $f18 /* 0D3E24 7F09F2F4 46062301 */ sub.s $f12, $f4, $f6 -/* 0D3E28 7F09F2F8 0C002914 */ jal get_random_value +/* 0D3E28 7F09F2F8 0C002914 */ jal randomGetNext /* 0D3E2C 7F09F2FC E7AC0048 */ swc1 $f12, 0x48($sp) /* 0D3E30 7F09F300 3C128004 */ lui $s2, %hi(D_8004017C+0x684) /* 0D3E34 7F09F304 26520800 */ addiu $s2, %lo(D_8004017C+0x684) # addiu $s2, $s2, 0x800 @@ -4304,7 +4834,7 @@ glabel sub_GAME_7F09F254 /* 0D3F58 7F09F428 01310019 */ multu $t1, $s1 /* 0D3F5C 7F09F42C 00006012 */ mflo $t4 /* 0D3F60 7F09F430 014C5821 */ addu $t3, $t2, $t4 -/* 0D3F64 7F09F434 0C002914 */ jal get_random_value +/* 0D3F64 7F09F434 0C002914 */ jal randomGetNext /* 0D3F68 7F09F438 E5640024 */ swc1 $f4, 0x24($t3) /* 0D3F6C 7F09F43C 44829000 */ mtc1 $v0, $f18 /* 0D3F70 7F09F440 3C013F40 */ li $at, 0x3F400000 # 0.750000 @@ -4335,7 +4865,7 @@ glabel sub_GAME_7F09F254 /* 0D3FD0 7F09F4A0 01510019 */ multu $t2, $s1 /* 0D3FD4 7F09F4A4 00006012 */ mflo $t4 /* 0D3FD8 7F09F4A8 012C5821 */ addu $t3, $t1, $t4 -/* 0D3FDC 7F09F4AC 0C002914 */ jal get_random_value +/* 0D3FDC 7F09F4AC 0C002914 */ jal randomGetNext /* 0D3FE0 7F09F4B0 A560003A */ sh $zero, 0x3a($t3) /* 0D3FE4 7F09F4B4 44822000 */ mtc1 $v0, $f4 /* 0D3FE8 7F09F4B8 04410005 */ bgez $v0, .L7F09F4D0 @@ -4357,7 +4887,7 @@ glabel sub_GAME_7F09F254 /* 0D4024 7F09F4F4 46082482 */ mul.s $f18, $f4, $f8 /* 0D4028 7F09F4F8 4600918D */ trunc.w.s $f6, $f18 /* 0D402C 7F09F4FC 440F3000 */ mfc1 $t7, $f6 -/* 0D4030 7F09F500 0C002914 */ jal get_random_value +/* 0D4030 7F09F500 0C002914 */ jal randomGetNext /* 0D4034 7F09F504 A5CF003C */ sh $t7, 0x3c($t6) /* 0D4038 7F09F508 44825000 */ mtc1 $v0, $f10 /* 0D403C 7F09F50C 04410005 */ bgez $v0, .L7F09F524 @@ -4386,7 +4916,7 @@ glabel sub_GAME_7F09F254 /* 0D4094 7F09F564 01B10019 */ multu $t5, $s1 /* 0D4098 7F09F568 00007812 */ mflo $t7 /* 0D409C 7F09F56C 032F7021 */ addu $t6, $t9, $t7 -/* 0D40A0 7F09F570 0C002914 */ jal get_random_value +/* 0D40A0 7F09F570 0C002914 */ jal randomGetNext /* 0D40A4 7F09F574 A5C0004A */ sh $zero, 0x4a($t6) /* 0D40A8 7F09F578 C7A00060 */ lwc1 $f0, 0x60($sp) /* 0D40AC 7F09F57C 44823000 */ mtc1 $v0, $f6 @@ -4411,7 +4941,7 @@ glabel sub_GAME_7F09F254 /* 0D40F4 7F09F5C4 440B5000 */ mfc1 $t3, $f10 /* 0D40F8 7F09F5C8 00000000 */ nop /* 0D40FC 7F09F5CC A50B004C */ sh $t3, 0x4c($t0) -/* 0D4100 7F09F5D0 0C002914 */ jal get_random_value +/* 0D4100 7F09F5D0 0C002914 */ jal randomGetNext /* 0D4104 7F09F5D4 E7A00038 */ swc1 $f0, 0x38($sp) /* 0D4108 7F09F5D8 44822000 */ mtc1 $v0, $f4 /* 0D410C 7F09F5DC 04410005 */ bgez $v0, .L7F09F5F4 @@ -4440,7 +4970,7 @@ glabel sub_GAME_7F09F254 /* 0D4164 7F09F634 01310019 */ multu $t1, $s1 /* 0D4168 7F09F638 00005812 */ mflo $t3 /* 0D416C 7F09F63C 018B4021 */ addu $t0, $t4, $t3 -/* 0D4170 7F09F640 0C002914 */ jal get_random_value +/* 0D4170 7F09F640 0C002914 */ jal randomGetNext /* 0D4174 7F09F644 A500005A */ sh $zero, 0x5a($t0) /* 0D4178 7F09F648 44825000 */ mtc1 $v0, $f10 /* 0D417C 7F09F64C 04410005 */ bgez $v0, .L7F09F664 @@ -4462,7 +4992,7 @@ glabel sub_GAME_7F09F254 /* 0D41B8 7F09F688 46065102 */ mul.s $f4, $f10, $f6 /* 0D41BC 7F09F68C 4600248D */ trunc.w.s $f18, $f4 /* 0D41C0 7F09F690 440E9000 */ mfc1 $t6, $f18 -/* 0D41C4 7F09F694 0C002914 */ jal get_random_value +/* 0D41C4 7F09F694 0C002914 */ jal randomGetNext /* 0D41C8 7F09F698 A70E005C */ sh $t6, 0x5c($t8) /* 0D41CC 7F09F69C 44824000 */ mtc1 $v0, $f8 /* 0D41D0 7F09F6A0 04410005 */ bgez $v0, .L7F09F6B8 @@ -4491,7 +5021,7 @@ glabel sub_GAME_7F09F254 /* 0D4228 7F09F6F8 03310019 */ multu $t9, $s1 /* 0D422C 7F09F6FC 00007012 */ mflo $t6 /* 0D4230 7F09F700 01EEC021 */ addu $t8, $t7, $t6 -/* 0D4234 7F09F704 0C002914 */ jal get_random_value +/* 0D4234 7F09F704 0C002914 */ jal randomGetNext /* 0D4238 7F09F708 A700006A */ sh $zero, 0x6a($t8) /* 0D423C 7F09F70C 44829000 */ mtc1 $v0, $f18 /* 0D4240 7F09F710 04410005 */ bgez $v0, .L7F09F728 @@ -4513,11 +5043,11 @@ glabel sub_GAME_7F09F254 /* 0D427C 7F09F74C 46069202 */ mul.s $f8, $f18, $f6 /* 0D4280 7F09F750 4600428D */ trunc.w.s $f10, $f8 /* 0D4284 7F09F754 44085000 */ mfc1 $t0, $f10 -/* 0D4288 7F09F758 0C002914 */ jal get_random_value +/* 0D4288 7F09F758 0C002914 */ jal randomGetNext /* 0D428C 7F09F75C A548006C */ sh $t0, 0x6c($t2) /* 0D4290 7F09F760 30460003 */ andi $a2, $v0, 3 /* 0D4294 7F09F764 00067200 */ sll $t6, $a2, 8 -/* 0D4298 7F09F768 0C002914 */ jal get_random_value +/* 0D4298 7F09F768 0C002914 */ jal randomGetNext /* 0D429C 7F09F76C A7AE0042 */ sh $t6, 0x42($sp) /* 0D42A0 7F09F770 8E490000 */ lw $t1, ($s2) /* 0D42A4 7F09F774 87A60042 */ lh $a2, 0x42($sp) @@ -4572,12 +5102,12 @@ glabel sub_GAME_7F09F254 /* 0D4368 7F09F838 01310019 */ multu $t1, $s1 /* 0D436C 7F09F83C 00005812 */ mflo $t3 /* 0D4370 7F09F840 030B6821 */ addu $t5, $t8, $t3 -/* 0D4374 7F09F844 0C002914 */ jal get_random_value +/* 0D4374 7F09F844 0C002914 */ jal randomGetNext /* 0D4378 7F09F848 A5A50072 */ sh $a1, 0x72($t5) /* 0D437C 7F09F84C 30480001 */ andi $t0, $v0, 1 /* 0D4380 7F09F850 1100005B */ beqz $t0, .L7F09F9C0 /* 0D4384 7F09F854 00000000 */ nop -/* 0D4388 7F09F858 0C002914 */ jal get_random_value +/* 0D4388 7F09F858 0C002914 */ jal randomGetNext /* 0D438C 7F09F85C 00000000 */ nop /* 0D4390 7F09F860 8E4E0000 */ lw $t6, ($s2) /* 0D4394 7F09F864 8E190000 */ lw $t9, ($s0) @@ -4599,7 +5129,7 @@ glabel sub_GAME_7F09F254 /* 0D43D4 7F09F8A4 01910019 */ multu $t4, $s1 /* 0D43D8 7F09F8A8 00007012 */ mflo $t6 /* 0D43DC 7F09F8AC 014EC821 */ addu $t9, $t2, $t6 -/* 0D43E0 7F09F8B0 0C002914 */ jal get_random_value +/* 0D43E0 7F09F8B0 0C002914 */ jal randomGetNext /* 0D43E4 7F09F8B4 A3230044 */ sb $v1, 0x44($t9) /* 0D43E8 7F09F8B8 8E580000 */ lw $t8, ($s2) /* 0D43EC 7F09F8BC 8E0B0000 */ lw $t3, ($s0) @@ -4621,7 +5151,7 @@ glabel sub_GAME_7F09F254 /* 0D442C 7F09F8FC 01F10019 */ multu $t7, $s1 /* 0D4430 7F09F900 0000C012 */ mflo $t8 /* 0D4434 7F09F904 01385821 */ addu $t3, $t1, $t8 -/* 0D4438 7F09F908 0C002914 */ jal get_random_value +/* 0D4438 7F09F908 0C002914 */ jal randomGetNext /* 0D443C 7F09F90C A1630054 */ sb $v1, 0x54($t3) /* 0D4440 7F09F910 8E4C0000 */ lw $t4, ($s2) /* 0D4444 7F09F914 8E0A0000 */ lw $t2, ($s0) @@ -4643,7 +5173,7 @@ glabel sub_GAME_7F09F254 /* 0D4484 7F09F954 01B10019 */ multu $t5, $s1 /* 0D4488 7F09F958 00006012 */ mflo $t4 /* 0D448C 7F09F95C 010C5021 */ addu $t2, $t0, $t4 -/* 0D4490 7F09F960 0C002914 */ jal get_random_value +/* 0D4490 7F09F960 0C002914 */ jal randomGetNext /* 0D4494 7F09F964 A1430064 */ sb $v1, 0x64($t2) /* 0D4498 7F09F968 8E4F0000 */ lw $t7, ($s2) /* 0D449C 7F09F96C 8E090000 */ lw $t1, ($s0) @@ -4668,7 +5198,7 @@ glabel sub_GAME_7F09F254 /* 0D44E8 7F09F9B8 10000052 */ b .L7F09FB04 /* 0D44EC 7F09F9BC A1230074 */ sb $v1, 0x74($t1) .L7F09F9C0: -/* 0D44F0 7F09F9C0 0C002914 */ jal get_random_value +/* 0D44F0 7F09F9C0 0C002914 */ jal randomGetNext /* 0D44F4 7F09F9C4 00000000 */ nop /* 0D44F8 7F09F9C8 8E4B0000 */ lw $t3, ($s2) /* 0D44FC 7F09F9CC 8E180000 */ lw $t8, ($s0) @@ -4688,7 +5218,7 @@ glabel sub_GAME_7F09F254 /* 0D4534 7F09FA04 01310019 */ multu $t1, $s1 /* 0D4538 7F09FA08 00005812 */ mflo $t3 /* 0D453C 7F09FA0C 01EBC021 */ addu $t8, $t7, $t3 -/* 0D4540 7F09FA10 0C002914 */ jal get_random_value +/* 0D4540 7F09FA10 0C002914 */ jal randomGetNext /* 0D4544 7F09FA14 A3030044 */ sb $v1, 0x44($t8) /* 0D4548 7F09FA18 8E4D0000 */ lw $t5, ($s2) /* 0D454C 7F09FA1C 8E080000 */ lw $t0, ($s0) @@ -4708,7 +5238,7 @@ glabel sub_GAME_7F09F254 /* 0D4584 7F09FA54 03110019 */ multu $t8, $s1 /* 0D4588 7F09FA58 00006812 */ mflo $t5 /* 0D458C 7F09FA5C 016D4021 */ addu $t0, $t3, $t5 -/* 0D4590 7F09FA60 0C002914 */ jal get_random_value +/* 0D4590 7F09FA60 0C002914 */ jal randomGetNext /* 0D4594 7F09FA64 A1030054 */ sb $v1, 0x54($t0) /* 0D4598 7F09FA68 8E4C0000 */ lw $t4, ($s2) /* 0D459C 7F09FA6C 8E0A0000 */ lw $t2, ($s0) @@ -4728,7 +5258,7 @@ glabel sub_GAME_7F09F254 /* 0D45D4 7F09FAA4 01110019 */ multu $t0, $s1 /* 0D45D8 7F09FAA8 00006012 */ mflo $t4 /* 0D45DC 7F09FAAC 01AC5021 */ addu $t2, $t5, $t4 -/* 0D45E0 7F09FAB0 0C002914 */ jal get_random_value +/* 0D45E0 7F09FAB0 0C002914 */ jal randomGetNext /* 0D45E4 7F09FAB4 A1430064 */ sb $v1, 0x64($t2) /* 0D45E8 7F09FAB8 8E4E0000 */ lw $t6, ($s2) /* 0D45EC 7F09FABC 8E190000 */ lw $t9, ($s0) @@ -4774,7 +5304,7 @@ glabel sub_GAME_7F09F254 /* 0D4688 7F09FB58 03110019 */ multu $t8, $s1 /* 0D468C 7F09FB5C 00006812 */ mflo $t5 /* 0D4690 7F09FB60 016D4021 */ addu $t0, $t3, $t5 -/* 0D4694 7F09FB64 0C002914 */ jal get_random_value +/* 0D4694 7F09FB64 0C002914 */ jal randomGetNext /* 0D4698 7F09FB68 A1020077 */ sb $v0, 0x77($t0) /* 0D469C 7F09FB6C 44822000 */ mtc1 $v0, $f4 /* 0D46A0 7F09FB70 3C018005 */ lui $at, %hi(D_800576E8) @@ -4793,7 +5323,7 @@ glabel sub_GAME_7F09F254 /* 0D46D0 7F09FBA0 46144282 */ mul.s $f10, $f8, $f20 /* 0D46D4 7F09FBA4 0000C812 */ mflo $t9 /* 0D46D8 7F09FBA8 01597021 */ addu $t6, $t2, $t9 -/* 0D46DC 7F09FBAC 0C002914 */ jal get_random_value +/* 0D46DC 7F09FBAC 0C002914 */ jal randomGetNext /* 0D46E0 7F09FBB0 E5CA0010 */ swc1 $f10, 0x10($t6) /* 0D46E4 7F09FBB4 44822000 */ mtc1 $v0, $f4 /* 0D46E8 7F09FBB8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4810,7 +5340,7 @@ glabel sub_GAME_7F09F254 /* 0D4710 7F09FBE0 46144282 */ mul.s $f10, $f8, $f20 /* 0D4714 7F09FBE4 0000C012 */ mflo $t8 /* 0D4718 7F09FBE8 01385821 */ addu $t3, $t1, $t8 -/* 0D471C 7F09FBEC 0C002914 */ jal get_random_value +/* 0D471C 7F09FBEC 0C002914 */ jal randomGetNext /* 0D4720 7F09FBF0 E56A0014 */ swc1 $f10, 0x14($t3) /* 0D4724 7F09FBF4 44822000 */ mtc1 $v0, $f4 /* 0D4728 7F09FBF8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4827,7 +5357,7 @@ glabel sub_GAME_7F09F254 /* 0D4750 7F09FC20 46144282 */ mul.s $f10, $f8, $f20 /* 0D4754 7F09FC24 00006012 */ mflo $t4 /* 0D4758 7F09FC28 01AC5021 */ addu $t2, $t5, $t4 -/* 0D475C 7F09FC2C 0C002914 */ jal get_random_value +/* 0D475C 7F09FC2C 0C002914 */ jal randomGetNext /* 0D4760 7F09FC30 E54A0018 */ swc1 $f10, 0x18($t2) /* 0D4764 7F09FC34 44822000 */ mtc1 $v0, $f4 /* 0D4768 7F09FC38 3C018005 */ lui $at, %hi(D_800576EC) @@ -4846,7 +5376,7 @@ glabel sub_GAME_7F09F254 /* 0D4798 7F09FC68 46144282 */ mul.s $f10, $f8, $f20 /* 0D479C 7F09FC6C 00007812 */ mflo $t7 /* 0D47A0 7F09FC70 032F4821 */ addu $t1, $t9, $t7 -/* 0D47A4 7F09FC74 0C002914 */ jal get_random_value +/* 0D47A4 7F09FC74 0C002914 */ jal randomGetNext /* 0D47A8 7F09FC78 E52A0028 */ swc1 $f10, 0x28($t1) /* 0D47AC 7F09FC7C 44822000 */ mtc1 $v0, $f4 /* 0D47B0 7F09FC80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -4863,7 +5393,7 @@ glabel sub_GAME_7F09F254 /* 0D47D8 7F09FCA8 46144282 */ mul.s $f10, $f8, $f20 /* 0D47DC 7F09FCAC 00004012 */ mflo $t0 /* 0D47E0 7F09FCB0 03086821 */ addu $t5, $t8, $t0 -/* 0D47E4 7F09FCB4 0C002914 */ jal get_random_value +/* 0D47E4 7F09FCB4 0C002914 */ jal randomGetNext /* 0D47E8 7F09FCB8 E5AA002C */ swc1 $f10, 0x2c($t5) /* 0D47EC 7F09FCBC 44822000 */ mtc1 $v0, $f4 /* 0D47F0 7F09FCC0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -5076,7 +5606,7 @@ glabel sub_GAME_7F09FD3C /* 0D4AA8 7F09FF78 29410065 */ slti $at, $t2, 0x65 /* 0D4AAC 7F09FF7C 54200011 */ bnezl $at, .L7F09FFC4 /* 0D4AB0 7F09FF80 C4400008 */ lwc1 $f0, 8($v0) -/* 0D4AB4 7F09FF84 0C002914 */ jal get_random_value +/* 0D4AB4 7F09FF84 0C002914 */ jal randomGetNext /* 0D4AB8 7F09FF88 00000000 */ nop /* 0D4ABC 7F09FF8C 304B001F */ andi $t3, $v0, 0x1f /* 0D4AC0 7F09FF90 51600007 */ beql $t3, $zero, .L7F09FFB0 @@ -5243,7 +5773,7 @@ glabel sub_GAME_7F0A0034 /* 0D4CDC 7F0A01AC 00000000 */ nop /* 0D4CE0 7F0A01B0 4500001C */ bc1f .L7F0A0224 /* 0D4CE4 7F0A01B4 00000000 */ nop -/* 0D4CE8 7F0A01B8 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D4CE8 7F0A01B8 0FC2F5B8 */ jal dynAllocateMatrix /* 0D4CEC 7F0A01BC 00000000 */ nop /* 0D4CF0 7F0A01C0 00409025 */ move $s2, $v0 /* 0D4CF4 7F0A01C4 02802025 */ move $a0, $s4 @@ -5337,7 +5867,7 @@ glabel sub_GAME_7F0A027C /* 0D4DF4 7F0A02C4 8DC10008 */ lw $at, 8($t6) /* 0D4DF8 7F0A02C8 AE610008 */ sw $at, 8($s3) /* 0D4DFC 7F0A02CC 8DD9000C */ lw $t9, 0xc($t6) -/* 0D4E00 7F0A02D0 0C002914 */ jal get_random_value +/* 0D4E00 7F0A02D0 0C002914 */ jal randomGetNext /* 0D4E04 7F0A02D4 AE79000C */ sw $t9, 0xc($s3) /* 0D4E08 7F0A02D8 44822000 */ mtc1 $v0, $f4 /* 0D4E0C 7F0A02DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -5354,7 +5884,7 @@ glabel sub_GAME_7F0A027C /* 0D4E34 7F0A0304 460A3402 */ mul.s $f16, $f6, $f10 /* 0D4E38 7F0A0308 00000000 */ nop /* 0D4E3C 7F0A030C 46128102 */ mul.s $f4, $f16, $f18 -/* 0D4E40 7F0A0310 0C002914 */ jal get_random_value +/* 0D4E40 7F0A0310 0C002914 */ jal randomGetNext /* 0D4E44 7F0A0314 E7A40054 */ swc1 $f4, 0x54($sp) /* 0D4E48 7F0A0318 24010050 */ li $at, 80 /* 0D4E4C 7F0A031C 0041001B */ divu $zero, $v0, $at @@ -5377,7 +5907,7 @@ glabel sub_GAME_7F0A027C /* 0D4E90 7F0A0360 00000000 */ nop /* 0D4E94 7F0A0364 46000506 */ mov.s $f20, $f0 .L7F0A0368: -/* 0D4E98 7F0A0368 0C002914 */ jal get_random_value +/* 0D4E98 7F0A0368 0C002914 */ jal randomGetNext /* 0D4E9C 7F0A036C 00000000 */ nop /* 0D4EA0 7F0A0370 44824000 */ mtc1 $v0, $f8 /* 0D4EA4 7F0A0374 04410005 */ bgez $v0, .L7F0A038C @@ -5565,7 +6095,7 @@ glabel sub_GAME_7F0A027C /* 0D5178 7F0A0648 000D4940 */ sll $t1, $t5, 5 /* 0D517C 7F0A064C 00007812 */ mflo $t7 /* 0D5180 7F0A0650 014F5821 */ addu $t3, $t2, $t7 -/* 0D5184 7F0A0654 0C002914 */ jal get_random_value +/* 0D5184 7F0A0654 0C002914 */ jal randomGetNext /* 0D5188 7F0A0658 A5690022 */ sh $t1, 0x22($t3) /* 0D518C 7F0A065C 24010032 */ li $at, 50 /* 0D5190 7F0A0660 0041001B */ divu $zero, $v0, $at @@ -5640,7 +6170,7 @@ glabel sub_GAME_7F0A027C /* 0D52A4 7F0A0774 03110019 */ multu $t8, $s1 /* 0D52A8 7F0A0778 00005812 */ mflo $t3 /* 0D52AC 7F0A077C 012B7021 */ addu $t6, $t1, $t3 -/* 0D52B0 7F0A0780 0C002914 */ jal get_random_value +/* 0D52B0 7F0A0780 0C002914 */ jal randomGetNext /* 0D52B4 7F0A0784 A5C00032 */ sh $zero, 0x32($t6) /* 0D52B8 7F0A0788 24010032 */ li $at, 50 /* 0D52BC 7F0A078C 0041001B */ divu $zero, $v0, $at @@ -5718,7 +6248,7 @@ glabel sub_GAME_7F0A027C /* 0D53DC 7F0A08AC 01910019 */ multu $t4, $s1 /* 0D53E0 7F0A08B0 0000C012 */ mflo $t8 /* 0D53E4 7F0A08B4 01187821 */ addu $t7, $t0, $t8 -/* 0D53E8 7F0A08B8 0C002914 */ jal get_random_value +/* 0D53E8 7F0A08B8 0C002914 */ jal randomGetNext /* 0D53EC 7F0A08BC A5E00042 */ sh $zero, 0x42($t7) /* 0D53F0 7F0A08C0 24010032 */ li $at, 50 /* 0D53F4 7F0A08C4 0041001B */ divu $zero, $v0, $at @@ -5800,7 +6330,7 @@ glabel sub_GAME_7F0A027C /* 0D5524 7F0A09F4 00096140 */ sll $t4, $t1, 5 /* 0D5528 7F0A09F8 0000C012 */ mflo $t8 /* 0D552C 7F0A09FC 01585821 */ addu $t3, $t2, $t8 -/* 0D5530 7F0A0A00 0C002914 */ jal get_random_value +/* 0D5530 7F0A0A00 0C002914 */ jal randomGetNext /* 0D5534 7F0A0A04 A56C0052 */ sh $t4, 0x52($t3) /* 0D5538 7F0A0A08 24010032 */ li $at, 50 /* 0D553C 7F0A0A0C 0041001B */ divu $zero, $v0, $at @@ -6878,7 +7408,7 @@ glabel sub_GAME_7F0A108C /* 0D640C 7F0A18DC 1000002E */ b .L7F0A1998 /* 0D6410 7F0A18E0 00008025 */ move $s0, $zero .L7F0A18E4: -/* 0D6414 7F0A18E4 0C002914 */ jal get_random_value +/* 0D6414 7F0A18E4 0C002914 */ jal randomGetNext /* 0D6418 7F0A18E8 00000000 */ nop /* 0D641C 7F0A18EC 0055001B */ divu $zero, $v0, $s5 /* 0D6420 7F0A18F0 00006810 */ mfhi $t5 @@ -6892,7 +7422,7 @@ glabel sub_GAME_7F0A108C /* 0D643C 7F0A190C 10000022 */ b .L7F0A1998 /* 0D6440 7F0A1910 307000FF */ andi $s0, $v1, 0xff .L7F0A1914: -/* 0D6444 7F0A1914 0C002914 */ jal get_random_value +/* 0D6444 7F0A1914 0C002914 */ jal randomGetNext /* 0D6448 7F0A1918 00000000 */ nop /* 0D644C 7F0A191C 0055001B */ divu $zero, $v0, $s5 /* 0D6450 7F0A1920 00001810 */ mfhi $v1 @@ -6905,7 +7435,7 @@ glabel sub_GAME_7F0A108C /* 0D6468 7F0A1938 10000017 */ b .L7F0A1998 /* 0D646C 7F0A193C 307000FF */ andi $s0, $v1, 0xff .L7F0A1940: -/* 0D6470 7F0A1940 0C002914 */ jal get_random_value +/* 0D6470 7F0A1940 0C002914 */ jal randomGetNext /* 0D6474 7F0A1944 00000000 */ nop /* 0D6478 7F0A1948 304E0001 */ andi $t6, $v0, 1 /* 0D647C 7F0A194C 11C00003 */ beqz $t6, .L7F0A195C @@ -6913,7 +7443,7 @@ glabel sub_GAME_7F0A108C /* 0D6484 7F0A1954 10000001 */ b .L7F0A195C /* 0D6488 7F0A1958 329000FF */ andi $s0, $s4, 0xff .L7F0A195C: -/* 0D648C 7F0A195C 0C002914 */ jal get_random_value +/* 0D648C 7F0A195C 0C002914 */ jal randomGetNext /* 0D6490 7F0A1960 00000000 */ nop /* 0D6494 7F0A1964 30490001 */ andi $t1, $v0, 1 /* 0D6498 7F0A1968 11200003 */ beqz $t1, .L7F0A1978 @@ -6921,7 +7451,7 @@ glabel sub_GAME_7F0A108C /* 0D64A0 7F0A1970 10000001 */ b .L7F0A1978 /* 0D64A4 7F0A1974 328500FF */ andi $a1, $s4, 0xff .L7F0A1978: -/* 0D64A8 7F0A1978 0C002914 */ jal get_random_value +/* 0D64A8 7F0A1978 0C002914 */ jal randomGetNext /* 0D64AC 7F0A197C A3A50062 */ sb $a1, 0x62($sp) /* 0D64B0 7F0A1980 30580001 */ andi $t8, $v0, 1 /* 0D64B4 7F0A1984 13000003 */ beqz $t8, .L7F0A1994 diff --git a/src/game/unk_09C250.h b/src/game/unk_09C250.h index 8d368e1..e376a03 100644 --- a/src/game/unk_09C250.h +++ b/src/game/unk_09C250.h @@ -2,6 +2,10 @@ #define _UNK_09C250_H_ #include "ultra64.h" +extern struct prop *ptr_smoke_buf; +extern struct prop *ptr_explosion_buf; +extern s32 D_80040170; + extern char dword_CODE_bss_8007A100[]; #endif diff --git a/src/game/unk_0A1DA0.c b/src/game/unk_0A1DA0.c index 37351fc..354e932 100644 --- a/src/game/unk_0A1DA0.c +++ b/src/game/unk_0A1DA0.c @@ -168,10 +168,10 @@ glabel sub_GAME_7F0A1DA0 /* 0D6A6C 7F0A1F3C C6320000 */ lwc1 $f18, ($s1) /* 0D6A70 7F0A1F40 44023000 */ mfc1 $v0, $f6 /* 0D6A74 7F0A1F44 C7A60084 */ lwc1 $f6, 0x84($sp) -/* 0D6A78 7F0A1F48 3C048006 */ lui $a0, %hi(ptr_sfx_buf) +/* 0D6A78 7F0A1F48 3C048006 */ lui $a0, %hi(g_musicSfxBufferPtr) /* 0D6A7C 7F0A1F4C 0002C843 */ sra $t9, $v0, 1 /* 0D6A80 7F0A1F50 44995000 */ mtc1 $t9, $f10 -/* 0D6A84 7F0A1F54 8C843720 */ lw $a0, %lo(ptr_sfx_buf)($a0) +/* 0D6A84 7F0A1F54 8C843720 */ lw $a0, %lo(g_musicSfxBufferPtr)($a0) /* 0D6A88 7F0A1F58 24050047 */ li $a1, 71 /* 0D6A8C 7F0A1F5C 468053A0 */ cvt.s.w $f14, $f10 /* 0D6A90 7F0A1F60 00003025 */ move $a2, $zero @@ -263,7 +263,7 @@ glabel sub_GAME_7F0A1DA0 /* 0D6BE0 7F0A20B0 E7A400C4 */ swc1 $f4, 0xc4($sp) /* 0D6BE4 7F0A20B4 46149102 */ mul.s $f4, $f18, $f20 /* 0D6BE8 7F0A20B8 460A2180 */ add.s $f6, $f4, $f10 -/* 0D6BEC 7F0A20BC 0C002914 */ jal get_random_value +/* 0D6BEC 7F0A20BC 0C002914 */ jal randomGetNext /* 0D6BF0 7F0A20C0 E7A600C8 */ swc1 $f6, 0xc8($sp) /* 0D6BF4 7F0A20C4 44828000 */ mtc1 $v0, $f16 /* 0D6BF8 7F0A20C8 4405F000 */ mfc1 $a1, $f30 @@ -341,7 +341,7 @@ glabel sub_GAME_7F0A2160 /* 0D6CAC 7F0A217C F7B40018 */ sdc1 $f20, 0x18($sp) /* 0D6CB0 7F0A2180 AFA40058 */ sw $a0, 0x58($sp) /* 0D6CB4 7F0A2184 AFA5005C */ sw $a1, 0x5c($sp) -/* 0D6CB8 7F0A2188 0C002914 */ jal get_random_value +/* 0D6CB8 7F0A2188 0C002914 */ jal randomGetNext /* 0D6CBC 7F0A218C AFA60060 */ sw $a2, 0x60($sp) /* 0D6CC0 7F0A2190 3C012F80 */ li $at, 0x2F800000 # 0.000000 /* 0D6CC4 7F0A2194 4481A000 */ mtc1 $at, $f20 @@ -357,7 +357,7 @@ glabel sub_GAME_7F0A2160 .L7F0A21BC: /* 0D6CEC 7F0A21BC 46143002 */ mul.s $f0, $f6, $f20 /* 0D6CF0 7F0A21C0 46000280 */ add.s $f10, $f0, $f0 -/* 0D6CF4 7F0A21C4 0C002914 */ jal get_random_value +/* 0D6CF4 7F0A21C4 0C002914 */ jal randomGetNext /* 0D6CF8 7F0A21C8 46165601 */ sub.s $f24, $f10, $f22 /* 0D6CFC 7F0A21CC 44828000 */ mtc1 $v0, $f16 /* 0D6D00 7F0A21D0 04410005 */ bgez $v0, .L7F0A21E8 @@ -374,7 +374,7 @@ glabel sub_GAME_7F0A2160 /* 0D6D28 7F0A21F8 C430771C */ lwc1 $f16, %lo(D_8005771C)($at) /* 0D6D2C 7F0A21FC 46064282 */ mul.s $f10, $f8, $f6 /* 0D6D30 7F0A2200 46105101 */ sub.s $f4, $f10, $f16 -/* 0D6D34 7F0A2204 0C002914 */ jal get_random_value +/* 0D6D34 7F0A2204 0C002914 */ jal randomGetNext /* 0D6D38 7F0A2208 E7A40050 */ swc1 $f4, 0x50($sp) /* 0D6D3C 7F0A220C 3C108004 */ lui $s0, %hi(D_80040940) /* 0D6D40 7F0A2210 26100940 */ addiu $s0, %lo(D_80040940) # addiu $s0, $s0, 0x940 @@ -446,7 +446,7 @@ glabel sub_GAME_7F0A2160 /* 0D6E44 7F0A2314 00006012 */ mflo $t4 /* 0D6E48 7F0A2318 46022482 */ mul.s $f18, $f4, $f2 /* 0D6E4C 7F0A231C 014C5821 */ addu $t3, $t2, $t4 -/* 0D6E50 7F0A2320 0C002914 */ jal get_random_value +/* 0D6E50 7F0A2320 0C002914 */ jal randomGetNext /* 0D6E54 7F0A2324 E5720024 */ swc1 $f18, 0x24($t3) /* 0D6E58 7F0A2328 44824000 */ mtc1 $v0, $f8 /* 0D6E5C 7F0A232C 3C013F00 */ li $at, 0x3F000000 # 0.500000 @@ -470,7 +470,7 @@ glabel sub_GAME_7F0A2160 /* 0D6EA0 7F0A2370 46089182 */ mul.s $f6, $f18, $f8 /* 0D6EA4 7F0A2374 4600328D */ trunc.w.s $f10, $f6 /* 0D6EA8 7F0A2378 440D5000 */ mfc1 $t5, $f10 -/* 0D6EAC 7F0A237C 0C002914 */ jal get_random_value +/* 0D6EAC 7F0A237C 0C002914 */ jal randomGetNext /* 0D6EB0 7F0A2380 A5CD0038 */ sh $t5, 0x38($t6) /* 0D6EB4 7F0A2384 44828000 */ mtc1 $v0, $f16 /* 0D6EB8 7F0A2388 04410005 */ bgez $v0, .L7F0A23A0 @@ -499,7 +499,7 @@ glabel sub_GAME_7F0A2160 /* 0D6F10 7F0A23E0 01120019 */ multu $t0, $s2 /* 0D6F14 7F0A23E4 00006812 */ mflo $t5 /* 0D6F18 7F0A23E8 032D7021 */ addu $t6, $t9, $t5 -/* 0D6F1C 7F0A23EC 0C002914 */ jal get_random_value +/* 0D6F1C 7F0A23EC 0C002914 */ jal randomGetNext /* 0D6F20 7F0A23F0 A5C0003C */ sh $zero, 0x3c($t6) /* 0D6F24 7F0A23F4 44824000 */ mtc1 $v0, $f8 /* 0D6F28 7F0A23F8 04410005 */ bgez $v0, .L7F0A2410 @@ -521,7 +521,7 @@ glabel sub_GAME_7F0A2160 /* 0D6F64 7F0A2434 46082282 */ mul.s $f10, $f4, $f8 /* 0D6F68 7F0A2438 4600518D */ trunc.w.s $f6, $f10 /* 0D6F6C 7F0A243C 440B3000 */ mfc1 $t3, $f6 -/* 0D6F70 7F0A2440 0C002914 */ jal get_random_value +/* 0D6F70 7F0A2440 0C002914 */ jal randomGetNext /* 0D6F74 7F0A2444 A5EB0048 */ sh $t3, 0x48($t7) /* 0D6F78 7F0A2448 C7A00060 */ lwc1 $f0, 0x60($sp) /* 0D6F7C 7F0A244C 44828000 */ mtc1 $v0, $f16 @@ -552,7 +552,7 @@ glabel sub_GAME_7F0A2160 /* 0D6FDC 7F0A24AC 00005812 */ mflo $t3 /* 0D6FE0 7F0A24B0 018B7821 */ addu $t7, $t4, $t3 /* 0D6FE4 7F0A24B4 A5E0004C */ sh $zero, 0x4c($t7) -/* 0D6FE8 7F0A24B8 0C002914 */ jal get_random_value +/* 0D6FE8 7F0A24B8 0C002914 */ jal randomGetNext /* 0D6FEC 7F0A24BC E7A00044 */ swc1 $f0, 0x44($sp) /* 0D6FF0 7F0A24C0 44829000 */ mtc1 $v0, $f18 /* 0D6FF4 7F0A24C4 04410005 */ bgez $v0, .L7F0A24DC @@ -574,7 +574,7 @@ glabel sub_GAME_7F0A2160 /* 0D7030 7F0A2500 46122282 */ mul.s $f10, $f4, $f18 /* 0D7034 7F0A2504 4600520D */ trunc.w.s $f8, $f10 /* 0D7038 7F0A2508 440E4000 */ mfc1 $t6, $f8 -/* 0D703C 7F0A250C 0C002914 */ jal get_random_value +/* 0D703C 7F0A250C 0C002914 */ jal randomGetNext /* 0D7040 7F0A2510 A70E0058 */ sh $t6, 0x58($t8) /* 0D7044 7F0A2514 44823000 */ mtc1 $v0, $f6 /* 0D7048 7F0A2518 24050005 */ li $a1, 5 @@ -730,7 +730,7 @@ glabel sub_GAME_7F0A2160 /* 0D729C 7F0A276C 03320019 */ multu $t9, $s2 /* 0D72A0 7F0A2770 00007012 */ mflo $t6 /* 0D72A4 7F0A2774 018EC021 */ addu $t8, $t4, $t6 -/* 0D72A8 7F0A2778 0C002914 */ jal get_random_value +/* 0D72A8 7F0A2778 0C002914 */ jal randomGetNext /* 0D72AC 7F0A277C E70A0014 */ swc1 $f10, 0x14($t8) /* 0D72B0 7F0A2780 44824000 */ mtc1 $v0, $f8 /* 0D72B4 7F0A2784 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -749,7 +749,7 @@ glabel sub_GAME_7F0A2160 /* 0D72E4 7F0A27B4 46128282 */ mul.s $f10, $f16, $f18 /* 0D72E8 7F0A27B8 00007812 */ mflo $t7 /* 0D72EC 7F0A27BC 010F5821 */ addu $t3, $t0, $t7 -/* 0D72F0 7F0A27C0 0C002914 */ jal get_random_value +/* 0D72F0 7F0A27C0 0C002914 */ jal randomGetNext /* 0D72F4 7F0A27C4 E56A0018 */ swc1 $f10, 0x18($t3) /* 0D72F8 7F0A27C8 44824000 */ mtc1 $v0, $f8 /* 0D72FC 7F0A27CC 3C018005 */ lui $at, %hi(D_80057724) @@ -768,7 +768,7 @@ glabel sub_GAME_7F0A2160 /* 0D732C 7F0A27FC 46168482 */ mul.s $f18, $f16, $f22 /* 0D7330 7F0A2800 0000C812 */ mflo $t9 /* 0D7334 7F0A2804 01396021 */ addu $t4, $t1, $t9 -/* 0D7338 7F0A2808 0C002914 */ jal get_random_value +/* 0D7338 7F0A2808 0C002914 */ jal randomGetNext /* 0D733C 7F0A280C E5920028 */ swc1 $f18, 0x28($t4) /* 0D7340 7F0A2810 44825000 */ mtc1 $v0, $f10 /* 0D7344 7F0A2814 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -785,7 +785,7 @@ glabel sub_GAME_7F0A2160 /* 0D736C 7F0A283C 46162402 */ mul.s $f16, $f4, $f22 /* 0D7370 7F0A2840 00005012 */ mflo $t2 /* 0D7374 7F0A2844 01CA4021 */ addu $t0, $t6, $t2 -/* 0D7378 7F0A2848 0C002914 */ jal get_random_value +/* 0D7378 7F0A2848 0C002914 */ jal randomGetNext /* 0D737C 7F0A284C E510002C */ swc1 $f16, 0x2c($t0) /* 0D7380 7F0A2850 44829000 */ mtc1 $v0, $f18 /* 0D7384 7F0A2854 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -1195,7 +1195,7 @@ glabel sub_GAME_7F0A2C44 /* 0D78E8 7F0A2DB8 8DAE0000 */ lw $t6, ($t5) /* 0D78EC 7F0A2DBC 59C00035 */ blezl $t6, .L7F0A2E94 /* 0D78F0 7F0A2DC0 26940001 */ addiu $s4, $s4, 1 -/* 0D78F4 7F0A2DC4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0D78F4 7F0A2DC4 0FC2F5B8 */ jal dynAllocateMatrix /* 0D78F8 7F0A2DC8 00000000 */ nop /* 0D78FC 7F0A2DCC 8E6F0000 */ lw $t7, ($s3) /* 0D7900 7F0A2DD0 00408825 */ move $s1, $v0 @@ -2325,7 +2325,7 @@ glabel sub_GAME_7F0A3C08 /* 0D8748 7F0A3C18 AFB00020 */ sw $s0, 0x20($sp) /* 0D874C 7F0A3C1C 00808025 */ move $s0, $a0 /* 0D8750 7F0A3C20 AFA50034 */ sw $a1, 0x34($sp) -/* 0D8754 7F0A3C24 0C002914 */ jal get_random_value +/* 0D8754 7F0A3C24 0C002914 */ jal randomGetNext /* 0D8758 7F0A3C28 AFA60038 */ sw $a2, 0x38($sp) /* 0D875C 7F0A3C2C 44822000 */ mtc1 $v0, $f4 /* 0D8760 7F0A3C30 8FA50034 */ lw $a1, 0x34($sp) @@ -2420,7 +2420,7 @@ glabel sub_GAME_7F0A3C08 /* 0D88AC 7F0A3D7C C4A80004 */ lwc1 $f8, 4($a1) /* 0D88B0 7F0A3D80 E6080014 */ swc1 $f8, 0x14($s0) /* 0D88B4 7F0A3D84 C4A60008 */ lwc1 $f6, 8($a1) -/* 0D88B8 7F0A3D88 0C002914 */ jal get_random_value +/* 0D88B8 7F0A3D88 0C002914 */ jal randomGetNext /* 0D88BC 7F0A3D8C E6060018 */ swc1 $f6, 0x18($s0) /* 0D88C0 7F0A3D90 44825000 */ mtc1 $v0, $f10 /* 0D88C4 7F0A3D94 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 @@ -2601,7 +2601,7 @@ glabel sub_GAME_7F0A3F04 /* 0D8AB0 7F0A3F80 24040004 */ li $a0, 4 /* 0D8AB4 7F0A3F84 8D4B0000 */ lw $t3, ($t2) /* 0D8AB8 7F0A3F88 AFA200A4 */ sw $v0, 0xa4($sp) -/* 0D8ABC 7F0A3F8C 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0D8ABC 7F0A3F8C 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0D8AC0 7F0A3F90 AFAB00A0 */ sw $t3, 0xa0($sp) /* 0D8AC4 7F0A3F94 86040006 */ lh $a0, 6($s0) /* 0D8AC8 7F0A3F98 00408825 */ move $s1, $v0 diff --git a/src/game/unk_0C0A70.c b/src/game/unk_0C0A70.c index fab73ec..cf4337e 100644 --- a/src/game/unk_0C0A70.c +++ b/src/game/unk_0C0A70.c @@ -4,6 +4,10 @@ // data s32 D_80048490 = -1; s32 D_80048494 = 0; + +/** + * Appears to be rendered framerate, or some kind of counter since the last frame update. + */ s32 D_80048498 = 1; #ifdef VERSION_JP f32 jpD_800484CC = 1.0f; @@ -143,6 +147,57 @@ glabel sub_GAME_7F0C0AA0 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel sub_GAME_7F0C0AA0 +/* 0F55D0 7F0C0AA0 3C0E8005 */ lui $t6, %hi(copy_of_osgetcount_value_1) +/* 0F55D4 7F0C0AA4 8DCE84B0 */ lw $t6, %lo(copy_of_osgetcount_value_1)($t6) +/* 0F55D8 7F0C0AA8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F55DC 7F0C0AAC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F55E0 7F0C0AB0 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_0) +/* 0F55E4 7F0C0AB4 AFA40018 */ sw $a0, 0x18($sp) +/* 0F55E8 7F0C0AB8 0C003638 */ jal osGetCount +/* 0F55EC 7F0C0ABC AC2E84AC */ sw $t6, %lo(copy_of_osgetcount_value_0)($at) +/* 0F55F0 7F0C0AC0 3C048005 */ lui $a0, %hi(D_80048494) +/* 0F55F4 7F0C0AC4 3C018005 */ lui $at, %hi(copy_of_osgetcount_value_1) +/* 0F55F8 7F0C0AC8 AC2284B0 */ sw $v0, %lo(copy_of_osgetcount_value_1)($at) +/* 0F55FC 7F0C0ACC 24848494 */ addiu $a0, %lo(D_80048494) # addiu $a0, $a0, -0x7b6c +/* 0F5600 7F0C0AD0 8C830000 */ lw $v1, ($a0) +/* 0F5604 7F0C0AD4 8FA70018 */ lw $a3, 0x18($sp) +/* 0F5608 7F0C0AD8 3C018005 */ lui $at, %hi(D_80048490) +/* 0F560C 7F0C0ADC AC238490 */ sw $v1, %lo(D_80048490)($at) +/* 0F5610 7F0C0AE0 00677821 */ addu $t7, $v1, $a3 +/* 0F5614 7F0C0AE4 AC8F0000 */ sw $t7, ($a0) +/* 0F5618 7F0C0AE8 3C018005 */ lui $at, %hi(D_80048498) +/* 0F561C 7F0C0AEC AC278498 */ sw $a3, %lo(D_80048498)($at) +/* 0F5620 7F0C0AF0 8C830000 */ lw $v1, ($a0) +/* 0F5624 7F0C0AF4 3C058005 */ lui $a1, %hi(D_800484A0) +/* 0F5628 7F0C0AF8 24A584A0 */ addiu $a1, %lo(D_800484A0) # addiu $a1, $a1, -0x7b60 +/* 0F562C 7F0C0AFC 8CB80000 */ lw $t8, ($a1) +/* 0F5630 7F0C0B00 3C068005 */ lui $a2, %hi(D_8004849C) +/* 0F5634 7F0C0B04 24C6849C */ addiu $a2, %lo(D_8004849C) # addiu $a2, $a2, -0x7b64 +/* 0F5638 7F0C0B08 30680001 */ andi $t0, $v1, 1 +/* 0F563C 7F0C0B0C ACD80000 */ sw $t8, ($a2) +/* 0F5640 7F0C0B10 04610003 */ bgez $v1, .L7F0C0B20 +/* 0F5644 7F0C0B14 0003C843 */ sra $t9, $v1, 1 +/* 0F5648 7F0C0B18 24610001 */ addiu $at, $v1, 1 +/* 0F564C 7F0C0B1C 0001C843 */ sra $t9, $at, 1 +.L7F0C0B20: +/* 0F5650 7F0C0B20 ACB90000 */ sw $t9, ($a1) +/* 0F5654 7F0C0B24 3C018005 */ lui $at, %hi(D_800484A4) +/* 0F5658 7F0C0B28 AC2884A4 */ sw $t0, %lo(D_800484A4)($at) +/* 0F565C 7F0C0B2C 8CCA0000 */ lw $t2, ($a2) +/* 0F5660 7F0C0B30 8CA90000 */ lw $t1, ($a1) +/* 0F5664 7F0C0B34 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F5668 7F0C0B38 3C018005 */ lui $at, %hi(D_800484A8) +/* 0F566C 7F0C0B3C 012A5823 */ subu $t3, $t1, $t2 +/* 0F5670 7F0C0B40 AC2B84A8 */ sw $t3, %lo(D_800484A8)($at) +/* 0F5674 7F0C0B44 03E00008 */ jr $ra +/* 0F5678 7F0C0B48 27BD0018 */ addiu $sp, $sp, 0x18 +) +#endif + #endif diff --git a/src/game/unk_0C0A70.h b/src/game/unk_0C0A70.h index 7361e49..56345a2 100644 --- a/src/game/unk_0C0A70.h +++ b/src/game/unk_0C0A70.h @@ -13,4 +13,6 @@ extern u32 copy_of_osgetcount_value_0; extern u32 copy_of_osgetcount_value_1; extern s32 D_800484B4; +void sub_GAME_7F0C0B4C(void); + #endif diff --git a/src/game/viewport.c b/src/game/viewport.c index 05bf545..d5b0995 100644 --- a/src/game/viewport.c +++ b/src/game/viewport.c @@ -1,5 +1,6 @@ #include "ultra64.h" #include "game/bond.h" +#include "libultra/os.h" // bss s32 z_buffer_width; @@ -55,26 +56,26 @@ Gfx *zbufInit(Gfx *gdl) { return gdl; } -s16 get_video2_settings_txtClipW(void); -s16 get_video2_settings_txtClipH(void); +s16 viGetX(void); +s16 viGetY(void); Gfx *zbufClearCurrentPlayer(Gfx *gdl) { s32 start_x; s32 end_x; gDPPipeSync(gdl++); gDPSetRenderMode(gdl++, G_RM_NOOP, G_RM_NOOP2); - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, z_buffer_width, (z_buffer + 0x80000000)); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, z_buffer_width, OS_K0_TO_PHYSICAL(z_buffer)); gDPSetCycleType(gdl++, G_CYC_FILL); gDPSetFillColor(gdl++, (GPACK_ZDZ(G_MAXFBZ, 0) << 16 | GPACK_ZDZ(G_MAXFBZ, 0))); - gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH()); + gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, viGetX(), viGetY()); if (getPlayerCount() < 3) { start_x = 0; - end_x = get_video2_settings_txtClipW() - 1; + end_x = viGetX() - 1; } else if ((get_cur_playernum() == 0) || (get_cur_playernum() == 2)) { start_x = 0; - end_x = (get_video2_settings_txtClipW() / 2) - 1; + end_x = (viGetX() / 2) - 1; } else { - start_x = get_video2_settings_txtClipW() / 2; - end_x = get_video2_settings_txtClipW() - 1; + start_x = viGetX() / 2; + end_x = viGetX() - 1; } gDPFillRectangle(gdl++, start_x, 0, end_x, (z_buffer_height - 1)); gDPPipeSync(gdl++); diff --git a/src/game/watch.c b/src/game/watch.c index d7d9245..e680896 100644 --- a/src/game/watch.c +++ b/src/game/watch.c @@ -8,6 +8,7 @@ #include "game/textrelated.h" #include "music.h" #include "bondconstants.h" +#include "boss.h" // bss char dword_CODE_bss_8007B0A0[0x40]; @@ -532,19 +533,19 @@ glabel init_watch_at_start_of_stage void controller_deadzone_related(void) { - if (10 < get_cur_controller_horz_stick_pos('\0')) + if (10 < joyGetStickX('\0')) { D_80040B50 = D_80040B50 + 1; } - if (get_cur_controller_horz_stick_pos('\0') < -10) + if (joyGetStickX('\0') < -10) { D_80040B50 = D_80040B50 + -1; } - if (10 < get_cur_controller_vert_stick_pos('\0')) + if (10 < joyGetStickY('\0')) { D_80040B54 = D_80040B54 + -1; } - if (get_cur_controller_vert_stick_pos('\0') < -10) + if (joyGetStickY('\0') < -10) { D_80040B54 = D_80040B54 + 1; } @@ -566,19 +567,19 @@ void proc_7F0A4B40(undefined4 *param_1) int *piStack40; byte abStack36 [36]; - sVar1 = get_cur_controller_horz_stick_pos('\0'); + sVar1 = joyGetStickX('\0'); if (10 < sVar1) { D_80040B48 = D_80040B48 + 1; } - sVar1 = get_cur_controller_horz_stick_pos('\0'); + sVar1 = joyGetStickX('\0'); if (sVar1 < -10) { D_80040B48 = D_80040B48 - 1; } - sVar1 = get_cur_controller_vert_stick_pos('\0'); + sVar1 = joyGetStickY('\0'); if (10 < sVar1) { D_80040B4C = D_80040B4C - 1; } - sVar1 = get_cur_controller_vert_stick_pos('\0'); + sVar1 = joyGetStickY('\0'); if (sVar1 < -10) { D_80040B4C = D_80040B4C + 1; } @@ -610,7 +611,7 @@ glabel sub_GAME_7F0A4B40 /* 0D967C 7F0A4B4C AFBF0044 */ sw $ra, 0x44($sp) /* 0D9680 7F0A4B50 AFB20040 */ sw $s2, 0x40($sp) /* 0D9684 7F0A4B54 AFB1003C */ sw $s1, 0x3c($sp) -/* 0D9688 7F0A4B58 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D9688 7F0A4B58 0C00303B */ jal joyGetStickX /* 0D968C 7F0A4B5C 00002025 */ move $a0, $zero /* 0D9690 7F0A4B60 2841000B */ slti $at, $v0, 0xb /* 0D9694 7F0A4B64 14200006 */ bnez $at, .L7F0A4B80 @@ -622,7 +623,7 @@ glabel sub_GAME_7F0A4B40 /* 0D96AC 7F0A4B7C AE4F0000 */ sw $t7, ($s2) .L7F0A4B80: /* 0D96B0 7F0A4B80 3C128004 */ lui $s2, %hi(D_80040B48) -/* 0D96B4 7F0A4B84 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0D96B4 7F0A4B84 0C00303B */ jal joyGetStickX /* 0D96B8 7F0A4B88 26520B48 */ addiu $s2, %lo(D_80040B48) # addiu $s2, $s2, 0xb48 /* 0D96BC 7F0A4B8C 2841FFF6 */ slti $at, $v0, -0xa /* 0D96C0 7F0A4B90 10200004 */ beqz $at, .L7F0A4BA4 @@ -631,7 +632,7 @@ glabel sub_GAME_7F0A4B40 /* 0D96CC 7F0A4B9C 2719FFFF */ addiu $t9, $t8, -1 /* 0D96D0 7F0A4BA0 AE590000 */ sw $t9, ($s2) .L7F0A4BA4: -/* 0D96D4 7F0A4BA4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D96D4 7F0A4BA4 0C00307F */ jal joyGetStickY /* 0D96D8 7F0A4BA8 00002025 */ move $a0, $zero /* 0D96DC 7F0A4BAC 2841000B */ slti $at, $v0, 0xb /* 0D96E0 7F0A4BB0 14200006 */ bnez $at, .L7F0A4BCC @@ -643,7 +644,7 @@ glabel sub_GAME_7F0A4B40 /* 0D96F8 7F0A4BC8 AE2B0000 */ sw $t3, ($s1) .L7F0A4BCC: /* 0D96FC 7F0A4BCC 3C118004 */ lui $s1, %hi(D_80040B4C) -/* 0D9700 7F0A4BD0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0D9700 7F0A4BD0 0C00307F */ jal joyGetStickY /* 0D9704 7F0A4BD4 26310B4C */ addiu $s1, %lo(D_80040B4C) # addiu $s1, $s1, 0xb4c /* 0D9708 7F0A4BD8 2841FFF6 */ slti $at, $v0, -0xa /* 0D970C 7F0A4BDC 10200004 */ beqz $at, .L7F0A4BF0 @@ -759,7 +760,7 @@ glabel sub_GAME_7F0A4B40 u32 controllerCheckDualControllerTypesAllowed(void) { - if (get_attached_controller_count() >= 2) + if (joyGetControllerCount() >= 2) { if (cur_player_get_control_type() >= 4) { @@ -870,7 +871,7 @@ void sub_GAME_7F0A4EF8(void) { } else { watch_soundrelated_maybe = 1; - play_sfx_a1(ptr_sfx_buf, 0x9F, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x9F, 0); } } @@ -880,12 +881,12 @@ void reset_watch_soundrelated_maybe(void){ u32 is_holding_greater_than_2E_left_on_stick(void) { - return (get_cur_controller_horz_stick_pos('\0') < -0x2d); + return (joyGetStickX('\0') < -0x2d); } u32 is_holding_greater_than_2E_right_on_stick(void) { - return ((get_cur_controller_horz_stick_pos('\0') < 0x2e) ^ 1); + return ((joyGetStickX('\0') < 0x2e) ^ 1); } u32 get_controlstick_lr_enabled(void) { @@ -908,12 +909,12 @@ s32 sub_GAME_7F0A4FEC(void) u32 is_holding_greater_than_2E_up_on_stick(void) { - return (get_cur_controller_vert_stick_pos('\0') < 0x2e) ^ 1; + return (joyGetStickY('\0') < 0x2e) ^ 1; } u32 is_holding_greater_than_2E_down_on_stick(void) { - return (get_cur_controller_vert_stick_pos('\0') < -0x2d); + return (joyGetStickY('\0') < -0x2d); } u32 get_D_80040AE0(void) @@ -938,12 +939,12 @@ s32 sub_GAME_7F0A50C4(void) u32 is_holding_less_than_10_up_on_stick(void) { - return (get_cur_controller_vert_stick_pos('\0') < 0x10) ^ 1; + return (joyGetStickY('\0') < 0x10) ^ 1; } u32 is_holding_less_than_10_down_on_stick(void) { - return (get_cur_controller_vert_stick_pos('\0') < -0xf); + return (joyGetStickY('\0') < -0xf); } u32 get_D_80040AE4(void) { @@ -968,15 +969,15 @@ s32 sub_GAME_7F0A519C(void) void sub_GAME_7F0A51D8(void) { D_80040B04 = 0x80; - play_sfx_a1(ptr_sfx_buf,0xec,NULL); + play_sfx_a1(g_musicSfxBufferPtr,0xec,NULL); return; } void sub_GAME_7F0A5210(void) { set_controlstick_lr_disabled(); - play_sfx_a1(ptr_sfx_buf,0x9f,NULL); - if ((D_80040B10 << 0x10) < get_random_value()) { + play_sfx_a1(g_musicSfxBufferPtr,0x9f,NULL); + if ((D_80040B10 << 0x10) < randomGetNext()) { sub_GAME_7F0A51D8(); } return; @@ -994,22 +995,22 @@ void watch_screen0_navigation(void) if (get_debug_gunwatchpos_flag() == 0) { - if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + if (joyGetButtonsPressedThisFrame(0, L_TRIG|L_CBUTTONS)) { goto_watch_screen_index_4 = TRUE; } - if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + if (joyGetButtonsPressedThisFrame(0, R_TRIG|R_CBUTTONS)) { goto_watch_screen_index_1 = TRUE; } } - if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) { goto_watch_screen_index_4 = TRUE; } - if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) { goto_watch_screen_index_1 = TRUE; } @@ -1029,11 +1030,11 @@ void watch_screen0_navigation(void) return; } } - else if ((D_800409A4) && (get_controller_buttons_pressed(0, Z_TRIG|A_BUTTON))) + else if ((D_800409A4) && (joyGetButtonsPressedThisFrame(0, Z_TRIG|A_BUTTON))) { D_800409A4 = 0; set_missionstate(0); - run_title_stage(); + bossRunTitleStage(); mission_failed_or_aborted = 1; deleteCurrentSelectedFolder(); } @@ -1052,22 +1053,22 @@ void watch_screen1_navigation(void) if (get_debug_gunwatchpos_flag() == FALSE) { - if (get_controller_buttons_pressed(0, L_TRIG|L_CBUTTONS)) + if (joyGetButtonsPressedThisFrame(0, L_TRIG|L_CBUTTONS)) { goto_watch_screen_index_0 = TRUE; } - if (get_controller_buttons_pressed(0, R_TRIG|R_CBUTTONS)) + if (joyGetButtonsPressedThisFrame(0, R_TRIG|R_CBUTTONS)) { goto_watch_screen_index_2 = TRUE; } } - if ((get_controller_buttons_pressed(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_JPAD)) || (sub_GAME_7F0A4FB0())) { goto_watch_screen_index_0 = TRUE; } - if ((get_controller_buttons_pressed(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_JPAD)) || (sub_GAME_7F0A4FEC())) { goto_watch_screen_index_2 = TRUE; } @@ -1093,7 +1094,7 @@ void watch_screen1_navigation(void) void unused_watch_screen_navigation(void) { - if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) { if (watch_soundrelated_maybe == 0) { @@ -1102,7 +1103,7 @@ void unused_watch_screen_navigation(void) { return; } } - if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) { if (watch_soundrelated_maybe == 0) { @@ -1117,9 +1118,9 @@ void unused_watch_screen_navigation(void) { void watch_screen2_navigation(void) { - if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) { - if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + if ((joyGetButtons(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) { watch_screen_index = WATCH_INDEX_INVENTORY; sub_GAME_7F0A5210(); @@ -1127,9 +1128,9 @@ void watch_screen2_navigation(void) { return; } } - if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) { - if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + if ((joyGetButtons(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) { watch_screen_index = WATCH_INDEX_GAME_OPTIONS; reset_game_options_index(); @@ -1141,9 +1142,9 @@ void watch_screen2_navigation(void) { void watch_screen3_navigation(void) { - if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) { - if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + if ((joyGetButtons(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) { watch_screen_index = WATCH_INDEX_CONTROL_OPTIONS; reset_controller_options_index(); @@ -1151,9 +1152,9 @@ void watch_screen3_navigation(void) { return; } } - if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) { - if ((get_controller_buttons_held(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) + if ((joyGetButtons(0, Z_TRIG) == 0) && (watch_soundrelated_maybe == 0)) { watch_screen_index = WATCH_INDEX_MISSION_BRIEFING; sub_GAME_7F0A5210(); @@ -1165,7 +1166,7 @@ void watch_screen3_navigation(void) { void watch_screen4_navigation(void) { - if ((get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) + if ((joyGetButtonsPressedThisFrame(0, L_CBUTTONS|L_TRIG|L_JPAD)) || (sub_GAME_7F0A4FB0())) { if (watch_soundrelated_maybe == 0) { @@ -1176,7 +1177,7 @@ void watch_screen4_navigation(void) { return; } } - if ((get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) + if ((joyGetButtonsPressedThisFrame(0, R_CBUTTONS|R_TRIG|R_JPAD)) || (sub_GAME_7F0A4FEC())) { if (watch_soundrelated_maybe == 0) { @@ -1191,7 +1192,7 @@ void watch_screen4_navigation(void) { void controller_options_controlstyle_navigation(void) { - if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + if ((joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) { if (watch_soundrelated_maybe == 0) { @@ -1200,7 +1201,7 @@ void controller_options_controlstyle_navigation(void) return; } } - if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + if ((joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) { if (watch_soundrelated_maybe == 0) { @@ -1212,7 +1213,7 @@ void controller_options_controlstyle_navigation(void) void controller_options_inputs_navigation(void) { - if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + if ((joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) { if (watch_soundrelated_maybe == 0) { @@ -1221,7 +1222,7 @@ void controller_options_inputs_navigation(void) return; } } - if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + if ((joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) { if (watch_soundrelated_maybe == 0) { @@ -1235,13 +1236,13 @@ void sub_GAME_7F0A5998(void) { s32 aux; - if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + if ((joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) { game_options_index = game_options_index - 1; set_D_80040AE0_0(); reset_watch_soundrelated_maybe(); } - else if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + else if ((joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) { game_options_index = game_options_index + 1; set_D_80040AE0_0(); @@ -1264,7 +1265,7 @@ void sub_GAME_7F0A5998(void) void game_options_music_volume_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { game_options_index = GAME_OPTIONS_INDEX_RATIO; set_D_80040AE0_0(); @@ -1272,7 +1273,7 @@ void game_options_music_volume_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { game_options_index = GAME_OPTIONS_INDEX_FX; set_D_80040AE0_0(); @@ -1282,7 +1283,7 @@ void game_options_music_volume_navigation(void) void game_options_fx_volume_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { game_options_index = GAME_OPTIONS_INDEX_MUSIC; set_D_80040AE0_0(); @@ -1290,7 +1291,7 @@ void game_options_fx_volume_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { game_options_index = GAME_OPTIONS_INDEX_LOOK_UPDOWN; set_D_80040AE0_0(); @@ -1328,11 +1329,11 @@ glabel sub_GAME_7F0A5B80 /* 0DA6C4 7F0A5B94 AFA2001C */ sw $v0, 0x1c($sp) /* 0DA6C8 7F0A5B98 14400067 */ bnez $v0, .L7F0A5D38 /* 0DA6CC 7F0A5B9C 00002025 */ move $a0, $zero -/* 0DA6D0 7F0A5BA0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA6D0 7F0A5BA0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0DA6D4 7F0A5BA4 24050808 */ li $a1, 2056 /* 0DA6D8 7F0A5BA8 14400005 */ bnez $v0, .L7F0A5BC0 /* 0DA6DC 7F0A5BAC 00000000 */ nop -/* 0DA6E0 7F0A5BB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA6E0 7F0A5BB0 0C00307F */ jal joyGetStickY /* 0DA6E4 7F0A5BB4 00002025 */ move $a0, $zero /* 0DA6E8 7F0A5BB8 28410047 */ slti $at, $v0, 0x47 /* 0DA6EC 7F0A5BBC 14200012 */ bnez $at, .L7F0A5C08 @@ -1357,11 +1358,11 @@ glabel sub_GAME_7F0A5B80 /* 0DA734 7F0A5C04 E4C80000 */ swc1 $f8, ($a2) .L7F0A5C08: /* 0DA738 7F0A5C08 00002025 */ move $a0, $zero -/* 0DA73C 7F0A5C0C 0C0030EB */ jal get_controller_buttons_pressed +/* 0DA73C 7F0A5C0C 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0DA740 7F0A5C10 24050404 */ li $a1, 1028 /* 0DA744 7F0A5C14 14400008 */ bnez $v0, .L7F0A5C38 /* 0DA748 7F0A5C18 00000000 */ nop -/* 0DA74C 7F0A5C1C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA74C 7F0A5C1C 0C00307F */ jal joyGetStickY /* 0DA750 7F0A5C20 00002025 */ move $a0, $zero /* 0DA754 7F0A5C24 2841FFBA */ slti $at, $v0, -0x46 /* 0DA758 7F0A5C28 14200003 */ bnez $at, .L7F0A5C38 @@ -1392,7 +1393,7 @@ glabel sub_GAME_7F0A5B80 .L7F0A5C88: /* 0DA7B8 7F0A5C88 00002025 */ move $a0, $zero .L7F0A5C8C: -/* 0DA7BC 7F0A5C8C 0C0030C3 */ jal get_controller_buttons_held +/* 0DA7BC 7F0A5C8C 0C0030C3 */ jal joyGetButtons /* 0DA7C0 7F0A5C90 24050808 */ li $a1, 2056 /* 0DA7C4 7F0A5C94 3C068004 */ lui $a2, %hi(D_800409BC) /* 0DA7C8 7F0A5C98 10400010 */ beqz $v0, .L7F0A5CDC @@ -1414,7 +1415,7 @@ glabel sub_GAME_7F0A5B80 /* 0DA808 7F0A5CD8 E4C80000 */ swc1 $f8, ($a2) .L7F0A5CDC: /* 0DA80C 7F0A5CDC 00002025 */ move $a0, $zero -/* 0DA810 7F0A5CE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DA810 7F0A5CE0 0C0030C3 */ jal joyGetButtons /* 0DA814 7F0A5CE4 24050404 */ li $a1, 1028 /* 0DA818 7F0A5CE8 3C068004 */ lui $a2, %hi(D_800409BC) /* 0DA81C 7F0A5CEC 10400012 */ beqz $v0, .L7F0A5D38 @@ -1437,12 +1438,12 @@ glabel sub_GAME_7F0A5B80 /* 0DA860 7F0A5D30 46100480 */ add.s $f18, $f0, $f16 /* 0DA864 7F0A5D34 E4D20000 */ swc1 $f18, ($a2) .L7F0A5D38: -/* 0DA868 7F0A5D38 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA868 7F0A5D38 0C00307F */ jal joyGetStickY /* 0DA86C 7F0A5D3C 00002025 */ move $a0, $zero /* 0DA870 7F0A5D40 2841001F */ slti $at, $v0, 0x1f /* 0DA874 7F0A5D44 1420001A */ bnez $at, .L7F0A5DB0 /* 0DA878 7F0A5D48 00000000 */ nop -/* 0DA87C 7F0A5D4C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA87C 7F0A5D4C 0C00307F */ jal joyGetStickY /* 0DA880 7F0A5D50 00002025 */ move $a0, $zero /* 0DA884 7F0A5D54 28410046 */ slti $at, $v0, 0x46 /* 0DA888 7F0A5D58 10200015 */ beqz $at, .L7F0A5DB0 @@ -1454,7 +1455,7 @@ glabel sub_GAME_7F0A5B80 /* 0DA8A0 7F0A5D70 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) /* 0DA8A4 7F0A5D74 15E0000E */ bnez $t7, .L7F0A5DB0 /* 0DA8A8 7F0A5D78 00000000 */ nop -/* 0DA8AC 7F0A5D7C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8AC 7F0A5D7C 0C00307F */ jal joyGetStickY /* 0DA8B0 7F0A5D80 00002025 */ move $a0, $zero /* 0DA8B4 7F0A5D84 44822000 */ mtc1 $v0, $f4 /* 0DA8B8 7F0A5D88 3C014396 */ li $at, 0x43960000 # 300.000000 @@ -1468,12 +1469,12 @@ glabel sub_GAME_7F0A5B80 /* 0DA8D8 7F0A5DA8 10000025 */ b .L7F0A5E40 /* 0DA8DC 7F0A5DAC E4D20000 */ swc1 $f18, ($a2) .L7F0A5DB0: -/* 0DA8E0 7F0A5DB0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8E0 7F0A5DB0 0C00307F */ jal joyGetStickY /* 0DA8E4 7F0A5DB4 00002025 */ move $a0, $zero /* 0DA8E8 7F0A5DB8 2841FFE2 */ slti $at, $v0, -0x1e /* 0DA8EC 7F0A5DBC 10200020 */ beqz $at, .L7F0A5E40 /* 0DA8F0 7F0A5DC0 00000000 */ nop -/* 0DA8F4 7F0A5DC4 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA8F4 7F0A5DC4 0C00307F */ jal joyGetStickY /* 0DA8F8 7F0A5DC8 00002025 */ move $a0, $zero /* 0DA8FC 7F0A5DCC 3C068004 */ lui $a2, %hi(D_800409BC) /* 0DA900 7F0A5DD0 2841FFBB */ slti $at, $v0, -0x45 @@ -1492,7 +1493,7 @@ glabel sub_GAME_7F0A5B80 /* 0DA934 7F0A5E04 8D8C09A8 */ lw $t4, %lo(watch_soundrelated_maybe)($t4) /* 0DA938 7F0A5E08 1580000D */ bnez $t4, .L7F0A5E40 /* 0DA93C 7F0A5E0C 00000000 */ nop -/* 0DA940 7F0A5E10 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DA940 7F0A5E10 0C00307F */ jal joyGetStickY /* 0DA944 7F0A5E14 00002025 */ move $a0, $zero /* 0DA948 7F0A5E18 44824000 */ mtc1 $v0, $f8 /* 0DA94C 7F0A5E1C 3C014396 */ li $at, 0x43960000 # 300.000000 @@ -1663,7 +1664,7 @@ glabel sub_GAME_7F0A5B80 /* 0DABA8 7F0A6078 00000000 */ nop /* 0DABAC 7F0A607C 4500000C */ bc1f .L7F0A60B0 /* 0DABB0 7F0A6080 00002025 */ move $a0, $zero -/* 0DABB4 7F0A6084 0C0030C3 */ jal get_controller_buttons_held +/* 0DABB4 7F0A6084 0C0030C3 */ jal joyGetButtons /* 0DABB8 7F0A6088 3405FFFF */ li $a1, 65535 /* 0DABBC 7F0A608C 3C068004 */ lui $a2, %hi(D_800409BC) /* 0DABC0 7F0A6090 14400007 */ bnez $v0, .L7F0A60B0 @@ -1688,7 +1689,7 @@ glabel sub_GAME_7F0A5B80 /* 0DAC08 7F0A60D8 00000000 */ nop /* 0DAC0C 7F0A60DC 4502000C */ bc1fl .L7F0A6110 /* 0DAC10 7F0A60E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0DAC14 7F0A60E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DAC14 7F0A60E4 0C0030C3 */ jal joyGetButtons /* 0DAC18 7F0A60E8 3405FFFF */ li $a1, 65535 /* 0DAC1C 7F0A60EC 3C068004 */ lui $a2, %hi(D_800409BC) /* 0DAC20 7F0A60F0 14400006 */ bnez $v0, .L7F0A610C @@ -1742,11 +1743,11 @@ glabel sub_GAME_7F0A611C /* 0DAC68 7F0A6138 AFA7002C */ sw $a3, 0x2c($sp) /* 0DAC6C 7F0A613C 14400056 */ bnez $v0, .L7F0A6298 /* 0DAC70 7F0A6140 00002025 */ move $a0, $zero -/* 0DAC74 7F0A6144 0C0030EB */ jal get_controller_buttons_pressed +/* 0DAC74 7F0A6144 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0DAC78 7F0A6148 24050808 */ li $a1, 2056 /* 0DAC7C 7F0A614C 54400007 */ bnezl $v0, .L7F0A616C /* 0DAC80 7F0A6150 C6000000 */ lwc1 $f0, ($s0) -/* 0DAC84 7F0A6154 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAC84 7F0A6154 0C00307F */ jal joyGetStickY /* 0DAC88 7F0A6158 00002025 */ move $a0, $zero /* 0DAC8C 7F0A615C 28410047 */ slti $at, $v0, 0x47 /* 0DAC90 7F0A6160 1420000F */ bnez $at, .L7F0A61A0 @@ -1767,11 +1768,11 @@ glabel sub_GAME_7F0A611C /* 0DACC8 7F0A6198 1000001A */ b .L7F0A6204 /* 0DACCC 7F0A619C E6080000 */ swc1 $f8, ($s0) .L7F0A61A0: -/* 0DACD0 7F0A61A0 0C0030EB */ jal get_controller_buttons_pressed +/* 0DACD0 7F0A61A0 0C0030EB */ jal joyGetButtonsPressedThisFrame /* 0DACD4 7F0A61A4 24050404 */ li $a1, 1028 /* 0DACD8 7F0A61A8 54400007 */ bnezl $v0, .L7F0A61C8 /* 0DACDC 7F0A61AC C6000000 */ lwc1 $f0, ($s0) -/* 0DACE0 7F0A61B0 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DACE0 7F0A61B0 0C00307F */ jal joyGetStickY /* 0DACE4 7F0A61B4 00002025 */ move $a0, $zero /* 0DACE8 7F0A61B8 2841FFBA */ slti $at, $v0, -0x46 /* 0DACEC 7F0A61BC 50200012 */ beql $at, $zero, .L7F0A6208 @@ -1796,7 +1797,7 @@ glabel sub_GAME_7F0A611C .L7F0A6204: /* 0DAD34 7F0A6204 00002025 */ move $a0, $zero .L7F0A6208: -/* 0DAD38 7F0A6208 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD38 7F0A6208 0C0030C3 */ jal joyGetButtons /* 0DAD3C 7F0A620C 24050808 */ li $a1, 2056 /* 0DAD40 7F0A6210 1040000E */ beqz $v0, .L7F0A624C /* 0DAD44 7F0A6214 00002025 */ move $a0, $zero @@ -1814,7 +1815,7 @@ glabel sub_GAME_7F0A611C /* 0DAD74 7F0A6244 10000014 */ b .L7F0A6298 /* 0DAD78 7F0A6248 E6080000 */ swc1 $f8, ($s0) .L7F0A624C: -/* 0DAD7C 7F0A624C 0C0030C3 */ jal get_controller_buttons_held +/* 0DAD7C 7F0A624C 0C0030C3 */ jal joyGetButtons /* 0DAD80 7F0A6250 24050404 */ li $a1, 1028 /* 0DAD84 7F0A6254 10400010 */ beqz $v0, .L7F0A6298 /* 0DAD88 7F0A6258 00000000 */ nop @@ -1834,12 +1835,12 @@ glabel sub_GAME_7F0A611C /* 0DADC0 7F0A6290 46100480 */ add.s $f18, $f0, $f16 /* 0DADC4 7F0A6294 E6120000 */ swc1 $f18, ($s0) .L7F0A6298: -/* 0DADC8 7F0A6298 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADC8 7F0A6298 0C00307F */ jal joyGetStickY /* 0DADCC 7F0A629C 00002025 */ move $a0, $zero /* 0DADD0 7F0A62A0 2841001F */ slti $at, $v0, 0x1f /* 0DADD4 7F0A62A4 14200017 */ bnez $at, .L7F0A6304 /* 0DADD8 7F0A62A8 00000000 */ nop -/* 0DADDC 7F0A62AC 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DADDC 7F0A62AC 0C00307F */ jal joyGetStickY /* 0DADE0 7F0A62B0 00002025 */ move $a0, $zero /* 0DADE4 7F0A62B4 28410046 */ slti $at, $v0, 0x46 /* 0DADE8 7F0A62B8 10200012 */ beqz $at, .L7F0A6304 @@ -1850,7 +1851,7 @@ glabel sub_GAME_7F0A611C /* 0DADFC 7F0A62CC 00000000 */ nop /* 0DAE00 7F0A62D0 1180000C */ beqz $t4, .L7F0A6304 /* 0DAE04 7F0A62D4 00000000 */ nop -/* 0DAE08 7F0A62D8 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE08 7F0A62D8 0C00307F */ jal joyGetStickY /* 0DAE0C 7F0A62DC 00002025 */ move $a0, $zero /* 0DAE10 7F0A62E0 44822000 */ mtc1 $v0, $f4 /* 0DAE14 7F0A62E4 3C014396 */ li $at, 0x43960000 # 300.000000 @@ -1862,12 +1863,12 @@ glabel sub_GAME_7F0A611C /* 0DAE2C 7F0A62FC 10000021 */ b .L7F0A6384 /* 0DAE30 7F0A6300 E6120000 */ swc1 $f18, ($s0) .L7F0A6304: -/* 0DAE34 7F0A6304 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE34 7F0A6304 0C00307F */ jal joyGetStickY /* 0DAE38 7F0A6308 00002025 */ move $a0, $zero /* 0DAE3C 7F0A630C 2841FFE2 */ slti $at, $v0, -0x1e /* 0DAE40 7F0A6310 1020001C */ beqz $at, .L7F0A6384 /* 0DAE44 7F0A6314 00000000 */ nop -/* 0DAE48 7F0A6318 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE48 7F0A6318 0C00307F */ jal joyGetStickY /* 0DAE4C 7F0A631C 00002025 */ move $a0, $zero /* 0DAE50 7F0A6320 2841FFBB */ slti $at, $v0, -0x45 /* 0DAE54 7F0A6324 14200017 */ bnez $at, .L7F0A6384 @@ -1884,7 +1885,7 @@ glabel sub_GAME_7F0A611C /* 0DAE80 7F0A6350 00000000 */ nop /* 0DAE84 7F0A6354 1300000B */ beqz $t8, .L7F0A6384 /* 0DAE88 7F0A6358 00000000 */ nop -/* 0DAE8C 7F0A635C 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DAE8C 7F0A635C 0C00307F */ jal joyGetStickY /* 0DAE90 7F0A6360 00002025 */ move $a0, $zero /* 0DAE94 7F0A6364 44824000 */ mtc1 $v0, $f8 /* 0DAE98 7F0A6368 3C014396 */ li $at, 0x43960000 # 300.000000 @@ -2034,7 +2035,7 @@ glabel sub_GAME_7F0A611C /* 0DB0AC 7F0A657C 00000000 */ nop /* 0DB0B0 7F0A6580 4502000B */ bc1fl .L7F0A65B0 /* 0DB0B4 7F0A6584 8FA80024 */ lw $t0, 0x24($sp) -/* 0DB0B8 7F0A6588 0C0030C3 */ jal get_controller_buttons_held +/* 0DB0B8 7F0A6588 0C0030C3 */ jal joyGetButtons /* 0DB0BC 7F0A658C 3405FFFF */ li $a1, 65535 /* 0DB0C0 7F0A6590 14400006 */ bnez $v0, .L7F0A65AC /* 0DB0C4 7F0A6594 3C018006 */ lui $at, %hi(D_800584A0) @@ -2059,7 +2060,7 @@ glabel sub_GAME_7F0A611C /* 0DB108 7F0A65D8 00000000 */ nop /* 0DB10C 7F0A65DC 4502000A */ bc1fl .L7F0A6608 /* 0DB110 7F0A65E0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0DB114 7F0A65E4 0C0030C3 */ jal get_controller_buttons_held +/* 0DB114 7F0A65E4 0C0030C3 */ jal joyGetButtons /* 0DB118 7F0A65E8 3405FFFF */ li $a1, 65535 /* 0DB11C 7F0A65EC 14400005 */ bnez $v0, .L7F0A6604 /* 0DB120 7F0A65F0 3C018006 */ lui $at, %hi(D_800584A8) @@ -2084,14 +2085,14 @@ glabel sub_GAME_7F0A611C void mission_brief_background_navigation(void) { - if ((get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) + if ((joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD)) || (sub_GAME_7F0A5088())) { mission_brief_index = BRIEF_INDEX_OBJECTIVES; set_D_80040AE0_0(); reset_watch_soundrelated_maybe(); } - if ((get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) + if ((joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD)) || (sub_GAME_7F0A50C4())) { mission_brief_index = BRIEF_INDEX_M; set_D_80040AE0_0(); @@ -2102,7 +2103,7 @@ void mission_brief_background_navigation(void) void mission_brief_m_briefing_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { mission_brief_index = BRIEF_INDEX_BACKGROUND; set_D_80040AE0_0(); @@ -2110,7 +2111,7 @@ void mission_brief_m_briefing_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { mission_brief_index = BRIEF_INDEX_Q; set_D_80040AE0_0(); @@ -2121,7 +2122,7 @@ void mission_brief_m_briefing_navigation(void) void mission_brief_q_branch_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { mission_brief_index = BRIEF_INDEX_M; set_D_80040AE0_0(); @@ -2129,7 +2130,7 @@ void mission_brief_q_branch_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { mission_brief_index = BRIEF_INDEX_MONEYPENNY; set_D_80040AE0_0(); @@ -2139,7 +2140,7 @@ void mission_brief_q_branch_navigation(void) void mission_brief_moneypenny_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { mission_brief_index = BRIEF_INDEX_Q; set_D_80040AE0_0(); @@ -2147,7 +2148,7 @@ void mission_brief_moneypenny_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { mission_brief_index = BRIEF_INDEX_OBJECTIVES; set_D_80040AE0_0(); @@ -2157,7 +2158,7 @@ void mission_brief_moneypenny_navigation(void) void mission_brief_objectives_navigation(void) { - if (get_controller_buttons_pressed(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) + if (joyGetButtonsPressedThisFrame(0, U_CBUTTONS|U_JPAD) || sub_GAME_7F0A5088()) { mission_brief_index = BRIEF_INDEX_MONEYPENNY; set_D_80040AE0_0(); @@ -2165,7 +2166,7 @@ void mission_brief_objectives_navigation(void) return; } - if (get_controller_buttons_pressed(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) + if (joyGetButtonsPressedThisFrame(0, D_CBUTTONS|D_JPAD) || sub_GAME_7F0A50C4()) { mission_brief_index = BRIEF_INDEX_BACKGROUND; set_D_80040AE0_0(); @@ -2245,7 +2246,7 @@ glabel sub_GAME_7F0A68D8 void sub_GAME_7F0A69A8(void) { - if (get_attached_controller_count() < 2) + if (joyGetControllerCount() < 2) { D_800409D8 = 4; } @@ -2276,7 +2277,7 @@ f32 sub_GAME_7F0A6A2C(f32 arg0) } -#ifdef VERSION_US +#ifndef VERSION_JP void sub_GAME_7F0A6A80(void) { u32 temp_1; @@ -2284,22 +2285,22 @@ void sub_GAME_7F0A6A80(void) s32 temp_3; u32 random_value; - if (get_controller_buttons_pressed(0, 0x1000)) + if (joyGetButtonsPressedThisFrame(0, 0x1000)) { set_open_close_solo_watch_menu_to1(); } if (controlstick_lr_enabled == 0) { - if ((get_cur_controller_horz_stick_pos(0) >= -0xA) && (get_cur_controller_horz_stick_pos(0) < 0xB)) + if ((joyGetStickX(0) >= -0xA) && (joyGetStickX(0) < 0xB)) { controlstick_lr_enabled = 1; } - else if ((get_cur_controller_horz_stick_pos(0) < 0xB) && (controller_7000C174(0) >= 0xB)) + else if ((joyGetStickX(0) < 0xB) && (joy7000C174(0) >= 0xB)) { controlstick_lr_enabled = 1; } - else if ((get_cur_controller_horz_stick_pos(0) >= -0xA) && (controller_7000C174(0) < -0xA)) + else if ((joyGetStickX(0) >= -0xA) && (joy7000C174(0) < -0xA)) { controlstick_lr_enabled = 1; } @@ -2307,15 +2308,15 @@ void sub_GAME_7F0A6A80(void) if (D_80040AE0 == 0) { - if ((get_cur_controller_vert_stick_pos(0) >= -0xA) && (get_cur_controller_vert_stick_pos(0) < 0xB)) + if ((joyGetStickY(0) >= -0xA) && (joyGetStickY(0) < 0xB)) { D_80040AE0 = 1; } - else if ((get_cur_controller_vert_stick_pos(0) < 0xB) && (controller_7000C284(0) >= 0xB)) + else if ((joyGetStickY(0) < 0xB) && (joy7000C284(0) >= 0xB)) { D_80040AE0 = 1; } - else if ((get_cur_controller_vert_stick_pos(0) >= -0xA) && (controller_7000C284(0) < -0xA)) + else if ((joyGetStickY(0) >= -0xA) && (joy7000C284(0) < -0xA)) { D_80040AE0 = 1; } @@ -2352,14 +2353,14 @@ void sub_GAME_7F0A6A80(void) D_80040B14 = sub_GAME_7F0A6A2C(D_80040B14); temp_1 = D_80040B0C << 0x10; - if (temp_1 < get_random_value()) + if (temp_1 < randomGetNext()) { sub_GAME_7F0A51D8(); } if (D_80040B04 < 0xE0) { - random_value = get_random_value(); + random_value = randomGetNext(); D_80040B04 += (random_value >> 0x1E); } @@ -2466,7 +2467,7 @@ glabel sub_GAME_7F0A6A80 /* 0DC190 7F0A7620 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0DC194 7F0A7624 AFBF0014 */ sw $ra, 0x14($sp) /* 0DC198 7F0A7628 00002025 */ move $a0, $zero -/* 0DC19C 7F0A762C 0C003104 */ jal get_controller_buttons_pressed +/* 0DC19C 7F0A762C 0C003104 */ jal joyGetButtonsPressedThisFrame /* 0DC1A0 7F0A7630 24051000 */ li $a1, 4096 /* 0DC1A4 7F0A7634 10400003 */ beqz $v0, .Ljp7F0A7644 /* 0DC1A8 7F0A7638 00000000 */ nop @@ -2477,12 +2478,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC1B8 7F0A7648 8DCE0B0C */ lw $t6, %lo(controlstick_lr_enabled)($t6) /* 0DC1BC 7F0A764C 15C00027 */ bnez $t6, .Ljp7F0A76EC /* 0DC1C0 7F0A7650 00000000 */ nop -/* 0DC1C4 7F0A7654 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1C4 7F0A7654 0C003054 */ jal joyGetStickX /* 0DC1C8 7F0A7658 00002025 */ move $a0, $zero /* 0DC1CC 7F0A765C 2841FFF6 */ slti $at, $v0, -0xa /* 0DC1D0 7F0A7660 14200009 */ bnez $at, .Ljp7F0A7688 /* 0DC1D4 7F0A7664 00000000 */ nop -/* 0DC1D8 7F0A7668 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1D8 7F0A7668 0C003054 */ jal joyGetStickX /* 0DC1DC 7F0A766C 00002025 */ move $a0, $zero /* 0DC1E0 7F0A7670 2841000B */ slti $at, $v0, 0xb /* 0DC1E4 7F0A7674 10200004 */ beqz $at, .Ljp7F0A7688 @@ -2491,12 +2492,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC1F0 7F0A7680 1000001A */ b .Ljp7F0A76EC /* 0DC1F4 7F0A7684 AC2F0B0C */ sw $t7, %lo(controlstick_lr_enabled)($at) .Ljp7F0A7688: -/* 0DC1F8 7F0A7688 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC1F8 7F0A7688 0C003054 */ jal joyGetStickX /* 0DC1FC 7F0A768C 00002025 */ move $a0, $zero /* 0DC200 7F0A7690 2841000B */ slti $at, $v0, 0xb /* 0DC204 7F0A7694 10200009 */ beqz $at, .Ljp7F0A76BC /* 0DC208 7F0A7698 00000000 */ nop -/* 0DC20C 7F0A769C 0C003076 */ jal controller_7000C174 +/* 0DC20C 7F0A769C 0C003076 */ jal joy7000C174 /* 0DC210 7F0A76A0 00002025 */ move $a0, $zero /* 0DC214 7F0A76A4 2841000B */ slti $at, $v0, 0xb /* 0DC218 7F0A76A8 14200004 */ bnez $at, .Ljp7F0A76BC @@ -2505,12 +2506,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC224 7F0A76B4 1000000D */ b .Ljp7F0A76EC /* 0DC228 7F0A76B8 AC380B0C */ sw $t8, %lo(controlstick_lr_enabled)($at) .Ljp7F0A76BC: -/* 0DC22C 7F0A76BC 0C003054 */ jal get_cur_controller_horz_stick_pos +/* 0DC22C 7F0A76BC 0C003054 */ jal joyGetStickX /* 0DC230 7F0A76C0 00002025 */ move $a0, $zero /* 0DC234 7F0A76C4 2841FFF6 */ slti $at, $v0, -0xa /* 0DC238 7F0A76C8 14200008 */ bnez $at, .Ljp7F0A76EC /* 0DC23C 7F0A76CC 00000000 */ nop -/* 0DC240 7F0A76D0 0C003076 */ jal controller_7000C174 +/* 0DC240 7F0A76D0 0C003076 */ jal joy7000C174 /* 0DC244 7F0A76D4 00002025 */ move $a0, $zero /* 0DC248 7F0A76D8 2841FFF6 */ slti $at, $v0, -0xa /* 0DC24C 7F0A76DC 10200003 */ beqz $at, .Ljp7F0A76EC @@ -2522,12 +2523,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC260 7F0A76F0 8D080B10 */ lw $t0, %lo(D_80040AE0)($t0) /* 0DC264 7F0A76F4 15000027 */ bnez $t0, .Ljp7F0A7794 /* 0DC268 7F0A76F8 00000000 */ nop -/* 0DC26C 7F0A76FC 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC26C 7F0A76FC 0C003098 */ jal joyGetStickY /* 0DC270 7F0A7700 00002025 */ move $a0, $zero /* 0DC274 7F0A7704 2841FFF6 */ slti $at, $v0, -0xa /* 0DC278 7F0A7708 14200009 */ bnez $at, .Ljp7F0A7730 /* 0DC27C 7F0A770C 00000000 */ nop -/* 0DC280 7F0A7710 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC280 7F0A7710 0C003098 */ jal joyGetStickY /* 0DC284 7F0A7714 00002025 */ move $a0, $zero /* 0DC288 7F0A7718 2841000B */ slti $at, $v0, 0xb /* 0DC28C 7F0A771C 10200004 */ beqz $at, .Ljp7F0A7730 @@ -2536,12 +2537,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC298 7F0A7728 1000001A */ b .Ljp7F0A7794 /* 0DC29C 7F0A772C AC290B10 */ sw $t1, %lo(D_80040AE0)($at) .Ljp7F0A7730: -/* 0DC2A0 7F0A7730 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2A0 7F0A7730 0C003098 */ jal joyGetStickY /* 0DC2A4 7F0A7734 00002025 */ move $a0, $zero /* 0DC2A8 7F0A7738 2841000B */ slti $at, $v0, 0xb /* 0DC2AC 7F0A773C 10200009 */ beqz $at, .Ljp7F0A7764 /* 0DC2B0 7F0A7740 00000000 */ nop -/* 0DC2B4 7F0A7744 0C0030BA */ jal controller_7000C284 +/* 0DC2B4 7F0A7744 0C0030BA */ jal joy7000C284 /* 0DC2B8 7F0A7748 00002025 */ move $a0, $zero /* 0DC2BC 7F0A774C 2841000B */ slti $at, $v0, 0xb /* 0DC2C0 7F0A7750 14200004 */ bnez $at, .Ljp7F0A7764 @@ -2550,12 +2551,12 @@ glabel sub_GAME_7F0A6A80 /* 0DC2CC 7F0A775C 1000000D */ b .Ljp7F0A7794 /* 0DC2D0 7F0A7760 AC2A0B10 */ sw $t2, %lo(D_80040AE0)($at) .Ljp7F0A7764: -/* 0DC2D4 7F0A7764 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0DC2D4 7F0A7764 0C003098 */ jal joyGetStickY /* 0DC2D8 7F0A7768 00002025 */ move $a0, $zero /* 0DC2DC 7F0A776C 2841FFF6 */ slti $at, $v0, -0xa /* 0DC2E0 7F0A7770 14200008 */ bnez $at, .Ljp7F0A7794 /* 0DC2E4 7F0A7774 00000000 */ nop -/* 0DC2E8 7F0A7778 0C0030BA */ jal controller_7000C284 +/* 0DC2E8 7F0A7778 0C0030BA */ jal joy7000C284 /* 0DC2EC 7F0A777C 00002025 */ move $a0, $zero /* 0DC2F0 7F0A7780 2841FFF6 */ slti $at, $v0, -0xa /* 0DC2F4 7F0A7784 10200003 */ beqz $at, .Ljp7F0A7794 @@ -2635,7 +2636,7 @@ glabel sub_GAME_7F0A6A80 /* 0DC408 7F0A7898 3C0E8004 */ lui $t6, %hi(D_80040B0C) # $t6, 0x8004 /* 0DC40C 7F0A789C 8DCE0B3C */ lw $t6, %lo(D_80040B0C)($t6) /* 0DC410 7F0A78A0 000E7C00 */ sll $t7, $t6, 0x10 -/* 0DC414 7F0A78A4 0C002918 */ jal get_random_value +/* 0DC414 7F0A78A4 0C002918 */ jal randomGetNext /* 0DC418 7F0A78A8 AFAF001C */ sw $t7, 0x1c($sp) /* 0DC41C 7F0A78AC 8FB8001C */ lw $t8, 0x1c($sp) /* 0DC420 7F0A78B0 0302082B */ sltu $at, $t8, $v0 @@ -2650,7 +2651,7 @@ glabel sub_GAME_7F0A6A80 /* 0DC440 7F0A78D0 286100E0 */ slti $at, $v1, 0xe0 /* 0DC444 7F0A78D4 5020000A */ beql $at, $zero, .Ljp7F0A7900 /* 0DC448 7F0A78D8 286100E1 */ slti $at, $v1, 0xe1 -/* 0DC44C 7F0A78DC 0C002918 */ jal get_random_value +/* 0DC44C 7F0A78DC 0C002918 */ jal randomGetNext /* 0DC450 7F0A78E0 00000000 */ nop /* 0DC454 7F0A78E4 3C048004 */ lui $a0, %hi(D_80040B04) # $a0, 0x8004 /* 0DC458 7F0A78E8 24840B34 */ addiu $a0, %lo(D_80040B04) # addiu $a0, $a0, 0xb34 @@ -2809,9 +2810,9 @@ glabel sub_GAME_7F0A6EE8 /* 0DBA68 7F0A6F38 ACCA0000 */ sw $t2, ($a2) /* 0DBA6C 7F0A6F3C 24C40008 */ addiu $a0, $a2, 8 /* 0DBA70 7F0A6F40 AFA40058 */ sw $a0, 0x58($sp) -/* 0DBA74 7F0A6F44 0C001107 */ jal get_video2_settings_txtClipW +/* 0DBA74 7F0A6F44 0C001107 */ jal viGetX /* 0DBA78 7F0A6F48 AFA60048 */ sw $a2, 0x48($sp) -/* 0DBA7C 7F0A6F4C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DBA7C 7F0A6F4C 0C00110B */ jal viGetY /* 0DBA80 7F0A6F50 A7A2001A */ sh $v0, 0x1a($sp) /* 0DBA84 7F0A6F54 44822000 */ mtc1 $v0, $f4 /* 0DBA88 7F0A6F58 87AE001A */ lh $t6, 0x1a($sp) @@ -2907,13 +2908,13 @@ glabel sub_GAME_7F0A6EE8 #ifdef NONMATCHING -void sub_GAME_7F0A70AC(void) { +void draw_selected_page_rectangle(void) { } #else GLOBAL_ASM( .text -glabel sub_GAME_7F0A70AC +glabel draw_selected_page_rectangle /* 0DBBDC 7F0A70AC 00001025 */ move $v0, $zero /* 0DBBE0 7F0A70B0 00A01825 */ move $v1, $a1 /* 0DBBE4 7F0A70B4 24070070 */ li $a3, 112 @@ -2982,16 +2983,16 @@ glabel draw_background_health_and_armor /* 0DBC88 7F0A7158 AFBF001C */ sw $ra, 0x1c($sp) /* 0DBC8C 7F0A715C AFA50054 */ sw $a1, 0x54($sp) /* 0DBC90 7F0A7160 AFA60058 */ sw $a2, 0x58($sp) -/* 0DBC94 7F0A7164 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBC94 7F0A7164 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0DBC98 7F0A7168 2404001E */ li $a0, 30 /* 0DBC9C 7F0A716C AFA20048 */ sw $v0, 0x48($sp) -/* 0DBCA0 7F0A7170 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DBCA0 7F0A7170 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0DBCA4 7F0A7174 2404001E */ li $a0, 30 /* 0DBCA8 7F0A7178 AFA20044 */ sw $v0, 0x44($sp) -/* 0DBCAC 7F0A717C 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCAC 7F0A717C 0FC2F5C5 */ jal dynAllocate /* 0DBCB0 7F0A7180 240400F8 */ li $a0, 248 /* 0DBCB4 7F0A7184 AFA20040 */ sw $v0, 0x40($sp) -/* 0DBCB8 7F0A7188 0FC2F5C5 */ jal sub_GAME_7F0BD714 +/* 0DBCB8 7F0A7188 0FC2F5C5 */ jal dynAllocate /* 0DBCBC 7F0A718C 240400F8 */ li $a0, 248 /* 0DBCC0 7F0A7190 AFA2003C */ sw $v0, 0x3c($sp) /* 0DBCC4 7F0A7194 02001825 */ move $v1, $s0 @@ -3403,20 +3404,16 @@ glabel draw_background_health_and_armor -void sub_GAME_7F0A77A8(u32 param_1,u32 param_2) +Gfx *draw_background_health_and_armor_transitioning(Gfx *gdl, u32 param_2) { - draw_background_health_and_armor(param_1,param_2,1); + return draw_background_health_and_armor(gdl, param_2, 1); } - - - - #ifdef NONMATCHING -s32 sub_GAME_7F0A77C8(s32 arg0) +Gfx *sub_GAME_7F0A77C8(Gfx *arg0) { - ?32 sp7C; + s32 sp7C; s32 sp78; s32 sp74; s32 sp70; @@ -3430,10 +3427,7 @@ s32 sub_GAME_7F0A77C8(s32 arg0) s32 sp50; s32 sp4C; s16 sp44; - s32 temp_s0; - s32 temp_s0_2; - s32 temp_s0_3; - s32 temp_s0_4; + s32 temp_v1; s32 phi_v0; s32 phi_v0_2; @@ -3442,10 +3436,11 @@ s32 sub_GAME_7F0A77C8(s32 arg0) sp5C = (s32) ptrFirstFontTableSmall; sp58 = (s32) ptrSecondFontTableSmall; - sp54 = get_textptr_for_textID(0xac24); - sp50 = get_textptr_for_textID(0xac25); - sp4C = get_textptr_for_textID(0xac26); + sp54 = get_textptr_for_textID(TEXT(LOPTIONS, 0x24)); //abort: + sp50 = get_textptr_for_textID(TEXT(LOPTIONS, 0x25)); //confirm + sp4C = get_textptr_for_textID(TEXT(LOPTIONS, 0x26)); //cancel sp7C = 0x51; + if (j_text_trigger != 0) { phi_v0 = 0xf; @@ -3472,63 +3467,64 @@ s32 sub_GAME_7F0A77C8(s32 arg0) { phi_v0_3 = 0; } + temp_v1 = phi_v0_3 + 0x4c; + sp6C = temp_v1; sp70 = temp_v1; sp68 = temp_v1; + if (watch_soundrelated_maybe != 0) { if (D_800409A4 == 0) { - if ((get_cur_controller_horz_stick_pos(0) >= 0x2e) || (get_controller_buttons_held(0, 0x111) != 0)) + if ((joyGetStickX(0) >= 0x2e) || (joyGetButtons(0, 0x111) != 0)) { D_800409A4 = 1; } - else - { - - } + } else { if (D_800409A4 != 0) { - if ((get_cur_controller_horz_stick_pos(0) < -0x2d) || (get_controller_buttons_held(0, 0x222) != 0)) + if ((joyGetStickX(0) < -0x2d) || (joyGetButtons(0, 0x222) != 0)) { D_800409A4 = 0; } - else - { - - } + } } } + if (watch_soundrelated_maybe != 0) { sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); - en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0xa0ffa0f0, sp64, sp60, 0, 0); + + arg0 = en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0xa0ffa0f0, sp64, sp60, 0, 0); + if (D_800409A4 != 0) { - jp_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); - en_text_write_stuff(temp_s0_2, &sp74, &sp68, sp4C, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + arg0 = jp_text_write_stuff(arg0, &sp78, &sp6C, sp50, sp58, sp5C, -1, 0x7000a0, viGetX(), viGetY(), 0, 0); + arg0 = en_text_write_stuff(arg0, &sp74, &sp68, sp4C, sp58, sp5C, 0xff00b0, viGetX(), viGetY(), 0, 0); } else { if (D_800409A4 == 0) { - en_text_write_stuff(temp_s0, &sp78, &sp6C, sp50, sp58, sp5C, 0xff00b0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); - jp_text_write_stuff(temp_s0_3, &sp74, &sp68, sp4C, sp58, sp5C, -1, 0x7000a0, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + arg0 = en_text_write_stuff(arg0, &sp78, &sp6C, sp50, sp58, sp5C, 0xff00b0, viGetX(), viGetY(), 0, 0); + arg0 = jp_text_write_stuff(arg0, &sp74, &sp68, sp4C, sp58, sp5C, -1, 0x7000a0, viGetX(), viGetY(), 0, 0); } } } else { sub_GAME_7F0AE98C(&sp60, &sp64, sp54, sp58, sp5C, 0); - en_text_write_stuff(en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0x800080, sp64, sp60, 0, 0), &sp78, &sp6C, sp50, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); - en_text_write_stuff(temp_s0_4, &sp74, &sp68, sp4C, sp58, sp5C, 0x800080, get_video2_settings_txtClipW(), get_video2_settings_txtClipH(), 0, 0); + arg0 = en_text_write_stuff(arg0, &sp7C, &sp70, sp54, sp58, sp5C, 0x800080, sp64, sp60, 0, 0); + arg0 = en_text_write_stuff(arg0, &sp78, &sp6C, sp50, sp58, sp5C, 0x800080, viGetX(), viGetY(), 0, 0); + arg0 = en_text_write_stuff(arg0, &sp74, &sp68, sp4C, sp58, sp5C, 0x800080, viGetX(), viGetY(), 0, 0); } - return; + return arg0; } #else GLOBAL_ASM( @@ -3590,12 +3586,12 @@ glabel sub_GAME_7F0A77C8 /* 0DC3B4 7F0A7884 8C6309A4 */ lw $v1, %lo(D_800409A4)($v1) /* 0DC3B8 7F0A7888 1460000D */ bnez $v1, .L7F0A78C0 /* 0DC3BC 7F0A788C 00000000 */ nop -/* 0DC3C0 7F0A7890 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3C0 7F0A7890 0C00303B */ jal joyGetStickX /* 0DC3C4 7F0A7894 00002025 */ move $a0, $zero /* 0DC3C8 7F0A7898 2841002E */ slti $at, $v0, 0x2e /* 0DC3CC 7F0A789C 10200004 */ beqz $at, .L7F0A78B0 /* 0DC3D0 7F0A78A0 00002025 */ move $a0, $zero -/* 0DC3D4 7F0A78A4 0C0030C3 */ jal get_controller_buttons_held +/* 0DC3D4 7F0A78A4 0C0030C3 */ jal joyGetButtons /* 0DC3D8 7F0A78A8 24050111 */ li $a1, 273 /* 0DC3DC 7F0A78AC 10400010 */ beqz $v0, .L7F0A78F0 .L7F0A78B0: @@ -3606,12 +3602,12 @@ glabel sub_GAME_7F0A77C8 .L7F0A78C0: /* 0DC3F0 7F0A78C0 1060000B */ beqz $v1, .L7F0A78F0 /* 0DC3F4 7F0A78C4 00000000 */ nop -/* 0DC3F8 7F0A78C8 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DC3F8 7F0A78C8 0C00303B */ jal joyGetStickX /* 0DC3FC 7F0A78CC 00002025 */ move $a0, $zero /* 0DC400 7F0A78D0 2841FFD3 */ slti $at, $v0, -0x2d /* 0DC404 7F0A78D4 14200004 */ bnez $at, .L7F0A78E8 /* 0DC408 7F0A78D8 00002025 */ move $a0, $zero -/* 0DC40C 7F0A78DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DC40C 7F0A78DC 0C0030C3 */ jal joyGetButtons /* 0DC410 7F0A78E0 24050222 */ li $a1, 546 /* 0DC414 7F0A78E4 10400002 */ beqz $v0, .L7F0A78F0 .L7F0A78E8: @@ -3655,9 +3651,9 @@ glabel sub_GAME_7F0A77C8 /* 0DC4A8 7F0A7978 00408025 */ move $s0, $v0 /* 0DC4AC 7F0A797C 1060002F */ beqz $v1, .L7F0A7A3C /* 0DC4B0 7F0A7980 00000000 */ nop -/* 0DC4B4 7F0A7984 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC4B4 7F0A7984 0C001107 */ jal viGetX /* 0DC4B8 7F0A7988 00000000 */ nop -/* 0DC4BC 7F0A798C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC4BC 7F0A798C 0C00110B */ jal viGetY /* 0DC4C0 7F0A7990 A7A20044 */ sh $v0, 0x44($sp) /* 0DC4C4 7F0A7994 8FA80058 */ lw $t0, 0x58($sp) /* 0DC4C8 7F0A7998 8FA9005C */ lw $t1, 0x5c($sp) @@ -3678,9 +3674,9 @@ glabel sub_GAME_7F0A77C8 /* 0DC504 7F0A79D4 AFA90014 */ sw $t1, 0x14($sp) /* 0DC508 7F0A79D8 0FC2B9BB */ jal jp_text_write_stuff /* 0DC50C 7F0A79DC AFAC0020 */ sw $t4, 0x20($sp) -/* 0DC510 7F0A79E0 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC510 7F0A79E0 0C001107 */ jal viGetX /* 0DC514 7F0A79E4 00408025 */ move $s0, $v0 -/* 0DC518 7F0A79E8 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC518 7F0A79E8 0C00110B */ jal viGetY /* 0DC51C 7F0A79EC A7A20044 */ sh $v0, 0x44($sp) /* 0DC520 7F0A79F0 8FAD0058 */ lw $t5, 0x58($sp) /* 0DC524 7F0A79F4 8FAE005C */ lw $t6, 0x5c($sp) @@ -3704,9 +3700,9 @@ glabel sub_GAME_7F0A77C8 .L7F0A7A3C: /* 0DC56C 7F0A7A3C 54600072 */ bnezl $v1, .L7F0A7C08 /* 0DC570 7F0A7A40 8FBF003C */ lw $ra, 0x3c($sp) -/* 0DC574 7F0A7A44 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC574 7F0A7A44 0C001107 */ jal viGetX /* 0DC578 7F0A7A48 00000000 */ nop -/* 0DC57C 7F0A7A4C 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC57C 7F0A7A4C 0C00110B */ jal viGetY /* 0DC580 7F0A7A50 A7A20044 */ sh $v0, 0x44($sp) /* 0DC584 7F0A7A54 8FB90058 */ lw $t9, 0x58($sp) /* 0DC588 7F0A7A58 8FA8005C */ lw $t0, 0x5c($sp) @@ -3725,9 +3721,9 @@ glabel sub_GAME_7F0A77C8 /* 0DC5BC 7F0A7A8C AFA80014 */ sw $t0, 0x14($sp) /* 0DC5C0 7F0A7A90 0FC2B6AF */ jal en_text_write_stuff /* 0DC5C4 7F0A7A94 AFAA001C */ sw $t2, 0x1c($sp) -/* 0DC5C8 7F0A7A98 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC5C8 7F0A7A98 0C001107 */ jal viGetX /* 0DC5CC 7F0A7A9C 00408025 */ move $s0, $v0 -/* 0DC5D0 7F0A7AA0 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC5D0 7F0A7AA0 0C00110B */ jal viGetY /* 0DC5D4 7F0A7AA4 A7A20044 */ sh $v0, 0x44($sp) /* 0DC5D8 7F0A7AA8 8FAB0058 */ lw $t3, 0x58($sp) /* 0DC5DC 7F0A7AAC 8FAC005C */ lw $t4, 0x5c($sp) @@ -3774,9 +3770,9 @@ glabel sub_GAME_7F0A77C8 /* 0DC67C 7F0A7B4C AFAA001C */ sw $t2, 0x1c($sp) /* 0DC680 7F0A7B50 0FC2B6AF */ jal en_text_write_stuff /* 0DC684 7F0A7B54 AFAB0020 */ sw $t3, 0x20($sp) -/* 0DC688 7F0A7B58 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC688 7F0A7B58 0C001107 */ jal viGetX /* 0DC68C 7F0A7B5C 00408025 */ move $s0, $v0 -/* 0DC690 7F0A7B60 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC690 7F0A7B60 0C00110B */ jal viGetY /* 0DC694 7F0A7B64 A7A20044 */ sh $v0, 0x44($sp) /* 0DC698 7F0A7B68 8FAC0058 */ lw $t4, 0x58($sp) /* 0DC69C 7F0A7B6C 8FAD005C */ lw $t5, 0x5c($sp) @@ -3795,9 +3791,9 @@ glabel sub_GAME_7F0A77C8 /* 0DC6D0 7F0A7BA0 AFAD0014 */ sw $t5, 0x14($sp) /* 0DC6D4 7F0A7BA4 0FC2B6AF */ jal en_text_write_stuff /* 0DC6D8 7F0A7BA8 AFAF001C */ sw $t7, 0x1c($sp) -/* 0DC6DC 7F0A7BAC 0C001107 */ jal get_video2_settings_txtClipW +/* 0DC6DC 7F0A7BAC 0C001107 */ jal viGetX /* 0DC6E0 7F0A7BB0 00408025 */ move $s0, $v0 -/* 0DC6E4 7F0A7BB4 0C00110B */ jal get_video2_settings_txtClipH +/* 0DC6E4 7F0A7BB4 0C00110B */ jal viGetY /* 0DC6E8 7F0A7BB8 A7A20044 */ sh $v0, 0x44($sp) /* 0DC6EC 7F0A7BBC 8FB80058 */ lw $t8, 0x58($sp) /* 0DC6F0 7F0A7BC0 8FB9005C */ lw $t9, 0x5c($sp) @@ -3828,7 +3824,7 @@ glabel sub_GAME_7F0A77C8 #endif -s32 draw_text_mission_status(s32 arg0) +Gfx *draw_text_mission_status(Gfx *gdl) { s32 txtptr_1; s32 txtptr_2; @@ -3841,26 +3837,26 @@ s32 draw_text_mission_status(s32 arg0) s32 sp4C; s32 joffset; - txtptr_1 = get_textptr_for_textID(0xAC27); + txtptr_1 = get_textptr_for_textID(TEXT(LOPTIONS, 0x27)); //mission status: ptr_first_font = ptrFirstFontTableSmall; ptr_second_font = ptrSecondFontTableSmall; if (check_objectives_complete()) { sp4C = 0xFF00B0; - txtptr_2 = get_textptr_for_textID(0xAC28); + txtptr_2 = get_textptr_for_textID(TEXT(LOPTIONS, 0x28)); //complete } else { sp4C = D_80040AF4; - txtptr_2 = get_textptr_for_textID(0xAC29); + txtptr_2 = get_textptr_for_textID(TEXT(LOPTIONS, 0x29)); //incomplete } - arg0 = microcode_constructor(arg0); + gdl = microcode_constructor(gdl); sub_GAME_7F0AE98C(&sp5C, &sp58, txtptr_1, ptr_second_font, ptr_first_font, 0); sp64 = 0x51; sp60 = 0x41; - arg0 = en_text_write_stuff(arg0, &sp64, &sp60, txtptr_1, ptr_second_font, ptr_first_font, 0xFF00B0, sp58, sp5C, 0, 0); + gdl = en_text_write_stuff(gdl, &sp64, &sp60, txtptr_1, ptr_second_font, ptr_first_font, 0xFF00B0, sp58, sp5C, 0, 0); if (j_text_trigger) { @@ -3874,17 +3870,17 @@ s32 draw_text_mission_status(s32 arg0) sp64 = sp64 + sp58 + joffset + 4; sp60 = sp60 - sp5C; sub_GAME_7F0AE98C(&sp5C, &sp58, txtptr_2, ptr_second_font, ptr_first_font, 0); - arg0 = en_text_write_stuff(arg0, &sp64, &sp60, txtptr_2, ptr_second_font, ptr_first_font, sp4C, sp58, sp5C, 0, 0); - arg0 = sub_GAME_7F0A77C8(arg0); + gdl = en_text_write_stuff(gdl, &sp64, &sp60, txtptr_2, ptr_second_font, ptr_first_font, sp4C, sp58, sp5C, 0, 0); + gdl = sub_GAME_7F0A77C8(gdl); - return arg0; + return gdl; } -u32 empty_draw_function(u32 param) { - return param; +Gfx *empty_draw_function(Gfx *gdl) { + return gdl; } -s32 draw_text_q_watch_v201_beta(s32 arg0) +Gfx *draw_text_q_watch_v201_beta(Gfx *gdl) { s32 txtptr; s32 sp50; @@ -3895,7 +3891,7 @@ s32 draw_text_q_watch_v201_beta(s32 arg0) s32 pSecondFontTable; s32 joffset; - txtptr = get_textptr_for_textID(0xAC2B); + txtptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x2B)); //q watch v2.01 beta if (j_text_trigger) { @@ -3911,9 +3907,10 @@ s32 draw_text_q_watch_v201_beta(s32 arg0) sp44 = 0; pFirstFontTable = ptrFirstFontTableSmall; pSecondFontTable = ptrSecondFontTableSmall; - arg0 = microcode_constructor(arg0); + gdl = microcode_constructor(gdl); sub_GAME_7F0AE98C(&sp48, &sp44, txtptr, pSecondFontTable, pFirstFontTable, 0); - return en_text_write_stuff(arg0, &sp50, &sp4C, txtptr, pSecondFontTable, pFirstFontTable, 0xFF00B0, sp44, sp48, 0, 0); + gdl = en_text_write_stuff(gdl, &sp50, &sp4C, txtptr, pSecondFontTable, pFirstFontTable, 0xFF00B0, sp44, sp48, 0, 0); + return gdl; } #ifdef NONMATCHING @@ -3948,7 +3945,7 @@ glabel draw_current_hand_item_and_ammo /* 0DC9D8 7F0A7EA8 27BDFEE8 */ addiu $sp, $sp, -0x118 /* 0DC9DC 7F0A7EAC AFBF003C */ sw $ra, 0x3c($sp) /* 0DC9E0 7F0A7EB0 AFB00038 */ sw $s0, 0x38($sp) -/* 0DC9E4 7F0A7EB4 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DC9E4 7F0A7EB4 0FC2F5B8 */ jal dynAllocateMatrix /* 0DC9E8 7F0A7EB8 00808025 */ move $s0, $a0 /* 0DC9EC 7F0A7EBC 3C0E8004 */ lui $t6, %hi(ptrFirstFontTableSmall) /* 0DC9F0 7F0A7EC0 3C0F8004 */ lui $t7, %hi(ptrSecondFontTableSmall) @@ -4001,7 +3998,7 @@ glabel draw_current_hand_item_and_ammo /* 0DCAAC 7F0A7F7C 03191821 */ addu $v1, $t8, $t9 /* 0DCAB0 7F0A7F80 AFA3004C */ sw $v1, 0x4c($sp) /* 0DCAB4 7F0A7F84 00002025 */ move $a0, $zero -/* 0DCAB8 7F0A7F88 0C0030C3 */ jal get_controller_buttons_held +/* 0DCAB8 7F0A7F88 0C0030C3 */ jal joyGetButtons /* 0DCABC 7F0A7F8C 24050002 */ li $a1, 2 /* 0DCAC0 7F0A7F90 10400006 */ beqz $v0, .L7F0A7FAC /* 0DCAC4 7F0A7F94 8FA3004C */ lw $v1, 0x4c($sp) @@ -4013,7 +4010,7 @@ glabel draw_current_hand_item_and_ammo .L7F0A7FAC: /* 0DCADC 7F0A7FAC 00002025 */ move $a0, $zero /* 0DCAE0 7F0A7FB0 24050001 */ li $a1, 1 -/* 0DCAE4 7F0A7FB4 0C0030C3 */ jal get_controller_buttons_held +/* 0DCAE4 7F0A7FB4 0C0030C3 */ jal joyGetButtons /* 0DCAE8 7F0A7FB8 AFA3004C */ sw $v1, 0x4c($sp) /* 0DCAEC 7F0A7FBC 10400006 */ beqz $v0, .L7F0A7FD8 /* 0DCAF0 7F0A7FC0 8FA3004C */ lw $v1, 0x4c($sp) @@ -4025,7 +4022,7 @@ glabel draw_current_hand_item_and_ammo .L7F0A7FD8: /* 0DCB08 7F0A7FD8 00002025 */ move $a0, $zero /* 0DCB0C 7F0A7FDC 24050004 */ li $a1, 4 -/* 0DCB10 7F0A7FE0 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB10 7F0A7FE0 0C0030C3 */ jal joyGetButtons /* 0DCB14 7F0A7FE4 AFA3004C */ sw $v1, 0x4c($sp) /* 0DCB18 7F0A7FE8 10400006 */ beqz $v0, .L7F0A8004 /* 0DCB1C 7F0A7FEC 8FA3004C */ lw $v1, 0x4c($sp) @@ -4037,7 +4034,7 @@ glabel draw_current_hand_item_and_ammo .L7F0A8004: /* 0DCB34 7F0A8004 00002025 */ move $a0, $zero /* 0DCB38 7F0A8008 24050008 */ li $a1, 8 -/* 0DCB3C 7F0A800C 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB3C 7F0A800C 0C0030C3 */ jal joyGetButtons /* 0DCB40 7F0A8010 AFA3004C */ sw $v1, 0x4c($sp) /* 0DCB44 7F0A8014 10400006 */ beqz $v0, .L7F0A8030 /* 0DCB48 7F0A8018 8FA3004C */ lw $v1, 0x4c($sp) @@ -4049,7 +4046,7 @@ glabel draw_current_hand_item_and_ammo .L7F0A8030: /* 0DCB60 7F0A8030 00002025 */ move $a0, $zero /* 0DCB64 7F0A8034 24050020 */ li $a1, 32 -/* 0DCB68 7F0A8038 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB68 7F0A8038 0C0030C3 */ jal joyGetButtons /* 0DCB6C 7F0A803C AFA3004C */ sw $v1, 0x4c($sp) /* 0DCB70 7F0A8040 10400006 */ beqz $v0, .L7F0A805C /* 0DCB74 7F0A8044 8FA3004C */ lw $v1, 0x4c($sp) @@ -4061,7 +4058,7 @@ glabel draw_current_hand_item_and_ammo .L7F0A805C: /* 0DCB8C 7F0A805C 00002025 */ move $a0, $zero /* 0DCB90 7F0A8060 24050010 */ li $a1, 16 -/* 0DCB94 7F0A8064 0C0030C3 */ jal get_controller_buttons_held +/* 0DCB94 7F0A8064 0C0030C3 */ jal joyGetButtons /* 0DCB98 7F0A8068 AFA3004C */ sw $v1, 0x4c($sp) /* 0DCB9C 7F0A806C 10400006 */ beqz $v0, .L7F0A8088 /* 0DCBA0 7F0A8070 8FA3004C */ lw $v1, 0x4c($sp) @@ -4239,28 +4236,28 @@ glabel draw_current_hand_item_and_ammo #endif -s32 draw_watch_mission_status_page(s32 param_1, s32 param_2) +Gfx *draw_watch_mission_status_page(Gfx *gdl, s32 param_2) { - param_1 = draw_background_health_and_armor(param_1, param_2, 0); + gdl = draw_background_health_and_armor(gdl, param_2, 0); if (check_watch_page_transistion_running() != 1) { - param_1 = draw_text_q_watch_v201_beta(param_1); - param_1 = draw_text_mission_status(param_1); - param_1 = draw_current_hand_item_and_ammo(empty_draw_function(param_1)); + gdl = draw_text_q_watch_v201_beta(gdl); + gdl = draw_text_mission_status(gdl); + gdl = draw_current_hand_item_and_ammo(empty_draw_function(gdl)); } else { check_watch_page_transistion_running(); } - return param_1; + return gdl; } void sub_GAME_7F0A8378(void) { - if (get_controller_buttons_pressed('\0', 0xa000) == 0) { - if (get_controller_buttons_pressed('\0', START_BUTTON) == 0) + if (joyGetButtonsPressedThisFrame('\0', 0xa000) == 0) { + if (joyGetButtonsPressedThisFrame('\0', START_BUTTON) == 0) { return; } @@ -4275,7 +4272,7 @@ void sub_GAME_7F0A8378(void) remove_hands_item(1, 0); set_BONDdata_equipcuritem(D_800409B8); D_800409C4 = 10; - play_sfx_a1(ptr_sfx_buf, 0x9F, 0); + play_sfx_a1(g_musicSfxBufferPtr, 0x9F, 0); } @@ -4298,7 +4295,7 @@ glabel debug_gun_watch_move_related2 /* 0DCF70 7F0A8440 24010001 */ li $at, 1 /* 0DCF74 7F0A8444 504101AE */ beql $v0, $at, .L7F0A8B00 /* 0DCF78 7F0A8448 8FBF003C */ lw $ra, 0x3c($sp) -/* 0DCF7C 7F0A844C 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DCF7C 7F0A844C 0FC2F5B8 */ jal dynAllocateMatrix /* 0DCF80 7F0A8450 00000000 */ nop /* 0DCF84 7F0A8454 3C048004 */ lui $a0, %hi(D_800409B8) /* 0DCF88 7F0A8458 AFA20924 */ sw $v0, 0x924($sp) @@ -4341,7 +4338,7 @@ glabel debug_gun_watch_move_related2 /* 0DD01C 7F0A84EC 000E70C0 */ sll $t6, $t6, 3 /* 0DD020 7F0A84F0 01CF8021 */ addu $s0, $t6, $t7 /* 0DD024 7F0A84F4 00002025 */ move $a0, $zero -/* 0DD028 7F0A84F8 0C0030C3 */ jal get_controller_buttons_held +/* 0DD028 7F0A84F8 0C0030C3 */ jal joyGetButtons /* 0DD02C 7F0A84FC 24050002 */ li $a1, 2 /* 0DD030 7F0A8500 10400006 */ beqz $v0, .L7F0A851C /* 0DD034 7F0A8504 00002025 */ move $a0, $zero @@ -4351,7 +4348,7 @@ glabel debug_gun_watch_move_related2 /* 0DD044 7F0A8514 46062201 */ sub.s $f8, $f4, $f6 /* 0DD048 7F0A8518 E608002C */ swc1 $f8, 0x2c($s0) .L7F0A851C: -/* 0DD04C 7F0A851C 0C0030C3 */ jal get_controller_buttons_held +/* 0DD04C 7F0A851C 0C0030C3 */ jal joyGetButtons /* 0DD050 7F0A8520 24050001 */ li $a1, 1 /* 0DD054 7F0A8524 10400006 */ beqz $v0, .L7F0A8540 /* 0DD058 7F0A8528 00002025 */ move $a0, $zero @@ -4361,7 +4358,7 @@ glabel debug_gun_watch_move_related2 /* 0DD068 7F0A8538 46105480 */ add.s $f18, $f10, $f16 /* 0DD06C 7F0A853C E612002C */ swc1 $f18, 0x2c($s0) .L7F0A8540: -/* 0DD070 7F0A8540 0C0030C3 */ jal get_controller_buttons_held +/* 0DD070 7F0A8540 0C0030C3 */ jal joyGetButtons /* 0DD074 7F0A8544 24050004 */ li $a1, 4 /* 0DD078 7F0A8548 10400006 */ beqz $v0, .L7F0A8564 /* 0DD07C 7F0A854C 00002025 */ move $a0, $zero @@ -4371,7 +4368,7 @@ glabel debug_gun_watch_move_related2 /* 0DD08C 7F0A855C 46062200 */ add.s $f8, $f4, $f6 /* 0DD090 7F0A8560 E6080030 */ swc1 $f8, 0x30($s0) .L7F0A8564: -/* 0DD094 7F0A8564 0C0030C3 */ jal get_controller_buttons_held +/* 0DD094 7F0A8564 0C0030C3 */ jal joyGetButtons /* 0DD098 7F0A8568 24050008 */ li $a1, 8 /* 0DD09C 7F0A856C 10400006 */ beqz $v0, .L7F0A8588 /* 0DD0A0 7F0A8570 00002025 */ move $a0, $zero @@ -4381,7 +4378,7 @@ glabel debug_gun_watch_move_related2 /* 0DD0B0 7F0A8580 46105481 */ sub.s $f18, $f10, $f16 /* 0DD0B4 7F0A8584 E6120030 */ swc1 $f18, 0x30($s0) .L7F0A8588: -/* 0DD0B8 7F0A8588 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0B8 7F0A8588 0C0030C3 */ jal joyGetButtons /* 0DD0BC 7F0A858C 24050020 */ li $a1, 32 /* 0DD0C0 7F0A8590 10400006 */ beqz $v0, .L7F0A85AC /* 0DD0C4 7F0A8594 00002025 */ move $a0, $zero @@ -4391,7 +4388,7 @@ glabel debug_gun_watch_move_related2 /* 0DD0D4 7F0A85A4 46062202 */ mul.s $f8, $f4, $f6 /* 0DD0D8 7F0A85A8 E6080034 */ swc1 $f8, 0x34($s0) .L7F0A85AC: -/* 0DD0DC 7F0A85AC 0C0030C3 */ jal get_controller_buttons_held +/* 0DD0DC 7F0A85AC 0C0030C3 */ jal joyGetButtons /* 0DD0E0 7F0A85B0 24050010 */ li $a1, 16 /* 0DD0E4 7F0A85B4 10400005 */ beqz $v0, .L7F0A85CC /* 0DD0E8 7F0A85B8 3C018006 */ lui $at, %hi(D_80058524) @@ -4508,7 +4505,7 @@ glabel debug_gun_watch_move_related2 /* 0DD298 7F0A8768 0FC234D0 */ jal sub_GAME_7F08D340 /* 0DD29C 7F0A876C 02002025 */ move $a0, $s0 /* 0DD2A0 7F0A8770 27A40084 */ addiu $a0, $sp, 0x84 -/* 0DD2A4 7F0A8774 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DD2A4 7F0A8774 0C0029FF */ jal strcat /* 0DD2A8 7F0A8778 00402825 */ move $a1, $v0 /* 0DD2AC 7F0A877C 0FC2340E */ jal count_total_items_in_inventory /* 0DD2B0 7F0A8780 26100001 */ addiu $s0, $s0, 1 @@ -4781,7 +4778,7 @@ glabel debug_gun_watch_move_related2 /* 0DDB48 7F0A8FD8 24010001 */ li $at, 1 /* 0DDB4C 7F0A8FDC 504101B8 */ beql $v0, $at, .Ljp7F0A96C0 /* 0DDB50 7F0A8FE0 8FBF003C */ lw $ra, 0x3c($sp) -/* 0DDB54 7F0A8FE4 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0DDB54 7F0A8FE4 0FC2F8A4 */ jal dynAllocateMatrix /* 0DDB58 7F0A8FE8 00000000 */ nop /* 0DDB5C 7F0A8FEC 3C048004 */ lui $a0, %hi(D_800409B8) # $a0, 0x8004 /* 0DDB60 7F0A8FF0 AFA2092C */ sw $v0, 0x92c($sp) @@ -4824,7 +4821,7 @@ glabel debug_gun_watch_move_related2 /* 0DDBF4 7F0A9084 000E70C0 */ sll $t6, $t6, 3 /* 0DDBF8 7F0A9088 01CF8021 */ addu $s0, $t6, $t7 /* 0DDBFC 7F0A908C 00002025 */ move $a0, $zero -/* 0DDC00 7F0A9090 0C0030DC */ jal get_controller_buttons_held +/* 0DDC00 7F0A9090 0C0030DC */ jal joyGetButtons /* 0DDC04 7F0A9094 24050002 */ li $a1, 2 /* 0DDC08 7F0A9098 10400006 */ beqz $v0, .Ljp7F0A90B4 /* 0DDC0C 7F0A909C 00002025 */ move $a0, $zero @@ -4834,7 +4831,7 @@ glabel debug_gun_watch_move_related2 /* 0DDC1C 7F0A90AC 46062201 */ sub.s $f8, $f4, $f6 /* 0DDC20 7F0A90B0 E608002C */ swc1 $f8, 0x2c($s0) .Ljp7F0A90B4: -/* 0DDC24 7F0A90B4 0C0030DC */ jal get_controller_buttons_held +/* 0DDC24 7F0A90B4 0C0030DC */ jal joyGetButtons /* 0DDC28 7F0A90B8 24050001 */ li $a1, 1 /* 0DDC2C 7F0A90BC 10400006 */ beqz $v0, .Ljp7F0A90D8 /* 0DDC30 7F0A90C0 00002025 */ move $a0, $zero @@ -4844,7 +4841,7 @@ glabel debug_gun_watch_move_related2 /* 0DDC40 7F0A90D0 46105480 */ add.s $f18, $f10, $f16 /* 0DDC44 7F0A90D4 E612002C */ swc1 $f18, 0x2c($s0) .Ljp7F0A90D8: -/* 0DDC48 7F0A90D8 0C0030DC */ jal get_controller_buttons_held +/* 0DDC48 7F0A90D8 0C0030DC */ jal joyGetButtons /* 0DDC4C 7F0A90DC 24050004 */ li $a1, 4 /* 0DDC50 7F0A90E0 10400006 */ beqz $v0, .Ljp7F0A90FC /* 0DDC54 7F0A90E4 00002025 */ move $a0, $zero @@ -4854,7 +4851,7 @@ glabel debug_gun_watch_move_related2 /* 0DDC64 7F0A90F4 46062200 */ add.s $f8, $f4, $f6 /* 0DDC68 7F0A90F8 E6080030 */ swc1 $f8, 0x30($s0) .Ljp7F0A90FC: -/* 0DDC6C 7F0A90FC 0C0030DC */ jal get_controller_buttons_held +/* 0DDC6C 7F0A90FC 0C0030DC */ jal joyGetButtons /* 0DDC70 7F0A9100 24050008 */ li $a1, 8 /* 0DDC74 7F0A9104 10400006 */ beqz $v0, .Ljp7F0A9120 /* 0DDC78 7F0A9108 00002025 */ move $a0, $zero @@ -4864,7 +4861,7 @@ glabel debug_gun_watch_move_related2 /* 0DDC88 7F0A9118 46105481 */ sub.s $f18, $f10, $f16 /* 0DDC8C 7F0A911C E6120030 */ swc1 $f18, 0x30($s0) .Ljp7F0A9120: -/* 0DDC90 7F0A9120 0C0030DC */ jal get_controller_buttons_held +/* 0DDC90 7F0A9120 0C0030DC */ jal joyGetButtons /* 0DDC94 7F0A9124 24050020 */ li $a1, 32 /* 0DDC98 7F0A9128 10400006 */ beqz $v0, .Ljp7F0A9144 /* 0DDC9C 7F0A912C 00002025 */ move $a0, $zero @@ -4874,7 +4871,7 @@ glabel debug_gun_watch_move_related2 /* 0DDCAC 7F0A913C 46062202 */ mul.s $f8, $f4, $f6 /* 0DDCB0 7F0A9140 E6080034 */ swc1 $f8, 0x34($s0) .Ljp7F0A9144: -/* 0DDCB4 7F0A9144 0C0030DC */ jal get_controller_buttons_held +/* 0DDCB4 7F0A9144 0C0030DC */ jal joyGetButtons /* 0DDCB8 7F0A9148 24050010 */ li $a1, 16 /* 0DDCBC 7F0A914C 10400005 */ beqz $v0, .Ljp7F0A9164 /* 0DDCC0 7F0A9150 3C018006 */ lui $at, %hi(D_80058524) # $at, 0x8006 @@ -5001,7 +4998,7 @@ glabel debug_gun_watch_move_related2 /* 0DDE90 7F0A9320 0FC2374A */ jal sub_GAME_7F08D340 /* 0DDE94 7F0A9324 02002025 */ move $a0, $s0 /* 0DDE98 7F0A9328 27A4008C */ addiu $a0, $sp, 0x8c -/* 0DDE9C 7F0A932C 0C002A03 */ jal string_append_from_obseg_textbank +/* 0DDE9C 7F0A932C 0C002A03 */ jal strcat /* 0DDEA0 7F0A9330 00402825 */ move $a1, $v0 /* 0DDEA4 7F0A9334 0FC23667 */ jal count_total_items_in_inventory /* 0DDEA8 7F0A9338 26100001 */ addiu $s0, $s0, 1 @@ -5262,6 +5259,489 @@ glabel debug_gun_watch_move_related2 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.text +glabel debug_gun_watch_move_related2 +/* 0DCF54 7F0A8424 27BDF6D8 */ addiu $sp, $sp, -0x928 +/* 0DCF58 7F0A8428 AFBF003C */ sw $ra, 0x3c($sp) +/* 0DCF5C 7F0A842C AFB00038 */ sw $s0, 0x38($sp) +/* 0DCF60 7F0A8430 0FC29C53 */ jal draw_background_health_and_armor +/* 0DCF64 7F0A8434 00003025 */ move $a2, $zero +/* 0DCF68 7F0A8438 0FC1F97F */ jal check_watch_page_transistion_running +/* 0DCF6C 7F0A843C AFA20928 */ sw $v0, 0x928($sp) +/* 0DCF70 7F0A8440 24010001 */ li $at, 1 +/* 0DCF74 7F0A8444 504101AE */ beql $v0, $at, .L7F0A8B00 +/* 0DCF78 7F0A8448 8FBF003C */ lw $ra, 0x3c($sp) +/* 0DCF7C 7F0A844C 0FC2F5B8 */ jal dynAllocateMatrix +/* 0DCF80 7F0A8450 00000000 */ nop +/* 0DCF84 7F0A8454 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF88 7F0A8458 AFA20924 */ sw $v0, 0x924($sp) +/* 0DCF8C 7F0A845C 0FC2354A */ jal sub_GAME_7F08D528 +/* 0DCF90 7F0A8460 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCF94 7F0A8464 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCF98 7F0A8468 E7A00894 */ swc1 $f0, 0x894($sp) +/* 0DCF9C 7F0A846C 0FC23554 */ jal sub_GAME_7F08D550 +/* 0DCFA0 7F0A8470 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFA4 7F0A8474 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFA8 7F0A8478 E7A00890 */ swc1 $f0, 0x890($sp) +/* 0DCFAC 7F0A847C 0FC2355E */ jal sub_GAME_7F08D578 +/* 0DCFB0 7F0A8480 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFB4 7F0A8484 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFB8 7F0A8488 E7A0088C */ swc1 $f0, 0x88c($sp) +/* 0DCFBC 7F0A848C 0FC23568 */ jal sub_GAME_7F08D5A0 +/* 0DCFC0 7F0A8490 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFC4 7F0A8494 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFC8 7F0A8498 E7A00888 */ swc1 $f0, 0x888($sp) +/* 0DCFCC 7F0A849C 0FC234AA */ jal get_weaponnum_by_inv_index +/* 0DCFD0 7F0A84A0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFD4 7F0A84A4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFD8 7F0A84A8 AFA20884 */ sw $v0, 0x884($sp) +/* 0DCFDC 7F0A84AC 0FC23614 */ jal sub_GAME_7F08D850 +/* 0DCFE0 7F0A84B0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFE4 7F0A84B4 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DCFE8 7F0A84B8 E7A00880 */ swc1 $f0, 0x880($sp) +/* 0DCFEC 7F0A84BC 0FC2361E */ jal sub_GAME_7F08D878 +/* 0DCFF0 7F0A84C0 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DCFF4 7F0A84C4 0FC24415 */ jal get_debug_gunwatchpos_flag +/* 0DCFF8 7F0A84C8 E7A0087C */ swc1 $f0, 0x87c($sp) +/* 0DCFFC 7F0A84CC 50400040 */ beql $v0, $zero, .L7F0A85D0 +/* 0DD000 7F0A84D0 3C014120 */ lui $at, 0x4120 +/* 0DD004 7F0A84D4 0FC17674 */ jal get_item_in_hand +/* 0DD008 7F0A84D8 00002025 */ move $a0, $zero +/* 0DD00C 7F0A84DC 000270C0 */ sll $t6, $v0, 3 +/* 0DD010 7F0A84E0 01C27023 */ subu $t6, $t6, $v0 +/* 0DD014 7F0A84E4 3C0F8003 */ lui $t7, %hi(gitem_structs) +/* 0DD018 7F0A84E8 25EF3924 */ addiu $t7, %lo(gitem_structs) # addiu $t7, $t7, 0x3924 +/* 0DD01C 7F0A84EC 000E70C0 */ sll $t6, $t6, 3 +/* 0DD020 7F0A84F0 01CF8021 */ addu $s0, $t6, $t7 +/* 0DD024 7F0A84F4 00002025 */ move $a0, $zero +/* 0DD028 7F0A84F8 0C0030C3 */ jal joyGetButtons +/* 0DD02C 7F0A84FC 24050002 */ li $a1, 2 +/* 0DD030 7F0A8500 10400006 */ beqz $v0, .L7F0A851C +/* 0DD034 7F0A8504 00002025 */ move $a0, $zero +/* 0DD038 7F0A8508 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD03C 7F0A850C 44813000 */ mtc1 $at, $f6 +/* 0DD040 7F0A8510 C604002C */ lwc1 $f4, 0x2c($s0) +/* 0DD044 7F0A8514 46062201 */ sub.s $f8, $f4, $f6 +/* 0DD048 7F0A8518 E608002C */ swc1 $f8, 0x2c($s0) +.L7F0A851C: +/* 0DD04C 7F0A851C 0C0030C3 */ jal joyGetButtons +/* 0DD050 7F0A8520 24050001 */ li $a1, 1 +/* 0DD054 7F0A8524 10400006 */ beqz $v0, .L7F0A8540 +/* 0DD058 7F0A8528 00002025 */ move $a0, $zero +/* 0DD05C 7F0A852C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD060 7F0A8530 44818000 */ mtc1 $at, $f16 +/* 0DD064 7F0A8534 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 0DD068 7F0A8538 46105480 */ add.s $f18, $f10, $f16 +/* 0DD06C 7F0A853C E612002C */ swc1 $f18, 0x2c($s0) +.L7F0A8540: +/* 0DD070 7F0A8540 0C0030C3 */ jal joyGetButtons +/* 0DD074 7F0A8544 24050004 */ li $a1, 4 +/* 0DD078 7F0A8548 10400006 */ beqz $v0, .L7F0A8564 +/* 0DD07C 7F0A854C 00002025 */ move $a0, $zero +/* 0DD080 7F0A8550 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD084 7F0A8554 44813000 */ mtc1 $at, $f6 +/* 0DD088 7F0A8558 C6040030 */ lwc1 $f4, 0x30($s0) +/* 0DD08C 7F0A855C 46062200 */ add.s $f8, $f4, $f6 +/* 0DD090 7F0A8560 E6080030 */ swc1 $f8, 0x30($s0) +.L7F0A8564: +/* 0DD094 7F0A8564 0C0030C3 */ jal joyGetButtons +/* 0DD098 7F0A8568 24050008 */ li $a1, 8 +/* 0DD09C 7F0A856C 10400006 */ beqz $v0, .L7F0A8588 +/* 0DD0A0 7F0A8570 00002025 */ move $a0, $zero +/* 0DD0A4 7F0A8574 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0DD0A8 7F0A8578 44818000 */ mtc1 $at, $f16 +/* 0DD0AC 7F0A857C C60A0030 */ lwc1 $f10, 0x30($s0) +/* 0DD0B0 7F0A8580 46105481 */ sub.s $f18, $f10, $f16 +/* 0DD0B4 7F0A8584 E6120030 */ swc1 $f18, 0x30($s0) +.L7F0A8588: +/* 0DD0B8 7F0A8588 0C0030C3 */ jal joyGetButtons +/* 0DD0BC 7F0A858C 24050020 */ li $a1, 32 +/* 0DD0C0 7F0A8590 10400006 */ beqz $v0, .L7F0A85AC +/* 0DD0C4 7F0A8594 00002025 */ move $a0, $zero +/* 0DD0C8 7F0A8598 3C018006 */ lui $at, %hi(D_80058520) +/* 0DD0CC 7F0A859C C4268520 */ lwc1 $f6, %lo(D_80058520)($at) +/* 0DD0D0 7F0A85A0 C6040034 */ lwc1 $f4, 0x34($s0) +/* 0DD0D4 7F0A85A4 46062202 */ mul.s $f8, $f4, $f6 +/* 0DD0D8 7F0A85A8 E6080034 */ swc1 $f8, 0x34($s0) +.L7F0A85AC: +/* 0DD0DC 7F0A85AC 0C0030C3 */ jal joyGetButtons +/* 0DD0E0 7F0A85B0 24050010 */ li $a1, 16 +/* 0DD0E4 7F0A85B4 10400005 */ beqz $v0, .L7F0A85CC +/* 0DD0E8 7F0A85B8 3C018006 */ lui $at, %hi(D_80058524) +/* 0DD0EC 7F0A85BC C60A0034 */ lwc1 $f10, 0x34($s0) +/* 0DD0F0 7F0A85C0 C4308524 */ lwc1 $f16, %lo(D_80058524)($at) +/* 0DD0F4 7F0A85C4 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD0F8 7F0A85C8 E6120034 */ swc1 $f18, 0x34($s0) +.L7F0A85CC: +/* 0DD0FC 7F0A85CC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L7F0A85D0: +/* 0DD100 7F0A85D0 44812000 */ mtc1 $at, $f4 +/* 0DD104 7F0A85D4 3C018006 */ lui $at, %hi(D_80058528) +/* 0DD108 7F0A85D8 C4268528 */ lwc1 $f6, %lo(D_80058528)($at) +/* 0DD10C 7F0A85DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD110 7F0A85E0 44814000 */ mtc1 $at, $f8 +/* 0DD114 7F0A85E4 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DD118 7F0A85E8 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DD11C 7F0A85EC 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD120 7F0A85F0 27A50922 */ addiu $a1, $sp, 0x922 +/* 0DD124 7F0A85F4 8FA60894 */ lw $a2, 0x894($sp) +/* 0DD128 7F0A85F8 E7A40010 */ swc1 $f4, 0x10($sp) +/* 0DD12C 7F0A85FC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DD130 7F0A8600 0C003FAC */ jal guPerspective +/* 0DD134 7F0A8604 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DD138 7F0A8608 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD13C 7F0A860C 3C180103 */ lui $t8, (0x01030040 >> 16) # lui $t8, 0x103 +/* 0DD140 7F0A8610 37180040 */ ori $t8, (0x01030040 & 0xFFFF) # ori $t8, $t8, 0x40 +/* 0DD144 7F0A8614 00408025 */ move $s0, $v0 +/* 0DD148 7F0A8618 AE180000 */ sw $t8, ($s0) +/* 0DD14C 7F0A861C 24420008 */ addiu $v0, $v0, 8 +/* 0DD150 7F0A8620 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD154 7F0A8624 0C003A2C */ jal osVirtualToPhysical +/* 0DD158 7F0A8628 8FA40924 */ lw $a0, 0x924($sp) +/* 0DD15C 7F0A862C AE020004 */ sw $v0, 4($s0) +/* 0DD160 7F0A8630 3C018006 */ lui $at, %hi(D_8005852C) +/* 0DD164 7F0A8634 C430852C */ lwc1 $f16, %lo(D_8005852C)($at) +/* 0DD168 7F0A8638 C7AA087C */ lwc1 $f10, 0x87c($sp) +/* 0DD16C 7F0A863C 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD170 7F0A8640 44812000 */ mtc1 $at, $f4 +/* 0DD174 7F0A8644 46105482 */ mul.s $f18, $f10, $f16 +/* 0DD178 7F0A8648 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD17C 7F0A864C 0FC1617F */ jal matrix_4x4_set_rotation_around_y +/* 0DD180 7F0A8650 46049303 */ div.s $f12, $f18, $f4 +/* 0DD184 7F0A8654 3C018006 */ lui $at, %hi(D_80058530) +/* 0DD188 7F0A8658 C4208530 */ lwc1 $f0, %lo(D_80058530)($at) +/* 0DD18C 7F0A865C C7A60880 */ lwc1 $f6, 0x880($sp) +/* 0DD190 7F0A8660 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DD194 7F0A8664 44815000 */ mtc1 $at, $f10 +/* 0DD198 7F0A8668 46003202 */ mul.s $f8, $f6, $f0 +/* 0DD19C 7F0A866C 27B008A0 */ addiu $s0, $sp, 0x8a0 +/* 0DD1A0 7F0A8670 02002825 */ move $a1, $s0 +/* 0DD1A4 7F0A8674 460A4403 */ div.s $f16, $f8, $f10 +/* 0DD1A8 7F0A8678 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DD1AC 7F0A867C 46100301 */ sub.s $f12, $f0, $f16 +/* 0DD1B0 7F0A8680 02002025 */ move $a0, $s0 +/* 0DD1B4 7F0A8684 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD1B8 7F0A8688 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD1BC 7F0A868C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1C0 7F0A8690 0FC15FA8 */ jal cosf +/* 0DD1C4 7F0A8694 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1C8 7F0A8698 C7B20888 */ lwc1 $f18, 0x888($sp) +/* 0DD1CC 7F0A869C 3C018004 */ lui $at, %hi(D_80040B14) +/* 0DD1D0 7F0A86A0 C42C0B14 */ lwc1 $f12, %lo(D_80040B14)($at) +/* 0DD1D4 7F0A86A4 46120102 */ mul.s $f4, $f0, $f18 +/* 0DD1D8 7F0A86A8 0FC15FAB */ jal sinf +/* 0DD1DC 7F0A86AC E7A4089C */ swc1 $f4, 0x89c($sp) +/* 0DD1E0 7F0A86B0 C7A60888 */ lwc1 $f6, 0x888($sp) +/* 0DD1E4 7F0A86B4 C7AE0890 */ lwc1 $f14, 0x890($sp) +/* 0DD1E8 7F0A86B8 44801000 */ mtc1 $zero, $f2 +/* 0DD1EC 7F0A86BC 46060202 */ mul.s $f8, $f0, $f6 +/* 0DD1F0 7F0A86C0 C7AC088C */ lwc1 $f12, 0x88c($sp) +/* 0DD1F4 7F0A86C4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DD1F8 7F0A86C8 44818000 */ mtc1 $at, $f16 +/* 0DD1FC 7F0A86CC 44066000 */ mfc1 $a2, $f12 +/* 0DD200 7F0A86D0 02002025 */ move $a0, $s0 +/* 0DD204 7F0A86D4 8FA5089C */ lw $a1, 0x89c($sp) +/* 0DD208 7F0A86D8 460E4280 */ add.s $f10, $f8, $f14 +/* 0DD20C 7F0A86DC E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0DD210 7F0A86E0 E7A20010 */ swc1 $f2, 0x10($sp) +/* 0DD214 7F0A86E4 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DD218 7F0A86E8 44075000 */ mfc1 $a3, $f10 +/* 0DD21C 7F0A86EC E7A20024 */ swc1 $f2, 0x24($sp) +/* 0DD220 7F0A86F0 E7AC0014 */ swc1 $f12, 0x14($sp) +/* 0DD224 7F0A86F4 0FC165A5 */ jal matrix_4x4_7F059694 +/* 0DD228 7F0A86F8 E7B00020 */ swc1 $f16, 0x20($sp) +/* 0DD22C 7F0A86FC 02002025 */ move $a0, $s0 +/* 0DD230 7F0A8700 0FC1601A */ jal matrix_4x4_multiply_in_place +/* 0DD234 7F0A8704 27A508E0 */ addiu $a1, $sp, 0x8e0 +/* 0DD238 7F0A8708 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DD23C 7F0A870C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD240 7F0A8710 3C19A0FF */ lui $t9, (0xA0FFA03C >> 16) # lui $t9, 0xa0ff +/* 0DD244 7F0A8714 3739A03C */ ori $t9, (0xA0FFA03C & 0xFFFF) # ori $t9, $t9, 0xa03c +/* 0DD248 7F0A8718 AFB90010 */ sw $t9, 0x10($sp) +/* 0DD24C 7F0A871C 00402025 */ move $a0, $v0 +/* 0DD250 7F0A8720 8FA50884 */ lw $a1, 0x884($sp) +/* 0DD254 7F0A8724 27A608E0 */ addiu $a2, $sp, 0x8e0 +/* 0DD258 7F0A8728 0FC18C01 */ jal set_enviro_fog_for_items_in_solo_watch_menu +/* 0DD25C 7F0A872C 24070040 */ li $a3, 64 +/* 0DD260 7F0A8730 3C098004 */ lui $t1, %hi(ptrFirstFontTableSmall) +/* 0DD264 7F0A8734 3C0A8004 */ lui $t2, %hi(ptrSecondFontTableSmall) +/* 0DD268 7F0A8738 8D290EAC */ lw $t1, %lo(ptrFirstFontTableSmall)($t1) +/* 0DD26C 7F0A873C 8D4A0EB0 */ lw $t2, %lo(ptrSecondFontTableSmall)($t2) +/* 0DD270 7F0A8740 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD274 7F0A8744 AFA00860 */ sw $zero, 0x860($sp) +/* 0DD278 7F0A8748 AFA0085C */ sw $zero, 0x85c($sp) +/* 0DD27C 7F0A874C A3A00084 */ sb $zero, 0x84($sp) +/* 0DD280 7F0A8750 00008025 */ move $s0, $zero +/* 0DD284 7F0A8754 AFA90858 */ sw $t1, 0x858($sp) +/* 0DD288 7F0A8758 0FC2340E */ jal count_total_items_in_inventory +/* 0DD28C 7F0A875C AFAA0854 */ sw $t2, 0x854($sp) +/* 0DD290 7F0A8760 1840000B */ blez $v0, .L7F0A8790 +/* 0DD294 7F0A8764 00000000 */ nop +.L7F0A8768: +/* 0DD298 7F0A8768 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD29C 7F0A876C 02002025 */ move $a0, $s0 +/* 0DD2A0 7F0A8770 27A40084 */ addiu $a0, $sp, 0x84 +/* 0DD2A4 7F0A8774 0C0029FF */ jal strcat +/* 0DD2A8 7F0A8778 00402825 */ move $a1, $v0 +/* 0DD2AC 7F0A877C 0FC2340E */ jal count_total_items_in_inventory +/* 0DD2B0 7F0A8780 26100001 */ addiu $s0, $s0, 1 +/* 0DD2B4 7F0A8784 0202082A */ slt $at, $s0, $v0 +/* 0DD2B8 7F0A8788 1420FFF7 */ bnez $at, .L7F0A8768 +/* 0DD2BC 7F0A878C 00000000 */ nop +.L7F0A8790: +/* 0DD2C0 7F0A8790 3C038004 */ lui $v1, %hi(D_800409C4) +/* 0DD2C4 7F0A8794 246309C4 */ addiu $v1, %lo(D_800409C4) # addiu $v1, $v1, 0x9c4 +/* 0DD2C8 7F0A8798 8C620000 */ lw $v0, ($v1) +/* 0DD2CC 7F0A879C 18400002 */ blez $v0, .L7F0A87A8 +/* 0DD2D0 7F0A87A0 244BFFFF */ addiu $t3, $v0, -1 +/* 0DD2D4 7F0A87A4 AC6B0000 */ sw $t3, ($v1) +.L7F0A87A8: +/* 0DD2D8 7F0A87A8 0FC296E0 */ jal sub_GAME_7F0A5B80 +/* 0DD2DC 7F0A87AC 00000000 */ nop +/* 0DD2E0 7F0A87B0 3C0E8005 */ lui $t6, %hi(j_text_trigger) +/* 0DD2E4 7F0A87B4 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) +/* 0DD2E8 7F0A87B8 240C004E */ li $t4, 78 +/* 0DD2EC 7F0A87BC 240D008C */ li $t5, 140 +/* 0DD2F0 7F0A87C0 AFAC0870 */ sw $t4, 0x870($sp) +/* 0DD2F4 7F0A87C4 11C00003 */ beqz $t6, .L7F0A87D4 +/* 0DD2F8 7F0A87C8 AFAD086C */ sw $t5, 0x86c($sp) +/* 0DD2FC 7F0A87CC 10000002 */ b .L7F0A87D8 +/* 0DD300 7F0A87D0 2402000E */ li $v0, 14 +.L7F0A87D4: +/* 0DD304 7F0A87D4 2402000C */ li $v0, 12 +.L7F0A87D8: +/* 0DD308 7F0A87D8 00028040 */ sll $s0, $v0, 1 +/* 0DD30C 7F0A87DC 2610008D */ addiu $s0, $s0, 0x8d +/* 0DD310 7F0A87E0 0FC2B366 */ jal microcode_constructor +/* 0DD314 7F0A87E4 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD318 7F0A87E8 3C0F8005 */ lui $t7, %hi(j_text_trigger) +/* 0DD31C 7F0A87EC 8DEF84D0 */ lw $t7, %lo(j_text_trigger)($t7) +/* 0DD320 7F0A87F0 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD324 7F0A87F4 27A40860 */ addiu $a0, $sp, 0x860 +/* 0DD328 7F0A87F8 11E00003 */ beqz $t7, .L7F0A8808 +/* 0DD32C 7F0A87FC 27A5085C */ addiu $a1, $sp, 0x85c +/* 0DD330 7F0A8800 10000002 */ b .L7F0A880C +/* 0DD334 7F0A8804 2402000E */ li $v0, 14 +.L7F0A8808: +/* 0DD338 7F0A8808 2402000C */ li $v0, 12 +.L7F0A880C: +/* 0DD33C 7F0A880C 8FB80858 */ lw $t8, 0x858($sp) +/* 0DD340 7F0A8810 27A60084 */ addiu $a2, $sp, 0x84 +/* 0DD344 7F0A8814 8FA70854 */ lw $a3, 0x854($sp) +/* 0DD348 7F0A8818 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD34C 7F0A881C 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD350 7F0A8820 AFB80010 */ sw $t8, 0x10($sp) +/* 0DD354 7F0A8824 3C198005 */ lui $t9, %hi(j_text_trigger) +/* 0DD358 7F0A8828 8F3984D0 */ lw $t9, %lo(j_text_trigger)($t9) +/* 0DD35C 7F0A882C 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD360 7F0A8830 2405004E */ li $a1, 78 +/* 0DD364 7F0A8834 13200003 */ beqz $t9, .L7F0A8844 +/* 0DD368 7F0A8838 2406008C */ li $a2, 140 +/* 0DD36C 7F0A883C 10000002 */ b .L7F0A8848 +/* 0DD370 7F0A8840 2402000E */ li $v0, 14 +.L7F0A8844: +/* 0DD374 7F0A8844 2402000C */ li $v0, 12 +.L7F0A8848: +/* 0DD378 7F0A8848 00024880 */ sll $t1, $v0, 2 +/* 0DD37C 7F0A884C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD380 7F0A8850 01224821 */ addu $t1, $t1, $v0 +/* 0DD384 7F0A8854 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD388 7F0A8858 AFAA0010 */ sw $t2, 0x10($sp) +/* 0DD38C 7F0A885C AFA00014 */ sw $zero, 0x14($sp) +/* 0DD390 7F0A8860 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD394 7F0A8864 24E7004E */ addiu $a3, $a3, 0x4e +/* 0DD398 7F0A8868 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD39C 7F0A886C 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD3A0 7F0A8870 00402025 */ move $a0, $v0 +/* 0DD3A4 7F0A8874 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD3A8 7F0A8878 10600003 */ beqz $v1, .L7F0A8888 +/* 0DD3AC 7F0A887C 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD3B0 7F0A8880 10000002 */ b .L7F0A888C +/* 0DD3B4 7F0A8884 2408000E */ li $t0, 14 +.L7F0A8888: +/* 0DD3B8 7F0A8888 2408000C */ li $t0, 12 +.L7F0A888C: +/* 0DD3BC 7F0A888C 10600003 */ beqz $v1, .L7F0A889C +/* 0DD3C0 7F0A8890 27A70084 */ addiu $a3, $sp, 0x84 +/* 0DD3C4 7F0A8894 10000002 */ b .L7F0A88A0 +/* 0DD3C8 7F0A8898 2402000E */ li $v0, 14 +.L7F0A889C: +/* 0DD3CC 7F0A889C 2402000C */ li $v0, 12 +.L7F0A88A0: +/* 0DD3D0 7F0A88A0 8FAE085C */ lw $t6, 0x85c($sp) +/* 0DD3D4 7F0A88A4 3C198004 */ lui $t9, %hi(D_800409B0) +/* 0DD3D8 7F0A88A8 8F3909B0 */ lw $t9, %lo(D_800409B0)($t9) +/* 0DD3DC 7F0A88AC 8FAB0854 */ lw $t3, 0x854($sp) +/* 0DD3E0 7F0A88B0 8FAC0858 */ lw $t4, 0x858($sp) +/* 0DD3E4 7F0A88B4 3C0D00AA */ lui $t5, (0x00AA00B0 >> 16) # lui $t5, 0xaa +/* 0DD3E8 7F0A88B8 0008C080 */ sll $t8, $t0, 2 +/* 0DD3EC 7F0A88BC 0308C021 */ addu $t8, $t8, $t0 +/* 0DD3F0 7F0A88C0 35AD00B0 */ ori $t5, (0x00AA00B0 & 0xFFFF) # ori $t5, $t5, 0xb0 +/* 0DD3F4 7F0A88C4 25CF0001 */ addiu $t7, $t6, 1 +/* 0DD3F8 7F0A88C8 AFAF001C */ sw $t7, 0x1c($sp) +/* 0DD3FC 7F0A88CC AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD400 7F0A88D0 AFB80020 */ sw $t8, 0x20($sp) +/* 0DD404 7F0A88D4 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD408 7F0A88D8 AFB90024 */ sw $t9, 0x24($sp) +/* 0DD40C 7F0A88DC AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD410 7F0A88E0 0FC2B6AF */ jal en_text_write_stuff +/* 0DD414 7F0A88E4 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD418 7F0A88E8 3C098005 */ lui $t1, %hi(j_text_trigger) +/* 0DD41C 7F0A88EC 8D2984D0 */ lw $t1, %lo(j_text_trigger)($t1) +/* 0DD420 7F0A88F0 00402025 */ move $a0, $v0 +/* 0DD424 7F0A88F4 2405004B */ li $a1, 75 +/* 0DD428 7F0A88F8 11200003 */ beqz $t1, .L7F0A8908 +/* 0DD42C 7F0A88FC 02003025 */ move $a2, $s0 +/* 0DD430 7F0A8900 10000002 */ b .L7F0A890C +/* 0DD434 7F0A8904 2402000E */ li $v0, 14 +.L7F0A8908: +/* 0DD438 7F0A8908 2402000C */ li $v0, 12 +.L7F0A890C: +/* 0DD43C 7F0A890C 8FA7085C */ lw $a3, 0x85c($sp) +/* 0DD440 7F0A8910 00505021 */ addu $t2, $v0, $s0 +/* 0DD444 7F0A8914 3C0C0080 */ lui $t4, (0x00800050 >> 16) # lui $t4, 0x80 +/* 0DD448 7F0A8918 358C0050 */ ori $t4, (0x00800050 & 0xFFFF) # ori $t4, $t4, 0x50 +/* 0DD44C 7F0A891C 254BFFFE */ addiu $t3, $t2, -2 +/* 0DD450 7F0A8920 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DD454 7F0A8924 AFAC0014 */ sw $t4, 0x14($sp) +/* 0DD458 7F0A8928 0FC2B405 */ jal microcode_constructor_related_to_menus +/* 0DD45C 7F0A892C 24E70052 */ addiu $a3, $a3, 0x52 +/* 0DD460 7F0A8930 3C0D8004 */ lui $t5, %hi(ptrSecondFontTableSmall) +/* 0DD464 7F0A8934 8DAD0EB0 */ lw $t5, %lo(ptrSecondFontTableSmall)($t5) +/* 0DD468 7F0A8938 3C108004 */ lui $s0, %hi(ptrFirstFontTableSmall) +/* 0DD46C 7F0A893C 3C048004 */ lui $a0, %hi(D_800409B8) +/* 0DD470 7F0A8940 AFA20928 */ sw $v0, 0x928($sp) +/* 0DD474 7F0A8944 8E100EAC */ lw $s0, %lo(ptrFirstFontTableSmall)($s0) +/* 0DD478 7F0A8948 8C8409B8 */ lw $a0, %lo(D_800409B8)($a0) +/* 0DD47C 7F0A894C 0FC234D0 */ jal sub_GAME_7F08D340 +/* 0DD480 7F0A8950 AFAD0058 */ sw $t5, 0x58($sp) +/* 0DD484 7F0A8954 3C018004 */ lui $at, %hi(D_800409BC) +/* 0DD488 7F0A8958 C43209BC */ lwc1 $f18, %lo(D_800409BC)($at) +/* 0DD48C 7F0A895C 3C0E8004 */ lui $t6, %hi(D_800409B8) +/* 0DD490 7F0A8960 8DCE09B8 */ lw $t6, %lo(D_800409B8)($t6) +/* 0DD494 7F0A8964 46009121 */ cvt.d.s $f4, $f18 +/* 0DD498 7F0A8968 3C058005 */ lui $a1, %hi(aDDDF) +/* 0DD49C 7F0A896C 3C068004 */ lui $a2, %hi(D_800409B0) +/* 0DD4A0 7F0A8970 3C078004 */ lui $a3, %hi(D_800409B4) +/* 0DD4A4 7F0A8974 AFA2004C */ sw $v0, 0x4c($sp) +/* 0DD4A8 7F0A8978 8CE709B4 */ lw $a3, %lo(D_800409B4)($a3) +/* 0DD4AC 7F0A897C 8CC609B0 */ lw $a2, %lo(D_800409B0)($a2) +/* 0DD4B0 7F0A8980 24A57768 */ addiu $a1, %lo(aDDDF) # addiu $a1, $a1, 0x7768 +/* 0DD4B4 7F0A8984 F7A40018 */ sdc1 $f4, 0x18($sp) +/* 0DD4B8 7F0A8988 27A40060 */ addiu $a0, $sp, 0x60 +/* 0DD4BC 7F0A898C 0C002B25 */ jal sprintf +/* 0DD4C0 7F0A8990 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DD4C4 7F0A8994 0FC2B366 */ jal microcode_constructor +/* 0DD4C8 7F0A8998 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD4CC 7F0A899C AFA20928 */ sw $v0, 0x928($sp) +/* 0DD4D0 7F0A89A0 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4D4 7F0A89A4 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD4D8 7F0A89A8 27A60060 */ addiu $a2, $sp, 0x60 +/* 0DD4DC 7F0A89AC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD4E0 7F0A89B0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD4E4 7F0A89B4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD4E8 7F0A89B8 AFA00014 */ sw $zero, 0x14($sp) +/* 0DD4EC 7F0A89BC 3C0F8004 */ lui $t7, %hi(D_800409C0) +/* 0DD4F0 7F0A89C0 8DEF09C0 */ lw $t7, %lo(D_800409C0)($t7) +/* 0DD4F4 7F0A89C4 3C188005 */ lui $t8, %hi(j_text_trigger) +/* 0DD4F8 7F0A89C8 27A40050 */ addiu $a0, $sp, 0x50 +/* 0DD4FC 7F0A89CC 11E0004B */ beqz $t7, .L7F0A8AFC +/* 0DD500 7F0A89D0 27A50054 */ addiu $a1, $sp, 0x54 +/* 0DD504 7F0A89D4 8F1884D0 */ lw $t8, %lo(j_text_trigger)($t8) +/* 0DD508 7F0A89D8 8FA6004C */ lw $a2, 0x4c($sp) +/* 0DD50C 7F0A89DC 8FA70058 */ lw $a3, 0x58($sp) +/* 0DD510 7F0A89E0 13000003 */ beqz $t8, .L7F0A89F0 +/* 0DD514 7F0A89E4 2402000C */ li $v0, 12 +/* 0DD518 7F0A89E8 10000001 */ b .L7F0A89F0 +/* 0DD51C 7F0A89EC 2402000E */ li $v0, 14 +.L7F0A89F0: +/* 0DD520 7F0A89F0 AFB00010 */ sw $s0, 0x10($sp) +/* 0DD524 7F0A89F4 0FC2BA63 */ jal sub_GAME_7F0AE98C +/* 0DD528 7F0A89F8 AFA20014 */ sw $v0, 0x14($sp) +/* 0DD52C 7F0A89FC 3C038005 */ lui $v1, %hi(j_text_trigger) +/* 0DD530 7F0A8A00 8C6384D0 */ lw $v1, %lo(j_text_trigger)($v1) +/* 0DD534 7F0A8A04 2419004E */ li $t9, 78 +/* 0DD538 7F0A8A08 AFB90870 */ sw $t9, 0x870($sp) +/* 0DD53C 7F0A8A0C 10600003 */ beqz $v1, .L7F0A8A1C +/* 0DD540 7F0A8A10 3C0B8004 */ lui $t3, %hi(D_800409C4) +/* 0DD544 7F0A8A14 10000002 */ b .L7F0A8A20 +/* 0DD548 7F0A8A18 2402000E */ li $v0, 14 +.L7F0A8A1C: +/* 0DD54C 7F0A8A1C 2402000C */ li $v0, 12 +.L7F0A8A20: +/* 0DD550 7F0A8A20 8D6B09C4 */ lw $t3, %lo(D_800409C4)($t3) +/* 0DD554 7F0A8A24 00024840 */ sll $t1, $v0, 1 +/* 0DD558 7F0A8A28 252A008C */ addiu $t2, $t1, 0x8c +/* 0DD55C 7F0A8A2C 15600018 */ bnez $t3, .L7F0A8A90 +/* 0DD560 7F0A8A30 AFAA086C */ sw $t2, 0x86c($sp) +/* 0DD564 7F0A8A34 10600003 */ beqz $v1, .L7F0A8A44 +/* 0DD568 7F0A8A38 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD56C 7F0A8A3C 10000002 */ b .L7F0A8A48 +/* 0DD570 7F0A8A40 2402000E */ li $v0, 14 +.L7F0A8A44: +/* 0DD574 7F0A8A44 2402000C */ li $v0, 12 +.L7F0A8A48: +/* 0DD578 7F0A8A48 8FAC0058 */ lw $t4, 0x58($sp) +/* 0DD57C 7F0A8A4C 8FAE0054 */ lw $t6, 0x54($sp) +/* 0DD580 7F0A8A50 3C0DA0FF */ lui $t5, (0xA0FFA0F0 >> 16) # lui $t5, 0xa0ff +/* 0DD584 7F0A8A54 35ADA0F0 */ ori $t5, (0xA0FFA0F0 & 0xFFFF) # ori $t5, $t5, 0xa0f0 +/* 0DD588 7F0A8A58 240F0064 */ li $t7, 100 +/* 0DD58C 7F0A8A5C AFAF0020 */ sw $t7, 0x20($sp) +/* 0DD590 7F0A8A60 AFAD0018 */ sw $t5, 0x18($sp) +/* 0DD594 7F0A8A64 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD598 7F0A8A68 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD59C 7F0A8A6C 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD5A0 7F0A8A70 AFB00014 */ sw $s0, 0x14($sp) +/* 0DD5A4 7F0A8A74 AFA00024 */ sw $zero, 0x24($sp) +/* 0DD5A8 7F0A8A78 AFA20028 */ sw $v0, 0x28($sp) +/* 0DD5AC 7F0A8A7C AFAC0010 */ sw $t4, 0x10($sp) +/* 0DD5B0 7F0A8A80 0FC2B6AF */ jal en_text_write_stuff +/* 0DD5B4 7F0A8A84 AFAE001C */ sw $t6, 0x1c($sp) +/* 0DD5B8 7F0A8A88 1000001A */ b .L7F0A8AF4 +/* 0DD5BC 7F0A8A8C AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8A90: +/* 0DD5C0 7F0A8A90 10600003 */ beqz $v1, .L7F0A8AA0 +/* 0DD5C4 7F0A8A94 8FA40928 */ lw $a0, 0x928($sp) +/* 0DD5C8 7F0A8A98 10000002 */ b .L7F0A8AA4 +/* 0DD5CC 7F0A8A9C 2402000E */ li $v0, 14 +.L7F0A8AA0: +/* 0DD5D0 7F0A8AA0 2402000C */ li $v0, 12 +.L7F0A8AA4: +/* 0DD5D4 7F0A8AA4 8FAA0054 */ lw $t2, 0x54($sp) +/* 0DD5D8 7F0A8AA8 8FB80058 */ lw $t8, 0x58($sp) +/* 0DD5DC 7F0A8AAC 3C090070 */ lui $t1, (0x007000A0 >> 16) # lui $t1, 0x70 +/* 0DD5E0 7F0A8AB0 352900A0 */ ori $t1, (0x007000A0 & 0xFFFF) # ori $t1, $t1, 0xa0 +/* 0DD5E4 7F0A8AB4 2419FFFF */ li $t9, -1 +/* 0DD5E8 7F0A8AB8 240C0064 */ li $t4, 100 +/* 0DD5EC 7F0A8ABC 254B0001 */ addiu $t3, $t2, 1 +/* 0DD5F0 7F0A8AC0 AFAB0020 */ sw $t3, 0x20($sp) +/* 0DD5F4 7F0A8AC4 AFAC0024 */ sw $t4, 0x24($sp) +/* 0DD5F8 7F0A8AC8 AFB90018 */ sw $t9, 0x18($sp) +/* 0DD5FC 7F0A8ACC AFA9001C */ sw $t1, 0x1c($sp) +/* 0DD600 7F0A8AD0 27A50870 */ addiu $a1, $sp, 0x870 +/* 0DD604 7F0A8AD4 27A6086C */ addiu $a2, $sp, 0x86c +/* 0DD608 7F0A8AD8 8FA7004C */ lw $a3, 0x4c($sp) +/* 0DD60C 7F0A8ADC AFB00014 */ sw $s0, 0x14($sp) +/* 0DD610 7F0A8AE0 AFA00028 */ sw $zero, 0x28($sp) +/* 0DD614 7F0A8AE4 AFA2002C */ sw $v0, 0x2c($sp) +/* 0DD618 7F0A8AE8 0FC2B9BB */ jal jp_text_write_stuff +/* 0DD61C 7F0A8AEC AFB80010 */ sw $t8, 0x10($sp) +/* 0DD620 7F0A8AF0 AFA20928 */ sw $v0, 0x928($sp) +.L7F0A8AF4: +/* 0DD624 7F0A8AF4 0FC2A0DE */ jal sub_GAME_7F0A8378 +/* 0DD628 7F0A8AF8 00000000 */ nop +.L7F0A8AFC: +/* 0DD62C 7F0A8AFC 8FBF003C */ lw $ra, 0x3c($sp) +.L7F0A8B00: +/* 0DD630 7F0A8B00 8FA20928 */ lw $v0, 0x928($sp) +/* 0DD634 7F0A8B04 8FB00038 */ lw $s0, 0x38($sp) +/* 0DD638 7F0A8B08 03E00008 */ jr $ra +/* 0DD63C 7F0A8B0C 27BD0928 */ addiu $sp, $sp, 0x928 +) +#endif + #endif @@ -5560,14 +6040,14 @@ glabel sub_GAME_7F0A8ED0 /* 0DDA00 7F0A8ED0 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0DDA04 7F0A8ED4 AFBF0014 */ sw $ra, 0x14($sp) /* 0DDA08 7F0A8ED8 AFA40020 */ sw $a0, 0x20($sp) -/* 0DDA0C 7F0A8EDC 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DDA0C 7F0A8EDC 0C00303B */ jal joyGetStickX /* 0DDA10 7F0A8EE0 00002025 */ move $a0, $zero /* 0DDA14 7F0A8EE4 8FAE0020 */ lw $t6, 0x20($sp) /* 0DDA18 7F0A8EE8 00002025 */ move $a0, $zero /* 0DDA1C 7F0A8EEC 24050111 */ li $a1, 273 /* 0DDA20 7F0A8EF0 95C30000 */ lhu $v1, ($t6) /* 0DDA24 7F0A8EF4 AFA2001C */ sw $v0, 0x1c($sp) -/* 0DDA28 7F0A8EF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA28 7F0A8EF8 0C0030C3 */ jal joyGetButtons /* 0DDA2C 7F0A8EFC AFA30018 */ sw $v1, 0x18($sp) /* 0DDA30 7F0A8F00 8FA30018 */ lw $v1, 0x18($sp) /* 0DDA34 7F0A8F04 8FA6001C */ lw $a2, 0x1c($sp) @@ -5579,7 +6059,7 @@ glabel sub_GAME_7F0A8ED0 /* 0DDA48 7F0A8F18 00002025 */ move $a0, $zero /* 0DDA4C 7F0A8F1C 24050222 */ li $a1, 546 /* 0DDA50 7F0A8F20 AFA30018 */ sw $v1, 0x18($sp) -/* 0DDA54 7F0A8F24 0C0030C3 */ jal get_controller_buttons_held +/* 0DDA54 7F0A8F24 0C0030C3 */ jal joyGetButtons /* 0DDA58 7F0A8F28 AFA6001C */ sw $a2, 0x1c($sp) /* 0DDA5C 7F0A8F2C 8FA30018 */ lw $v1, 0x18($sp) /* 0DDA60 7F0A8F30 8FA6001C */ lw $a2, 0x1c($sp) @@ -5660,7 +6140,7 @@ glabel sub_GAME_7F0A8FEC /* 0DDB20 7F0A8FF0 AFB00028 */ sw $s0, 0x28($sp) /* 0DDB24 7F0A8FF4 00808025 */ move $s0, $a0 /* 0DDB28 7F0A8FF8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0DDB2C 7F0A8FFC 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDB2C 7F0A8FFC 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0DDB30 7F0A9000 2404000C */ li $a0, 12 /* 0DDB34 7F0A9004 0C002472 */ jal sfx_c_700091C8 /* 0DDB38 7F0A9008 AFA2003C */ sw $v0, 0x3c($sp) @@ -5810,7 +6290,7 @@ glabel sub_GAME_7F0A91C8 /* 0DDCFC 7F0A91CC AFB00028 */ sw $s0, 0x28($sp) /* 0DDD00 7F0A91D0 00808025 */ move $s0, $a0 /* 0DDD04 7F0A91D4 AFBF002C */ sw $ra, 0x2c($sp) -/* 0DDD08 7F0A91D8 0FC2F5B1 */ jal sub_GAME_7F0BD6C4 +/* 0DDD08 7F0A91D8 0FC2F5B1 */ jal dynAllocate7F0BD6C4 /* 0DDD0C 7F0A91DC 2404000C */ li $a0, 12 /* 0DDD10 7F0A91E0 0FC2A4D6 */ jal get_mTrack2Vol /* 0DDD14 7F0A91E4 AFA2003C */ sw $v0, 0x3c($sp) @@ -5920,7 +6400,7 @@ u16 get_mTrack2Vol(void) void set_mTrack2Vol(u16 param_1) { mTrack2Vol = param_1; - musicTrack2Vol(mTrack2Vol); + musicTrack2ApplySeqpVol(mTrack2Vol); } @@ -6129,13 +6609,13 @@ glabel sub_GAME_7F0A9684 /* 0DE1C0 7F0A9690 AFA60020 */ sw $a2, 0x20($sp) /* 0DE1C4 7F0A9694 AFA70024 */ sw $a3, 0x24($sp) /* 0DE1C8 7F0A9698 83A4001B */ lb $a0, 0x1b($sp) -/* 0DE1CC 7F0A969C 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1CC 7F0A969C 0C00303B */ jal joyGetStickX /* 0DE1D0 7F0A96A0 AFA5001C */ sw $a1, 0x1c($sp) /* 0DE1D4 7F0A96A4 2841000A */ slti $at, $v0, 0xa /* 0DE1D8 7F0A96A8 10200007 */ beqz $at, .L7F0A96C8 /* 0DE1DC 7F0A96AC 8FA5001C */ lw $a1, 0x1c($sp) /* 0DE1E0 7F0A96B0 83A4001B */ lb $a0, 0x1b($sp) -/* 0DE1E4 7F0A96B4 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE1E4 7F0A96B4 0C00303B */ jal joyGetStickX /* 0DE1E8 7F0A96B8 AFA5001C */ sw $a1, 0x1c($sp) /* 0DE1EC 7F0A96BC 2841FFF7 */ slti $at, $v0, -9 /* 0DE1F0 7F0A96C0 1020000B */ beqz $at, .L7F0A96F0 @@ -6187,7 +6667,7 @@ glabel sub_GAME_7F0A9684 /* 0DE294 7F0A9764 24010001 */ li $at, 1 /* 0DE298 7F0A9768 55610016 */ bnel $t3, $at, .L7F0A97C4 /* 0DE29C 7F0A976C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0DE2A0 7F0A9770 0C00303B */ jal get_cur_controller_horz_stick_pos +/* 0DE2A0 7F0A9770 0C00303B */ jal joyGetStickX /* 0DE2A4 7F0A9774 83A4001B */ lb $a0, 0x1b($sp) /* 0DE2A8 7F0A9778 44825000 */ mtc1 $v0, $f10 /* 0DE2AC 7F0A977C 3C018006 */ lui $at, %hi(D_80058548) @@ -6252,7 +6732,7 @@ glabel sub_GAME_7F0A97D0 /* 0DE350 7F0A9820 0FC30776 */ jal get_textptr_for_textID /* 0DE354 7F0A9824 96240000 */ lhu $a0, ($s1) /* 0DE358 7F0A9828 27A40074 */ addiu $a0, $sp, 0x74 -/* 0DE35C 7F0A982C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0DE35C 7F0A982C 0C0029FF */ jal strcat /* 0DE360 7F0A9830 00402825 */ move $a1, $v0 /* 0DE364 7F0A9834 3C068004 */ lui $a2, %hi(D_800409D8) /* 0DE368 7F0A9838 8CC609D8 */ lw $a2, %lo(D_800409D8)($a2) @@ -6536,7 +7016,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE740 7F0A9C10 AFA00050 */ sw $zero, 0x50($sp) /* 0DE744 7F0A9C14 00408025 */ move $s0, $v0 /* 0DE748 7F0A9C18 00002025 */ move $a0, $zero -/* 0DE74C 7F0A9C1C 0C0030C3 */ jal get_controller_buttons_held +/* 0DE74C 7F0A9C1C 0C0030C3 */ jal joyGetButtons /* 0DE750 7F0A9C20 24050020 */ li $a1, 32 /* 0DE754 7F0A9C24 1040002C */ beqz $v0, .L7F0A9CD8 /* 0DE758 7F0A9C28 3C0A8008 */ lui $t2, %hi(pPlayer) @@ -6624,7 +7104,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE898 7F0A9D68 00002025 */ move $a0, $zero /* 0DE89C 7F0A9D6C 11400005 */ beqz $t2, .L7F0A9D84 /* 0DE8A0 7F0A9D70 00000000 */ nop -/* 0DE8A4 7F0A9D74 0C0030C3 */ jal get_controller_buttons_held +/* 0DE8A4 7F0A9D74 0C0030C3 */ jal joyGetButtons /* 0DE8A8 7F0A9D78 24050F00 */ li $a1, 3840 /* 0DE8AC 7F0A9D7C 1440001E */ bnez $v0, .L7F0A9DF8 /* 0DE8B0 7F0A9D80 00002025 */ move $a0, $zero @@ -6659,7 +7139,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE920 7F0A9DF0 10000051 */ b .L7F0A9F38 /* 0DE924 7F0A9DF4 00408025 */ move $s0, $v0 .L7F0A9DF8: -/* 0DE928 7F0A9DF8 0C0030C3 */ jal get_controller_buttons_held +/* 0DE928 7F0A9DF8 0C0030C3 */ jal joyGetButtons /* 0DE92C 7F0A9DFC 24050800 */ li $a1, 2048 /* 0DE930 7F0A9E00 10400014 */ beqz $v0, .L7F0A9E54 /* 0DE934 7F0A9E04 00002025 */ move $a0, $zero @@ -6684,7 +7164,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE97C 7F0A9E4C 10000027 */ b .L7F0A9EEC /* 0DE980 7F0A9E50 AFA70058 */ sw $a3, 0x58($sp) .L7F0A9E54: -/* 0DE984 7F0A9E54 0C0030C3 */ jal get_controller_buttons_held +/* 0DE984 7F0A9E54 0C0030C3 */ jal joyGetButtons /* 0DE988 7F0A9E58 24050400 */ li $a1, 1024 /* 0DE98C 7F0A9E5C 10400014 */ beqz $v0, .L7F0A9EB0 /* 0DE990 7F0A9E60 00002025 */ move $a0, $zero @@ -6709,7 +7189,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE9D8 7F0A9EA8 10000010 */ b .L7F0A9EEC /* 0DE9DC 7F0A9EAC AFA70058 */ sw $a3, 0x58($sp) .L7F0A9EB0: -/* 0DE9E0 7F0A9EB0 0C0030C3 */ jal get_controller_buttons_held +/* 0DE9E0 7F0A9EB0 0C0030C3 */ jal joyGetButtons /* 0DE9E4 7F0A9EB4 24050200 */ li $a1, 512 /* 0DE9E8 7F0A9EB8 10400005 */ beqz $v0, .L7F0A9ED0 /* 0DE9EC 7F0A9EBC 00002025 */ move $a0, $zero @@ -6718,7 +7198,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DE9F8 7F0A9EC8 10000008 */ b .L7F0A9EEC /* 0DE9FC 7F0A9ECC AFA20058 */ sw $v0, 0x58($sp) .L7F0A9ED0: -/* 0DEA00 7F0A9ED0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEA00 7F0A9ED0 0C0030C3 */ jal joyGetButtons /* 0DEA04 7F0A9ED4 24050100 */ li $a1, 256 /* 0DEA08 7F0A9ED8 50400005 */ beql $v0, $zero, .L7F0A9EF0 /* 0DEA0C 7F0A9EDC 3C0F0070 */ lui $t7, 0x70 @@ -6782,7 +7262,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEAE8 7F0A9FB8 00002025 */ move $a0, $zero /* 0DEAEC 7F0A9FBC 25F80019 */ addiu $t8, $t7, 0x19 /* 0DEAF0 7F0A9FC0 AFB8004C */ sw $t8, 0x4c($sp) -/* 0DEAF4 7F0A9FC4 0C0030C3 */ jal get_controller_buttons_held +/* 0DEAF4 7F0A9FC4 0C0030C3 */ jal joyGetButtons /* 0DEAF8 7F0A9FC8 24052000 */ li $a1, 8192 /* 0DEAFC 7F0A9FCC 1040002D */ beqz $v0, .L7F0AA084 /* 0DEB00 7F0A9FD0 3C0B8008 */ lui $t3, %hi(pPlayer) @@ -6864,7 +7344,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEC24 7F0AA0F4 00002025 */ move $a0, $zero /* 0DEC28 7F0AA0F8 24050010 */ li $a1, 16 /* 0DEC2C 7F0AA0FC 25F8FFB5 */ addiu $t8, $t7, -0x4b -/* 0DEC30 7F0AA100 0C0030C3 */ jal get_controller_buttons_held +/* 0DEC30 7F0AA100 0C0030C3 */ jal joyGetButtons /* 0DEC34 7F0AA104 AFB8004C */ sw $t8, 0x4c($sp) /* 0DEC38 7F0AA108 1040002E */ beqz $v0, .L7F0AA1C4 /* 0DEC3C 7F0AA10C 3C0C8008 */ lui $t4, %hi(pPlayer) @@ -6956,7 +7436,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DED88 7F0AA258 00002025 */ move $a0, $zero /* 0DED8C 7F0AA25C 11800005 */ beqz $t4, .L7F0AA274 /* 0DED90 7F0AA260 00000000 */ nop -/* 0DED94 7F0AA264 0C0030C3 */ jal get_controller_buttons_held +/* 0DED94 7F0AA264 0C0030C3 */ jal joyGetButtons /* 0DED98 7F0AA268 2405000F */ li $a1, 15 /* 0DED9C 7F0AA26C 1440001F */ bnez $v0, .L7F0AA2EC /* 0DEDA0 7F0AA270 00002025 */ move $a0, $zero @@ -6992,14 +7472,14 @@ glabel sub_GAME_7F0A9AB8 /* 0DEE14 7F0AA2E4 10000076 */ b .L7F0AA4C0 /* 0DEE18 7F0AA2E8 00408025 */ move $s0, $v0 .L7F0AA2EC: -/* 0DEE1C 7F0AA2EC 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE1C 7F0AA2EC 0C0030C3 */ jal joyGetButtons /* 0DEE20 7F0AA2F0 2405000F */ li $a1, 15 /* 0DEE24 7F0AA2F4 244AFFFF */ addiu $t2, $v0, -1 /* 0DEE28 7F0AA2F8 004A5824 */ and $t3, $v0, $t2 /* 0DEE2C 7F0AA2FC 15600054 */ bnez $t3, .L7F0AA450 /* 0DEE30 7F0AA300 3C088008 */ lui $t0, %hi(pPlayer) /* 0DEE34 7F0AA304 00002025 */ move $a0, $zero -/* 0DEE38 7F0AA308 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE38 7F0AA308 0C0030C3 */ jal joyGetButtons /* 0DEE3C 7F0AA30C 24050008 */ li $a1, 8 /* 0DEE40 7F0AA310 10400014 */ beqz $v0, .L7F0AA364 /* 0DEE44 7F0AA314 00002025 */ move $a0, $zero @@ -7024,7 +7504,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEE8C 7F0AA35C 10000027 */ b .L7F0AA3FC /* 0DEE90 7F0AA360 AFA7005C */ sw $a3, 0x5c($sp) .L7F0AA364: -/* 0DEE94 7F0AA364 0C0030C3 */ jal get_controller_buttons_held +/* 0DEE94 7F0AA364 0C0030C3 */ jal joyGetButtons /* 0DEE98 7F0AA368 24050004 */ li $a1, 4 /* 0DEE9C 7F0AA36C 10400014 */ beqz $v0, .L7F0AA3C0 /* 0DEEA0 7F0AA370 00002025 */ move $a0, $zero @@ -7049,7 +7529,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEEE8 7F0AA3B8 10000010 */ b .L7F0AA3FC /* 0DEEEC 7F0AA3BC AFA7005C */ sw $a3, 0x5c($sp) .L7F0AA3C0: -/* 0DEEF0 7F0AA3C0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEEF0 7F0AA3C0 0C0030C3 */ jal joyGetButtons /* 0DEEF4 7F0AA3C4 24050002 */ li $a1, 2 /* 0DEEF8 7F0AA3C8 10400005 */ beqz $v0, .L7F0AA3E0 /* 0DEEFC 7F0AA3CC 00002025 */ move $a0, $zero @@ -7058,7 +7538,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEF08 7F0AA3D8 10000008 */ b .L7F0AA3FC /* 0DEF0C 7F0AA3DC AFA2005C */ sw $v0, 0x5c($sp) .L7F0AA3E0: -/* 0DEF10 7F0AA3E0 0C0030C3 */ jal get_controller_buttons_held +/* 0DEF10 7F0AA3E0 0C0030C3 */ jal joyGetButtons /* 0DEF14 7F0AA3E4 24050001 */ li $a1, 1 /* 0DEF18 7F0AA3E8 50400005 */ beql $v0, $zero, .L7F0AA400 /* 0DEF1C 7F0AA3EC 3C0C0070 */ lui $t4, 0x70 @@ -7122,7 +7602,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DEFF4 7F0AA4C4 00002025 */ move $a0, $zero /* 0DEFF8 7F0AA4C8 24054000 */ li $a1, 16384 /* 0DEFFC 7F0AA4CC 258D0019 */ addiu $t5, $t4, 0x19 -/* 0DF000 7F0AA4D0 0C0030C3 */ jal get_controller_buttons_held +/* 0DF000 7F0AA4D0 0C0030C3 */ jal joyGetButtons /* 0DF004 7F0AA4D4 AFAD004C */ sw $t5, 0x4c($sp) /* 0DF008 7F0AA4D8 10400020 */ beqz $v0, .L7F0AA55C /* 0DF00C 7F0AA4DC 3C0C8008 */ lui $t4, %hi(pPlayer) @@ -7191,7 +7671,7 @@ glabel sub_GAME_7F0A9AB8 /* 0DF100 7F0AA5D0 00002025 */ move $a0, $zero /* 0DF104 7F0AA5D4 34058000 */ li $a1, 32768 /* 0DF108 7F0AA5D8 252A0019 */ addiu $t2, $t1, 0x19 -/* 0DF10C 7F0AA5DC 0C0030C3 */ jal get_controller_buttons_held +/* 0DF10C 7F0AA5DC 0C0030C3 */ jal joyGetButtons /* 0DF110 7F0AA5E0 AFAA004C */ sw $t2, 0x4c($sp) /* 0DF114 7F0AA5E4 10400020 */ beqz $v0, .L7F0AA668 /* 0DF118 7F0AA5E8 3C098008 */ lui $t1, %hi(pPlayer) @@ -7322,106 +7802,106 @@ glabel sub_GAME_7F0A9AB8 #endif -s32 display_text_buttons_dual_control(s32 param_1) +Gfx *display_text_buttons_dual_control(Gfx *gdl) { s32 textptr_aux; - param_1 = microcode_constructor(param_1); + gdl = microcode_constructor(gdl); - if (get_controller_buttons_held(0, A_BUTTON)) + if (joyGetButtons(0, A_BUTTON)) { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0xA7, get_textptr_for_textID(0xAC03), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0xA7, get_textptr_for_textID(TEXT(LOPTIONS, 0x03)), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); //weapon } else { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0xA7, get_textptr_for_textID(0xAC03), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0xA7, get_textptr_for_textID(TEXT(LOPTIONS, 0x03)), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); //weapon } - if (get_controller_buttons_held(0, B_BUTTON)) + if (joyGetButtons(0, B_BUTTON)) { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0x95, get_textptr_for_textID(0xAC02), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0x95, get_textptr_for_textID(TEXT(LOPTIONS, 0x02)), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); //action } else { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0x95, get_textptr_for_textID(0xAC02), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0x95, get_textptr_for_textID(TEXT(LOPTIONS, 0x02)), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); //action } if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) { - textptr_aux = get_textptr_for_textID(0xAC00); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x00)); //fire } else { - textptr_aux = get_textptr_for_textID(0xAC01); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x01)); //aim } - if (get_controller_buttons_held(0, Z_TRIG)) + if (joyGetButtons(0, Z_TRIG)) { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0xB9, textptr_aux, -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0xB9, textptr_aux, -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0); } else { - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0xB9, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0xB9, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); } if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) { - textptr_aux = get_textptr_for_textID(0xAC05); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x05)); //move } else { - textptr_aux = get_textptr_for_textID(0xAC06); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x06)); //look } - param_1 = sub_GAME_7F0A9398(param_1, 0x5A, 0xCB, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); + gdl = sub_GAME_7F0A9398(gdl, 0x5A, 0xCB, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 0); - if (get_controller_buttons_held(1, A_BUTTON)) + if (joyGetButtons(1, A_BUTTON)) { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0xA7, get_textptr_for_textID(0xAC03), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0xA7, get_textptr_for_textID(TEXT(LOPTIONS, 0x03)), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); //weapon } else { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0xA7, get_textptr_for_textID(0xAC03), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0xA7, get_textptr_for_textID(TEXT(LOPTIONS, 0x03)), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); //weapon } - if (get_controller_buttons_held(1, B_BUTTON)) + if (joyGetButtons(1, B_BUTTON)) { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0x95, get_textptr_for_textID(0xAC02), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0x95, get_textptr_for_textID(TEXT(LOPTIONS, 0x02)), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); //action } else { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0x95, get_textptr_for_textID(0xAC02), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0x95, get_textptr_for_textID(TEXT(LOPTIONS, 0x02)), 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); //action } if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 5)) { - textptr_aux = get_textptr_for_textID(0xAC01); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x01)); //aim } else { - textptr_aux = get_textptr_for_textID(0xAC00); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x00)); //fire } - if (get_controller_buttons_held(1, Z_TRIG)) + if (joyGetButtons(1, Z_TRIG)) { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0xB9, textptr_aux, -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0xB9, textptr_aux, -1, 1, 0x7000A0, 0, 0, 0x3000B0, 1); } else { - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0xB9, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0xB9, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); } if ((pPlayer->cur_player_control_type_0 == 4) || (pPlayer->cur_player_control_type_0 == 6)) { - textptr_aux = get_textptr_for_textID(0xAC06); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x06)); //look } else { - textptr_aux = get_textptr_for_textID(0xAC05); + textptr_aux = get_textptr_for_textID(TEXT(LOPTIONS, 0x05)); //move } - param_1 = sub_GAME_7F0A9398(param_1, 0xE6, 0xCB, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); - return param_1; + gdl = sub_GAME_7F0A9398(gdl, 0xE6, 0xCB, textptr_aux, 0xAA00B0, 0, -1, 0, 0, 0x3000B0, 1); + return gdl; } @@ -7454,7 +7934,7 @@ glabel sub_GAME_7F0AADC0 /* 0DF8F0 7F0AADC0 27BDFAC0 */ addiu $sp, $sp, -0x540 /* 0DF8F4 7F0AADC4 AFBF0034 */ sw $ra, 0x34($sp) /* 0DF8F8 7F0AADC8 AFB00030 */ sw $s0, 0x30($sp) -/* 0DF8FC 7F0AADCC 0FC2F5B8 */ jal sub_GAME_7F0BD6E0 +/* 0DF8FC 7F0AADCC 0FC2F5B8 */ jal dynAllocateMatrix /* 0DF900 7F0AADD0 00808025 */ move $s0, $a0 /* 0DF904 7F0AADD4 3C0F8004 */ lui $t7, %hi(D_80040B5C) /* 0DF908 7F0AADD8 AFA2053C */ sw $v0, 0x53c($sp) @@ -7558,7 +8038,7 @@ glabel sub_GAME_7F0AADC0 /* 0DFA84 7F0AAF54 24010001 */ li $at, 1 /* 0DFA88 7F0AAF58 15210012 */ bne $t1, $at, .L7F0AAFA4 /* 0DFA8C 7F0AAF5C 00000000 */ nop -/* 0DFA90 7F0AAF60 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFA90 7F0AAF60 0C00307F */ jal joyGetStickY /* 0DFA94 7F0AAF64 00002025 */ move $a0, $zero /* 0DFA98 7F0AAF68 44824000 */ mtc1 $v0, $f8 /* 0DFA9C 7F0AAF6C 3C018004 */ lui $at, %hi(D_80040B20) @@ -7758,7 +8238,7 @@ glabel sub_GAME_7F0AADC0 /* 0DFD8C 7F0AB25C 24010001 */ li $at, 1 /* 0DFD90 7F0AB260 15E10012 */ bne $t7, $at, .L7F0AB2AC /* 0DFD94 7F0AB264 00000000 */ nop -/* 0DFD98 7F0AB268 0C00307F */ jal get_cur_controller_vert_stick_pos +/* 0DFD98 7F0AB268 0C00307F */ jal joyGetStickY /* 0DFD9C 7F0AB26C 24040001 */ li $a0, 1 /* 0DFDA0 7F0AB270 44824000 */ mtc1 $v0, $f8 /* 0DFDA4 7F0AB274 3C018004 */ lui $at, %hi(D_80040B30) @@ -7928,7 +8408,7 @@ glabel sub_GAME_7F0AADC0 /* 0E04F0 7F0AB980 27BDFAC0 */ addiu $sp, $sp, -0x540 /* 0E04F4 7F0AB984 AFBF0034 */ sw $ra, 0x34($sp) /* 0E04F8 7F0AB988 AFB00030 */ sw $s0, 0x30($sp) -/* 0E04FC 7F0AB98C 0FC2F8A4 */ jal sub_GAME_7F0BD6E0 +/* 0E04FC 7F0AB98C 0FC2F8A4 */ jal dynAllocateMatrix /* 0E0500 7F0AB990 00808025 */ move $s0, $a0 /* 0E0504 7F0AB994 3C0F8004 */ lui $t7, %hi(D_80040B5C) # $t7, 0x8004 /* 0E0508 7F0AB998 AFA2053C */ sw $v0, 0x53c($sp) @@ -8029,7 +8509,7 @@ glabel sub_GAME_7F0AADC0 /* 0E0678 7F0ABB08 24010001 */ li $at, 1 /* 0E067C 7F0ABB0C 15E10012 */ bne $t7, $at, .Ljp7F0ABB58 /* 0E0680 7F0ABB10 00000000 */ nop -/* 0E0684 7F0ABB14 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0684 7F0ABB14 0C003098 */ jal joyGetStickY /* 0E0688 7F0ABB18 00002025 */ move $a0, $zero /* 0E068C 7F0ABB1C 44823000 */ mtc1 $v0, $f6 /* 0E0690 7F0ABB20 3C018004 */ lui $at, %hi(D_80040B20) # $at, 0x8004 @@ -8226,7 +8706,7 @@ glabel sub_GAME_7F0AADC0 /* 0E0974 7F0ABE04 24010001 */ li $at, 1 /* 0E0978 7F0ABE08 15A10012 */ bne $t5, $at, .Ljp7F0ABE54 /* 0E097C 7F0ABE0C 00000000 */ nop -/* 0E0980 7F0ABE10 0C003098 */ jal get_cur_controller_vert_stick_pos +/* 0E0980 7F0ABE10 0C003098 */ jal joyGetStickY /* 0E0984 7F0ABE14 24040001 */ li $a0, 1 /* 0E0988 7F0ABE18 44822000 */ mtc1 $v0, $f4 /* 0E098C 7F0ABE1C 3C018004 */ lui $at, %hi(D_80040B30) # $at, 0x8004 @@ -8372,6 +8852,480 @@ glabel sub_GAME_7F0AADC0 ) #endif +#ifdef VERSION_EU +GLOBAL_ASM( +.late_rodata +glabel D_80058550 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058554 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058558 +.word 0x43f78000 /*495.0*/ +glabel D_8005855C +.word 0x453b8000 /*3000.0*/ +glabel D_80058560 +.word 0x40c90fdb /*6.2831855*/ +glabel D_80058564 +.word 0x3f490fdb /*0.78539819*/ +glabel D_80058568 +.word 0xc3fc8000 /*-505.0*/ +glabel D_8005856C +.word 0x453b8000 /*3000.0*/ +.text +glabel sub_GAME_7F0AADC0 +/* 0DF8F0 7F0AADC0 27BDFAC0 */ addiu $sp, $sp, -0x540 +/* 0DF8F4 7F0AADC4 AFBF0034 */ sw $ra, 0x34($sp) +/* 0DF8F8 7F0AADC8 AFB00030 */ sw $s0, 0x30($sp) +/* 0DF8FC 7F0AADCC 0FC2F5B8 */ jal dynAllocateMatrix +/* 0DF900 7F0AADD0 00808025 */ move $s0, $a0 +/* 0DF904 7F0AADD4 3C0F8004 */ lui $t7, %hi(D_80040B5C) +/* 0DF908 7F0AADD8 AFA2053C */ sw $v0, 0x53c($sp) +/* 0DF90C 7F0AADDC 25EF0B5C */ addiu $t7, %lo(D_80040B5C) # addiu $t7, $t7, 0xb5c +/* 0DF910 7F0AADE0 8DE10000 */ lw $at, ($t7) +/* 0DF914 7F0AADE4 27AE0370 */ addiu $t6, $sp, 0x370 +/* 0DF918 7F0AADE8 8DE80004 */ lw $t0, 4($t7) +/* 0DF91C 7F0AADEC ADC10000 */ sw $at, ($t6) +/* 0DF920 7F0AADF0 8DE10008 */ lw $at, 8($t7) +/* 0DF924 7F0AADF4 3C0B8004 */ lui $t3, %hi(D_80040B68) +/* 0DF928 7F0AADF8 ADC80004 */ sw $t0, 4($t6) +/* 0DF92C 7F0AADFC ADC10008 */ sw $at, 8($t6) +/* 0DF930 7F0AAE00 24090001 */ li $t1, 1 +/* 0DF934 7F0AAE04 256B0B68 */ addiu $t3, %lo(D_80040B68) # addiu $t3, $t3, 0xb68 +/* 0DF938 7F0AAE08 A3A002E3 */ sb $zero, 0x2e3($sp) +/* 0DF93C 7F0AAE0C A3A902E2 */ sb $t1, 0x2e2($sp) +/* 0DF940 7F0AAE10 257900D8 */ addiu $t9, $t3, 0xd8 +/* 0DF944 7F0AAE14 27AA0204 */ addiu $t2, $sp, 0x204 +.L7F0AAE18: +/* 0DF948 7F0AAE18 8D610000 */ lw $at, ($t3) +/* 0DF94C 7F0AAE1C 256B000C */ addiu $t3, $t3, 0xc +/* 0DF950 7F0AAE20 254A000C */ addiu $t2, $t2, 0xc +/* 0DF954 7F0AAE24 AD41FFF4 */ sw $at, -0xc($t2) +/* 0DF958 7F0AAE28 8D61FFF8 */ lw $at, -8($t3) +/* 0DF95C 7F0AAE2C AD41FFF8 */ sw $at, -8($t2) +/* 0DF960 7F0AAE30 8D61FFFC */ lw $at, -4($t3) +/* 0DF964 7F0AAE34 1579FFF8 */ bne $t3, $t9, .L7F0AAE18 +/* 0DF968 7F0AAE38 AD41FFFC */ sw $at, -4($t2) +/* 0DF96C 7F0AAE3C 8D610000 */ lw $at, ($t3) +/* 0DF970 7F0AAE40 3C0E8004 */ lui $t6, %hi(D_80040BB4+0x90) +/* 0DF974 7F0AAE44 25CE0C44 */ addiu $t6, %lo(D_80040BB4+0x90) # addiu $t6, $t6, 0xc44 +/* 0DF978 7F0AAE48 25C900D8 */ addiu $t1, $t6, 0xd8 +/* 0DF97C 7F0AAE4C 27B80128 */ addiu $t8, $sp, 0x128 +/* 0DF980 7F0AAE50 AD410000 */ sw $at, ($t2) +.L7F0AAE54: +/* 0DF984 7F0AAE54 8DC10000 */ lw $at, ($t6) +/* 0DF988 7F0AAE58 25CE000C */ addiu $t6, $t6, 0xc +/* 0DF98C 7F0AAE5C 2718000C */ addiu $t8, $t8, 0xc +/* 0DF990 7F0AAE60 AF01FFF4 */ sw $at, -0xc($t8) +/* 0DF994 7F0AAE64 8DC1FFF8 */ lw $at, -8($t6) +/* 0DF998 7F0AAE68 AF01FFF8 */ sw $at, -8($t8) +/* 0DF99C 7F0AAE6C 8DC1FFFC */ lw $at, -4($t6) +/* 0DF9A0 7F0AAE70 15C9FFF8 */ bne $t6, $t1, .L7F0AAE54 +/* 0DF9A4 7F0AAE74 AF01FFFC */ sw $at, -4($t8) +/* 0DF9A8 7F0AAE78 8DC10000 */ lw $at, ($t6) +/* 0DF9AC 7F0AAE7C 3C0C8004 */ lui $t4, %hi(D_80040D20) +/* 0DF9B0 7F0AAE80 258C0D20 */ addiu $t4, %lo(D_80040D20) # addiu $t4, $t4, 0xd20 +/* 0DF9B4 7F0AAE84 258A00D8 */ addiu $t2, $t4, 0xd8 +/* 0DF9B8 7F0AAE88 27AD004C */ addiu $t5, $sp, 0x4c +/* 0DF9BC 7F0AAE8C AF010000 */ sw $at, ($t8) +.L7F0AAE90: +/* 0DF9C0 7F0AAE90 8D810000 */ lw $at, ($t4) +/* 0DF9C4 7F0AAE94 258C000C */ addiu $t4, $t4, 0xc +/* 0DF9C8 7F0AAE98 25AD000C */ addiu $t5, $t5, 0xc +/* 0DF9CC 7F0AAE9C ADA1FFF4 */ sw $at, -0xc($t5) +/* 0DF9D0 7F0AAEA0 8D81FFF8 */ lw $at, -8($t4) +/* 0DF9D4 7F0AAEA4 ADA1FFF8 */ sw $at, -8($t5) +/* 0DF9D8 7F0AAEA8 8D81FFFC */ lw $at, -4($t4) +/* 0DF9DC 7F0AAEAC 158AFFF8 */ bne $t4, $t2, .L7F0AAE90 +/* 0DF9E0 7F0AAEB0 ADA1FFFC */ sw $at, -4($t5) +/* 0DF9E4 7F0AAEB4 8D810000 */ lw $at, ($t4) +/* 0DF9E8 7F0AAEB8 3C058004 */ lui $a1, %hi(D_80040B2C) +/* 0DF9EC 7F0AAEBC 3C068004 */ lui $a2, %hi(D_80040B28) +/* 0DF9F0 7F0AAEC0 3C078004 */ lui $a3, %hi(D_80040B24) +/* 0DF9F4 7F0AAEC4 24E70B24 */ addiu $a3, %lo(D_80040B24) # addiu $a3, $a3, 0xb24 +/* 0DF9F8 7F0AAEC8 24C60B28 */ addiu $a2, %lo(D_80040B28) # addiu $a2, $a2, 0xb28 +/* 0DF9FC 7F0AAECC 24A50B2C */ addiu $a1, %lo(D_80040B2C) # addiu $a1, $a1, 0xb2c +/* 0DFA00 7F0AAED0 00002025 */ move $a0, $zero +/* 0DFA04 7F0AAED4 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFA08 7F0AAED8 ADA10000 */ sw $at, ($t5) +/* 0DFA0C 7F0AAEDC 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFA10 7F0AAEE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFA14 7F0AAEE4 3C088005 */ lui $t0, %hi(D_80048498) +/* 0DFA18 7F0AAEE8 8D088498 */ lw $t0, %lo(D_80048498)($t0) +/* 0DFA1C 7F0AAEEC 3C018004 */ lui $at, %hi(D_80040B28) +/* 0DFA20 7F0AAEF0 C4240B28 */ lwc1 $f4, %lo(D_80040B28)($at) +/* 0DFA24 7F0AAEF4 44883000 */ mtc1 $t0, $f6 +/* 0DFA28 7F0AAEF8 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFA2C 7F0AAEFC 44818000 */ mtc1 $at, $f16 +/* 0DFA30 7F0AAF00 46803220 */ cvt.s.w $f8, $f6 +/* 0DFA34 7F0AAF04 3C028004 */ lui $v0, %hi(D_80040B24) +/* 0DFA38 7F0AAF08 24420B24 */ addiu $v0, %lo(D_80040B24) # addiu $v0, $v0, 0xb24 +/* 0DFA3C 7F0AAF0C C4460000 */ lwc1 $f6, ($v0) +/* 0DFA40 7F0AAF10 46082282 */ mul.s $f10, $f4, $f8 +/* 0DFA44 7F0AAF14 00000000 */ nop +/* 0DFA48 7F0AAF18 46105482 */ mul.s $f18, $f10, $f16 +/* 0DFA4C 7F0AAF1C 46123100 */ add.s $f4, $f6, $f18 +/* 0DFA50 7F0AAF20 E4440000 */ swc1 $f4, ($v0) +/* 0DFA54 7F0AAF24 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFA58 7F0AAF28 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFA5C 7F0AAF2C 3C018004 */ lui $at, %hi(D_80040B24) +/* 0DFA60 7F0AAF30 E4200B24 */ swc1 $f0, %lo(D_80040B24)($at) +/* 0DFA64 7F0AAF34 C42C0B24 */ lwc1 $f12, %lo(D_80040B24)($at) +/* 0DFA68 7F0AAF38 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFA6C 7F0AAF3C 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFA70 7F0AAF40 3C0F8004 */ lui $t7, %hi(watch_soundrelated_maybe) +/* 0DFA74 7F0AAF44 8DEF09A8 */ lw $t7, %lo(watch_soundrelated_maybe)($t7) +/* 0DFA78 7F0AAF48 11E00016 */ beqz $t7, .L7F0AAFA4 +/* 0DFA7C 7F0AAF4C 3C098004 */ lui $t1, %hi(controller_options_index) +/* 0DFA80 7F0AAF50 8D290998 */ lw $t1, %lo(controller_options_index)($t1) +/* 0DFA84 7F0AAF54 24010001 */ li $at, 1 +/* 0DFA88 7F0AAF58 15210012 */ bne $t1, $at, .L7F0AAFA4 +/* 0DFA8C 7F0AAF5C 00000000 */ nop +/* 0DFA90 7F0AAF60 0C00307F */ jal joyGetStickY +/* 0DFA94 7F0AAF64 00002025 */ move $a0, $zero +/* 0DFA98 7F0AAF68 44824000 */ mtc1 $v0, $f8 +/* 0DFA9C 7F0AAF6C 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAA0 7F0AAF70 C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAA4 7F0AAF74 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFAA8 7F0AAF78 3C018006 */ lui $at, %hi(D_80058550) +/* 0DFAAC 7F0AAF7C C4308550 */ lwc1 $f16, %lo(D_80058550)($at) +/* 0DFAB0 7F0AAF80 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFAB4 7F0AAF84 44819000 */ mtc1 $at, $f18 +/* 0DFAB8 7F0AAF88 3C064080 */ lui $a2, 0x4080 +/* 0DFABC 7F0AAF8C 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFAC0 7F0AAF90 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAC4 7F0AAF94 46123383 */ div.s $f14, $f6, $f18 +/* 0DFAC8 7F0AAF98 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFACC 7F0AAF9C 10000008 */ b .L7F0AAFC0 +/* 0DFAD0 7F0AAFA0 E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFA4: +/* 0DFAD4 7F0AAFA4 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAD8 7F0AAFA8 44807000 */ mtc1 $zero, $f14 +/* 0DFADC 7F0AAFAC C42C0B20 */ lwc1 $f12, %lo(D_80040B20)($at) +/* 0DFAE0 7F0AAFB0 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFAE4 7F0AAFB4 3C064080 */ lui $a2, 0x4080 +/* 0DFAE8 7F0AAFB8 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAEC 7F0AAFBC E4200B20 */ swc1 $f0, %lo(D_80040B20)($at) +.L7F0AAFC0: +/* 0DFAF0 7F0AAFC0 3C018004 */ lui $at, %hi(D_80040B20) +/* 0DFAF4 7F0AAFC4 C4240B20 */ lwc1 $f4, %lo(D_80040B20)($at) +/* 0DFAF8 7F0AAFC8 3C018006 */ lui $at, %hi(D_80058554) +/* 0DFAFC 7F0AAFCC C42A8554 */ lwc1 $f10, %lo(D_80058554)($at) +/* 0DFB00 7F0AAFD0 46002207 */ neg.s $f8, $f4 +/* 0DFB04 7F0AAFD4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB08 7F0AAFD8 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFB0C 7F0AAFDC 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFB10 7F0AAFE0 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFB14 7F0AAFE4 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFB18 7F0AAFE8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB1C 7F0AAFEC 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFB20 7F0AAFF0 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB24 7F0AAFF4 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFB28 7F0AAFF8 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB2C 7F0AAFFC 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFB30 7F0AB000 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFB34 7F0AB004 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFB38 7F0AB008 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFB3C 7F0AB00C 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFB40 7F0AB010 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFB44 7F0AB014 0FC16032 */ jal matrix_4x4_multiply +/* 0DFB48 7F0AB018 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFB4C 7F0AB01C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFB50 7F0AB020 00000000 */ nop +/* 0DFB54 7F0AB024 10400018 */ beqz $v0, .L7F0AB088 +/* 0DFB58 7F0AB028 3C01C0A0 */ lui $at, 0xc0a0 +/* 0DFB5C 7F0AB02C 3C018006 */ lui $at, %hi(D_80058558) +/* 0DFB60 7F0AB030 C4208558 */ lwc1 $f0, %lo(D_80058558)($at) +/* 0DFB64 7F0AB034 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFB68 7F0AB038 44816000 */ mtc1 $at, $f12 +/* 0DFB6C 7F0AB03C 44801000 */ mtc1 $zero, $f2 +/* 0DFB70 7F0AB040 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFB74 7F0AB044 44818000 */ mtc1 $at, $f16 +/* 0DFB78 7F0AB048 27AE0128 */ addiu $t6, $sp, 0x128 +/* 0DFB7C 7F0AB04C 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFB80 7F0AB050 44050000 */ mfc1 $a1, $f0 +/* 0DFB84 7F0AB054 44076000 */ mfc1 $a3, $f12 +/* 0DFB88 7F0AB058 AFAE02E8 */ sw $t6, 0x2e8($sp) +/* 0DFB8C 7F0AB05C 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFB90 7F0AB060 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFB94 7F0AB064 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFB98 7F0AB068 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 0DFB9C 7F0AB06C E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFBA0 7F0AB070 E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFBA4 7F0AB074 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFBA8 7F0AB078 0FC165A5 */ jal matrix_4x4_7F059694 +/* 0DFBAC 7F0AB07C E7B00024 */ swc1 $f16, 0x24($sp) +/* 0DFBB0 7F0AB080 10000017 */ b .L7F0AB0E0 +/* 0DFBB4 7F0AB084 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB088: +/* 0DFBB8 7F0AB088 44810000 */ mtc1 $at, $f0 +/* 0DFBBC 7F0AB08C 3C01C328 */ li $at, 0xC3280000 # -168.000000 +/* 0DFBC0 7F0AB090 44811000 */ mtc1 $at, $f2 +/* 0DFBC4 7F0AB094 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFBC8 7F0AB098 44814000 */ mtc1 $at, $f8 +/* 0DFBCC 7F0AB09C 44803000 */ mtc1 $zero, $f6 +/* 0DFBD0 7F0AB0A0 44809000 */ mtc1 $zero, $f18 +/* 0DFBD4 7F0AB0A4 44802000 */ mtc1 $zero, $f4 +/* 0DFBD8 7F0AB0A8 27B80204 */ addiu $t8, $sp, 0x204 +/* 0DFBDC 7F0AB0AC 44050000 */ mfc1 $a1, $f0 +/* 0DFBE0 7F0AB0B0 44071000 */ mfc1 $a3, $f2 +/* 0DFBE4 7F0AB0B4 AFB802E8 */ sw $t8, 0x2e8($sp) +/* 0DFBE8 7F0AB0B8 27A4032C */ addiu $a0, $sp, 0x32c +/* 0DFBEC 7F0AB0BC 3C0644FA */ lui $a2, 0x44fa +/* 0DFBF0 7F0AB0C0 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFBF4 7F0AB0C4 E7A20018 */ swc1 $f2, 0x18($sp) +/* 0DFBF8 7F0AB0C8 E7A80024 */ swc1 $f8, 0x24($sp) +/* 0DFBFC 7F0AB0CC E7A60014 */ swc1 $f6, 0x14($sp) +/* 0DFC00 7F0AB0D0 E7B2001C */ swc1 $f18, 0x1c($sp) +/* 0DFC04 7F0AB0D4 0FC165A5 */ jal matrix_4x4_7F059694 +/* 0DFC08 7F0AB0D8 E7A40020 */ swc1 $f4, 0x20($sp) +/* 0DFC0C 7F0AB0DC 27A4032C */ addiu $a0, $sp, 0x32c +.L7F0AB0E0: +/* 0DFC10 7F0AB0E0 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFC14 7F0AB0E4 0FC16032 */ jal matrix_4x4_multiply +/* 0DFC18 7F0AB0E8 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFC1C 7F0AB0EC 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFC20 7F0AB0F0 44815000 */ mtc1 $at, $f10 +/* 0DFC24 7F0AB0F4 3C018006 */ lui $at, %hi(D_8005855C) +/* 0DFC28 7F0AB0F8 C430855C */ lwc1 $f16, %lo(D_8005855C)($at) +/* 0DFC2C 7F0AB0FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFC30 7F0AB100 44813000 */ mtc1 $at, $f6 +/* 0DFC34 7F0AB104 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFC38 7F0AB108 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFC3C 7F0AB10C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC40 7F0AB110 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFC44 7F0AB114 3C06424A */ lui $a2, 0x424a +/* 0DFC48 7F0AB118 E7AA0010 */ swc1 $f10, 0x10($sp) +/* 0DFC4C 7F0AB11C E7B00014 */ swc1 $f16, 0x14($sp) +/* 0DFC50 7F0AB120 0C003FAC */ jal guPerspective +/* 0DFC54 7F0AB124 E7A60018 */ swc1 $f6, 0x18($sp) +/* 0DFC58 7F0AB128 3C0B0103 */ lui $t3, (0x01030040 >> 16) # lui $t3, 0x103 +/* 0DFC5C 7F0AB12C 356B0040 */ ori $t3, (0x01030040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 0DFC60 7F0AB130 02001825 */ move $v1, $s0 +/* 0DFC64 7F0AB134 AC6B0000 */ sw $t3, ($v1) +/* 0DFC68 7F0AB138 AFA30048 */ sw $v1, 0x48($sp) +/* 0DFC6C 7F0AB13C 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFC70 7F0AB140 0C003A2C */ jal osVirtualToPhysical +/* 0DFC74 7F0AB144 26100008 */ addiu $s0, $s0, 8 +/* 0DFC78 7F0AB148 8FA30048 */ lw $v1, 0x48($sp) +/* 0DFC7C 7F0AB14C 02002025 */ move $a0, $s0 +/* 0DFC80 7F0AB150 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFC84 7F0AB154 AC620004 */ sw $v0, 4($v1) +/* 0DFC88 7F0AB158 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFC8C 7F0AB15C 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFC90 7F0AB160 00408025 */ move $s0, $v0 +/* 0DFC94 7F0AB164 02002025 */ move $a0, $s0 +/* 0DFC98 7F0AB168 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFC9C 7F0AB16C 1020000C */ beqz $at, .L7F0AB1A0 +/* 0DFCA0 7F0AB170 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCA4 7F0AB174 8FB902E8 */ lw $t9, 0x2e8($sp) +/* 0DFCA8 7F0AB178 27AA02E3 */ addiu $t2, $sp, 0x2e3 +/* 0DFCAC 7F0AB17C AFAA0014 */ sw $t2, 0x14($sp) +/* 0DFCB0 7F0AB180 00402025 */ move $a0, $v0 +/* 0DFCB4 7F0AB184 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFCB8 7F0AB188 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFCBC 7F0AB18C 24070001 */ li $a3, 1 +/* 0DFCC0 7F0AB190 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFCC4 7F0AB194 AFB90010 */ sw $t9, 0x10($sp) +/* 0DFCC8 7F0AB198 10000007 */ b .L7F0AB1B8 +/* 0DFCCC 7F0AB19C 00408025 */ move $s0, $v0 +.L7F0AB1A0: +/* 0DFCD0 7F0AB1A0 27AC02E3 */ addiu $t4, $sp, 0x2e3 +/* 0DFCD4 7F0AB1A4 AFAC0010 */ sw $t4, 0x10($sp) +/* 0DFCD8 7F0AB1A8 24060001 */ li $a2, 1 +/* 0DFCDC 7F0AB1AC 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFCE0 7F0AB1B0 8FA702E8 */ lw $a3, 0x2e8($sp) +/* 0DFCE4 7F0AB1B4 00408025 */ move $s0, $v0 +.L7F0AB1B8: +/* 0DFCE8 7F0AB1B8 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFCEC 7F0AB1BC 00000000 */ nop +/* 0DFCF0 7F0AB1C0 104000A2 */ beqz $v0, .L7F0AB44C +/* 0DFCF4 7F0AB1C4 24040001 */ li $a0, 1 +/* 0DFCF8 7F0AB1C8 3C058004 */ lui $a1, %hi(D_80040B3C) +/* 0DFCFC 7F0AB1CC 3C068004 */ lui $a2, %hi(D_80040B38) +/* 0DFD00 7F0AB1D0 3C078004 */ lui $a3, %hi(D_80040B34) +/* 0DFD04 7F0AB1D4 24E70B34 */ addiu $a3, %lo(D_80040B34) # addiu $a3, $a3, 0xb34 +/* 0DFD08 7F0AB1D8 24C60B38 */ addiu $a2, %lo(D_80040B38) # addiu $a2, $a2, 0xb38 +/* 0DFD0C 7F0AB1DC 0FC2A5A1 */ jal sub_GAME_7F0A9684 +/* 0DFD10 7F0AB1E0 24A50B3C */ addiu $a1, %lo(D_80040B3C) # addiu $a1, $a1, 0xb3c +/* 0DFD14 7F0AB1E4 0FC15FF4 */ jal matrix_4x4_set_identity +/* 0DFD18 7F0AB1E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFD1C 7F0AB1EC 3C0D8005 */ lui $t5, %hi(D_80048498) +/* 0DFD20 7F0AB1F0 8DAD8498 */ lw $t5, %lo(D_80048498)($t5) +/* 0DFD24 7F0AB1F4 3C018004 */ lui $at, %hi(D_80040B38) +/* 0DFD28 7F0AB1F8 C4320B38 */ lwc1 $f18, %lo(D_80040B38)($at) +/* 0DFD2C 7F0AB1FC 448D2000 */ mtc1 $t5, $f4 +/* 0DFD30 7F0AB200 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0DFD34 7F0AB204 44818000 */ mtc1 $at, $f16 +/* 0DFD38 7F0AB208 46802220 */ cvt.s.w $f8, $f4 +/* 0DFD3C 7F0AB20C 3C028004 */ lui $v0, %hi(D_80040B34) +/* 0DFD40 7F0AB210 24420B34 */ addiu $v0, %lo(D_80040B34) # addiu $v0, $v0, 0xb34 +/* 0DFD44 7F0AB214 C4440000 */ lwc1 $f4, ($v0) +/* 0DFD48 7F0AB218 46089282 */ mul.s $f10, $f18, $f8 +/* 0DFD4C 7F0AB21C 00000000 */ nop +/* 0DFD50 7F0AB220 46105182 */ mul.s $f6, $f10, $f16 +/* 0DFD54 7F0AB224 46062480 */ add.s $f18, $f4, $f6 +/* 0DFD58 7F0AB228 E4520000 */ swc1 $f18, ($v0) +/* 0DFD5C 7F0AB22C 0FC29A8B */ jal sub_GAME_7F0A6A2C +/* 0DFD60 7F0AB230 C44C0000 */ lwc1 $f12, ($v0) +/* 0DFD64 7F0AB234 3C018004 */ lui $at, %hi(D_80040B34) +/* 0DFD68 7F0AB238 E4200B34 */ swc1 $f0, %lo(D_80040B34)($at) +/* 0DFD6C 7F0AB23C C42C0B34 */ lwc1 $f12, %lo(D_80040B34)($at) +/* 0DFD70 7F0AB240 0FC161A2 */ jal matrix_4x4_set_rotation_around_z +/* 0DFD74 7F0AB244 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFD78 7F0AB248 3C088004 */ lui $t0, %hi(watch_soundrelated_maybe) +/* 0DFD7C 7F0AB24C 8D0809A8 */ lw $t0, %lo(watch_soundrelated_maybe)($t0) +/* 0DFD80 7F0AB250 11000016 */ beqz $t0, .L7F0AB2AC +/* 0DFD84 7F0AB254 3C0F8004 */ lui $t7, %hi(controller_options_index) +/* 0DFD88 7F0AB258 8DEF0998 */ lw $t7, %lo(controller_options_index)($t7) +/* 0DFD8C 7F0AB25C 24010001 */ li $at, 1 +/* 0DFD90 7F0AB260 15E10012 */ bne $t7, $at, .L7F0AB2AC +/* 0DFD94 7F0AB264 00000000 */ nop +/* 0DFD98 7F0AB268 0C00307F */ jal joyGetStickY +/* 0DFD9C 7F0AB26C 24040001 */ li $a0, 1 +/* 0DFDA0 7F0AB270 44824000 */ mtc1 $v0, $f8 +/* 0DFDA4 7F0AB274 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDA8 7F0AB278 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDAC 7F0AB27C 468042A0 */ cvt.s.w $f10, $f8 +/* 0DFDB0 7F0AB280 3C018006 */ lui $at, %hi(D_80058560) +/* 0DFDB4 7F0AB284 C4308560 */ lwc1 $f16, %lo(D_80058560)($at) +/* 0DFDB8 7F0AB288 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0DFDBC 7F0AB28C 44813000 */ mtc1 $at, $f6 +/* 0DFDC0 7F0AB290 3C064080 */ lui $a2, 0x4080 +/* 0DFDC4 7F0AB294 46105102 */ mul.s $f4, $f10, $f16 +/* 0DFDC8 7F0AB298 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDCC 7F0AB29C 46062383 */ div.s $f14, $f4, $f6 +/* 0DFDD0 7F0AB2A0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDD4 7F0AB2A4 10000008 */ b .L7F0AB2C8 +/* 0DFDD8 7F0AB2A8 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2AC: +/* 0DFDDC 7F0AB2AC 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDE0 7F0AB2B0 44807000 */ mtc1 $zero, $f14 +/* 0DFDE4 7F0AB2B4 C42C0B30 */ lwc1 $f12, %lo(D_80040B30)($at) +/* 0DFDE8 7F0AB2B8 0FC2A571 */ jal sub_GAME_7F0A95C4 +/* 0DFDEC 7F0AB2BC 3C064080 */ lui $a2, 0x4080 +/* 0DFDF0 7F0AB2C0 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDF4 7F0AB2C4 E4200B30 */ swc1 $f0, %lo(D_80040B30)($at) +.L7F0AB2C8: +/* 0DFDF8 7F0AB2C8 3C018004 */ lui $at, %hi(D_80040B30) +/* 0DFDFC 7F0AB2CC C4320B30 */ lwc1 $f18, %lo(D_80040B30)($at) +/* 0DFE00 7F0AB2D0 3C018006 */ lui $at, %hi(D_80058564) +/* 0DFE04 7F0AB2D4 C42A8564 */ lwc1 $f10, %lo(D_80058564)($at) +/* 0DFE08 7F0AB2D8 46009207 */ neg.s $f8, $f18 +/* 0DFE0C 7F0AB2DC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE10 7F0AB2E0 0FC1615C */ jal matrix_4x4_set_rotation_around_x +/* 0DFE14 7F0AB2E4 460A4301 */ sub.s $f12, $f8, $f10 +/* 0DFE18 7F0AB2E8 27A404FC */ addiu $a0, $sp, 0x4fc +/* 0DFE1C 7F0AB2EC 27A504BC */ addiu $a1, $sp, 0x4bc +/* 0DFE20 7F0AB2F0 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE24 7F0AB2F4 27A6043C */ addiu $a2, $sp, 0x43c +/* 0DFE28 7F0AB2F8 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE2C 7F0AB2FC 27A5047C */ addiu $a1, $sp, 0x47c +/* 0DFE30 7F0AB300 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE34 7F0AB304 27A603FC */ addiu $a2, $sp, 0x3fc +/* 0DFE38 7F0AB308 27A40370 */ addiu $a0, $sp, 0x370 +/* 0DFE3C 7F0AB30C 0FC16259 */ jal matrix_4x4_set_identity_and_position +/* 0DFE40 7F0AB310 27A5043C */ addiu $a1, $sp, 0x43c +/* 0DFE44 7F0AB314 27A4043C */ addiu $a0, $sp, 0x43c +/* 0DFE48 7F0AB318 27A503FC */ addiu $a1, $sp, 0x3fc +/* 0DFE4C 7F0AB31C 0FC16032 */ jal matrix_4x4_multiply +/* 0DFE50 7F0AB320 27A603BC */ addiu $a2, $sp, 0x3bc +/* 0DFE54 7F0AB324 3C018006 */ lui $at, %hi(D_80058568) +/* 0DFE58 7F0AB328 C4208568 */ lwc1 $f0, %lo(D_80058568)($at) +/* 0DFE5C 7F0AB32C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 0DFE60 7F0AB330 44801000 */ mtc1 $zero, $f2 +/* 0DFE64 7F0AB334 44818000 */ mtc1 $at, $f16 +/* 0DFE68 7F0AB338 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 0DFE6C 7F0AB33C 44812000 */ mtc1 $at, $f4 +/* 0DFE70 7F0AB340 3C06451C */ lui $a2, (0x451C4000 >> 16) # lui $a2, 0x451c +/* 0DFE74 7F0AB344 44050000 */ mfc1 $a1, $f0 +/* 0DFE78 7F0AB348 34C64000 */ ori $a2, (0x451C4000 & 0xFFFF) # ori $a2, $a2, 0x4000 +/* 0DFE7C 7F0AB34C 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFE80 7F0AB350 3C074200 */ lui $a3, 0x4200 +/* 0DFE84 7F0AB354 E7A00010 */ swc1 $f0, 0x10($sp) +/* 0DFE88 7F0AB358 E7A20014 */ swc1 $f2, 0x14($sp) +/* 0DFE8C 7F0AB35C E7A2001C */ swc1 $f2, 0x1c($sp) +/* 0DFE90 7F0AB360 E7A20020 */ swc1 $f2, 0x20($sp) +/* 0DFE94 7F0AB364 E7B00018 */ swc1 $f16, 0x18($sp) +/* 0DFE98 7F0AB368 0FC165A5 */ jal matrix_4x4_7F059694 +/* 0DFE9C 7F0AB36C E7A40024 */ swc1 $f4, 0x24($sp) +/* 0DFEA0 7F0AB370 27A402EC */ addiu $a0, $sp, 0x2ec +/* 0DFEA4 7F0AB374 27A503BC */ addiu $a1, $sp, 0x3bc +/* 0DFEA8 7F0AB378 0FC16032 */ jal matrix_4x4_multiply +/* 0DFEAC 7F0AB37C 27A6037C */ addiu $a2, $sp, 0x37c +/* 0DFEB0 7F0AB380 3C01447A */ li $at, 0x447A0000 # 1000.000000 +/* 0DFEB4 7F0AB384 44813000 */ mtc1 $at, $f6 +/* 0DFEB8 7F0AB388 3C018006 */ lui $at, %hi(D_8005856C) +/* 0DFEBC 7F0AB38C C432856C */ lwc1 $f18, %lo(D_8005856C)($at) +/* 0DFEC0 7F0AB390 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0DFEC4 7F0AB394 44814000 */ mtc1 $at, $f8 +/* 0DFEC8 7F0AB398 3C073FAA */ lui $a3, (0x3FAAAAAB >> 16) # lui $a3, 0x3faa +/* 0DFECC 7F0AB39C 34E7AAAB */ ori $a3, (0x3FAAAAAB & 0xFFFF) # ori $a3, $a3, 0xaaab +/* 0DFED0 7F0AB3A0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFED4 7F0AB3A4 27A5036E */ addiu $a1, $sp, 0x36e +/* 0DFED8 7F0AB3A8 3C06424A */ lui $a2, 0x424a +/* 0DFEDC 7F0AB3AC E7A60010 */ swc1 $f6, 0x10($sp) +/* 0DFEE0 7F0AB3B0 E7B20014 */ swc1 $f18, 0x14($sp) +/* 0DFEE4 7F0AB3B4 0C003FAC */ jal guPerspective +/* 0DFEE8 7F0AB3B8 E7A80018 */ swc1 $f8, 0x18($sp) +/* 0DFEEC 7F0AB3BC 3C090103 */ lui $t1, (0x01030040 >> 16) # lui $t1, 0x103 +/* 0DFEF0 7F0AB3C0 35290040 */ ori $t1, (0x01030040 & 0xFFFF) # ori $t1, $t1, 0x40 +/* 0DFEF4 7F0AB3C4 02001825 */ move $v1, $s0 +/* 0DFEF8 7F0AB3C8 AC690000 */ sw $t1, ($v1) +/* 0DFEFC 7F0AB3CC AFA30044 */ sw $v1, 0x44($sp) +/* 0DFF00 7F0AB3D0 8FA4053C */ lw $a0, 0x53c($sp) +/* 0DFF04 7F0AB3D4 0C003A2C */ jal osVirtualToPhysical +/* 0DFF08 7F0AB3D8 26100008 */ addiu $s0, $s0, 8 +/* 0DFF0C 7F0AB3DC 8FA30044 */ lw $v1, 0x44($sp) +/* 0DFF10 7F0AB3E0 02002025 */ move $a0, $s0 +/* 0DFF14 7F0AB3E4 0FC29BBA */ jal sub_GAME_7F0A6EE8 +/* 0DFF18 7F0AB3E8 AC620004 */ sw $v0, 4($v1) +/* 0DFF1C 7F0AB3EC 3C038004 */ lui $v1, %hi(D_80040B04) +/* 0DFF20 7F0AB3F0 8C630B04 */ lw $v1, %lo(D_80040B04)($v1) +/* 0DFF24 7F0AB3F4 00408025 */ move $s0, $v0 +/* 0DFF28 7F0AB3F8 02002025 */ move $a0, $s0 +/* 0DFF2C 7F0AB3FC 286100E0 */ slti $at, $v1, 0xe0 +/* 0DFF30 7F0AB400 1020000C */ beqz $at, .L7F0AB434 +/* 0DFF34 7F0AB404 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF38 7F0AB408 27AE004C */ addiu $t6, $sp, 0x4c +/* 0DFF3C 7F0AB40C 27B802E2 */ addiu $t8, $sp, 0x2e2 +/* 0DFF40 7F0AB410 AFB80014 */ sw $t8, 0x14($sp) +/* 0DFF44 7F0AB414 AFAE0010 */ sw $t6, 0x10($sp) +/* 0DFF48 7F0AB418 00402025 */ move $a0, $v0 +/* 0DFF4C 7F0AB41C 27A5037C */ addiu $a1, $sp, 0x37c +/* 0DFF50 7F0AB420 2466FFFA */ addiu $a2, $v1, -6 +/* 0DFF54 7F0AB424 0FC18D67 */ jal sub_GAME_7F06359C +/* 0DFF58 7F0AB428 24070001 */ li $a3, 1 +/* 0DFF5C 7F0AB42C 10000007 */ b .L7F0AB44C +/* 0DFF60 7F0AB430 00408025 */ move $s0, $v0 +.L7F0AB434: +/* 0DFF64 7F0AB434 27AB02E2 */ addiu $t3, $sp, 0x2e2 +/* 0DFF68 7F0AB438 AFAB0010 */ sw $t3, 0x10($sp) +/* 0DFF6C 7F0AB43C 24060001 */ li $a2, 1 +/* 0DFF70 7F0AB440 0FC190D9 */ jal sub_GAME_7F064364 +/* 0DFF74 7F0AB444 27A7004C */ addiu $a3, $sp, 0x4c +/* 0DFF78 7F0AB448 00408025 */ move $s0, $v0 +.L7F0AB44C: +/* 0DFF7C 7F0AB44C 0FC2935D */ jal controllerCheckDualControllerTypesAllowed +/* 0DFF80 7F0AB450 00000000 */ nop +/* 0DFF84 7F0AB454 10400005 */ beqz $v0, .L7F0AB46C +/* 0DFF88 7F0AB458 00000000 */ nop +/* 0DFF8C 7F0AB45C 0FC2A9F2 */ jal display_text_buttons_dual_control +/* 0DFF90 7F0AB460 02002025 */ move $a0, $s0 +/* 0DFF94 7F0AB464 10000004 */ b .L7F0AB478 +/* 0DFF98 7F0AB468 00408025 */ move $s0, $v0 +.L7F0AB46C: +/* 0DFF9C 7F0AB46C 0FC2A6AE */ jal sub_GAME_7F0A9AB8 +/* 0DFFA0 7F0AB470 02002025 */ move $a0, $s0 +/* 0DFFA4 7F0AB474 00408025 */ move $s0, $v0 +.L7F0AB478: +/* 0DFFA8 7F0AB478 8FBF0034 */ lw $ra, 0x34($sp) +/* 0DFFAC 7F0AB47C 02001025 */ move $v0, $s0 +/* 0DFFB0 7F0AB480 8FB00030 */ lw $s0, 0x30($sp) +/* 0DFFB4 7F0AB484 03E00008 */ jr $ra +/* 0DFFB8 7F0AB488 27BD0540 */ addiu $sp, $sp, 0x540 +) +#endif + #endif @@ -8419,7 +9373,7 @@ void proc_7F0AB4B8(u32 param_1,u32 param_2) pFirstFontTableSmall = (s32) ptrFirstFontTableSmall; pSecondFontTableSmall = (s32) ptrSecondFontTableSmall; microcode_constructor(sub_GAME_7F0AADC0(DL)); - txtptr = get_textptr_for_textID(0xac32); + txtptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x32)); //control style sp5C = 0x40; sp58 = 0x1a; phi_s1 = 0xff00b0; @@ -8441,10 +9395,10 @@ void proc_7F0AB4B8(u32 param_1,u32 param_2) en_text_write_stuff(DL, &sp5C, &sp58, txtptr, pSecondFontTableSmall, pFirstFontTableSmall, (?32) phi_s1, sp54, sp50, 0, 0); } sub_GAME_7F0A97D0(DL); - txtptr = get_textptr_for_textID(0xac33); + txtptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x33)); //controller if (controllerCheckDualControllerTypesAllowed() != 0) { - txtptr = get_textptr_for_textID(0xac34); + txtptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x34)); //controllers } sp5C = 0x40; sp58 = 0x2b; @@ -8677,13 +9631,13 @@ void game_option_select_value(u32 *param_1, u32 param_2) { *param_1 = param_2; set_controlstick_lr_disabled(); - play_sfx_a1(ptr_sfx_buf, 0x2b, NULL); + play_sfx_a1(g_musicSfxBufferPtr, 0x2b, NULL); } void game_option_toggle_input(s32 option_index) { - if ( (get_controller_buttons_pressed(0, L_CBUTTONS|L_TRIG|L_JPAD) || sub_GAME_7F0A4FB0()) && watch_soundrelated_maybe ) + if ( (joyGetButtonsPressedThisFrame(0, L_CBUTTONS|L_TRIG|L_JPAD) || sub_GAME_7F0A4FB0()) && watch_soundrelated_maybe ) { if (game_options_entries[option_index].current_value == 1) { @@ -8696,7 +9650,7 @@ void game_option_toggle_input(s32 option_index) } else { - if ( (get_controller_buttons_pressed(0, R_CBUTTONS|R_TRIG|R_JPAD) || sub_GAME_7F0A4FEC()) && watch_soundrelated_maybe ) + if ( (joyGetButtonsPressedThisFrame(0, R_CBUTTONS|R_TRIG|R_JPAD) || sub_GAME_7F0A4FEC()) && watch_soundrelated_maybe ) { if (game_options_entries[option_index].current_value == 0) { @@ -9089,12 +10043,12 @@ glabel sub_GAME_7F0AB908 -s32 draw_toggle_options(s32 param_1) +Gfx *draw_toggle_options(Gfx *gdl) { s32 y_offset; s32 i; - param_1 = microcode_constructor(param_1); + gdl = microcode_constructor(gdl); for (i = 0, y_offset = 80; i < 8; i = i + 1, y_offset = y_offset + 15) { @@ -9102,33 +10056,107 @@ s32 draw_toggle_options(s32 param_1) { if (watch_soundrelated_maybe) { - param_1 = sub_GAME_7F0AB908(sub_GAME_7F0A9398(param_1, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0), y_offset, i, 2); + gdl = sub_GAME_7F0AB908(sub_GAME_7F0A9398(gdl, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), -1, 1, 0x7000A0, 0, 0, 0x3000B0, 0), y_offset, i, 2); } else { - param_1 = sub_GAME_7F0AB908(sub_GAME_7F0A9398(param_1, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), 0xA0FFA0F0, 0, -1, 0, 0, 0x3000B0, 0), y_offset, i, 1); + gdl = sub_GAME_7F0AB908(sub_GAME_7F0A9398(gdl, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), 0xA0FFA0F0, 0, -1, 0, 0, 0x3000B0, 0), y_offset, i, 1); } } else { - param_1 = sub_GAME_7F0AB908(sub_GAME_7F0A9398(param_1, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), 0xFF00B0, 0, -1, 0, 0, 0x3000B0, 0), y_offset, i, 0); + gdl = sub_GAME_7F0AB908(sub_GAME_7F0A9398(gdl, 0x40, y_offset, get_textptr_for_textID(game_options_entries[i].text[0]), 0xFF00B0, 0, -1, 0, 0, 0x3000B0, 0), y_offset, i, 0); } } - return param_1; + return gdl; } #ifdef NONMATCHING -void sub_GAME_7F0ABDFC(void) { +Gfx *draw_game_options_page(Gfx *gdl, s32 param_2) +{ + s32 textptr; + s32 sp5C; + s32 sp54; // + s32 sp50; + s32 sp4C; + s32 sp48; + s32 sp40; // + s32 sp44; + gdl = draw_background_health_and_armor(gdl, param_2, 0); + + if (check_watch_page_transistion_running() != 1) + { + gdl = sub_GAME_7F0A8FEC(sub_GAME_7F0A91C8(gdl)); + sp44 = ptrFirstFontTableSmall; + sp40 = ptrSecondFontTableSmall; + gdl = microcode_constructor(gdl); + + textptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x35)); //music + + sp54 = 0x40; + sp50 = 0x25; + sp5C = 0xFF00B0; + + if (game_options_index == 0) + { + sp5C = 0xA0FFA0F0; + if (watch_soundrelated_maybe != 0) + { + sp5C = -1; + } + } + + //L7F0ABEA8 + sub_GAME_7F0AE98C(&sp48, &sp4C, textptr, sp40, sp44, 0); + + if ((watch_soundrelated_maybe != 0) && (game_options_index == 0)) + { + gdl = jp_text_write_stuff(gdl, &sp54, &sp50, textptr, sp40, sp44, sp5C, 0x7000A0, sp4C + 1, sp48, 0, 0); + } + else + { + gdl = en_text_write_stuff(gdl, &sp54, &sp50, textptr, sp40, sp44, sp5C, sp4C, sp48, 0, 0); + } + + sp5C = 0xFF00B0; + textptr = get_textptr_for_textID(TEXT(LOPTIONS, 0x36)); //fx + sp54 = 0x40; + sp50 = 0x3B; + + if (game_options_index == 1) + { + sp5C = 0xA0FFA0F0; + if (watch_soundrelated_maybe != 0) + { + sp5C = -1; + } + } + + sub_GAME_7F0AE98C(&sp48, &sp4C, textptr, sp40, sp44, 0); + + if ((watch_soundrelated_maybe != 0) && (game_options_index == 1)) + { + gdl = jp_text_write_stuff(gdl, &sp54, &sp50, textptr, sp40, sp44, sp5C, 0x7000A0, sp4C + 1, sp48, 0, 0); + } + else + { + gdl = en_text_write_stuff(gdl, &sp54, &sp50, textptr, sp40, sp44, sp5C, sp4C, sp48, 0, 0); + } + + gdl = draw_toggle_options(gdl); + } + + return gdl; } #else GLOBAL_ASM( .text -glabel sub_GAME_7F0ABDFC +glabel draw_game_options_page /* 0E092C 7F0ABDFC 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 0E0930 7F0ABE00 AFBF003C */ sw $ra, 0x3c($sp) /* 0E0934 7F0ABE04 AFB00038 */ sw $s0, 0x38($sp) @@ -9736,7 +10764,7 @@ glabel sub_GAME_7F0AC168 /* 0E10F0 7F0AC5C0 A3A00088 */ sb $zero, 0x88($sp) /* 0E10F4 7F0AC5C4 02202025 */ move $a0, $s1 .L7F0AC5C8: -/* 0E10F8 7F0AC5C8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E10F8 7F0AC5C8 0C0029FF */ jal strcat /* 0E10FC 7F0AC5CC 02802825 */ move $a1, $s4 /* 0E1100 7F0AC5D0 26100001 */ addiu $s0, $s0, 1 /* 0E1104 7F0AC5D4 5612FFFC */ bnel $s0, $s2, .L7F0AC5C8 @@ -9746,7 +10774,7 @@ glabel sub_GAME_7F0AC168 /* 0E1110 7F0AC5E0 1A600007 */ blez $s3, .L7F0AC600 /* 0E1114 7F0AC5E4 02202025 */ move $a0, $s1 .L7F0AC5E8: -/* 0E1118 7F0AC5E8 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1118 7F0AC5E8 0C0029FF */ jal strcat /* 0E111C 7F0AC5EC 02A02825 */ move $a1, $s5 /* 0E1120 7F0AC5F0 26100001 */ addiu $s0, $s0, 1 /* 0E1124 7F0AC5F4 5613FFFC */ bnel $s0, $s3, .L7F0AC5E8 @@ -9763,7 +10791,7 @@ glabel sub_GAME_7F0AC168 /* 0E114C 7F0AC61C 0C002B25 */ jal sprintf /* 0E1150 7F0AC620 24C60061 */ addiu $a2, $a2, 0x61 /* 0E1154 7F0AC624 02202025 */ move $a0, $s1 -/* 0E1158 7F0AC628 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1158 7F0AC628 0C0029FF */ jal strcat /* 0E115C 7F0AC62C 8FA50078 */ lw $a1, 0x78($sp) /* 0E1160 7F0AC630 3C0E8005 */ lui $t6, %hi(j_text_trigger) /* 0E1164 7F0AC634 8DCE84D0 */ lw $t6, %lo(j_text_trigger)($t6) @@ -9776,9 +10804,9 @@ glabel sub_GAME_7F0AC168 .L7F0AC650: /* 0E1180 7F0AC650 008B4821 */ addu $t1, $a0, $t3 /* 0E1184 7F0AC654 AFA90154 */ sw $t1, 0x154($sp) -/* 0E1188 7F0AC658 0C001107 */ jal get_video2_settings_txtClipW +/* 0E1188 7F0AC658 0C001107 */ jal viGetX /* 0E118C 7F0AC65C AFB80150 */ sw $t8, 0x150($sp) -/* 0E1190 7F0AC660 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1190 7F0AC660 0C00110B */ jal viGetY /* 0E1194 7F0AC664 A7A20064 */ sh $v0, 0x64($sp) /* 0E1198 7F0AC668 8FB90D48 */ lw $t9, 0xd48($sp) /* 0E119C 7F0AC66C 8FAA0D4C */ lw $t2, 0xd4c($sp) @@ -9813,7 +10841,7 @@ glabel sub_GAME_7F0AC168 /* 0E1210 7F0AC6E0 8FA70D48 */ lw $a3, 0xd48($sp) /* 0E1214 7F0AC6E4 0FC2BA63 */ jal sub_GAME_7F0AE98C /* 0E1218 7F0AC6E8 AFAF0010 */ sw $t7, 0x10($sp) -/* 0E121C 7F0AC6EC 0C001107 */ jal get_video2_settings_txtClipW +/* 0E121C 7F0AC6EC 0C001107 */ jal viGetX /* 0E1220 7F0AC6F0 00000000 */ nop /* 0E1224 7F0AC6F4 8FA90D50 */ lw $t1, 0xd50($sp) /* 0E1228 7F0AC6F8 04410003 */ bgez $v0, .L7F0AC708 @@ -9831,7 +10859,7 @@ glabel sub_GAME_7F0AC168 /* 0E1250 7F0AC720 A3A00088 */ sb $zero, 0x88($sp) /* 0E1254 7F0AC724 02202025 */ move $a0, $s1 .L7F0AC728: -/* 0E1258 7F0AC728 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1258 7F0AC728 0C0029FF */ jal strcat /* 0E125C 7F0AC72C 02C02825 */ move $a1, $s6 /* 0E1260 7F0AC730 26100001 */ addiu $s0, $s0, 1 /* 0E1264 7F0AC734 5612FFFC */ bnel $s0, $s2, .L7F0AC728 @@ -9841,7 +10869,7 @@ glabel sub_GAME_7F0AC168 /* 0E1270 7F0AC740 1A600006 */ blez $s3, .L7F0AC75C /* 0E1274 7F0AC744 02202025 */ move $a0, $s1 .L7F0AC748: -/* 0E1278 7F0AC748 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1278 7F0AC748 0C0029FF */ jal strcat /* 0E127C 7F0AC74C 02E02825 */ move $a1, $s7 /* 0E1280 7F0AC750 26100001 */ addiu $s0, $s0, 1 /* 0E1284 7F0AC754 5613FFFC */ bnel $s0, $s3, .L7F0AC748 @@ -9860,7 +10888,7 @@ glabel sub_GAME_7F0AC168 /* 0E12B4 7F0AC784 1000001F */ b .L7F0AC804 /* 0E12B8 7F0AC788 8FA90D4C */ lw $t1, 0xd4c($sp) .L7F0AC78C: -/* 0E12BC 7F0AC78C 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12BC 7F0AC78C 0C0029FF */ jal strcat /* 0E12C0 7F0AC790 8FA50168 */ lw $a1, 0x168($sp) /* 0E12C4 7F0AC794 3C198004 */ lui $t9, %hi(D_80040AFC) /* 0E12C8 7F0AC798 8F390AFC */ lw $t9, %lo(D_80040AFC)($t9) @@ -9874,12 +10902,12 @@ glabel sub_GAME_7F0AC168 /* 0E12E4 7F0AC7B4 3C08A0FF */ lui $t0, (0xA0FFA0F0 >> 16) # lui $t0, 0xa0ff /* 0E12E8 7F0AC7B8 3508A0F0 */ ori $t0, (0xA0FFA0F0 & 0xFFFF) # ori $t0, $t0, 0xa0f0 /* 0E12EC 7F0AC7BC AFA80084 */ sw $t0, 0x84($sp) -/* 0E12F0 7F0AC7C0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E12F0 7F0AC7C0 0C0029FF */ jal strcat /* 0E12F4 7F0AC7C4 8FA5016C */ lw $a1, 0x16c($sp) /* 0E12F8 7F0AC7C8 1000000E */ b .L7F0AC804 /* 0E12FC 7F0AC7CC 8FA90D4C */ lw $t1, 0xd4c($sp) .L7F0AC7D0: -/* 0E1300 7F0AC7D0 0C0029FF */ jal string_append_from_obseg_textbank +/* 0E1300 7F0AC7D0 0C0029FF */ jal strcat /* 0E1304 7F0AC7D4 8FA50164 */ lw $a1, 0x164($sp) /* 0E1308 7F0AC7D8 3C0C8005 */ lui $t4, %hi(j_text_trigger) /* 0E130C 7F0AC7DC 8D8C84D0 */ lw $t4, %lo(j_text_trigger)($t4) @@ -9923,7 +10951,7 @@ glabel sub_GAME_7F0AC168 .L7F0AC864: /* 0E1394 7F0AC864 AFAC0150 */ sw $t4, 0x150($sp) .L7F0AC868: -/* 0E1398 7F0AC868 0C00110B */ jal get_video2_settings_txtClipH +/* 0E1398 7F0AC868 0C00110B */ jal viGetY /* 0E139C 7F0AC86C 00000000 */ nop /* 0E13A0 7F0AC870 8FAF0D48 */ lw $t7, 0xd48($sp) /* 0E13A4 7F0AC874 8FAE0D4C */ lw $t6, 0xd4c($sp) @@ -10003,9 +11031,9 @@ glabel sub_GAME_7F0AC168 /* 0E14BC 7F0AC98C 8FA70D48 */ lw $a3, 0xd48($sp) /* 0E14C0 7F0AC990 0FC2BA63 */ jal sub_GAME_7F0AE98C /* 0E14C4 7F0AC994 AFAA0010 */ sw $t2, 0x10($sp) -/* 0E14C8 7F0AC998 0C001107 */ jal get_video2_settings_txtClipW +/* 0E14C8 7F0AC998 0C001107 */ jal viGetX /* 0E14CC 7F0AC99C 00000000 */ nop -/* 0E14D0 7F0AC9A0 0C00110B */ jal get_video2_settings_txtClipH +/* 0E14D0 7F0AC9A0 0C00110B */ jal viGetY /* 0E14D4 7F0AC9A4 A7A20064 */ sh $v0, 0x64($sp) /* 0E14D8 7F0AC9A8 8FAC0D48 */ lw $t4, 0xd48($sp) /* 0E14DC 7F0AC9AC 8FAF0D4C */ lw $t7, 0xd4c($sp) @@ -10044,156 +11072,45 @@ glabel sub_GAME_7F0AC168 #endif - - - -#ifdef NONMATCHING -//TODO: Uses v0 instead of v1 -s32 sub_GAME_7F0ACA28(s32 arg0, s32 arg1, s32 arg2) +Gfx *sub_GAME_7F0ACA28(Gfx *gdl, s32 arg1, s32 watch_transitioning) { + draw_selected_page_rectangle(watch_screen_index, &pPlayer->buffer_for_watch_greenbackdrop_vertices); - sub_GAME_7F0A70AC(watch_screen_index, &pPlayer->buffer_for_watch_greenbackdrop_vertices); - - if (arg2 == 1) + if (watch_transitioning == 1) { set_BONDdata_paused_flag(0); sub_GAME_7F0BD8FC(0); - if ((watch_screen_index != 1) && (get_controller_buttons_pressed(0, 0xA000) != 0)) + + // Handle A or Z button click when in any page but inventory page + if ((watch_screen_index != 1) && (joyGetButtonsPressedThisFrame(0, Z_TRIG|A_BUTTON))) { sub_GAME_7F0A4EF8(); } - + switch (watch_screen_index) { case WATCH_INDEX_MISSION_STATUS: - arg0 = draw_watch_mission_status_page(arg0, arg1); + gdl = draw_watch_mission_status_page(gdl, arg1); break; case WATCH_INDEX_INVENTORY: - arg0 = debug_gun_watch_move_related2(arg0, arg1); + gdl = debug_gun_watch_move_related2(gdl, arg1); break; case WATCH_INDEX_CONTROL_OPTIONS: - arg0 = sub_GAME_7F0AB4B8(arg0, arg1); + gdl = sub_GAME_7F0AB4B8(gdl, arg1); break; case WATCH_INDEX_GAME_OPTIONS: - arg0 = sub_GAME_7F0ABDFC(arg0, arg1); + gdl = draw_game_options_page(gdl, arg1); break; case WATCH_INDEX_MISSION_BRIEFING: - arg0 = sub_GAME_7F0AC168(arg0, arg1); + gdl = sub_GAME_7F0AC168(gdl, arg1); } } - else if (arg2 == 0) + else if (watch_transitioning == 0) { - sub_GAME_7F0BD8FC(1); set_BONDdata_paused_flag(1); - arg0 = sub_GAME_7F0A77A8(arg0, arg1); - + gdl = draw_background_health_and_armor_transitioning(gdl, arg1); } - return arg0; -} -#else -GLOBAL_ASM( -.late_rodata -/*D:80058584*/ -glabel jpt_80058584 -.word .L7F0ACAD0 -.word .L7F0ACAE4 -.word .L7F0ACAF8 -.word .L7F0ACB0C -.word .L7F0ACB20 -.text -glabel sub_GAME_7F0ACA28 -/* 0E1558 7F0ACA28 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0E155C 7F0ACA2C AFA50024 */ sw $a1, 0x24($sp) -/* 0E1560 7F0ACA30 AFB00018 */ sw $s0, 0x18($sp) -/* 0E1564 7F0ACA34 3C058008 */ lui $a1, %hi(pPlayer) -/* 0E1568 7F0ACA38 8CA5A0B0 */ lw $a1, %lo(pPlayer)($a1) -/* 0E156C 7F0ACA3C 00808025 */ move $s0, $a0 -/* 0E1570 7F0ACA40 AFBF001C */ sw $ra, 0x1c($sp) -/* 0E1574 7F0ACA44 3C048004 */ lui $a0, %hi(watch_screen_index) -/* 0E1578 7F0ACA48 AFA60028 */ sw $a2, 0x28($sp) -/* 0E157C 7F0ACA4C 8C840994 */ lw $a0, %lo(watch_screen_index)($a0) -/* 0E1580 7F0ACA50 0FC29C2B */ jal sub_GAME_7F0A70AC -/* 0E1584 7F0ACA54 24A51878 */ addiu $a1, $a1, 0x1878 -/* 0E1588 7F0ACA58 8FA20028 */ lw $v0, 0x28($sp) -/* 0E158C 7F0ACA5C 24010001 */ li $at, 1 -/* 0E1590 7F0ACA60 14410034 */ bne $v0, $at, .L7F0ACB34 -/* 0E1594 7F0ACA64 00000000 */ nop -/* 0E1598 7F0ACA68 0FC1FAB4 */ jal set_BONDdata_paused_flag -/* 0E159C 7F0ACA6C 00002025 */ move $a0, $zero -/* 0E15A0 7F0ACA70 0FC2F63F */ jal sub_GAME_7F0BD8FC -/* 0E15A4 7F0ACA74 00002025 */ move $a0, $zero -/* 0E15A8 7F0ACA78 3C0E8004 */ lui $t6, %hi(watch_screen_index) -/* 0E15AC 7F0ACA7C 8DCE0994 */ lw $t6, %lo(watch_screen_index)($t6) -/* 0E15B0 7F0ACA80 24010001 */ li $at, 1 -/* 0E15B4 7F0ACA84 00002025 */ move $a0, $zero -/* 0E15B8 7F0ACA88 11C10007 */ beq $t6, $at, .L7F0ACAA8 -/* 0E15BC 7F0ACA8C 00000000 */ nop -/* 0E15C0 7F0ACA90 0C0030EB */ jal get_controller_buttons_pressed -/* 0E15C4 7F0ACA94 3405A000 */ li $a1, 40960 -/* 0E15C8 7F0ACA98 10400003 */ beqz $v0, .L7F0ACAA8 -/* 0E15CC 7F0ACA9C 00000000 */ nop -/* 0E15D0 7F0ACAA0 0FC293BE */ jal sub_GAME_7F0A4EF8 -/* 0E15D4 7F0ACAA4 00000000 */ nop -.L7F0ACAA8: -/* 0E15D8 7F0ACAA8 3C0F8004 */ lui $t7, %hi(watch_screen_index) -/* 0E15DC 7F0ACAAC 8DEF0994 */ lw $t7, %lo(watch_screen_index)($t7) -/* 0E15E0 7F0ACAB0 2DE10005 */ sltiu $at, $t7, 5 -/* 0E15E4 7F0ACAB4 10200029 */ beqz $at, .L7F0ACB5C -/* 0E15E8 7F0ACAB8 000F7880 */ sll $t7, $t7, 2 -/* 0E15EC 7F0ACABC 3C018006 */ lui $at, %hi(jpt_80058584) -/* 0E15F0 7F0ACAC0 002F0821 */ addu $at, $at, $t7 -/* 0E15F4 7F0ACAC4 8C2F8584 */ lw $t7, %lo(jpt_80058584)($at) -/* 0E15F8 7F0ACAC8 01E00008 */ jr $t7 -/* 0E15FC 7F0ACACC 00000000 */ nop -.L7F0ACAD0: -/* 0E1600 7F0ACAD0 02002025 */ move $a0, $s0 -/* 0E1604 7F0ACAD4 0FC2A0C3 */ jal draw_watch_mission_status_page -/* 0E1608 7F0ACAD8 8FA50024 */ lw $a1, 0x24($sp) -/* 0E160C 7F0ACADC 1000001F */ b .L7F0ACB5C -/* 0E1610 7F0ACAE0 00408025 */ move $s0, $v0 -.L7F0ACAE4: -/* 0E1614 7F0ACAE4 02002025 */ move $a0, $s0 -/* 0E1618 7F0ACAE8 0FC2A109 */ jal debug_gun_watch_move_related2 -/* 0E161C 7F0ACAEC 8FA50024 */ lw $a1, 0x24($sp) -/* 0E1620 7F0ACAF0 1000001A */ b .L7F0ACB5C -/* 0E1624 7F0ACAF4 00408025 */ move $s0, $v0 -.L7F0ACAF8: -/* 0E1628 7F0ACAF8 02002025 */ move $a0, $s0 -/* 0E162C 7F0ACAFC 0FC2AD2E */ jal sub_GAME_7F0AB4B8 -/* 0E1630 7F0ACB00 8FA50024 */ lw $a1, 0x24($sp) -/* 0E1634 7F0ACB04 10000015 */ b .L7F0ACB5C -/* 0E1638 7F0ACB08 00408025 */ move $s0, $v0 -.L7F0ACB0C: -/* 0E163C 7F0ACB0C 02002025 */ move $a0, $s0 -/* 0E1640 7F0ACB10 0FC2AF7F */ jal sub_GAME_7F0ABDFC -/* 0E1644 7F0ACB14 8FA50024 */ lw $a1, 0x24($sp) -/* 0E1648 7F0ACB18 10000010 */ b .L7F0ACB5C -/* 0E164C 7F0ACB1C 00408025 */ move $s0, $v0 -.L7F0ACB20: -/* 0E1650 7F0ACB20 02002025 */ move $a0, $s0 -/* 0E1654 7F0ACB24 0FC2B05A */ jal sub_GAME_7F0AC168 -/* 0E1658 7F0ACB28 8FA50024 */ lw $a1, 0x24($sp) -/* 0E165C 7F0ACB2C 1000000B */ b .L7F0ACB5C -/* 0E1660 7F0ACB30 00408025 */ move $s0, $v0 -.L7F0ACB34: -/* 0E1664 7F0ACB34 5440000A */ bnezl $v0, .L7F0ACB60 -/* 0E1668 7F0ACB38 8FBF001C */ lw $ra, 0x1c($sp) -/* 0E166C 7F0ACB3C 0FC2F63F */ jal sub_GAME_7F0BD8FC -/* 0E1670 7F0ACB40 24040001 */ li $a0, 1 -/* 0E1674 7F0ACB44 0FC1FAB4 */ jal set_BONDdata_paused_flag -/* 0E1678 7F0ACB48 24040001 */ li $a0, 1 -/* 0E167C 7F0ACB4C 02002025 */ move $a0, $s0 -/* 0E1680 7F0ACB50 0FC29DEA */ jal sub_GAME_7F0A77A8 -/* 0E1684 7F0ACB54 8FA50024 */ lw $a1, 0x24($sp) -/* 0E1688 7F0ACB58 00408025 */ move $s0, $v0 -.L7F0ACB5C: -/* 0E168C 7F0ACB5C 8FBF001C */ lw $ra, 0x1c($sp) -.L7F0ACB60: -/* 0E1690 7F0ACB60 02001025 */ move $v0, $s0 -/* 0E1694 7F0ACB64 8FB00018 */ lw $s0, 0x18($sp) -/* 0E1698 7F0ACB68 03E00008 */ jr $ra -/* 0E169C 7F0ACB6C 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif + return gdl; +} diff --git a/src/game/watch.h b/src/game/watch.h index 18c011c..e132afe 100644 --- a/src/game/watch.h +++ b/src/game/watch.h @@ -49,6 +49,8 @@ void reset_game_options_index(); void zero_D_800409A4(); +void draw_selected_page_rectangle(s32 watch_screen_index, s32 arg2); + f32 sub_GAME_7F0A6A2C(f32 arg0); f32 sub_GAME_7F0A95C4(f32 param_1, f32 param_2, f32 param_3); diff --git a/src/game/zlib.c b/src/game/zlib.c index 1bca04e..41e280c 100644 --- a/src/game/zlib.c +++ b/src/game/zlib.c @@ -3,15 +3,15 @@ //.bss //bss:8008D350 -s32 dword_CODE_bss_8008D350; +u8 *rz_inbuf; //bss:8008D354 -s32 dword_CODE_bss_8008D354; +u8 *rz_outbuf; //bss:8008D358 -s32 dword_CODE_bss_8008D358; +u32 rz_inptr; //bss:8008D35C -s32 dword_CODE_bss_8008D35C; +u32 rz_wp; //bss:8008D360 -s32 dword_CODE_bss_8008D360; +struct huft *rz_hlist; //bss:8008D364 s32 dword_CODE_bss_8008D364; //bss:8008D368 @@ -278,10 +278,10 @@ glabel sub_GAME_7F0CE8B0 /* 1036DC 7F0CEBAC 00147880 */ sll $t7, $s4, 2 /* 1036E0 7F0CEBB0 27B805B0 */ addiu $t8, $sp, 0x5b0 /* 1036E4 7F0CEBB4 01F8C821 */ addu $t9, $t7, $t8 -/* 1036E8 7F0CEBB8 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D360) +/* 1036E8 7F0CEBB8 3C178009 */ lui $s7, %hi(rz_hlist) /* 1036EC 7F0CEBBC 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D36C) /* 1036F0 7F0CEBC0 2652D36C */ addiu $s2, %lo(dword_CODE_bss_8008D36C) # addiu $s2, $s2, -0x2c94 -/* 1036F4 7F0CEBC4 26F7D360 */ addiu $s7, %lo(dword_CODE_bss_8008D360) # addiu $s7, $s7, -0x2ca0 +/* 1036F4 7F0CEBC4 26F7D360 */ addiu $s7, %lo(rz_hlist) # addiu $s7, $s7, -0x2ca0 /* 1036F8 7F0CEBC8 AFB9005C */ sw $t9, 0x5c($sp) /* 1036FC 7F0CEBCC 8FB5060C */ lw $s5, 0x60c($sp) /* 103700 7F0CEBD0 27B30584 */ addiu $s3, $sp, 0x584 @@ -537,12 +537,12 @@ glabel sub_GAME_7F0CEEF0 /* 103A50 7F0CEF20 AFA7007C */ sw $a3, 0x7c($sp) /* 103A54 7F0CEF24 3C148009 */ lui $s4, %hi(dword_CODE_bss_8008D364) /* 103A58 7F0CEF28 3C118009 */ lui $s1, %hi(dword_CODE_bss_8008D368) -/* 103A5C 7F0CEF2C 3C158009 */ lui $s5, %hi(dword_CODE_bss_8008D35C) +/* 103A5C 7F0CEF2C 3C158009 */ lui $s5, %hi(rz_wp) /* 103A60 7F0CEF30 012F6021 */ addu $t4, $t1, $t7 /* 103A64 7F0CEF34 01396821 */ addu $t5, $t1, $t9 -/* 103A68 7F0CEF38 3C138009 */ lui $s3, %hi(dword_CODE_bss_8008D358) -/* 103A6C 7F0CEF3C 3C178009 */ lui $s7, %hi(dword_CODE_bss_8008D354) -/* 103A70 7F0CEF40 3C1E8009 */ lui $fp, %hi(dword_CODE_bss_8008D350) +/* 103A68 7F0CEF38 3C138009 */ lui $s3, %hi(rz_inptr) +/* 103A6C 7F0CEF3C 3C178009 */ lui $s7, %hi(rz_outbuf) +/* 103A70 7F0CEF40 3C1E8009 */ lui $fp, %hi(rz_inbuf) /* 103A74 7F0CEF44 AFB60030 */ sw $s6, 0x30($sp) /* 103A78 7F0CEF48 AFB20020 */ sw $s2, 0x20($sp) /* 103A7C 7F0CEF4C AFB00018 */ sw $s0, 0x18($sp) @@ -551,12 +551,12 @@ glabel sub_GAME_7F0CEEF0 /* 103A88 7F0CEF58 AFA60078 */ sw $a2, 0x78($sp) /* 103A8C 7F0CEF5C 8E94D364 */ lw $s4, %lo(dword_CODE_bss_8008D364)($s4) /* 103A90 7F0CEF60 8E31D368 */ lw $s1, %lo(dword_CODE_bss_8008D368)($s1) -/* 103A94 7F0CEF64 8EB5D35C */ lw $s5, %lo(dword_CODE_bss_8008D35C)($s5) +/* 103A94 7F0CEF64 8EB5D35C */ lw $s5, %lo(rz_wp)($s5) /* 103A98 7F0CEF68 958A0000 */ lhu $t2, ($t4) /* 103A9C 7F0CEF6C 95AB0000 */ lhu $t3, ($t5) -/* 103AA0 7F0CEF70 27DED350 */ addiu $fp, %lo(dword_CODE_bss_8008D350) # addiu $fp, $fp, -0x2cb0 -/* 103AA4 7F0CEF74 26F7D354 */ addiu $s7, %lo(dword_CODE_bss_8008D354) # addiu $s7, $s7, -0x2cac -/* 103AA8 7F0CEF78 2673D358 */ addiu $s3, %lo(dword_CODE_bss_8008D358) # addiu $s3, $s3, -0x2ca8 +/* 103AA0 7F0CEF70 27DED350 */ addiu $fp, %lo(rz_inbuf) # addiu $fp, $fp, -0x2cb0 +/* 103AA4 7F0CEF74 26F7D354 */ addiu $s7, %lo(rz_outbuf) # addiu $s7, $s7, -0x2cac +/* 103AA8 7F0CEF78 2673D358 */ addiu $s3, %lo(rz_inptr) # addiu $s3, $s3, -0x2ca8 /* 103AAC 7F0CEF7C 34078000 */ li $a3, 32768 /* 103AB0 7F0CEF80 00C0F825 */ move $ra, $a2 .L7F0CEF84: @@ -830,8 +830,8 @@ glabel sub_GAME_7F0CEEF0 /* 103E68 7F0CF338 1000FF13 */ b .L7F0CEF88 /* 103E6C 7F0CF33C 023F082B */ sltu $at, $s1, $ra .L7F0CF340: -/* 103E70 7F0CF340 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) -/* 103E74 7F0CF344 AC35D35C */ sw $s5, %lo(dword_CODE_bss_8008D35C)($at) +/* 103E70 7F0CF340 3C018009 */ lui $at, %hi(rz_wp) +/* 103E74 7F0CF344 AC35D35C */ sw $s5, %lo(rz_wp)($at) /* 103E78 7F0CF348 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D364) /* 103E7C 7F0CF34C AC34D364 */ sw $s4, %lo(dword_CODE_bss_8008D364)($at) /* 103E80 7F0CF350 8FBF003C */ lw $ra, 0x3c($sp) @@ -871,9 +871,9 @@ glabel zlib_decompressor_type0 /* 103ECC 7F0CF39C 254AD364 */ addiu $t2, %lo(dword_CODE_bss_8008D364) # addiu $t2, $t2, -0x2c9c /* 103ED0 7F0CF3A0 30820007 */ andi $v0, $a0, 7 /* 103ED4 7F0CF3A4 8D430000 */ lw $v1, ($t2) -/* 103ED8 7F0CF3A8 3C0C8009 */ lui $t4, %hi(dword_CODE_bss_8008D35C) +/* 103ED8 7F0CF3A8 3C0C8009 */ lui $t4, %hi(rz_wp) /* 103EDC 7F0CF3AC 00822023 */ subu $a0, $a0, $v0 -/* 103EE0 7F0CF3B0 258CD35C */ addiu $t4, %lo(dword_CODE_bss_8008D35C) # addiu $t4, $t4, -0x2ca4 +/* 103EE0 7F0CF3B0 258CD35C */ addiu $t4, %lo(rz_wp) # addiu $t4, $t4, -0x2ca4 /* 103EE4 7F0CF3B4 27BDFFF0 */ addiu $sp, $sp, -0x10 /* 103EE8 7F0CF3B8 2C810010 */ sltiu $at, $a0, 0x10 /* 103EEC 7F0CF3BC AFB1000C */ sw $s1, 0xc($sp) @@ -881,10 +881,10 @@ glabel zlib_decompressor_type0 /* 103EF4 7F0CF3C4 8D850000 */ lw $a1, ($t4) /* 103EF8 7F0CF3C8 1020000F */ beqz $at, .L7F0CF408 /* 103EFC 7F0CF3CC 00431806 */ srlv $v1, $v1, $v0 -/* 103F00 7F0CF3D0 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) -/* 103F04 7F0CF3D4 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) -/* 103F08 7F0CF3D8 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 -/* 103F0C 7F0CF3DC 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +/* 103F00 7F0CF3D0 3C068009 */ lui $a2, %hi(rz_inbuf) +/* 103F04 7F0CF3D4 3C0D8009 */ lui $t5, %hi(rz_inptr) +/* 103F08 7F0CF3D8 25ADD358 */ addiu $t5, %lo(rz_inptr) # addiu $t5, $t5, -0x2ca8 +/* 103F0C 7F0CF3DC 8CC6D350 */ lw $a2, %lo(rz_inbuf)($a2) .L7F0CF3E0: /* 103F10 7F0CF3E0 8DA70000 */ lw $a3, ($t5) /* 103F14 7F0CF3E4 00C77021 */ addu $t6, $a2, $a3 @@ -898,15 +898,15 @@ glabel zlib_decompressor_type0 /* 103F34 7F0CF404 00781825 */ or $v1, $v1, $t8 .L7F0CF408: /* 103F38 7F0CF408 2484FFF0 */ addiu $a0, $a0, -0x10 -/* 103F3C 7F0CF40C 3C0D8009 */ lui $t5, %hi(dword_CODE_bss_8008D358) +/* 103F3C 7F0CF40C 3C0D8009 */ lui $t5, %hi(rz_inptr) /* 103F40 7F0CF410 3062FFFF */ andi $v0, $v1, 0xffff /* 103F44 7F0CF414 00037402 */ srl $t6, $v1, 0x10 /* 103F48 7F0CF418 2C810010 */ sltiu $at, $a0, 0x10 -/* 103F4C 7F0CF41C 25ADD358 */ addiu $t5, %lo(dword_CODE_bss_8008D358) # addiu $t5, $t5, -0x2ca8 +/* 103F4C 7F0CF41C 25ADD358 */ addiu $t5, %lo(rz_inptr) # addiu $t5, $t5, -0x2ca8 /* 103F50 7F0CF420 1020000D */ beqz $at, .L7F0CF458 /* 103F54 7F0CF424 01C01825 */ move $v1, $t6 -/* 103F58 7F0CF428 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) -/* 103F5C 7F0CF42C 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +/* 103F58 7F0CF428 3C068009 */ lui $a2, %hi(rz_inbuf) +/* 103F5C 7F0CF42C 8CC6D350 */ lw $a2, %lo(rz_inbuf)($a2) .L7F0CF430: /* 103F60 7F0CF430 8DA70000 */ lw $a3, ($t5) /* 103F64 7F0CF434 00C77821 */ addu $t7, $a2, $a3 @@ -925,14 +925,14 @@ glabel zlib_decompressor_type0 /* 103F94 7F0CF464 2484FFF0 */ addiu $a0, $a0, -0x10 /* 103F98 7F0CF468 10400027 */ beqz $v0, .L7F0CF508 /* 103F9C 7F0CF46C 2442FFFF */ addiu $v0, $v0, -1 -/* 103FA0 7F0CF470 3C108009 */ lui $s0, %hi(dword_CODE_bss_8008D354) -/* 103FA4 7F0CF474 2610D354 */ addiu $s0, %lo(dword_CODE_bss_8008D354) # addiu $s0, $s0, -0x2cac +/* 103FA0 7F0CF470 3C108009 */ lui $s0, %hi(rz_outbuf) +/* 103FA4 7F0CF474 2610D354 */ addiu $s0, %lo(rz_outbuf) # addiu $s0, $s0, -0x2cac /* 103FA8 7F0CF478 34118000 */ li $s1, 32768 .L7F0CF47C: -/* 103FAC 7F0CF47C 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) +/* 103FAC 7F0CF47C 3C068009 */ lui $a2, %hi(rz_inbuf) /* 103FB0 7F0CF480 2C810008 */ sltiu $at, $a0, 8 /* 103FB4 7F0CF484 1020000B */ beqz $at, .L7F0CF4B4 -/* 103FB8 7F0CF488 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +/* 103FB8 7F0CF488 8CC6D350 */ lw $a2, %lo(rz_inbuf)($a2) .L7F0CF48C: /* 103FBC 7F0CF48C 8DA70000 */ lw $a3, ($t5) /* 103FC0 7F0CF490 00C7C021 */ addu $t8, $a2, $a3 @@ -1211,10 +1211,10 @@ glabel zlib_decompressor_type2 /* 1041D8 7F0CF6A8 AFB00028 */ sw $s0, 0x28($sp) /* 1041DC 7F0CF6AC 1020000F */ beqz $at, .L7F0CF6EC /* 1041E0 7F0CF6B0 8D29D364 */ lw $t1, %lo(dword_CODE_bss_8008D364)($t1) -/* 1041E4 7F0CF6B4 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 1041E8 7F0CF6B8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) -/* 1041EC 7F0CF6BC 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 -/* 1041F0 7F0CF6C0 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 1041E4 7F0CF6B4 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 1041E8 7F0CF6B8 3C0A8009 */ lui $t2, %hi(rz_inptr) +/* 1041EC 7F0CF6BC 254AD358 */ addiu $t2, %lo(rz_inptr) # addiu $t2, $t2, -0x2ca8 +/* 1041F0 7F0CF6C0 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF6C4: /* 1041F4 7F0CF6C4 8D420000 */ lw $v0, ($t2) /* 1041F8 7F0CF6C8 00627021 */ addu $t6, $v1, $v0 @@ -1229,16 +1229,16 @@ glabel zlib_decompressor_type2 .L7F0CF6EC: /* 10421C 7F0CF6EC 312E001F */ andi $t6, $t1, 0x1f /* 104220 7F0CF6F0 2508FFFB */ addiu $t0, $t0, -5 -/* 104224 7F0CF6F4 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 104224 7F0CF6F4 3C0A8009 */ lui $t2, %hi(rz_inptr) /* 104228 7F0CF6F8 25CF0101 */ addiu $t7, $t6, 0x101 /* 10422C 7F0CF6FC 0009C142 */ srl $t8, $t1, 5 /* 104230 7F0CF700 2D010005 */ sltiu $at, $t0, 5 -/* 104234 7F0CF704 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 104234 7F0CF704 254AD358 */ addiu $t2, %lo(rz_inptr) # addiu $t2, $t2, -0x2ca8 /* 104238 7F0CF708 AFAF053C */ sw $t7, 0x53c($sp) /* 10423C 7F0CF70C 1020000D */ beqz $at, .L7F0CF744 /* 104240 7F0CF710 03004825 */ move $t1, $t8 -/* 104244 7F0CF714 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 104248 7F0CF718 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 104244 7F0CF714 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 104248 7F0CF718 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF71C: /* 10424C 7F0CF71C 8D420000 */ lw $v0, ($t2) /* 104250 7F0CF720 0062C821 */ addu $t9, $v1, $v0 @@ -1259,8 +1259,8 @@ glabel zlib_decompressor_type2 /* 104288 7F0CF758 AFAE0538 */ sw $t6, 0x538($sp) /* 10428C 7F0CF75C 1020000D */ beqz $at, .L7F0CF794 /* 104290 7F0CF760 01E04825 */ move $t1, $t7 -/* 104294 7F0CF764 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 104298 7F0CF768 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 104294 7F0CF764 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 104298 7F0CF768 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF76C: /* 10429C 7F0CF76C 8D420000 */ lw $v0, ($t2) /* 1042A0 7F0CF770 0062C021 */ addu $t8, $v1, $v0 @@ -1287,8 +1287,8 @@ glabel zlib_decompressor_type2 /* 1042EC 7F0CF7BC 2D010003 */ sltiu $at, $t0, 3 /* 1042F0 7F0CF7C0 1020000D */ beqz $at, .L7F0CF7F8 /* 1042F4 7F0CF7C4 24840001 */ addiu $a0, $a0, 1 -/* 1042F8 7F0CF7C8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 1042FC 7F0CF7CC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 1042F8 7F0CF7C8 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 1042FC 7F0CF7CC 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF7D0: /* 104300 7F0CF7D0 8D420000 */ lw $v0, ($t2) /* 104304 7F0CF7D4 0062C821 */ addu $t9, $v1, $v0 @@ -1348,10 +1348,10 @@ glabel zlib_decompressor_type2 /* 1043CC 7F0CF89C 8FAF0538 */ lw $t7, 0x538($sp) /* 1043D0 7F0CF8A0 3C0B8005 */ lui $t3, %hi(D_8004E9B0) /* 1043D4 7F0CF8A4 0019C040 */ sll $t8, $t9, 1 -/* 1043D8 7F0CF8A8 3C0A8009 */ lui $t2, %hi(dword_CODE_bss_8008D358) +/* 1043D8 7F0CF8A8 3C0A8009 */ lui $t2, %hi(rz_inptr) /* 1043DC 7F0CF8AC 01785821 */ addu $t3, $t3, $t8 /* 1043E0 7F0CF8B0 01CF3821 */ addu $a3, $t6, $t7 -/* 1043E4 7F0CF8B4 254AD358 */ addiu $t2, %lo(dword_CODE_bss_8008D358) # addiu $t2, $t2, -0x2ca8 +/* 1043E4 7F0CF8B4 254AD358 */ addiu $t2, %lo(rz_inptr) # addiu $t2, $t2, -0x2ca8 /* 1043E8 7F0CF8B8 8FA80534 */ lw $t0, 0x534($sp) /* 1043EC 7F0CF8BC 8FA90530 */ lw $t1, 0x530($sp) /* 1043F0 7F0CF8C0 956BE9B0 */ lhu $t3, %lo(D_8004E9B0)($t3) @@ -1362,11 +1362,11 @@ glabel zlib_decompressor_type2 /* 104404 7F0CF8D4 240C0010 */ li $t4, 16 /* 104408 7F0CF8D8 8FAE0548 */ lw $t6, 0x548($sp) .L7F0CF8DC: -/* 10440C 7F0CF8DC 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) +/* 10440C 7F0CF8DC 3C038009 */ lui $v1, %hi(rz_inbuf) /* 104410 7F0CF8E0 010E082B */ sltu $at, $t0, $t6 /* 104414 7F0CF8E4 5020000E */ beql $at, $zero, .L7F0CF920 /* 104418 7F0CF8E8 8FAE0550 */ lw $t6, 0x550($sp) -/* 10441C 7F0CF8EC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 10441C 7F0CF8EC 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF8F0: /* 104420 7F0CF8F0 8D420000 */ lw $v0, ($t2) /* 104424 7F0CF8F4 00627821 */ addu $t7, $v1, $v0 @@ -1402,8 +1402,8 @@ glabel zlib_decompressor_type2 /* 104494 7F0CF964 148C0020 */ bne $a0, $t4, .L7F0CF9E8 /* 104498 7F0CF968 2D010002 */ sltiu $at, $t0, 2 /* 10449C 7F0CF96C 1020000C */ beqz $at, .L7F0CF9A0 -/* 1044A0 7F0CF970 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 1044A4 7F0CF974 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 1044A0 7F0CF970 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 1044A4 7F0CF974 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CF978: /* 1044A8 7F0CF978 8D420000 */ lw $v0, ($t2) /* 1044AC 7F0CF97C 00627021 */ addu $t6, $v1, $v0 @@ -1440,8 +1440,8 @@ glabel zlib_decompressor_type2 /* 10451C 7F0CF9EC 00003025 */ move $a2, $zero /* 104520 7F0CF9F0 2D010003 */ sltiu $at, $t0, 3 /* 104524 7F0CF9F4 1020000C */ beqz $at, .L7F0CFA28 -/* 104528 7F0CF9F8 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 10452C 7F0CF9FC 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 104528 7F0CF9F8 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 10452C 7F0CF9FC 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CFA00: /* 104530 7F0CFA00 8D420000 */ lw $v0, ($t2) /* 104534 7F0CFA04 0062C821 */ addu $t9, $v1, $v0 @@ -1476,8 +1476,8 @@ glabel zlib_decompressor_type2 .L7F0CFA70: /* 1045A0 7F0CFA70 2D010007 */ sltiu $at, $t0, 7 /* 1045A4 7F0CFA74 1020000C */ beqz $at, .L7F0CFAA8 -/* 1045A8 7F0CFA78 3C038009 */ lui $v1, %hi(dword_CODE_bss_8008D350) -/* 1045AC 7F0CFA7C 8C63D350 */ lw $v1, %lo(dword_CODE_bss_8008D350)($v1) +/* 1045A8 7F0CFA78 3C038009 */ lui $v1, %hi(rz_inbuf) +/* 1045AC 7F0CFA7C 8C63D350 */ lw $v1, %lo(rz_inbuf)($v1) .L7F0CFA80: /* 1045B0 7F0CFA80 8D420000 */ lw $v0, ($t2) /* 1045B4 7F0CFA84 00627021 */ addu $t6, $v1, $v0 @@ -1596,14 +1596,14 @@ void select_zlib_decompression_routine(void *arg0, s32 arg2) phi_v1 = dword_CODE_bss_8008D368; phi_a1_3 = dword_CODE_bss_8008D364; block_2: - dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + rz_inptr = (s32) (rz_inptr + 1); temp_v1 = (phi_v1 + 8); - temp_a1 = (phi_a1_3 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1)); + temp_a1 = (phi_a1_3 | (*(rz_inbuf + rz_inptr) << phi_v1)); phi_v1 = temp_v1; phi_a1 = temp_a1; phi_v1_2 = temp_v1; phi_a1_3 = temp_a1; - phi_a2 = dword_CODE_bss_8008D350; + phi_a2 = rz_inbuf; if (temp_v1 == 0) { goto block_2; @@ -1619,13 +1619,13 @@ block_2: phi_v1_3 = temp_v1_2; phi_a1_4 = temp_t3; block_5: - dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + 1); + rz_inptr = (s32) (rz_inptr + 1); temp_v1_3 = (phi_v1_3 + 8); - temp_a1_2 = (phi_a1_4 | (*(dword_CODE_bss_8008D350 + dword_CODE_bss_8008D358) << phi_v1_3)); + temp_a1_2 = (phi_a1_4 | (*(rz_inbuf + rz_inptr) << phi_v1_3)); phi_v1_3 = temp_v1_3; phi_a1_2 = temp_a1_2; phi_v1_4 = temp_v1_3; - phi_a2 = dword_CODE_bss_8008D350; + phi_a2 = rz_inbuf; phi_a1_4 = temp_a1_2; if (temp_v1_3 < 2U) { @@ -1637,15 +1637,15 @@ block_5: dword_CODE_bss_8008D368 = (s32) (phi_v1_4 + -2); if (temp_v0 == 2) { - return zlib_decompressor_type2(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + return zlib_decompressor_type2(&rz_inptr, phi_a1_2, phi_a2, arg0); } if (temp_v0 == 0) { - return zlib_decompressor_type0(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + return zlib_decompressor_type0(&rz_inptr, phi_a1_2, phi_a2, arg0); } if (temp_v0 == 1) { - return zlib_decompressor_type1(&dword_CODE_bss_8008D358, phi_a1_2, phi_a2, arg0); + return zlib_decompressor_type1(&rz_inptr, phi_a1_2, phi_a2, arg0); } return 2; } @@ -1663,10 +1663,10 @@ glabel select_zlib_decompression_routine /* 104700 7F0CFBD0 00803825 */ move $a3, $a0 /* 104704 7F0CFBD4 1460000E */ bnez $v1, .L7F0CFC10 /* 104708 7F0CFBD8 8D050000 */ lw $a1, ($t0) -/* 10470C 7F0CFBDC 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) -/* 104710 7F0CFBE0 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) -/* 104714 7F0CFBE4 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 -/* 104718 7F0CFBE8 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +/* 10470C 7F0CFBDC 3C068009 */ lui $a2, %hi(rz_inbuf) +/* 104710 7F0CFBE0 3C048009 */ lui $a0, %hi(rz_inptr) +/* 104714 7F0CFBE4 2484D358 */ addiu $a0, %lo(rz_inptr) # addiu $a0, $a0, -0x2ca8 +/* 104718 7F0CFBE8 8CC6D350 */ lw $a2, %lo(rz_inbuf)($a2) .L7F0CFBEC: /* 10471C 7F0CFBEC 8C820000 */ lw $v0, ($a0) /* 104720 7F0CFBF0 00C27021 */ addu $t6, $a2, $v0 @@ -1679,16 +1679,16 @@ glabel select_zlib_decompression_routine /* 10473C 7F0CFC0C 00B82825 */ or $a1, $a1, $t8 .L7F0CFC10: /* 104740 7F0CFC10 2463FFFF */ addiu $v1, $v1, -1 -/* 104744 7F0CFC14 3C048009 */ lui $a0, %hi(dword_CODE_bss_8008D358) +/* 104744 7F0CFC14 3C048009 */ lui $a0, %hi(rz_inptr) /* 104748 7F0CFC18 30AA0001 */ andi $t2, $a1, 1 /* 10474C 7F0CFC1C 00055842 */ srl $t3, $a1, 1 /* 104750 7F0CFC20 2C610002 */ sltiu $at, $v1, 2 -/* 104754 7F0CFC24 2484D358 */ addiu $a0, %lo(dword_CODE_bss_8008D358) # addiu $a0, $a0, -0x2ca8 +/* 104754 7F0CFC24 2484D358 */ addiu $a0, %lo(rz_inptr) # addiu $a0, $a0, -0x2ca8 /* 104758 7F0CFC28 ACEA0000 */ sw $t2, ($a3) /* 10475C 7F0CFC2C 1020000D */ beqz $at, .L7F0CFC64 /* 104760 7F0CFC30 01602825 */ move $a1, $t3 -/* 104764 7F0CFC34 3C068009 */ lui $a2, %hi(dword_CODE_bss_8008D350) -/* 104768 7F0CFC38 8CC6D350 */ lw $a2, %lo(dword_CODE_bss_8008D350)($a2) +/* 104764 7F0CFC34 3C068009 */ lui $a2, %hi(rz_inbuf) +/* 104768 7F0CFC38 8CC6D350 */ lw $a2, %lo(rz_inbuf)($a2) .L7F0CFC3C: /* 10476C 7F0CFC3C 8C820000 */ lw $v0, ($a0) /* 104770 7F0CFC40 00C26021 */ addu $t4, $a2, $v0 @@ -1749,7 +1749,7 @@ void loop_to_decompress_entire_file(void) u32 phi_s1; u32 phi_v1; - dword_CODE_bss_8008D35C = 0; + rz_wp = 0; dword_CODE_bss_8008D368 = 0U; dword_CODE_bss_8008D364 = 0; phi_s1 = 0U; @@ -1775,7 +1775,7 @@ block_1: block_7: temp_t7 = (phi_v1 + -8); dword_CODE_bss_8008D368 = temp_t7; - dword_CODE_bss_8008D358 = (s32) (dword_CODE_bss_8008D358 + -1); + rz_inptr = (s32) (rz_inptr + -1); phi_v1 = temp_t7; if (temp_t7 >= 8U) { @@ -1790,9 +1790,9 @@ GLOBAL_ASM( glabel loop_to_decompress_entire_file /* 104804 7F0CFCD4 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 104808 7F0CFCD8 AFB2001C */ sw $s2, 0x1c($sp) -/* 10480C 7F0CFCDC 3C018009 */ lui $at, %hi(dword_CODE_bss_8008D35C) +/* 10480C 7F0CFCDC 3C018009 */ lui $at, %hi(rz_wp) /* 104810 7F0CFCE0 3C128009 */ lui $s2, %hi(dword_CODE_bss_8008D368) -/* 104814 7F0CFCE4 AC20D35C */ sw $zero, %lo(dword_CODE_bss_8008D35C)($at) +/* 104814 7F0CFCE4 AC20D35C */ sw $zero, %lo(rz_wp)($at) /* 104818 7F0CFCE8 2652D368 */ addiu $s2, %lo(dword_CODE_bss_8008D368) # addiu $s2, $s2, -0x2c98 /* 10481C 7F0CFCEC AFB00014 */ sw $s0, 0x14($sp) /* 104820 7F0CFCF0 AFB30020 */ sw $s3, 0x20($sp) @@ -1823,8 +1823,8 @@ glabel loop_to_decompress_entire_file /* 104878 7F0CFD48 51C0FFF4 */ beql $t6, $zero, .L7F0CFD1C /* 10487C 7F0CFD4C AE000000 */ sw $zero, ($s0) /* 104880 7F0CFD50 8E430000 */ lw $v1, ($s2) -/* 104884 7F0CFD54 3C028009 */ lui $v0, %hi(dword_CODE_bss_8008D358) -/* 104888 7F0CFD58 2442D358 */ addiu $v0, %lo(dword_CODE_bss_8008D358) # addiu $v0, $v0, -0x2ca8 +/* 104884 7F0CFD54 3C028009 */ lui $v0, %hi(rz_inptr) +/* 104888 7F0CFD58 2442D358 */ addiu $v0, %lo(rz_inptr) # addiu $v0, $v0, -0x2ca8 /* 10488C 7F0CFD5C 2C610008 */ sltiu $at, $v1, 8 /* 104890 7F0CFD60 5420000A */ bnezl $at, .L7F0CFD8C /* 104894 7F0CFD64 00001025 */ move $v0, $zero diff --git a/src/game/zlib.h b/src/game/zlib.h index 6aa11c2..c94e2c5 100644 --- a/src/game/zlib.h +++ b/src/game/zlib.h @@ -2,4 +2,10 @@ #define _ZLIB_H_ #include "ultra64.h" +extern u8 *rz_inbuf; +extern u8 *rz_outbuf; +extern u32 rz_inptr; +extern u32 rz_wp; +extern struct huft *rz_hlist; + #endif diff --git a/src/inflate/inflate.c b/src/inflate/inflate.c index 6cd0e1c..fa926a2 100644 --- a/src/inflate/inflate.c +++ b/src/inflate/inflate.c @@ -56,739 +56,279 @@ u32 dbits = 6; u32 hufts = 0; -GLOBAL_ASM( -glabel huft_build -/* 033590 70200000 27BDFA10 */ addiu $sp, $sp, -0x5f0 -/* 033594 70200004 AFB20010 */ sw $s2, 0x10($sp) -/* 033598 70200008 00809025 */ move $s2, $a0 -/* 03359C 7020000C AFBF002C */ sw $ra, 0x2c($sp) -/* 0335A0 70200010 AFBE0028 */ sw $fp, 0x28($sp) -/* 0335A4 70200014 AFB70024 */ sw $s7, 0x24($sp) -/* 0335A8 70200018 AFB60020 */ sw $s6, 0x20($sp) -/* 0335AC 7020001C AFB5001C */ sw $s5, 0x1c($sp) -/* 0335B0 70200020 AFB40018 */ sw $s4, 0x18($sp) -/* 0335B4 70200024 AFB30014 */ sw $s3, 0x14($sp) -/* 0335B8 70200028 AFB1000C */ sw $s1, 0xc($sp) -/* 0335BC 7020002C AFB00008 */ sw $s0, 8($sp) -/* 0335C0 70200030 AFA605F8 */ sw $a2, 0x5f8($sp) -/* 0335C4 70200034 AFA705FC */ sw $a3, 0x5fc($sp) -/* 0335C8 70200038 AFA005A8 */ sw $zero, 0x5a8($sp) -/* 0335CC 7020003C 27A305AC */ addiu $v1, $sp, 0x5ac -/* 0335D0 70200040 27A205EC */ addiu $v0, $sp, 0x5ec -.L70200044: -/* 0335D4 70200044 24630010 */ addiu $v1, $v1, 0x10 -/* 0335D8 70200048 AC60FFF4 */ sw $zero, -0xc($v1) -/* 0335DC 7020004C AC60FFF8 */ sw $zero, -8($v1) -/* 0335E0 70200050 AC60FFFC */ sw $zero, -4($v1) -/* 0335E4 70200054 1462FFFB */ bne $v1, $v0, .L70200044 -/* 0335E8 70200058 AC60FFF0 */ sw $zero, -0x10($v1) -/* 0335EC 7020005C 30A20003 */ andi $v0, $a1, 3 -/* 0335F0 70200060 00021023 */ negu $v0, $v0 -/* 0335F4 70200064 0240F825 */ move $ra, $s2 -/* 0335F8 70200068 1040000D */ beqz $v0, .L702000A0 -/* 0335FC 7020006C 00A08025 */ move $s0, $a1 -/* 033600 70200070 00451821 */ addu $v1, $v0, $a1 -/* 033604 70200074 27A405A8 */ addiu $a0, $sp, 0x5a8 -.L70200078: -/* 033608 70200078 8FEE0000 */ lw $t6, ($ra) -/* 03360C 7020007C 2610FFFF */ addiu $s0, $s0, -1 -/* 033610 70200080 27FF0004 */ addiu $ra, $ra, 4 -/* 033614 70200084 000E7880 */ sll $t7, $t6, 2 -/* 033618 70200088 008F1021 */ addu $v0, $a0, $t7 -/* 03361C 7020008C 8C580000 */ lw $t8, ($v0) -/* 033620 70200090 27190001 */ addiu $t9, $t8, 1 -/* 033624 70200094 1470FFF8 */ bne $v1, $s0, .L70200078 -/* 033628 70200098 AC590000 */ sw $t9, ($v0) -/* 03362C 7020009C 1200001C */ beqz $s0, .L70200110 -.L702000A0: -/* 033630 702000A0 27A405A8 */ addiu $a0, $sp, 0x5a8 -.L702000A4: -/* 033634 702000A4 8FEE0000 */ lw $t6, ($ra) -/* 033638 702000A8 2610FFFC */ addiu $s0, $s0, -4 -/* 03363C 702000AC 27FF0010 */ addiu $ra, $ra, 0x10 -/* 033640 702000B0 000E7880 */ sll $t7, $t6, 2 -/* 033644 702000B4 008F1021 */ addu $v0, $a0, $t7 -/* 033648 702000B8 8C580000 */ lw $t8, ($v0) -/* 03364C 702000BC 27190001 */ addiu $t9, $t8, 1 -/* 033650 702000C0 AC590000 */ sw $t9, ($v0) -/* 033654 702000C4 8FEEFFF4 */ lw $t6, -0xc($ra) -/* 033658 702000C8 000E7880 */ sll $t7, $t6, 2 -/* 03365C 702000CC 008F1021 */ addu $v0, $a0, $t7 -/* 033660 702000D0 8C580000 */ lw $t8, ($v0) -/* 033664 702000D4 27190001 */ addiu $t9, $t8, 1 -/* 033668 702000D8 AC590000 */ sw $t9, ($v0) -/* 03366C 702000DC 8FEEFFF8 */ lw $t6, -8($ra) -/* 033670 702000E0 000E7880 */ sll $t7, $t6, 2 -/* 033674 702000E4 008F1021 */ addu $v0, $a0, $t7 -/* 033678 702000E8 8C580000 */ lw $t8, ($v0) -/* 03367C 702000EC 27190001 */ addiu $t9, $t8, 1 -/* 033680 702000F0 AC590000 */ sw $t9, ($v0) -/* 033684 702000F4 8FEEFFFC */ lw $t6, -4($ra) -/* 033688 702000F8 000E7880 */ sll $t7, $t6, 2 -/* 03368C 702000FC 008F1021 */ addu $v0, $a0, $t7 -/* 033690 70200100 8C580000 */ lw $t8, ($v0) -/* 033694 70200104 27190001 */ addiu $t9, $t8, 1 -/* 033698 70200108 1600FFE6 */ bnez $s0, .L702000A4 -/* 03369C 7020010C AC590000 */ sw $t9, ($v0) -.L70200110: -/* 0336A0 70200110 8FAE05A8 */ lw $t6, 0x5a8($sp) -/* 0336A4 70200114 8FA60608 */ lw $a2, 0x608($sp) -/* 0336A8 70200118 24070001 */ li $a3, 1 -/* 0336AC 7020011C 14AE0007 */ bne $a1, $t6, .L7020013C -/* 0336B0 70200120 27A805AC */ addiu $t0, $sp, 0x5ac -/* 0336B4 70200124 8FB60604 */ lw $s6, 0x604($sp) -/* 0336B8 70200128 8FA60608 */ lw $a2, 0x608($sp) -/* 0336BC 7020012C 00001025 */ move $v0, $zero -/* 0336C0 70200130 AEC00000 */ sw $zero, ($s6) -/* 0336C4 70200134 1000013B */ b .L70200624 -/* 0336C8 70200138 ACC00000 */ sw $zero, ($a2) -.L7020013C: -/* 0336CC 7020013C 8CD10000 */ lw $s1, ($a2) -/* 0336D0 70200140 24020011 */ li $v0, 17 -.L70200144: -/* 0336D4 70200144 8D0F0000 */ lw $t7, ($t0) -/* 0336D8 70200148 55E00005 */ bnezl $t7, .L70200160 -/* 0336DC 7020014C 0227082B */ sltu $at, $s1, $a3 -/* 0336E0 70200150 24E70001 */ addiu $a3, $a3, 1 -/* 0336E4 70200154 14E2FFFB */ bne $a3, $v0, .L70200144 -/* 0336E8 70200158 25080004 */ addiu $t0, $t0, 4 -/* 0336EC 7020015C 0227082B */ sltu $at, $s1, $a3 -.L70200160: -/* 0336F0 70200160 10200002 */ beqz $at, .L7020016C -/* 0336F4 70200164 00E0A825 */ move $s5, $a3 -/* 0336F8 70200168 00E08825 */ move $s1, $a3 -.L7020016C: -/* 0336FC 7020016C 24100010 */ li $s0, 16 -/* 033700 70200170 27A205E8 */ addiu $v0, $sp, 0x5e8 -.L70200174: -/* 033704 70200174 8C580000 */ lw $t8, ($v0) -/* 033708 70200178 57000005 */ bnezl $t8, .L70200190 -/* 03370C 7020017C 0211082B */ sltu $at, $s0, $s1 -/* 033710 70200180 2610FFFF */ addiu $s0, $s0, -1 -/* 033714 70200184 1600FFFB */ bnez $s0, .L70200174 -/* 033718 70200188 2442FFFC */ addiu $v0, $v0, -4 -/* 03371C 7020018C 0211082B */ sltu $at, $s0, $s1 -.L70200190: -/* 033720 70200190 10200002 */ beqz $at, .L7020019C -/* 033724 70200194 AFB005A0 */ sw $s0, 0x5a0($sp) -/* 033728 70200198 02008825 */ move $s1, $s0 -.L7020019C: -/* 03372C 7020019C 24190001 */ li $t9, 1 -/* 033730 702001A0 00F0082B */ sltu $at, $a3, $s0 -/* 033734 702001A4 ACD10000 */ sw $s1, ($a2) -/* 033738 702001A8 1020000B */ beqz $at, .L702001D8 -/* 03373C 702001AC 00F91804 */ sllv $v1, $t9, $a3 -/* 033740 702001B0 00107080 */ sll $t6, $s0, 2 -/* 033744 702001B4 27AF05A8 */ addiu $t7, $sp, 0x5a8 -/* 033748 702001B8 01CF3021 */ addu $a2, $t6, $t7 -.L702001BC: -/* 03374C 702001BC 8D180000 */ lw $t8, ($t0) -/* 033750 702001C0 25080004 */ addiu $t0, $t0, 4 -/* 033754 702001C4 0106082B */ sltu $at, $t0, $a2 -/* 033758 702001C8 00781823 */ subu $v1, $v1, $t8 -/* 03375C 702001CC 0003C840 */ sll $t9, $v1, 1 -/* 033760 702001D0 1420FFFA */ bnez $at, .L702001BC -/* 033764 702001D4 03201825 */ move $v1, $t9 -.L702001D8: -/* 033768 702001D8 8C480000 */ lw $t0, ($v0) -/* 03376C 702001DC 2610FFFF */ addiu $s0, $s0, -1 -/* 033770 702001E0 00003825 */ move $a3, $zero -/* 033774 702001E4 00681823 */ subu $v1, $v1, $t0 -/* 033778 702001E8 01037021 */ addu $t6, $t0, $v1 -/* 03377C 702001EC AC4E0000 */ sw $t6, ($v0) -/* 033780 702001F0 AFA00078 */ sw $zero, 0x78($sp) -/* 033784 702001F4 27BF05AC */ addiu $ra, $sp, 0x5ac -/* 033788 702001F8 27A6007C */ addiu $a2, $sp, 0x7c -/* 03378C 702001FC AFA505F4 */ sw $a1, 0x5f4($sp) -/* 033790 70200200 12000023 */ beqz $s0, .L70200290 -/* 033794 70200204 2442FFFC */ addiu $v0, $v0, -4 -/* 033798 70200208 32080003 */ andi $t0, $s0, 3 -/* 03379C 7020020C 00084023 */ negu $t0, $t0 -/* 0337A0 70200210 1100000E */ beqz $t0, .L7020024C -/* 0337A4 70200214 AFA505F4 */ sw $a1, 0x5f4($sp) -/* 0337A8 70200218 01104821 */ addu $t1, $t0, $s0 -/* 0337AC 7020021C 00097880 */ sll $t7, $t1, 2 -/* 0337B0 70200220 27B805A8 */ addiu $t8, $sp, 0x5a8 -/* 0337B4 70200224 01F82821 */ addu $a1, $t7, $t8 -.L70200228: -/* 0337B8 70200228 8FF90000 */ lw $t9, ($ra) -/* 0337BC 7020022C 2442FFFC */ addiu $v0, $v0, -4 -/* 0337C0 70200230 24C60004 */ addiu $a2, $a2, 4 -/* 0337C4 70200234 00F93821 */ addu $a3, $a3, $t9 -/* 0337C8 70200238 ACC7FFFC */ sw $a3, -4($a2) -/* 0337CC 7020023C 14A2FFFA */ bne $a1, $v0, .L70200228 -/* 0337D0 70200240 27FF0004 */ addiu $ra, $ra, 4 -/* 0337D4 70200244 27AE05A8 */ addiu $t6, $sp, 0x5a8 -/* 0337D8 70200248 104E0011 */ beq $v0, $t6, .L70200290 -.L7020024C: -/* 0337DC 7020024C 27A505A8 */ addiu $a1, $sp, 0x5a8 -.L70200250: -/* 0337E0 70200250 8FF80000 */ lw $t8, ($ra) -/* 0337E4 70200254 2442FFF0 */ addiu $v0, $v0, -0x10 -/* 0337E8 70200258 24C60010 */ addiu $a2, $a2, 0x10 -/* 0337EC 7020025C 00F83821 */ addu $a3, $a3, $t8 -/* 0337F0 70200260 ACC7FFF0 */ sw $a3, -0x10($a2) -/* 0337F4 70200264 8FF90004 */ lw $t9, 4($ra) -/* 0337F8 70200268 27FF0010 */ addiu $ra, $ra, 0x10 -/* 0337FC 7020026C 00F93821 */ addu $a3, $a3, $t9 -/* 033800 70200270 ACC7FFF4 */ sw $a3, -0xc($a2) -/* 033804 70200274 8FEEFFF8 */ lw $t6, -8($ra) -/* 033808 70200278 00EE3821 */ addu $a3, $a3, $t6 -/* 03380C 7020027C ACC7FFF8 */ sw $a3, -8($a2) -/* 033810 70200280 8FEFFFFC */ lw $t7, -4($ra) -/* 033814 70200284 00EF3821 */ addu $a3, $a3, $t7 -/* 033818 70200288 1445FFF1 */ bne $v0, $a1, .L70200250 -/* 03381C 7020028C ACC7FFFC */ sw $a3, -4($a2) -.L70200290: -/* 033820 70200290 8FAB05F4 */ lw $t3, 0x5f4($sp) -/* 033824 70200294 0240F825 */ move $ra, $s2 -/* 033828 70200298 00008025 */ move $s0, $zero -/* 03382C 7020029C 27A900BC */ addiu $t1, $sp, 0xbc -/* 033830 702002A0 27A60074 */ addiu $a2, $sp, 0x74 -/* 033834 702002A4 8FE70000 */ lw $a3, ($ra) -.L702002A8: -/* 033838 702002A8 27FF0004 */ addiu $ra, $ra, 4 -/* 03383C 702002AC 10E00008 */ beqz $a3, .L702002D0 -/* 033840 702002B0 0007C880 */ sll $t9, $a3, 2 -/* 033844 702002B4 00D91021 */ addu $v0, $a2, $t9 -/* 033848 702002B8 8C450000 */ lw $a1, ($v0) -/* 03384C 702002BC 00057080 */ sll $t6, $a1, 2 -/* 033850 702002C0 012E7821 */ addu $t7, $t1, $t6 -/* 033854 702002C4 ADF00000 */ sw $s0, ($t7) -/* 033858 702002C8 24B80001 */ addiu $t8, $a1, 1 -/* 03385C 702002CC AC580000 */ sw $t8, ($v0) -.L702002D0: -/* 033860 702002D0 26100001 */ addiu $s0, $s0, 1 -/* 033864 702002D4 020B082B */ sltu $at, $s0, $t3 -/* 033868 702002D8 5420FFF3 */ bnezl $at, .L702002A8 -/* 03386C 702002DC 8FE70000 */ lw $a3, ($ra) -/* 033870 702002E0 8FB905A0 */ lw $t9, 0x5a0($sp) -/* 033874 702002E4 AFA3006C */ sw $v1, 0x6c($sp) -/* 033878 702002E8 00008025 */ move $s0, $zero -/* 03387C 702002EC 0335082A */ slt $at, $t9, $s5 -/* 033880 702002F0 AFA00074 */ sw $zero, 0x74($sp) -/* 033884 702002F4 0120F825 */ move $ra, $t1 -/* 033888 702002F8 240CFFFF */ li $t4, -1 -/* 03388C 702002FC 00115023 */ negu $t2, $s1 -/* 033890 70200300 AFA0053C */ sw $zero, 0x53c($sp) -/* 033894 70200304 00003025 */ move $a2, $zero -/* 033898 70200308 142000BF */ bnez $at, .L70200608 -/* 03389C 7020030C 00004025 */ move $t0, $zero -/* 0338A0 70200310 00157080 */ sll $t6, $s5, 2 -/* 0338A4 70200314 27AF05A8 */ addiu $t7, $sp, 0x5a8 -/* 0338A8 70200318 01CFC021 */ addu $t8, $t6, $t7 -/* 0338AC 7020031C 3C1E7020 */ lui $fp, %hi(huftlist) # $fp, 0x7020 -/* 0338B0 70200320 3C137020 */ lui $s3, %hi(hufts) # $s3, 0x7020 -/* 0338B4 70200324 26731598 */ addiu $s3, %lo(hufts) # addiu $s3, $s3, 0x1598 -/* 0338B8 70200328 27DE1490 */ addiu $fp, %lo(huftlist) # addiu $fp, $fp, 0x1490 -/* 0338BC 7020032C AFB80050 */ sw $t8, 0x50($sp) -/* 0338C0 70200330 8FB60604 */ lw $s6, 0x604($sp) -/* 0338C4 70200334 27B4057C */ addiu $s4, $sp, 0x57c -.L70200338: -/* 0338C8 70200338 8FB90050 */ lw $t9, 0x50($sp) -/* 0338CC 7020033C 8FAF05F4 */ lw $t7, 0x5f4($sp) -/* 0338D0 70200340 000C6880 */ sll $t5, $t4, 2 -/* 0338D4 70200344 8F370000 */ lw $s7, ($t9) -/* 0338D8 70200348 27AE0074 */ addiu $t6, $sp, 0x74 -/* 0338DC 7020034C 000FC080 */ sll $t8, $t7, 2 -/* 0338E0 70200350 02E02825 */ move $a1, $s7 -/* 0338E4 70200354 12E000A4 */ beqz $s7, .L702005E8 -/* 0338E8 70200358 26F7FFFF */ addiu $s7, $s7, -1 -/* 0338EC 7020035C 01AE5821 */ addu $t3, $t5, $t6 -/* 0338F0 70200360 27B900BC */ addiu $t9, $sp, 0xbc -/* 0338F4 70200364 03197021 */ addu $t6, $t8, $t9 -/* 0338F8 70200368 24180001 */ li $t8, 1 -/* 0338FC 7020036C 26AF001F */ addiu $t7, $s5, 0x1f -/* 033900 70200370 01F8C804 */ sllv $t9, $t8, $t7 -/* 033904 70200374 AFB90034 */ sw $t9, 0x34($sp) -/* 033908 70200378 AFAE0038 */ sw $t6, 0x38($sp) -.L7020037C: -/* 03390C 7020037C 01511821 */ addu $v1, $t2, $s1 -/* 033910 70200380 0075082A */ slt $at, $v1, $s5 -/* 033914 70200384 10200047 */ beqz $at, .L702004A4 -/* 033918 70200388 26F20001 */ addiu $s2, $s7, 1 -/* 03391C 7020038C 27AE053C */ addiu $t6, $sp, 0x53c -/* 033920 70200390 01AE4821 */ addu $t1, $t5, $t6 -/* 033924 70200394 8FB805A0 */ lw $t8, 0x5a0($sp) -.L70200398: -/* 033928 70200398 258C0001 */ addiu $t4, $t4, 1 -/* 03392C 7020039C 25AD0004 */ addiu $t5, $t5, 4 -/* 033930 702003A0 03034023 */ subu $t0, $t8, $v1 -/* 033934 702003A4 0228082B */ sltu $at, $s1, $t0 -/* 033938 702003A8 25290004 */ addiu $t1, $t1, 4 -/* 03393C 702003AC 256B0004 */ addiu $t3, $t3, 4 -/* 033940 702003B0 10200002 */ beqz $at, .L702003BC -/* 033944 702003B4 00605025 */ move $t2, $v1 -/* 033948 702003B8 02204025 */ move $t0, $s1 -.L702003BC: -/* 03394C 702003BC 02AA1023 */ subu $v0, $s5, $t2 -/* 033950 702003C0 240F0001 */ li $t7, 1 -/* 033954 702003C4 004F2004 */ sllv $a0, $t7, $v0 -/* 033958 702003C8 0244082B */ sltu $at, $s2, $a0 -/* 03395C 702003CC 10200013 */ beqz $at, .L7020041C -/* 033960 702003D0 00403825 */ move $a3, $v0 -/* 033964 702003D4 24470001 */ addiu $a3, $v0, 1 -/* 033968 702003D8 00971823 */ subu $v1, $a0, $s7 -/* 03396C 702003DC 0015C880 */ sll $t9, $s5, 2 -/* 033970 702003E0 27AE05A8 */ addiu $t6, $sp, 0x5a8 -/* 033974 702003E4 00E8082B */ sltu $at, $a3, $t0 -/* 033978 702003E8 2463FFFF */ addiu $v1, $v1, -1 -/* 03397C 702003EC 1020000B */ beqz $at, .L7020041C -/* 033980 702003F0 032E3021 */ addu $a2, $t9, $t6 -.L702003F4: -/* 033984 702003F4 8CC40004 */ lw $a0, 4($a2) -/* 033988 702003F8 00031040 */ sll $v0, $v1, 1 -/* 03398C 702003FC 24C60004 */ addiu $a2, $a2, 4 -/* 033990 70200400 0082082B */ sltu $at, $a0, $v0 -/* 033994 70200404 50200006 */ beql $at, $zero, .L70200420 -/* 033998 70200408 8E630000 */ lw $v1, ($s3) -/* 03399C 7020040C 24E70001 */ addiu $a3, $a3, 1 -/* 0339A0 70200410 00E8082B */ sltu $at, $a3, $t0 -/* 0339A4 70200414 1420FFF7 */ bnez $at, .L702003F4 -/* 0339A8 70200418 00441823 */ subu $v1, $v0, $a0 -.L7020041C: -/* 0339AC 7020041C 8E630000 */ lw $v1, ($s3) -.L70200420: -/* 0339B0 70200420 8FD90000 */ lw $t9, ($fp) -/* 0339B4 70200424 24180001 */ li $t8, 1 -/* 0339B8 70200428 00F84004 */ sllv $t0, $t8, $a3 -/* 0339BC 7020042C 000378C0 */ sll $t7, $v1, 3 -/* 0339C0 70200430 00687021 */ addu $t6, $v1, $t0 -/* 0339C4 70200434 25D80001 */ addiu $t8, $t6, 1 -/* 0339C8 70200438 01F93021 */ addu $a2, $t7, $t9 -/* 0339CC 7020043C AE780000 */ sw $t8, ($s3) -/* 0339D0 70200440 24C40008 */ addiu $a0, $a2, 8 -/* 0339D4 70200444 AEC40000 */ sw $a0, ($s6) -/* 0339D8 70200448 ACC00004 */ sw $zero, 4($a2) -/* 0339DC 7020044C 24D60004 */ addiu $s6, $a2, 4 -/* 0339E0 70200450 00803025 */ move $a2, $a0 -/* 0339E4 70200454 1180000F */ beqz $t4, .L70200494 -/* 0339E8 70200458 AD240000 */ sw $a0, ($t1) -/* 0339EC 7020045C AD700000 */ sw $s0, ($t3) -/* 0339F0 70200460 24EF0010 */ addiu $t7, $a3, 0x10 -/* 0339F4 70200464 A3B1057D */ sb $s1, 0x57d($sp) -/* 0339F8 70200468 A3AF057C */ sb $t7, 0x57c($sp) -/* 0339FC 7020046C AFA40580 */ sw $a0, 0x580($sp) -/* 033A00 70200470 8D39FFFC */ lw $t9, -4($t1) -/* 033A04 70200474 01517023 */ subu $t6, $t2, $s1 -/* 033A08 70200478 8E810000 */ lw $at, ($s4) -/* 033A0C 7020047C 01D0C006 */ srlv $t8, $s0, $t6 -/* 033A10 70200480 001878C0 */ sll $t7, $t8, 3 -/* 033A14 70200484 032F7021 */ addu $t6, $t9, $t7 -/* 033A18 70200488 ADC10000 */ sw $at, ($t6) -/* 033A1C 7020048C 8E8F0004 */ lw $t7, 4($s4) -/* 033A20 70200490 ADCF0004 */ sw $t7, 4($t6) -.L70200494: -/* 033A24 70200494 01511821 */ addu $v1, $t2, $s1 -/* 033A28 70200498 0075082A */ slt $at, $v1, $s5 -/* 033A2C 7020049C 5420FFBE */ bnezl $at, .L70200398 -/* 033A30 702004A0 8FB805A0 */ lw $t8, 0x5a0($sp) -.L702004A4: -/* 033A34 702004A4 8FB80038 */ lw $t8, 0x38($sp) -/* 033A38 702004A8 24190001 */ li $t9, 1 -/* 033A3C 702004AC 02AA1823 */ subu $v1, $s5, $t2 -/* 033A40 702004B0 01592804 */ sllv $a1, $t9, $t2 -/* 033A44 702004B4 03F8082B */ sltu $at, $ra, $t8 -/* 033A48 702004B8 A3A3057D */ sb $v1, 0x57d($sp) -/* 033A4C 702004BC 14200004 */ bnez $at, .L702004D0 -/* 033A50 702004C0 24A5FFFF */ addiu $a1, $a1, -1 -/* 033A54 702004C4 240E0063 */ li $t6, 99 -/* 033A58 702004C8 10000020 */ b .L7020054C -/* 033A5C 702004CC A3AE057C */ sb $t6, 0x57c($sp) -.L702004D0: -/* 033A60 702004D0 8FE20000 */ lw $v0, ($ra) -/* 033A64 702004D4 8FAF05F8 */ lw $t7, 0x5f8($sp) -/* 033A68 702004D8 8FA405F8 */ lw $a0, 0x5f8($sp) -/* 033A6C 702004DC 8FB90600 */ lw $t9, 0x600($sp) -/* 033A70 702004E0 004F082B */ sltu $at, $v0, $t7 -/* 033A74 702004E4 1020000B */ beqz $at, .L70200514 -/* 033A78 702004E8 2C410100 */ sltiu $at, $v0, 0x100 -/* 033A7C 702004EC 10200004 */ beqz $at, .L70200500 -/* 033A80 702004F0 2418000F */ li $t8, 15 -/* 033A84 702004F4 24190010 */ li $t9, 16 -/* 033A88 702004F8 10000002 */ b .L70200504 -/* 033A8C 702004FC A3B9057C */ sb $t9, 0x57c($sp) -.L70200500: -/* 033A90 70200500 A3B8057C */ sb $t8, 0x57c($sp) -.L70200504: -/* 033A94 70200504 8FEE0000 */ lw $t6, ($ra) -/* 033A98 70200508 27FF0004 */ addiu $ra, $ra, 4 -/* 033A9C 7020050C 1000000F */ b .L7020054C -/* 033AA0 70200510 A7AE0580 */ sh $t6, 0x580($sp) -.L70200514: -/* 033AA4 70200514 00447823 */ subu $t7, $v0, $a0 -/* 033AA8 70200518 01F9C021 */ addu $t8, $t7, $t9 -/* 033AAC 7020051C 930E0000 */ lbu $t6, ($t8) -/* 033AB0 70200520 8FAF05FC */ lw $t7, 0x5fc($sp) -/* 033AB4 70200524 27FF0004 */ addiu $ra, $ra, 4 -/* 033AB8 70200528 A3AE057C */ sb $t6, 0x57c($sp) -/* 033ABC 7020052C 8FF9FFFC */ lw $t9, -4($ra) -/* 033AC0 70200530 0019C040 */ sll $t8, $t9, 1 -/* 033AC4 70200534 0004C840 */ sll $t9, $a0, 1 -/* 033AC8 70200538 01F87021 */ addu $t6, $t7, $t8 -/* 033ACC 7020053C 00197823 */ negu $t7, $t9 -/* 033AD0 70200540 01CFC021 */ addu $t8, $t6, $t7 -/* 033AD4 70200544 97190000 */ lhu $t9, ($t8) -/* 033AD8 70200548 A7B90580 */ sh $t9, 0x580($sp) -.L7020054C: -/* 033ADC 7020054C 01503806 */ srlv $a3, $s0, $t2 -/* 033AE0 70200550 00E8082B */ sltu $at, $a3, $t0 -/* 033AE4 70200554 1020000B */ beqz $at, .L70200584 -/* 033AE8 70200558 240E0001 */ li $t6, 1 -/* 033AEC 7020055C 006E1004 */ sllv $v0, $t6, $v1 -.L70200560: -/* 033AF0 70200560 8E810000 */ lw $at, ($s4) -/* 033AF4 70200564 000778C0 */ sll $t7, $a3, 3 -/* 033AF8 70200568 00CFC021 */ addu $t8, $a2, $t7 -/* 033AFC 7020056C AF010000 */ sw $at, ($t8) -/* 033B00 70200570 8E8E0004 */ lw $t6, 4($s4) -/* 033B04 70200574 00E23821 */ addu $a3, $a3, $v0 -/* 033B08 70200578 00E8082B */ sltu $at, $a3, $t0 -/* 033B0C 7020057C 1420FFF8 */ bnez $at, .L70200560 -/* 033B10 70200580 AF0E0004 */ sw $t6, 4($t8) -.L70200584: -/* 033B14 70200584 8FA70034 */ lw $a3, 0x34($sp) -/* 033B18 70200588 8D620000 */ lw $v0, ($t3) -/* 033B1C 7020058C 02077824 */ and $t7, $s0, $a3 -/* 033B20 70200590 11E00005 */ beqz $t7, .L702005A8 -.L70200594: -/* 033B24 70200594 0007C842 */ srl $t9, $a3, 1 -/* 033B28 70200598 02078026 */ xor $s0, $s0, $a3 -/* 033B2C 7020059C 0219C024 */ and $t8, $s0, $t9 -/* 033B30 702005A0 1700FFFC */ bnez $t8, .L70200594 -/* 033B34 702005A4 03203825 */ move $a3, $t9 -.L702005A8: -/* 033B38 702005A8 02078026 */ xor $s0, $s0, $a3 -/* 033B3C 702005AC 02057024 */ and $t6, $s0, $a1 -/* 033B40 702005B0 11C2000B */ beq $t6, $v0, .L702005E0 -/* 033B44 702005B4 02E02825 */ move $a1, $s7 -.L702005B8: -/* 033B48 702005B8 01515023 */ subu $t2, $t2, $s1 -/* 033B4C 702005BC 240F0001 */ li $t7, 1 -/* 033B50 702005C0 014FC804 */ sllv $t9, $t7, $t2 -/* 033B54 702005C4 8D6FFFFC */ lw $t7, -4($t3) -/* 033B58 702005C8 2738FFFF */ addiu $t8, $t9, -1 -/* 033B5C 702005CC 02187024 */ and $t6, $s0, $t8 -/* 033B60 702005D0 258CFFFF */ addiu $t4, $t4, -1 -/* 033B64 702005D4 25ADFFFC */ addiu $t5, $t5, -4 -/* 033B68 702005D8 15CFFFF7 */ bne $t6, $t7, .L702005B8 -/* 033B6C 702005DC 256BFFFC */ addiu $t3, $t3, -4 -.L702005E0: -/* 033B70 702005E0 16E0FF66 */ bnez $s7, .L7020037C -/* 033B74 702005E4 26F7FFFF */ addiu $s7, $s7, -1 -.L702005E8: -/* 033B78 702005E8 8FB90050 */ lw $t9, 0x50($sp) -/* 033B7C 702005EC 8FAE05A0 */ lw $t6, 0x5a0($sp) -/* 033B80 702005F0 26B50001 */ addiu $s5, $s5, 1 -/* 033B84 702005F4 27380004 */ addiu $t8, $t9, 4 -/* 033B88 702005F8 01D5082A */ slt $at, $t6, $s5 -/* 033B8C 702005FC 1020FF4E */ beqz $at, .L70200338 -/* 033B90 70200600 AFB80050 */ sw $t8, 0x50($sp) -/* 033B94 70200604 AFB60604 */ sw $s6, 0x604($sp) -.L70200608: -/* 033B98 70200608 8FA2006C */ lw $v0, 0x6c($sp) -/* 033B9C 7020060C 0002782B */ sltu $t7, $zero, $v0 -/* 033BA0 70200610 11E00004 */ beqz $t7, .L70200624 -/* 033BA4 70200614 01E01025 */ move $v0, $t7 -/* 033BA8 70200618 8FA205A0 */ lw $v0, 0x5a0($sp) -/* 033BAC 7020061C 38590001 */ xori $t9, $v0, 1 -/* 033BB0 70200620 0019102B */ sltu $v0, $zero, $t9 -.L70200624: -/* 033BB4 70200624 8FBF002C */ lw $ra, 0x2c($sp) -/* 033BB8 70200628 8FB00008 */ lw $s0, 8($sp) -/* 033BBC 7020062C 8FB1000C */ lw $s1, 0xc($sp) -/* 033BC0 70200630 8FB20010 */ lw $s2, 0x10($sp) -/* 033BC4 70200634 8FB30014 */ lw $s3, 0x14($sp) -/* 033BC8 70200638 8FB40018 */ lw $s4, 0x18($sp) -/* 033BCC 7020063C 8FB5001C */ lw $s5, 0x1c($sp) -/* 033BD0 70200640 8FB60020 */ lw $s6, 0x20($sp) -/* 033BD4 70200644 8FB70024 */ lw $s7, 0x24($sp) -/* 033BD8 70200648 8FBE0028 */ lw $fp, 0x28($sp) -/* 033BDC 7020064C 03E00008 */ jr $ra -/* 033BE0 70200650 27BD05F0 */ addiu $sp, $sp, 0x5f0 -) +s32 huft_build(u32 *b, u32 n, u32 s, u16 *d, u8 *e, struct huft **t, s32 *m) +{ + u32 a; /* counter for codes of length k */ + u32 c[BMAX+1]; /* bit length count table */ + u32 f; /* i repeats in table every f entries */ + s32 g; /* maximum code length */ + s32 h; /* table level */ + register u32 i; /* counter, current code */ + register u32 j; /* counter */ + register s32 k; /* number of bits in current code */ + s32 l; /* bits per table (returned in m) */ + register u32 *p; /* pointer into c[], b[], or v[] */ + register struct huft *q; /* points to current table */ + struct huft r; /* table entry for structure assignment */ + struct huft *u[BMAX]; /* table stack */ + u32 v[N_MAX]; /* values in order of bit length */ + register s32 w; /* bits before this table == (l * h) */ + u32 x[BMAX+1]; /* bit offsets, then code stack */ + u32 *xp; /* pointer into x */ + s32 y; /* number of dummy codes added */ + u32 z; /* number of entries in current table */ + u32 i2; -GLOBAL_ASM( -glabel inflate_codes -/* 033BE4 70200654 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 033BE8 70200658 3C0B7020 */ lui $t3, %hi(mask_bits) # $t3, 0x7020 -/* 033BEC 7020065C 256B156C */ addiu $t3, %lo(mask_bits) # addiu $t3, $t3, 0x156c -/* 033BF0 70200660 AFB10008 */ sw $s1, 8($sp) -/* 033BF4 70200664 AFB00004 */ sw $s0, 4($sp) -/* 033BF8 70200668 00067040 */ sll $t6, $a2, 1 -/* 033BFC 7020066C 0007C040 */ sll $t8, $a3, 1 -/* 033C00 70200670 00C08025 */ move $s0, $a2 -/* 033C04 70200674 00E08825 */ move $s1, $a3 -/* 033C08 70200678 3C097020 */ lui $t1, %hi(bb) # $t1, 0x7020 -/* 033C0C 7020067C 3C087020 */ lui $t0, %hi(bk) # $t0, 0x7020 -/* 033C10 70200680 3C037020 */ lui $v1, %hi(wp) # $v1, 0x7020 -/* 033C14 70200684 016E7821 */ addu $t7, $t3, $t6 -/* 033C18 70200688 0178C821 */ addu $t9, $t3, $t8 -/* 033C1C 7020068C 3C077020 */ lui $a3, %hi(inptr) # $a3, 0x7020 -/* 033C20 70200690 3C067020 */ lui $a2, %hi(outbuf) # $a2, 0x7020 -/* 033C24 70200694 AFB2000C */ sw $s2, 0xc($sp) -/* 033C28 70200698 AFA40010 */ sw $a0, 0x10($sp) -/* 033C2C 7020069C AFA50014 */ sw $a1, 0x14($sp) -/* 033C30 702006A0 8D291564 */ lw $t1, %lo(bb)($t1) -/* 033C34 702006A4 8D081568 */ lw $t0, %lo(bk)($t0) -/* 033C38 702006A8 8C63148C */ lw $v1, %lo(wp)($v1) -/* 033C3C 702006AC 95EC0000 */ lhu $t4, ($t7) -/* 033C40 702006B0 972D0000 */ lhu $t5, ($t9) -/* 033C44 702006B4 24C61484 */ addiu $a2, %lo(outbuf) # addiu $a2, $a2, 0x1484 -/* 033C48 702006B8 24E71488 */ addiu $a3, %lo(inptr) # addiu $a3, $a3, 0x1488 -.L702006BC: -/* 033C4C 702006BC 0110082B */ sltu $at, $t0, $s0 -.L702006C0: -/* 033C50 702006C0 1020000C */ beqz $at, .L702006F4 -/* 033C54 702006C4 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033C58 702006C8 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L702006CC: -/* 033C5C 702006CC 8CF20000 */ lw $s2, ($a3) -/* 033C60 702006D0 00527021 */ addu $t6, $v0, $s2 -/* 033C64 702006D4 91CF0000 */ lbu $t7, ($t6) -/* 033C68 702006D8 26590001 */ addiu $t9, $s2, 1 -/* 033C6C 702006DC ACF90000 */ sw $t9, ($a3) -/* 033C70 702006E0 010FC004 */ sllv $t8, $t7, $t0 -/* 033C74 702006E4 25080008 */ addiu $t0, $t0, 8 -/* 033C78 702006E8 0110082B */ sltu $at, $t0, $s0 -/* 033C7C 702006EC 1420FFF7 */ bnez $at, .L702006CC -/* 033C80 702006F0 01384825 */ or $t1, $t1, $t8 -.L702006F4: -/* 033C84 702006F4 8FB80010 */ lw $t8, 0x10($sp) -/* 033C88 702006F8 012C7024 */ and $t6, $t1, $t4 -/* 033C8C 702006FC 000E78C0 */ sll $t7, $t6, 3 -/* 033C90 70200700 01F82821 */ addu $a1, $t7, $t8 -/* 033C94 70200704 90A40000 */ lbu $a0, ($a1) -/* 033C98 70200708 2C810011 */ sltiu $at, $a0, 0x11 -/* 033C9C 7020070C 5420001F */ bnezl $at, .L7020078C -/* 033CA0 70200710 90A20001 */ lbu $v0, 1($a1) -/* 033CA4 70200714 90A20001 */ lbu $v0, 1($a1) -.L70200718: -/* 033CA8 70200718 2484FFF0 */ addiu $a0, $a0, -0x10 -/* 033CAC 7020071C 01024023 */ subu $t0, $t0, $v0 -/* 033CB0 70200720 0104082B */ sltu $at, $t0, $a0 -/* 033CB4 70200724 1020000D */ beqz $at, .L7020075C -/* 033CB8 70200728 00494806 */ srlv $t1, $t1, $v0 -/* 033CBC 7020072C 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033CC0 70200730 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L70200734: -/* 033CC4 70200734 8CF20000 */ lw $s2, ($a3) -/* 033CC8 70200738 0052C821 */ addu $t9, $v0, $s2 -/* 033CCC 7020073C 932E0000 */ lbu $t6, ($t9) -/* 033CD0 70200740 26580001 */ addiu $t8, $s2, 1 -/* 033CD4 70200744 ACF80000 */ sw $t8, ($a3) -/* 033CD8 70200748 010E7804 */ sllv $t7, $t6, $t0 -/* 033CDC 7020074C 25080008 */ addiu $t0, $t0, 8 -/* 033CE0 70200750 0104082B */ sltu $at, $t0, $a0 -/* 033CE4 70200754 1420FFF7 */ bnez $at, .L70200734 -/* 033CE8 70200758 012F4825 */ or $t1, $t1, $t7 -.L7020075C: -/* 033CEC 7020075C 0004C840 */ sll $t9, $a0, 1 -/* 033CF0 70200760 01797021 */ addu $t6, $t3, $t9 -/* 033CF4 70200764 95CF0000 */ lhu $t7, ($t6) -/* 033CF8 70200768 8CAE0004 */ lw $t6, 4($a1) -/* 033CFC 7020076C 01E9C024 */ and $t8, $t7, $t1 -/* 033D00 70200770 0018C8C0 */ sll $t9, $t8, 3 -/* 033D04 70200774 032E2821 */ addu $a1, $t9, $t6 -/* 033D08 70200778 90A40000 */ lbu $a0, ($a1) -/* 033D0C 7020077C 2C810011 */ sltiu $at, $a0, 0x11 -/* 033D10 70200780 5020FFE5 */ beql $at, $zero, .L70200718 -/* 033D14 70200784 90A20001 */ lbu $v0, 1($a1) -/* 033D18 70200788 90A20001 */ lbu $v0, 1($a1) -.L7020078C: -/* 033D1C 7020078C 24010010 */ li $at, 16 -/* 033D20 70200790 00494806 */ srlv $t1, $t1, $v0 -/* 033D24 70200794 14810007 */ bne $a0, $at, .L702007B4 -/* 033D28 70200798 01024023 */ subu $t0, $t0, $v0 -/* 033D2C 7020079C 8CD80000 */ lw $t8, ($a2) -/* 033D30 702007A0 94AF0004 */ lhu $t7, 4($a1) -/* 033D34 702007A4 0303C821 */ addu $t9, $t8, $v1 -/* 033D38 702007A8 24630001 */ addiu $v1, $v1, 1 -/* 033D3C 702007AC 1000FFC3 */ b .L702006BC -/* 033D40 702007B0 A32F0000 */ sb $t7, ($t9) -.L702007B4: -/* 033D44 702007B4 2401000F */ li $at, 15 -/* 033D48 702007B8 10810097 */ beq $a0, $at, .L70200A18 -/* 033D4C 702007BC 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033D50 702007C0 0104082B */ sltu $at, $t0, $a0 -/* 033D54 702007C4 5020000D */ beql $at, $zero, .L702007FC -/* 033D58 702007C8 00047040 */ sll $t6, $a0, 1 -/* 033D5C 702007CC 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L702007D0: -/* 033D60 702007D0 8CF20000 */ lw $s2, ($a3) -/* 033D64 702007D4 00527021 */ addu $t6, $v0, $s2 -/* 033D68 702007D8 91D80000 */ lbu $t8, ($t6) -/* 033D6C 702007DC 26590001 */ addiu $t9, $s2, 1 -/* 033D70 702007E0 ACF90000 */ sw $t9, ($a3) -/* 033D74 702007E4 01187804 */ sllv $t7, $t8, $t0 -/* 033D78 702007E8 25080008 */ addiu $t0, $t0, 8 -/* 033D7C 702007EC 0104082B */ sltu $at, $t0, $a0 -/* 033D80 702007F0 1420FFF7 */ bnez $at, .L702007D0 -/* 033D84 702007F4 012F4825 */ or $t1, $t1, $t7 -/* 033D88 702007F8 00047040 */ sll $t6, $a0, 1 -.L702007FC: -/* 033D8C 702007FC 016EC021 */ addu $t8, $t3, $t6 -/* 033D90 70200800 970F0000 */ lhu $t7, ($t8) -/* 033D94 70200804 94AE0004 */ lhu $t6, 4($a1) -/* 033D98 70200808 01044023 */ subu $t0, $t0, $a0 -/* 033D9C 7020080C 0111082B */ sltu $at, $t0, $s1 -/* 033DA0 70200810 01E9C824 */ and $t9, $t7, $t1 -/* 033DA4 70200814 00894806 */ srlv $t1, $t1, $a0 -/* 033DA8 70200818 1020000D */ beqz $at, .L70200850 -/* 033DAC 7020081C 032E5021 */ addu $t2, $t9, $t6 -/* 033DB0 70200820 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033DB4 70200824 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L70200828: -/* 033DB8 70200828 8CF20000 */ lw $s2, ($a3) -/* 033DBC 7020082C 0052C021 */ addu $t8, $v0, $s2 -/* 033DC0 70200830 930F0000 */ lbu $t7, ($t8) -/* 033DC4 70200834 264E0001 */ addiu $t6, $s2, 1 -/* 033DC8 70200838 ACEE0000 */ sw $t6, ($a3) -/* 033DCC 7020083C 010FC804 */ sllv $t9, $t7, $t0 -/* 033DD0 70200840 25080008 */ addiu $t0, $t0, 8 -/* 033DD4 70200844 0111082B */ sltu $at, $t0, $s1 -/* 033DD8 70200848 1420FFF7 */ bnez $at, .L70200828 -/* 033DDC 7020084C 01394825 */ or $t1, $t1, $t9 -.L70200850: -/* 033DE0 70200850 8FB90014 */ lw $t9, 0x14($sp) -/* 033DE4 70200854 012DC024 */ and $t8, $t1, $t5 -/* 033DE8 70200858 001878C0 */ sll $t7, $t8, 3 -/* 033DEC 7020085C 01F92821 */ addu $a1, $t7, $t9 -/* 033DF0 70200860 90A40000 */ lbu $a0, ($a1) -/* 033DF4 70200864 2C810011 */ sltiu $at, $a0, 0x11 -/* 033DF8 70200868 5420001F */ bnezl $at, .L702008E8 -/* 033DFC 7020086C 90A20001 */ lbu $v0, 1($a1) -/* 033E00 70200870 90A20001 */ lbu $v0, 1($a1) -.L70200874: -/* 033E04 70200874 2484FFF0 */ addiu $a0, $a0, -0x10 -/* 033E08 70200878 01024023 */ subu $t0, $t0, $v0 -/* 033E0C 7020087C 0104082B */ sltu $at, $t0, $a0 -/* 033E10 70200880 1020000D */ beqz $at, .L702008B8 -/* 033E14 70200884 00494806 */ srlv $t1, $t1, $v0 -/* 033E18 70200888 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033E1C 7020088C 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L70200890: -/* 033E20 70200890 8CF20000 */ lw $s2, ($a3) -/* 033E24 70200894 00527021 */ addu $t6, $v0, $s2 -/* 033E28 70200898 91D80000 */ lbu $t8, ($t6) -/* 033E2C 7020089C 26590001 */ addiu $t9, $s2, 1 -/* 033E30 702008A0 ACF90000 */ sw $t9, ($a3) -/* 033E34 702008A4 01187804 */ sllv $t7, $t8, $t0 -/* 033E38 702008A8 25080008 */ addiu $t0, $t0, 8 -/* 033E3C 702008AC 0104082B */ sltu $at, $t0, $a0 -/* 033E40 702008B0 1420FFF7 */ bnez $at, .L70200890 -/* 033E44 702008B4 012F4825 */ or $t1, $t1, $t7 -.L702008B8: -/* 033E48 702008B8 00047040 */ sll $t6, $a0, 1 -/* 033E4C 702008BC 016EC021 */ addu $t8, $t3, $t6 -/* 033E50 702008C0 970F0000 */ lhu $t7, ($t8) -/* 033E54 702008C4 8CB80004 */ lw $t8, 4($a1) -/* 033E58 702008C8 01E9C824 */ and $t9, $t7, $t1 -/* 033E5C 702008CC 001970C0 */ sll $t6, $t9, 3 -/* 033E60 702008D0 01D82821 */ addu $a1, $t6, $t8 -/* 033E64 702008D4 90A40000 */ lbu $a0, ($a1) -/* 033E68 702008D8 2C810011 */ sltiu $at, $a0, 0x11 -/* 033E6C 702008DC 5020FFE5 */ beql $at, $zero, .L70200874 -/* 033E70 702008E0 90A20001 */ lbu $v0, 1($a1) -/* 033E74 702008E4 90A20001 */ lbu $v0, 1($a1) -.L702008E8: -/* 033E78 702008E8 01024023 */ subu $t0, $t0, $v0 -/* 033E7C 702008EC 0104082B */ sltu $at, $t0, $a0 -/* 033E80 702008F0 1020000D */ beqz $at, .L70200928 -/* 033E84 702008F4 00494806 */ srlv $t1, $t1, $v0 -/* 033E88 702008F8 3C027020 */ lui $v0, %hi(inbuf) # $v0, 0x7020 -/* 033E8C 702008FC 8C421480 */ lw $v0, %lo(inbuf)($v0) -.L70200900: -/* 033E90 70200900 8CF20000 */ lw $s2, ($a3) -/* 033E94 70200904 00527821 */ addu $t7, $v0, $s2 -/* 033E98 70200908 91F90000 */ lbu $t9, ($t7) -/* 033E9C 7020090C 26580001 */ addiu $t8, $s2, 1 -/* 033EA0 70200910 ACF80000 */ sw $t8, ($a3) -/* 033EA4 70200914 01197004 */ sllv $t6, $t9, $t0 -/* 033EA8 70200918 25080008 */ addiu $t0, $t0, 8 -/* 033EAC 7020091C 0104082B */ sltu $at, $t0, $a0 -/* 033EB0 70200920 1420FFF7 */ bnez $at, .L70200900 -/* 033EB4 70200924 012E4825 */ or $t1, $t1, $t6 -.L70200928: -/* 033EB8 70200928 94AF0004 */ lhu $t7, 4($a1) -/* 033EBC 7020092C 00047040 */ sll $t6, $a0, 1 -/* 033EC0 70200930 016EC021 */ addu $t8, $t3, $t6 -/* 033EC4 70200934 006FC823 */ subu $t9, $v1, $t7 -/* 033EC8 70200938 970F0000 */ lhu $t7, ($t8) -/* 033ECC 7020093C 01044023 */ subu $t0, $t0, $a0 -/* 033ED0 70200940 01E97024 */ and $t6, $t7, $t1 -/* 033ED4 70200944 032E1023 */ subu $v0, $t9, $t6 -/* 033ED8 70200948 00894806 */ srlv $t1, $t1, $a0 -/* 033EDC 7020094C 01402025 */ move $a0, $t2 -.L70200950: -/* 033EE0 70200950 30920003 */ andi $s2, $a0, 3 -/* 033EE4 70200954 00129023 */ negu $s2, $s2 -/* 033EE8 70200958 1240000D */ beqz $s2, .L70200990 -/* 033EEC 7020095C 00005025 */ move $t2, $zero -/* 033EF0 70200960 02442821 */ addu $a1, $s2, $a0 -.L70200964: -/* 033EF4 70200964 8CD20000 */ lw $s2, ($a2) -/* 033EF8 70200968 2484FFFF */ addiu $a0, $a0, -1 -/* 033EFC 7020096C 0052C021 */ addu $t8, $v0, $s2 -/* 033F00 70200970 930F0000 */ lbu $t7, ($t8) -/* 033F04 70200974 0243C821 */ addu $t9, $s2, $v1 -/* 033F08 70200978 24630001 */ addiu $v1, $v1, 1 -/* 033F0C 7020097C 24420001 */ addiu $v0, $v0, 1 -/* 033F10 70200980 14A4FFF8 */ bne $a1, $a0, .L70200964 -/* 033F14 70200984 A32F0000 */ sb $t7, ($t9) -/* 033F18 70200988 1080001F */ beqz $a0, .L70200A08 -/* 033F1C 7020098C 00000000 */ nop -.L70200990: -/* 033F20 70200990 8CD20000 */ lw $s2, ($a2) -/* 033F24 70200994 2484FFFC */ addiu $a0, $a0, -4 -/* 033F28 70200998 00527021 */ addu $t6, $v0, $s2 -/* 033F2C 7020099C 91D80000 */ lbu $t8, ($t6) -/* 033F30 702009A0 02437821 */ addu $t7, $s2, $v1 -/* 033F34 702009A4 24420001 */ addiu $v0, $v0, 1 -/* 033F38 702009A8 A1F80000 */ sb $t8, ($t7) -/* 033F3C 702009AC 8CD20000 */ lw $s2, ($a2) -/* 033F40 702009B0 24630001 */ addiu $v1, $v1, 1 -/* 033F44 702009B4 0052C821 */ addu $t9, $v0, $s2 -/* 033F48 702009B8 932E0000 */ lbu $t6, ($t9) -/* 033F4C 702009BC 0243C021 */ addu $t8, $s2, $v1 -/* 033F50 702009C0 24420001 */ addiu $v0, $v0, 1 -/* 033F54 702009C4 A30E0000 */ sb $t6, ($t8) -/* 033F58 702009C8 8CD20000 */ lw $s2, ($a2) -/* 033F5C 702009CC 24630001 */ addiu $v1, $v1, 1 -/* 033F60 702009D0 00527821 */ addu $t7, $v0, $s2 -/* 033F64 702009D4 91F90000 */ lbu $t9, ($t7) -/* 033F68 702009D8 02437021 */ addu $t6, $s2, $v1 -/* 033F6C 702009DC 24420001 */ addiu $v0, $v0, 1 -/* 033F70 702009E0 A1D90000 */ sb $t9, ($t6) -/* 033F74 702009E4 8CD20000 */ lw $s2, ($a2) -/* 033F78 702009E8 24630001 */ addiu $v1, $v1, 1 -/* 033F7C 702009EC 0052C021 */ addu $t8, $v0, $s2 -/* 033F80 702009F0 930F0000 */ lbu $t7, ($t8) -/* 033F84 702009F4 0243C821 */ addu $t9, $s2, $v1 -/* 033F88 702009F8 24630001 */ addiu $v1, $v1, 1 -/* 033F8C 702009FC 24420001 */ addiu $v0, $v0, 1 -/* 033F90 70200A00 1480FFE3 */ bnez $a0, .L70200990 -/* 033F94 70200A04 A32F0000 */ sb $t7, ($t9) -.L70200A08: -/* 033F98 70200A08 5540FFD1 */ bnezl $t2, .L70200950 -/* 033F9C 70200A0C 01402025 */ move $a0, $t2 -/* 033FA0 70200A10 1000FF2B */ b .L702006C0 -/* 033FA4 70200A14 0110082B */ sltu $at, $t0, $s0 -.L70200A18: -/* 033FA8 70200A18 3C017020 */ lui $at, %hi(wp) # $at, 0x7020 -/* 033FAC 70200A1C AC23148C */ sw $v1, %lo(wp)($at) -/* 033FB0 70200A20 3C017020 */ lui $at, %hi(bb) # $at, 0x7020 -/* 033FB4 70200A24 AC291564 */ sw $t1, %lo(bb)($at) -/* 033FB8 70200A28 3C017020 */ lui $at, %hi(bk) # $at, 0x7020 -/* 033FBC 70200A2C 8FB00004 */ lw $s0, 4($sp) -/* 033FC0 70200A30 8FB10008 */ lw $s1, 8($sp) -/* 033FC4 70200A34 8FB2000C */ lw $s2, 0xc($sp) -/* 033FC8 70200A38 AC281568 */ sw $t0, %lo(bk)($at) -/* 033FCC 70200A3C 27BD0010 */ addiu $sp, $sp, 0x10 -/* 033FD0 70200A40 03E00008 */ jr $ra -/* 033FD4 70200A44 00001025 */ move $v0, $zero -) + /* Generate counts for each bit length */ + for (i2 = 0; i2 != BMAX + 1; i2++) { + c[i2] = 0; + } + p = b; + i = n; + + do { + c[*p]++; /* assume all entries <= BMAX */ + p++; /* Can't combine with above line (Solaris bug) */ + } while (--i); + + if (c[0] == n) { /* null input--all zero length codes */ + *t = NULL; + *m = 0; + return 0; + } + + /* Find minimum and maximum length, bound *m by those */ + l = *m; + + for (j = 1; j <= BMAX; j++) { + if (c[j]) { + break; + } + } + + k = j; /* minimum code length */ + + if (l < j) { + l = j; + } + + for (i = BMAX; i; i--) { + if (c[i]) { + break; + } + } + + g = i; /* maximum code length */ + + if (l > i) { + l = i; + } + + *m = l; + + /* Adjust last length count to fill out codes, if needed */ + for (y = 1 << j; j < i; j++, y <<= 1) { + y -= c[j]; + } + + y -= c[i]; + c[i] += y; + + /* Generate starting offsets into the value table for each length */ + x[1] = j = 0; + p = c + 1; + xp = x + 2; + + while (--i) { /* note that i == g from above */ + *xp++ = (j += *p++); + } + + /* Make a table of values in order of bit lengths */ + p = b; + i = 0; + + do { + if ((j = *p++) != 0) { + v[x[j]++] = i; + } + } while (++i < n); + + /* Generate the Huffman codes and for each, make the table entries */ + x[0] = i = 0; /* first Huffman code is zero */ + p = v; /* grab values in bit order */ + h = -1; /* no tables yet--level -1 */ + w = -l; /* bits decoded == (l * h) */ + u[0] = (struct huft *)NULL; /* just to keep compilers happy */ + q = (struct huft *)NULL; /* ditto */ + z = 0; /* ditto */ + + /* go through the bit lengths (k already is bits in shortest code) */ + for (; k <= g; k++) { + a = c[k]; + + while (a--) { + /* here i is the Huffman code of length k bits for value *p */ + /* make tables up to required level */ + while (k > w + l) { + h++; + w += l; /* previous table always l bits */ + + /* compute minimum size table less than or equal to l bits */ + z = (z = g - w) > l ? l : z; /* upper limit on table size */ + + if ((f = 1 << (j = k - w)) > a + 1) { /* try a k-w bit table */ + /* too few codes for k-w bit table */ + f -= a + 1; /* deduct codes from patterns left */ + xp = c + k; + + while (++j < z) { /* try smaller tables up to z bits */ + if ((f <<= 1) <= *++xp) { + break; /* enough codes to use up j bits */ + } + + f -= *xp; /* else deduct codes from patterns */ + } + } + + z = 1 << j; /* table entries for j-bit table */ + + /* allocate and link in new table */ + q = &huftlist[hufts]; + + hufts += z + 1; /* track memory usage */ + *t = q + 1; /* link to list for huft_free() */ + *(t = &(q->v.t)) = (struct huft *)NULL; + u[h] = ++q; /* table starts after link */ + + /* connect to last table, if there is one */ + if (h) { + x[h] = i; /* save pattern for backing up */ + r.b = l; /* bits to dump before this table */ + r.e = 16 + j; /* bits in this table */ + r.v.t = q; /* pointer to this table */ + j = i >> (w - l); /* (get around Turbo C bug) */ + u[h-1][j] = r; /* connect to last table */ + } + } + + /* set up table entry in r */ + r.b = (k - w); + + if (p >= v + n) { + r.e = 99; /* out of values--invalid code */ + } else if (*p < s) { + r.e = (*p < 256 ? 16 : 15); /* 256 is end-of-block code */ + r.v.n = *p; /* simple code is just the value */ + p++; /* one compiler does not like *p++ */ + } else { + r.e = e[*p - s]; /* non-simple--look up in lists */ + r.v.n = d[*p++ - s]; + } + + /* fill code-like entries with r */ + f = 1 << (k - w); + + for (j = i >> w; j < z; j += f) { + q[j] = r; + } + + /* backwards increment the k-bit code i */ + for (j = 1 << (k - 1); i & j; j >>= 1) { + i ^= j; + } + + i ^= j; + + /* backup over finished tables */ + while ((i & ((1 << w) - 1)) != x[h]) { + h--; /* don't need to update q */ + w -= l; + } + } + } + + /* Return true (1) if we were given an incomplete table */ + return y != 0 && g != 1; +} + +s32 inflate_codes(struct huft *tl, struct huft *td, s32 bl, s32 bd) +{ + register u32 e; /* table entry flag/number of extra bits */ + u32 n, d; /* length and index for copy */ + u32 w; /* current window position */ + struct huft *t; /* pointer to table entry */ + u32 ml, md; /* masks for bl and bd bits */ + register u32 b; /* bit buffer */ + register u32 k; /* number of bits in bit buffer */ + + /* make local copies of globals */ + b = bb; /* initialize bit buffer */ + k = bk; + w = wp; /* initialize window position */ + + /* inflate the coded data */ + ml = mask_bits[bl]; /* precompute masks for speed */ + md = mask_bits[bd]; + + for (;;) { /* do until end of block */ + NEEDBITS(bl) + if ((e = (t = tl + (b & ml))->e) > 16) { + do { + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + (b & mask_bits[e]))->e) > 16); + } + DUMPBITS(t->b) + + if (e == 16) { /* then it's a literal */ + outbuf[w++] = (u8)t->v.n; + } else { /* it's an EOB or a length */ + /* exit if end of block */ + if (e == 15) { + break; + } + + /* get length of block to copy */ + NEEDBITS(e) + n = t->v.n + (b & mask_bits[e]); + DUMPBITS(e); + + /* decode distance of block to copy */ + NEEDBITS(bd) + if ((e = (t = td + (b & md))->e) > 16) { + do { + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + (b & mask_bits[e]))->e) > 16); + } + DUMPBITS(t->b) + NEEDBITS(e) + d = w - t->v.n - (b & mask_bits[e]); + DUMPBITS(e) + + /* do the copy */ + do { + e = n; + n = 0; + + do { + outbuf[w++] = outbuf[d++]; + } while (--e); + } while (n); + } + } + + /* restore the globals from the locals */ + wp = w; /* restore global window pointer */ + bb = b; /* restore global bit buffer */ + bk = k; + + /* done */ + return 0; +} s32 inflate_stored(void) @@ -831,7 +371,6 @@ s32 inflate_stored(void) } -#ifdef NONMATCHING s32 inflate_fixed(void) { s32 i; /* temporary variable */ @@ -873,109 +412,6 @@ s32 inflate_fixed(void) return 0; } -#else -GLOBAL_ASM( -glabel inflate_fixed -/* 03412C 70200B9C 27BDFB40 */ addiu $sp, $sp, -0x4c0 -/* 034130 70200BA0 AFBF0024 */ sw $ra, 0x24($sp) -/* 034134 70200BA4 27A2002C */ addiu $v0, $sp, 0x2c -/* 034138 70200BA8 27A4026C */ addiu $a0, $sp, 0x26c -/* 03413C 70200BAC 24030008 */ li $v1, 8 -.L70200BB0: -/* 034140 70200BB0 24420010 */ addiu $v0, $v0, 0x10 -/* 034144 70200BB4 AC43FFF4 */ sw $v1, -0xc($v0) -/* 034148 70200BB8 AC43FFF8 */ sw $v1, -8($v0) -/* 03414C 70200BBC AC43FFFC */ sw $v1, -4($v0) -/* 034150 70200BC0 1444FFFB */ bne $v0, $a0, .L70200BB0 -/* 034154 70200BC4 AC43FFF0 */ sw $v1, -0x10($v0) -/* 034158 70200BC8 27AE042C */ addiu $t6, $sp, 0x42c -/* 03415C 70200BCC 004E082B */ sltu $at, $v0, $t6 -/* 034160 70200BD0 10200007 */ beqz $at, .L70200BF0 -/* 034164 70200BD4 27AF048C */ addiu $t7, $sp, 0x48c -/* 034168 70200BD8 27A5042C */ addiu $a1, $sp, 0x42c -/* 03416C 70200BDC 24040009 */ li $a0, 9 -.L70200BE0: -/* 034170 70200BE0 24420004 */ addiu $v0, $v0, 4 -/* 034174 70200BE4 0045082B */ sltu $at, $v0, $a1 -/* 034178 70200BE8 1420FFFD */ bnez $at, .L70200BE0 -/* 03417C 70200BEC AC44FFFC */ sw $a0, -4($v0) -.L70200BF0: -/* 034180 70200BF0 004F082B */ sltu $at, $v0, $t7 -/* 034184 70200BF4 10200007 */ beqz $at, .L70200C14 -/* 034188 70200BF8 27B804AC */ addiu $t8, $sp, 0x4ac -/* 03418C 70200BFC 27A5048C */ addiu $a1, $sp, 0x48c -/* 034190 70200C00 24040007 */ li $a0, 7 -.L70200C04: -/* 034194 70200C04 24420004 */ addiu $v0, $v0, 4 -/* 034198 70200C08 0045082B */ sltu $at, $v0, $a1 -/* 03419C 70200C0C 1420FFFD */ bnez $at, .L70200C04 -/* 0341A0 70200C10 AC44FFFC */ sw $a0, -4($v0) -.L70200C14: -/* 0341A4 70200C14 0058082B */ sltu $at, $v0, $t8 -/* 0341A8 70200C18 10200006 */ beqz $at, .L70200C34 -/* 0341AC 70200C1C 24190007 */ li $t9, 7 -/* 0341B0 70200C20 27A404AC */ addiu $a0, $sp, 0x4ac -.L70200C24: -/* 0341B4 70200C24 24420004 */ addiu $v0, $v0, 4 -/* 0341B8 70200C28 0044082B */ sltu $at, $v0, $a0 -/* 0341BC 70200C2C 1420FFFD */ bnez $at, .L70200C24 -/* 0341C0 70200C30 AC43FFFC */ sw $v1, -4($v0) -.L70200C34: -/* 0341C4 70200C34 3C087020 */ lui $t0, %hi(cplext) # $t0, 0x7020 -/* 0341C8 70200C38 250814E8 */ addiu $t0, %lo(cplext) # addiu $t0, $t0, 0x14e8 -/* 0341CC 70200C3C 3C077020 */ lui $a3, %hi(cplens) # $a3, 0x7020 -/* 0341D0 70200C40 27A904B8 */ addiu $t1, $sp, 0x4b8 -/* 0341D4 70200C44 27AA04B0 */ addiu $t2, $sp, 0x4b0 -/* 0341D8 70200C48 AFB904B0 */ sw $t9, 0x4b0($sp) -/* 0341DC 70200C4C AFAA0018 */ sw $t2, 0x18($sp) -/* 0341E0 70200C50 AFA90014 */ sw $t1, 0x14($sp) -/* 0341E4 70200C54 24E714A8 */ addiu $a3, %lo(cplens) # addiu $a3, $a3, 0x14a8 -/* 0341E8 70200C58 AFA80010 */ sw $t0, 0x10($sp) -/* 0341EC 70200C5C 27A4002C */ addiu $a0, $sp, 0x2c -/* 0341F0 70200C60 24050120 */ li $a1, 288 -/* 0341F4 70200C64 0C080000 */ jal huft_build -/* 0341F8 70200C68 24060101 */ li $a2, 257 -/* 0341FC 70200C6C 240B0005 */ li $t3, 5 -/* 034200 70200C70 240C0005 */ li $t4, 5 -/* 034204 70200C74 AFAC0030 */ sw $t4, 0x30($sp) -/* 034208 70200C78 AFAB002C */ sw $t3, 0x2c($sp) -/* 03420C 70200C7C 27A20034 */ addiu $v0, $sp, 0x34 -/* 034210 70200C80 27A400A4 */ addiu $a0, $sp, 0xa4 -/* 034214 70200C84 24030005 */ li $v1, 5 -.L70200C88: -/* 034218 70200C88 24420010 */ addiu $v0, $v0, 0x10 -/* 03421C 70200C8C AC43FFF4 */ sw $v1, -0xc($v0) -/* 034220 70200C90 AC43FFF8 */ sw $v1, -8($v0) -/* 034224 70200C94 AC43FFFC */ sw $v1, -4($v0) -/* 034228 70200C98 1444FFFB */ bne $v0, $a0, .L70200C88 -/* 03422C 70200C9C AC43FFF0 */ sw $v1, -0x10($v0) -/* 034230 70200CA0 3C0E7020 */ lui $t6, %hi(cpdext) # $t6, 0x7020 -/* 034234 70200CA4 240D0005 */ li $t5, 5 -/* 034238 70200CA8 25CE1544 */ addiu $t6, %lo(cpdext) # addiu $t6, $t6, 0x1544 -/* 03423C 70200CAC 3C077020 */ lui $a3, %hi(cpdist) # $a3, 0x7020 -/* 034240 70200CB0 27AF04B4 */ addiu $t7, $sp, 0x4b4 -/* 034244 70200CB4 27B804AC */ addiu $t8, $sp, 0x4ac -/* 034248 70200CB8 AFAD04AC */ sw $t5, 0x4ac($sp) -/* 03424C 70200CBC AFB80018 */ sw $t8, 0x18($sp) -/* 034250 70200CC0 AFAF0014 */ sw $t7, 0x14($sp) -/* 034254 70200CC4 24E71508 */ addiu $a3, %lo(cpdist) # addiu $a3, $a3, 0x1508 -/* 034258 70200CC8 AFAE0010 */ sw $t6, 0x10($sp) -/* 03425C 70200CCC 27A4002C */ addiu $a0, $sp, 0x2c -/* 034260 70200CD0 2405001E */ li $a1, 30 -/* 034264 70200CD4 0C080000 */ jal huft_build -/* 034268 70200CD8 00003025 */ move $a2, $zero -/* 03426C 70200CDC 8FA404B8 */ lw $a0, 0x4b8($sp) -/* 034270 70200CE0 8FA504B4 */ lw $a1, 0x4b4($sp) -/* 034274 70200CE4 8FA604B0 */ lw $a2, 0x4b0($sp) -/* 034278 70200CE8 0C080195 */ jal inflate_codes -/* 03427C 70200CEC 8FA704AC */ lw $a3, 0x4ac($sp) -/* 034280 70200CF0 8FBF0024 */ lw $ra, 0x24($sp) -/* 034284 70200CF4 27BD04C0 */ addiu $sp, $sp, 0x4c0 -/* 034288 70200CF8 00001025 */ move $v0, $zero -/* 03428C 70200CFC 03E00008 */ jr $ra -/* 034290 70200D00 00000000 */ nop -) -#endif s32 inflate_dynamic(void) { diff --git a/src/init.c b/src/init.c index 2706577..e109f5a 100644 --- a/src/init.c +++ b/src/init.c @@ -48,6 +48,11 @@ OSMesgQueue *sched_cmdQ; void mainproc(void *args); extern u8 * _rarezipSegmentStart; + + +u32 osPiGetStatus(void); +void __osSetFpcCsr(u32); +u32 __osGetFpcCsr(void); /** * 1110 70000510 * ??? initializes TLB index... @@ -56,40 +61,46 @@ extern u8 * _rarezipSegmentStart; #ifdef NONMATCHING void init(void) { - s32 *cdata_vaddr_start; - s32 cdata_rom_size; - s32 datapos; - u32 *dest; - u32 *source; - u32 i; + u32 src = get_csegmentSegmentStart(); + u32 datastart = get_cdataSegmentRomStart(); + u32 datacomplen = (get_cdataSegmentRomEnd() - datastart); + u32 inflatestart = get_rarezipSegmentRomStart(); + u32 inflatelen = (get_rarezipSegmentRomEnd() - inflatestart); + u32 dst = &_rarezipSegmentRomStart - datacomplen; + u32 j; + s32 i; - cdata_vaddr_start = get_csegmentSegmentStart(); - cdata_rom_size = (get_cdataSegmentRomEnd() - get_cdataSegmentRomStart()); - - for (datapos = ((cdata_rom_size + (get_rarezipSegmentRomEnd() - get_rarezipSegmentRomStart())) + -1); datapos >= 0; datapos--) + for (i = datacomplen + inflatelen - 1; (i >= 0); i--) { - _rarezipSegmentStart[-cdata_rom_size + datapos] = &cdata_vaddr_start[datapos]; + ((u8 *)dst)[i] = ((u8 *)src)[i]; } - jump_decompressfile((_rarezipSegmentStart - cdata_rom_size), cdata_vaddr_start, 0x80300000); - - if ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) >= 0xfffb1) + jump_decompressfile(dst, src, 0x80300000); + if (1) { - osPiRawStartDma(0, 0x101000, 0x70100400, ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) + 0xfff00050)); - while ((osPiGetStatus() & 1) != 0) {} - } + if ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) >= 0xfffb1) + { + osPiRawStartDma(0, 0x101000, 0x70100400, ((&_rarezipSegmentRomStart - &_codeSegmentRomStart) + 0xfff00050)); + while ((osPiGetStatus() & 1) != 0) {} + } - osInitialize(); - set_hardwire_TLB_to_2(); + osInitialize(); + set_hardwire_TLB_to_2(); + } //IM BROKEN FIX ME!!!!!!! - source = (u32 *)resolve_TLBaddress_for_InvalidHit; + //src = (u32 *)resolve_TLBaddress_for_InvalidHit; //UT_VEC - dest = (u32 *)0x80000000; + //dst = (u32 *)0x80000000; //XUT_VEC - while ( (u32)dest != (u32)dest + 0x80 ) { *dest = *source; dest++; source++;} + //while ( (u32)dst != (u32)dst + 0x80 ) { *dst = *src; dst++; src++;} //TO HERE + while( i < 0x80) + { + ((u32 *)0x80000000)[i++] = ((u32 *)&resolve_TLBaddress_for_InvalidHit)[i++]; + } + osWritebackDCacheAll(); osInvalICache(0x80000000, 0x4000); @@ -103,6 +114,7 @@ void init(void) osCreateThread(&mainThread, 3, &mainproc, 0, set_stack_entry(&sp_main, 0x8000), 0xa); osStartThread(&mainThread); } + #else GLOBAL_ASM( .section .text @@ -285,7 +297,7 @@ void idleCreateThread(void) */ void rmonCreateThread(void) { - osCreateThread(&rmonThread, (OSId)0, rmonproc, 0, set_stack_entry(&sp_rmon, 0x300), (OSPri)250); + osCreateThread(&rmonThread, (OSId)0, rmonMain, 0, set_stack_entry(&sp_rmon, 0x300), (OSPri)250); osStartThread(&rmonThread); } @@ -309,7 +321,7 @@ void schedulerInitThread(void) } /** - * 149C 7000089C start main game setup and loop + * 149C 7000089C datastart main game setup and loop * calls command line parser, debug console setup, etc. * called by 70000510, using 7000D430: A0=8005D640, A1=3, A2=7000089C, A3=0, SP+10=[803B3948], SP+14=0xA * never returns; 7000601C is an infinite loop @@ -320,7 +332,7 @@ void mainproc(void *args) viDebugRemoved(); piCreateManager(); rmonCreateThread(); - if (check_boot_switches() != 0) + if (tokenReadIo() != 0) { osStopThread(0); } @@ -335,7 +347,7 @@ void mainproc(void *args) * copies table from 8002304C-80023084 to stack */ #ifdef NONMATCHING -void *setuplastentryofdebughandler(void) +void setuplastentryofdebughandler(void) { ? sp8; void *temp_t6; diff --git a/src/joy.c b/src/joy.c index f91974f..ddcc88c 100644 --- a/src/joy.c +++ b/src/joy.c @@ -1,1403 +1,597 @@ #include "ultra64.h" #include "joy.h" -const char aJoy_c_debug[] = "joy_c_debug"; +#include "libultra/os.h" +/** + * Number of samples in contdata. + */ +#define CONTSAMPLE_LEN 20 -char controller_input_index[0x1E0]; -s32 dword_CODE_bss_80065110; -s32 dword_CODE_bss_80065114; -s32 dword_CODE_bss_80065118; -s32 dword_CODE_bss_8006511C; -s32 dword_CODE_bss_80065120; -s32 dword_CODE_bss_80065124; -s32 dword_CODE_bss_80065128; -s32 dword_CODE_bss_8006512C; -s32 dword_code_bss_80065130[0x76]; -s32 dword_CODE_bss_80065308; -s32 dword_CODE_bss_8006530C; -s32 dword_CODE_bss_80065310; -s32 dword_CODE_bss_80065314; -s32 dword_CODE_bss_80065318; -s32 dword_CODE_bss_8006531C; -s32 dword_CODE_bss_80065320; -s32 dword_CODE_bss_80065324; -//80065328 -char contdemoMesg[0x28]; -//80065350 -OSMesgQueue contdemoMesgMQ; +#define JOY_CLAMP_MIN 0 +#define JOY_CLAMP_MAX 120 +#define JOY_CLAMP_MAX_F 120.0f +#define JOY_CLAMP_OFFSET 60 -//80065368 -OSMesg cont1Mesg; -OSMesgQueue cont1MesgMQ; +struct contdata { + /* 0x000 */ struct contsample samples[CONTSAMPLE_LEN]; + /* 0x1E0 */ s32 curlast; + /* 0x1E4 */ s32 curstart; + /* 0x1E8 */ s32 nextlast; + /* 0x1EC */ s32 nextsecondlast; + /* 0x1F0 */ u16 buttonspressed[MAXCONTROLLERS]; + /* 0x1F8 */ s32 playbackcontcount; +}; -//80065388 -OSMesg cont2Mesg; -OSMesgQueue cont2MesgMQ; +/** + * Regular controller data for struct contdata. + */ +#define CONTDATA_REGULAR 0 -//800653a8 -OSMesg cont3Mesg; -OSMesgQueue cont3MesgMQ; +/** + * Playback controller data for struct contdata. + */ +#define CONTDATA_PLAYBACK 1 -//800653c8 -OSMesg cont4Mesg; -OSMesgQueue cont4MesgMQ; +/** + * Length of struct contdata[]. + */ +#define CONTDATA_LEN 2 -//800653e8 -s32 player1_controllerstatus; -s32 player2_controllerstatus; -s32 player3_controllerstatus; -s32 player4_controllerstatus; +/** + * Contains controller data for "regular" and playback. + */ +struct contdata g_ContData[CONTDATA_LEN]; -char player1_controller_packet[0x1A8]; +#define CONT_INPUT_BUFFER_LEN 10 +#define CONT_DISABLE_POLL_SEND_BUFFER_LEN 1 +#define CONT_DISABLE_POLL_RECEIVE_BUFFER_LEN 1 +#define CONT_ENABLE_POLL_SEND_BUFFER_LEN 1 +#define CONT_ENABLE_POLL_RECEIVE_BUFFER_LEN 1 +OSMesg g_ContInputMessageBuffer[CONT_INPUT_BUFFER_LEN]; +OSMesgQueue g_ContInputMessageQueue; -s32 D_800268C0 = 0; -void *ptr_current_point_in_controller_input_index = controller_input_index; -s32 D_800268C8 = 0; -s32 D_800268CC = 0; -u8 num_controller_plugged_in_flags = 0; -s32 num_controller_plugged_in_flags_0 = 0; -s32 controller_1_rumble_inserted = 0; -s32 controller_2_rumble_inserted = 0; -s32 controller_3_rumble_inserted = 0; -s32 controller_4_rumble_inserted = 0; -s32 controller_1_rumble_state = 0; -s32 controller_2_rumble_state = 0; -s32 controller_3_rumble_state = 0; -s32 controller_4_rumble_state = 0; -s32 controller_1_rumble_duration = 0; -s32 controller_2_rumble_duration = 0; -s32 controller_3_rumble_duration = 0; -s32 controller_4_rumble_duration = 0; -s32 controller_1_rumble_pulse = 0; -s32 controller_2_rumble_pulse = 0; -s32 controller_3_rumble_pulse = 0; -s32 controller_4_rumble_pulse = 0; -s32 enableControllers = 0; -s32 D_8002691C = 0; -s32 D_80026920 = 0; -s32 disable_all_rumble = 0; -s32 ptr_to_tlb_ramrom_record = 0; -s32 D_8002692C = 1; -s32 pl1_controller_failure_lr = 0; -s32 pl2_controller_failure_lr = 0; -s32 pl3_controller_failure_lr = 0; -s32 pl4_controller_failure_lr = 0; -s32 pl1_controller_failure_ud = 0; -s32 pl2_controller_failure_ud = 0; -s32 pl3_controller_failure_ud = 0; -s32 pl4_controller_failure_ud = 0; -s32 pl1_controller_failure_held = 0; -s32 pl2_controller_failure_held = 0; -s32 pl3_controller_failure_held = 0; -s32 pl4_controller_failure_held = 0; -s32 pl1_controller_failure_pressed = 0; -s32 pl2_controller_failure_pressed = 0; -s32 pl3_controller_failure_pressed = 0; -s32 pl4_controller_failure_pressed = 0; -s32 D_80026970 = 0; +OSMesg g_ContDisablePollSendMessageBuffer[CONT_DISABLE_POLL_SEND_BUFFER_LEN]; +OSMesgQueue g_ContDisablePollSendMessageQueue; +OSMesg g_ContDisablePollReceiveMessageBuffer[CONT_DISABLE_POLL_RECEIVE_BUFFER_LEN]; +OSMesgQueue g_ContDisablePollReceiveMessageQueue; +OSMesg g_ContEnablePollSendMessageBuffer[CONT_ENABLE_POLL_SEND_BUFFER_LEN]; +OSMesgQueue g_ContEnablePollSendMessageQueue; +OSMesg g_ContEnablePollReceiveMessageBuffer[CONT_ENABLE_POLL_RECEIVE_BUFFER_LEN]; +OSMesgQueue g_ContEnablePollReceiveMessageQueue; +OSContStatus g_ContStatus[MAXCONTROLLERS]; +OSPfs g_ContPfs[MAXCONTROLLERS]; +s32 g_ContDebugData = 0; +struct contdata *g_ContDataPtr = &g_ContData[CONTDATA_REGULAR]; +s32 g_ContBusy = 0; +s32 g_ContPollDisableCount = 0; +u8 g_ConnectedControllers = 0; +/** + * Uses 1 bit per controller. + */ +u8 g_ControllerStates = 0; +typedef enum { + RUMBLEPAKINITSTATE_ERROR = -1, + RUMBLEPAKINITSTATE_NOT_READY, + RUMBLEPAKINITSTATE_READY +} RUMBLEPAKINITSTATE; +typedef enum { + RUMBLEPAKSTATE_OFF, + RUMBLEPAKSTATE_ON, + RUMBLEPAKSTATE_UNKNOWN +} RUMBLEPAKSTATE; -#ifdef NONMATCHING -void *joyInitDebugNoticeList(void) { - void *temp_v0; - void *temp_v0_2; +// forward declarations +void joyCheckStatus(void); - // Node 0 - debCheckAddDebugNoticeListEntry(&D_800268C0, &aJoy_c_debug); - osCreateMesgQueue(&cont1MesgMQ, &cont1Mesg, 1); - osCreateMesgQueue(&cont2MesgMQ, &cont2Mesg, 1); - osCreateMesgQueue(&cont3MesgMQ, &cont3Mesg, 1); - osCreateMesgQueue(&cont4MesgMQ, &cont4Mesg, 1); - osCreateMesgQueue(&contdemoMesgMQ, &contdemoMesg, 0xa); - osSetEventMesg(5, &contdemoMesgMQ, 0); - enableControllers = 1; - disable_all_rumble = 0; - temp_v0 = (0x80060000 + 0x4f30); - ptr_to_tlb_ramrom_record = 0; - // Node 1 - temp_v0->unk1E0 = 0; - temp_v0->unk1E4 = 0; - temp_v0->unk1E8 = 0; - temp_v0->unk1EC = 0; - temp_v0->unk1F8 = -1; - temp_v0_2 = (temp_v0 + 0x1fc); - temp_v0_2->unk-1E6 = (u8)0; - temp_v0_2->unk-1E7 = (u8)0; - temp_v0_2->unk-1E8 = (u8)0; - temp_v0_2->unk-1EA = (u16)0; - temp_v0_2->unk-1EC = (u8)0; - temp_v0_2->unk-1ED = (u8)0; - temp_v0_2->unk-1EE = (u8)0; - temp_v0_2->unk-1F0 = (u16)0; - temp_v0_2->unk-1F2 = (u8)0; - temp_v0_2->unk-1F3 = (u8)0; - temp_v0_2->unk-1F4 = (u8)0; - temp_v0_2->unk-1F6 = (u16)0; - temp_v0_2->unk-1FC = (u16)0; - temp_v0_2->unk-1FA = (u8)0; - temp_v0_2->unk-1F9 = (u8)0; - temp_v0_2->unk-1F8 = (u8)0; - if (temp_v0_2 != &contdemoMesg) - { - goto loop_1; - } - // (possible return value: temp_v0_2) -} -#else -GLOBAL_ASM( -.text -glabel joyInitDebugNoticeList -/* 00C160 7000B560 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00C164 7000B564 AFBF0014 */ sw $ra, 0x14($sp) -/* 00C168 7000B568 3C048002 */ lui $a0, %hi(D_800268C0) -/* 00C16C 7000B56C 3C058003 */ lui $a1, %hi(aJoy_c_debug) -/* 00C170 7000B570 24A59390 */ addiu $a1, %lo(aJoy_c_debug) # addiu $a1, $a1, -0x6c70 -/* 00C174 7000B574 0C001398 */ jal debCheckAddDebugNoticeListEntry -/* 00C178 7000B578 248468C0 */ addiu $a0, %lo(D_800268C0) # addiu $a0, $a0, 0x68c0 -/* 00C17C 7000B57C 3C048006 */ lui $a0, %hi(cont1MesgMQ) -/* 00C180 7000B580 3C058006 */ lui $a1, %hi(cont1Mesg) -/* 00C184 7000B584 24A55368 */ addiu $a1, %lo(cont1Mesg) # addiu $a1, $a1, 0x5368 -/* 00C188 7000B588 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 -/* 00C18C 7000B58C 0C0035B4 */ jal osCreateMesgQueue -/* 00C190 7000B590 24060001 */ li $a2, 1 -/* 00C194 7000B594 3C048006 */ lui $a0, %hi(cont2MesgMQ) -/* 00C198 7000B598 3C058006 */ lui $a1, %hi(cont2Mesg) -/* 00C19C 7000B59C 24A55388 */ addiu $a1, %lo(cont2Mesg) # addiu $a1, $a1, 0x5388 -/* 00C1A0 7000B5A0 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 -/* 00C1A4 7000B5A4 0C0035B4 */ jal osCreateMesgQueue -/* 00C1A8 7000B5A8 24060001 */ li $a2, 1 -/* 00C1AC 7000B5AC 3C048006 */ lui $a0, %hi(cont3MesgMQ) -/* 00C1B0 7000B5B0 3C058006 */ lui $a1, %hi(cont3Mesg) -/* 00C1B4 7000B5B4 24A553A8 */ addiu $a1, %lo(cont3Mesg) # addiu $a1, $a1, 0x53a8 -/* 00C1B8 7000B5B8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 -/* 00C1BC 7000B5BC 0C0035B4 */ jal osCreateMesgQueue -/* 00C1C0 7000B5C0 24060001 */ li $a2, 1 -/* 00C1C4 7000B5C4 3C048006 */ lui $a0, %hi(cont4MesgMQ) -/* 00C1C8 7000B5C8 3C058006 */ lui $a1, %hi(cont4Mesg) -/* 00C1CC 7000B5CC 24A553C8 */ addiu $a1, %lo(cont4Mesg) # addiu $a1, $a1, 0x53c8 -/* 00C1D0 7000B5D0 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 -/* 00C1D4 7000B5D4 0C0035B4 */ jal osCreateMesgQueue -/* 00C1D8 7000B5D8 24060001 */ li $a2, 1 -/* 00C1DC 7000B5DC 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C1E0 7000B5E0 3C058006 */ lui $a1, %hi(contdemoMesg) -/* 00C1E4 7000B5E4 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 -/* 00C1E8 7000B5E8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C1EC 7000B5EC 0C0035B4 */ jal osCreateMesgQueue -/* 00C1F0 7000B5F0 2406000A */ li $a2, 10 -/* 00C1F4 7000B5F4 3C058006 */ lui $a1, %hi(contdemoMesgMQ) -/* 00C1F8 7000B5F8 24A55350 */ addiu $a1, %lo(contdemoMesgMQ) # addiu $a1, $a1, 0x5350 -/* 00C1FC 7000B5FC 24040005 */ li $a0, 5 -/* 00C200 7000B600 0C003714 */ jal osSetEventMesg -/* 00C204 7000B604 00003025 */ move $a2, $zero -/* 00C208 7000B608 240E0001 */ li $t6, 1 -/* 00C20C 7000B60C 3C018002 */ lui $at, %hi(enableControllers) -/* 00C210 7000B610 AC2E6918 */ sw $t6, %lo(enableControllers)($at) -/* 00C214 7000B614 3C018002 */ lui $at, %hi(disable_all_rumble) -/* 00C218 7000B618 AC206924 */ sw $zero, %lo(disable_all_rumble)($at) -/* 00C21C 7000B61C 3C0F8006 */ lui $t7, %hi(controller_input_index) -/* 00C220 7000B620 3C018002 */ lui $at, %hi(ptr_to_tlb_ramrom_record) -/* 00C224 7000B624 25E24F30 */ addiu $v0, $t7, %lo(controller_input_index) -/* 00C228 7000B628 3C058006 */ lui $a1, %hi(contdemoMesg) -/* 00C22C 7000B62C AC206928 */ sw $zero, %lo(ptr_to_tlb_ramrom_record)($at) -/* 00C230 7000B630 24A55328 */ addiu $a1, %lo(contdemoMesg) # addiu $a1, $a1, 0x5328 -/* 00C234 7000B634 00401825 */ move $v1, $v0 -/* 00C238 7000B638 2404FFFF */ li $a0, -1 -.L7000B63C: -/* 00C23C 7000B63C AC6001E0 */ sw $zero, 0x1e0($v1) -/* 00C240 7000B640 AC6001E4 */ sw $zero, 0x1e4($v1) -/* 00C244 7000B644 AC6001E8 */ sw $zero, 0x1e8($v1) -/* 00C248 7000B648 AC6001EC */ sw $zero, 0x1ec($v1) -/* 00C24C 7000B64C AC6401F8 */ sw $a0, 0x1f8($v1) -/* 00C250 7000B650 244201FC */ addiu $v0, $v0, 0x1fc -/* 00C254 7000B654 246301FC */ addiu $v1, $v1, 0x1fc -/* 00C258 7000B658 A040FE1A */ sb $zero, -0x1e6($v0) -/* 00C25C 7000B65C A040FE19 */ sb $zero, -0x1e7($v0) -/* 00C260 7000B660 A040FE18 */ sb $zero, -0x1e8($v0) -/* 00C264 7000B664 A440FE16 */ sh $zero, -0x1ea($v0) -/* 00C268 7000B668 A040FE14 */ sb $zero, -0x1ec($v0) -/* 00C26C 7000B66C A040FE13 */ sb $zero, -0x1ed($v0) -/* 00C270 7000B670 A040FE12 */ sb $zero, -0x1ee($v0) -/* 00C274 7000B674 A440FE10 */ sh $zero, -0x1f0($v0) -/* 00C278 7000B678 A040FE0E */ sb $zero, -0x1f2($v0) -/* 00C27C 7000B67C A040FE0D */ sb $zero, -0x1f3($v0) -/* 00C280 7000B680 A040FE0C */ sb $zero, -0x1f4($v0) -/* 00C284 7000B684 A440FE0A */ sh $zero, -0x1f6($v0) -/* 00C288 7000B688 A440FE04 */ sh $zero, -0x1fc($v0) -/* 00C28C 7000B68C A040FE06 */ sb $zero, -0x1fa($v0) -/* 00C290 7000B690 A040FE07 */ sb $zero, -0x1f9($v0) -/* 00C294 7000B694 1445FFE9 */ bne $v0, $a1, .L7000B63C -/* 00C298 7000B698 A040FE08 */ sb $zero, -0x1f8($v0) -/* 00C29C 7000B69C 8FBF0014 */ lw $ra, 0x14($sp) -/* 00C2A0 7000B6A0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00C2A4 7000B6A4 03E00008 */ jr $ra -/* 00C2A8 7000B6A8 00000000 */ nop -) -#endif +// +s32 g_ContRumblePakInitState[MAXCONTROLLERS] = {0}; +#define set_rumble_pak_init_state_not_ready(i) do { g_ContRumblePakInitState[i] = RUMBLEPAKINITSTATE_NOT_READY; } while (0) +s32 g_ContRumblePakCurrentState[MAXCONTROLLERS] = {0}; +s32 g_ContRumblePakTimer60[MAXCONTROLLERS] = {0}; +s32 g_ContRumblePakTargetState[MAXCONTROLLERS] = {0}; -void test_controller_presence(void) +s32 g_ContQueuesCreated = 0; +s32 g_ContInitDone = 0; +s32 g_ContCheckStatusTimer60 = 0; + +contplaybackfunc g_ContPlaybackFunc = NULL; +contrecordfunc g_ContRecordFunc = NULL; + +/** + * Startup flag, cleared after first call to joyCheckStatus. + */ +s32 g_ContNeedsInit = 1; + +u32 g_ContBadReadsStickX[MAXCONTROLLERS] = {0}; +u32 g_ContBadReadsStickY[MAXCONTROLLERS] = {0}; +u32 g_ContBadReadsButtons[MAXCONTROLLERS] = {0}; +u32 g_ContBadReadsButtonsPressed[MAXCONTROLLERS] = {0}; + +s32 g_ContBadReadTimer60 = 0; // Static variable? + +void joyInit(void) { - OSMesg sp1C; + s32 i; + s32 j; - if (enableControllers != 0) + debTryAdd(&g_ContDebugData, "joy_c_debug"); + + osCreateMesgQueue(&g_ContDisablePollSendMessageQueue, g_ContDisablePollSendMessageBuffer, CONT_DISABLE_POLL_SEND_BUFFER_LEN); + osCreateMesgQueue(&g_ContDisablePollReceiveMessageQueue, g_ContDisablePollReceiveMessageBuffer, CONT_DISABLE_POLL_RECEIVE_BUFFER_LEN); + osCreateMesgQueue(&g_ContEnablePollSendMessageQueue, g_ContEnablePollSendMessageBuffer, CONT_ENABLE_POLL_SEND_BUFFER_LEN); + osCreateMesgQueue(&g_ContEnablePollReceiveMessageQueue, g_ContEnablePollReceiveMessageBuffer, CONT_ENABLE_POLL_RECEIVE_BUFFER_LEN); + osCreateMesgQueue(&g_ContInputMessageQueue, g_ContInputMessageBuffer, CONT_INPUT_BUFFER_LEN); + + osSetEventMesg(OS_EVENT_SI, &g_ContInputMessageQueue, NULL); + + g_ContQueuesCreated = TRUE; + g_ContPlaybackFunc = NULL; + g_ContRecordFunc = NULL; + + for (i = 0; i < CONTDATA_LEN; i++) { - osSendMesg(&cont1MesgMQ, &sp1C, 0); - osRecvMesg(&cont2MesgMQ, &sp1C, 1); - controller_check_for_rumble_maybe(); - osSendMesg(&cont3MesgMQ, &sp1C, 0); - osRecvMesg(&cont4MesgMQ, &sp1C, 1); - } -} + g_ContData[i].curlast = 0; + g_ContData[i].curstart = 0; + g_ContData[i].nextlast = 0; + g_ContData[i].nextsecondlast = 0; + g_ContData[i].playbackcontcount = -1; -s32 osPfsChecker(u32 *param_1) //OSPfs *param_1 -{ - return 3; -} - - - - - - -#ifdef NONMATCHING -s32 controller_7000B734(s32 arg0) -{ - s32 temp_ret; - s32 temp_ret_2; - s32 temp_v0; - void *temp_a3; - void *temp_v1; - s32 phi_return; - - temp_v0 = arg0 * 4; - temp_a3 = temp_v0 + &controller_1_rumble_inserted; - phi_return = temp_v0; - if (*temp_a3 >= 0) - { - temp_v1 = temp_v0 + &player1_controllerstatus; - phi_return = temp_v0; - if ((temp_v1->unk0 & 4) != 0) + for (j = 0; j < MAXCONTROLLERS; j++) { - phi_return = temp_v0; - if ((temp_v1->unk2 & 1) != 0) + g_ContData[i].samples[0].pads[j].button = 0; + g_ContData[i].samples[0].pads[j].stick_x = 0; + g_ContData[i].samples[0].pads[j].stick_y = 0; + g_ContData[i].samples[0].pads[j].errnum = 0; + } + } +} + +void joyCheckStatusThreadSafe(void) +{ + OSMesg msg; + + if (g_ContQueuesCreated) + { + osSendMesg(&g_ContDisablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK); + osRecvMesg(&g_ContDisablePollReceiveMessageQueue, &msg, OS_MESG_BLOCK); + + joyCheckStatus(); + + osSendMesg(&g_ContEnablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK); + osRecvMesg(&g_ContEnablePollReceiveMessageQueue, &msg, OS_MESG_BLOCK); + } +} + +s32 osPfsChecker(OSPfs *pfs) +{ + return PFS_ERR_INCONSISTENT; +} + +void joyRumblePakInit(s32 index) +{ + s32 ret; + + if (g_ContRumblePakInitState[index] > RUMBLEPAKINITSTATE_ERROR) + { + if ((g_ContStatus[index].type & CONT_JOYPORT) && (g_ContStatus[index].status & CONT_CARD_ON)) + { + ret = osPfsInit(&g_ContInputMessageQueue, &g_ContPfs[index], index); + + if ((ret == PFS_ERR_ID_FATAL) || (ret == PFS_ERR_DEVICE)) { - temp_ret = osPfsInit(&contdemoMesgMQ, (arg0 * 0x68) + &player1_controller_packet, arg0, temp_a3); - if ((temp_ret == 0xa) || (temp_ret == 0xb)) + if (osMotorInit(&g_ContInputMessageQueue, &g_ContPfs[index], index) == 0) { - temp_ret_2 = osMotorInit(&contdemoMesgMQ, sp20, arg0, sp1C); - if (temp_ret_2 == 0) - { - *sp1C = 1; - return temp_ret_2; - } - *sp1C = -1; - phi_return = temp_ret_2; + g_ContRumblePakInitState[index] = RUMBLEPAKINITSTATE_READY; } else { - + g_ContRumblePakInitState[index] = RUMBLEPAKINITSTATE_ERROR; } } } } - return phi_return; } -#else -GLOBAL_ASM( -.text -glabel controller_7000B734 -/* 00C334 7000B734 3C0E8002 */ lui $t6, %hi(controller_1_rumble_inserted) -/* 00C338 7000B738 25CE68D8 */ addiu $t6, %lo(controller_1_rumble_inserted) # addiu $t6, $t6, 0x68d8 -/* 00C33C 7000B73C 00041080 */ sll $v0, $a0, 2 -/* 00C340 7000B740 004E3821 */ addu $a3, $v0, $t6 -/* 00C344 7000B744 8CEF0000 */ lw $t7, ($a3) -/* 00C348 7000B748 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 00C34C 7000B74C AFBF0014 */ sw $ra, 0x14($sp) -/* 00C350 7000B750 05E0002B */ bltz $t7, .L7000B800 -/* 00C354 7000B754 00803025 */ move $a2, $a0 -/* 00C358 7000B758 3C188006 */ lui $t8, %hi(player1_controllerstatus) -/* 00C35C 7000B75C 271853E8 */ addiu $t8, %lo(player1_controllerstatus) # addiu $t8, $t8, 0x53e8 -/* 00C360 7000B760 00581821 */ addu $v1, $v0, $t8 -/* 00C364 7000B764 94790000 */ lhu $t9, ($v1) -/* 00C368 7000B768 33280004 */ andi $t0, $t9, 4 -/* 00C36C 7000B76C 51000025 */ beql $t0, $zero, .L7000B804 -/* 00C370 7000B770 8FBF0014 */ lw $ra, 0x14($sp) -/* 00C374 7000B774 90690002 */ lbu $t1, 2($v1) -/* 00C378 7000B778 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C37C 7000B77C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C380 7000B780 312A0001 */ andi $t2, $t1, 1 -/* 00C384 7000B784 1140001E */ beqz $t2, .L7000B800 -/* 00C388 7000B788 00065880 */ sll $t3, $a2, 2 -/* 00C38C 7000B78C 01665823 */ subu $t3, $t3, $a2 -/* 00C390 7000B790 000B5880 */ sll $t3, $t3, 2 -/* 00C394 7000B794 01665821 */ addu $t3, $t3, $a2 -/* 00C398 7000B798 3C0C8006 */ lui $t4, %hi(player1_controller_packet) -/* 00C39C 7000B79C 258C53F8 */ addiu $t4, %lo(player1_controller_packet) # addiu $t4, $t4, 0x53f8 -/* 00C3A0 7000B7A0 000B58C0 */ sll $t3, $t3, 3 -/* 00C3A4 7000B7A4 016C2821 */ addu $a1, $t3, $t4 -/* 00C3A8 7000B7A8 AFA50020 */ sw $a1, 0x20($sp) -/* 00C3AC 7000B7AC AFA60028 */ sw $a2, 0x28($sp) -/* 00C3B0 7000B7B0 0C0051D0 */ jal osPfsInit -/* 00C3B4 7000B7B4 AFA7001C */ sw $a3, 0x1c($sp) -/* 00C3B8 7000B7B8 2401000A */ li $at, 10 -/* 00C3BC 7000B7BC 8FA50020 */ lw $a1, 0x20($sp) -/* 00C3C0 7000B7C0 8FA60028 */ lw $a2, 0x28($sp) -/* 00C3C4 7000B7C4 10410003 */ beq $v0, $at, .L7000B7D4 -/* 00C3C8 7000B7C8 8FA7001C */ lw $a3, 0x1c($sp) -/* 00C3CC 7000B7CC 2401000B */ li $at, 11 -/* 00C3D0 7000B7D0 1441000B */ bne $v0, $at, .L7000B800 -.L7000B7D4: -/* 00C3D4 7000B7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C3D8 7000B7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C3DC 7000B7DC 0C00334E */ jal osMotorInit -/* 00C3E0 7000B7E0 AFA7001C */ sw $a3, 0x1c($sp) -/* 00C3E4 7000B7E4 14400004 */ bnez $v0, .L7000B7F8 -/* 00C3E8 7000B7E8 8FA7001C */ lw $a3, 0x1c($sp) -/* 00C3EC 7000B7EC 240D0001 */ li $t5, 1 -/* 00C3F0 7000B7F0 10000003 */ b .L7000B800 -/* 00C3F4 7000B7F4 ACED0000 */ sw $t5, ($a3) -.L7000B7F8: -/* 00C3F8 7000B7F8 240EFFFF */ li $t6, -1 -/* 00C3FC 7000B7FC ACEE0000 */ sw $t6, ($a3) -.L7000B800: -/* 00C400 7000B800 8FBF0014 */ lw $ra, 0x14($sp) -.L7000B804: -/* 00C404 7000B804 27BD0028 */ addiu $sp, $sp, 0x28 -/* 00C408 7000B808 03E00008 */ jr $ra -/* 00C40C 7000B80C 00000000 */ nop -) -#endif - - -#ifdef NONMATCHING -s32 controller_check_for_rumble_maybe(void) +void joyCheckStatus(void) { - s32 temp_a0; - s32 temp_a1; - s32 temp_s0; - s32 temp_s0_2; - s32 temp_v0_2; - u32 temp_v1; - void *temp_v0; - s8 phi_s0; - s32 phi_s0_2; - s32 phi_s0_3; - void *phi_a3; - void *phi_a2; - u32 phi_v1; - s32 phi_a1; - void *phi_a3_2; - s32 phi_return; - s8 phi_s0_4; - s32 phi_return_2; - s8 phi_s0_5; - s8 phi_s0_6; + s8 i; - if (D_8002692C != 0) + if (g_ContNeedsInit) { - D_8002692C = 0; - D_8002691C = 1; - phi_return_2 = osContInit(&contdemoMesgMQ, &num_controller_plugged_in_flags, &player1_controllerstatus); + g_ContNeedsInit = FALSE; + osContInit(&g_ContInputMessageQueue, &g_ConnectedControllers, g_ContStatus); + g_ContInitDone = TRUE; } else { - osContStartQuery(&contdemoMesgMQ); - osRecvMesg(&contdemoMesgMQ, 0, 1); - phi_s0_6 = (u8)0xf; - if ((*(player1_controllerstatus + 3) & 8) != 0) - { - phi_s0_6 = (u8)0xe; - } - phi_s0_5 = phi_s0_6; - if ((*(player2_controllerstatus + 3) & 8) != 0) - { - phi_s0_5 = phi_s0_6 + -2; - } - phi_s0_4 = phi_s0_5; - if ((*(player3_controllerstatus + 3) & 8) != 0) - { - phi_s0_4 = phi_s0_5 + -4; - } - phi_s0 = phi_s0_4; - if ((*(player4_controllerstatus + 3) & 8) != 0) - { - phi_s0 = phi_s0_4 + -8; - } - num_controller_plugged_in_flags = (s8) phi_s0; - phi_return_2 = osContGetQuery(&player1_controllerstatus); - } - phi_s0_2 = 0; -loop_12: - temp_s0 = (s32) ((phi_s0_2 + 1) << 0x18) >> 0x18; - phi_s0_2 = temp_s0; - if (temp_s0 < 4) - { - goto loop_12; - } - phi_s0_3 = 0; - phi_a3 = &num_controller_plugged_in_flags_0; - phi_a2 = &controller_1_rumble_inserted; -loop_14: - temp_a1 = 1 << phi_s0_3; - temp_v1 = *phi_a3; - if ((((num_controller_plugged_in_flags & temp_a1) != 0) && ((temp_v0->unk0 & 3) != 0)) && (temp_v0->unk3 == 0)) - { - if (((temp_v0_2 & temp_a1) != 0) || (*(phi_a2 + temp_a0) <= 0)) - { - phi_v1 = num_controller_plugged_in_flags_0; - phi_a1 = sp24; - phi_a3_2 = &num_controller_plugged_in_flags_0; - phi_return = controller_7000B734(phi_s0_3, temp_a1, phi_a2, phi_a3); - phi_a2 = &controller_1_rumble_inserted; - } - else - { + u32 slots = 0xF; + s32 i; - } - *phi_a3_2 = (s8) (phi_v1 | phi_a1); - phi_a3 = phi_a3_2; - } - else - { - phi_return = phi_return_2; - phi_a3 = phi_a3; - phi_a2 = phi_a2; - if ((temp_v1 & temp_a1) != 0) + // The following three function calls (+for) show up in the same sequence + // in devkit demos, but there doesn't seem to be much else in common + // with Rare's implementation. + // n64devkit\ultra\usr\src\pr\demos\gbpak\siproc.c line 244 + // n64devkit\ultra\usr\src\pr\demos\voice\siproc.c line 89 + osContStartQuery(&g_ContInputMessageQueue); + osRecvMesg(&g_ContInputMessageQueue, NULL, OS_MESG_BLOCK); + osContGetQuery(g_ContStatus); + // end similarity to gbpak\siproc.c + + for (i = 0; i < MAXCONTROLLERS; i++) { - *phi_a3 = (s8) (temp_v1 ^ temp_a1); - *(phi_a2 + (phi_s0_3 * 4)) = 0; - phi_return = phi_return_2; - phi_a3 = phi_a3; - phi_a2 = phi_a2; + if (g_ContStatus[i].errnum & CONT_NO_RESPONSE_ERROR) + { + slots -= 1 << i; + } + } + // end similarity to voice\siproc.c + + g_ConnectedControllers = slots; + } + + if (0) + { + // Removed + } + + for (i = 0; i < MAXCONTROLLERS; i++) + { + // Removed + } + + for (i = 0; i < MAXCONTROLLERS; i++) + { + if ((g_ConnectedControllers & (1 << i)) + && (g_ContStatus[i].type & (CONT_ABSOLUTE | CONT_RELATIVE)) + && !(g_ContStatus[i].errnum)) + { + // This seems like a typo in the original, doing a bitwise AND + // between a logical test on the left and a bitshift on the right. + if ((!(g_ControllerStates) & (1 << i)) || (g_ContRumblePakInitState[i] < RUMBLEPAKINITSTATE_READY)) + { + joyRumblePakInit(i); + } + + g_ControllerStates |= (1 << i); + } + else if (g_ControllerStates & (1 << i)) + { + g_ControllerStates ^= (1 << i); + g_ContRumblePakInitState[i] = RUMBLEPAKINITSTATE_NOT_READY; } } - temp_s0_2 = (s32) ((phi_s0_3 + 1) << 0x18) >> 0x18; - phi_s0_3 = temp_s0_2; - phi_return_2 = phi_return; - if (temp_s0_2 < 4) - { - goto loop_14; - } - return phi_return; } -#else -GLOBAL_ASM( -.text -glabel controller_check_for_rumble_maybe -/* 00C410 7000B810 3C028002 */ lui $v0, %hi(D_8002692C) -/* 00C414 7000B814 2442692C */ addiu $v0, %lo(D_8002692C) # addiu $v0, $v0, 0x692c -/* 00C418 7000B818 8C4E0000 */ lw $t6, ($v0) -/* 00C41C 7000B81C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 00C420 7000B820 AFBF001C */ sw $ra, 0x1c($sp) -/* 00C424 7000B824 11C0000D */ beqz $t6, .L7000B85C -/* 00C428 7000B828 AFB00018 */ sw $s0, 0x18($sp) -/* 00C42C 7000B82C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C430 7000B830 3C058002 */ lui $a1, %hi(num_controller_plugged_in_flags) -/* 00C434 7000B834 3C068006 */ lui $a2, %hi(player1_controllerstatus) -/* 00C438 7000B838 AC400000 */ sw $zero, ($v0) -/* 00C43C 7000B83C 24C653E8 */ addiu $a2, %lo(player1_controllerstatus) # addiu $a2, $a2, 0x53e8 -/* 00C440 7000B840 24A568D0 */ addiu $a1, %lo(num_controller_plugged_in_flags) # addiu $a1, $a1, 0x68d0 -/* 00C444 7000B844 0C005240 */ jal osContInit -/* 00C448 7000B848 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C44C 7000B84C 240F0001 */ li $t7, 1 -/* 00C450 7000B850 3C018002 */ lui $at, %hi(D_8002691C) -/* 00C454 7000B854 10000026 */ b .L7000B8F0 -/* 00C458 7000B858 AC2F691C */ sw $t7, %lo(D_8002691C)($at) -.L7000B85C: -/* 00C45C 7000B85C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C460 7000B860 2410000F */ li $s0, 15 -/* 00C464 7000B864 0C005330 */ jal osContStartQuery -/* 00C468 7000B868 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C46C 7000B86C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C470 7000B870 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00C474 7000B874 00002825 */ move $a1, $zero -/* 00C478 7000B878 0C003774 */ jal osRecvMesg -/* 00C47C 7000B87C 24060001 */ li $a2, 1 -/* 00C480 7000B880 3C048006 */ lui $a0, %hi(player1_controllerstatus) -/* 00C484 7000B884 0C005351 */ jal osContGetQuery -/* 00C488 7000B888 248453E8 */ addiu $a0, %lo(player1_controllerstatus) # addiu $a0, $a0, 0x53e8 -/* 00C48C 7000B88C 3C188006 */ lui $t8, %hi(player1_controllerstatus+3) -/* 00C490 7000B890 931853EB */ lbu $t8, %lo(player1_controllerstatus+3)($t8) -/* 00C494 7000B894 3C088006 */ lui $t0, %hi(player2_controllerstatus+3) -/* 00C498 7000B898 3C0A8006 */ lui $t2, %hi(player3_controllerstatus+3) -/* 00C49C 7000B89C 33190008 */ andi $t9, $t8, 8 -/* 00C4A0 7000B8A0 13200002 */ beqz $t9, .L7000B8AC -/* 00C4A4 7000B8A4 3C0C8006 */ lui $t4, %hi(player4_controllerstatus+3) -/* 00C4A8 7000B8A8 2410000E */ li $s0, 14 -.L7000B8AC: -/* 00C4AC 7000B8AC 910853EF */ lbu $t0, %lo(player2_controllerstatus+3)($t0) -/* 00C4B0 7000B8B0 3C018002 */ lui $at, %hi(num_controller_plugged_in_flags) -/* 00C4B4 7000B8B4 31090008 */ andi $t1, $t0, 8 -/* 00C4B8 7000B8B8 11200002 */ beqz $t1, .L7000B8C4 -/* 00C4BC 7000B8BC 00000000 */ nop -/* 00C4C0 7000B8C0 2610FFFE */ addiu $s0, $s0, -2 -.L7000B8C4: -/* 00C4C4 7000B8C4 914A53F3 */ lbu $t2, %lo(player3_controllerstatus+3)($t2) -/* 00C4C8 7000B8C8 314B0008 */ andi $t3, $t2, 8 -/* 00C4CC 7000B8CC 11600002 */ beqz $t3, .L7000B8D8 -/* 00C4D0 7000B8D0 00000000 */ nop -/* 00C4D4 7000B8D4 2610FFFC */ addiu $s0, $s0, -4 -.L7000B8D8: -/* 00C4D8 7000B8D8 918C53F7 */ lbu $t4, %lo(player4_controllerstatus+3)($t4) -/* 00C4DC 7000B8DC 318D0008 */ andi $t5, $t4, 8 -/* 00C4E0 7000B8E0 11A00002 */ beqz $t5, .L7000B8EC -/* 00C4E4 7000B8E4 00000000 */ nop -/* 00C4E8 7000B8E8 2610FFF8 */ addiu $s0, $s0, -8 -.L7000B8EC: -/* 00C4EC 7000B8EC A03068D0 */ sb $s0, %lo(num_controller_plugged_in_flags)($at) -.L7000B8F0: -/* 00C4F0 7000B8F0 00008025 */ move $s0, $zero -/* 00C4F4 7000B8F4 26100001 */ addiu $s0, $s0, 1 -.L7000B8F8: -/* 00C4F8 7000B8F8 00107600 */ sll $t6, $s0, 0x18 -/* 00C4FC 7000B8FC 000E8603 */ sra $s0, $t6, 0x18 -/* 00C500 7000B900 2A010004 */ slti $at, $s0, 4 -/* 00C504 7000B904 5420FFFC */ bnezl $at, .L7000B8F8 -/* 00C508 7000B908 26100001 */ addiu $s0, $s0, 1 -/* 00C50C 7000B90C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) -/* 00C510 7000B910 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) -/* 00C514 7000B914 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 -/* 00C518 7000B918 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 -/* 00C51C 7000B91C 00008025 */ move $s0, $zero -.L7000B920: -/* 00C520 7000B920 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) -/* 00C524 7000B924 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) -/* 00C528 7000B928 24180001 */ li $t8, 1 -/* 00C52C 7000B92C 02182804 */ sllv $a1, $t8, $s0 -/* 00C530 7000B930 03254024 */ and $t0, $t9, $a1 -/* 00C534 7000B934 1100001E */ beqz $t0, .L7000B9B0 -/* 00C538 7000B938 90E30000 */ lbu $v1, ($a3) -/* 00C53C 7000B93C 3C098006 */ lui $t1, %hi(player1_controllerstatus) -/* 00C540 7000B940 252953E8 */ addiu $t1, %lo(player1_controllerstatus) # addiu $t1, $t1, 0x53e8 -/* 00C544 7000B944 00102080 */ sll $a0, $s0, 2 -/* 00C548 7000B948 00891021 */ addu $v0, $a0, $t1 -/* 00C54C 7000B94C 944A0000 */ lhu $t2, ($v0) -/* 00C550 7000B950 314B0003 */ andi $t3, $t2, 3 -/* 00C554 7000B954 51600017 */ beql $t3, $zero, .L7000B9B4 -/* 00C558 7000B958 0065C824 */ and $t9, $v1, $a1 -/* 00C55C 7000B95C 904C0003 */ lbu $t4, 3($v0) -/* 00C560 7000B960 2C620001 */ sltiu $v0, $v1, 1 -/* 00C564 7000B964 00456824 */ and $t5, $v0, $a1 -/* 00C568 7000B968 55800012 */ bnezl $t4, .L7000B9B4 -/* 00C56C 7000B96C 0065C824 */ and $t9, $v1, $a1 -/* 00C570 7000B970 15A00003 */ bnez $t5, .L7000B980 -/* 00C574 7000B974 00C47021 */ addu $t6, $a2, $a0 -/* 00C578 7000B978 8DCF0000 */ lw $t7, ($t6) -/* 00C57C 7000B97C 1DE00009 */ bgtz $t7, .L7000B9A4 -.L7000B980: -/* 00C580 7000B980 02002025 */ move $a0, $s0 -/* 00C584 7000B984 0C002DCD */ jal controller_7000B734 -/* 00C588 7000B988 AFA50024 */ sw $a1, 0x24($sp) -/* 00C58C 7000B98C 3C078002 */ lui $a3, %hi(num_controller_plugged_in_flags_0) -/* 00C590 7000B990 24E768D4 */ addiu $a3, %lo(num_controller_plugged_in_flags_0) # addiu $a3, $a3, 0x68d4 -/* 00C594 7000B994 3C068002 */ lui $a2, %hi(controller_1_rumble_inserted) -/* 00C598 7000B998 24C668D8 */ addiu $a2, %lo(controller_1_rumble_inserted) # addiu $a2, $a2, 0x68d8 -/* 00C59C 7000B99C 90E30000 */ lbu $v1, ($a3) -/* 00C5A0 7000B9A0 8FA50024 */ lw $a1, 0x24($sp) -.L7000B9A4: -/* 00C5A4 7000B9A4 0065C025 */ or $t8, $v1, $a1 -/* 00C5A8 7000B9A8 10000008 */ b .L7000B9CC -/* 00C5AC 7000B9AC A0F80000 */ sb $t8, ($a3) -.L7000B9B0: -/* 00C5B0 7000B9B0 0065C824 */ and $t9, $v1, $a1 -.L7000B9B4: -/* 00C5B4 7000B9B4 13200005 */ beqz $t9, .L7000B9CC -/* 00C5B8 7000B9B8 00654026 */ xor $t0, $v1, $a1 -/* 00C5BC 7000B9BC 00104880 */ sll $t1, $s0, 2 -/* 00C5C0 7000B9C0 00C95021 */ addu $t2, $a2, $t1 -/* 00C5C4 7000B9C4 A0E80000 */ sb $t0, ($a3) -/* 00C5C8 7000B9C8 AD400000 */ sw $zero, ($t2) -.L7000B9CC: -/* 00C5CC 7000B9CC 26100001 */ addiu $s0, $s0, 1 -/* 00C5D0 7000B9D0 00105E00 */ sll $t3, $s0, 0x18 -/* 00C5D4 7000B9D4 000B8603 */ sra $s0, $t3, 0x18 -/* 00C5D8 7000B9D8 2A010004 */ slti $at, $s0, 4 -/* 00C5DC 7000B9DC 1420FFD0 */ bnez $at, .L7000B920 -/* 00C5E0 7000B9E0 00000000 */ nop -/* 00C5E4 7000B9E4 8FBF001C */ lw $ra, 0x1c($sp) -/* 00C5E8 7000B9E8 8FB00018 */ lw $s0, 0x18($sp) -/* 00C5EC 7000B9EC 27BD0038 */ addiu $sp, $sp, 0x38 -/* 00C5F0 7000B9F0 03E00008 */ jr $ra -/* 00C5F4 7000B9F4 00000000 */ nop -) -#endif - - -#ifdef NONMATCHING -s32 get_attached_controller_count(void) +s8 joyGetControllerCount(void) { - if (ptr_current_point_in_controller_input_index->unk1F8 >= 0) + s32 i; + + if (g_ContDataPtr->playbackcontcount >= 0) { - return (s32) (ptr_current_point_in_controller_input_index->unk1F8 << 0x18) >> 0x18; + return g_ContDataPtr->playbackcontcount; } - if (((void *)0x80020000->unk68D0 & 1) == 0) + + for (i = 0; i < MAXCONTROLLERS; i++) { - return 0; + if ((g_ConnectedControllers & (1 << i)) == 0) + { + return i; + } } - if (((void *)0x80020000->unk68D0 & 2) == 0) - { - return 1; - } - if (((void *)0x80020000->unk68D0 & 4) == 0) - { - return 2; - } - if (((void *)0x80020000->unk68D0 & 8) == 0) - { - return 3; - } - return 4; + + return MAXCONTROLLERS; } -#else -GLOBAL_ASM( -.text -glabel get_attached_controller_count -/* 00C5F8 7000B9F8 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) -/* 00C5FC 7000B9FC 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) -/* 00C600 7000BA00 3C028002 */ lui $v0, %hi(num_controller_plugged_in_flags) -/* 00C604 7000BA04 8DC301F8 */ lw $v1, 0x1f8($t6) -/* 00C608 7000BA08 04600005 */ bltz $v1, .L7000BA20 -/* 00C60C 7000BA0C 00000000 */ nop -/* 00C610 7000BA10 00031600 */ sll $v0, $v1, 0x18 -/* 00C614 7000BA14 00027E03 */ sra $t7, $v0, 0x18 -/* 00C618 7000BA18 03E00008 */ jr $ra -/* 00C61C 7000BA1C 01E01025 */ move $v0, $t7 -.L7000BA20: -/* 00C620 7000BA20 904268D0 */ lbu $v0, %lo(num_controller_plugged_in_flags)($v0) -/* 00C624 7000BA24 30580001 */ andi $t8, $v0, 1 -/* 00C628 7000BA28 17000003 */ bnez $t8, .L7000BA38 -/* 00C62C 7000BA2C 30590002 */ andi $t9, $v0, 2 -/* 00C630 7000BA30 03E00008 */ jr $ra -/* 00C634 7000BA34 00001025 */ move $v0, $zero - -.L7000BA38: -/* 00C638 7000BA38 17200003 */ bnez $t9, .L7000BA48 -/* 00C63C 7000BA3C 30480004 */ andi $t0, $v0, 4 -/* 00C640 7000BA40 03E00008 */ jr $ra -/* 00C644 7000BA44 24020001 */ li $v0, 1 - -.L7000BA48: -/* 00C648 7000BA48 15000003 */ bnez $t0, .L7000BA58 -/* 00C64C 7000BA4C 30490008 */ andi $t1, $v0, 8 -/* 00C650 7000BA50 03E00008 */ jr $ra -/* 00C654 7000BA54 24020002 */ li $v0, 2 - -.L7000BA58: -/* 00C658 7000BA58 15200003 */ bnez $t1, .L7000BA68 -/* 00C65C 7000BA5C 24020004 */ li $v0, 4 -/* 00C660 7000BA60 03E00008 */ jr $ra -/* 00C664 7000BA64 24020003 */ li $v0, 3 - -.L7000BA68: -/* 00C668 7000BA68 03E00008 */ jr $ra -/* 00C66C 7000BA6C 00000000 */ nop -) -#endif - - - - - - -u8 get_num_controllers_plugged_in(void) +u8 joyGetConnectedControllers(void) { - return num_controller_plugged_in_flags; + return g_ConnectedControllers; } +void joyRumblePakTick(void) +{ + s32 i; - - - - - -#ifdef NONMATCHING -s32 controller_rumble_related(void) { - s32 temp_t1; - s32 temp_a0; - - // Node 0 - // Node 1 - if (controller_1_rumble_state != controller_1_rumble_pulse) + for (i = 0; i < MAXCONTROLLERS; i++) { - // Node 2 - temp_a0 = ((0 * 0x68) + &player1_controller_packet); - if (1 == controller_1_rumble_pulse) + if (g_ContRumblePakCurrentState[i] != g_ContRumblePakTargetState[i]) { - // Node 3 - if (osMotorStart(temp_a0) == 0) + if (g_ContRumblePakTargetState[i] == RUMBLEPAKSTATE_ON) { - // Node 4 - controller_1_rumble_state = 1; - } - else - { - // Node 5 - *(0 + &controller_1_rumble_inserted) = 0; - } - } - else - { - // Node 6 - if (osMotorStop(temp_a0) == 0) - { - // Node 7 - controller_1_rumble_state = 0; - } - else - { - // Node 8 - *(0 + &controller_1_rumble_inserted) = 0; - } - } - } - // Node 9 - if (controller_1_rumble_duration <= 0) - { - // Node 10 - controller_1_rumble_duration = 0; - } - else - { - // Node 11 - temp_t1 = (controller_1_rumble_duration + -1); - controller_1_rumble_duration = temp_t1; - if (temp_t1 <= 0) - { - // Node 12 - controller_1_rumble_duration = 0; - controller_1_rumble_pulse = 0; - } - } - // Node 13 - if ((0 + 1) != 4) - { - goto loop_1; - } - // (possible return value: controller_1_rumble_duration) -} -#endif - -#ifdef VERSION_US -GLOBAL_ASM( -.text -glabel controller_rumble_related -/* 00C67C 7000BA7C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 00C680 7000BA80 AFB40028 */ sw $s4, 0x28($sp) -/* 00C684 7000BA84 AFB1001C */ sw $s1, 0x1c($sp) -/* 00C688 7000BA88 AFB00018 */ sw $s0, 0x18($sp) -/* 00C68C 7000BA8C AFB60030 */ sw $s6, 0x30($sp) -/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) -/* 00C694 7000BA94 AFB30024 */ sw $s3, 0x24($sp) -/* 00C698 7000BA98 AFB20020 */ sw $s2, 0x20($sp) -/* 00C69C 7000BA9C 3C108002 */ lui $s0, %hi(controller_1_rumble_duration) -/* 00C6A0 7000BAA0 3C118002 */ lui $s1, %hi(controller_1_rumble_state) -/* 00C6A4 7000BAA4 3C148002 */ lui $s4, %hi(controller_1_rumble_pulse) -/* 00C6A8 7000BAA8 AFBF0034 */ sw $ra, 0x34($sp) -/* 00C6AC 7000BAAC 26946908 */ addiu $s4, %lo(controller_1_rumble_pulse) # addiu $s4, $s4, 0x6908 -/* 00C6B0 7000BAB0 263168E8 */ addiu $s1, %lo(controller_1_rumble_state) # addiu $s1, $s1, 0x68e8 -/* 00C6B4 7000BAB4 261068F8 */ addiu $s0, %lo(controller_1_rumble_duration) # addiu $s0, $s0, 0x68f8 -/* 00C6B8 7000BAB8 00009025 */ move $s2, $zero -/* 00C6BC 7000BABC 00009825 */ move $s3, $zero -/* 00C6C0 7000BAC0 24150001 */ li $s5, 1 -/* 00C6C4 7000BAC4 24160004 */ li $s6, 4 -.L7000BAC8: -/* 00C6C8 7000BAC8 8E820000 */ lw $v0, ($s4) -/* 00C6CC 7000BACC 8E2E0000 */ lw $t6, ($s1) -/* 00C6D0 7000BAD0 00127880 */ sll $t7, $s2, 2 -/* 00C6D4 7000BAD4 01F27823 */ subu $t7, $t7, $s2 -/* 00C6D8 7000BAD8 11C2001A */ beq $t6, $v0, .L7000BB44 -/* 00C6DC 7000BADC 000F7880 */ sll $t7, $t7, 2 -/* 00C6E0 7000BAE0 01F27821 */ addu $t7, $t7, $s2 -/* 00C6E4 7000BAE4 3C188006 */ lui $t8, %hi(player1_controller_packet) -/* 00C6E8 7000BAE8 271853F8 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x53f8 -/* 00C6EC 7000BAEC 000F78C0 */ sll $t7, $t7, 3 -/* 00C6F0 7000BAF0 16A2000B */ bne $s5, $v0, .L7000BB20 -/* 00C6F4 7000BAF4 01F82021 */ addu $a0, $t7, $t8 -/* 00C6F8 7000BAF8 0C0032AB */ jal osMotorStart -/* 00C6FC 7000BAFC 00000000 */ nop -/* 00C700 7000BB00 14400003 */ bnez $v0, .L7000BB10 -/* 00C704 7000BB04 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) -/* 00C708 7000BB08 1000000E */ b .L7000BB44 -/* 00C70C 7000BB0C AE350000 */ sw $s5, ($s1) -.L7000BB10: -/* 00C710 7000BB10 273968D8 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x68d8 -/* 00C714 7000BB14 02791021 */ addu $v0, $s3, $t9 -/* 00C718 7000BB18 1000000A */ b .L7000BB44 -/* 00C71C 7000BB1C AC400000 */ sw $zero, ($v0) -.L7000BB20: -/* 00C720 7000BB20 0C003260 */ jal osMotorStop -/* 00C724 7000BB24 00000000 */ nop -/* 00C728 7000BB28 14400003 */ bnez $v0, .L7000BB38 -/* 00C72C 7000BB2C 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) -/* 00C730 7000BB30 10000004 */ b .L7000BB44 -/* 00C734 7000BB34 AE200000 */ sw $zero, ($s1) -.L7000BB38: -/* 00C738 7000BB38 250868D8 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x68d8 -/* 00C73C 7000BB3C 02681021 */ addu $v0, $s3, $t0 -/* 00C740 7000BB40 AC400000 */ sw $zero, ($v0) -.L7000BB44: -/* 00C744 7000BB44 8E020000 */ lw $v0, ($s0) -/* 00C748 7000BB48 26520001 */ addiu $s2, $s2, 1 -/* 00C74C 7000BB4C 26730004 */ addiu $s3, $s3, 4 -/* 00C750 7000BB50 1C400003 */ bgtz $v0, .L7000BB60 -/* 00C754 7000BB54 26310004 */ addiu $s1, $s1, 4 -/* 00C758 7000BB58 10000006 */ b .L7000BB74 -/* 00C75C 7000BB5C AE000000 */ sw $zero, ($s0) -.L7000BB60: -/* 00C760 7000BB60 2449FFFF */ addiu $t1, $v0, -1 -/* 00C764 7000BB64 1D200003 */ bgtz $t1, .L7000BB74 -/* 00C768 7000BB68 AE090000 */ sw $t1, ($s0) -/* 00C76C 7000BB6C AE000000 */ sw $zero, ($s0) -/* 00C770 7000BB70 AE800000 */ sw $zero, ($s4) -.L7000BB74: -/* 00C774 7000BB74 26940004 */ addiu $s4, $s4, 4 -/* 00C778 7000BB78 1656FFD3 */ bne $s2, $s6, .L7000BAC8 -/* 00C77C 7000BB7C 26100004 */ addiu $s0, $s0, 4 -/* 00C780 7000BB80 8FBF0034 */ lw $ra, 0x34($sp) -/* 00C784 7000BB84 8FB00018 */ lw $s0, 0x18($sp) -/* 00C788 7000BB88 8FB1001C */ lw $s1, 0x1c($sp) -/* 00C78C 7000BB8C 8FB20020 */ lw $s2, 0x20($sp) -/* 00C790 7000BB90 8FB30024 */ lw $s3, 0x24($sp) -/* 00C794 7000BB94 8FB40028 */ lw $s4, 0x28($sp) -/* 00C798 7000BB98 8FB5002C */ lw $s5, 0x2c($sp) -/* 00C79C 7000BB9C 8FB60030 */ lw $s6, 0x30($sp) -/* 00C7A0 7000BBA0 03E00008 */ jr $ra -/* 00C7A4 7000BBA4 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - + if (0 == osMotorStart(&g_ContPfs[i])) + { + g_ContRumblePakCurrentState[i] = RUMBLEPAKSTATE_ON; + } + else + { + set_rumble_pak_init_state_not_ready(i); + } #ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel controller_rumble_related -/* 00C68C 7000BA8C 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 00C690 7000BA90 AFB5002C */ sw $s5, 0x2c($sp) -/* 00C694 7000BA94 AFB20020 */ sw $s2, 0x20($sp) -/* 00C698 7000BA98 AFB1001C */ sw $s1, 0x1c($sp) -/* 00C69C 7000BA9C AFBE0038 */ sw $fp, 0x38($sp) -/* 00C6A0 7000BAA0 AFB70034 */ sw $s7, 0x34($sp) -/* 00C6A4 7000BAA4 AFB60030 */ sw $s6, 0x30($sp) -/* 00C6A8 7000BAA8 AFB40028 */ sw $s4, 0x28($sp) -/* 00C6AC 7000BAAC AFB30024 */ sw $s3, 0x24($sp) -/* 00C6B0 7000BAB0 3C118002 */ lui $s1, %hi(controller_1_rumble_duration) # $s1, 0x8002 -/* 00C6B4 7000BAB4 3C128002 */ lui $s2, %hi(controller_1_rumble_state) # $s2, 0x8002 -/* 00C6B8 7000BAB8 3C158002 */ lui $s5, %hi(controller_1_rumble_pulse) # $s5, 0x8002 -/* 00C6BC 7000BABC AFBF003C */ sw $ra, 0x3c($sp) -/* 00C6C0 7000BAC0 AFB00018 */ sw $s0, 0x18($sp) -/* 00C6C4 7000BAC4 26B56948 */ addiu $s5, %lo(controller_1_rumble_pulse) # addiu $s5, $s5, 0x6948 -/* 00C6C8 7000BAC8 26526928 */ addiu $s2, %lo(controller_1_rumble_state) # addiu $s2, $s2, 0x6928 -/* 00C6CC 7000BACC 26316938 */ addiu $s1, %lo(controller_1_rumble_duration) # addiu $s1, $s1, 0x6938 -/* 00C6D0 7000BAD0 00009825 */ move $s3, $zero -/* 00C6D4 7000BAD4 0000A025 */ move $s4, $zero -/* 00C6D8 7000BAD8 24160001 */ li $s6, 1 -/* 00C6DC 7000BADC 24170004 */ li $s7, 4 -/* 00C6E0 7000BAE0 241E0002 */ li $fp, 2 -.Ljp7000BAE4: -/* 00C6E4 7000BAE4 8EA20000 */ lw $v0, ($s5) -/* 00C6E8 7000BAE8 8E4E0000 */ lw $t6, ($s2) -/* 00C6EC 7000BAEC 00137880 */ sll $t7, $s3, 2 -/* 00C6F0 7000BAF0 01F37823 */ subu $t7, $t7, $s3 -/* 00C6F4 7000BAF4 11C2002A */ beq $t6, $v0, .Ljp7000BBA0 -/* 00C6F8 7000BAF8 000F7880 */ sll $t7, $t7, 2 -/* 00C6FC 7000BAFC 01F37821 */ addu $t7, $t7, $s3 -/* 00C700 7000BB00 3C188006 */ lui $t8, %hi(player1_controller_packet) # $t8, 0x8006 -/* 00C704 7000BB04 27185438 */ addiu $t8, %lo(player1_controller_packet) # addiu $t8, $t8, 0x5438 -/* 00C708 7000BB08 000F78C0 */ sll $t7, $t7, 3 -/* 00C70C 7000BB0C 16C2000B */ bne $s6, $v0, .Ljp7000BB3C -/* 00C710 7000BB10 01F88021 */ addu $s0, $t7, $t8 -/* 00C714 7000BB14 0C0032BB */ jal osMotorStart -/* 00C718 7000BB18 02002025 */ move $a0, $s0 -/* 00C71C 7000BB1C 14400003 */ bnez $v0, .Ljp7000BB2C -/* 00C720 7000BB20 3C198002 */ lui $t9, %hi(controller_1_rumble_inserted) # $t9, 0x8002 -/* 00C724 7000BB24 1000001E */ b .Ljp7000BBA0 -/* 00C728 7000BB28 AE560000 */ sw $s6, ($s2) -.Ljp7000BB2C: -/* 00C72C 7000BB2C 27396918 */ addiu $t9, %lo(controller_1_rumble_inserted) # addiu $t9, $t9, 0x6918 -/* 00C730 7000BB30 02991021 */ addu $v0, $s4, $t9 -/* 00C734 7000BB34 1000001A */ b .Ljp7000BBA0 -/* 00C738 7000BB38 AC400000 */ sw $zero, ($v0) -.Ljp7000BB3C: -/* 00C73C 7000BB3C 17C2000F */ bne $fp, $v0, .Ljp7000BB7C -/* 00C740 7000BB40 3C048006 */ lui $a0, %hi(contdemoMesgMQ) # $a0, 0x8006 -/* 00C744 7000BB44 24845390 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5390 -/* 00C748 7000BB48 02002825 */ move $a1, $s0 -/* 00C74C 7000BB4C 0C00335E */ jal osMotorInit -/* 00C750 7000BB50 02603025 */ move $a2, $s3 -/* 00C754 7000BB54 10400004 */ beqz $v0, .Ljp7000BB68 -/* 00C758 7000BB58 3C088002 */ lui $t0, %hi(controller_1_rumble_inserted) # $t0, 0x8002 -/* 00C75C 7000BB5C 25086918 */ addiu $t0, %lo(controller_1_rumble_inserted) # addiu $t0, $t0, 0x6918 -/* 00C760 7000BB60 02881021 */ addu $v0, $s4, $t0 -/* 00C764 7000BB64 AC400000 */ sw $zero, ($v0) -.Ljp7000BB68: -/* 00C768 7000BB68 0C003270 */ jal osMotorStop -/* 00C76C 7000BB6C 02002025 */ move $a0, $s0 -/* 00C770 7000BB70 AE400000 */ sw $zero, ($s2) -/* 00C774 7000BB74 1000000A */ b .Ljp7000BBA0 -/* 00C778 7000BB78 AEA00000 */ sw $zero, ($s5) -.Ljp7000BB7C: -/* 00C77C 7000BB7C 0C003270 */ jal osMotorStop -/* 00C780 7000BB80 02002025 */ move $a0, $s0 -/* 00C784 7000BB84 14400003 */ bnez $v0, .Ljp7000BB94 -/* 00C788 7000BB88 3C098002 */ lui $t1, %hi(controller_1_rumble_inserted) # $t1, 0x8002 -/* 00C78C 7000BB8C 10000004 */ b .Ljp7000BBA0 -/* 00C790 7000BB90 AE400000 */ sw $zero, ($s2) -.Ljp7000BB94: -/* 00C794 7000BB94 25296918 */ addiu $t1, %lo(controller_1_rumble_inserted) # addiu $t1, $t1, 0x6918 -/* 00C798 7000BB98 02891021 */ addu $v0, $s4, $t1 -/* 00C79C 7000BB9C AC400000 */ sw $zero, ($v0) -.Ljp7000BBA0: -/* 00C7A0 7000BBA0 8E220000 */ lw $v0, ($s1) -/* 00C7A4 7000BBA4 26730001 */ addiu $s3, $s3, 1 -/* 00C7A8 7000BBA8 26940004 */ addiu $s4, $s4, 4 -/* 00C7AC 7000BBAC 1C400003 */ bgtz $v0, .Ljp7000BBBC -/* 00C7B0 7000BBB0 26520004 */ addiu $s2, $s2, 4 -/* 00C7B4 7000BBB4 10000006 */ b .Ljp7000BBD0 -/* 00C7B8 7000BBB8 AE200000 */ sw $zero, ($s1) -.Ljp7000BBBC: -/* 00C7BC 7000BBBC 244AFFFF */ addiu $t2, $v0, -1 -/* 00C7C0 7000BBC0 1D400003 */ bgtz $t2, .Ljp7000BBD0 -/* 00C7C4 7000BBC4 AE2A0000 */ sw $t2, ($s1) -/* 00C7C8 7000BBC8 AE200000 */ sw $zero, ($s1) -/* 00C7CC 7000BBCC AEA00000 */ sw $zero, ($s5) -.Ljp7000BBD0: -/* 00C7D0 7000BBD0 26B50004 */ addiu $s5, $s5, 4 -/* 00C7D4 7000BBD4 1677FFC3 */ bne $s3, $s7, .Ljp7000BAE4 -/* 00C7D8 7000BBD8 26310004 */ addiu $s1, $s1, 4 -/* 00C7DC 7000BBDC 8FBF003C */ lw $ra, 0x3c($sp) -/* 00C7E0 7000BBE0 8FB00018 */ lw $s0, 0x18($sp) -/* 00C7E4 7000BBE4 8FB1001C */ lw $s1, 0x1c($sp) -/* 00C7E8 7000BBE8 8FB20020 */ lw $s2, 0x20($sp) -/* 00C7EC 7000BBEC 8FB30024 */ lw $s3, 0x24($sp) -/* 00C7F0 7000BBF0 8FB40028 */ lw $s4, 0x28($sp) -/* 00C7F4 7000BBF4 8FB5002C */ lw $s5, 0x2c($sp) -/* 00C7F8 7000BBF8 8FB60030 */ lw $s6, 0x30($sp) -/* 00C7FC 7000BBFC 8FB70034 */ lw $s7, 0x34($sp) -/* 00C800 7000BC00 8FBE0038 */ lw $fp, 0x38($sp) -/* 00C804 7000BC04 03E00008 */ jr $ra -/* 00C808 7000BC08 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif - - - - - -void set_disable_all_rumble_and_something(s32 arg0, s32 arg1) { - disable_all_rumble = arg0; - dword_CODE_bss_80065324 = arg1; -} - -void set_ptr_tlb_ramrom_record(s32 arg0) -{ - ptr_to_tlb_ramrom_record = arg0; -} - - - - - - -#ifdef NONMATCHING -void probably_ramrom_related(void) { - -} -#else -GLOBAL_ASM( -.text -glabel probably_ramrom_related -/* 00C7C8 7000BBC8 8C8E01E0 */ lw $t6, 0x1e0($a0) -/* 00C7CC 7000BBCC 8C8F01E8 */ lw $t7, 0x1e8($a0) -/* 00C7D0 7000BBD0 00001025 */ move $v0, $zero -/* 00C7D4 7000BBD4 24090014 */ li $t1, 20 -/* 00C7D8 7000BBD8 AC8E01E4 */ sw $t6, 0x1e4($a0) -/* 00C7DC 7000BBDC AC8F01E0 */ sw $t7, 0x1e0($a0) -/* 00C7E0 7000BBE0 0002C040 */ sll $t8, $v0, 1 -.L7000BBE4: -/* 00C7E4 7000BBE4 00981821 */ addu $v1, $a0, $t8 -/* 00C7E8 7000BBE8 A46001F0 */ sh $zero, 0x1f0($v1) -/* 00C7EC 7000BBEC 8C9901E0 */ lw $t9, 0x1e0($a0) -/* 00C7F0 7000BBF0 8C8501E4 */ lw $a1, 0x1e4($a0) -/* 00C7F4 7000BBF4 10B9003D */ beq $a1, $t9, .L7000BCEC -/* 00C7F8 7000BBF8 24AA0001 */ addiu $t2, $a1, 1 -/* 00C7FC 7000BBFC 0149001A */ div $zero, $t2, $t1 -/* 00C800 7000BC00 00023880 */ sll $a3, $v0, 2 -/* 00C804 7000BC04 00003010 */ mfhi $a2 -/* 00C808 7000BC08 00E23823 */ subu $a3, $a3, $v0 -/* 00C80C 7000BC0C 00073840 */ sll $a3, $a3, 1 -/* 00C810 7000BC10 15200002 */ bnez $t1, .L7000BC1C -/* 00C814 7000BC14 00000000 */ nop -/* 00C818 7000BC18 0007000D */ break 7 -.L7000BC1C: -/* 00C81C 7000BC1C 2401FFFF */ li $at, -1 -/* 00C820 7000BC20 15210004 */ bne $t1, $at, .L7000BC34 -/* 00C824 7000BC24 3C018000 */ lui $at, 0x8000 -/* 00C828 7000BC28 15410002 */ bne $t2, $at, .L7000BC34 -/* 00C82C 7000BC2C 00000000 */ nop -/* 00C830 7000BC30 0006000D */ break 6 -.L7000BC34: -/* 00C834 7000BC34 24CE0013 */ addiu $t6, $a2, 0x13 -.L7000BC38: -/* 00C838 7000BC38 01C9001A */ div $zero, $t6, $t1 -/* 00C83C 7000BC3C 00007810 */ mfhi $t7 -/* 00C840 7000BC40 000FC080 */ sll $t8, $t7, 2 -/* 00C844 7000BC44 00065880 */ sll $t3, $a2, 2 -/* 00C848 7000BC48 030FC023 */ subu $t8, $t8, $t7 -/* 00C84C 7000BC4C 01665823 */ subu $t3, $t3, $a2 -/* 00C850 7000BC50 0018C0C0 */ sll $t8, $t8, 3 -/* 00C854 7000BC54 000B58C0 */ sll $t3, $t3, 3 -/* 00C858 7000BC58 0098C821 */ addu $t9, $a0, $t8 -/* 00C85C 7000BC5C 008B6021 */ addu $t4, $a0, $t3 -/* 00C860 7000BC60 03275021 */ addu $t2, $t9, $a3 -/* 00C864 7000BC64 95480000 */ lhu $t0, ($t2) -/* 00C868 7000BC68 01876821 */ addu $t5, $t4, $a3 -/* 00C86C 7000BC6C 95A50000 */ lhu $a1, ($t5) -/* 00C870 7000BC70 946B01F0 */ lhu $t3, 0x1f0($v1) -/* 00C874 7000BC74 01006027 */ not $t4, $t0 -/* 00C878 7000BC78 15200002 */ bnez $t1, .L7000BC84 -/* 00C87C 7000BC7C 00000000 */ nop -/* 00C880 7000BC80 0007000D */ break 7 -.L7000BC84: -/* 00C884 7000BC84 2401FFFF */ li $at, -1 -/* 00C888 7000BC88 15210004 */ bne $t1, $at, .L7000BC9C -/* 00C88C 7000BC8C 3C018000 */ lui $at, 0x8000 -/* 00C890 7000BC90 15C10002 */ bne $t6, $at, .L7000BC9C -/* 00C894 7000BC94 00000000 */ nop -/* 00C898 7000BC98 0006000D */ break 6 -.L7000BC9C: -/* 00C89C 7000BC9C 00AC6824 */ and $t5, $a1, $t4 -/* 00C8A0 7000BCA0 016D7025 */ or $t6, $t3, $t5 -/* 00C8A4 7000BCA4 A46E01F0 */ sh $t6, 0x1f0($v1) -/* 00C8A8 7000BCA8 8C8F01E0 */ lw $t7, 0x1e0($a0) -/* 00C8AC 7000BCAC 24D80001 */ addiu $t8, $a2, 1 -/* 00C8B0 7000BCB0 50CF000F */ beql $a2, $t7, .L7000BCF0 -/* 00C8B4 7000BCB4 24420001 */ addiu $v0, $v0, 1 -/* 00C8B8 7000BCB8 0309001A */ div $zero, $t8, $t1 -/* 00C8BC 7000BCBC 00003010 */ mfhi $a2 -/* 00C8C0 7000BCC0 15200002 */ bnez $t1, .L7000BCCC -/* 00C8C4 7000BCC4 00000000 */ nop -/* 00C8C8 7000BCC8 0007000D */ break 7 -.L7000BCCC: -/* 00C8CC 7000BCCC 2401FFFF */ li $at, -1 -/* 00C8D0 7000BCD0 15210004 */ bne $t1, $at, .L7000BCE4 -/* 00C8D4 7000BCD4 3C018000 */ lui $at, 0x8000 -/* 00C8D8 7000BCD8 17010002 */ bne $t8, $at, .L7000BCE4 -/* 00C8DC 7000BCDC 00000000 */ nop -/* 00C8E0 7000BCE0 0006000D */ break 6 -.L7000BCE4: -/* 00C8E4 7000BCE4 1000FFD4 */ b .L7000BC38 -/* 00C8E8 7000BCE8 24CE0013 */ addiu $t6, $a2, 0x13 -.L7000BCEC: -/* 00C8EC 7000BCEC 24420001 */ addiu $v0, $v0, 1 -.L7000BCF0: -/* 00C8F0 7000BCF0 0002CE00 */ sll $t9, $v0, 0x18 -/* 00C8F4 7000BCF4 00191603 */ sra $v0, $t9, 0x18 -/* 00C8F8 7000BCF8 28410004 */ slti $at, $v0, 4 -/* 00C8FC 7000BCFC 5420FFB9 */ bnezl $at, .L7000BBE4 -/* 00C900 7000BD00 0002C040 */ sll $t8, $v0, 1 -/* 00C904 7000BD04 03E00008 */ jr $ra -/* 00C908 7000BD08 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -s32 redirect_to_ramrom_replay_and_record_handlers_if_set(void) { - // Node 0 - if (disable_all_rumble != 0) - { - // Node 1 - // Error: I don't know how to handle jalr! - } - // Node 2 - probably_ramrom_related(&controller_input_index); - if (ptr_to_tlb_ramrom_record != 0) - { - // Node 3 - // Error: I don't know how to handle jalr! - return; - // (function likely void) - } - // (possible return value: ptr_to_tlb_ramrom_record) -} -#else -GLOBAL_ASM( -.text -glabel redirect_to_ramrom_replay_and_record_handlers_if_set -/* 00C90C 7000BD0C 3C028002 */ lui $v0, %hi(disable_all_rumble) -/* 00C910 7000BD10 8C426924 */ lw $v0, %lo(disable_all_rumble)($v0) -/* 00C914 7000BD14 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00C918 7000BD18 AFBF0014 */ sw $ra, 0x14($sp) -/* 00C91C 7000BD1C 1040000A */ beqz $v0, .L7000BD48 -/* 00C920 7000BD20 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) -/* 00C924 7000BD24 3C058006 */ lui $a1, %hi(dword_CODE_bss_8006530C) -/* 00C928 7000BD28 8CA5530C */ lw $a1, %lo(dword_CODE_bss_8006530C)($a1) -/* 00C92C 7000BD2C 0040F809 */ jalr $v0 -/* 00C930 7000BD30 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c -/* 00C934 7000BD34 3C018006 */ lui $at, %hi(dword_CODE_bss_80065314) -/* 00C938 7000BD38 3C048006 */ lui $a0, %hi(dword_CODE_bss_8006512C) -/* 00C93C 7000BD3C AC225314 */ sw $v0, %lo(dword_CODE_bss_80065314)($at) -/* 00C940 7000BD40 0C002EF2 */ jal probably_ramrom_related -/* 00C944 7000BD44 2484512C */ addiu $a0, %lo(dword_CODE_bss_8006512C) # addiu $a0, $a0, 0x512c -.L7000BD48: -/* 00C948 7000BD48 3C048006 */ lui $a0, %hi(controller_input_index) -/* 00C94C 7000BD4C 0C002EF2 */ jal probably_ramrom_related -/* 00C950 7000BD50 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 -/* 00C954 7000BD54 3C028002 */ lui $v0, %hi(ptr_to_tlb_ramrom_record) -/* 00C958 7000BD58 8C426928 */ lw $v0, %lo(ptr_to_tlb_ramrom_record)($v0) -/* 00C95C 7000BD5C 3C048006 */ lui $a0, %hi(controller_input_index) -/* 00C960 7000BD60 24844F30 */ addiu $a0, %lo(controller_input_index) # addiu $a0, $a0, 0x4f30 -/* 00C964 7000BD64 50400005 */ beql $v0, $zero, .L7000BD7C -/* 00C968 7000BD68 8FBF0014 */ lw $ra, 0x14($sp) -/* 00C96C 7000BD6C 8C8501E4 */ lw $a1, 0x1e4($a0) -/* 00C970 7000BD70 0040F809 */ jalr $v0 -/* 00C974 7000BD74 8C8601E0 */ lw $a2, 0x1e0($a0) -/* 00C978 7000BD78 8FBF0014 */ lw $ra, 0x14($sp) -.L7000BD7C: -/* 00C97C 7000BD7C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00C980 7000BD80 03E00008 */ jr $ra -/* 00C984 7000BD84 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void controllerSchedulerRelated(void) -{ - ? sp4C; - s32 sp40; - s32 temp_a0; - s32 temp_a0_2; - s32 temp_a2; - s32 temp_hi; - s32 temp_lo; - s32 temp_t6; - s32 temp_t8; - s32 temp_v1; - void *temp_t3; - void *temp_v1_2; - s32 phi_v1; - s32 phi_v0; - s32 phi_a0; - s32 phi_a0_2; - void *phi_t1; - void *phi_a0_3; - void *phi_a1; - void *phi_v1_2; - - if (osRecvMesg(&cont1MesgMQ, &sp4C, 0) == 0) - { - if (D_800268C8 != 0) - { - osRecvMesg(&contdemoMesgMQ, &sp4C, 1); - D_800268C8 = 0; - } - osSendMesg(&cont2MesgMQ, &sp4C, 0); - D_800268CC = (s32) (D_800268CC + 1); - return; - } - if (osRecvMesg(&cont3MesgMQ, &sp4C, 0) == 0) - { - osContStartReadData(&contdemoMesgMQ); - D_800268C8 = 1; - osSendMesg(&cont4MesgMQ, &sp4C, 0); - D_800268CC = (s32) (D_800268CC + -1); - return; - } - if (D_800268CC == 0) - { - if (D_8002691C != 0) - { - if (osRecvMesg(&contdemoMesgMQ, &sp4C, 0) == 0) + } + else if (g_ContRumblePakTargetState[i] == RUMBLEPAKSTATE_UNKNOWN) { - D_800268C8 = 0; - temp_hi = (s32) (controller_input_index.unk1E8 + 1) % 0x14; - phi_v1 = temp_hi; - if (temp_hi == controller_input_index.unk1E4) + if (osMotorInit(&g_ContInputMessageQueue, &g_ContPfs[i], i) != 0) { - phi_v1 = controller_input_index.unk1E8; + set_rumble_pak_init_state_not_ready(i); } - sp40 = (s32) phi_v1; - osContGetReadData(&controller_input_index + (((phi_v1 * 4) - phi_v1) * 8), &controller_input_index); - temp_t6 = D_80026920 + 1; - temp_t8 = temp_t6 % 0x78; - controller_input_index.unk1EC = (s32) ((s32) (sp40 + 0x13) % 0x14); - D_80026920 = temp_t6; - controller_input_index.unk1E8 = sp40; - phi_v0 = sp40; - if (temp_t8 == 0) + + osMotorStop(&g_ContPfs[i]); + g_ContRumblePakCurrentState[i] = RUMBLEPAKSTATE_OFF; + g_ContRumblePakTargetState[i] = RUMBLEPAKSTATE_OFF; +#endif + } + else + { + if (0 == osMotorStop(&g_ContPfs[i])) { - controller_check_for_rumble_maybe(&D_80026920, &controller_input_index); - phi_v0 = controller_input_index.unk1E8; - } - temp_a2 = &controller_input_index + (((phi_v0 * 4) - phi_v0) * 8); - phi_a0 = 0; -loop_14: - temp_lo = phi_a0 * 6; - temp_t3 = temp_a2 + temp_lo; - if ((temp_t3->unk4 != 0) || (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) - { - temp_a0 = phi_a0 + 1; - if ((temp_t3->unk4 != 0) && (((&controller_input_index + (&controller_input_index->unk1EC * 0x18)) + temp_lo)->unk4 == 0)) - { -block_18: - controller_check_for_rumble_maybe(phi_a0_2, &controller_input_index, temp_a2, 6); - } - else - { - temp_a0_2 = (s32) (temp_a0 << 0x18) >> 0x18; - phi_a0 = temp_a0_2; - if (temp_a0_2 < 4) - { - goto loop_14; - } - } + g_ContRumblePakCurrentState[i] = RUMBLEPAKSTATE_OFF; } else { - goto block_18; + set_rumble_pak_init_state_not_ready(i); } - controller_rumble_related(); - osContStartReadData(&contdemoMesgMQ); - D_800268C8 = 1; - temp_v1 = D_80026970 + 1; - D_80026970 = temp_v1; - if (temp_v1 >= 0x3c) + } + } + + if (g_ContRumblePakTimer60[i] <= 0) + { + g_ContRumblePakTimer60[i] = 0; + } + else + { + g_ContRumblePakTimer60[i]--; + + if (g_ContRumblePakTimer60[i] <= 0) + { + g_ContRumblePakTimer60[i] = 0; + g_ContRumblePakTargetState[i] = 0; + } + } + } +} + +void joySetPlaybackFunc(contplaybackfunc func, s32 controllercount) +{ + g_ContPlaybackFunc = func; + g_ContData[CONTDATA_PLAYBACK].playbackcontcount = controllercount; +} + +void joySetRecordFunc(contrecordfunc func) +{ + g_ContRecordFunc = func; +} + +void joyConsumeSamples(struct contdata *contdata) +{ + s8 i; + s32 samplenum; + u16 buttons1; + u16 buttons2; + + contdata->curstart = contdata->curlast; + contdata->curlast = contdata->nextlast; + + for (i = 0; i < MAXCONTROLLERS; i++) + { + contdata->buttonspressed[i] = 0; + + if (contdata->curlast != contdata->curstart) + { + // Do not remove the following trailing backslash. The "while(true)" + // needs to be on the same line as previous, otherwise the build breaks. + samplenum = ((contdata->curstart + 1) % CONTSAMPLE_LEN); \ + while (TRUE) + { + buttons1 = contdata->samples[samplenum].pads[i].button; + buttons2 = contdata->samples[(samplenum + (CONTSAMPLE_LEN-1)) % CONTSAMPLE_LEN].pads[i].button; + contdata->buttonspressed[i] |= buttons1 & ~buttons2; + + if (samplenum == contdata->curlast) { - phi_t1 = &pl1_controller_failure_lr; - phi_a0_3 = &pl1_controller_failure_ud; - phi_a1 = &pl1_controller_failure_held; - phi_v1_2 = &pl1_controller_failure_pressed; -loop_22: - if ((((phi_t1->unk0 != 0) || (phi_a0_3->unk0 != 0)) || (phi_a1->unk0 != 0)) || (phi_v1_2->unk0 != 0)) - { - phi_t1->unk0 = 0; - phi_a0_3->unk0 = 0; - phi_a1->unk0 = 0; - phi_v1_2->unk0 = 0; - } - else - { - - } - if ((((phi_t1->unk4 != 0) || (phi_a0_3->unk4 != 0)) || (phi_a1->unk4 != 0)) || (phi_v1_2->unk4 != 0)) - { - phi_t1->unk4 = 0; - phi_a0_3->unk4 = 0; - phi_a1->unk4 = 0; - phi_v1_2->unk4 = 0; - } - else - { - - } - temp_v1_2 = phi_v1_2 + 8; - phi_t1 = phi_t1 + 8; - phi_a0_3 = phi_a0_3 + 8; - phi_a1 = phi_a1 + 8; - phi_v1_2 = temp_v1_2; - if (temp_v1_2 != &D_80026970) - { - goto loop_22; - } - D_80026970 = 0; + break; } + + samplenum = ((samplenum + 1) % CONTSAMPLE_LEN); + } + } + } +} + +void joyConsumeSamplesWrapper(void) +{ + if (g_ContPlaybackFunc) + { + g_ContData[CONTDATA_PLAYBACK].nextlast = g_ContPlaybackFunc(g_ContData[CONTDATA_PLAYBACK].samples, g_ContData[CONTDATA_PLAYBACK].curlast); + joyConsumeSamples(&g_ContData[CONTDATA_PLAYBACK]); + } + + joyConsumeSamples(&g_ContData[CONTDATA_REGULAR]); + + if (g_ContRecordFunc) + { + g_ContRecordFunc(g_ContData[CONTDATA_REGULAR].samples, g_ContData[CONTDATA_REGULAR].curstart, g_ContData[CONTDATA_REGULAR].curlast); + } +} + +#ifdef NONMATCHING +// Stack + Regalloc +void joyPoll(void) +{ + OSMesg msg; + // Check if there are any disable requests + if (osRecvMesg(&g_ContDisablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK) == 0) + { + if (g_ContBusy) + { + osRecvMesg(&g_ContInputMessageQueue, &msg, OS_MESG_BLOCK); + g_ContBusy = FALSE; + } + + osSendMesg(&g_ContDisablePollReceiveMessageQueue, &msg, OS_MESG_NOBLOCK); + g_ContPollDisableCount++; + + return; + } + + // Check if there are any enable requests + if (osRecvMesg(&g_ContEnablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK) == 0) + { + osContStartPollData(&g_ContInputMessageQueue); + g_ContBusy = TRUE; + osSendMesg(&g_ContEnablePollReceiveMessageQueue, &msg, OS_MESG_NOBLOCK); + g_ContPollDisableCount--; + + return; + } + + if ((g_ContPollDisableCount == 0) && g_ContInitDone) + { + // Poll controller input from SI + if (osRecvMesg(&g_ContInputMessageQueue, &msg, OS_MESG_NOBLOCK) == 0) + { + static s32 count = 0; + s32 index; + s8 i; + + g_ContBusy = FALSE; + index = ((g_ContData[CONTDATA_REGULAR].nextlast + 1) % CONTSAMPLE_LEN); + + if (index == g_ContData[CONTDATA_REGULAR].curstart) + { + index = g_ContData[CONTDATA_REGULAR].nextlast; + } + + osContGetReadData(g_ContData[CONTDATA_REGULAR].samples[index].pads); + g_ContData[CONTDATA_REGULAR].nextlast = index; + g_ContData[CONTDATA_REGULAR].nextsecondlast = ((g_ContData[CONTDATA_REGULAR].nextlast + 19) % CONTSAMPLE_LEN); + g_ContCheckStatusTimer60++; + + if ((g_ContCheckStatusTimer60 % 120) == 0) + { + joyCheckStatus(); + } + + for (i = 0; i < MAXCONTROLLERS; i++) + { + if (((g_ContData[CONTDATA_REGULAR].samples[g_ContData[CONTDATA_REGULAR].nextlast].pads[i].errnum == 0) && (g_ContData[CONTDATA_REGULAR].samples[g_ContData[CONTDATA_REGULAR].nextsecondlast].pads[i].errnum != 0)) || + ((g_ContData[CONTDATA_REGULAR].samples[g_ContData[CONTDATA_REGULAR].nextlast].pads[i].errnum != 0) && (g_ContData[CONTDATA_REGULAR].samples[g_ContData[CONTDATA_REGULAR].nextsecondlast].pads[i].errnum == 0))) + { + joyCheckStatus(); + break; + } + } + + joyRumblePakTick(); + osContStartReadData(&g_ContInputMessageQueue); + g_ContBusy = TRUE; + count++; + + if (count >= 60) + { + s32 i; + for (i = 0; i < MAXCONTROLLERS; i++) + { + if (g_ContBadReadsStickX[i] || g_ContBadReadsStickY[i] || g_ContBadReadsButtons[i] || g_ContBadReadsButtonsPressed[i]) + { + g_ContBadReadsStickX[i] = 0; + g_ContBadReadsStickY[i] = 0; + g_ContBadReadsButtons[i] = 0; + g_ContBadReadsButtonsPressed[i] = 0; + } + } + count = 0; } } } } #else +void joyPoll(void); GLOBAL_ASM( .text -glabel controllerSchedulerRelated +glabel joyPoll /* 00C988 7000BD88 27BDFFB0 */ addiu $sp, $sp, -0x50 /* 00C98C 7000BD8C AFBF0014 */ sw $ra, 0x14($sp) -/* 00C990 7000BD90 3C048006 */ lui $a0, %hi(cont1MesgMQ) -/* 00C994 7000BD94 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 +/* 00C990 7000BD90 3C048006 */ lui $a0, %hi(g_ContDisablePollSendMessageQueue) +/* 00C994 7000BD94 24845370 */ addiu $a0, %lo(g_ContDisablePollSendMessageQueue) # addiu $a0, $a0, 0x5370 /* 00C998 7000BD98 27A5004C */ addiu $a1, $sp, 0x4c /* 00C99C 7000BD9C 0C003774 */ jal osRecvMesg /* 00C9A0 7000BDA0 00003025 */ move $a2, $zero /* 00C9A4 7000BDA4 14400015 */ bnez $v0, .L7000BDFC -/* 00C9A8 7000BDA8 3C0E8002 */ lui $t6, %hi(D_800268C8) -/* 00C9AC 7000BDAC 8DCE68C8 */ lw $t6, %lo(D_800268C8)($t6) -/* 00C9B0 7000BDB0 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00C9B4 7000BDB4 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00C9A8 7000BDA8 3C0E8002 */ lui $t6, %hi(g_ContBusy) +/* 00C9AC 7000BDAC 8DCE68C8 */ lw $t6, %lo(g_ContBusy)($t6) +/* 00C9B0 7000BDB0 3C048006 */ lui $a0, %hi(g_ContInputMessageQueue) +/* 00C9B4 7000BDB4 24845350 */ addiu $a0, %lo(g_ContInputMessageQueue) # addiu $a0, $a0, 0x5350 /* 00C9B8 7000BDB8 11C00005 */ beqz $t6, .L7000BDD0 /* 00C9BC 7000BDBC 27A5004C */ addiu $a1, $sp, 0x4c /* 00C9C0 7000BDC0 0C003774 */ jal osRecvMesg /* 00C9C4 7000BDC4 24060001 */ li $a2, 1 -/* 00C9C8 7000BDC8 3C018002 */ lui $at, %hi(D_800268C8) -/* 00C9CC 7000BDCC AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +/* 00C9C8 7000BDC8 3C018002 */ lui $at, %hi(g_ContBusy) +/* 00C9CC 7000BDCC AC2068C8 */ sw $zero, %lo(g_ContBusy)($at) .L7000BDD0: -/* 00C9D0 7000BDD0 3C048006 */ lui $a0, %hi(cont2MesgMQ) -/* 00C9D4 7000BDD4 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 +/* 00C9D0 7000BDD0 3C048006 */ lui $a0, %hi(g_ContDisablePollReceiveMessageQueue) +/* 00C9D4 7000BDD4 24845390 */ addiu $a0, %lo(g_ContDisablePollReceiveMessageQueue) # addiu $a0, $a0, 0x5390 /* 00C9D8 7000BDD8 27A5004C */ addiu $a1, $sp, 0x4c /* 00C9DC 7000BDDC 0C0037C4 */ jal osSendMesg /* 00C9E0 7000BDE0 00003025 */ move $a2, $zero -/* 00C9E4 7000BDE4 3C038002 */ lui $v1, %hi(D_800268CC) -/* 00C9E8 7000BDE8 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00C9E4 7000BDE4 3C038002 */ lui $v1, %hi(g_ContPollDisableCount) +/* 00C9E8 7000BDE8 246368CC */ addiu $v1, %lo(g_ContPollDisableCount) # addiu $v1, $v1, 0x68cc /* 00C9EC 7000BDEC 8C6F0000 */ lw $t7, ($v1) /* 00C9F0 7000BDF0 25F80001 */ addiu $t8, $t7, 1 /* 00C9F4 7000BDF4 100000B9 */ b .L7000C0DC /* 00C9F8 7000BDF8 AC780000 */ sw $t8, ($v1) .L7000BDFC: -/* 00C9FC 7000BDFC 3C048006 */ lui $a0, %hi(cont3MesgMQ) -/* 00CA00 7000BE00 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 +/* 00C9FC 7000BDFC 3C048006 */ lui $a0, %hi(g_ContEnablePollSendMessageQueue) +/* 00CA00 7000BE00 248453B0 */ addiu $a0, %lo(g_ContEnablePollSendMessageQueue) # addiu $a0, $a0, 0x53b0 /* 00CA04 7000BE04 27A5004C */ addiu $a1, $sp, 0x4c /* 00CA08 7000BE08 0C003774 */ jal osRecvMesg /* 00CA0C 7000BE0C 00003025 */ move $a2, $zero /* 00CA10 7000BE10 14400011 */ bnez $v0, .L7000BE58 -/* 00CA14 7000BE14 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CA14 7000BE14 3C048006 */ lui $a0, %hi(g_ContInputMessageQueue) /* 00CA18 7000BE18 0C00535C */ jal osContStartReadData -/* 00CA1C 7000BE1C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA1C 7000BE1C 24845350 */ addiu $a0, %lo(g_ContInputMessageQueue) # addiu $a0, $a0, 0x5350 /* 00CA20 7000BE20 24190001 */ li $t9, 1 -/* 00CA24 7000BE24 3C018002 */ lui $at, %hi(D_800268C8) -/* 00CA28 7000BE28 3C048006 */ lui $a0, %hi(cont4MesgMQ) -/* 00CA2C 7000BE2C AC3968C8 */ sw $t9, %lo(D_800268C8)($at) -/* 00CA30 7000BE30 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 +/* 00CA24 7000BE24 3C018002 */ lui $at, %hi(g_ContBusy) +/* 00CA28 7000BE28 3C048006 */ lui $a0, %hi(g_ContEnablePollReceiveMessageQueue) +/* 00CA2C 7000BE2C AC3968C8 */ sw $t9, %lo(g_ContBusy)($at) +/* 00CA30 7000BE30 248453D0 */ addiu $a0, %lo(g_ContEnablePollReceiveMessageQueue) # addiu $a0, $a0, 0x53d0 /* 00CA34 7000BE34 27A5004C */ addiu $a1, $sp, 0x4c /* 00CA38 7000BE38 0C0037C4 */ jal osSendMesg /* 00CA3C 7000BE3C 00003025 */ move $a2, $zero -/* 00CA40 7000BE40 3C038002 */ lui $v1, %hi(D_800268CC) -/* 00CA44 7000BE44 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA40 7000BE40 3C038002 */ lui $v1, %hi(g_ContPollDisableCount) +/* 00CA44 7000BE44 246368CC */ addiu $v1, %lo(g_ContPollDisableCount) # addiu $v1, $v1, 0x68cc /* 00CA48 7000BE48 8C6B0000 */ lw $t3, ($v1) /* 00CA4C 7000BE4C 256CFFFF */ addiu $t4, $t3, -1 /* 00CA50 7000BE50 100000A2 */ b .L7000C0DC /* 00CA54 7000BE54 AC6C0000 */ sw $t4, ($v1) .L7000BE58: -/* 00CA58 7000BE58 3C038002 */ lui $v1, %hi(D_800268CC) -/* 00CA5C 7000BE5C 246368CC */ addiu $v1, %lo(D_800268CC) # addiu $v1, $v1, 0x68cc +/* 00CA58 7000BE58 3C038002 */ lui $v1, %hi(g_ContPollDisableCount) +/* 00CA5C 7000BE5C 246368CC */ addiu $v1, %lo(g_ContPollDisableCount) # addiu $v1, $v1, 0x68cc /* 00CA60 7000BE60 8C6D0000 */ lw $t5, ($v1) -/* 00CA64 7000BE64 3C0E8002 */ lui $t6, %hi(D_8002691C) +/* 00CA64 7000BE64 3C0E8002 */ lui $t6, %hi(g_ContInitDone) /* 00CA68 7000BE68 55A0009D */ bnezl $t5, .L7000C0E0 /* 00CA6C 7000BE6C 8FBF0014 */ lw $ra, 0x14($sp) -/* 00CA70 7000BE70 8DCE691C */ lw $t6, %lo(D_8002691C)($t6) -/* 00CA74 7000BE74 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00CA78 7000BE78 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 +/* 00CA70 7000BE70 8DCE691C */ lw $t6, %lo(g_ContInitDone)($t6) +/* 00CA74 7000BE74 3C048006 */ lui $a0, %hi(g_ContInputMessageQueue) +/* 00CA78 7000BE78 24845350 */ addiu $a0, %lo(g_ContInputMessageQueue) # addiu $a0, $a0, 0x5350 /* 00CA7C 7000BE7C 11C00097 */ beqz $t6, .L7000C0DC /* 00CA80 7000BE80 27A5004C */ addiu $a1, $sp, 0x4c /* 00CA84 7000BE84 0C003774 */ jal osRecvMesg /* 00CA88 7000BE88 00003025 */ move $a2, $zero /* 00CA8C 7000BE8C 14400093 */ bnez $v0, .L7000C0DC -/* 00CA90 7000BE90 3C058006 */ lui $a1, %hi(controller_input_index) -/* 00CA94 7000BE94 3C018002 */ lui $at, %hi(D_800268C8) -/* 00CA98 7000BE98 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 -/* 00CA9C 7000BE9C AC2068C8 */ sw $zero, %lo(D_800268C8)($at) +/* 00CA90 7000BE90 3C058006 */ lui $a1, %hi(g_ContData) +/* 00CA94 7000BE94 3C018002 */ lui $at, %hi(g_ContBusy) +/* 00CA98 7000BE98 24A54F30 */ addiu $a1, %lo(g_ContData) # addiu $a1, $a1, 0x4f30 +/* 00CA9C 7000BE9C AC2068C8 */ sw $zero, %lo(g_ContBusy)($at) /* 00CAA0 7000BEA0 8CA201E8 */ lw $v0, 0x1e8($a1) /* 00CAA4 7000BEA4 24010014 */ li $at, 20 /* 00CAA8 7000BEA8 8CB801E4 */ lw $t8, 0x1e4($a1) @@ -1416,26 +610,26 @@ glabel controllerSchedulerRelated /* 00CAD8 7000BED8 AFA30040 */ sw $v1, 0x40($sp) /* 00CADC 7000BEDC 8FA20040 */ lw $v0, 0x40($sp) /* 00CAE0 7000BEE0 24010014 */ li $at, 20 -/* 00CAE4 7000BEE4 3C048002 */ lui $a0, %hi(D_80026920) +/* 00CAE4 7000BEE4 3C048002 */ lui $a0, %hi(g_ContCheckStatusTimer60) /* 00CAE8 7000BEE8 244B0013 */ addiu $t3, $v0, 0x13 /* 00CAEC 7000BEEC 0161001A */ div $zero, $t3, $at -/* 00CAF0 7000BEF0 24846920 */ addiu $a0, %lo(D_80026920) # addiu $a0, $a0, 0x6920 +/* 00CAF0 7000BEF0 24846920 */ addiu $a0, %lo(g_ContCheckStatusTimer60) # addiu $a0, $a0, 0x6920 /* 00CAF4 7000BEF4 8C8D0000 */ lw $t5, ($a0) /* 00CAF8 7000BEF8 00006010 */ mfhi $t4 /* 00CAFC 7000BEFC 24010078 */ li $at, 120 /* 00CB00 7000BF00 25AE0001 */ addiu $t6, $t5, 1 /* 00CB04 7000BF04 01C1001A */ div $zero, $t6, $at -/* 00CB08 7000BF08 3C058006 */ lui $a1, %hi(controller_input_index) -/* 00CB0C 7000BF0C 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB08 7000BF08 3C058006 */ lui $a1, %hi(g_ContData) +/* 00CB0C 7000BF0C 24A54F30 */ addiu $a1, %lo(g_ContData) # addiu $a1, $a1, 0x4f30 /* 00CB10 7000BF10 0000C010 */ mfhi $t8 /* 00CB14 7000BF14 ACAC01EC */ sw $t4, 0x1ec($a1) /* 00CB18 7000BF18 AC8E0000 */ sw $t6, ($a0) /* 00CB1C 7000BF1C 17000006 */ bnez $t8, .L7000BF38 /* 00CB20 7000BF20 ACA201E8 */ sw $v0, 0x1e8($a1) -/* 00CB24 7000BF24 0C002E04 */ jal controller_check_for_rumble_maybe -/* 00CB28 7000BF28 00000000 */ nop -/* 00CB2C 7000BF2C 3C058006 */ lui $a1, %hi(controller_input_index) -/* 00CB30 7000BF30 24A54F30 */ addiu $a1, %lo(controller_input_index) # addiu $a1, $a1, 0x4f30 +/* 00CB24 7000BF24 0C002E04 */ jal joyCheckStatus +/* 00CB28 7000BF28 00000000 */ nop +/* 00CB2C 7000BF2C 3C058006 */ lui $a1, %hi(g_ContData) +/* 00CB30 7000BF30 24A54F30 */ addiu $a1, %lo(g_ContData) # addiu $a1, $a1, 0x4f30 /* 00CB34 7000BF34 8CA201E8 */ lw $v0, 0x1e8($a1) .L7000BF38: /* 00CB38 7000BF38 0002C880 */ sll $t9, $v0, 2 @@ -1450,7 +644,7 @@ glabel controllerSchedulerRelated /* 00CB58 7000BF58 00C25821 */ addu $t3, $a2, $v0 /* 00CB5C 7000BF5C 91630004 */ lbu $v1, 4($t3) /* 00CB60 7000BF60 1460000A */ bnez $v1, .L7000BF8C -/* 00CB64 7000BF64 00000000 */ nop +/* 00CB64 7000BF64 00000000 */ nop /* 00CB68 7000BF68 8CAC01EC */ lw $t4, 0x1ec($a1) /* 00CB6C 7000BF6C 000C6880 */ sll $t5, $t4, 2 /* 00CB70 7000BF70 01AC6823 */ subu $t5, $t5, $t4 @@ -1459,7 +653,7 @@ glabel controllerSchedulerRelated /* 00CB7C 7000BF7C 01C27821 */ addu $t7, $t6, $v0 /* 00CB80 7000BF80 91F80004 */ lbu $t8, 4($t7) /* 00CB84 7000BF84 1700000C */ bnez $t8, .L7000BFB8 -/* 00CB88 7000BF88 00000000 */ nop +/* 00CB88 7000BF88 00000000 */ nop .L7000BF8C: /* 00CB8C 7000BF8C 1060000E */ beqz $v1, .L7000BFC8 /* 00CB90 7000BF90 24840001 */ addiu $a0, $a0, 1 @@ -1473,43 +667,43 @@ glabel controllerSchedulerRelated /* 00CBB0 7000BFB0 55C00006 */ bnezl $t6, .L7000BFCC /* 00CBB4 7000BFB4 00047E00 */ sll $t7, $a0, 0x18 .L7000BFB8: -/* 00CBB8 7000BFB8 0C002E04 */ jal controller_check_for_rumble_maybe -/* 00CBBC 7000BFBC 00000000 */ nop +/* 00CBB8 7000BFB8 0C002E04 */ jal joyCheckStatus +/* 00CBBC 7000BFBC 00000000 */ nop /* 00CBC0 7000BFC0 10000006 */ b .L7000BFDC -/* 00CBC4 7000BFC4 00000000 */ nop +/* 00CBC4 7000BFC4 00000000 */ nop .L7000BFC8: /* 00CBC8 7000BFC8 00047E00 */ sll $t7, $a0, 0x18 .L7000BFCC: /* 00CBCC 7000BFCC 000F2603 */ sra $a0, $t7, 0x18 /* 00CBD0 7000BFD0 28810004 */ slti $at, $a0, 4 /* 00CBD4 7000BFD4 1420FFDE */ bnez $at, .L7000BF50 -/* 00CBD8 7000BFD8 00000000 */ nop +/* 00CBD8 7000BFD8 00000000 */ nop .L7000BFDC: -/* 00CBDC 7000BFDC 0C002E9F */ jal controller_rumble_related -/* 00CBE0 7000BFE0 00000000 */ nop -/* 00CBE4 7000BFE4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) +/* 00CBDC 7000BFDC 0C002E9F */ jal joyRumblePakTick +/* 00CBE0 7000BFE0 00000000 */ nop +/* 00CBE4 7000BFE4 3C048006 */ lui $a0, %hi(g_ContInputMessageQueue) /* 00CBE8 7000BFE8 0C00535C */ jal osContStartReadData -/* 00CBEC 7000BFEC 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00CBF0 7000BFF0 3C038002 */ lui $v1, %hi(D_80026970) -/* 00CBF4 7000BFF4 8C636970 */ lw $v1, %lo(D_80026970)($v1) +/* 00CBEC 7000BFEC 24845350 */ addiu $a0, %lo(g_ContInputMessageQueue) # addiu $a0, $a0, 0x5350 +/* 00CBF0 7000BFF0 3C038002 */ lui $v1, %hi(g_ContBadReadTimer60) +/* 00CBF4 7000BFF4 8C636970 */ lw $v1, %lo(g_ContBadReadTimer60)($v1) /* 00CBF8 7000BFF8 24190001 */ li $t9, 1 -/* 00CBFC 7000BFFC 3C018002 */ lui $at, %hi(D_800268C8) -/* 00CC00 7000C000 AC3968C8 */ sw $t9, %lo(D_800268C8)($at) -/* 00CC04 7000C004 3C018002 */ lui $at, %hi(D_80026970) +/* 00CBFC 7000BFFC 3C018002 */ lui $at, %hi(g_ContBusy) +/* 00CC00 7000C000 AC3968C8 */ sw $t9, %lo(g_ContBusy)($at) +/* 00CC04 7000C004 3C018002 */ lui $at, %hi(g_ContBadReadTimer60) /* 00CC08 7000C008 24630001 */ addiu $v1, $v1, 1 -/* 00CC0C 7000C00C AC236970 */ sw $v1, %lo(D_80026970)($at) +/* 00CC0C 7000C00C AC236970 */ sw $v1, %lo(g_ContBadReadTimer60)($at) /* 00CC10 7000C010 2861003C */ slti $at, $v1, 0x3c /* 00CC14 7000C014 14200031 */ bnez $at, .L7000C0DC -/* 00CC18 7000C018 3C098002 */ lui $t1, %hi(pl1_controller_failure_lr) -/* 00CC1C 7000C01C 3C048002 */ lui $a0, %hi(pl1_controller_failure_ud) -/* 00CC20 7000C020 3C058002 */ lui $a1, %hi(pl1_controller_failure_held) -/* 00CC24 7000C024 3C038002 */ lui $v1, %hi(pl1_controller_failure_pressed) -/* 00CC28 7000C028 3C0A8002 */ lui $t2, %hi(D_80026970) -/* 00CC2C 7000C02C 254A6970 */ addiu $t2, %lo(D_80026970) # addiu $t2, $t2, 0x6970 -/* 00CC30 7000C030 24636960 */ addiu $v1, %lo(pl1_controller_failure_pressed) # addiu $v1, $v1, 0x6960 -/* 00CC34 7000C034 24A56950 */ addiu $a1, %lo(pl1_controller_failure_held) # addiu $a1, $a1, 0x6950 -/* 00CC38 7000C038 24846940 */ addiu $a0, %lo(pl1_controller_failure_ud) # addiu $a0, $a0, 0x6940 -/* 00CC3C 7000C03C 25296930 */ addiu $t1, %lo(pl1_controller_failure_lr) # addiu $t1, $t1, 0x6930 +/* 00CC18 7000C018 3C098002 */ lui $t1, %hi(g_ContBadReadsStickX) +/* 00CC1C 7000C01C 3C048002 */ lui $a0, %hi(g_ContBadReadsStickY) +/* 00CC20 7000C020 3C058002 */ lui $a1, %hi(g_ContBadReadsButtons) +/* 00CC24 7000C024 3C038002 */ lui $v1, %hi(g_ContBadReadsButtonsPressed) +/* 00CC28 7000C028 3C0A8002 */ lui $t2, %hi(g_ContBadReadTimer60) +/* 00CC2C 7000C02C 254A6970 */ addiu $t2, %lo(g_ContBadReadTimer60) # addiu $t2, $t2, 0x6970 +/* 00CC30 7000C030 24636960 */ addiu $v1, %lo(g_ContBadReadsButtonsPressed) # addiu $v1, $v1, 0x6960 +/* 00CC34 7000C034 24A56950 */ addiu $a1, %lo(g_ContBadReadsButtons) # addiu $a1, $a1, 0x6950 +/* 00CC38 7000C038 24846940 */ addiu $a0, %lo(g_ContBadReadsStickY) # addiu $a0, $a0, 0x6940 +/* 00CC3C 7000C03C 25296930 */ addiu $t1, %lo(g_ContBadReadsStickX) # addiu $t1, $t1, 0x6930 .L7000C040: /* 00CC40 7000C040 8D220000 */ lw $v0, ($t1) /* 00CC44 7000C044 5440000B */ bnezl $v0, .L7000C074 @@ -1552,1215 +746,336 @@ glabel controllerSchedulerRelated /* 00CCC8 7000C0C8 24840008 */ addiu $a0, $a0, 8 /* 00CCCC 7000C0CC 146AFFDC */ bne $v1, $t2, .L7000C040 /* 00CCD0 7000C0D0 24A50008 */ addiu $a1, $a1, 8 -/* 00CCD4 7000C0D4 3C018002 */ lui $at, %hi(D_80026970) -/* 00CCD8 7000C0D8 AC206970 */ sw $zero, %lo(D_80026970)($at) +/* 00CCD4 7000C0D4 3C018002 */ lui $at, %hi(g_ContBadReadTimer60) +/* 00CCD8 7000C0D8 AC206970 */ sw $zero, %lo(g_ContBadReadTimer60)($at) .L7000C0DC: /* 00CCDC 7000C0DC 8FBF0014 */ lw $ra, 0x14($sp) .L7000C0E0: /* 00CCE0 7000C0E0 27BD0050 */ addiu $sp, $sp, 0x50 /* 00CCE4 7000C0E4 03E00008 */ jr $ra -/* 00CCE8 7000C0E8 00000000 */ nop +/* 00CCE8 7000C0E8 00000000 */ nop ) #endif - - -#ifdef NONMATCHING -? get_cur_controller_horz_stick_pos(s32 arg0) +s8 joyGetStickX(s8 contpadnum) { - s32 temp_t7; - void *temp_v1; - - temp_t7 = (s32) (arg0 << 0x18) >> 0x18; - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) { - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) + g_ContBadReadsStickX[contpadnum]++; + return 0; + } + + return g_ContDataPtr->samples[g_ContDataPtr->curlast].pads[contpadnum].stick_x; +} + +s8 joy7000C174(s8 contpadnum) +{ + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) + { + g_ContBadReadsStickX[contpadnum]++; + return 0; + } + + return g_ContDataPtr->samples[g_ContDataPtr->curstart].pads[contpadnum].stick_x; +} + +s8 joyGetStickY(s8 contpadnum) +{ + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) + { + g_ContBadReadsStickY[contpadnum]++; + return 0; + } + + return g_ContDataPtr->samples[g_ContDataPtr->curlast].pads[contpadnum].stick_y; +} + +s8 joy7000C284(s8 contpadnum) +{ + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) + { + g_ContBadReadsStickY[contpadnum]++; + return 0; + } + + return g_ContDataPtr->samples[g_ContDataPtr->curstart].pads[contpadnum].stick_y; +} + +u16 joyGetButtons(s8 contpadnum, u16 mask) +{ + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) + { + g_ContBadReadsButtons[contpadnum]++; + return 0; + } + + return g_ContDataPtr->samples[g_ContDataPtr->curlast].pads[contpadnum].button & mask; +} + +u16 joyGetButtonsPressedThisFrame(s8 contpadnum, u16 mask) +{ + if ((g_ContDataPtr->playbackcontcount < 0) && ((g_ConnectedControllers >> contpadnum & 1) == 0)) + { + g_ContBadReadsButtonsPressed[contpadnum]++; + return 0; + } + + return g_ContDataPtr->buttonspressed[contpadnum] & mask; +} + +void joy7000C430(s8 *bytes, u16 bitfield) +{ + s32 i; + for (i = 15; i >= 0; i--) + { + *bytes++ = (((((bitfield >> i) & 1) > 0) * 17) + 32); + } +} + +void joy7000C470(void) +{ + s32 i = 0; + for (i = 0; i < joyGetControllerCount(); i++) + { + // Removed + } +} + +/** + * Reads controller joystick x value. JOY_CLAMP_OFFSET is first + * added to the raw value, then it is clamped between JOY_CLAMP_MIN + * and JOY_CLAMP_MAX. The value is then normalized against supplied range parameters. + * + * @param contpadnum controller to read. + * @param rangemin min value of range to normalize against. + * @param rangemax max value of range to normalize against. + * + * @return returns normalized value between range, as an s32. + */ +s32 joyGetStickXInRange(s8 contpadnum, s32 rangemin, s32 rangemax) +{ + s32 range; + s32 stick_x = joyGetStickX(contpadnum) + JOY_CLAMP_OFFSET; + + if (stick_x > JOY_CLAMP_MAX) + { + stick_x = JOY_CLAMP_MAX; + } + + if (stick_x < JOY_CLAMP_MIN) + { + stick_x = JOY_CLAMP_MIN; + } + + range = (rangemax - rangemin); + return (((stick_x * range) / JOY_CLAMP_MAX) + rangemin); +} + +/** + * Reads controller joystick y value. JOY_CLAMP_OFFSET is first + * added to the raw value, then it is clamped between JOY_CLAMP_MIN + * and JOY_CLAMP_MAX. The value is then normalized against supplied range parameters. + * + * @param contpadnum controller to read. + * @param rangemin min value of range to normalize against. + * @param rangemax max value of range to normalize against. + * + * @return returns normalized value between range, as an s32. + */ +s32 joyGetStickYInRange(s8 contpadnum, s32 rangemin, s32 rangemax) +{ + s32 range; + s32 stick_y = joyGetStickY(contpadnum) + JOY_CLAMP_OFFSET; + + if (stick_y > JOY_CLAMP_MAX) + { + stick_y = JOY_CLAMP_MAX; + } + + if (stick_y < JOY_CLAMP_MIN) + { + stick_y = JOY_CLAMP_MIN; + } + + range = (rangemax - rangemin); + return (((stick_y * range) / JOY_CLAMP_MAX) + rangemin); +} + +/** + * Reads controller joystick x value. JOY_CLAMP_OFFSET is first + * added to the raw value, then it is clamped between JOY_CLAMP_MIN + * and JOY_CLAMP_MAX. The value is then normalized against supplied range parameters. + * + * @param contpadnum controller to read. + * @param rangemin min value of range to normalize against. + * @param rangemax max value of range to normalize against. + * + * @return returns normalized value between range, as a float. + */ +f32 joyGetStickXInRangef(s8 contpadnum, f32 rangemin, f32 rangemax) +{ + f32 range; + s32 stick_x = joyGetStickX(contpadnum) + JOY_CLAMP_OFFSET; + + if (stick_x > JOY_CLAMP_MAX) + { + stick_x = JOY_CLAMP_MAX; + } + + if (stick_x < JOY_CLAMP_MIN) + { + stick_x = JOY_CLAMP_MIN; + } + + range = (rangemax - rangemin); + return (((stick_x / JOY_CLAMP_MAX_F) * range) + rangemin); +} + +/** + * Reads controller joystick y value. JOY_CLAMP_OFFSET is first + * added to the raw value, then it is clamped between JOY_CLAMP_MIN + * and JOY_CLAMP_MAX. The value is then normalized against supplied range parameters. + * + * @param contpadnum controller to read. + * @param rangemin min value of range to normalize against. + * @param rangemax max value of range to normalize against. + * + * @return returns normalized value between range, as a float. + */ +f32 joyGetStickYInRangef(s8 contpadnum, f32 rangemin, f32 rangemax) +{ + f32 range; + s32 stick_y = joyGetStickY(contpadnum) + JOY_CLAMP_OFFSET; + + if (stick_y > JOY_CLAMP_MAX) + { + stick_y = JOY_CLAMP_MAX; + } + + if (stick_y < JOY_CLAMP_MIN) + { + stick_y = JOY_CLAMP_MIN; + } + + range = (rangemax - rangemin); + return (((stick_y / JOY_CLAMP_MAX_F) * range) + rangemin); +} + +/** + * Disables os message polling. + */ +void joyDisablePoll(void) +{ + OSMesg msg; + + osSendMesg(&g_ContDisablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK); + osRecvMesg(&g_ContDisablePollReceiveMessageQueue, &msg, OS_MESG_BLOCK); +} + +/** + * Enables os message polling. + */ +void joyEnablePoll(void) +{ + OSMesg msg; + + osSendMesg(&g_ContEnablePollSendMessageQueue, &msg, OS_MESG_NOBLOCK); + osRecvMesg(&g_ContEnablePollReceiveMessageQueue, &msg, OS_MESG_BLOCK); +} + +s32 joyGamePakProbe(void) +{ + s32 type; + + joyDisablePoll(); + type = osEepromProbe(&g_ContInputMessageQueue); + joyEnablePoll(); + + return type; +} + +s32 joyGamePakRead(u8 address, u8 *buffer) +{ + s32 ret; + + joyDisablePoll(); + ret = osEepromRead(&g_ContInputMessageQueue, address, buffer); + joyEnablePoll(); + + return ret; +} + +s32 joyGamePakWrite(u8 address, u8 *buffer) +{ + s32 ret; + + joyDisablePoll(); + ret = osEepromWrite(&g_ContInputMessageQueue, address, buffer); + joyEnablePoll(); + + return ret; +} + +s32 joyGamePakLongRead(u8 address, u8 *buffer, s32 nbytes) +{ + s32 ret; + + joyDisablePoll(); + ret = osEepromLongRead(&g_ContInputMessageQueue, address, buffer, nbytes); + joyEnablePoll(); + + return ret; +} + +s32 joyGamePakLongWrite(u8 address, u8 *buffer, s32 nbytes) +{ + s32 ret; + + joyDisablePoll(); + ret = osEepromLongWrite(&g_ContInputMessageQueue, address, buffer, nbytes); + joyEnablePoll(); + + return ret; +} + +void joyRumblePakStart(s32 controller, f32 duration) +{ + s32 duration60 = (duration * 60.0f); + + if ((g_ContPlaybackFunc == NULL) && (g_ContRumblePakInitState[controller] > RUMBLEPAKINITSTATE_NOT_READY)) + { + if (g_ContRumblePakTimer60[controller] < duration60) { - temp_v1 = (temp_t7 * 4) + &pl1_controller_failure_lr; - *temp_v1 = (s32) (*temp_v1 + 1); - return 0; + g_ContRumblePakTimer60[controller] = duration60; + } + if (g_ContRumblePakCurrentState[controller] == RUMBLEPAKSTATE_OFF) + { + g_ContRumblePakTargetState[controller] = RUMBLEPAKSTATE_ON; } } - return ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk2; } -#else -GLOBAL_ASM( -.text -glabel get_cur_controller_horz_stick_pos -/* 00CCEC 7000C0EC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CCF0 7000C0F0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CCF4 7000C0F4 AFA40000 */ sw $a0, ($sp) -/* 00CCF8 7000C0F8 00047600 */ sll $t6, $a0, 0x18 -/* 00CCFC 7000C0FC 8C7801F8 */ lw $t8, 0x1f8($v1) -/* 00CD00 7000C100 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CD04 7000C104 01E02025 */ move $a0, $t7 -/* 00CD08 7000C108 0701000E */ bgez $t8, .L7000C144 -/* 00CD0C 7000C10C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) -/* 00CD10 7000C110 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) -/* 00CD14 7000C114 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) -/* 00CD18 7000C118 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 -/* 00CD1C 7000C11C 01F94007 */ srav $t0, $t9, $t7 -/* 00CD20 7000C120 31090001 */ andi $t1, $t0, 1 -/* 00CD24 7000C124 15200007 */ bnez $t1, .L7000C144 -/* 00CD28 7000C128 000F5080 */ sll $t2, $t7, 2 -/* 00CD2C 7000C12C 014B1821 */ addu $v1, $t2, $t3 -/* 00CD30 7000C130 8C6C0000 */ lw $t4, ($v1) -/* 00CD34 7000C134 00001025 */ move $v0, $zero -/* 00CD38 7000C138 258D0001 */ addiu $t5, $t4, 1 -/* 00CD3C 7000C13C 03E00008 */ jr $ra -/* 00CD40 7000C140 AC6D0000 */ sw $t5, ($v1) -.L7000C144: -/* 00CD44 7000C144 8C6E01E0 */ lw $t6, 0x1e0($v1) -/* 00CD48 7000C148 0004C880 */ sll $t9, $a0, 2 -/* 00CD4C 7000C14C 0324C823 */ subu $t9, $t9, $a0 -/* 00CD50 7000C150 000E7880 */ sll $t7, $t6, 2 -/* 00CD54 7000C154 01EE7823 */ subu $t7, $t7, $t6 -/* 00CD58 7000C158 000F78C0 */ sll $t7, $t7, 3 -/* 00CD5C 7000C15C 006FC021 */ addu $t8, $v1, $t7 -/* 00CD60 7000C160 0019C840 */ sll $t9, $t9, 1 -/* 00CD64 7000C164 03194021 */ addu $t0, $t8, $t9 -/* 00CD68 7000C168 81020002 */ lb $v0, 2($t0) -/* 00CD6C 7000C16C 03E00008 */ jr $ra -/* 00CD70 7000C170 00000000 */ nop -) -#endif +void joyRumblePakStop(void) +{ + s32 i; - - - - -#ifdef NONMATCHING -void controller_7000C174(s32 arg0) { - s32 temp_t7; - void *temp_v1; - - // Node 0 - temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) + for (i = 0; i < MAXCONTROLLERS; i++) { - // Node 1 - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) - { - // Node 2 - temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_lr); - *temp_v1 = (s32) (*temp_v1 + 1); - return; - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) - } - } - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk2) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C174 -/* 00CD74 7000C174 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CD78 7000C178 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CD7C 7000C17C AFA40000 */ sw $a0, ($sp) -/* 00CD80 7000C180 00047600 */ sll $t6, $a0, 0x18 -/* 00CD84 7000C184 8C7801F8 */ lw $t8, 0x1f8($v1) -/* 00CD88 7000C188 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CD8C 7000C18C 01E02025 */ move $a0, $t7 -/* 00CD90 7000C190 0701000E */ bgez $t8, .L7000C1CC -/* 00CD94 7000C194 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) -/* 00CD98 7000C198 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) -/* 00CD9C 7000C19C 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_lr) -/* 00CDA0 7000C1A0 256B6930 */ addiu $t3, %lo(pl1_controller_failure_lr) # addiu $t3, $t3, 0x6930 -/* 00CDA4 7000C1A4 01F94007 */ srav $t0, $t9, $t7 -/* 00CDA8 7000C1A8 31090001 */ andi $t1, $t0, 1 -/* 00CDAC 7000C1AC 15200007 */ bnez $t1, .L7000C1CC -/* 00CDB0 7000C1B0 000F5080 */ sll $t2, $t7, 2 -/* 00CDB4 7000C1B4 014B1821 */ addu $v1, $t2, $t3 -/* 00CDB8 7000C1B8 8C6C0000 */ lw $t4, ($v1) -/* 00CDBC 7000C1BC 00001025 */ move $v0, $zero -/* 00CDC0 7000C1C0 258D0001 */ addiu $t5, $t4, 1 -/* 00CDC4 7000C1C4 03E00008 */ jr $ra -/* 00CDC8 7000C1C8 AC6D0000 */ sw $t5, ($v1) - -.L7000C1CC: -/* 00CDCC 7000C1CC 8C6E01E4 */ lw $t6, 0x1e4($v1) -/* 00CDD0 7000C1D0 0004C880 */ sll $t9, $a0, 2 -/* 00CDD4 7000C1D4 0324C823 */ subu $t9, $t9, $a0 -/* 00CDD8 7000C1D8 000E7880 */ sll $t7, $t6, 2 -/* 00CDDC 7000C1DC 01EE7823 */ subu $t7, $t7, $t6 -/* 00CDE0 7000C1E0 000F78C0 */ sll $t7, $t7, 3 -/* 00CDE4 7000C1E4 006FC021 */ addu $t8, $v1, $t7 -/* 00CDE8 7000C1E8 0019C840 */ sll $t9, $t9, 1 -/* 00CDEC 7000C1EC 03194021 */ addu $t0, $t8, $t9 -/* 00CDF0 7000C1F0 81020002 */ lb $v0, 2($t0) -/* 00CDF4 7000C1F4 03E00008 */ jr $ra -/* 00CDF8 7000C1F8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void get_cur_controller_vert_stick_pos(s32 arg0) { - s32 temp_t7; - void *temp_v1; - - // Node 0 - temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) - { - // Node 1 - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) - { - // Node 2 - temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); - *temp_v1 = (s32) (*temp_v1 + 1); - return; - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) - } - } - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6))->unk3) -} -#else -GLOBAL_ASM( -.text -glabel get_cur_controller_vert_stick_pos -/* 00CDFC 7000C1FC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CE00 7000C200 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CE04 7000C204 AFA40000 */ sw $a0, ($sp) -/* 00CE08 7000C208 00047600 */ sll $t6, $a0, 0x18 -/* 00CE0C 7000C20C 8C7801F8 */ lw $t8, 0x1f8($v1) -/* 00CE10 7000C210 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CE14 7000C214 01E02025 */ move $a0, $t7 -/* 00CE18 7000C218 0701000E */ bgez $t8, .L7000C254 -/* 00CE1C 7000C21C 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) -/* 00CE20 7000C220 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) -/* 00CE24 7000C224 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) -/* 00CE28 7000C228 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 -/* 00CE2C 7000C22C 01F94007 */ srav $t0, $t9, $t7 -/* 00CE30 7000C230 31090001 */ andi $t1, $t0, 1 -/* 00CE34 7000C234 15200007 */ bnez $t1, .L7000C254 -/* 00CE38 7000C238 000F5080 */ sll $t2, $t7, 2 -/* 00CE3C 7000C23C 014B1821 */ addu $v1, $t2, $t3 -/* 00CE40 7000C240 8C6C0000 */ lw $t4, ($v1) -/* 00CE44 7000C244 00001025 */ move $v0, $zero -/* 00CE48 7000C248 258D0001 */ addiu $t5, $t4, 1 -/* 00CE4C 7000C24C 03E00008 */ jr $ra -/* 00CE50 7000C250 AC6D0000 */ sw $t5, ($v1) - -.L7000C254: -/* 00CE54 7000C254 8C6E01E0 */ lw $t6, 0x1e0($v1) -/* 00CE58 7000C258 0004C880 */ sll $t9, $a0, 2 -/* 00CE5C 7000C25C 0324C823 */ subu $t9, $t9, $a0 -/* 00CE60 7000C260 000E7880 */ sll $t7, $t6, 2 -/* 00CE64 7000C264 01EE7823 */ subu $t7, $t7, $t6 -/* 00CE68 7000C268 000F78C0 */ sll $t7, $t7, 3 -/* 00CE6C 7000C26C 006FC021 */ addu $t8, $v1, $t7 -/* 00CE70 7000C270 0019C840 */ sll $t9, $t9, 1 -/* 00CE74 7000C274 03194021 */ addu $t0, $t8, $t9 -/* 00CE78 7000C278 81020003 */ lb $v0, 3($t0) -/* 00CE7C 7000C27C 03E00008 */ jr $ra -/* 00CE80 7000C280 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void controller_7000C284(s32 arg0) { - s32 temp_t7; - void *temp_v1; - - // Node 0 - temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) - { - // Node 1 - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) - { - // Node 2 - temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_ud); - *temp_v1 = (s32) (*temp_v1 + 1); - return; - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) - } - } - // (possible return value: ((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E4 * 0x18)) + (temp_t7 * 6))->unk3) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C284 -/* 00CE84 7000C284 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CE88 7000C288 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CE8C 7000C28C AFA40000 */ sw $a0, ($sp) -/* 00CE90 7000C290 00047600 */ sll $t6, $a0, 0x18 -/* 00CE94 7000C294 8C7801F8 */ lw $t8, 0x1f8($v1) -/* 00CE98 7000C298 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CE9C 7000C29C 01E02025 */ move $a0, $t7 -/* 00CEA0 7000C2A0 0701000E */ bgez $t8, .L7000C2DC -/* 00CEA4 7000C2A4 3C198002 */ lui $t9, %hi(num_controller_plugged_in_flags) -/* 00CEA8 7000C2A8 933968D0 */ lbu $t9, %lo(num_controller_plugged_in_flags)($t9) -/* 00CEAC 7000C2AC 3C0B8002 */ lui $t3, %hi(pl1_controller_failure_ud) -/* 00CEB0 7000C2B0 256B6940 */ addiu $t3, %lo(pl1_controller_failure_ud) # addiu $t3, $t3, 0x6940 -/* 00CEB4 7000C2B4 01F94007 */ srav $t0, $t9, $t7 -/* 00CEB8 7000C2B8 31090001 */ andi $t1, $t0, 1 -/* 00CEBC 7000C2BC 15200007 */ bnez $t1, .L7000C2DC -/* 00CEC0 7000C2C0 000F5080 */ sll $t2, $t7, 2 -/* 00CEC4 7000C2C4 014B1821 */ addu $v1, $t2, $t3 -/* 00CEC8 7000C2C8 8C6C0000 */ lw $t4, ($v1) -/* 00CECC 7000C2CC 00001025 */ move $v0, $zero -/* 00CED0 7000C2D0 258D0001 */ addiu $t5, $t4, 1 -/* 00CED4 7000C2D4 03E00008 */ jr $ra -/* 00CED8 7000C2D8 AC6D0000 */ sw $t5, ($v1) - -.L7000C2DC: -/* 00CEDC 7000C2DC 8C6E01E4 */ lw $t6, 0x1e4($v1) -/* 00CEE0 7000C2E0 0004C880 */ sll $t9, $a0, 2 -/* 00CEE4 7000C2E4 0324C823 */ subu $t9, $t9, $a0 -/* 00CEE8 7000C2E8 000E7880 */ sll $t7, $t6, 2 -/* 00CEEC 7000C2EC 01EE7823 */ subu $t7, $t7, $t6 -/* 00CEF0 7000C2F0 000F78C0 */ sll $t7, $t7, 3 -/* 00CEF4 7000C2F4 006FC021 */ addu $t8, $v1, $t7 -/* 00CEF8 7000C2F8 0019C840 */ sll $t9, $t9, 1 -/* 00CEFC 7000C2FC 03194021 */ addu $t0, $t8, $t9 -/* 00CF00 7000C300 81020003 */ lb $v0, 3($t0) -/* 00CF04 7000C304 03E00008 */ jr $ra -/* 00CF08 7000C308 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 get_controller_buttons_held(s32 arg0, s32 arg1) { - s32 temp_t7; - void *temp_v1; - - // Node 0 - temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) - { - // Node 1 - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) - { - // Node 2 - temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_held); - *temp_v1 = (s32) (*temp_v1 + 1); - return; - // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) - } - } - // (possible return value: ((*((ptr_current_point_in_controller_input_index + (ptr_current_point_in_controller_input_index->unk1E0 * 0x18)) + (temp_t7 * 6)) & (arg1 & 0xffff)) & 0xffff)) -} -#else -GLOBAL_ASM( -.text -glabel get_controller_buttons_held -/* 00CF0C 7000C30C 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CF10 7000C310 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CF14 7000C314 AFA40000 */ sw $a0, ($sp) -/* 00CF18 7000C318 AFA50004 */ sw $a1, 4($sp) -/* 00CF1C 7000C31C 8C7901F8 */ lw $t9, 0x1f8($v1) -/* 00CF20 7000C320 00047600 */ sll $t6, $a0, 0x18 -/* 00CF24 7000C324 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CF28 7000C328 30B8FFFF */ andi $t8, $a1, 0xffff -/* 00CF2C 7000C32C 03002825 */ move $a1, $t8 -/* 00CF30 7000C330 0721000F */ bgez $t9, .L7000C370 -/* 00CF34 7000C334 01E02025 */ move $a0, $t7 -/* 00CF38 7000C338 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) -/* 00CF3C 7000C33C 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) -/* 00CF40 7000C340 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_held) -/* 00CF44 7000C344 258C6950 */ addiu $t4, %lo(pl1_controller_failure_held) # addiu $t4, $t4, 0x6950 -/* 00CF48 7000C348 01E84807 */ srav $t1, $t0, $t7 -/* 00CF4C 7000C34C 312A0001 */ andi $t2, $t1, 1 -/* 00CF50 7000C350 15400007 */ bnez $t2, .L7000C370 -/* 00CF54 7000C354 000F5880 */ sll $t3, $t7, 2 -/* 00CF58 7000C358 016C1821 */ addu $v1, $t3, $t4 -/* 00CF5C 7000C35C 8C6D0000 */ lw $t5, ($v1) -/* 00CF60 7000C360 00001025 */ move $v0, $zero -/* 00CF64 7000C364 25AE0001 */ addiu $t6, $t5, 1 -/* 00CF68 7000C368 03E00008 */ jr $ra -/* 00CF6C 7000C36C AC6E0000 */ sw $t6, ($v1) - -.L7000C370: -/* 00CF70 7000C370 8C6F01E0 */ lw $t7, 0x1e0($v1) -/* 00CF74 7000C374 00044080 */ sll $t0, $a0, 2 -/* 00CF78 7000C378 01044023 */ subu $t0, $t0, $a0 -/* 00CF7C 7000C37C 000FC080 */ sll $t8, $t7, 2 -/* 00CF80 7000C380 030FC023 */ subu $t8, $t8, $t7 -/* 00CF84 7000C384 0018C0C0 */ sll $t8, $t8, 3 -/* 00CF88 7000C388 0078C821 */ addu $t9, $v1, $t8 -/* 00CF8C 7000C38C 00084040 */ sll $t0, $t0, 1 -/* 00CF90 7000C390 03284821 */ addu $t1, $t9, $t0 -/* 00CF94 7000C394 952A0000 */ lhu $t2, ($t1) -/* 00CF98 7000C398 01451024 */ and $v0, $t2, $a1 -/* 00CF9C 7000C39C 304BFFFF */ andi $t3, $v0, 0xffff -/* 00CFA0 7000C3A0 01601025 */ move $v0, $t3 -/* 00CFA4 7000C3A4 03E00008 */ jr $ra -/* 00CFA8 7000C3A8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 get_controller_buttons_pressed(s8 arg0, s32 arg1) { - s32 temp_t7; - void *temp_v1; - - // Node 0 - temp_t7 = ((s32) (arg0 << 0x18) >> 0x18); - if (ptr_current_point_in_controller_input_index->unk1F8 < 0) - { - // Node 1 - if ((((s32) num_controller_plugged_in_flags >> temp_t7) & 1) == 0) - { - // Node 2 - temp_v1 = ((temp_t7 * 4) + &pl1_controller_failure_pressed); - *temp_v1 = (s32) (*temp_v1 + 1); - return; - // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) - } - } - // (possible return value: (((ptr_current_point_in_controller_input_index + (temp_t7 * 2))->unk1F0 & (arg1 & 0xffff)) & 0xffff)) -} -#else -GLOBAL_ASM( -.text -glabel get_controller_buttons_pressed -/* 00CFAC 7000C3AC 3C038002 */ lui $v1, %hi(ptr_current_point_in_controller_input_index) -/* 00CFB0 7000C3B0 8C6368C4 */ lw $v1, %lo(ptr_current_point_in_controller_input_index)($v1) -/* 00CFB4 7000C3B4 AFA40000 */ sw $a0, ($sp) -/* 00CFB8 7000C3B8 AFA50004 */ sw $a1, 4($sp) -/* 00CFBC 7000C3BC 8C7901F8 */ lw $t9, 0x1f8($v1) -/* 00CFC0 7000C3C0 00047600 */ sll $t6, $a0, 0x18 -/* 00CFC4 7000C3C4 000E7E03 */ sra $t7, $t6, 0x18 -/* 00CFC8 7000C3C8 30B8FFFF */ andi $t8, $a1, 0xffff -/* 00CFCC 7000C3CC 03002825 */ move $a1, $t8 -/* 00CFD0 7000C3D0 0721000F */ bgez $t9, .L7000C410 -/* 00CFD4 7000C3D4 01E02025 */ move $a0, $t7 -/* 00CFD8 7000C3D8 3C088002 */ lui $t0, %hi(num_controller_plugged_in_flags) -/* 00CFDC 7000C3DC 910868D0 */ lbu $t0, %lo(num_controller_plugged_in_flags)($t0) -/* 00CFE0 7000C3E0 3C0C8002 */ lui $t4, %hi(pl1_controller_failure_pressed) -/* 00CFE4 7000C3E4 258C6960 */ addiu $t4, %lo(pl1_controller_failure_pressed) # addiu $t4, $t4, 0x6960 -/* 00CFE8 7000C3E8 01E84807 */ srav $t1, $t0, $t7 -/* 00CFEC 7000C3EC 312A0001 */ andi $t2, $t1, 1 -/* 00CFF0 7000C3F0 15400007 */ bnez $t2, .L7000C410 -/* 00CFF4 7000C3F4 000F5880 */ sll $t3, $t7, 2 -/* 00CFF8 7000C3F8 016C1821 */ addu $v1, $t3, $t4 -/* 00CFFC 7000C3FC 8C6D0000 */ lw $t5, ($v1) -/* 00D000 7000C400 00001025 */ move $v0, $zero -/* 00D004 7000C404 25AE0001 */ addiu $t6, $t5, 1 -/* 00D008 7000C408 03E00008 */ jr $ra -/* 00D00C 7000C40C AC6E0000 */ sw $t6, ($v1) - -.L7000C410: -/* 00D010 7000C410 00047840 */ sll $t7, $a0, 1 -/* 00D014 7000C414 006FC021 */ addu $t8, $v1, $t7 -/* 00D018 7000C418 971901F0 */ lhu $t9, 0x1f0($t8) -/* 00D01C 7000C41C 03251024 */ and $v0, $t9, $a1 -/* 00D020 7000C420 3048FFFF */ andi $t0, $v0, 0xffff -/* 00D024 7000C424 01001025 */ move $v0, $t0 -/* 00D028 7000C428 03E00008 */ jr $ra -/* 00D02C 7000C42C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 controller_7000C430(s32 arg0, s32 arg1) { - // Node 0 - // Node 1 - (arg0 + 1)->unk-1 = (s8) (((0 < (((s32) (arg1 & 0xffff) >> 0xf) & 1)) * 0x11) + 0x20); - if ((0xf + -1) >= 0) - { - goto loop_1; - } - // (possible return value: (0xf + -1)) -} - -#else -GLOBAL_ASM( -.text -glabel controller_7000C430 -/* 00D030 7000C430 AFA50004 */ sw $a1, 4($sp) -/* 00D034 7000C434 30A3FFFF */ andi $v1, $a1, 0xffff -/* 00D038 7000C438 24050011 */ li $a1, 17 -/* 00D03C 7000C43C 2402000F */ li $v0, 15 -.L7000C440: -/* 00D040 7000C440 00437807 */ srav $t7, $v1, $v0 -/* 00D044 7000C444 31F80001 */ andi $t8, $t7, 1 -/* 00D048 7000C448 0018C82A */ slt $t9, $zero, $t8 -/* 00D04C 7000C44C 03250019 */ multu $t9, $a1 -/* 00D050 7000C450 2442FFFF */ addiu $v0, $v0, -1 -/* 00D054 7000C454 24840001 */ addiu $a0, $a0, 1 -/* 00D058 7000C458 00004012 */ mflo $t0 -/* 00D05C 7000C45C 25090020 */ addiu $t1, $t0, 0x20 -/* 00D060 7000C460 0441FFF7 */ bgez $v0, .L7000C440 -/* 00D064 7000C464 A089FFFF */ sb $t1, -1($a0) -/* 00D068 7000C468 03E00008 */ jr $ra -/* 00D06C 7000C46C 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void controller_7000C470(void) { - // Node 0 - if (get_attached_controller_count() > 0) - { - loop_1: - // Node 1 - if ((0 + 1) < get_attached_controller_count()) - { - goto loop_1; - } - } - // (possible return value: get_attached_controller_count()) -} - -#else -GLOBAL_ASM( -.text -glabel controller_7000C470 -/* 00D070 7000C470 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D074 7000C474 AFBF001C */ sw $ra, 0x1c($sp) -/* 00D078 7000C478 AFB00018 */ sw $s0, 0x18($sp) -/* 00D07C 7000C47C 0C002E7E */ jal get_attached_controller_count -/* 00D080 7000C480 00008025 */ move $s0, $zero -/* 00D084 7000C484 58400007 */ blezl $v0, .L7000C4A4 -/* 00D088 7000C488 8FBF001C */ lw $ra, 0x1c($sp) -.L7000C48C: -/* 00D08C 7000C48C 0C002E7E */ jal get_attached_controller_count -/* 00D090 7000C490 26100001 */ addiu $s0, $s0, 1 -/* 00D094 7000C494 0202082A */ slt $at, $s0, $v0 -/* 00D098 7000C498 1420FFFC */ bnez $at, .L7000C48C -/* 00D09C 7000C49C 00000000 */ nop -/* 00D0A0 7000C4A0 8FBF001C */ lw $ra, 0x1c($sp) -.L7000C4A4: -/* 00D0A4 7000C4A4 8FB00018 */ lw $s0, 0x18($sp) -/* 00D0A8 7000C4A8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D0AC 7000C4AC 03E00008 */ jr $ra -/* 00D0B0 7000C4B0 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -s32 get_controller_3dstick_L_R(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { - s32 temp_a0; - - // Node 0 - temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); - if (temp_a0 >= 0x79) - { - // Node 1 - } - // Node 2 - if (temp_a0 < 0) - { - // Node 3 - return; - // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) - } - // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) -} -#else -GLOBAL_ASM( -.text -glabel get_controller_3dstick_L_R -/* 00D0B4 7000C4B4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00D0B8 7000C4B8 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D0BC 7000C4BC AFA40018 */ sw $a0, 0x18($sp) -/* 00D0C0 7000C4C0 00047600 */ sll $t6, $a0, 0x18 -/* 00D0C4 7000C4C4 000E2603 */ sra $a0, $t6, 0x18 -/* 00D0C8 7000C4C8 AFA5001C */ sw $a1, 0x1c($sp) -/* 00D0CC 7000C4CC 0C00303B */ jal get_cur_controller_horz_stick_pos -/* 00D0D0 7000C4D0 AFA60020 */ sw $a2, 0x20($sp) -/* 00D0D4 7000C4D4 2444003C */ addiu $a0, $v0, 0x3c -/* 00D0D8 7000C4D8 28810079 */ slti $at, $a0, 0x79 -/* 00D0DC 7000C4DC 14200002 */ bnez $at, .L7000C4E8 -/* 00D0E0 7000C4E0 8FA5001C */ lw $a1, 0x1c($sp) -/* 00D0E4 7000C4E4 24040078 */ li $a0, 120 -.L7000C4E8: -/* 00D0E8 7000C4E8 04810002 */ bgez $a0, .L7000C4F4 -/* 00D0EC 7000C4EC 8FB80020 */ lw $t8, 0x20($sp) -/* 00D0F0 7000C4F0 00002025 */ move $a0, $zero -.L7000C4F4: -/* 00D0F4 7000C4F4 0305C823 */ subu $t9, $t8, $a1 -/* 00D0F8 7000C4F8 00990019 */ multu $a0, $t9 -/* 00D0FC 7000C4FC 24010078 */ li $at, 120 -/* 00D100 7000C500 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D104 7000C504 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00D108 7000C508 00004012 */ mflo $t0 -/* 00D10C 7000C50C 00000000 */ nop -/* 00D110 7000C510 00000000 */ nop -/* 00D114 7000C514 0101001A */ div $zero, $t0, $at -/* 00D118 7000C518 00004812 */ mflo $t1 -/* 00D11C 7000C51C 01251021 */ addu $v0, $t1, $a1 -/* 00D120 7000C520 03E00008 */ jr $ra -/* 00D124 7000C524 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 get_controller_3dstick_U_D(s32 arg0, s32 arg1, ? arg2, s32 arg7, s32 arg8) { - s32 temp_a0; - - // Node 0 - temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); - if (temp_a0 >= 0x79) - { - // Node 1 - } - // Node 2 - if (temp_a0 < 0) - { - // Node 3 - return; - // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) - } - // (possible return value: (((s32) (temp_a0 * (arg8 - arg7)) / 0x78) + arg7)) -} -#else -GLOBAL_ASM( -.text -glabel get_controller_3dstick_U_D -/* 00D128 7000C528 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00D12C 7000C52C AFBF0014 */ sw $ra, 0x14($sp) -/* 00D130 7000C530 AFA40018 */ sw $a0, 0x18($sp) -/* 00D134 7000C534 00047600 */ sll $t6, $a0, 0x18 -/* 00D138 7000C538 000E2603 */ sra $a0, $t6, 0x18 -/* 00D13C 7000C53C AFA5001C */ sw $a1, 0x1c($sp) -/* 00D140 7000C540 0C00307F */ jal get_cur_controller_vert_stick_pos -/* 00D144 7000C544 AFA60020 */ sw $a2, 0x20($sp) -/* 00D148 7000C548 2444003C */ addiu $a0, $v0, 0x3c -/* 00D14C 7000C54C 28810079 */ slti $at, $a0, 0x79 -/* 00D150 7000C550 14200002 */ bnez $at, .L7000C55C -/* 00D154 7000C554 8FA5001C */ lw $a1, 0x1c($sp) -/* 00D158 7000C558 24040078 */ li $a0, 120 -.L7000C55C: -/* 00D15C 7000C55C 04810002 */ bgez $a0, .L7000C568 -/* 00D160 7000C560 8FB80020 */ lw $t8, 0x20($sp) -/* 00D164 7000C564 00002025 */ move $a0, $zero -.L7000C568: -/* 00D168 7000C568 0305C823 */ subu $t9, $t8, $a1 -/* 00D16C 7000C56C 00990019 */ multu $a0, $t9 -/* 00D170 7000C570 24010078 */ li $at, 120 -/* 00D174 7000C574 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D178 7000C578 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00D17C 7000C57C 00004012 */ mflo $t0 -/* 00D180 7000C580 00000000 */ nop -/* 00D184 7000C584 00000000 */ nop -/* 00D188 7000C588 0101001A */ div $zero, $t0, $at -/* 00D18C 7000C58C 00004812 */ mflo $t1 -/* 00D190 7000C590 01251021 */ addu $v0, $t1, $a1 -/* 00D194 7000C594 03E00008 */ jr $ra -/* 00D198 7000C598 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -f32 controller_7000C59C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { - s32 temp_a0; - - // Node 0 - temp_a0 = (get_cur_controller_horz_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); - if (temp_a0 >= 0x79) - { - // Node 1 - } - // Node 2 - if (temp_a0 < 0) - { - // Node 3 - return; - // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) - } - // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C59C -/* 00D19C 7000C59C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00D1A0 7000C5A0 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D1A4 7000C5A4 AFA40018 */ sw $a0, 0x18($sp) -/* 00D1A8 7000C5A8 00047600 */ sll $t6, $a0, 0x18 -/* 00D1AC 7000C5AC 000E2603 */ sra $a0, $t6, 0x18 -/* 00D1B0 7000C5B0 AFA5001C */ sw $a1, 0x1c($sp) -/* 00D1B4 7000C5B4 0C00303B */ jal get_cur_controller_horz_stick_pos -/* 00D1B8 7000C5B8 AFA60020 */ sw $a2, 0x20($sp) -/* 00D1BC 7000C5BC 2444003C */ addiu $a0, $v0, 0x3c -/* 00D1C0 7000C5C0 28810079 */ slti $at, $a0, 0x79 -/* 00D1C4 7000C5C4 14200002 */ bnez $at, .L7000C5D0 -/* 00D1C8 7000C5C8 C7A2001C */ lwc1 $f2, 0x1c($sp) -/* 00D1CC 7000C5CC 24040078 */ li $a0, 120 -.L7000C5D0: -/* 00D1D0 7000C5D0 04830003 */ bgezl $a0, .L7000C5E0 -/* 00D1D4 7000C5D4 44842000 */ mtc1 $a0, $f4 -/* 00D1D8 7000C5D8 00002025 */ move $a0, $zero -/* 00D1DC 7000C5DC 44842000 */ mtc1 $a0, $f4 -.L7000C5E0: -/* 00D1E0 7000C5E0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 00D1E4 7000C5E4 44814000 */ mtc1 $at, $f8 -/* 00D1E8 7000C5E8 468021A0 */ cvt.s.w $f6, $f4 -/* 00D1EC 7000C5EC C7B00020 */ lwc1 $f16, 0x20($sp) -/* 00D1F0 7000C5F0 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D1F4 7000C5F4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00D1F8 7000C5F8 46028481 */ sub.s $f18, $f16, $f2 -/* 00D1FC 7000C5FC 46083283 */ div.s $f10, $f6, $f8 -/* 00D200 7000C600 46125102 */ mul.s $f4, $f10, $f18 -/* 00D204 7000C604 03E00008 */ jr $ra -/* 00D208 7000C608 46022000 */ add.s $f0, $f4, $f2 -) -#endif - - - - - -#ifdef NONMATCHING -f32 controller_7000C60C(s32 arg0, s32 arg1, ? arg2, f32 arg7, f32 arg8) { - s32 temp_a0; - - // Node 0 - temp_a0 = (get_cur_controller_vert_stick_pos(((s32) (arg0 << 0x18) >> 0x18)) + 0x3c); - if (temp_a0 >= 0x79) - { - // Node 1 - } - // Node 2 - if (temp_a0 < 0) - { - // Node 3 - return; - // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) - } - // (possible return value: ((((f32) temp_a0 / 120.0f) * (arg8 - arg7)) + arg7)) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C60C -/* 00D20C 7000C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00D210 7000C610 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D214 7000C614 AFA40018 */ sw $a0, 0x18($sp) -/* 00D218 7000C618 00047600 */ sll $t6, $a0, 0x18 -/* 00D21C 7000C61C 000E2603 */ sra $a0, $t6, 0x18 -/* 00D220 7000C620 AFA5001C */ sw $a1, 0x1c($sp) -/* 00D224 7000C624 0C00307F */ jal get_cur_controller_vert_stick_pos -/* 00D228 7000C628 AFA60020 */ sw $a2, 0x20($sp) -/* 00D22C 7000C62C 2444003C */ addiu $a0, $v0, 0x3c -/* 00D230 7000C630 28810079 */ slti $at, $a0, 0x79 -/* 00D234 7000C634 14200002 */ bnez $at, .L7000C640 -/* 00D238 7000C638 C7A2001C */ lwc1 $f2, 0x1c($sp) -/* 00D23C 7000C63C 24040078 */ li $a0, 120 -.L7000C640: -/* 00D240 7000C640 04830003 */ bgezl $a0, .L7000C650 -/* 00D244 7000C644 44842000 */ mtc1 $a0, $f4 -/* 00D248 7000C648 00002025 */ move $a0, $zero -/* 00D24C 7000C64C 44842000 */ mtc1 $a0, $f4 -.L7000C650: -/* 00D250 7000C650 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 00D254 7000C654 44814000 */ mtc1 $at, $f8 -/* 00D258 7000C658 468021A0 */ cvt.s.w $f6, $f4 -/* 00D25C 7000C65C C7B00020 */ lwc1 $f16, 0x20($sp) -/* 00D260 7000C660 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D264 7000C664 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00D268 7000C668 46028481 */ sub.s $f18, $f16, $f2 -/* 00D26C 7000C66C 46083283 */ div.s $f10, $f6, $f8 -/* 00D270 7000C670 46125102 */ mul.s $f4, $f10, $f18 -/* 00D274 7000C674 03E00008 */ jr $ra -/* 00D278 7000C678 46022000 */ add.s $f0, $f4, $f2 -) -#endif - - - - - -#ifdef NONMATCHING -void controller_7000C67C(void) { - ? sp1C; - - // Node 0 - osSendMesg(&cont1MesgMQ, &sp1C, 0); - osRecvMesg(&cont2MesgMQ, &sp1C, 1); - return; - // (possible return value: osRecvMesg(&cont2MesgMQ, &sp1C, 1)) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C67C -/* 00D27C 7000C67C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D280 7000C680 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D284 7000C684 3C048006 */ lui $a0, %hi(cont1MesgMQ) -/* 00D288 7000C688 24845370 */ addiu $a0, %lo(cont1MesgMQ) # addiu $a0, $a0, 0x5370 -/* 00D28C 7000C68C 27A5001C */ addiu $a1, $sp, 0x1c -/* 00D290 7000C690 0C0037C4 */ jal osSendMesg -/* 00D294 7000C694 00003025 */ move $a2, $zero -/* 00D298 7000C698 3C048006 */ lui $a0, %hi(cont2MesgMQ) -/* 00D29C 7000C69C 24845390 */ addiu $a0, %lo(cont2MesgMQ) # addiu $a0, $a0, 0x5390 -/* 00D2A0 7000C6A0 27A5001C */ addiu $a1, $sp, 0x1c -/* 00D2A4 7000C6A4 0C003774 */ jal osRecvMesg -/* 00D2A8 7000C6A8 24060001 */ li $a2, 1 -/* 00D2AC 7000C6AC 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D2B0 7000C6B0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D2B4 7000C6B4 03E00008 */ jr $ra -/* 00D2B8 7000C6B8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void controller_7000C6BC(void) { - ? sp1C; - - // Node 0 - osSendMesg(&cont3MesgMQ, &sp1C, 0); - osRecvMesg(&cont4MesgMQ, &sp1C, 1); - return; - // (possible return value: osRecvMesg(&cont4MesgMQ, &sp1C, 1)) -} -#else -GLOBAL_ASM( -.text -glabel controller_7000C6BC -/* 00D2BC 7000C6BC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D2C0 7000C6C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D2C4 7000C6C4 3C048006 */ lui $a0, %hi(cont3MesgMQ) -/* 00D2C8 7000C6C8 248453B0 */ addiu $a0, %lo(cont3MesgMQ) # addiu $a0, $a0, 0x53b0 -/* 00D2CC 7000C6CC 27A5001C */ addiu $a1, $sp, 0x1c -/* 00D2D0 7000C6D0 0C0037C4 */ jal osSendMesg -/* 00D2D4 7000C6D4 00003025 */ move $a2, $zero -/* 00D2D8 7000C6D8 3C048006 */ lui $a0, %hi(cont4MesgMQ) -/* 00D2DC 7000C6DC 248453D0 */ addiu $a0, %lo(cont4MesgMQ) # addiu $a0, $a0, 0x53d0 -/* 00D2E0 7000C6E0 27A5001C */ addiu $a1, $sp, 0x1c -/* 00D2E4 7000C6E4 0C003774 */ jal osRecvMesg -/* 00D2E8 7000C6E8 24060001 */ li $a2, 1 -/* 00D2EC 7000C6EC 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D2F0 7000C6F0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D2F4 7000C6F4 03E00008 */ jr $ra -/* 00D2F8 7000C6F8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 save_7000C6FC(void) { - s32 sp1C; - - // Node 0 - controller_7000C67C(); - sp1C = osEepromProbe(&contdemoMesgMQ); - controller_7000C6BC(); - return; - // (possible return value: sp1C) -} -#else -GLOBAL_ASM( -.text -glabel save_7000C6FC -/* 00D2FC 7000C6FC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D300 7000C700 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D304 7000C704 0C00319F */ jal controller_7000C67C -/* 00D308 7000C708 00000000 */ nop -/* 00D30C 7000C70C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00D310 7000C710 0C0053F4 */ jal osEepromProbe -/* 00D314 7000C714 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00D318 7000C718 0C0031AF */ jal controller_7000C6BC -/* 00D31C 7000C71C AFA2001C */ sw $v0, 0x1c($sp) -/* 00D320 7000C720 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D324 7000C724 8FA2001C */ lw $v0, 0x1c($sp) -/* 00D328 7000C728 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D32C 7000C72C 03E00008 */ jr $ra -/* 00D330 7000C730 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 save_7000C734(s32 arg0, s32 arg1, ? arg8, ? arg9) { - s32 sp1C; - - // Node 0 - controller_7000C67C(); - sp1C = osEepromRead(&contdemoMesgMQ, arg8, arg9); - controller_7000C6BC(); - return; - // (possible return value: sp1C) -} -#else -GLOBAL_ASM( -.text -glabel save_7000C734 -/* 00D334 7000C734 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D338 7000C738 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D33C 7000C73C AFA40020 */ sw $a0, 0x20($sp) -/* 00D340 7000C740 0C00319F */ jal controller_7000C67C -/* 00D344 7000C744 AFA50024 */ sw $a1, 0x24($sp) -/* 00D348 7000C748 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00D34C 7000C74C 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00D350 7000C750 93A50023 */ lbu $a1, 0x23($sp) -/* 00D354 7000C754 0C005410 */ jal osEepromRead -/* 00D358 7000C758 8FA60024 */ lw $a2, 0x24($sp) -/* 00D35C 7000C75C 0C0031AF */ jal controller_7000C6BC -/* 00D360 7000C760 AFA2001C */ sw $v0, 0x1c($sp) -/* 00D364 7000C764 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D368 7000C768 8FA2001C */ lw $v0, 0x1c($sp) -/* 00D36C 7000C76C 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D370 7000C770 03E00008 */ jr $ra -/* 00D374 7000C774 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 save_7000C778(s32 arg0, s32 arg1, ? arg8, ? arg9) { - s32 sp1C; - - // Node 0 - controller_7000C67C(); - sp1C = osEepromWrite(&contdemoMesgMQ, arg8, arg9); - controller_7000C6BC(); - return; - // (possible return value: sp1C) -} -#else -GLOBAL_ASM( -.text -glabel save_7000C778 -/* 00D378 7000C778 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D37C 7000C77C AFBF0014 */ sw $ra, 0x14($sp) -/* 00D380 7000C780 AFA40020 */ sw $a0, 0x20($sp) -/* 00D384 7000C784 0C00319F */ jal controller_7000C67C -/* 00D388 7000C788 AFA50024 */ sw $a1, 0x24($sp) -/* 00D38C 7000C78C 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00D390 7000C790 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00D394 7000C794 93A50023 */ lbu $a1, 0x23($sp) -/* 00D398 7000C798 0C0054D0 */ jal osEepromWrite -/* 00D39C 7000C79C 8FA60024 */ lw $a2, 0x24($sp) -/* 00D3A0 7000C7A0 0C0031AF */ jal controller_7000C6BC -/* 00D3A4 7000C7A4 AFA2001C */ sw $v0, 0x1c($sp) -/* 00D3A8 7000C7A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D3AC 7000C7AC 8FA2001C */ lw $v0, 0x1c($sp) -/* 00D3B0 7000C7B0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D3B4 7000C7B4 03E00008 */ jr $ra -/* 00D3B8 7000C7B8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 save_7000C7BC(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { - s32 sp1C; - - // Node 0 - controller_7000C67C(); - sp1C = osEepromLongRead(&contdemoMesgMQ, arg8, arg9, argA); - controller_7000C6BC(); - return; - // (possible return value: sp1C) -} -#else -GLOBAL_ASM( -.text -glabel save_7000C7BC -/* 00D3BC 7000C7BC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D3C0 7000C7C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D3C4 7000C7C4 AFA40020 */ sw $a0, 0x20($sp) -/* 00D3C8 7000C7C8 AFA50024 */ sw $a1, 0x24($sp) -/* 00D3CC 7000C7CC 0C00319F */ jal controller_7000C67C -/* 00D3D0 7000C7D0 AFA60028 */ sw $a2, 0x28($sp) -/* 00D3D4 7000C7D4 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00D3D8 7000C7D8 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00D3DC 7000C7DC 93A50023 */ lbu $a1, 0x23($sp) -/* 00D3E0 7000C7E0 8FA60024 */ lw $a2, 0x24($sp) -/* 00D3E4 7000C7E4 0C005608 */ jal osEepromLongRead -/* 00D3E8 7000C7E8 8FA70028 */ lw $a3, 0x28($sp) -/* 00D3EC 7000C7EC 0C0031AF */ jal controller_7000C6BC -/* 00D3F0 7000C7F0 AFA2001C */ sw $v0, 0x1c($sp) -/* 00D3F4 7000C7F4 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D3F8 7000C7F8 8FA2001C */ lw $v0, 0x1c($sp) -/* 00D3FC 7000C7FC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D400 7000C800 03E00008 */ jr $ra -/* 00D404 7000C804 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 save_7000C808(s32 arg0, s32 arg1, ? arg2, ? arg8, ? arg9, ? argA) { - s32 sp1C; - - // Node 0 - controller_7000C67C(); - sp1C = osEepromLongWrite(&contdemoMesgMQ, arg8, arg9, argA); - controller_7000C6BC(); - return; - // (possible return value: sp1C) -} -#else -GLOBAL_ASM( -.text -glabel save_7000C808 -/* 00D408 7000C808 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00D40C 7000C80C AFBF0014 */ sw $ra, 0x14($sp) -/* 00D410 7000C810 AFA40020 */ sw $a0, 0x20($sp) -/* 00D414 7000C814 AFA50024 */ sw $a1, 0x24($sp) -/* 00D418 7000C818 0C00319F */ jal controller_7000C67C -/* 00D41C 7000C81C AFA60028 */ sw $a2, 0x28($sp) -/* 00D420 7000C820 3C048006 */ lui $a0, %hi(contdemoMesgMQ) -/* 00D424 7000C824 24845350 */ addiu $a0, %lo(contdemoMesgMQ) # addiu $a0, $a0, 0x5350 -/* 00D428 7000C828 93A50023 */ lbu $a1, 0x23($sp) -/* 00D42C 7000C82C 8FA60024 */ lw $a2, 0x24($sp) -/* 00D430 7000C830 0C005658 */ jal osEepromLongWrite -/* 00D434 7000C834 8FA70028 */ lw $a3, 0x28($sp) -/* 00D438 7000C838 0C0031AF */ jal controller_7000C6BC -/* 00D43C 7000C83C AFA2001C */ sw $v0, 0x1c($sp) -/* 00D440 7000C840 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D444 7000C844 8FA2001C */ lw $v0, 0x1c($sp) -/* 00D448 7000C848 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00D44C 7000C84C 03E00008 */ jr $ra -/* 00D450 7000C850 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 controller_7000C854(s32 arg0, s32 arg1) { - s32 temp_v1; - void *temp_a0; - s32 temp_f8; - - // Node 0 - temp_v1 = (arg0 * 4); - if (disable_all_rumble == 0) - { - // Node 1 - if (*(&controller_1_rumble_inserted + temp_v1) > 0) - { - // Node 2 - temp_a0 = (temp_v1 + &controller_1_rumble_duration); - temp_f8 = (s32) (arg1 * 60.0f); - if (*temp_a0 < temp_f8) - { - // Node 3 - *temp_a0 = temp_f8; - } - // Node 4 - if (*(&controller_1_rumble_state + temp_v1) == 0) - { - // Node 5 - *(&controller_1_rumble_pulse + temp_v1) = 1; - return; - // (possible return value: temp_f8) - } - } - } - // (function likely void) -} - -#else -GLOBAL_ASM( -.text -glabel controller_7000C854 -/* 00D454 7000C854 3C0E8002 */ lui $t6, %hi(disable_all_rumble) -/* 00D458 7000C858 8DCE6924 */ lw $t6, %lo(disable_all_rumble)($t6) -/* 00D45C 7000C85C 44856000 */ mtc1 $a1, $f12 -/* 00D460 7000C860 00041880 */ sll $v1, $a0, 2 -/* 00D464 7000C864 15C0001B */ bnez $t6, .L7000C8D4 -/* 00D468 7000C868 3C0F8002 */ lui $t7, %hi(controller_1_rumble_inserted) -/* 00D46C 7000C86C 01E37821 */ addu $t7, $t7, $v1 -/* 00D470 7000C870 8DEF68D8 */ lw $t7, %lo(controller_1_rumble_inserted)($t7) -/* 00D474 7000C874 3C098002 */ lui $t1, %hi(controller_1_rumble_state) -/* 00D478 7000C878 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 00D47C 7000C87C 19E00015 */ blez $t7, .L7000C8D4 -/* 00D480 7000C880 01234821 */ addu $t1, $t1, $v1 -/* 00D484 7000C884 44812000 */ mtc1 $at, $f4 -/* 00D488 7000C888 3C188002 */ lui $t8, %hi(controller_1_rumble_duration) -/* 00D48C 7000C88C 271868F8 */ addiu $t8, %lo(controller_1_rumble_duration) # addiu $t8, $t8, 0x68f8 -/* 00D490 7000C890 46046182 */ mul.s $f6, $f12, $f4 -/* 00D494 7000C894 00782021 */ addu $a0, $v1, $t8 -/* 00D498 7000C898 8C880000 */ lw $t0, ($a0) -/* 00D49C 7000C89C 240A0001 */ li $t2, 1 -/* 00D4A0 7000C8A0 4600320D */ trunc.w.s $f8, $f6 -/* 00D4A4 7000C8A4 44024000 */ mfc1 $v0, $f8 -/* 00D4A8 7000C8A8 00000000 */ nop -/* 00D4AC 7000C8AC 0102082A */ slt $at, $t0, $v0 -/* 00D4B0 7000C8B0 10200002 */ beqz $at, .L7000C8BC -/* 00D4B4 7000C8B4 00000000 */ nop -/* 00D4B8 7000C8B8 AC820000 */ sw $v0, ($a0) -.L7000C8BC: -/* 00D4BC 7000C8BC 8D2968E8 */ lw $t1, %lo(controller_1_rumble_state)($t1) -/* 00D4C0 7000C8C0 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) -/* 00D4C4 7000C8C4 00230821 */ addu $at, $at, $v1 -/* 00D4C8 7000C8C8 15200002 */ bnez $t1, .L7000C8D4 -/* 00D4CC 7000C8CC 00000000 */ nop -/* 00D4D0 7000C8D0 AC2A6908 */ sw $t2, %lo(controller_1_rumble_pulse)($at) -.L7000C8D4: -/* 00D4D4 7000C8D4 03E00008 */ jr $ra -/* 00D4D8 7000C8D8 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void reset_cont_rumble_detect(void) { - controller_1_rumble_state = 1; - controller_1_rumble_pulse = 0; - controller_2_rumble_state = 1; - controller_2_rumble_pulse = 0; - controller_3_rumble_state = 1; - controller_3_rumble_pulse = 0; - controller_4_rumble_state = 1; - controller_4_rumble_pulse = 0; -} -#else #ifdef VERSION_US -GLOBAL_ASM( -.text -glabel reset_cont_rumble_detect -/* 00D4DC 7000C8DC 240E0001 */ li $t6, 1 -/* 00D4E0 7000C8E0 3C018002 */ lui $at, %hi(controller_1_rumble_state) -/* 00D4E4 7000C8E4 AC2E68E8 */ sw $t6, %lo(controller_1_rumble_state)($at) -/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) -/* 00D4EC 7000C8EC AC206908 */ sw $zero, %lo(controller_1_rumble_pulse)($at) -/* 00D4F0 7000C8F0 3C018002 */ lui $at, %hi(controller_2_rumble_state) -/* 00D4F4 7000C8F4 240F0001 */ li $t7, 1 -/* 00D4F8 7000C8F8 AC2F68EC */ sw $t7, %lo(controller_2_rumble_state)($at) -/* 00D4FC 7000C8FC 3C018002 */ lui $at, %hi(controller_2_rumble_pulse) -/* 00D500 7000C900 AC20690C */ sw $zero, %lo(controller_2_rumble_pulse)($at) -/* 00D504 7000C904 3C018002 */ lui $at, %hi(controller_3_rumble_state) -/* 00D508 7000C908 24180001 */ li $t8, 1 -/* 00D50C 7000C90C AC3868F0 */ sw $t8, %lo(controller_3_rumble_state)($at) -/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) -/* 00D514 7000C914 AC206910 */ sw $zero, %lo(controller_3_rumble_pulse)($at) -/* 00D518 7000C918 3C018002 */ lui $at, %hi(controller_4_rumble_state) -/* 00D51C 7000C91C 24190001 */ li $t9, 1 -/* 00D520 7000C920 AC3968F4 */ sw $t9, %lo(controller_4_rumble_state)($at) -/* 00D524 7000C924 3C018002 */ lui $at, %hi( controller_4_rumble_pulse) -/* 00D528 7000C928 03E00008 */ jr $ra -/* 00D52C 7000C92C AC206914 */ sw $zero, %lo( controller_4_rumble_pulse)($at) -) + g_ContRumblePakCurrentState[i] = RUMBLEPAKSTATE_ON; + g_ContRumblePakTargetState[i] = RUMBLEPAKSTATE_OFF; +#else if VERSION_JP + g_ContRumblePakTargetState[i] = RUMBLEPAKSTATE_UNKNOWN; #endif - -#ifdef VERSION_JP -GLOBAL_ASM( -.text -glabel reset_cont_rumble_detect -/* 00D4E8 7000C8E8 3C018002 */ lui $at, %hi(controller_1_rumble_pulse) -/* 00D4F4 7000C8F4 240F0001 */ li $t7, 2 -/* 00D4DC 7000C8DC 240E0001 */ li $t6, 2 -/* 00D500 7000C900 AC20690C */ sw $t7, %lo(controller_2_rumble_pulse)($at) -/* 00D4EC 7000C8EC AC206908 */ sw $t6, %lo(controller_1_rumble_pulse)($at) -/* 00D510 7000C910 3C018002 */ lui $at, %hi(controller_3_rumble_pulse) -/* 00D508 7000C908 24180001 */ li $t8, 2 -/* 00D51C 7000C91C 24190001 */ li $t9, 2 -/* 00D514 7000C914 AC206910 */ sw $t9, %lo(controller_4_rumble_pulse)($at) -/* 00D528 7000C928 03E00008 */ jr $ra -/* 00D52C 7000C92C AC206914 */ sw $t8, %lo( controller_3_rumble_pulse)($at) -) -#endif - -#endif - - - - - -#ifdef NONMATCHING -void controller_7000C930(s32 arg0) { - // Node 0 - (void *)0x80020000->unk68C4 = (s32) ((arg0 * 0x1fc) + &controller_input_index); - return; - // (function likely void) + } } -#else -GLOBAL_ASM( -.text -glabel controller_7000C930 -/* 00D530 7000C930 000471C0 */ sll $t6, $a0, 7 -/* 00D534 7000C934 01C47023 */ subu $t6, $t6, $a0 -/* 00D538 7000C938 3C0F8006 */ lui $t7, %hi(controller_input_index) -/* 00D53C 7000C93C 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 -/* 00D540 7000C940 000E7080 */ sll $t6, $t6, 2 -/* 00D544 7000C944 01CFC021 */ addu $t8, $t6, $t7 -/* 00D548 7000C948 3C018002 */ lui $at, %hi(ptr_current_point_in_controller_input_index) -/* 00D54C 7000C94C 03E00008 */ jr $ra -/* 00D550 7000C950 AC3868C4 */ sw $t8, %lo(ptr_current_point_in_controller_input_index)($at) -) -#endif - - - - -#ifdef NONMATCHING -s32 controller_7000C954(void) { - // (possible return value: ((s32) (ptr_current_point_in_controller_input_index - &controller_input_index) / 0x1fc)) +void joySetContDataIndex(s32 index) +{ + g_ContDataPtr = &g_ContData[index]; } -#else -GLOBAL_ASM( -.text -glabel controller_7000C954 -/* 00D554 7000C954 3C0E8002 */ lui $t6, %hi(ptr_current_point_in_controller_input_index) -/* 00D558 7000C958 8DCE68C4 */ lw $t6, %lo(ptr_current_point_in_controller_input_index)($t6) -/* 00D55C 7000C95C 3C0F8006 */ lui $t7, %hi(controller_input_index) -/* 00D560 7000C960 25EF4F30 */ addiu $t7, %lo(controller_input_index) # addiu $t7, $t7, 0x4f30 -/* 00D564 7000C964 240101FC */ li $at, 508 -/* 00D568 7000C968 01CF1023 */ subu $v0, $t6, $t7 -/* 00D56C 7000C96C 0041001A */ div $zero, $v0, $at -/* 00D570 7000C970 00001012 */ mflo $v0 -/* 00D574 7000C974 03E00008 */ jr $ra -/* 00D578 7000C978 00000000 */ nop -) -#endif - - - +s32 joyGetContDataIndex(void) +{ + return (g_ContDataPtr - g_ContData); +} diff --git a/src/joy.h b/src/joy.h index 09498a2..38305fb 100644 --- a/src/joy.h +++ b/src/joy.h @@ -2,8 +2,35 @@ #define _JOY_H_ #include "ultra64.h" -void *joyInitDebugNoticeList(void); -s32 get_attached_controller_count(void); -s32 get_controller_buttons_pressed(s8 arg0, s32 arg1); + +struct contsample { + OSContPad pads[MAXCONTROLLERS]; +}; + +typedef s32 (*contplaybackfunc)(struct contsample*, s32); +typedef void (*contrecordfunc)(struct contsample*, s32, s32); + +void joyInit(void); +void joyCheckStatusThreadSafe(void); +s8 joyGetControllerCount(void); +u8 joyGetConnectedControllers(void); +void joySetPlaybackFunc(contplaybackfunc func, s32 controllercount); +void joySetRecordFunc(contrecordfunc func); +void joyConsumeSamplesWrapper(void); +void joyPoll(void); +s8 joyGetStickX(s8 contpadnum); +s8 joy7000C174(s8 contpadnum); +s8 joyGetStickY(s8 contpadnum); +s8 joy7000C284(s8 contpadnum); +u16 joyGetButtons(s8 contpadnum, u16 mask); +u16 joyGetButtonsPressedThisFrame(s8 contpadnum, u16 mask); +s32 joyGetStickXInRange(s8 contpadnum, s32 rangemin, s32 rangemax); +s32 joyGetStickYInRange(s8 contpadnum, s32 rangemin, s32 rangemax); +s32 joyGamePakProbe(void); +s32 joyGamePakLongRead(u8 address, u8 *buffer, s32 nbytes); +s32 joyGamePakLongWrite(u8 address, u8 *buffer, s32 nbytes); +void joyRumblePakStart(s32 controller, f32 duration); +void joyRumblePakStop(void); +void joySetContDataIndex(s32 index); #endif diff --git a/src/libultra/libultra_internal.h b/src/libultra/libultra_internal.h index 5bb434d..8cb3ad5 100644 --- a/src/libultra/libultra_internal.h +++ b/src/libultra/libultra_internal.h @@ -76,6 +76,7 @@ void __osPiGetAccess(void); void __osSetSR(u32); u32 __osGetSR(void); void __osSetFpcCsr(u32); +u32 __osGetFpcCsr(void); s32 __osSiRawReadIo(void *, u32 *); s32 __osSiRawWriteIo(void *, u32); s32 osPiRawReadIo(u32 a0, u32 *a1); diff --git a/src/mema.c b/src/mema.c index 8bb4b3d..24393e4 100644 --- a/src/mema.c +++ b/src/mema.c @@ -2,623 +2,215 @@ #include "mema.h" #include "deb.h" -/** - * @file mema.c - * This file contains memory allocation code. - * - */ +s32 g_MemoryAllocationBuffer; +s32 g_MemoryAllocationBufferSize; +allocation g_MemoryAllocations[512]; +void *g_MemoryAllocationDebugData = NULL; -//bss -void *ptr_model_room_buf_secondary; -u32 size_modelroom_buf; -struct s_mem_alloc_table ptr_table_allocated_mem_blocks; - -//data -void *ptr_mema_c_debug_notice_list = 0; - - - - - - -void memaSwap(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { - s32 temp_v0; - s32 temp_v1; - - temp_v0 = a->addr; - temp_v1 = a->size; - a->addr = (s32) b->addr; - a->size = (s32) b->size; - b->addr = temp_v0; - b->size = temp_v1; +// Swap two allocations. +void memaSwap(allocation *a, allocation *b) { + u32 tempaddr = a->addr; + u32 tempsize = a->size; + a->addr = b->addr; + a->size = b->size; + b->addr = tempaddr; + b->size = tempsize; } -void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b) { - a->size = (s32) (a->size + b->size); +// Merge two allocations. +void memaMerge(allocation *a, allocation *b) { + a->size = (a->size + b->size); b->addr = 0; b->size = 0; } - - - - - -#ifdef NONMATCHING -u32 memaSortMergeEntries(s_mem_alloc_table *param_1) -{ - u32 temp_s0; - u32 temp_s0_2; - u32 temp_s4; - void *phi_s0; - u32 phi_s2; - void *phi_s1; - void *phi_s0_2; - ? phi_s3; - void *phi_s0_3; - ? phi_s3_2; - u32 phi_v0; - ? phi_s3_3; - - temp_s0 = arg0 + 0x10; - temp_s4 = arg0 + 0xfe8; - phi_s0 = temp_s0; - phi_s2 = 0U; - phi_s1 = arg0 + 8; - phi_s3 = 0; - phi_s3_3 = 0; - if (temp_s4 >= temp_s0) - { -loop_1: - phi_s0_2 = phi_s0; - phi_s2 = phi_s2; - phi_s1 = phi_s1; - phi_s3_2 = phi_s3_3; - if (phi_s0->unk4 != 0) - { - if ((u32) phi_s0->unk0 < (u32) phi_s2) - { - memaSwap(phi_s0, phi_s1); +// Do a single iteration over the allocations and attempt to +// merge adjacent ones. Return value indicates if there were +// any merges. +s32 memaIterateAndMergeInternal(allocation *allocations) { + s32 any = FALSE; + allocation *prev = &allocations[1]; + allocation *curr = &allocations[2]; + allocation *last = &allocations[509]; + u32 addr = 0; + while (curr <= last) { + if (curr->size != 0) { + if (curr->addr < addr) { + memaSwap(curr, prev); } - phi_s0_3 = phi_s0; - phi_v0 = phi_s0->unk0; - phi_s3_2 = phi_s3_3; - if (phi_s0->unk0 == (phi_s1->unk4 + phi_s2)) - { - memaMerge(phi_s1, phi_s0); - phi_s0_3 = phi_s1; - phi_v0 = phi_s1->unk0; - phi_s3_2 = 1; + if ((prev->size + addr) == curr->addr) { + memaMerge(prev, curr); + curr = prev; + any = TRUE; } - phi_s0_2 = phi_s0_3; - phi_s2 = phi_v0; - phi_s1 = phi_s0_3; - } - temp_s0_2 = phi_s0_2 + 8; - phi_s0 = temp_s0_2; - phi_s3 = phi_s3_2; - phi_s3_3 = phi_s3_2; - if (temp_s4 >= temp_s0_2) - { - goto loop_1; + prev = curr; + addr = curr->addr; } + curr++; } - return phi_s3; -} -#else -GLOBAL_ASM( -.text -glabel memaSortMergeEntries -/* 00A650 70009A50 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 00A654 70009A54 AFB40028 */ sw $s4, 0x28($sp) -/* 00A658 70009A58 AFB00018 */ sw $s0, 0x18($sp) -/* 00A65C 70009A5C 24900010 */ addiu $s0, $a0, 0x10 -/* 00A660 70009A60 24940FE8 */ addiu $s4, $a0, 0xfe8 -/* 00A664 70009A64 AFB30024 */ sw $s3, 0x24($sp) -/* 00A668 70009A68 AFB20020 */ sw $s2, 0x20($sp) -/* 00A66C 70009A6C AFB1001C */ sw $s1, 0x1c($sp) -/* 00A670 70009A70 0290082B */ sltu $at, $s4, $s0 -/* 00A674 70009A74 AFBF002C */ sw $ra, 0x2c($sp) -/* 00A678 70009A78 00009825 */ move $s3, $zero -/* 00A67C 70009A7C 24910008 */ addiu $s1, $a0, 8 -/* 00A680 70009A80 1420001C */ bnez $at, .L70009AF4 -/* 00A684 70009A84 00009025 */ move $s2, $zero -/* 00A688 70009A88 8E0E0004 */ lw $t6, 4($s0) -.L70009A8C: -/* 00A68C 70009A8C 51C00016 */ beql $t6, $zero, .L70009AE8 -/* 00A690 70009A90 26100008 */ addiu $s0, $s0, 8 -/* 00A694 70009A94 8E020000 */ lw $v0, ($s0) -/* 00A698 70009A98 02002025 */ move $a0, $s0 -/* 00A69C 70009A9C 0052082B */ sltu $at, $v0, $s2 -/* 00A6A0 70009AA0 50200005 */ beql $at, $zero, .L70009AB8 -/* 00A6A4 70009AA4 8E2F0004 */ lw $t7, 4($s1) -/* 00A6A8 70009AA8 0C002684 */ jal memaSwap -/* 00A6AC 70009AAC 02202825 */ move $a1, $s1 -/* 00A6B0 70009AB0 8E020000 */ lw $v0, ($s0) -/* 00A6B4 70009AB4 8E2F0004 */ lw $t7, 4($s1) -.L70009AB8: -/* 00A6B8 70009AB8 02202025 */ move $a0, $s1 -/* 00A6BC 70009ABC 02002825 */ move $a1, $s0 -/* 00A6C0 70009AC0 01F2C021 */ addu $t8, $t7, $s2 -/* 00A6C4 70009AC4 54580006 */ bnel $v0, $t8, .L70009AE0 -/* 00A6C8 70009AC8 02008825 */ move $s1, $s0 -/* 00A6CC 70009ACC 0C00268D */ jal memaMerge -/* 00A6D0 70009AD0 24130001 */ li $s3, 1 -/* 00A6D4 70009AD4 02208025 */ move $s0, $s1 -/* 00A6D8 70009AD8 8E220000 */ lw $v0, ($s1) -/* 00A6DC 70009ADC 02008825 */ move $s1, $s0 -.L70009AE0: -/* 00A6E0 70009AE0 00409025 */ move $s2, $v0 -/* 00A6E4 70009AE4 26100008 */ addiu $s0, $s0, 8 -.L70009AE8: -/* 00A6E8 70009AE8 0290082B */ sltu $at, $s4, $s0 -/* 00A6EC 70009AEC 5020FFE7 */ beql $at, $zero, .L70009A8C -/* 00A6F0 70009AF0 8E0E0004 */ lw $t6, 4($s0) -.L70009AF4: -/* 00A6F4 70009AF4 8FBF002C */ lw $ra, 0x2c($sp) -/* 00A6F8 70009AF8 02601025 */ move $v0, $s3 -/* 00A6FC 70009AFC 8FB30024 */ lw $s3, 0x24($sp) -/* 00A700 70009B00 8FB00018 */ lw $s0, 0x18($sp) -/* 00A704 70009B04 8FB1001C */ lw $s1, 0x1c($sp) -/* 00A708 70009B08 8FB20020 */ lw $s2, 0x20($sp) -/* 00A70C 70009B0C 8FB40028 */ lw $s4, 0x28($sp) -/* 00A710 70009B10 03E00008 */ jr $ra -/* 00A714 70009B14 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - - - -void memaSortMergeAllEntries(void) -{ - while (memaSortMergeEntries(&ptr_table_allocated_mem_blocks) != 0) { - ; - } + return any; } +// Do multiple merge iterations until there are no +// mergable pairs left. +void memaMergeAll(void) { + while (memaIterateAndMergeInternal(&g_MemoryAllocations)); +} +// Loop through all allocations and attempt to find a free one. Alternatively, +// if two can be merged, then do that and use the leftover one. If none is found, +// then use the smallest allocation in the buffer. +allocation *memaSearch(allocation *allocations) { + allocation *curr = &allocations[2]; + allocation *best; + u32 min; + s32 i; + for (i = 0; i < 508; i++) { + while (curr <= &allocations[509]) { + if (curr->size == 0) { + return curr; + } + if ((u32)curr[1].addr < (u32)curr[0].addr) { + memaSwap(&curr[0], &curr[1]); + } + if (curr[1].addr == (curr[0].size + curr[0].addr)) { + curr[0].size += curr[1].size; + curr[1].addr = 0; + curr[1].size = 0; + return &curr[1]; + } + curr++; + } + curr = &allocations[2]; + } + min = 0xFFFFFFFF; + best = curr; + while (curr <= &allocations[509]) { + if (curr->size < min) { + best = curr; + min = curr->size; + } + curr++; + } + return best; +} + +// Register a new allocation. Start by calculating a suitable index to start search from +// based on the relative address in the buffer. Then look forward and backwards +// for a free allocation. If none is found, then use the more advanced memaSearch method. +void memaRegisterInternal(s32 addr, s32 size) { + s32 index = ((addr - g_MemoryAllocationBuffer) * 508) / g_MemoryAllocationBufferSize; + allocation *curr = &g_MemoryAllocations[index + 2]; + while (curr->size != 0) { + curr++; + } + if (curr->addr == -1) { + curr = &g_MemoryAllocations[index + 2]; + while (curr->size != 0) { + curr--; + } + if (curr->addr == 0) { + curr = memaSearch(g_MemoryAllocations); + } + } + curr->addr = addr; + curr->size = size; +} + +// Initialize the (removed) debug features. +void memaInit(void) { + debTryAdd(&g_MemoryAllocationDebugData, "mema_c_debug"); +} + +// Initialize g_MemoryAllocations given a new buffer. The first +// and last two allocations serve as sentinels. +void memaSetBuffer(s32 buffer, s32 size) { + allocation *curr; + g_MemoryAllocations[0].addr = 0; + g_MemoryAllocations[0].size = 0; + g_MemoryAllocations[1].addr = 0; + g_MemoryAllocations[1].size = 0; + g_MemoryAllocations[510].addr = -1; + g_MemoryAllocations[510].size = 0; + g_MemoryAllocations[511].addr = -1; + g_MemoryAllocations[511].size = 0xFFFFFFFF; + for (curr = &g_MemoryAllocations[2]; curr <= &g_MemoryAllocations[509]; curr++) { + curr->addr = 0; + curr->size = 0; + } + g_MemoryAllocations[2].addr = g_MemoryAllocationBuffer = buffer; + g_MemoryAllocations[2].size = g_MemoryAllocationBufferSize = size; +} + +void memaIterateAndMerge(void) { + memaIterateAndMergeInternal(&g_MemoryAllocations); +} #ifdef NONMATCHING -s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1) -{ - u32 entrySize; - s_mem_alloc_entry *pAStart; - s_mem_alloc_entry *a; - int iVar1; - u32 invalidSize; - s_mem_alloc_entry *pStart; - s_mem_alloc_entry *pEnd; - int count; - - pStart = param_1->entries + 2; - pEnd = param_1->entries + 0x1fd; - count = 0; - pAStart = pStart; - while( 1 ) { - while (a = pAStart, pEnd < a) { - count = count + 1; - pAStart = pStart; - if (0x1fb < count) { - if (pEnd < pStart) { - return pStart; +// Attempt to free up some memory. Start by looking through the first 16 allocations +// for a suitable one. If none is found, then look through the rest for any that are +// large enough. If this also fails, then do 8 merge iterations and then look through +// entire buffer again. If successful, return the address to the freed memory, otherwise 0. +s32 memaFree(u32 amount) { + s32 addr; + u32 diff; + s32 i; + allocation *curr = &g_MemoryAllocations[2]; + allocation *best = NULL; + for (i = 0; i < 16; i++, curr++) { + if (curr->size >= amount) { + if (curr->addr == -1) { + break; + } + diff = (curr->size - amount); + if (diff < 0xFFFFFFFF) { + best = curr; + if ((diff < 64) || (diff < (amount / 4))) { + break; + } + } } - invalidSize = 0xffffffff; - entrySize = param_1->entries[2].size; - while( 1 ) { - a = pStart; - if (invalidSize <= entrySize) { - entrySize = invalidSize; - a = pAStart; - } - if (pEnd < pStart + 1) break; - invalidSize = entrySize; - entrySize = pStart[1].size; - pStart = pStart + 1; - pAStart = a; + } + if (best == NULL) { + while (curr->size < amount) { + curr++; } - return a; - } - } - iVar1 = a->size; - if (iVar1 == 0) break; - entrySize = a[1].addr; - if (entrySize < (u32)a->addr) { - memaSwap((u8 *)a,(u8 *)(a + 1)); - iVar1 = a->size; - entrySize = a[1].addr; - invalidSize = a->addr + iVar1; - } - else { - invalidSize = a->addr + iVar1; - } - pAStart = a + 1; - if (entrySize == invalidSize) { - count = a[1].size; - a[1].addr = 0; - a[1].size = 0; - a->size = iVar1 + count; - return a + 1; - } - } - return a; -} -#else -GLOBAL_ASM( -.text -glabel memaFindOpening -/* 00A760 70009B60 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 00A764 70009B64 AFB2001C */ sw $s2, 0x1c($sp) -/* 00A768 70009B68 AFB30020 */ sw $s3, 0x20($sp) -/* 00A76C 70009B6C AFB10018 */ sw $s1, 0x18($sp) -/* 00A770 70009B70 AFB00014 */ sw $s0, 0x14($sp) -/* 00A774 70009B74 24920010 */ addiu $s2, $a0, 0x10 -/* 00A778 70009B78 AFBF0024 */ sw $ra, 0x24($sp) -/* 00A77C 70009B7C 02408025 */ move $s0, $s2 -/* 00A780 70009B80 24910FE8 */ addiu $s1, $a0, 0xfe8 -/* 00A784 70009B84 00009825 */ move $s3, $zero -/* 00A788 70009B88 0232082B */ sltu $at, $s1, $s2 -.L70009B8C: -/* 00A78C 70009B8C 54200020 */ bnezl $at, .L70009C10 -/* 00A790 70009B90 26730001 */ addiu $s3, $s3, 1 -.L70009B94: -/* 00A794 70009B94 8E040004 */ lw $a0, 4($s0) -/* 00A798 70009B98 26050008 */ addiu $a1, $s0, 8 -/* 00A79C 70009B9C 54800004 */ bnezl $a0, .L70009BB0 -/* 00A7A0 70009BA0 8E020008 */ lw $v0, 8($s0) -/* 00A7A4 70009BA4 1000002C */ b .L70009C58 -/* 00A7A8 70009BA8 02001025 */ move $v0, $s0 -/* 00A7AC 70009BAC 8E020008 */ lw $v0, 8($s0) -.L70009BB0: -/* 00A7B0 70009BB0 8E030000 */ lw $v1, ($s0) -/* 00A7B4 70009BB4 0043082B */ sltu $at, $v0, $v1 -/* 00A7B8 70009BB8 50200007 */ beql $at, $zero, .L70009BD8 -/* 00A7BC 70009BBC 00647021 */ addu $t6, $v1, $a0 -/* 00A7C0 70009BC0 0C002684 */ jal memaSwap -/* 00A7C4 70009BC4 02002025 */ move $a0, $s0 -/* 00A7C8 70009BC8 8E040004 */ lw $a0, 4($s0) -/* 00A7CC 70009BCC 8E020008 */ lw $v0, 8($s0) -/* 00A7D0 70009BD0 8E030000 */ lw $v1, ($s0) -/* 00A7D4 70009BD4 00647021 */ addu $t6, $v1, $a0 -.L70009BD8: -/* 00A7D8 70009BD8 144E0008 */ bne $v0, $t6, .L70009BFC -/* 00A7DC 70009BDC 26050008 */ addiu $a1, $s0, 8 -/* 00A7E0 70009BE0 8E0F000C */ lw $t7, 0xc($s0) -/* 00A7E4 70009BE4 AE000008 */ sw $zero, 8($s0) -/* 00A7E8 70009BE8 AE00000C */ sw $zero, 0xc($s0) -/* 00A7EC 70009BEC 008FC021 */ addu $t8, $a0, $t7 -/* 00A7F0 70009BF0 AE180004 */ sw $t8, 4($s0) -/* 00A7F4 70009BF4 10000018 */ b .L70009C58 -/* 00A7F8 70009BF8 00A01025 */ move $v0, $a1 -.L70009BFC: -/* 00A7FC 70009BFC 0225082B */ sltu $at, $s1, $a1 -/* 00A800 70009C00 1020FFE4 */ beqz $at, .L70009B94 -/* 00A804 70009C04 00A08025 */ move $s0, $a1 -/* 00A808 70009C08 02408025 */ move $s0, $s2 -/* 00A80C 70009C0C 26730001 */ addiu $s3, $s3, 1 -.L70009C10: -/* 00A810 70009C10 2A6101FC */ slti $at, $s3, 0x1fc -/* 00A814 70009C14 5420FFDD */ bnezl $at, .L70009B8C -/* 00A818 70009C18 0232082B */ sltu $at, $s1, $s2 -/* 00A81C 70009C1C 0232082B */ sltu $at, $s1, $s2 -/* 00A820 70009C20 2402FFFF */ li $v0, -1 -/* 00A824 70009C24 1420000B */ bnez $at, .L70009C54 -/* 00A828 70009C28 02401825 */ move $v1, $s2 -/* 00A82C 70009C2C 8E040004 */ lw $a0, 4($s0) -.L70009C30: -/* 00A830 70009C30 0082082B */ sltu $at, $a0, $v0 -/* 00A834 70009C34 50200004 */ beql $at, $zero, .L70009C48 -/* 00A838 70009C38 26100008 */ addiu $s0, $s0, 8 -/* 00A83C 70009C3C 02001825 */ move $v1, $s0 -/* 00A840 70009C40 00801025 */ move $v0, $a0 -/* 00A844 70009C44 26100008 */ addiu $s0, $s0, 8 -.L70009C48: -/* 00A848 70009C48 0230082B */ sltu $at, $s1, $s0 -/* 00A84C 70009C4C 5020FFF8 */ beql $at, $zero, .L70009C30 -/* 00A850 70009C50 8E040004 */ lw $a0, 4($s0) -.L70009C54: -/* 00A854 70009C54 00601025 */ move $v0, $v1 -.L70009C58: -/* 00A858 70009C58 8FBF0024 */ lw $ra, 0x24($sp) -/* 00A85C 70009C5C 8FB00014 */ lw $s0, 0x14($sp) -/* 00A860 70009C60 8FB10018 */ lw $s1, 0x18($sp) -/* 00A864 70009C64 8FB2001C */ lw $s2, 0x1c($sp) -/* 00A868 70009C68 8FB30020 */ lw $s3, 0x20($sp) -/* 00A86C 70009C6C 03E00008 */ jr $ra -/* 00A870 70009C70 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - - -#ifdef NONMATCHING -void memaAllocRoomBuffer(uint addr,uint size) -{ - int iVar1; - int iVar2; - s_mem_alloc_entry *psVar3; - s_mem_alloc_entry *psVar4; - s_mem_alloc_entry *psVar5; - s32 sVar6; - int iVar7; - - iVar7 = (addr - ptr_model_room_buf_secondary) * 0x1fc; - iVar2 = iVar7 / size_modelroom_buf; - iVar1 = ptr_table_allocated_mem_blocks.entries[iVar2 + 2].size; - psVar4 = ptr_table_allocated_mem_blocks.entries + iVar2 + 2; - if (size_modelroom_buf == 0) { - trap(0x1c00); - } - if ((size_modelroom_buf == -1) && (iVar7 == -0x80000000)) { - trap(0x1800); - } - if (iVar1 == 0) { - sVar6 = psVar4->addr; - psVar5 = psVar4; - } - else { - sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 3].size; - psVar3 = psVar4; - while (psVar5 = psVar3 + 1, sVar6 != 0) { - sVar6 = psVar3[2].size; - psVar3 = psVar5; - } - sVar6 = psVar5->addr; - } - if (sVar6 == -1) { - psVar5 = psVar4; - if (iVar1 != 0) { - sVar6 = ptr_table_allocated_mem_blocks.entries[iVar2 + 1].size; - while (psVar5 = psVar4 + -1, sVar6 != 0) { - sVar6 = psVar4[-2].size; - psVar4 = psVar5; + if (curr->addr == -1) { + for (i = 0; i < 8; i++) { + memaIterateAndMergeInternal(g_MemoryAllocations); + } + curr = &g_MemoryAllocations[2]; + while (curr->size < amount) { + curr++; + } + if (curr->addr == -1) { + return 0; } } - if (psVar5->addr == 0) { - psVar5 = (s_mem_alloc_entry *)memaFindOpening(&ptr_table_allocated_mem_blocks); - } } - psVar5->addr = addr; - psVar5->size = size; - return; + addr = curr->addr; + curr->addr += amount; + curr->size -= amount; + if (curr->size == 0) { + curr->addr = 0; + } + return addr; } #else GLOBAL_ASM( .text -glabel memaAllocRoomBuffer -/* 00A874 70009C74 3C0F8006 */ lui $t7, %hi(ptr_model_room_buf_secondary) -/* 00A878 70009C78 8DEF3C20 */ lw $t7, %lo(ptr_model_room_buf_secondary)($t7) -/* 00A87C 70009C7C 3C098006 */ lui $t1, %hi(size_modelroom_buf) -/* 00A880 70009C80 8D293C24 */ lw $t1, %lo(size_modelroom_buf)($t1) -/* 00A884 70009C84 008FC023 */ subu $t8, $a0, $t7 -/* 00A888 70009C88 0018C9C0 */ sll $t9, $t8, 7 -/* 00A88C 70009C8C 0338C823 */ subu $t9, $t9, $t8 -/* 00A890 70009C90 0019C880 */ sll $t9, $t9, 2 -/* 00A894 70009C94 0329001A */ div $zero, $t9, $t1 -/* 00A898 70009C98 00003012 */ mflo $a2 -/* 00A89C 70009C9C 3C0B8006 */ lui $t3, %hi(ptr_table_allocated_mem_blocks) -/* 00A8A0 70009CA0 256B3C28 */ addiu $t3, %lo(ptr_table_allocated_mem_blocks) # addiu $t3, $t3, 0x3c28 -/* 00A8A4 70009CA4 000650C0 */ sll $t2, $a2, 3 -/* 00A8A8 70009CA8 014B1021 */ addu $v0, $t2, $t3 -/* 00A8AC 70009CAC 8C480014 */ lw $t0, 0x14($v0) -/* 00A8B0 70009CB0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00A8B4 70009CB4 24470010 */ addiu $a3, $v0, 0x10 -/* 00A8B8 70009CB8 AFBF0014 */ sw $ra, 0x14($sp) -/* 00A8BC 70009CBC AFA40018 */ sw $a0, 0x18($sp) -/* 00A8C0 70009CC0 AFA5001C */ sw $a1, 0x1c($sp) -/* 00A8C4 70009CC4 00807025 */ move $t6, $a0 -/* 00A8C8 70009CC8 15200002 */ bnez $t1, .L70009CD4 -/* 00A8CC 70009CCC 00000000 */ nop -/* 00A8D0 70009CD0 0007000D */ break 7 -.L70009CD4: -/* 00A8D4 70009CD4 2401FFFF */ li $at, -1 -/* 00A8D8 70009CD8 15210004 */ bne $t1, $at, .L70009CEC -/* 00A8DC 70009CDC 3C018000 */ lui $at, 0x8000 -/* 00A8E0 70009CE0 17210002 */ bne $t9, $at, .L70009CEC -/* 00A8E4 70009CE4 00000000 */ nop -/* 00A8E8 70009CE8 0006000D */ break 6 -.L70009CEC: -/* 00A8EC 70009CEC 00E01825 */ move $v1, $a3 -/* 00A8F0 70009CF0 51000006 */ beql $t0, $zero, .L70009D0C -/* 00A8F4 70009CF4 8C6D0000 */ lw $t5, ($v1) -/* 00A8F8 70009CF8 8C6C000C */ lw $t4, 0xc($v1) -.L70009CFC: -/* 00A8FC 70009CFC 24630008 */ addiu $v1, $v1, 8 -/* 00A900 70009D00 5580FFFE */ bnezl $t4, .L70009CFC -/* 00A904 70009D04 8C6C000C */ lw $t4, 0xc($v1) -/* 00A908 70009D08 8C6D0000 */ lw $t5, ($v1) -.L70009D0C: -/* 00A90C 70009D0C 2401FFFF */ li $at, -1 -/* 00A910 70009D10 55A1000F */ bnel $t5, $at, .L70009D50 -/* 00A914 70009D14 8FB80018 */ lw $t8, 0x18($sp) -/* 00A918 70009D18 11000005 */ beqz $t0, .L70009D30 -/* 00A91C 70009D1C 00E01825 */ move $v1, $a3 -/* 00A920 70009D20 8C6EFFFC */ lw $t6, -4($v1) -.L70009D24: -/* 00A924 70009D24 2463FFF8 */ addiu $v1, $v1, -8 -/* 00A928 70009D28 55C0FFFE */ bnezl $t6, .L70009D24 -/* 00A92C 70009D2C 8C6EFFFC */ lw $t6, -4($v1) -.L70009D30: -/* 00A930 70009D30 8C6F0000 */ lw $t7, ($v1) -/* 00A934 70009D34 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks) -/* 00A938 70009D38 55E00005 */ bnezl $t7, .L70009D50 -/* 00A93C 70009D3C 8FB80018 */ lw $t8, 0x18($sp) -/* 00A940 70009D40 0C0026D8 */ jal memaFindOpening -/* 00A944 70009D44 24843C28 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks) # addiu $a0, $a0, 0x3c28 -/* 00A948 70009D48 00401825 */ move $v1, $v0 -/* 00A94C 70009D4C 8FB80018 */ lw $t8, 0x18($sp) -.L70009D50: -/* 00A950 70009D50 AC780000 */ sw $t8, ($v1) -/* 00A954 70009D54 8FB9001C */ lw $t9, 0x1c($sp) -/* 00A958 70009D58 AC790004 */ sw $t9, 4($v1) -/* 00A95C 70009D5C 8FBF0014 */ lw $ra, 0x14($sp) -/* 00A960 70009D60 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00A964 70009D64 03E00008 */ jr $ra -/* 00A968 70009D68 00000000 */ nop -) -#endif - - - -void memaInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&ptr_mema_c_debug_notice_list, "mema_c_debug"); -} - - - - -#ifdef NONMATCHING -void mempInitMallocTable(void *ptr_allocmem,u32 size) -{ - s_mem_alloc_entry *entry; - - ptr_table_allocated_mem_blocks.entries[510].addr = -1; - ptr_table_allocated_mem_blocks.entries[511].addr = -1; - ptr_table_allocated_mem_blocks.entries[0].addr = 0; - ptr_table_allocated_mem_blocks.entries[0].size = 0; - ptr_table_allocated_mem_blocks.entries[1].addr = 0; - ptr_table_allocated_mem_blocks.entries[1].size = 0; - ptr_table_allocated_mem_blocks.entries[510].size = 0; - ptr_table_allocated_mem_blocks.entries[511].size = -1; - for (entry = ptr_table_allocated_mem_blocks.entries[2]; (entry < (s_mem_alloc_entry *)(&ptr_table_allocated_mem_blocks.entries[0x1fd].addr+1)); ++entry) - { - entry->addr = 0; - entry->size = 0; - }; - ptr_model_room_buf_secondary = ptr_allocmem; - size_modelroom_buf = size; - ptr_table_allocated_mem_blocks.entries[2].addr = (s32)ptr_allocmem; - ptr_table_allocated_mem_blocks.entries[2].size = size; -} -#else -GLOBAL_ASM( -.text -glabel mempInitMallocTable -/* 00A998 70009D98 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) -/* 00A99C 70009D9C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 -/* 00A9A0 70009DA0 2406FFFF */ li $a2, -1 -/* 00A9A4 70009DA4 AC660FF0 */ sw $a2, 0xff0($v1) -/* 00A9A8 70009DA8 AC660FF8 */ sw $a2, 0xff8($v1) -/* 00A9AC 70009DAC 240EFFFF */ li $t6, -1 -/* 00A9B0 70009DB0 3C068006 */ lui $a2, %hi(ptr_table_allocated_mem_blocks + 0xFE8) -/* 00A9B4 70009DB4 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00A9B8 70009DB8 AC600000 */ sw $zero, ($v1) -/* 00A9BC 70009DBC AC600004 */ sw $zero, 4($v1) -/* 00A9C0 70009DC0 AC600008 */ sw $zero, 8($v1) -/* 00A9C4 70009DC4 AC60000C */ sw $zero, 0xc($v1) -/* 00A9C8 70009DC8 AC600FF4 */ sw $zero, 0xff4($v1) -/* 00A9CC 70009DCC AC6E0FFC */ sw $t6, 0xffc($v1) -/* 00A9D0 70009DD0 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 -/* 00A9D4 70009DD4 24C64C10 */ addiu $a2, %lo(ptr_table_allocated_mem_blocks + 0xFE8) # addiu $a2, $a2, 0x4c10 -.L70009DD8: -/* 00A9D8 70009DD8 24420008 */ addiu $v0, $v0, 8 -/* 00A9DC 70009DDC 00C2082B */ sltu $at, $a2, $v0 -/* 00A9E0 70009DE0 AC40FFF8 */ sw $zero, -8($v0) -/* 00A9E4 70009DE4 1020FFFC */ beqz $at, .L70009DD8 -/* 00A9E8 70009DE8 AC40FFFC */ sw $zero, -4($v0) -/* 00A9EC 70009DEC 3C028006 */ lui $v0, %hi(ptr_model_room_buf_secondary) -/* 00A9F0 70009DF0 3C068006 */ lui $a2, %hi(size_modelroom_buf) -/* 00A9F4 70009DF4 24C63C24 */ addiu $a2, %lo(size_modelroom_buf) # addiu $a2, $a2, 0x3c24 -/* 00A9F8 70009DF8 24423C20 */ addiu $v0, %lo(ptr_model_room_buf_secondary) # addiu $v0, $v0, 0x3c20 -/* 00A9FC 70009DFC AC440000 */ sw $a0, ($v0) -/* 00AA00 70009E00 AC640010 */ sw $a0, 0x10($v1) -/* 00AA04 70009E04 ACC50000 */ sw $a1, ($a2) -/* 00AA08 70009E08 03E00008 */ jr $ra -/* 00AA0C 70009E0C AC650014 */ sw $a1, 0x14($v1) -) -#endif - - -void mem_related_calls_sort_merge_entries(void) { - memaSortMergeEntries(&ptr_table_allocated_mem_blocks); -} - - - -#ifdef NONMATCHING -int mem_related_something_find_first(uint size) - -{ - uint uVar1; - s_mem_alloc_entry *psVar2; - uint uVar3; - s32 sVar4; - int iVar5; - int iVar6; - s_mem_alloc_entry *psVar7; - - psVar7 = ptr_table_allocated_mem_blocks.entries + 2; - uVar3 = 0xffffffff; - psVar2 = (s_mem_alloc_entry *)0x0; - iVar6 = 0; - do { - iVar6 = iVar6 + 1; - uVar1 = psVar7->size - size; - if (size <= (uint)psVar7->size) { - if ((psVar7->addr == -1) || - ((uVar1 < uVar3 && ((psVar2 = psVar7, uVar1 < 0x40 || (uVar3 = uVar1, uVar1 < size >> 2)))) - )) break; - } - psVar7 = psVar7 + 1; - } while (iVar6 != 0x10); - if (psVar2 == (s_mem_alloc_entry *)0x0) { - iVar6 = 0; - psVar2 = psVar7; - if ((uint)psVar7->size < size) { - uVar3 = psVar7[1].size; - while (psVar2 = psVar7 + 1, uVar3 < size) { - uVar3 = psVar7[2].size; - psVar7 = psVar2; - } - } - if (psVar2->addr == -1) { - psVar2 = ptr_table_allocated_mem_blocks.entries + 2; - do { - memaSortMergeEntries(&ptr_table_allocated_mem_blocks); - iVar6 = iVar6 + 1; - } while (iVar6 != 8); - uVar3 = ptr_table_allocated_mem_blocks.entries[3].size; - sVar4 = ptr_table_allocated_mem_blocks.entries[2].addr; - psVar7 = psVar2; - if ((uint)ptr_table_allocated_mem_blocks.entries[2].size < size) { - while (psVar2 = psVar7 + 1, uVar3 < size) { - uVar3 = psVar7[2].size; - psVar7 = psVar2; - } - sVar4 = psVar2->addr; - } - if (sVar4 == -1) { - return 0; - } - } - iVar6 = psVar2->addr; - } - else { - iVar6 = psVar2->addr; - } - iVar5 = psVar2->size - size; - psVar2->addr = iVar6 + size; - psVar2->size = iVar5; - if (iVar5 == 0) { - psVar2->addr = 0; - } - return iVar6; -} -#else -GLOBAL_ASM( -.text -glabel mem_related_something_find_first +glabel memaFree /* 00AA34 70009E34 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 00AA38 70009E38 AFB2001C */ sw $s2, 0x1c($sp) /* 00AA3C 70009E3C AFB10018 */ sw $s1, 0x18($sp) /* 00AA40 70009E40 00809025 */ move $s2, $a0 /* 00AA44 70009E44 AFB50028 */ sw $s5, 0x28($sp) /* 00AA48 70009E48 AFB00014 */ sw $s0, 0x14($sp) -/* 00AA4C 70009E4C 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AA4C 70009E4C 3C118006 */ lui $s1, %hi(g_MemoryAllocations + 0x10) /* 00AA50 70009E50 AFBF002C */ sw $ra, 0x2c($sp) /* 00AA54 70009E54 AFB40024 */ sw $s4, 0x24($sp) /* 00AA58 70009E58 AFB30020 */ sw $s3, 0x20($sp) -/* 00AA5C 70009E5C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +/* 00AA5C 70009E5C 26313C38 */ addiu $s1, %lo(g_MemoryAllocations + 0x10) # addiu $s1, $s1, 0x3c38 /* 00AA60 70009E60 2404FFFF */ li $a0, -1 /* 00AA64 70009E64 00002825 */ move $a1, $zero /* 00AA68 70009E68 00008025 */ move $s0, $zero @@ -654,7 +246,7 @@ glabel mem_related_something_find_first /* 00AAD4 70009ED4 24140008 */ li $s4, 8 /* 00AAD8 70009ED8 0312082B */ sltu $at, $t8, $s2 /* 00AADC 70009EDC 10200006 */ beqz $at, .L70009EF8 -/* 00AAE0 70009EE0 3C138006 */ lui $s3, %hi(ptr_table_allocated_mem_blocks) +/* 00AAE0 70009EE0 3C138006 */ lui $s3, %hi(g_MemoryAllocations) /* 00AAE4 70009EE4 8E39000C */ lw $t9, 0xc($s1) .L70009EE8: /* 00AAE8 70009EE8 26310008 */ addiu $s1, $s1, 8 @@ -663,13 +255,13 @@ glabel mem_related_something_find_first /* 00AAF4 70009EF4 8E39000C */ lw $t9, 0xc($s1) .L70009EF8: /* 00AAF8 70009EF8 8E280000 */ lw $t0, ($s1) -/* 00AAFC 70009EFC 26733C28 */ addiu $s3, %lo(ptr_table_allocated_mem_blocks) # addiu $s3, $s3, 0x3c28 +/* 00AAFC 70009EFC 26733C28 */ addiu $s3, %lo(g_MemoryAllocations) # addiu $s3, $s3, 0x3c28 /* 00AB00 70009F00 56A80017 */ bnel $s5, $t0, .L70009F60 /* 00AB04 70009F04 02202825 */ move $a1, $s1 -/* 00AB08 70009F08 3C118006 */ lui $s1, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AB0C 70009F0C 26313C38 */ addiu $s1, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s1, $s1, 0x3c38 +/* 00AB08 70009F08 3C118006 */ lui $s1, %hi(g_MemoryAllocations + 0x10) +/* 00AB0C 70009F0C 26313C38 */ addiu $s1, %lo(g_MemoryAllocations + 0x10) # addiu $s1, $s1, 0x3c38 .L70009F10: -/* 00AB10 70009F10 0C002694 */ jal memaSortMergeEntries +/* 00AB10 70009F10 0C002694 */ jal memaIterateAndMergeInternal /* 00AB14 70009F14 02602025 */ move $a0, $s3 /* 00AB18 70009F18 26100001 */ addiu $s0, $s0, 1 /* 00AB1C 70009F1C 1614FFFC */ bne $s0, $s4, .L70009F10 @@ -716,59 +308,36 @@ glabel mem_related_something_find_first ) #endif - - #ifdef NONMATCHING -s32 mem_related_something_find_first_0(s32 arg0, u32 arg1) -{ - s32 temp_a1; - u32 temp_a2; - u32 temp_t4; - s32 phi_a1; - void *phi_v1; - - if (-1 == ptr_table_allocated_mem_blocks + 0x10) - { - return 0; - } - phi_a1 = ptr_table_allocated_mem_blocks + 0x10; - phi_v1 = &ptr_table_allocated_mem_blocks + 0x10; -loop_2: - if (arg0 != phi_a1) - { -block_4: - temp_a1 = phi_v1->unk8; - phi_a1 = temp_a1; - phi_v1 = phi_v1 + 8; - if (-1 != temp_a1) - { - goto loop_2; +// Find the allocation of the given address and reduce its size by the given +// amount. If successful, return the same address, otherwise 0. +s32 memaShrink(s32 addr, u32 amount) { + allocation *curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + if ((curr->addr == addr) && (curr->size >= amount)) { + break; + } + curr++; + if (curr->addr == -1) { + return 0; } - return 0; } - temp_a2 = phi_v1->unk4; - if (temp_a2 < arg1) - { - goto block_4; + curr->addr += amount; + curr->size -= amount; + if (curr->size == 0) { + curr->addr = 0; } - temp_t4 = temp_a2 - arg1; - phi_v1->unk0 = (s32) (phi_a1 + arg1); - phi_v1->unk4 = temp_t4; - if (temp_t4 == 0) - { - phi_v1->unk0 = 0; - } - return arg0; + return addr; } #else GLOBAL_ASM( .text -glabel mem_related_something_find_first_0 -/* 00ABA8 70009FA8 3C198006 */ lui $t9, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00ABAC 70009FAC 8F393C38 */ lw $t9, %lo(ptr_table_allocated_mem_blocks + 0x10)($t9) -/* 00ABB0 70009FB0 3C188006 */ lui $t8, %hi(ptr_table_allocated_mem_blocks + 0x10) +glabel memaShrink +/* 00ABA8 70009FA8 3C198006 */ lui $t9, %hi(g_MemoryAllocations + 0x10) +/* 00ABAC 70009FAC 8F393C38 */ lw $t9, %lo(g_MemoryAllocations + 0x10)($t9) +/* 00ABB0 70009FB0 3C188006 */ lui $t8, %hi(g_MemoryAllocations + 0x10) /* 00ABB4 70009FB4 240AFFFF */ li $t2, -1 -/* 00ABB8 70009FB8 27183C38 */ addiu $t8, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t8, $t8, 0x3c38 +/* 00ABB8 70009FB8 27183C38 */ addiu $t8, %lo(g_MemoryAllocations + 0x10) # addiu $t8, $t8, 0x3c38 /* 00ABBC 70009FBC 00A03825 */ move $a3, $a1 /* 00ABC0 70009FC0 1159000C */ beq $t2, $t9, .L70009FF4 /* 00ABC4 70009FC4 03001825 */ move $v1, $t8 @@ -803,41 +372,26 @@ glabel mem_related_something_find_first_0 ) #endif - - - -void mem_related_model_room_buffers_0(u32 addr,u32 size) { - memaAllocRoomBuffer(addr, size); +void memaRegister(u32 addr, u32 size) { + memaRegisterInternal(addr, size); } - - - - #ifdef NONMATCHING -void *mem_related_allocated_table_related(void) -{ - void *temp_v1; - void *phi_v1; - - phi_v1 = &ptr_table_allocated_mem_blocks; -loop_1: - temp_v1 = phi_v1 + 0x20; - phi_v1 = temp_v1; - if (temp_v1 != &ptr_table_allocated_mem_blocks + 0xFE0) - { - goto loop_1; +// ac54: bnel v1,v0,0xac54 ~> r ac54: bnel v0,v1,0xac54 ~> +void mema7000A040(void) { + s32 i; + for (i = 0; &g_MemoryAllocations[i] != &g_MemoryAllocations[508]; i += 4) { + // Removed } - return &ptr_table_allocated_mem_blocks + 0xFE0; } #else GLOBAL_ASM( .text -glabel mem_related_allocated_table_related -/* 00AC40 7000A040 3C038006 */ lui $v1, %hi(ptr_table_allocated_mem_blocks) -/* 00AC44 7000A044 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0xFE0) -/* 00AC48 7000A048 24424C08 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0xFE0) # addiu $v0, $v0, 0x4c08 -/* 00AC4C 7000A04C 24633C28 */ addiu $v1, %lo(ptr_table_allocated_mem_blocks) # addiu $v1, $v1, 0x3c28 +glabel mema7000A040 +/* 00AC40 7000A040 3C038006 */ lui $v1, %hi(g_MemoryAllocations) +/* 00AC44 7000A044 3C028006 */ lui $v0, %hi(g_MemoryAllocations + 0xFE0) +/* 00AC48 7000A048 24424C08 */ addiu $v0, %lo(g_MemoryAllocations + 0xFE0) # addiu $v0, $v0, 0x4c08 +/* 00AC4C 7000A04C 24633C28 */ addiu $v1, %lo(g_MemoryAllocations) # addiu $v1, $v1, 0x3c28 /* 00AC50 7000A050 24630020 */ addiu $v1, $v1, 0x20 .L7000A054: /* 00AC54 7000A054 5462FFFF */ bnel $v1, $v0, .L7000A054 @@ -847,124 +401,86 @@ glabel mem_related_allocated_table_related ) #endif - +// Calculate the ratio between the sum of all allocations minus +// the largest one, and the sum of all allocations. +f32 memaCalculateNonLargestToTotalRatio(void) { + u32 tot = 0; + u32 max = 0; + allocation *curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + tot += curr->size; + if (max < curr->size) { + max = curr->size; + } + curr++; + } + if (tot == 0) { + return 0.0f; + } + return ((f32)(tot - max) / tot); +} #ifdef NONMATCHING -f32 mem_related_something_first_related(void) -{ - u32 temp_a1; - u32 temp_v0; - u32 phi_v1; - void *phi_a0; - u32 phi_v0; - u32 phi_v1_2; - u32 phi_v1_3; - u32 phi_v0_2; - - phi_v1 = 0U; - phi_a0 = &ptr_table_allocated_mem_blocks + 0x10; - phi_v0 = 0U; - phi_v1_2 = 0U; - phi_v0_2 = 0U; - if (-1 != ptr_table_allocated_mem_blocks + 0x10) - { -loop_1: - temp_a1 = phi_a0->unk4; - temp_v0 = phi_v0_2 + temp_a1; - phi_v1_3 = phi_v1; - if ((u32) phi_v1 < temp_a1) - { - phi_v1_3 = temp_a1; +// Print a list of allocations, in descending size order. Sizes are specified in +// kilobytes, rounded to nearest integer. Up to 200 allocations can be listed. +void memaDump(void) { + const char buffer[4096]; + const char *pos; + s32 count = 0; + u32 tot = 0; + s32 lim = (1 << 31); + allocation *curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + tot += curr->size; + curr++; + } + pos = buffer; + while (TRUE) { + u32 max = 0; + u32 acc = 0; + curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + if ((curr->size < lim) && (curr->size > max)) { + max = curr->size; + acc++; + } + curr++; } - phi_v1 = phi_v1_3; - phi_a0 = phi_a0 + 8; - phi_v0 = temp_v0; - phi_v1_2 = phi_v1_3; - phi_v0_2 = temp_v0; - if (-1 != phi_a0->unk8) - { - goto loop_1; + if (acc == 0) { + break; + } + curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + if (curr->size == max) { + if (count < 200) { + pos += sprintf(pos, "%d ", ((curr->size + 512) / 1024)); + } else if (count == 200) { + pos += sprintf(pos, "..."); + } + count++; + } + curr++; } } - if (phi_v0 == 0) - { - return 0; + if (count > 200) { + sprintf(pos, "[%d]", count); } - return (f32) (u32) (phi_v0 - phi_v1_2) / (f32) (u32) phi_v0; } #else -GLOBAL_ASM( -.text -glabel mem_related_something_first_related -/* 00AC64 7000A064 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AC68 7000A068 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) -/* 00AC6C 7000A06C 2406FFFF */ li $a2, -1 -/* 00AC70 7000A070 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AC74 7000A074 00001025 */ move $v0, $zero -/* 00AC78 7000A078 00001825 */ move $v1, $zero -/* 00AC7C 7000A07C 10CE000A */ beq $a2, $t6, .L7000A0A8 -/* 00AC80 7000A080 24843C38 */ addiu $a0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $a0, $a0, 0x3c38 -/* 00AC84 7000A084 8C850004 */ lw $a1, 4($a0) -.L7000A088: -/* 00AC88 7000A088 0065082B */ sltu $at, $v1, $a1 -/* 00AC8C 7000A08C 10200002 */ beqz $at, .L7000A098 -/* 00AC90 7000A090 00451021 */ addu $v0, $v0, $a1 -/* 00AC94 7000A094 00A01825 */ move $v1, $a1 -.L7000A098: -/* 00AC98 7000A098 8C8F0008 */ lw $t7, 8($a0) -/* 00AC9C 7000A09C 24840008 */ addiu $a0, $a0, 8 -/* 00ACA0 7000A0A0 54CFFFF9 */ bnel $a2, $t7, .L7000A088 -/* 00ACA4 7000A0A4 8C850004 */ lw $a1, 4($a0) -.L7000A0A8: -/* 00ACA8 7000A0A8 14400004 */ bnez $v0, .L7000A0BC -/* 00ACAC 7000A0AC 0043C023 */ subu $t8, $v0, $v1 -/* 00ACB0 7000A0B0 44800000 */ mtc1 $zero, $f0 -/* 00ACB4 7000A0B4 03E00008 */ jr $ra -/* 00ACB8 7000A0B8 00000000 */ nop - -.L7000A0BC: -/* 00ACBC 7000A0BC 44982000 */ mtc1 $t8, $f4 -/* 00ACC0 7000A0C0 44825000 */ mtc1 $v0, $f10 -/* 00ACC4 7000A0C4 07010005 */ bgez $t8, .L7000A0DC -/* 00ACC8 7000A0C8 468021A0 */ cvt.s.w $f6, $f4 -/* 00ACCC 7000A0CC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 00ACD0 7000A0D0 44814000 */ mtc1 $at, $f8 -/* 00ACD4 7000A0D4 00000000 */ nop -/* 00ACD8 7000A0D8 46083180 */ add.s $f6, $f6, $f8 -.L7000A0DC: -/* 00ACDC 7000A0DC 04410005 */ bgez $v0, .L7000A0F4 -/* 00ACE0 7000A0E0 46805420 */ cvt.s.w $f16, $f10 -/* 00ACE4 7000A0E4 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 00ACE8 7000A0E8 44819000 */ mtc1 $at, $f18 -/* 00ACEC 7000A0EC 00000000 */ nop -/* 00ACF0 7000A0F0 46128400 */ add.s $f16, $f16, $f18 -.L7000A0F4: -/* 00ACF4 7000A0F4 46103003 */ div.s $f0, $f6, $f16 -/* 00ACF8 7000A0F8 03E00008 */ jr $ra -/* 00ACFC 7000A0FC 00000000 */ nop -) -#endif - const char aD_3[] = "%d "; const char a___[] = "..."; const char aD_5[] = "[%d]"; - -#ifdef NONMATCHING -void generate_list_alloc_mem(void) { - -} -#else GLOBAL_ASM( .text -glabel generate_list_alloc_mem +glabel memaDump /* 00AD00 7000A100 27BDEF98 */ addiu $sp, $sp, -0x1068 -/* 00AD04 7000A104 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AD08 7000A108 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) +/* 00AD04 7000A104 3C048006 */ lui $a0, %hi(g_MemoryAllocations + 0x10) +/* 00AD08 7000A108 8C843C38 */ lw $a0, %lo(g_MemoryAllocations + 0x10)($a0) /* 00AD0C 7000A10C AFB5002C */ sw $s5, 0x2c($sp) /* 00AD10 7000A110 AFB00018 */ sw $s0, 0x18($sp) /* 00AD14 7000A114 2415FFFF */ li $s5, -1 /* 00AD18 7000A118 AFB20020 */ sw $s2, 0x20($sp) -/* 00AD1C 7000A11C 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) +/* 00AD1C 7000A11C 3C108006 */ lui $s0, %hi(g_MemoryAllocations + 0x10) /* 00AD20 7000A120 AFBF003C */ sw $ra, 0x3c($sp) /* 00AD24 7000A124 AFBE0038 */ sw $fp, 0x38($sp) /* 00AD28 7000A128 AFB70034 */ sw $s7, 0x34($sp) @@ -974,7 +490,7 @@ glabel generate_list_alloc_mem /* 00AD38 7000A138 AFB1001C */ sw $s1, 0x1c($sp) /* 00AD3C 7000A13C 3C038000 */ lui $v1, 0x8000 /* 00AD40 7000A140 00009025 */ move $s2, $zero -/* 00AD44 7000A144 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00AD44 7000A144 26103C38 */ addiu $s0, %lo(g_MemoryAllocations + 0x10) # addiu $s0, $s0, 0x3c38 /* 00AD48 7000A148 12A40008 */ beq $s5, $a0, .L7000A16C /* 00AD4C 7000A14C 00001025 */ move $v0, $zero .L7000A150: @@ -983,8 +499,8 @@ glabel generate_list_alloc_mem /* 00AD58 7000A158 26100008 */ addiu $s0, $s0, 8 /* 00AD5C 7000A15C 16AFFFFC */ bne $s5, $t7, .L7000A150 /* 00AD60 7000A160 004E1021 */ addu $v0, $v0, $t6 -/* 00AD64 7000A164 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AD68 7000A168 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00AD64 7000A164 3C108006 */ lui $s0, %hi(g_MemoryAllocations + 0x10) +/* 00AD68 7000A168 26103C38 */ addiu $s0, %lo(g_MemoryAllocations + 0x10) # addiu $s0, $s0, 0x3c38 .L7000A16C: /* 00AD6C 7000A16C 3C1E8003 */ lui $fp, %hi(a___) /* 00AD70 7000A170 3C168003 */ lui $s6, %hi(aD_3) @@ -1014,8 +530,8 @@ glabel generate_list_alloc_mem /* 00ADC0 7000A1C0 8E020004 */ lw $v0, 4($s0) .L7000A1C4: /* 00ADC4 7000A1C4 12800022 */ beqz $s4, .L7000A250 -/* 00ADC8 7000A1C8 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00ADCC 7000A1CC 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00ADC8 7000A1C8 3C108006 */ lui $s0, %hi(g_MemoryAllocations + 0x10) +/* 00ADCC 7000A1CC 26103C38 */ addiu $s0, %lo(g_MemoryAllocations + 0x10) # addiu $s0, $s0, 0x3c38 /* 00ADD0 7000A1D0 12A4001C */ beq $s5, $a0, .L7000A244 /* 00ADD4 7000A1D4 0000A025 */ move $s4, $zero /* 00ADD8 7000A1D8 8E020004 */ lw $v0, 4($s0) @@ -1045,10 +561,10 @@ glabel generate_list_alloc_mem /* 00AE28 7000A228 26100008 */ addiu $s0, $s0, 8 /* 00AE2C 7000A22C 56A8FFEB */ bnel $s5, $t0, .L7000A1DC /* 00AE30 7000A230 8E020004 */ lw $v0, 4($s0) -/* 00AE34 7000A234 3C108006 */ lui $s0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AE38 7000A238 3C048006 */ lui $a0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AE3C 7000A23C 8C843C38 */ lw $a0, %lo(ptr_table_allocated_mem_blocks + 0x10)($a0) -/* 00AE40 7000A240 26103C38 */ addiu $s0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $s0, $s0, 0x3c38 +/* 00AE34 7000A234 3C108006 */ lui $s0, %hi(g_MemoryAllocations + 0x10) +/* 00AE38 7000A238 3C048006 */ lui $a0, %hi(g_MemoryAllocations + 0x10) +/* 00AE3C 7000A23C 8C843C38 */ lw $a0, %lo(g_MemoryAllocations + 0x10)($a0) +/* 00AE40 7000A240 26103C38 */ addiu $s0, %lo(g_MemoryAllocations + 0x10) # addiu $s0, $s0, 0x3c38 .L7000A244: /* 00AE44 7000A244 02601825 */ move $v1, $s3 /* 00AE48 7000A248 1000FFD0 */ b .L7000A18C @@ -1077,175 +593,58 @@ glabel generate_list_alloc_mem ) #endif - - - -void memaGenerateListsBeforeAfterMerge(void) -{ - s32 count; - - generate_list_alloc_mem(); - for (count = 0; count != 0x1fc; count +=1) - { - memaSortMergeEntries(&ptr_table_allocated_mem_blocks); +// Dump a list of allocations before and after a full +// merge pass. +void memaDumpPrePostMerge(void) { + s32 i; + memaDump(); + for (i = 0; i < 508; i++) { + memaIterateAndMergeInternal(&g_MemoryAllocations); } - generate_list_alloc_mem(); + memaDump(); } - - -#ifdef NONMATCHING -void mem_related_something_first_related_0(void *arg0) -{ - s32 temp_s1; - s32 phi_s1; - void *phi_s0; - - if (-1 != ptr_table_allocated_mem_blocks + 0x10) - { - phi_s1 = ptr_table_allocated_mem_blocks + 0x10; - phi_s0 = &ptr_table_allocated_mem_blocks + 0x10; -loop_2: - arg0(phi_s1 + phi_s0->unk4, phi_s0); - temp_s1 = phi_s0->unk8; - phi_s1 = temp_s1; - phi_s0 = phi_s0 + 8; - if (-1 != temp_s1) - { - goto loop_2; - } +void mema7000A2F8(void (*func)(u32, allocation*)) { + allocation *curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + func((curr->addr + curr->size), curr); + curr++; } } -#else -GLOBAL_ASM( -.text -glabel mem_related_something_first_related_0 -/* 00AEF8 7000A2F8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 00AEFC 7000A2FC 3C0F8006 */ lui $t7, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AF00 7000A300 8DEF3C38 */ lw $t7, %lo(ptr_table_allocated_mem_blocks + 0x10)($t7) -/* 00AF04 7000A304 AFB30020 */ sw $s3, 0x20($sp) -/* 00AF08 7000A308 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AF0C 7000A30C 2413FFFF */ li $s3, -1 -/* 00AF10 7000A310 AFB2001C */ sw $s2, 0x1c($sp) -/* 00AF14 7000A314 AFB00014 */ sw $s0, 0x14($sp) -/* 00AF18 7000A318 25CE3C38 */ addiu $t6, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $t6, $t6, 0x3c38 -/* 00AF1C 7000A31C 00809025 */ move $s2, $a0 -/* 00AF20 7000A320 AFBF0024 */ sw $ra, 0x24($sp) -/* 00AF24 7000A324 AFB10018 */ sw $s1, 0x18($sp) -/* 00AF28 7000A328 126F000A */ beq $s3, $t7, .L7000A354 -/* 00AF2C 7000A32C 01C08025 */ move $s0, $t6 -/* 00AF30 7000A330 8DD10000 */ lw $s1, ($t6) -/* 00AF34 7000A334 8E180004 */ lw $t8, 4($s0) -.L7000A338: -/* 00AF38 7000A338 02002825 */ move $a1, $s0 -/* 00AF3C 7000A33C 0240F809 */ jalr $s2 -/* 00AF40 7000A340 02382021 */ addu $a0, $s1, $t8 -/* 00AF44 7000A344 8E110008 */ lw $s1, 8($s0) -/* 00AF48 7000A348 26100008 */ addiu $s0, $s0, 8 -/* 00AF4C 7000A34C 5671FFFA */ bnel $s3, $s1, .L7000A338 -/* 00AF50 7000A350 8E180004 */ lw $t8, 4($s0) -.L7000A354: -/* 00AF54 7000A354 8FBF0024 */ lw $ra, 0x24($sp) -/* 00AF58 7000A358 8FB00014 */ lw $s0, 0x14($sp) -/* 00AF5C 7000A35C 8FB10018 */ lw $s1, 0x18($sp) -/* 00AF60 7000A360 8FB2001C */ lw $s2, 0x1c($sp) -/* 00AF64 7000A364 8FB30020 */ lw $s3, 0x20($sp) -/* 00AF68 7000A368 03E00008 */ jr $ra -/* 00AF6C 7000A36C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif - - -#ifdef NONMATCHING -u32 mem_related_0(void) { - u32 sp18; - - // Node 0 - sp18 = 0U; - memaSortMergeAllEntries(); - if (-1 != ptr_table_allocated_mem_blocks + 0x10) - { - loop_1: - // Node 1 - if (sp18 < (u32) ptr_table_allocated_mem_blocks + 0x10.unk4) - { - // Node 2 - } - // Node 3 - if (-1 != ptr_table_allocated_mem_blocks + 0x10.unk8) - { - goto loop_1; +// Return the size of the largest allocation, after +// a full merge pass. +u32 memaGetLargestAllocSize(void) { + allocation *curr; + u32 max = 0; + memaMergeAll(); + curr = &g_MemoryAllocations[2]; + while (curr->addr != -1) { + if (max < curr->size) { + max = curr->size; } + curr++; } - // Node 4 - if (sp18 != 0) - { - // Node 5 - return; - // (possible return value: sp18) + if (max != 0) { + return max; } - // Node 6 - return; - // (possible return value: 0U) + return 0; } -#else -GLOBAL_ASM( -.text -glabel mem_related_0 -/* 00AF70 7000A370 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00AF74 7000A374 AFBF0014 */ sw $ra, 0x14($sp) -/* 00AF78 7000A378 0C0026C6 */ jal memaSortMergeAllEntries -/* 00AF7C 7000A37C AFA00018 */ sw $zero, 0x18($sp) -/* 00AF80 7000A380 3C0E8006 */ lui $t6, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AF84 7000A384 8DCE3C38 */ lw $t6, %lo(ptr_table_allocated_mem_blocks + 0x10)($t6) -/* 00AF88 7000A388 2405FFFF */ li $a1, -1 -/* 00AF8C 7000A38C 3C028006 */ lui $v0, %hi(ptr_table_allocated_mem_blocks + 0x10) -/* 00AF90 7000A390 8FA40018 */ lw $a0, 0x18($sp) -/* 00AF94 7000A394 10AE000A */ beq $a1, $t6, .L7000A3C0 -/* 00AF98 7000A398 24423C38 */ addiu $v0, %lo(ptr_table_allocated_mem_blocks + 0x10) # addiu $v0, $v0, 0x3c38 -/* 00AF9C 7000A39C 8C430004 */ lw $v1, 4($v0) -.L7000A3A0: -/* 00AFA0 7000A3A0 0083082B */ sltu $at, $a0, $v1 -/* 00AFA4 7000A3A4 50200003 */ beql $at, $zero, .L7000A3B4 -/* 00AFA8 7000A3A8 8C4F0008 */ lw $t7, 8($v0) -/* 00AFAC 7000A3AC 00602025 */ move $a0, $v1 -/* 00AFB0 7000A3B0 8C4F0008 */ lw $t7, 8($v0) -.L7000A3B4: -/* 00AFB4 7000A3B4 24420008 */ addiu $v0, $v0, 8 -/* 00AFB8 7000A3B8 54AFFFF9 */ bnel $a1, $t7, .L7000A3A0 -/* 00AFBC 7000A3BC 8C430004 */ lw $v1, 4($v0) -.L7000A3C0: -/* 00AFC0 7000A3C0 10800003 */ beqz $a0, .L7000A3D0 -/* 00AFC4 7000A3C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 00AFC8 7000A3C8 10000002 */ b .L7000A3D4 -/* 00AFCC 7000A3CC 00801025 */ move $v0, $a0 -.L7000A3D0: -/* 00AFD0 7000A3D0 00001025 */ move $v0, $zero -.L7000A3D4: -/* 00AFD4 7000A3D4 03E00008 */ jr $ra -/* 00AFD8 7000A3D8 27BD0020 */ addiu $sp, $sp, 0x20 -) -#endif - - - #ifdef NONMATCHING -//close C, regalloc -u32 mem_related_1(u32 addr,u32 length,u32 maxsize) -{ - if (length < maxsize) { - if (mem_related_something_find_first_0((addr + length), (maxsize - length)) == 0) { +// Resize an existing allocation. Either by shrinking the old one, or +// by registering a new allocation containing the remaining bytes. +s32 memaResize(s32 addr, u32 newsize, u32 oldsize) { + if (newsize < oldsize) { + if (memaShrink((addr + newsize), (oldsize - newsize)) == 0) { return 0; - } - else { + } else { return 1; } } else { - if (maxsize < length) { - mem_related_model_room_buffers_0((addr + maxsize), (length - maxsize)); + if (newsize > oldsize) { + memaRegister((addr + oldsize), (newsize - oldsize)); } return 1; } @@ -1253,7 +652,7 @@ u32 mem_related_1(u32 addr,u32 length,u32 maxsize) #else GLOBAL_ASM( .text -glabel mem_related_1 +glabel memaResize /* 00AFDC 7000A3DC 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 00AFE0 7000A3E0 00A6082B */ sltu $at, $a1, $a2 /* 00AFE4 7000A3E4 AFBF0014 */ sw $ra, 0x14($sp) @@ -1261,7 +660,7 @@ glabel mem_related_1 /* 00AFEC 7000A3EC 1020000A */ beqz $at, .L7000A418 /* 00AFF0 7000A3F0 00A03825 */ move $a3, $a1 /* 00AFF4 7000A3F4 00852021 */ addu $a0, $a0, $a1 -/* 00AFF8 7000A3F8 0C0027EA */ jal mem_related_something_find_first_0 +/* 00AFF8 7000A3F8 0C0027EA */ jal memaShrink /* 00AFFC 7000A3FC 00C52823 */ subu $a1, $a2, $a1 /* 00B000 7000A400 14400003 */ bnez $v0, .L7000A410 /* 00B004 7000A404 00000000 */ nop @@ -1275,7 +674,7 @@ glabel mem_related_1 /* 00B01C 7000A41C 10200004 */ beqz $at, .L7000A430 /* 00B020 7000A420 8FA90018 */ lw $t1, 0x18($sp) /* 00B024 7000A424 01262021 */ addu $a0, $t1, $a2 -/* 00B028 7000A428 0C002808 */ jal mem_related_model_room_buffers_0 +/* 00B028 7000A428 0C002808 */ jal memaRegister /* 00B02C 7000A42C 00E62823 */ subu $a1, $a3, $a2 .L7000A430: /* 00B030 7000A430 24020001 */ li $v0, 1 diff --git a/src/mema.h b/src/mema.h index 5c2cb39..000b2f5 100644 --- a/src/mema.h +++ b/src/mema.h @@ -3,37 +3,18 @@ #include "ultra64.h" - -typedef struct s_mem_alloc_entry { +typedef struct allocation { s32 addr; - s32 size; -} s_mem_alloc_entry; - -typedef struct s_mem_alloc_table { - struct s_mem_alloc_entry entries[0x200]; -} s_mem_alloc_table; - -extern struct s_mem_alloc_table ptr_table_allocated_mem_blocks; - -void memaSwap(s_mem_alloc_entry *a,s_mem_alloc_entry *b); -void memaMerge(s_mem_alloc_entry *a, s_mem_alloc_entry *b); -u32 memaSortMergeEntries(struct s_mem_alloc_table *param_1); -void memaSortMergeAllEntries(void); -s_mem_alloc_entry * memaFindOpening(s_mem_alloc_table *param_1); -void memaAllocRoomBuffer(u32 addr,u32 size); -void memaInitDebugNoticeList(void); -void mempInitMallocTable(void *ptr_allocmem,u32 size); -void mem_related_calls_sort_merge_entries(void); -s32 mem_related_something_find_first(u32 arg0); -s32 mem_related_something_find_first_0(s32 arg0, u32 arg1); -void mem_related_model_room_buffers_0(u32 addr,u32 size) ; -void mem_related_allocated_table_related(void); -f32 mem_related_something_first_related(void); -void generate_list_alloc_mem(void); -void memaGenerateListsBeforeAfterMerge(void); -void mem_related_something_first_related_0(void *arg0); -u32 mem_related_0(void); -u32 mem_related_1(u32 addr,u32 length,u32 maxsize); + u32 size; +} allocation; +void memaInit(void); +void memaSetBuffer(s32 buffer, s32 size); +void memaIterateAndMerge(void); +s32 memaFree(u32 size); +void memaRegister(u32 addr, u32 size); +void memaDumpPrePostMerge(void); +u32 memaGetLargestAllocSize(void); +s32 memaResize(s32 addr, u32 newsize, u32 oldsize); #endif diff --git a/src/memp.c b/src/memp.c index ff9ee1e..b1c4d41 100644 --- a/src/memp.c +++ b/src/memp.c @@ -7,447 +7,91 @@ */ //bss -struct s_mempBANK memory_bank_ptrs[0x7]; +struct s_mempBANK memory_bank_ptrs[7]; //data void *ptr_memp_c_debug_debug_notice_list = 0; s32 needmemallocation = 0; s32 D_80024408 = 0; s32 D_8002440C = 0; +s32 D_80024410 = 0; struct s_mempMVALS sdefaultmvals = { - 0, //D_80024410 - 2, //D_80024414 - 0, //mf - 4, //D_8002441C - 0x52, //ml - 6, //D_80024424 - 0xF, //me - 0, //D_8002442C - 0 //D_80024430 + 2, 0x00, + 4, 0x52, + 6, 0x0F, + 0, 0x00 }; -struct s_mempMEMSTARTS sdefaultmemstarts = { - 0, //bank1start - 0, //bank2start - 0, //bank3start - 0, //bank4start - 0, //bank5start - 0, //bank6start - 0 //bank7start -}; - - - - - - -/** - * 9F80 70009380 - * V0=p->debug.notice.list entry for memp_c_debug - */ void mempInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&ptr_memp_c_debug_debug_notice_list, "memp_c_debug"); //should be "memp_c_debug" + debTryAdd(&ptr_memp_c_debug_debug_notice_list, "memp_c_debug"); } -/** - * 9FAC 700093AC - * initialize memory allocation table and set font and text bank sizes - * accepts: A0=p->buffer, A1=size - * uses "-mf", "-ml", "-me" strings - */ -#ifdef NONMATCHING// -void mempCheckMemflagTokens(int bstart,int bsize) +const char *tokenFind(s32 arg0, const char *arg1); +long int strtol(const char *str, char **endptr, int base); +void mempCheckMemflagTokens(s32 bstart, s32 bsize) { - u32 iVar1; - u32 local_20; - u32 mfval; - u32 local_18; - u32 mlval; - u32 local_10; - u32 meval; - u32 local_8; - u32 local_4; + s_mempMVALS sp20; - memory_bank_ptrs[0].bankend = bstart + bsize; - local_20 = sdefaultmvals.D_80024414; - mfval = sdefaultmvals.mf; - mlval = sdefaultmvals.ml; - local_18 = sdefaultmvals.D_8002441C; - local_10 = sdefaultmvals.D_80024424; - meval = sdefaultmvals.me; - local_4 = sdefaultmvals.D_80024430; - local_8 = sdefaultmvals.D_8002442C; memory_bank_ptrs[0].bankstart = bstart; - - if (check_token(1,"-mf") != 0) { - mfval = strtol(check_token(1,"-mf"),NULL,0); - } - - if (check_token(1,"-ml") != 0) { - mlval = strtol(check_token(1,"-ml"),NULL,0); - } - - if (check_token(1,"-me") != 0) { - meval = strtol(check_token(1,"-me"),NULL,0); - } - - if (meval == 0) { - mfval = 0; - iVar1 = 0x128; - if (j_text_trigger != 0) { - iVar1 = 0x134; - } - meval = iVar1 * 0x400; - mlval = bsize + iVar1 * -0x400; - } - mempSetBankStarts(&local_20); -} -#else -GLOBAL_ASM( -.rdata -glabel aMf -.word 0x2d6d6600 /*"-mf"*/ -glabel aMf_0 -.word 0x2d6d6600 /*"-mf"*/ -glabel aMl -.word 0x2d6d6c00 /*"-ml"*/ -glabel aMl_0 -.word 0x2d6d6c00 /*"-ml"*/ -glabel aMe -.word 0x2d6d6500 /*"-me"*/ -glabel aMe_0 -.word 0x2d6d6500 /*"-me"*/ - -.text -glabel mempCheckMemflagTokens -/* 009FAC 700093AC 3C028006 */ lui $v0, %hi(memory_bank_ptrs) -/* 009FB0 700093B0 24423BB0 */ addiu $v0, %lo(memory_bank_ptrs) # addiu $v0, $v0, 0x3bb0 -/* 009FB4 700093B4 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 009FB8 700093B8 00857821 */ addu $t7, $a0, $a1 -/* 009FBC 700093BC 3C198002 */ lui $t9, %hi(sdefaultmvals +0x4) -/* 009FC0 700093C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 009FC4 700093C4 AFA50044 */ sw $a1, 0x44($sp) -/* 009FC8 700093C8 AC440000 */ sw $a0, ($v0) -/* 009FCC 700093CC AC4F0008 */ sw $t7, 8($v0) -/* 009FD0 700093D0 27394414 */ addiu $t9, %lo(sdefaultmvals +0x4) # addiu $t9, $t9, 0x4414 -/* 009FD4 700093D4 8F210000 */ lw $at, ($t9) -/* 009FD8 700093D8 8F290004 */ lw $t1, 4($t9) -/* 009FDC 700093DC 27B80020 */ addiu $t8, $sp, 0x20 -/* 009FE0 700093E0 AF010000 */ sw $at, ($t8) -/* 009FE4 700093E4 AF090004 */ sw $t1, 4($t8) -/* 009FE8 700093E8 8F29000C */ lw $t1, 0xc($t9) -/* 009FEC 700093EC 8F210008 */ lw $at, 8($t9) -/* 009FF0 700093F0 3C058003 */ lui $a1, %hi(aMf) -/* 009FF4 700093F4 AF09000C */ sw $t1, 0xc($t8) -/* 009FF8 700093F8 AF010008 */ sw $at, 8($t8) -/* 009FFC 700093FC 8F210010 */ lw $at, 0x10($t9) -/* 00A000 70009400 8F290014 */ lw $t1, 0x14($t9) -/* 00A004 70009404 24A591B0 */ addiu $a1, %lo(aMf) # addiu $a1, $a1, -0x6e50 -/* 00A008 70009408 AF010010 */ sw $at, 0x10($t8) -/* 00A00C 7000940C AF090014 */ sw $t1, 0x14($t8) -/* 00A010 70009410 8F29001C */ lw $t1, 0x1c($t9) -/* 00A014 70009414 8F210018 */ lw $at, 0x18($t9) -/* 00A018 70009418 24040001 */ li $a0, 1 -/* 00A01C 7000941C AF09001C */ sw $t1, 0x1c($t8) -/* 00A020 70009420 0C0029A8 */ jal check_token -/* 00A024 70009424 AF010018 */ sw $at, 0x18($t8) -/* 00A028 70009428 10400009 */ beqz $v0, .L70009450 -/* 00A02C 7000942C 24040001 */ li $a0, 1 -/* 00A030 70009430 3C058003 */ lui $a1, %hi(aMf_0) -/* 00A034 70009434 0C0029A8 */ jal check_token -/* 00A038 70009438 24A591B4 */ addiu $a1, %lo(aMf_0) # addiu $a1, $a1, -0x6e4c -/* 00A03C 7000943C 00402025 */ move $a0, $v0 -/* 00A040 70009440 00002825 */ move $a1, $zero -/* 00A044 70009444 0C002A78 */ jal strtol -/* 00A048 70009448 00003025 */ move $a2, $zero -/* 00A04C 7000944C AFA20024 */ sw $v0, 0x24($sp) -.L70009450: -/* 00A050 70009450 3C058003 */ lui $a1, %hi(aMl) -/* 00A054 70009454 24A591B8 */ addiu $a1, %lo(aMl) # addiu $a1, $a1, -0x6e48 -/* 00A058 70009458 0C0029A8 */ jal check_token -/* 00A05C 7000945C 24040001 */ li $a0, 1 -/* 00A060 70009460 10400009 */ beqz $v0, .L70009488 -/* 00A064 70009464 24040001 */ li $a0, 1 -/* 00A068 70009468 3C058003 */ lui $a1, %hi(aMl_0) -/* 00A06C 7000946C 0C0029A8 */ jal check_token -/* 00A070 70009470 24A591BC */ addiu $a1, %lo(aMl_0) # addiu $a1, $a1, -0x6e44 -/* 00A074 70009474 00402025 */ move $a0, $v0 -/* 00A078 70009478 00002825 */ move $a1, $zero -/* 00A07C 7000947C 0C002A78 */ jal strtol -/* 00A080 70009480 00003025 */ move $a2, $zero -/* 00A084 70009484 AFA2002C */ sw $v0, 0x2c($sp) -.L70009488: -/* 00A088 70009488 3C058003 */ lui $a1, %hi(aMe) -/* 00A08C 7000948C 24A591C0 */ addiu $a1, %lo(aMe) # addiu $a1, $a1, -0x6e40 -/* 00A090 70009490 0C0029A8 */ jal check_token -/* 00A094 70009494 24040001 */ li $a0, 1 -/* 00A098 70009498 10400009 */ beqz $v0, .L700094C0 -/* 00A09C 7000949C 24040001 */ li $a0, 1 -/* 00A0A0 700094A0 3C058003 */ lui $a1, %hi(aMe_0) -/* 00A0A4 700094A4 0C0029A8 */ jal check_token -/* 00A0A8 700094A8 24A591C4 */ addiu $a1, %lo(aMe_0) # addiu $a1, $a1, -0x6e3c -/* 00A0AC 700094AC 00402025 */ move $a0, $v0 -/* 00A0B0 700094B0 00002825 */ move $a1, $zero -/* 00A0B4 700094B4 0C002A78 */ jal strtol -/* 00A0B8 700094B8 00003025 */ move $a2, $zero -/* 00A0BC 700094BC AFA20034 */ sw $v0, 0x34($sp) -.L700094C0: -/* 00A0C0 700094C0 8FA30034 */ lw $v1, 0x34($sp) -/* 00A0C4 700094C4 3C0A8005 */ lui $t2, %hi(j_text_trigger) -/* 00A0C8 700094C8 1460000C */ bnez $v1, .L700094FC -/* 00A0CC 700094CC 00000000 */ nop -/* 00A0D0 700094D0 8D4A84D0 */ lw $t2, %lo(j_text_trigger)($t2) -/* 00A0D4 700094D4 AFA00024 */ sw $zero, 0x24($sp) -/* 00A0D8 700094D8 24020128 */ li $v0, 296 -/* 00A0DC 700094DC 11400003 */ beqz $t2, .L700094EC -/* 00A0E0 700094E0 8FAB0044 */ lw $t3, 0x44($sp) -/* 00A0E4 700094E4 10000001 */ b .L700094EC -/* 00A0E8 700094E8 24020134 */ li $v0, 308 -.L700094EC: -/* 00A0EC 700094EC 00021A80 */ sll $v1, $v0, 0xa -/* 00A0F0 700094F0 01636023 */ subu $t4, $t3, $v1 -/* 00A0F4 700094F4 AFAC002C */ sw $t4, 0x2c($sp) -/* 00A0F8 700094F8 AFA30034 */ sw $v1, 0x34($sp) -.L700094FC: -/* 00A0FC 700094FC 0C002545 */ jal mempSetBankStarts -/* 00A100 70009500 27A40020 */ addiu $a0, $sp, 0x20 -/* 00A104 70009504 8FBF0014 */ lw $ra, 0x14($sp) -/* 00A108 70009508 27BD0040 */ addiu $sp, $sp, 0x40 -/* 00A10C 7000950C 03E00008 */ jr $ra -/* 00A110 70009510 00000000 */ nop -) -#endif - - - - - -/** - * A114 70009514 - * initialize allocations using table A0 - * accepts: A0=p->allocation sizes - */ -#ifdef NONMATCHING -void mempSetBankStarts(int *banks) -{ - int *piVar1; - int right_l; - longlong lVar2; - longlong lVar3; - int iVar4; - int iVar5; - s_memstarts *psVar6; - s_memstarts *psVar7; - s_memstarts bankstarts; - undefined auStack4 [4]; + memory_bank_ptrs[0].bankend = bstart + bsize; - bankstarts.bank1start = sdefaultmemstarts.bank1start; - bankstarts.bank2start = sdefaultmemstarts.bank2start; - psVar6 = &bankstarts; - bankstarts.bank3start = sdefaultmemstarts.bank3start; - bankstarts.bank4start = sdefaultmemstarts.bank4start; - bankstarts.bank5start = sdefaultmemstarts.bank5start; - bankstarts.bank6start = sdefaultmemstarts.bank6start; - bankstarts.bank7start = sdefaultmemstarts.bank7start; - right_l = *banks; - iVar4 = banks[1]; - while( true ) { - (&bankstarts.bank1start)[right_l] = iVar4; - right_l = banks[2]; - if (right_l == 0) break; - iVar4 = banks[3]; - banks = banks + 2; + sp20 = sdefaultmvals; + + if (tokenFind(1, "-mf")) { + sp20.var2 = strtol(tokenFind(1, "-mf"), NULL, 0); } - right_l = bankstarts.bank1start; - do { - piVar1 = &psVar6->bank2start; - psVar6 = (s_memstarts *)&psVar6->bank2start; - right_l = *piVar1 + right_l; - psVar6->bank1start = right_l; - iVar4 = bankstarts.bank7start; - } while (psVar6 < (s_memstarts *)&bankstarts.bank7start); - right_l = memory_bank_ptrs[0].bankend - memory_bank_ptrs[0].bankstart; - lVar3 = (longlong)right_l; - iVar5 = bankstarts.bank7start >> 0x1f; - psVar6 = &bankstarts; - do { - lVar2 = __ll_mul((int)psVar6->bank1start >> 0x1f,psVar6->bank1start,right_l >> 0x1f,right_l) - ; - __ll_div((int)lVar2,(int)lVar3,iVar5,iVar4); - psVar7 = (s_memstarts *)&psVar6->bank2start; - psVar6->bank1start = (int)lVar3; - psVar6 = psVar7; - } while (psVar7 < (s_memstarts *)auStack4); - psVar6 = &bankstarts; - do { - psVar7 = (s_memstarts *)&psVar6->bank2start; - psVar6->bank1start = (psVar6->bank1start | 0xf) ^ 0xf; - psVar6 = psVar7; - } while (psVar7 < (s_memstarts *)auStack4); - memory_bank_ptrs[1].bankstart = bankstarts.bank1start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[1].nextentry = 0; - memory_bank_ptrs[1].bankend = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[2].bankstart = bankstarts.bank2start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[2].nextentry = 0; - memory_bank_ptrs[2].bankend = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[3].bankstart = bankstarts.bank3start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[3].nextentry = 0; - memory_bank_ptrs[3].bankend = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[4].bankstart = bankstarts.bank4start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[4].nextentry = 0; - memory_bank_ptrs[4].bankend = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[5].bankstart = bankstarts.bank5start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[5].nextentry = 0; - memory_bank_ptrs[5].bankend = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[6].bankstart = bankstarts.bank6start + memory_bank_ptrs[0].bankstart; - memory_bank_ptrs[6].nextentry = 0; - memory_bank_ptrs[6].bankend = bankstarts.bank7start + memory_bank_ptrs[0].bankstart; + if (tokenFind(1, "-ml")) { + sp20.var4 = strtol(tokenFind(1, "-ml"), NULL, 0); + } + if (tokenFind(1, "-me")) { + sp20.var6 = strtol(tokenFind(1, "-me"), NULL, 0); + } + if (sp20.var6 == 0) { + sp20.var2 = 0; + sp20.var6 = ((j_text_trigger ? 308 : 296) * 1024); + sp20.var4 = bsize - sp20.var6; + } + + mempSetBankStarts((s32*)&sp20); } -#else -GLOBAL_ASM( -.text -glabel mempSetBankStarts -/* 00A114 70009514 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 00A118 70009518 3C0E8002 */ lui $t6, %hi(sdefaultmemstarts) -/* 00A11C 7000951C AFBF0024 */ sw $ra, 0x24($sp) -/* 00A120 70009520 AFB30020 */ sw $s3, 0x20($sp) -/* 00A124 70009524 AFB2001C */ sw $s2, 0x1c($sp) -/* 00A128 70009528 AFB10018 */ sw $s1, 0x18($sp) -/* 00A12C 7000952C AFB00014 */ sw $s0, 0x14($sp) -/* 00A130 70009530 25CE4434 */ addiu $t6, %lo(sdefaultmemstarts) # addiu $t6, $t6, 0x4434 -/* 00A134 70009534 8DC10000 */ lw $at, ($t6) -/* 00A138 70009538 27B20060 */ addiu $s2, $sp, 0x60 -/* 00A13C 7000953C 3C138006 */ lui $s3, %hi(memory_bank_ptrs) -/* 00A140 70009540 AE410000 */ sw $at, ($s2) -/* 00A144 70009544 8DD90004 */ lw $t9, 4($t6) -/* 00A148 70009548 00801025 */ move $v0, $a0 -/* 00A14C 7000954C 26733BB0 */ addiu $s3, %lo(memory_bank_ptrs) # addiu $s3, $s3, 0x3bb0 -/* 00A150 70009550 AE590004 */ sw $t9, 4($s2) -/* 00A154 70009554 8DC10008 */ lw $at, 8($t6) -/* 00A158 70009558 27B00060 */ addiu $s0, $sp, 0x60 -/* 00A15C 7000955C 27B1007C */ addiu $s1, $sp, 0x7c -/* 00A160 70009560 AE410008 */ sw $at, 8($s2) -/* 00A164 70009564 8DD9000C */ lw $t9, 0xc($t6) -/* 00A168 70009568 AE59000C */ sw $t9, 0xc($s2) -/* 00A16C 7000956C 8DC10010 */ lw $at, 0x10($t6) -/* 00A170 70009570 AE410010 */ sw $at, 0x10($s2) -/* 00A174 70009574 8DD90014 */ lw $t9, 0x14($t6) -/* 00A178 70009578 AE590014 */ sw $t9, 0x14($s2) -/* 00A17C 7000957C 8DC10018 */ lw $at, 0x18($t6) -/* 00A180 70009580 AE410018 */ sw $at, 0x18($s2) -/* 00A184 70009584 8C830000 */ lw $v1, ($a0) -/* 00A188 70009588 8C480004 */ lw $t0, 4($v0) -.L7000958C: -/* 00A18C 7000958C 00034880 */ sll $t1, $v1, 2 -/* 00A190 70009590 02495021 */ addu $t2, $s2, $t1 -/* 00A194 70009594 AD480000 */ sw $t0, ($t2) -/* 00A198 70009598 8C430008 */ lw $v1, 8($v0) -/* 00A19C 7000959C 24420008 */ addiu $v0, $v0, 8 -/* 00A1A0 700095A0 5460FFFA */ bnezl $v1, .L7000958C -/* 00A1A4 700095A4 8C480004 */ lw $t0, 4($v0) -/* 00A1A8 700095A8 8E030000 */ lw $v1, ($s0) -/* 00A1AC 700095AC 27A40078 */ addiu $a0, $sp, 0x78 -.L700095B0: -/* 00A1B0 700095B0 8E0C0004 */ lw $t4, 4($s0) -/* 00A1B4 700095B4 26100004 */ addiu $s0, $s0, 4 -/* 00A1B8 700095B8 0204082B */ sltu $at, $s0, $a0 -/* 00A1BC 700095BC 01831021 */ addu $v0, $t4, $v1 -/* 00A1C0 700095C0 00401825 */ move $v1, $v0 -/* 00A1C4 700095C4 1420FFFA */ bnez $at, .L700095B0 -/* 00A1C8 700095C8 AE020000 */ sw $v0, ($s0) -/* 00A1CC 700095CC 8E6D0008 */ lw $t5, 8($s3) -/* 00A1D0 700095D0 8E780000 */ lw $t8, ($s3) -/* 00A1D4 700095D4 8FA20078 */ lw $v0, 0x78($sp) -/* 00A1D8 700095D8 27B00060 */ addiu $s0, $sp, 0x60 -/* 00A1DC 700095DC 01B81823 */ subu $v1, $t5, $t8 -/* 00A1E0 700095E0 000377C3 */ sra $t6, $v1, 0x1f -/* 00A1E4 700095E4 000247C3 */ sra $t0, $v0, 0x1f -/* 00A1E8 700095E8 AFA80030 */ sw $t0, 0x30($sp) -/* 00A1EC 700095EC AFAE0038 */ sw $t6, 0x38($sp) -/* 00A1F0 700095F0 AFA3003C */ sw $v1, 0x3c($sp) -/* 00A1F4 700095F4 AFA20034 */ sw $v0, 0x34($sp) -.L700095F8: -/* 00A1F8 700095F8 8E050000 */ lw $a1, ($s0) -/* 00A1FC 700095FC 8FA60038 */ lw $a2, 0x38($sp) -/* 00A200 70009600 8FA7003C */ lw $a3, 0x3c($sp) -/* 00A204 70009604 0C003B6A */ jal __ll_mul -/* 00A208 70009608 000527C3 */ sra $a0, $a1, 0x1f -/* 00A20C 7000960C 00402025 */ move $a0, $v0 -/* 00A210 70009610 00602825 */ move $a1, $v1 -/* 00A214 70009614 8FA60030 */ lw $a2, 0x30($sp) -/* 00A218 70009618 0C003B53 */ jal __ll_div -/* 00A21C 7000961C 8FA70034 */ lw $a3, 0x34($sp) -/* 00A220 70009620 26100004 */ addiu $s0, $s0, 4 -/* 00A224 70009624 0211082B */ sltu $at, $s0, $s1 -/* 00A228 70009628 1420FFF3 */ bnez $at, .L700095F8 -/* 00A22C 7000962C AE03FFFC */ sw $v1, -4($s0) -/* 00A230 70009630 27B00060 */ addiu $s0, $sp, 0x60 -/* 00A234 70009634 27A2007C */ addiu $v0, $sp, 0x7c -.L70009638: -/* 00A238 70009638 8E0B0000 */ lw $t3, ($s0) -/* 00A23C 7000963C 26100004 */ addiu $s0, $s0, 4 -/* 00A240 70009640 0202082B */ sltu $at, $s0, $v0 -/* 00A244 70009644 356C000F */ ori $t4, $t3, 0xf -/* 00A248 70009648 398D000F */ xori $t5, $t4, 0xf -/* 00A24C 7000964C 1420FFFA */ bnez $at, .L70009638 -/* 00A250 70009650 AE0DFFFC */ sw $t5, -4($s0) -/* 00A254 70009654 8E660000 */ lw $a2, ($s3) -/* 00A258 70009658 8FB80060 */ lw $t8, 0x60($sp) -/* 00A25C 7000965C 8FAF0064 */ lw $t7, 0x64($sp) -/* 00A260 70009660 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x14) -/* 00A264 70009664 03067021 */ addu $t6, $t8, $a2 -/* 00A268 70009668 AC2E3BC0 */ sw $t6, %lo(memory_bank_ptrs+0x10)($at) -/* 00A26C 7000966C AC203BC4 */ sw $zero, %lo(memory_bank_ptrs+0x14)($at) -/* 00A270 70009670 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x18) -/* 00A274 70009674 01E61021 */ addu $v0, $t7, $a2 -/* 00A278 70009678 AC223BC8 */ sw $v0, %lo(memory_bank_ptrs+0x18)($at) -/* 00A27C 7000967C 8FA80068 */ lw $t0, 0x68($sp) -/* 00A280 70009680 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x24) -/* 00A284 70009684 AC223BD0 */ sw $v0, %lo(memory_bank_ptrs+0x20)($at) -/* 00A288 70009688 AC203BD4 */ sw $zero, %lo(memory_bank_ptrs+0x24)($at) -/* 00A28C 7000968C 3C018006 */ lui $at, %hi(memory_bank_ptrs+0x28) -/* 00A290 70009690 01064821 */ addu $t1, $t0, $a2 -/* 00A294 70009694 AC293BD8 */ sw $t1, %lo(memory_bank_ptrs+0x28)($at) -/* 00A298 70009698 24070002 */ li $a3, 2 -/* 00A29C 7000969C 0007C900 */ sll $t9, $a3, 4 -/* 00A2A0 700096A0 02791021 */ addu $v0, $s3, $t9 -/* 00A2A4 700096A4 00075080 */ sll $t2, $a3, 2 -/* 00A2A8 700096A8 024A8021 */ addu $s0, $s2, $t2 -/* 00A2AC 700096AC 8E180008 */ lw $t8, 8($s0) -/* 00A2B0 700096B0 8E0E000C */ lw $t6, 0xc($s0) -/* 00A2B4 700096B4 8E0D0004 */ lw $t5, 4($s0) -/* 00A2B8 700096B8 8E0F0010 */ lw $t7, 0x10($s0) -/* 00A2BC 700096BC 8E0B0000 */ lw $t3, ($s0) -/* 00A2C0 700096C0 03062021 */ addu $a0, $t8, $a2 -/* 00A2C4 700096C4 01C62821 */ addu $a1, $t6, $a2 -/* 00A2C8 700096C8 01A61821 */ addu $v1, $t5, $a2 -/* 00A2CC 700096CC 01E64021 */ addu $t0, $t7, $a2 -/* 00A2D0 700096D0 01666021 */ addu $t4, $t3, $a2 -/* 00A2D4 700096D4 AC480048 */ sw $t0, 0x48($v0) -/* 00A2D8 700096D8 AC430020 */ sw $v1, 0x20($v0) -/* 00A2DC 700096DC AC450038 */ sw $a1, 0x38($v0) -/* 00A2E0 700096E0 AC450040 */ sw $a1, 0x40($v0) -/* 00A2E4 700096E4 AC440028 */ sw $a0, 0x28($v0) -/* 00A2E8 700096E8 AC440030 */ sw $a0, 0x30($v0) -/* 00A2EC 700096EC AC400024 */ sw $zero, 0x24($v0) -/* 00A2F0 700096F0 AC400034 */ sw $zero, 0x34($v0) -/* 00A2F4 700096F4 AC400044 */ sw $zero, 0x44($v0) -/* 00A2F8 700096F8 AC4C0010 */ sw $t4, 0x10($v0) -/* 00A2FC 700096FC AC400014 */ sw $zero, 0x14($v0) -/* 00A300 70009700 AC430018 */ sw $v1, 0x18($v0) -/* 00A304 70009704 8FBF0024 */ lw $ra, 0x24($sp) -/* 00A308 70009708 8FB30020 */ lw $s3, 0x20($sp) -/* 00A30C 7000970C 8FB2001C */ lw $s2, 0x1c($sp) -/* 00A310 70009710 8FB10018 */ lw $s1, 0x18($sp) -/* 00A314 70009714 8FB00014 */ lw $s0, 0x14($sp) -/* 00A318 70009718 03E00008 */ jr $ra -/* 00A31C 7000971C 27BD0080 */ addiu $sp, $sp, 0x80 -) -#endif +void mempSetBankStarts(s32 banks[8]) +{ + s32 i; + s32 bankstarts[7] = {0}; + s32 var1; + s32 var3; + s32 var2; + i = 0; + do { + bankstarts[banks[i]] = banks[i+1]; + i += 2; + } while (banks[i] != 0); + + for (i = 0; i < 6; i++) { + bankstarts[i + 1] += bankstarts[i]; + } + + var3 = bankstarts[6]; + var1 = (memory_bank_ptrs[0].bankend - memory_bank_ptrs[0].bankstart); + for (i = 0; i < 7; i++) { + bankstarts[i] = ((s64)bankstarts[i] * var1) / var3; + } + + for (i = 0; i < 7; i++) { + bankstarts[i] = ALIGN16_b(bankstarts[i]); + } + + var2 = memory_bank_ptrs[0].bankstart; + for (i = 0; i < 6; i++) { + memory_bank_ptrs[i + 1].bankstart = bankstarts[i] + var2; + memory_bank_ptrs[i + 1].nextentry = 0; + memory_bank_ptrs[i + 1].bankend = bankstarts[i + 1] + var2; + } +} /** * A320 70009720 @@ -455,47 +99,40 @@ glabel mempSetBankStarts * accepts: A0=size, A1=bank */ #ifdef NONMATCHING -u32 mempAllocBytesInBank(u32 bytes,u8 bank) +u32 mempAllocBytesInBank(u32 bytes, u8 bank) { - uint next; - uint end; - int domemalloc; - int bankmask; - - bankmask = (bank & 0xff) << 4; - while( true ) { - domemalloc = needmemallocation; - next = *(uint *)((int)&memory_bank_ptrs[0].nextentry + bankmask); - if (next == 0) { - do { - /* WARNING: Do nothing block with infinite loop */ - } while( true ); + s32 temp_v0_2; + u32 next; + while (TRUE) { + if (memory_bank_ptrs[bank].nextentry == 0) { + while (TRUE) {} + needmemallocation = 1; } - end = *(uint *)((int)&memory_bank_ptrs[0].bankend + bankmask); - if (end < next) { + if (memory_bank_ptrs[bank].bankend < memory_bank_ptrs[bank].nextentry) { nulled_mempLoopAllMemBanks(); - do { - /* WARNING: Do nothing block with infinite loop */ - } while( true ); + while (TRUE) {} } - if (next + bytes <= end) { - *(int *)((int)&memory_bank_ptrs[0].nextentry + bankmask) = next + bytes; - *(uint *)((int)&memory_bank_ptrs[0].data2 + bankmask) = next; - return next; + if ((memory_bank_ptrs[bank].nextentry + bytes) >= memory_bank_ptrs[bank].bankend) { + break; } - if ((uint)memory_bank_ptrs[6].bankend < memory_bank_ptrs[6].nextentry + bytes) break; - needmemallocation = 1; - if (domemalloc == 0) { - bankmask = 0x60; - } - else { - bankmask = 0x60; + if (memory_bank_ptrs[6].bankend >= (memory_bank_ptrs[6].nextentry + bytes)) { + temp_v0_2 = needmemallocation; + needmemallocation = 1; + bank = 6; + if (temp_v0_2 == 0) { + continue; + } + } else { + nulled_mempLoopAllMemBanks(); + while (TRUE) {} } } - nulled_mempLoopAllMemBanks(); - do { - /* WARNING: Do nothing block with infinite loop */ - } while( true ); + + next = memory_bank_ptrs[bank].nextentry; + memory_bank_ptrs[bank].nextentry += bytes; + memory_bank_ptrs[bank].data2 = next; + + return next; } #else GLOBAL_ASM( @@ -569,55 +206,46 @@ glabel mempAllocBytesInBank ) #endif - - -/** - * A404 70009804 - * ???; updates bank A2 size registry in light of entry at A0 of size A1 - * accepts: A0=p->allocated data, A1=size of data, A2=bank# - */ #ifdef NONMATCHING -u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank) +// Mostly regalloc +s32 mempAddEntryOfSizeToBank(u8* ptrdata, u32 newsize, u8 bank) { - u32 entry; - u32 retval; + s32 oldsize; + s32 diffsize; - if ((needmemallocation != 0) && (ptrdata == memory_bank_ptrs[6].data2)) { + if (needmemallocation && (ptrdata == (u8*)memory_bank_ptrs[6].data2)) { bank = 6; } - entry = memory_bank_ptrs[bank].nextentry; - if (entry == 0) { - do { - /* WARNING: Do nothing block with infinite loop */ - } while( 1 ); + + if (memory_bank_ptrs[bank].nextentry == 0) { + while(TRUE) {} } - if (ptrdata == memory_bank_ptrs[bank].data2) { - size = size - (entry - (int)memory_bank_ptrs[bank].data2); - if (size < 1) { - memory_bank_ptrs[bank].nextentry = entry + size; - retval = 1; - } - else { - if (memory_bank_ptrs[bank].bankend < entry) { - nulled_mempLoopAllMemBanks(); - do { - /* WARNING: Do nothing block with infinite loop */ - } while( 1 ); - } - if (memory_bank_ptrs[bank].bankend < entry + size) { - nulled_mempLoopAllMemBanks(); - do { - /* WARNING: Do nothing block with infinite loop */ - } while( 1 ); - } - memory_bank_ptrs[bank].nextentry = entry + size; - retval = 1; - } + + if (ptrdata != (u8*)memory_bank_ptrs[bank].data2) { + return 2; } - else { - retval = 2; + + oldsize = (memory_bank_ptrs[bank].nextentry - memory_bank_ptrs[bank].data2); + diffsize = (newsize - oldsize); + + if (diffsize <= 0) { + memory_bank_ptrs[bank].nextentry += diffsize; + return 1; } - return retval; + + if (memory_bank_ptrs[bank].nextentry > memory_bank_ptrs[bank].bankend) { + nulled_mempLoopAllMemBanks(); + while(TRUE) {} + } + + if (memory_bank_ptrs[bank].nextentry + diffsize > memory_bank_ptrs[bank].bankend) { + nulled_mempLoopAllMemBanks(); + while(TRUE) {} + } + + memory_bank_ptrs[bank].nextentry += diffsize; + + return 1; } #else GLOBAL_ASM( @@ -695,74 +323,34 @@ glabel mempAddEntryOfSizeToBank ) #endif - - -/** - * A4F0 700098F0 - * V0=8 -- loop eight times, needlessly; fries AT,T6 - * used by "show mem use", step 1; probably originally listed all eight memory allocations - */ - -void nulled_mempLoopAllMemBanks(void) -{ - s32 bank; - for (bank = 1; bank < 7; bank = (bank + 1) & 0xff) - { - ; - }; +void nulled_mempLoopAllMemBanks(void) { + u8 bank; + for (bank = 1; bank < 7; bank++) {} } -/** - * A510 70009910 - * V0= total allocated size of bank A0 - * accepts: A0=bank# - */ -s32 mempGetBankSizeLeft(u8 bank) -{ - if (needmemallocation != 0) { +s32 mempGetBankSizeLeft(u8 bank) { + if (needmemallocation) { bank = 6; } + if ((bank == 4) && (memory_bank_ptrs[4].bankstart == memory_bank_ptrs[4].bankend)) { bank = 6; } + return memory_bank_ptrs[bank].bankend - memory_bank_ptrs[bank].nextentry; } - - - - -/** - * A570 70009970 - * allocate A0 coded #bytes in bank - * accepts: A0=size/bank# entry (ssssssss ssssssss sssssssss sssssbbb) - */ - -u32 mempAllocPackedBytesInBank(u32 param_1) -{ - return mempAllocBytesInBank((param_1 >> 3),(param_1 & 7)); +// Last three bits contains the bank, the rest contains the size. +u32 mempAllocPackedBytesInBank(u32 sizeandbank) { + return mempAllocBytesInBank((sizeandbank >> 3), (sizeandbank & 7)); } - - - -/** - * A59C 7000999C - * reset memory bank A0 [0-6] - * copies base address for memory bank A0 to +4, fry +C - */ -void mempResetBank(u8 bank) -{ +void mempResetBank(u8 bank) { memory_bank_ptrs[bank].data2 = 0; memory_bank_ptrs[bank].nextentry = memory_bank_ptrs[bank].bankstart; } -/** - * A5C4 700099C4 - * accepts: A0=bank# - */ -void mempNullNextEntryInBank(u8 bank) -{ +void mempNullNextEntryInBank(u8 bank) { nulled_mempLoopAllMemBanks(); if (memory_bank_ptrs[bank].nextentry != 0) { memory_bank_ptrs[bank].nextentry = 0; diff --git a/src/memp.h b/src/memp.h index 480d0fd..8bf0981 100644 --- a/src/memp.h +++ b/src/memp.h @@ -3,40 +3,34 @@ #include "ultra64.h" +/* +* Align to 16 bit boundary. Version "b", without preliminary addition. +*/ +#define ALIGN16_b(val) (((val) | 0xf) ^ 0xf) + typedef struct s_mempBANK { - s32 bankstart; - s32 nextentry; - s32 bankend; - s32 data2; + u32 bankstart; + u32 nextentry; + u32 bankend; + u32 data2; } s_mempBANK; typedef struct s_mempMVALS { - u32 D_80024410; - u32 D_80024414; - u32 mf; - u32 D_8002441C; - u32 ml; - u32 D_80024424; - u32 me; - u32 D_8002442C; - u32 D_80024430; + u32 var1; + u32 var2; + u32 var3; + u32 var4; + u32 var5; + u32 var6; + u32 var7; + u32 var8; } s_mempMVALS; -typedef struct s_mempMEMSTARTS { - s32 bank1start; - s32 bank2start; - s32 bank3start; - s32 bank4start; - s32 bank5start; - s32 bank6start; - s32 bank7start; -} s_mempMEMSTARTS; - void mempInitDebugNoticeList(void); void mempCheckMemflagTokens(int bstart,int bsize); -void mempSetBankStarts(int *banks); +void mempSetBankStarts(s32 banks[8]); u32 mempAllocBytesInBank(u32 bytes,u8 bank); -u32 mempAddEntryOfSizeToBank(u8* ptrdata,u32 size,u8 bank); +s32 mempAddEntryOfSizeToBank(u8* ptrdata, u32 size, u8 bank); void nulled_mempLoopAllMemBanks(void); s32 mempGetBankSizeLeft(u8 bank); u32 mempAllocPackedBytesInBank(u32 param_1); diff --git a/src/motor.c b/src/motor.c index 5c15b3a..16c956e 100644 --- a/src/motor.c +++ b/src/motor.c @@ -1,490 +1,137 @@ #include "ultra64.h" #include "libultra/controller.h" -//0x800655a0 -char _MotorStopData[256]; -//800656a0 -char _MotorStartData[256]; -//800657a0 + +OSPifRam _MotorStopData[MAXCONTROLLERS]; +OSPifRam _MotorStartData[MAXCONTROLLERS]; u8 _motorstopbuf[32]; -//800657c0 u8 _motorstartbuf[32]; - - - -#ifdef NONMATCHING s32 osMotorStop(OSPfs *pfs) { + int i; + s32 ret; + u8 *ptr; + __OSContRamReadFormat ramreadformat; + ptr = (u8*)&__osPfsPifRam; + + __osSiGetAccess(); + + __osContLastCmd = CONT_CMD_WRITE_MEMPACK; + __osSiRawStartDma(OS_WRITE, &_MotorStopData[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ptr = (u8*)&__osPfsPifRam; + + if (pfs->channel != 0) + for (i = 0; i < pfs->channel; i++) + ptr++; + + ramreadformat = *(__OSContRamReadFormat*)ptr; + ret = CHNL_ERR(ramreadformat); + if (ret == 0 && ramreadformat.datacrc != 0) { + ret = PFS_ERR_CONTRFAIL; + } + __osSiRelAccess(); + return ret; } -#else -GLOBAL_ASM( -.text -glabel osMotorStop -/* 00D580 7000C980 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 00D584 7000C984 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D588 7000C988 0C005798 */ jal __osSiGetAccess -/* 00D58C 7000C98C AFA40050 */ sw $a0, 0x50($sp) -/* 00D590 7000C990 8FAF0050 */ lw $t7, 0x50($sp) -/* 00D594 7000C994 240E0003 */ li $t6, 3 -/* 00D598 7000C998 3C018006 */ lui $at, %hi(__osContLastCmd) -/* 00D59C 7000C99C A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) -/* 00D5A0 7000C9A0 8DF80008 */ lw $t8, 8($t7) -/* 00D5A4 7000C9A4 3C088006 */ lui $t0, %hi(_MotorStopData) -/* 00D5A8 7000C9A8 250855A0 */ addiu $t0, %lo(_MotorStopData) # addiu $t0, $t0, 0x55a0 -/* 00D5AC 7000C9AC 0018C980 */ sll $t9, $t8, 6 -/* 00D5B0 7000C9B0 03282821 */ addu $a1, $t9, $t0 -/* 00D5B4 7000C9B4 0C0057B4 */ jal __osSiRawStartDma -/* 00D5B8 7000C9B8 24040001 */ li $a0, 1 -/* 00D5BC 7000C9BC 8FA90050 */ lw $t1, 0x50($sp) -/* 00D5C0 7000C9C0 00002825 */ move $a1, $zero -/* 00D5C4 7000C9C4 24060001 */ li $a2, 1 -/* 00D5C8 7000C9C8 0C003774 */ jal osRecvMesg -/* 00D5CC 7000C9CC 8D240004 */ lw $a0, 4($t1) -/* 00D5D0 7000C9D0 3C058006 */ lui $a1, %hi(__osPfsPifRam) -/* 00D5D4 7000C9D4 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 -/* 00D5D8 7000C9D8 0C0057B4 */ jal __osSiRawStartDma -/* 00D5DC 7000C9DC 00002025 */ move $a0, $zero -/* 00D5E0 7000C9E0 8FAA0050 */ lw $t2, 0x50($sp) -/* 00D5E4 7000C9E4 00002825 */ move $a1, $zero -/* 00D5E8 7000C9E8 24060001 */ li $a2, 1 -/* 00D5EC 7000C9EC 0C003774 */ jal osRecvMesg -/* 00D5F0 7000C9F0 8D440004 */ lw $a0, 4($t2) -/* 00D5F4 7000C9F4 8FAB0050 */ lw $t3, 0x50($sp) -/* 00D5F8 7000C9F8 3C038006 */ lui $v1, %hi(__osPfsPifRam) -/* 00D5FC 7000C9FC 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 -/* 00D600 7000CA00 8D640008 */ lw $a0, 8($t3) -/* 00D604 7000CA04 27AC001C */ addiu $t4, $sp, 0x1c -/* 00D608 7000CA08 50800008 */ beql $a0, $zero, .L7000CA2C -/* 00D60C 7000CA0C 00607825 */ move $t7, $v1 -/* 00D610 7000CA10 18800005 */ blez $a0, .L7000CA28 -/* 00D614 7000CA14 00001025 */ move $v0, $zero -.L7000CA18: -/* 00D618 7000CA18 24420001 */ addiu $v0, $v0, 1 -/* 00D61C 7000CA1C 0044082A */ slt $at, $v0, $a0 -/* 00D620 7000CA20 1420FFFD */ bnez $at, .L7000CA18 -/* 00D624 7000CA24 24630001 */ addiu $v1, $v1, 1 -.L7000CA28: -/* 00D628 7000CA28 00607825 */ move $t7, $v1 -.L7000CA2C: -/* 00D62C 7000CA2C 246E0024 */ addiu $t6, $v1, 0x24 -.L7000CA30: -/* 00D630 7000CA30 89E10000 */ lwl $at, ($t7) -/* 00D634 7000CA34 99E10003 */ lwr $at, 3($t7) -/* 00D638 7000CA38 25EF000C */ addiu $t7, $t7, 0xc -/* 00D63C 7000CA3C 258C000C */ addiu $t4, $t4, 0xc -/* 00D640 7000CA40 AD81FFF4 */ sw $at, -0xc($t4) -/* 00D644 7000CA44 89E1FFF8 */ lwl $at, -8($t7) -/* 00D648 7000CA48 99E1FFFB */ lwr $at, -5($t7) -/* 00D64C 7000CA4C AD81FFF8 */ sw $at, -8($t4) -/* 00D650 7000CA50 89E1FFFC */ lwl $at, -4($t7) -/* 00D654 7000CA54 99E1FFFF */ lwr $at, -1($t7) -/* 00D658 7000CA58 15EEFFF5 */ bne $t7, $t6, .L7000CA30 -/* 00D65C 7000CA5C AD81FFFC */ sw $at, -4($t4) -/* 00D660 7000CA60 89E10000 */ lwl $at, ($t7) -/* 00D664 7000CA64 99E10003 */ lwr $at, 3($t7) -/* 00D668 7000CA68 AD810000 */ sw $at, ($t4) -/* 00D66C 7000CA6C 93A2001E */ lbu $v0, 0x1e($sp) -/* 00D670 7000CA70 93A80042 */ lbu $t0, 0x42($sp) -/* 00D674 7000CA74 305800C0 */ andi $t8, $v0, 0xc0 -/* 00D678 7000CA78 00182103 */ sra $a0, $t8, 4 -/* 00D67C 7000CA7C 14800004 */ bnez $a0, .L7000CA90 -/* 00D680 7000CA80 00000000 */ nop -/* 00D684 7000CA84 11000002 */ beqz $t0, .L7000CA90 -/* 00D688 7000CA88 00000000 */ nop -/* 00D68C 7000CA8C 24040004 */ li $a0, 4 -.L7000CA90: -/* 00D690 7000CA90 0C0057A9 */ jal __osSiRelAccess -/* 00D694 7000CA94 AFA40048 */ sw $a0, 0x48($sp) -/* 00D698 7000CA98 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D69C 7000CA9C 8FA20048 */ lw $v0, 0x48($sp) -/* 00D6A0 7000CAA0 27BD0050 */ addiu $sp, $sp, 0x50 -/* 00D6A4 7000CAA4 03E00008 */ jr $ra -/* 00D6A8 7000CAA8 00000000 */ nop -) -#endif - - -#ifdef NONMATCHING s32 osMotorStart(OSPfs *pfs) { + int i; + s32 ret; + u8 *ptr; + __OSContRamReadFormat ramreadformat; + ptr = (u8 *)&__osPfsPifRam; + + __osSiGetAccess(); + + __osContLastCmd = CONT_CMD_WRITE_MEMPACK; + __osSiRawStartDma(OS_WRITE, &_MotorStartData[pfs->channel]); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ret = __osSiRawStartDma(OS_READ, &__osPfsPifRam); + osRecvMesg(pfs->queue, NULL, OS_MESG_BLOCK); + ptr = (u8 *)&__osPfsPifRam; + + if (pfs->channel != 0) + for (i = 0; i < pfs->channel; i++) + ptr++; + + ramreadformat = *(__OSContRamReadFormat *)ptr; + ret = CHNL_ERR(ramreadformat); + if (ret == 0 && ramreadformat.datacrc != 0xEB) + { + ret = PFS_ERR_CONTRFAIL; + } + __osSiRelAccess(); + return ret; } -#else -GLOBAL_ASM( -.text -glabel osMotorStart -/* 00D6AC 7000CAAC 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 00D6B0 7000CAB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 00D6B4 7000CAB4 0C005798 */ jal __osSiGetAccess -/* 00D6B8 7000CAB8 AFA40050 */ sw $a0, 0x50($sp) -/* 00D6BC 7000CABC 8FAF0050 */ lw $t7, 0x50($sp) -/* 00D6C0 7000CAC0 240E0003 */ li $t6, 3 -/* 00D6C4 7000CAC4 3C018006 */ lui $at, %hi(__osContLastCmd) -/* 00D6C8 7000CAC8 A02E7CE0 */ sb $t6, %lo(__osContLastCmd)($at) -/* 00D6CC 7000CACC 8DF80008 */ lw $t8, 8($t7) -/* 00D6D0 7000CAD0 3C088006 */ lui $t0, %hi(_MotorStartData) -/* 00D6D4 7000CAD4 250856A0 */ addiu $t0, %lo(_MotorStartData) # addiu $t0, $t0, 0x56a0 -/* 00D6D8 7000CAD8 0018C980 */ sll $t9, $t8, 6 -/* 00D6DC 7000CADC 03282821 */ addu $a1, $t9, $t0 -/* 00D6E0 7000CAE0 0C0057B4 */ jal __osSiRawStartDma -/* 00D6E4 7000CAE4 24040001 */ li $a0, 1 -/* 00D6E8 7000CAE8 8FA90050 */ lw $t1, 0x50($sp) -/* 00D6EC 7000CAEC 00002825 */ move $a1, $zero -/* 00D6F0 7000CAF0 24060001 */ li $a2, 1 -/* 00D6F4 7000CAF4 0C003774 */ jal osRecvMesg -/* 00D6F8 7000CAF8 8D240004 */ lw $a0, 4($t1) -/* 00D6FC 7000CAFC 3C058006 */ lui $a1, %hi(__osPfsPifRam) -/* 00D700 7000CB00 24A57D70 */ addiu $a1, %lo(__osPfsPifRam) # addiu $a1, $a1, 0x7d70 -/* 00D704 7000CB04 0C0057B4 */ jal __osSiRawStartDma -/* 00D708 7000CB08 00002025 */ move $a0, $zero -/* 00D70C 7000CB0C 8FAA0050 */ lw $t2, 0x50($sp) -/* 00D710 7000CB10 00002825 */ move $a1, $zero -/* 00D714 7000CB14 24060001 */ li $a2, 1 -/* 00D718 7000CB18 0C003774 */ jal osRecvMesg -/* 00D71C 7000CB1C 8D440004 */ lw $a0, 4($t2) -/* 00D720 7000CB20 8FAB0050 */ lw $t3, 0x50($sp) -/* 00D724 7000CB24 3C038006 */ lui $v1, %hi(__osPfsPifRam) -/* 00D728 7000CB28 24637D70 */ addiu $v1, %lo(__osPfsPifRam) # addiu $v1, $v1, 0x7d70 -/* 00D72C 7000CB2C 8D640008 */ lw $a0, 8($t3) -/* 00D730 7000CB30 27AC001C */ addiu $t4, $sp, 0x1c -/* 00D734 7000CB34 50800008 */ beql $a0, $zero, .L7000CB58 -/* 00D738 7000CB38 00607825 */ move $t7, $v1 -/* 00D73C 7000CB3C 18800005 */ blez $a0, .L7000CB54 -/* 00D740 7000CB40 00001025 */ move $v0, $zero -.L7000CB44: -/* 00D744 7000CB44 24420001 */ addiu $v0, $v0, 1 -/* 00D748 7000CB48 0044082A */ slt $at, $v0, $a0 -/* 00D74C 7000CB4C 1420FFFD */ bnez $at, .L7000CB44 -/* 00D750 7000CB50 24630001 */ addiu $v1, $v1, 1 -.L7000CB54: -/* 00D754 7000CB54 00607825 */ move $t7, $v1 -.L7000CB58: -/* 00D758 7000CB58 246E0024 */ addiu $t6, $v1, 0x24 -.L7000CB5C: -/* 00D75C 7000CB5C 89E10000 */ lwl $at, ($t7) -/* 00D760 7000CB60 99E10003 */ lwr $at, 3($t7) -/* 00D764 7000CB64 25EF000C */ addiu $t7, $t7, 0xc -/* 00D768 7000CB68 258C000C */ addiu $t4, $t4, 0xc -/* 00D76C 7000CB6C AD81FFF4 */ sw $at, -0xc($t4) -/* 00D770 7000CB70 89E1FFF8 */ lwl $at, -8($t7) -/* 00D774 7000CB74 99E1FFFB */ lwr $at, -5($t7) -/* 00D778 7000CB78 AD81FFF8 */ sw $at, -8($t4) -/* 00D77C 7000CB7C 89E1FFFC */ lwl $at, -4($t7) -/* 00D780 7000CB80 99E1FFFF */ lwr $at, -1($t7) -/* 00D784 7000CB84 15EEFFF5 */ bne $t7, $t6, .L7000CB5C -/* 00D788 7000CB88 AD81FFFC */ sw $at, -4($t4) -/* 00D78C 7000CB8C 89E10000 */ lwl $at, ($t7) -/* 00D790 7000CB90 99E10003 */ lwr $at, 3($t7) -/* 00D794 7000CB94 AD810000 */ sw $at, ($t4) -/* 00D798 7000CB98 93A2001E */ lbu $v0, 0x1e($sp) -/* 00D79C 7000CB9C 93A80042 */ lbu $t0, 0x42($sp) -/* 00D7A0 7000CBA0 240100EB */ li $at, 235 -/* 00D7A4 7000CBA4 305800C0 */ andi $t8, $v0, 0xc0 -/* 00D7A8 7000CBA8 00182103 */ sra $a0, $t8, 4 -/* 00D7AC 7000CBAC 14800004 */ bnez $a0, .L7000CBC0 -/* 00D7B0 7000CBB0 00000000 */ nop -/* 00D7B4 7000CBB4 11010002 */ beq $t0, $at, .L7000CBC0 -/* 00D7B8 7000CBB8 00000000 */ nop -/* 00D7BC 7000CBBC 24040004 */ li $a0, 4 -.L7000CBC0: -/* 00D7C0 7000CBC0 0C0057A9 */ jal __osSiRelAccess -/* 00D7C4 7000CBC4 AFA40048 */ sw $a0, 0x48($sp) -/* 00D7C8 7000CBC8 8FBF0014 */ lw $ra, 0x14($sp) -/* 00D7CC 7000CBCC 8FA20048 */ lw $v0, 0x48($sp) -/* 00D7D0 7000CBD0 27BD0050 */ addiu $sp, $sp, 0x50 -/* 00D7D4 7000CBD4 03E00008 */ jr $ra -/* 00D7D8 7000CBD8 00000000 */ nop -) -#endif - - -#ifdef NONMATCHING -void _MakeMotorData(int channel,u16 address,u8 *buffer,OSPifRam *mdata) +void _MakeMotorData(int channel, u16 address, u8 *buffer, OSPifRam *mdata) { + u8 *ptr; + __OSContRamReadFormat ramreadformat; + int i; + ptr = (u8 *)mdata->ramarray; + for (i = 0; i < ARRLEN(mdata->ramarray); i++) + mdata->ramarray[i] = 0; + mdata->pifstatus = CONT_CMD_EXE; + ramreadformat.dummy = CONT_CMD_NOP; + ramreadformat.txsize = CONT_CMD_WRITE_MEMPACK_TX; + ramreadformat.rxsize = CONT_CMD_WRITE_MEMPACK_RX; + ramreadformat.cmd = CONT_CMD_WRITE_MEMPACK; + ramreadformat.address = (address << 0x5) | __osContAddressCrc(address); + ramreadformat.datacrc = CONT_CMD_NOP; + for (i = 0; i < ARRLEN(ramreadformat.data); i++) + ramreadformat.data[i] = *buffer++; + if (channel != 0) + { + for (i = 0; i < channel; i++) + { + *ptr++ = 0; + } + } + *(__OSContRamReadFormat *)ptr = ramreadformat; + ptr += sizeof(__OSContRamReadFormat); + ptr[0] = CONT_CMD_END; } -#else -GLOBAL_ASM( -.text -glabel _MakeMotorData -/* 00D7DC 7000CBDC 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 00D7E0 7000CBE0 AFB00018 */ sw $s0, 0x18($sp) -/* 00D7E4 7000CBE4 00808025 */ move $s0, $a0 -/* 00D7E8 7000CBE8 AFBF001C */ sw $ra, 0x1c($sp) -/* 00D7EC 7000CBEC AFA5005C */ sw $a1, 0x5c($sp) -/* 00D7F0 7000CBF0 00E01825 */ move $v1, $a3 -/* 00D7F4 7000CBF4 00004025 */ move $t0, $zero -/* 00D7F8 7000CBF8 00E01025 */ move $v0, $a3 -.L7000CBFC: -/* 00D7FC 7000CBFC 25080001 */ addiu $t0, $t0, 1 -/* 00D800 7000CC00 2901000F */ slti $at, $t0, 0xf -/* 00D804 7000CC04 24420004 */ addiu $v0, $v0, 4 -/* 00D808 7000CC08 1420FFFC */ bnez $at, .L7000CBFC -/* 00D80C 7000CC0C AC40FFFC */ sw $zero, -4($v0) -/* 00D810 7000CC10 240E0001 */ li $t6, 1 -/* 00D814 7000CC14 ACEE003C */ sw $t6, 0x3c($a3) -/* 00D818 7000CC18 240F00FF */ li $t7, 255 -/* 00D81C 7000CC1C 24180023 */ li $t8, 35 -/* 00D820 7000CC20 24190001 */ li $t9, 1 -/* 00D824 7000CC24 24090003 */ li $t1, 3 -/* 00D828 7000CC28 A3AF002C */ sb $t7, 0x2c($sp) -/* 00D82C 7000CC2C A3B8002D */ sb $t8, 0x2d($sp) -/* 00D830 7000CC30 A3B9002E */ sb $t9, 0x2e($sp) -/* 00D834 7000CC34 A3A9002F */ sb $t1, 0x2f($sp) -/* 00D838 7000CC38 AFA60060 */ sw $a2, 0x60($sp) -/* 00D83C 7000CC3C AFA30054 */ sw $v1, 0x54($sp) -/* 00D840 7000CC40 0C0057E0 */ jal __osContAddressCrc -/* 00D844 7000CC44 97A4005E */ lhu $a0, 0x5e($sp) -/* 00D848 7000CC48 97AA005E */ lhu $t2, 0x5e($sp) -/* 00D84C 7000CC4C 240D00FF */ li $t5, 255 -/* 00D850 7000CC50 8FA30054 */ lw $v1, 0x54($sp) -/* 00D854 7000CC54 000A5940 */ sll $t3, $t2, 5 -/* 00D858 7000CC58 004B6025 */ or $t4, $v0, $t3 -/* 00D85C 7000CC5C A7AC0030 */ sh $t4, 0x30($sp) -/* 00D860 7000CC60 8FA60060 */ lw $a2, 0x60($sp) -/* 00D864 7000CC64 A3AD0052 */ sb $t5, 0x52($sp) -/* 00D868 7000CC68 27A2004C */ addiu $v0, $sp, 0x4c -/* 00D86C 7000CC6C 27A4002C */ addiu $a0, $sp, 0x2c -.L7000CC70: -/* 00D870 7000CC70 90CE0000 */ lbu $t6, ($a2) -/* 00D874 7000CC74 24840001 */ addiu $a0, $a0, 1 -/* 00D878 7000CC78 0082082B */ sltu $at, $a0, $v0 -/* 00D87C 7000CC7C 24C60001 */ addiu $a2, $a2, 1 -/* 00D880 7000CC80 1420FFFB */ bnez $at, .L7000CC70 -/* 00D884 7000CC84 A08E0005 */ sb $t6, 5($a0) -/* 00D888 7000CC88 12000012 */ beqz $s0, .L7000CCD4 -/* 00D88C 7000CC8C 27AF002C */ addiu $t7, $sp, 0x2c -/* 00D890 7000CC90 1A000010 */ blez $s0, .L7000CCD4 -/* 00D894 7000CC94 00004025 */ move $t0, $zero -/* 00D898 7000CC98 32040003 */ andi $a0, $s0, 3 -/* 00D89C 7000CC9C 10800006 */ beqz $a0, .L7000CCB8 -/* 00D8A0 7000CCA0 00801025 */ move $v0, $a0 -.L7000CCA4: -/* 00D8A4 7000CCA4 25080001 */ addiu $t0, $t0, 1 -/* 00D8A8 7000CCA8 A0600000 */ sb $zero, ($v1) -/* 00D8AC 7000CCAC 1448FFFD */ bne $v0, $t0, .L7000CCA4 -/* 00D8B0 7000CCB0 24630001 */ addiu $v1, $v1, 1 -/* 00D8B4 7000CCB4 11100007 */ beq $t0, $s0, .L7000CCD4 -.L7000CCB8: -/* 00D8B8 7000CCB8 25080004 */ addiu $t0, $t0, 4 -/* 00D8BC 7000CCBC A0600001 */ sb $zero, 1($v1) -/* 00D8C0 7000CCC0 A0600002 */ sb $zero, 2($v1) -/* 00D8C4 7000CCC4 A0600003 */ sb $zero, 3($v1) -/* 00D8C8 7000CCC8 24630004 */ addiu $v1, $v1, 4 -/* 00D8CC 7000CCCC 1510FFFA */ bne $t0, $s0, .L7000CCB8 -/* 00D8D0 7000CCD0 A060FFFC */ sb $zero, -4($v1) -.L7000CCD4: -/* 00D8D4 7000CCD4 00604825 */ move $t1, $v1 -/* 00D8D8 7000CCD8 25F90024 */ addiu $t9, $t7, 0x24 -.L7000CCDC: -/* 00D8DC 7000CCDC 8DE10000 */ lw $at, ($t7) -/* 00D8E0 7000CCE0 25EF000C */ addiu $t7, $t7, 0xc -/* 00D8E4 7000CCE4 2529000C */ addiu $t1, $t1, 0xc -/* 00D8E8 7000CCE8 A921FFF4 */ swl $at, -0xc($t1) -/* 00D8EC 7000CCEC B921FFF7 */ swr $at, -9($t1) -/* 00D8F0 7000CCF0 8DE1FFF8 */ lw $at, -8($t7) -/* 00D8F4 7000CCF4 A921FFF8 */ swl $at, -8($t1) -/* 00D8F8 7000CCF8 B921FFFB */ swr $at, -5($t1) -/* 00D8FC 7000CCFC 8DE1FFFC */ lw $at, -4($t7) -/* 00D900 7000CD00 A921FFFC */ swl $at, -4($t1) -/* 00D904 7000CD04 15F9FFF5 */ bne $t7, $t9, .L7000CCDC -/* 00D908 7000CD08 B921FFFF */ swr $at, -1($t1) -/* 00D90C 7000CD0C 8DE10000 */ lw $at, ($t7) -/* 00D910 7000CD10 240A00FE */ li $t2, 254 -/* 00D914 7000CD14 24630028 */ addiu $v1, $v1, 0x28 -/* 00D918 7000CD18 A9210000 */ swl $at, ($t1) -/* 00D91C 7000CD1C B9210003 */ swr $at, 3($t1) -/* 00D920 7000CD20 A06A0000 */ sb $t2, ($v1) -/* 00D924 7000CD24 8FBF001C */ lw $ra, 0x1c($sp) -/* 00D928 7000CD28 8FB00018 */ lw $s0, 0x18($sp) -/* 00D92C 7000CD2C 27BD0058 */ addiu $sp, $sp, 0x58 -/* 00D930 7000CD30 03E00008 */ jr $ra -/* 00D934 7000CD34 00000000 */ nop -) -#endif +s32 osMotorInit(OSMesgQueue *mq, OSPfs *pfs, int channel) +{ + int i; + s32 ret; + u8 temp[32]; + pfs->queue = mq; + pfs->channel = channel; + pfs->status = 0; + pfs->activebank = 128; + for (i = 0; i < ARRLEN(temp); i++) + temp[i] = 128; -#ifdef NONMATCHING -s32 osMotorInit(OSMesgQueue *mq,OSPfs *pfs,int channel) { - s32 sp2C; - ? sp30; - ? sp50; - u32 temp_v0; - ? temp_ret; - void *temp_v1; - s32 temp_v0_2; + ret = __osContRamWrite(mq, channel, 1024, temp, FALSE); + if (ret == 2) //TODO: remove magic constant + ret = __osContRamWrite(mq, channel, 1024, temp, FALSE); + if (ret != 0) + return ret; - // Node 0 - arg1->unk4 = arg0; - arg1->unk8 = arg2; - *arg1 = 0; - arg1->unk65 = (u8)0x80; - // Node 1 - temp_v0 = (&sp30 + 1); - temp_v0->unk-1 = (u8)0x80; - if (temp_v0 < &sp50) + ret = __osContRamRead(mq, channel, 1024, temp); + + if (ret != 0) + return ret; + if (temp[31] != 128) + return PFS_ERR_DEVICE; + + for (i = 0; i < ARRLEN(_motorstartbuf); i++) { - goto loop_1; + _motorstartbuf[i] = 1; + _motorstopbuf[i] = 0; } - // Node 2 - temp_ret = __osContRamWrite(arg2, 0x400, &sp30, 0); - if (temp_ret == 2) - { - // Node 3 - __osContRamWrite(arg16, arg2, 0x400, &sp30, 0); - } - // Node 4 - if (temp_ret != 0) - { - // Node 5 - } - else - { - // Node 6 - if (__osContRamRead(arg16, arg2, 0x400, &sp30) != 0) - { - // Node 7 - return; - // (possible return value: __osContRamRead(arg16, arg2, 0x400, &sp30)) - } - // Node 8 - if (sp4F != 0x80) - { - // Node 9 - } - else - { - // Node 10 - // Node 11 - temp_v1 = (&_motorstopbuf + 4); - _motorstartbuf.unk1 = (u8)1; - temp_v1->unk-3 = (u8)0; - _motorstartbuf.unk2 = (u8)1; - temp_v1->unk-2 = (u8)0; - _motorstartbuf.unk3 = (u8)1; - temp_v1->unk-1 = (u8)0; - (&_motorstartbuf + 4)->unk-4 = (u8)1; - temp_v1->unk-4 = (u8)0; - if (temp_v1 != &_motorstartbuf) - { - goto loop_11; - } - // Node 12 - temp_v0_2 = (arg2 << 6); - sp2C = temp_v0_2; - _MakeMotorData(arg2, 0x600, &_motorstartbuf, (temp_v0_2 + &_MotorStartData)); - _MakeMotorData(arg2, 0x600, &_motorstopbuf, (sp2C + &_MotorStopData)); - } - } - // Node 13 - return; - // (possible return value: 0) + _MakeMotorData(channel, 1536, _motorstartbuf, &_MotorStartData[channel]); + _MakeMotorData(channel, 1536, _motorstopbuf, &_MotorStopData[channel]); + + return 0; } -#else -GLOBAL_ASM( -.text -glabel osMotorInit -/* 00D938 7000CD38 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 00D93C 7000CD3C AFB00020 */ sw $s0, 0x20($sp) -/* 00D940 7000CD40 AFBF0024 */ sw $ra, 0x24($sp) -/* 00D944 7000CD44 24070080 */ li $a3, 128 -/* 00D948 7000CD48 00C08025 */ move $s0, $a2 -/* 00D94C 7000CD4C ACA40004 */ sw $a0, 4($a1) -/* 00D950 7000CD50 ACA60008 */ sw $a2, 8($a1) -/* 00D954 7000CD54 ACA00000 */ sw $zero, ($a1) -/* 00D958 7000CD58 A0A70065 */ sb $a3, 0x65($a1) -/* 00D95C 7000CD5C 27A20030 */ addiu $v0, $sp, 0x30 -/* 00D960 7000CD60 27A30050 */ addiu $v1, $sp, 0x50 -.L7000CD64: -/* 00D964 7000CD64 24420001 */ addiu $v0, $v0, 1 -/* 00D968 7000CD68 0043082B */ sltu $at, $v0, $v1 -/* 00D96C 7000CD6C 1420FFFD */ bnez $at, .L7000CD64 -/* 00D970 7000CD70 A047FFFF */ sb $a3, -1($v0) -/* 00D974 7000CD74 02002825 */ move $a1, $s0 -/* 00D978 7000CD78 24060400 */ li $a2, 1024 -/* 00D97C 7000CD7C 27A70030 */ addiu $a3, $sp, 0x30 -/* 00D980 7000CD80 AFA00010 */ sw $zero, 0x10($sp) -/* 00D984 7000CD84 0C005840 */ jal __osContRamWrite -/* 00D988 7000CD88 AFA40058 */ sw $a0, 0x58($sp) -/* 00D98C 7000CD8C 24010002 */ li $at, 2 -/* 00D990 7000CD90 14410008 */ bne $v0, $at, .L7000CDB4 -/* 00D994 7000CD94 00401825 */ move $v1, $v0 -/* 00D998 7000CD98 8FA40058 */ lw $a0, 0x58($sp) -/* 00D99C 7000CD9C 02002825 */ move $a1, $s0 -/* 00D9A0 7000CDA0 24060400 */ li $a2, 1024 -/* 00D9A4 7000CDA4 27A70030 */ addiu $a3, $sp, 0x30 -/* 00D9A8 7000CDA8 0C005840 */ jal __osContRamWrite -/* 00D9AC 7000CDAC AFA00010 */ sw $zero, 0x10($sp) -/* 00D9B0 7000CDB0 00401825 */ move $v1, $v0 -.L7000CDB4: -/* 00D9B4 7000CDB4 10400003 */ beqz $v0, .L7000CDC4 -/* 00D9B8 7000CDB8 8FA40058 */ lw $a0, 0x58($sp) -/* 00D9BC 7000CDBC 10000033 */ b .L7000CE8C -/* 00D9C0 7000CDC0 00601025 */ move $v0, $v1 -.L7000CDC4: -/* 00D9C4 7000CDC4 02002825 */ move $a1, $s0 -/* 00D9C8 7000CDC8 24060400 */ li $a2, 1024 -/* 00D9CC 7000CDCC 0C00592C */ jal __osContRamRead -/* 00D9D0 7000CDD0 27A70030 */ addiu $a3, $sp, 0x30 -/* 00D9D4 7000CDD4 10400003 */ beqz $v0, .L7000CDE4 -/* 00D9D8 7000CDD8 93AE004F */ lbu $t6, 0x4f($sp) -/* 00D9DC 7000CDDC 1000002C */ b .L7000CE90 -/* 00D9E0 7000CDE0 8FBF0024 */ lw $ra, 0x24($sp) -.L7000CDE4: -/* 00D9E4 7000CDE4 24010080 */ li $at, 128 -/* 00D9E8 7000CDE8 11C10003 */ beq $t6, $at, .L7000CDF8 -/* 00D9EC 7000CDEC 3C048006 */ lui $a0, %hi(_motorstartbuf) -/* 00D9F0 7000CDF0 10000026 */ b .L7000CE8C -/* 00D9F4 7000CDF4 2402000B */ li $v0, 11 -.L7000CDF8: -/* 00D9F8 7000CDF8 3C038006 */ lui $v1, %hi(_motorstopbuf) -/* 00D9FC 7000CDFC 3C058006 */ lui $a1, %hi(_motorstartbuf) -/* 00DA00 7000CE00 24A557C0 */ addiu $a1, %lo(_motorstartbuf) # addiu $a1, $a1, 0x57c0 -/* 00DA04 7000CE04 246357A0 */ addiu $v1, %lo(_motorstopbuf) # addiu $v1, $v1, 0x57a0 -/* 00DA08 7000CE08 248457C0 */ addiu $a0, %lo(_motorstartbuf) # addiu $a0, $a0, 0x57c0 -/* 00DA0C 7000CE0C 24020001 */ li $v0, 1 -.L7000CE10: -/* 00DA10 7000CE10 24630004 */ addiu $v1, $v1, 4 -/* 00DA14 7000CE14 A0820001 */ sb $v0, 1($a0) -/* 00DA18 7000CE18 A060FFFD */ sb $zero, -3($v1) -/* 00DA1C 7000CE1C A0820002 */ sb $v0, 2($a0) -/* 00DA20 7000CE20 A060FFFE */ sb $zero, -2($v1) -/* 00DA24 7000CE24 A0820003 */ sb $v0, 3($a0) -/* 00DA28 7000CE28 A060FFFF */ sb $zero, -1($v1) -/* 00DA2C 7000CE2C 24840004 */ addiu $a0, $a0, 4 -/* 00DA30 7000CE30 A082FFFC */ sb $v0, -4($a0) -/* 00DA34 7000CE34 1465FFF6 */ bne $v1, $a1, .L7000CE10 -/* 00DA38 7000CE38 A060FFFC */ sb $zero, -4($v1) -/* 00DA3C 7000CE3C 3C0F8006 */ lui $t7, %hi(_MotorStartData) -/* 00DA40 7000CE40 25EF56A0 */ addiu $t7, %lo(_MotorStartData) # addiu $t7, $t7, 0x56a0 -/* 00DA44 7000CE44 3C068006 */ lui $a2, %hi(_motorstartbuf) -/* 00DA48 7000CE48 00101180 */ sll $v0, $s0, 6 -/* 00DA4C 7000CE4C 004F3821 */ addu $a3, $v0, $t7 -/* 00DA50 7000CE50 AFA2002C */ sw $v0, 0x2c($sp) -/* 00DA54 7000CE54 24C657C0 */ addiu $a2, %lo(_motorstartbuf) # addiu $a2, $a2, 0x57c0 -/* 00DA58 7000CE58 02002025 */ move $a0, $s0 -/* 00DA5C 7000CE5C 0C0032F7 */ jal _MakeMotorData -/* 00DA60 7000CE60 24050600 */ li $a1, 1536 -/* 00DA64 7000CE64 8FA2002C */ lw $v0, 0x2c($sp) -/* 00DA68 7000CE68 3C188006 */ lui $t8, %hi(_MotorStopData) -/* 00DA6C 7000CE6C 271855A0 */ addiu $t8, %lo(_MotorStopData) # addiu $t8, $t8, 0x55a0 -/* 00DA70 7000CE70 3C068006 */ lui $a2, %hi(_motorstopbuf) -/* 00DA74 7000CE74 24C657A0 */ addiu $a2, %lo(_motorstopbuf) # addiu $a2, $a2, 0x57a0 -/* 00DA78 7000CE78 02002025 */ move $a0, $s0 -/* 00DA7C 7000CE7C 24050600 */ li $a1, 1536 -/* 00DA80 7000CE80 0C0032F7 */ jal _MakeMotorData -/* 00DA84 7000CE84 00583821 */ addu $a3, $v0, $t8 -/* 00DA88 7000CE88 00001025 */ move $v0, $zero -.L7000CE8C: -/* 00DA8C 7000CE8C 8FBF0024 */ lw $ra, 0x24($sp) -.L7000CE90: -/* 00DA90 7000CE90 8FB00020 */ lw $s0, 0x20($sp) -/* 00DA94 7000CE94 27BD0058 */ addiu $sp, $sp, 0x58 -/* 00DA98 7000CE98 03E00008 */ jr $ra -/* 00DA9C 7000CE9C 00000000 */ nop -) -#endif diff --git a/src/music.c b/src/music.c index b68f55d..2691c76 100644 --- a/src/music.c +++ b/src/music.c @@ -1,2138 +1,1421 @@ #include "ultra64.h" +#include "include/PR/libaudio.h" +#include "inflate/inflate.h" +#include "audi.h" +#include "bondconstants.h" +#include "decompress.h" +#include "dyn.h" +#include "memp.h" +#include "music.h" #include "ramrom.h" #include "snd.h" /** * @file music.c - * This file contains code to handle music. + * This file contains code to init/load music from + * ROM; play/stop specific tracks; and to fade in/out. */ -s32 music_unused = 0; -s32 music1_track_num = 0; -u16 music1len = 0x7FFF; -s32 music2_track_num = 0; -u16 music2len = 0x7FFF; -s32 music3_track_num = 0; -u16 music3len = 0x7FFF; -s32 music1_playing = 0; -s32 music2_playing = 0; -s32 music3_playing = 0; -s16 music_tempo_array[] = { -0x6665,0x7332,0x7332,0x7998,0x7332,0x5998,0x6665,0x6665,0x6665,0x6665,0x7332, -0x6665,0x7332,0x6665,0x6665,0x7332,0x7332,0x6665,0x3FFF,0x6665,0x6665, -0x3FFF,0x6665,0x6665,0x6665,0x6665,0x6665,0x7998,0x6665,0x5998,0x6665, -0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x5998,0x6665,0x3332,0x6665, -0x7332,0x7332,0x5998,0x7332,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665, -0x6665,0x6CCB,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x6665,0x7332, -0x6665,0x7332,0x7998,0xFFFF }; +#ifdef VERSION_EU +#define FADE_FRAMERATE 50.0f +#else +#define FADE_FRAMERATE 60.0f +#endif + +#define VOLUME_MAX 0x7fff + +/** + * Counting definitions for music in this file, there + * are 63 distinct entries. This exlcudes the "NONE" music + * and control sequence entries. + */ +#define NUM_MUSIC_TRACKS 63 + +/** + * Similar to NUM_MUSIC_TRACKS, but also counts "NONE" track + * and control sequence. + */ +#define MAX_NUM_MUSIC_TRACKS_W_NONE (NUM_MUSIC_TRACKS + 2) + +/** + * Bytes allocated by call to mempAllocBytesInBank. This sets up a local heap, + * the rest of the memory allocations in this file come from this heap. + */ +#define MUSIC_ALLOCATION_BYTES 0x2E000 +#define MUSIC_MEMP_BANK 6 + +/** + * This is an address (cast to pointer on use). + */ +#define ROM_MUSIC_START_OFFSET 0x10000U + +/** + * The number of bytes allocated in the method call (alHeapDBAlloc) is approx NUMBER*size. + * This is always set to one in this file... + */ +#define MUSIC_HEAP_NUMBER 1 + +#define MUSIC_SYN_CONFIG_MAX_P_VOICES 0x18 +#define MUSIC_SYN_CONFIG_MAX_UPDATES 0x80 + +#define MUSIC_SEQ_CONFIG_MAX_VOICES 0x10 +#define MUSIC_SEQ_CONFIG_MAX_EVENTS 0x40 +#define MUSIC_SEQ_CONFIG_MAX_CHANNELS 16 + +#define MUSIC_SFX_SEQ_CONFIG_MAX_VOICES 0x40 +#define MUSIC_SFX_SEQ_CONFIG_MAX_EVENTS 0x40 +#define MUSIC_SFX_SEQ_CONFIG_CHANNEL 8 + +// +// carnivorous shared default midi allocations from editor: +// main address: 80710800 +// main size: 5000 +// watch size: 1000 +// xtrack size: 3000 +#define TRACK_1_DATA_SEQ_SIZE_BYTES 6344 +#define TRACK_2_DATA_SEQ_SIZE_BYTES 2000 +#define TRACK_3_DATA_SEQ_SIZE_BYTES 4000 + +#define MUSIC_CONFIG_USE_SFX_BANK 1 +#define MUSIC_CONFIG_USE_INSTRUMENT_BANK 1 + +// TODO: what is this? +// This is only used when playing a file (loading from ROM), +// but the only thing used is the seqData pointer, the large array +// seems unused. +struct music_struct_b { + u8 data[8438]; + u8 *seqData; +}; + +s32 g_musicUnused = 0; + +/** + * Current playing track. Sometimes compared to zero to check + * if there is any currently playing music. + * Address 0x80024334. + */ +s32 g_musicXTrack1CurrentTrackNum = 0; + +/** + * Address 0x80024338. + */ +u16 g_musicXTrack1Volume = VOLUME_MAX; + +/** + * Current playing track. Sometimes compared to zero to check + * if there is any currently playing music. + * Address 0x8002433C. + */ +s32 g_musicXTrack2CurrentTrackNum = 0; + +/** + * Address 0x80024340. + */ +u16 g_musicXTrack2Volume = VOLUME_MAX; + +/** + * Current playing track. Sometimes compared to zero to check + * if there is any currently playing music. + * Address 0x80024344. + */ +s32 g_musicXTrack3CurrentTrackNum = 0; + +/** + * Address 0x80024348. + */ +u16 g_musicXTrack3Volume = VOLUME_MAX; + +/** + * Current fade in/out state. + * Address 0x8002434c. + */ +s32 g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; + +/** + * Current fade in/out state. + * Address 0x80024350. + */ +s32 g_musicXTrack2Fade = MUSIC_FADESTATE_UNSET; + +/** + * Current fade in/out state. + * Address 0x80024354. + */ +s32 g_musicXTrack3Fade = MUSIC_FADESTATE_UNSET; + +/** + * This serves a two part purpose. + * 1) This is the default volume for music tracks, in the sense of default-on-boot value. + * 2) At run time, a new "default" can be set for a track, and that will overwrite the value here. + */ +s16 g_musicDefaultTrackVolume[MAX_NUM_MUSIC_TRACKS_W_NONE] = { + /** + * Index 0, M_NONE. + */ + 0x6665, + + /** + * Index 1, M_SHORT_SOLO_DEATH. + */ + 0x7332, + + /** + * Index 2, M_INTRO. + */ + 0x7332, + + /** + * Index 3, M_TRAIN. + */ + 0x7998, + + /** + * Index 4, M_DEPOT. + */ + 0x7332, + + /** + * Index 5, M_MPTHEME. + */ + 0x5998, + + /** + * Index 6, M_CITADEL. + */ + 0x6665, + + /** + * Index 7, M_FACILITY. + */ + 0x6665, + + /** + * Index 8, M_CONTROL. + */ + 0x6665, + + /** + * Index 9, M_DAM. + */ + 0x6665, + + /** + * Index 10, M_FRIGATE. + */ + 0x7332, + + /** + * Index 11, M_ARCHIVES. + */ + 0x6665, + + /** + * Index 12, M_SILO. + */ + 0x7332, + + /** + * Index 13, M_MPTHEME2. + */ + 0x6665, + + /** + * Index 14, M_STREETS. + */ + 0x6665, + + /** + * Index 15, M_BUNKER1. + */ + 0x7332, + + /** + * Index 16, M_BUNKER2. + */ + 0x7332, + + /** + * Index 17, M_STATUE. + */ + 0x6665, + + /** + * Index 18, M_ELEVATOR_CONTROL. + */ + 0x3FFF, + + /** + * Index 19, M_CRADLE. + */ + 0x6665, + + /** + * Index 20, M_UNK. + */ + 0x6665, + + /** + * Index 21, M_ELEVATOR_WC. + */ + 0x3FFF, + + /** + * Index 22, M_EGYPTIAN. + */ + 0x6665, + + /** + * Index 23, M_FOLDERS. + */ + 0x6665, + + /** + * Index 24, M_WATCH. + */ + 0x6665, + + /** + * Index 25, M_AZTEC. + */ + 0x6665, + + /** + * Index 26, M_WATERCAVERNS. + */ + 0x6665, + + /** + * Index 27, M_DEATHSOLO. + */ + 0x7998, + + /** + * Index 28, M_SURFACE2. + */ + 0x6665, + + /** + * Index 29, M_TRAINX. + */ + 0x5998, + + /** + * Index 30, M_UNK2. + */ + 0x6665, + + /** + * Index 31, M_FACILITYX. + */ + 0x6665, + + /** + * Index 32, M_DEPOTX. + */ + 0x6665, + + /** + * Index 33, M_CONTROLX. + */ + 0x6665, + + /** + * Index 34, M_WATERCAVERNSX. + */ + 0x6665, + + /** + * Index 35, M_DAMX. + */ + 0x6665, + + /** + * Index 36, M_FRIGATEX. + */ + 0x6665, + + /** + * Index 37, M_ARCHIVESX. + */ + 0x5998, + + /** + * Index 38, M_SILOX. + */ + 0x6665, + + /** + * Index 39, M_EGYPTIANX. + */ + 0x3332, + + /** + * Index 40, M_STREETSX. + */ + 0x6665, + + /** + * Index 41, M_BUNKER1X. + */ + 0x7332, + + /** + * Index 42, M_BUNKER2X. + */ + 0x7332, + + /** + * Index 43, M_JUNGLEX. + */ + 0x5998, + + /** + * Index 44, M_INTROSWOOSH. + */ + 0x7332, + + /** + * Index 45, M_STATUEX. + */ + 0x6665, + + /** + * Index 46, M_AZTECX. + */ + 0x6665, + + /** + * Index 47, M_EGYPTX. + */ + 0x6665, + + /** + * Index 48, M_CRADLEX. + */ + 0x6665, + + /** + * Index 49, M_CUBA. + */ + 0x6665, + + /** + * Index 50, M_RUNWAY. + */ + 0x6665, + + /** + * Index 51, M_RUNWAYPLANE. + */ + 0x6665, + + /** + * Index 52, M_MPTHEME3. + */ + 0x6CCB, + + /** + * Index 53, M_WIND. + */ + 0x6665, + + /** + * Index 54, M_GUITARGLISS. + */ + 0x6665, + + /** + * Index 55, M_JUNGLE. + */ + 0x6665, + + /** + * Index 56, M_RUNWAYX. + */ + 0x6665, + + /** + * Index 57, M_SURFACE1. + */ + 0x6665, + + /** + * Index 58, M_MPDEATH. + */ + 0x6665, + + /** + * Index 59, M_SURFACE2X. + */ + 0x6665, + + /** + * Index 60, M_SURFACE2END. + */ + 0x7332, + + /** + * Index 61, M_STATUEPART. + */ + 0x6665, + + /** + * Index 62, M_END_SOMETHING. + */ + 0x7332, + + /** + * Index 63, unknown / unused / removed. + */ + 0x7998, + + /** + * Index 64, control sequence. (some loops check for 0xffff). + */ + 0xFFFF +}; + +ALHeap g_musicHeap; + +/** + * Sound bank data. + */ +ALBank *g_musicSfxBufferPtr; + +/** + * Name comes from referencing _instrumentstblSegmentRomStart + */ +ALBank *g_musicInstrumentBufferPtr; + +ALCSPlayer *g_musicXTrack1SeqPlayer; +ALCSPlayer *g_musicXTrack2SeqPlayer; +ALCSPlayer *g_musicXTrack3SeqPlayer; + +ALSeqFile *g_musicDataTable; + +/** + * ROM offsets for music tracks. + */ +u16 g_musicTrackOffset[NUM_MUSIC_TRACKS + 1]; + +/** + * ROM lengths for music tracks. + */ +u16 g_musicTrackLength[NUM_MUSIC_TRACKS]; +s16 g_musicUnused80063836; +/** +* Compact sequence data pointer, track 1. +*/ +u8 *g_musicXTrack1SeqData; -/*not sure why this is called hp, maybe for heap? */ -u32 hp[4]; -u32 *ptr_sfx_buf; -s32 D_80063724; -s32 seqp_1; -s32 seqp_2; -s32 seqp_3; -void *ptr_musicdatatable; +/** +* Compact sequence data pointer, track 2. +*/ +u8 *g_musicXTrack2SeqData; + +/** +* Compact sequence data pointer, track 3. +*/ +u8 *g_musicXTrack3SeqData; + +/** + * Volume of the music track saved at start of fade out. + */ +u16 g_musicXTrack1PreFadeSavedVolume; + +/** + * Volume of the music track saved at start of fade out. + */ +u16 g_musicXTrack2PreFadeSavedVolume; + +/** + * Volume of the music track saved at start of fade out. + */ +u16 g_musicXTrack3PreFadeSavedVolume; + +/** + * Destination volume of fade. For example, for full fade out this will be zero. + */ +s16 g_musicXTrack1FadeToVolume; + +/** + * Destination volume of fade. For example, for full fade out this will be zero. + */ +s16 g_musicXTrack2FadeToVolume; + +/** + * Destination volume of fade. For example, for full fade out this will be zero. + */ +s16 g_musicXTrack3FadeToVolume; + +/** + * Number of frames remaining for the current fade out. + */ +s32 g_musicXTrack1FadeRemainingFrames; + +/** + * Number of frames remaining for the current fade out. + */ +s32 g_musicXTrack2FadeRemainingFrames; + +/** + * Number of frames remaining for the current fade out. + */ +s32 g_musicXTrack3FadeRemainingFrames; + +s32 g_musicUnused8006385C; + +/** + * compact sequence, track 1 + */ +ALCSeq g_musicXTrack1Seq; + +/** + * compact sequence, track 2 + */ +ALCSeq g_musicXTrack2Seq; + +/** + * compact sequence, track 3 + */ +ALCSeq g_musicXTrack3Seq; + +s32 g_musicUnused80063B58; +s32 g_musicUnused80063B54; -char D_80063738[0x80]; -char D_800637B8[0x7E]; -s16 D_80063836; -s32 D_80063838; -s32 D_8006383C; -s32 D_80063840; -s16 musicTrack1_length; -s16 D_80063846; -s16 D_80063848; -s16 music1_length; -s16 music2_length; -s16 music3_length; -s32 music1_rate; -s32 music2_rate; -s32 music3_rate; -s32 D_8006385C; -char D_80063860[0xF8]; -char D_80063958[0xF8]; -char D_80063A50[0x100]; char D_80063B50[0x54]; s32 D_80063BA4; s32 D_80063BA8; - - +extern u32 _sfxtblSegmentRomStart; +extern u32 _sfxctlSegmentRomStart; +extern u32 _instrumentstblSegmentRomStart; +extern u32 _instrumentsctlSegmentRomStart; +extern u32 _musicsampletblSegmentRomStart; /** * 75F0 700069F0 + * Patch the file so that offsets are pointers. + * This is a copy of alSeqFileNew from n64devkit\ultra\usr\src\pr\libsrc\libultra\audio\bnkf.c */ -#ifdef NONMATCHING -s32 audio_related(void *arg0, s32 arg1) { - // Node 0 - if (*arg0 > 0) - { - loop_1: - // Node 1 - (arg0 + 8)->unk-4 = (s32) (arg0->unk4 + arg1); - if ((0 + 1) < *arg0) - { - goto loop_1; - } +void musicSeqFileNew(ALSeqFile *file, u8 *base) +{ + s32 offset = (s32) base; + s32 i; + + /* + * patch the file so that offsets are pointers + */ + for (i = 0; i < file->seqCount; i++) { + file->seqArray[i].address = (u8 *)((u8 *)file->seqArray[i].address + offset); } - // (possible return value: 0) } -#else -GLOBAL_ASM( -.text -glabel audio_related -/* 0075F0 700069F0 948E0000 */ lhu $t6, ($a0) -/* 0075F4 700069F4 00001025 */ move $v0, $zero -/* 0075F8 700069F8 00801825 */ move $v1, $a0 -/* 0075FC 700069FC 19C0000A */ blez $t6, .L70006A28 -/* 007600 70006A00 00000000 */ nop -/* 007604 70006A04 8C6F0004 */ lw $t7, 4($v1) -.L70006A08: -/* 007608 70006A08 24420001 */ addiu $v0, $v0, 1 -/* 00760C 70006A0C 24630008 */ addiu $v1, $v1, 8 -/* 007610 70006A10 01E5C021 */ addu $t8, $t7, $a1 -/* 007614 70006A14 AC78FFFC */ sw $t8, -4($v1) -/* 007618 70006A18 94990000 */ lhu $t9, ($a0) -/* 00761C 70006A1C 0059082A */ slt $at, $v0, $t9 -/* 007620 70006A20 5420FFF9 */ bnezl $at, .L70006A08 -/* 007624 70006A24 8C6F0004 */ lw $t7, 4($v1) -.L70006A28: -/* 007628 70006A28 03E00008 */ jr $ra -/* 00762C 70006A2C 00000000 */ nop -) -#endif - - /** * 7630 70006A30 * loads sound and music banks into memory segment 6 + * + * Seems to be roughly based on auSeqPlayerInit in n64devkit\ultra\usr\src\pr\demos_old\nnsample2\audio.c */ -#ifdef NONMATCHING -void setupaudio(void) { - s32 sp38; - s32 sp40; - ?32 sp50; - ?32 sp54; - s8 sp58; - ?32 sp60; - ?32 sp64; - ?32 sp68; - ?32 sp6C; - ?32 sp70; - s8 sp74; - ?32 sp7C; - ?32 sp80; - ?32 sp84; - ?32 sp88; - ?32 sp8C; - s8 sp90; - ?32 sp98; - ?32 sp9C; - ?32 spA0; - ?32 spA4; - ?32 spA8; - ?32 spAC; - ?32 spB4; - ?32 spBC; - s8 spC0; - s32 spCC; - s32 spD4; - ?32 spD8; - ?32 spDC; - ?32 spE0; - ? temp_ret; - u32 temp_v1; - s32 temp_v0; - ? temp_ret_2; - s32 temp_v0_2; - ? temp_ret_3; - ? temp_ret_4; - s32 temp_v1_2; - ? temp_ret_5; - ? temp_ret_6; - s16 temp_t4; - void *temp_a0; - void *temp_a1; - s32 temp_v0_3; - u32 phi_v1; - void *phi_a0; - void *phi_v1_2; - void *phi_a1; +void musicSeqPlayerInit(void) +{ + // guess at struct. + ALSeqpSfxConfig sfxSeqpConfig; // sp 216-228 + ALBankFile *sfxBank; // sp 212 + u32 ui; + ALBankFile *instrumentBank; // sp 204 - // Node 0 - if (bootswitch_sound == 0) + // This type/cast is not correct, but this is how it matches. + s32 tblSegmentRomStartAddress = (s32)&_musicsampletblSegmentRomStart; // ?? + + ALSynConfig synconfig; // sp 164-192 + ALSeqpConfig track1SeqpConfig; // sp 136-160 + ALSeqpConfig track2SeqpConfig; // sp 108-132 + ALSeqpConfig track3SeqpConfig; // sp 80-104 + u8 *mempAddress; + u8 *p; + u16 d; + u32 tblSegmentSize; // sp 64 + u32 size; // sp56; + + if (bootswitch_sound) { - // Node 1 - temp_ret = mempAllocBytesInBank(0x2e000, 6); - phi_v1 = temp_ret; -loop_2: - // Node 2 - temp_v1 = (phi_v1 + 1); - temp_v1->unk-1 = (u8)0; - phi_v1 = temp_v1; - if (temp_v1 < (u32) (temp_ret + 0x2e000)) - { - goto loop_2; - } - // Node 3 - alHeapInit(&hp, temp_ret, 0x2e000); - temp_v0 = (&_sfxtblSegmentRomStart - &_sfxctlSegmentRomStart); - sp38 = temp_v0; - temp_ret_2 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0); - spD4 = temp_ret_2; - romCopy(temp_ret_2, &_sfxctlSegmentRomStart, sp38); - alBnkfNew(spD4, &_sfxtblSegmentRomStart); - temp_v0_2 = (&_instrumentstblSegmentRomStart - &_instrumentsctlSegmentRomStart); - sp38 = temp_v0_2; - ptr_sfx_buf = (?32) spD4->unk4; - temp_ret_3 = alHeapDBAlloc(0, 0, &hp, 1, temp_v0_2); - spCC = temp_ret_3; - romCopy(temp_ret_3, &_instrumentsctlSegmentRomStart, sp38); - alBnkfNew(spCC, &_instrumentstblSegmentRomStart); - D_80063724 = (?32) spCC->unk4; - temp_ret_4 = alHeapDBAlloc(0, 0, &hp, 1, 0x10); - ptr_musicdatatable = temp_ret_4; - romCopy(temp_ret_4, &_musicsampletblSegmentRomStart, 0x10); - temp_v1_2 = ((*ptr_musicdatatable * 8) + 4); - sp40 = temp_v1_2; - temp_ret_5 = alHeapDBAlloc(0, 0, &hp, 1, temp_v1_2); - ptr_musicdatatable = temp_ret_5; - romCopy(temp_ret_5, sp38, (((temp_v1_2 + 0xf) | 0xf) ^ 0xf), &ptr_musicdatatable); - audio_related(ptr_musicdatatable, &_musicsampletblSegmentRomStart); - D_80063838 = alHeapDBAlloc(0, 0, &hp, 1, 0x18c8); - temp_ret_6 = alHeapDBAlloc(0, 0, &hp, 1, 0x1770); - D_8006383C = temp_ret_6; - D_80063840 = (s32) (temp_ret_6 + 0x7d0); - phi_a0 = (void *) ptr_musicdatatable; - phi_v1_2 = &D_80063738; - phi_a1 = &D_800637B8; -loop_4: - // Node 4 - temp_t4 = phi_a0->unk8; - temp_a0 = (phi_a0 + 8); - temp_a1 = (phi_a1 + 2); - *phi_v1_2 = temp_t4; - temp_v0_3 = (temp_t4 & 0xffff); - temp_a1->unk-2 = (s16) temp_a0->unk2; - if ((temp_v0_3 & 1) != 0) - { - // Node 5 - *phi_v1_2 = (s16) (temp_v0_3 + 1); - } - // Node 6 - phi_a0 = temp_a0; - phi_v1_2 = (phi_v1_2 + 2); - phi_a1 = temp_a1; - if (temp_a1 != &D_80063836) - { - goto loop_4; - } - // Node 7 - spA4 = 0; - spA8 = 0x18; - spAC = 0x80; - spB4 = 0; - spC0 = (u8)6; - spBC = 0; - amCreateAudioMgr(&spA4, temp_a1, &D_80063836, &D_8006383C); - - sp88 = 0x10; - sp8C = 0x40; - sp90 = (u8)0x10; - sp98 = 0; - sp9C = 0; - spA0 = 0; - - sp6C = 0x10; - sp70 = 0x40; - sp74 = (u8)0x10; - sp7C = 0; - sp80 = 0; - sp84 = 0; - - sp50 = 0x10; - sp54 = 0x40; - sp58 = (u8)0x10; - sp60 = 0; - sp64 = 0; - sp68 = 0; - seqp_1 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); - seqp_2 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); - seqp_3 = alHeapDBAlloc(0, 0, &hp, 1, 0x7c); - alCSPNew(seqp_1, &sp88); - alSeqpSetBank(seqp_1, D_80063724); - alCSPNew(seqp_2, &sp6C); - alSeqpSetBank(seqp_2, D_80063724); - alCSPNew(seqp_3, &sp50); - alSeqpSetBank(seqp_3, D_80063724); - spDC = 0x40; - spD8 = 0x40; - spE0 = 8; - sfx_c_70007B20(&spD8); - startaudiThread(); + return; } - // Node 8 - return; -} -#else -GLOBAL_ASM( -.text -glabel setupaudio -/* 007630 70006A30 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 007634 70006A34 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 007638 70006A38 27BDFF18 */ addiu $sp, $sp, -0xe8 -/* 00763C 70006A3C AFBF0024 */ sw $ra, 0x24($sp) -/* 007640 70006A40 15C00109 */ bnez $t6, .L70006E68 -/* 007644 70006A44 AFB00020 */ sw $s0, 0x20($sp) -/* 007648 70006A48 3C040002 */ lui $a0, (0x0002E000 >> 16) # lui $a0, 2 -/* 00764C 70006A4C 3484E000 */ ori $a0, (0x0002E000 & 0xFFFF) # ori $a0, $a0, 0xe000 -/* 007650 70006A50 0C0025C8 */ jal mempAllocBytesInBank -/* 007654 70006A54 24050006 */ li $a1, 6 -/* 007658 70006A58 3C010002 */ lui $at, (0x0002E000 >> 16) # lui $at, 2 -/* 00765C 70006A5C 3421E000 */ ori $at, (0x0002E000 & 0xFFFF) # ori $at, $at, 0xe000 -/* 007660 70006A60 00401825 */ move $v1, $v0 -/* 007664 70006A64 00402825 */ move $a1, $v0 -/* 007668 70006A68 00412021 */ addu $a0, $v0, $at -.L70006A6C: -/* 00766C 70006A6C 24630001 */ addiu $v1, $v1, 1 -/* 007670 70006A70 0064082B */ sltu $at, $v1, $a0 -/* 007674 70006A74 1420FFFD */ bnez $at, .L70006A6C -/* 007678 70006A78 A060FFFF */ sb $zero, -1($v1) -/* 00767C 70006A7C 3C108006 */ lui $s0, %hi(hp) -/* 007680 70006A80 26103710 */ addiu $s0, %lo(hp) # addiu $s0, $s0, 0x3710 -/* 007684 70006A84 3C060002 */ lui $a2, (0x0002E000 >> 16) # lui $a2, 2 -/* 007688 70006A88 34C6E000 */ ori $a2, (0x0002E000 & 0xFFFF) # ori $a2, $a2, 0xe000 -/* 00768C 70006A8C 0C00434C */ jal alHeapInit -/* 007690 70006A90 02002025 */ move $a0, $s0 -/* 007694 70006A94 3C0F002F */ lui $t7, %hi(_sfxtblSegmentRomStart) # $t7, 0x2f -/* 007698 70006A98 3C18002F */ lui $t8, %hi(_sfxctlSegmentRomStart) # $t8, 0x2f -/* 00769C 70006A9C 2718BDE0 */ addiu $t8, %lo(_sfxctlSegmentRomStart) # addiu $t8, $t8, -0x4220 -/* 0076A0 70006AA0 25EF19A0 */ addiu $t7, %lo(_sfxtblSegmentRomStart) # addiu $t7, $t7, 0x19a0 -/* 0076A4 70006AA4 01F81023 */ subu $v0, $t7, $t8 -/* 0076A8 70006AA8 AFA20010 */ sw $v0, 0x10($sp) -/* 0076AC 70006AAC AFA20038 */ sw $v0, 0x38($sp) -/* 0076B0 70006AB0 00002025 */ move $a0, $zero -/* 0076B4 70006AB4 00002825 */ move $a1, $zero -/* 0076B8 70006AB8 02003025 */ move $a2, $s0 -/* 0076BC 70006ABC 0C003AD4 */ jal alHeapDBAlloc -/* 0076C0 70006AC0 24070001 */ li $a3, 1 -/* 0076C4 70006AC4 3C05002F */ lui $a1, %hi(_sfxctlSegmentRomStart) # $a1, 0x2f -/* 0076C8 70006AC8 AFA200D4 */ sw $v0, 0xd4($sp) -/* 0076CC 70006ACC 24A5BDE0 */ addiu $a1, %lo(_sfxctlSegmentRomStart) # addiu $a1, $a1, -0x4220 -/* 0076D0 70006AD0 00402025 */ move $a0, $v0 -/* 0076D4 70006AD4 0C001707 */ jal romCopy -/* 0076D8 70006AD8 8FA60038 */ lw $a2, 0x38($sp) -/* 0076DC 70006ADC 3C05002F */ lui $a1, %hi(_sfxtblSegmentRomStart) # $a1, 0x2f -/* 0076E0 70006AE0 24A519A0 */ addiu $a1, %lo(_sfxtblSegmentRomStart) # addiu $a1, $a1, 0x19a0 -/* 0076E4 70006AE4 0C00439D */ jal alBnkfNew -/* 0076E8 70006AE8 8FA400D4 */ lw $a0, 0xd4($sp) -/* 0076EC 70006AEC 8FB900D4 */ lw $t9, 0xd4($sp) -/* 0076F0 70006AF0 3C09003C */ lui $t1, %hi(_instrumentstblSegmentRomStart) # $t1, 0x3c -/* 0076F4 70006AF4 3C0A003B */ lui $t2, %hi(_instrumentsctlSegmentRomStart) # $t2, 0x3b -/* 0076F8 70006AF8 8F280004 */ lw $t0, 4($t9) -/* 0076FC 70006AFC 254A4450 */ addiu $t2, %lo(_instrumentsctlSegmentRomStart) # addiu $t2, $t2, 0x4450 -/* 007700 70006B00 252987F0 */ addiu $t1, %lo(_instrumentstblSegmentRomStart) # addiu $t1, $t1, -0x7810 -/* 007704 70006B04 3C018006 */ lui $at, %hi(ptr_sfx_buf) -/* 007708 70006B08 012A1023 */ subu $v0, $t1, $t2 -/* 00770C 70006B0C AFA20010 */ sw $v0, 0x10($sp) -/* 007710 70006B10 AFA20038 */ sw $v0, 0x38($sp) -/* 007714 70006B14 00002025 */ move $a0, $zero -/* 007718 70006B18 00002825 */ move $a1, $zero -/* 00771C 70006B1C 02003025 */ move $a2, $s0 -/* 007720 70006B20 24070001 */ li $a3, 1 -/* 007724 70006B24 0C003AD4 */ jal alHeapDBAlloc -/* 007728 70006B28 AC283720 */ sw $t0, %lo(ptr_sfx_buf)($at) -/* 00772C 70006B2C 3C05003B */ lui $a1, %hi(_instrumentsctlSegmentRomStart) # $a1, 0x3b -/* 007730 70006B30 AFA200CC */ sw $v0, 0xcc($sp) -/* 007734 70006B34 24A54450 */ addiu $a1, %lo(_instrumentsctlSegmentRomStart) # addiu $a1, $a1, 0x4450 -/* 007738 70006B38 00402025 */ move $a0, $v0 -/* 00773C 70006B3C 0C001707 */ jal romCopy -/* 007740 70006B40 8FA60038 */ lw $a2, 0x38($sp) -/* 007744 70006B44 3C05003C */ lui $a1, %hi(_instrumentstblSegmentRomStart) # $a1, 0x3c -/* 007748 70006B48 24A587F0 */ addiu $a1, %lo(_instrumentstblSegmentRomStart) # addiu $a1, $a1, -0x7810 -/* 00774C 70006B4C 0C00439D */ jal alBnkfNew -/* 007750 70006B50 8FA400CC */ lw $a0, 0xcc($sp) -/* 007754 70006B54 8FAB00CC */ lw $t3, 0xcc($sp) -/* 007758 70006B58 3C018006 */ lui $at, %hi(D_80063724) -/* 00775C 70006B5C 240D0010 */ li $t5, 16 -/* 007760 70006B60 8D6C0004 */ lw $t4, 4($t3) -/* 007764 70006B64 AFAD0010 */ sw $t5, 0x10($sp) -/* 007768 70006B68 00002025 */ move $a0, $zero -/* 00776C 70006B6C 00002825 */ move $a1, $zero -/* 007770 70006B70 02003025 */ move $a2, $s0 -/* 007774 70006B74 24070001 */ li $a3, 1 -/* 007778 70006B78 0C003AD4 */ jal alHeapDBAlloc -/* 00777C 70006B7C AC2C3724 */ sw $t4, %lo(D_80063724)($at) -/* 007780 70006B80 3C038006 */ lui $v1, %hi(ptr_musicdatatable) -/* 007784 70006B84 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 -/* 007788 70006B88 24633734 */ addiu $v1, %lo(ptr_musicdatatable) # addiu $v1, $v1, 0x3734 -/* 00778C 70006B8C 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 -/* 007790 70006B90 AC620000 */ sw $v0, ($v1) -/* 007794 70006B94 AFA50038 */ sw $a1, 0x38($sp) -/* 007798 70006B98 00402025 */ move $a0, $v0 -/* 00779C 70006B9C 0C001707 */ jal romCopy -/* 0077A0 70006BA0 24060010 */ li $a2, 16 -/* 0077A4 70006BA4 3C0E8006 */ lui $t6, %hi(ptr_musicdatatable) -/* 0077A8 70006BA8 8DCE3734 */ lw $t6, %lo(ptr_musicdatatable)($t6) -/* 0077AC 70006BAC 00002025 */ move $a0, $zero -/* 0077B0 70006BB0 00002825 */ move $a1, $zero -/* 0077B4 70006BB4 95C30000 */ lhu $v1, ($t6) -/* 0077B8 70006BB8 02003025 */ move $a2, $s0 -/* 0077BC 70006BBC 24070001 */ li $a3, 1 -/* 0077C0 70006BC0 000378C0 */ sll $t7, $v1, 3 -/* 0077C4 70006BC4 25E30004 */ addiu $v1, $t7, 4 -/* 0077C8 70006BC8 AFA30010 */ sw $v1, 0x10($sp) -/* 0077CC 70006BCC 0C003AD4 */ jal alHeapDBAlloc -/* 0077D0 70006BD0 AFA30040 */ sw $v1, 0x40($sp) -/* 0077D4 70006BD4 8FA30040 */ lw $v1, 0x40($sp) -/* 0077D8 70006BD8 3C078006 */ lui $a3, %hi(ptr_musicdatatable) -/* 0077DC 70006BDC 24E73734 */ addiu $a3, %lo(ptr_musicdatatable) # addiu $a3, $a3, 0x3734 -/* 0077E0 70006BE0 2466000F */ addiu $a2, $v1, 0xf -/* 0077E4 70006BE4 34D8000F */ ori $t8, $a2, 0xf -/* 0077E8 70006BE8 ACE20000 */ sw $v0, ($a3) -/* 0077EC 70006BEC 3B06000F */ xori $a2, $t8, 0xf -/* 0077F0 70006BF0 00402025 */ move $a0, $v0 -/* 0077F4 70006BF4 0C001707 */ jal romCopy -/* 0077F8 70006BF8 8FA50038 */ lw $a1, 0x38($sp) -/* 0077FC 70006BFC 3C048006 */ lui $a0, %hi(ptr_musicdatatable) -/* 007800 70006C00 3C050042 */ lui $a1, %hi(_musicsampletblSegmentRomStart) # $a1, 0x42 -/* 007804 70006C04 24A59790 */ addiu $a1, %lo(_musicsampletblSegmentRomStart) # addiu $a1, $a1, -0x6870 -/* 007808 70006C08 0C001A7C */ jal audio_related -/* 00780C 70006C0C 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) -/* 007810 70006C10 240818C8 */ li $t0, 6344 -/* 007814 70006C14 AFA80010 */ sw $t0, 0x10($sp) -/* 007818 70006C18 00002025 */ move $a0, $zero -/* 00781C 70006C1C 00002825 */ move $a1, $zero -/* 007820 70006C20 02003025 */ move $a2, $s0 -/* 007824 70006C24 0C003AD4 */ jal alHeapDBAlloc -/* 007828 70006C28 24070001 */ li $a3, 1 -/* 00782C 70006C2C 3C018006 */ lui $at, %hi(D_80063838) -/* 007830 70006C30 24091770 */ li $t1, 6000 -/* 007834 70006C34 AC223838 */ sw $v0, %lo(D_80063838)($at) -/* 007838 70006C38 AFA90010 */ sw $t1, 0x10($sp) -/* 00783C 70006C3C 00002025 */ move $a0, $zero -/* 007840 70006C40 00002825 */ move $a1, $zero -/* 007844 70006C44 02003025 */ move $a2, $s0 -/* 007848 70006C48 0C003AD4 */ jal alHeapDBAlloc -/* 00784C 70006C4C 24070001 */ li $a3, 1 -/* 007850 70006C50 3C078006 */ lui $a3, %hi(D_8006383C) -/* 007854 70006C54 24E7383C */ addiu $a3, %lo(D_8006383C) # addiu $a3, $a3, 0x383c -/* 007858 70006C58 ACE20000 */ sw $v0, ($a3) -/* 00785C 70006C5C 244B07D0 */ addiu $t3, $v0, 0x7d0 -/* 007860 70006C60 3C018006 */ lui $at, %hi(D_80063840) -/* 007864 70006C64 3C038006 */ lui $v1, %hi(D_80063738) -/* 007868 70006C68 3C048006 */ lui $a0, %hi(ptr_musicdatatable) -/* 00786C 70006C6C 3C058006 */ lui $a1, %hi(D_800637B8) -/* 007870 70006C70 3C068006 */ lui $a2, %hi(D_80063836) -/* 007874 70006C74 AC2B3840 */ sw $t3, %lo(D_80063840)($at) -/* 007878 70006C78 24C63836 */ addiu $a2, %lo(D_80063836) # addiu $a2, $a2, 0x3836 -/* 00787C 70006C7C 24A537B8 */ addiu $a1, %lo(D_800637B8) # addiu $a1, $a1, 0x37b8 -/* 007880 70006C80 8C843734 */ lw $a0, %lo(ptr_musicdatatable)($a0) -/* 007884 70006C84 24633738 */ addiu $v1, %lo(D_80063738) # addiu $v1, $v1, 0x3738 -.L70006C88: -/* 007888 70006C88 948C0008 */ lhu $t4, 8($a0) -/* 00788C 70006C8C 24840008 */ addiu $a0, $a0, 8 -/* 007890 70006C90 24A50002 */ addiu $a1, $a1, 2 -/* 007894 70006C94 A46C0000 */ sh $t4, ($v1) -/* 007898 70006C98 948D0002 */ lhu $t5, 2($a0) -/* 00789C 70006C9C 3182FFFF */ andi $v0, $t4, 0xffff -/* 0078A0 70006CA0 304E0001 */ andi $t6, $v0, 1 -/* 0078A4 70006CA4 11C00003 */ beqz $t6, .L70006CB4 -/* 0078A8 70006CA8 A4ADFFFE */ sh $t5, -2($a1) -/* 0078AC 70006CAC 244F0001 */ addiu $t7, $v0, 1 -/* 0078B0 70006CB0 A46F0000 */ sh $t7, ($v1) -.L70006CB4: -/* 0078B4 70006CB4 14A6FFF4 */ bne $a1, $a2, .L70006C88 -/* 0078B8 70006CB8 24630002 */ addiu $v1, $v1, 2 -/* 0078BC 70006CBC 24180018 */ li $t8, 24 -/* 0078C0 70006CC0 24190080 */ li $t9, 128 -/* 0078C4 70006CC4 24080006 */ li $t0, 6 -/* 0078C8 70006CC8 AFA000A4 */ sw $zero, 0xa4($sp) -/* 0078CC 70006CCC AFB800A8 */ sw $t8, 0xa8($sp) -/* 0078D0 70006CD0 AFB900AC */ sw $t9, 0xac($sp) -/* 0078D4 70006CD4 AFA000B4 */ sw $zero, 0xb4($sp) -/* 0078D8 70006CD8 A3A800C0 */ sb $t0, 0xc0($sp) -/* 0078DC 70006CDC AFA000BC */ sw $zero, 0xbc($sp) -/* 0078E0 70006CE0 AFB000B8 */ sw $s0, 0xb8($sp) -/* 0078E4 70006CE4 0C0006F4 */ jal amCreateAudioMgr -/* 0078E8 70006CE8 27A400A4 */ addiu $a0, $sp, 0xa4 -/* 0078EC 70006CEC 24090010 */ li $t1, 16 -/* 0078F0 70006CF0 240A0040 */ li $t2, 64 -/* 0078F4 70006CF4 240B0010 */ li $t3, 16 -/* 0078F8 70006CF8 240C0010 */ li $t4, 16 -/* 0078FC 70006CFC 240D0040 */ li $t5, 64 -/* 007900 70006D00 240E0010 */ li $t6, 16 -/* 007904 70006D04 240F0010 */ li $t7, 16 -/* 007908 70006D08 24180040 */ li $t8, 64 -/* 00790C 70006D0C 24190010 */ li $t9, 16 -/* 007910 70006D10 2408007C */ li $t0, 124 -/* 007914 70006D14 AFA90088 */ sw $t1, 0x88($sp) -/* 007918 70006D18 AFAA008C */ sw $t2, 0x8c($sp) -/* 00791C 70006D1C A3AB0090 */ sb $t3, 0x90($sp) -/* 007920 70006D20 AFB00094 */ sw $s0, 0x94($sp) -/* 007924 70006D24 AFA00098 */ sw $zero, 0x98($sp) -/* 007928 70006D28 AFA0009C */ sw $zero, 0x9c($sp) -/* 00792C 70006D2C AFA000A0 */ sw $zero, 0xa0($sp) -/* 007930 70006D30 AFAC006C */ sw $t4, 0x6c($sp) -/* 007934 70006D34 AFAD0070 */ sw $t5, 0x70($sp) -/* 007938 70006D38 A3AE0074 */ sb $t6, 0x74($sp) -/* 00793C 70006D3C AFB00078 */ sw $s0, 0x78($sp) -/* 007940 70006D40 AFA0007C */ sw $zero, 0x7c($sp) -/* 007944 70006D44 AFA00080 */ sw $zero, 0x80($sp) -/* 007948 70006D48 AFA00084 */ sw $zero, 0x84($sp) -/* 00794C 70006D4C AFAF0050 */ sw $t7, 0x50($sp) -/* 007950 70006D50 AFB80054 */ sw $t8, 0x54($sp) -/* 007954 70006D54 A3B90058 */ sb $t9, 0x58($sp) -/* 007958 70006D58 AFB0005C */ sw $s0, 0x5c($sp) -/* 00795C 70006D5C AFA00060 */ sw $zero, 0x60($sp) -/* 007960 70006D60 AFA00064 */ sw $zero, 0x64($sp) -/* 007964 70006D64 AFA00068 */ sw $zero, 0x68($sp) -/* 007968 70006D68 AFA80010 */ sw $t0, 0x10($sp) -/* 00796C 70006D6C 00002025 */ move $a0, $zero -/* 007970 70006D70 00002825 */ move $a1, $zero -/* 007974 70006D74 02003025 */ move $a2, $s0 -/* 007978 70006D78 0C003AD4 */ jal alHeapDBAlloc -/* 00797C 70006D7C 24070001 */ li $a3, 1 -/* 007980 70006D80 3C018006 */ lui $at, %hi(seqp_1) -/* 007984 70006D84 2409007C */ li $t1, 124 -/* 007988 70006D88 AC223728 */ sw $v0, %lo(seqp_1)($at) -/* 00798C 70006D8C AFA90010 */ sw $t1, 0x10($sp) -/* 007990 70006D90 00002025 */ move $a0, $zero -/* 007994 70006D94 00002825 */ move $a1, $zero -/* 007998 70006D98 02003025 */ move $a2, $s0 -/* 00799C 70006D9C 0C003AD4 */ jal alHeapDBAlloc -/* 0079A0 70006DA0 24070001 */ li $a3, 1 -/* 0079A4 70006DA4 3C018006 */ lui $at, %hi(seqp_2) -/* 0079A8 70006DA8 240A007C */ li $t2, 124 -/* 0079AC 70006DAC AC22372C */ sw $v0, %lo(seqp_2)($at) -/* 0079B0 70006DB0 AFAA0010 */ sw $t2, 0x10($sp) -/* 0079B4 70006DB4 00002025 */ move $a0, $zero -/* 0079B8 70006DB8 00002825 */ move $a1, $zero -/* 0079BC 70006DBC 02003025 */ move $a2, $s0 -/* 0079C0 70006DC0 0C003AD4 */ jal alHeapDBAlloc -/* 0079C4 70006DC4 24070001 */ li $a3, 1 -/* 0079C8 70006DC8 3C018006 */ lui $at, %hi(seqp_3) -/* 0079CC 70006DCC 3C048006 */ lui $a0, %hi(seqp_1) -/* 0079D0 70006DD0 AC223730 */ sw $v0, %lo(seqp_3)($at) -/* 0079D4 70006DD4 8C843728 */ lw $a0, %lo(seqp_1)($a0) -/* 0079D8 70006DD8 0C004820 */ jal alCSPNew -/* 0079DC 70006DDC 27A50088 */ addiu $a1, $sp, 0x88 -/* 0079E0 70006DE0 3C048006 */ lui $a0, %hi(seqp_1) -/* 0079E4 70006DE4 3C058006 */ lui $a1, %hi(D_80063724) -/* 0079E8 70006DE8 8CA53724 */ lw $a1, %lo(D_80063724)($a1) -/* 0079EC 70006DEC 0C00487C */ jal alSeqpSetBank -/* 0079F0 70006DF0 8C843728 */ lw $a0, %lo(seqp_1)($a0) -/* 0079F4 70006DF4 3C048006 */ lui $a0, %hi(seqp_2) -/* 0079F8 70006DF8 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 0079FC 70006DFC 0C004820 */ jal alCSPNew -/* 007A00 70006E00 27A5006C */ addiu $a1, $sp, 0x6c -/* 007A04 70006E04 3C048006 */ lui $a0, %hi(seqp_2) -/* 007A08 70006E08 3C058006 */ lui $a1, %hi(D_80063724) -/* 007A0C 70006E0C 8CA53724 */ lw $a1, %lo(D_80063724)($a1) -/* 007A10 70006E10 0C00487C */ jal alSeqpSetBank -/* 007A14 70006E14 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 007A18 70006E18 3C048006 */ lui $a0, %hi(seqp_3) -/* 007A1C 70006E1C 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 007A20 70006E20 0C004820 */ jal alCSPNew -/* 007A24 70006E24 27A50050 */ addiu $a1, $sp, 0x50 -/* 007A28 70006E28 3C048006 */ lui $a0, %hi(seqp_3) -/* 007A2C 70006E2C 3C058006 */ lui $a1, %hi(D_80063724) -/* 007A30 70006E30 8CA53724 */ lw $a1, %lo(D_80063724)($a1) -/* 007A34 70006E34 0C00487C */ jal alSeqpSetBank -/* 007A38 70006E38 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 007A3C 70006E3C 240B0040 */ li $t3, 64 -/* 007A40 70006E40 240C0040 */ li $t4, 64 -/* 007A44 70006E44 240D0008 */ li $t5, 8 -/* 007A48 70006E48 AFAB00DC */ sw $t3, 0xdc($sp) -/* 007A4C 70006E4C AFAC00D8 */ sw $t4, 0xd8($sp) -/* 007A50 70006E50 AFAD00E0 */ sw $t5, 0xe0($sp) -/* 007A54 70006E54 AFB000E4 */ sw $s0, 0xe4($sp) -/* 007A58 70006E58 0C001EC8 */ jal sfx_c_70007B20 -/* 007A5C 70006E5C 27A400D8 */ addiu $a0, $sp, 0xd8 -/* 007A60 70006E60 0C0007D6 */ jal startaudiThread -/* 007A64 70006E64 00000000 */ nop -.L70006E68: -/* 007A68 70006E68 8FBF0024 */ lw $ra, 0x24($sp) -/* 007A6C 70006E6C 8FB00020 */ lw $s0, 0x20($sp) -/* 007A70 70006E70 27BD00E8 */ addiu $sp, $sp, 0xe8 -/* 007A74 70006E74 03E00008 */ jr $ra -/* 007A78 70006E78 00000000 */ nop -) -#endif + p = (u8 *)mempAllocBytesInBank(MUSIC_ALLOCATION_BYTES, MUSIC_MEMP_BANK); + + mempAddress = p; + do + { + *p++ = 0; + } while (p < mempAddress + MUSIC_ALLOCATION_BYTES); + + alHeapInit(&g_musicHeap, mempAddress, MUSIC_ALLOCATION_BYTES); + + if (MUSIC_CONFIG_USE_SFX_BANK) + { + size = (u32)&_sfxtblSegmentRomStart - (u32)&_sfxctlSegmentRomStart; + + sfxBank = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + romCopy(sfxBank, &_sfxctlSegmentRomStart, size); + alBnkfNew(sfxBank, (u8 *)&_sfxtblSegmentRomStart); + g_musicSfxBufferPtr = sfxBank->bankArray[0]; + } + + if (MUSIC_CONFIG_USE_INSTRUMENT_BANK) + { + size = (u32)&_instrumentstblSegmentRomStart - (u32)&_instrumentsctlSegmentRomStart; + + instrumentBank = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + romCopy(instrumentBank, &_instrumentsctlSegmentRomStart, size); + alBnkfNew(instrumentBank, (u8 *)&_instrumentstblSegmentRomStart); + g_musicInstrumentBufferPtr = instrumentBank->bankArray[0]; + } + + // this area based on auReadSeqFileHeader + + // is this sizeof(ALSeqFile) ? which implies the struct isn't right... + size = 0x10; + g_musicDataTable = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + romCopy(g_musicDataTable, (void *)tblSegmentRomStartAddress, size); + + tblSegmentSize = (sizeof(ALSeqData) * g_musicDataTable->seqCount) + 4; + g_musicDataTable = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, tblSegmentSize); + romCopy(g_musicDataTable, (void *)tblSegmentRomStartAddress, ALIGN16_a(tblSegmentSize)); + + // end auReadSeqFileHeader + + musicSeqFileNew(g_musicDataTable, (u8*)&_musicsampletblSegmentRomStart); + + size = TRACK_1_DATA_SEQ_SIZE_BYTES; + g_musicXTrack1SeqData = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + + size = TRACK_2_DATA_SEQ_SIZE_BYTES + TRACK_3_DATA_SEQ_SIZE_BYTES; + g_musicXTrack2SeqData = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + + g_musicXTrack3SeqData = (u8*)g_musicXTrack2SeqData + TRACK_2_DATA_SEQ_SIZE_BYTES; + + // This 'for' loops seems to load track offsets, and lengths one time at init. + // devkit example does this on demand. + // see auSeqPlayerSetFile in n64devkit\ultra\usr\src\pr\demos_old\nnsample1\audio.c + for (ui = 0; ui < NUM_MUSIC_TRACKS; ui++) + { + g_musicTrackOffset[ui] = g_musicDataTable->seqArray[ui].offset; + g_musicTrackLength[ui] = g_musicDataTable->seqArray[ui].len; + + // Note that auSeqPlayerSetFile adjusts the len value, not offset. + if (g_musicTrackOffset[ui] & 1) + { + g_musicTrackOffset[ui]++; + } + } + + synconfig.maxVVoices = 0; + synconfig.maxPVoices = MUSIC_SYN_CONFIG_MAX_P_VOICES; + synconfig.maxUpdates = MUSIC_SYN_CONFIG_MAX_UPDATES; + // synconfig.maxFXbusses, not set. + synconfig.dmaproc = 0; + synconfig.fxType = AL_FX_CUSTOM; + synconfig.outputRate = 0; + synconfig.heap = &g_musicHeap; + // synconfig.params, not set. + + amCreateAudioManager(&synconfig); + + track1SeqpConfig.maxVoices = MUSIC_SEQ_CONFIG_MAX_VOICES; + track1SeqpConfig.maxEvents = MUSIC_SEQ_CONFIG_MAX_EVENTS; + track1SeqpConfig.maxChannels = MUSIC_SEQ_CONFIG_MAX_CHANNELS; + track1SeqpConfig.heap = &g_musicHeap; + track1SeqpConfig.initOsc = NULL; + track1SeqpConfig.updateOsc = NULL; + track1SeqpConfig.stopOsc = NULL; + + track2SeqpConfig.maxVoices = MUSIC_SEQ_CONFIG_MAX_VOICES; + track2SeqpConfig.maxEvents = MUSIC_SEQ_CONFIG_MAX_EVENTS; + track2SeqpConfig.maxChannels = MUSIC_SEQ_CONFIG_MAX_CHANNELS; + track2SeqpConfig.heap = &g_musicHeap; + track2SeqpConfig.initOsc = NULL; + track2SeqpConfig.updateOsc = NULL; + track2SeqpConfig.stopOsc = NULL; + + track3SeqpConfig.maxVoices = MUSIC_SEQ_CONFIG_MAX_VOICES; + track3SeqpConfig.maxEvents = MUSIC_SEQ_CONFIG_MAX_EVENTS; + track3SeqpConfig.maxChannels = MUSIC_SEQ_CONFIG_MAX_CHANNELS; + track3SeqpConfig.heap = &g_musicHeap; + track3SeqpConfig.initOsc = NULL; + track3SeqpConfig.updateOsc = NULL; + track3SeqpConfig.stopOsc = NULL; + + size = sizeof(ALCSPlayer); // 0x7C + g_musicXTrack1SeqPlayer = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + g_musicXTrack2SeqPlayer = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + g_musicXTrack3SeqPlayer = alHeapAlloc(&g_musicHeap, MUSIC_HEAP_NUMBER, size); + + // Typo / mistake, the following calls to alSeqpSetBank should actually + // be to alCSPSetBank. + alCSPNew(g_musicXTrack1SeqPlayer, &track1SeqpConfig); + alSeqpSetBank((ALSeqPlayer *)g_musicXTrack1SeqPlayer, g_musicInstrumentBufferPtr); + alCSPNew(g_musicXTrack2SeqPlayer, &track2SeqpConfig); + alSeqpSetBank((ALSeqPlayer *)g_musicXTrack2SeqPlayer, g_musicInstrumentBufferPtr); + alCSPNew(g_musicXTrack3SeqPlayer, &track3SeqpConfig); + alSeqpSetBank((ALSeqPlayer *)g_musicXTrack3SeqPlayer, g_musicInstrumentBufferPtr); + + sfxSeqpConfig.maxEvents = MUSIC_SFX_SEQ_CONFIG_MAX_EVENTS; + sfxSeqpConfig.maxVoices = MUSIC_SFX_SEQ_CONFIG_MAX_VOICES; + sfxSeqpConfig.channelWord = MUSIC_SFX_SEQ_CONFIG_CHANNEL; + sfxSeqpConfig.heap = &g_musicHeap; + + sfx_c_70007B20(&sfxSeqpConfig); + amStartAudioThread(); +} /** * 7A7C 70006E7C - * play first music track A0 + * If sound boot flag is is set, nothing happens. + * If current track number is set, will call the stop playing method. + * Does not change g_musicXTrack1Fade, but will update current track number. + * Waits for the sequence playing to finish "doing things" and then loads music: + * - gets the track ROM location and size (previously set on init). + * - copies ths ROM data to a buffer, and decompresses the content + * - sets up the cseq player and calls alCSPPlay + * + * @param track: track number to play. */ -#ifdef NONMATCHING -void musicTrack1Play(s32 arg0, s32 arg852) { - ? sp34; - s32 sp2140; - void *temp_t2; - s32 temp_v0; - s32 temp_a2; +void musicTrack1Play(s32 track) +{ + u32 trackSizeBytes; + struct music_struct_b thing; + u8 *temp_a0; + void *romAddress; + u32 t3; + struct huft hlist; - // Node 0 - if (bootswitch_sound == 0) + if (bootswitch_sound) { - // Node 1 - if (music1_track_num != 0) - { - // Node 2 - musicTrack1Stop(); - } - // Node 3 - music1_track_num = arg852; - if (alCSPGetState(seqp_1) != 0) - { - loop_4: - // Node 4 - if (alCSPGetState(seqp_1) != 0) - { - goto loop_4; - } - } - // Node 5 - temp_t2 = (ptr_musicdatatable + (music1_track_num * 8)); - temp_v0 = (music1_track_num * 2); - if ((u32) temp_t2->unk4 < 0x10000U) - { - // Node 6 - musicTrack1Play(1, temp_t2->unk4, music1_track_num); - return; - // (possible return value: musicTrack1Play(1, temp_t2->unk4, music1_track_num)) - } - // Node 7 - temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); - sp2140 = (s32) D_80063838; - romCopy(((D_80063838 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music1_track_num); - decompressdata(sp28, sp2140, &sp34); - alCSeqNew(&D_80063860, D_80063838); - alCSPSetSeq(seqp_1, &D_80063860); - musicTrack1Vol((musicTrack1Length() & 0xffff)); - alCSPPlay(seqp_1); + return; } - // Node 8 - return; - // (function likely void) -} -#else -GLOBAL_ASM( -.text -glabel musicTrack1Play -/* 007A7C 70006E7C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 007A80 70006E80 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 007A84 70006E84 27BDDEB8 */ addiu $sp, $sp, -0x2148 -/* 007A88 70006E88 AFBF001C */ sw $ra, 0x1c($sp) -/* 007A8C 70006E8C AFB00018 */ sw $s0, 0x18($sp) -/* 007A90 70006E90 15C0004A */ bnez $t6, .L70006FBC -/* 007A94 70006E94 AFA42148 */ sw $a0, 0x2148($sp) -/* 007A98 70006E98 3C0F8002 */ lui $t7, %hi(music1_track_num) -/* 007A9C 70006E9C 8DEF4334 */ lw $t7, %lo(music1_track_num)($t7) -/* 007AA0 70006EA0 51E00004 */ beql $t7, $zero, .L70006EB4 -/* 007AA4 70006EA4 8FB82148 */ lw $t8, 0x2148($sp) -/* 007AA8 70006EA8 0C001BF4 */ jal musicTrack1Stop -/* 007AAC 70006EAC 00000000 */ nop -/* 007AB0 70006EB0 8FB82148 */ lw $t8, 0x2148($sp) -.L70006EB4: -/* 007AB4 70006EB4 3C108006 */ lui $s0, %hi(seqp_1) -/* 007AB8 70006EB8 3C018002 */ lui $at, %hi(music1_track_num) -/* 007ABC 70006EBC 26103728 */ addiu $s0, %lo(seqp_1) # addiu $s0, $s0, 0x3728 -/* 007AC0 70006EC0 AC384334 */ sw $t8, %lo(music1_track_num)($at) -/* 007AC4 70006EC4 0C00488C */ jal alCSPGetState -/* 007AC8 70006EC8 8E040000 */ lw $a0, ($s0) -/* 007ACC 70006ECC 10400005 */ beqz $v0, .L70006EE4 -/* 007AD0 70006ED0 00000000 */ nop -.L70006ED4: -/* 007AD4 70006ED4 0C00488C */ jal alCSPGetState -/* 007AD8 70006ED8 8E040000 */ lw $a0, ($s0) -/* 007ADC 70006EDC 1440FFFD */ bnez $v0, .L70006ED4 -/* 007AE0 70006EE0 00000000 */ nop -.L70006EE4: -/* 007AE4 70006EE4 3C078002 */ lui $a3, %hi(music1_track_num) -/* 007AE8 70006EE8 8CE74334 */ lw $a3, %lo(music1_track_num)($a3) -/* 007AEC 70006EEC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) -/* 007AF0 70006EF0 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) -/* 007AF4 70006EF4 000748C0 */ sll $t1, $a3, 3 -/* 007AF8 70006EF8 3C010001 */ lui $at, 1 -/* 007AFC 70006EFC 03295021 */ addu $t2, $t9, $t1 -/* 007B00 70006F00 8D450004 */ lw $a1, 4($t2) -/* 007B04 70006F04 3C038006 */ lui $v1, %hi(D_80063738) -/* 007B08 70006F08 00071040 */ sll $v0, $a3, 1 -/* 007B0C 70006F0C 00A1082B */ sltu $at, $a1, $at -/* 007B10 70006F10 10200005 */ beqz $at, .L70006F28 -/* 007B14 70006F14 00621821 */ addu $v1, $v1, $v0 -/* 007B18 70006F18 0C001B9F */ jal musicTrack1Play -/* 007B1C 70006F1C 24040001 */ li $a0, 1 -/* 007B20 70006F20 10000027 */ b .L70006FC0 -/* 007B24 70006F24 8FBF001C */ lw $ra, 0x1c($sp) -.L70006F28: -/* 007B28 70006F28 94633738 */ lhu $v1, %lo(D_80063738)($v1) -/* 007B2C 70006F2C 3C068006 */ lui $a2, %hi(D_800637B8) -/* 007B30 70006F30 00C23021 */ addu $a2, $a2, $v0 -/* 007B34 70006F34 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) -/* 007B38 70006F38 3C088006 */ lui $t0, %hi(D_80063838) -/* 007B3C 70006F3C 2463000F */ addiu $v1, $v1, 0xf -/* 007B40 70006F40 8D083838 */ lw $t0, %lo(D_80063838)($t0) -/* 007B44 70006F44 346B000F */ ori $t3, $v1, 0xf -/* 007B48 70006F48 396C000F */ xori $t4, $t3, 0xf -/* 007B4C 70006F4C 24C6000F */ addiu $a2, $a2, 0xf -/* 007B50 70006F50 25830040 */ addiu $v1, $t4, 0x40 -/* 007B54 70006F54 34CD000F */ ori $t5, $a2, 0xf -/* 007B58 70006F58 39A6000F */ xori $a2, $t5, 0xf -/* 007B5C 70006F5C 01037821 */ addu $t7, $t0, $v1 -/* 007B60 70006F60 01E62023 */ subu $a0, $t7, $a2 -/* 007B64 70006F64 AFA40028 */ sw $a0, 0x28($sp) -/* 007B68 70006F68 0C001707 */ jal romCopy -/* 007B6C 70006F6C AFA82140 */ sw $t0, 0x2140($sp) -/* 007B70 70006F70 8FA40028 */ lw $a0, 0x28($sp) -/* 007B74 70006F74 8FA52140 */ lw $a1, 0x2140($sp) -/* 007B78 70006F78 0FC339FC */ jal decompressdata -/* 007B7C 70006F7C 27A60034 */ addiu $a2, $sp, 0x34 -/* 007B80 70006F80 3C048006 */ lui $a0, %hi(D_80063860) -/* 007B84 70006F84 3C058006 */ lui $a1, %hi(D_80063838) -/* 007B88 70006F88 8CA53838 */ lw $a1, %lo(D_80063838)($a1) -/* 007B8C 70006F8C 0C0049E7 */ jal alCSeqNew -/* 007B90 70006F90 24843860 */ addiu $a0, %lo(D_80063860) # addiu $a0, $a0, 0x3860 -/* 007B94 70006F94 3C058006 */ lui $a1, %hi(D_80063860) -/* 007B98 70006F98 24A53860 */ addiu $a1, %lo(D_80063860) # addiu $a1, $a1, 0x3860 -/* 007B9C 70006F9C 0C004B40 */ jal alCSPSetSeq -/* 007BA0 70006FA0 8E040000 */ lw $a0, ($s0) -/* 007BA4 70006FA4 0C001C0C */ jal musicTrack1Length -/* 007BA8 70006FA8 00000000 */ nop -/* 007BAC 70006FAC 0C001C0F */ jal musicTrack1Vol -/* 007BB0 70006FB0 3044FFFF */ andi $a0, $v0, 0xffff -/* 007BB4 70006FB4 0C004B50 */ jal alCSPPlay -/* 007BB8 70006FB8 8E040000 */ lw $a0, ($s0) -.L70006FBC: -/* 007BBC 70006FBC 8FBF001C */ lw $ra, 0x1c($sp) -.L70006FC0: -/* 007BC0 70006FC0 8FB00018 */ lw $s0, 0x18($sp) -/* 007BC4 70006FC4 27BD2148 */ addiu $sp, $sp, 0x2148 -/* 007BC8 70006FC8 03E00008 */ jr $ra -/* 007BCC 70006FCC 00000000 */ nop -) -#endif + if (g_musicXTrack1CurrentTrackNum) + { + musicTrack1Stop(); + } + + g_musicXTrack1CurrentTrackNum = track; + + while (alCSPGetState(g_musicXTrack1SeqPlayer)) + ; + + romAddress = g_musicDataTable->seqArray[g_musicXTrack1CurrentTrackNum].address; + + if (romAddress < (void*)ROM_MUSIC_START_OFFSET) + { + // Note: recursive call + musicTrack1Play(M_SHORT_SOLO_DEATH); + + return; + } + + t3 = ALIGN16_a(g_musicTrackOffset[g_musicXTrack1CurrentTrackNum]) + (NUM_MUSIC_TRACKS + 1); + trackSizeBytes = ALIGN16_a(g_musicTrackLength[g_musicXTrack1CurrentTrackNum]); + thing.seqData = g_musicXTrack1SeqData; + temp_a0 = (u8*)((t3 + (s32)thing.seqData) - trackSizeBytes); + + romCopy(temp_a0, romAddress, trackSizeBytes); + decompressdata(temp_a0, thing.seqData, &hlist); + + alCSeqNew(&g_musicXTrack1Seq, g_musicXTrack1SeqData); + alCSPSetSeq(g_musicXTrack1SeqPlayer, &g_musicXTrack1Seq); + musicTrack1ApplySeqpVol(musicTrack1GetVolume()); + alCSPPlay(g_musicXTrack1SeqPlayer); +} /** * 7BD0 70006FD0 - * stop playing first music track + * If sound boot flag is is set, nothing happens. + * Updates internal variables to stopped state, regardless of current state. + * If there's a current track set, and the cseq player is "doing something", + * calls alCSPStop on sequence player. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_UNSET, + * and current track to zero. */ -void musicTrack1Stop(void) { - if (bootswitch_sound == 0) +void musicTrack1Stop(void) +{ + if (bootswitch_sound) { - music1_playing = 0; - if (music1_track_num != 0) - { - if (alCSPGetState(seqp_1) == 1) - { - alCSPStop(seqp_1); - } - } - music1_track_num = 0; + return; } + + g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; + + if (g_musicXTrack1CurrentTrackNum != 0) + { + if (alCSPGetState(g_musicXTrack1SeqPlayer) == 1) + { + alCSPStop(g_musicXTrack1SeqPlayer); + } + } + + g_musicXTrack1CurrentTrackNum = 0; } /** * 7C30 70007030 * V0= [80024338] */ -u16 musicTrack1Length(void) { - return music1len; +u16 musicTrack1GetVolume(void) +{ + return g_musicXTrack1Volume; } - - - - - /** * 7C3C 7000703C - * ??? - sets something for currently running music track... - * accepts: A0=value + * Sets the global variable storing the current volume. + * This is scaled by the default volume for the specific song (e.g., M_INTRO) + * and the cseq player volume is set to that value. */ -#ifdef NONMATCHING -void musicTrack1Vol(s32 arg0) { - s16 temp_a2; +void musicTrack1ApplySeqpVol(u16 volume) +{ + u32 t1 = volume; - // Node 0 - temp_a2 = (arg0 & 0xffff); - music1len = temp_a2; - alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); - return; - // (possible return value: alCSPSetVol(seqp_1, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music1_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2)) + g_musicXTrack1Volume = (u16)t1; + + t1 *= g_musicDefaultTrackVolume[g_musicXTrack1CurrentTrackNum]; + + // There's only one other relevant place in the code base that has a SRL by 0xf, + // it matches __vsVol in n64devkit\ultra\usr\src\pr\libsrc\libultra\audio\seqplayer.c + // but it's hard to say if it's related here or not. + t1 >>= 15; + + alCSPSetVol(g_musicXTrack1SeqPlayer, t1); } -#else -GLOBAL_ASM( -.text -glabel musicTrack1Vol -/* 007C3C 7000703C 3C0E8002 */ lui $t6, %hi(music1_track_num) -/* 007C40 70007040 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) -/* 007C44 70007044 3C188002 */ lui $t8, %hi(music_tempo_array) -/* 007C48 70007048 3086FFFF */ andi $a2, $a0, 0xffff -/* 007C4C 7000704C 000E7840 */ sll $t7, $t6, 1 -/* 007C50 70007050 030FC021 */ addu $t8, $t8, $t7 -/* 007C54 70007054 87184358 */ lh $t8, %lo(music_tempo_array)($t8) -/* 007C58 70007058 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 007C5C 7000705C AFA40018 */ sw $a0, 0x18($sp) -/* 007C60 70007060 00D80019 */ multu $a2, $t8 -/* 007C64 70007064 AFBF0014 */ sw $ra, 0x14($sp) -/* 007C68 70007068 3C018002 */ lui $at, %hi(music1len) -/* 007C6C 7000706C 3C048006 */ lui $a0, %hi(seqp_1) -/* 007C70 70007070 A4264338 */ sh $a2, %lo(music1len)($at) -/* 007C74 70007074 8C843728 */ lw $a0, %lo(seqp_1)($a0) -/* 007C78 70007078 00001012 */ mflo $v0 -/* 007C7C 7000707C 0002CBC2 */ srl $t9, $v0, 0xf -/* 007C80 70007080 00192C00 */ sll $a1, $t9, 0x10 -/* 007C84 70007084 00054403 */ sra $t0, $a1, 0x10 -/* 007C88 70007088 0C004B68 */ jal alCSPSetVol -/* 007C8C 7000708C 01002825 */ move $a1, $t0 -/* 007C90 70007090 8FBF0014 */ lw $ra, 0x14($sp) -/* 007C94 70007094 27BD0018 */ addiu $sp, $sp, 0x18 -/* 007C98 70007098 03E00008 */ jr $ra -/* 007C9C 7000709C 00000000 */ nop -) -#endif - - - - - - - /** * 7CA0 700070A0 + * g_musicDefaultTrackVolume is updated so that the currently playing + * track's default volume is now the current volume. */ -#ifdef NONMATCHING -void *musicTrack1Tempo(void) { - // Node 0 - *(&music_tempo_array + (music1_track_num * 2)) = musicTrack1Length(); - if (music_tempo_array >= 0) +void musicTrack1SaveCurrentVolumeAsTrackDefault(void) +{ + s32 i; + + g_musicDefaultTrackVolume[g_musicXTrack1CurrentTrackNum] = musicTrack1GetVolume(); + + for (i = 0; g_musicDefaultTrackVolume[i] >= 0; i++) { - loop_1: - // Node 1 - if (music_tempo_array.unk2 >= 0) - { - goto loop_1; - } + // removed; } - // (possible return value: &music_tempo_array) } -#else -GLOBAL_ASM( -.text -glabel musicTrack1Tempo -/* 007CA0 700070A0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 007CA4 700070A4 AFBF0014 */ sw $ra, 0x14($sp) -/* 007CA8 700070A8 0C001C0C */ jal musicTrack1Length -/* 007CAC 700070AC 00000000 */ nop -/* 007CB0 700070B0 3C0E8002 */ lui $t6, %hi(music1_track_num) -/* 007CB4 700070B4 8DCE4334 */ lw $t6, %lo(music1_track_num)($t6) -/* 007CB8 700070B8 3C048002 */ lui $a0, %hi(music_tempo_array) -/* 007CBC 700070BC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 -/* 007CC0 700070C0 000E7840 */ sll $t7, $t6, 1 -/* 007CC4 700070C4 008FC021 */ addu $t8, $a0, $t7 -/* 007CC8 700070C8 A7020000 */ sh $v0, ($t8) -/* 007CCC 700070CC 84990000 */ lh $t9, ($a0) -/* 007CD0 700070D0 3C028002 */ lui $v0, %hi(music_tempo_array) -/* 007CD4 700070D4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 -/* 007CD8 700070D8 07200005 */ bltz $t9, .L700070F0 -/* 007CDC 700070DC 8FBF0014 */ lw $ra, 0x14($sp) -/* 007CE0 700070E0 84480002 */ lh $t0, 2($v0) -.L700070E4: -/* 007CE4 700070E4 24420002 */ addiu $v0, $v0, 2 -/* 007CE8 700070E8 0503FFFE */ bgezl $t0, .L700070E4 -/* 007CEC 700070EC 84480002 */ lh $t0, 2($v0) -.L700070F0: -/* 007CF0 700070F0 03E00008 */ jr $ra -/* 007CF4 700070F4 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - - /** * 7CF8 700070F8 + * Updates internal variables to fadeout state, if not already fading out. + * Starting/stopping output of audio is not directly managed here. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_UNSET. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. */ -void music_related_1(f32 rate) { - if (music1_playing >= 0) +void musicTrack1FadeOut(f32 fadeTime) +{ + if (g_musicXTrack1Fade >= MUSIC_FADESTATE_UNSET) { - musicTrack1_length = musicTrack1Length(); - music1_length = 0; - music1_rate = (s32) (rate * 60.0f); - music1_playing = -1; + g_musicXTrack1PreFadeSavedVolume = musicTrack1GetVolume(); + g_musicXTrack1FadeToVolume = 0; + g_musicXTrack1FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack1Fade = MUSIC_FADESTATE_FADE_OUT; } } - - - - - /** * 7D68 70007168 + * Updates internal variables to fadein state, if not already fading in. + * Calls alCSPPlay on cseq player. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_FADE_IN. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. + * + * @param volume: volume of track. Pass -1 to use previously saved volume. */ -#ifdef NONMATCHING -s16 music_related_3(f32 arg0, s32 arg1, f32 rate, s16 length) { - if (music1_playing <= 0) +void musicTrack1FadeIn(f32 fadeTime, u16 volume) +{ + if (g_musicXTrack1Fade <= MUSIC_FADESTATE_UNSET) { - alCSPPlay(seqp_1); - if (length == 0xffff) + alCSPPlay(g_musicXTrack1SeqPlayer); + + if (volume == 0xffff) { - music1_length = musicTrack1_length; + g_musicXTrack1FadeToVolume = g_musicXTrack1PreFadeSavedVolume; } else { - music1_length = length; + g_musicXTrack1FadeToVolume = volume; } - musicTrack1_length = (u16)0; - music1_rate = (s32) (rate * 60.0f); - music1_playing = 1; + + g_musicXTrack1PreFadeSavedVolume = 0; + g_musicXTrack1FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack1Fade = MUSIC_FADESTATE_FADE_IN; } } -#else -GLOBAL_ASM( -.text -glabel music_related_3 -/* 007D68 70007168 3C0E8002 */ lui $t6, %hi(music1_playing) -/* 007D6C 7000716C 8DCE434C */ lw $t6, %lo(music1_playing)($t6) -/* 007D70 70007170 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 007D74 70007174 AFBF0014 */ sw $ra, 0x14($sp) -/* 007D78 70007178 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 007D7C 7000717C 1DC0001D */ bgtz $t6, .L700071F4 -/* 007D80 70007180 AFA5001C */ sw $a1, 0x1c($sp) -/* 007D84 70007184 3C048006 */ lui $a0, %hi(seqp_1) -/* 007D88 70007188 0C004B50 */ jal alCSPPlay -/* 007D8C 7000718C 8C843728 */ lw $a0, %lo(seqp_1)($a0) -/* 007D90 70007190 97A2001E */ lhu $v0, 0x1e($sp) -/* 007D94 70007194 3401FFFF */ li $at, 65535 -/* 007D98 70007198 3C0F8006 */ lui $t7, %hi(musicTrack1_length) -/* 007D9C 7000719C 14410005 */ bne $v0, $at, .L700071B4 -/* 007DA0 700071A0 00000000 */ nop -/* 007DA4 700071A4 95EF3844 */ lhu $t7, %lo(musicTrack1_length)($t7) -/* 007DA8 700071A8 3C018006 */ lui $at, %hi(music1_length) -/* 007DAC 700071AC 10000003 */ b .L700071BC -/* 007DB0 700071B0 A42F384A */ sh $t7, %lo(music1_length)($at) -.L700071B4: -/* 007DB4 700071B4 3C018006 */ lui $at, %hi(music1_length) -/* 007DB8 700071B8 A422384A */ sh $v0, %lo(music1_length)($at) -.L700071BC: -/* 007DBC 700071BC 3C018006 */ lui $at, %hi(musicTrack1_length) -/* 007DC0 700071C0 A4203844 */ sh $zero, %lo(musicTrack1_length)($at) -/* 007DC4 700071C4 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 007DC8 700071C8 44813000 */ mtc1 $at, $f6 -/* 007DCC 700071CC C7A40018 */ lwc1 $f4, 0x18($sp) -/* 007DD0 700071D0 3C018006 */ lui $at, %hi(music1_rate) -/* 007DD4 700071D4 24080001 */ li $t0, 1 -/* 007DD8 700071D8 46062202 */ mul.s $f8, $f4, $f6 -/* 007DDC 700071DC 4600428D */ trunc.w.s $f10, $f8 -/* 007DE0 700071E0 44195000 */ mfc1 $t9, $f10 -/* 007DE4 700071E4 00000000 */ nop -/* 007DE8 700071E8 AC393850 */ sw $t9, %lo(music1_rate)($at) -/* 007DEC 700071EC 3C018002 */ lui $at, %hi(music1_playing) -/* 007DF0 700071F0 AC28434C */ sw $t0, %lo(music1_playing)($at) -.L700071F4: -/* 007DF4 700071F4 8FBF0014 */ lw $ra, 0x14($sp) -/* 007DF8 700071F8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 007DFC 700071FC 03E00008 */ jr $ra -/* 007E00 70007200 00000000 */ nop -) -#endif - - - - - /** * 7E04 70007204 + * If sound boot flag is is set, nothing happens. + * If current track number is set, will call the stop playing method. + * Does not change g_musicXTrack2Fade, but will update current track number. + * Waits for the sequence playing to finish "doing things" and then loads music: + * - gets the track ROM location and size (previously set on init). + * - copies ths ROM data to a buffer, and decompresses the content + * - sets up the cseq player and calls alCSPPlay + * + * @param track: track number to play. */ -#ifdef NONMATCHING -void musicTrack2Play(s32 arg0, s32 arg852) { - ? sp34; - s32 sp2140; - void *temp_t2; - s32 temp_v0; - s32 temp_a2; +void musicTrack2Play(s32 track) +{ + u32 trackSizeBytes; + struct music_struct_b thing; + u8 *temp_a0; + void *romAddress; + u32 t3; + struct huft hlist; - // Node 0 - if (bootswitch_sound == 0) + if (bootswitch_sound) { - // Node 1 - if (music2_track_num != 0) - { - // Node 2 - musicTrack2Stop(); - } - // Node 3 - music2_track_num = arg852; - if (alCSPGetState(seqp_2) != 0) - { - loop_4: - // Node 4 - if (alCSPGetState(seqp_2) != 0) - { - goto loop_4; - } - } - // Node 5 - temp_t2 = (ptr_musicdatatable + (music2_track_num * 8)); - temp_v0 = (music2_track_num * 2); - if ((u32) temp_t2->unk4 < 0x10000U) - { - // Node 6 - musicTrack2Play(1, temp_t2->unk4, music2_track_num); - return; - // (possible return value: musicTrack2Play(1, temp_t2->unk4, music2_track_num)) - } - // Node 7 - temp_a2 = (((*(&D_800637B8 + temp_v0) + 0xf) | 0xf) ^ 0xf); - sp2140 = (s32) D_8006383C; - romCopy(((D_8006383C + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music2_track_num); - decompressdata(sp28, sp2140, &sp34); - alCSeqNew(&D_80063958, D_8006383C); - alCSPSetSeq(seqp_2, &D_80063958); - musicTrack2Vol((musicTrack2Length() & 0xffff)); - alCSPPlay(seqp_2); + return; } - // Node 8 - return; - // (function likely void) + + if (g_musicXTrack2CurrentTrackNum) + { + musicTrack2Stop(); + } + + g_musicXTrack2CurrentTrackNum = track; + + while (alCSPGetState(g_musicXTrack2SeqPlayer)) + ; + + romAddress = g_musicDataTable->seqArray[g_musicXTrack2CurrentTrackNum].address; + + if (romAddress < (void*)ROM_MUSIC_START_OFFSET) + { + // Note: recursive call + musicTrack2Play(M_SHORT_SOLO_DEATH); + + return; + } + + t3 = ALIGN16_a(g_musicTrackOffset[g_musicXTrack2CurrentTrackNum]) + (NUM_MUSIC_TRACKS + 1); + trackSizeBytes = ALIGN16_a(g_musicTrackLength[g_musicXTrack2CurrentTrackNum]); + thing.seqData = g_musicXTrack2SeqData; + temp_a0 = (u8*)((t3 + (s32)thing.seqData) - trackSizeBytes); + + romCopy(temp_a0, romAddress, trackSizeBytes); + decompressdata(temp_a0, thing.seqData, &hlist); + + alCSeqNew(&g_musicXTrack2Seq, g_musicXTrack2SeqData); + alCSPSetSeq(g_musicXTrack2SeqPlayer, &g_musicXTrack2Seq); + musicTrack2ApplySeqpVol(musicTrack2GetVolume()); + alCSPPlay(g_musicXTrack2SeqPlayer); } -#else -GLOBAL_ASM( -.text -glabel musicTrack2Play -/* 007E04 70007204 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 007E08 70007208 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 007E0C 7000720C 27BDDEB8 */ addiu $sp, $sp, -0x2148 -/* 007E10 70007210 AFBF001C */ sw $ra, 0x1c($sp) -/* 007E14 70007214 AFB00018 */ sw $s0, 0x18($sp) -/* 007E18 70007218 15C0004A */ bnez $t6, .L70007344 -/* 007E1C 7000721C AFA42148 */ sw $a0, 0x2148($sp) -/* 007E20 70007220 3C0F8002 */ lui $t7, %hi(music2_track_num) -/* 007E24 70007224 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) -/* 007E28 70007228 51E00004 */ beql $t7, $zero, .L7000723C -/* 007E2C 7000722C 8FB82148 */ lw $t8, 0x2148($sp) -/* 007E30 70007230 0C001CD6 */ jal musicTrack2Stop -/* 007E34 70007234 00000000 */ nop -/* 007E38 70007238 8FB82148 */ lw $t8, 0x2148($sp) -.L7000723C: -/* 007E3C 7000723C 3C108006 */ lui $s0, %hi(seqp_2) -/* 007E40 70007240 3C018002 */ lui $at, %hi(music2_track_num) -/* 007E44 70007244 2610372C */ addiu $s0, %lo(seqp_2) # addiu $s0, $s0, 0x372c -/* 007E48 70007248 AC38433C */ sw $t8, %lo(music2_track_num)($at) -/* 007E4C 7000724C 0C00488C */ jal alCSPGetState -/* 007E50 70007250 8E040000 */ lw $a0, ($s0) -/* 007E54 70007254 10400005 */ beqz $v0, .L7000726C -/* 007E58 70007258 00000000 */ nop -.L7000725C: -/* 007E5C 7000725C 0C00488C */ jal alCSPGetState -/* 007E60 70007260 8E040000 */ lw $a0, ($s0) -/* 007E64 70007264 1440FFFD */ bnez $v0, .L7000725C -/* 007E68 70007268 00000000 */ nop -.L7000726C: -/* 007E6C 7000726C 3C078002 */ lui $a3, %hi(music2_track_num) -/* 007E70 70007270 8CE7433C */ lw $a3, %lo(music2_track_num)($a3) -/* 007E74 70007274 3C198006 */ lui $t9, %hi(ptr_musicdatatable) -/* 007E78 70007278 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) -/* 007E7C 7000727C 000748C0 */ sll $t1, $a3, 3 -/* 007E80 70007280 3C010001 */ lui $at, 1 -/* 007E84 70007284 03295021 */ addu $t2, $t9, $t1 -/* 007E88 70007288 8D450004 */ lw $a1, 4($t2) -/* 007E8C 7000728C 3C038006 */ lui $v1, %hi(D_80063738) -/* 007E90 70007290 00071040 */ sll $v0, $a3, 1 -/* 007E94 70007294 00A1082B */ sltu $at, $a1, $at -/* 007E98 70007298 10200005 */ beqz $at, .L700072B0 -/* 007E9C 7000729C 00621821 */ addu $v1, $v1, $v0 -/* 007EA0 700072A0 0C001C81 */ jal musicTrack2Play -/* 007EA4 700072A4 24040001 */ li $a0, 1 -/* 007EA8 700072A8 10000027 */ b .L70007348 -/* 007EAC 700072AC 8FBF001C */ lw $ra, 0x1c($sp) -.L700072B0: -/* 007EB0 700072B0 94633738 */ lhu $v1, %lo(D_80063738)($v1) -/* 007EB4 700072B4 3C068006 */ lui $a2, %hi(D_800637B8) -/* 007EB8 700072B8 00C23021 */ addu $a2, $a2, $v0 -/* 007EBC 700072BC 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) -/* 007EC0 700072C0 3C088006 */ lui $t0, %hi(D_8006383C) -/* 007EC4 700072C4 2463000F */ addiu $v1, $v1, 0xf -/* 007EC8 700072C8 8D08383C */ lw $t0, %lo(D_8006383C)($t0) -/* 007ECC 700072CC 346B000F */ ori $t3, $v1, 0xf -/* 007ED0 700072D0 396C000F */ xori $t4, $t3, 0xf -/* 007ED4 700072D4 24C6000F */ addiu $a2, $a2, 0xf -/* 007ED8 700072D8 25830040 */ addiu $v1, $t4, 0x40 -/* 007EDC 700072DC 34CD000F */ ori $t5, $a2, 0xf -/* 007EE0 700072E0 39A6000F */ xori $a2, $t5, 0xf -/* 007EE4 700072E4 01037821 */ addu $t7, $t0, $v1 -/* 007EE8 700072E8 01E62023 */ subu $a0, $t7, $a2 -/* 007EEC 700072EC AFA40028 */ sw $a0, 0x28($sp) -/* 007EF0 700072F0 0C001707 */ jal romCopy -/* 007EF4 700072F4 AFA82140 */ sw $t0, 0x2140($sp) -/* 007EF8 700072F8 8FA40028 */ lw $a0, 0x28($sp) -/* 007EFC 700072FC 8FA52140 */ lw $a1, 0x2140($sp) -/* 007F00 70007300 0FC339FC */ jal decompressdata -/* 007F04 70007304 27A60034 */ addiu $a2, $sp, 0x34 -/* 007F08 70007308 3C048006 */ lui $a0, %hi(D_80063958) -/* 007F0C 7000730C 3C058006 */ lui $a1, %hi(D_8006383C) -/* 007F10 70007310 8CA5383C */ lw $a1, %lo(D_8006383C)($a1) -/* 007F14 70007314 0C0049E7 */ jal alCSeqNew -/* 007F18 70007318 24843958 */ addiu $a0, %lo(D_80063958) # addiu $a0, $a0, 0x3958 -/* 007F1C 7000731C 3C058006 */ lui $a1, %hi(D_80063958) -/* 007F20 70007320 24A53958 */ addiu $a1, %lo(D_80063958) # addiu $a1, $a1, 0x3958 -/* 007F24 70007324 0C004B40 */ jal alCSPSetSeq -/* 007F28 70007328 8E040000 */ lw $a0, ($s0) -/* 007F2C 7000732C 0C001CEE */ jal musicTrack2Length -/* 007F30 70007330 00000000 */ nop -/* 007F34 70007334 0C001CF1 */ jal musicTrack2Vol -/* 007F38 70007338 3044FFFF */ andi $a0, $v0, 0xffff -/* 007F3C 7000733C 0C004B50 */ jal alCSPPlay -/* 007F40 70007340 8E040000 */ lw $a0, ($s0) -.L70007344: -/* 007F44 70007344 8FBF001C */ lw $ra, 0x1c($sp) -.L70007348: -/* 007F48 70007348 8FB00018 */ lw $s0, 0x18($sp) -/* 007F4C 7000734C 27BD2148 */ addiu $sp, $sp, 0x2148 -/* 007F50 70007350 03E00008 */ jr $ra -/* 007F54 70007354 00000000 */ nop -) -#endif - - /** * 7F58 70007358 + * If sound boot flag is is set, nothing happens. + * Updates internal variables to stopped state, regardless of current state. + * If there's a current track set, and the cseq player is "doing something", + * calls alCSPStop on sequence player. + * Sets g_musicXTrack2Fade to MUSIC_FADESTATE_UNSET, + * and current track to zero. */ -#ifdef NONMATCHING -void musicTrack2Stop(void) { - // Node 0 - if (bootswitch_sound == 0) +void musicTrack2Stop(void) +{ + if (bootswitch_sound) { - // Node 1 - music2_playing = 0; - if (music2_track_num != 0) - { - // Node 2 - if (alCSPGetState(seqp_2) == 1) - { - // Node 3 - alCSPStop(seqp_2); - } - } - // Node 4 - music2_track_num = 0; return; - // (function likely void) } - // (function likely void) + + g_musicXTrack2Fade = MUSIC_FADESTATE_UNSET; + + if (g_musicXTrack2CurrentTrackNum != 0) + { + if (alCSPGetState(g_musicXTrack2SeqPlayer) == 1) + { + alCSPStop(g_musicXTrack2SeqPlayer); + } + } + + g_musicXTrack2CurrentTrackNum = 0; } -#else -GLOBAL_ASM( -.text -glabel musicTrack2Stop -/* 007F58 70007358 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 007F5C 7000735C 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 007F60 70007360 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 007F64 70007364 AFBF0014 */ sw $ra, 0x14($sp) -/* 007F68 70007368 15C0000F */ bnez $t6, .L700073A8 -/* 007F6C 7000736C 3C0F8002 */ lui $t7, %hi(music2_track_num) -/* 007F70 70007370 8DEF433C */ lw $t7, %lo(music2_track_num)($t7) -/* 007F74 70007374 3C018002 */ lui $at, %hi(music2_playing) -/* 007F78 70007378 AC204350 */ sw $zero, %lo(music2_playing)($at) -/* 007F7C 7000737C 11E00008 */ beqz $t7, .L700073A0 -/* 007F80 70007380 3C048006 */ lui $a0, %hi(seqp_2) -/* 007F84 70007384 0C00488C */ jal alCSPGetState -/* 007F88 70007388 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 007F8C 7000738C 24010001 */ li $at, 1 -/* 007F90 70007390 14410003 */ bne $v0, $at, .L700073A0 -/* 007F94 70007394 3C048006 */ lui $a0, %hi(seqp_2) -/* 007F98 70007398 0C004B5C */ jal alCSPStop -/* 007F9C 7000739C 8C84372C */ lw $a0, %lo(seqp_2)($a0) -.L700073A0: -/* 007FA0 700073A0 3C018002 */ lui $at, %hi(music2_track_num) -/* 007FA4 700073A4 AC20433C */ sw $zero, %lo(music2_track_num)($at) -.L700073A8: -/* 007FA8 700073A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 007FAC 700073AC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 007FB0 700073B0 03E00008 */ jr $ra -/* 007FB4 700073B4 00000000 */ nop -) -#endif - - - - - - - /** * 7FB8 700073B8 * V0= [80024340] */ -u16 musicTrack2Length(void) { - return music2len; +u16 musicTrack2GetVolume(void) +{ + return g_musicXTrack2Volume; } - - - - - - /** * 7FC4 700073C4 + * + * Sets the global variable storing the current volume. + * This is scaled by the default volume for the specific song (e.g., M_INTRO) + * and the cseq player volume is set to that value. */ -#ifdef NONMATCHING -void musicTrack2Vol(s32 arg0) { - s16 temp_a2; +void musicTrack2ApplySeqpVol(u16 volume) +{ + u32 t1 = volume; - // Node 0 - temp_a2 = (arg0 & 0xffff); - music2len = temp_a2; - return alCSPSetVol(seqp_2, ((s32) (((u32) (temp_a2 * *(&music_tempo_array + (music2_track_num * 2))) >> 0xf) << 0x10) >> 0x10), temp_a2); + g_musicXTrack2Volume = (u16)t1; + + t1 *= g_musicDefaultTrackVolume[g_musicXTrack2CurrentTrackNum]; + // There's only one other relevant place in the code base that has a SRL by 0xf, + // it matches __vsVol in n64devkit\ultra\usr\src\pr\libsrc\libultra\audio\seqplayer.c + // but it's hard to say if it's related here or not. + t1 >>= 15; + + alCSPSetVol(g_musicXTrack2SeqPlayer, t1); } -#else -GLOBAL_ASM( -.text -glabel musicTrack2Vol -/* 007FC4 700073C4 3C0E8002 */ lui $t6, %hi(music2_track_num) -/* 007FC8 700073C8 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) -/* 007FCC 700073CC 3C188002 */ lui $t8, %hi(music_tempo_array) -/* 007FD0 700073D0 3086FFFF */ andi $a2, $a0, 0xffff -/* 007FD4 700073D4 000E7840 */ sll $t7, $t6, 1 -/* 007FD8 700073D8 030FC021 */ addu $t8, $t8, $t7 -/* 007FDC 700073DC 87184358 */ lh $t8, %lo(music_tempo_array)($t8) -/* 007FE0 700073E0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 007FE4 700073E4 AFA40018 */ sw $a0, 0x18($sp) -/* 007FE8 700073E8 00D80019 */ multu $a2, $t8 -/* 007FEC 700073EC AFBF0014 */ sw $ra, 0x14($sp) -/* 007FF0 700073F0 3C018002 */ lui $at, %hi(music2len) -/* 007FF4 700073F4 3C048006 */ lui $a0, %hi(seqp_2) -/* 007FF8 700073F8 A4264340 */ sh $a2, %lo(music2len)($at) -/* 007FFC 700073FC 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 008000 70007400 00001012 */ mflo $v0 -/* 008004 70007404 0002CBC2 */ srl $t9, $v0, 0xf -/* 008008 70007408 00192C00 */ sll $a1, $t9, 0x10 -/* 00800C 7000740C 00054403 */ sra $t0, $a1, 0x10 -/* 008010 70007410 0C004B68 */ jal alCSPSetVol -/* 008014 70007414 01002825 */ move $a1, $t0 -/* 008018 70007418 8FBF0014 */ lw $ra, 0x14($sp) -/* 00801C 7000741C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 008020 70007420 03E00008 */ jr $ra -/* 008024 70007424 00000000 */ nop -) -#endif - - - - - - - /** * 8028 70007428 + * g_musicDefaultTrackVolume is updated so that the currently playing + * track's default volume is now the current volume. */ -#ifdef NONMATCHING -void *musicTrack2Tempo(void) { - void *phi_v0; +void musicTrack2SaveCurrentVolumeAsTrackDefault(void) +{ + s32 i; + + g_musicDefaultTrackVolume[g_musicXTrack2CurrentTrackNum] = musicTrack2GetVolume(); - // Node 0 - *(&music_tempo_array + (music2_track_num * 2)) = musicTrack2Length(); - phi_v0 = &music_tempo_array; - if (music_tempo_array >= 0) + for (i = 0; g_musicDefaultTrackVolume[i] >= 0; i++) { - loop_1: - // Node 1 - phi_v0 = (phi_v0 + 2); - if (phi_v0->unk2 >= 0) - { - goto loop_1; - } + // removed; } - // Node 2 - return &music_tempo_array; } -#else -GLOBAL_ASM( -.text -glabel musicTrack2Tempo -/* 008028 70007428 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00802C 7000742C AFBF0014 */ sw $ra, 0x14($sp) -/* 008030 70007430 0C001CEE */ jal musicTrack2Length -/* 008034 70007434 00000000 */ nop -/* 008038 70007438 3C0E8002 */ lui $t6, %hi(music2_track_num) -/* 00803C 7000743C 8DCE433C */ lw $t6, %lo(music2_track_num)($t6) -/* 008040 70007440 3C048002 */ lui $a0, %hi(music_tempo_array) -/* 008044 70007444 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 -/* 008048 70007448 000E7840 */ sll $t7, $t6, 1 -/* 00804C 7000744C 008FC021 */ addu $t8, $a0, $t7 -/* 008050 70007450 A7020000 */ sh $v0, ($t8) -/* 008054 70007454 84990000 */ lh $t9, ($a0) -/* 008058 70007458 3C028002 */ lui $v0, %hi(music_tempo_array) -/* 00805C 7000745C 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 -/* 008060 70007460 07200005 */ bltz $t9, .L70007478 -/* 008064 70007464 8FBF0014 */ lw $ra, 0x14($sp) -/* 008068 70007468 84480002 */ lh $t0, 2($v0) -.L7000746C: -/* 00806C 7000746C 24420002 */ addiu $v0, $v0, 2 -/* 008070 70007470 0503FFFE */ bgezl $t0, .L7000746C -/* 008074 70007474 84480002 */ lh $t0, 2($v0) -.L70007478: -/* 008078 70007478 03E00008 */ jr $ra -/* 00807C 7000747C 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - /** * 8080 70007480 + * Updates internal variables to fadeout state, if not already fading out. + * Starting/stopping output of audio is not directly managed here. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_UNSET. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. */ -#ifdef NONMATCHING -void music_related_6(f32 arg0) { - // Node 0 - if (music2_playing >= 0) +void musicTrack2FadeOut(f32 fadeTime) +{ + if (g_musicXTrack2Fade >= MUSIC_FADESTATE_UNSET) { - // Node 1 - D_80063846 = musicTrack2Length(); - music2_length = (u16)0; - music2_rate = (s32) (arg0 * 60.0f); - music2_playing = -1; + g_musicXTrack2PreFadeSavedVolume = musicTrack2GetVolume(); + g_musicXTrack2FadeToVolume = 0; + g_musicXTrack2FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack2Fade = MUSIC_FADESTATE_FADE_OUT; } - // Node 2 - return; } -#else -GLOBAL_ASM( -.text -glabel music_related_6 -/* 008080 70007480 3C0E8002 */ lui $t6, %hi(music2_playing) -/* 008084 70007484 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) -/* 008088 70007488 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00808C 7000748C AFBF0014 */ sw $ra, 0x14($sp) -/* 008090 70007490 05C00013 */ bltz $t6, .L700074E0 -/* 008094 70007494 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 008098 70007498 0C001CEE */ jal musicTrack2Length -/* 00809C 7000749C 00000000 */ nop -/* 0080A0 700074A0 3C018006 */ lui $at, %hi(D_80063846) -/* 0080A4 700074A4 A4223846 */ sh $v0, %lo(D_80063846)($at) -/* 0080A8 700074A8 3C018006 */ lui $at, %hi(music2_length) -/* 0080AC 700074AC A420384C */ sh $zero, %lo(music2_length)($at) -/* 0080B0 700074B0 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0080B4 700074B4 44813000 */ mtc1 $at, $f6 -/* 0080B8 700074B8 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 0080BC 700074BC 3C018006 */ lui $at, %hi(music2_rate) -/* 0080C0 700074C0 2419FFFF */ li $t9, -1 -/* 0080C4 700074C4 46062202 */ mul.s $f8, $f4, $f6 -/* 0080C8 700074C8 4600428D */ trunc.w.s $f10, $f8 -/* 0080CC 700074CC 44185000 */ mfc1 $t8, $f10 -/* 0080D0 700074D0 00000000 */ nop -/* 0080D4 700074D4 AC383854 */ sw $t8, %lo(music2_rate)($at) -/* 0080D8 700074D8 3C018002 */ lui $at, %hi(music2_playing) -/* 0080DC 700074DC AC394350 */ sw $t9, %lo(music2_playing)($at) -.L700074E0: -/* 0080E0 700074E0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0080E4 700074E4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0080E8 700074E8 03E00008 */ jr $ra -/* 0080EC 700074EC 00000000 */ nop -) -#endif - - - - - /** * 80F0 700074F0 + * Updates internal variables to fadein state, if not already fading in. + * Calls alCSPPlay on cseq player. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_FADE_IN. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. + * + * @param volume: volume of track. Pass -1 to use previously saved volume. */ -#ifdef NONMATCHING -void music_related_8(f32 arg0, s32 arg1, s16 arg_unaligned6) { - // Node 0 - if (music2_playing <= 0) +void musicTrack2FadeIn(f32 fadeTime, u16 volume) +{ + if (g_musicXTrack2Fade <= MUSIC_FADESTATE_UNSET) { - // Node 1 - alCSPPlay(seqp_2); - if (arg_unaligned6 == 0xffff) + alCSPPlay(g_musicXTrack2SeqPlayer); + + if (volume == 0xffff) { - // Node 2 - music2_length = (s16) D_80063846; + g_musicXTrack2FadeToVolume = g_musicXTrack2PreFadeSavedVolume; } else { - // Node 3 - music2_length = arg_unaligned6; + g_musicXTrack2FadeToVolume = volume; } - // Node 4 - D_80063846 = (u16)0; - music2_rate = (s32) (arg0 * 60.0f); - music2_playing = 1; + + g_musicXTrack2PreFadeSavedVolume = 0; + g_musicXTrack2FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack2Fade = MUSIC_FADESTATE_FADE_IN; } - // Node 5 - return; } -#else -GLOBAL_ASM( -.text -glabel music_related_8 -/* 0080F0 700074F0 3C0E8002 */ lui $t6, %hi(music2_playing) -/* 0080F4 700074F4 8DCE4350 */ lw $t6, %lo(music2_playing)($t6) -/* 0080F8 700074F8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0080FC 700074FC AFBF0014 */ sw $ra, 0x14($sp) -/* 008100 70007500 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 008104 70007504 1DC0001D */ bgtz $t6, .L7000757C -/* 008108 70007508 AFA5001C */ sw $a1, 0x1c($sp) -/* 00810C 7000750C 3C048006 */ lui $a0, %hi(seqp_2) -/* 008110 70007510 0C004B50 */ jal alCSPPlay -/* 008114 70007514 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 008118 70007518 97A2001E */ lhu $v0, 0x1e($sp) -/* 00811C 7000751C 3401FFFF */ li $at, 65535 -/* 008120 70007520 3C0F8006 */ lui $t7, %hi(D_80063846) -/* 008124 70007524 14410005 */ bne $v0, $at, .L7000753C -/* 008128 70007528 00000000 */ nop -/* 00812C 7000752C 95EF3846 */ lhu $t7, %lo(D_80063846)($t7) -/* 008130 70007530 3C018006 */ lui $at, %hi(music2_length) -/* 008134 70007534 10000003 */ b .L70007544 -/* 008138 70007538 A42F384C */ sh $t7, %lo(music2_length)($at) -.L7000753C: -/* 00813C 7000753C 3C018006 */ lui $at, %hi(music2_length) -/* 008140 70007540 A422384C */ sh $v0, %lo(music2_length)($at) -.L70007544: -/* 008144 70007544 3C018006 */ lui $at, %hi(D_80063846) -/* 008148 70007548 A4203846 */ sh $zero, %lo(D_80063846)($at) -/* 00814C 7000754C 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 008150 70007550 44813000 */ mtc1 $at, $f6 -/* 008154 70007554 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 008158 70007558 3C018006 */ lui $at, %hi(music2_rate) -/* 00815C 7000755C 24080001 */ li $t0, 1 -/* 008160 70007560 46062202 */ mul.s $f8, $f4, $f6 -/* 008164 70007564 4600428D */ trunc.w.s $f10, $f8 -/* 008168 70007568 44195000 */ mfc1 $t9, $f10 -/* 00816C 7000756C 00000000 */ nop -/* 008170 70007570 AC393854 */ sw $t9, %lo(music2_rate)($at) -/* 008174 70007574 3C018002 */ lui $at, %hi(music2_playing) -/* 008178 70007578 AC284350 */ sw $t0, %lo(music2_playing)($at) -.L7000757C: -/* 00817C 7000757C 8FBF0014 */ lw $ra, 0x14($sp) -/* 008180 70007580 27BD0018 */ addiu $sp, $sp, 0x18 -/* 008184 70007584 03E00008 */ jr $ra -/* 008188 70007588 00000000 */ nop -) -#endif - - - - - /** * 818C 7000758C + * If sound boot flag is is set, nothing happens. + * If current track number is set, will call the stop playing method. + * Does not change g_musicXTrack3Fade, but will update current track number. + * Waits for the sequence playing to finish "doing things" and then loads music: + * - gets the track ROM location and size (previously set on init). + * - copies ths ROM data to a buffer, and decompresses the content + * - sets up the cseq player and calls alCSPPlay + * + * @param track: track number to play. */ -#ifdef NONMATCHING -void music_related_3rd_block(s32 arg0, s32 arg852) { - ? sp34; - s32 sp2140; - void *temp_t2; - s32 temp_v0; - s32 temp_a2; +void musicTrack3Play(s32 track) +{ + u32 trackSizeBytes; + struct music_struct_b thing; + u8 *temp_a0; + void *romAddress; + u32 t3; + struct huft hlist; - // Node 0 - if (bootswitch_sound == 0) + if (bootswitch_sound) { - // Node 1 - if (music3_track_num != 0) - { - // Node 2 - musicTrack3Stop(); - } - // Node 3 - music3_track_num = arg852; - if (alCSPGetState(seqp_3) != 0) - { - loop_4: - // Node 4 - if (alCSPGetState(seqp_3) != 0) - { - goto loop_4; - } - } - // Node 5 - temp_t2 = (ptr_musicdatatable + (music3_track_num * 8)); - temp_v0 = (music3_track_num * 2); - if ((u32) temp_t2->unk4 < 0x10000U) - { - // Node 6 - music_related_3rd_block(1, temp_t2->unk4, music3_track_num); - return; - // (possible return value: music_related_3rd_block(1, temp_t2->unk4, music3_track_num)) - } - // Node 7 - temp_a2 = ((((0x80060000 + temp_v0)->unk37B8 + 0xf) | 0xf) ^ 0xf); - sp2140 = (s32) D_80063840; - romCopy(((D_80063840 + (((((0x80060000 + temp_v0)->unk3738 + 0xf) | 0xf) ^ 0xf) + 0x40)) - temp_a2), temp_t2->unk4, temp_a2, music3_track_num); - decompressdata(sp28, sp2140, &sp34); - alCSeqNew(&D_80063A50, D_80063840); - alCSPSetSeq(seqp_3, &D_80063A50); - musicTrack3Vol((get_music3len() & 0xffff)); - alCSPPlay(seqp_3); + return; } - // Node 8 - return; - // (function likely void) + + if (g_musicXTrack3CurrentTrackNum) + { + musicTrack3Stop(); + } + + g_musicXTrack3CurrentTrackNum = track; + + while (alCSPGetState(g_musicXTrack3SeqPlayer)) + ; + + romAddress = g_musicDataTable->seqArray[g_musicXTrack3CurrentTrackNum].address; + + if (romAddress < (void*)ROM_MUSIC_START_OFFSET) + { + // Note: recursive call + musicTrack3Play(M_SHORT_SOLO_DEATH); + + return; + } + + t3 = ALIGN16_a(g_musicTrackOffset[g_musicXTrack3CurrentTrackNum]) + (NUM_MUSIC_TRACKS + 1); + trackSizeBytes = ALIGN16_a(g_musicTrackLength[g_musicXTrack3CurrentTrackNum]); + thing.seqData = g_musicXTrack3SeqData; + temp_a0 = (u8*)((t3 + (s32)thing.seqData) - trackSizeBytes); + + romCopy(temp_a0, romAddress, trackSizeBytes); + decompressdata(temp_a0, thing.seqData, &hlist); + + alCSeqNew(&g_musicXTrack3Seq, g_musicXTrack3SeqData); + alCSPSetSeq(g_musicXTrack3SeqPlayer, &g_musicXTrack3Seq); + musicTrack3ApplySeqpVol(musicTrack3GetVolume()); + alCSPPlay(g_musicXTrack3SeqPlayer); } -#else -GLOBAL_ASM( -.text -glabel music_related_3rd_block -/* 00818C 7000758C 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 008190 70007590 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 008194 70007594 27BDDEB8 */ addiu $sp, $sp, -0x2148 -/* 008198 70007598 AFBF001C */ sw $ra, 0x1c($sp) -/* 00819C 7000759C AFB00018 */ sw $s0, 0x18($sp) -/* 0081A0 700075A0 15C0004A */ bnez $t6, .L700076CC -/* 0081A4 700075A4 AFA42148 */ sw $a0, 0x2148($sp) -/* 0081A8 700075A8 3C0F8002 */ lui $t7, %hi(music3_track_num) -/* 0081AC 700075AC 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) -/* 0081B0 700075B0 51E00004 */ beql $t7, $zero, .L700075C4 -/* 0081B4 700075B4 8FB82148 */ lw $t8, 0x2148($sp) -/* 0081B8 700075B8 0C001DB8 */ jal musicTrack3Stop -/* 0081BC 700075BC 00000000 */ nop -/* 0081C0 700075C0 8FB82148 */ lw $t8, 0x2148($sp) -.L700075C4: -/* 0081C4 700075C4 3C108006 */ lui $s0, %hi(seqp_3) -/* 0081C8 700075C8 3C018002 */ lui $at, %hi(music3_track_num) -/* 0081CC 700075CC 26103730 */ addiu $s0, %lo(seqp_3) # addiu $s0, $s0, 0x3730 -/* 0081D0 700075D0 AC384344 */ sw $t8, %lo(music3_track_num)($at) -/* 0081D4 700075D4 0C00488C */ jal alCSPGetState -/* 0081D8 700075D8 8E040000 */ lw $a0, ($s0) -/* 0081DC 700075DC 10400005 */ beqz $v0, .L700075F4 -/* 0081E0 700075E0 00000000 */ nop -.L700075E4: -/* 0081E4 700075E4 0C00488C */ jal alCSPGetState -/* 0081E8 700075E8 8E040000 */ lw $a0, ($s0) -/* 0081EC 700075EC 1440FFFD */ bnez $v0, .L700075E4 -/* 0081F0 700075F0 00000000 */ nop -.L700075F4: -/* 0081F4 700075F4 3C078002 */ lui $a3, %hi(music3_track_num) -/* 0081F8 700075F8 8CE74344 */ lw $a3, %lo(music3_track_num)($a3) -/* 0081FC 700075FC 3C198006 */ lui $t9, %hi(ptr_musicdatatable) -/* 008200 70007600 8F393734 */ lw $t9, %lo(ptr_musicdatatable)($t9) -/* 008204 70007604 000748C0 */ sll $t1, $a3, 3 -/* 008208 70007608 3C010001 */ lui $at, 1 -/* 00820C 7000760C 03295021 */ addu $t2, $t9, $t1 -/* 008210 70007610 8D450004 */ lw $a1, 4($t2) -/* 008214 70007614 3C038006 */ lui $v1, %hi(D_80063738) -/* 008218 70007618 00071040 */ sll $v0, $a3, 1 -/* 00821C 7000761C 00A1082B */ sltu $at, $a1, $at -/* 008220 70007620 10200005 */ beqz $at, .L70007638 -/* 008224 70007624 00621821 */ addu $v1, $v1, $v0 -/* 008228 70007628 0C001D63 */ jal music_related_3rd_block -/* 00822C 7000762C 24040001 */ li $a0, 1 -/* 008230 70007630 10000027 */ b .L700076D0 -/* 008234 70007634 8FBF001C */ lw $ra, 0x1c($sp) -.L70007638: -/* 008238 70007638 94633738 */ lhu $v1, %lo(D_80063738)($v1) -/* 00823C 7000763C 3C068006 */ lui $a2, %hi(D_800637B8) -/* 008240 70007640 00C23021 */ addu $a2, $a2, $v0 -/* 008244 70007644 94C637B8 */ lhu $a2, %lo(D_800637B8)($a2) -/* 008248 70007648 3C088006 */ lui $t0, %hi(D_80063840) -/* 00824C 7000764C 2463000F */ addiu $v1, $v1, 0xf -/* 008250 70007650 8D083840 */ lw $t0, %lo(D_80063840)($t0) -/* 008254 70007654 346B000F */ ori $t3, $v1, 0xf -/* 008258 70007658 396C000F */ xori $t4, $t3, 0xf -/* 00825C 7000765C 24C6000F */ addiu $a2, $a2, 0xf -/* 008260 70007660 25830040 */ addiu $v1, $t4, 0x40 -/* 008264 70007664 34CD000F */ ori $t5, $a2, 0xf -/* 008268 70007668 39A6000F */ xori $a2, $t5, 0xf -/* 00826C 7000766C 01037821 */ addu $t7, $t0, $v1 -/* 008270 70007670 01E62023 */ subu $a0, $t7, $a2 -/* 008274 70007674 AFA40028 */ sw $a0, 0x28($sp) -/* 008278 70007678 0C001707 */ jal romCopy -/* 00827C 7000767C AFA82140 */ sw $t0, 0x2140($sp) -/* 008280 70007680 8FA40028 */ lw $a0, 0x28($sp) -/* 008284 70007684 8FA52140 */ lw $a1, 0x2140($sp) -/* 008288 70007688 0FC339FC */ jal decompressdata -/* 00828C 7000768C 27A60034 */ addiu $a2, $sp, 0x34 -/* 008290 70007690 3C048006 */ lui $a0, %hi(D_80063A50) -/* 008294 70007694 3C058006 */ lui $a1, %hi(D_80063840) -/* 008298 70007698 8CA53840 */ lw $a1, %lo(D_80063840)($a1) -/* 00829C 7000769C 0C0049E7 */ jal alCSeqNew -/* 0082A0 700076A0 24843A50 */ addiu $a0, %lo(D_80063A50) # addiu $a0, $a0, 0x3a50 -/* 0082A4 700076A4 3C058006 */ lui $a1, %hi(D_80063A50) -/* 0082A8 700076A8 24A53A50 */ addiu $a1, %lo(D_80063A50) # addiu $a1, $a1, 0x3a50 -/* 0082AC 700076AC 0C004B40 */ jal alCSPSetSeq -/* 0082B0 700076B0 8E040000 */ lw $a0, ($s0) -/* 0082B4 700076B4 0C001DD0 */ jal get_music3len -/* 0082B8 700076B8 00000000 */ nop -/* 0082BC 700076BC 0C001DD3 */ jal musicTrack3Vol -/* 0082C0 700076C0 3044FFFF */ andi $a0, $v0, 0xffff -/* 0082C4 700076C4 0C004B50 */ jal alCSPPlay -/* 0082C8 700076C8 8E040000 */ lw $a0, ($s0) -.L700076CC: -/* 0082CC 700076CC 8FBF001C */ lw $ra, 0x1c($sp) -.L700076D0: -/* 0082D0 700076D0 8FB00018 */ lw $s0, 0x18($sp) -/* 0082D4 700076D4 27BD2148 */ addiu $sp, $sp, 0x2148 -/* 0082D8 700076D8 03E00008 */ jr $ra -/* 0082DC 700076DC 00000000 */ nop -) -#endif - - /** * 82E0 700076E0 +* If sound boot flag is is set, nothing happens. + * Updates internal variables to stopped state, regardless of current state. + * If there's a current track set, and the cseq player is "doing something", + * calls alCSPStop on sequence player. + * Sets g_musicXTrack3Fade to MUSIC_FADESTATE_UNSET, + * and current track to zero. */ -#ifdef NONMATCHING -void musicTrack3Stop(void) { - // Node 0 - if (bootswitch_sound == 0) +void musicTrack3Stop(void) +{ + if (bootswitch_sound) { - // Node 1 - music3_playing = 0; - if (music3_track_num != 0) - { - // Node 2 - if (alCSPGetState(seqp_3) == 1) - { - // Node 3 - alCSPStop(seqp_3); - } - } - // Node 4 - music3_track_num = 0; return; - // (function likely void) } - // (function likely void) + + g_musicXTrack3Fade = MUSIC_FADESTATE_UNSET; + + if (g_musicXTrack3CurrentTrackNum != 0) + { + if (alCSPGetState(g_musicXTrack3SeqPlayer) == 1) + { + alCSPStop(g_musicXTrack3SeqPlayer); + } + } + + g_musicXTrack3CurrentTrackNum = 0; } -#else -GLOBAL_ASM( -.text -glabel musicTrack3Stop -/* 0082E0 700076E0 3C0E8002 */ lui $t6, %hi(bootswitch_sound) -/* 0082E4 700076E4 81CE43F8 */ lb $t6, %lo(bootswitch_sound)($t6) -/* 0082E8 700076E8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0082EC 700076EC AFBF0014 */ sw $ra, 0x14($sp) -/* 0082F0 700076F0 15C0000F */ bnez $t6, .L70007730 -/* 0082F4 700076F4 3C0F8002 */ lui $t7, %hi(music3_track_num) -/* 0082F8 700076F8 8DEF4344 */ lw $t7, %lo(music3_track_num)($t7) -/* 0082FC 700076FC 3C018002 */ lui $at, %hi(music3_playing) -/* 008300 70007700 AC204354 */ sw $zero, %lo(music3_playing)($at) -/* 008304 70007704 11E00008 */ beqz $t7, .L70007728 -/* 008308 70007708 3C048006 */ lui $a0, %hi(seqp_3) -/* 00830C 7000770C 0C00488C */ jal alCSPGetState -/* 008310 70007710 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 008314 70007714 24010001 */ li $at, 1 -/* 008318 70007718 14410003 */ bne $v0, $at, .L70007728 -/* 00831C 7000771C 3C048006 */ lui $a0, %hi(seqp_3) -/* 008320 70007720 0C004B5C */ jal alCSPStop -/* 008324 70007724 8C843730 */ lw $a0, %lo(seqp_3)($a0) -.L70007728: -/* 008328 70007728 3C018002 */ lui $at, %hi(music3_track_num) -/* 00832C 7000772C AC204344 */ sw $zero, %lo(music3_track_num)($at) -.L70007730: -/* 008330 70007730 8FBF0014 */ lw $ra, 0x14($sp) -/* 008334 70007734 27BD0018 */ addiu $sp, $sp, 0x18 -/* 008338 70007738 03E00008 */ jr $ra -/* 00833C 7000773C 00000000 */ nop -) -#endif - - - - - /** * 8340 70007740 * V0= 7FFF [80024348] */ -u16 get_music3len(void) { - return music3len; +u16 musicTrack3GetVolume(void) +{ + return g_musicXTrack3Volume; } - - - - - - /** * 834C 7000774C + * + * Sets the global variable storing the current volume. + * This is scaled by the default volume for the specific song (e.g., M_INTRO) + * and the cseq player volume is set to that value. */ -#ifdef NONMATCHING -void musicTrack3Vol(s32 arg0) { - s16 temp_a2; +void musicTrack3ApplySeqpVol(u16 volume) +{ + u32 t1 = volume; - // Node 0 - temp_a2 = (arg0 & 0xffff); - music3len = temp_a2; - alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2); - return; - // (possible return value: alCSPSetVol(seqp_3, ((s32) (((u32) (temp_a2 * (0x80020000 + (music3_track_num * 2))->unk4358) >> 0xf) << 0x10) >> 0x10), temp_a2)) + g_musicXTrack3Volume = (u16)t1; + + t1 *= g_musicDefaultTrackVolume[g_musicXTrack3CurrentTrackNum]; + // There's only one other relevant place in the code base that has a SRL by 0xf, + // it matches __vsVol in n64devkit\ultra\usr\src\pr\libsrc\libultra\audio\seqplayer.c + // but it's hard to say if it's related here or not. + t1 >>= 15; + + alCSPSetVol(g_musicXTrack3SeqPlayer, t1); } -#else -GLOBAL_ASM( -.text -glabel musicTrack3Vol -/* 00834C 7000774C 3C0E8002 */ lui $t6, %hi(music3_track_num) -/* 008350 70007750 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) -/* 008354 70007754 3C188002 */ lui $t8, %hi(music_tempo_array) -/* 008358 70007758 3086FFFF */ andi $a2, $a0, 0xffff -/* 00835C 7000775C 000E7840 */ sll $t7, $t6, 1 -/* 008360 70007760 030FC021 */ addu $t8, $t8, $t7 -/* 008364 70007764 87184358 */ lh $t8, %lo(music_tempo_array)($t8) -/* 008368 70007768 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00836C 7000776C AFA40018 */ sw $a0, 0x18($sp) -/* 008370 70007770 00D80019 */ multu $a2, $t8 -/* 008374 70007774 AFBF0014 */ sw $ra, 0x14($sp) -/* 008378 70007778 3C018002 */ lui $at, %hi(music3len) -/* 00837C 7000777C 3C048006 */ lui $a0, %hi(seqp_3) -/* 008380 70007780 A4264348 */ sh $a2, %lo(music3len)($at) -/* 008384 70007784 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 008388 70007788 00001012 */ mflo $v0 -/* 00838C 7000778C 0002CBC2 */ srl $t9, $v0, 0xf -/* 008390 70007790 00192C00 */ sll $a1, $t9, 0x10 -/* 008394 70007794 00054403 */ sra $t0, $a1, 0x10 -/* 008398 70007798 0C004B68 */ jal alCSPSetVol -/* 00839C 7000779C 01002825 */ move $a1, $t0 -/* 0083A0 700077A0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0083A4 700077A4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0083A8 700077A8 03E00008 */ jr $ra -/* 0083AC 700077AC 00000000 */ nop -) -#endif - - - - - - /** * 83B0 700077B0 + * g_musicDefaultTrackVolume is updated so that the currently playing + * track's default volume is now the current volume. */ -#ifdef NONMATCHING -void *music_related_10(void) { - // Node 0 - *(&music_tempo_array + (music3_track_num * 2)) = get_music3len(); - if (music_tempo_array >= 0) +void musicTrack3SaveCurrentVolumeAsTrackDefault(void) +{ + s32 i; + + g_musicDefaultTrackVolume[g_musicXTrack3CurrentTrackNum] = musicTrack3GetVolume(); + + for (i = 0; g_musicDefaultTrackVolume[i] >= 0; i++) { - loop_1: - // Node 1 - if (music_tempo_array.unk2 >= 0) - { - goto loop_1; - } + // removed; } - // (possible return value: &music_tempo_array) } -#else -GLOBAL_ASM( -.text -glabel music_related_10 -/* 0083B0 700077B0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0083B4 700077B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0083B8 700077B8 0C001DD0 */ jal get_music3len -/* 0083BC 700077BC 00000000 */ nop -/* 0083C0 700077C0 3C0E8002 */ lui $t6, %hi(music3_track_num) -/* 0083C4 700077C4 8DCE4344 */ lw $t6, %lo(music3_track_num)($t6) -/* 0083C8 700077C8 3C048002 */ lui $a0, %hi(music_tempo_array) -/* 0083CC 700077CC 24844358 */ addiu $a0, %lo(music_tempo_array) # addiu $a0, $a0, 0x4358 -/* 0083D0 700077D0 000E7840 */ sll $t7, $t6, 1 -/* 0083D4 700077D4 008FC021 */ addu $t8, $a0, $t7 -/* 0083D8 700077D8 A7020000 */ sh $v0, ($t8) -/* 0083DC 700077DC 84990000 */ lh $t9, ($a0) -/* 0083E0 700077E0 3C028002 */ lui $v0, %hi(music_tempo_array) -/* 0083E4 700077E4 24424358 */ addiu $v0, %lo(music_tempo_array) # addiu $v0, $v0, 0x4358 -/* 0083E8 700077E8 07200005 */ bltz $t9, .L70007800 -/* 0083EC 700077EC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0083F0 700077F0 84480002 */ lh $t0, 2($v0) -.L700077F4: -/* 0083F4 700077F4 24420002 */ addiu $v0, $v0, 2 -/* 0083F8 700077F8 0503FFFE */ bgezl $t0, .L700077F4 -/* 0083FC 700077FC 84480002 */ lh $t0, 2($v0) -.L70007800: -/* 008400 70007800 03E00008 */ jr $ra -/* 008404 70007804 27BD0018 */ addiu $sp, $sp, 0x18 -) -#endif - - /** * 8408 70007808 + * Updates internal variables to fadeout state, if not already fading out. + * Starting/stopping output of audio is not directly managed here. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_UNSET. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. */ -#ifdef NONMATCHING -void music_related_11(f32 arg0, f32 arg6) { - // Node 0 - if (music3_playing >= 0) +void musicTrack3FadeOut(f32 fadeTime) +{ + if (g_musicXTrack3Fade >= MUSIC_FADESTATE_UNSET) { - // Node 1 - D_80063848 = get_music3len(); - music3_length = (u16)0; - music3_rate = (s32) (arg6 * 60.0f); - music3_playing = -1; - return; - // (possible return value: get_music3len()) + g_musicXTrack3PreFadeSavedVolume = musicTrack3GetVolume(); + g_musicXTrack3FadeToVolume = 0; + g_musicXTrack3FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack3Fade = MUSIC_FADESTATE_FADE_OUT; } - // (function likely void) } -#else -GLOBAL_ASM( -.text -glabel music_related_11 -/* 008408 70007808 3C0E8002 */ lui $t6, %hi(music3_playing) -/* 00840C 7000780C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) -/* 008410 70007810 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 008414 70007814 AFBF0014 */ sw $ra, 0x14($sp) -/* 008418 70007818 05C00013 */ bltz $t6, .L70007868 -/* 00841C 7000781C E7AC0018 */ swc1 $f12, 0x18($sp) -/* 008420 70007820 0C001DD0 */ jal get_music3len -/* 008424 70007824 00000000 */ nop -/* 008428 70007828 3C018006 */ lui $at, %hi(D_80063848) -/* 00842C 7000782C A4223848 */ sh $v0, %lo(D_80063848)($at) -/* 008430 70007830 3C018006 */ lui $at, %hi(music3_length) -/* 008434 70007834 A420384E */ sh $zero, %lo(music3_length)($at) -/* 008438 70007838 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 00843C 7000783C 44813000 */ mtc1 $at, $f6 -/* 008440 70007840 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 008444 70007844 3C018006 */ lui $at, %hi(music3_rate) -/* 008448 70007848 2419FFFF */ li $t9, -1 -/* 00844C 7000784C 46062202 */ mul.s $f8, $f4, $f6 -/* 008450 70007850 4600428D */ trunc.w.s $f10, $f8 -/* 008454 70007854 44185000 */ mfc1 $t8, $f10 -/* 008458 70007858 00000000 */ nop -/* 00845C 7000785C AC383858 */ sw $t8, %lo(music3_rate)($at) -/* 008460 70007860 3C018002 */ lui $at, %hi(music3_playing) -/* 008464 70007864 AC394354 */ sw $t9, %lo(music3_playing)($at) -.L70007868: -/* 008468 70007868 8FBF0014 */ lw $ra, 0x14($sp) -/* 00846C 7000786C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 008470 70007870 03E00008 */ jr $ra -/* 008474 70007874 00000000 */ nop -) -#endif - - - - /** * 8478 70007878 + * Updates internal variables to fadein state, if not already fading in. + * Calls alCSPPlay on cseq player. + * Sets g_musicXTrack1Fade to MUSIC_FADESTATE_FADE_IN. + * + * @param fadeTime: length of time in seconds for fade to last. This number is + * multiplied by the FPS to get the number of frames fade should last. + * + * @param volume: volume of track. Pass -1 to use previously saved volume. */ -#ifdef NONMATCHING -s16 music_related_13(f32 arg0, s32 arg1, f32 arg6, s16 arg7) { - // Node 0 - if (music3_playing <= 0) +void musicTrack3FadeIn(f32 fadeTime, u16 volume) +{ + if (g_musicXTrack3Fade <= MUSIC_FADESTATE_UNSET) { - // Node 1 - alCSPPlay(seqp_3); - if (arg7 == 0xffff) + alCSPPlay(g_musicXTrack3SeqPlayer); + + if (volume == 0xffff) { - // Node 2 - music3_length = (s16) D_80063848; + g_musicXTrack3FadeToVolume = g_musicXTrack3PreFadeSavedVolume; } else { - // Node 3 - music3_length = arg7; + g_musicXTrack3FadeToVolume = volume; } - // Node 4 - D_80063848 = (u16)0; - music3_rate = (s32) (arg6 * 60.0f); - music3_playing = 1; - return; - // (possible return value: arg7) + + g_musicXTrack3PreFadeSavedVolume = 0; + g_musicXTrack3FadeRemainingFrames = (s32) (fadeTime * FADE_FRAMERATE); + g_musicXTrack3Fade = MUSIC_FADESTATE_FADE_IN; } - // (function likely void) } -#else -GLOBAL_ASM( -.text -glabel music_related_13 -/* 008478 70007878 3C0E8002 */ lui $t6, %hi(music3_playing) -/* 00847C 7000787C 8DCE4354 */ lw $t6, %lo(music3_playing)($t6) -/* 008480 70007880 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 008484 70007884 AFBF0014 */ sw $ra, 0x14($sp) -/* 008488 70007888 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 00848C 7000788C 1DC0001D */ bgtz $t6, .L70007904 -/* 008490 70007890 AFA5001C */ sw $a1, 0x1c($sp) -/* 008494 70007894 3C048006 */ lui $a0, %hi(seqp_3) -/* 008498 70007898 0C004B50 */ jal alCSPPlay -/* 00849C 7000789C 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 0084A0 700078A0 97A2001E */ lhu $v0, 0x1e($sp) -/* 0084A4 700078A4 3401FFFF */ li $at, 65535 -/* 0084A8 700078A8 3C0F8006 */ lui $t7, %hi(D_80063848) -/* 0084AC 700078AC 14410005 */ bne $v0, $at, .L700078C4 -/* 0084B0 700078B0 00000000 */ nop -/* 0084B4 700078B4 95EF3848 */ lhu $t7, %lo(D_80063848)($t7) -/* 0084B8 700078B8 3C018006 */ lui $at, %hi(music3_length) -/* 0084BC 700078BC 10000003 */ b .L700078CC -/* 0084C0 700078C0 A42F384E */ sh $t7, %lo(music3_length)($at) -.L700078C4: -/* 0084C4 700078C4 3C018006 */ lui $at, %hi(music3_length) -/* 0084C8 700078C8 A422384E */ sh $v0, %lo(music3_length)($at) -.L700078CC: -/* 0084CC 700078CC 3C018006 */ lui $at, %hi(D_80063848) -/* 0084D0 700078D0 A4203848 */ sh $zero, %lo(D_80063848)($at) -/* 0084D4 700078D4 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 0084D8 700078D8 44813000 */ mtc1 $at, $f6 -/* 0084DC 700078DC C7A40018 */ lwc1 $f4, 0x18($sp) -/* 0084E0 700078E0 3C018006 */ lui $at, %hi(music3_rate) -/* 0084E4 700078E4 24080001 */ li $t0, 1 -/* 0084E8 700078E8 46062202 */ mul.s $f8, $f4, $f6 -/* 0084EC 700078EC 4600428D */ trunc.w.s $f10, $f8 -/* 0084F0 700078F0 44195000 */ mfc1 $t9, $f10 -/* 0084F4 700078F4 00000000 */ nop -/* 0084F8 700078F8 AC393858 */ sw $t9, %lo(music3_rate)($at) -/* 0084FC 700078FC 3C018002 */ lui $at, %hi(music3_playing) -/* 008500 70007900 AC284354 */ sw $t0, %lo(music3_playing)($at) -.L70007904: -/* 008504 70007904 8FBF0014 */ lw $ra, 0x14($sp) -/* 008508 70007908 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00850C 7000790C 03E00008 */ jr $ra -/* 008510 70007910 00000000 */ nop -) -#endif - - - - - /** * 8514 70007914 + * Called by the scheduler to fade between music sources (e.g., level music -> watch pause music). */ -#ifdef NONMATCHING -void music_related_15(void) { - s16 sp1E; - s16 sp26; - s16 sp2E; - ? temp_ret; - s32 temp_a1; - s16 temp_t9; - s32 temp_t1; - ? temp_ret_2; - s32 temp_a1_2; - s16 temp_t0; - s32 temp_t2; - ? temp_ret_3; - s32 temp_a1_3; - s16 temp_t1_2; - s32 temp_t3; +void musicFadeTick(void) +{ + if (g_musicXTrack1Fade) + { + u16 t0; + s32 t1; + + t0 = musicTrack1GetVolume(); + t1 = (u16)g_musicXTrack1FadeToVolume - t0; + t0 += (s32) ((f32) t1 / (f32) g_musicXTrack1FadeRemainingFrames); - if (music1_playing != 0) - { - temp_ret_3 = musicTrack1Length(); - temp_a1_3 = (music1_length - temp_ret_3); - temp_t1_2 = ((temp_ret_3 + (s32) ((f32) temp_a1_3 / (f32) music1_rate)) & 0xffff); - sp2E = temp_t1_2; - musicTrack1Vol(temp_t1_2, temp_a1_3, &music1_rate); - temp_t3 = (music1_rate + -1); - music1_rate = temp_t3; - if (temp_t3 <= 0) + musicTrack1ApplySeqpVol(t0); + g_musicXTrack1FadeRemainingFrames--; + + if (g_musicXTrack1FadeRemainingFrames <= 0) { - if (&seqp_1 == 0) + if (t0 == 0) { - alCSPStop(seqp_1, &music1_rate); + alCSPStop(g_musicXTrack1SeqPlayer); } - music1_rate = 0; - music1_playing = 0; + + g_musicXTrack1FadeRemainingFrames = 0; + g_musicXTrack1Fade = MUSIC_FADESTATE_UNSET; } } - if (music2_playing != 0) + + if (g_musicXTrack2Fade) { - temp_ret_2 = musicTrack2Length(); - temp_a1_2 = (music2_length - temp_ret_2); - temp_t0 = ((temp_ret_2 + (s32) ((f32) temp_a1_2 / (f32) music2_rate)) & 0xffff); - sp26 = temp_t0; - musicTrack2Vol(temp_t0, temp_a1_2, &music2_rate); - temp_t2 = (music2_rate + -1); - music2_rate = temp_t2; - if (temp_t2 <= 0) + u16 t0; + s32 t1; + + t0 = musicTrack2GetVolume(); + t1 = (u16)g_musicXTrack2FadeToVolume - t0; + t0 += (s32) ((f32) t1 / (f32) g_musicXTrack2FadeRemainingFrames); + + musicTrack2ApplySeqpVol(t0); + g_musicXTrack2FadeRemainingFrames--; + + if (g_musicXTrack2FadeRemainingFrames <= 0) { - if (&seqp_2 == 0) + if (t0 == 0) { - alCSPStop(seqp_2, &music2_rate); + alCSPStop(g_musicXTrack2SeqPlayer); } - music2_rate = 0; - music2_playing = 0; + + g_musicXTrack2FadeRemainingFrames = 0; + g_musicXTrack2Fade = MUSIC_FADESTATE_UNSET; } } - if (music3_playing != 0) + + if (g_musicXTrack3Fade) { - temp_ret = get_music3len(); - temp_a1 = (music3_length - temp_ret); - temp_t9 = ((temp_ret + (s32) ((f32) temp_a1 / (f32) music3_rate)) & 0xffff); - sp1E = temp_t9; - musicTrack3Vol(temp_t9, temp_a1, &music3_rate); - temp_t1 = (music3_rate + -1); - music3_rate = temp_t1; - if (temp_t1 <= 0) + u16 t0; + s32 t1; + + t0 = musicTrack3GetVolume(); + t1 = (u16)g_musicXTrack3FadeToVolume - t0; + t0 += (s32) ((f32) t1 / (f32) g_musicXTrack3FadeRemainingFrames); + + musicTrack3ApplySeqpVol(t0); + g_musicXTrack3FadeRemainingFrames--; + + if (g_musicXTrack3FadeRemainingFrames <= 0) { - if (&seqp_3 == 0) + if (t0 == 0) { - alCSPStop(seqp_3, &music3_rate); + alCSPStop(g_musicXTrack3SeqPlayer); } - music3_rate = 0; - music3_playing = 0; + + g_musicXTrack3FadeRemainingFrames = 0; + g_musicXTrack3Fade = MUSIC_FADESTATE_UNSET; } } } -#else -GLOBAL_ASM( -.text -glabel music_related_15 -/* 008514 70007914 3C0E8002 */ lui $t6, %hi(music1_playing) -/* 008518 70007918 8DCE434C */ lw $t6, %lo(music1_playing)($t6) -/* 00851C 7000791C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 008520 70007920 AFBF0014 */ sw $ra, 0x14($sp) -/* 008524 70007924 11C00026 */ beqz $t6, .L700079C0 -/* 008528 70007928 00000000 */ nop -/* 00852C 7000792C 0C001C0C */ jal musicTrack1Length -/* 008530 70007930 00000000 */ nop -/* 008534 70007934 3C068006 */ lui $a2, %hi(music1_rate) -/* 008538 70007938 3C0F8006 */ lui $t7, %hi(music1_length) -/* 00853C 7000793C 95EF384A */ lhu $t7, %lo(music1_length)($t7) -/* 008540 70007940 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 -/* 008544 70007944 8CD80000 */ lw $t8, ($a2) -/* 008548 70007948 01E22823 */ subu $a1, $t7, $v0 -/* 00854C 7000794C 44852000 */ mtc1 $a1, $f4 -/* 008550 70007950 44984000 */ mtc1 $t8, $f8 -/* 008554 70007954 468021A0 */ cvt.s.w $f6, $f4 -/* 008558 70007958 468042A0 */ cvt.s.w $f10, $f8 -/* 00855C 7000795C 460A3403 */ div.s $f16, $f6, $f10 -/* 008560 70007960 4600848D */ trunc.w.s $f18, $f16 -/* 008564 70007964 44089000 */ mfc1 $t0, $f18 -/* 008568 70007968 00000000 */ nop -/* 00856C 7000796C 00482021 */ addu $a0, $v0, $t0 -/* 008570 70007970 3089FFFF */ andi $t1, $a0, 0xffff -/* 008574 70007974 01202025 */ move $a0, $t1 -/* 008578 70007978 0C001C0F */ jal musicTrack1Vol -/* 00857C 7000797C A7A9002E */ sh $t1, 0x2e($sp) -/* 008580 70007980 3C068006 */ lui $a2, %hi(music1_rate) -/* 008584 70007984 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 -/* 008588 70007988 8CCA0000 */ lw $t2, ($a2) -/* 00858C 7000798C 97A4002E */ lhu $a0, 0x2e($sp) -/* 008590 70007990 254BFFFF */ addiu $t3, $t2, -1 -/* 008594 70007994 1D60000A */ bgtz $t3, .L700079C0 -/* 008598 70007998 ACCB0000 */ sw $t3, ($a2) -/* 00859C 7000799C 14800005 */ bnez $a0, .L700079B4 -/* 0085A0 700079A0 3C048006 */ lui $a0, %hi(seqp_1) -/* 0085A4 700079A4 0C004B5C */ jal alCSPStop -/* 0085A8 700079A8 8C843728 */ lw $a0, %lo(seqp_1)($a0) -/* 0085AC 700079AC 3C068006 */ lui $a2, %hi(music1_rate) -/* 0085B0 700079B0 24C63850 */ addiu $a2, %lo(music1_rate) # addiu $a2, $a2, 0x3850 -.L700079B4: -/* 0085B4 700079B4 ACC00000 */ sw $zero, ($a2) -/* 0085B8 700079B8 3C018002 */ lui $at, %hi(music1_playing) -/* 0085BC 700079BC AC20434C */ sw $zero, %lo(music1_playing)($at) -.L700079C0: -/* 0085C0 700079C0 3C0D8002 */ lui $t5, %hi(music2_playing) -/* 0085C4 700079C4 8DAD4350 */ lw $t5, %lo(music2_playing)($t5) -/* 0085C8 700079C8 11A00026 */ beqz $t5, .L70007A64 -/* 0085CC 700079CC 00000000 */ nop -/* 0085D0 700079D0 0C001CEE */ jal musicTrack2Length -/* 0085D4 700079D4 00000000 */ nop -/* 0085D8 700079D8 3C068006 */ lui $a2, %hi(music2_rate) -/* 0085DC 700079DC 3C0E8006 */ lui $t6, %hi(music2_length) -/* 0085E0 700079E0 95CE384C */ lhu $t6, %lo(music2_length)($t6) -/* 0085E4 700079E4 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 -/* 0085E8 700079E8 8CCF0000 */ lw $t7, ($a2) -/* 0085EC 700079EC 01C22823 */ subu $a1, $t6, $v0 -/* 0085F0 700079F0 44852000 */ mtc1 $a1, $f4 -/* 0085F4 700079F4 448F3000 */ mtc1 $t7, $f6 -/* 0085F8 700079F8 46802220 */ cvt.s.w $f8, $f4 -/* 0085FC 700079FC 468032A0 */ cvt.s.w $f10, $f6 -/* 008600 70007A00 460A4403 */ div.s $f16, $f8, $f10 -/* 008604 70007A04 4600848D */ trunc.w.s $f18, $f16 -/* 008608 70007A08 44199000 */ mfc1 $t9, $f18 -/* 00860C 70007A0C 00000000 */ nop -/* 008610 70007A10 00592021 */ addu $a0, $v0, $t9 -/* 008614 70007A14 3088FFFF */ andi $t0, $a0, 0xffff -/* 008618 70007A18 01002025 */ move $a0, $t0 -/* 00861C 70007A1C 0C001CF1 */ jal musicTrack2Vol -/* 008620 70007A20 A7A80026 */ sh $t0, 0x26($sp) -/* 008624 70007A24 3C068006 */ lui $a2, %hi(music2_rate) -/* 008628 70007A28 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 -/* 00862C 70007A2C 8CC90000 */ lw $t1, ($a2) -/* 008630 70007A30 97A40026 */ lhu $a0, 0x26($sp) -/* 008634 70007A34 252AFFFF */ addiu $t2, $t1, -1 -/* 008638 70007A38 1D40000A */ bgtz $t2, .L70007A64 -/* 00863C 70007A3C ACCA0000 */ sw $t2, ($a2) -/* 008640 70007A40 14800005 */ bnez $a0, .L70007A58 -/* 008644 70007A44 3C048006 */ lui $a0, %hi(seqp_2) -/* 008648 70007A48 0C004B5C */ jal alCSPStop -/* 00864C 70007A4C 8C84372C */ lw $a0, %lo(seqp_2)($a0) -/* 008650 70007A50 3C068006 */ lui $a2, %hi(music2_rate) -/* 008654 70007A54 24C63854 */ addiu $a2, %lo(music2_rate) # addiu $a2, $a2, 0x3854 -.L70007A58: -/* 008658 70007A58 ACC00000 */ sw $zero, ($a2) -/* 00865C 70007A5C 3C018002 */ lui $at, %hi(music2_playing) -/* 008660 70007A60 AC204350 */ sw $zero, %lo(music2_playing)($at) -.L70007A64: -/* 008664 70007A64 3C0C8002 */ lui $t4, %hi(music3_playing) -/* 008668 70007A68 8D8C4354 */ lw $t4, %lo(music3_playing)($t4) -/* 00866C 70007A6C 51800027 */ beql $t4, $zero, .L70007B0C -/* 008670 70007A70 8FBF0014 */ lw $ra, 0x14($sp) -/* 008674 70007A74 0C001DD0 */ jal get_music3len -/* 008678 70007A78 00000000 */ nop -/* 00867C 70007A7C 3C068006 */ lui $a2, %hi(music3_rate) -/* 008680 70007A80 3C0D8006 */ lui $t5, %hi(music3_length) -/* 008684 70007A84 95AD384E */ lhu $t5, %lo(music3_length)($t5) -/* 008688 70007A88 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 -/* 00868C 70007A8C 8CCE0000 */ lw $t6, ($a2) -/* 008690 70007A90 01A22823 */ subu $a1, $t5, $v0 -/* 008694 70007A94 44852000 */ mtc1 $a1, $f4 -/* 008698 70007A98 448E4000 */ mtc1 $t6, $f8 -/* 00869C 70007A9C 468021A0 */ cvt.s.w $f6, $f4 -/* 0086A0 70007AA0 468042A0 */ cvt.s.w $f10, $f8 -/* 0086A4 70007AA4 460A3403 */ div.s $f16, $f6, $f10 -/* 0086A8 70007AA8 4600848D */ trunc.w.s $f18, $f16 -/* 0086AC 70007AAC 44189000 */ mfc1 $t8, $f18 -/* 0086B0 70007AB0 00000000 */ nop -/* 0086B4 70007AB4 00582021 */ addu $a0, $v0, $t8 -/* 0086B8 70007AB8 3099FFFF */ andi $t9, $a0, 0xffff -/* 0086BC 70007ABC 03202025 */ move $a0, $t9 -/* 0086C0 70007AC0 0C001DD3 */ jal musicTrack3Vol -/* 0086C4 70007AC4 A7B9001E */ sh $t9, 0x1e($sp) -/* 0086C8 70007AC8 3C068006 */ lui $a2, %hi(music3_rate) -/* 0086CC 70007ACC 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 -/* 0086D0 70007AD0 8CC80000 */ lw $t0, ($a2) -/* 0086D4 70007AD4 97A4001E */ lhu $a0, 0x1e($sp) -/* 0086D8 70007AD8 2509FFFF */ addiu $t1, $t0, -1 -/* 0086DC 70007ADC 1D20000A */ bgtz $t1, .L70007B08 -/* 0086E0 70007AE0 ACC90000 */ sw $t1, ($a2) -/* 0086E4 70007AE4 14800005 */ bnez $a0, .L70007AFC -/* 0086E8 70007AE8 3C048006 */ lui $a0, %hi(seqp_3) -/* 0086EC 70007AEC 0C004B5C */ jal alCSPStop -/* 0086F0 70007AF0 8C843730 */ lw $a0, %lo(seqp_3)($a0) -/* 0086F4 70007AF4 3C068006 */ lui $a2, %hi(music3_rate) -/* 0086F8 70007AF8 24C63858 */ addiu $a2, %lo(music3_rate) # addiu $a2, $a2, 0x3858 -.L70007AFC: -/* 0086FC 70007AFC ACC00000 */ sw $zero, ($a2) -/* 008700 70007B00 3C018002 */ lui $at, %hi(music3_playing) -/* 008704 70007B04 AC204354 */ sw $zero, %lo(music3_playing)($at) -.L70007B08: -/* 008708 70007B08 8FBF0014 */ lw $ra, 0x14($sp) -.L70007B0C: -/* 00870C 70007B0C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 008710 70007B10 03E00008 */ jr $ra -/* 008714 70007B14 00000000 */ nop -) -#endif - - - diff --git a/src/music.h b/src/music.h index 5894af6..198131c 100644 --- a/src/music.h +++ b/src/music.h @@ -1,46 +1,59 @@ #ifndef _MUSIC_H_ #define _MUSIC_H_ #include "ultra64.h" -#include "bondgame.h" +#include "include/PR/libaudio.h" -extern s32 music_unused; -extern s32 music1_track_num; -extern s32 music1len; -extern s32 music2_track_num; -extern s32 music2len; -extern s32 music3_track_num; -extern s32 music3len; -extern s32 music1_playing; -extern s32 music2_playing; -extern s32 music3_playing; +typedef enum MUSIC_FADESTATE_e { + /** + * Music track is fading out. + */ + MUSIC_FADESTATE_FADE_OUT = -1, -extern u32 hp[4]; -extern u32 *ptr_sfx_buf; -extern s32 D_80063724; -extern s32 seqp_1; -extern s32 seqp_2; -extern s32 seqp_3; -extern void *ptr_musicdatatable; + /** + * Default state. Also reached when forcibly halted by application. + */ + MUSIC_FADESTATE_UNSET, + + /** + * Music track is fading in. + */ + MUSIC_FADESTATE_FADE_IN +} MUSIC_FADESTATE; + +void musicSeqPlayerInit(void); + +void musicTrack1Play(s32 track); +void musicTrack1Stop(void); +u16 musicTrack1GetVolume(void); +void musicTrack1ApplySeqpVol(u16 volume); +void musicTrack1SaveCurrentVolumeAsTrackDefault(void); +void musicTrack1FadeOut(f32 fadeTime); +void musicTrack1FadeIn(f32 fadeTime, u16 volume); + +void musicTrack2Play(s32 track); +void musicTrack2Stop(void); +u16 musicTrack2GetVolume(void); +void musicTrack2ApplySeqpVol(u16 volume); +void musicTrack2SaveCurrentVolumeAsTrackDefault(void); +void musicTrack2FadeOut(f32 fadeTime); +void musicTrack2FadeIn(f32 fadeTime, u16 volume); + +void musicTrack3Play(s32 track); +void musicTrack3Stop(void); +u16 musicTrack3GetVolume(void); +void musicTrack3ApplySeqpVol(u16 volume); +void musicTrack3SaveCurrentVolumeAsTrackDefault(void); +void musicTrack3FadeOut(f32 fadeTime); +void musicTrack3FadeIn(f32 fadeTime, u16 volume); + +void musicFadeTick(void); + +extern s32 g_musicXTrack1Fade; +extern s32 g_musicXTrack2Fade; +extern s32 g_musicXTrack3Fade; + +extern ALBank *g_musicSfxBufferPtr; -extern char D_80063738[0x80]; -extern char D_800637B8[0x7E]; -extern s16 D_80063836; -extern s32 D_80063838; -extern s32 D_8006383C; -extern s32 D_80063840; -extern s16 musicTrack1_length; -extern s16 D_80063846; -extern s16 D_80063848; -extern s16 music1_length; -extern s16 music2_length; -extern s16 music3_length; -extern s32 music1_rate; -extern s32 music2_rate; -extern s32 music3_rate; -extern s32 D_8006385C; -extern char D_80063860[0xF8]; -extern char D_80063958[0xF8]; -extern char D_80063A50[0x100]; extern char D_80063B50[0x54]; extern s32 D_80063BA4; extern s32 D_80063BA8; diff --git a/src/random.c b/src/random.c index 779ba1d..6ccc856 100644 --- a/src/random.c +++ b/src/random.c @@ -1,25 +1,38 @@ #include "ultra64.h" +/** + * @file random.c + * This file contains code to get a random value and set the next seed. + * The methods here are the same as in tlb_random and chrObjRandom (but different globals). + */ -u64 randseed = 0xAB8D9F7781280783; - - +u64 g_randomSeed = 0xAB8D9F7781280783; #ifdef NONMATCHING -u32 get_random_value(void) { - ulonglong uVar1; - - uVar1 = ((randseed << 0x3f) >> 0x1f | (randseed << 0x1f) >> 0x20) ^ (randseed << 0x2c) >> 0x20; - randseed = uVar1 >> 0x14 & 0xfff ^ uVar1; - return (u32)randseed; +/** + * Iterates the current random seed and returns a 32 bit value. + * Same assembly instructions as tlbRandomGetNext and chrObjRandomGetNext, but different globals. + */ +s32 randomGetNext(void) { + // best -O1 guess + // g_randomSeed ^= (((((g_randomSeed << 0x3f) >> 0x1f) | ((g_randomSeed << 0x1f) >> 0x20)) ^ ((g_randomSeed << 0x2c) >> 0x20)) >> 0x14) & 0xfff; + // return (s32)(g_randomSeed); + + // best -O2 guess + // u64 t = ((g_randomSeed << 0x3f) >> 0x1f); + // t |= ((g_randomSeed << 0x1f) >> 0x20); + // t ^= ((g_randomSeed << 0x2c) >> 0x20); + // t = g_randomSeed ^ ((t >> 0x14) & 0xfff); + // g_randomSeed = t; + // return (s32)(t); } #else GLOBAL_ASM( .text -glabel get_random_value -/* 00B050 7000A450 3C048002 */ lui $a0, %hi(randseed) -/* 00B054 7000A454 DC844460 */ ld $a0, %lo(randseed)($a0) -/* 00B058 7000A458 3C018002 */ lui $at, %hi(randseed) +glabel randomGetNext +/* 00B050 7000A450 3C048002 */ lui $a0, %hi(g_randomSeed) +/* 00B054 7000A454 DC844460 */ ld $a0, %lo(g_randomSeed)($a0) +/* 00B058 7000A458 3C018002 */ lui $at, %hi(g_randomSeed) /* 00B05C 7000A45C 000437FC */ dsll32 $a2, $a0, 0x1f /* 00B060 7000A460 00042FF8 */ dsll $a1, $a0, 0x1f /* 00B064 7000A464 000637FA */ dsrl $a2, $a2, 0x1f @@ -32,7 +45,7 @@ glabel get_random_value /* 00B080 7000A480 30840FFF */ andi $a0, $a0, 0xfff /* 00B084 7000A484 00862026 */ xor $a0, $a0, $a2 /* 00B088 7000A488 0004103C */ dsll32 $v0, $a0, 0 -/* 00B08C 7000A48C FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B08C 7000A48C FC244460 */ sd $a0, %lo(g_randomSeed)($at) /* 00B090 7000A490 03E00008 */ jr $ra /* 00B094 7000A494 0002103F */ dsra32 $v0, $v0, 0 ) @@ -41,17 +54,24 @@ glabel get_random_value #ifdef NONMATCHING -void increment_random_num(u64 param_1) { - randseed = param_1 + 1; - return; +/** + * This sets the global random seed. This is called from boss mainloop by randomSetSeed(osGetCount()), + * so the argument may just be 32bit. + * + * Assembly assigns zero to $a0 at the end of the function, which seems odd. + * + * Same assembly instructions as chrObjRandomSetSeed. + */ +void randomSetSeed(u32 param_1) { + g_randomSeed = param_1 + 1; } #else GLOBAL_ASM( .text -glabel increment_random_num +glabel randomSetSeed /* 00B098 7000A498 64840001 */ daddiu $a0, $a0, 1 -/* 00B09C 7000A49C 3C018002 */ lui $at, %hi(randseed) -/* 00B0A0 7000A4A0 FC244460 */ sd $a0, %lo(randseed)($at) +/* 00B09C 7000A49C 3C018002 */ lui $at, %hi(g_randomSeed) +/* 00B0A0 7000A4A0 FC244460 */ sd $a0, %lo(g_randomSeed)($at) /* 00B0A4 7000A4A4 03E00008 */ jr $ra /* 00B0A8 7000A4A8 24040000 */ li $a0, 0 ) @@ -60,19 +80,27 @@ glabel increment_random_num #ifdef NONMATCHING -u32 lotsa_shifting_random_related(ulonglong *param_1) { - ulonglong uVar1; - - uVar1 = *param_1; - uVar1 = ((uVar1 << 0x3f) >> 0x1f | (uVar1 << 0x1f) >> 0x20) ^ (uVar1 << 0x2c) >> 0x20; - uVar1 = uVar1 >> 0x14 & 0xfff ^ uVar1; - *param_1 = uVar1; - return (u32)uVar1; +/** + * Iterates the parameter as if it were the random seed and returns the next 32 bit random value. + * This uses the same logic as randomGetNext. + */ +s32 randomGetNextFrom(u64 *param_1) { + // best -O1 guess + // *param_1 ^= (((((*param_1 << 0x3f) >> 0x1f) | ((*param_1 << 0x1f) >> 0x20)) ^ ((*param_1 << 0x2c) >> 0x20)) >> 0x14) & 0xfff; + // return (s32)(*param_1); + + // best -O2 guess + // u64 t = ((*param_1 << 0x3f) >> 0x1f); + // t |= ((*param_1 << 0x1f) >> 0x20); + // t ^= ((*param_1 << 0x2c) >> 0x20); + // t = *param_1 ^ ((t >> 0x14) & 0xfff); + // *param_1 = t; + // return (s32)(t); } #else GLOBAL_ASM( .text -glabel lotsa_shifting_randomizer_related +glabel randomGetNextFrom /* 00B0AC 7000A4AC DC870000 */ ld $a3, ($a0) /* 00B0B0 7000A4B0 000737FC */ dsll32 $a2, $a3, 0x1f /* 00B0B4 7000A4B4 00072FF8 */ dsll $a1, $a3, 0x1f diff --git a/src/random.h b/src/random.h new file mode 100644 index 0000000..533e953 --- /dev/null +++ b/src/random.h @@ -0,0 +1,7 @@ +#ifndef _RANDOM_H_ +#define _RANDOM_H_ +#include "ultra64.h" + +void randomSetSeed(u32 param_1); + +#endif diff --git a/src/rmon.c b/src/rmon.c index 1d7930e..ac4465f 100644 --- a/src/rmon.c +++ b/src/rmon.c @@ -1,131 +1,78 @@ +#include #include "ultra64.h" +#include "deb_print.h" - -void rmonproc(void) { - // (function likely void) +/** + * Removed + */ +void rmonMain(void) { + // Removed } -s32 rmon_debug_is_final_build(void) { - return 1; +s32 rmonIsFinalBuild(void) { + return TRUE; } -s32 rmon_debug_returns_neg_1(void) { +/** + * Removed + */ +s32 rmon7000CEB0(void) { + // Removed return -1; } - -void rmon_debug_stub(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CEB8(void) { + // Removed } - -void rmon_debug_stub_0(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CEC0(void) { + // Removed } -void rmon_debug_stub_1(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CEC8(void) { + // Removed } -void rmon_debug_stub_2(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CED0(void) { + // Removed } -void rmon_debug_stub_3(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CED8(void) { + // Removed } -void rmon_debug_stub_4(void) { - // (function likely void) +/** + * Removed + */ +void rmon7000CEE0(void) { + // Removed } - - -#ifdef NONMATCHING -? proutSyncPrintf(s32 arg0, void *arg1, s32 arg2) -{ - s32 temp_s0; - void *phi_s1; - s32 phi_s0; - - if (arg2 != 0) - { - phi_s1 = arg1; - phi_s0 = 0; -loop_2: - temp_s0 = phi_s0 + 1; - __osRdbSend(*phi_s1); - phi_s1 = phi_s1 + 1; - phi_s0 = temp_s0; - if (temp_s0 != arg2) - { - goto loop_2; - } - } +char *rmonprout(char *dst, const char *src, size_t count) { + s32 i = 0; + while (i != count) { + deboutWriteChar(src[i++]); + } return 1; } -#else -GLOBAL_ASM( -.text -glabel proutSyncPrintf -/* 00DAE8 7000CEE8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 00DAEC 7000CEEC AFB20020 */ sw $s2, 0x20($sp) -/* 00DAF0 7000CEF0 AFB00018 */ sw $s0, 0x18($sp) -/* 00DAF4 7000CEF4 00C09025 */ move $s2, $a2 -/* 00DAF8 7000CEF8 AFBF0024 */ sw $ra, 0x24($sp) -/* 00DAFC 7000CEFC AFB1001C */ sw $s1, 0x1c($sp) -/* 00DB00 7000CF00 AFA40028 */ sw $a0, 0x28($sp) -/* 00DB04 7000CF04 10C00008 */ beqz $a2, .L7000CF28 -/* 00DB08 7000CF08 00008025 */ move $s0, $zero -/* 00DB0C 7000CF0C 00A08825 */ move $s1, $a1 -/* 00DB10 7000CF10 92240000 */ lbu $a0, ($s1) -.L7000CF14: -/* 00DB14 7000CF14 26100001 */ addiu $s0, $s0, 1 -/* 00DB18 7000CF18 0C0015AF */ jal __osRdbSend -/* 00DB1C 7000CF1C 26310001 */ addiu $s1, $s1, 1 -/* 00DB20 7000CF20 5612FFFC */ bnel $s0, $s2, .L7000CF14 -/* 00DB24 7000CF24 92240000 */ lbu $a0, ($s1) -.L7000CF28: -/* 00DB28 7000CF28 8FBF0024 */ lw $ra, 0x24($sp) -/* 00DB2C 7000CF2C 8FB00018 */ lw $s0, 0x18($sp) -/* 00DB30 7000CF30 8FB1001C */ lw $s1, 0x1c($sp) -/* 00DB34 7000CF34 8FB20020 */ lw $s2, 0x20($sp) -/* 00DB38 7000CF38 27BD0028 */ addiu $sp, $sp, 0x28 -/* 00DB3C 7000CF3C 03E00008 */ jr $ra -/* 00DB40 7000CF40 24020001 */ li $v0, 1 -) -#endif - - -#ifdef NONMATCHING -void osSyncPrintf(s32 arg0, s32 arg1, ? arg2, ? arg3) -{ - _Printf(&proutSyncPrintf, 0, arg0, &arg1); +s32 osSyncPrintf(const char *fmt, ...) { + va_list args; + va_start(args, fmt); + _Printf(&rmonprout, NULL, fmt, args); } -#else -GLOBAL_ASM( -.text -glabel osSyncPrintf -/* 00DB44 7000CF44 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00DB48 7000CF48 AFA40020 */ sw $a0, 0x20($sp) -/* 00DB4C 7000CF4C AFBF0014 */ sw $ra, 0x14($sp) -/* 00DB50 7000CF50 AFA50024 */ sw $a1, 0x24($sp) -/* 00DB54 7000CF54 AFA60028 */ sw $a2, 0x28($sp) -/* 00DB58 7000CF58 AFA7002C */ sw $a3, 0x2c($sp) -/* 00DB5C 7000CF5C 3C047001 */ lui $a0, %hi(proutSyncPrintf) # $a0, 0x7001 -/* 00DB60 7000CF60 2484CEE8 */ addiu $a0, %lo(proutSyncPrintf) # addiu $a0, $a0, -0x3118 -/* 00DB64 7000CF64 27A70024 */ addiu $a3, $sp, 0x24 -/* 00DB68 7000CF68 8FA60020 */ lw $a2, 0x20($sp) -/* 00DB6C 7000CF6C 0C004FD8 */ jal _Printf -/* 00DB70 7000CF70 00002825 */ move $a1, $zero -/* 00DB74 7000CF74 8FBF0014 */ lw $ra, 0x14($sp) -/* 00DB78 7000CF78 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00DB7C 7000CF7C 03E00008 */ jr $ra -/* 00DB80 7000CF80 00000000 */ nop -) -#endif - - - - diff --git a/src/rmon.h b/src/rmon.h index 90be18d..d444185 100644 --- a/src/rmon.h +++ b/src/rmon.h @@ -2,7 +2,11 @@ #define _RMON_H_ #include -void rmonproc(void); - +void rmonMain(void); +s32 rmonIsFinalBuild(void); +s32 rmon7000CEB0(void); +void rmon7000CEB8(void); +void rmon7000CEC0(void); +s32 osSyncPrintf(const char *fmt, ...); #endif diff --git a/src/sched.c b/src/sched.c index 0d868ca..df39bbf 100644 --- a/src/sched.c +++ b/src/sched.c @@ -1,8 +1,12 @@ #include +#include "libultra/os.h" #include "init.h" #include "sched.h" #include "bondgame.h" #include "deb_print.h" +#include "video.h" +#include "joy.h" +#include "music.h" /** * @file sched.c @@ -14,34 +18,53 @@ * - */ +#define VIDEO_MSG 666 +#define RSP_DONE_MSG 667 +#define RDP_DONE_MSG 668 +#define PRE_NMI_MSG 669 + + +#define OS_SC_DP 0x0001 +#define OS_SC_SP 0x0002 +#define OS_SC_YIELD 0x0010 +#define OS_SC_YIELDED 0x0020 + + +#define OS_SC_XBUS (OS_SC_SP | OS_SC_DP) +#define OS_SC_DRAM (OS_SC_SP | OS_SC_DP | OS_SC_DRAM_DLIST) +#define OS_SC_DP_XBUS (OS_SC_SP) +#define OS_SC_DP_DRAM (OS_SC_SP | OS_SC_DRAM_DLIST) +#define OS_SC_SP_XBUS (OS_SC_DP) +#define OS_SC_SP_DRAM (OS_SC_DP | OS_SC_DRAM_DLIST) + +// forward declarations +void __scHandleRetrace(OSSched *sc); +void __scHandleRSP(OSSched *sc); +void __scHandleRDP(OSSched *sc); +void __scMain(void *arg); + u32 stderr_unused = 0; u32 stderr_enabled = 0; u32 stderr_active = 0; u32 stderr_permitted = 0; u32 userCompareValue = 45000000; u32 currentcount = 0; -u32 setby_DPCfill_0 = 0; -u32 setby_DPCfill_1 = 0; +u32 dp_busy = 0; +u32 dpCount = 0; //800230b0 -f32 something_with_osVI_0 = 0.0; -f32 something_with_osVI_4 = 1.0; -f32 something_with_osVI_8 = 1.0; -f32 something_with_osVI_C = 1.0; -f32 something_with_osVI_10 = 1.0; -f32 something_with_osVI_14 = 0.0; -f32 something_with_osVI_18 = 0.0; - -u32 D_800230CC = 1; - +s32 g_ViCurrentIndex = 0; +f32 g_ViXScales[2] = {1.0, 1.0}; +f32 g_ViYScales[2] = {1.0, 1.0}; +s32 something_with_osVI_14[2] = {0, 0}; // boolean OSSched sc; //temporary until i get proper sized structs OSScClient gfxClient[3]; //char gfxClient[0x18]; -char target_for_counters_maybe[0x10]; -char dword_CODE_bss_8005DB40[0xB0]; - +u32 g_DisplayPerformanceCounters[4]; // clock, cmc, pipe, tmem +OSViMode g_ViModes[2]; +OSViMode *g_ViModePtrs[2]; /** * 1570 70000970 @@ -87,7 +110,7 @@ void CheckDisplayErrorBuffer(u32 *buffer) { if ((stderr_permitted && stderr_active) || stderr_enabled ) { - write_stderr_to_buffer(buffer); + deboutDrawToBuffer(buffer); currentcount = osGetCount(); } } @@ -105,8 +128,8 @@ void CheckDisplayErrorBufferEvery16Frames(u32 framecount) { if (userCompareValue < (osGetCount() - currentcount)) { - write_stderr_to_buffer((u32*)cfb_16[0]); - write_stderr_to_buffer((u32*)cfb_16[1]); + deboutDrawToBuffer((u32*)cfb_16[0]); + deboutDrawToBuffer((u32*)cfb_16[1]); } } } @@ -121,13 +144,7 @@ void osCreateLog(void){ currentcount=osGetCount(); } -/** - * 16AC 70000AAC - * (thread management) - */ -#ifdef NONMATCHING -void osCreateScheduler (OSSched * sc, void * stack, u8 mode, u8 numFields) -{ +void osCreateScheduler (OSSched * sc, void * stack, u8 mode, u32 numFields) { sc->curRSPTask = 0; sc->curRDPTask = 0; sc->clientList = 0; @@ -136,125 +153,25 @@ void osCreateScheduler (OSSched * sc, void * stack, u8 mode, u8 numFields) sc->gfxListHead = 0; sc->audioListTail = 0; sc->gfxListTail = 0; - sc->retraceMsg.type = 1; - sc->prenmiMsg.type = 5; + sc->retraceMsg.type = OS_SC_RETRACE_MSG; + sc->prenmiMsg.type = 5; // OS_SC_PRE_NMI_MSG sc->thread = stack; - osCreateMesgQueue(&sc->interruptQ, sc->intBuf, 8); - osCreateMesgQueue(&sc->cmdQ, sc->cmdMsgBuf, 8); - osCreateViManager(0xfe); - - viMode = osViModeTable[mode]; - viMode.comRegs.ctrl = osViModeTable[mode].comRegs.hStart; - viMode.comRegs.width = osViModeTable[mode].fldRegs[0].vStart; - viMode.comRegs.burst = osViModeTable[mode].fldRegs[1].vStart; - - osSetEventMesg(4, &sc->interruptQ, 0x29b); - osSetEventMesg(9, &sc->interruptQ, 0x29c); - osSetEventMesg(0xe, &sc->interruptQ, 0x29d); - osViSetEvent(&sc->interruptQ, 0x29a, numFields); + osCreateMesgQueue(&sc->interruptQ, sc->intBuf, OS_SC_MAX_MESGS); + osCreateMesgQueue(&sc->cmdQ, sc->cmdMsgBuf, OS_SC_MAX_MESGS); + osCreateViManager(OS_PRIORITY_VIMGR); + viMode = &osViModeTable[mode]; + dword_CODE_bss_80060880 = viMode->comRegs.hStart; + dword_CODE_bss_80060884 = viMode->fldRegs[0].vStart; + dword_CODE_bss_80060888 = viMode->fldRegs[1].vStart; + osSetEventMesg(OS_EVENT_SP, &sc->interruptQ, (OSMesg)RSP_DONE_MSG); + osSetEventMesg(OS_EVENT_DP, &sc->interruptQ, (OSMesg)RDP_DONE_MSG); + osSetEventMesg(OS_EVENT_PRENMI, &sc->interruptQ, (OSMesg)PRE_NMI_MSG); + osViSetEvent(&sc->interruptQ, (OSMesg)VIDEO_MSG, numFields); osCreateLog(); osCreateThread(sc->thread, 2, &__scMain, sc, set_stack_entry(&sp_shed, 0x200), 0x1e); osStartThread(sc->thread); } -#else -GLOBAL_ASM( -glabel osCreateScheduler -/* 0016AC 70000AAC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0016B0 70000AB0 AFBF0024 */ sw $ra, 0x24($sp) -/* 0016B4 70000AB4 AFB10020 */ sw $s1, 0x20($sp) -/* 0016B8 70000AB8 AFB0001C */ sw $s0, 0x1c($sp) -/* 0016BC 70000ABC AFA5002C */ sw $a1, 0x2c($sp) -/* 0016C0 70000AC0 AFA60030 */ sw $a2, 0x30($sp) -/* 0016C4 70000AC4 AFA70034 */ sw $a3, 0x34($sp) -/* 0016C8 70000AC8 240E0001 */ li $t6, 1 -/* 0016CC 70000ACC 240F0005 */ li $t7, 5 -/* 0016D0 70000AD0 AC8000C8 */ sw $zero, 0xc8($a0) -/* 0016D4 70000AD4 AC8000CC */ sw $zero, 0xcc($a0) -/* 0016D8 70000AD8 AC8000B4 */ sw $zero, 0xb4($a0) -/* 0016DC 70000ADC AC8000D0 */ sw $zero, 0xd0($a0) -/* 0016E0 70000AE0 AC8000B8 */ sw $zero, 0xb8($a0) -/* 0016E4 70000AE4 AC8000BC */ sw $zero, 0xbc($a0) -/* 0016E8 70000AE8 AC8000C0 */ sw $zero, 0xc0($a0) -/* 0016EC 70000AEC AC8000C4 */ sw $zero, 0xc4($a0) -/* 0016F0 70000AF0 A48E0000 */ sh $t6, ($a0) -/* 0016F4 70000AF4 A48F0020 */ sh $t7, 0x20($a0) -/* 0016F8 70000AF8 8FB8002C */ lw $t8, 0x2c($sp) -/* 0016FC 70000AFC 00808025 */ move $s0, $a0 -/* 001700 70000B00 24910040 */ addiu $s1, $a0, 0x40 -/* 001704 70000B04 AC9800B0 */ sw $t8, 0xb0($a0) -/* 001708 70000B08 02202025 */ move $a0, $s1 -/* 00170C 70000B0C 26050058 */ addiu $a1, $s0, 0x58 -/* 001710 70000B10 0C0035B4 */ jal osCreateMesgQueue -/* 001714 70000B14 24060008 */ li $a2, 8 -/* 001718 70000B18 26040078 */ addiu $a0, $s0, 0x78 -/* 00171C 70000B1C 26050090 */ addiu $a1, $s0, 0x90 -/* 001720 70000B20 0C0035B4 */ jal osCreateMesgQueue -/* 001724 70000B24 24060008 */ li $a2, 8 -/* 001728 70000B28 0C00363C */ jal osCreateViManager -/* 00172C 70000B2C 240400FE */ li $a0, 254 -/* 001730 70000B30 93B90033 */ lbu $t9, 0x33($sp) -/* 001734 70000B34 3C098002 */ lui $t1, %hi(osViModeTable) -/* 001738 70000B38 3C038006 */ lui $v1, %hi(viMode) -/* 00173C 70000B3C 00194080 */ sll $t0, $t9, 2 -/* 001740 70000B40 01194021 */ addu $t0, $t0, $t9 -/* 001744 70000B44 00084100 */ sll $t0, $t0, 4 -/* 001748 70000B48 252969C0 */ addiu $t1, %lo(osViModeTable) # addiu $t1, $t1, 0x69c0 -/* 00174C 70000B4C 2463087C */ addiu $v1, %lo(viMode) # addiu $v1, $v1, 0x87c -/* 001750 70000B50 01095021 */ addu $t2, $t0, $t1 -/* 001754 70000B54 AC6A0000 */ sw $t2, ($v1) -/* 001758 70000B58 8D4B001C */ lw $t3, 0x1c($t2) -/* 00175C 70000B5C 3C018006 */ lui $at, %hi(viMode+0x4) -/* 001760 70000B60 24040004 */ li $a0, 4 -/* 001764 70000B64 AC2B0880 */ sw $t3, %lo(viMode+0x4)($at) -/* 001768 70000B68 8D4C0030 */ lw $t4, 0x30($t2) -/* 00176C 70000B6C 3C018006 */ lui $at, %hi(viMode+0x8) -/* 001770 70000B70 02202825 */ move $a1, $s1 -/* 001774 70000B74 AC2C0884 */ sw $t4, %lo(viMode+0x8)($at) -/* 001778 70000B78 8D4D0044 */ lw $t5, 0x44($t2) -/* 00177C 70000B7C 3C018006 */ lui $at, %hi(viMode+0xC) -/* 001780 70000B80 2406029B */ li $a2, 667 -/* 001784 70000B84 0C003714 */ jal osSetEventMesg -/* 001788 70000B88 AC2D0888 */ sw $t5, %lo(viMode+0xC)($at) -/* 00178C 70000B8C 24040009 */ li $a0, 9 -/* 001790 70000B90 02202825 */ move $a1, $s1 -/* 001794 70000B94 0C003714 */ jal osSetEventMesg -/* 001798 70000B98 2406029C */ li $a2, 668 -/* 00179C 70000B9C 2404000E */ li $a0, 14 -/* 0017A0 70000BA0 02202825 */ move $a1, $s1 -/* 0017A4 70000BA4 0C003714 */ jal osSetEventMesg -/* 0017A8 70000BA8 2406029D */ li $a2, 669 -/* 0017AC 70000BAC 02202025 */ move $a0, $s1 -/* 0017B0 70000BB0 2405029A */ li $a1, 666 -/* 0017B4 70000BB4 0C003730 */ jal osViSetEvent -/* 0017B8 70000BB8 8FA60034 */ lw $a2, 0x34($sp) -/* 0017BC 70000BBC 0C0002A2 */ jal osCreateLog -/* 0017C0 70000BC0 00000000 */ nop -/* 0017C4 70000BC4 3C04803B */ lui $a0, %hi(sp_shed) # $a0, 0x803b -/* 0017C8 70000BC8 2484B750 */ addiu $a0, %lo(sp_shed) # addiu $a0, $a0, -0x48b0 -/* 0017CC 70000BCC 0C0001BC */ jal set_stack_entry -/* 0017D0 70000BD0 24050200 */ li $a1, 512 -/* 0017D4 70000BD4 8E0400B0 */ lw $a0, 0xb0($s0) -/* 0017D8 70000BD8 3C067000 */ lui $a2, %hi(__scMain) # $a2, 0x7000 -/* 0017DC 70000BDC 240E001E */ li $t6, 30 -/* 0017E0 70000BE0 AFAE0014 */ sw $t6, 0x14($sp) -/* 0017E4 70000BE4 24C60D00 */ addiu $a2, %lo(__scMain) # addiu $a2, $a2, 0xd00 -/* 0017E8 70000BE8 AFA20010 */ sw $v0, 0x10($sp) -/* 0017EC 70000BEC 24050002 */ li $a1, 2 -/* 0017F0 70000BF0 0C00350C */ jal osCreateThread -/* 0017F4 70000BF4 02003825 */ move $a3, $s0 -/* 0017F8 70000BF8 0C003560 */ jal osStartThread -/* 0017FC 70000BFC 8E0400B0 */ lw $a0, 0xb0($s0) -/* 001800 70000C00 8FBF0024 */ lw $ra, 0x24($sp) -/* 001804 70000C04 8FB0001C */ lw $s0, 0x1c($sp) -/* 001808 70000C08 8FB10020 */ lw $s1, 0x20($sp) -/* 00180C 70000C0C 03E00008 */ jr $ra -/* 001810 70000C10 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif -/** - * 1814 70000C14 - */ void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next) { OSIntMask mask; @@ -310,207 +227,88 @@ OSMesgQueue *osScGetCmdQ(OSSched *sc) /** * 1900 70000D00 + * Based on libultra\sched\sched.c. In particular, unlike the other scheduler methods, + * the arg is actually void* instead of OSSched *sc. */ -#ifdef NONMATCHING void __scMain(void *arg) { - OSMesg msg; + OSMesg msg = NULL; OSSched *sc = (OSSched *)arg; OSScClient *client; - static int count = 0; - - while (1) { - - osRecvMesg(&sc->interruptQ, (OSMesg *)&msg, OS_MESG_BLOCK); + s32 done = FALSE; - switch ((int) msg) { - case (0x29a): + while (!done) + { + osRecvMesg(&sc->interruptQ, &msg, OS_MESG_BLOCK); + + switch ((s32)msg) + { + case VIDEO_MSG: __scHandleRetrace(sc); break; - case (0x29b): + case RSP_DONE_MSG: __scHandleRSP(sc); break; - case (0x29c): + case RDP_DONE_MSG: __scHandleRDP(sc); break; - case (0x29d): - reset_cont_rumble_detect(); - for (client = sc->clientList;client != 0;client = client->next) { - osSendMesg(client->msgQ, (OSMesg) &sc->prenmiMsg, OS_MESG_NOBLOCK); + case PRE_NMI_MSG: + do { + joyRumblePakStop(); + + for (client = sc->clientList; (client != NULL); client = client->next) + { + osSendMesg(client->msgQ, (OSMesg)&sc->prenmiMsg, OS_MESG_NOBLOCK); } + done = TRUE; + break; + } while(0); + + default: break; } } - if (osTvType == 2) + + if (osTvType == TV_TYPE_MPAL) { - osViSetMode(0x80027320); + osViSetMode(&osViModeTable[OS_VI_MPAL_LAN1]); } else { - osViSetMode(0x80026a60); + osViSetMode(&osViModeTable[OS_VI_NTSC_LAN1]); } - osViSetXScale(1.00000000); - osViSetYScale(1.00000000); + + osViSetXScale(1.0f); + osViSetYScale(1.0f); osViRepeatLine(0); - osViBlack(1); + osViBlack(TRUE); - while (1) { - while ((u32)msg != 0x29a) { - osRecvMesg(&sc->interruptQ,&msg,1); - } - controllerSchedulerRelated(); + while (TRUE) + { + do + { + osRecvMesg(&sc->interruptQ, &msg, OS_MESG_BLOCK); + } while((s32)msg != VIDEO_MSG); + + joyPoll(); } - } -#else -GLOBAL_ASM( -glabel __scMain -/* 001900 70000D00 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 001904 70000D04 AFB50028 */ sw $s5, 0x28($sp) -/* 001908 70000D08 AFB40024 */ sw $s4, 0x24($sp) -/* 00190C 70000D0C AFB30020 */ sw $s3, 0x20($sp) -/* 001910 70000D10 AFB2001C */ sw $s2, 0x1c($sp) -/* 001914 70000D14 AFB00014 */ sw $s0, 0x14($sp) -/* 001918 70000D18 00809025 */ move $s2, $a0 -/* 00191C 70000D1C AFBF002C */ sw $ra, 0x2c($sp) -/* 001920 70000D20 AFB10018 */ sw $s1, 0x18($sp) -/* 001924 70000D24 AFA0004C */ sw $zero, 0x4c($sp) -/* 001928 70000D28 00008025 */ move $s0, $zero -/* 00192C 70000D2C 24930040 */ addiu $s3, $a0, 0x40 -/* 001930 70000D30 27B4004C */ addiu $s4, $sp, 0x4c -/* 001934 70000D34 2415029A */ li $s5, 666 -/* 001938 70000D38 02602025 */ move $a0, $s3 -.L70000D3C: -/* 00193C 70000D3C 02802825 */ move $a1, $s4 -/* 001940 70000D40 0C003774 */ jal osRecvMesg -/* 001944 70000D44 24060001 */ li $a2, 1 -/* 001948 70000D48 8FAE004C */ lw $t6, 0x4c($sp) -/* 00194C 70000D4C 2401029B */ li $at, 667 -/* 001950 70000D50 11D50009 */ beq $t6, $s5, .L70000D78 -/* 001954 70000D54 00000000 */ nop -/* 001958 70000D58 11C1000B */ beq $t6, $at, .L70000D88 -/* 00195C 70000D5C 2401029C */ li $at, 668 -/* 001960 70000D60 11C1000D */ beq $t6, $at, .L70000D98 -/* 001964 70000D64 2401029D */ li $at, 669 -/* 001968 70000D68 11C1000F */ beq $t6, $at, .L70000DA8 -/* 00196C 70000D6C 00000000 */ nop -/* 001970 70000D70 1000001B */ b .L70000DE0 -/* 001974 70000D74 00000000 */ nop -.L70000D78: -/* 001978 70000D78 0C0003AD */ jal __scHandleRetrace -/* 00197C 70000D7C 02402025 */ move $a0, $s2 -/* 001980 70000D80 10000017 */ b .L70000DE0 -/* 001984 70000D84 00000000 */ nop -.L70000D88: -/* 001988 70000D88 0C000405 */ jal __scHandleRSP -/* 00198C 70000D8C 02402025 */ move $a0, $s2 -/* 001990 70000D90 10000013 */ b .L70000DE0 -/* 001994 70000D94 00000000 */ nop -.L70000D98: -/* 001998 70000D98 0C00044A */ jal __scHandleRDP -/* 00199C 70000D9C 02402025 */ move $a0, $s2 -/* 0019A0 70000DA0 1000000F */ b .L70000DE0 -/* 0019A4 70000DA4 00000000 */ nop -.L70000DA8: -/* 0019A8 70000DA8 0C003237 */ jal reset_cont_rumble_detect -/* 0019AC 70000DAC 00000000 */ nop -/* 0019B0 70000DB0 8E5000B4 */ lw $s0, 0xb4($s2) -/* 0019B4 70000DB4 26510020 */ addiu $s1, $s2, 0x20 -/* 0019B8 70000DB8 52000009 */ beql $s0, $zero, .L70000DE0 -/* 0019BC 70000DBC 24100001 */ li $s0, 1 -/* 0019C0 70000DC0 8E040004 */ lw $a0, 4($s0) -.L70000DC4: -/* 0019C4 70000DC4 02202825 */ move $a1, $s1 -/* 0019C8 70000DC8 0C0037C4 */ jal osSendMesg -/* 0019CC 70000DCC 00003025 */ move $a2, $zero -/* 0019D0 70000DD0 8E100000 */ lw $s0, ($s0) -/* 0019D4 70000DD4 5600FFFB */ bnezl $s0, .L70000DC4 -/* 0019D8 70000DD8 8E040004 */ lw $a0, 4($s0) -/* 0019DC 70000DDC 24100001 */ li $s0, 1 -.L70000DE0: -/* 0019E0 70000DE0 5200FFD6 */ beql $s0, $zero, .L70000D3C -/* 0019E4 70000DE4 02602025 */ move $a0, $s3 -/* 0019E8 70000DE8 3C0F8000 */ lui $t7, %hi(osTvType) -/* 0019EC 70000DEC 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 0019F0 70000DF0 24010002 */ li $at, 2 -/* 0019F4 70000DF4 3C048002 */ lui $a0, %hi(osViModeTable_osViModeNtscLan1) -/* 0019F8 70000DF8 15E10006 */ bne $t7, $at, .L70000E14 -/* 0019FC 70000DFC 00000000 */ nop -/* 001A00 70000E00 3C048002 */ lui $a0, %hi(osViModeTable_osViModeMpalLan1) -/* 001A04 70000E04 0C003818 */ jal osViSetMode -/* 001A08 70000E08 24847320 */ addiu $a0, %lo(osViModeTable_osViModeMpalLan1) # addiu $a0, $a0, 0x7320 -/* 001A0C 70000E0C 10000004 */ b .L70000E20 -/* 001A10 70000E10 3C013F80 */ lui $at, 0x3f80 -.L70000E14: -/* 001A14 70000E14 0C003818 */ jal osViSetMode -/* 001A18 70000E18 24846A60 */ addiu $a0, $a0, %lo(osViModeTable_osViModeNtscLan1) -/* 001A1C 70000E1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -.L70000E20: -/* 001A20 70000E20 44816000 */ mtc1 $at, $f12 -/* 001A24 70000E24 0C003834 */ jal osViSetXScale -/* 001A28 70000E28 00000000 */ nop -/* 001A2C 70000E2C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 001A30 70000E30 44816000 */ mtc1 $at, $f12 -/* 001A34 70000E34 0C003880 */ jal osViSetYScale -/* 001A38 70000E38 00000000 */ nop -/* 001A3C 70000E3C 0C003898 */ jal osViRepeatLine -/* 001A40 70000E40 00002025 */ move $a0, $zero -/* 001A44 70000E44 0C0038B4 */ jal osViBlack -/* 001A48 70000E48 24040001 */ li $a0, 1 -/* 001A4C 70000E4C 02602025 */ move $a0, $s3 -.L70000E50: -/* 001A50 70000E50 02802825 */ move $a1, $s4 -/* 001A54 70000E54 0C003774 */ jal osRecvMesg -/* 001A58 70000E58 24060001 */ li $a2, 1 -/* 001A5C 70000E5C 8FB8004C */ lw $t8, 0x4c($sp) -/* 001A60 70000E60 5715FFFB */ bnel $t8, $s5, .L70000E50 -/* 001A64 70000E64 02602025 */ move $a0, $s3 -/* 001A68 70000E68 0C002F62 */ jal controllerSchedulerRelated -/* 001A6C 70000E6C 00000000 */ nop -/* 001A70 70000E70 1000FFF7 */ b .L70000E50 -/* 001A74 70000E74 02602025 */ move $a0, $s3 -/* 001A78 70000E78 00000000 */ nop -/* 001A7C 70000E7C 00000000 */ nop -/* 001A80 70000E80 00000000 */ nop -/* 001A84 70000E84 00000000 */ nop -/* 001A88 70000E88 00000000 */ nop -/* 001A8C 70000E8C 00000000 */ nop -/* 001A90 70000E90 8FBF002C */ lw $ra, 0x2c($sp) -/* 001A94 70000E94 8FB00014 */ lw $s0, 0x14($sp) -/* 001A98 70000E98 8FB10018 */ lw $s1, 0x18($sp) -/* 001A9C 70000E9C 8FB2001C */ lw $s2, 0x1c($sp) -/* 001AA0 70000EA0 8FB30020 */ lw $s3, 0x20($sp) -/* 001AA4 70000EA4 8FB40024 */ lw $s4, 0x24($sp) -/* 001AA8 70000EA8 8FB50028 */ lw $s5, 0x28($sp) -/* 001AAC 70000EAC 03E00008 */ jr $ra -/* 001AB0 70000EB0 27BD0050 */ addiu $sp, $sp, 0x50 -) -#endif -/** - * 1AB4 70000EB4 - */ -#ifdef NONMATCHING -void __scHandleRetrace(OSSched *sc) -{ - OSScTask *rspTask = 0; - +void __scHandleRetrace(OSSched *sc) { + OSScTask *rspTask = 0; OSScClient *client; - //s32 i; s32 state; OSScTask *sp = 0; OSScTask *dp = 0; - - - video_related_1(); + speedGraphVideoRelated_1(); sc->frameCount++; video_related_7(); - controllerSchedulerRelated(); - music_related_15(); - while (osRecvMesg(&sc->cmdQ, (OSMesg *)&rspTask, OS_MESG_NOBLOCK) != -1) { + joyPoll(); + musicFadeTick(); + while (osRecvMesg(&sc->cmdQ, (OSMesg*)&rspTask, OS_MESG_NOBLOCK) != -1) { __scAppendList(sc, rspTask); } if (sc->doAudio && sc->curRSPTask) { @@ -520,320 +318,62 @@ void __scHandleRetrace(OSSched *sc) if ( __scSchedule (sc, &sp, &dp, state) != state) __scExec(sc, sp, dp); } - for (client = sc->clientList; client != 0; client = client->next) { - osSendMesg(client->msgQ, (OSMesg) &sc->retraceMsg, OS_MESG_NOBLOCK); + if ((*((s32*)client + 2) == 0) || ((sc->frameCount & 1) == 0)) { + osSendMesg(client->msgQ, (OSMesg) &sc->retraceMsg, OS_MESG_NOBLOCK); + } } - CheckDisplayErrorBufferEvery16Frames(sc->frameCount); } -#else -GLOBAL_ASM( -glabel __scHandleRetrace -/* 001AB4 70000EB4 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 001AB8 70000EB8 AFBF0024 */ sw $ra, 0x24($sp) -/* 001ABC 70000EBC AFB10018 */ sw $s1, 0x18($sp) -/* 001AC0 70000EC0 00808825 */ move $s1, $a0 -/* 001AC4 70000EC4 AFB30020 */ sw $s3, 0x20($sp) -/* 001AC8 70000EC8 AFB2001C */ sw $s2, 0x1c($sp) -/* 001ACC 70000ECC AFB00014 */ sw $s0, 0x14($sp) -/* 001AD0 70000ED0 AFA0003C */ sw $zero, 0x3c($sp) -/* 001AD4 70000ED4 AFA00030 */ sw $zero, 0x30($sp) -/* 001AD8 70000ED8 0C0009E9 */ jal video_related_1 -/* 001ADC 70000EDC AFA0002C */ sw $zero, 0x2c($sp) -/* 001AE0 70000EE0 8E2E00D0 */ lw $t6, 0xd0($s1) -/* 001AE4 70000EE4 25CF0001 */ addiu $t7, $t6, 1 -/* 001AE8 70000EE8 0C000C68 */ jal video_related_7 -/* 001AEC 70000EEC AE2F00D0 */ sw $t7, 0xd0($s1) -/* 001AF0 70000EF0 0C002F62 */ jal controllerSchedulerRelated -/* 001AF4 70000EF4 00000000 */ nop -/* 001AF8 70000EF8 0C001E45 */ jal music_related_15 -/* 001AFC 70000EFC 00000000 */ nop -/* 001B00 70000F00 27B3003C */ addiu $s3, $sp, 0x3c -/* 001B04 70000F04 26320078 */ addiu $s2, $s1, 0x78 -/* 001B08 70000F08 02402025 */ move $a0, $s2 -/* 001B0C 70000F0C 02602825 */ move $a1, $s3 -/* 001B10 70000F10 0C003774 */ jal osRecvMesg -/* 001B14 70000F14 00003025 */ move $a2, $zero -/* 001B18 70000F18 2410FFFF */ li $s0, -1 -/* 001B1C 70000F1C 10500009 */ beq $v0, $s0, .L70000F44 -/* 001B20 70000F20 02202025 */ move $a0, $s1 -.L70000F24: -/* 001B24 70000F24 0C0004F6 */ jal __scAppendList -/* 001B28 70000F28 8FA5003C */ lw $a1, 0x3c($sp) -/* 001B2C 70000F2C 02402025 */ move $a0, $s2 -/* 001B30 70000F30 02602825 */ move $a1, $s3 -/* 001B34 70000F34 0C003774 */ jal osRecvMesg -/* 001B38 70000F38 00003025 */ move $a2, $zero -/* 001B3C 70000F3C 5450FFF9 */ bnel $v0, $s0, .L70000F24 -/* 001B40 70000F40 02202025 */ move $a0, $s1 -.L70000F44: -/* 001B44 70000F44 8E3800D4 */ lw $t8, 0xd4($s1) -/* 001B48 70000F48 02202025 */ move $a0, $s1 -/* 001B4C 70000F4C 27A50030 */ addiu $a1, $sp, 0x30 -/* 001B50 70000F50 53000009 */ beql $t8, $zero, .L70000F78 -/* 001B54 70000F54 8E2800C8 */ lw $t0, 0xc8($s1) -/* 001B58 70000F58 8E3900C8 */ lw $t9, 0xc8($s1) -/* 001B5C 70000F5C 53200006 */ beql $t9, $zero, .L70000F78 -/* 001B60 70000F60 8E2800C8 */ lw $t0, 0xc8($s1) -/* 001B64 70000F64 0C000558 */ jal __scYield -/* 001B68 70000F68 02202025 */ move $a0, $s1 -/* 001B6C 70000F6C 10000010 */ b .L70000FB0 -/* 001B70 70000F70 8E3000B4 */ lw $s0, 0xb4($s1) -/* 001B74 70000F74 8E2800C8 */ lw $t0, 0xc8($s1) -.L70000F78: -/* 001B78 70000F78 8E2B00CC */ lw $t3, 0xcc($s1) -/* 001B7C 70000F7C 27A6002C */ addiu $a2, $sp, 0x2c -/* 001B80 70000F80 2D090001 */ sltiu $t1, $t0, 1 -/* 001B84 70000F84 00095040 */ sll $t2, $t1, 1 -/* 001B88 70000F88 2D6C0001 */ sltiu $t4, $t3, 1 -/* 001B8C 70000F8C 014C8025 */ or $s0, $t2, $t4 -/* 001B90 70000F90 0C000567 */ jal __scSchedule -/* 001B94 70000F94 02003825 */ move $a3, $s0 -/* 001B98 70000F98 10500004 */ beq $v0, $s0, .L70000FAC -/* 001B9C 70000F9C 02202025 */ move $a0, $s1 -/* 001BA0 70000FA0 8FA50030 */ lw $a1, 0x30($sp) -/* 001BA4 70000FA4 0C000510 */ jal __scExec -/* 001BA8 70000FA8 8FA6002C */ lw $a2, 0x2c($sp) -.L70000FAC: -/* 001BAC 70000FAC 8E3000B4 */ lw $s0, 0xb4($s1) -.L70000FB0: -/* 001BB0 70000FB0 1200000F */ beqz $s0, .L70000FF0 -/* 001BB4 70000FB4 00000000 */ nop -/* 001BB8 70000FB8 8E0D0008 */ lw $t5, 8($s0) -.L70000FBC: -/* 001BBC 70000FBC 02202825 */ move $a1, $s1 -/* 001BC0 70000FC0 00003025 */ move $a2, $zero -/* 001BC4 70000FC4 11A00005 */ beqz $t5, .L70000FDC -/* 001BC8 70000FC8 00000000 */ nop -/* 001BCC 70000FCC 8E2E00D0 */ lw $t6, 0xd0($s1) -/* 001BD0 70000FD0 31CF0001 */ andi $t7, $t6, 1 -/* 001BD4 70000FD4 55E00004 */ bnezl $t7, .L70000FE8 -/* 001BD8 70000FD8 8E100000 */ lw $s0, ($s0) -.L70000FDC: -/* 001BDC 70000FDC 0C0037C4 */ jal osSendMesg -/* 001BE0 70000FE0 8E040004 */ lw $a0, 4($s0) -/* 001BE4 70000FE4 8E100000 */ lw $s0, ($s0) -.L70000FE8: -/* 001BE8 70000FE8 5600FFF4 */ bnezl $s0, .L70000FBC -/* 001BEC 70000FEC 8E0D0008 */ lw $t5, 8($s0) -.L70000FF0: -/* 001BF0 70000FF0 0C00027E */ jal CheckDisplayErrorBufferEvery16Frames -/* 001BF4 70000FF4 8E2400D0 */ lw $a0, 0xd0($s1) -/* 001BF8 70000FF8 8FBF0024 */ lw $ra, 0x24($sp) -/* 001BFC 70000FFC 8FB00014 */ lw $s0, 0x14($sp) -/* 001C00 70001000 8FB10018 */ lw $s1, 0x18($sp) -/* 001C04 70001004 8FB2001C */ lw $s2, 0x1c($sp) -/* 001C08 70001008 8FB30020 */ lw $s3, 0x20($sp) -/* 001C0C 7000100C 03E00008 */ jr $ra -/* 001C10 70001010 27BD0040 */ addiu $sp, $sp, 0x40 -) -#endif -/** - * 1C14 70001014 - */ -#ifdef NONMATCHING -void __scHandleRSP(OSSched *sc) -{ +void __scHandleRSP(OSSched *sc) { OSScTask *t, *sp = 0, *dp = 0; s32 state; - t = sc->curRSPTask; sc->curRSPTask = 0; - video_related_3(0x10001); - if (((t->state & 0x10) != 0) && (osSpTaskYielded(t->list) != 0)) - { - t->state = (s32) (t->state | 0x20); - if ((t->flags & 7) == 3) - { - *t = (void *) sc->gfxListHead; + speedGraphVideoRelated_3(0x10001); + if ((t->state & OS_SC_YIELD) && osSpTaskYielded(&t->list)) { + t->state |= OS_SC_YIELDED; + if ((t->flags & OS_SC_TYPE_MASK) == OS_SC_XBUS) { + t->next = sc->gfxListHead; sc->gfxListHead = t; - if (sc->gfxListTail == 0) - { + if (sc->gfxListTail == 0) { sc->gfxListTail = t; } } - } - else - { - t->state = (s32) (t->state & -3); + } else { + t->state &= ~OS_SC_NEEDS_RSP; __scTaskComplete(sc, t); } - if (__scSchedule(sc, &sp, &dp, ((((u32) sc->curRSPTask < 1U) * 2) | ((u32) sc->curRDPTask < 1U)))) - { + state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); + if (__scSchedule(sc, &sp, &dp, state) != state) { __scExec(sc, sp, dp); } } -#else -GLOBAL_ASM( -glabel __scHandleRSP -/* 001C14 70001014 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 001C18 70001018 AFBF001C */ sw $ra, 0x1c($sp) -/* 001C1C 7000101C AFB00018 */ sw $s0, 0x18($sp) -/* 001C20 70001020 AFA00028 */ sw $zero, 0x28($sp) -/* 001C24 70001024 AFA00024 */ sw $zero, 0x24($sp) -/* 001C28 70001028 8C8500C8 */ lw $a1, 0xc8($a0) -/* 001C2C 7000102C 00808025 */ move $s0, $a0 -/* 001C30 70001030 AC8000C8 */ sw $zero, 0xc8($a0) -/* 001C34 70001034 3C040001 */ lui $a0, (0x00010001 >> 16) # lui $a0, 1 -/* 001C38 70001038 34840001 */ ori $a0, (0x00010001 & 0xFFFF) # ori $a0, $a0, 1 -/* 001C3C 7000103C 0C000A15 */ jal video_related_3 -/* 001C40 70001040 AFA5002C */ sw $a1, 0x2c($sp) -/* 001C44 70001044 8FA5002C */ lw $a1, 0x2c($sp) -/* 001C48 70001048 8CAE0004 */ lw $t6, 4($a1) -/* 001C4C 7000104C 24A40010 */ addiu $a0, $a1, 0x10 -/* 001C50 70001050 31CF0010 */ andi $t7, $t6, 0x10 -/* 001C54 70001054 51E00015 */ beql $t7, $zero, .L700010AC -/* 001C58 70001058 8CAC0004 */ lw $t4, 4($a1) -/* 001C5C 7000105C 0C0038D0 */ jal osSpTaskYielded -/* 001C60 70001060 AFA5002C */ sw $a1, 0x2c($sp) -/* 001C64 70001064 10400010 */ beqz $v0, .L700010A8 -/* 001C68 70001068 8FA5002C */ lw $a1, 0x2c($sp) -/* 001C6C 7000106C 8CB80004 */ lw $t8, 4($a1) -/* 001C70 70001070 8CA80008 */ lw $t0, 8($a1) -/* 001C74 70001074 24010003 */ li $at, 3 -/* 001C78 70001078 37190020 */ ori $t9, $t8, 0x20 -/* 001C7C 7000107C 31090007 */ andi $t1, $t0, 7 -/* 001C80 70001080 1521000F */ bne $t1, $at, .L700010C0 -/* 001C84 70001084 ACB90004 */ sw $t9, 4($a1) -/* 001C88 70001088 8E0A00BC */ lw $t2, 0xbc($s0) -/* 001C8C 7000108C ACAA0000 */ sw $t2, ($a1) -/* 001C90 70001090 8E0B00C4 */ lw $t3, 0xc4($s0) -/* 001C94 70001094 AE0500BC */ sw $a1, 0xbc($s0) -/* 001C98 70001098 5560000A */ bnezl $t3, .L700010C4 -/* 001C9C 7000109C 8E0E00C8 */ lw $t6, 0xc8($s0) -/* 001CA0 700010A0 10000007 */ b .L700010C0 -/* 001CA4 700010A4 AE0500C4 */ sw $a1, 0xc4($s0) -.L700010A8: -/* 001CA8 700010A8 8CAC0004 */ lw $t4, 4($a1) -.L700010AC: -/* 001CAC 700010AC 2401FFFD */ li $at, -3 -/* 001CB0 700010B0 02002025 */ move $a0, $s0 -/* 001CB4 700010B4 01816824 */ and $t5, $t4, $at -/* 001CB8 700010B8 0C00048C */ jal __scTaskComplete -/* 001CBC 700010BC ACAD0004 */ sw $t5, 4($a1) -.L700010C0: -/* 001CC0 700010C0 8E0E00C8 */ lw $t6, 0xc8($s0) -.L700010C4: -/* 001CC4 700010C4 8E1900CC */ lw $t9, 0xcc($s0) -/* 001CC8 700010C8 02002025 */ move $a0, $s0 -/* 001CCC 700010CC 2DCF0001 */ sltiu $t7, $t6, 1 -/* 001CD0 700010D0 000FC040 */ sll $t8, $t7, 1 -/* 001CD4 700010D4 2F280001 */ sltiu $t0, $t9, 1 -/* 001CD8 700010D8 03083825 */ or $a3, $t8, $t0 -/* 001CDC 700010DC AFA70020 */ sw $a3, 0x20($sp) -/* 001CE0 700010E0 27A50028 */ addiu $a1, $sp, 0x28 -/* 001CE4 700010E4 0C000567 */ jal __scSchedule -/* 001CE8 700010E8 27A60024 */ addiu $a2, $sp, 0x24 -/* 001CEC 700010EC 8FA70020 */ lw $a3, 0x20($sp) -/* 001CF0 700010F0 02002025 */ move $a0, $s0 -/* 001CF4 700010F4 8FA50028 */ lw $a1, 0x28($sp) -/* 001CF8 700010F8 50470004 */ beql $v0, $a3, .L7000110C -/* 001CFC 700010FC 8FBF001C */ lw $ra, 0x1c($sp) -/* 001D00 70001100 0C000510 */ jal __scExec -/* 001D04 70001104 8FA60024 */ lw $a2, 0x24($sp) -/* 001D08 70001108 8FBF001C */ lw $ra, 0x1c($sp) -.L7000110C: -/* 001D0C 7000110C 8FB00018 */ lw $s0, 0x18($sp) -/* 001D10 70001110 27BD0030 */ addiu $sp, $sp, 0x30 -/* 001D14 70001114 03E00008 */ jr $ra -/* 001D18 70001118 00000000 */ nop -) -#endif - -/** - * 1D1C 7000111C - * V0= 8005DB30: target for DP Cmd clock, buffer counter, pipe counter, and tmem counter - */ -char *get_counters(void) +u32 *get_counters(void) { - return &target_for_counters_maybe; + return g_DisplayPerformanceCounters; } -/** - * 1D28 70001128 - */ -#ifdef NONMATCHING -void __scHandleRDP(void *arg0) +void __scHandleRDP(OSSched *sc) { - ?32 sp28; - ?32 sp24; - - sp28 = 0; - sp24 = 0; - if (arg0->unkCC != 0) - { - video_related_3(0x10002); - osDpGetCounters(&target_for_counters_maybe); - arg0->unkCC = NULL; - arg0->unkCC->unk4 = (s32) (arg0->unkCC->unk4 & -2); - __scTaskComplete(arg0, arg0->unkCC); - if (__scSchedule(arg0, &sp28, &sp24, ((((u32) arg0->unkC8 < 1U) * 2) | ((u32) arg0->unkCC < 1U))) != sp20) - { - __scExec(arg0, sp28, sp24, sp20); + OSScTask *t, *sp = NULL, *dp = NULL; + s32 state; + if (sc->curRDPTask != NULL) { + speedGraphVideoRelated_3(0x10002); + osDpGetCounters(g_DisplayPerformanceCounters); + t = sc->curRDPTask; + sc->curRDPTask = NULL; + t->state &= ~OS_SC_NEEDS_RDP; + __scTaskComplete(sc, t); + state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); + if (__scSchedule(sc, &sp, &dp, state) != state) { + __scExec(sc, sp, dp); } } } -#else -GLOBAL_ASM( -glabel __scHandleRDP -/* 001D28 70001128 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 001D2C 7000112C AFBF001C */ sw $ra, 0x1c($sp) -/* 001D30 70001130 AFB00018 */ sw $s0, 0x18($sp) -/* 001D34 70001134 AFA00028 */ sw $zero, 0x28($sp) -/* 001D38 70001138 AFA00024 */ sw $zero, 0x24($sp) -/* 001D3C 7000113C 8C8E00CC */ lw $t6, 0xcc($a0) -/* 001D40 70001140 00808025 */ move $s0, $a0 -/* 001D44 70001144 3C040001 */ lui $a0, (0x00010002 >> 16) # lui $a0, 1 -/* 001D48 70001148 51C00021 */ beql $t6, $zero, .L700011D0 -/* 001D4C 7000114C 8FBF001C */ lw $ra, 0x1c($sp) -/* 001D50 70001150 0C000A15 */ jal video_related_3 -/* 001D54 70001154 34840002 */ ori $a0, (0x00010002 & 0xFFFF) # ori $a0, $a0, 2 -/* 001D58 70001158 3C048006 */ lui $a0, %hi(target_for_counters_maybe) -/* 001D5C 7000115C 0C0038F0 */ jal osDpGetCounters -/* 001D60 70001160 2484DB30 */ addiu $a0, %lo(target_for_counters_maybe) # addiu $a0, $a0, -0x24d0 -/* 001D64 70001164 8E0500CC */ lw $a1, 0xcc($s0) -/* 001D68 70001168 AE0000CC */ sw $zero, 0xcc($s0) -/* 001D6C 7000116C 2401FFFE */ li $at, -2 -/* 001D70 70001170 8CAF0004 */ lw $t7, 4($a1) -/* 001D74 70001174 02002025 */ move $a0, $s0 -/* 001D78 70001178 01E1C024 */ and $t8, $t7, $at -/* 001D7C 7000117C 0C00048C */ jal __scTaskComplete -/* 001D80 70001180 ACB80004 */ sw $t8, 4($a1) -/* 001D84 70001184 8E1900C8 */ lw $t9, 0xc8($s0) -/* 001D88 70001188 8E0A00CC */ lw $t2, 0xcc($s0) -/* 001D8C 7000118C 02002025 */ move $a0, $s0 -/* 001D90 70001190 2F280001 */ sltiu $t0, $t9, 1 -/* 001D94 70001194 00084840 */ sll $t1, $t0, 1 -/* 001D98 70001198 2D4B0001 */ sltiu $t3, $t2, 1 -/* 001D9C 7000119C 012B3825 */ or $a3, $t1, $t3 -/* 001DA0 700011A0 AFA70020 */ sw $a3, 0x20($sp) -/* 001DA4 700011A4 27A50028 */ addiu $a1, $sp, 0x28 -/* 001DA8 700011A8 0C000567 */ jal __scSchedule -/* 001DAC 700011AC 27A60024 */ addiu $a2, $sp, 0x24 -/* 001DB0 700011B0 8FA70020 */ lw $a3, 0x20($sp) -/* 001DB4 700011B4 02002025 */ move $a0, $s0 -/* 001DB8 700011B8 8FA50028 */ lw $a1, 0x28($sp) -/* 001DBC 700011BC 50470004 */ beql $v0, $a3, .L700011D0 -/* 001DC0 700011C0 8FBF001C */ lw $ra, 0x1c($sp) -/* 001DC4 700011C4 0C000510 */ jal __scExec -/* 001DC8 700011C8 8FA60024 */ lw $a2, 0x24($sp) -/* 001DCC 700011CC 8FBF001C */ lw $ra, 0x1c($sp) -.L700011D0: -/* 001DD0 700011D0 8FB00018 */ lw $s0, 0x18($sp) -/* 001DD4 700011D4 27BD0030 */ addiu $sp, $sp, 0x30 -/* 001DD8 700011D8 03E00008 */ jr $ra -/* 001DDC 700011DC 00000000 */ nop -) -#endif - -/** - * 1DE0 700011E0 - * - */ OSScTask *__scTaskReady(OSScTask *t) { void *a; @@ -850,207 +390,34 @@ OSScTask *__scTaskReady(OSScTask *t) return 0; } -/** - * 1E30 70001230 - */ -#ifdef NONMATCHING -void __scTaskComplete(s32 arg0, void *arg1) +s32 __scTaskComplete(OSSched *sc, OSScTask *t) { - s32 temp_t2; - void *temp_t8; - void *temp_t8_2; - void *temp_t5; - s32 temp_t7; - s32 temp_t0; - void *phi_t8; - void *phi_t5; - s32 phi_v1; - s32 phi_t0; - ? phi_return; - - phi_return = 0; - if ((arg1->unk4 & 3) == 0) - { - osSendMesg(arg1->unk50, arg1->unk54, 1); - if (arg1->unk10 == 1) - { - if ((arg1->unk8 & 0x40) != 0) - { - if ((arg1->unk8 & 0x20) != 0) - { - if (D_800230CC != 0) - { - osViBlack(0); - D_800230CC = 0; - } - temp_t2 = (something_with_osVI * 4); - phi_v1 = temp_t2; - if ((0x80020000 + temp_t2)->unk30C4 != 0) - { - temp_t8 = ((something_with_osVI * 0x50) + &dword_CODE_bss_8005DB40); - phi_t8 = temp_t8; - phi_t5 = (0x80060000 + (something_with_osVI * 4))->unk-2420; -block_8: - temp_t8_2 = (phi_t8 + 0xc); - temp_t5 = (phi_t5 + 0xc); - temp_t5->unk-C = (?32) *phi_t8; - temp_t5->unk-8 = (?32) temp_t8_2->unk-8; - temp_t5->unk-4 = (?32) temp_t8_2->unk-4; - phi_t8 = temp_t8_2; - phi_t5 = temp_t5; - if (temp_t8_2 != (temp_t8 + 0x48)) - { - goto block_8; - } - *temp_t5 = (?32) *temp_t8_2; - temp_t5->unk4 = (?32) temp_t8_2->unk4; - osSetIntMask(osSetIntMask(0x80401)); - phi_v1 = (something_with_osVI * 4); - } - osViSetXScale((0x80020000 + phi_v1)->unk30B4); - osViSetYScale((0x80020000 + (something_with_osVI * 4))->unk30BC); - temp_t7 = (something_with_osVI + 1); - temp_t0 = (temp_t7 & 1); - phi_t0 = temp_t0; - if (temp_t7 < 0) - { - phi_t0 = temp_t0; - if (temp_t0 != 0) - { - phi_t0 = (temp_t0 + -2); - } - } - something_with_osVI = (s32) phi_t0; - CheckDisplayErrorBuffer(arg1->unkC); - osViSwapBuffer(arg1->unkC); + int rv; + static int firsttime = 1; + if ((t->state & OS_SC_RCP_MASK) == 0) { + rv = osSendMesg(t->msgQ, t->msg, OS_MESG_BLOCK); + if (t->list.t.type == M_GFXTASK) { + if ((t->flags & OS_SC_SWAPBUFFER) && (t->flags & OS_SC_LAST_TASK)){ + if (firsttime) { + osViBlack(FALSE); + firsttime = 0; } + if (something_with_osVI_14[g_ViCurrentIndex]) { + OSIntMask mask = osSetIntMask(0x80401); + *g_ViModePtrs[g_ViCurrentIndex] = g_ViModes[g_ViCurrentIndex]; + osSetIntMask(mask); + } + osViSetXScale(g_ViXScales[g_ViCurrentIndex]); + osViSetYScale(g_ViYScales[g_ViCurrentIndex]); + g_ViCurrentIndex = ((g_ViCurrentIndex + 1) % 2); + CheckDisplayErrorBuffer(t->framebuffer); + osViSwapBuffer(t->framebuffer); } } - phi_return = 1; - } - return phi_return; + return 1; + } + return 0; } -#else -GLOBAL_ASM( -glabel __scTaskComplete -/* 001E30 70001230 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 001E34 70001234 AFBF001C */ sw $ra, 0x1c($sp) -/* 001E38 70001238 AFB00018 */ sw $s0, 0x18($sp) -/* 001E3C 7000123C AFA40020 */ sw $a0, 0x20($sp) -/* 001E40 70001240 8CAE0004 */ lw $t6, 4($a1) -/* 001E44 70001244 00A08025 */ move $s0, $a1 -/* 001E48 70001248 24060001 */ li $a2, 1 -/* 001E4C 7000124C 31CF0003 */ andi $t7, $t6, 3 -/* 001E50 70001250 15E0005C */ bnez $t7, .L700013C4 -/* 001E54 70001254 00001025 */ move $v0, $zero -/* 001E58 70001258 8CA40050 */ lw $a0, 0x50($a1) -/* 001E5C 7000125C 0C0037C4 */ jal osSendMesg -/* 001E60 70001260 8CA50054 */ lw $a1, 0x54($a1) -/* 001E64 70001264 8E180010 */ lw $t8, 0x10($s0) -/* 001E68 70001268 24010001 */ li $at, 1 -/* 001E6C 7000126C 17010053 */ bne $t8, $at, .L700013BC -/* 001E70 70001270 00000000 */ nop -/* 001E74 70001274 8E020008 */ lw $v0, 8($s0) -/* 001E78 70001278 30590040 */ andi $t9, $v0, 0x40 -/* 001E7C 7000127C 1320004F */ beqz $t9, .L700013BC -/* 001E80 70001280 30480020 */ andi $t0, $v0, 0x20 -/* 001E84 70001284 1100004D */ beqz $t0, .L700013BC -/* 001E88 70001288 3C098002 */ lui $t1, %hi(D_800230CC) -/* 001E8C 7000128C 8D2930CC */ lw $t1, %lo(D_800230CC)($t1) -/* 001E90 70001290 11200005 */ beqz $t1, .L700012A8 -/* 001E94 70001294 00000000 */ nop -/* 001E98 70001298 0C0038B4 */ jal osViBlack -/* 001E9C 7000129C 00002025 */ move $a0, $zero -/* 001EA0 700012A0 3C018002 */ lui $at, %hi(D_800230CC) -/* 001EA4 700012A4 AC2030CC */ sw $zero, %lo(D_800230CC)($at) -.L700012A8: -/* 001EA8 700012A8 3C038002 */ lui $v1, %hi(something_with_osVI_0) -/* 001EAC 700012AC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) -/* 001EB0 700012B0 3C0B8002 */ lui $t3, %hi(something_with_osVI_14) -/* 001EB4 700012B4 3C040008 */ lui $a0, (0x00080401 >> 16) # lui $a0, 8 -/* 001EB8 700012B8 00035080 */ sll $t2, $v1, 2 -/* 001EBC 700012BC 016A5821 */ addu $t3, $t3, $t2 -/* 001EC0 700012C0 8D6B30C4 */ lw $t3, %lo(something_with_osVI_14)($t3) -/* 001EC4 700012C4 01401825 */ move $v1, $t2 -/* 001EC8 700012C8 11600023 */ beqz $t3, .L70001358 -/* 001ECC 700012CC 00000000 */ nop -/* 001ED0 700012D0 0C00374C */ jal osSetIntMask -/* 001ED4 700012D4 34840401 */ ori $a0, (0x00080401 & 0xFFFF) # ori $a0, $a0, 0x401 -/* 001ED8 700012D8 3C038002 */ lui $v1, %hi(something_with_osVI_0) -/* 001EDC 700012DC 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) -/* 001EE0 700012E0 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) -/* 001EE4 700012E4 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 -/* 001EE8 700012E8 00037080 */ sll $t6, $v1, 2 -/* 001EEC 700012EC 01C37021 */ addu $t6, $t6, $v1 -/* 001EF0 700012F0 000E7100 */ sll $t6, $t6, 4 -/* 001EF4 700012F4 3C0D8006 */ lui $t5, %hi(sc+416) -/* 001EF8 700012F8 00036080 */ sll $t4, $v1, 2 -/* 001EFC 700012FC 01AC6821 */ addu $t5, $t5, $t4 -/* 001F00 70001300 01CFC021 */ addu $t8, $t6, $t7 -/* 001F04 70001304 27090048 */ addiu $t1, $t8, 0x48 -/* 001F08 70001308 8DADDBE0 */ lw $t5, %lo(sc+416)($t5) -.L7000130C: -/* 001F0C 7000130C 8F010000 */ lw $at, ($t8) -/* 001F10 70001310 2718000C */ addiu $t8, $t8, 0xc -/* 001F14 70001314 25AD000C */ addiu $t5, $t5, 0xc -/* 001F18 70001318 ADA1FFF4 */ sw $at, -0xc($t5) -/* 001F1C 7000131C 8F01FFF8 */ lw $at, -8($t8) -/* 001F20 70001320 ADA1FFF8 */ sw $at, -8($t5) -/* 001F24 70001324 8F01FFFC */ lw $at, -4($t8) -/* 001F28 70001328 1709FFF8 */ bne $t8, $t1, .L7000130C -/* 001F2C 7000132C ADA1FFFC */ sw $at, -4($t5) -/* 001F30 70001330 8F010000 */ lw $at, ($t8) -/* 001F34 70001334 00402025 */ move $a0, $v0 -/* 001F38 70001338 ADA10000 */ sw $at, ($t5) -/* 001F3C 7000133C 8F090004 */ lw $t1, 4($t8) -/* 001F40 70001340 0C00374C */ jal osSetIntMask -/* 001F44 70001344 ADA90004 */ sw $t1, 4($t5) -/* 001F48 70001348 3C038002 */ lui $v1, %hi(something_with_osVI_0) -/* 001F4C 7000134C 8C6330B0 */ lw $v1, %lo(something_with_osVI_0)($v1) -/* 001F50 70001350 00035080 */ sll $t2, $v1, 2 -/* 001F54 70001354 01401825 */ move $v1, $t2 -.L70001358: -/* 001F58 70001358 3C018002 */ lui $at, %hi(something_with_osVI_4) -/* 001F5C 7000135C 00230821 */ addu $at, $at, $v1 -/* 001F60 70001360 0C003834 */ jal osViSetXScale -/* 001F64 70001364 C42C30B4 */ lwc1 $f12, %lo(something_with_osVI_4)($at) -/* 001F68 70001368 3C0B8002 */ lui $t3, %hi(something_with_osVI_0) -/* 001F6C 7000136C 8D6B30B0 */ lw $t3, %lo(something_with_osVI_0)($t3) -/* 001F70 70001370 3C018002 */ lui $at, %hi(something_with_osVI_C) -/* 001F74 70001374 000B6080 */ sll $t4, $t3, 2 -/* 001F78 70001378 002C0821 */ addu $at, $at, $t4 -/* 001F7C 7000137C 0C003880 */ jal osViSetYScale -/* 001F80 70001380 C42C30BC */ lwc1 $f12, %lo(something_with_osVI_C)($at) -/* 001F84 70001384 3C0E8002 */ lui $t6, %hi(something_with_osVI_0) -/* 001F88 70001388 8DCE30B0 */ lw $t6, %lo(something_with_osVI_0)($t6) -/* 001F8C 7000138C 3C018002 */ lui $at, %hi(something_with_osVI_0) -/* 001F90 70001390 25CF0001 */ addiu $t7, $t6, 1 -/* 001F94 70001394 05E10004 */ bgez $t7, .L700013A8 -/* 001F98 70001398 31E80001 */ andi $t0, $t7, 1 -/* 001F9C 7000139C 11000002 */ beqz $t0, .L700013A8 -/* 001FA0 700013A0 00000000 */ nop -/* 001FA4 700013A4 2508FFFE */ addiu $t0, $t0, -2 -.L700013A8: -/* 001FA8 700013A8 AC2830B0 */ sw $t0, %lo(something_with_osVI_0)($at) -/* 001FAC 700013AC 0C000268 */ jal CheckDisplayErrorBuffer -/* 001FB0 700013B0 8E04000C */ lw $a0, 0xc($s0) -/* 001FB4 700013B4 0C003924 */ jal osViSwapBuffer -/* 001FB8 700013B8 8E04000C */ lw $a0, 0xc($s0) -.L700013BC: -/* 001FBC 700013BC 10000001 */ b .L700013C4 -/* 001FC0 700013C0 24020001 */ li $v0, 1 -.L700013C4: -/* 001FC4 700013C4 8FBF001C */ lw $ra, 0x1c($sp) -/* 001FC8 700013C8 8FB00018 */ lw $s0, 0x18($sp) -/* 001FCC 700013CC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 001FD0 700013D0 03E00008 */ jr $ra -/* 001FD4 700013D4 00000000 */ nop -) -#endif - -/** - * 1FD8 700013D8 - */ void __scAppendList(OSSched *sc, OSScTask *t) { @@ -1077,144 +444,49 @@ void __scAppendList(OSSched *sc, OSScTask *t) t->state = t->flags & OS_SC_RCP_MASK; } - -/** - * 2040 70001440 - * (DPC fill) - */ -#ifdef NONMATCHING -void __scExec(void *arg0, void *arg1, void *arg2) +void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp) { - s32 phi_v0; - - if (arg1 != 0) + int rv; + if (sp) { - if (arg1->unk10 == 2) + if (sp->list.t.type == M_AUDTASK) { osWritebackDCacheAll(); - } - phi_v0 = arg1->unk10; - if (arg1->unk10 != 2) + } + + if ((sp->list.t.type != M_AUDTASK) && (sp->state & 0x10) == 0) { - phi_v0 = arg1->unk10; - if ((arg1->unk4 & 0x10) == 0) - { - osDpSetStatus(0x3c0); - phi_v0 = arg1->unk10; - } + osDpSetStatus(0x3c0); } - if (phi_v0 == 2) + + if (sp->list.t.type == 2) { - video_related_3(0x30001); + speedGraphVideoRelated_3(0x30001); } else { - video_related_3(0x30001); - video_related_3(0x20002); + speedGraphVideoRelated_3(0x40001); + speedGraphVideoRelated_3(0x20002); } - arg1->unk4 = (s32) (arg1->unk4 & -0x31); - osSpTaskLoad((arg1 + 0x10)); - osSpTaskStartGo(sp20); - arg0->unkC8 = arg1; - if (arg1 == arg2) + sp->state &= ~(OS_SC_YIELD | OS_SC_YIELDED); + osSpTaskLoad(&sp->list); + osSpTaskStartGo(&sp->list); + sc->curRSPTask = sp; + if (sp == dp) { - arg0->unkCC = arg2; + sc->curRDPTask = dp; } } - if (arg2 != 0) + if (dp && (dp != sp)) { - if (arg2 != arg1) - { - osDpSetNextBuffer(arg2->unk38, *arg2->unk3C, arg2->unk3C->unk4); - setby_DPCfill_0 = 1; - setby_DPCfill_1 = 0; - arg0->unkCC = arg2; - } + rv = osDpSetNextBuffer(dp->list.t.output_buff, *dp->list.t.output_buff_size); + + dp_busy = 1; + dpCount = 0; + + sc->curRDPTask = dp; } } -#else -GLOBAL_ASM( -glabel __scExec -/* 002040 70001440 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 002044 70001444 AFB10018 */ sw $s1, 0x18($sp) -/* 002048 70001448 AFB00014 */ sw $s0, 0x14($sp) -/* 00204C 7000144C 00A08025 */ move $s0, $a1 -/* 002050 70001450 00C08825 */ move $s1, $a2 -/* 002054 70001454 AFBF001C */ sw $ra, 0x1c($sp) -/* 002058 70001458 10A0002C */ beqz $a1, .L7000150C -/* 00205C 7000145C AFA40028 */ sw $a0, 0x28($sp) -/* 002060 70001460 8CA20010 */ lw $v0, 0x10($a1) -/* 002064 70001464 24010002 */ li $at, 2 -/* 002068 70001468 54410005 */ bnel $v0, $at, .L70001480 -/* 00206C 7000146C 24010002 */ li $at, 2 -/* 002070 70001470 0C0034C8 */ jal osWritebackDCacheAll -/* 002074 70001474 00000000 */ nop -/* 002078 70001478 8E020010 */ lw $v0, 0x10($s0) -/* 00207C 7000147C 24010002 */ li $at, 2 -.L70001480: -/* 002080 70001480 50410009 */ beql $v0, $at, .L700014A8 -/* 002084 70001484 24010002 */ li $at, 2 -/* 002088 70001488 8E0E0004 */ lw $t6, 4($s0) -/* 00208C 7000148C 31CF0010 */ andi $t7, $t6, 0x10 -/* 002090 70001490 55E00005 */ bnezl $t7, .L700014A8 -/* 002094 70001494 24010002 */ li $at, 2 -/* 002098 70001498 0C003938 */ jal osDpSetStatus -/* 00209C 7000149C 240403C0 */ li $a0, 960 -/* 0020A0 700014A0 8E020010 */ lw $v0, 0x10($s0) -/* 0020A4 700014A4 24010002 */ li $at, 2 -.L700014A8: -/* 0020A8 700014A8 14410006 */ bne $v0, $at, .L700014C4 -/* 0020AC 700014AC 3C040004 */ lui $a0, 4 -/* 0020B0 700014B0 3C040003 */ lui $a0, (0x00030001 >> 16) # lui $a0, 3 -/* 0020B4 700014B4 0C000A15 */ jal video_related_3 -/* 0020B8 700014B8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 -/* 0020BC 700014BC 10000007 */ b .L700014DC -/* 0020C0 700014C0 8E180004 */ lw $t8, 4($s0) -.L700014C4: -/* 0020C4 700014C4 0C000A15 */ jal video_related_3 -/* 0020C8 700014C8 34840001 */ ori $a0, (0x00030001 & 0xFFFF) # ori $a0, $a0, 1 -/* 0020CC 700014CC 3C040002 */ lui $a0, (0x00020002 >> 16) # lui $a0, 2 -/* 0020D0 700014D0 0C000A15 */ jal video_related_3 -/* 0020D4 700014D4 34840002 */ ori $a0, (0x00020002 & 0xFFFF) # ori $a0, $a0, 2 -/* 0020D8 700014D8 8E180004 */ lw $t8, 4($s0) -.L700014DC: -/* 0020DC 700014DC 2401FFCF */ li $at, -49 -/* 0020E0 700014E0 26040010 */ addiu $a0, $s0, 0x10 -/* 0020E4 700014E4 0301C824 */ and $t9, $t8, $at -/* 0020E8 700014E8 AE190004 */ sw $t9, 4($s0) -/* 0020EC 700014EC 0C003983 */ jal osSpTaskLoad -/* 0020F0 700014F0 AFA40020 */ sw $a0, 0x20($sp) -/* 0020F4 700014F4 0C0039DB */ jal osSpTaskStartGo -/* 0020F8 700014F8 8FA40020 */ lw $a0, 0x20($sp) -/* 0020FC 700014FC 8FA80028 */ lw $t0, 0x28($sp) -/* 002100 70001500 16110002 */ bne $s0, $s1, .L7000150C -/* 002104 70001504 AD1000C8 */ sw $s0, 0xc8($t0) -/* 002108 70001508 AD1100CC */ sw $s1, 0xcc($t0) -.L7000150C: -/* 00210C 7000150C 52200010 */ beql $s1, $zero, .L70001550 -/* 002110 70001510 8FBF001C */ lw $ra, 0x1c($sp) -/* 002114 70001514 5230000E */ beql $s1, $s0, .L70001550 -/* 002118 70001518 8FBF001C */ lw $ra, 0x1c($sp) -/* 00211C 7000151C 8E29003C */ lw $t1, 0x3c($s1) -/* 002120 70001520 8E240038 */ lw $a0, 0x38($s1) -/* 002124 70001524 8D260000 */ lw $a2, ($t1) -/* 002128 70001528 0C0039EC */ jal osDpSetNextBuffer -/* 00212C 7000152C 8D270004 */ lw $a3, 4($t1) -/* 002130 70001530 240A0001 */ li $t2, 1 -/* 002134 70001534 3C018002 */ lui $at, %hi(setby_DPCfill_0) -/* 002138 70001538 8FAB0028 */ lw $t3, 0x28($sp) -/* 00213C 7000153C AC2A30A8 */ sw $t2, %lo(setby_DPCfill_0)($at) -/* 002140 70001540 3C018002 */ lui $at, %hi(setby_DPCfill_1) -/* 002144 70001544 AC2030AC */ sw $zero, %lo(setby_DPCfill_1)($at) -/* 002148 70001548 AD7100CC */ sw $s1, 0xcc($t3) -/* 00214C 7000154C 8FBF001C */ lw $ra, 0x1c($sp) -.L70001550: -/* 002150 70001550 8FB00014 */ lw $s0, 0x14($sp) -/* 002154 70001554 8FB10018 */ lw $s1, 0x18($sp) -/* 002158 70001558 03E00008 */ jr $ra -/* 00215C 7000155C 27BD0028 */ addiu $sp, $sp, 0x28 -) -#endif /** * 2160 70001560 @@ -1239,156 +511,97 @@ void __scYield(OSSched *sc) * 70001704 2,6,7 * 70001758 default; 1,4,5 */ -#ifdef NONMATCHING -void __scSchedule(void) { +s32 __scSchedule(OSSched *sc, OSScTask **sp, OSScTask **dp, s32 availRCP) +{ + s32 avail = availRCP; + OSScTask *gfx = sc->gfxListHead; + OSScTask *audio = sc->audioListHead; + + if (sc->doAudio && (avail & OS_SC_SP)) + { + if (gfx && (gfx->flags & OS_SC_PARALLEL_TASK)) + { + *sp = gfx; + avail &= ~OS_SC_SP; + } else { + *sp = audio; + avail &= ~OS_SC_SP; + sc->doAudio = 0; + sc->audioListHead = sc->audioListHead->next; + if (sc->audioListHead == NULL) + sc->audioListTail = NULL; + } + } else { + if (__scTaskReady(gfx)) + { + switch (gfx->flags & OS_SC_TYPE_MASK) + { + case (OS_SC_XBUS): + if (gfx->state & OS_SC_YIELDED) + { + if (avail & OS_SC_SP) + { + *sp = gfx; + avail &= ~OS_SC_SP; + + if (gfx->state & OS_SC_DP) + { + *dp = gfx; + avail &= ~OS_SC_DP; + + if (avail & OS_SC_DP == 0) + assert(sc->curRDPTask == gfx); + + } + sc->gfxListHead = sc->gfxListHead->next; + if (sc->gfxListHead == NULL) + sc->gfxListTail = NULL; + } + } else { + if (avail == (OS_SC_SP | OS_SC_DP)) + { + *sp = *dp = gfx; + avail &= ~(OS_SC_SP | OS_SC_DP); + sc->gfxListHead = sc->gfxListHead->next; + if (sc->gfxListHead == NULL) + sc->gfxListTail = NULL; + } + } + break; + + case (OS_SC_DRAM): + case (OS_SC_DP_DRAM): + case (OS_SC_DP_XBUS): + if (gfx->state & OS_SC_SP) + { + if (avail & OS_SC_SP) + { + *sp = gfx; + avail &= ~OS_SC_SP; + } + } else if (gfx->state & OS_SC_DP) { + if (avail & OS_SC_DP) + { + *dp = gfx; + avail &= ~OS_SC_DP; + sc->gfxListHead = sc->gfxListHead->next; + if (sc->gfxListHead == NULL) + sc->gfxListTail = NULL; + } + } + break; + + case (OS_SC_SP_DRAM): + case (OS_SC_SP_XBUS): + default: + break; + } + } + } + + if (avail != availRCP) + avail = __scSchedule(sc, sp, dp, avail); + + return avail; } -#else -GLOBAL_ASM( -.late_rodata -glabel jpt_80028400 - .word .L70001758 - .word .L70001704 - .word .L7000167C - .word .L70001758 - .word .L70001758 - .word .L70001704 - .word .L70001704 - -.text -glabel __scSchedule -/* 00219C 7000159C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0021A0 700015A0 AFB10018 */ sw $s1, 0x18($sp) -/* 0021A4 700015A4 00808825 */ move $s1, $a0 -/* 0021A8 700015A8 AFBF001C */ sw $ra, 0x1c($sp) -/* 0021AC 700015AC AFB00014 */ sw $s0, 0x14($sp) -/* 0021B0 700015B0 2408FFFD */ li $t0, -3 -.L700015B4: -/* 0021B4 700015B4 8E2E00D4 */ lw $t6, 0xd4($s1) -/* 0021B8 700015B8 00E01825 */ move $v1, $a3 -/* 0021BC 700015BC 8E3000BC */ lw $s0, 0xbc($s1) -/* 0021C0 700015C0 11C00016 */ beqz $t6, .L7000161C -/* 0021C4 700015C4 8E2200B8 */ lw $v0, 0xb8($s1) -/* 0021C8 700015C8 30EF0002 */ andi $t7, $a3, 2 -/* 0021CC 700015CC 51E00014 */ beql $t7, $zero, .L70001620 -/* 0021D0 700015D0 02002025 */ move $a0, $s0 -/* 0021D4 700015D4 52000009 */ beql $s0, $zero, .L700015FC -/* 0021D8 700015D8 ACA20000 */ sw $v0, ($a1) -/* 0021DC 700015DC 8E180008 */ lw $t8, 8($s0) -/* 0021E0 700015E0 00E81824 */ and $v1, $a3, $t0 -/* 0021E4 700015E4 33190010 */ andi $t9, $t8, 0x10 -/* 0021E8 700015E8 53200004 */ beql $t9, $zero, .L700015FC -/* 0021EC 700015EC ACA20000 */ sw $v0, ($a1) -/* 0021F0 700015F0 10000059 */ b .L70001758 -/* 0021F4 700015F4 ACB00000 */ sw $s0, ($a1) -/* 0021F8 700015F8 ACA20000 */ sw $v0, ($a1) -.L700015FC: -/* 0021FC 700015FC 8E2A00B8 */ lw $t2, 0xb8($s1) -/* 002200 70001600 AE2000D4 */ sw $zero, 0xd4($s1) -/* 002204 70001604 00E81824 */ and $v1, $a3, $t0 -/* 002208 70001608 8D4B0000 */ lw $t3, ($t2) -/* 00220C 7000160C 15600052 */ bnez $t3, .L70001758 -/* 002210 70001610 AE2B00B8 */ sw $t3, 0xb8($s1) -/* 002214 70001614 10000050 */ b .L70001758 -/* 002218 70001618 AE2000C0 */ sw $zero, 0xc0($s1) -.L7000161C: -/* 00221C 7000161C 02002025 */ move $a0, $s0 -.L70001620: -/* 002220 70001620 AFA30024 */ sw $v1, 0x24($sp) -/* 002224 70001624 AFA5002C */ sw $a1, 0x2c($sp) -/* 002228 70001628 AFA60030 */ sw $a2, 0x30($sp) -/* 00222C 7000162C 0C000478 */ jal __scTaskReady -/* 002230 70001630 AFA70034 */ sw $a3, 0x34($sp) -/* 002234 70001634 8FA30024 */ lw $v1, 0x24($sp) -/* 002238 70001638 8FA5002C */ lw $a1, 0x2c($sp) -/* 00223C 7000163C 8FA60030 */ lw $a2, 0x30($sp) -/* 002240 70001640 8FA70034 */ lw $a3, 0x34($sp) -/* 002244 70001644 2408FFFD */ li $t0, -3 -/* 002248 70001648 10400043 */ beqz $v0, .L70001758 -/* 00224C 7000164C 2409FFFE */ li $t1, -2 -/* 002250 70001650 8E0D0008 */ lw $t5, 8($s0) -/* 002254 70001654 31AE0007 */ andi $t6, $t5, 7 -/* 002258 70001658 25CFFFFF */ addiu $t7, $t6, -1 -/* 00225C 7000165C 2DE10007 */ sltiu $at, $t7, 7 -/* 002260 70001660 1020003D */ beqz $at, .L70001758 -/* 002264 70001664 000F7880 */ sll $t7, $t7, 2 -/* 002268 70001668 3C018003 */ lui $at, %hi(jpt_80028400) -/* 00226C 7000166C 002F0821 */ addu $at, $at, $t7 -/* 002270 70001670 8C2F8400 */ lw $t7, %lo(jpt_80028400)($at) # lw $t7, -0x7c00($at) -/* 002274 70001674 01E00008 */ jr $t7 -/* 002278 70001678 00000000 */ nop -.L7000167C: -/* 00227C 7000167C 8E180004 */ lw $t8, 4($s0) -/* 002280 70001680 30EA0002 */ andi $t2, $a3, 2 -/* 002284 70001684 24010003 */ li $at, 3 -/* 002288 70001688 33190020 */ andi $t9, $t8, 0x20 -/* 00228C 7000168C 13200011 */ beqz $t9, .L700016D4 -/* 002290 70001690 00000000 */ nop -/* 002294 70001694 11400030 */ beqz $t2, .L70001758 -/* 002298 70001698 00000000 */ nop -/* 00229C 7000169C ACB00000 */ sw $s0, ($a1) -/* 0022A0 700016A0 8E0B0004 */ lw $t3, 4($s0) -/* 0022A4 700016A4 00E81824 */ and $v1, $a3, $t0 -/* 0022A8 700016A8 316C0001 */ andi $t4, $t3, 1 -/* 0022AC 700016AC 51800004 */ beql $t4, $zero, .L700016C0 -/* 0022B0 700016B0 8E2D00BC */ lw $t5, 0xbc($s1) -/* 0022B4 700016B4 ACD00000 */ sw $s0, ($a2) -/* 0022B8 700016B8 00691824 */ and $v1, $v1, $t1 -/* 0022BC 700016BC 8E2D00BC */ lw $t5, 0xbc($s1) -.L700016C0: -/* 0022C0 700016C0 8DAE0000 */ lw $t6, ($t5) -/* 0022C4 700016C4 15C00024 */ bnez $t6, .L70001758 -/* 0022C8 700016C8 AE2E00BC */ sw $t6, 0xbc($s1) -/* 0022CC 700016CC 10000022 */ b .L70001758 -/* 0022D0 700016D0 AE2000C4 */ sw $zero, 0xc4($s1) -.L700016D4: -/* 0022D4 700016D4 14E10020 */ bne $a3, $at, .L70001758 -/* 0022D8 700016D8 00000000 */ nop -/* 0022DC 700016DC ACD00000 */ sw $s0, ($a2) -/* 0022E0 700016E0 ACB00000 */ sw $s0, ($a1) -/* 0022E4 700016E4 8E3800BC */ lw $t8, 0xbc($s1) -/* 0022E8 700016E8 2401FFFC */ li $at, -4 -/* 0022EC 700016EC 00E11824 */ and $v1, $a3, $at -/* 0022F0 700016F0 8F190000 */ lw $t9, ($t8) -/* 0022F4 700016F4 17200018 */ bnez $t9, .L70001758 -/* 0022F8 700016F8 AE3900BC */ sw $t9, 0xbc($s1) -/* 0022FC 700016FC 10000016 */ b .L70001758 -/* 002300 70001700 AE2000C4 */ sw $zero, 0xc4($s1) -.L70001704: -/* 002304 70001704 8E020004 */ lw $v0, 4($s0) -/* 002308 70001708 30EC0002 */ andi $t4, $a3, 2 -/* 00230C 7000170C 304B0002 */ andi $t3, $v0, 2 -/* 002310 70001710 11600006 */ beqz $t3, .L7000172C -/* 002314 70001714 304D0001 */ andi $t5, $v0, 1 -/* 002318 70001718 1180000F */ beqz $t4, .L70001758 -/* 00231C 7000171C 00000000 */ nop -/* 002320 70001720 ACB00000 */ sw $s0, ($a1) -/* 002324 70001724 1000000C */ b .L70001758 -/* 002328 70001728 00E81824 */ and $v1, $a3, $t0 -.L7000172C: -/* 00232C 7000172C 11A0000A */ beqz $t5, .L70001758 -/* 002330 70001730 30EE0001 */ andi $t6, $a3, 1 -/* 002334 70001734 11C00008 */ beqz $t6, .L70001758 -/* 002338 70001738 00000000 */ nop -/* 00233C 7000173C ACD00000 */ sw $s0, ($a2) -/* 002340 70001740 8E2F00BC */ lw $t7, 0xbc($s1) -/* 002344 70001744 00E91824 */ and $v1, $a3, $t1 -/* 002348 70001748 8DF80000 */ lw $t8, ($t7) -/* 00234C 7000174C 17000002 */ bnez $t8, .L70001758 -/* 002350 70001750 AE3800BC */ sw $t8, 0xbc($s1) -/* 002354 70001754 AE2000C4 */ sw $zero, 0xc4($s1) -.L70001758: -/* 002358 70001758 50670004 */ beql $v1, $a3, .L7000176C -/* 00235C 7000175C 8FBF001C */ lw $ra, 0x1c($sp) -/* 002360 70001760 1000FF94 */ b .L700015B4 -/* 002364 70001764 00603825 */ move $a3, $v1 -/* 002368 70001768 8FBF001C */ lw $ra, 0x1c($sp) -.L7000176C: -/* 00236C 7000176C 8FB00014 */ lw $s0, 0x14($sp) -/* 002370 70001770 8FB10018 */ lw $s1, 0x18($sp) -/* 002374 70001774 27BD0028 */ addiu $sp, $sp, 0x28 -/* 002378 70001778 03E00008 */ jr $ra -/* 00237C 7000177C 00601025 */ move $v0, $v1 -) -#endif - diff --git a/src/sched.h b/src/sched.h index 4e07fff..26e0da2 100644 --- a/src/sched.h +++ b/src/sched.h @@ -62,9 +62,15 @@ typedef struct { s32 doAudio; } OSSched; +extern f32 g_ViXScales[2]; +extern f32 g_ViYScales[2]; +extern s32 something_with_osVI_14[2]; extern OSSched sc; extern OSScClient gfxClient[3]; //extern char gfxClient[0x18]; +extern OSViMode g_ViModes[2]; +extern OSViMode *g_ViModePtrs[2]; +extern s32 dword_CODE_bss_8005DBE8[2]; void activate_stderr(u32 flag); void enable_stderr(u32 flag); @@ -76,10 +82,12 @@ void osCreateLog(void); void __scMain(void *arg); void __scYield(OSSched *sc) ; void __scAppendList(OSSched *sc, OSScTask *t); -void osCreateScheduler(OSSched *s, void *stack, u8 mode, u8 numFields); +void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp); +void osCreateScheduler(OSSched *s, void *stack, u8 mode, u32 numFields); void osScAddClient(OSSched *s, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next); void osScRemoveClient(OSSched *s, OSScClient *c); OSMesgQueue *osScGetCmdQ(OSSched *s); + #endif diff --git a/src/snd.h b/src/snd.h index 36c0e91..edcb4c9 100644 --- a/src/snd.h +++ b/src/snd.h @@ -1,7 +1,24 @@ #ifndef _SND_H_ #define _SND_H_ #include "ultra64.h" +#include "PR/libaudio.h" + +/** + * This is a guess struct, used by music setup function call into snd. + * There's some setup of ALSeqpConfig just above the section, so + * that's what this is based on. + */ +typedef struct ALSeqpSfxConfig_s { + s32 maxVoices; /* max number of voices to alloc */ + s32 maxEvents; /* max internal events to support */ + u32 channelWord; + ALHeap *heap; /* ptr to initialized heap */ +} ALSeqpSfxConfig; + +void play_sfx_a1 (void * buffer, short entry, void * data); +void sfx_c_70007B20(ALSeqpSfxConfig *arg0); extern s8 bootswitch_sound; -void play_sfx_a1 (void * buffer, short entry, void * data); + + #endif diff --git a/src/speed_graph.c b/src/speed_graph.c index 267818b..565fc72 100644 --- a/src/speed_graph.c +++ b/src/speed_graph.c @@ -1,887 +1,336 @@ #include "ultra64.h" +#include "unk_0C0A70.h" +#include "debugmenu.h" + /** - * @file speed_graph.c - * This file contains code to draw speedgraph. - * - */ - - -/* _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - | Snippet of building glist buffers | - |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _| - -== H file == -#define GLIST_LEN 2048 // GE seems to be 266 - -/* - * Layout of dynamic data. - * - * This structure holds the things which change per frame. It is advantageous - * to keep dynamic data together so that we may selectively write back dirty - * data cache lines to DRAM prior to processing by the RCP. - * - * / -typedef struct { - Mtx projection; - Mtx modeling; - Mtx modeling2; - Mtx viewing; - LookAt lookat; - Hilite hilite; - Lightsn light; //Oh interesting, since we found this and LookAt, it seems dynamic gfx should astart right after. - Gfx glist[GLIST_LEN]; -} Dynamic; - -extern Dynamic dynamic; - -== H file End == - -/* - * global variables - * -Gfx *glistp; /* RSP display list pointer * / -//Dynamic dynamic; /* dynamic data * / -/ * - * Double-buffered dynamic segments - * / -Dynamic dynamic[2]; -... - -// some function() -{ - ... - int current = 0; - dynamicp = &dynamic[current]; - glistp = dynamicp->glist; - //example gfx build - gSPSegment(glistp++, 0, 0x0); // glist++ ready for next instruction (held in dynamic 1 or 2) -} +* Used in speedGraphDisplay to check if D_80048498 and g_speedGraphCountAccumulator are +* over the threshold for output. */ - -/* tempory types confirm me */ -s32 dword_CODE_bss_8005F3F0[4]; //Gfx Tiles_Setup? oh... unless thats what the next 2 are... the first command I recognised did start at 8005f400... -// dynamic glist, though it lacks the format above... -Gfx displaylist_0[266]; -Gfx displaylist_1[266]; -s32 displaylist_bank; //0 or 1? current? -s32 dword_CODE_bss_800604A4; -u32 dword_CODE_bss_800604A8; +#define COUNT_REQUIRED_FOR_OUTPUT 20 + +/** + * Used in speedGraphDisplay to calculate display Hz. + */ +#ifdef VERSION_EU +#define VICLOCK 50 +#else +#define VICLOCK 60 +#endif + +s32 dword_CODE_bss_8005F3F0[3]; +Gfx g_speedGraphDisplayList[2][266]; +s32 g_speedGraphDisplayListBank; +u32 g_speedGraphLastOsCount; +u32 g_speedGraphCurrentOsCount; u32 dword_CODE_bss_800604AC; -s32 dword_CODE_bss_800604B0[0xC0]; -s32 dword_CODE_bss_800607B0; -s32 dword_CODE_bss_800607B4; -s32 dword_CODE_bss_800607B8; -s32 dword_CODE_bss_800607BC; -s32 dword_CODE_bss_800607C0; -s32 dword_CODE_bss_800607C4; -s32 dword_CODE_bss_800607C8; -s32 dword_CODE_bss_800607CC; -s32 dword_CODE_bss_800607D0; -s32 dword_CODE_bss_800607D4; -s32 dword_CODE_bss_800607D8; -s32 dword_CODE_bss_800607DC; + +typedef struct { + u32 unk0; + u32 osCount; +} unknown_s; + +unknown_s dword_CODE_bss_800604B0[3][32]; +s32 dword_CODE_bss_800607B0[3]; +s32 dword_CODE_bss_800607C0[3]; +s32 dword_CODE_bss_800607D0[3]; s32 D_800231D0 = 0; +#ifdef NONMATCHING +typedef struct { + s32 color; + s32 unk4; + s32 unk8; + s32 unkC; +} s_800231D4; +s_800231D4 D_800231D4[5] = { + {0x00000000, 0x00000000, 0x00000002, 0x00000000}, + {0x00000001, 0x00000000, 0x00000002, 0x00000000}, + {0xFF000000, 0x00000002, 0x00000000, 0x00000003}, + {0x00009200, 0x00000004, 0xFFFFFFFF, 0x00000004}, + {0x00000004, 0xD8000000, 0x00000004, 0xFFFFFFFF} +}; +#else s32 D_800231D4[] = { 0, 0, 2, 0, 1, 0, 2, 0, 2, 0xFF000000, 2, 0, 3, 0x9200, 4, 0xFFFFFFFF, 4, 0xDB000000, 4, 0xFFFFFFFF }; +#endif -s32 D_80023224 = 0; -s32 D_80023228 = 0; +/** + * 80023224. Seems to accumulate D_80048498 in speedGraphDisplay. Once above the threshold COUNT_REQUIRED_FOR_OUTPUT, + * the value COUNT_REQUIRED_FOR_OUTPUT is repeatedly subtracted until below the threshold. + */ +u32 g_speedGraphCountAccumulator = 0; + +/** + * 80023228. Stores max value of D_80048498 seen in speedGraphDisplay. Resets to zero once + * output is rendered. + */ +s32 g_speedGraphMaxSeenCount = 0; + +/** + * 8002322C. + */ s32 D_8002322C = 0; -s32 counterforframes = 0; + +/** + * 80023230. + */ +u32 g_speedGraphCounterForFrames = 0; + +/** + * 80023234. + */ s32 D_80023234 = 1; +// forward declarations +void speedGraphVideoRelated_2(void); -//GLOBAL_ASM( -/* .rodata*/ -const char aUtz2_0f[] = "utz %2.0f%%\n"; -const char aRsp2_0f[] = "rsp %2.0f%%\n"; -const char aTex2_0f[] = "tex %2.0f%%"; -const char a2dHz[] = "%2d hz"; -const char a2dFrames[] = "%2d frames"; -const char a2d[] = " [%2d]"; -const char asc_D_80028468[] = " "; -const char aIL0[] = "I=l0"; -//) +int sprintf(char *dst, const char *fmt, ...); +u32 *get_counters(void); +///// - -/** - * 3330 70002730 (DL generator) - */ -#ifdef NONMATCHING -void displaylist_related(void) +void speedGraphDisplayListRelated(void) { - void *temp_v0; - void *temp_v1; - void *phi_v1; - void *phi_v0; + s32 i; - gSPEndDisplayList(displaylist_0++); - displaylist_0.unk850 = 0xb800000000000000; //? is this not dlist2? - displaylist_bank = 0; - phi_v1 = &dword_CODE_bss_800607B0; - phi_v0 = &dword_CODE_bss_800607D0; -block_1: - temp_v0 = (phi_v0 + 4); - temp_v1 = (phi_v1 + 4); - temp_v1->unk-4 = 0; - temp_v0->unk-4 = 1; - phi_v1 = temp_v1; - phi_v0 = temp_v0; - if (temp_v0 != &dword_CODE_bss_800607DC) + gSPEndDisplayList(g_speedGraphDisplayList[0]); + gSPEndDisplayList(g_speedGraphDisplayList[1]); + g_speedGraphDisplayListBank = 0; + + for (i = 0; i < 3; i++) { - goto block_1; + dword_CODE_bss_800607B0[i] = 0; + dword_CODE_bss_800607D0[i] = 1; } - video_related_2(1, &dword_CODE_bss_800607DC, 0xb8000000); + + speedGraphVideoRelated_2(); } -#else -GLOBAL_ASM( -.text -glabel displaylist_related -/* 003330 70002730 3C048006 */ lui $a0, %hi(displaylist_0) -/* 003334 70002734 2484F400 */ addiu $a0, %lo(displaylist_0) # addiu $a0, $a0, -0xc00 -/* 003338 70002738 3C06B800 */ lui $a2, 0xb800 -/* 00333C 7000273C AC860000 */ sw $a2, ($a0) -/* 003340 70002740 AC800004 */ sw $zero, 4($a0) -/* 003344 70002744 AC860850 */ sw $a2, 0x850($a0) -/* 003348 70002748 AC800854 */ sw $zero, 0x854($a0) -/* 00334C 7000274C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 003350 70002750 3C018006 */ lui $at, %hi(displaylist_bank) -/* 003354 70002754 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) -/* 003358 70002758 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607D0) -/* 00335C 7000275C 3C058006 */ lui $a1, %hi(dword_CODE_bss_800607DC) -/* 003360 70002760 AFBF0014 */ sw $ra, 0x14($sp) -/* 003364 70002764 AC2004A0 */ sw $zero, %lo(displaylist_bank)($at) -/* 003368 70002768 24A507DC */ addiu $a1, %lo(dword_CODE_bss_800607DC) # addiu $a1, $a1, 0x7dc -/* 00336C 7000276C 244207D0 */ addiu $v0, %lo(dword_CODE_bss_800607D0) # addiu $v0, $v0, 0x7d0 -/* 003370 70002770 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 -/* 003374 70002774 24040001 */ li $a0, 1 -.L70002778: -/* 003378 70002778 24420004 */ addiu $v0, $v0, 4 -/* 00337C 7000277C 24630004 */ addiu $v1, $v1, 4 -/* 003380 70002780 AC60FFFC */ sw $zero, -4($v1) -/* 003384 70002784 1445FFFC */ bne $v0, $a1, .L70002778 -/* 003388 70002788 AC44FFFC */ sw $a0, -4($v0) -/* 00338C 7000278C 0C000A04 */ jal video_related_2 -/* 003390 70002790 00000000 */ nop -/* 003394 70002794 8FBF0014 */ lw $ra, 0x14($sp) -/* 003398 70002798 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00339C 7000279C 03E00008 */ jr $ra -/* 0033A0 700027A0 00000000 */ nop -) -#endif +void speedGraphVideoRelated_1(void) { + s32 i; + g_speedGraphCurrentOsCount = osGetCount(); -/** - * 33A4 700027A4 - */ -#ifdef NONMATCHING -void *video_related_1(void) + for (i = 0; i < 3; i++) + { + dword_CODE_bss_800607C0[i] = ((dword_CODE_bss_800607D0[i] + 31) % 32); + } +} + +void speedGraphVideoRelated_2(void) { + s32 i; + + g_speedGraphLastOsCount = g_speedGraphCurrentOsCount; + + for (i = 0; i < 3; i++) + { + dword_CODE_bss_800607B0[i] = dword_CODE_bss_800607C0[i]; + } +} + +void speedGraphVideoRelated_3(s32 arg0) { + s32 index; + s32 var2; + OSIntMask mask; + s32 index2; + unknown_s *pp; + + index = arg0 & 0xFFFF; + mask = osSetIntMask(0x00000001); + var2 = arg0 >> 16; + index2 = dword_CODE_bss_800607D0[index]; + + if (var2 == 3) + { + // set highest bit + var2 = dword_CODE_bss_8005F3F0[index] | 0x8000; + } + else if (var2 == 6) + { + // clear highest bit + var2 = dword_CODE_bss_8005F3F0[index] & 0x7FFF; + } + + pp = &dword_CODE_bss_800604B0[index][index2]; + pp->unk0 = var2; + pp->osCount = osGetCount(); + dword_CODE_bss_8005F3F0[index] = var2; + + index2++; + + if (index2 >= 32) + { + index2 = 0; + } + + dword_CODE_bss_800607D0[index] = index2; + + osSetIntMask(mask); +} + +Gfx *speedGraphDisplay(Gfx *gdl) { - void *temp_v1; - void *temp_a0; - s32 temp_t7; - s32 temp_t8; - void *phi_v1; - s32 phi_t8; - void *phi_a0; + u32 *counters; + u32 localCountAccumulator = g_speedGraphCountAccumulator; + s32 *pmaxSeenCount = &g_speedGraphMaxSeenCount; + char buffer[12]; + volatile u32 *pcountAccumulator = &g_speedGraphCountAccumulator; + + localCountAccumulator += D_80048498; - dword_CODE_bss_800604A8 = osGetCount(); - phi_v1 = &dword_CODE_bss_800607D0; - phi_a0 = &dword_CODE_bss_800607C0; -block_1: - temp_v1 = (phi_v1 + 4); - temp_a0 = (phi_a0 + 4); - temp_t7 = (*phi_v1 + 0x1f); - temp_t8 = (temp_t7 & 0x1f); - phi_t8 = temp_t8; - if (temp_t7 < 0) + if (*pmaxSeenCount < D_80048498) { - phi_t8 = temp_t8; - if (temp_t8 != 0) + *pmaxSeenCount = D_80048498; + } + + *pcountAccumulator = localCountAccumulator; + + if (localCountAccumulator > COUNT_REQUIRED_FOR_OUTPUT) + { + *pcountAccumulator = localCountAccumulator; + + if (localCountAccumulator > COUNT_REQUIRED_FOR_OUTPUT) { - phi_t8 = (temp_t8 + -0x20); - } - } - temp_a0->unk-4 = (s32) phi_t8; - phi_v1 = temp_v1; - phi_a0 = temp_a0; - if (temp_v1 != &dword_CODE_bss_800607DC) - { - goto block_1; - } - return &dword_CODE_bss_800607DC; -} -#else -GLOBAL_ASM( -.text -glabel video_related_1 -/* 0033A4 700027A4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0033A8 700027A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0033AC 700027AC 0C003638 */ jal osGetCount -/* 0033B0 700027B0 00000000 */ nop -/* 0033B4 700027B4 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A8) -/* 0033B8 700027B8 AC2204A8 */ sw $v0, %lo(dword_CODE_bss_800604A8)($at) -/* 0033BC 700027BC 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607DC) -/* 0033C0 700027C0 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) -/* 0033C4 700027C4 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607D0) -/* 0033C8 700027C8 246307D0 */ addiu $v1, %lo(dword_CODE_bss_800607D0) # addiu $v1, $v1, 0x7d0 -/* 0033CC 700027CC 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 -/* 0033D0 700027D0 244207DC */ addiu $v0, %lo(dword_CODE_bss_800607DC) # addiu $v0, $v0, 0x7dc -.L700027D4: -/* 0033D4 700027D4 8C6E0000 */ lw $t6, ($v1) -/* 0033D8 700027D8 24630004 */ addiu $v1, $v1, 4 -/* 0033DC 700027DC 24840004 */ addiu $a0, $a0, 4 -/* 0033E0 700027E0 25CF001F */ addiu $t7, $t6, 0x1f -/* 0033E4 700027E4 05E10004 */ bgez $t7, .L700027F8 -/* 0033E8 700027E8 31F8001F */ andi $t8, $t7, 0x1f -/* 0033EC 700027EC 13000002 */ beqz $t8, .L700027F8 -/* 0033F0 700027F0 00000000 */ nop -/* 0033F4 700027F4 2718FFE0 */ addiu $t8, $t8, -0x20 -.L700027F8: -/* 0033F8 700027F8 1462FFF6 */ bne $v1, $v0, .L700027D4 -/* 0033FC 700027FC AC98FFFC */ sw $t8, -4($a0) -/* 003400 70002800 8FBF0014 */ lw $ra, 0x14($sp) -/* 003404 70002804 27BD0018 */ addiu $sp, $sp, 0x18 -/* 003408 70002808 03E00008 */ jr $ra -/* 00340C 7000280C 00000000 */ nop -) -#endif - - -/** - * 3410 70002810 - */ -#ifdef NONMATCHING -void *video_related_2(void) -{ - void *temp_a0; - void *temp_v1; - void *phi_a0; - void *phi_v1; - - dword_CODE_bss_800604A4 = (?32) dword_CODE_bss_800604A8; - phi_a0 = &dword_CODE_bss_800607C0; - phi_v1 = &dword_CODE_bss_800607B0; -block_1: - temp_a0 = (phi_a0 + 4); - temp_v1 = (phi_v1 + 4); - temp_v1->unk-4 = (?32) *phi_a0; - phi_a0 = temp_a0; - phi_v1 = temp_v1; - if (temp_a0 != &dword_CODE_bss_800607CC) - { - goto block_1; - } - return &dword_CODE_bss_800607CC; -} -#else -GLOBAL_ASM( -.text -glabel video_related_2 -/* 003410 70002810 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800604A8) -/* 003414 70002814 8DCE04A8 */ lw $t6, %lo(dword_CODE_bss_800604A8)($t6) -/* 003418 70002818 3C018006 */ lui $at, %hi(dword_CODE_bss_800604A4) -/* 00341C 7000281C 3C038006 */ lui $v1, %hi(dword_CODE_bss_800607B0) -/* 003420 70002820 3C048006 */ lui $a0, %hi(dword_CODE_bss_800607C0) -/* 003424 70002824 3C028006 */ lui $v0, %hi(dword_CODE_bss_800607CC) -/* 003428 70002828 244207CC */ addiu $v0, %lo(dword_CODE_bss_800607CC) # addiu $v0, $v0, 0x7cc -/* 00342C 7000282C 248407C0 */ addiu $a0, %lo(dword_CODE_bss_800607C0) # addiu $a0, $a0, 0x7c0 -/* 003430 70002830 246307B0 */ addiu $v1, %lo(dword_CODE_bss_800607B0) # addiu $v1, $v1, 0x7b0 -/* 003434 70002834 AC2E04A4 */ sw $t6, %lo(dword_CODE_bss_800604A4)($at) -.L70002838: -/* 003438 70002838 8C8F0000 */ lw $t7, ($a0) -/* 00343C 7000283C 24840004 */ addiu $a0, $a0, 4 -/* 003440 70002840 24630004 */ addiu $v1, $v1, 4 -/* 003444 70002844 1482FFFC */ bne $a0, $v0, .L70002838 -/* 003448 70002848 AC6FFFFC */ sw $t7, -4($v1) -/* 00344C 7000284C 03E00008 */ jr $ra -/* 003450 70002850 00000000 */ nop -) -#endif - - -/** - * 3454 70002854 - */ -#ifdef NONMATCHING -void video_related_3(s32 arg0) -{ - s32 sp34; - void *sp2C; - void *sp24; - void *sp1C; - s32 temp_a3; - s32 temp_v1; - void *temp_t0; - s32 temp_a0; - void *temp_v0; - s32 temp_a1; - s32 phi_a2; - s32 phi_a1; - - temp_a3 = (arg0 & 0xffff); - temp_v1 = (temp_a3 * 4); - temp_t0 = (temp_v1 + &dword_CODE_bss_800607D0); - temp_a0 = (arg0 >> 0x10); - sp34 = osSetIntMask(1); - if (temp_a0 == 3) - { - phi_a2 = ((0x80060000 + temp_v1)->unk-C10 | 0x8000); - } - else - { - phi_a2 = temp_a0; - if (temp_a0 == 6) - { - phi_a2 = ((0x80060000 + temp_v1)->unk-C10 & 0x7fff); - } - } - temp_v0 = (((temp_a3 << 8) + (*temp_t0 * 8)) + &dword_CODE_bss_800604B0); - sp2C = temp_v0; - *temp_v0 = (s32) phi_a2; - sp24 = (void *) (temp_v1 + &dword_CODE_bss_8005F3F0); - sp1C = temp_t0; - sp2C->unk4 = osGetCount(temp_a0, *temp_t0, phi_a2, temp_a3); - temp_a1 = (sp30 + 1); - *sp24 = sp38; - phi_a1 = temp_a1; - if (temp_a1 >= 0x20) - { - phi_a1 = 0; - } - *temp_t0 = (s32) phi_a1; - osSetIntMask(sp34, phi_a1, sp38); -} -#else -GLOBAL_ASM( -.text -glabel video_related_3 -/* 003454 70002854 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 003458 70002858 AFBF0014 */ sw $ra, 0x14($sp) -/* 00345C 7000285C AFA40040 */ sw $a0, 0x40($sp) -/* 003460 70002860 0C00374C */ jal osSetIntMask -/* 003464 70002864 24040001 */ li $a0, 1 -/* 003468 70002868 8FA90040 */ lw $t1, 0x40($sp) -/* 00346C 7000286C 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_800607D0) -/* 003470 70002870 25CE07D0 */ addiu $t6, %lo(dword_CODE_bss_800607D0) # addiu $t6, $t6, 0x7d0 -/* 003474 70002874 3127FFFF */ andi $a3, $t1, 0xffff -/* 003478 70002878 00071880 */ sll $v1, $a3, 2 -/* 00347C 7000287C 006E4021 */ addu $t0, $v1, $t6 -/* 003480 70002880 24010003 */ li $at, 3 -/* 003484 70002884 00092403 */ sra $a0, $t1, 0x10 -/* 003488 70002888 AFA20034 */ sw $v0, 0x34($sp) -/* 00348C 7000288C 00803025 */ move $a2, $a0 -/* 003490 70002890 14810007 */ bne $a0, $at, .L700028B0 -/* 003494 70002894 8D050000 */ lw $a1, ($t0) -/* 003498 70002898 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) -/* 00349C 7000289C 00C33021 */ addu $a2, $a2, $v1 -/* 0034A0 700028A0 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) -/* 0034A4 700028A4 34CF8000 */ ori $t7, $a2, 0x8000 -/* 0034A8 700028A8 10000009 */ b .L700028D0 -/* 0034AC 700028AC 01E03025 */ move $a2, $t7 -.L700028B0: -/* 0034B0 700028B0 24010006 */ li $at, 6 -/* 0034B4 700028B4 54810007 */ bnel $a0, $at, .L700028D4 -/* 0034B8 700028B8 0007CA00 */ sll $t9, $a3, 8 -/* 0034BC 700028BC 3C068006 */ lui $a2, %hi(dword_CODE_bss_8005F3F0) -/* 0034C0 700028C0 00C33021 */ addu $a2, $a2, $v1 -/* 0034C4 700028C4 8CC6F3F0 */ lw $a2, %lo(dword_CODE_bss_8005F3F0)($a2) -/* 0034C8 700028C8 30D87FFF */ andi $t8, $a2, 0x7fff -/* 0034CC 700028CC 03003025 */ move $a2, $t8 -.L700028D0: -/* 0034D0 700028D0 0007CA00 */ sll $t9, $a3, 8 -.L700028D4: -/* 0034D4 700028D4 000550C0 */ sll $t2, $a1, 3 -/* 0034D8 700028D8 3C0C8006 */ lui $t4, %hi(dword_CODE_bss_800604B0) -/* 0034DC 700028DC 3C0D8006 */ lui $t5, %hi(dword_CODE_bss_8005F3F0) -/* 0034E0 700028E0 258C04B0 */ addiu $t4, %lo(dword_CODE_bss_800604B0) # addiu $t4, $t4, 0x4b0 -/* 0034E4 700028E4 032A5821 */ addu $t3, $t9, $t2 -/* 0034E8 700028E8 25ADF3F0 */ addiu $t5, %lo(dword_CODE_bss_8005F3F0) # addiu $t5, $t5, -0xc10 -/* 0034EC 700028EC 016C1021 */ addu $v0, $t3, $t4 -/* 0034F0 700028F0 006D7021 */ addu $t6, $v1, $t5 -/* 0034F4 700028F4 AFA2002C */ sw $v0, 0x2c($sp) -/* 0034F8 700028F8 AC460000 */ sw $a2, ($v0) -/* 0034FC 700028FC AFAE0024 */ sw $t6, 0x24($sp) -/* 003500 70002900 AFA50030 */ sw $a1, 0x30($sp) -/* 003504 70002904 AFA60038 */ sw $a2, 0x38($sp) -/* 003508 70002908 0C003638 */ jal osGetCount -/* 00350C 7000290C AFA8001C */ sw $t0, 0x1c($sp) -/* 003510 70002910 8FAF002C */ lw $t7, 0x2c($sp) -/* 003514 70002914 8FA50030 */ lw $a1, 0x30($sp) -/* 003518 70002918 8FA60038 */ lw $a2, 0x38($sp) -/* 00351C 7000291C 8FA8001C */ lw $t0, 0x1c($sp) -/* 003520 70002920 ADE20004 */ sw $v0, 4($t7) -/* 003524 70002924 8FB80024 */ lw $t8, 0x24($sp) -/* 003528 70002928 24A50001 */ addiu $a1, $a1, 1 -/* 00352C 7000292C 28A10020 */ slti $at, $a1, 0x20 -/* 003530 70002930 14200002 */ bnez $at, .L7000293C -/* 003534 70002934 AF060000 */ sw $a2, ($t8) -/* 003538 70002938 00002825 */ move $a1, $zero -.L7000293C: -/* 00353C 7000293C AD050000 */ sw $a1, ($t0) -/* 003540 70002940 0C00374C */ jal osSetIntMask -/* 003544 70002944 8FA40034 */ lw $a0, 0x34($sp) -/* 003548 70002948 8FBF0014 */ lw $ra, 0x14($sp) -/* 00354C 7000294C 27BD0040 */ addiu $sp, $sp, 0x40 -/* 003550 70002950 03E00008 */ jr $ra -/* 003554 70002954 00000000 */ nop -) -#endif - - -/** - * 3558 70002958 draw "display speed" display - * accepts: A0=p->display list - */ -#ifdef NONMATCHING -void display_speed_graph(void) { - -} -#else -GLOBAL_ASM( -.text -glabel display_speed_graph -/* 003558 70002958 3C038005 */ lui $v1, %hi(D_80048498) -/* 00355C 7000295C 3C0E8002 */ lui $t6, %hi(D_80023228) -/* 003560 70002960 8C638498 */ lw $v1, %lo(D_80048498)($v1) -/* 003564 70002964 8DCE3228 */ lw $t6, %lo(D_80023228)($t6) -/* 003568 70002968 3C028002 */ lui $v0, %hi(D_80023224) -/* 00356C 7000296C 8C423224 */ lw $v0, %lo(D_80023224)($v0) -/* 003570 70002970 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 003574 70002974 01C3082A */ slt $at, $t6, $v1 -/* 003578 70002978 AFBF001C */ sw $ra, 0x1c($sp) -/* 00357C 7000297C AFB00018 */ sw $s0, 0x18($sp) -/* 003580 70002980 10200003 */ beqz $at, .L70002990 -/* 003584 70002984 00431021 */ addu $v0, $v0, $v1 -/* 003588 70002988 3C018002 */ lui $at, %hi(D_80023228) -/* 00358C 7000298C AC233228 */ sw $v1, %lo(D_80023228)($at) -.L70002990: -/* 003590 70002990 3C018002 */ lui $at, %hi(D_80023224) -/* 003594 70002994 AC223224 */ sw $v0, %lo(D_80023224)($at) -/* 003598 70002998 2C410015 */ sltiu $at, $v0, 0x15 -/* 00359C 7000299C 142000BB */ bnez $at, .L70002C8C -/* 0035A0 700029A0 3C018002 */ lui $at, %hi(D_80023224) -/* 0035A4 700029A4 AC223224 */ sw $v0, %lo(D_80023224)($at) -/* 0035A8 700029A8 2C410015 */ sltiu $at, $v0, 0x15 -/* 0035AC 700029AC 14200006 */ bnez $at, .L700029C8 -/* 0035B0 700029B0 2442FFEC */ addiu $v0, $v0, -0x14 -.L700029B4: -/* 0035B4 700029B4 2C410015 */ sltiu $at, $v0, 0x15 -/* 0035B8 700029B8 5020FFFE */ beql $at, $zero, .L700029B4 -/* 0035BC 700029BC 2442FFEC */ addiu $v0, $v0, -0x14 -/* 0035C0 700029C0 3C018002 */ lui $at, %hi(D_80023224) -/* 0035C4 700029C4 AC223224 */ sw $v0, %lo(D_80023224)($at) -.L700029C8: -/* 0035C8 700029C8 0C000447 */ jal get_counters -/* 0035CC 700029CC AFA40048 */ sw $a0, 0x48($sp) -/* 0035D0 700029D0 AFA20044 */ sw $v0, 0x44($sp) -/* 0035D4 700029D4 240400FF */ li $a0, 255 -/* 0035D8 700029D8 240500FF */ li $a1, 255 -/* 0035DC 700029DC 240600FF */ li $a2, 255 -/* 0035E0 700029E0 0C002C1B */ jal set_debug_text_color -/* 0035E4 700029E4 240700FF */ li $a3, 255 -/* 0035E8 700029E8 00002025 */ move $a0, $zero -/* 0035EC 700029EC 00002825 */ move $a1, $zero -/* 0035F0 700029F0 00003025 */ move $a2, $zero -/* 0035F4 700029F4 0C002C26 */ jal set_color_speedgraph -/* 0035F8 700029F8 240700FF */ li $a3, 255 -/* 0035FC 700029FC 24040008 */ li $a0, 8 -/* 003600 70002A00 0C002C10 */ jal set_final_debug_text_positions -/* 003604 70002A04 24050005 */ li $a1, 5 -/* 003608 70002A08 8FA20044 */ lw $v0, 0x44($sp) -/* 00360C 70002A0C 27B00030 */ addiu $s0, $sp, 0x30 -/* 003610 70002A10 3C058003 */ lui $a1, %hi(aUtz2_0f) -/* 003614 70002A14 8C4F0004 */ lw $t7, 4($v0) -/* 003618 70002A18 8C58000C */ lw $t8, 0xc($v0) -/* 00361C 70002A1C 24A58420 */ addiu $a1, %lo(aUtz2_0f) # addiu $a1, $a1, -0x7be0 -/* 003620 70002A20 02002025 */ move $a0, $s0 -/* 003624 70002A24 01F8C823 */ subu $t9, $t7, $t8 -/* 003628 70002A28 44992000 */ mtc1 $t9, $f4 -/* 00362C 70002A2C 07210005 */ bgez $t9, .L70002A44 -/* 003630 70002A30 468021A0 */ cvt.s.w $f6, $f4 -/* 003634 70002A34 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 003638 70002A38 44814000 */ mtc1 $at, $f8 -/* 00363C 70002A3C 00000000 */ nop -/* 003640 70002A40 46083180 */ add.s $f6, $f6, $f8 -.L70002A44: -/* 003644 70002A44 8C480000 */ lw $t0, ($v0) -/* 003648 70002A48 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 00364C 70002A4C 44815000 */ mtc1 $at, $f10 -/* 003650 70002A50 44889000 */ mtc1 $t0, $f18 -/* 003654 70002A54 460A3402 */ mul.s $f16, $f6, $f10 -/* 003658 70002A58 05010005 */ bgez $t0, .L70002A70 -/* 00365C 70002A5C 46809120 */ cvt.s.w $f4, $f18 -/* 003660 70002A60 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 003664 70002A64 44814000 */ mtc1 $at, $f8 -/* 003668 70002A68 00000000 */ nop -/* 00366C 70002A6C 46082100 */ add.s $f4, $f4, $f8 -.L70002A70: -/* 003670 70002A70 46048183 */ div.s $f6, $f16, $f4 -/* 003674 70002A74 460032A1 */ cvt.d.s $f10, $f6 -/* 003678 70002A78 44075000 */ mfc1 $a3, $f10 -/* 00367C 70002A7C 44065800 */ mfc1 $a2, $f11 -/* 003680 70002A80 0C002B25 */ jal sprintf -/* 003684 70002A84 00000000 */ nop -/* 003688 70002A88 0C002C7A */ jal write_string_stdout -/* 00368C 70002A8C 02002025 */ move $a0, $s0 -/* 003690 70002A90 24040008 */ li $a0, 8 -/* 003694 70002A94 0C002C10 */ jal set_final_debug_text_positions -/* 003698 70002A98 24050006 */ li $a1, 6 -/* 00369C 70002A9C 8FA30044 */ lw $v1, 0x44($sp) -/* 0036A0 70002AA0 3C058003 */ lui $a1, %hi(aRsp2_0f) -/* 0036A4 70002AA4 24A58430 */ addiu $a1, %lo(aRsp2_0f) # addiu $a1, $a1, -0x7bd0 -/* 0036A8 70002AA8 8C620000 */ lw $v0, ($v1) -/* 0036AC 70002AAC 8C690004 */ lw $t1, 4($v1) -/* 0036B0 70002AB0 02002025 */ move $a0, $s0 -/* 0036B4 70002AB4 44825000 */ mtc1 $v0, $f10 -/* 0036B8 70002AB8 00495023 */ subu $t2, $v0, $t1 -/* 0036BC 70002ABC 448A9000 */ mtc1 $t2, $f18 -/* 0036C0 70002AC0 05410005 */ bgez $t2, .L70002AD8 -/* 0036C4 70002AC4 46809220 */ cvt.s.w $f8, $f18 -/* 0036C8 70002AC8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0036CC 70002ACC 44818000 */ mtc1 $at, $f16 -/* 0036D0 70002AD0 00000000 */ nop -/* 0036D4 70002AD4 46104200 */ add.s $f8, $f8, $f16 -.L70002AD8: -/* 0036D8 70002AD8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0036DC 70002ADC 44812000 */ mtc1 $at, $f4 -/* 0036E0 70002AE0 468054A0 */ cvt.s.w $f18, $f10 -/* 0036E4 70002AE4 46044182 */ mul.s $f6, $f8, $f4 -/* 0036E8 70002AE8 04410004 */ bgez $v0, .L70002AFC -/* 0036EC 70002AEC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0036F0 70002AF0 44818000 */ mtc1 $at, $f16 -/* 0036F4 70002AF4 00000000 */ nop -/* 0036F8 70002AF8 46109480 */ add.s $f18, $f18, $f16 -.L70002AFC: -/* 0036FC 70002AFC 46123203 */ div.s $f8, $f6, $f18 -/* 003700 70002B00 46004121 */ cvt.d.s $f4, $f8 -/* 003704 70002B04 44072000 */ mfc1 $a3, $f4 -/* 003708 70002B08 44062800 */ mfc1 $a2, $f5 -/* 00370C 70002B0C 0C002B25 */ jal sprintf -/* 003710 70002B10 00000000 */ nop -/* 003714 70002B14 0C002C7A */ jal write_string_stdout -/* 003718 70002B18 02002025 */ move $a0, $s0 -/* 00371C 70002B1C 24040008 */ li $a0, 8 -/* 003720 70002B20 0C002C10 */ jal set_final_debug_text_positions -/* 003724 70002B24 24050007 */ li $a1, 7 -/* 003728 70002B28 8FAB0044 */ lw $t3, 0x44($sp) -/* 00372C 70002B2C 3C058003 */ lui $a1, %hi(aTex2_0f) -/* 003730 70002B30 24A58440 */ addiu $a1, %lo(aTex2_0f) # addiu $a1, $a1, -0x7bc0 -/* 003734 70002B34 8D6C000C */ lw $t4, 0xc($t3) -/* 003738 70002B38 02002025 */ move $a0, $s0 -/* 00373C 70002B3C 448C5000 */ mtc1 $t4, $f10 -/* 003740 70002B40 05810005 */ bgez $t4, .L70002B58 -/* 003744 70002B44 46805420 */ cvt.s.w $f16, $f10 -/* 003748 70002B48 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 00374C 70002B4C 44813000 */ mtc1 $at, $f6 -/* 003750 70002B50 00000000 */ nop -/* 003754 70002B54 46068400 */ add.s $f16, $f16, $f6 -.L70002B58: -/* 003758 70002B58 8D6D0000 */ lw $t5, ($t3) -/* 00375C 70002B5C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 003760 70002B60 44819000 */ mtc1 $at, $f18 -/* 003764 70002B64 448D2000 */ mtc1 $t5, $f4 -/* 003768 70002B68 46128202 */ mul.s $f8, $f16, $f18 -/* 00376C 70002B6C 05A10005 */ bgez $t5, .L70002B84 -/* 003770 70002B70 468022A0 */ cvt.s.w $f10, $f4 -/* 003774 70002B74 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 003778 70002B78 44813000 */ mtc1 $at, $f6 -/* 00377C 70002B7C 00000000 */ nop -/* 003780 70002B80 46065280 */ add.s $f10, $f10, $f6 -.L70002B84: -/* 003784 70002B84 460A4403 */ div.s $f16, $f8, $f10 -/* 003788 70002B88 460084A1 */ cvt.d.s $f18, $f16 -/* 00378C 70002B8C 44079000 */ mfc1 $a3, $f18 -/* 003790 70002B90 44069800 */ mfc1 $a2, $f19 -/* 003794 70002B94 0C002B25 */ jal sprintf -/* 003798 70002B98 00000000 */ nop -/* 00379C 70002B9C 0C002C7A */ jal write_string_stdout -/* 0037A0 70002BA0 02002025 */ move $a0, $s0 -/* 0037A4 70002BA4 2404001C */ li $a0, 28 -/* 0037A8 70002BA8 0C002C10 */ jal set_final_debug_text_positions -/* 0037AC 70002BAC 24050005 */ li $a1, 5 -/* 0037B0 70002BB0 3C038005 */ lui $v1, %hi(D_80048498) -/* 0037B4 70002BB4 8C638498 */ lw $v1, %lo(D_80048498)($v1) -/* 0037B8 70002BB8 02002025 */ move $a0, $s0 -/* 0037BC 70002BBC 3C058003 */ lui $a1, %hi(a2dHz) -/* 0037C0 70002BC0 14600003 */ bnez $v1, .L70002BD0 -/* 0037C4 70002BC4 240E003C */ li $t6, 60 -/* 0037C8 70002BC8 1000000C */ b .L70002BFC -/* 0037CC 70002BCC 00003025 */ move $a2, $zero -.L70002BD0: -/* 0037D0 70002BD0 01C3001A */ div $zero, $t6, $v1 -/* 0037D4 70002BD4 00003012 */ mflo $a2 -/* 0037D8 70002BD8 14600002 */ bnez $v1, .L70002BE4 -/* 0037DC 70002BDC 00000000 */ nop -/* 0037E0 70002BE0 0007000D */ break 7 -.L70002BE4: -/* 0037E4 70002BE4 2401FFFF */ li $at, -1 -/* 0037E8 70002BE8 14610004 */ bne $v1, $at, .L70002BFC -/* 0037EC 70002BEC 3C018000 */ lui $at, 0x8000 -/* 0037F0 70002BF0 15C10002 */ bne $t6, $at, .L70002BFC -/* 0037F4 70002BF4 00000000 */ nop -/* 0037F8 70002BF8 0006000D */ break 6 -.L70002BFC: -/* 0037FC 70002BFC 0C002B25 */ jal sprintf -/* 003800 70002C00 24A5844C */ addiu $a1, %lo(a2dHz) # addiu $a1, $a1, -0x7bb4 -/* 003804 70002C04 0C002C7A */ jal write_string_stdout -/* 003808 70002C08 02002025 */ move $a0, $s0 -/* 00380C 70002C0C 2404001C */ li $a0, 28 -/* 003810 70002C10 0C002C10 */ jal set_final_debug_text_positions -/* 003814 70002C14 24050006 */ li $a1, 6 -/* 003818 70002C18 3C058003 */ lui $a1, %hi(a2dFrames) -/* 00381C 70002C1C 3C068005 */ lui $a2, %hi(D_80048498) -/* 003820 70002C20 8CC68498 */ lw $a2, %lo(D_80048498)($a2) -/* 003824 70002C24 24A58454 */ addiu $a1, %lo(a2dFrames) # addiu $a1, $a1, -0x7bac -/* 003828 70002C28 0C002B25 */ jal sprintf -/* 00382C 70002C2C 02002025 */ move $a0, $s0 -/* 003830 70002C30 0C002C7A */ jal write_string_stdout -/* 003834 70002C34 02002025 */ move $a0, $s0 -/* 003838 70002C38 3C0F8002 */ lui $t7, %hi(D_80023228) -/* 00383C 70002C3C 3C188005 */ lui $t8, %hi(D_80048498) -/* 003840 70002C40 8F188498 */ lw $t8, %lo(D_80048498)($t8) -/* 003844 70002C44 8DEF3228 */ lw $t7, %lo(D_80023228)($t7) -/* 003848 70002C48 02002025 */ move $a0, $s0 -/* 00384C 70002C4C 3C058003 */ lui $a1, %hi(asc_D_80028468) -/* 003850 70002C50 11F80007 */ beq $t7, $t8, .L70002C70 -/* 003854 70002C54 01E03025 */ move $a2, $t7 -/* 003858 70002C58 3C058003 */ lui $a1, %hi(a2d) -/* 00385C 70002C5C 24A58460 */ addiu $a1, %lo(a2d) # addiu $a1, $a1, -0x7ba0 -/* 003860 70002C60 0C002B25 */ jal sprintf -/* 003864 70002C64 02002025 */ move $a0, $s0 -/* 003868 70002C68 10000003 */ b .L70002C78 -/* 00386C 70002C6C 00000000 */ nop -.L70002C70: -/* 003870 70002C70 0C002B25 */ jal sprintf -/* 003874 70002C74 24A58468 */ addiu $a1, $a1, %lo(asc_D_80028468) -.L70002C78: -/* 003878 70002C78 0C002C7A */ jal write_string_stdout -/* 00387C 70002C7C 02002025 */ move $a0, $s0 -/* 003880 70002C80 3C018002 */ lui $at, %hi(D_80023228) -/* 003884 70002C84 AC203228 */ sw $zero, %lo(D_80023228)($at) -/* 003888 70002C88 8FA40048 */ lw $a0, 0x48($sp) -.L70002C8C: -/* 00388C 70002C8C 3C190600 */ lui $t9, 0x600 -/* 003890 70002C90 AC990000 */ sw $t9, ($a0) -/* 003894 70002C94 3C088006 */ lui $t0, %hi(displaylist_bank) -/* 003898 70002C98 8D0804A0 */ lw $t0, %lo(displaylist_bank)($t0) -/* 00389C 70002C9C 3C0C8006 */ lui $t4, %hi(displaylist_0) -/* 0038A0 70002CA0 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 -/* 0038A4 70002CA4 39090001 */ xori $t1, $t0, 1 -/* 0038A8 70002CA8 00095140 */ sll $t2, $t1, 5 -/* 0038AC 70002CAC 01495021 */ addu $t2, $t2, $t1 -/* 0038B0 70002CB0 000A5080 */ sll $t2, $t2, 2 -/* 0038B4 70002CB4 01495021 */ addu $t2, $t2, $t1 -/* 0038B8 70002CB8 000A5100 */ sll $t2, $t2, 4 -/* 0038BC 70002CBC 014C5821 */ addu $t3, $t2, $t4 -/* 0038C0 70002CC0 AC8B0004 */ sw $t3, 4($a0) -/* 0038C4 70002CC4 8FBF001C */ lw $ra, 0x1c($sp) -/* 0038C8 70002CC8 8FB00018 */ lw $s0, 0x18($sp) -/* 0038CC 70002CCC 24820008 */ addiu $v0, $a0, 8 -/* 0038D0 70002CD0 03E00008 */ jr $ra -/* 0038D4 70002CD4 27BD0048 */ addiu $sp, $sp, 0x48 -) -#endif - - -/** - * 38D8 70002CD8 - */ -#ifdef NONMATCHING -u32 video_DL_related_4(void) -{ - s32 spC8; - ? spB8; - ? spAC; - ? spA0; - s32 sp80; - void *sp70; - u32 temp_v0; - u32 temp_s4; - u32 temp_s5; - void *temp_s4_2; - void *temp_s5_2; - void *temp_v0_2; - void *temp_t0; - f32 temp_f12; - s32 temp_s3; - s32 temp_s1; - s32 temp_t9; - s32 temp_t3; - u32 temp_ret; - u32 phi_s4; - u32 phi_s5; - s32 phi_s1; - u32 phi_v1; - s32 phi_a1; - void *phi_s3; - void *phi_v0; - s32 phi_s2; - s32 phi_t9; - s32 phi_a1_2; - s32 phi_a1_3; - void *phi_s3_2; - u32 phi_return; - void *phi_s3_3; - void *phi_s3_4; - s32 phi_s3_5; - - temp_v0 = (counterforframes + D_80048498); - counterforframes = temp_v0; - if (temp_v0 >= 0xc9U) - { - D_80023234 = (s32) (D_80023234 ^ 1); - counterforframes = (u32) (temp_v0 + -0xc8); - } - D_8002322C = (s32) (D_8002322C + 1); - phi_return = temp_v0; - if (D_80023234 != (D_8002322C & 1)) - { - phi_s4 = &spAC; -block_4: - temp_s4 = (phi_s4 + 4); - temp_s4->unk-4 = 0; - phi_s4 = temp_s4; - if (temp_s4 < &spB8) - { - goto block_4; - } - phi_s5 = &spA0; -block_6: - temp_s5 = (phi_s5 + 4); - temp_s5->unk-4 = (u32) dword_CODE_bss_800604A4; - phi_s5 = temp_s5; - if (temp_s5 < &spAC) - { - goto block_6; - } - sp70 = &dword_CODE_bss_800607B0; - spC8 = 0; - sp80 = 0; - phi_s3_4 = sub_GAME_7F0D1AC0(((displaylist_bank * 0x850) + &displaylist_0)); -block_8: - temp_s4_2 = (sp80 + &spAC); - phi_a1_3 = subroutine_arg0; - phi_s3_2 = phi_s3_4; - if (*sp70 != subroutine_arg0) - { - temp_s5_2 = (sp80 + &spA0); - phi_s1 = *sp70; - phi_a1 = subroutine_arg0; - phi_s3 = phi_s3_4; -block_10: - temp_v0_2 = (((spC8 << 8) + &dword_CODE_bss_800604B0) + (phi_s1 * 8)); - phi_s2 = *temp_v0_2; - if ((*temp_v0_2 & 0x8000) != 0) + do { - phi_s2 = 3; + localCountAccumulator -= COUNT_REQUIRED_FOR_OUTPUT; } - phi_v1 = *temp_s5_2; - if ((u32) *temp_s5_2 < (u32) dword_CODE_bss_800604A4) - { - phi_v1 = dword_CODE_bss_800604A4; - } - phi_a1_2 = phi_a1; - phi_s3_3 = phi_s3; - if ((u32) temp_v0_2->unk4 >= (u32) dword_CODE_bss_800604A4) - { - phi_a1_2 = phi_a1; - phi_s3_3 = phi_s3; - if ((u32) temp_v0_2->unk4 >= (u32) phi_v1) - { - if (1 != *temp_s4_2) - { - if (*temp_s4_2 != 3) - { - if ((*temp_s4_2 & 0x8000) == 0) - { - if ((temp_v0_2->unk4 - phi_v1) < 0) - { + while (localCountAccumulator > COUNT_REQUIRED_FOR_OUTPUT); - } - } + *pcountAccumulator = localCountAccumulator; + } + + counters = get_counters(); + + debmenuSetPrimColor(255, 255, 255, 255); + debmenuSetEnvColor(0, 0, 0, 255); + + // utz % + debmenuSetPosition(8, 5); + sprintf(buffer, "utz %2.0f%%\n", (((counters[1] - counters[3]) * 100.0f) / counters[0])); + debmenuWriteString(buffer); + + // rsp % + debmenuSetPosition(8, 6); + sprintf(buffer, "rsp %2.0f%%\n", (((counters[0] - counters[1]) * 100.0f) / counters[0])); + debmenuWriteString(buffer); + + // tex % + debmenuSetPosition(8, 7); + sprintf(buffer, "tex %2.0f%%", ((counters[3] * 100.0f) / counters[0])); + debmenuWriteString(buffer); + + // hz (60 / framerate) + // -- or 50 for PAL + debmenuSetPosition(28, 5); + sprintf(buffer, "%2d hz", ((D_80048498 == 0) ? 0 : (VICLOCK / D_80048498))); + debmenuWriteString(buffer); + + // framerate + debmenuSetPosition(28, 6); + sprintf(buffer, "%2d frames", D_80048498); + debmenuWriteString(buffer); + + // (continues framerate output) + if (D_80048498 != g_speedGraphMaxSeenCount) + { + sprintf(buffer, " [%2d]", *pmaxSeenCount); + } + else + { + sprintf(buffer, " "); + } + + debmenuWriteString(buffer); + + g_speedGraphMaxSeenCount = 0; + } + + gSPDisplayList(gdl++, g_speedGraphDisplayList[g_speedGraphDisplayListBank ^ 1]); + + return gdl; +} + +#ifdef NONMATCHING +Gfx *sub_GAME_7F0D1AC0(Gfx *gdl); +void sub_GAME_7F0D1DCC(f32 arg0); +Gfx *sub_GAME_7F0D1BD0(Gfx *gdl, f32 arg1, s32 r, s32 g, s32 b, s32 arg5, s32 arg6); +void sub_GAME_7F0D2320(void); +Gfx *sub_GAME_7F0D1E98(Gfx *gdl, s32 r, s32 g, s32 b); +void video_DL_related_4(void) { + g_speedGraphCounterForFrames += D_80048498; + if (g_speedGraphCounterForFrames > 200) { + g_speedGraphCounterForFrames -= 200; + D_80023234 ^= 1; + } + if (D_80023234 != (D_8002322C++ & 1)) { + s32 spAC[3]; + s32 spA0[3]; + Gfx *gdl = sub_GAME_7F0D1AC0(g_speedGraphDisplayList[g_speedGraphDisplayListBank]); + s32 i; + for (i = 0; i < 3; i++) { + spAC[i] = 0; + } + for (i = 0; i < 3; i++) { + spA0[i] = g_speedGraphLastOsCount; + } + for (i = 0; i < 3; i++) { + s32 var1 = dword_CODE_bss_800607B0[i]; + while (var1 != dword_CODE_bss_800607D0[i]) { + s32 phi_v1; + s32 phi_s2 = dword_CODE_bss_800604B0[i][var1].unk0; + if (phi_s2 & 0x8000) { + phi_s2 = 3; + } + phi_v1 = spA0[i]; + if (spA0[i] < g_speedGraphLastOsCount) { + phi_v1 = g_speedGraphLastOsCount; + } + if (dword_CODE_bss_800604B0[i][var1].osCount >= g_speedGraphLastOsCount) { + if (dword_CODE_bss_800604B0[i][var1].osCount >= phi_v1) { + f32 temp_f12; + if ((spAC[i] != 1) && (spAC[i] != 3) && ((spAC[i] & 0x8000) == 0)) { + temp_f12 = (dword_CODE_bss_800604B0[i][var1].osCount - phi_v1) / 775875.0f; } + if (spAC[i] == 1) { + sub_GAME_7F0D1DCC(temp_f12); + } else { + s_800231D4 *temp = &D_800231D4[spAC[i]]; + sub_GAME_7F0D1BD0(gdl++, temp_f12, ((temp->color >> 0x18) & 0xFF), ((temp->color >> 0x10) & 0xFF), ((temp->color >> 0x8) & 0xFF), temp->unk8, temp->unkC); + } + gDPPipeSync(gdl++); } - temp_t0 = ((*temp_s4_2 * 0x10) + &D_800231D4+4); - temp_f12 = ((f32) (u32) (temp_v0_2->unk4 - phi_v1) / aIL0); - if (1 == *temp_s4_2) - { - sub_GAME_7F0D1DCC(temp_f12, dword_CODE_bss_800604A4, phi_a1); - phi_v0 = phi_s3; - phi_s3_5 = (s32) phi_s3; - } - else - { - temp_s3 = sub_GAME_7F0D1BD0(temp_f12, phi_s3, temp_f12, (((s32) temp_t0->unk4 >> 0x18) & 0xff), (((s32) temp_t0->unk4 >> 0x10) & 0xff), (s32) (((s32) temp_t0->unk4 >> 8) & 0xff), (?32) temp_t0->unk8, (?32) temp_t0->unkC); - phi_v0 = temp_s3; - phi_s3_5 = temp_s3; - } - *phi_v0 = 0xe7000000; - phi_v0->unk4 = 0; - phi_a1_2 = subroutine_arg0; - phi_s3_3 = (phi_s3_5 + 8); } + spAC[i] = phi_s2; + spA0[i] = dword_CODE_bss_800604B0[i][var1].osCount; + var1 = ((var1 + 1) % 32); } - temp_s1 = (phi_s1 + 1); - *temp_s4_2 = (s32) phi_s2; - *temp_s5_2 = (u32) temp_v0_2->unk4; - temp_t9 = (temp_s1 & 0x1f); - phi_t9 = temp_t9; - if (temp_s1 < 0) - { - phi_t9 = temp_t9; - if (temp_t9 != 0) - { - phi_t9 = (temp_t9 + -0x20); - } - } - phi_s1 = phi_t9; - phi_a1 = phi_a1_2; - phi_s3 = phi_s3_3; - phi_a1_3 = phi_a1_2; - phi_s3_2 = phi_s3_3; - if (phi_t9 != phi_a1_2) - { - goto block_10; + if (i < 2) { + sub_GAME_7F0D2320(); } } - if (spC8 < 2) - { - sub_GAME_7F0D2320(phi_a1_3); - } - temp_t3 = (spC8 + 1); - sp70 = (void *) (sp70 + 4); - sp80 = (s32) (sp80 + 4); - spC8 = temp_t3; - phi_s3_4 = phi_s3_2; - if (temp_t3 != 3) - { - goto block_8; - } - temp_ret = sub_GAME_7F0D1E98(phi_s3_2, 0, 0, 0); - *temp_ret = 0xe7000000; - temp_ret->unk4 = 0; - temp_ret->unk8 = 0xb8000000; - temp_ret->unkC = 0; - displaylist_bank = (s32) (displaylist_bank ^ 1); - phi_return = temp_ret; + gdl = sub_GAME_7F0D1E98(gdl++, 0, 0, 0); + gDPPipeSync(gdl++); + gSPEndDisplayList(gdl); + g_speedGraphDisplayListBank ^= 1; } - return phi_return; } #else GLOBAL_ASM( +.late_rodata +glabel aIL0 +/* "I=l0"; // 775875.0f */ +.word 0x493d6c30 +.word 0 .text glabel video_DL_related_4 /* 0038D8 70002CD8 27BDFF30 */ addiu $sp, $sp, -0xd0 -/* 0038DC 70002CDC 3C028002 */ lui $v0, %hi(counterforframes) +/* 0038DC 70002CDC 3C028002 */ lui $v0, %hi(g_speedGraphCounterForFrames) /* 0038E0 70002CE0 3C0E8005 */ lui $t6, %hi(D_80048498) -/* 0038E4 70002CE4 8C423230 */ lw $v0, %lo(counterforframes)($v0) +/* 0038E4 70002CE4 8C423230 */ lw $v0, %lo(g_speedGraphCounterForFrames)($v0) /* 0038E8 70002CE8 8DCE8498 */ lw $t6, %lo(D_80048498)($t6) -/* 0038EC 70002CEC 3C018002 */ lui $at, %hi(counterforframes) +/* 0038EC 70002CEC 3C018002 */ lui $at, %hi(g_speedGraphCounterForFrames) /* 0038F0 70002CF0 AFBF005C */ sw $ra, 0x5c($sp) /* 0038F4 70002CF4 004E1021 */ addu $v0, $v0, $t6 -/* 0038F8 70002CF8 AC223230 */ sw $v0, %lo(counterforframes)($at) +/* 0038F8 70002CF8 AC223230 */ sw $v0, %lo(g_speedGraphCounterForFrames)($at) /* 0038FC 70002CFC 2C4100C9 */ sltiu $at, $v0, 0xc9 /* 003900 70002D00 AFBE0058 */ sw $fp, 0x58($sp) /* 003904 70002D04 AFB70054 */ sw $s7, 0x54($sp) @@ -901,8 +350,8 @@ glabel video_DL_related_4 /* 00393C 70002D3C 2442FF38 */ addiu $v0, $v0, -0xc8 /* 003940 70002D40 39F80001 */ xori $t8, $t7, 1 /* 003944 70002D44 AC383234 */ sw $t8, %lo(D_80023234)($at) -/* 003948 70002D48 3C018002 */ lui $at, %hi(counterforframes) -/* 00394C 70002D4C AC223230 */ sw $v0, %lo(counterforframes)($at) +/* 003948 70002D48 3C018002 */ lui $at, %hi(g_speedGraphCounterForFrames) +/* 00394C 70002D4C AC223230 */ sw $v0, %lo(g_speedGraphCounterForFrames)($at) .L70002D50: /* 003950 70002D50 3C038002 */ lui $v1, %hi(D_8002322C) /* 003954 70002D54 8C63322C */ lw $v1, %lo(D_8002322C)($v1) @@ -913,10 +362,10 @@ glabel video_DL_related_4 /* 003968 70002D68 24630001 */ addiu $v1, $v1, 1 /* 00396C 70002D6C 132900AD */ beq $t9, $t1, .L70003024 /* 003970 70002D70 AC23322C */ sw $v1, %lo(D_8002322C)($at) -/* 003974 70002D74 3C0A8006 */ lui $t2, %hi(displaylist_bank) -/* 003978 70002D78 8D4A04A0 */ lw $t2, %lo(displaylist_bank)($t2) -/* 00397C 70002D7C 3C0C8006 */ lui $t4, %hi(displaylist_0) -/* 003980 70002D80 258CF400 */ addiu $t4, %lo(displaylist_0) # addiu $t4, $t4, -0xc00 +/* 003974 70002D74 3C0A8006 */ lui $t2, %hi(g_speedGraphDisplayListBank) +/* 003978 70002D78 8D4A04A0 */ lw $t2, %lo(g_speedGraphDisplayListBank)($t2) +/* 00397C 70002D7C 3C0C8006 */ lui $t4, %hi(g_speedGraphDisplayList) +/* 003980 70002D80 258CF400 */ addiu $t4, %lo(g_speedGraphDisplayList) # addiu $t4, $t4, -0xc00 /* 003984 70002D84 000A5940 */ sll $t3, $t2, 5 /* 003988 70002D88 016A5821 */ addu $t3, $t3, $t2 /* 00398C 70002D8C 000B5880 */ sll $t3, $t3, 2 @@ -932,8 +381,8 @@ glabel video_DL_related_4 /* 0039B0 70002DB0 0282082B */ sltu $at, $s4, $v0 /* 0039B4 70002DB4 1420FFFD */ bnez $at, .L70002DAC /* 0039B8 70002DB8 AE80FFFC */ sw $zero, -4($s4) -/* 0039BC 70002DBC 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) -/* 0039C0 70002DC0 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 0039BC 70002DBC 3C048006 */ lui $a0, %hi(g_speedGraphLastOsCount) +/* 0039C0 70002DC0 8C8404A4 */ lw $a0, %lo(g_speedGraphLastOsCount)($a0) /* 0039C4 70002DC4 27B500A0 */ addiu $s5, $sp, 0xa0 /* 0039C8 70002DC8 27A200AC */ addiu $v0, $sp, 0xac .L70002DCC: @@ -971,8 +420,8 @@ glabel video_DL_related_4 /* 003A40 70002E40 001160C0 */ sll $t4, $s1, 3 /* 003A44 70002E44 02EC1021 */ addu $v0, $s7, $t4 /* 003A48 70002E48 8C520000 */ lw $s2, ($v0) -/* 003A4C 70002E4C 3C048006 */ lui $a0, %hi(dword_CODE_bss_800604A4) -/* 003A50 70002E50 8C8404A4 */ lw $a0, %lo(dword_CODE_bss_800604A4)($a0) +/* 003A4C 70002E4C 3C048006 */ lui $a0, %hi(g_speedGraphLastOsCount) +/* 003A50 70002E50 8C8404A4 */ lw $a0, %lo(g_speedGraphLastOsCount)($a0) /* 003A54 70002E54 324D8000 */ andi $t5, $s2, 0x8000 /* 003A58 70002E58 51A00003 */ beql $t5, $zero, .L70002E68 /* 003A5C 70002E5C 8EA30000 */ lw $v1, ($s5) @@ -1089,10 +538,10 @@ glabel video_DL_related_4 /* 003BEC 70002FEC 00003025 */ move $a2, $zero /* 003BF0 70002FF0 0FC347A6 */ jal sub_GAME_7F0D1E98 /* 003BF4 70002FF4 00003825 */ move $a3, $zero -/* 003BF8 70002FF8 3C038006 */ lui $v1, %hi(displaylist_bank) +/* 003BF8 70002FF8 3C038006 */ lui $v1, %hi(g_speedGraphDisplayListBank) /* 003BFC 70002FFC 3C0FE700 */ lui $t7, 0xe700 /* 003C00 70003000 3C19B800 */ lui $t9, 0xb800 -/* 003C04 70003004 246304A0 */ addiu $v1, %lo(displaylist_bank) # addiu $v1, $v1, 0x4a0 +/* 003C04 70003004 246304A0 */ addiu $v1, %lo(g_speedGraphDisplayListBank) # addiu $v1, $v1, 0x4a0 /* 003C08 70003008 AC4F0000 */ sw $t7, ($v0) /* 003C0C 7000300C AC400004 */ sw $zero, 4($v0) /* 003C10 70003010 AC590008 */ sw $t9, 8($v0) diff --git a/src/speed_graph.h b/src/speed_graph.h new file mode 100644 index 0000000..b261f63 --- /dev/null +++ b/src/speed_graph.h @@ -0,0 +1,11 @@ +#ifndef _SPEED_GRAPH_H_ +#define _SPEED_GRAPH_H_ + +#include "ultra64.h" + +Gfx *speedGraphDisplay(Gfx *gdl); +void speedGraphVideoRelated_2(void); +void speedGraphVideoRelated_3(s32 arg0); +void video_DL_related_4(void); + +#endif diff --git a/src/sprintf.c b/src/sprintf.c index 71db221..ad61e47 100644 --- a/src/sprintf.c +++ b/src/sprintf.c @@ -1,74 +1,23 @@ +#include #include "ultra64.h" - -#ifdef NONMATCHING -s32 proutSprintf(s32 arg2) -{ - return memcpy() + arg2; +char *proutSprintf(char *dst, const char *src, size_t count) { + return (char *) memcpy((u8 *) dst, (u8 *) src, count) + count; } -#else -GLOBAL_ASM( -.text -glabel proutSprintf -/* 00B870 7000AC70 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00B874 7000AC74 AFBF0014 */ sw $ra, 0x14($sp) -/* 00B878 7000AC78 0C004E14 */ jal memcpy -/* 00B87C 7000AC7C AFA60020 */ sw $a2, 0x20($sp) -/* 00B880 7000AC80 8FBF0014 */ lw $ra, 0x14($sp) -/* 00B884 7000AC84 8FAE0020 */ lw $t6, 0x20($sp) -/* 00B888 7000AC88 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00B88C 7000AC8C 03E00008 */ jr $ra -/* 00B890 7000AC90 004E1021 */ addu $v0, $v0, $t6 -) -#endif - - - - -#ifdef NONMATCHING -s32 sprintf(s32 arg0, s32 arg1, ? arg2, ? arg3) -{ - s32 temp_ret; - - temp_ret = _Printf(&proutSprintf, arg0, arg1, &arg2); - if (temp_ret >= 0) - { - *(arg0 + temp_ret) = (u8)0; +int sprintf(char *dst, const char *fmt, ...) { + s32 written; + va_list args; + va_start(args, fmt); + written = _Printf(proutSprintf, dst, fmt, args); + if (written >= 0) { + dst[written] = 0; } - return temp_ret + -1; + return written-1; } -#else -GLOBAL_ASM( -.text -glabel sprintf -/* 00B894 7000AC94 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00B898 7000AC98 AFA40020 */ sw $a0, 0x20($sp) -/* 00B89C 7000AC9C AFBF0014 */ sw $ra, 0x14($sp) -/* 00B8A0 7000ACA0 AFA50024 */ sw $a1, 0x24($sp) -/* 00B8A4 7000ACA4 AFA60028 */ sw $a2, 0x28($sp) -/* 00B8A8 7000ACA8 AFA7002C */ sw $a3, 0x2c($sp) -/* 00B8AC 7000ACAC 3C047001 */ lui $a0, %hi(proutSprintf) # $a0, 0x7001 -/* 00B8B0 7000ACB0 2484AC70 */ addiu $a0, %lo(proutSprintf) # addiu $a0, $a0, -0x5390 -/* 00B8B4 7000ACB4 27A70028 */ addiu $a3, $sp, 0x28 -/* 00B8B8 7000ACB8 8FA60024 */ lw $a2, 0x24($sp) -/* 00B8BC 7000ACBC 0C004FD8 */ jal _Printf -/* 00B8C0 7000ACC0 8FA50020 */ lw $a1, 0x20($sp) -/* 00B8C4 7000ACC4 04400004 */ bltz $v0, .L7000ACD8 -/* 00B8C8 7000ACC8 00401825 */ move $v1, $v0 -/* 00B8CC 7000ACCC 8FAE0020 */ lw $t6, 0x20($sp) -/* 00B8D0 7000ACD0 01C27821 */ addu $t7, $t6, $v0 -/* 00B8D4 7000ACD4 A1E00000 */ sb $zero, ($t7) -.L7000ACD8: -/* 00B8D8 7000ACD8 8FBF0014 */ lw $ra, 0x14($sp) -/* 00B8DC 7000ACDC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 00B8E0 7000ACE0 2462FFFF */ addiu $v0, $v1, -1 -/* 00B8E4 7000ACE4 03E00008 */ jr $ra -/* 00B8E8 7000ACE8 00000000 */ nop -) -#endif + diff --git a/src/str.c b/src/str.c index fab0aee..cb031cc 100644 --- a/src/str.c +++ b/src/str.c @@ -1,655 +1,173 @@ -#include "ultra64.h" +#include "str.h" - - - - -#ifdef NONMATCHING -void *textpointer_load_parse_something(void *arg0, void *arg1) { - void *temp_a1; - - // Node 0 - temp_a1 = (arg1 + 1); - *arg0 = (s8) *arg1; - if (*arg1 != 0) - { - loop_1: - // Node 1 - ((arg0 + 1) + 1)->unk-1 = (s8) *temp_a1; - if (*temp_a1 != 0) - { - goto loop_1; - } - } - // (possible return value: arg0) +char *strcpy(char *dst, const char *src) { + unsigned char *ptr = dst; + while(*ptr++ = *src++); + return dst; } -#else -GLOBAL_ASM( -.text -glabel textpointer_load_parse_something -/* 00B370 7000A770 90A20000 */ lbu $v0, ($a1) -/* 00B374 7000A774 24830001 */ addiu $v1, $a0, 1 -/* 00B378 7000A778 24A50001 */ addiu $a1, $a1, 1 -/* 00B37C 7000A77C 10400006 */ beqz $v0, .L7000A798 -/* 00B380 7000A780 A0820000 */ sb $v0, ($a0) -.L7000A784: -/* 00B384 7000A784 90A20000 */ lbu $v0, ($a1) -/* 00B388 7000A788 24630001 */ addiu $v1, $v1, 1 -/* 00B38C 7000A78C 24A50001 */ addiu $a1, $a1, 1 -/* 00B390 7000A790 1440FFFC */ bnez $v0, .L7000A784 -/* 00B394 7000A794 A062FFFF */ sb $v0, -1($v1) -.L7000A798: -/* 00B398 7000A798 03E00008 */ jr $ra -/* 00B39C 7000A79C 00801025 */ move $v0, $a0 -) -#endif +char *strncpy(char *dst, const char *src, size_t n) { + unsigned char *ptr = dst; + while((*ptr++ = *src++)) { + if (--n == 0) { + break; + } + } + while(n--) { + (*ptr++) = '\0'; + } + return dst; +} +char *strcat(char *dst, const char *src) { + unsigned char *ptr = dst; + while (*ptr) { ptr++; }; + while(*ptr++ = *src++); + return dst; +} - -#ifdef NONMATCHING -void *something_with_strings(void *arg0, void *arg1, s32 arg2) { - void *temp_v1; - void *temp_a1; - s32 temp_a2; - - // Node 0 - temp_v1 = (arg0 + 1); - temp_a1 = (arg1 + 1); - *arg0 = (s8) *arg1; - if (*arg1 != 0) - { - loop_1: - // Node 1 - if ((arg2 + -1) != 0) - { - // Node 2 - (temp_v1 + 1)->unk-1 = (s8) *temp_a1; - if (*temp_a1 != 0) - { - goto loop_1; +int strcmp(const char* str1, const char* str2) { + unsigned int var; + unsigned char c1; + unsigned char c2; + while (TRUE) { + var = c1 = *(str1++); + if (var != (c2 = *str2)) { + if (c1 < c2) { + return -1; + } else { + return 1; } } - } - // Node 3 - temp_a2 = (arg2 + -1); - if (temp_a2 != 0) - { - loop_4: - // Node 4 - *temp_v1 = (u8)0; - if ((temp_a2 + -1) != 0) - { - goto loop_4; + if (c1 == '\0') { + return 0; } + str2++; } - // (possible return value: arg0) } -#else -GLOBAL_ASM( -.text -glabel something_with_strings -/* 00B3A0 7000A7A0 90A20000 */ lbu $v0, ($a1) -/* 00B3A4 7000A7A4 24830001 */ addiu $v1, $a0, 1 -/* 00B3A8 7000A7A8 24A50001 */ addiu $a1, $a1, 1 -/* 00B3AC 7000A7AC 10400009 */ beqz $v0, .L7000A7D4 -/* 00B3B0 7000A7B0 A0820000 */ sb $v0, ($a0) -.L7000A7B4: -/* 00B3B4 7000A7B4 24C6FFFF */ addiu $a2, $a2, -1 -/* 00B3B8 7000A7B8 50C00007 */ beql $a2, $zero, .L7000A7D8 -/* 00B3BC 7000A7BC 00C01025 */ move $v0, $a2 -/* 00B3C0 7000A7C0 90A20000 */ lbu $v0, ($a1) -/* 00B3C4 7000A7C4 24630001 */ addiu $v1, $v1, 1 -/* 00B3C8 7000A7C8 24A50001 */ addiu $a1, $a1, 1 -/* 00B3CC 7000A7CC 1440FFF9 */ bnez $v0, .L7000A7B4 -/* 00B3D0 7000A7D0 A062FFFF */ sb $v0, -1($v1) -.L7000A7D4: -/* 00B3D4 7000A7D4 00C01025 */ move $v0, $a2 -.L7000A7D8: -/* 00B3D8 7000A7D8 10C00006 */ beqz $a2, .L7000A7F4 -/* 00B3DC 7000A7DC 24C6FFFF */ addiu $a2, $a2, -1 -.L7000A7E0: -/* 00B3E0 7000A7E0 00C01025 */ move $v0, $a2 -/* 00B3E4 7000A7E4 A0600000 */ sb $zero, ($v1) -/* 00B3E8 7000A7E8 24630001 */ addiu $v1, $v1, 1 -/* 00B3EC 7000A7EC 14C0FFFC */ bnez $a2, .L7000A7E0 -/* 00B3F0 7000A7F0 24C6FFFF */ addiu $a2, $a2, -1 -.L7000A7F4: -/* 00B3F4 7000A7F4 03E00008 */ jr $ra -/* 00B3F8 7000A7F8 00801025 */ move $v0, $a0 -) -#endif - - - -#ifdef NONMATCHING -void *string_append_from_obseg_textbank(void *arg0, void *arg1) { - void *temp_v0; - void *temp_a1; - - // Node 0 - if (*arg0 != 0) - { - loop_1: - // Node 1 - if (arg0->unk1 != 0) - { - goto loop_1; +int strncmp(const char *str1, const char *str2, size_t n) { + unsigned int var; + unsigned char c1; + unsigned char c2; + while (TRUE) { + if (n == 0) { + return 0; } - } - // Node 2 - temp_v0 = (arg0 + 1); - temp_a1 = (arg1 + 1); - temp_v0->unk-1 = (s8) *arg1; - if (*arg1 != 0) - { - loop_3: - // Node 3 - (temp_v0 + 1)->unk-1 = (s8) *temp_a1; - if (*temp_a1 != 0) - { - goto loop_3; + n--; + var = c1 = *str1++; + if (var != (c2 = *str2)) { + if (c1 < c2) { + return -1; + } else { + return 1; + } } - } - // (possible return value: arg0) -} - -#else -GLOBAL_ASM( -.text -glabel string_append_from_obseg_textbank -/* 00B3FC 7000A7FC 908E0000 */ lbu $t6, ($a0) -/* 00B400 7000A800 00801025 */ move $v0, $a0 -/* 00B404 7000A804 51C00006 */ beql $t6, $zero, .L7000A820 -/* 00B408 7000A808 90A30000 */ lbu $v1, ($a1) -/* 00B40C 7000A80C 904F0001 */ lbu $t7, 1($v0) -.L7000A810: -/* 00B410 7000A810 24420001 */ addiu $v0, $v0, 1 -/* 00B414 7000A814 55E0FFFE */ bnezl $t7, .L7000A810 -/* 00B418 7000A818 904F0001 */ lbu $t7, 1($v0) -/* 00B41C 7000A81C 90A30000 */ lbu $v1, ($a1) -.L7000A820: -/* 00B420 7000A820 24420001 */ addiu $v0, $v0, 1 -/* 00B424 7000A824 24A50001 */ addiu $a1, $a1, 1 -/* 00B428 7000A828 10600006 */ beqz $v1, .L7000A844 -/* 00B42C 7000A82C A043FFFF */ sb $v1, -1($v0) -.L7000A830: -/* 00B430 7000A830 90A30000 */ lbu $v1, ($a1) -/* 00B434 7000A834 24420001 */ addiu $v0, $v0, 1 -/* 00B438 7000A838 24A50001 */ addiu $a1, $a1, 1 -/* 00B43C 7000A83C 1460FFFC */ bnez $v1, .L7000A830 -/* 00B440 7000A840 A043FFFF */ sb $v1, -1($v0) -.L7000A844: -/* 00B444 7000A844 03E00008 */ jr $ra -/* 00B448 7000A848 00801025 */ move $v0, $a0 -) -#endif - - - -#ifdef NONMATCHING -void something_with_strings_0(void) { - -} -#else -GLOBAL_ASM( -.text -glabel something_with_strings_0 -.L7000A84C: -/* 00B44C 7000A84C 90820000 */ lbu $v0, ($a0) -/* 00B450 7000A850 90A30000 */ lbu $v1, ($a1) -/* 00B454 7000A854 24840001 */ addiu $a0, $a0, 1 -/* 00B458 7000A858 10430007 */ beq $v0, $v1, .L7000A878 -/* 00B45C 7000A85C 0043082A */ slt $at, $v0, $v1 -/* 00B460 7000A860 10200003 */ beqz $at, .L7000A870 -/* 00B464 7000A864 00000000 */ nop -/* 00B468 7000A868 03E00008 */ jr $ra -/* 00B46C 7000A86C 2402FFFF */ li $v0, -1 - -.L7000A870: -/* 00B470 7000A870 03E00008 */ jr $ra -/* 00B474 7000A874 24020001 */ li $v0, 1 - -.L7000A878: -/* 00B478 7000A878 14400003 */ bnez $v0, .L7000A888 -/* 00B47C 7000A87C 00000000 */ nop -/* 00B480 7000A880 03E00008 */ jr $ra -/* 00B484 7000A884 00001025 */ move $v0, $zero - -.L7000A888: -/* 00B488 7000A888 1000FFF0 */ b .L7000A84C -/* 00B48C 7000A88C 24A50001 */ addiu $a1, $a1, 1 -/* 00B490 7000A890 03E00008 */ jr $ra -/* 00B494 7000A894 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -void string_related(void) { - -} -#else -GLOBAL_ASM( -.text -glabel string_related -.L7000A898: -/* 00B498 7000A898 54C00004 */ bnezl $a2, .L7000A8AC -/* 00B49C 7000A89C 90820000 */ lbu $v0, ($a0) -/* 00B4A0 7000A8A0 03E00008 */ jr $ra -/* 00B4A4 7000A8A4 00001025 */ move $v0, $zero - -/* 00B4A8 7000A8A8 90820000 */ lbu $v0, ($a0) -.L7000A8AC: -/* 00B4AC 7000A8AC 90A30000 */ lbu $v1, ($a1) -/* 00B4B0 7000A8B0 24C6FFFF */ addiu $a2, $a2, -1 -/* 00B4B4 7000A8B4 24840001 */ addiu $a0, $a0, 1 -/* 00B4B8 7000A8B8 10430007 */ beq $v0, $v1, .L7000A8D8 -/* 00B4BC 7000A8BC 0043082A */ slt $at, $v0, $v1 -/* 00B4C0 7000A8C0 10200003 */ beqz $at, .L7000A8D0 -/* 00B4C4 7000A8C4 00000000 */ nop -/* 00B4C8 7000A8C8 03E00008 */ jr $ra -/* 00B4CC 7000A8CC 2402FFFF */ li $v0, -1 - -.L7000A8D0: -/* 00B4D0 7000A8D0 03E00008 */ jr $ra -/* 00B4D4 7000A8D4 24020001 */ li $v0, 1 - -.L7000A8D8: -/* 00B4D8 7000A8D8 14400003 */ bnez $v0, .L7000A8E8 -/* 00B4DC 7000A8DC 00000000 */ nop -/* 00B4E0 7000A8E0 03E00008 */ jr $ra -/* 00B4E4 7000A8E4 00001025 */ move $v0, $zero - -.L7000A8E8: -/* 00B4E8 7000A8E8 1000FFEB */ b .L7000A898 -/* 00B4EC 7000A8EC 24A50001 */ addiu $a1, $a1, 1 -/* 00B4F0 7000A8F0 03E00008 */ jr $ra -/* 00B4F4 7000A8F4 00000000 */ nop -) -#endif - - - -#ifdef NONMATCHING -s32 strtol_related(s32 arg0) { - s32 temp_t6; - - // Node 0 - temp_t6 = (arg0 & 0xff); - if (temp_t6 >= 0x61) - { - // Node 1 - if (temp_t6 < 0x7b) - { - // Node 2 - return; - // (possible return value: temp_t6) + if (c1 == '\0') { + return 0; } + str2++; } - // (possible return value: temp_t6) } -#else -GLOBAL_ASM( -.text -glabel strtol_related -/* 00B4F8 7000A8F8 308E00FF */ andi $t6, $a0, 0xff -/* 00B4FC 7000A8FC AFA40000 */ sw $a0, ($sp) -/* 00B500 7000A900 29C10061 */ slti $at, $t6, 0x61 -/* 00B504 7000A904 14200007 */ bnez $at, .L7000A924 -/* 00B508 7000A908 01C02025 */ move $a0, $t6 -/* 00B50C 7000A90C 29C1007B */ slti $at, $t6, 0x7b -/* 00B510 7000A910 10200004 */ beqz $at, .L7000A924 -/* 00B514 7000A914 25C2FFE0 */ addiu $v0, $t6, -0x20 -/* 00B518 7000A918 304F00FF */ andi $t7, $v0, 0xff -/* 00B51C 7000A91C 03E00008 */ jr $ra -/* 00B520 7000A920 01E01025 */ move $v0, $t7 -.L7000A924: -/* 00B524 7000A924 00801025 */ move $v0, $a0 -/* 00B528 7000A928 03E00008 */ jr $ra -/* 00B52C 7000A92C 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 strtol_related_0(s32 arg0) { - // Node 0 - if ((((arg0 & 0xff) < 0x30) ^ 1) != 0) - { - // Node 1 - return; - // (possible return value: ((arg0 & 0xff) < 0x3a)) +unsigned char toupper(unsigned char c) { + if ((c >= 'a') && (c <= 'z')) { + return ('A' + c - 'a'); + } else { + return c; } - // (possible return value: (((arg0 & 0xff) < 0x30) ^ 1)) } -#else -GLOBAL_ASM( -.text -glabel strtol_related_0 -/* 00B530 7000A930 308E00FF */ andi $t6, $a0, 0xff -/* 00B534 7000A934 29C20030 */ slti $v0, $t6, 0x30 -/* 00B538 7000A938 38420001 */ xori $v0, $v0, 1 -/* 00B53C 7000A93C 10400002 */ beqz $v0, .L7000A948 -/* 00B540 7000A940 AFA40000 */ sw $a0, ($sp) -/* 00B544 7000A944 29C2003A */ slti $v0, $t6, 0x3a -.L7000A948: -/* 00B548 7000A948 03E00008 */ jr $ra -/* 00B54C 7000A94C 00000000 */ nop -) -#endif +int isdigit(unsigned char c) { + return ((c >= '0') && (c <= '9')); +} +int isalpha(unsigned char c) { + return (((c >= 'a') && (c <= 'z')) || + ((c >= 'A') && (c <= 'Z'))); +} +int isspace(unsigned char c) { + return ((c == ' ') || (c == '\t') || (c == '\n') || (c == '\f') || (c == '\v')); +} - -#ifdef NONMATCHING -s32 strtol_related_1(s32 arg0) { - s32 temp_t6; - - // Node 0 - temp_t6 = (arg0 & 0xff); - if ((temp_t6 < 0x61) || (temp_t6 >= 0x7b)) - { - // Node 2 - if (((temp_t6 < 0x41) ^ 1) != 0) - { - // Node 3 - return; - // (possible return value: (temp_t6 < 0x5b)) +#define ULONG_MAX ((unsigned long)(~0L)) /* 0xFFFFFFFF */ +long int strtol(const char *str, char **endptr, int base) { + int neg; + unsigned char *ptr; + unsigned int cutoff; + unsigned int cutlim; + unsigned int accum; + unsigned char c; + unsigned char *before; + int overflow; + if ((base < 0) || (base == 1) || (base > 36)) { + base = 10; + } + ptr = str; + while (isspace(*ptr)) { ptr++; }; + if ((int)*ptr) { + if (*ptr == '-') { + neg = 1; + ptr++; + } else if (*ptr == '+') { + neg = 0; + ptr++; + } else { + neg = 0; } - } - else - { - - } - // (possible return value: ((temp_t6 < 0x41) ^ 1)) -} -#else -GLOBAL_ASM( -.text -glabel strtol_related_1 -/* 00B550 7000A950 308E00FF */ andi $t6, $a0, 0xff -/* 00B554 7000A954 29C20061 */ slti $v0, $t6, 0x61 -/* 00B558 7000A958 AFA40000 */ sw $a0, ($sp) -/* 00B55C 7000A95C 14400004 */ bnez $v0, .L7000A970 -/* 00B560 7000A960 01C01825 */ move $v1, $t6 -/* 00B564 7000A964 29C2007B */ slti $v0, $t6, 0x7b -/* 00B568 7000A968 14400006 */ bnez $v0, .L7000A984 -/* 00B56C 7000A96C 00000000 */ nop -.L7000A970: -/* 00B570 7000A970 28620041 */ slti $v0, $v1, 0x41 -/* 00B574 7000A974 38420001 */ xori $v0, $v0, 1 -/* 00B578 7000A978 10400002 */ beqz $v0, .L7000A984 -/* 00B57C 7000A97C 00000000 */ nop -/* 00B580 7000A980 2862005B */ slti $v0, $v1, 0x5b -.L7000A984: -/* 00B584 7000A984 03E00008 */ jr $ra -/* 00B588 7000A988 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -s32 strtol_related_2(s32 arg0) { - s32 temp_t6; - - // Node 0 - temp_t6 = (arg0 & 0xff); - if ((u32) (temp_t6 ^ 0x20) >= 1U) - { - // Node 1 - if ((u32) (temp_t6 ^ 9) >= 1U) - { - // Node 2 - if ((u32) (temp_t6 ^ 0xa) >= 1U) - { - // Node 3 - if ((u32) (temp_t6 ^ 0xc) >= 1U) - { - // Node 4 - return; - // (possible return value: ((u32) (temp_t6 ^ 0xb) < 1U)) + if (base == 16) { + if ((ptr[0] == '0') && (toupper(ptr[1]) == 'X')) { + ptr += 2; + } + } + if (base == 0) { + if (ptr[0] == '0') { + if (toupper(ptr[1]) == 'X') { + ptr += 2; + base = 16; + } else { + base = 8; } + } else { + base = 10; } } + before = ptr; + overflow = 0; + accum = 0; + cutoff = ULONG_MAX / base; + cutlim = ULONG_MAX % base; + for (; (int)(c = *ptr); ptr++) { + if (isdigit(c)) { + c -= '0'; + } else if (isalpha(c)) { + c = (toupper(c) - ('A' - 0xA)); + } else { + break; + } + if (c >= base) { + break; + } + if ((accum > cutoff) || ((accum == cutoff) && ((unsigned int)c > cutlim))) { + overflow = 1; + } else { + accum *= base; + accum += (unsigned int)c; + } + } + if (ptr != before) { + if (endptr != NULL) { + *endptr = ptr; + } + if (overflow) { + return -1; + } + return (neg ? -accum : accum); + } } - // (possible return value: ((u32) (temp_t6 ^ 0x20) < 1U)) + if (endptr != NULL) { + *endptr = str; + } + return 0; } -#else -GLOBAL_ASM( -.text -glabel strtol_related_2 -/* 00B58C 7000A98C 308E00FF */ andi $t6, $a0, 0xff -/* 00B590 7000A990 39C20020 */ xori $v0, $t6, 0x20 -/* 00B594 7000A994 2C420001 */ sltiu $v0, $v0, 1 -/* 00B598 7000A998 1440000F */ bnez $v0, .L7000A9D8 -/* 00B59C 7000A99C AFA40000 */ sw $a0, ($sp) -/* 00B5A0 7000A9A0 39C20009 */ xori $v0, $t6, 9 -/* 00B5A4 7000A9A4 2C420001 */ sltiu $v0, $v0, 1 -/* 00B5A8 7000A9A8 1440000B */ bnez $v0, .L7000A9D8 -/* 00B5AC 7000A9AC 00000000 */ nop -/* 00B5B0 7000A9B0 39C2000A */ xori $v0, $t6, 0xa -/* 00B5B4 7000A9B4 2C420001 */ sltiu $v0, $v0, 1 -/* 00B5B8 7000A9B8 14400007 */ bnez $v0, .L7000A9D8 -/* 00B5BC 7000A9BC 00000000 */ nop -/* 00B5C0 7000A9C0 39C2000C */ xori $v0, $t6, 0xc -/* 00B5C4 7000A9C4 2C420001 */ sltiu $v0, $v0, 1 -/* 00B5C8 7000A9C8 14400003 */ bnez $v0, .L7000A9D8 -/* 00B5CC 7000A9CC 00000000 */ nop -/* 00B5D0 7000A9D0 39C2000B */ xori $v0, $t6, 0xb -/* 00B5D4 7000A9D4 2C420001 */ sltiu $v0, $v0, 1 -.L7000A9D8: -/* 00B5D8 7000A9D8 03E00008 */ jr $ra -/* 00B5DC 7000A9DC 00000000 */ nop -) -#endif - - - - - -#ifdef NONMATCHING -void strtol(void) { - -} -#else -GLOBAL_ASM( -.text -glabel strtol -/* 00B5E0 7000A9E0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 00B5E4 7000A9E4 AFB30024 */ sw $s3, 0x24($sp) -/* 00B5E8 7000A9E8 00C09825 */ move $s3, $a2 -/* 00B5EC 7000A9EC AFBF002C */ sw $ra, 0x2c($sp) -/* 00B5F0 7000A9F0 AFB40028 */ sw $s4, 0x28($sp) -/* 00B5F4 7000A9F4 AFB20020 */ sw $s2, 0x20($sp) -/* 00B5F8 7000A9F8 AFB1001C */ sw $s1, 0x1c($sp) -/* 00B5FC 7000A9FC AFB00018 */ sw $s0, 0x18($sp) -/* 00B600 7000AA00 AFA50064 */ sw $a1, 0x64($sp) -/* 00B604 7000AA04 04C00006 */ bltz $a2, .L7000AA20 -/* 00B608 7000AA08 00803825 */ move $a3, $a0 -/* 00B60C 7000AA0C 24010001 */ li $at, 1 -/* 00B610 7000AA10 10C10003 */ beq $a2, $at, .L7000AA20 -/* 00B614 7000AA14 28C10025 */ slti $at, $a2, 0x25 -/* 00B618 7000AA18 54200003 */ bnezl $at, .L7000AA28 -/* 00B61C 7000AA1C 90E40000 */ lbu $a0, ($a3) -.L7000AA20: -/* 00B620 7000AA20 2413000A */ li $s3, 10 -/* 00B624 7000AA24 90E40000 */ lbu $a0, ($a3) -.L7000AA28: -/* 00B628 7000AA28 00E09025 */ move $s2, $a3 -/* 00B62C 7000AA2C 0C002A63 */ jal strtol_related_2 -/* 00B630 7000AA30 AFA70060 */ sw $a3, 0x60($sp) -/* 00B634 7000AA34 50400007 */ beql $v0, $zero, .L7000AA54 -/* 00B638 7000AA38 92420000 */ lbu $v0, ($s2) -/* 00B63C 7000AA3C 26520001 */ addiu $s2, $s2, 1 -.L7000AA40: -/* 00B640 7000AA40 0C002A63 */ jal strtol_related_2 -/* 00B644 7000AA44 92440000 */ lbu $a0, ($s2) -/* 00B648 7000AA48 5440FFFD */ bnezl $v0, .L7000AA40 -/* 00B64C 7000AA4C 26520001 */ addiu $s2, $s2, 1 -/* 00B650 7000AA50 92420000 */ lbu $v0, ($s2) -.L7000AA54: -/* 00B654 7000AA54 2401002D */ li $at, 45 -/* 00B658 7000AA58 50400075 */ beql $v0, $zero, .L7000AC30 -/* 00B65C 7000AA5C 8FA20064 */ lw $v0, 0x64($sp) -/* 00B660 7000AA60 14410004 */ bne $v0, $at, .L7000AA74 -/* 00B664 7000AA64 240E0001 */ li $t6, 1 -/* 00B668 7000AA68 AFAE005C */ sw $t6, 0x5c($sp) -/* 00B66C 7000AA6C 10000008 */ b .L7000AA90 -/* 00B670 7000AA70 26520001 */ addiu $s2, $s2, 1 -.L7000AA74: -/* 00B674 7000AA74 2401002B */ li $at, 43 -/* 00B678 7000AA78 54410005 */ bnel $v0, $at, .L7000AA90 -/* 00B67C 7000AA7C AFA0005C */ sw $zero, 0x5c($sp) -/* 00B680 7000AA80 AFA0005C */ sw $zero, 0x5c($sp) -/* 00B684 7000AA84 10000002 */ b .L7000AA90 -/* 00B688 7000AA88 26520001 */ addiu $s2, $s2, 1 -/* 00B68C 7000AA8C AFA0005C */ sw $zero, 0x5c($sp) -.L7000AA90: -/* 00B690 7000AA90 24010010 */ li $at, 16 -/* 00B694 7000AA94 1661000B */ bne $s3, $at, .L7000AAC4 -/* 00B698 7000AA98 00000000 */ nop -/* 00B69C 7000AA9C 924F0000 */ lbu $t7, ($s2) -/* 00B6A0 7000AAA0 24010030 */ li $at, 48 -/* 00B6A4 7000AAA4 15E10007 */ bne $t7, $at, .L7000AAC4 -/* 00B6A8 7000AAA8 00000000 */ nop -/* 00B6AC 7000AAAC 0C002A3E */ jal strtol_related -/* 00B6B0 7000AAB0 92440001 */ lbu $a0, 1($s2) -/* 00B6B4 7000AAB4 24010058 */ li $at, 88 -/* 00B6B8 7000AAB8 14410002 */ bne $v0, $at, .L7000AAC4 -/* 00B6BC 7000AABC 00000000 */ nop -/* 00B6C0 7000AAC0 26520002 */ addiu $s2, $s2, 2 -.L7000AAC4: -/* 00B6C4 7000AAC4 1660000E */ bnez $s3, .L7000AB00 -/* 00B6C8 7000AAC8 92420000 */ lbu $v0, ($s2) -/* 00B6CC 7000AACC 24010030 */ li $at, 48 -/* 00B6D0 7000AAD0 1441000B */ bne $v0, $at, .L7000AB00 -/* 00B6D4 7000AAD4 2413000A */ li $s3, 10 -/* 00B6D8 7000AAD8 0C002A3E */ jal strtol_related -/* 00B6DC 7000AADC 92440001 */ lbu $a0, 1($s2) -/* 00B6E0 7000AAE0 24010058 */ li $at, 88 -/* 00B6E4 7000AAE4 14410004 */ bne $v0, $at, .L7000AAF8 -/* 00B6E8 7000AAE8 24130008 */ li $s3, 8 -/* 00B6EC 7000AAEC 26520002 */ addiu $s2, $s2, 2 -/* 00B6F0 7000AAF0 10000001 */ b .L7000AAF8 -/* 00B6F4 7000AAF4 24130010 */ li $s3, 16 -.L7000AAF8: -/* 00B6F8 7000AAF8 10000001 */ b .L7000AB00 -/* 00B6FC 7000AAFC 92420000 */ lbu $v0, ($s2) -.L7000AB00: -/* 00B700 7000AB00 305000FF */ andi $s0, $v0, 0xff -/* 00B704 7000AB04 AFB20044 */ sw $s2, 0x44($sp) -/* 00B708 7000AB08 AFA00040 */ sw $zero, 0x40($sp) -/* 00B70C 7000AB0C 00008825 */ move $s1, $zero -/* 00B710 7000AB10 12000033 */ beqz $s0, .L7000ABE0 -/* 00B714 7000AB14 02001825 */ move $v1, $s0 -/* 00B718 7000AB18 2414FFFF */ li $s4, -1 -.L7000AB1C: -/* 00B71C 7000AB1C 320400FF */ andi $a0, $s0, 0xff -/* 00B720 7000AB20 0C002A4C */ jal strtol_related_0 -/* 00B724 7000AB24 AFA30034 */ sw $v1, 0x34($sp) -/* 00B728 7000AB28 10400005 */ beqz $v0, .L7000AB40 -/* 00B72C 7000AB2C 8FA30034 */ lw $v1, 0x34($sp) -/* 00B730 7000AB30 2470FFD0 */ addiu $s0, $v1, -0x30 -/* 00B734 7000AB34 321800FF */ andi $t8, $s0, 0xff -/* 00B738 7000AB38 1000000A */ b .L7000AB64 -/* 00B73C 7000AB3C 03008025 */ move $s0, $t8 -.L7000AB40: -/* 00B740 7000AB40 0C002A54 */ jal strtol_related_1 -/* 00B744 7000AB44 320400FF */ andi $a0, $s0, 0xff -/* 00B748 7000AB48 50400026 */ beql $v0, $zero, .L7000ABE4 -/* 00B74C 7000AB4C 8FAA0044 */ lw $t2, 0x44($sp) -/* 00B750 7000AB50 0C002A3E */ jal strtol_related -/* 00B754 7000AB54 320400FF */ andi $a0, $s0, 0xff -/* 00B758 7000AB58 2450FFC9 */ addiu $s0, $v0, -0x37 -/* 00B75C 7000AB5C 321900FF */ andi $t9, $s0, 0xff -/* 00B760 7000AB60 03208025 */ move $s0, $t9 -.L7000AB64: -/* 00B764 7000AB64 0213082A */ slt $at, $s0, $s3 -/* 00B768 7000AB68 1020001D */ beqz $at, .L7000ABE0 -/* 00B76C 7000AB6C 24090001 */ li $t1, 1 -/* 00B770 7000AB70 0293001B */ divu $zero, $s4, $s3 -/* 00B774 7000AB74 00001012 */ mflo $v0 -/* 00B778 7000AB78 0051082B */ sltu $at, $v0, $s1 -/* 00B77C 7000AB7C 16600002 */ bnez $s3, .L7000AB88 -/* 00B780 7000AB80 00000000 */ nop -/* 00B784 7000AB84 0007000D */ break 7 -.L7000AB88: -/* 00B788 7000AB88 1420000B */ bnez $at, .L7000ABB8 -/* 00B78C 7000AB8C 00000000 */ nop -/* 00B790 7000AB90 1622000B */ bne $s1, $v0, .L7000ABC0 -/* 00B794 7000AB94 00000000 */ nop -/* 00B798 7000AB98 0293001B */ divu $zero, $s4, $s3 -/* 00B79C 7000AB9C 00004010 */ mfhi $t0 -/* 00B7A0 7000ABA0 0110082B */ sltu $at, $t0, $s0 -/* 00B7A4 7000ABA4 16600002 */ bnez $s3, .L7000ABB0 -/* 00B7A8 7000ABA8 00000000 */ nop -/* 00B7AC 7000ABAC 0007000D */ break 7 -.L7000ABB0: -/* 00B7B0 7000ABB0 10200003 */ beqz $at, .L7000ABC0 -/* 00B7B4 7000ABB4 00000000 */ nop -.L7000ABB8: -/* 00B7B8 7000ABB8 10000005 */ b .L7000ABD0 -/* 00B7BC 7000ABBC AFA90040 */ sw $t1, 0x40($sp) -.L7000ABC0: -/* 00B7C0 7000ABC0 02330019 */ multu $s1, $s3 -/* 00B7C4 7000ABC4 00008812 */ mflo $s1 -/* 00B7C8 7000ABC8 02308821 */ addu $s1, $s1, $s0 -/* 00B7CC 7000ABCC 00000000 */ nop -.L7000ABD0: -/* 00B7D0 7000ABD0 92500001 */ lbu $s0, 1($s2) -/* 00B7D4 7000ABD4 26520001 */ addiu $s2, $s2, 1 -/* 00B7D8 7000ABD8 1600FFD0 */ bnez $s0, .L7000AB1C -/* 00B7DC 7000ABDC 02001825 */ move $v1, $s0 -.L7000ABE0: -/* 00B7E0 7000ABE0 8FAA0044 */ lw $t2, 0x44($sp) -.L7000ABE4: -/* 00B7E4 7000ABE4 8FA20064 */ lw $v0, 0x64($sp) -/* 00B7E8 7000ABE8 524A0011 */ beql $s2, $t2, .L7000AC30 -/* 00B7EC 7000ABEC 8FA20064 */ lw $v0, 0x64($sp) -/* 00B7F0 7000ABF0 50400003 */ beql $v0, $zero, .L7000AC00 -/* 00B7F4 7000ABF4 8FAB0040 */ lw $t3, 0x40($sp) -/* 00B7F8 7000ABF8 AC520000 */ sw $s2, ($v0) -/* 00B7FC 7000ABFC 8FAB0040 */ lw $t3, 0x40($sp) -.L7000AC00: -/* 00B800 7000AC00 8FAC005C */ lw $t4, 0x5c($sp) -/* 00B804 7000AC04 11600003 */ beqz $t3, .L7000AC14 -/* 00B808 7000AC08 00000000 */ nop -/* 00B80C 7000AC0C 1000000D */ b .L7000AC44 -/* 00B810 7000AC10 2402FFFF */ li $v0, -1 -.L7000AC14: -/* 00B814 7000AC14 11800003 */ beqz $t4, .L7000AC24 -/* 00B818 7000AC18 02201825 */ move $v1, $s1 -/* 00B81C 7000AC1C 10000009 */ b .L7000AC44 -/* 00B820 7000AC20 00111023 */ negu $v0, $s1 -.L7000AC24: -/* 00B824 7000AC24 10000007 */ b .L7000AC44 -/* 00B828 7000AC28 00601025 */ move $v0, $v1 -/* 00B82C 7000AC2C 8FA20064 */ lw $v0, 0x64($sp) -.L7000AC30: -/* 00B830 7000AC30 8FAD0060 */ lw $t5, 0x60($sp) -/* 00B834 7000AC34 50400003 */ beql $v0, $zero, .L7000AC44 -/* 00B838 7000AC38 00001025 */ move $v0, $zero -/* 00B83C 7000AC3C AC4D0000 */ sw $t5, ($v0) -/* 00B840 7000AC40 00001025 */ move $v0, $zero -.L7000AC44: -/* 00B844 7000AC44 8FBF002C */ lw $ra, 0x2c($sp) -/* 00B848 7000AC48 8FB00018 */ lw $s0, 0x18($sp) -/* 00B84C 7000AC4C 8FB1001C */ lw $s1, 0x1c($sp) -/* 00B850 7000AC50 8FB20020 */ lw $s2, 0x20($sp) -/* 00B854 7000AC54 8FB30024 */ lw $s3, 0x24($sp) -/* 00B858 7000AC58 8FB40028 */ lw $s4, 0x28($sp) -/* 00B85C 7000AC5C 03E00008 */ jr $ra -/* 00B860 7000AC60 27BD0060 */ addiu $sp, $sp, 0x60 -) -#endif diff --git a/src/str.h b/src/str.h new file mode 100644 index 0000000..fef0fb0 --- /dev/null +++ b/src/str.h @@ -0,0 +1,13 @@ +#ifndef _STR_H_ +#define _STR_H_ + +#include "ultra64.h" + +char *strcpy(char *dst, const char *src); +char *strncpy(char *dst, const char *src, size_t n); +char *strcat(char *dst, const char *src); +int strcmp(const char* str1, const char* str2); +int strncmp(const char *str1, const char *str2, size_t n); +long int strtol(const char *str, char **endptr, int base); + +#endif diff --git a/src/tlb_manage.c b/src/tlb_manage.c index 8e03956..dcf9797 100644 --- a/src/tlb_manage.c +++ b/src/tlb_manage.c @@ -1,364 +1,228 @@ #include "ultra64.h" #include "ramrom.h" #include "tlb_manage.h" +#include "tlb_random.h" +#include "PR/os_cache.h" /** * @file tlb_manage.c * This file contains tlb management code. - * - * In particular, it: - * - - * - - * - */ -u32 maybe_cur_TLB_entries = 0; -u32 tlb_segment_num = 0; -struct s_tlbmanage_table_entry TLB_managment_table[128]; -struct s_tlbmapping_table_entry TLB_manager_mapping_table[90]; -u32 TLB_manager_mapping_table_end; - u8 (*ptr_TLBallocatedblock) [8192]; +/** + * N64 (MIPS 4300) has 32 TLB entries. + */ +#define CPU_ARCH_MAX_TLB_ENTRIES 32 +/** + * TLB Entry consists of 13 unused bits, 12 bits for mask, and upper 7 bits unused. + */ +#define VAL_TO_TLB_MASK(x) (x << 13) + +/** + * TLB Entry consists of 13 unused bits, 12 bits for mask, and upper 7 bits unused. + */ +#define TLB_MASK_TO_VAL(x) (x >> 13) + +/** + * Number of entries in the TLB Management table. + */ +#define MANAGEMENT_TABLE_COUNT 128 + +/** + * Number of entries in the mapping table. + */ +#define MAPPING_TABLE_COUNT 90 + + + +/** + * Chosen by fair dice roll. + * Guaranteed to be random. + */ +#define TLB_RANDOM_MOD 90 + +struct TlbManageTableEntry +{ + u32 contextValue; + s32 pagenum; + s64 RESERVED; +}; + +struct TlbManageMap +{ + u8 entry0; + u8 entry1; +}; + +s32 g_tlbmanageCurrentTlbEntries = 0; +u32 g_tlbmanageTlbSegmentNumber = 0; + +struct TlbManageTableEntry g_tlbmanageMangementTable[MANAGEMENT_TABLE_COUNT]; +struct TlbManageMap g_tlbmanageMappingTable[MAPPING_TABLE_COUNT]; +u32 g_tlbmanageMappingTableEnd; +u8 (*g_tlbmanageTlbAllocatedBlock) [TLB_ALLOCATION_BLOCK_SIZE]; extern u8 *_gameSegmentRomStart; extern u8 *_tlbbufSegmentStart; +extern u8 *sp_boot; - -/** - * 23E0 700017E0 - * establishes 7F- TLB buffer and management table - */ -#ifdef NONMATCHING -void establish_TLB_buffer_management_table(void) - +void tlbmanageEstablishManagementTable(void) { s32 i; - - for (i=0;i<128;i++) + for (i = 0; i < MANAGEMENT_TABLE_COUNT; i++) { - TLB_managment_table[i]->context_value = 1; - TLB_managment_table[i]->pagenum = 0; + g_tlbmanageMangementTable[i].contextValue = 1; + g_tlbmanageMangementTable[i].pagenum = 0; } - for (i=0;i<90;i++) + for (i = 0; i < MAPPING_TABLE_COUNT; i++) { - TLB_manager_mapping_table[i].entry1 = '\0'; - TLB_manager_mapping_table[i].entry0 = '\x01'; + g_tlbmanageMappingTable[i].entry1 = 0; + g_tlbmanageMappingTable[i].entry0 = 1; } - TLB_manager_mapping_table_end = 0x7fc65bf0; - ptr_TLBallocatedblock = (u8 (*) [8192])&_tlbbufSegmentStart; + g_tlbmanageTlbAllocatedBlock = (u8(*)[TLB_ALLOCATION_BLOCK_SIZE]) (((u32)&sp_boot & ~0x1FFF) + 0xFFF4C000); + g_tlbmanageMappingTableEnd = ((u32)&g_tlbmanageMangementTable) + 0xFFC08000; } -#else -GLOBAL_ASM( -glabel establish_TLB_buffer_management_table -/* 0023E0 700017E0 3C038006 */ lui $v1, %hi(TLB_managment_table) -/* 0023E4 700017E4 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table) -/* 0023E8 700017E8 2442E3F0 */ addiu $v0, %lo(TLB_manager_mapping_table) # addiu $v0, $v0, -0x1c10 -/* 0023EC 700017EC 2463DBF0 */ addiu $v1, %lo(TLB_managment_table) # addiu $v1, $v1, -0x2410 -/* 0023F0 700017F0 24040001 */ li $a0, 1 -.L700017F4: -/* 0023F4 700017F4 24630010 */ addiu $v1, $v1, 0x10 -/* 0023F8 700017F8 0062082B */ sltu $at, $v1, $v0 -/* 0023FC 700017FC AC64FFF0 */ sw $a0, -0x10($v1) -/* 002400 70001800 1420FFFC */ bnez $at, .L700017F4 -/* 002404 70001804 AC60FFF4 */ sw $zero, -0xc($v1) -/* 002408 70001808 3C018006 */ lui $at, %hi(TLB_manager_mapping_table + 2) -/* 00240C 7000180C 3C038006 */ lui $v1, %hi(TLB_manager_mapping_table + 4) -/* 002410 70001810 3C028006 */ lui $v0, %hi(TLB_manager_mapping_table_end) -/* 002414 70001814 2442E4A4 */ addiu $v0, %lo(TLB_manager_mapping_table_end) # addiu $v0, $v0, -0x1b5c -/* 002418 70001818 2463E3F4 */ addiu $v1, %lo(TLB_manager_mapping_table + 4) # addiu $v1, $v1, -0x1c0c -/* 00241C 7000181C A020E3F1 */ sb $zero, %lo(TLB_manager_mapping_table + 1)($at) -/* 002420 70001820 A024E3F0 */ sb $a0, %lo(TLB_manager_mapping_table)($at) -/* 002424 70001824 A020E3F3 */ sb $zero, %lo(TLB_manager_mapping_table + 3)($at) -/* 002428 70001828 A024E3F2 */ sb $a0, %lo(TLB_manager_mapping_table + 2)($at) -.L7000182C: -/* 00242C 7000182C 24630008 */ addiu $v1, $v1, 8 -/* 002430 70001830 A060FFFB */ sb $zero, -5($v1) -/* 002434 70001834 A064FFFA */ sb $a0, -6($v1) -/* 002438 70001838 A060FFFD */ sb $zero, -3($v1) -/* 00243C 7000183C A064FFFC */ sb $a0, -4($v1) -/* 002440 70001840 A060FFFF */ sb $zero, -1($v1) -/* 002444 70001844 A064FFFE */ sb $a0, -2($v1) -/* 002448 70001848 A060FFF9 */ sb $zero, -7($v1) -/* 00244C 7000184C 1462FFF7 */ bne $v1, $v0, .L7000182C -/* 002450 70001850 A064FFF8 */ sb $a0, -8($v1) -/* 002454 70001854 3C0E803B */ lui $t6, %hi(sp_boot) # $t6, 0x803b -/* 002458 70001858 25CEB400 */ addiu $t6, %lo(sp_boot) # addiu $t6, $t6, -0x4c00 -/* 00245C 7000185C 2401E000 */ li $at, -8192 -/* 002460 70001860 01C17824 */ and $t7, $t6, $at -/* 002464 70001864 3C01FFF4 */ lui $at, (0xFFF4C000 >> 16) # lui $at, 0xfff4 -/* 002468 70001868 3421C000 */ ori $at, (0xFFF4C000 & 0xFFFF) # ori $at, $at, 0xc000 -/* 00246C 7000186C 01E1C021 */ addu $t8, $t7, $at -/* 002470 70001870 3C018006 */ lui $at, %hi(ptr_TLBallocatedblock) -/* 002474 70001874 AC38E4A8 */ sw $t8, %lo(ptr_TLBallocatedblock)($at) -/* 002478 70001878 3C01FFC0 */ lui $at, (0xFFC08000 >> 16) # lui $at, 0xffc0 -/* 00247C 7000187C 3C198006 */ lui $t9, %hi(TLB_managment_table) -/* 002480 70001880 2739DBF0 */ addiu $t9, %lo(TLB_managment_table) # addiu $t9, $t9, -0x2410 -/* 002484 70001884 34218000 */ ori $at, (0xFFC08000 & 0xFFFF) # ori $at, $at, 0x8000 -/* 002488 70001888 03214021 */ addu $t0, $t9, $at -/* 00248C 7000188C 3C018006 */ lui $at, %hi(TLB_manager_mapping_table_end) -/* 002490 70001890 03E00008 */ jr $ra -/* 002494 70001894 AC28E4A4 */ sw $t0, %lo(TLB_manager_mapping_table_end)($at) -) -#endif - /** - * 2498 70001898 - * ???; pointless conditional tests, will reset 800230D0 + * Sets g_tlbmanageCurrentTlbEntries to zero. */ -#ifdef NONMATCHING -s32 mp_tlb_related(void) +void tlbmanageResetCurrentEntriesCount(void) { - s32 temp_v0; + s32 *t = &g_tlbmanageCurrentTlbEntries; - temp_v0 = maybe_cur_TLB_entries; - if ((temp_v0 >= 0x33) || (temp_v0 < 0x1A)) + if (g_tlbmanageCurrentTlbEntries < 51) { - + if (g_tlbmanageCurrentTlbEntries < 26) + { + s32 t3 = *t; + if (t3) + { + // removed + } + } } - maybe_cur_TLB_entries = 0; - return temp_v0; + + g_tlbmanageCurrentTlbEntries = 0; } -#else -GLOBAL_ASM( -glabel mp_tlb_related -/* 002498 70001898 3C038002 */ lui $v1, %hi(maybe_cur_TLB_entries) -/* 00249C 7000189C 246330D0 */ addiu $v1, %lo(maybe_cur_TLB_entries) # addiu $v1, $v1, 0x30d0 -/* 0024A0 700018A0 8C620000 */ lw $v0, ($v1) -/* 0024A4 700018A4 28410033 */ slti $at, $v0, 0x33 -/* 0024A8 700018A8 10200003 */ beqz $at, .L700018B8 -/* 0024AC 700018AC 2841001A */ slti $at, $v0, 0x1a -/* 0024B0 700018B0 10200001 */ beqz $at, .L700018B8 -/* 0024B4 700018B4 00000000 */ nop -.L700018B8: -/* 0024B8 700018B8 03E00008 */ jr $ra -/* 0024BC 700018BC AC600000 */ sw $zero, ($v1) -) -#endif /** - * 24C0 700018C0 + * 24C0 700018C0 * searches TLB index for an entry matching A0 - * V0=index of match or 80000000 if not found - * accepts: A0=TLB pointer + * V0=index of match or 80000000 if not found + * accepts: A0=TLB pointer */ -s32 return_TLB_index_for_entry(int entry) { +s32 tlbmanageGetIndexForEntry(int entry) +{ s32 index = 0; - while (index != 0x20) { - if (__osGetTLBHi(index) == entry) { + + while (index != CPU_ARCH_MAX_TLB_ENTRIES) + { + if (__osGetTLBHi(index) == entry) + { return index; } + index++; - }; + } + return -0x80000000; } /** - * 2520 70001920 + * 2520 70001920 * find and remove TLB entry A0 - * accepts: A0=TLB pointer - * redirects to 700018C0, 7000D3D0 + * accepts: A0=TLB pointer + * redirects to 700018C0, 7000D3D0 */ -void find_remove_TLB_entry(u32 entry) { - s32 index = return_TLB_index_for_entry(entry); +void tlbmanageRemoveEntry(u32 entry) +{ + s32 index = tlbmanageGetIndexForEntry(entry); - if ((index & 0x80000000)) + if (index & 0x80000000) + { return; + } osUnmapTLB(index); } /** - * 2554 70001954 + * 2554 70001954 * remove index A0 TLB entry from table at 8005E3F0 - * table format: - * 0x0 1 if dirty - * 0x1 chunk # (7F000000 | chunk<unk1 << 0xd) | 0x7f000000)); - if ((temp_ret << 0) >= 0) + ret = tlbmanageGetIndexForEntry(VAL_TO_TLB_MASK(g_tlbmanageMappingTable[index].entry1) | 0x7F000000); + + if (!(ret & 0x80000000)) { - sp18 = temp_v1; - osUnmapTLB(temp_ret); + osUnmapTLB(ret); } - (0x80060000 + (temp_v1->unk1 * 0x10))->unk-2410 = 1; - *temp_v1 = 1; + + g_tlbmanageMangementTable[g_tlbmanageMappingTable[index].entry1].contextValue = 1; + g_tlbmanageMappingTable[index].entry0 = 1; } } -#else -GLOBAL_ASM( -glabel remove_TLB_entry_from_table -/* 002554 70001954 3C0F8006 */ lui $t7, %hi(TLB_manager_mapping_table) -/* 002558 70001958 25EFE3F0 */ addiu $t7, %lo(TLB_manager_mapping_table) # addiu $t7, $t7, -0x1c10 -/* 00255C 7000195C 00047040 */ sll $t6, $a0, 1 -/* 002560 70001960 01CF1821 */ addu $v1, $t6, $t7 -/* 002564 70001964 90780000 */ lbu $t8, ($v1) -/* 002568 70001968 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 00256C 7000196C AFBF0014 */ sw $ra, 0x14($sp) -/* 002570 70001970 57000016 */ bnezl $t8, .L700019CC -/* 002574 70001974 8FBF0014 */ lw $ra, 0x14($sp) -/* 002578 70001978 90640001 */ lbu $a0, 1($v1) -/* 00257C 7000197C 3C017F00 */ lui $at, 0x7f00 -/* 002580 70001980 AFA30018 */ sw $v1, 0x18($sp) -/* 002584 70001984 0004CB40 */ sll $t9, $a0, 0xd -/* 002588 70001988 0C000630 */ jal return_TLB_index_for_entry -/* 00258C 7000198C 03212025 */ or $a0, $t9, $at -/* 002590 70001990 00024800 */ sll $t1, $v0, 0 -/* 002594 70001994 8FA30018 */ lw $v1, 0x18($sp) -/* 002598 70001998 05200004 */ bltz $t1, .L700019AC -/* 00259C 7000199C 00402025 */ move $a0, $v0 -/* 0025A0 700019A0 0C0034F4 */ jal osUnmapTLB -/* 0025A4 700019A4 AFA30018 */ sw $v1, 0x18($sp) -/* 0025A8 700019A8 8FA30018 */ lw $v1, 0x18($sp) -.L700019AC: -/* 0025AC 700019AC 906A0001 */ lbu $t2, 1($v1) -/* 0025B0 700019B0 3C018006 */ lui $at, %hi(TLB_managment_table) -/* 0025B4 700019B4 24020001 */ li $v0, 1 -/* 0025B8 700019B8 000A5900 */ sll $t3, $t2, 4 -/* 0025BC 700019BC 002B0821 */ addu $at, $at, $t3 -/* 0025C0 700019C0 AC22DBF0 */ sw $v0, %lo(TLB_managment_table)($at) -/* 0025C4 700019C4 A0620000 */ sb $v0, ($v1) -/* 0025C8 700019C8 8FBF0014 */ lw $ra, 0x14($sp) -.L700019CC: -/* 0025CC 700019CC 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0025D0 700019D0 03E00008 */ jr $ra -/* 0025D4 700019D4 00000000 */ nop -) -#endif /** - * 25D8 700019D8 + * 25D8 700019D8 * loads ROM range for 7F- TLB entries */ -#ifdef NONMATCHING -void translate_load_rom_from_TLBaddress(u32 address) +void tlbmanageTranslateLoadRomFromTlbAddress(u32 address) { - //uint randval; - //u32 uVar1; - //u8 (*src) [8192]; - //u32 uVar2; - u32 tlbnum; - - maybe_cur_TLB_entries += 1; - find_remove_TLB_entry(address & 0x7fffe000); + u32 unused_0[1]; + u32 var1; + u32 var2; + u32 var4; + u32 unused_1[1]; + u32 addr_copy; + u8 *var5; // sp 52 + u32 unused_2[1]; + u32 unused_3[1]; - tlbnum = return_tlb_random_value() % 0x5a; - tlb_segment_num = tlbnum; - remove_TLB_entry_from_table(tlbnum); + addr_copy = address & 0x7FFFE000; + g_tlbmanageCurrentTlbEntries++; + tlbmanageRemoveEntry(addr_copy); + g_tlbmanageTlbSegmentNumber = tlbRandomGetNext() % TLB_RANDOM_MOD; + var4 = g_tlbmanageTlbSegmentNumber; + tlbmanageRemoveEntryByIndex(var4); + + // This is treated as a TLB mask a few lines later. + // Some (some ...) documentation implies the mask should be 12 bits, but this is only 11 (losing highest bit). + var1 = addr_copy & 0xFFE000; + var5 = &(*g_tlbmanageTlbAllocatedBlock)[VAL_TO_TLB_MASK(var4)]; - romCopy(ptr_TLBallocatedblock[tlbnum], ((address & 0xffe000) + &_gameSegmentRomStart), 0x2000); - osInvalICache(0x40000000, 0x40000000); - osInvalICache(0x80000000, 0x10000000); + romCopy(var5, (void*)(((u32)&_gameSegmentRomStart) + (u32)var1), TLB_ALLOCATION_BLOCK_SIZE); - TLB_managment_table[(address & 0xffe000) >> 0xd].pagenum = tlbnum; - TLB_manager_mapping_table[tlbnum].entry0 = '\0'; - TLB_manager_mapping_table[tlbnum].entry1 = (address & 0xffe000) >> 0xd; - TLB_managment_table[(address & 0xffe000) >> 0xd].context_value = (osVirtualToPhysical(ptr_TLBallocatedblock[tlbnum]) >> 0xc) << 6 | 0x1f; + osInvalICache((void *)0x40000000, 0x40000000); + osInvalICache((void *)0x80000000, 0x10000000); + var2 = TLB_MASK_TO_VAL(var1); + g_tlbmanageMangementTable[var2].pagenum = var4; + + // Gets physical address for "var5", then sets the lowest six bits to 0x1F + g_tlbmanageMangementTable[var2].contextValue = ((osVirtualToPhysical(var5) >> 0xC) << 6) | 0x1F; + g_tlbmanageMappingTable[var4].entry0 = 0; + g_tlbmanageMappingTable[var4].entry1 = var2; } -#else -GLOBAL_ASM( -glabel translate_load_rom_from_TLBaddress -/* 0025D8 700019D8 3C028002 */ lui $v0, %hi(maybe_cur_TLB_entries) -/* 0025DC 700019DC 244230D0 */ addiu $v0, %lo(maybe_cur_TLB_entries) # addiu $v0, $v0, 0x30d0 -/* 0025E0 700019E0 8C4E0000 */ lw $t6, ($v0) -/* 0025E4 700019E4 3C017FFF */ lui $at, (0x7FFFE000 >> 16) # lui $at, 0x7fff -/* 0025E8 700019E8 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0025EC 700019EC 3421E000 */ ori $at, (0x7FFFE000 & 0xFFFF) # ori $at, $at, 0xe000 -/* 0025F0 700019F0 AFBF001C */ sw $ra, 0x1c($sp) -/* 0025F4 700019F4 00812024 */ and $a0, $a0, $at -/* 0025F8 700019F8 25CF0001 */ addiu $t7, $t6, 1 -/* 0025FC 700019FC AFB00018 */ sw $s0, 0x18($sp) -/* 002600 70001A00 AC4F0000 */ sw $t7, ($v0) -/* 002604 70001A04 0C000648 */ jal find_remove_TLB_entry -/* 002608 70001A08 AFA40028 */ sw $a0, 0x28($sp) -/* 00260C 70001A0C 0C0006C4 */ jal return_tlb_random_value -/* 002610 70001A10 00000000 */ nop -/* 002614 70001A14 2401005A */ li $at, 90 -/* 002618 70001A18 0041001B */ divu $zero, $v0, $at -/* 00261C 70001A1C 00002010 */ mfhi $a0 -/* 002620 70001A20 3C038002 */ lui $v1, %hi(tlb_segment_num) -/* 002624 70001A24 246330D4 */ addiu $v1, %lo(tlb_segment_num) # addiu $v1, $v1, 0x30d4 -/* 002628 70001A28 AC640000 */ sw $a0, ($v1) -/* 00262C 70001A2C 0C000655 */ jal remove_TLB_entry_from_table -/* 002630 70001A30 00808025 */ move $s0, $a0 -/* 002634 70001A34 8FA20028 */ lw $v0, 0x28($sp) -/* 002638 70001A38 3C198006 */ lui $t9, %hi(ptr_TLBallocatedblock) -/* 00263C 70001A3C 8F39E4A8 */ lw $t9, %lo(ptr_TLBallocatedblock)($t9) -/* 002640 70001A40 3C0100FF */ lui $at, (0x00FFE000 >> 16) # lui $at, 0xff -/* 002644 70001A44 3421E000 */ ori $at, (0x00FFE000 & 0xFFFF) # ori $at, $at, 0xe000 -/* 002648 70001A48 00104340 */ sll $t0, $s0, 0xd -/* 00264C 70001A4C 3C0A0003 */ lui $t2, %hi(_gameSegmentRomStart) # $t2, 3 -/* 002650 70001A50 00414824 */ and $t1, $v0, $at -/* 002654 70001A54 254A4B30 */ addiu $t2, %lo(_gameSegmentRomStart) # addiu $t2, $t2, 0x4b30 -/* 002658 70001A58 03282021 */ addu $a0, $t9, $t0 -/* 00265C 70001A5C AFA40034 */ sw $a0, 0x34($sp) -/* 002660 70001A60 012A2821 */ addu $a1, $t1, $t2 -/* 002664 70001A64 01201025 */ move $v0, $t1 -/* 002668 70001A68 AFA90024 */ sw $t1, 0x24($sp) -/* 00266C 70001A6C 0C001707 */ jal romCopy -/* 002670 70001A70 24062000 */ li $a2, 8192 -/* 002674 70001A74 3C044000 */ lui $a0, 0x4000 -/* 002678 70001A78 0C0034D4 */ jal osInvalICache -/* 00267C 70001A7C 3C054000 */ lui $a1, 0x4000 -/* 002680 70001A80 3C048000 */ lui $a0, 0x8000 -/* 002684 70001A84 0C0034D4 */ jal osInvalICache -/* 002688 70001A88 3C051000 */ lui $a1, 0x1000 -/* 00268C 70001A8C 8FA50024 */ lw $a1, 0x24($sp) -/* 002690 70001A90 3C0D8006 */ lui $t5, %hi(TLB_managment_table) -/* 002694 70001A94 25ADDBF0 */ addiu $t5, %lo(TLB_managment_table) # addiu $t5, $t5, -0x2410 -/* 002698 70001A98 00055B42 */ srl $t3, $a1, 0xd -/* 00269C 70001A9C 000B6100 */ sll $t4, $t3, 4 -/* 0026A0 70001AA0 018D3021 */ addu $a2, $t4, $t5 -/* 0026A4 70001AA4 ACD00004 */ sw $s0, 4($a2) -/* 0026A8 70001AA8 AFA60020 */ sw $a2, 0x20($sp) -/* 0026AC 70001AAC AFAB0028 */ sw $t3, 0x28($sp) -/* 0026B0 70001AB0 0C003A2C */ jal osVirtualToPhysical -/* 0026B4 70001AB4 8FA40034 */ lw $a0, 0x34($sp) -/* 0026B8 70001AB8 8FBF001C */ lw $ra, 0x1c($sp) -/* 0026BC 70001ABC 00027302 */ srl $t6, $v0, 0xc -/* 0026C0 70001AC0 0010C840 */ sll $t9, $s0, 1 -/* 0026C4 70001AC4 3C088006 */ lui $t0, %hi(TLB_manager_mapping_table) -/* 0026C8 70001AC8 8FA50028 */ lw $a1, 0x28($sp) -/* 0026CC 70001ACC 8FA60020 */ lw $a2, 0x20($sp) -/* 0026D0 70001AD0 000E7980 */ sll $t7, $t6, 6 -/* 0026D4 70001AD4 2508E3F0 */ addiu $t0, %lo(TLB_manager_mapping_table) # addiu $t0, $t0, -0x1c10 -/* 0026D8 70001AD8 35F8001F */ ori $t8, $t7, 0x1f -/* 0026DC 70001ADC 03281821 */ addu $v1, $t9, $t0 -/* 0026E0 70001AE0 8FB00018 */ lw $s0, 0x18($sp) -/* 0026E4 70001AE4 A0600000 */ sb $zero, ($v1) -/* 0026E8 70001AE8 27BD0050 */ addiu $sp, $sp, 0x50 -/* 0026EC 70001AEC A0650001 */ sb $a1, 1($v1) -/* 0026F0 70001AF0 03E00008 */ jr $ra -/* 0026F4 70001AF4 ACD80000 */ sw $t8, ($a2) -) -#endif /** - * 26F8 70001AF8 + * 26F8 70001AF8 * V0=p->TLB memory, or alternately end of free memory [8005E4A8] + * Returns pointer to (an array of TLB blocksize). */ -u8 * return_ptr_TLBallocatedblock(void) +u8 (*tlbmanageGetTlbAllocatedBlock(void))[TLB_ALLOCATION_BLOCK_SIZE] { - return ptr_TLBallocatedblock; + return g_tlbmanageTlbAllocatedBlock; } - - - - - - diff --git a/src/tlb_manage.h b/src/tlb_manage.h index de5bf66..6cb80e6 100644 --- a/src/tlb_manage.h +++ b/src/tlb_manage.h @@ -2,17 +2,14 @@ #define _TLB_MANAGE_H_ #include "ultra64.h" -struct s_tlbmanage_table_entry -{ - s32 context_value; - s32 pagenum; - s64 RESERVED; -}; +/** + * Block size, in bytes. + */ +#define TLB_ALLOCATION_BLOCK_SIZE 0x2000 -struct s_tlbmapping_table_entry -{ - u8 entry0; - u8 entry1; -}; +void tlbmanageEstablishManagementTable(void); +void tlbmanageResetCurrentEntriesCount(void); +void tlbmanageTranslateLoadRomFromTlbAddress(u32 address); +u8 (*tlbmanageGetTlbAllocatedBlock(void))[TLB_ALLOCATION_BLOCK_SIZE]; #endif diff --git a/src/tlb_random.c b/src/tlb_random.c index 5d84f4e..74eb139 100644 --- a/src/tlb_random.c +++ b/src/tlb_random.c @@ -2,32 +2,41 @@ /** * @file tlb_random.c - * This file contains code to get a random tlb value. - * + * This file contains code to get a random tlb value. + * The methods here are the same as in random and chrObjRandom (but different globals). */ -u64 tlb_random_seed = 0xAB8D9F7781280783; +u64 g_tlbRandomSeed = 0xAB8D9F7781280783; /** * 2710 70001B10 * V0= random value for TLB random entries [800230E0] + * Same assembly instructions as randomGetNext and chrObjRandomGetNext, but different globals. */ #ifdef NONMATCHING -u32 return_tlb_random_value(void) +s32 tlbRandomGetNext(void) { - tlb_random_seed = - ((tlb_random_seed << 0x3f) >> 0x1f | (tlb_random_seed << 0x1f) >> 0x20) ^ - (tlb_random_seed << 0x2c) >> 0x20; - tlb_random_seed = tlb_random_seed >> 0x14 & 0xfff ^ tlb_random_seed; - return (u32)tlb_random_seed; + // best guess comments copied from random.c + + // best -O1 guess + // g_randomSeed ^= (((((g_randomSeed << 0x3f) >> 0x1f) | ((g_randomSeed << 0x1f) >> 0x20)) ^ ((g_randomSeed << 0x2c) >> 0x20)) >> 0x14) & 0xfff; + // return (s32)(g_randomSeed); + + // best -O2 guess + // u64 t = ((g_randomSeed << 0x3f) >> 0x1f); + // t |= ((g_randomSeed << 0x1f) >> 0x20); + // t ^= ((g_randomSeed << 0x2c) >> 0x20); + // t = g_randomSeed ^ ((t >> 0x14) & 0xfff); + // g_randomSeed = t; + // return (s32)(t); } #else GLOBAL_ASM( .text -glabel return_tlb_random_value -/* 002710 70001B10 3C048002 */ lui $a0, %hi(tlb_random_seed) -/* 002714 70001B14 DC8430E0 */ ld $a0, %lo(tlb_random_seed)($a0) -/* 002718 70001B18 3C018002 */ lui $at, %hi(tlb_random_seed) +glabel tlbRandomGetNext +/* 002710 70001B10 3C048002 */ lui $a0, %hi(g_tlbRandomSeed) +/* 002714 70001B14 DC8430E0 */ ld $a0, %lo(g_tlbRandomSeed)($a0) +/* 002718 70001B18 3C018002 */ lui $at, %hi(g_tlbRandomSeed) /* 00271C 70001B1C 000437FC */ dsll32 $a2, $a0, 0x1f /* 002720 70001B20 00042FF8 */ dsll $a1, $a0, 0x1f /* 002724 70001B24 000637FA */ dsrl $a2, $a2, 0x1f @@ -40,7 +49,7 @@ glabel return_tlb_random_value /* 002740 70001B40 30840FFF */ andi $a0, $a0, 0xfff /* 002744 70001B44 00862026 */ xor $a0, $a0, $a2 /* 002748 70001B48 0004103C */ dsll32 $v0, $a0, 0 -/* 00274C 70001B4C FC2430E0 */ sd $a0, %lo(tlb_random_seed)($at) +/* 00274C 70001B4C FC2430E0 */ sd $a0, %lo(g_tlbRandomSeed)($at) /* 002750 70001B50 03E00008 */ jr $ra /* 002754 70001B54 0002103F */ dsra32 $v0, $v0, 0 ) diff --git a/src/tlb_random.h b/src/tlb_random.h index 1f196ca..5e43db8 100644 --- a/src/tlb_random.h +++ b/src/tlb_random.h @@ -3,7 +3,7 @@ #include "ultra64.h" -extern u32 return_tlb_random_value(void); +extern u32 tlbRandomGetNext(void); #endif diff --git a/src/tlb_resolve.s b/src/tlb_resolve.s index 5454c03..a77c242 100644 --- a/src/tlb_resolve.s +++ b/src/tlb_resolve.s @@ -11,8 +11,8 @@ glabel resolve_TLBaddress_for_InvalidHit /* 002760 70001B60 40802800 */ mtc0 $zero, $5 /* 002764 70001B64 00000000 */ nop /* 002768 70001B68 401A2000 */ mfc0 $k0, $4 -/* 00276C 70001B6C 3C1B8006 */ lui $k1, %hi(TLB_manager_mapping_table_end) # $k1, 0x8006 -/* 002770 70001B70 277BE4A4 */ addiu $k1, %lo(TLB_manager_mapping_table_end) # addiu $k1, $k1, -0x1b5c +/* 00276C 70001B6C 3C1B8006 */ lui $k1, %hi(g_tlbmanageMappingTableEnd) # $k1, 0x8006 +/* 002770 70001B70 277BE4A4 */ addiu $k1, %lo(g_tlbmanageMappingTableEnd) # addiu $k1, $k1, -0x1b5c /* 002774 70001B74 8F7B0000 */ lw $k1, ($k1) /* 002778 70001B78 035BD021 */ addu $k0, $k0, $k1 /* 00277C 70001B7C 8F5B0000 */ lw $k1, ($k0) diff --git a/src/token.c b/src/token.c index 6507dbc..7eab85d 100644 --- a/src/token.c +++ b/src/token.c @@ -1,361 +1,84 @@ -#include "ultra64.h" +#include "token.h" #include "pi.h" #include "snd.h" #include "game/lvl_text.h" +#include "rmon.h" +#include "str.h" +u32 g_TokenString[160]; +s32 g_TokenCount = 1; +const char *g_Tokens[35] = {0}; -//OSMesg boot_token_from_indy[160]; -char boot_token_from_indy[0x280]; -s32 strstr_numstings = 1; -s32 strstr_ptrcurrent_string = 0; -u32 D_80024478[34] = {0}; - - -//const char str_empty[] = ""; - - - - - - -#ifdef NONMATCHING -void *check_string_something(void *arg0) +// Splits a string into tokens delimited by spaces and stores +// them in g_Tokens. +unsigned char *tokenSplit(unsigned char *str) { - s32 temp_v0; - s32 temp_v0_2; - void *temp_a0; - void *temp_a0_2; - s32 phi_v0; - void *phi_a0; - void *phi_a0_2; - void *phi_a0_3; - s32 phi_v0_2; - void *phi_a0_4; - void *phi_a0_5; - void *phi_a0_6; + unsigned char c; + g_Tokens[0] = ""; + g_TokenCount = 1; + while ((s32)*str) { + while (*str == ' ') { + *str++ = '\0'; + } + g_Tokens[g_TokenCount++] = str; + while (*str > ' ') { + str++; + } + } + return str; +} - strstr_ptrcurrent_string = &str_empty; - strstr_numstings = 1; - phi_v0 = *arg0; - phi_a0_4 = arg0; - phi_a0_5 = arg0; - if (*arg0 != 0) - { -loop_1: - phi_a0 = phi_a0_5; - phi_a0_2 = phi_a0_5; - if (0x20 == phi_v0) - { -loop_2: - phi_a0->unk0 = (u8)0; - temp_a0 = phi_a0 + 1; - phi_a0 = temp_a0; - phi_a0_2 = temp_a0; - if (0x20 == phi_a0->unk1) - { - goto loop_2; +// Sets a new token string. +void tokenSetString(const char *str) { + strcpy(g_TokenString, str); + tokenSplit(g_TokenString); +} + +// Reads a new token string from the PI device at address 0xFFB000. Also handles the +// -d (debug), -s (sound) and -j (japanese) switches. +s32 tokenReadIo(void) +{ + u32 *ptr; + u32 *end; + u32 address; + s32 debug = FALSE; + address = 0xFFB000; + if (rmonIsFinalBuild()) { + g_TokenString[0] = 0; + } else { + for (ptr = g_TokenString, end = (g_TokenString + 160); (ptr != end); ptr++) { + osPiReadIo(address, ptr); + address += sizeof(u32); + } + } + tokenSplit(g_TokenString); + if (tokenFind(1, "-d") != NULL) { + debug = TRUE; + } + if (tokenFind(1, "-s") != NULL) { + bootswitch_sound = TRUE; + } + if (tokenFind(1, "-j") != NULL) { + j_text_trigger = TRUE; + } + return debug; +} + +// Attempts to find the specified token in g_Tokens. If successful, +// returns a pointer to the start of the value following the token, +// otherwise it returns NULL. E.g. if the token string was "-abc 123", then +// tokenFind(1, "-abc") would return " 123". The index is used in cases where +// the same token appears multiple times. Note that the index is 1-based. +const char *tokenFind(s32 index, const char *token) +{ + s32 length = strlen(token); + s32 i = 1; + for (; i < g_TokenCount; i++) { + if (strncmp(token, g_Tokens[i], length) == 0) { + if (--index == 0) { + return (g_Tokens[i] + length); } } - *(&strstr_ptrcurrent_string + (strstr_numstings * 4)) = (void *) phi_a0_2; - strstr_numstings = (s32) (strstr_numstings + 1); - temp_v0 = *phi_a0_2; - phi_a0_3 = phi_a0_2; - phi_v0_2 = temp_v0; - phi_a0_6 = phi_a0_2; - if (temp_v0 >= 0x21) - { -loop_4: - temp_v0_2 = phi_a0_3->unk1; - temp_a0_2 = phi_a0_3 + 1; - phi_a0_3 = temp_a0_2; - phi_v0_2 = temp_v0_2; - phi_a0_6 = temp_a0_2; - if (temp_v0_2 >= 0x21) - { - goto loop_4; - } - } - phi_v0 = phi_v0_2; - phi_a0_4 = phi_a0_6; - phi_a0_5 = phi_a0_6; - if (phi_v0_2 != 0) - { - goto loop_1; - } } - return phi_a0_4; + return NULL; } -#else -GLOBAL_ASM( -.late_rodata -glabel str_empty -.word 0x0 -.text -glabel check_string_something -/* 00B0F0 7000A4F0 3C058002 */ lui $a1, %hi(strstr_ptrcurrent_string) -/* 00B0F4 7000A4F4 3C068002 */ lui $a2, %hi(strstr_numstings) -/* 00B0F8 7000A4F8 3C0E8003 */ lui $t6, %hi(str_empty) -/* 00B0FC 7000A4FC 24C64470 */ addiu $a2, %lo(strstr_numstings) # addiu $a2, $a2, 0x4470 -/* 00B100 7000A500 24A54474 */ addiu $a1, %lo(strstr_ptrcurrent_string) # addiu $a1, $a1, 0x4474 -/* 00B104 7000A504 25CE91F0 */ addiu $t6, %lo(str_empty) # addiu $t6, $t6, -0x6e10 -/* 00B108 7000A508 240F0001 */ li $t7, 1 -/* 00B10C 7000A50C ACAE0000 */ sw $t6, ($a1) -/* 00B110 7000A510 ACCF0000 */ sw $t7, ($a2) -/* 00B114 7000A514 90820000 */ lbu $v0, ($a0) -/* 00B118 7000A518 24070020 */ li $a3, 32 -/* 00B11C 7000A51C 10400019 */ beqz $v0, .L7000A584 -/* 00B120 7000A520 00000000 */ nop -.L7000A524: -/* 00B124 7000A524 54E20007 */ bnel $a3, $v0, .L7000A544 -/* 00B128 7000A528 8CC30000 */ lw $v1, ($a2) -/* 00B12C 7000A52C 90980001 */ lbu $t8, 1($a0) -.L7000A530: -/* 00B130 7000A530 A0800000 */ sb $zero, ($a0) -/* 00B134 7000A534 24840001 */ addiu $a0, $a0, 1 -/* 00B138 7000A538 50F8FFFD */ beql $a3, $t8, .L7000A530 -/* 00B13C 7000A53C 90980001 */ lbu $t8, 1($a0) -/* 00B140 7000A540 8CC30000 */ lw $v1, ($a2) -.L7000A544: -/* 00B144 7000A544 0003C880 */ sll $t9, $v1, 2 -/* 00B148 7000A548 00B94021 */ addu $t0, $a1, $t9 -/* 00B14C 7000A54C AD040000 */ sw $a0, ($t0) -/* 00B150 7000A550 24690001 */ addiu $t1, $v1, 1 -/* 00B154 7000A554 ACC90000 */ sw $t1, ($a2) -/* 00B158 7000A558 90820000 */ lbu $v0, ($a0) -/* 00B15C 7000A55C 28410021 */ slti $at, $v0, 0x21 -/* 00B160 7000A560 14200006 */ bnez $at, .L7000A57C -/* 00B164 7000A564 00000000 */ nop -/* 00B168 7000A568 90820001 */ lbu $v0, 1($a0) -.L7000A56C: -/* 00B16C 7000A56C 24840001 */ addiu $a0, $a0, 1 -/* 00B170 7000A570 28410021 */ slti $at, $v0, 0x21 -/* 00B174 7000A574 5020FFFD */ beql $at, $zero, .L7000A56C -/* 00B178 7000A578 90820001 */ lbu $v0, 1($a0) -.L7000A57C: -/* 00B17C 7000A57C 1440FFE9 */ bnez $v0, .L7000A524 -/* 00B180 7000A580 00000000 */ nop -.L7000A584: -/* 00B184 7000A584 03E00008 */ jr $ra -/* 00B188 7000A588 00801025 */ move $v0, $a0 -) -#endif - - -void strtok(s32 arg0) { - textpointer_load_parse_something(&boot_token_from_indy, arg0); - check_string_something(&boot_token_from_indy); -} - -//const char aD_6[] = "-d"; -//const char aS_2[] = "-s"; -//const char aJ[] = "-j"; - -#ifdef NONMATCHING -s32 check_boot_switches(void) -{ - s32 is_debug; - s32 devAddr; - u32 *data; - - is_debug = 0; - if (rmon_debug_is_final_build() != 0) - { - boot_token_from_indy[0] = 0; - } - else - { - for (devAddr = 0xffb000, data = &boot_token_from_indy; data != &piCmdBuf; data += 4, devAddr += 4) - { - osPiReadIo(devAddr, data); - } - } - check_string_something(&boot_token_from_indy); - - is_debug = (check_token(1, "-d") != 0); - - if (check_token(1, "-s") != 0) { - bootswitch_sound = 1; - } - - if (check_token(1, "-j") != 0) { - j_text_trigger = 1; - } - - return is_debug; -} -#else -GLOBAL_ASM( -.late_rodata -glabel aD_6 -.word 0x2d640000 -glabel aS_2 -.word 0x2d730000 -glabel aJ -.word 0x2d6a0000 -.text -glabel check_boot_switches -/* 00B1C0 7000A5C0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 00B1C4 7000A5C4 AFB1001C */ sw $s1, 0x1c($sp) -/* 00B1C8 7000A5C8 AFBF0024 */ sw $ra, 0x24($sp) -/* 00B1CC 7000A5CC 3C1100FF */ lui $s1, 0xff -/* 00B1D0 7000A5D0 AFB20020 */ sw $s2, 0x20($sp) -/* 00B1D4 7000A5D4 AFB00018 */ sw $s0, 0x18($sp) -/* 00B1D8 7000A5D8 AFA00028 */ sw $zero, 0x28($sp) -/* 00B1DC 7000A5DC 0C0033AA */ jal rmon_debug_is_final_build -/* 00B1E0 7000A5E0 3631B000 */ ori $s1, $s1, 0xb000 -/* 00B1E4 7000A5E4 10400004 */ beqz $v0, .L7000A5F8 -/* 00B1E8 7000A5E8 3C108006 */ lui $s0, %hi(boot_token_from_indy) -/* 00B1EC 7000A5EC 3C018006 */ lui $at, %hi(boot_token_from_indy) -/* 00B1F0 7000A5F0 1000000A */ b .L7000A61C -/* 00B1F4 7000A5F4 AC204C30 */ sw $zero, %lo(boot_token_from_indy)($at) -.L7000A5F8: -/* 00B1F8 7000A5F8 3C128006 */ lui $s2, %hi(piCmdBuf) -/* 00B1FC 7000A5FC 26524EB0 */ addiu $s2, %lo(piCmdBuf) # addiu $s2, $s2, 0x4eb0 -/* 00B200 7000A600 26104C30 */ addiu $s0, %lo(boot_token_from_indy) # addiu $s0, $s0, 0x4c30 -.L7000A604: -/* 00B204 7000A604 02202025 */ move $a0, $s1 -/* 00B208 7000A608 0C004E04 */ jal osPiReadIo -/* 00B20C 7000A60C 02002825 */ move $a1, $s0 -/* 00B210 7000A610 26100004 */ addiu $s0, $s0, 4 -/* 00B214 7000A614 1612FFFB */ bne $s0, $s2, .L7000A604 -/* 00B218 7000A618 26310004 */ addiu $s1, $s1, 4 -.L7000A61C: -/* 00B21C 7000A61C 3C048006 */ lui $a0, %hi(boot_token_from_indy) -/* 00B220 7000A620 0C00293C */ jal check_string_something -/* 00B224 7000A624 24844C30 */ addiu $a0, %lo(boot_token_from_indy) # addiu $a0, $a0, 0x4c30 -/* 00B228 7000A628 3C058003 */ lui $a1, %hi(aD_6) -/* 00B22C 7000A62C 24A591F4 */ addiu $a1, %lo(aD_6) # addiu $a1, $a1, -0x6e0c -/* 00B230 7000A630 0C0029A8 */ jal check_token -/* 00B234 7000A634 24040001 */ li $a0, 1 -/* 00B238 7000A638 10400003 */ beqz $v0, .L7000A648 -/* 00B23C 7000A63C 24040001 */ li $a0, 1 -/* 00B240 7000A640 240E0001 */ li $t6, 1 -/* 00B244 7000A644 AFAE0028 */ sw $t6, 0x28($sp) -.L7000A648: -/* 00B248 7000A648 3C058003 */ lui $a1, %hi(aS_2) -/* 00B24C 7000A64C 0C0029A8 */ jal check_token -/* 00B250 7000A650 24A591F8 */ addiu $a1, %lo(aS_2) # addiu $a1, $a1, -0x6e08 -/* 00B254 7000A654 10400004 */ beqz $v0, .L7000A668 -/* 00B258 7000A658 24040001 */ li $a0, 1 -/* 00B25C 7000A65C 240F0001 */ li $t7, 1 -/* 00B260 7000A660 3C018002 */ lui $at, %hi(bootswitch_sound) -/* 00B264 7000A664 A02F43F8 */ sb $t7, %lo(bootswitch_sound)($at) -.L7000A668: -/* 00B268 7000A668 3C058003 */ lui $a1, %hi(aJ) -/* 00B26C 7000A66C 0C0029A8 */ jal check_token -/* 00B270 7000A670 24A591FC */ addiu $a1, %lo(aJ) # addiu $a1, $a1, -0x6e04 -/* 00B274 7000A674 10400003 */ beqz $v0, .L7000A684 -/* 00B278 7000A678 24180001 */ li $t8, 1 -/* 00B27C 7000A67C 3C018005 */ lui $at, %hi(j_text_trigger) -/* 00B280 7000A680 AC3884D0 */ sw $t8, %lo(j_text_trigger)($at) -.L7000A684: -/* 00B284 7000A684 8FBF0024 */ lw $ra, 0x24($sp) -/* 00B288 7000A688 8FA20028 */ lw $v0, 0x28($sp) -/* 00B28C 7000A68C 8FB00018 */ lw $s0, 0x18($sp) -/* 00B290 7000A690 8FB1001C */ lw $s1, 0x1c($sp) -/* 00B294 7000A694 8FB20020 */ lw $s2, 0x20($sp) -/* 00B298 7000A698 03E00008 */ jr $ra -/* 00B29C 7000A69C 27BD0038 */ addiu $sp, $sp, 0x38 -) -#endif - - - -#ifdef NONMATCHING -s32 check_token(s32 arg0, s32 arg1) -{ - s32 temp_s1; - s32 temp_s2; - s32 temp_s3; - void *phi_s0; - s32 phi_s2; - s32 phi_s1; - - temp_s3 = strlen(arg1); - if (strstr_numstings >= 2) - { - phi_s0 = &D_80024478; - phi_s2 = arg0; - phi_s1 = 1; -loop_2: - phi_s2 = phi_s2; - if (string_related(arg1, *phi_s0, temp_s3) == 0) - { - temp_s2 = phi_s2 + -1; - phi_s2 = temp_s2; - if (temp_s2 == 0) - { - return *phi_s0 + temp_s3; - } - } - temp_s1 = phi_s1 + 1; - phi_s0 = phi_s0 + 4; - phi_s1 = temp_s1; - if (temp_s1 < strstr_numstings) - { - goto loop_2; - } - } - return 0; -} -#else -GLOBAL_ASM( -.text -glabel check_token -/* 00B2A0 7000A6A0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 00B2A4 7000A6A4 AFB2001C */ sw $s2, 0x1c($sp) -/* 00B2A8 7000A6A8 00809025 */ move $s2, $a0 -/* 00B2AC 7000A6AC AFBF002C */ sw $ra, 0x2c($sp) -/* 00B2B0 7000A6B0 AFB40024 */ sw $s4, 0x24($sp) -/* 00B2B4 7000A6B4 00A0A025 */ move $s4, $a1 -/* 00B2B8 7000A6B8 AFB50028 */ sw $s5, 0x28($sp) -/* 00B2BC 7000A6BC AFB30020 */ sw $s3, 0x20($sp) -/* 00B2C0 7000A6C0 AFB10018 */ sw $s1, 0x18($sp) -/* 00B2C4 7000A6C4 AFB00014 */ sw $s0, 0x14($sp) -/* 00B2C8 7000A6C8 0C004E1F */ jal strlen -/* 00B2CC 7000A6CC 00A02025 */ move $a0, $a1 -/* 00B2D0 7000A6D0 3C158002 */ lui $s5, %hi(strstr_numstings) -/* 00B2D4 7000A6D4 26B54470 */ addiu $s5, %lo(strstr_numstings) # addiu $s5, $s5, 0x4470 -/* 00B2D8 7000A6D8 8EAE0000 */ lw $t6, ($s5) -/* 00B2DC 7000A6DC 00409825 */ move $s3, $v0 -/* 00B2E0 7000A6E0 24110001 */ li $s1, 1 -/* 00B2E4 7000A6E4 29C10002 */ slti $at, $t6, 2 -/* 00B2E8 7000A6E8 14200014 */ bnez $at, .L7000A73C -/* 00B2EC 7000A6EC 3C108002 */ lui $s0, %hi(D_80024478) -/* 00B2F0 7000A6F0 26104478 */ addiu $s0, %lo(D_80024478) # addiu $s0, $s0, 0x4478 -/* 00B2F4 7000A6F4 02802025 */ move $a0, $s4 -.L7000A6F8: -/* 00B2F8 7000A6F8 8E050000 */ lw $a1, ($s0) -/* 00B2FC 7000A6FC 0C002A26 */ jal string_related -/* 00B300 7000A700 02603025 */ move $a2, $s3 -/* 00B304 7000A704 54400008 */ bnezl $v0, .L7000A728 -/* 00B308 7000A708 8EB80000 */ lw $t8, ($s5) -/* 00B30C 7000A70C 2652FFFF */ addiu $s2, $s2, -1 -/* 00B310 7000A710 56400005 */ bnezl $s2, .L7000A728 -/* 00B314 7000A714 8EB80000 */ lw $t8, ($s5) -/* 00B318 7000A718 8E0F0000 */ lw $t7, ($s0) -/* 00B31C 7000A71C 10000008 */ b .L7000A740 -/* 00B320 7000A720 01F31021 */ addu $v0, $t7, $s3 -/* 00B324 7000A724 8EB80000 */ lw $t8, ($s5) -.L7000A728: -/* 00B328 7000A728 26310001 */ addiu $s1, $s1, 1 -/* 00B32C 7000A72C 26100004 */ addiu $s0, $s0, 4 -/* 00B330 7000A730 0238082A */ slt $at, $s1, $t8 -/* 00B334 7000A734 5420FFF0 */ bnezl $at, .L7000A6F8 -/* 00B338 7000A738 02802025 */ move $a0, $s4 -.L7000A73C: -/* 00B33C 7000A73C 00001025 */ move $v0, $zero -.L7000A740: -/* 00B340 7000A740 8FBF002C */ lw $ra, 0x2c($sp) -/* 00B344 7000A744 8FB00014 */ lw $s0, 0x14($sp) -/* 00B348 7000A748 8FB10018 */ lw $s1, 0x18($sp) -/* 00B34C 7000A74C 8FB2001C */ lw $s2, 0x1c($sp) -/* 00B350 7000A750 8FB30020 */ lw $s3, 0x20($sp) -/* 00B354 7000A754 8FB40024 */ lw $s4, 0x24($sp) -/* 00B358 7000A758 8FB50028 */ lw $s5, 0x28($sp) -/* 00B35C 7000A75C 03E00008 */ jr $ra -/* 00B360 7000A760 27BD0030 */ addiu $sp, $sp, 0x30 -) -#endif - - diff --git a/src/token.h b/src/token.h new file mode 100644 index 0000000..818c220 --- /dev/null +++ b/src/token.h @@ -0,0 +1,18 @@ +#ifndef _TOKEN_H_ +#define _TOKEN_H_ + +#include "ultra64.h" + +void tokenSetString(const char *str); +s32 tokenReadIo(void); + +/** +* Attempts to find the specified token in g_Tokens. If successful, +* returns a pointer to the start of the value following the token, +* otherwise it returns NULL. E.g. if the token string was "-abc 123", then +* tokenFind(1, "-abc") would return " 123". The index is used in cases where +* the same token appears multiple times. Note that the index is 1-based. +*/ +const char *tokenFind(s32 index, const char *token); + +#endif diff --git a/src/unused_fp.c b/src/unused_fp.c new file mode 100644 index 0000000..d0d79e0 --- /dev/null +++ b/src/unused_fp.c @@ -0,0 +1,68 @@ +#include "ultra64.h" + +#include "tlb_manage.h" + +/** + * @file unused_fp.c + * Contains some floating point utility functions. + * These methods are not referenced in the rest of the code base. + * + * Split from deb_video.c, based on previous comment: + * //maybe newfile, falls on 0 address and logically does different things. + */ + +#define IEEE_FLOAT_FRACTION_BITMASK 0x7FFFFF +#define IEEE_FLOAT_FRACTION_BIT_COUNT 23 +#define IEEE_FLOAT_EXPONENT_BITMASK 0x7F800000 +#define IEEE_FLOAT_EXPONENT_BIT_COUNT 8 +#define IEEE_FLOAT_SIGN_BITMASK 0x80000000 +#define IEEE_FLOAT_SIGN_BIT_COUNT 1 + + +/** + * 6160 70005560 + * V0= TRUE if F12 a normal single precision float + * accepts: F12= single-precision float + */ +s32 _is_normal_single_precision_float(f32 arg0) +{ + u32 bits = *(u32*)&arg0; + u32 fraction = bits & IEEE_FLOAT_FRACTION_BITMASK; + u8 exponent = (u8)(bits >> IEEE_FLOAT_FRACTION_BIT_COUNT); + + return (fraction == 0) || (exponent != 0 && (exponent != 0xff)); +} + +/** + * 61A4 700055A4 + * V0= TRUE if A1 a normal single precision float; would have set result as short at A0 + * accepts: A0=(unused) p->target, A1=single-precision float + */ +s32 is_normal_single_precision_float(s32 arg0, f32 arg1) +{ + return _is_normal_single_precision_float(arg1); +} + +/** + * 61C8 700055C8 + * removed: set normality of single-precision floats A1, A2, A3, SP+10 in table at A0 + */ +void set_normality_of_single_precision_floats(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) +{ + is_normal_single_precision_float(arg0, arg1); + is_normal_single_precision_float((arg0 + 2), arg2); + is_normal_single_precision_float((arg0 + 4), arg3); + is_normal_single_precision_float((arg0 + 6), arg4); + + return; +} + +/** + * 6228 70005628 + * unconditional return + */ +void unused_fp_removed(void) { + return; +} + + diff --git a/src/vi.c b/src/vi.c index 09f65a1..24b9143 100644 --- a/src/vi.c +++ b/src/vi.c @@ -12,13 +12,9 @@ u32 viDebugNoticeList[] = }; //80024518 -u32 viDLEnd[] = { - 0xB8000000,0x00000000, +Gfx viDLEnd[] = { + gsSPEndDisplayList() }; -//Gfx viDLEnd[] = { -// gsSPEndDisplayList() -//}; - void viDebugRemoved(void) { @@ -27,7 +23,7 @@ void viDebugRemoved(void) { void viInitDebugNoticeList(void) { - debCheckAddDebugNoticeListEntry(&viDebugNoticeList, "vi_c_debug"); + debTryAdd(&viDebugNoticeList, "vi_c_debug"); osCreateMesgQueue(&vi_c_debug_MQ, &vi_c_debug_MSG, 8); } diff --git a/src/video.c b/src/video.c index 5e8fbed..b5457eb 100644 --- a/src/video.c +++ b/src/video.c @@ -4,6 +4,9 @@ #include "video.h" #include "bondgame.h" #include "unk_093880.h" // pPlayer +#include "sched.h" +#include "rsp.h" +#include "libultra/os.h" /** * @file video.c @@ -39,16 +42,14 @@ s32 rgb_32bit_grabnum = 1; f32 projectionMatrixF[4][4]; Mtx *projectionMatrix; u16 perspNorm; -char dword_CODE_bss_80060828[0x50]; +OSViMode dword_CODE_bss_80060828; u8 off_CODE_bss_80060878; u8 off_CODE_bss_80060879; OSViMode *viMode; -s32 dword_CODE_bss_80060880; -s32 dword_CODE_bss_80060884; -s32 dword_CODE_bss_80060888; +u32 dword_CODE_bss_80060880; +u32 dword_CODE_bss_80060884; +u32 dword_CODE_bss_80060888; s32 dword_CODE_bss_8006088C; -char dword_CODE_bss_80060890[0x400];//CC[0x3C4]; - //90[0x400]; /** * 3C60 70003060 */ @@ -125,7 +126,7 @@ glabel init_video_settings ) #endif -void init_both_video_buffers(void) +void viInitBuffers(void) { s32 i; u8* p1 = cfb_16[0]; @@ -137,7 +138,7 @@ void init_both_video_buffers(void) } } -void video_related_6(s32 arg0) +void viSet800232BC(s32 arg0) { arg0 += 2; D_800232BC = arg0; @@ -240,370 +241,159 @@ glabel video_related_7 ) #endif - - -/** - * 3E98 70003298 - */ #ifdef NONMATCHING -void video_related_8(void) -{ - void *temp_v0; - void *temp_t7; - void *temp_t6; - void *temp_t9; - void *temp_t8; - void *temp_t9_2; - void *temp_t6_2; - void *temp_t7_2; - void *temp_t8_2; - s32 temp_t1; - void *temp_v1; - void *temp_t8_3; - void *temp_t7_3; - void *temp_v1_2; - void *temp_t8_4; - void *temp_t6_3; - void *temp_v1_3; - void *temp_t6_4; - void *temp_t8_5; - void *temp_v1_4; - void *temp_t6_5; - void *temp_t9_3; - s32 temp_v0_2; - s32 temp_a0; - s32 temp_v0_3; - s32 temp_a0_2; - s32 temp_v0_4; - s32 temp_a0_3; - s32 temp_t2; - s32 temp_t9_4; - s32 temp_t7_4; - s32 temp_t8_6; - s8 temp_t6_6; - s8 temp_t7_5; - s32 temp_a1; - void *phi_t7; - void *phi_t6; - void *phi_t9; - void *phi_t8; - void *phi_t9_2; - void *phi_t6_2; - void *phi_t7_2; - void *phi_t8_2; - f32 phi_f0; - void *phi_t8_3; - void *phi_t7_3; - void *phi_t8_4; - void *phi_t6_3; - void *phi_t6_4; - void *phi_t8_5; - void *phi_t6_5; - void *phi_t9_3; - void *phi_v1; - s32 phi_t9_4; - s8 phi_t6_6; - s8 phi_t7_4; - - if (*ptr_video_settings2 != *ptr_video_settings1) - { - if (*ptr_video_settings2 != 0) +// First half matching very well, second half less so. +void osViSetYScale(f32); +void video_related_8(void) { + f32 var1; + f32 var1_5; + OSViMode *viModeTmp; + s32 var2; + s32 var3; + s32 var4; + s32 var5; + s32 var6; + s32 var7; + s32 var8; + s32 var9; + s32 varA; + video_settings *settings; + if (ptr_video_settings2->mode != ptr_video_settings1->mode) { + switch (ptr_video_settings2->mode) { - if (*ptr_video_settings2 != 1) - { - if (*ptr_video_settings2 != 2) - { + case 0: { + osViSetYScale(1.0f); + osViBlack(TRUE); - } - else - { - if ((void *)0x80000000->unk300 == 2) - { - viMode = &osViModeTable_osViModeMpalHaf1; - } - else - { - viMode = &osViModeTable_osViModeNtscHaf1; - } - temp_v0 = *&viMode; - viMode+0x4 = (s32) temp_v0->unk1C; - viMode+0x8 = (s32) temp_v0->OSViCommonRegs.hstart/*unk30*/; - viMode+0xC = (s32) temp_v0->OSViFieldRegs[0].origin/*unk44*/; - osViBlack(0); - } + break; } - else - { - if (coloroutputmode != 0) - { - if (osTvType == 2) - { - phi_t7 = &osViModeTable_osViModeMpalLan1; - phi_t6 = &dword_CODE_bss_80060828; -block_9: - temp_t7 = (phi_t7 + 0xc); - temp_t6 = (phi_t6 + 0xc); - temp_t6->unk-C = (?32) *phi_t7; - temp_t6->unk-8 = (?32) temp_t7->unk-8; - temp_t6->unk-4 = (?32) temp_t7->unk-4; - phi_t7 = temp_t7; - phi_t6 = temp_t6; - if (temp_t7 != (&osViModeTable_osViModeMpalLan1 + 0x48)) - { - goto block_9; - } - *temp_t6 = (?32) *temp_t7; - temp_t6->unk4 = (?32) temp_t7->unk4; + + case 1: { + if (coloroutputmode != COLORMODE_32BIT) { + if (osTvType == TV_TYPE_MPAL) { + dword_CODE_bss_80060828 = osViModeTable[OS_VI_MPAL_LAN1]; + } else { + dword_CODE_bss_80060828 = osViModeTable[OS_VI_NTSC_LAN1]; } - else - { - phi_t9 = &osViModeTable_osViModeNtscLan1; - phi_t8 = &dword_CODE_bss_80060828; -block_12: - temp_t9 = (phi_t9 + 0xc); - temp_t8 = (phi_t8 + 0xc); - temp_t8->unk-C = (?32) *phi_t9; - temp_t8->unk-8 = (?32) temp_t9->unk-8; - temp_t8->unk-4 = (?32) temp_t9->unk-4; - phi_t9 = temp_t9; - phi_t8 = temp_t8; - if (temp_t9 != (&osViModeTable_osViModeNtscLan1 + 0x48)) - { - goto block_12; - } - *temp_t8 = (?32) *temp_t9; - temp_t8->unk4 = (?32) temp_t9->unk4; - } - } - else - { - if ((void *)0x80000000->unk300 == 2) - { - phi_t9_2 = &osViModeTable_osViModeMpalLan2; - phi_t6_2 = &dword_CODE_bss_80060828; -block_16: - temp_t9_2 = (phi_t9_2 + 0xc); - temp_t6_2 = (phi_t6_2 + 0xc); - temp_t6_2->unk-C = (?32) *phi_t9_2; - temp_t6_2->unk-8 = (?32) temp_t9_2->unk-8; - temp_t6_2->unk-4 = (?32) temp_t9_2->unk-4; - phi_t9_2 = temp_t9_2; - phi_t6_2 = temp_t6_2; - if (temp_t9_2 != (&osViModeTable_osViModeMpalLan2 + 0x48)) - { - goto block_16; - } - *temp_t6_2 = (?32) *temp_t9_2; - temp_t6_2->unk4 = (?32) temp_t9_2->unk4; - } - else - { - phi_t7_2 = &osViModeTable_osViModeNtscLan2; - phi_t8_2 = &dword_CODE_bss_80060828; -block_19: - temp_t7_2 = (phi_t7_2 + 0xc); - temp_t8_2 = (phi_t8_2 + 0xc); - temp_t8_2->unk-C = (?32) *phi_t7_2; - temp_t8_2->unk-8 = (?32) temp_t7_2->unk-8; - temp_t8_2->unk-4 = (?32) temp_t7_2->unk-4; - phi_t7_2 = temp_t7_2; - phi_t8_2 = temp_t8_2; - if (temp_t7_2 != (&osViModeTable_osViModeNtscLan2 + 0x48)) - { - goto block_19; - } - *temp_t8_2 = (?32) *temp_t7_2; - temp_t8_2->unk4 = (?32) temp_t7_2->unk4; + } else { + if (osTvType == TV_TYPE_MPAL) { + dword_CODE_bss_80060828 = osViModeTable[34/*OS_VI_MPAL_LAN2*/]; + } else { + dword_CODE_bss_80060828 = osViModeTable[OS_VI_NTSC_LAN2]; } } + viMode = &dword_CODE_bss_80060828; - viMode+0x4 = (s32) dword_CODE_bss_80060828.unk1C; - viMode+0x8 = (s32) dword_CODE_bss_80060828.unk30; - viMode+0xC = (s32) dword_CODE_bss_80060828.unk44; - video_related_6(0); + + dword_CODE_bss_80060880 = viMode->comRegs.hStart; + dword_CODE_bss_80060884 = viMode->fldRegs[0].vStart; + dword_CODE_bss_80060888 = viMode->fldRegs[1].vStart; + + viSet800232BC(0); + + break; } - } - else - { - osViSetYScale(0x3f800000); - osViBlack(1); - } - osViSetSpecialFeatures(0x42); - } - phi_f0 = ((f32) ptr_video_settings2->unk6 / (f32) ptr_video_settings2->unk1A); - if (*ptr_video_settings2 == 0) - { - phi_f0 = 1.0f; - } - temp_t1 = (D_800232C0 * 4); - (0x80020000 + temp_t1)->unk30B4 = (f32) ((f32) ptr_video_settings1->unk4 / (f32) ptr_video_settings2->unk18); - (0x80020000 + temp_t1)->unk30BC = (f32) phi_f0; - if (*ptr_video_settings2 == 1) - { - (0x80060000 + temp_t1)->unk-2420 = &dword_CODE_bss_80060828; - if (coloroutputmode != 0) - { - if (osTvType == 2) - { - temp_v1 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); - phi_t8_3 = &osViModeTable_osViModeMpalLan1; - phi_t7_3 = temp_v1; -block_33: - temp_t8_3 = (phi_t8_3 + 0xc); - temp_t7_3 = (phi_t7_3 + 0xc); - temp_t7_3->unk-C = (?32) *phi_t8_3; - temp_t7_3->unk-8 = (?32) temp_t8_3->unk-8; - temp_t7_3->unk-4 = (?32) temp_t8_3->unk-4; - phi_t8_3 = temp_t8_3; - phi_t7_3 = temp_t7_3; - if (temp_t8_3 != (&osViModeTable_osViModeMpalLan1 + 0x48)) - { - goto block_33; + + case 2: { + if (osTvType == TV_TYPE_MPAL) { + viMode = &osViModeTable[39/*OS_VI_MPAL_HAF1*/]; + } else { + viMode = &osViModeTable[OS_VI_NTSC_HAF1]; } - *temp_t7_3 = (?32) *temp_t8_3; - temp_t7_3->unk4 = (?32) temp_t8_3->unk4; - phi_v1 = temp_v1; + + dword_CODE_bss_80060880 = viMode->comRegs.hStart; + dword_CODE_bss_80060884 = viMode->fldRegs[0].vStart; + dword_CODE_bss_80060888 = viMode->fldRegs[1].vStart; + + osViBlack(FALSE); + + break; } - else - { - temp_v1_2 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); - phi_t8_4 = &osViModeTable_osViModeNtscLan1; - phi_t6_3 = temp_v1_2; -block_36: - temp_t8_4 = (phi_t8_4 + 0xc); - temp_t6_3 = (phi_t6_3 + 0xc); - temp_t6_3->unk-C = (?32) *phi_t8_4; - temp_t6_3->unk-8 = (?32) temp_t8_4->unk-8; - temp_t6_3->unk-4 = (?32) temp_t8_4->unk-4; - phi_t8_4 = temp_t8_4; - phi_t6_3 = temp_t6_3; - if (temp_t8_4 != (&osViModeTable_osViModeNtscLan1 + 0x48)) - { - goto block_36; - } - *temp_t6_3 = (?32) *temp_t8_4; - temp_t6_3->unk4 = (?32) temp_t8_4->unk4; - phi_v1 = temp_v1_2; + }; + + osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF); + } + var1 = (f32)ptr_video_settings2->y / (f32)ptr_video_settings2->bufy; + var1_5 = (f32)ptr_video_settings2->x / (f32)ptr_video_settings2->bufx; + if (ptr_video_settings2->mode == 0) { + var1 = 1.0f; + } + g_ViXScales[D_800232C0] = var1_5; + g_ViYScales[D_800232C0] = var1; + if (ptr_video_settings2->mode == 1) { + g_ViModePtrs[D_800232C0] = &dword_CODE_bss_80060828; + if (coloroutputmode != COLORMODE_32BIT) { + if (osTvType == TV_TYPE_MPAL) { + g_ViModes[D_800232C0] = osViModeTable[OS_VI_MPAL_LAN1]; + } else { + g_ViModes[D_800232C0] = osViModeTable[OS_VI_NTSC_LAN1]; + } + } else { + if (osTvType == TV_TYPE_MPAL) { + g_ViModes[D_800232C0] = osViModeTable[34/*OS_VI_MPAL_LAN2*/]; + } else { + g_ViModes[D_800232C0] = osViModeTable[OS_VI_NTSC_LAN2]; } } - else - { - if (osTvType == 2) - { - temp_v1_3 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); - phi_t6_4 = &osViModeTable_osViModeMpalLan2; - phi_t8_5 = temp_v1_3; -block_40: - temp_t6_4 = (phi_t6_4 + 0xc); - temp_t8_5 = (phi_t8_5 + 0xc); - temp_t8_5->unk-C = (?32) *phi_t6_4; - temp_t8_5->unk-8 = (?32) temp_t6_4->unk-8; - temp_t8_5->unk-4 = (?32) temp_t6_4->unk-4; - phi_t6_4 = temp_t6_4; - phi_t8_5 = temp_t8_5; - if (temp_t6_4 != (&osViModeTable_osViModeMpalLan2 + 0x48)) - { - goto block_40; - } - *temp_t8_5 = (?32) *temp_t6_4; - temp_t8_5->unk4 = (?32) temp_t6_4->unk4; - phi_v1 = temp_v1_3; - } - else - { - temp_v1_4 = ((D_800232C0 * 0x50) + &dword_CODE_bss_8005DB40); - phi_t6_5 = &osViModeTable_osViModeNtscLan2; - phi_t9_3 = temp_v1_4; -block_43: - temp_t6_5 = (phi_t6_5 + 0xc); - temp_t9_3 = (phi_t9_3 + 0xc); - temp_t9_3->unk-C = (?32) *phi_t6_5; - temp_t9_3->unk-8 = (?32) temp_t6_5->unk-8; - temp_t9_3->unk-4 = (?32) temp_t6_5->unk-4; - phi_t6_5 = temp_t6_5; - phi_t9_3 = temp_t9_3; - if (temp_t6_5 != (&osViModeTable_osViModeNtscLan2 + 0x48)) - { - goto block_43; - } - *temp_t9_3 = (?32) *temp_t6_5; - temp_t9_3->unk4 = (?32) temp_t6_5->unk4; - phi_v1 = temp_v1_4; - } - } - phi_v1->unk8 = (s32) ptr_video_settings2->unk18; - temp_v0_2 = phi_v1->unk1C; - phi_v1->unk20 = (s32) ((s32) (ptr_video_settings2->unk18 << 0xa) / 0x280); - phi_v1->unk2C = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); - phi_v1->unk40 = (s32) ((s32) (ptr_video_settings2->unk1A << 0xb) / 0x1e0); - phi_v1->unk28 = (s32) (ptr_video_settings2->unk18 * 2); - phi_v1->unk3C = (s32) (ptr_video_settings2->unk18 * 2); - temp_a0 = ((((s32) (((temp_v0_2 >> 0x10) & 0xffff) + D_8002329C) % 0xffff) << 0x10) | ((s32) ((temp_v0_2 & 0xffff) + D_8002329C) % 0xffff)); - phi_v1->unk1C = temp_a0; - viMode+0x4 = temp_a0; - temp_v0_3 = phi_v1->unk30; - temp_a0_2 = ((((s32) (((temp_v0_3 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_3 & 0xffff) + D_800232A0) % 0xffff)); - phi_v1->unk30 = temp_a0_2; - viMode+0x8 = temp_a0_2; - temp_v0_4 = phi_v1->unk44; - temp_a0_3 = ((((s32) (((temp_v0_4 >> 0x10) & 0xffff) + D_800232A0) % 0xffff) << 0x10) | ((s32) ((temp_v0_4 & 0xffff) + D_800232A0) % 0xffff)); - phi_v1->unk44 = temp_a0_3; - viMode+0xC = temp_a0_3; - (0x80020000 + temp_t1)->unk30C4 = 1; + + viModeTmp = &g_ViModes[D_800232C0]; + + viModeTmp->comRegs.width = ptr_video_settings2->bufx; + viModeTmp->comRegs.xScale = ((ptr_video_settings2->bufx << 10) / 640); + viModeTmp->fldRegs[0].yScale = ((ptr_video_settings2->bufy << 11) / 480); + viModeTmp->fldRegs[1].yScale = ((ptr_video_settings2->bufy << 11) / 480); + viModeTmp->fldRegs[0].origin = (ptr_video_settings2->bufx * 2); + viModeTmp->fldRegs[1].origin = (ptr_video_settings2->bufx * 2); + var2 = viModeTmp->comRegs.hStart; + var2 = (((((var2 >> 16) & 0xffff) + D_8002329C) % 0xffff) << 16) | (((var2 & 0xffff) + D_8002329C) % 0xffff); + viModeTmp->comRegs.hStart = var2; + dword_CODE_bss_80060880 = var2; + var3 = viModeTmp->fldRegs[0].vStart; + var3 = (((((var3 >> 16) & 0xffff) + D_800232A0) % 0xffff) << 16) | (((var3 & 0xffff) + D_800232A0) % 0xffff); + viModeTmp->fldRegs[0].vStart = var3; + dword_CODE_bss_80060884 = var3; + var4 = viModeTmp->fldRegs[1].vStart; + var4 = (((((var4 >> 16) & 0xffff) + D_800232A0) % 0xffff) << 16) | (((var4 & 0xffff) + D_800232A0) % 0xffff); + viModeTmp->fldRegs[1].vStart = var4; + dword_CODE_bss_80060888 = var4; + something_with_osVI_14[D_800232C0] = 1; + } else { + something_with_osVI_14[D_800232C0] = 0; } - else - { - (0x80020000 + temp_t1)->unk30C4 = 0; - } - temp_t2 = (D_800232C0 + 1); - temp_t9_4 = (temp_t2 & 1); - phi_t9_4 = temp_t9_4; - if (temp_t2 < 0) - { - phi_t9_4 = temp_t9_4; - if (temp_t9_4 != 0) - { - phi_t9_4 = (temp_t9_4 + -2); + var5 = (D_800232C0 + 1); + var6 = (var5 & 1); + if (var5 < 0) { + if (var6 != 0) { + var6 -= 2; } } - D_800232C0 = (s32) phi_t9_4; - if (coloroutputmode != 0) - { - fast3d_related_array->unk58 = (void *) ptr_video_settings2->framebuf; + D_800232C0 = var6; + if (coloroutputmode != COLORMODE_32BIT) { + (*fast3d_related_array)[22] = ptr_video_settings2->framebuf; + } else { + (*fast3d_related_array)[22] = cfb_16[0]; } - else - { - fast3d_related_array->unk58 = &cfb_16; - } - temp_t7_4 = (off_CODE_bss_80060878 + 1); - temp_t8_6 = (off_CODE_bss_80060879 + 1); - temp_t6_6 = (temp_t7_4 & 1); - phi_t6_6 = temp_t6_6; - if (temp_t7_4 < 0) - { - phi_t6_6 = temp_t6_6; - if (temp_t6_6 != 0) - { - phi_t6_6 = (temp_t6_6 + -2); + var7 = (off_CODE_bss_80060878 + 1); + var8 = (off_CODE_bss_80060879 + 1); + var9 = (var7 & 1); + if (var7 < 0) { + if (var9 != 0) { + var9 -= 2; } } - off_CODE_bss_80060878 = (s8) phi_t6_6; - temp_t7_5 = (temp_t8_6 & 1); - phi_t7_4 = temp_t7_5; - if (temp_t8_6 < 0) - { - phi_t7_4 = temp_t7_5; - if (temp_t7_5 != 0) - { - phi_t7_4 = (temp_t7_5 + -2); + off_CODE_bss_80060878 = var9; + varA = (var8 & 1); + if (var8 < 0) { + if (varA != 0) { + varA -= 2; } } - off_CODE_bss_80060879 = (s8) phi_t7_4; - ptr_video_settings1 = (void *) (&video1_settings + (off_CODE_bss_80060878 * 0x2c)); - temp_a1 = (&video1_settings + (off_CODE_bss_80060879 * 0x2c)); - *&ptr_video_settings2 = temp_a1; - bcopy(*&ptr_video_settings2, temp_a1, 0x2c, &video1_settings); - ptr_video_settings2->framebuf = (s32) ((off_CODE_bss_80060879 * 0x25800) + &cfb_16); + off_CODE_bss_80060879 = varA; + settings = ptr_video_settings2; + ptr_video_settings1 = &video1_settings[off_CODE_bss_80060878]; + ptr_video_settings2 = &video1_settings[off_CODE_bss_80060879]; + bcopy(settings, ptr_video_settings2, sizeof(video_settings)); + ptr_video_settings2->framebuf = cfb_16[off_CODE_bss_80060879]; } #else GLOBAL_ASM( @@ -746,7 +536,7 @@ glabel video_related_8 /* 004088 70003488 AC2F0884 */ sw $t7, %lo(viMode+0x8)($at) /* 00408C 7000348C 8F380044 */ lw $t8, 0x44($t9) /* 004090 70003490 3C018006 */ lui $at, %hi(viMode+0xC) -/* 004094 70003494 0C000C64 */ jal video_related_6 +/* 004094 70003494 0C000C64 */ jal viSet800232BC /* 004098 70003498 AC380888 */ sw $t8, %lo(viMode+0xC)($at) /* 00409C 7000349C 1000001B */ b .L7000350C /* 0040A0 700034A0 00000000 */ nop @@ -812,32 +602,32 @@ glabel video_related_8 /* 00417C 7000357C 00000000 */ nop .L70003580: /* 004180 70003580 8D4A32C0 */ lw $t2, %lo(D_800232C0)($t2) -/* 004184 70003584 3C018002 */ lui $at, %hi(something_with_osVI_4) +/* 004184 70003584 3C018002 */ lui $at, %hi(g_ViXScales) /* 004188 70003588 000A4880 */ sll $t1, $t2, 2 /* 00418C 7000358C 00290821 */ addu $at, $at, $t1 -/* 004190 70003590 E42230B4 */ swc1 $f2, %lo(something_with_osVI_4)($at) -/* 004194 70003594 3C018002 */ lui $at, %hi(something_with_osVI_C) +/* 004190 70003590 E42230B4 */ swc1 $f2, %lo(g_ViXScales)($at) +/* 004194 70003594 3C018002 */ lui $at, %hi(g_ViYScales) /* 004198 70003598 00290821 */ addu $at, $at, $t1 -/* 00419C 7000359C E42030BC */ swc1 $f0, %lo(something_with_osVI_C)($at) +/* 00419C 7000359C E42030BC */ swc1 $f0, %lo(g_ViYScales)($at) /* 0041A0 700035A0 910F0000 */ lbu $t7, ($t0) /* 0041A4 700035A4 24010001 */ li $at, 1 /* 0041A8 700035A8 15E10105 */ bne $t7, $at, .L700039C0 /* 0041AC 700035AC 00000000 */ nop /* 0041B0 700035B0 8D6B32AC */ lw $t3, %lo(coloroutputmode)($t3) -/* 0041B4 700035B4 3C018006 */ lui $at, %hi(dword_CODE_bss_8005DB40+0xA0) +/* 0041B4 700035B4 3C018006 */ lui $at, %hi(g_ViModePtrs) /* 0041B8 700035B8 00290821 */ addu $at, $at, $t1 /* 0041BC 700035BC 11600035 */ beqz $t3, .L70003694 -/* 0041C0 700035C0 AC38DBE0 */ sw $t8, %lo(dword_CODE_bss_8005DB40+0xA0)($at) +/* 0041C0 700035C0 AC38DBE0 */ sw $t8, %lo(g_ViModePtrs)($at) /* 0041C4 700035C4 3C198000 */ lui $t9, %hi(osTvType) /* 0041C8 700035C8 8F390300 */ lw $t9, %lo(osTvType)($t9) /* 0041CC 700035CC 24010002 */ li $at, 2 -/* 0041D0 700035D0 3C0E8006 */ lui $t6, %hi(dword_CODE_bss_8005DB40) +/* 0041D0 700035D0 3C0E8006 */ lui $t6, %hi(g_ViModes) /* 0041D4 700035D4 17210019 */ bne $t9, $at, .L7000363C -/* 0041D8 700035D8 25CEDB40 */ addiu $t6, %lo(dword_CODE_bss_8005DB40) # addiu $t6, $t6, -0x24c0 +/* 0041D8 700035D8 25CEDB40 */ addiu $t6, %lo(g_ViModes) # addiu $t6, $t6, -0x24c0 /* 0041DC 700035DC 000A7080 */ sll $t6, $t2, 2 /* 0041E0 700035E0 01CA7021 */ addu $t6, $t6, $t2 -/* 0041E4 700035E4 3C0F8006 */ lui $t7, %hi(dword_CODE_bss_8005DB40) -/* 0041E8 700035E8 25EFDB40 */ addiu $t7, %lo(dword_CODE_bss_8005DB40) # addiu $t7, $t7, -0x24c0 +/* 0041E4 700035E4 3C0F8006 */ lui $t7, %hi(g_ViModes) +/* 0041E8 700035E8 25EFDB40 */ addiu $t7, %lo(g_ViModes) # addiu $t7, $t7, -0x24c0 /* 0041EC 700035EC 000E7100 */ sll $t6, $t6, 4 /* 0041F0 700035F0 01CF1821 */ addu $v1, $t6, $t7 /* 0041F4 700035F4 3C188002 */ lui $t8, %hi(osViModeTable_osViModeMpalLan1) @@ -890,8 +680,8 @@ glabel video_related_8 /* 0042A0 700036A0 15E10018 */ bne $t7, $at, .L70003704 /* 0042A4 700036A4 000AC880 */ sll $t9, $t2, 2 /* 0042A8 700036A8 032AC821 */ addu $t9, $t9, $t2 -/* 0042AC 700036AC 3C188006 */ lui $t8, %hi(dword_CODE_bss_8005DB40) -/* 0042B0 700036B0 2718DB40 */ addiu $t8, %lo(dword_CODE_bss_8005DB40) # addiu $t8, $t8, -0x24c0 +/* 0042AC 700036AC 3C188006 */ lui $t8, %hi(g_ViModes) +/* 0042B0 700036B0 2718DB40 */ addiu $t8, %lo(g_ViModes) # addiu $t8, $t8, -0x24c0 /* 0042B4 700036B4 0019C900 */ sll $t9, $t9, 4 /* 0042B8 700036B8 03381821 */ addu $v1, $t9, $t8 /* 0042BC 700036BC 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeMpalLan2) @@ -916,8 +706,8 @@ glabel video_related_8 .L70003704: /* 004304 70003704 000A7880 */ sll $t7, $t2, 2 /* 004308 70003708 01EA7821 */ addu $t7, $t7, $t2 -/* 00430C 7000370C 3C198006 */ lui $t9, %hi(dword_CODE_bss_8005DB40) -/* 004310 70003710 2739DB40 */ addiu $t9, %lo(dword_CODE_bss_8005DB40) # addiu $t9, $t9, -0x24c0 +/* 00430C 7000370C 3C198006 */ lui $t9, %hi(g_ViModes) +/* 004310 70003710 2739DB40 */ addiu $t9, %lo(g_ViModes) # addiu $t9, $t9, -0x24c0 /* 004314 70003714 000F7900 */ sll $t7, $t7, 4 /* 004318 70003718 01F91821 */ addu $v1, $t7, $t9 /* 00431C 7000371C 3C0E8002 */ lui $t6, %hi(osViModeTable_osViModeNtscLan2) @@ -1198,7 +988,7 @@ glabel video_related_8 ) #endif -void video_related_9(f32 param_1) +void viSet800232B4(f32 param_1) { if (param_1 > 14.0f) { param_1 = 14.0f; @@ -1210,66 +1000,48 @@ void video_related_9(f32 param_1) D_800232B8 = 10; } -void receive_vi_c_msgs(int msgcount) { +void viRecvMesg(int count) { do { osRecvMesg(&vi_c_debug_MQ, NULL, 1); - msgcount--; - } while (msgcount > 0); + count--; + } while (count > 0); } const s16 widths_80028480[] = {320, 320, 640}; const s16 heights_80028488[] = {240, 240, 480}; -void setVideoWidthHeightToMode(s32 videomode) +void viSetVideoMode(s32 videomode) { ptr_video_settings2->mode = videomode; ptr_video_settings2->x = ptr_video_settings2->bufx = widths_80028480[videomode]; ptr_video_settings2->y = ptr_video_settings2->bufy = heights_80028488[videomode]; } -/** - * 4800 70003C00 sets colour output mode to 16bit [800232AC=1] - */ -void set_coloroutputmode_16bit(void) +void viSetColorMode16Bit(void) { - coloroutputmode = MODE_16BIT; + coloroutputmode = COLORMODE_16BIT; } -/** - * 4810 70003C10 sets colour output mode to 32bit [800232AC=0] - */ -void set_coloroutputmode_32bit(void) +void viSetColorMode32Bit(void) { - coloroutputmode = MODE_32BIT; + coloroutputmode = COLORMODE_32BIT; } -/** - * 481C 70003C1C V0= p->video2's buffer [p@800232A8+28]; fry T6 - */ -u8 * get_video_settings2_frameb(void) +u8 *viGetFrameBuf2(void) { return ptr_video_settings2->framebuf; } -/** - * 482C 70003C2C V0= p->video1's buffer [p@800232A4+28]; fry T6 - */ -u8 * get_video_settings1_frameb(void) +u8 *viGetFrameBuf1(void) { return ptr_video_settings1->framebuf; } -/** - * 483C 70003C3C A0->video2's buffer [p@800232A8+28]; fry T6 - */ -void set_video2buf_frameb(u8 *arg0) +void viSetFrameBuf2(u8 *buf) { - ptr_video_settings2->framebuf = arg0; + ptr_video_settings2->framebuf = buf; } -/** - * 484C 70003C4C V0= halfword [80060824] - */ -u16 get_80060824(void) { +u16 viGetPerspNorm(void) { return perspNorm; } @@ -1280,936 +1052,240 @@ Gfx *video_related_F(Gfx *gdl) { pPlayer->viewports[off_CODE_bss_80060879].vp.vscale[1] = (ptr_video_settings2->viewy * 2); pPlayer->viewports[off_CODE_bss_80060879].vp.vtrans[1] = (ptr_video_settings2->viewy * 2) + (ptr_video_settings2->viewtop * 4); } - gSPViewport(gdl++, ((s32)&pPlayer->viewports[off_CODE_bss_80060879] + 0x80000000)); - projectionMatrix = sub_GAME_7F0BD6E0(); - guPerspectiveF(projectionMatrixF, &perspNorm, ptr_video_settings2->fovy, ptr_video_settings2->aspect, ptr_video_settings2->near, ptr_video_settings2->far, 1.0f); + + gSPViewport(gdl++, OS_K0_TO_PHYSICAL(&pPlayer->viewports[off_CODE_bss_80060879])); + + projectionMatrix = dynAllocateMatrix(); + guPerspectiveF(projectionMatrixF, &perspNorm, ptr_video_settings2->fovy, ptr_video_settings2->aspect, ptr_video_settings2->znear, ptr_video_settings2->zfar, 1.0f); guMtxF2L(projectionMatrixF, projectionMatrix); - gSPMatrix(gdl++, ((s32)projectionMatrix + 0x80000000), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gdl++, OS_K0_TO_PHYSICAL(projectionMatrix), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPPerspNormalize(gdl++, perspNorm); currentPlayerSetProjectionMatrix(projectionMatrix); currentPlayerSetProjectionMatrixF(projectionMatrixF); - if (coloroutputmode != MODE_32BIT) { - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, ptr_video_settings2->bufx, (ptr_video_settings2->framebuf + 0x80000000)); + if (coloroutputmode != COLORMODE_32BIT) { + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, ptr_video_settings2->bufx, OS_K0_TO_PHYSICAL(ptr_video_settings2->framebuf)); } else { - gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_32b, ptr_video_settings2->bufx, (cfb_16[0] + 0x80000000)); + gDPSetColorImage(gdl++, G_IM_FMT_RGBA, G_IM_SIZ_32b, ptr_video_settings2->bufx, OS_K0_TO_PHYSICAL(cfb_16[0])); } + return gdl; } Gfx *zbufClearCurrentPlayer(Gfx *gdl); Gfx *zbufInit(Gfx *gdl); -Gfx *video_related_10(Gfx *gdl) { +Gfx *viClearZBufCurrentPlayer(Gfx *gdl) { if (ptr_video_settings2->usezbuf != 0) { gdl = zbufClearCurrentPlayer(zbufInit(gdl)); } return gdl; } -Gfx *insert_generic_fillrect(Gfx *gdl) { +Gfx *viFillScreen(Gfx *gdl) { gDPSetCycleType(gdl++, G_CYC_FILL); - gDPFillRectangle(gdl++, 0, 0, ptr_video_settings2->bufx - 1, ptr_video_settings2->bufy - 1); + gDPFillRectangle(gdl++, 0, 0, (ptr_video_settings2->bufx - 1), (ptr_video_settings2->bufy - 1)); gDPPipeSync(gdl++); return gdl; } -/** - * 4B64 70003F64 - * accepts: A0=p->display list - */ -#ifdef NONMATCHING -void *setupscreensfornumplayers(void *arg0) -{ - void *sp60; - s16 sp22; - s16 sp20; - void *temp_s0; - void *temp_s0_2; - void *temp_s0_3; - void *temp_s0_4; - void *temp_s0_5; - void *temp_s1; - void *temp_s1_2; - void *temp_v1; - void *phi_s0; - void *phi_s0_2; - void *phi_s0_3; - void *phi_s0_4; +Gfx *setupscreensfornumplayers(Gfx *gdl) { + gDPSetCycleType(gdl++, G_CYC_FILL); + gDPSetScissor(gdl++, G_SC_NON_INTERLACE, 0, 0, viGetX(), viGetY()); + gDPSetFillColor(gdl++, ((GPACK_RGBA5551(0,0,0,1) << 16) | GPACK_RGBA5551(0,0,0,1))); - temp_s0 = arg0 + 8; - //arg0->unk4 = 0x300000; - //arg0->unk0 = 0xba001402; - *temp_s0 = 0xed000000; - sp60 = temp_s0; - temp_s0 = temp_s0 + 8; - temp_v1 = temp_s0; - temp_s0 = temp_s0 + 8; - sp60->unk4 = (s32) (((s32) ((f32) get_video2_settings_txtClipH() * 4.0f) & 0xfff) | (((s32) ((f32) ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) * 4.0f) & 0xfff) << 0xc)); - temp_v1->unk4 = 0x10001; - temp_v1->unk0 = 0xf7000000; - phi_s0 = temp_s0; - if (viGetViewTop() > 0) - { - phi_s0 = temp_s0; - if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) - { - temp_s0 = temp_s0 + 8; - sp58->unk0 = (s32) (((((viGetViewTop() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); - sp58->unk4 = 0; - temp_s0->unk0 = 0xe7000000; - temp_s0->unk4 = 0; - phi_s0 = temp_s0 + 8; + if (viGetViewTop() > 0) { + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) { + gDPFillRectangle(gdl++, 0, 0, (viGetX() - 1), (viGetViewTop() - 1)); + gDPPipeSync(gdl++); } } - if (getPlayerCount() == 1) - { - sp22 = viGetViewHeight(); - phi_s0_4 = phi_s0; - if ((((s32) (viGetViewTop() << 0x10) >> 0x10) + sp22) < get_video2_settings_txtClipH()) - { - temp_s0_2 = phi_s0 + 8; - sp50->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); - sp50->unk4 = (s32) (((viGetViewHeight() + ((s32) (viGetViewTop() << 0x10) >> 0x10)) & 0x3ff) * 4); - temp_s0_2->unk4 = 0; - temp_s0_2->unk0 = 0xe7000000; - phi_s0_4 = temp_s0_2 + 8; + + if (getPlayerCount() == 1) { + if ((viGetViewTop() + viGetViewHeight()) < viGetY()) { + gDPFillRectangle(gdl++, 0, (viGetViewTop() + viGetViewHeight()), (viGetX() - 1), (viGetY() - 1)); + gDPPipeSync(gdl++); } - } - else - { - phi_s0_4 = phi_s0; - if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) - { - sp20 = viGetViewHeight(); - sp22 = viGetViewHeight(); - phi_s0_2 = phi_s0; - if (((((s32) (viGetViewTop() << 0x10) >> 0x10) + sp22) + sp20) < get_video2_settings_txtClipH()) - { - temp_s0_3 = phi_s0 + 8; - sp48->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); - sp22 = viGetViewHeight(); - sp48->unk4 = (s32) ((((viGetViewHeight() + ((s32) (viGetViewTop() << 0x10) >> 0x10)) + sp22) & 0x3ff) * 4); - temp_s0_3->unk0 = 0xe7000000; - temp_s0_3->unk4 = 0; - phi_s0_2 = temp_s0_3 + 8; + } else { + if (sub_GAME_7F09B4D8(get_cur_playernum()) == 0) { + if ((viGetViewTop() + viGetViewHeight() + viGetViewHeight()) < viGetY()) { + gDPFillRectangle(gdl++, 0, (viGetViewTop() + viGetViewHeight() + viGetViewHeight()), (viGetX() - 1), (viGetY() - 1)); + gDPPipeSync(gdl++); } - temp_s1 = phi_s0_2; - temp_s0_4 = phi_s0_2 + 8; - temp_s1->unk4 = 0x1dc; - temp_s1->unk0 = (s32) (((((get_video2_settings_txtClipW() + -1) & 0x3ff) << 0xe) | 0xf6000000) | 0x1e0); - temp_s0_4->unk0 = 0xe7000000; - temp_s0_4->unk4 = 0; - temp_s0_4 = temp_s0_4 + 8; - temp_s1_2 = temp_s0_4; - phi_s0_3 = temp_s0_4; - if (getPlayerCount() >= 3) - { - temp_s0_4 = temp_s0_4 + 8; - temp_s1_2->unk0 = (s32) ((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6280000); - temp_s1_2->unk4 = 0x27c000; - temp_s0_4->unk0 = 0xe7000000; - temp_s0_4->unk4 = 0; - phi_s0_3 = temp_s0_4 + 8; + + gDPFillRectangle(gdl++, 0, ((240 / 2) - 1), (viGetX() - 1), (240 / 2)); + gDPPipeSync(gdl++); + + if (getPlayerCount() >= 3) { + gDPFillRectangle(gdl++, ((320 / 2) - 1), 0, (320 / 2), (viGetY() - 1)); + gDPPipeSync(gdl++); } - phi_s0_4 = phi_s0_3; - if (getPlayerCount() == 3) - { - temp_s0_5 = phi_s0_3 + 8; - sp30->unk0 = (s32) (((((get_video2_settings_txtClipH() + -1) & 0x3ff) * 4) | 0xf6000000) | (((((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10) + -1) & 0x3ff) << 0xe)); - sp30->unk4 = 0x2841e4; - temp_s0_5->unk0 = 0xe7000000; - temp_s0_5->unk4 = 0; - phi_s0_4 = temp_s0_5 + 8; + + if (getPlayerCount() == 3) { + gDPFillRectangle(gdl++, ((320 / 2) + 1), ((240 / 2) + 1), (viGetX() - 1), (viGetY() - 1)); + gDPPipeSync(gdl++); } } } - return phi_s0_4; + + return gdl; } -#else -GLOBAL_ASM( -.text -glabel setupscreensfornumplayers -/* 004B64 70003F64 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 004B68 70003F68 AFB00014 */ sw $s0, 0x14($sp) -/* 004B6C 70003F6C AFBF001C */ sw $ra, 0x1c($sp) -/* 004B70 70003F70 AFB10018 */ sw $s1, 0x18($sp) -/* 004B74 70003F74 3C0EBA00 */ lui $t6, (0xBA001402 >> 16) # lui $t6, 0xba00 -/* 004B78 70003F78 35CE1402 */ ori $t6, (0xBA001402 & 0xFFFF) # ori $t6, $t6, 0x1402 -/* 004B7C 70003F7C 24900008 */ addiu $s0, $a0, 8 -/* 004B80 70003F80 3C0F0030 */ lui $t7, 0x30 -/* 004B84 70003F84 AC8F0004 */ sw $t7, 4($a0) -/* 004B88 70003F88 AC8E0000 */ sw $t6, ($a0) -/* 004B8C 70003F8C 02001825 */ move $v1, $s0 -/* 004B90 70003F90 3C18ED00 */ lui $t8, 0xed00 -/* 004B94 70003F94 AC780000 */ sw $t8, ($v1) -/* 004B98 70003F98 AFA30060 */ sw $v1, 0x60($sp) -/* 004B9C 70003F9C 0C001107 */ jal get_video2_settings_txtClipW -/* 004BA0 70003FA0 26100008 */ addiu $s0, $s0, 8 -/* 004BA4 70003FA4 00028C00 */ sll $s1, $v0, 0x10 -/* 004BA8 70003FA8 0011CC03 */ sra $t9, $s1, 0x10 -/* 004BAC 70003FAC 0C00110B */ jal get_video2_settings_txtClipH -/* 004BB0 70003FB0 03208825 */ move $s1, $t9 -/* 004BB4 70003FB4 44822000 */ mtc1 $v0, $f4 -/* 004BB8 70003FB8 44918000 */ mtc1 $s1, $f16 -/* 004BBC 70003FBC 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 004BC0 70003FC0 468021A0 */ cvt.s.w $f6, $f4 -/* 004BC4 70003FC4 44810000 */ mtc1 $at, $f0 -/* 004BC8 70003FC8 8FB80060 */ lw $t8, 0x60($sp) -/* 004BCC 70003FCC 02001825 */ move $v1, $s0 -/* 004BD0 70003FD0 3C080001 */ lui $t0, (0x00010001 >> 16) # lui $t0, 1 -/* 004BD4 70003FD4 468084A0 */ cvt.s.w $f18, $f16 -/* 004BD8 70003FD8 46003202 */ mul.s $f8, $f6, $f0 -/* 004BDC 70003FDC 35080001 */ ori $t0, (0x00010001 & 0xFFFF) # ori $t0, $t0, 1 -/* 004BE0 70003FE0 3C19F700 */ lui $t9, 0xf700 -/* 004BE4 70003FE4 26100008 */ addiu $s0, $s0, 8 -/* 004BE8 70003FE8 46009102 */ mul.s $f4, $f18, $f0 -/* 004BEC 70003FEC 4600428D */ trunc.w.s $f10, $f8 -/* 004BF0 70003FF0 4600218D */ trunc.w.s $f6, $f4 -/* 004BF4 70003FF4 44095000 */ mfc1 $t1, $f10 -/* 004BF8 70003FF8 440C3000 */ mfc1 $t4, $f6 -/* 004BFC 70003FFC 312A0FFF */ andi $t2, $t1, 0xfff -/* 004C00 70004000 318D0FFF */ andi $t5, $t4, 0xfff -/* 004C04 70004004 000D7300 */ sll $t6, $t5, 0xc -/* 004C08 70004008 014E7825 */ or $t7, $t2, $t6 -/* 004C0C 7000400C AF0F0004 */ sw $t7, 4($t8) -/* 004C10 70004010 AC680004 */ sw $t0, 4($v1) -/* 004C14 70004014 0C001149 */ jal viGetViewTop -/* 004C18 70004018 AC790000 */ sw $t9, ($v1) -/* 004C1C 7000401C 1840001F */ blez $v0, .L7000409C -/* 004C20 70004020 00000000 */ nop -/* 004C24 70004024 0FC26C54 */ jal get_cur_playernum -/* 004C28 70004028 00000000 */ nop -/* 004C2C 7000402C 0FC26D36 */ jal sub_GAME_7F09B4D8 -/* 004C30 70004030 00402025 */ move $a0, $v0 -/* 004C34 70004034 14400019 */ bnez $v0, .L7000409C -/* 004C38 70004038 00000000 */ nop -/* 004C3C 7000403C AFB00058 */ sw $s0, 0x58($sp) -/* 004C40 70004040 0C001107 */ jal get_video2_settings_txtClipW -/* 004C44 70004044 26100008 */ addiu $s0, $s0, 8 -/* 004C48 70004048 00028C00 */ sll $s1, $v0, 0x10 -/* 004C4C 7000404C 00114C03 */ sra $t1, $s1, 0x10 -/* 004C50 70004050 0C001149 */ jal viGetViewTop -/* 004C54 70004054 01208825 */ move $s1, $t1 -/* 004C58 70004058 244BFFFF */ addiu $t3, $v0, -1 -/* 004C5C 7000405C 8FA40058 */ lw $a0, 0x58($sp) -/* 004C60 70004060 316C03FF */ andi $t4, $t3, 0x3ff -/* 004C64 70004064 262EFFFF */ addiu $t6, $s1, -1 -/* 004C68 70004068 31CF03FF */ andi $t7, $t6, 0x3ff -/* 004C6C 7000406C 000C6880 */ sll $t5, $t4, 2 -/* 004C70 70004070 3C01F600 */ lui $at, 0xf600 -/* 004C74 70004074 01A15025 */ or $t2, $t5, $at -/* 004C78 70004078 000FC380 */ sll $t8, $t7, 0xe -/* 004C7C 7000407C 0158C825 */ or $t9, $t2, $t8 -/* 004C80 70004080 02001825 */ move $v1, $s0 -/* 004C84 70004084 AC990000 */ sw $t9, ($a0) -/* 004C88 70004088 AC800004 */ sw $zero, 4($a0) -/* 004C8C 7000408C 3C08E700 */ lui $t0, 0xe700 -/* 004C90 70004090 AC680000 */ sw $t0, ($v1) -/* 004C94 70004094 AC600004 */ sw $zero, 4($v1) -/* 004C98 70004098 26100008 */ addiu $s0, $s0, 8 -.L7000409C: -/* 004C9C 7000409C 0FC26919 */ jal getPlayerCount -/* 004CA0 700040A0 00000000 */ nop -/* 004CA4 700040A4 24010001 */ li $at, 1 -/* 004CA8 700040A8 14410030 */ bne $v0, $at, .L7000416C -/* 004CAC 700040AC 00000000 */ nop -/* 004CB0 700040B0 0C00112B */ jal viGetViewHeight -/* 004CB4 700040B4 00000000 */ nop -/* 004CB8 700040B8 0C001149 */ jal viGetViewTop -/* 004CBC 700040BC A7A20022 */ sh $v0, 0x22($sp) -/* 004CC0 700040C0 00028C00 */ sll $s1, $v0, 0x10 -/* 004CC4 700040C4 00114C03 */ sra $t1, $s1, 0x10 -/* 004CC8 700040C8 0C00110B */ jal get_video2_settings_txtClipH -/* 004CCC 700040CC 01208825 */ move $s1, $t1 -/* 004CD0 700040D0 87AB0022 */ lh $t3, 0x22($sp) -/* 004CD4 700040D4 022B6021 */ addu $t4, $s1, $t3 -/* 004CD8 700040D8 0182082A */ slt $at, $t4, $v0 -/* 004CDC 700040DC 502000A4 */ beql $at, $zero, .L70004370 -/* 004CE0 700040E0 8FBF001C */ lw $ra, 0x1c($sp) -/* 004CE4 700040E4 AFB00050 */ sw $s0, 0x50($sp) -/* 004CE8 700040E8 0C001107 */ jal get_video2_settings_txtClipW -/* 004CEC 700040EC 26100008 */ addiu $s0, $s0, 8 -/* 004CF0 700040F0 00028C00 */ sll $s1, $v0, 0x10 -/* 004CF4 700040F4 00116C03 */ sra $t5, $s1, 0x10 -/* 004CF8 700040F8 0C00110B */ jal get_video2_settings_txtClipH -/* 004CFC 700040FC 01A08825 */ move $s1, $t5 -/* 004D00 70004100 244EFFFF */ addiu $t6, $v0, -1 -/* 004D04 70004104 31CF03FF */ andi $t7, $t6, 0x3ff -/* 004D08 70004108 2639FFFF */ addiu $t9, $s1, -1 -/* 004D0C 7000410C 332803FF */ andi $t0, $t9, 0x3ff -/* 004D10 70004110 000F5080 */ sll $t2, $t7, 2 -/* 004D14 70004114 3C01F600 */ lui $at, 0xf600 -/* 004D18 70004118 8FAC0050 */ lw $t4, 0x50($sp) -/* 004D1C 7000411C 0141C025 */ or $t8, $t2, $at -/* 004D20 70004120 00084B80 */ sll $t1, $t0, 0xe -/* 004D24 70004124 03095825 */ or $t3, $t8, $t1 -/* 004D28 70004128 0C001149 */ jal viGetViewTop -/* 004D2C 7000412C AD8B0000 */ sw $t3, ($t4) -/* 004D30 70004130 00028C00 */ sll $s1, $v0, 0x10 -/* 004D34 70004134 00116C03 */ sra $t5, $s1, 0x10 -/* 004D38 70004138 0C00112B */ jal viGetViewHeight -/* 004D3C 7000413C 01A08825 */ move $s1, $t5 -/* 004D40 70004140 8FB90050 */ lw $t9, 0x50($sp) -/* 004D44 70004144 00517021 */ addu $t6, $v0, $s1 -/* 004D48 70004148 31CF03FF */ andi $t7, $t6, 0x3ff -/* 004D4C 7000414C 000F5080 */ sll $t2, $t7, 2 -/* 004D50 70004150 02001825 */ move $v1, $s0 -/* 004D54 70004154 3C08E700 */ lui $t0, 0xe700 -/* 004D58 70004158 AF2A0004 */ sw $t2, 4($t9) -/* 004D5C 7000415C AC600004 */ sw $zero, 4($v1) -/* 004D60 70004160 AC680000 */ sw $t0, ($v1) -/* 004D64 70004164 10000081 */ b .L7000436C -/* 004D68 70004168 26100008 */ addiu $s0, $s0, 8 -.L7000416C: -/* 004D6C 7000416C 0FC26C54 */ jal get_cur_playernum -/* 004D70 70004170 00000000 */ nop -/* 004D74 70004174 0FC26D36 */ jal sub_GAME_7F09B4D8 -/* 004D78 70004178 00402025 */ move $a0, $v0 -/* 004D7C 7000417C 5440007C */ bnezl $v0, .L70004370 -/* 004D80 70004180 8FBF001C */ lw $ra, 0x1c($sp) -/* 004D84 70004184 0C00112B */ jal viGetViewHeight -/* 004D88 70004188 00000000 */ nop -/* 004D8C 7000418C 0C00112B */ jal viGetViewHeight -/* 004D90 70004190 A7A20020 */ sh $v0, 0x20($sp) -/* 004D94 70004194 0C001149 */ jal viGetViewTop -/* 004D98 70004198 A7A20022 */ sh $v0, 0x22($sp) -/* 004D9C 7000419C 00028C00 */ sll $s1, $v0, 0x10 -/* 004DA0 700041A0 0011C403 */ sra $t8, $s1, 0x10 -/* 004DA4 700041A4 0C00110B */ jal get_video2_settings_txtClipH -/* 004DA8 700041A8 03008825 */ move $s1, $t8 -/* 004DAC 700041AC 87A90022 */ lh $t1, 0x22($sp) -/* 004DB0 700041B0 87AC0020 */ lh $t4, 0x20($sp) -/* 004DB4 700041B4 02295821 */ addu $t3, $s1, $t1 -/* 004DB8 700041B8 016C6821 */ addu $t5, $t3, $t4 -/* 004DBC 700041BC 01A2082A */ slt $at, $t5, $v0 -/* 004DC0 700041C0 50200027 */ beql $at, $zero, .L70004260 -/* 004DC4 700041C4 02008825 */ move $s1, $s0 -/* 004DC8 700041C8 AFB00048 */ sw $s0, 0x48($sp) -/* 004DCC 700041CC 0C001107 */ jal get_video2_settings_txtClipW -/* 004DD0 700041D0 26100008 */ addiu $s0, $s0, 8 -/* 004DD4 700041D4 00028C00 */ sll $s1, $v0, 0x10 -/* 004DD8 700041D8 00117403 */ sra $t6, $s1, 0x10 -/* 004DDC 700041DC 0C00110B */ jal get_video2_settings_txtClipH -/* 004DE0 700041E0 01C08825 */ move $s1, $t6 -/* 004DE4 700041E4 244FFFFF */ addiu $t7, $v0, -1 -/* 004DE8 700041E8 31EA03FF */ andi $t2, $t7, 0x3ff -/* 004DEC 700041EC 2638FFFF */ addiu $t8, $s1, -1 -/* 004DF0 700041F0 330903FF */ andi $t1, $t8, 0x3ff -/* 004DF4 700041F4 000AC880 */ sll $t9, $t2, 2 -/* 004DF8 700041F8 3C01F600 */ lui $at, 0xf600 -/* 004DFC 700041FC 8FAD0048 */ lw $t5, 0x48($sp) -/* 004E00 70004200 03214025 */ or $t0, $t9, $at -/* 004E04 70004204 00095B80 */ sll $t3, $t1, 0xe -/* 004E08 70004208 010B6025 */ or $t4, $t0, $t3 -/* 004E0C 7000420C 0C00112B */ jal viGetViewHeight -/* 004E10 70004210 ADAC0000 */ sw $t4, ($t5) -/* 004E14 70004214 0C001149 */ jal viGetViewTop -/* 004E18 70004218 A7A20022 */ sh $v0, 0x22($sp) -/* 004E1C 7000421C 00028C00 */ sll $s1, $v0, 0x10 -/* 004E20 70004220 00117403 */ sra $t6, $s1, 0x10 -/* 004E24 70004224 0C00112B */ jal viGetViewHeight -/* 004E28 70004228 01C08825 */ move $s1, $t6 -/* 004E2C 7000422C 87AA0022 */ lh $t2, 0x22($sp) -/* 004E30 70004230 00517821 */ addu $t7, $v0, $s1 -/* 004E34 70004234 8FA80048 */ lw $t0, 0x48($sp) -/* 004E38 70004238 01EAC821 */ addu $t9, $t7, $t2 -/* 004E3C 7000423C 333803FF */ andi $t8, $t9, 0x3ff -/* 004E40 70004240 00184880 */ sll $t1, $t8, 2 -/* 004E44 70004244 02001825 */ move $v1, $s0 -/* 004E48 70004248 AD090004 */ sw $t1, 4($t0) -/* 004E4C 7000424C 3C0BE700 */ lui $t3, 0xe700 -/* 004E50 70004250 AC6B0000 */ sw $t3, ($v1) -/* 004E54 70004254 AC600004 */ sw $zero, 4($v1) -/* 004E58 70004258 26100008 */ addiu $s0, $s0, 8 -/* 004E5C 7000425C 02008825 */ move $s1, $s0 -.L70004260: -/* 004E60 70004260 0C001107 */ jal get_video2_settings_txtClipW -/* 004E64 70004264 26100008 */ addiu $s0, $s0, 8 -/* 004E68 70004268 244CFFFF */ addiu $t4, $v0, -1 -/* 004E6C 7000426C 318D03FF */ andi $t5, $t4, 0x3ff -/* 004E70 70004270 000D7380 */ sll $t6, $t5, 0xe -/* 004E74 70004274 3C01F600 */ lui $at, 0xf600 -/* 004E78 70004278 01C17825 */ or $t7, $t6, $at -/* 004E7C 7000427C 35EA01E0 */ ori $t2, $t7, 0x1e0 -/* 004E80 70004280 241901DC */ li $t9, 476 -/* 004E84 70004284 02001825 */ move $v1, $s0 -/* 004E88 70004288 AE390004 */ sw $t9, 4($s1) -/* 004E8C 7000428C AE2A0000 */ sw $t2, ($s1) -/* 004E90 70004290 3C18E700 */ lui $t8, 0xe700 -/* 004E94 70004294 AC780000 */ sw $t8, ($v1) -/* 004E98 70004298 AC600004 */ sw $zero, 4($v1) -/* 004E9C 7000429C 0FC26919 */ jal getPlayerCount -/* 004EA0 700042A0 26100008 */ addiu $s0, $s0, 8 -/* 004EA4 700042A4 28410003 */ slti $at, $v0, 3 -/* 004EA8 700042A8 14200011 */ bnez $at, .L700042F0 -/* 004EAC 700042AC 02008825 */ move $s1, $s0 -/* 004EB0 700042B0 0C00110B */ jal get_video2_settings_txtClipH -/* 004EB4 700042B4 26100008 */ addiu $s0, $s0, 8 -/* 004EB8 700042B8 2449FFFF */ addiu $t1, $v0, -1 -/* 004EBC 700042BC 312803FF */ andi $t0, $t1, 0x3ff -/* 004EC0 700042C0 00085880 */ sll $t3, $t0, 2 -/* 004EC4 700042C4 3C01F628 */ lui $at, 0xf628 -/* 004EC8 700042C8 3C0D0027 */ lui $t5, (0x0027C000 >> 16) # lui $t5, 0x27 -/* 004ECC 700042CC 35ADC000 */ ori $t5, (0x0027C000 & 0xFFFF) # ori $t5, $t5, 0xc000 -/* 004ED0 700042D0 01616025 */ or $t4, $t3, $at -/* 004ED4 700042D4 02001825 */ move $v1, $s0 -/* 004ED8 700042D8 AE2C0000 */ sw $t4, ($s1) -/* 004EDC 700042DC AE2D0004 */ sw $t5, 4($s1) -/* 004EE0 700042E0 3C0EE700 */ lui $t6, 0xe700 -/* 004EE4 700042E4 AC6E0000 */ sw $t6, ($v1) -/* 004EE8 700042E8 AC600004 */ sw $zero, 4($v1) -/* 004EEC 700042EC 26100008 */ addiu $s0, $s0, 8 -.L700042F0: -/* 004EF0 700042F0 0FC26919 */ jal getPlayerCount -/* 004EF4 700042F4 00000000 */ nop -/* 004EF8 700042F8 24010003 */ li $at, 3 -/* 004EFC 700042FC 5441001C */ bnel $v0, $at, .L70004370 -/* 004F00 70004300 8FBF001C */ lw $ra, 0x1c($sp) -/* 004F04 70004304 AFB00030 */ sw $s0, 0x30($sp) -/* 004F08 70004308 0C001107 */ jal get_video2_settings_txtClipW -/* 004F0C 7000430C 26100008 */ addiu $s0, $s0, 8 -/* 004F10 70004310 00028C00 */ sll $s1, $v0, 0x10 -/* 004F14 70004314 00117C03 */ sra $t7, $s1, 0x10 -/* 004F18 70004318 0C00110B */ jal get_video2_settings_txtClipH -/* 004F1C 7000431C 01E08825 */ move $s1, $t7 -/* 004F20 70004320 244AFFFF */ addiu $t2, $v0, -1 -/* 004F24 70004324 8FA40030 */ lw $a0, 0x30($sp) -/* 004F28 70004328 315903FF */ andi $t9, $t2, 0x3ff -/* 004F2C 7000432C 2628FFFF */ addiu $t0, $s1, -1 -/* 004F30 70004330 310B03FF */ andi $t3, $t0, 0x3ff -/* 004F34 70004334 0019C080 */ sll $t8, $t9, 2 -/* 004F38 70004338 3C01F600 */ lui $at, 0xf600 -/* 004F3C 7000433C 03014825 */ or $t1, $t8, $at -/* 004F40 70004340 000B6380 */ sll $t4, $t3, 0xe -/* 004F44 70004344 3C0E0028 */ lui $t6, (0x002841E4 >> 16) # lui $t6, 0x28 -/* 004F48 70004348 35CE41E4 */ ori $t6, (0x002841E4 & 0xFFFF) # ori $t6, $t6, 0x41e4 -/* 004F4C 7000434C 012C6825 */ or $t5, $t1, $t4 -/* 004F50 70004350 02001825 */ move $v1, $s0 -/* 004F54 70004354 AC8D0000 */ sw $t5, ($a0) -/* 004F58 70004358 AC8E0004 */ sw $t6, 4($a0) -/* 004F5C 7000435C 3C0FE700 */ lui $t7, 0xe700 -/* 004F60 70004360 AC6F0000 */ sw $t7, ($v1) -/* 004F64 70004364 AC600004 */ sw $zero, 4($v1) -/* 004F68 70004368 26100008 */ addiu $s0, $s0, 8 -.L7000436C: -/* 004F6C 7000436C 8FBF001C */ lw $ra, 0x1c($sp) -.L70004370: -/* 004F70 70004370 02001025 */ move $v0, $s0 -/* 004F74 70004374 8FB00014 */ lw $s0, 0x14($sp) -/* 004F78 70004378 8FB10018 */ lw $s1, 0x18($sp) -/* 004F7C 7000437C 03E00008 */ jr $ra -/* 004F80 70004380 27BD0068 */ addiu $sp, $sp, 0x68 -) -#endif -/** - * 4F84 70004384 - * A0->[800232A0] - */ -void set_D_800232A0(s32 arg0) -{ +void viSet800232A0(s32 arg0) { D_800232A0 = arg0; } -/** - * 4F90 70004390 - * V0= [800232A0] - */ -s32 get_D_800232A0(void) -{ +s32 viGet800232A0(void) { return D_800232A0; } -/** - * 4F9C 7000439C - * A0->[8002329C] - */ -void set_D_8002329C(s32 arg0) -{ +void viSet8002329C(s32 arg0) { D_8002329C = arg0; } -/** - * 4FA8 700043A8 - * V0= [8002329C] - */ -s32 get_D_8002329C(void) -{ +s32 viGet8002329C(void) { return D_8002329C; } -/** - * 4FB4 700043B4 - * A0->[p@800232A8+18], SP+0; fry V0,T0,T1 - * A1->[p@800232A8+1A], SP+4 - */ -void set_video2_settings_offset_18_1A(s16 arg0, s16 arg1) -{ - ptr_video_settings2->bufx = arg0; - ptr_video_settings2->bufy = arg1; +void viSetBuf(s16 x, s16 y) { + ptr_video_settings2->bufx = x; + ptr_video_settings2->bufy = y; } -/** - * 4FD8 700043D8 - * V0= [p@800232A8+18]; fry T6 - */ -s16 get_video2_settings_offset_18(void) -{ +s16 viGetBufX(void) { return ptr_video_settings2->bufx; } -/** - * 4FE8 700043E8 - * V0= [p@800232A8+1A]; fry T6 - */ -s16 get_video2_settings_offset_1A(void) -{ +s16 viGetBufY(void) { return ptr_video_settings2->bufy; } -/** - * 4FF8 700043F8 - * set video2 text clip width (A0) and height (A1); fries V0,T0,T1 - * A0->[p@800232A8+4], SP+0 - * A1->[p@800232A8+6], SP+4 - */ -void set_video2_text_clip_size(s16 x, s16 y) { +void viSetXY(s16 x, s16 y) { ptr_video_settings2->x = x; ptr_video_settings2->y = y; } -/** - * 501C 7000441C - * V0= video2 text clip width [p@800232A8+4]; fry T6 - */ -s16 get_video2_settings_txtClipW(void) { +s16 viGetX(void) { return ptr_video_settings2->x; } -/** - * 502C 7000442C - * V0= video2 text clip height [p@800232A8+6]; fry T6 - */ -s16 get_video2_settings_txtClipH(void) { +s16 viGetY(void) { return ptr_video_settings2->y; } -/** - * 503C 7000443C - * set video2 width (A0) and height (A1) - */ -#ifdef NONMATCHING -void set_video2_width_height(short viewx,short viewy) { - ptr_video_settings2->viewx = viewx; - ptr_video_settings2->viewy = viewy; - currentPlayerSetScreenSize(ptr_video_settings2->viewx,ptr_video_settings2->viewy); - currentPlayerSetCameraScale(); - return; +void currentPlayerSetScreenSize(f32 width, f32 height); +void currentPlayerSetCameraScale(void); +void viSetViewSize(s16 x, s16 y) { + ptr_video_settings2->viewx = x; + ptr_video_settings2->viewy = y; + currentPlayerSetScreenSize(ptr_video_settings2->viewx, ptr_video_settings2->viewy); + currentPlayerSetCameraScale(); } -#else -GLOBAL_ASM( -.text -glabel set_video2_width_height -/* 00503C 7000443C 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 005040 70004440 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 005044 70004444 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 005048 70004448 8C680000 */ lw $t0, ($v1) -/* 00504C 7000444C AFBF0014 */ sw $ra, 0x14($sp) -/* 005050 70004450 AFA40018 */ sw $a0, 0x18($sp) -/* 005054 70004454 AFA5001C */ sw $a1, 0x1c($sp) -/* 005058 70004458 A504001C */ sh $a0, 0x1c($t0) -/* 00505C 7000445C 8C690000 */ lw $t1, ($v1) -/* 005060 70004460 A525001E */ sh $a1, 0x1e($t1) -/* 005064 70004464 8C620000 */ lw $v0, ($v1) -/* 005068 70004468 844A001C */ lh $t2, 0x1c($v0) -/* 00506C 7000446C 844B001E */ lh $t3, 0x1e($v0) -/* 005070 70004470 448A2000 */ mtc1 $t2, $f4 -/* 005074 70004474 448B3000 */ mtc1 $t3, $f6 -/* 005078 70004478 46802320 */ cvt.s.w $f12, $f4 -/* 00507C 7000447C 0FC1DEF6 */ jal currentPlayerSetScreenSize -/* 005080 70004480 468033A0 */ cvt.s.w $f14, $f6 -/* 005084 70004484 0FC1DF17 */ jal currentPlayerSetCameraScale -/* 005088 70004488 00000000 */ nop -/* 00508C 7000448C 8FBF0014 */ lw $ra, 0x14($sp) -/* 005090 70004490 27BD0018 */ addiu $sp, $sp, 0x18 -/* 005094 70004494 03E00008 */ jr $ra -/* 005098 70004498 00000000 */ nop -) -#endif - - -/** - * 509C 7000449C - * V0= video2 lrx [p@800232A8+1C]; fry T6 - */ s16 viGetViewWidth(void) { return ptr_video_settings2->viewx; } -/** - * 50AC 700044AC - * V0= video2 lry [p@800232A8+1E]; fry T6 - */ s16 viGetViewHeight(void) { return ptr_video_settings2->viewy; } -/** - * 50BC 700044BC - * set video2 ulx (A0) and uly (A1) - */ -#ifdef NONMATCHING -void set_video2_ulx_uly(s16 viewleft, s16 viewtop) -{ - ptr_video_settings2->viewleft = viewleft; - ptr_video_settings2->viewleft = viewtop; - currentPlayerSetScreenPosition((f32) ptr_video_settings2->viewleft, (f32) ptr_video_settings2->viewtop); +void currentPlayerSetScreenPosition(f32 left, f32 top); +void viSetViewPosition(s16 left, s16 top) { + ptr_video_settings2->viewleft = left; + ptr_video_settings2->viewtop = top; + currentPlayerSetScreenPosition(ptr_video_settings2->viewleft, ptr_video_settings2->viewtop); } -#else -GLOBAL_ASM( -.text -glabel set_video2_ulx_uly -/* 0050BC 700044BC 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 0050C0 700044C0 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 0050C4 700044C4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0050C8 700044C8 8C680000 */ lw $t0, ($v1) -/* 0050CC 700044CC AFBF0014 */ sw $ra, 0x14($sp) -/* 0050D0 700044D0 AFA40018 */ sw $a0, 0x18($sp) -/* 0050D4 700044D4 AFA5001C */ sw $a1, 0x1c($sp) -/* 0050D8 700044D8 A5040020 */ sh $a0, 0x20($t0) -/* 0050DC 700044DC 8C690000 */ lw $t1, ($v1) -/* 0050E0 700044E0 A5250022 */ sh $a1, 0x22($t1) -/* 0050E4 700044E4 8C620000 */ lw $v0, ($v1) -/* 0050E8 700044E8 844A0020 */ lh $t2, 0x20($v0) -/* 0050EC 700044EC 844B0022 */ lh $t3, 0x22($v0) -/* 0050F0 700044F0 448A2000 */ mtc1 $t2, $f4 -/* 0050F4 700044F4 448B3000 */ mtc1 $t3, $f6 -/* 0050F8 700044F8 46802320 */ cvt.s.w $f12, $f4 -/* 0050FC 700044FC 0FC1DF05 */ jal currentPlayerSetScreenPosition -/* 005100 70004500 468033A0 */ cvt.s.w $f14, $f6 -/* 005104 70004504 8FBF0014 */ lw $ra, 0x14($sp) -/* 005108 70004508 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00510C 7000450C 03E00008 */ jr $ra -/* 005110 70004510 00000000 */ nop -) -#endif - - -/** - * 5114 70004514 - * V0= video2 ulx [p@800232A8+20]; fry T6 - */ s16 viGetViewLeft(void) { return ptr_video_settings2->viewleft; } -/** - * 5124 70004524 - * V0= video2 uly [p@800232A8+22]; fry T6 - */ s16 viGetViewTop(void) { return ptr_video_settings2->viewtop; } -/** - * 5134 70004534 - * A0->[p@800232A8+24]; fry T6 - */ -void set_video2_settings_offset_24(int param_1) { - ptr_video_settings2->usezbuf = param_1; +void viSetUseZBuf(s32 usezbuf) { + ptr_video_settings2->usezbuf = usezbuf; } -/** - * 5144 70004544 - */ -#ifdef NONMATCHING -void setvideo_far(f32 arg0) -{ - ptr_video_settings2->fovy = arg0; - currentPlayerSetPerspective(ptr_video_settings2->near, ptr_video_settings2->fovy, ptr_video_settings2->aspect); +void currentPlayerSetPerspective(f32 znear, f32 fovy, f32 aspect); +void viSetFovY(f32 fovy) { + ptr_video_settings2->fovy = fovy; + currentPlayerSetPerspective(ptr_video_settings2->znear, ptr_video_settings2->fovy, ptr_video_settings2->aspect); currentPlayerSetCameraScale(); } -#else -GLOBAL_ASM( -.text -glabel setvideo_far -/* 005144 70004544 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 005148 70004548 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 00514C 7000454C 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 005150 70004550 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 005154 70004554 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 005158 70004558 8C6E0000 */ lw $t6, ($v1) -/* 00515C 7000455C AFBF0014 */ sw $ra, 0x14($sp) -/* 005160 70004560 E5C40008 */ swc1 $f4, 8($t6) -/* 005164 70004564 8C620000 */ lw $v0, ($v1) -/* 005168 70004568 C44C0010 */ lwc1 $f12, 0x10($v0) -/* 00516C 7000456C C44E0008 */ lwc1 $f14, 8($v0) -/* 005170 70004570 0FC1DF0C */ jal currentPlayerSetPerspective -/* 005174 70004574 8C46000C */ lw $a2, 0xc($v0) -/* 005178 70004578 0FC1DF17 */ jal currentPlayerSetCameraScale -/* 00517C 7000457C 00000000 */ nop -/* 005180 70004580 8FBF0014 */ lw $ra, 0x14($sp) -/* 005184 70004584 27BD0018 */ addiu $sp, $sp, 0x18 -/* 005188 70004588 03E00008 */ jr $ra -/* 00518C 7000458C 00000000 */ nop -) -#endif - -/** - * 5190 70004590 - * F12->video2 page width [p@800232A8+C] and something else... - */ -#ifdef NONMATCHING -void set_page_aspect(f32 arg0) -{ - ptr_video_settings2->aspect = arg0; - currentPlayerSetPerspective(ptr_video_settings2->near, ptr_video_settings2->fovy, ptr_video_settings2->aspect); +void viSetAspect(f32 aspect) { + ptr_video_settings2->aspect = aspect; + currentPlayerSetPerspective(ptr_video_settings2->znear, ptr_video_settings2->fovy, ptr_video_settings2->aspect); currentPlayerSetCameraScale(); } -#else -GLOBAL_ASM( -.text -glabel set_page_aspect -/* 005190 70004590 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 005194 70004594 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 005198 70004598 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 00519C 7000459C E7AC0018 */ swc1 $f12, 0x18($sp) -/* 0051A0 700045A0 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 0051A4 700045A4 8C6E0000 */ lw $t6, ($v1) -/* 0051A8 700045A8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0051AC 700045AC E5C4000C */ swc1 $f4, 0xc($t6) -/* 0051B0 700045B0 8C620000 */ lw $v0, ($v1) -/* 0051B4 700045B4 C44C0010 */ lwc1 $f12, 0x10($v0) -/* 0051B8 700045B8 C44E0008 */ lwc1 $f14, 8($v0) -/* 0051BC 700045BC 0FC1DF0C */ jal currentPlayerSetPerspective -/* 0051C0 700045C0 8C46000C */ lw $a2, 0xc($v0) -/* 0051C4 700045C4 0FC1DF17 */ jal currentPlayerSetCameraScale -/* 0051C8 700045C8 00000000 */ nop -/* 0051CC 700045CC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0051D0 700045D0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0051D4 700045D4 03E00008 */ jr $ra -/* 0051D8 700045D8 00000000 */ nop -) -#endif -/** - * 51DC 700045DC - * F0= [p@800232A8+8]; fry T6 - */ -f32 viGetFovY(void) -{ +f32 viGetFovY(void) { return ptr_video_settings2->fovy; } -/** - * 51EC 700045EC - */ -#ifdef NONMATCHING -void video_related_24(f32 arg0, f32 arg1) -{ - ptr_video_settings2->fovy = arg1; - ptr_video_settings2->aspect = (f32) (arg0 / arg1); - currentPlayerSetPerspective(ptr_video_settings2->near, ptr_video_settings2->fovy, ptr_video_settings2->aspect); +void viSetFov(f32 fovx, f32 fovy) { + ptr_video_settings2->fovy = fovy; + ptr_video_settings2->aspect = (f32) (fovx / fovy); + currentPlayerSetPerspective(ptr_video_settings2->znear, ptr_video_settings2->fovy, ptr_video_settings2->aspect); currentPlayerSetCameraScale(); } -#else -GLOBAL_ASM( -.text -glabel video_related_24 -/* 0051EC 700045EC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0051F0 700045F0 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 0051F4 700045F4 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 0051F8 700045F8 E7AE001C */ swc1 $f14, 0x1c($sp) -/* 0051FC 700045FC C7A4001C */ lwc1 $f4, 0x1c($sp) -/* 005200 70004600 8C6E0000 */ lw $t6, ($v1) -/* 005204 70004604 AFBF0014 */ sw $ra, 0x14($sp) -/* 005208 70004608 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 00520C 7000460C E5C40008 */ swc1 $f4, 8($t6) -/* 005210 70004610 C7A8001C */ lwc1 $f8, 0x1c($sp) -/* 005214 70004614 C7A60018 */ lwc1 $f6, 0x18($sp) -/* 005218 70004618 8C6F0000 */ lw $t7, ($v1) -/* 00521C 7000461C 46083283 */ div.s $f10, $f6, $f8 -/* 005220 70004620 E5EA000C */ swc1 $f10, 0xc($t7) -/* 005224 70004624 8C620000 */ lw $v0, ($v1) -/* 005228 70004628 C44C0010 */ lwc1 $f12, 0x10($v0) -/* 00522C 7000462C C44E0008 */ lwc1 $f14, 8($v0) -/* 005230 70004630 0FC1DF0C */ jal currentPlayerSetPerspective -/* 005234 70004634 8C46000C */ lw $a2, 0xc($v0) -/* 005238 70004638 0FC1DF17 */ jal currentPlayerSetCameraScale -/* 00523C 7000463C 00000000 */ nop -/* 005240 70004640 8FBF0014 */ lw $ra, 0x14($sp) -/* 005244 70004644 27BD0018 */ addiu $sp, $sp, 0x18 -/* 005248 70004648 03E00008 */ jr $ra -/* 00524C 7000464C 00000000 */ nop -) -#endif -/** - * 5250 70004650 - */ -#ifdef NONMATCHING -void set_page_height(f32 arg0, f32 arg1) -{ - ptr_video_settings2->near = arg0; - ptr_video_settings2->unk14 = arg1; - currentPlayerSetPerspective(ptr_video_settings2->near, ptr_video_settings2->fovy, ptr_video_settings2->aspect); +void viSetZRange(f32 near, f32 far) { + ptr_video_settings2->znear = near; + ptr_video_settings2->zfar = far; + currentPlayerSetPerspective(ptr_video_settings2->znear, ptr_video_settings2->fovy, ptr_video_settings2->aspect); currentPlayerSetCameraScale(); } -#else -GLOBAL_ASM( -.text -glabel set_page_height -/* 005250 70004650 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 005254 70004654 3C038002 */ lui $v1, %hi(ptr_video_settings2) -/* 005258 70004658 246332A8 */ addiu $v1, %lo(ptr_video_settings2) # addiu $v1, $v1, 0x32a8 -/* 00525C 7000465C E7AC0018 */ swc1 $f12, 0x18($sp) -/* 005260 70004660 C7A40018 */ lwc1 $f4, 0x18($sp) -/* 005264 70004664 8C6E0000 */ lw $t6, ($v1) -/* 005268 70004668 AFBF0014 */ sw $ra, 0x14($sp) -/* 00526C 7000466C E7AE001C */ swc1 $f14, 0x1c($sp) -/* 005270 70004670 E5C40010 */ swc1 $f4, 0x10($t6) -/* 005274 70004674 8C6F0000 */ lw $t7, ($v1) -/* 005278 70004678 C7A6001C */ lwc1 $f6, 0x1c($sp) -/* 00527C 7000467C E5E60014 */ swc1 $f6, 0x14($t7) -/* 005280 70004680 8C620000 */ lw $v0, ($v1) -/* 005284 70004684 C44C0010 */ lwc1 $f12, 0x10($v0) -/* 005288 70004688 C44E0008 */ lwc1 $f14, 8($v0) -/* 00528C 7000468C 0FC1DF0C */ jal currentPlayerSetPerspective -/* 005290 70004690 8C46000C */ lw $a2, 0xc($v0) -/* 005294 70004694 0FC1DF17 */ jal currentPlayerSetCameraScale -/* 005298 70004698 00000000 */ nop -/* 00529C 7000469C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0052A0 700046A0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0052A4 700046A4 03E00008 */ jr $ra -/* 0052A8 700046A8 00000000 */ nop -) -#endif -/** - * 52AC 700046AC - * copies [p@800232A8+10-14] to A0; fries V0,T6,T7,F4,F6 - */ -#ifdef NONMATCHING -void *video_related_27(void *arg0) -{ - arg0->unk0 = (f32) ptr_video_settings2->near; - arg0->unk4 = (f32) ptr_video_settings2->unk14; - return &ptr_video_settings2; +void viGetZRange(f32 *zrange) { + zrange[0] = ptr_video_settings2->znear; + zrange[1] = ptr_video_settings2->zfar; } -#else -GLOBAL_ASM( -.text -glabel video_related_27 -/* 0052AC 700046AC 3C028002 */ lui $v0, %hi(ptr_video_settings2) -/* 0052B0 700046B0 244232A8 */ addiu $v0, %lo(ptr_video_settings2) # addiu $v0, $v0, 0x32a8 -/* 0052B4 700046B4 8C4E0000 */ lw $t6, ($v0) -/* 0052B8 700046B8 C5C40010 */ lwc1 $f4, 0x10($t6) -/* 0052BC 700046BC E4840000 */ swc1 $f4, ($a0) -/* 0052C0 700046C0 8C4F0000 */ lw $t7, ($v0) -/* 0052C4 700046C4 C5E60014 */ lwc1 $f6, 0x14($t7) -/* 0052C8 700046C8 03E00008 */ jr $ra -/* 0052CC 700046CC E4860004 */ swc1 $f6, 4($a0) -) -#endif -/** - * 52D0 700046D0 - * setfillcolour(&A0,A1,A2,A3); generates a setfillcolour op - * mode determined by flag at 800232AC: 0=32bit, 1=16bit - * accepts: A0=p->display list target, A1=red, A2=green, A3=blue - * returns: V0=updated display list target (A0 also updated) - * fries: V1,A0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 - */ -#ifdef NONMATCHING -s32 set_setfillcolor(void *arg0, s32 arg1, s32 arg2, s32 arg3) -{ - s32 temp_t5; - - if (coloroutputmode != 0) - { - temp_t5 = ((((arg1 << 8) & 0xf800) | ((arg2 * 8) & 0x7c0)) | ((arg3 >> 2) & 0x3e)) | 1; - arg0->unk0 = 0xf7000000; - arg0->unk4 = (s32) ((temp_t5 << 0x10) | temp_t5); - return arg0 + 8; +Gfx *viSetFillColor(Gfx *gdl, s32 r, s32 g, s32 b) { + if (coloroutputmode != COLORMODE_32BIT) { + gDPSetFillColor(gdl++, ((GPACK_RGBA5551(r, g, b, 1) << 16) | GPACK_RGBA5551(r, g, b, 1))); + } else { + gDPSetFillColor(gdl++, ((r << 24) | (g << 16) | (b << 8) | 0xFF)); } - arg0->unk4 = (s32) ((((arg1 << 0x18) | (arg2 << 0x10)) | (arg3 << 8)) | 0xff); - arg0->unk0 = 0xf7000000; - return arg0 + 8; + + return gdl; } -#else -GLOBAL_ASM( -.text -glabel set_setfillcolor -/* 0052D0 700046D0 3C0E8002 */ lui $t6, %hi(coloroutputmode) -/* 0052D4 700046D4 8DCE32AC */ lw $t6, %lo(coloroutputmode)($t6) -/* 0052D8 700046D8 00801025 */ move $v0, $a0 -/* 0052DC 700046DC 3C18F700 */ lui $t8, 0xf700 -/* 0052E0 700046E0 11C00013 */ beqz $t6, .L70004730 -/* 0052E4 700046E4 00054600 */ sll $t0, $a1, 0x18 -/* 0052E8 700046E8 0005C200 */ sll $t8, $a1, 8 -/* 0052EC 700046EC 000640C0 */ sll $t0, $a2, 3 -/* 0052F0 700046F0 310907C0 */ andi $t1, $t0, 0x7c0 -/* 0052F4 700046F4 3319F800 */ andi $t9, $t8, 0xf800 -/* 0052F8 700046F8 00075883 */ sra $t3, $a3, 2 -/* 0052FC 700046FC 316C003E */ andi $t4, $t3, 0x3e -/* 005300 70004700 03295025 */ or $t2, $t9, $t1 -/* 005304 70004704 014C1825 */ or $v1, $t2, $t4 -/* 005308 70004708 346D0001 */ ori $t5, $v1, 1 -/* 00530C 7000470C 00801025 */ move $v0, $a0 -/* 005310 70004710 3C0FF700 */ lui $t7, 0xf700 -/* 005314 70004714 AC4F0000 */ sw $t7, ($v0) -/* 005318 70004718 000D7400 */ sll $t6, $t5, 0x10 -/* 00531C 7000471C 01CD7825 */ or $t7, $t6, $t5 -/* 005320 70004720 AC4F0004 */ sw $t7, 4($v0) -/* 005324 70004724 24840008 */ addiu $a0, $a0, 8 -/* 005328 70004728 03E00008 */ jr $ra -/* 00532C 7000472C 00801025 */ move $v0, $a0 - -.L70004730: -/* 005330 70004730 0006CC00 */ sll $t9, $a2, 0x10 -/* 005334 70004734 01194825 */ or $t1, $t0, $t9 -/* 005338 70004738 00075A00 */ sll $t3, $a3, 8 -/* 00533C 7000473C 012B5025 */ or $t2, $t1, $t3 -/* 005340 70004740 354C00FF */ ori $t4, $t2, 0xff -/* 005344 70004744 AC4C0004 */ sw $t4, 4($v0) -/* 005348 70004748 24840008 */ addiu $a0, $a0, 8 -/* 00534C 7000474C AC580000 */ sw $t8, ($v0) -/* 005350 70004750 03E00008 */ jr $ra -/* 005354 70004754 00801025 */ move $v0, $a0 -) -#endif /** * 5358 70004758 * image capture routine, jpeg 16bit colour */ #ifdef NONMATCHING +s32 check_file_found_on_indy(s32, s32); +void indy_send_capture_data(s32, s32, s32); +s32 send_command_string(s32); +int sprintf(char *str, const char *fmt, ...); void indy_grab_jpg_16bit(void) { - char iFileName[256]; - u32 iFileSize; + char buffer[256]; + u32 bufferSize; - while( 1 ) { - sprintf(&iFileName,"grab.%d.jpeg",jpg_16bit_grabnum); - if (check_file_found_on_indy(&iFileName,&iFileSize) == 0) break; + while(TRUE) { + sprintf(buffer, "grab.%d.jpeg", jpg_16bit_grabnum); + if (check_file_found_on_indy(buffer, &bufferSize) == 0) break; jpg_16bit_grabnum++; } - sprintf(&iFileName, "grab.%d.temp.uix", jpg_16bit_grabnum); - indy_send_capture_data(&iFileName, ptr_video_settings2->framebuf, (get_video2_settings_txtClipH() * get_video2_settings_txtClipW() * 2)); - sprintf(&iFileName, "uix2pix grab.%d.temp.uix", jpg_16bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_16bit_grabnum, jpg_16bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_16bit_grabnum); - response_from_command_string(&iFileName); + sprintf(buffer, "grab.%d.temp.uix", jpg_16bit_grabnum); + indy_send_capture_data(buffer, ptr_video_settings2->framebuf, (viGetY() * viGetX() * 2)); + sprintf(buffer, "uix2pix grab.%d.temp.uix", jpg_16bit_grabnum); + send_command_string(buffer); + sprintf(buffer, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum); + send_command_string(buffer); + sprintf(buffer, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_16bit_grabnum, jpg_16bit_grabnum); + send_command_string(buffer); + sprintf(buffer, "rm grab.%d.temp.uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_16bit_grabnum, jpg_16bit_grabnum, jpg_16bit_grabnum); + send_command_string(buffer); + sprintf(buffer, "imgview grab.%d.jpeg", jpg_16bit_grabnum); + send_command_string(buffer); } #else const char aGrab_D_jpeg_1[] = "grab.%d.jpeg"; @@ -2254,11 +1330,11 @@ glabel indy_grab_jpg_16bit /* 0053C4 700047C4 24A584A0 */ addiu $a1, %lo(aGrab_D_temp_uix) # addiu $a1, $a1, -0x7b60 /* 0053C8 700047C8 0C002B25 */ jal sprintf /* 0053CC 700047CC 02002025 */ move $a0, $s0 -/* 0053D0 700047D0 0C001107 */ jal get_video2_settings_txtClipW +/* 0053D0 700047D0 0C001107 */ jal viGetX /* 0053D4 700047D4 00000000 */ nop /* 0053D8 700047D8 00028C00 */ sll $s1, $v0, 0x10 /* 0053DC 700047DC 00117403 */ sra $t6, $s1, 0x10 -/* 0053E0 700047E0 0C00110B */ jal get_video2_settings_txtClipH +/* 0053E0 700047E0 0C00110B */ jal viGetY /* 0053E4 700047E4 01C08825 */ move $s1, $t6 /* 0053E8 700047E8 00510019 */ multu $v0, $s1 /* 0053EC 700047EC 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) @@ -2275,7 +1351,7 @@ glabel indy_grab_jpg_16bit /* 005418 70004818 24A584B4 */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix) # addiu $a1, $a1, -0x7b4c /* 00541C 7000481C 0C002B25 */ jal sprintf /* 005420 70004820 02002025 */ move $a0, $s0 -/* 005424 70004824 0FC34038 */ jal response_from_command_string +/* 005424 70004824 0FC34038 */ jal send_command_string /* 005428 70004828 02002025 */ move $a0, $s0 /* 00542C 7000482C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) /* 005430 70004830 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) @@ -2284,7 +1360,7 @@ glabel indy_grab_jpg_16bit /* 00543C 7000483C 02002025 */ move $a0, $s0 /* 005440 70004840 0C002B25 */ jal sprintf /* 005444 70004844 00C03825 */ move $a3, $a2 -/* 005448 70004848 0FC34038 */ jal response_from_command_string +/* 005448 70004848 0FC34038 */ jal send_command_string /* 00544C 7000484C 02002025 */ move $a0, $s0 /* 005450 70004850 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) /* 005454 70004854 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) @@ -2293,7 +1369,7 @@ glabel indy_grab_jpg_16bit /* 005460 70004860 02002025 */ move $a0, $s0 /* 005464 70004864 0C002B25 */ jal sprintf /* 005468 70004868 00C03825 */ move $a3, $a2 -/* 00546C 7000486C 0FC34038 */ jal response_from_command_string +/* 00546C 7000486C 0FC34038 */ jal send_command_string /* 005470 70004870 02002025 */ move $a0, $s0 /* 005474 70004874 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) /* 005478 70004878 8CC632C4 */ lw $a2, %lo(jpg_16bit_grabnum)($a2) @@ -2303,7 +1379,7 @@ glabel indy_grab_jpg_16bit /* 005488 70004888 00C03825 */ move $a3, $a2 /* 00548C 7000488C 0C002B25 */ jal sprintf /* 005490 70004890 AFA60010 */ sw $a2, 0x10($sp) -/* 005494 70004894 0FC34038 */ jal response_from_command_string +/* 005494 70004894 0FC34038 */ jal send_command_string /* 005498 70004898 02002025 */ move $a0, $s0 /* 00549C 7000489C 3C068002 */ lui $a2, %hi(jpg_16bit_grabnum) /* 0054A0 700048A0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg) @@ -2311,7 +1387,7 @@ glabel indy_grab_jpg_16bit /* 0054A8 700048A8 24A58564 */ addiu $a1, %lo(aImgviewGrab_D_jpeg) # addiu $a1, $a1, -0x7a9c /* 0054AC 700048AC 0C002B25 */ jal sprintf /* 0054B0 700048B0 02002025 */ move $a0, $s0 -/* 0054B4 700048B4 0FC34038 */ jal response_from_command_string +/* 0054B4 700048B4 0FC34038 */ jal send_command_string /* 0054B8 700048B8 02002025 */ move $a0, $s0 /* 0054BC 700048BC 8FBF002C */ lw $ra, 0x2c($sp) /* 0054C0 700048C0 8FB00020 */ lw $s0, 0x20($sp) @@ -2329,28 +1405,28 @@ glabel indy_grab_jpg_16bit #ifdef NONMATCHING void indy_grab_jpg_32bit(void) { - char iFileName [256]; + char buffer [256]; ? sp34; loop_1: - sprintf(&iFileName, "grab.%d.jpeg", jpg_32bit_grabnum); - if (check_file_found_on_indy(&iFileName, &sp34) != 0) + sprintf(&buffer, "grab.%d.jpeg", jpg_32bit_grabnum); + if (check_file_found_on_indy(&buffer, &sp34) != 0) { jpg_32bit_grabnum = (s32) (jpg_32bit_grabnum + 1); goto loop_1; } - sprintf(&iFileName, "grab.%d.temp.Uix", jpg_32bit_grabnum); - indy_send_capture_data(&iFileName, &cfb_16, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); - sprintf(&iFileName, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), jpg_32bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_32bit_grabnum, jpg_32bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); - response_from_command_string(&iFileName); - sprintf(&iFileName, "imgview grab.%d.jpeg", jpg_32bit_grabnum); - response_from_command_string(&iFileName); + sprintf(&buffer, "grab.%d.temp.Uix", jpg_32bit_grabnum); + indy_send_capture_data(&buffer, &cfb_16, (viGetY() * ((s32) (viGetX() << 0x10) >> 0x10)) * 4); + sprintf(&buffer, "Uix2pix -xs%d grab.%d.temp.Uix", viGetX(), jpg_32bit_grabnum); + send_command_string(&buffer); + sprintf(&buffer, "fromalias grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + send_command_string(&buffer); + sprintf(&buffer, "imgcopy -fjfif grab.%d.temp.rgb grab.%d.jpeg", jpg_32bit_grabnum, jpg_32bit_grabnum); + send_command_string(&buffer); + sprintf(&buffer, "rm grab.%d.temp.Uix grab.%d.temp.pix grab.%d.temp.rgb", jpg_32bit_grabnum, jpg_32bit_grabnum); + send_command_string(&buffer); + sprintf(&buffer, "imgview grab.%d.jpeg", jpg_32bit_grabnum); + send_command_string(&buffer); } #else const char aGrab_D_jpeg[] = "grab.%d.jpeg"; @@ -2396,11 +1472,11 @@ glabel indy_grab_jpg_32bit /* 005544 70004944 24A5858C */ addiu $a1, %lo(aGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7a74 /* 005548 70004948 0C002B25 */ jal sprintf /* 00554C 7000494C 02002025 */ move $a0, $s0 -/* 005550 70004950 0C001107 */ jal get_video2_settings_txtClipW +/* 005550 70004950 0C001107 */ jal viGetX /* 005554 70004954 00000000 */ nop /* 005558 70004958 00028C00 */ sll $s1, $v0, 0x10 /* 00555C 7000495C 00117403 */ sra $t6, $s1, 0x10 -/* 005560 70004960 0C00110B */ jal get_video2_settings_txtClipH +/* 005560 70004960 0C00110B */ jal viGetY /* 005564 70004964 01C08825 */ move $s1, $t6 /* 005568 70004968 00510019 */ multu $v0, $s1 /* 00556C 7000496C 3C05803B */ lui $a1, %hi(cfb_16) # $a1, 0x803b @@ -2410,7 +1486,7 @@ glabel indy_grab_jpg_32bit /* 00557C 7000497C 00067880 */ sll $t7, $a2, 2 /* 005580 70004980 0FC33FF8 */ jal indy_send_capture_data /* 005584 70004984 01E03025 */ move $a2, $t7 -/* 005588 70004988 0C001107 */ jal get_video2_settings_txtClipW +/* 005588 70004988 0C001107 */ jal viGetX /* 00558C 7000498C 00000000 */ nop /* 005590 70004990 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) /* 005594 70004994 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix) @@ -2419,7 +1495,7 @@ glabel indy_grab_jpg_32bit /* 0055A0 700049A0 02002025 */ move $a0, $s0 /* 0055A4 700049A4 0C002B25 */ jal sprintf /* 0055A8 700049A8 00403025 */ move $a2, $v0 -/* 0055AC 700049AC 0FC34038 */ jal response_from_command_string +/* 0055AC 700049AC 0FC34038 */ jal send_command_string /* 0055B0 700049B0 02002025 */ move $a0, $s0 /* 0055B4 700049B4 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) /* 0055B8 700049B8 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) @@ -2428,7 +1504,7 @@ glabel indy_grab_jpg_32bit /* 0055C4 700049C4 02002025 */ move $a0, $s0 /* 0055C8 700049C8 0C002B25 */ jal sprintf /* 0055CC 700049CC 00E03025 */ move $a2, $a3 -/* 0055D0 700049D0 0FC34038 */ jal response_from_command_string +/* 0055D0 700049D0 0FC34038 */ jal send_command_string /* 0055D4 700049D4 02002025 */ move $a0, $s0 /* 0055D8 700049D8 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) /* 0055DC 700049DC 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) @@ -2437,7 +1513,7 @@ glabel indy_grab_jpg_32bit /* 0055E8 700049E8 02002025 */ move $a0, $s0 /* 0055EC 700049EC 0C002B25 */ jal sprintf /* 0055F0 700049F0 00E03025 */ move $a2, $a3 -/* 0055F4 700049F4 0FC34038 */ jal response_from_command_string +/* 0055F4 700049F4 0FC34038 */ jal send_command_string /* 0055F8 700049F8 02002025 */ move $a0, $s0 /* 0055FC 700049FC 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) /* 005600 70004A00 8E6732C8 */ lw $a3, %lo(jpg_32bit_grabnum)($s3) @@ -2447,7 +1523,7 @@ glabel indy_grab_jpg_32bit /* 005610 70004A10 00E03025 */ move $a2, $a3 /* 005614 70004A14 0C002B25 */ jal sprintf /* 005618 70004A18 AFA70010 */ sw $a3, 0x10($sp) -/* 00561C 70004A1C 0FC34038 */ jal response_from_command_string +/* 00561C 70004A1C 0FC34038 */ jal send_command_string /* 005620 70004A20 02002025 */ move $a0, $s0 /* 005624 70004A24 3C138002 */ lui $s3, %hi(jpg_32bit_grabnum) /* 005628 70004A28 3C058003 */ lui $a1, %hi(aImgviewGrab_D_jpeg_0) @@ -2455,7 +1531,7 @@ glabel indy_grab_jpg_32bit /* 005630 70004A30 24A58654 */ addiu $a1, %lo(aImgviewGrab_D_jpeg_0) # addiu $a1, $a1, -0x79ac /* 005634 70004A34 0C002B25 */ jal sprintf /* 005638 70004A38 02002025 */ move $a0, $s0 -/* 00563C 70004A3C 0FC34038 */ jal response_from_command_string +/* 00563C 70004A3C 0FC34038 */ jal send_command_string /* 005640 70004A40 02002025 */ move $a0, $s0 /* 005644 70004A44 8FBF002C */ lw $ra, 0x2c($sp) /* 005648 70004A48 8FB0001C */ lw $s0, 0x1c($sp) @@ -2485,15 +1561,15 @@ loop_1: goto loop_1; } sprintf(&sp30, "grab.%d.temp.uix", rgb_16bit_grabnum); - indy_send_capture_data(&sp30, ptr_video_settings2->framebuf, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 2); + indy_send_capture_data(&sp30, ptr_video_settings2->framebuf, (viGetY() * ((s32) (viGetX() << 0x10) >> 0x10)) * 2); sprintf(&sp30, "uix2pix grab.%d.temp.uix", rgb_16bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_16bit_grabnum, rgb_16bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); sprintf(&sp30, "rm grab.%d.temp.uix grab.%d.temp.pix", rgb_16bit_grabnum, rgb_16bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); sprintf(&sp30, "imgview grab.%d.rgb", rgb_16bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); } #else const char aGrab_D_rgb[] = "grab.%d.rgb"; @@ -2537,11 +1613,11 @@ glabel indy_grab_rgb_16bit /* 0056CC 70004ACC 24A58678 */ addiu $a1, %lo(aGrab_D_temp_uix_1) # addiu $a1, $a1, -0x7988 /* 0056D0 70004AD0 0C002B25 */ jal sprintf /* 0056D4 70004AD4 02002025 */ move $a0, $s0 -/* 0056D8 70004AD8 0C001107 */ jal get_video2_settings_txtClipW +/* 0056D8 70004AD8 0C001107 */ jal viGetX /* 0056DC 70004ADC 00000000 */ nop /* 0056E0 70004AE0 00028C00 */ sll $s1, $v0, 0x10 /* 0056E4 70004AE4 00117403 */ sra $t6, $s1, 0x10 -/* 0056E8 70004AE8 0C00110B */ jal get_video2_settings_txtClipH +/* 0056E8 70004AE8 0C00110B */ jal viGetY /* 0056EC 70004AEC 01C08825 */ move $s1, $t6 /* 0056F0 70004AF0 00510019 */ multu $v0, $s1 /* 0056F4 70004AF4 3C0F8002 */ lui $t7, %hi(ptr_video_settings2) @@ -2558,7 +1634,7 @@ glabel indy_grab_rgb_16bit /* 005720 70004B20 24A5868C */ addiu $a1, %lo(aUix2pixGrab_D_temp_uix_0) # addiu $a1, $a1, -0x7974 /* 005724 70004B24 0C002B25 */ jal sprintf /* 005728 70004B28 02002025 */ move $a0, $s0 -/* 00572C 70004B2C 0FC34038 */ jal response_from_command_string +/* 00572C 70004B2C 0FC34038 */ jal send_command_string /* 005730 70004B30 02002025 */ move $a0, $s0 /* 005734 70004B34 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) /* 005738 70004B38 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) @@ -2567,7 +1643,7 @@ glabel indy_grab_rgb_16bit /* 005744 70004B44 02002025 */ move $a0, $s0 /* 005748 70004B48 0C002B25 */ jal sprintf /* 00574C 70004B4C 00C03825 */ move $a3, $a2 -/* 005750 70004B50 0FC34038 */ jal response_from_command_string +/* 005750 70004B50 0FC34038 */ jal send_command_string /* 005754 70004B54 02002025 */ move $a0, $s0 /* 005758 70004B58 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) /* 00575C 70004B5C 8CC632CC */ lw $a2, %lo(rgb_16bit_grabnum)($a2) @@ -2576,7 +1652,7 @@ glabel indy_grab_rgb_16bit /* 005768 70004B68 02002025 */ move $a0, $s0 /* 00576C 70004B6C 0C002B25 */ jal sprintf /* 005770 70004B70 00C03825 */ move $a3, $a2 -/* 005774 70004B74 0FC34038 */ jal response_from_command_string +/* 005774 70004B74 0FC34038 */ jal send_command_string /* 005778 70004B78 02002025 */ move $a0, $s0 /* 00577C 70004B7C 3C068002 */ lui $a2, %hi(rgb_16bit_grabnum) /* 005780 70004B80 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb) @@ -2584,7 +1660,7 @@ glabel indy_grab_rgb_16bit /* 005788 70004B88 24A586F8 */ addiu $a1, %lo(aImgviewGrab_D_rgb) # addiu $a1, $a1, -0x7908 /* 00578C 70004B8C 0C002B25 */ jal sprintf /* 005790 70004B90 02002025 */ move $a0, $s0 -/* 005794 70004B94 0FC34038 */ jal response_from_command_string +/* 005794 70004B94 0FC34038 */ jal send_command_string /* 005798 70004B98 02002025 */ move $a0, $s0 /* 00579C 70004B9C 8FBF0024 */ lw $ra, 0x24($sp) /* 0057A0 70004BA0 8FB00018 */ lw $s0, 0x18($sp) @@ -2613,15 +1689,15 @@ loop_1: goto loop_1; } sprintf(&sp30, "grab.%d.temp.Uix", rgb_32bit_grabnum); - indy_send_capture_data(&sp30, &cfb_16, (get_video2_settings_txtClipH() * ((s32) (get_video2_settings_txtClipW() << 0x10) >> 0x10)) * 4); - sprintf(&sp30, "Uix2pix -xs%d grab.%d.temp.Uix", get_video2_settings_txtClipW(), rgb_32bit_grabnum); - response_from_command_string(&sp30); + indy_send_capture_data(&sp30, &cfb_16, (viGetY() * ((s32) (viGetX() << 0x10) >> 0x10)) * 4); + sprintf(&sp30, "Uix2pix -xs%d grab.%d.temp.Uix", viGetX(), rgb_32bit_grabnum); + send_command_string(&sp30); sprintf(&sp30, "fromalias grab.%d.temp.pix grab.%d.rgb", rgb_32bit_grabnum, rgb_32bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); sprintf(&sp30, "rm grab.%d.temp.Uix grab.%d.temp.pix", rgb_32bit_grabnum, rgb_32bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); sprintf(&sp30, "imgview grab.%d.rgb", rgb_32bit_grabnum); - response_from_command_string(&sp30); + send_command_string(&sp30); } #else const char aGrab_D_rgb_0[] = "grab.%d.rgb"; @@ -2666,11 +1742,11 @@ glabel indy_grab_rgb_32bit /* 005824 70004C24 24A58718 */ addiu $a1, %lo(aGrab_D_temp_uix_2) # addiu $a1, $a1, -0x78e8 /* 005828 70004C28 0C002B25 */ jal sprintf /* 00582C 70004C2C 02002025 */ move $a0, $s0 -/* 005830 70004C30 0C001107 */ jal get_video2_settings_txtClipW +/* 005830 70004C30 0C001107 */ jal viGetX /* 005834 70004C34 00000000 */ nop /* 005838 70004C38 00028C00 */ sll $s1, $v0, 0x10 /* 00583C 70004C3C 00117403 */ sra $t6, $s1, 0x10 -/* 005840 70004C40 0C00110B */ jal get_video2_settings_txtClipH +/* 005840 70004C40 0C00110B */ jal viGetY /* 005844 70004C44 01C08825 */ move $s1, $t6 /* 005848 70004C48 00510019 */ multu $v0, $s1 /* 00584C 70004C4C 3C05803B */ lui $a1, %hi(cfb_16) # $a1, 0x803b @@ -2680,7 +1756,7 @@ glabel indy_grab_rgb_32bit /* 00585C 70004C5C 00067880 */ sll $t7, $a2, 2 /* 005860 70004C60 0FC33FF8 */ jal indy_send_capture_data /* 005864 70004C64 01E03025 */ move $a2, $t7 -/* 005868 70004C68 0C001107 */ jal get_video2_settings_txtClipW +/* 005868 70004C68 0C001107 */ jal viGetX /* 00586C 70004C6C 00000000 */ nop /* 005870 70004C70 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) /* 005874 70004C74 3C058003 */ lui $a1, %hi(aUix2pixXsDGrab_D_temp_uix_0) @@ -2689,7 +1765,7 @@ glabel indy_grab_rgb_32bit /* 005880 70004C80 02002025 */ move $a0, $s0 /* 005884 70004C84 0C002B25 */ jal sprintf /* 005888 70004C88 00403025 */ move $a2, $v0 -/* 00588C 70004C8C 0FC34038 */ jal response_from_command_string +/* 00588C 70004C8C 0FC34038 */ jal send_command_string /* 005890 70004C90 02002025 */ move $a0, $s0 /* 005894 70004C94 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) /* 005898 70004C98 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) @@ -2698,7 +1774,7 @@ glabel indy_grab_rgb_32bit /* 0058A4 70004CA4 02002025 */ move $a0, $s0 /* 0058A8 70004CA8 0C002B25 */ jal sprintf /* 0058AC 70004CAC 00E03025 */ move $a2, $a3 -/* 0058B0 70004CB0 0FC34038 */ jal response_from_command_string +/* 0058B0 70004CB0 0FC34038 */ jal send_command_string /* 0058B4 70004CB4 02002025 */ move $a0, $s0 /* 0058B8 70004CB8 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) /* 0058BC 70004CBC 8E6732D0 */ lw $a3, %lo(rgb_32bit_grabnum)($s3) @@ -2707,7 +1783,7 @@ glabel indy_grab_rgb_32bit /* 0058C8 70004CC8 02002025 */ move $a0, $s0 /* 0058CC 70004CCC 0C002B25 */ jal sprintf /* 0058D0 70004CD0 00E03025 */ move $a2, $a3 -/* 0058D4 70004CD4 0FC34038 */ jal response_from_command_string +/* 0058D4 70004CD4 0FC34038 */ jal send_command_string /* 0058D8 70004CD8 02002025 */ move $a0, $s0 /* 0058DC 70004CDC 3C138002 */ lui $s3, %hi(rgb_32bit_grabnum) /* 0058E0 70004CE0 3C058003 */ lui $a1, %hi(aImgviewGrab_D_rgb_0) @@ -2715,7 +1791,7 @@ glabel indy_grab_rgb_32bit /* 0058E8 70004CE8 24A5879C */ addiu $a1, %lo(aImgviewGrab_D_rgb_0) # addiu $a1, $a1, -0x7864 /* 0058EC 70004CEC 0C002B25 */ jal sprintf /* 0058F0 70004CF0 02002025 */ move $a0, $s0 -/* 0058F4 70004CF4 0FC34038 */ jal response_from_command_string +/* 0058F4 70004CF4 0FC34038 */ jal send_command_string /* 0058F8 70004CF8 02002025 */ move $a0, $s0 /* 0058FC 70004CFC 8FBF0024 */ lw $ra, 0x24($sp) /* 005900 70004D00 8FB00014 */ lw $s0, 0x14($sp) diff --git a/src/video.h b/src/video.h index fdc757c..44d7e88 100644 --- a/src/video.h +++ b/src/video.h @@ -5,16 +5,16 @@ typedef struct video_settings video_settings, *Pvideo_settings; struct video_settings { - s8 mode; - s8 test1; - s8 test2; - s8 test3; + u8 mode; + s8 field_01; + s8 field_02; + s8 field_03; s16 x; s16 y; f32 fovy; f32 aspect; - f32 near; - f32 far; + f32 znear; + f32 zfar; s16 bufx; s16 bufy; s16 viewx; @@ -25,10 +25,28 @@ struct video_settings { u8* framebuf; }; -void setvideo_far(f32 arg0); -void set_page_aspect(f32 arg0); -void set_page_height(f32 arg0, f32 arg1); -void set_video2_settings_offset_24(int param_1); +extern OSViMode *viMode; +extern u32 dword_CODE_bss_80060880; +extern u32 dword_CODE_bss_80060884; +extern u32 dword_CODE_bss_80060888; + +void viSet800232B4(f32 param_1); + +s16 viGetX(void); +s16 viGetY(void); +s16 viGetViewLeft(void); +s16 viGetViewTop(void); +s16 viGetViewWidth(void); +s16 viGetViewHeight(void); +u8 *viGetFrameBuf2(void); +void viSetFovY(f32 fovy); +void viSetAspect(f32 aspect); +void viSetZRange(f32 near, f32 far); +void viSetUseZBuf(s32 usezbuf); +void viSetViewSize(s16 x, s16 y); +void viSetViewPosition(s16 left, s16 top); +void viInitBuffers(void); +void video_related_8(void); #endif diff --git a/tools/1172compress.sh b/tools/1172compress.sh index 9d0ba6e..881fd7d 100644 --- a/tools/1172compress.sh +++ b/tools/1172compress.sh @@ -2,6 +2,6 @@ if [ ! -f header.tmp ]; then echo -n -e \\x11\\x72 > header.tmp fi -cat $1| tools/gzip --no-name --best | tail --bytes=+11 | head --bytes=-8 > $1.tmp +cat $1| tools/gzipsrc/gzip --no-name --best | tail --bytes=+11 | head --bytes=-8 > $1.tmp cat header.tmp $1.tmp > $2 rm $1.tmp diff --git a/tools/Makefile b/tools/Makefile new file mode 100644 index 0000000..d6b74db --- /dev/null +++ b/tools/Makefile @@ -0,0 +1,39 @@ +CC := gcc +CXX := g++ +MAKE := make +CFLAGS := -I . -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -O2 -s +LDFLAGS := -lm +PROGRAMS := n64cksum + +# if armips is not found on the system, build it in tools +ifeq (, $(shell which armips 2> /dev/null)) +CXX_PROGRAMS += armips +endif + +default: all + +armips: armips.cpp + $(CXX) $(CXXFLAGS) -fno-exceptions -fno-rtti -pipe $^ -o $@ -lpthread $(ARMIPS_FLAGS) + +n64cksum_SOURCES := n64cksum.c utils.c +n64cksum_CFLAGS := -DN64CKSUM_STANDALONE + +GZIP := gzipsrc/gzip + +$(GZIP): + @$(MAKE) -C gzipsrc + +all: $(GZIP) $(PROGRAMS) $(CXX_PROGRAMS) + +clean: + $(RM) $(PROGRAMS) $(CXX_PROGRAMS) + $(MAKE) -C gzipsrc clean + +define COMPILE +$(1): $($1_SOURCES) + $(CC) $(CFLAGS) $($1_CFLAGS) $$^ -o $$@ $(LDFLAGS) $($1_LDFLAGS) +endef + +$(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p)))) + +.PHONY: all clean default \ No newline at end of file diff --git a/tools/armips b/tools/armips deleted file mode 100644 index 1a43a03..0000000 Binary files a/tools/armips and /dev/null differ diff --git a/tools/armips.cpp b/tools/armips.cpp new file mode 100644 index 0000000..271bf55 --- /dev/null +++ b/tools/armips.cpp @@ -0,0 +1,19906 @@ +// armips assembler v0.11 +// https://github.com/Kingcom/armips/ +// To simplify compilation, all files have been concatenated into one. +// MIPS only, ARM is not included. + +/* +The MIT License (MIT) + +Copyright (c) 2009-2020 Kingcom + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +// file: stdafx.h + + +#define _CRT_SECURE_NO_WARNINGS +#undef __STRICT_ANSI__ + +#if defined(__clang__) +#if __has_feature(cxx_exceptions) +#define ARMIPS_EXCEPTIONS 1 +#else +#define ARMIPS_EXCEPTIONS 0 +#endif +#elif defined(_MSC_VER) && defined(_CPPUNWIND) +#define ARMIPS_EXCEPTIONS 1 +#elif defined(__EXCEPTIONS) || defined(__cpp_exceptions) +#define ARMIPS_EXCEPTIONS 1 +#else +#define ARMIPS_EXCEPTIONS 0 +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define formatString tfm::format + +// Custom make_unique so that C++14 support will not be necessary for compilation +template +std::unique_ptr make_unique(Args&&... args) +{ + return std::unique_ptr(new T(std::forward(args)...)); +} + +// file: ext/tinyformat/tinyformat.h +// tinyformat.h +// Copyright (C) 2011, Chris Foster [chris42f (at) gmail (d0t) com] +// +// Boost Software License - Version 1.0 +// +// Permission is hereby granted, free of charge, to any person or organization +// obtaining a copy of the software and accompanying documentation covered by +// this license (the "Software") to use, reproduce, display, distribute, +// execute, and transmit the Software, and to prepare derivative works of the +// Software, and to permit third-parties to whom the Software is furnished to +// do so, all subject to the following: +// +// The copyright notices in the Software and this entire statement, including +// the above license grant, this restriction and the following disclaimer, +// must be included in all copies of the Software, in whole or in part, and +// all derivative works of the Software, unless such copies or derivative +// works are solely in the form of machine-executable object code generated by +// a source language processor. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +//------------------------------------------------------------------------------ +// Tinyformat: A minimal type safe printf replacement +// +// tinyformat.h is a type safe printf replacement library in a single C++ +// header file. Design goals include: +// +// * Type safety and extensibility for user defined types. +// * C99 printf() compatibility, to the extent possible using std::wostream +// * Simplicity and minimalism. A single header file to include and distribute +// with your projects. +// * Augment rather than replace the standard stream formatting mechanism +// * C++98 support, with optional C++11 niceties +// +// +// Main interface example usage +// ---------------------------- +// +// To print a date to std::wcout: +// +// std::wstring weekday = L"Wednesday"; +// const wchar_t* month = L"July"; +// size_t day = 27; +// long hour = 14; +// int min = 44; +// +// tfm::printf("%s, %s %d, %.2d:%.2d\n", weekday, month, day, hour, min); +// +// The strange types here emphasize the type safety of the interface; it is +// possible to print a std::wstring using the "%s" conversion, and a +// size_t using the "%d" conversion. A similar result could be achieved +// using either of the tfm::format() functions. One prints on a user provided +// stream: +// +// tfm::format(std::cerr, L"%s, %s %d, %.2d:%.2d\n", +// weekday, month, day, hour, min); +// +// The other returns a std::wstring: +// +// std::wstring date = tfm::format(L"%s, %s %d, %.2d:%.2d\n", +// weekday, month, day, hour, min); +// std::wcout << date; +// +// These are the three primary interface functions. There is also a +// convenience function printfln() which appends a newline to the usual result +// of printf() for super simple logging. +// +// +// User defined format functions +// ----------------------------- +// +// Simulating variadic templates in C++98 is pretty painful since it requires +// writing out the same function for each desired number of arguments. To make +// this bearable tinyformat comes with a set of macros which are used +// internally to generate the API, but which may also be used in user code. +// +// The three macros TINYFORMAT_ARGTYPES(n), TINYFORMAT_VARARGS(n) and +// TINYFORMAT_PASSARGS(n) will generate a list of n argument types, +// type/name pairs and argument names respectively when called with an integer +// n between 1 and 16. We can use these to define a macro which generates the +// desired user defined function with n arguments. To generate all 16 user +// defined function bodies, use the macro TINYFORMAT_FOREACH_ARGNUM. For an +// example, see the implementation of printf() at the end of the source file. +// +// Sometimes it's useful to be able to pass a list of format arguments through +// to a non-template function. The FormatList class is provided as a way to do +// this by storing the argument list in a type-opaque way. Continuing the +// example from above, we construct a FormatList using makeFormatList(): +// +// FormatListRef formatList = tfm::makeFormatList(weekday, month, day, hour, min); +// +// The format list can now be passed into any non-template function and used +// via a call to the vformat() function: +// +// tfm::vformat(std::wcout, L"%s, %s %d, %.2d:%.2d\n", formatList); +// +// +// Additional API information +// -------------------------- +// +// Error handling: Define TINYFORMAT_ERROR to customize the error handling for +// format strings which are unsupported or have the wrong number of format +// specifiers (calls assert() by default). +// +// User defined types: Uses operator<< for user defined types by default. +// Overload formatValue() for more control. + + +#ifndef TINYFORMAT_H_INCLUDED +#define TINYFORMAT_H_INCLUDED + +namespace tinyformat {} +//------------------------------------------------------------------------------ +// Config section. Customize to your liking! + +// Namespace alias to encourage brevity +namespace tfm = tinyformat; + +// Error handling; calls assert() by default. +// #define TINYFORMAT_ERROR(reasonString) your_error_handler(reasonString) + +// Define for C++11 variadic templates which make the code shorter & more +// general. If you don't define this, C++11 support is autodetected below. +// #define TINYFORMAT_USE_VARIADIC_TEMPLATES + + +//------------------------------------------------------------------------------ +// Implementation details. +#include +#include +#include + +#ifndef TINYFORMAT_ASSERT +# include +# define TINYFORMAT_ASSERT(cond) assert(cond) +#endif + +#define TINYFORMAT_ALLOW_WCHAR_STRINGS +#define TINYFORMAT_USE_VARIADIC_TEMPLATES + +#ifndef TINYFORMAT_ERROR +# include +# define TINYFORMAT_ERROR(reason) assert(0 && reason) +#endif + +#if !defined(TINYFORMAT_USE_VARIADIC_TEMPLATES) && !defined(TINYFORMAT_NO_VARIADIC_TEMPLATES) +# ifdef __GXX_EXPERIMENTAL_CXX0X__ +# define TINYFORMAT_USE_VARIADIC_TEMPLATES +# endif +#endif + +#if defined(__GLIBCXX__) && __GLIBCXX__ < 20080201 +// std::showpos is broken on old libstdc++ as provided with OSX. See +// http://gcc.gnu.org/ml/libstdc++/2007-11/msg00075.html +# define TINYFORMAT_OLD_LIBSTDCPLUSPLUS_WORKAROUND +#endif + +#ifdef __APPLE__ +// Workaround OSX linker warning: xcode uses different default symbol +// visibilities for static libs vs executables (see issue #25) +# define TINYFORMAT_HIDDEN __attribute__((visibility("hidden"))) +#else +# define TINYFORMAT_HIDDEN +#endif + +namespace tinyformat { + +//------------------------------------------------------------------------------ +namespace detail { + +// Test whether type T1 is convertible to type T2 +template +struct is_convertible +{ + private: + // two types of different size + struct fail { wchar_t dummy[2]; }; + struct succeed { wchar_t dummy; }; + // Try to convert a T1 to a T2 by plugging into tryConvert + static fail tryConvert(...); + static succeed tryConvert(const T2&); + static const T1& makeT1(); + public: +# ifdef _MSC_VER + // Disable spurious loss of precision warnings in tryConvert(makeT1()) +# pragma warning(push) +# pragma warning(disable:4244) +# pragma warning(disable:4267) +# endif + // Standard trick: the (...) version of tryConvert will be chosen from + // the overload set only if the version taking a T2 doesn't match. + // Then we compare the sizes of the return types to check which + // function matched. Very neat, in a disgusting kind of way :) + static const bool value = + sizeof(tryConvert(makeT1())) == sizeof(succeed); +# ifdef _MSC_VER +# pragma warning(pop) +# endif +}; + + +// Detect when a type is not a wchar_t string +template struct is_wchar { typedef int tinyformat_wchar_is_not_supported; }; +template<> struct is_wchar {}; +template<> struct is_wchar {}; +template struct is_wchar {}; +template struct is_wchar {}; + + +// Format the value by casting to type fmtT. This default implementation +// should never be called. +template::value> +struct formatValueAsType +{ + static void invoke(std::wostream& /*out*/, const T& /*value*/) { TINYFORMAT_ASSERT(0); } +}; +// Specialized version for types that can actually be converted to fmtT, as +// indicated by the "convertible" template parameter. +template +struct formatValueAsType +{ + static void invoke(std::wostream& out, const T& value) + { out << static_cast(value); } +}; + +#ifdef TINYFORMAT_OLD_LIBSTDCPLUSPLUS_WORKAROUND +template::value> +struct formatZeroIntegerWorkaround +{ + static bool invoke(std::wostream& /**/, const T& /**/) { return false; } +}; +template +struct formatZeroIntegerWorkaround +{ + static bool invoke(std::wostream& out, const T& value) + { + if (static_cast(value) == 0 && out.flags() & std::ios::showpos) + { + out << "+0"; + return true; + } + return false; + } +}; +#endif // TINYFORMAT_OLD_LIBSTDCPLUSPLUS_WORKAROUND + +// Convert an arbitrary type to integer. The version with convertible=false +// throws an error. +template::value> +struct convertToInt +{ + static int invoke(const T& /*value*/) + { + TINYFORMAT_ERROR("tinyformat: Cannot convert from argument type to " + "integer for use as variable width or precision"); + return 0; + } +}; +// Specialization for convertToInt when conversion is possible +template +struct convertToInt +{ + static int invoke(const T& value) { return static_cast(value); } +}; + +// Format at most ntrunc wchar_tacters to the given stream. +template +inline void formatTruncated(std::wostream& out, const T& value, int ntrunc) +{ + std::wostringstream tmp; + tmp << value; + std::wstring result = tmp.str(); + out.write(result.c_str(), (std::min)(ntrunc, static_cast(result.size()))); +} +#define TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR(type) \ +inline void formatTruncated(std::wostream& out, type* value, int ntrunc) \ +{ \ + std::streamsize len = 0; \ + while(len < ntrunc && value[len] != 0) \ + ++len; \ + out.write(value, len); \ +} +// Overload for const wchar_t* and wchar_t*. Could overload for signed & unsigned +// wchar_t too, but these are technically unneeded for printf compatibility. +TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR(const wchar_t) +TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR(wchar_t) +#undef TINYFORMAT_DEFINE_FORMAT_TRUNCATED_CSTR + +} // namespace detail + + +//------------------------------------------------------------------------------ +// Variable formatting functions. May be overridden for user-defined types if +// desired. + + +/// Format a value into a stream, delegating to operator<< by default. +/// +/// Users may override this for their own types. When this function is called, +/// the stream flags will have been modified according to the format string. +/// The format specification is provided in the range [fmtBegin, fmtEnd). For +/// truncating conversions, ntrunc is set to the desired maximum number of +/// characters, for example "%.7s" calls formatValue with ntrunc = 7. +/// +/// By default, formatValue() uses the usual stream insertion operator +/// operator<< to format the type T, with special cases for the %c and %p +/// conversions. +template +inline void formatValue(std::wostream& out, const wchar_t* /*fmtBegin*/, + const wchar_t* fmtEnd, int ntrunc, const T& value) +{ +#ifndef TINYFORMAT_ALLOW_WCHAR_STRINGS + // Since we don't support printing of wchar_t using "%ls", make it fail at + // compile time in preference to printing as a void* at runtime. + typedef typename detail::is_wchar::tinyformat_wchar_is_not_supported DummyType; + (void) DummyType(); // avoid unused type warning with gcc-4.8 +#endif + // The mess here is to support the %c and %p conversions: if these + // conversions are active we try to convert the type to a wchar_t or const + // void* respectively and format that instead of the value itself. For the + // %p conversion it's important to avoid dereferencing the pointer, which + // could otherwise lead to a crash when printing a dangling (const wchar_t*). + const bool canConvertToChar = detail::is_convertible::value; + const bool canConvertToVoidPtr = detail::is_convertible::value; + if(canConvertToChar && *(fmtEnd-1) == 'c') + detail::formatValueAsType::invoke(out, value); + else if(canConvertToVoidPtr && *(fmtEnd-1) == 'p') + detail::formatValueAsType::invoke(out, value); +#ifdef TINYFORMAT_OLD_LIBSTDCPLUSPLUS_WORKAROUND + else if(detail::formatZeroIntegerWorkaround::invoke(out, value)) /**/; +#endif + else if(ntrunc >= 0) + { + // Take care not to overread C strings in truncating conversions like + // "%.4s" where at most 4 wchar_tacters may be read. + detail::formatTruncated(out, value, ntrunc); + } + else + out << value; +} + + +// Overloaded version for wchar_t types to support printing as an integer +#define TINYFORMAT_DEFINE_FORMATVALUE_CHAR(wchar_tType) \ +inline void formatValue(std::wostream& out, const wchar_t* /*fmtBegin*/, \ + const wchar_t* fmtEnd, int /**/, wchar_tType value) \ +{ \ + switch(*(fmtEnd-1)) \ + { \ + case 'u': case 'd': case 'i': case 'o': case 'X': case 'x': \ + out << static_cast(value); break; \ + default: \ + out << value; break; \ + } \ +} +// per 3.9.1: char, signed char and unsigned char are all distinct types +TINYFORMAT_DEFINE_FORMATVALUE_CHAR(char) +TINYFORMAT_DEFINE_FORMATVALUE_CHAR(signed char) +TINYFORMAT_DEFINE_FORMATVALUE_CHAR(unsigned char) +#undef TINYFORMAT_DEFINE_FORMATVALUE_CHAR + + +//------------------------------------------------------------------------------ +// Tools for emulating variadic templates in C++98. The basic idea here is +// stolen from the boost preprocessor metaprogramming library and cut down to +// be just general enough for what we need. + +#define TINYFORMAT_ARGTYPES(n) TINYFORMAT_ARGTYPES_ ## n +#define TINYFORMAT_VARARGS(n) TINYFORMAT_VARARGS_ ## n +#define TINYFORMAT_PASSARGS(n) TINYFORMAT_PASSARGS_ ## n +#define TINYFORMAT_PASSARGS_TAIL(n) TINYFORMAT_PASSARGS_TAIL_ ## n + +// To keep it as transparent as possible, the macros below have been generated +// using python via the excellent cog.py code generation script. This avoids +// the need for a bunch of complex (but more general) preprocessor tricks as +// used in boost.preprocessor. +// +// To rerun the code generation in place, use `cog.py -r tinyformat.h` +// (see http://nedbatchelder.com/code/cog). Alternatively you can just create +// extra versions by hand. + +/*[[[cog +maxParams = 16 + +def makeCommaSepLists(lineTemplate, elemTemplate, startInd=1): + for j in range(startInd,maxParams+1): + list = ', '.join([elemTemplate % {'i':i} for i in range(startInd,j+1)]) + cog.outl(lineTemplate % {'j':j, 'list':list}) + +makeCommaSepLists('#define TINYFORMAT_ARGTYPES_%(j)d %(list)s', + 'class T%(i)d') + +cog.outl() +makeCommaSepLists('#define TINYFORMAT_VARARGS_%(j)d %(list)s', + 'const T%(i)d& v%(i)d') + +cog.outl() +makeCommaSepLists('#define TINYFORMAT_PASSARGS_%(j)d %(list)s', 'v%(i)d') + +cog.outl() +cog.outl('#define TINYFORMAT_PASSARGS_TAIL_1') +makeCommaSepLists('#define TINYFORMAT_PASSARGS_TAIL_%(j)d , %(list)s', + 'v%(i)d', startInd = 2) + +cog.outl() +cog.outl('#define TINYFORMAT_FOREACH_ARGNUM(m) \\\n ' + + ' '.join(['m(%d)' % (j,) for j in range(1,maxParams+1)])) +]]]*/ +#define TINYFORMAT_ARGTYPES_1 class T1 +#define TINYFORMAT_ARGTYPES_2 class T1, class T2 +#define TINYFORMAT_ARGTYPES_3 class T1, class T2, class T3 +#define TINYFORMAT_ARGTYPES_4 class T1, class T2, class T3, class T4 +#define TINYFORMAT_ARGTYPES_5 class T1, class T2, class T3, class T4, class T5 +#define TINYFORMAT_ARGTYPES_6 class T1, class T2, class T3, class T4, class T5, class T6 +#define TINYFORMAT_ARGTYPES_7 class T1, class T2, class T3, class T4, class T5, class T6, class T7 +#define TINYFORMAT_ARGTYPES_8 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8 +#define TINYFORMAT_ARGTYPES_9 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 +#define TINYFORMAT_ARGTYPES_10 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10 +#define TINYFORMAT_ARGTYPES_11 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11 +#define TINYFORMAT_ARGTYPES_12 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12 +#define TINYFORMAT_ARGTYPES_13 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12, class T13 +#define TINYFORMAT_ARGTYPES_14 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12, class T13, class T14 +#define TINYFORMAT_ARGTYPES_15 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12, class T13, class T14, class T15 +#define TINYFORMAT_ARGTYPES_16 class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9, class T10, class T11, class T12, class T13, class T14, class T15, class T16 + +#define TINYFORMAT_VARARGS_1 const T1& v1 +#define TINYFORMAT_VARARGS_2 const T1& v1, const T2& v2 +#define TINYFORMAT_VARARGS_3 const T1& v1, const T2& v2, const T3& v3 +#define TINYFORMAT_VARARGS_4 const T1& v1, const T2& v2, const T3& v3, const T4& v4 +#define TINYFORMAT_VARARGS_5 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5 +#define TINYFORMAT_VARARGS_6 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6 +#define TINYFORMAT_VARARGS_7 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7 +#define TINYFORMAT_VARARGS_8 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8 +#define TINYFORMAT_VARARGS_9 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9 +#define TINYFORMAT_VARARGS_10 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10 +#define TINYFORMAT_VARARGS_11 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11 +#define TINYFORMAT_VARARGS_12 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12 +#define TINYFORMAT_VARARGS_13 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13 +#define TINYFORMAT_VARARGS_14 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14 +#define TINYFORMAT_VARARGS_15 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14, const T15& v15 +#define TINYFORMAT_VARARGS_16 const T1& v1, const T2& v2, const T3& v3, const T4& v4, const T5& v5, const T6& v6, const T7& v7, const T8& v8, const T9& v9, const T10& v10, const T11& v11, const T12& v12, const T13& v13, const T14& v14, const T15& v15, const T16& v16 + +#define TINYFORMAT_PASSARGS_1 v1 +#define TINYFORMAT_PASSARGS_2 v1, v2 +#define TINYFORMAT_PASSARGS_3 v1, v2, v3 +#define TINYFORMAT_PASSARGS_4 v1, v2, v3, v4 +#define TINYFORMAT_PASSARGS_5 v1, v2, v3, v4, v5 +#define TINYFORMAT_PASSARGS_6 v1, v2, v3, v4, v5, v6 +#define TINYFORMAT_PASSARGS_7 v1, v2, v3, v4, v5, v6, v7 +#define TINYFORMAT_PASSARGS_8 v1, v2, v3, v4, v5, v6, v7, v8 +#define TINYFORMAT_PASSARGS_9 v1, v2, v3, v4, v5, v6, v7, v8, v9 +#define TINYFORMAT_PASSARGS_10 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 +#define TINYFORMAT_PASSARGS_11 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 +#define TINYFORMAT_PASSARGS_12 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 +#define TINYFORMAT_PASSARGS_13 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 +#define TINYFORMAT_PASSARGS_14 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 +#define TINYFORMAT_PASSARGS_15 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 +#define TINYFORMAT_PASSARGS_16 v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16 + +#define TINYFORMAT_PASSARGS_TAIL_1 +#define TINYFORMAT_PASSARGS_TAIL_2 , v2 +#define TINYFORMAT_PASSARGS_TAIL_3 , v2, v3 +#define TINYFORMAT_PASSARGS_TAIL_4 , v2, v3, v4 +#define TINYFORMAT_PASSARGS_TAIL_5 , v2, v3, v4, v5 +#define TINYFORMAT_PASSARGS_TAIL_6 , v2, v3, v4, v5, v6 +#define TINYFORMAT_PASSARGS_TAIL_7 , v2, v3, v4, v5, v6, v7 +#define TINYFORMAT_PASSARGS_TAIL_8 , v2, v3, v4, v5, v6, v7, v8 +#define TINYFORMAT_PASSARGS_TAIL_9 , v2, v3, v4, v5, v6, v7, v8, v9 +#define TINYFORMAT_PASSARGS_TAIL_10 , v2, v3, v4, v5, v6, v7, v8, v9, v10 +#define TINYFORMAT_PASSARGS_TAIL_11 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11 +#define TINYFORMAT_PASSARGS_TAIL_12 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12 +#define TINYFORMAT_PASSARGS_TAIL_13 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13 +#define TINYFORMAT_PASSARGS_TAIL_14 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14 +#define TINYFORMAT_PASSARGS_TAIL_15 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 +#define TINYFORMAT_PASSARGS_TAIL_16 , v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16 + +#define TINYFORMAT_FOREACH_ARGNUM(m) \ + m(1) m(2) m(3) m(4) m(5) m(6) m(7) m(8) m(9) m(10) m(11) m(12) m(13) m(14) m(15) m(16) +//[[[end]]] + + + +namespace detail { + +// Type-opaque holder for an argument to format(), with associated actions on +// the type held as explicit function pointers. This allows FormatArg's for +// each argument to be allocated as a homogenous array inside FormatList +// whereas a naive implementation based on inheritance does not. +class FormatArg +{ + public: + FormatArg() + : m_value(NULL), + m_formatImpl(NULL), + m_toIntImpl(NULL) + { } + + template + FormatArg(const T& value) + : m_value(static_cast(&value)), + m_formatImpl(&formatImpl), + m_toIntImpl(&toIntImpl) + { } + + void format(std::wostream& out, const wchar_t* fmtBegin, + const wchar_t* fmtEnd, int ntrunc) const + { + TINYFORMAT_ASSERT(m_value); + TINYFORMAT_ASSERT(m_formatImpl); + m_formatImpl(out, fmtBegin, fmtEnd, ntrunc, m_value); + } + + int toInt() const + { + TINYFORMAT_ASSERT(m_value); + TINYFORMAT_ASSERT(m_toIntImpl); + return m_toIntImpl(m_value); + } + + private: + template + TINYFORMAT_HIDDEN static void formatImpl(std::wostream& out, const wchar_t* fmtBegin, + const wchar_t* fmtEnd, int ntrunc, const void* value) + { + formatValue(out, fmtBegin, fmtEnd, ntrunc, *static_cast(value)); + } + + template + TINYFORMAT_HIDDEN static int toIntImpl(const void* value) + { + return convertToInt::invoke(*static_cast(value)); + } + + const void* m_value; + void (*m_formatImpl)(std::wostream& out, const wchar_t* fmtBegin, + const wchar_t* fmtEnd, int ntrunc, const void* value); + int (*m_toIntImpl)(const void* value); +}; + + +// Parse and return an integer from the string c, as atoi() +// On return, c is set to one past the end of the integer. +inline int parseIntAndAdvance(const wchar_t*& c) +{ + int i = 0; + for(;*c >= '0' && *c <= '9'; ++c) + i = 10*i + (*c - '0'); + return i; +} + +// Print literal part of format string and return next format spec +// position. +// +// Skips over any occurrences of '%%', printing a literal '%' to the +// output. The position of the first % character of the next +// nontrivial format spec is returned, or the end of string. +inline const wchar_t* printFormatStringLiteral(std::wostream& out, const wchar_t* fmt) +{ + const wchar_t* c = fmt; + for(;; ++c) + { + switch(*c) + { + case '\0': + out.write(fmt, c - fmt); + return c; + case '%': + out.write(fmt, c - fmt); + if(*(c+1) != '%') + return c; + // for "%%", tack trailing % onto next literal section. + fmt = ++c; + break; + default: + break; + } + } +} + + +// Parse a format string and set the stream state accordingly. +// +// The format mini-language recognized here is meant to be the one from C99, +// with the form "%[flags][width][.precision][length]type". +// +// Formatting options which can't be natively represented using the ostream +// state are returned in spacePadPositive (for space padded positive numbers) +// and ntrunc (for truncating conversions). argIndex is incremented if +// necessary to pull out variable width and precision . The function returns a +// pointer to the wchar_tacter after the end of the current format spec. +inline const wchar_t* streamStateFromFormat(std::wostream& out, bool& spacePadPositive, + int& ntrunc, const wchar_t* fmtStart, + const detail::FormatArg* formatters, + int& argIndex, int numFormatters) +{ + if(*fmtStart != '%') + { + TINYFORMAT_ERROR("tinyformat: Not enough conversion specifiers in format string"); + return fmtStart; + } + // Reset stream state to defaults. + out.width(0); + out.precision(6); + out.fill(' '); + // Reset most flags; ignore irrelevant unitbuf & skipws. + out.unsetf(std::ios::adjustfield | std::ios::basefield | + std::ios::floatfield | std::ios::showbase | std::ios::boolalpha | + std::ios::showpoint | std::ios::showpos | std::ios::uppercase); + bool precisionSet = false; + bool widthSet = false; + int widthExtra = 0; + const wchar_t* c = fmtStart + 1; + // 1) Parse flags + for(;; ++c) + { + switch(*c) + { + case '#': + out.setf(std::ios::showpoint | std::ios::showbase); + continue; + case '0': + // overridden by left alignment ('-' flag) + if(!(out.flags() & std::ios::left)) + { + // Use internal padding so that numeric values are + // formatted correctly, eg -00010 rather than 000-10 + out.fill('0'); + out.setf(std::ios::internal, std::ios::adjustfield); + } + continue; + case '-': + out.fill(' '); + out.setf(std::ios::left, std::ios::adjustfield); + continue; + case ' ': + // overridden by show positive sign, '+' flag. + if(!(out.flags() & std::ios::showpos)) + spacePadPositive = true; + continue; + case '+': + out.setf(std::ios::showpos); + spacePadPositive = false; + widthExtra = 1; + continue; + default: + break; + } + break; + } + // 2) Parse width + if(*c >= '0' && *c <= '9') + { + widthSet = true; + out.width(parseIntAndAdvance(c)); + } + if(*c == '*') + { + widthSet = true; + int width = 0; + if(argIndex < numFormatters) + width = formatters[argIndex++].toInt(); + else + TINYFORMAT_ERROR("tinyformat: Not enough arguments to read variable width"); + if(width < 0) + { + // negative widths correspond to '-' flag set + out.fill(' '); + out.setf(std::ios::left, std::ios::adjustfield); + width = -width; + } + out.width(width); + ++c; + } + // 3) Parse precision + if(*c == '.') + { + ++c; + int precision = 0; + if(*c == '*') + { + ++c; + if(argIndex < numFormatters) + precision = formatters[argIndex++].toInt(); + else + TINYFORMAT_ERROR("tinyformat: Not enough arguments to read variable precision"); + } + else + { + if(*c >= '0' && *c <= '9') + precision = parseIntAndAdvance(c); + else if(*c == '-') // negative precisions ignored, treated as zero. + parseIntAndAdvance(++c); + } + out.precision(precision); + precisionSet = true; + } + // 4) Ignore any C99 length modifier + while(*c == 'l' || *c == 'h' || *c == 'L' || + *c == 'j' || *c == 'z' || *c == 't') + ++c; + // 5) We're up to the conversion specifier character. + // Set stream flags based on conversion specifier (thanks to the + // boost::format class for forging the way here). + bool intConversion = false; + switch(*c) + { + case 'u': case 'd': case 'i': + out.setf(std::ios::dec, std::ios::basefield); + intConversion = true; + break; + case 'o': + out.setf(std::ios::oct, std::ios::basefield); + intConversion = true; + break; + case 'X': + out.setf(std::ios::uppercase); + // Falls through + case 'x': case 'p': + out.setf(std::ios::hex, std::ios::basefield); + intConversion = true; + break; + case 'E': + out.setf(std::ios::uppercase); + // Falls through + case 'e': + out.setf(std::ios::scientific, std::ios::floatfield); + out.setf(std::ios::dec, std::ios::basefield); + break; + case 'F': + out.setf(std::ios::uppercase); + // Falls through + case 'f': + out.setf(std::ios::fixed, std::ios::floatfield); + break; + case 'G': + out.setf(std::ios::uppercase); + // Falls through + case 'g': + out.setf(std::ios::dec, std::ios::basefield); + // As in boost::format, let stream decide float format. + out.flags(out.flags() & ~std::ios::floatfield); + break; + case 'a': case 'A': + TINYFORMAT_ERROR("tinyformat: the %a and %A conversion specs " + "are not supported"); + break; + case 'c': + // Handled as special case inside formatValue() + break; + case 's': + if(precisionSet) + ntrunc = static_cast(out.precision()); + // Make %s print booleans as "true" and "false" + out.setf(std::ios::boolalpha); + break; + case 'n': + // Not supported - will cause problems! + TINYFORMAT_ERROR("tinyformat: %n conversion spec not supported"); + break; + case '\0': + TINYFORMAT_ERROR("tinyformat: Conversion spec incorrectly " + "terminated by end of string"); + return c; + default: + break; + } + if(intConversion && precisionSet && !widthSet) + { + // "precision" for integers gives the minimum number of digits (to be + // padded with zeros on the left). This isn't really supported by the + // iostreams, but we can approximately simulate it with the width if + // the width isn't otherwise used. + out.width(out.precision() + widthExtra); + out.setf(std::ios::internal, std::ios::adjustfield); + out.fill('0'); + } + return c+1; +} + + +//------------------------------------------------------------------------------ +inline void formatImpl(std::wostream& out, const wchar_t* fmt, + const detail::FormatArg* formatters, + int numFormatters) +{ + // Saved stream state + std::streamsize origWidth = out.width(); + std::streamsize origPrecision = out.precision(); + std::ios::fmtflags origFlags = out.flags(); + wchar_t origFill = out.fill(); + + for (int argIndex = 0; argIndex < numFormatters; ++argIndex) + { + // Parse the format string + fmt = printFormatStringLiteral(out, fmt); + bool spacePadPositive = false; + int ntrunc = -1; + const wchar_t* fmtEnd = streamStateFromFormat(out, spacePadPositive, ntrunc, fmt, + formatters, argIndex, numFormatters); + if (argIndex >= numFormatters) + { + // Check args remain after reading any variable width/precision + TINYFORMAT_ERROR("tinyformat: Not enough format arguments"); + return; + } + const FormatArg& arg = formatters[argIndex]; + // Format the arg into the stream. + if(!spacePadPositive) + arg.format(out, fmt, fmtEnd, ntrunc); + else + { + // The following is a special case with no direct correspondence + // between stream formatting and the printf() behaviour. Simulate + // it crudely by formatting into a temporary string stream and + // munging the resulting string. + std::wostringstream tmpStream; + tmpStream.copyfmt(out); + tmpStream.setf(std::ios::showpos); + arg.format(tmpStream, fmt, fmtEnd, ntrunc); + std::wstring result = tmpStream.str(); // allocates... yuck. + for(size_t i = 0, iend = result.size(); i < iend; ++i) + if(result[i] == '+') result[i] = ' '; + out << result; + } + fmt = fmtEnd; + } + + // Print remaining part of format string. + fmt = printFormatStringLiteral(out, fmt); + if(*fmt != '\0') + TINYFORMAT_ERROR("tinyformat: Too many conversion specifiers in format string"); + + // Restore stream state + out.width(origWidth); + out.precision(origPrecision); + out.flags(origFlags); + out.fill(origFill); +} + +} // namespace detail + + +/// List of template arguments format(), held in a type-opaque way. +/// +/// A const reference to FormatList (typedef'd as FormatListRef) may be +/// conveniently used to pass arguments to non-template functions: All type +/// information has been stripped from the arguments, leaving just enough of a +/// common interface to perform formatting as required. +class FormatList +{ + public: + FormatList(detail::FormatArg* formatters, int N) + : m_formatters(formatters), m_N(N) { } + + friend void vformat(std::wostream& out, const wchar_t* fmt, + const FormatList& list); + + private: + const detail::FormatArg* m_formatters; + int m_N; +}; + +/// Reference to type-opaque format list for passing to vformat() +typedef const FormatList& FormatListRef; + + +namespace detail { + +// Format list subclass with fixed storage to avoid dynamic allocation +template +class FormatListN : public FormatList +{ + public: +#ifdef TINYFORMAT_USE_VARIADIC_TEMPLATES + template + FormatListN(const Args&... args) + : FormatList(&m_formatterStore[0], N), + m_formatterStore { FormatArg(args)... } + { static_assert(sizeof...(args) == N, "Number of args must be N"); } +#else // C++98 version + void init(int) {} +# define TINYFORMAT_MAKE_FORMATLIST_CONSTRUCTOR(n) \ + \ + template \ + FormatListN(TINYFORMAT_VARARGS(n)) \ + : FormatList(&m_formatterStore[0], n) \ + { TINYFORMAT_ASSERT(n == N); init(0, TINYFORMAT_PASSARGS(n)); } \ + \ + template \ + void init(int i, TINYFORMAT_VARARGS(n)) \ + { \ + m_formatterStore[i] = FormatArg(v1); \ + init(i+1 TINYFORMAT_PASSARGS_TAIL(n)); \ + } + + TINYFORMAT_FOREACH_ARGNUM(TINYFORMAT_MAKE_FORMATLIST_CONSTRUCTOR) +# undef TINYFORMAT_MAKE_FORMATLIST_CONSTRUCTOR +#endif + + private: + FormatArg m_formatterStore[N]; +}; + +// Special 0-arg version - MSVC says zero-sized C array in struct is nonstandard +template<> class FormatListN<0> : public FormatList +{ + public: FormatListN() : FormatList(0, 0) {} +}; + +} // namespace detail + + +//------------------------------------------------------------------------------ +// Primary API functions + +#ifdef TINYFORMAT_USE_VARIADIC_TEMPLATES + +/// Make type-agnostic format list from list of template arguments. +/// +/// The exact return type of this function is an implementation detail and +/// shouldn't be relied upon. Instead it should be stored as a FormatListRef: +/// +/// FormatListRef formatList = makeFormatList( /*...*/ ); +template +detail::FormatListN makeFormatList(const Args&... args) +{ + return detail::FormatListN(args...); +} + +#else // C++98 version + +inline detail::FormatListN<0> makeFormatList() +{ + return detail::FormatListN<0>(); +} +#define TINYFORMAT_MAKE_MAKEFORMATLIST(n) \ +template \ +detail::FormatListN makeFormatList(TINYFORMAT_VARARGS(n)) \ +{ \ + return detail::FormatListN(TINYFORMAT_PASSARGS(n)); \ +} +TINYFORMAT_FOREACH_ARGNUM(TINYFORMAT_MAKE_MAKEFORMATLIST) +#undef TINYFORMAT_MAKE_MAKEFORMATLIST + +#endif + +/// Format list of arguments to the stream according to the given format string. +/// +/// The name vformat() is chosen for the semantic similarity to vprintf(): the +/// list of format arguments is held in a single function argument. +inline void vformat(std::wostream& out, const wchar_t* fmt, FormatListRef list) +{ + detail::formatImpl(out, fmt, list.m_formatters, list.m_N); +} + + +#ifdef TINYFORMAT_USE_VARIADIC_TEMPLATES + +/// Format list of arguments to the stream according to given format string. +template +void format(std::wostream& out, const wchar_t* fmt, const Args&... args) +{ + vformat(out, fmt, makeFormatList(args...)); +} + +/// Format list of arguments according to the given format string and return +/// the result as a string. +template +std::wstring format(const wchar_t* fmt, const Args&... args) +{ + std::wostringstream oss; + format(oss, fmt, args...); + return oss.str(); +} + +/// Format list of arguments to std::wcout, according to the given format string +template +void printf(const wchar_t* fmt, const Args&... args) +{ + format(std::wcout, fmt, args...); +} + +template +void printfln(const wchar_t* fmt, const Args&... args) +{ + format(std::wcout, fmt, args...); + std::wcout << '\n'; +} + + +#else // C++98 version + +inline void format(std::wostream& out, const wchar_t* fmt) +{ + vformat(out, fmt, makeFormatList()); +} + +inline std::wstring format(const wchar_t* fmt) +{ + std::wostringstream oss; + format(oss, fmt); + return oss.str(); +} + +inline void printf(const wchar_t* fmt) +{ + format(std::wcout, fmt); +} + +inline void printfln(const wchar_t* fmt) +{ + format(std::wcout, fmt); + std::wcout << '\n'; +} + +#define TINYFORMAT_MAKE_FORMAT_FUNCS(n) \ + \ +template \ +void format(std::wostream& out, const wchar_t* fmt, TINYFORMAT_VARARGS(n)) \ +{ \ + vformat(out, fmt, makeFormatList(TINYFORMAT_PASSARGS(n))); \ +} \ + \ +template \ +std::wstring format(const wchar_t* fmt, TINYFORMAT_VARARGS(n)) \ +{ \ + std::wostringstream oss; \ + format(oss, fmt, TINYFORMAT_PASSARGS(n)); \ + return oss.str(); \ +} \ + \ +template \ +void printf(const wchar_t* fmt, TINYFORMAT_VARARGS(n)) \ +{ \ + format(std::wcout, fmt, TINYFORMAT_PASSARGS(n)); \ +} \ + \ +template \ +void printfln(const wchar_t* fmt, TINYFORMAT_VARARGS(n)) \ +{ \ + format(std::wcout, fmt, TINYFORMAT_PASSARGS(n)); \ + std::wcout << '\n'; \ +} + +TINYFORMAT_FOREACH_ARGNUM(TINYFORMAT_MAKE_FORMAT_FUNCS) +#undef TINYFORMAT_MAKE_FORMAT_FUNCS + +#endif + + +} // namespace tinyformat + +#endif // TINYFORMAT_H_INCLUDED + +// file: Commands/CAssemblerCommand.h + +class TempData; +class SymbolData; + +class CAssemblerCommand +{ +public: + CAssemblerCommand(); + virtual ~CAssemblerCommand() { }; + virtual bool Validate() = 0; + virtual void Encode() const = 0; + virtual void writeTempData(TempData& tempData) const = 0; + virtual void writeSymData(SymbolData& symData) const { }; + void applyFileInfo(); + int getSection() { return section; } + void updateSection(int num) { section = num; } +protected: + int FileNum; + int FileLine; +private: + int section; +}; + +class DummyCommand: public CAssemblerCommand +{ +public: + virtual bool Validate() { return false; }; + virtual void Encode() const { }; + virtual void writeTempData(TempData& tempData) const { }; + virtual void writeSymData(SymbolData& symData) const { }; +}; + +class InvalidCommand: public CAssemblerCommand +{ +public: + virtual bool Validate() { return false; }; + virtual void Encode() const { }; + virtual void writeTempData(TempData& tempData) const { }; + virtual void writeSymData(SymbolData& symData) const { }; +}; + +// file: Core/Expression.h +#include + +inline std::wstring to_wstring(int64_t value) +{ + return formatString(L"%d", value); +} + +inline std::wstring to_wstring(double value) +{ + return formatString(L"%#.17g", value); +} + +enum class OperatorType +{ + Invalid, + Integer, + Float, + Identifier, + String, + MemoryPos, + Add, + Sub, + Mult, + Div, + Mod, + Neg, + LogNot, + BitNot, + LeftShift, + RightShift, + Less, + Greater, + LessEqual, + GreaterEqual, + Equal, + NotEqual, + BitAnd, + Xor, + BitOr, + LogAnd, + LogOr, + TertiaryIf, + ToString, + FunctionCall +}; + +enum class ExpressionValueType { Invalid, Integer, Float, String}; + +struct ExpressionValue +{ + ExpressionValueType type; + + ExpressionValue() + { + type = ExpressionValueType::Invalid; + } + + ExpressionValue(int64_t value) + { + type = ExpressionValueType::Integer; + intValue = value; + } + + ExpressionValue(double value) + { + type = ExpressionValueType::Float; + floatValue = value; + } + + ExpressionValue(const std::wstring& value) + { + type = ExpressionValueType::String; + strValue = value; + } + + bool isFloat() const + { + return type == ExpressionValueType::Float; + } + + bool isInt() const + { + return type == ExpressionValueType::Integer; + } + + bool isString() const + { + return type == ExpressionValueType::String; + } + + bool isValid() const + { + return type != ExpressionValueType::Invalid; + } + + struct + { + int64_t intValue; + double floatValue; + }; + + std::wstring strValue; + + ExpressionValue operator!() const; + ExpressionValue operator~() const; + bool operator<(const ExpressionValue& other) const; + bool operator<=(const ExpressionValue& other) const; + bool operator>(const ExpressionValue& other) const; + bool operator>=(const ExpressionValue& other) const; + bool operator==(const ExpressionValue& other) const; + bool operator!=(const ExpressionValue& other) const; + ExpressionValue operator+(const ExpressionValue& other) const; + ExpressionValue operator-(const ExpressionValue& other) const; + ExpressionValue operator*(const ExpressionValue& other) const; + ExpressionValue operator/(const ExpressionValue& other) const; + ExpressionValue operator%(const ExpressionValue& other) const; + ExpressionValue operator<<(const ExpressionValue& other) const; + ExpressionValue operator>>(const ExpressionValue& other) const; + ExpressionValue operator&(const ExpressionValue& other) const; + ExpressionValue operator|(const ExpressionValue& other) const; + ExpressionValue operator&&(const ExpressionValue& other) const; + ExpressionValue operator||(const ExpressionValue& other) const; + ExpressionValue operator^(const ExpressionValue& other) const; +}; + +class Label; + +struct ExpressionFunctionEntry; +struct ExpressionLabelFunctionEntry; + +class ExpressionInternal +{ +public: + ExpressionInternal(); + ~ExpressionInternal(); + ExpressionInternal(int64_t value); + ExpressionInternal(double value); + ExpressionInternal(const std::wstring& value, OperatorType type); + ExpressionInternal(OperatorType op, ExpressionInternal* a = nullptr, + ExpressionInternal* b = nullptr, ExpressionInternal* c = nullptr); + ExpressionInternal(const std::wstring& name, const std::vector& parameters); + ExpressionValue evaluate(); + std::wstring toString(); + bool isIdentifier() { return type == OperatorType::Identifier; } + std::wstring getStringValue() { return strValue; } + void replaceMemoryPos(const std::wstring& identifierName); + bool simplify(bool inUnknownOrFalseBlock); + unsigned int getFileNum() { return fileNum; } + unsigned int getSection() { return section; } +private: + void allocate(size_t count); + void deallocate(); + std::wstring formatFunctionCall(); + ExpressionValue executeExpressionFunctionCall(const ExpressionFunctionEntry& entry); + ExpressionValue executeExpressionLabelFunctionCall(const ExpressionLabelFunctionEntry& entry); + ExpressionValue executeFunctionCall(); + bool checkParameterCount(size_t min, size_t max); + + OperatorType type; + ExpressionInternal** children; + size_t childrenCount; + + union + { + int64_t intValue; + double floatValue; + }; + std::wstring strValue; + + unsigned int fileNum, section; +}; + +class Expression +{ +public: + Expression(); + ExpressionValue evaluate(); + bool isLoaded() const { return expression != nullptr; } + void setExpression(ExpressionInternal* exp, bool inUnknownOrFalseBlock); + void replaceMemoryPos(const std::wstring& identifierName); + bool isConstExpression() { return constExpression; } + + template + bool evaluateInteger(T& dest) + { + if (expression == nullptr) + return false; + + ExpressionValue value = expression->evaluate(); + if (value.isInt() == false) + return false; + + dest = (T) value.intValue; + return true; + } + + bool evaluateString(std::wstring& dest, bool convert) + { + if (expression == nullptr) + return false; + + ExpressionValue value = expression->evaluate(); + if (convert && value.isInt()) + { + dest = to_wstring(value.intValue); + return true; + } + + if (convert && value.isFloat()) + { + dest = to_wstring(value.floatValue); + return true; + } + + if (value.isString() == false) + return false; + + dest = value.strValue; + return true; + } + + bool evaluateIdentifier(std::wstring& dest) + { + if (expression == nullptr || expression->isIdentifier() == false) + return false; + + dest = expression->getStringValue(); + return true; + } + + std::wstring toString() { return expression != nullptr ? expression->toString() : L""; }; +private: + std::shared_ptr expression; + std::wstring originalText; + bool constExpression; +}; + +Expression createConstExpression(int64_t value); + +// file: Core/ExpressionFunctions.h +#include + +bool getExpFuncParameter(const std::vector& parameters, size_t index, int64_t& dest, + const std::wstring& funcName, bool optional); + +bool getExpFuncParameter(const std::vector& parameters, size_t index, const std::wstring*& dest, + const std::wstring& funcName, bool optional); + +using ExpressionFunction = ExpressionValue (*)(const std::wstring& funcName, const std::vector&); +using ExpressionLabelFunction = ExpressionValue (*)(const std::wstring& funcName, const std::vector> &); + +enum class ExpFuncSafety +{ + // Result may depend entirely on the internal state + Unsafe, + // Result is unsafe in conditional blocks, safe otherwise + ConditionalUnsafe, + // Result is completely independent of the internal state + Safe, +}; + +struct ExpressionFunctionEntry +{ + ExpressionFunction function; + size_t minParams; + size_t maxParams; + ExpFuncSafety safety; +}; + +struct ExpressionLabelFunctionEntry +{ + ExpressionLabelFunction function; + size_t minParams; + size_t maxParams; + ExpFuncSafety safety; +}; + + +using ExpressionFunctionMap = std::map; +using ExpressionLabelFunctionMap = std::map; + +extern const ExpressionFunctionMap expressionFunctions; +extern const ExpressionLabelFunctionMap expressionLabelFunctions; + +// file: Core/SymbolData.h +#include + +class AssemblerFile; + +struct SymDataSymbol +{ + std::wstring name; + int64_t address; + + bool operator<(const SymDataSymbol& other) const + { + return address < other.address; + } +}; + +struct SymDataAddressInfo +{ + int64_t address; + size_t fileIndex; + size_t lineNumber; + + bool operator<(const SymDataAddressInfo& other) const + { + return address < other.address; + } +}; + +struct SymDataFunction +{ + int64_t address; + size_t size; + + bool operator<(const SymDataFunction& other) const + { + return address < other.address; + } +}; + +struct SymDataData +{ + int64_t address; + size_t size; + int type; + + bool operator<(const SymDataData& other) const + { + if (address != other.address) + return address < other.address; + + if (size != other.size) + return size < other.size; + + return type < other.type; + } +}; + +struct SymDataModule +{ + AssemblerFile* file; + std::vector symbols; + std::vector functions; + std::set data; +}; + +struct SymDataModuleInfo +{ + unsigned int crc32; +}; + +class SymbolData +{ +public: + enum DataType { Data8, Data16, Data32, Data64, DataAscii }; + + SymbolData(); + void clear(); + void setNocashSymFileName(const std::wstring& name, int version) { nocashSymFileName = name; nocashSymVersion = version; }; + void write(); + void setEnabled(bool b) { enabled = b; }; + + void addLabel(int64_t address, const std::wstring& name); + void addData(int64_t address, size_t size, DataType type); + void startModule(AssemblerFile* file); + void endModule(AssemblerFile* file); + void startFunction(int64_t address); + void endFunction(int64_t address); +private: + void writeNocashSym(); + size_t addFileName(const std::wstring& fileName); + + std::wstring nocashSymFileName; + bool enabled; + int nocashSymVersion; + + // entry 0 is for data without parent modules + std::vector modules; + std::vector files; + int currentModule; + int currentFunction; +}; + +// file: Util/Util.h +#include +#include + + +typedef std::vector StringList; + +std::wstring convertUtf8ToWString(const char* source); +std::string convertWCharToUtf8(wchar_t character); +;std::string convertWStringToUtf8(const std::wstring& source); + +std::wstring intToHexString(unsigned int value, int digits, bool prefix = false); +std::wstring intToString(unsigned int value, int digits); +bool stringToInt(const std::wstring& line, size_t start, size_t end, int64_t& result); +int32_t getFloatBits(float value); +float bitsToFloat(int32_t value); +int64_t getDoubleBits(double value); + +StringList getStringListFromArray(wchar_t** source, int count); +StringList splitString(const std::wstring& str, const wchar_t delim, bool skipEmpty); + +int64_t fileSize(const std::wstring& fileName); +bool fileExists(const std::wstring& strFilename); +bool copyFile(const std::wstring& existingFile, const std::wstring& newFile); +bool deleteFile(const std::wstring& fileName);; + +std::wstring toWLowercase(const std::string& str); +std::wstring getFileNameFromPath(const std::wstring& path); +size_t replaceAll(std::wstring& str, const wchar_t* oldValue,const std::wstring& newValue); +bool startsWith(const std::wstring& str, const wchar_t* value, size_t stringPos = 0); + +enum class OpenFileMode { ReadBinary, WriteBinary, ReadWriteBinary }; +FILE* openFile(const std::wstring& fileName, OpenFileMode mode); +std::wstring getCurrentDirectory(); +bool changeDirectory(const std::wstring& dir); +bool isAbsolutePath(const std::wstring& path); + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0])) +#endif + +// file: Util/FileClasses.h +#include + +class BinaryFile +{ +public: + enum Mode { Read, Write, ReadWrite }; + + BinaryFile(); + ~BinaryFile(); + + bool open(const std::wstring& fileName, Mode mode); + bool open(Mode mode); + bool isOpen() { return handle != nullptr; }; + bool atEnd() { return isOpen() && mode != Write && ftell(handle) == size_; }; + void setPos(long pos) { if (isOpen()) fseek(handle,pos,SEEK_SET); }; + long pos() { return isOpen() ? ftell(handle) : -1; } + long size() { return size_; }; + void close(); + + void setFileName(const std::wstring& name) { fileName = name; }; + const std::wstring& getFileName() { return fileName; }; + + size_t read(void* dest, size_t length); + size_t write(void* source, size_t length); +private: + FILE* handle; + std::wstring fileName; + Mode mode; + long size_; +}; + +class TextFile +{ +public: + enum Encoding { ASCII, UTF8, UTF16LE, UTF16BE, SJIS, GUESS }; + enum Mode { Read, Write }; + + TextFile(); + ~TextFile(); + void openMemory(const std::wstring& content); + bool open(const std::wstring& fileName, Mode mode, Encoding defaultEncoding = GUESS); + bool open(Mode mode, Encoding defaultEncoding = GUESS); + bool isOpen() { return fromMemory || handle != nullptr; }; + bool atEnd() { return isOpen() && mode == Read && tell() >= size_; }; + long size() { return size_; }; + void close(); + + bool hasGuessedEncoding() { return guessedEncoding; }; + bool isFromMemory() { return fromMemory; } + int getNumLines() { return lineCount; } + + void setFileName(const std::wstring& name) { fileName = name; }; + const std::wstring& getFileName() { return fileName; }; + + wchar_t readCharacter(); + std::wstring readLine(); + StringList readAll(); + void writeCharacter(wchar_t character); + void write(const wchar_t* line); + void write(const std::wstring& line); + void write(const char* value); + void write(const std::string& value); + void writeLine(const wchar_t* line); + void writeLine(const std::wstring& line); + void writeLine(const char* line); + void writeLine(const std::string& line); + void writeLines(StringList& list); + + template + void writeFormat(const wchar_t* text, const Args&... args) + { + std::wstring message = formatString(text,args...); + write(message); + } + + bool hasError() { return errorText.size() != 0 && !errorRetrieved; }; + const std::wstring& getErrorText() { errorRetrieved = true; return errorText; }; +private: + long tell(); + void seek(long pos); + + FILE* handle; + std::wstring fileName; + Encoding encoding; + Mode mode; + bool recursion; + bool guessedEncoding; + long size_; + std::wstring errorText; + bool errorRetrieved; + bool fromMemory; + std::wstring content; + size_t contentPos; + int lineCount; + + std::string buf; + size_t bufPos; + + inline unsigned char bufGetChar() + { + if (buf.size() <= bufPos) + { + bufFillRead(); + if (buf.size() == 0) + return 0; + } + return buf[bufPos++]; + } + inline unsigned short bufGet16LE() + { + char c1 = bufGetChar(); + char c2 = bufGetChar(); + return c1 | (c2 << 8); + } + inline unsigned short bufGet16BE() + { + char c1 = bufGetChar(); + char c2 = bufGetChar(); + return c2 | (c1 << 8); + } + + void bufPut(const void *p, const size_t len); + void bufPut(const char c); + + void bufFillRead(); + void bufDrainWrite(); +}; + +wchar_t sjisToUnicode(unsigned short); +TextFile::Encoding getEncodingFromString(const std::wstring& str); + +// file: Util/ByteArray.h + +#include + +#if defined(_MSC_VER) && !defined(ssize_t) +typedef intptr_t ssize_t; +#endif + +typedef unsigned char byte; + +enum class Endianness { Big, Little }; + +class ByteArray +{ +public: + ByteArray(); + ByteArray(const ByteArray& other); + ByteArray(byte* data, size_t size); + ByteArray(ByteArray&& other); + ~ByteArray(); + ByteArray& operator=(ByteArray& other); + ByteArray& operator=(ByteArray&& other); + + size_t append(const ByteArray& other); + size_t append(void* data, size_t size); + size_t appendByte(byte b) { return append(&b,1); }; + void replaceByte(size_t pos, byte b) { data_[pos] = b; }; + void replaceBytes(size_t pos, byte* data, size_t size); + void reserveBytes(size_t count, byte value = 0); + void alignSize(size_t alignment); + + int getWord(size_t pos, Endianness endianness = Endianness::Little) const + { + if (pos+1 >= this->size()) return -1; + unsigned char* d = (unsigned char*) this->data(); + + if (endianness == Endianness::Little) + { + return d[pos+0] | (d[pos+1] << 8); + } else { + return d[pos+1] | (d[pos+0] << 8); + } + } + + int getDoubleWord(size_t pos, Endianness endianness = Endianness::Little) const + { + if (pos+3 >= this->size()) return -1; + unsigned char* d = (unsigned char*) this->data(); + + if (endianness == Endianness::Little) + { + return d[pos+0] | (d[pos+1] << 8) | (d[pos+2] << 16) | (d[pos+3] << 24); + } else { + return d[pos+3] | (d[pos+2] << 8) | (d[pos+1] << 16) | (d[pos+0] << 24); + } + } + + void replaceWord(size_t pos, unsigned int w, Endianness endianness = Endianness::Little) + { + if (pos+1 >= this->size()) return; + unsigned char* d = (unsigned char*) this->data(); + + if (endianness == Endianness::Little) + { + d[pos+0] = w & 0xFF; + d[pos+1] = (w >> 8) & 0xFF; + } else { + d[pos+0] = (w >> 8) & 0xFF; + d[pos+1] = w & 0xFF; + } + } + + void replaceDoubleWord(size_t pos, unsigned int w, Endianness endianness = Endianness::Little) + { + if (pos+3 >= this->size()) return; + unsigned char* d = (unsigned char*) this->data(); + + if (endianness == Endianness::Little) + { + d[pos+0] = w & 0xFF; + d[pos+1] = (w >> 8) & 0xFF; + d[pos+2] = (w >> 16) & 0xFF; + d[pos+3] = (w >> 24) & 0xFF; + } else { + d[pos+0] = (w >> 24) & 0xFF; + d[pos+1] = (w >> 16) & 0xFF; + d[pos+2] = (w >> 8) & 0xFF; + d[pos+3] = w & 0xFF; + } + } + + byte& operator [](size_t index) + { + return data_[index]; + }; + + const byte& operator [](size_t index) const + { + return data_[index]; + }; + + size_t size() const { return size_; }; + byte* data(size_t pos = 0) const { return &data_[pos]; }; + void clear() { size_ = 0; }; + void resize(size_t newSize); + ByteArray mid(size_t start, ssize_t length = 0); + ByteArray left(size_t length) { return mid(0,length); }; + ByteArray right(size_t length) { return mid(size_-length,length); }; + + static ByteArray fromFile(const std::wstring& fileName, long start = 0, size_t size = 0); + bool toFile(const std::wstring& fileName); +private: + void grow(size_t neededSize); + byte* data_; + size_t size_; + size_t allocatedSize_; +}; + +// file: Core/FileManager.h +#include + +class AssemblerFile +{ +public: + virtual ~AssemblerFile() { }; + + virtual bool open(bool onlyCheck) = 0; + virtual void close() = 0; + virtual bool isOpen() = 0; + virtual bool write(void* data, size_t length) = 0; + virtual int64_t getVirtualAddress() = 0; + virtual int64_t getPhysicalAddress() = 0; + virtual int64_t getHeaderSize() = 0; + virtual bool seekVirtual(int64_t virtualAddress) = 0; + virtual bool seekPhysical(int64_t physicalAddress) = 0; + virtual bool getModuleInfo(SymDataModuleInfo& info) { return false; }; + virtual bool hasFixedVirtualAddress() { return false; }; + virtual void beginSymData(SymbolData& symData) { }; + virtual void endSymData(SymbolData& symData) { }; + virtual const std::wstring& getFileName() = 0; +}; + +class GenericAssemblerFile: public AssemblerFile +{ +public: + GenericAssemblerFile(const std::wstring& fileName, int64_t headerSize, bool overwrite); + GenericAssemblerFile(const std::wstring& fileName, const std::wstring& originalFileName, int64_t headerSize); + + virtual bool open(bool onlyCheck); + virtual void close() { if (handle.isOpen()) handle.close(); }; + virtual bool isOpen() { return handle.isOpen(); }; + virtual bool write(void* data, size_t length); + virtual int64_t getVirtualAddress() { return virtualAddress; }; + virtual int64_t getPhysicalAddress() { return virtualAddress-headerSize; }; + virtual int64_t getHeaderSize() { return headerSize; }; + virtual bool seekVirtual(int64_t virtualAddress); + virtual bool seekPhysical(int64_t physicalAddress); + virtual bool hasFixedVirtualAddress() { return true; }; + + virtual const std::wstring& getFileName() { return fileName; }; + const std::wstring& getOriginalFileName() { return originalName; }; + int64_t getOriginalHeaderSize() { return originalHeaderSize; }; + void setHeaderSize(int64_t size) { headerSize = size; }; + +private: + enum Mode { Open, Create, Copy }; + + Mode mode; + int64_t originalHeaderSize; + int64_t headerSize; + int64_t virtualAddress; + BinaryFile handle; + std::wstring fileName; + std::wstring originalName; +}; + + +class FileManager +{ +public: + FileManager(); + ~FileManager(); + void reset(); + bool openFile(std::shared_ptr file, bool onlyCheck); + void addFile(std::shared_ptr file); + bool hasOpenFile() { return activeFile != nullptr; }; + void closeFile(); + bool write(void* data, size_t length); + bool writeU8(uint8_t data); + bool writeU16(uint16_t data); + bool writeU32(uint32_t data); + bool writeU64(uint64_t data); + int64_t getVirtualAddress(); + int64_t getPhysicalAddress(); + int64_t getHeaderSize(); + bool seekVirtual(int64_t virtualAddress); + bool seekPhysical(int64_t physicalAddress); + bool advanceMemory(size_t bytes); + std::shared_ptr getOpenFile() { return activeFile; }; + void setEndianness(Endianness endianness) { this->endianness = endianness; }; + Endianness getEndianness() { return endianness; } +private: + bool checkActiveFile(); + std::vector> files; + std::shared_ptr activeFile; + Endianness endianness; + Endianness ownEndianness; +}; + +// file: Core/ELF/ElfTypes.h + +/////////////////////// +// ELF Header Constants + +// File type +enum ElfType +{ + ET_NONE =0, + ET_REL =1, + ET_EXEC =2, + ET_DYN =3, + ET_CORE =4, + ET_LOPROC =0xFF00, + ET_HIPROC =0xFFFF, +}; + +// Machine/Architecture +enum ElfMachine +{ + EM_NONE =0, + EM_MIPS =8, + EM_ARM =40, +}; + +// File version +#define EV_NONE 0 +#define EV_CURRENT 1 + +// Identification index +#define EI_MAG0 0 +#define EI_MAG1 1 +#define EI_MAG2 2 +#define EI_MAG3 3 +#define EI_CLASS 4 +#define EI_DATA 5 +#define EI_VERSION 6 +#define EI_PAD 7 +#define EI_NIDENT 16 + +// Magic number +#define ELFMAG0 0x7F +#define ELFMAG1 'E' +#define ELFMAG2 'L' +#define ELFMAG3 'F' + +// File class +#define ELFCLASSNONE 0 +#define ELFCLASS32 1 +#define ELFCLASS64 2 + +// Encoding +#define ELFDATANONE 0 +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 + + +///////////////////// +// Sections constants + +// Section indexes +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xFF00 +#define SHN_LOPROC 0xFF00 +#define SHN_HIPROC 0xFF1F +#define SHN_ABS 0xFFF1 +#define SHN_COMMON 0xFFF2 +#define SHN_HIRESERVE 0xFFFF + +// Section types +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_HASH 5 +#define SHT_DYNAMIC 6 +#define SHT_NOTE 7 +#define SHT_NOBITS 8 +#define SHT_REL 9 +#define SHT_SHLIB 10 +#define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_LOPROC 0x70000000 +#define SHT_HIPROC 0x7FFFFFFF +#define SHT_LOUSER 0x80000000 +#define SHT_HIUSER 0xFFFFFFFF + +// Custom section types +#define SHT_PSPREL 0x700000a0 + + +// Section flags +enum ElfSectionFlags +{ + SHF_WRITE =0x1, + SHF_ALLOC =0x2, + SHF_EXECINSTR =0x4, + SHF_MASKPROC =0xF0000000, +}; + +// Symbol binding +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STB_LOPROC 13 +#define STB_HIPROC 15 + +// Symbol types +#define STT_NOTYPE 0 +#define STT_OBJECT 1 +#define STT_FUNC 2 +#define STT_SECTION 3 +#define STT_FILE 4 +#define STT_LOPROC 13 +#define STT_HIPROC 15 + +// Undefined name +#define STN_UNDEF 0 + +// Relocation types +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 + +// Segment types +#define PT_NULL 0 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define PT_INTERP 3 +#define PT_NOTE 4 +#define PT_SHLIB 5 +#define PT_PHDR 6 +#define PT_LOPROC 0x70000000 +#define PT_HIPROC 0x7FFFFFFF + +// Segment flags +#define PF_X 1 +#define PF_W 2 +#define PF_R 4 + +// Dynamic Array Tags +#define DT_NULL 0 +#define DT_NEEDED 1 +#define DT_PLTRELSZ 2 +#define DT_PLTGOT 3 +#define DT_HASH 4 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_RELA 7 +#define DT_RELASZ 8 +#define DT_RELAENT 9 +#define DT_STRSZ 10 +#define DT_SYMENT 11 +#define DT_INIT 12 +#define DT_FINI 13 +#define DT_SONAME 14 +#define DT_RPATH 15 +#define DT_SYMBOLIC 16 +#define DT_REL 17 +#define DT_RELSZ 18 +#define DT_RELENT 19 +#define DT_PLTREL 20 +#define DT_DEBUG 21 +#define DT_TEXTREL 22 +#define DT_JMPREL 23 +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7FFFFFFF + +typedef unsigned int Elf32_Addr; +typedef unsigned short Elf32_Half; +typedef unsigned int Elf32_Off; +typedef signed int Elf32_Sword; +typedef unsigned int Elf32_Word; + + +// ELF file header +struct Elf32_Ehdr +{ + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +}; + +// Section header +struct Elf32_Shdr +{ + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; +}; + +// Segment header +struct Elf32_Phdr +{ + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +}; + +// Symbol table entry +struct Elf32_Sym +{ + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; +}; + +#define ELF32_ST_BIND(i) ((i)>>4) +#define ELF32_ST_TYPE(i) ((i)&0xf) +#define ELF32_ST_INFO(b,t) (((b)<<4)+((t)&0xf)) + +// Relocation entries +struct Elf32_Rel +{ + Elf32_Addr r_offset; + Elf32_Word r_info; + + unsigned char getType() + { + return r_info & 0xFF; + } + + Elf32_Word getSymbolNum() + { + return r_info >> 8; + } +}; + +struct Elf32_Rela +{ + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +}; + +#define ELF32_R_SYM(i) ((i)>>8) +#define ELF32_R_TYPE(i) ((unsigned char)(i)) +#define ELF32_R_INFO(s,t) (((s)<<8 )+(unsigned char)(t)) + +// file: Core/ELF/ElfFile.h + +#include + +enum ElfPart { ELFPART_SEGMENTTABLE, ELFPART_SECTIONTABLE, ELFPART_SEGMENTS, ELFPART_SEGMENTLESSSECTIONS }; + +class ElfSegment; +class ElfSection; + +class ElfFile +{ +public: + + bool load(const std::wstring&fileName, bool sort); + bool load(ByteArray& data, bool sort); + void save(const std::wstring&fileName); + + Elf32_Half getType() { return fileHeader.e_type; }; + Elf32_Half getMachine() { return fileHeader.e_machine; }; + Endianness getEndianness() + { + return fileHeader.e_ident[EI_DATA] == ELFDATA2MSB ? Endianness::Big : Endianness::Little; + } + size_t getSegmentCount() { return segments.size(); }; + ElfSegment* getSegment(size_t index) { return segments[index]; }; + + int findSegmentlessSection(const std::string& name); + ElfSection* getSegmentlessSection(size_t index) { return segmentlessSections[index]; }; + size_t getSegmentlessSectionCount() { return segmentlessSections.size(); }; + ByteArray& getFileData() { return fileData; } + + int getSymbolCount(); + bool getSymbol(Elf32_Sym& symbol, size_t index); + const char* getStrTableString(size_t pos); +private: + void loadElfHeader(); + void writeHeader(ByteArray& data, int pos, Endianness endianness); + void loadProgramHeader(Elf32_Phdr& header, ByteArray& data, int pos); + void loadSectionHeader(Elf32_Shdr& header, ByteArray& data, int pos); + void loadSectionNames(); + void determinePartOrder(); + + Elf32_Ehdr fileHeader; + std::vector segments; + std::vector sections; + std::vector segmentlessSections; + ByteArray fileData; + ElfPart partsOrder[4]; + + ElfSection* symTab; + ElfSection* strTab; +}; + + +class ElfSection +{ +public: + ElfSection(Elf32_Shdr header); + void setName(std::string& name) { this->name = name; }; + const std::string& getName() { return name; }; + void setData(ByteArray& data) { this->data = data; }; + void setOwner(ElfSegment* segment); + bool hasOwner() { return owner != nullptr; }; + void writeHeader(ByteArray& data, int pos, Endianness endianness); + void writeData(ByteArray& output); + void setOffsetBase(int base); + ByteArray& getData() { return data; }; + + Elf32_Word getType() { return header.sh_type; }; + Elf32_Off getOffset() { return header.sh_offset; }; + Elf32_Word getSize() { return header.sh_size; }; + Elf32_Word getNameOffset() { return header.sh_name; }; + Elf32_Word getAlignment() { return header.sh_addralign; }; + Elf32_Addr getAddress() { return header.sh_addr; }; + Elf32_Half getInfo() { return header.sh_info; }; + Elf32_Word getFlags() { return header.sh_flags; }; +private: + Elf32_Shdr header; + std::string name; + ByteArray data; + ElfSegment* owner; +}; + +class ElfSegment +{ +public: + ElfSegment(Elf32_Phdr header, ByteArray& segmentData); + bool isSectionPartOf(ElfSection* section); + void addSection(ElfSection* section); + Elf32_Off getOffset() { return header.p_offset; }; + Elf32_Word getPhysSize() { return header.p_filesz; }; + Elf32_Word getType() { return header.p_type; }; + Elf32_Addr getVirtualAddress() { return header.p_vaddr; }; + size_t getSectionCount() { return sections.size(); }; + void writeHeader(ByteArray& data, int pos, Endianness endianness); + void writeData(ByteArray& output); + void splitSections(); + + int findSection(const std::string& name); + ElfSection* getSection(size_t index) { return sections[index]; }; + void writeToData(size_t offset, void* data, size_t size); + void sortSections(); +private: + Elf32_Phdr header; + ByteArray data; + std::vector sections; + ElfSection* paddrSection; +}; + +struct RelocationData +{ + int64_t opcodeOffset; + int64_t relocationBase; + uint32_t opcode; + + int64_t symbolAddress; + int targetSymbolType; + int targetSymbolInfo; +}; + +// file: Core/ELF/ElfRelocator.h + +struct ElfRelocatorCtor +{ + std::wstring symbolName; + size_t size; +}; + +struct RelocationAction +{ + RelocationAction(int64_t offset, uint32_t newValue) : offset(offset), newValue(newValue) {} + int64_t offset; + uint32_t newValue; +}; + +class CAssemblerCommand; +class Parser; + +class IElfRelocator +{ +public: + virtual ~IElfRelocator() {}; + virtual int expectedMachine() const = 0; + virtual bool isDummyRelocationType(int type) const { return false; } + virtual bool relocateOpcode(int type, const RelocationData& data, std::vector& actions, std::vector& errors) = 0; + virtual bool finish(std::vector& actions, std::vector& errors) { return true; } + virtual void setSymbolAddress(RelocationData& data, int64_t symbolAddress, int symbolType) = 0; + + virtual std::unique_ptr generateCtorStub(std::vector& ctors) { return nullptr; } +}; + + +class Label; + +struct ElfRelocatorSection +{ + ElfSection* section; + size_t index; + ElfSection* relSection; + std::shared_ptr